import { __commonJS, __esm, __export, __require, __toCommonJS } from "./chunk-S5KM4IGW.js"; // node_modules/url/node_modules/punycode/punycode.js var require_punycode = __commonJS({ "node_modules/url/node_modules/punycode/punycode.js"(exports2, module2) { (function(root) { var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2; var freeModule = typeof module2 == "object" && module2 && !module2.nodeType && module2; var freeGlobal = typeof global == "object" && global; if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) { root = freeGlobal; } var punycode2, maxInt = 2147483647, base = 36, tMin = 1, tMax = 26, skew = 38, damp = 700, initialBias = 72, initialN = 128, delimiter = "-", regexPunycode = /^xn--/, regexNonASCII = /[^\x20-\x7E]/, regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, errors = { "overflow": "Overflow: input needs wider integers to process", "not-basic": "Illegal input >= 0x80 (not a basic code point)", "invalid-input": "Invalid input" }, baseMinusTMin = base - tMin, floor = Math.floor, stringFromCharCode = String.fromCharCode, key; function error(type) { throw RangeError(errors[type]); } function map(array, fn) { var length3 = array.length; var result = []; while (length3--) { result[length3] = fn(array[length3]); } return result; } function mapDomain(string, fn) { var parts = string.split("@"); var result = ""; if (parts.length > 1) { result = parts[0] + "@"; string = parts[1]; } string = string.replace(regexSeparators, "."); var labels = string.split("."); var encoded = map(labels, fn).join("."); return result + encoded; } function ucs2decode(string) { var output = [], counter = 0, length3 = string.length, value, extra; while (counter < length3) { value = string.charCodeAt(counter++); if (value >= 55296 && value <= 56319 && counter < length3) { extra = string.charCodeAt(counter++); if ((extra & 64512) == 56320) { output.push(((value & 1023) << 10) + (extra & 1023) + 65536); } else { output.push(value); counter--; } } else { output.push(value); } } return output; } function ucs2encode(array) { return map(array, function(value) { var output = ""; if (value > 65535) { value -= 65536; output += stringFromCharCode(value >>> 10 & 1023 | 55296); value = 56320 | value & 1023; } output += stringFromCharCode(value); return output; }).join(""); } function basicToDigit(codePoint) { if (codePoint - 48 < 10) { return codePoint - 22; } if (codePoint - 65 < 26) { return codePoint - 65; } if (codePoint - 97 < 26) { return codePoint - 97; } return base; } function digitToBasic(digit, flag) { return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); } function adapt(delta, numPoints, firstTime) { var k = 0; delta = firstTime ? floor(delta / damp) : delta >> 1; delta += floor(delta / numPoints); for (; delta > baseMinusTMin * tMax >> 1; k += base) { delta = floor(delta / baseMinusTMin); } return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); } function decode(input) { var output = [], inputLength = input.length, out, i2 = 0, n2 = initialN, bias = initialBias, basic, j, index2, oldi, w, k, digit, t, baseMinusT; basic = input.lastIndexOf(delimiter); if (basic < 0) { basic = 0; } for (j = 0; j < basic; ++j) { if (input.charCodeAt(j) >= 128) { error("not-basic"); } output.push(input.charCodeAt(j)); } for (index2 = basic > 0 ? basic + 1 : 0; index2 < inputLength; ) { for (oldi = i2, w = 1, k = base; ; k += base) { if (index2 >= inputLength) { error("invalid-input"); } digit = basicToDigit(input.charCodeAt(index2++)); if (digit >= base || digit > floor((maxInt - i2) / w)) { error("overflow"); } i2 += digit * w; t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; if (digit < t) { break; } baseMinusT = base - t; if (w > floor(maxInt / baseMinusT)) { error("overflow"); } w *= baseMinusT; } out = output.length + 1; bias = adapt(i2 - oldi, out, oldi == 0); if (floor(i2 / out) > maxInt - n2) { error("overflow"); } n2 += floor(i2 / out); i2 %= out; output.splice(i2++, 0, n2); } return ucs2encode(output); } function encode(input) { var n2, delta, handledCPCount, basicLength, bias, j, m, q, k, t, currentValue, output = [], inputLength, handledCPCountPlusOne, baseMinusT, qMinusT; input = ucs2decode(input); inputLength = input.length; n2 = initialN; delta = 0; bias = initialBias; for (j = 0; j < inputLength; ++j) { currentValue = input[j]; if (currentValue < 128) { output.push(stringFromCharCode(currentValue)); } } handledCPCount = basicLength = output.length; if (basicLength) { output.push(delimiter); } while (handledCPCount < inputLength) { for (m = maxInt, j = 0; j < inputLength; ++j) { currentValue = input[j]; if (currentValue >= n2 && currentValue < m) { m = currentValue; } } handledCPCountPlusOne = handledCPCount + 1; if (m - n2 > floor((maxInt - delta) / handledCPCountPlusOne)) { error("overflow"); } delta += (m - n2) * handledCPCountPlusOne; n2 = m; for (j = 0; j < inputLength; ++j) { currentValue = input[j]; if (currentValue < n2 && ++delta > maxInt) { error("overflow"); } if (currentValue == n2) { for (q = delta, k = base; ; k += base) { t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; if (q < t) { break; } qMinusT = q - t; baseMinusT = base - t; output.push( stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) ); q = floor(qMinusT / baseMinusT); } output.push(stringFromCharCode(digitToBasic(q, 0))); bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); delta = 0; ++handledCPCount; } } ++delta; ++n2; } return output.join(""); } function toUnicode(input) { return mapDomain(input, function(string) { return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string; }); } function toASCII(input) { return mapDomain(input, function(string) { return regexNonASCII.test(string) ? "xn--" + encode(string) : string; }); } punycode2 = { "version": "1.3.2", "ucs2": { "decode": ucs2decode, "encode": ucs2encode }, "decode": decode, "encode": encode, "toASCII": toASCII, "toUnicode": toUnicode }; if (typeof define == "function" && typeof define.amd == "object" && define.amd) { define("punycode", function() { return punycode2; }); } else if (freeExports && freeModule) { if (module2.exports == freeExports) { freeModule.exports = punycode2; } else { for (key in punycode2) { punycode2.hasOwnProperty(key) && (freeExports[key] = punycode2[key]); } } } else { root.punycode = punycode2; } })(exports2); } }); // node_modules/url/util.js var require_util = __commonJS({ "node_modules/url/util.js"(exports2, module2) { "use strict"; module2.exports = { isString: function(arg) { return typeof arg === "string"; }, isObject: function(arg) { return typeof arg === "object" && arg !== null; }, isNull: function(arg) { return arg === null; }, isNullOrUndefined: function(arg) { return arg == null; } }; } }); // node_modules/querystring/decode.js var require_decode = __commonJS({ "node_modules/querystring/decode.js"(exports2, module2) { "use strict"; function hasOwnProperty2(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } module2.exports = function(qs, sep, eq, options) { sep = sep || "&"; eq = eq || "="; var obj = {}; if (typeof qs !== "string" || qs.length === 0) { return obj; } var regexp = /\+/g; qs = qs.split(sep); var maxKeys = 1e3; if (options && typeof options.maxKeys === "number") { maxKeys = options.maxKeys; } var len = qs.length; if (maxKeys > 0 && len > maxKeys) { len = maxKeys; } for (var i2 = 0; i2 < len; ++i2) { var x = qs[i2].replace(regexp, "%20"), idx = x.indexOf(eq), kstr, vstr, k, v7; if (idx >= 0) { kstr = x.substr(0, idx); vstr = x.substr(idx + 1); } else { kstr = x; vstr = ""; } k = decodeURIComponent(kstr); v7 = decodeURIComponent(vstr); if (!hasOwnProperty2(obj, k)) { obj[k] = v7; } else if (Array.isArray(obj[k])) { obj[k].push(v7); } else { obj[k] = [obj[k], v7]; } } return obj; }; } }); // node_modules/querystring/encode.js var require_encode = __commonJS({ "node_modules/querystring/encode.js"(exports2, module2) { "use strict"; var stringifyPrimitive = function(v7) { switch (typeof v7) { case "string": return v7; case "boolean": return v7 ? "true" : "false"; case "number": return isFinite(v7) ? v7 : ""; default: return ""; } }; module2.exports = function(obj, sep, eq, name) { sep = sep || "&"; eq = eq || "="; if (obj === null) { obj = void 0; } if (typeof obj === "object") { return Object.keys(obj).map(function(k) { var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; if (Array.isArray(obj[k])) { return obj[k].map(function(v7) { return ks + encodeURIComponent(stringifyPrimitive(v7)); }).join(sep); } else { return ks + encodeURIComponent(stringifyPrimitive(obj[k])); } }).join(sep); } if (!name) return ""; return encodeURIComponent(stringifyPrimitive(name)) + eq + encodeURIComponent(stringifyPrimitive(obj)); }; } }); // node_modules/querystring/index.js var require_querystring = __commonJS({ "node_modules/querystring/index.js"(exports2) { "use strict"; exports2.decode = exports2.parse = require_decode(); exports2.encode = exports2.stringify = require_encode(); } }); // node_modules/url/url.js var require_url = __commonJS({ "node_modules/url/url.js"(exports2) { "use strict"; var punycode2 = require_punycode(); var util = require_util(); exports2.parse = urlParse; exports2.resolve = urlResolve; exports2.resolveObject = urlResolveObject; exports2.format = urlFormat; exports2.Url = Url; function Url() { this.protocol = null; this.slashes = null; this.auth = null; this.host = null; this.port = null; this.hostname = null; this.hash = null; this.search = null; this.query = null; this.pathname = null; this.path = null; this.href = null; } var protocolPattern = /^([a-z0-9.+-]+:)/i; var portPattern = /:[0-9]*$/; var simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/; var delims = ["<", ">", '"', "`", " ", "\r", "\n", " "]; var unwise = ["{", "}", "|", "\\", "^", "`"].concat(delims); var autoEscape = ["'"].concat(unwise); var nonHostChars = ["%", "/", "?", ";", "#"].concat(autoEscape); var hostEndingChars = ["/", "?", "#"]; var hostnameMaxLen = 255; var hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/; var hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/; var unsafeProtocol = { "javascript": true, "javascript:": true }; var hostlessProtocol = { "javascript": true, "javascript:": true }; var slashedProtocol = { "http": true, "https": true, "ftp": true, "gopher": true, "file": true, "http:": true, "https:": true, "ftp:": true, "gopher:": true, "file:": true }; var querystring = require_querystring(); function urlParse(url2, parseQueryString, slashesDenoteHost) { if (url2 && util.isObject(url2) && url2 instanceof Url) return url2; var u3 = new Url(); u3.parse(url2, parseQueryString, slashesDenoteHost); return u3; } Url.prototype.parse = function(url2, parseQueryString, slashesDenoteHost) { if (!util.isString(url2)) { throw new TypeError("Parameter 'url' must be a string, not " + typeof url2); } var queryIndex = url2.indexOf("?"), splitter2 = queryIndex !== -1 && queryIndex < url2.indexOf("#") ? "?" : "#", uSplit = url2.split(splitter2), slashRegex = /\\/g; uSplit[0] = uSplit[0].replace(slashRegex, "/"); url2 = uSplit.join(splitter2); var rest = url2; rest = rest.trim(); if (!slashesDenoteHost && url2.split("#").length === 1) { var simplePath = simplePathPattern.exec(rest); if (simplePath) { this.path = rest; this.href = rest; this.pathname = simplePath[1]; if (simplePath[2]) { this.search = simplePath[2]; if (parseQueryString) { this.query = querystring.parse(this.search.substr(1)); } else { this.query = this.search.substr(1); } } else if (parseQueryString) { this.search = ""; this.query = {}; } return this; } } var proto = protocolPattern.exec(rest); if (proto) { proto = proto[0]; var lowerProto = proto.toLowerCase(); this.protocol = lowerProto; rest = rest.substr(proto.length); } if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { var slashes = rest.substr(0, 2) === "//"; if (slashes && !(proto && hostlessProtocol[proto])) { rest = rest.substr(2); this.slashes = true; } } if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) { var hostEnd = -1; for (var i2 = 0; i2 < hostEndingChars.length; i2++) { var hec = rest.indexOf(hostEndingChars[i2]); if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec; } var auth, atSign; if (hostEnd === -1) { atSign = rest.lastIndexOf("@"); } else { atSign = rest.lastIndexOf("@", hostEnd); } if (atSign !== -1) { auth = rest.slice(0, atSign); rest = rest.slice(atSign + 1); this.auth = decodeURIComponent(auth); } hostEnd = -1; for (var i2 = 0; i2 < nonHostChars.length; i2++) { var hec = rest.indexOf(nonHostChars[i2]); if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec; } if (hostEnd === -1) hostEnd = rest.length; this.host = rest.slice(0, hostEnd); rest = rest.slice(hostEnd); this.parseHost(); this.hostname = this.hostname || ""; var ipv6Hostname = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]"; if (!ipv6Hostname) { var hostparts = this.hostname.split(/\./); for (var i2 = 0, l2 = hostparts.length; i2 < l2; i2++) { var part = hostparts[i2]; if (!part) continue; if (!part.match(hostnamePartPattern)) { var newpart = ""; for (var j = 0, k = part.length; j < k; j++) { if (part.charCodeAt(j) > 127) { newpart += "x"; } else { newpart += part[j]; } } if (!newpart.match(hostnamePartPattern)) { var validParts = hostparts.slice(0, i2); var notHost = hostparts.slice(i2 + 1); var bit = part.match(hostnamePartStart); if (bit) { validParts.push(bit[1]); notHost.unshift(bit[2]); } if (notHost.length) { rest = "/" + notHost.join(".") + rest; } this.hostname = validParts.join("."); break; } } } } if (this.hostname.length > hostnameMaxLen) { this.hostname = ""; } else { this.hostname = this.hostname.toLowerCase(); } if (!ipv6Hostname) { this.hostname = punycode2.toASCII(this.hostname); } var p2 = this.port ? ":" + this.port : ""; var h = this.hostname || ""; this.host = h + p2; this.href += this.host; if (ipv6Hostname) { this.hostname = this.hostname.substr(1, this.hostname.length - 2); if (rest[0] !== "/") { rest = "/" + rest; } } } if (!unsafeProtocol[lowerProto]) { for (var i2 = 0, l2 = autoEscape.length; i2 < l2; i2++) { var ae = autoEscape[i2]; if (rest.indexOf(ae) === -1) continue; var esc = encodeURIComponent(ae); if (esc === ae) { esc = escape(ae); } rest = rest.split(ae).join(esc); } } var hash2 = rest.indexOf("#"); if (hash2 !== -1) { this.hash = rest.substr(hash2); rest = rest.slice(0, hash2); } var qm = rest.indexOf("?"); if (qm !== -1) { this.search = rest.substr(qm); this.query = rest.substr(qm + 1); if (parseQueryString) { this.query = querystring.parse(this.query); } rest = rest.slice(0, qm); } else if (parseQueryString) { this.search = ""; this.query = {}; } if (rest) this.pathname = rest; if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) { this.pathname = "/"; } if (this.pathname || this.search) { var p2 = this.pathname || ""; var s2 = this.search || ""; this.path = p2 + s2; } this.href = this.format(); return this; }; function urlFormat(obj) { if (util.isString(obj)) obj = urlParse(obj); if (!(obj instanceof Url)) return Url.prototype.format.call(obj); return obj.format(); } Url.prototype.format = function() { var auth = this.auth || ""; if (auth) { auth = encodeURIComponent(auth); auth = auth.replace(/%3A/i, ":"); auth += "@"; } var protocol = this.protocol || "", pathname = this.pathname || "", hash2 = this.hash || "", host = false, query = ""; if (this.host) { host = auth + this.host; } else if (this.hostname) { host = auth + (this.hostname.indexOf(":") === -1 ? this.hostname : "[" + this.hostname + "]"); if (this.port) { host += ":" + this.port; } } if (this.query && util.isObject(this.query) && Object.keys(this.query).length) { query = querystring.stringify(this.query); } var search = this.search || query && "?" + query || ""; if (protocol && protocol.substr(-1) !== ":") protocol += ":"; if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) { host = "//" + (host || ""); if (pathname && pathname.charAt(0) !== "/") pathname = "/" + pathname; } else if (!host) { host = ""; } if (hash2 && hash2.charAt(0) !== "#") hash2 = "#" + hash2; if (search && search.charAt(0) !== "?") search = "?" + search; pathname = pathname.replace(/[?#]/g, function(match) { return encodeURIComponent(match); }); search = search.replace("#", "%23"); return protocol + host + pathname + search + hash2; }; function urlResolve(source, relative) { return urlParse(source, false, true).resolve(relative); } Url.prototype.resolve = function(relative) { return this.resolveObject(urlParse(relative, false, true)).format(); }; function urlResolveObject(source, relative) { if (!source) return relative; return urlParse(source, false, true).resolveObject(relative); } Url.prototype.resolveObject = function(relative) { if (util.isString(relative)) { var rel = new Url(); rel.parse(relative, false, true); relative = rel; } var result = new Url(); var tkeys = Object.keys(this); for (var tk = 0; tk < tkeys.length; tk++) { var tkey = tkeys[tk]; result[tkey] = this[tkey]; } result.hash = relative.hash; if (relative.href === "") { result.href = result.format(); return result; } if (relative.slashes && !relative.protocol) { var rkeys = Object.keys(relative); for (var rk = 0; rk < rkeys.length; rk++) { var rkey = rkeys[rk]; if (rkey !== "protocol") result[rkey] = relative[rkey]; } if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) { result.path = result.pathname = "/"; } result.href = result.format(); return result; } if (relative.protocol && relative.protocol !== result.protocol) { if (!slashedProtocol[relative.protocol]) { var keys = Object.keys(relative); for (var v7 = 0; v7 < keys.length; v7++) { var k = keys[v7]; result[k] = relative[k]; } result.href = result.format(); return result; } result.protocol = relative.protocol; if (!relative.host && !hostlessProtocol[relative.protocol]) { var relPath = (relative.pathname || "").split("/"); while (relPath.length && !(relative.host = relPath.shift())) ; if (!relative.host) relative.host = ""; if (!relative.hostname) relative.hostname = ""; if (relPath[0] !== "") relPath.unshift(""); if (relPath.length < 2) relPath.unshift(""); result.pathname = relPath.join("/"); } else { result.pathname = relative.pathname; } result.search = relative.search; result.query = relative.query; result.host = relative.host || ""; result.auth = relative.auth; result.hostname = relative.hostname || relative.host; result.port = relative.port; if (result.pathname || result.search) { var p2 = result.pathname || ""; var s2 = result.search || ""; result.path = p2 + s2; } result.slashes = result.slashes || relative.slashes; result.href = result.format(); return result; } var isSourceAbs = result.pathname && result.pathname.charAt(0) === "/", isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === "/", mustEndAbs = isRelAbs || isSourceAbs || result.host && relative.pathname, removeAllDots = mustEndAbs, srcPath = result.pathname && result.pathname.split("/") || [], relPath = relative.pathname && relative.pathname.split("/") || [], psychotic = result.protocol && !slashedProtocol[result.protocol]; if (psychotic) { result.hostname = ""; result.port = null; if (result.host) { if (srcPath[0] === "") srcPath[0] = result.host; else srcPath.unshift(result.host); } result.host = ""; if (relative.protocol) { relative.hostname = null; relative.port = null; if (relative.host) { if (relPath[0] === "") relPath[0] = relative.host; else relPath.unshift(relative.host); } relative.host = null; } mustEndAbs = mustEndAbs && (relPath[0] === "" || srcPath[0] === ""); } if (isRelAbs) { result.host = relative.host || relative.host === "" ? relative.host : result.host; result.hostname = relative.hostname || relative.hostname === "" ? relative.hostname : result.hostname; result.search = relative.search; result.query = relative.query; srcPath = relPath; } else if (relPath.length) { if (!srcPath) srcPath = []; srcPath.pop(); srcPath = srcPath.concat(relPath); result.search = relative.search; result.query = relative.query; } else if (!util.isNullOrUndefined(relative.search)) { if (psychotic) { result.hostname = result.host = srcPath.shift(); var authInHost = result.host && result.host.indexOf("@") > 0 ? result.host.split("@") : false; if (authInHost) { result.auth = authInHost.shift(); result.host = result.hostname = authInHost.shift(); } } result.search = relative.search; result.query = relative.query; if (!util.isNull(result.pathname) || !util.isNull(result.search)) { result.path = (result.pathname ? result.pathname : "") + (result.search ? result.search : ""); } result.href = result.format(); return result; } if (!srcPath.length) { result.pathname = null; if (result.search) { result.path = "/" + result.search; } else { result.path = null; } result.href = result.format(); return result; } var last = srcPath.slice(-1)[0]; var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === "." || last === "..") || last === ""; var up = 0; for (var i2 = srcPath.length; i2 >= 0; i2--) { last = srcPath[i2]; if (last === ".") { srcPath.splice(i2, 1); } else if (last === "..") { srcPath.splice(i2, 1); up++; } else if (up) { srcPath.splice(i2, 1); up--; } } if (!mustEndAbs && !removeAllDots) { for (; up--; up) { srcPath.unshift(".."); } } if (mustEndAbs && srcPath[0] !== "" && (!srcPath[0] || srcPath[0].charAt(0) !== "/")) { srcPath.unshift(""); } if (hasTrailingSlash && srcPath.join("/").substr(-1) !== "/") { srcPath.push(""); } var isAbsolute = srcPath[0] === "" || srcPath[0] && srcPath[0].charAt(0) === "/"; if (psychotic) { result.hostname = result.host = isAbsolute ? "" : srcPath.length ? srcPath.shift() : ""; var authInHost = result.host && result.host.indexOf("@") > 0 ? result.host.split("@") : false; if (authInHost) { result.auth = authInHost.shift(); result.host = result.hostname = authInHost.shift(); } } mustEndAbs = mustEndAbs || result.host && srcPath.length; if (mustEndAbs && !isAbsolute) { srcPath.unshift(""); } if (!srcPath.length) { result.pathname = null; result.path = null; } else { result.pathname = srcPath.join("/"); } if (!util.isNull(result.pathname) || !util.isNull(result.search)) { result.path = (result.pathname ? result.pathname : "") + (result.search ? result.search : ""); } result.auth = relative.auth || result.auth; result.slashes = result.slashes || relative.slashes; result.href = result.format(); return result; }; Url.prototype.parseHost = function() { var host = this.host; var port = portPattern.exec(host); if (port) { port = port[0]; if (port !== ":") { this.port = port.substr(1); } host = host.substr(0, host.length - port.length); } if (host) this.hostname = host; }; } }); // browser-external:https var https_exports = {}; __export(https_exports, { default: () => https_default }); var https_default; var init_https = __esm({ "browser-external:https"() { https_default = new Proxy({}, { get() { throw new Error('Module "https" has been externalized for browser compatibility and cannot be accessed in client code.'); } }); } }); // browser-external:http var http_exports = {}; __export(http_exports, { default: () => http_default }); var http_default; var init_http = __esm({ "browser-external:http"() { http_default = new Proxy({}, { get() { throw new Error('Module "http" has been externalized for browser compatibility and cannot be accessed in client code.'); } }); } }); // browser-external:zlib var zlib_exports = {}; __export(zlib_exports, { default: () => zlib_default }); var zlib_default; var init_zlib = __esm({ "browser-external:zlib"() { zlib_default = new Proxy({}, { get() { throw new Error('Module "zlib" has been externalized for browser compatibility and cannot be accessed in client code.'); } }); } }); // node_modules/cesium/Source/Core/defined.js function defined(value) { return value !== void 0 && value !== null; } var defined_default = defined; // node_modules/cesium/Source/Core/DeveloperError.js function DeveloperError(message) { this.name = "DeveloperError"; this.message = message; let stack; try { throw new Error(); } catch (e2) { stack = e2.stack; } this.stack = stack; } if (defined_default(Object.create)) { DeveloperError.prototype = Object.create(Error.prototype); DeveloperError.prototype.constructor = DeveloperError; } DeveloperError.prototype.toString = function() { let str = `${this.name}: ${this.message}`; if (defined_default(this.stack)) { str += ` ${this.stack.toString()}`; } return str; }; DeveloperError.throwInstantiationError = function() { throw new DeveloperError( "This function defines an interface and should not be called directly." ); }; var DeveloperError_default = DeveloperError; // node_modules/cesium/Source/Core/Check.js var Check = {}; Check.typeOf = {}; function getUndefinedErrorMessage(name) { return `${name} is required, actual value was undefined`; } function getFailedTypeErrorMessage(actual, expected, name) { return `Expected ${name} to be typeof ${expected}, actual typeof was ${actual}`; } Check.defined = function(name, test) { if (!defined_default(test)) { throw new DeveloperError_default(getUndefinedErrorMessage(name)); } }; Check.typeOf.func = function(name, test) { if (typeof test !== "function") { throw new DeveloperError_default( getFailedTypeErrorMessage(typeof test, "function", name) ); } }; Check.typeOf.string = function(name, test) { if (typeof test !== "string") { throw new DeveloperError_default( getFailedTypeErrorMessage(typeof test, "string", name) ); } }; Check.typeOf.number = function(name, test) { if (typeof test !== "number") { throw new DeveloperError_default( getFailedTypeErrorMessage(typeof test, "number", name) ); } }; Check.typeOf.number.lessThan = function(name, test, limit) { Check.typeOf.number(name, test); if (test >= limit) { throw new DeveloperError_default( `Expected ${name} to be less than ${limit}, actual value was ${test}` ); } }; Check.typeOf.number.lessThanOrEquals = function(name, test, limit) { Check.typeOf.number(name, test); if (test > limit) { throw new DeveloperError_default( `Expected ${name} to be less than or equal to ${limit}, actual value was ${test}` ); } }; Check.typeOf.number.greaterThan = function(name, test, limit) { Check.typeOf.number(name, test); if (test <= limit) { throw new DeveloperError_default( `Expected ${name} to be greater than ${limit}, actual value was ${test}` ); } }; Check.typeOf.number.greaterThanOrEquals = function(name, test, limit) { Check.typeOf.number(name, test); if (test < limit) { throw new DeveloperError_default( `Expected ${name} to be greater than or equal to ${limit}, actual value was ${test}` ); } }; Check.typeOf.object = function(name, test) { if (typeof test !== "object") { throw new DeveloperError_default( getFailedTypeErrorMessage(typeof test, "object", name) ); } }; Check.typeOf.bool = function(name, test) { if (typeof test !== "boolean") { throw new DeveloperError_default( getFailedTypeErrorMessage(typeof test, "boolean", name) ); } }; Check.typeOf.bigint = function(name, test) { if (typeof test !== "bigint") { throw new DeveloperError_default( getFailedTypeErrorMessage(typeof test, "bigint", name) ); } }; Check.typeOf.number.equals = function(name1, name2, test1, test2) { Check.typeOf.number(name1, test1); Check.typeOf.number(name2, test2); if (test1 !== test2) { throw new DeveloperError_default( `${name1} must be equal to ${name2}, the actual values are ${test1} and ${test2}` ); } }; var Check_default = Check; // node_modules/cesium/Source/Core/defaultValue.js function defaultValue(a4, b) { if (a4 !== void 0 && a4 !== null) { return a4; } return b; } defaultValue.EMPTY_OBJECT = Object.freeze({}); var defaultValue_default = defaultValue; // node_modules/cesium/Source/ThirdParty/mersenne-twister.js var MersenneTwister = function(seed) { if (seed == void 0) { seed = new Date().getTime(); } this.N = 624; this.M = 397; this.MATRIX_A = 2567483615; this.UPPER_MASK = 2147483648; this.LOWER_MASK = 2147483647; this.mt = new Array(this.N); this.mti = this.N + 1; if (seed.constructor == Array) { this.init_by_array(seed, seed.length); } else { this.init_seed(seed); } }; MersenneTwister.prototype.init_seed = function(s2) { this.mt[0] = s2 >>> 0; for (this.mti = 1; this.mti < this.N; this.mti++) { var s2 = this.mt[this.mti - 1] ^ this.mt[this.mti - 1] >>> 30; this.mt[this.mti] = (((s2 & 4294901760) >>> 16) * 1812433253 << 16) + (s2 & 65535) * 1812433253 + this.mti; this.mt[this.mti] >>>= 0; } }; MersenneTwister.prototype.init_by_array = function(init_key, key_length) { var i2, j, k; this.init_seed(19650218); i2 = 1; j = 0; k = this.N > key_length ? this.N : key_length; for (; k; k--) { var s2 = this.mt[i2 - 1] ^ this.mt[i2 - 1] >>> 30; this.mt[i2] = (this.mt[i2] ^ (((s2 & 4294901760) >>> 16) * 1664525 << 16) + (s2 & 65535) * 1664525) + init_key[j] + j; this.mt[i2] >>>= 0; i2++; j++; if (i2 >= this.N) { this.mt[0] = this.mt[this.N - 1]; i2 = 1; } if (j >= key_length) j = 0; } for (k = this.N - 1; k; k--) { var s2 = this.mt[i2 - 1] ^ this.mt[i2 - 1] >>> 30; this.mt[i2] = (this.mt[i2] ^ (((s2 & 4294901760) >>> 16) * 1566083941 << 16) + (s2 & 65535) * 1566083941) - i2; this.mt[i2] >>>= 0; i2++; if (i2 >= this.N) { this.mt[0] = this.mt[this.N - 1]; i2 = 1; } } this.mt[0] = 2147483648; }; MersenneTwister.prototype.random_int = function() { var y; var mag01 = new Array(0, this.MATRIX_A); if (this.mti >= this.N) { var kk; if (this.mti == this.N + 1) this.init_seed(5489); for (kk = 0; kk < this.N - this.M; kk++) { y = this.mt[kk] & this.UPPER_MASK | this.mt[kk + 1] & this.LOWER_MASK; this.mt[kk] = this.mt[kk + this.M] ^ y >>> 1 ^ mag01[y & 1]; } for (; kk < this.N - 1; kk++) { y = this.mt[kk] & this.UPPER_MASK | this.mt[kk + 1] & this.LOWER_MASK; this.mt[kk] = this.mt[kk + (this.M - this.N)] ^ y >>> 1 ^ mag01[y & 1]; } y = this.mt[this.N - 1] & this.UPPER_MASK | this.mt[0] & this.LOWER_MASK; this.mt[this.N - 1] = this.mt[this.M - 1] ^ y >>> 1 ^ mag01[y & 1]; this.mti = 0; } y = this.mt[this.mti++]; y ^= y >>> 11; y ^= y << 7 & 2636928640; y ^= y << 15 & 4022730752; y ^= y >>> 18; return y >>> 0; }; MersenneTwister.prototype.random_int31 = function() { return this.random_int() >>> 1; }; MersenneTwister.prototype.random_incl = function() { return this.random_int() * (1 / 4294967295); }; MersenneTwister.prototype.random = function() { return this.random_int() * (1 / 4294967296); }; MersenneTwister.prototype.random_excl = function() { return (this.random_int() + 0.5) * (1 / 4294967296); }; MersenneTwister.prototype.random_long = function() { var a4 = this.random_int() >>> 5, b = this.random_int() >>> 6; return (a4 * 67108864 + b) * (1 / 9007199254740992); }; var mersenneTwister = MersenneTwister; // node_modules/cesium/Source/Core/Math.js var CesiumMath = {}; CesiumMath.EPSILON1 = 0.1; CesiumMath.EPSILON2 = 0.01; CesiumMath.EPSILON3 = 1e-3; CesiumMath.EPSILON4 = 1e-4; CesiumMath.EPSILON5 = 1e-5; CesiumMath.EPSILON6 = 1e-6; CesiumMath.EPSILON7 = 1e-7; CesiumMath.EPSILON8 = 1e-8; CesiumMath.EPSILON9 = 1e-9; CesiumMath.EPSILON10 = 1e-10; CesiumMath.EPSILON11 = 1e-11; CesiumMath.EPSILON12 = 1e-12; CesiumMath.EPSILON13 = 1e-13; CesiumMath.EPSILON14 = 1e-14; CesiumMath.EPSILON15 = 1e-15; CesiumMath.EPSILON16 = 1e-16; CesiumMath.EPSILON17 = 1e-17; CesiumMath.EPSILON18 = 1e-18; CesiumMath.EPSILON19 = 1e-19; CesiumMath.EPSILON20 = 1e-20; CesiumMath.EPSILON21 = 1e-21; CesiumMath.GRAVITATIONALPARAMETER = 3986004418e5; CesiumMath.SOLAR_RADIUS = 6955e5; CesiumMath.LUNAR_RADIUS = 1737400; CesiumMath.SIXTY_FOUR_KILOBYTES = 64 * 1024; CesiumMath.FOUR_GIGABYTES = 4 * 1024 * 1024 * 1024; CesiumMath.sign = defaultValue_default(Math.sign, function sign(value) { value = +value; if (value === 0 || value !== value) { return value; } return value > 0 ? 1 : -1; }); CesiumMath.signNotZero = function(value) { return value < 0 ? -1 : 1; }; CesiumMath.toSNorm = function(value, rangeMaximum) { rangeMaximum = defaultValue_default(rangeMaximum, 255); return Math.round( (CesiumMath.clamp(value, -1, 1) * 0.5 + 0.5) * rangeMaximum ); }; CesiumMath.fromSNorm = function(value, rangeMaximum) { rangeMaximum = defaultValue_default(rangeMaximum, 255); return CesiumMath.clamp(value, 0, rangeMaximum) / rangeMaximum * 2 - 1; }; CesiumMath.normalize = function(value, rangeMinimum, rangeMaximum) { rangeMaximum = Math.max(rangeMaximum - rangeMinimum, 0); return rangeMaximum === 0 ? 0 : CesiumMath.clamp((value - rangeMinimum) / rangeMaximum, 0, 1); }; CesiumMath.sinh = defaultValue_default(Math.sinh, function sinh(value) { return (Math.exp(value) - Math.exp(-value)) / 2; }); CesiumMath.cosh = defaultValue_default(Math.cosh, function cosh(value) { return (Math.exp(value) + Math.exp(-value)) / 2; }); CesiumMath.lerp = function(p2, q, time) { return (1 - time) * p2 + time * q; }; CesiumMath.PI = Math.PI; CesiumMath.ONE_OVER_PI = 1 / Math.PI; CesiumMath.PI_OVER_TWO = Math.PI / 2; CesiumMath.PI_OVER_THREE = Math.PI / 3; CesiumMath.PI_OVER_FOUR = Math.PI / 4; CesiumMath.PI_OVER_SIX = Math.PI / 6; CesiumMath.THREE_PI_OVER_TWO = 3 * Math.PI / 2; CesiumMath.TWO_PI = 2 * Math.PI; CesiumMath.ONE_OVER_TWO_PI = 1 / (2 * Math.PI); CesiumMath.RADIANS_PER_DEGREE = Math.PI / 180; CesiumMath.DEGREES_PER_RADIAN = 180 / Math.PI; CesiumMath.RADIANS_PER_ARCSECOND = CesiumMath.RADIANS_PER_DEGREE / 3600; CesiumMath.toRadians = function(degrees) { if (!defined_default(degrees)) { throw new DeveloperError_default("degrees is required."); } return degrees * CesiumMath.RADIANS_PER_DEGREE; }; CesiumMath.toDegrees = function(radians) { if (!defined_default(radians)) { throw new DeveloperError_default("radians is required."); } return radians * CesiumMath.DEGREES_PER_RADIAN; }; CesiumMath.convertLongitudeRange = function(angle) { if (!defined_default(angle)) { throw new DeveloperError_default("angle is required."); } const twoPi = CesiumMath.TWO_PI; const simplified = angle - Math.floor(angle / twoPi) * twoPi; if (simplified < -Math.PI) { return simplified + twoPi; } if (simplified >= Math.PI) { return simplified - twoPi; } return simplified; }; CesiumMath.clampToLatitudeRange = function(angle) { if (!defined_default(angle)) { throw new DeveloperError_default("angle is required."); } return CesiumMath.clamp( angle, -1 * CesiumMath.PI_OVER_TWO, CesiumMath.PI_OVER_TWO ); }; CesiumMath.negativePiToPi = function(angle) { if (!defined_default(angle)) { throw new DeveloperError_default("angle is required."); } if (angle >= -CesiumMath.PI && angle <= CesiumMath.PI) { return angle; } return CesiumMath.zeroToTwoPi(angle + CesiumMath.PI) - CesiumMath.PI; }; CesiumMath.zeroToTwoPi = function(angle) { if (!defined_default(angle)) { throw new DeveloperError_default("angle is required."); } if (angle >= 0 && angle <= CesiumMath.TWO_PI) { return angle; } const mod2 = CesiumMath.mod(angle, CesiumMath.TWO_PI); if (Math.abs(mod2) < CesiumMath.EPSILON14 && Math.abs(angle) > CesiumMath.EPSILON14) { return CesiumMath.TWO_PI; } return mod2; }; CesiumMath.mod = function(m, n2) { if (!defined_default(m)) { throw new DeveloperError_default("m is required."); } if (!defined_default(n2)) { throw new DeveloperError_default("n is required."); } if (n2 === 0) { throw new DeveloperError_default("divisor cannot be 0."); } if (CesiumMath.sign(m) === CesiumMath.sign(n2) && Math.abs(m) < Math.abs(n2)) { return m; } return (m % n2 + n2) % n2; }; CesiumMath.equalsEpsilon = function(left, right, relativeEpsilon, absoluteEpsilon) { if (!defined_default(left)) { throw new DeveloperError_default("left is required."); } if (!defined_default(right)) { throw new DeveloperError_default("right is required."); } relativeEpsilon = defaultValue_default(relativeEpsilon, 0); absoluteEpsilon = defaultValue_default(absoluteEpsilon, relativeEpsilon); const absDiff = Math.abs(left - right); return absDiff <= absoluteEpsilon || absDiff <= relativeEpsilon * Math.max(Math.abs(left), Math.abs(right)); }; CesiumMath.lessThan = function(left, right, absoluteEpsilon) { if (!defined_default(left)) { throw new DeveloperError_default("first is required."); } if (!defined_default(right)) { throw new DeveloperError_default("second is required."); } if (!defined_default(absoluteEpsilon)) { throw new DeveloperError_default("absoluteEpsilon is required."); } return left - right < -absoluteEpsilon; }; CesiumMath.lessThanOrEquals = function(left, right, absoluteEpsilon) { if (!defined_default(left)) { throw new DeveloperError_default("first is required."); } if (!defined_default(right)) { throw new DeveloperError_default("second is required."); } if (!defined_default(absoluteEpsilon)) { throw new DeveloperError_default("absoluteEpsilon is required."); } return left - right < absoluteEpsilon; }; CesiumMath.greaterThan = function(left, right, absoluteEpsilon) { if (!defined_default(left)) { throw new DeveloperError_default("first is required."); } if (!defined_default(right)) { throw new DeveloperError_default("second is required."); } if (!defined_default(absoluteEpsilon)) { throw new DeveloperError_default("absoluteEpsilon is required."); } return left - right > absoluteEpsilon; }; CesiumMath.greaterThanOrEquals = function(left, right, absoluteEpsilon) { if (!defined_default(left)) { throw new DeveloperError_default("first is required."); } if (!defined_default(right)) { throw new DeveloperError_default("second is required."); } if (!defined_default(absoluteEpsilon)) { throw new DeveloperError_default("absoluteEpsilon is required."); } return left - right > -absoluteEpsilon; }; var factorials = [1]; CesiumMath.factorial = function(n2) { if (typeof n2 !== "number" || n2 < 0) { throw new DeveloperError_default( "A number greater than or equal to 0 is required." ); } const length3 = factorials.length; if (n2 >= length3) { let sum = factorials[length3 - 1]; for (let i2 = length3; i2 <= n2; i2++) { const next = sum * i2; factorials.push(next); sum = next; } } return factorials[n2]; }; CesiumMath.incrementWrap = function(n2, maximumValue, minimumValue) { minimumValue = defaultValue_default(minimumValue, 0); if (!defined_default(n2)) { throw new DeveloperError_default("n is required."); } if (maximumValue <= minimumValue) { throw new DeveloperError_default("maximumValue must be greater than minimumValue."); } ++n2; if (n2 > maximumValue) { n2 = minimumValue; } return n2; }; CesiumMath.isPowerOfTwo = function(n2) { if (typeof n2 !== "number" || n2 < 0 || n2 > 4294967295) { throw new DeveloperError_default("A number between 0 and (2^32)-1 is required."); } return n2 !== 0 && (n2 & n2 - 1) === 0; }; CesiumMath.nextPowerOfTwo = function(n2) { if (typeof n2 !== "number" || n2 < 0 || n2 > 2147483648) { throw new DeveloperError_default("A number between 0 and 2^31 is required."); } --n2; n2 |= n2 >> 1; n2 |= n2 >> 2; n2 |= n2 >> 4; n2 |= n2 >> 8; n2 |= n2 >> 16; ++n2; return n2; }; CesiumMath.previousPowerOfTwo = function(n2) { if (typeof n2 !== "number" || n2 < 0 || n2 > 4294967295) { throw new DeveloperError_default("A number between 0 and (2^32)-1 is required."); } n2 |= n2 >> 1; n2 |= n2 >> 2; n2 |= n2 >> 4; n2 |= n2 >> 8; n2 |= n2 >> 16; n2 |= n2 >> 32; n2 = (n2 >>> 0) - (n2 >>> 1); return n2; }; CesiumMath.clamp = function(value, min3, max3) { Check_default.typeOf.number("value", value); Check_default.typeOf.number("min", min3); Check_default.typeOf.number("max", max3); return value < min3 ? min3 : value > max3 ? max3 : value; }; var randomNumberGenerator = new mersenneTwister(); CesiumMath.setRandomNumberSeed = function(seed) { if (!defined_default(seed)) { throw new DeveloperError_default("seed is required."); } randomNumberGenerator = new mersenneTwister(seed); }; CesiumMath.nextRandomNumber = function() { return randomNumberGenerator.random(); }; CesiumMath.randomBetween = function(min3, max3) { return CesiumMath.nextRandomNumber() * (max3 - min3) + min3; }; CesiumMath.acosClamped = function(value) { if (!defined_default(value)) { throw new DeveloperError_default("value is required."); } return Math.acos(CesiumMath.clamp(value, -1, 1)); }; CesiumMath.asinClamped = function(value) { if (!defined_default(value)) { throw new DeveloperError_default("value is required."); } return Math.asin(CesiumMath.clamp(value, -1, 1)); }; CesiumMath.chordLength = function(angle, radius) { if (!defined_default(angle)) { throw new DeveloperError_default("angle is required."); } if (!defined_default(radius)) { throw new DeveloperError_default("radius is required."); } return 2 * radius * Math.sin(angle * 0.5); }; CesiumMath.logBase = function(number, base) { if (!defined_default(number)) { throw new DeveloperError_default("number is required."); } if (!defined_default(base)) { throw new DeveloperError_default("base is required."); } return Math.log(number) / Math.log(base); }; CesiumMath.cbrt = defaultValue_default(Math.cbrt, function cbrt(number) { const result = Math.pow(Math.abs(number), 1 / 3); return number < 0 ? -result : result; }); CesiumMath.log2 = defaultValue_default(Math.log2, function log2(number) { return Math.log(number) * Math.LOG2E; }); CesiumMath.fog = function(distanceToCamera, density) { const scalar = distanceToCamera * density; return 1 - Math.exp(-(scalar * scalar)); }; CesiumMath.fastApproximateAtan = function(x) { Check_default.typeOf.number("x", x); return x * (-0.1784 * Math.abs(x) - 0.0663 * x * x + 1.0301); }; CesiumMath.fastApproximateAtan2 = function(x, y) { Check_default.typeOf.number("x", x); Check_default.typeOf.number("y", y); let opposite; let t = Math.abs(x); opposite = Math.abs(y); const adjacent = Math.max(t, opposite); opposite = Math.min(t, opposite); const oppositeOverAdjacent = opposite / adjacent; if (isNaN(oppositeOverAdjacent)) { throw new DeveloperError_default("either x or y must be nonzero"); } t = CesiumMath.fastApproximateAtan(oppositeOverAdjacent); t = Math.abs(y) > Math.abs(x) ? CesiumMath.PI_OVER_TWO - t : t; t = x < 0 ? CesiumMath.PI - t : t; t = y < 0 ? -t : t; return t; }; var Math_default = CesiumMath; // node_modules/cesium/Source/Core/Cartesian3.js function Cartesian3(x, y, z) { this.x = defaultValue_default(x, 0); this.y = defaultValue_default(y, 0); this.z = defaultValue_default(z, 0); } Cartesian3.fromSpherical = function(spherical, result) { Check_default.typeOf.object("spherical", spherical); if (!defined_default(result)) { result = new Cartesian3(); } const clock = spherical.clock; const cone = spherical.cone; const magnitude = defaultValue_default(spherical.magnitude, 1); const radial = magnitude * Math.sin(cone); result.x = radial * Math.cos(clock); result.y = radial * Math.sin(clock); result.z = magnitude * Math.cos(cone); return result; }; Cartesian3.fromElements = function(x, y, z, result) { if (!defined_default(result)) { return new Cartesian3(x, y, z); } result.x = x; result.y = y; result.z = z; return result; }; Cartesian3.clone = function(cartesian11, result) { if (!defined_default(cartesian11)) { return void 0; } if (!defined_default(result)) { return new Cartesian3(cartesian11.x, cartesian11.y, cartesian11.z); } result.x = cartesian11.x; result.y = cartesian11.y; result.z = cartesian11.z; return result; }; Cartesian3.fromCartesian4 = Cartesian3.clone; Cartesian3.packedLength = 3; Cartesian3.pack = function(value, array, startingIndex) { Check_default.typeOf.object("value", value); Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); array[startingIndex++] = value.x; array[startingIndex++] = value.y; array[startingIndex] = value.z; return array; }; Cartesian3.unpack = function(array, startingIndex, result) { Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); if (!defined_default(result)) { result = new Cartesian3(); } result.x = array[startingIndex++]; result.y = array[startingIndex++]; result.z = array[startingIndex]; return result; }; Cartesian3.packArray = function(array, result) { Check_default.defined("array", array); const length3 = array.length; const resultLength = length3 * 3; if (!defined_default(result)) { result = new Array(resultLength); } else if (!Array.isArray(result) && result.length !== resultLength) { throw new DeveloperError_default( "If result is a typed array, it must have exactly array.length * 3 elements" ); } else if (result.length !== resultLength) { result.length = resultLength; } for (let i2 = 0; i2 < length3; ++i2) { Cartesian3.pack(array[i2], result, i2 * 3); } return result; }; Cartesian3.unpackArray = function(array, result) { Check_default.defined("array", array); Check_default.typeOf.number.greaterThanOrEquals("array.length", array.length, 3); if (array.length % 3 !== 0) { throw new DeveloperError_default("array length must be a multiple of 3."); } const length3 = array.length; if (!defined_default(result)) { result = new Array(length3 / 3); } else { result.length = length3 / 3; } for (let i2 = 0; i2 < length3; i2 += 3) { const index2 = i2 / 3; result[index2] = Cartesian3.unpack(array, i2, result[index2]); } return result; }; Cartesian3.fromArray = Cartesian3.unpack; Cartesian3.maximumComponent = function(cartesian11) { Check_default.typeOf.object("cartesian", cartesian11); return Math.max(cartesian11.x, cartesian11.y, cartesian11.z); }; Cartesian3.minimumComponent = function(cartesian11) { Check_default.typeOf.object("cartesian", cartesian11); return Math.min(cartesian11.x, cartesian11.y, cartesian11.z); }; Cartesian3.minimumByComponent = function(first, second, result) { Check_default.typeOf.object("first", first); Check_default.typeOf.object("second", second); Check_default.typeOf.object("result", result); result.x = Math.min(first.x, second.x); result.y = Math.min(first.y, second.y); result.z = Math.min(first.z, second.z); return result; }; Cartesian3.maximumByComponent = function(first, second, result) { Check_default.typeOf.object("first", first); Check_default.typeOf.object("second", second); Check_default.typeOf.object("result", result); result.x = Math.max(first.x, second.x); result.y = Math.max(first.y, second.y); result.z = Math.max(first.z, second.z); return result; }; Cartesian3.clamp = function(value, min3, max3, result) { Check_default.typeOf.object("value", value); Check_default.typeOf.object("min", min3); Check_default.typeOf.object("max", max3); Check_default.typeOf.object("result", result); const x = Math_default.clamp(value.x, min3.x, max3.x); const y = Math_default.clamp(value.y, min3.y, max3.y); const z = Math_default.clamp(value.z, min3.z, max3.z); result.x = x; result.y = y; result.z = z; return result; }; Cartesian3.magnitudeSquared = function(cartesian11) { Check_default.typeOf.object("cartesian", cartesian11); return cartesian11.x * cartesian11.x + cartesian11.y * cartesian11.y + cartesian11.z * cartesian11.z; }; Cartesian3.magnitude = function(cartesian11) { return Math.sqrt(Cartesian3.magnitudeSquared(cartesian11)); }; var distanceScratch = new Cartesian3(); Cartesian3.distance = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Cartesian3.subtract(left, right, distanceScratch); return Cartesian3.magnitude(distanceScratch); }; Cartesian3.distanceSquared = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Cartesian3.subtract(left, right, distanceScratch); return Cartesian3.magnitudeSquared(distanceScratch); }; Cartesian3.normalize = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const magnitude = Cartesian3.magnitude(cartesian11); result.x = cartesian11.x / magnitude; result.y = cartesian11.y / magnitude; result.z = cartesian11.z / magnitude; if (isNaN(result.x) || isNaN(result.y) || isNaN(result.z)) { throw new DeveloperError_default("normalized result is not a number"); } return result; }; Cartesian3.dot = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); return left.x * right.x + left.y * right.y + left.z * right.z; }; Cartesian3.multiplyComponents = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x * right.x; result.y = left.y * right.y; result.z = left.z * right.z; return result; }; Cartesian3.divideComponents = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x / right.x; result.y = left.y / right.y; result.z = left.z / right.z; return result; }; Cartesian3.add = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x + right.x; result.y = left.y + right.y; result.z = left.z + right.z; return result; }; Cartesian3.subtract = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x - right.x; result.y = left.y - right.y; result.z = left.z - right.z; return result; }; Cartesian3.multiplyByScalar = function(cartesian11, scalar, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.number("scalar", scalar); Check_default.typeOf.object("result", result); result.x = cartesian11.x * scalar; result.y = cartesian11.y * scalar; result.z = cartesian11.z * scalar; return result; }; Cartesian3.divideByScalar = function(cartesian11, scalar, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.number("scalar", scalar); Check_default.typeOf.object("result", result); result.x = cartesian11.x / scalar; result.y = cartesian11.y / scalar; result.z = cartesian11.z / scalar; return result; }; Cartesian3.negate = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result.x = -cartesian11.x; result.y = -cartesian11.y; result.z = -cartesian11.z; return result; }; Cartesian3.abs = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result.x = Math.abs(cartesian11.x); result.y = Math.abs(cartesian11.y); result.z = Math.abs(cartesian11.z); return result; }; var lerpScratch = new Cartesian3(); Cartesian3.lerp = function(start, end, t, result) { Check_default.typeOf.object("start", start); Check_default.typeOf.object("end", end); Check_default.typeOf.number("t", t); Check_default.typeOf.object("result", result); Cartesian3.multiplyByScalar(end, t, lerpScratch); result = Cartesian3.multiplyByScalar(start, 1 - t, result); return Cartesian3.add(lerpScratch, result, result); }; var angleBetweenScratch = new Cartesian3(); var angleBetweenScratch2 = new Cartesian3(); Cartesian3.angleBetween = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Cartesian3.normalize(left, angleBetweenScratch); Cartesian3.normalize(right, angleBetweenScratch2); const cosine = Cartesian3.dot(angleBetweenScratch, angleBetweenScratch2); const sine = Cartesian3.magnitude( Cartesian3.cross( angleBetweenScratch, angleBetweenScratch2, angleBetweenScratch ) ); return Math.atan2(sine, cosine); }; var mostOrthogonalAxisScratch = new Cartesian3(); Cartesian3.mostOrthogonalAxis = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const f2 = Cartesian3.normalize(cartesian11, mostOrthogonalAxisScratch); Cartesian3.abs(f2, f2); if (f2.x <= f2.y) { if (f2.x <= f2.z) { result = Cartesian3.clone(Cartesian3.UNIT_X, result); } else { result = Cartesian3.clone(Cartesian3.UNIT_Z, result); } } else if (f2.y <= f2.z) { result = Cartesian3.clone(Cartesian3.UNIT_Y, result); } else { result = Cartesian3.clone(Cartesian3.UNIT_Z, result); } return result; }; Cartesian3.projectVector = function(a4, b, result) { Check_default.defined("a", a4); Check_default.defined("b", b); Check_default.defined("result", result); const scalar = Cartesian3.dot(a4, b) / Cartesian3.dot(b, b); return Cartesian3.multiplyByScalar(b, scalar, result); }; Cartesian3.equals = function(left, right) { return left === right || defined_default(left) && defined_default(right) && left.x === right.x && left.y === right.y && left.z === right.z; }; Cartesian3.equalsArray = function(cartesian11, array, offset2) { return cartesian11.x === array[offset2] && cartesian11.y === array[offset2 + 1] && cartesian11.z === array[offset2 + 2]; }; Cartesian3.equalsEpsilon = function(left, right, relativeEpsilon, absoluteEpsilon) { return left === right || defined_default(left) && defined_default(right) && Math_default.equalsEpsilon( left.x, right.x, relativeEpsilon, absoluteEpsilon ) && Math_default.equalsEpsilon( left.y, right.y, relativeEpsilon, absoluteEpsilon ) && Math_default.equalsEpsilon( left.z, right.z, relativeEpsilon, absoluteEpsilon ); }; Cartesian3.cross = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); const leftX = left.x; const leftY = left.y; const leftZ = left.z; const rightX = right.x; const rightY = right.y; const rightZ = right.z; const x = leftY * rightZ - leftZ * rightY; const y = leftZ * rightX - leftX * rightZ; const z = leftX * rightY - leftY * rightX; result.x = x; result.y = y; result.z = z; return result; }; Cartesian3.midpoint = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = (left.x + right.x) * 0.5; result.y = (left.y + right.y) * 0.5; result.z = (left.z + right.z) * 0.5; return result; }; Cartesian3.fromDegrees = function(longitude, latitude, height, ellipsoid, result) { Check_default.typeOf.number("longitude", longitude); Check_default.typeOf.number("latitude", latitude); longitude = Math_default.toRadians(longitude); latitude = Math_default.toRadians(latitude); return Cartesian3.fromRadians(longitude, latitude, height, ellipsoid, result); }; var scratchN = new Cartesian3(); var scratchK = new Cartesian3(); var wgs84RadiiSquared = new Cartesian3( 6378137 * 6378137, 6378137 * 6378137, 6356752314245179e-9 * 6356752314245179e-9 ); Cartesian3.fromRadians = function(longitude, latitude, height, ellipsoid, result) { Check_default.typeOf.number("longitude", longitude); Check_default.typeOf.number("latitude", latitude); height = defaultValue_default(height, 0); const radiiSquared = defined_default(ellipsoid) ? ellipsoid.radiiSquared : wgs84RadiiSquared; const cosLatitude = Math.cos(latitude); scratchN.x = cosLatitude * Math.cos(longitude); scratchN.y = cosLatitude * Math.sin(longitude); scratchN.z = Math.sin(latitude); scratchN = Cartesian3.normalize(scratchN, scratchN); Cartesian3.multiplyComponents(radiiSquared, scratchN, scratchK); const gamma = Math.sqrt(Cartesian3.dot(scratchN, scratchK)); scratchK = Cartesian3.divideByScalar(scratchK, gamma, scratchK); scratchN = Cartesian3.multiplyByScalar(scratchN, height, scratchN); if (!defined_default(result)) { result = new Cartesian3(); } return Cartesian3.add(scratchK, scratchN, result); }; Cartesian3.fromDegreesArray = function(coordinates, ellipsoid, result) { Check_default.defined("coordinates", coordinates); if (coordinates.length < 2 || coordinates.length % 2 !== 0) { throw new DeveloperError_default( "the number of coordinates must be a multiple of 2 and at least 2" ); } const length3 = coordinates.length; if (!defined_default(result)) { result = new Array(length3 / 2); } else { result.length = length3 / 2; } for (let i2 = 0; i2 < length3; i2 += 2) { const longitude = coordinates[i2]; const latitude = coordinates[i2 + 1]; const index2 = i2 / 2; result[index2] = Cartesian3.fromDegrees( longitude, latitude, 0, ellipsoid, result[index2] ); } return result; }; Cartesian3.fromRadiansArray = function(coordinates, ellipsoid, result) { Check_default.defined("coordinates", coordinates); if (coordinates.length < 2 || coordinates.length % 2 !== 0) { throw new DeveloperError_default( "the number of coordinates must be a multiple of 2 and at least 2" ); } const length3 = coordinates.length; if (!defined_default(result)) { result = new Array(length3 / 2); } else { result.length = length3 / 2; } for (let i2 = 0; i2 < length3; i2 += 2) { const longitude = coordinates[i2]; const latitude = coordinates[i2 + 1]; const index2 = i2 / 2; result[index2] = Cartesian3.fromRadians( longitude, latitude, 0, ellipsoid, result[index2] ); } return result; }; Cartesian3.fromDegreesArrayHeights = function(coordinates, ellipsoid, result) { Check_default.defined("coordinates", coordinates); if (coordinates.length < 3 || coordinates.length % 3 !== 0) { throw new DeveloperError_default( "the number of coordinates must be a multiple of 3 and at least 3" ); } const length3 = coordinates.length; if (!defined_default(result)) { result = new Array(length3 / 3); } else { result.length = length3 / 3; } for (let i2 = 0; i2 < length3; i2 += 3) { const longitude = coordinates[i2]; const latitude = coordinates[i2 + 1]; const height = coordinates[i2 + 2]; const index2 = i2 / 3; result[index2] = Cartesian3.fromDegrees( longitude, latitude, height, ellipsoid, result[index2] ); } return result; }; Cartesian3.fromRadiansArrayHeights = function(coordinates, ellipsoid, result) { Check_default.defined("coordinates", coordinates); if (coordinates.length < 3 || coordinates.length % 3 !== 0) { throw new DeveloperError_default( "the number of coordinates must be a multiple of 3 and at least 3" ); } const length3 = coordinates.length; if (!defined_default(result)) { result = new Array(length3 / 3); } else { result.length = length3 / 3; } for (let i2 = 0; i2 < length3; i2 += 3) { const longitude = coordinates[i2]; const latitude = coordinates[i2 + 1]; const height = coordinates[i2 + 2]; const index2 = i2 / 3; result[index2] = Cartesian3.fromRadians( longitude, latitude, height, ellipsoid, result[index2] ); } return result; }; Cartesian3.ZERO = Object.freeze(new Cartesian3(0, 0, 0)); Cartesian3.ONE = Object.freeze(new Cartesian3(1, 1, 1)); Cartesian3.UNIT_X = Object.freeze(new Cartesian3(1, 0, 0)); Cartesian3.UNIT_Y = Object.freeze(new Cartesian3(0, 1, 0)); Cartesian3.UNIT_Z = Object.freeze(new Cartesian3(0, 0, 1)); Cartesian3.prototype.clone = function(result) { return Cartesian3.clone(this, result); }; Cartesian3.prototype.equals = function(right) { return Cartesian3.equals(this, right); }; Cartesian3.prototype.equalsEpsilon = function(right, relativeEpsilon, absoluteEpsilon) { return Cartesian3.equalsEpsilon( this, right, relativeEpsilon, absoluteEpsilon ); }; Cartesian3.prototype.toString = function() { return `(${this.x}, ${this.y}, ${this.z})`; }; var Cartesian3_default = Cartesian3; // node_modules/cesium/Source/Core/scaleToGeodeticSurface.js var scaleToGeodeticSurfaceIntersection = new Cartesian3_default(); var scaleToGeodeticSurfaceGradient = new Cartesian3_default(); function scaleToGeodeticSurface(cartesian11, oneOverRadii, oneOverRadiiSquared, centerToleranceSquared, result) { if (!defined_default(cartesian11)) { throw new DeveloperError_default("cartesian is required."); } if (!defined_default(oneOverRadii)) { throw new DeveloperError_default("oneOverRadii is required."); } if (!defined_default(oneOverRadiiSquared)) { throw new DeveloperError_default("oneOverRadiiSquared is required."); } if (!defined_default(centerToleranceSquared)) { throw new DeveloperError_default("centerToleranceSquared is required."); } const positionX = cartesian11.x; const positionY = cartesian11.y; const positionZ = cartesian11.z; const oneOverRadiiX = oneOverRadii.x; const oneOverRadiiY = oneOverRadii.y; const oneOverRadiiZ = oneOverRadii.z; const x2 = positionX * positionX * oneOverRadiiX * oneOverRadiiX; const y2 = positionY * positionY * oneOverRadiiY * oneOverRadiiY; const z2 = positionZ * positionZ * oneOverRadiiZ * oneOverRadiiZ; const squaredNorm = x2 + y2 + z2; const ratio = Math.sqrt(1 / squaredNorm); const intersection = Cartesian3_default.multiplyByScalar( cartesian11, ratio, scaleToGeodeticSurfaceIntersection ); if (squaredNorm < centerToleranceSquared) { return !isFinite(ratio) ? void 0 : Cartesian3_default.clone(intersection, result); } const oneOverRadiiSquaredX = oneOverRadiiSquared.x; const oneOverRadiiSquaredY = oneOverRadiiSquared.y; const oneOverRadiiSquaredZ = oneOverRadiiSquared.z; const gradient = scaleToGeodeticSurfaceGradient; gradient.x = intersection.x * oneOverRadiiSquaredX * 2; gradient.y = intersection.y * oneOverRadiiSquaredY * 2; gradient.z = intersection.z * oneOverRadiiSquaredZ * 2; let lambda = (1 - ratio) * Cartesian3_default.magnitude(cartesian11) / (0.5 * Cartesian3_default.magnitude(gradient)); let correction = 0; let func; let denominator; let xMultiplier; let yMultiplier; let zMultiplier; let xMultiplier2; let yMultiplier2; let zMultiplier2; let xMultiplier3; let yMultiplier3; let zMultiplier3; do { lambda -= correction; xMultiplier = 1 / (1 + lambda * oneOverRadiiSquaredX); yMultiplier = 1 / (1 + lambda * oneOverRadiiSquaredY); zMultiplier = 1 / (1 + lambda * oneOverRadiiSquaredZ); xMultiplier2 = xMultiplier * xMultiplier; yMultiplier2 = yMultiplier * yMultiplier; zMultiplier2 = zMultiplier * zMultiplier; xMultiplier3 = xMultiplier2 * xMultiplier; yMultiplier3 = yMultiplier2 * yMultiplier; zMultiplier3 = zMultiplier2 * zMultiplier; func = x2 * xMultiplier2 + y2 * yMultiplier2 + z2 * zMultiplier2 - 1; denominator = x2 * xMultiplier3 * oneOverRadiiSquaredX + y2 * yMultiplier3 * oneOverRadiiSquaredY + z2 * zMultiplier3 * oneOverRadiiSquaredZ; const derivative = -2 * denominator; correction = func / derivative; } while (Math.abs(func) > Math_default.EPSILON12); if (!defined_default(result)) { return new Cartesian3_default( positionX * xMultiplier, positionY * yMultiplier, positionZ * zMultiplier ); } result.x = positionX * xMultiplier; result.y = positionY * yMultiplier; result.z = positionZ * zMultiplier; return result; } var scaleToGeodeticSurface_default = scaleToGeodeticSurface; // node_modules/cesium/Source/Core/Cartographic.js function Cartographic(longitude, latitude, height) { this.longitude = defaultValue_default(longitude, 0); this.latitude = defaultValue_default(latitude, 0); this.height = defaultValue_default(height, 0); } Cartographic.fromRadians = function(longitude, latitude, height, result) { Check_default.typeOf.number("longitude", longitude); Check_default.typeOf.number("latitude", latitude); height = defaultValue_default(height, 0); if (!defined_default(result)) { return new Cartographic(longitude, latitude, height); } result.longitude = longitude; result.latitude = latitude; result.height = height; return result; }; Cartographic.fromDegrees = function(longitude, latitude, height, result) { Check_default.typeOf.number("longitude", longitude); Check_default.typeOf.number("latitude", latitude); longitude = Math_default.toRadians(longitude); latitude = Math_default.toRadians(latitude); return Cartographic.fromRadians(longitude, latitude, height, result); }; var cartesianToCartographicN = new Cartesian3_default(); var cartesianToCartographicP = new Cartesian3_default(); var cartesianToCartographicH = new Cartesian3_default(); var wgs84OneOverRadii = new Cartesian3_default( 1 / 6378137, 1 / 6378137, 1 / 6356752314245179e-9 ); var wgs84OneOverRadiiSquared = new Cartesian3_default( 1 / (6378137 * 6378137), 1 / (6378137 * 6378137), 1 / (6356752314245179e-9 * 6356752314245179e-9) ); var wgs84CenterToleranceSquared = Math_default.EPSILON1; Cartographic.fromCartesian = function(cartesian11, ellipsoid, result) { const oneOverRadii = defined_default(ellipsoid) ? ellipsoid.oneOverRadii : wgs84OneOverRadii; const oneOverRadiiSquared = defined_default(ellipsoid) ? ellipsoid.oneOverRadiiSquared : wgs84OneOverRadiiSquared; const centerToleranceSquared = defined_default(ellipsoid) ? ellipsoid._centerToleranceSquared : wgs84CenterToleranceSquared; const p2 = scaleToGeodeticSurface_default( cartesian11, oneOverRadii, oneOverRadiiSquared, centerToleranceSquared, cartesianToCartographicP ); if (!defined_default(p2)) { return void 0; } let n2 = Cartesian3_default.multiplyComponents( p2, oneOverRadiiSquared, cartesianToCartographicN ); n2 = Cartesian3_default.normalize(n2, n2); const h = Cartesian3_default.subtract(cartesian11, p2, cartesianToCartographicH); const longitude = Math.atan2(n2.y, n2.x); const latitude = Math.asin(n2.z); const height = Math_default.sign(Cartesian3_default.dot(h, cartesian11)) * Cartesian3_default.magnitude(h); if (!defined_default(result)) { return new Cartographic(longitude, latitude, height); } result.longitude = longitude; result.latitude = latitude; result.height = height; return result; }; Cartographic.toCartesian = function(cartographic2, ellipsoid, result) { Check_default.defined("cartographic", cartographic2); return Cartesian3_default.fromRadians( cartographic2.longitude, cartographic2.latitude, cartographic2.height, ellipsoid, result ); }; Cartographic.clone = function(cartographic2, result) { if (!defined_default(cartographic2)) { return void 0; } if (!defined_default(result)) { return new Cartographic( cartographic2.longitude, cartographic2.latitude, cartographic2.height ); } result.longitude = cartographic2.longitude; result.latitude = cartographic2.latitude; result.height = cartographic2.height; return result; }; Cartographic.equals = function(left, right) { return left === right || defined_default(left) && defined_default(right) && left.longitude === right.longitude && left.latitude === right.latitude && left.height === right.height; }; Cartographic.equalsEpsilon = function(left, right, epsilon) { epsilon = defaultValue_default(epsilon, 0); return left === right || defined_default(left) && defined_default(right) && Math.abs(left.longitude - right.longitude) <= epsilon && Math.abs(left.latitude - right.latitude) <= epsilon && Math.abs(left.height - right.height) <= epsilon; }; Cartographic.ZERO = Object.freeze(new Cartographic(0, 0, 0)); Cartographic.prototype.clone = function(result) { return Cartographic.clone(this, result); }; Cartographic.prototype.equals = function(right) { return Cartographic.equals(this, right); }; Cartographic.prototype.equalsEpsilon = function(right, epsilon) { return Cartographic.equalsEpsilon(this, right, epsilon); }; Cartographic.prototype.toString = function() { return `(${this.longitude}, ${this.latitude}, ${this.height})`; }; var Cartographic_default = Cartographic; // node_modules/cesium/Source/Core/Ellipsoid.js function initialize(ellipsoid, x, y, z) { x = defaultValue_default(x, 0); y = defaultValue_default(y, 0); z = defaultValue_default(z, 0); Check_default.typeOf.number.greaterThanOrEquals("x", x, 0); Check_default.typeOf.number.greaterThanOrEquals("y", y, 0); Check_default.typeOf.number.greaterThanOrEquals("z", z, 0); ellipsoid._radii = new Cartesian3_default(x, y, z); ellipsoid._radiiSquared = new Cartesian3_default(x * x, y * y, z * z); ellipsoid._radiiToTheFourth = new Cartesian3_default( x * x * x * x, y * y * y * y, z * z * z * z ); ellipsoid._oneOverRadii = new Cartesian3_default( x === 0 ? 0 : 1 / x, y === 0 ? 0 : 1 / y, z === 0 ? 0 : 1 / z ); ellipsoid._oneOverRadiiSquared = new Cartesian3_default( x === 0 ? 0 : 1 / (x * x), y === 0 ? 0 : 1 / (y * y), z === 0 ? 0 : 1 / (z * z) ); ellipsoid._minimumRadius = Math.min(x, y, z); ellipsoid._maximumRadius = Math.max(x, y, z); ellipsoid._centerToleranceSquared = Math_default.EPSILON1; if (ellipsoid._radiiSquared.z !== 0) { ellipsoid._squaredXOverSquaredZ = ellipsoid._radiiSquared.x / ellipsoid._radiiSquared.z; } } function Ellipsoid(x, y, z) { this._radii = void 0; this._radiiSquared = void 0; this._radiiToTheFourth = void 0; this._oneOverRadii = void 0; this._oneOverRadiiSquared = void 0; this._minimumRadius = void 0; this._maximumRadius = void 0; this._centerToleranceSquared = void 0; this._squaredXOverSquaredZ = void 0; initialize(this, x, y, z); } Object.defineProperties(Ellipsoid.prototype, { radii: { get: function() { return this._radii; } }, radiiSquared: { get: function() { return this._radiiSquared; } }, radiiToTheFourth: { get: function() { return this._radiiToTheFourth; } }, oneOverRadii: { get: function() { return this._oneOverRadii; } }, oneOverRadiiSquared: { get: function() { return this._oneOverRadiiSquared; } }, minimumRadius: { get: function() { return this._minimumRadius; } }, maximumRadius: { get: function() { return this._maximumRadius; } } }); Ellipsoid.clone = function(ellipsoid, result) { if (!defined_default(ellipsoid)) { return void 0; } const radii = ellipsoid._radii; if (!defined_default(result)) { return new Ellipsoid(radii.x, radii.y, radii.z); } Cartesian3_default.clone(radii, result._radii); Cartesian3_default.clone(ellipsoid._radiiSquared, result._radiiSquared); Cartesian3_default.clone(ellipsoid._radiiToTheFourth, result._radiiToTheFourth); Cartesian3_default.clone(ellipsoid._oneOverRadii, result._oneOverRadii); Cartesian3_default.clone(ellipsoid._oneOverRadiiSquared, result._oneOverRadiiSquared); result._minimumRadius = ellipsoid._minimumRadius; result._maximumRadius = ellipsoid._maximumRadius; result._centerToleranceSquared = ellipsoid._centerToleranceSquared; return result; }; Ellipsoid.fromCartesian3 = function(cartesian11, result) { if (!defined_default(result)) { result = new Ellipsoid(); } if (!defined_default(cartesian11)) { return result; } initialize(result, cartesian11.x, cartesian11.y, cartesian11.z); return result; }; Ellipsoid.WGS84 = Object.freeze( new Ellipsoid(6378137, 6378137, 6356752314245179e-9) ); Ellipsoid.UNIT_SPHERE = Object.freeze(new Ellipsoid(1, 1, 1)); Ellipsoid.MOON = Object.freeze( new Ellipsoid( Math_default.LUNAR_RADIUS, Math_default.LUNAR_RADIUS, Math_default.LUNAR_RADIUS ) ); Ellipsoid.prototype.clone = function(result) { return Ellipsoid.clone(this, result); }; Ellipsoid.packedLength = Cartesian3_default.packedLength; Ellipsoid.pack = function(value, array, startingIndex) { Check_default.typeOf.object("value", value); Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); Cartesian3_default.pack(value._radii, array, startingIndex); return array; }; Ellipsoid.unpack = function(array, startingIndex, result) { Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); const radii = Cartesian3_default.unpack(array, startingIndex); return Ellipsoid.fromCartesian3(radii, result); }; Ellipsoid.prototype.geocentricSurfaceNormal = Cartesian3_default.normalize; Ellipsoid.prototype.geodeticSurfaceNormalCartographic = function(cartographic2, result) { Check_default.typeOf.object("cartographic", cartographic2); const longitude = cartographic2.longitude; const latitude = cartographic2.latitude; const cosLatitude = Math.cos(latitude); const x = cosLatitude * Math.cos(longitude); const y = cosLatitude * Math.sin(longitude); const z = Math.sin(latitude); if (!defined_default(result)) { result = new Cartesian3_default(); } result.x = x; result.y = y; result.z = z; return Cartesian3_default.normalize(result, result); }; Ellipsoid.prototype.geodeticSurfaceNormal = function(cartesian11, result) { if (Cartesian3_default.equalsEpsilon(cartesian11, Cartesian3_default.ZERO, Math_default.EPSILON14)) { return void 0; } if (!defined_default(result)) { result = new Cartesian3_default(); } result = Cartesian3_default.multiplyComponents( cartesian11, this._oneOverRadiiSquared, result ); return Cartesian3_default.normalize(result, result); }; var cartographicToCartesianNormal = new Cartesian3_default(); var cartographicToCartesianK = new Cartesian3_default(); Ellipsoid.prototype.cartographicToCartesian = function(cartographic2, result) { const n2 = cartographicToCartesianNormal; const k = cartographicToCartesianK; this.geodeticSurfaceNormalCartographic(cartographic2, n2); Cartesian3_default.multiplyComponents(this._radiiSquared, n2, k); const gamma = Math.sqrt(Cartesian3_default.dot(n2, k)); Cartesian3_default.divideByScalar(k, gamma, k); Cartesian3_default.multiplyByScalar(n2, cartographic2.height, n2); if (!defined_default(result)) { result = new Cartesian3_default(); } return Cartesian3_default.add(k, n2, result); }; Ellipsoid.prototype.cartographicArrayToCartesianArray = function(cartographics, result) { Check_default.defined("cartographics", cartographics); const length3 = cartographics.length; if (!defined_default(result)) { result = new Array(length3); } else { result.length = length3; } for (let i2 = 0; i2 < length3; i2++) { result[i2] = this.cartographicToCartesian(cartographics[i2], result[i2]); } return result; }; var cartesianToCartographicN2 = new Cartesian3_default(); var cartesianToCartographicP2 = new Cartesian3_default(); var cartesianToCartographicH2 = new Cartesian3_default(); Ellipsoid.prototype.cartesianToCartographic = function(cartesian11, result) { const p2 = this.scaleToGeodeticSurface(cartesian11, cartesianToCartographicP2); if (!defined_default(p2)) { return void 0; } const n2 = this.geodeticSurfaceNormal(p2, cartesianToCartographicN2); const h = Cartesian3_default.subtract(cartesian11, p2, cartesianToCartographicH2); const longitude = Math.atan2(n2.y, n2.x); const latitude = Math.asin(n2.z); const height = Math_default.sign(Cartesian3_default.dot(h, cartesian11)) * Cartesian3_default.magnitude(h); if (!defined_default(result)) { return new Cartographic_default(longitude, latitude, height); } result.longitude = longitude; result.latitude = latitude; result.height = height; return result; }; Ellipsoid.prototype.cartesianArrayToCartographicArray = function(cartesians, result) { Check_default.defined("cartesians", cartesians); const length3 = cartesians.length; if (!defined_default(result)) { result = new Array(length3); } else { result.length = length3; } for (let i2 = 0; i2 < length3; ++i2) { result[i2] = this.cartesianToCartographic(cartesians[i2], result[i2]); } return result; }; Ellipsoid.prototype.scaleToGeodeticSurface = function(cartesian11, result) { return scaleToGeodeticSurface_default( cartesian11, this._oneOverRadii, this._oneOverRadiiSquared, this._centerToleranceSquared, result ); }; Ellipsoid.prototype.scaleToGeocentricSurface = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); if (!defined_default(result)) { result = new Cartesian3_default(); } const positionX = cartesian11.x; const positionY = cartesian11.y; const positionZ = cartesian11.z; const oneOverRadiiSquared = this._oneOverRadiiSquared; const beta = 1 / Math.sqrt( positionX * positionX * oneOverRadiiSquared.x + positionY * positionY * oneOverRadiiSquared.y + positionZ * positionZ * oneOverRadiiSquared.z ); return Cartesian3_default.multiplyByScalar(cartesian11, beta, result); }; Ellipsoid.prototype.transformPositionToScaledSpace = function(position, result) { if (!defined_default(result)) { result = new Cartesian3_default(); } return Cartesian3_default.multiplyComponents(position, this._oneOverRadii, result); }; Ellipsoid.prototype.transformPositionFromScaledSpace = function(position, result) { if (!defined_default(result)) { result = new Cartesian3_default(); } return Cartesian3_default.multiplyComponents(position, this._radii, result); }; Ellipsoid.prototype.equals = function(right) { return this === right || defined_default(right) && Cartesian3_default.equals(this._radii, right._radii); }; Ellipsoid.prototype.toString = function() { return this._radii.toString(); }; Ellipsoid.prototype.getSurfaceNormalIntersectionWithZAxis = function(position, buffer, result) { Check_default.typeOf.object("position", position); if (!Math_default.equalsEpsilon( this._radii.x, this._radii.y, Math_default.EPSILON15 )) { throw new DeveloperError_default( "Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)" ); } Check_default.typeOf.number.greaterThan("Ellipsoid.radii.z", this._radii.z, 0); buffer = defaultValue_default(buffer, 0); const squaredXOverSquaredZ = this._squaredXOverSquaredZ; if (!defined_default(result)) { result = new Cartesian3_default(); } result.x = 0; result.y = 0; result.z = position.z * (1 - squaredXOverSquaredZ); if (Math.abs(result.z) >= this._radii.z - buffer) { return void 0; } return result; }; var abscissas = [ 0.14887433898163, 0.43339539412925, 0.67940956829902, 0.86506336668898, 0.97390652851717, 0 ]; var weights = [ 0.29552422471475, 0.26926671930999, 0.21908636251598, 0.14945134915058, 0.066671344308684, 0 ]; function gaussLegendreQuadrature(a4, b, func) { Check_default.typeOf.number("a", a4); Check_default.typeOf.number("b", b); Check_default.typeOf.func("func", func); const xMean = 0.5 * (b + a4); const xRange = 0.5 * (b - a4); let sum = 0; for (let i2 = 0; i2 < 5; i2++) { const dx = xRange * abscissas[i2]; sum += weights[i2] * (func(xMean + dx) + func(xMean - dx)); } sum *= xRange; return sum; } Ellipsoid.prototype.surfaceArea = function(rectangle) { Check_default.typeOf.object("rectangle", rectangle); const minLongitude = rectangle.west; let maxLongitude = rectangle.east; const minLatitude = rectangle.south; const maxLatitude = rectangle.north; while (maxLongitude < minLongitude) { maxLongitude += Math_default.TWO_PI; } const radiiSquared = this._radiiSquared; const a22 = radiiSquared.x; const b2 = radiiSquared.y; const c22 = radiiSquared.z; const a2b2 = a22 * b2; return gaussLegendreQuadrature(minLatitude, maxLatitude, function(lat) { const sinPhi = Math.cos(lat); const cosPhi = Math.sin(lat); return Math.cos(lat) * gaussLegendreQuadrature(minLongitude, maxLongitude, function(lon) { const cosTheta = Math.cos(lon); const sinTheta = Math.sin(lon); return Math.sqrt( a2b2 * cosPhi * cosPhi + c22 * (b2 * cosTheta * cosTheta + a22 * sinTheta * sinTheta) * sinPhi * sinPhi ); }); }); }; var Ellipsoid_default = Ellipsoid; // node_modules/cesium/Source/Core/GeographicProjection.js function GeographicProjection(ellipsoid) { this._ellipsoid = defaultValue_default(ellipsoid, Ellipsoid_default.WGS84); this._semimajorAxis = this._ellipsoid.maximumRadius; this._oneOverSemimajorAxis = 1 / this._semimajorAxis; } Object.defineProperties(GeographicProjection.prototype, { ellipsoid: { get: function() { return this._ellipsoid; } } }); GeographicProjection.prototype.project = function(cartographic2, result) { const semimajorAxis = this._semimajorAxis; const x = cartographic2.longitude * semimajorAxis; const y = cartographic2.latitude * semimajorAxis; const z = cartographic2.height; if (!defined_default(result)) { return new Cartesian3_default(x, y, z); } result.x = x; result.y = y; result.z = z; return result; }; GeographicProjection.prototype.unproject = function(cartesian11, result) { if (!defined_default(cartesian11)) { throw new DeveloperError_default("cartesian is required"); } const oneOverEarthSemimajorAxis = this._oneOverSemimajorAxis; const longitude = cartesian11.x * oneOverEarthSemimajorAxis; const latitude = cartesian11.y * oneOverEarthSemimajorAxis; const height = cartesian11.z; if (!defined_default(result)) { return new Cartographic_default(longitude, latitude, height); } result.longitude = longitude; result.latitude = latitude; result.height = height; return result; }; var GeographicProjection_default = GeographicProjection; // node_modules/cesium/Source/Core/Intersect.js var Intersect = { OUTSIDE: -1, INTERSECTING: 0, INSIDE: 1 }; var Intersect_default = Object.freeze(Intersect); // node_modules/cesium/Source/Core/Interval.js function Interval(start, stop2) { this.start = defaultValue_default(start, 0); this.stop = defaultValue_default(stop2, 0); } var Interval_default = Interval; // node_modules/cesium/Source/Core/Matrix3.js function Matrix3(column0Row0, column1Row0, column2Row0, column0Row1, column1Row1, column2Row1, column0Row2, column1Row2, column2Row2) { this[0] = defaultValue_default(column0Row0, 0); this[1] = defaultValue_default(column0Row1, 0); this[2] = defaultValue_default(column0Row2, 0); this[3] = defaultValue_default(column1Row0, 0); this[4] = defaultValue_default(column1Row1, 0); this[5] = defaultValue_default(column1Row2, 0); this[6] = defaultValue_default(column2Row0, 0); this[7] = defaultValue_default(column2Row1, 0); this[8] = defaultValue_default(column2Row2, 0); } Matrix3.packedLength = 9; Matrix3.pack = function(value, array, startingIndex) { Check_default.typeOf.object("value", value); Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); array[startingIndex++] = value[0]; array[startingIndex++] = value[1]; array[startingIndex++] = value[2]; array[startingIndex++] = value[3]; array[startingIndex++] = value[4]; array[startingIndex++] = value[5]; array[startingIndex++] = value[6]; array[startingIndex++] = value[7]; array[startingIndex++] = value[8]; return array; }; Matrix3.unpack = function(array, startingIndex, result) { Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); if (!defined_default(result)) { result = new Matrix3(); } result[0] = array[startingIndex++]; result[1] = array[startingIndex++]; result[2] = array[startingIndex++]; result[3] = array[startingIndex++]; result[4] = array[startingIndex++]; result[5] = array[startingIndex++]; result[6] = array[startingIndex++]; result[7] = array[startingIndex++]; result[8] = array[startingIndex++]; return result; }; Matrix3.packArray = function(array, result) { Check_default.defined("array", array); const length3 = array.length; const resultLength = length3 * 9; if (!defined_default(result)) { result = new Array(resultLength); } else if (!Array.isArray(result) && result.length !== resultLength) { throw new DeveloperError_default( "If result is a typed array, it must have exactly array.length * 9 elements" ); } else if (result.length !== resultLength) { result.length = resultLength; } for (let i2 = 0; i2 < length3; ++i2) { Matrix3.pack(array[i2], result, i2 * 9); } return result; }; Matrix3.unpackArray = function(array, result) { Check_default.defined("array", array); Check_default.typeOf.number.greaterThanOrEquals("array.length", array.length, 9); if (array.length % 9 !== 0) { throw new DeveloperError_default("array length must be a multiple of 9."); } const length3 = array.length; if (!defined_default(result)) { result = new Array(length3 / 9); } else { result.length = length3 / 9; } for (let i2 = 0; i2 < length3; i2 += 9) { const index2 = i2 / 9; result[index2] = Matrix3.unpack(array, i2, result[index2]); } return result; }; Matrix3.clone = function(matrix, result) { if (!defined_default(matrix)) { return void 0; } if (!defined_default(result)) { return new Matrix3( matrix[0], matrix[3], matrix[6], matrix[1], matrix[4], matrix[7], matrix[2], matrix[5], matrix[8] ); } result[0] = matrix[0]; result[1] = matrix[1]; result[2] = matrix[2]; result[3] = matrix[3]; result[4] = matrix[4]; result[5] = matrix[5]; result[6] = matrix[6]; result[7] = matrix[7]; result[8] = matrix[8]; return result; }; Matrix3.fromArray = Matrix3.unpack; Matrix3.fromColumnMajorArray = function(values, result) { Check_default.defined("values", values); return Matrix3.clone(values, result); }; Matrix3.fromRowMajorArray = function(values, result) { Check_default.defined("values", values); if (!defined_default(result)) { return new Matrix3( values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[7], values[8] ); } result[0] = values[0]; result[1] = values[3]; result[2] = values[6]; result[3] = values[1]; result[4] = values[4]; result[5] = values[7]; result[6] = values[2]; result[7] = values[5]; result[8] = values[8]; return result; }; Matrix3.fromQuaternion = function(quaternion, result) { Check_default.typeOf.object("quaternion", quaternion); const x2 = quaternion.x * quaternion.x; const xy = quaternion.x * quaternion.y; const xz = quaternion.x * quaternion.z; const xw = quaternion.x * quaternion.w; const y2 = quaternion.y * quaternion.y; const yz = quaternion.y * quaternion.z; const yw = quaternion.y * quaternion.w; const z2 = quaternion.z * quaternion.z; const zw = quaternion.z * quaternion.w; const w2 = quaternion.w * quaternion.w; const m00 = x2 - y2 - z2 + w2; const m01 = 2 * (xy - zw); const m02 = 2 * (xz + yw); const m10 = 2 * (xy + zw); const m11 = -x2 + y2 - z2 + w2; const m12 = 2 * (yz - xw); const m20 = 2 * (xz - yw); const m21 = 2 * (yz + xw); const m22 = -x2 - y2 + z2 + w2; if (!defined_default(result)) { return new Matrix3(m00, m01, m02, m10, m11, m12, m20, m21, m22); } result[0] = m00; result[1] = m10; result[2] = m20; result[3] = m01; result[4] = m11; result[5] = m21; result[6] = m02; result[7] = m12; result[8] = m22; return result; }; Matrix3.fromHeadingPitchRoll = function(headingPitchRoll, result) { Check_default.typeOf.object("headingPitchRoll", headingPitchRoll); const cosTheta = Math.cos(-headingPitchRoll.pitch); const cosPsi = Math.cos(-headingPitchRoll.heading); const cosPhi = Math.cos(headingPitchRoll.roll); const sinTheta = Math.sin(-headingPitchRoll.pitch); const sinPsi = Math.sin(-headingPitchRoll.heading); const sinPhi = Math.sin(headingPitchRoll.roll); const m00 = cosTheta * cosPsi; const m01 = -cosPhi * sinPsi + sinPhi * sinTheta * cosPsi; const m02 = sinPhi * sinPsi + cosPhi * sinTheta * cosPsi; const m10 = cosTheta * sinPsi; const m11 = cosPhi * cosPsi + sinPhi * sinTheta * sinPsi; const m12 = -sinPhi * cosPsi + cosPhi * sinTheta * sinPsi; const m20 = -sinTheta; const m21 = sinPhi * cosTheta; const m22 = cosPhi * cosTheta; if (!defined_default(result)) { return new Matrix3(m00, m01, m02, m10, m11, m12, m20, m21, m22); } result[0] = m00; result[1] = m10; result[2] = m20; result[3] = m01; result[4] = m11; result[5] = m21; result[6] = m02; result[7] = m12; result[8] = m22; return result; }; Matrix3.fromScale = function(scale, result) { Check_default.typeOf.object("scale", scale); if (!defined_default(result)) { return new Matrix3(scale.x, 0, 0, 0, scale.y, 0, 0, 0, scale.z); } result[0] = scale.x; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = scale.y; result[5] = 0; result[6] = 0; result[7] = 0; result[8] = scale.z; return result; }; Matrix3.fromUniformScale = function(scale, result) { Check_default.typeOf.number("scale", scale); if (!defined_default(result)) { return new Matrix3(scale, 0, 0, 0, scale, 0, 0, 0, scale); } result[0] = scale; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = scale; result[5] = 0; result[6] = 0; result[7] = 0; result[8] = scale; return result; }; Matrix3.fromCrossProduct = function(vector, result) { Check_default.typeOf.object("vector", vector); if (!defined_default(result)) { return new Matrix3( 0, -vector.z, vector.y, vector.z, 0, -vector.x, -vector.y, vector.x, 0 ); } result[0] = 0; result[1] = vector.z; result[2] = -vector.y; result[3] = -vector.z; result[4] = 0; result[5] = vector.x; result[6] = vector.y; result[7] = -vector.x; result[8] = 0; return result; }; Matrix3.fromRotationX = function(angle, result) { Check_default.typeOf.number("angle", angle); const cosAngle = Math.cos(angle); const sinAngle = Math.sin(angle); if (!defined_default(result)) { return new Matrix3( 1, 0, 0, 0, cosAngle, -sinAngle, 0, sinAngle, cosAngle ); } result[0] = 1; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = cosAngle; result[5] = sinAngle; result[6] = 0; result[7] = -sinAngle; result[8] = cosAngle; return result; }; Matrix3.fromRotationY = function(angle, result) { Check_default.typeOf.number("angle", angle); const cosAngle = Math.cos(angle); const sinAngle = Math.sin(angle); if (!defined_default(result)) { return new Matrix3( cosAngle, 0, sinAngle, 0, 1, 0, -sinAngle, 0, cosAngle ); } result[0] = cosAngle; result[1] = 0; result[2] = -sinAngle; result[3] = 0; result[4] = 1; result[5] = 0; result[6] = sinAngle; result[7] = 0; result[8] = cosAngle; return result; }; Matrix3.fromRotationZ = function(angle, result) { Check_default.typeOf.number("angle", angle); const cosAngle = Math.cos(angle); const sinAngle = Math.sin(angle); if (!defined_default(result)) { return new Matrix3( cosAngle, -sinAngle, 0, sinAngle, cosAngle, 0, 0, 0, 1 ); } result[0] = cosAngle; result[1] = sinAngle; result[2] = 0; result[3] = -sinAngle; result[4] = cosAngle; result[5] = 0; result[6] = 0; result[7] = 0; result[8] = 1; return result; }; Matrix3.toArray = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); if (!defined_default(result)) { return [ matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5], matrix[6], matrix[7], matrix[8] ]; } result[0] = matrix[0]; result[1] = matrix[1]; result[2] = matrix[2]; result[3] = matrix[3]; result[4] = matrix[4]; result[5] = matrix[5]; result[6] = matrix[6]; result[7] = matrix[7]; result[8] = matrix[8]; return result; }; Matrix3.getElementIndex = function(column, row) { Check_default.typeOf.number.greaterThanOrEquals("row", row, 0); Check_default.typeOf.number.lessThanOrEquals("row", row, 2); Check_default.typeOf.number.greaterThanOrEquals("column", column, 0); Check_default.typeOf.number.lessThanOrEquals("column", column, 2); return column * 3 + row; }; Matrix3.getColumn = function(matrix, index2, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number.greaterThanOrEquals("index", index2, 0); Check_default.typeOf.number.lessThanOrEquals("index", index2, 2); Check_default.typeOf.object("result", result); const startIndex = index2 * 3; const x = matrix[startIndex]; const y = matrix[startIndex + 1]; const z = matrix[startIndex + 2]; result.x = x; result.y = y; result.z = z; return result; }; Matrix3.setColumn = function(matrix, index2, cartesian11, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number.greaterThanOrEquals("index", index2, 0); Check_default.typeOf.number.lessThanOrEquals("index", index2, 2); Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result = Matrix3.clone(matrix, result); const startIndex = index2 * 3; result[startIndex] = cartesian11.x; result[startIndex + 1] = cartesian11.y; result[startIndex + 2] = cartesian11.z; return result; }; Matrix3.getRow = function(matrix, index2, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number.greaterThanOrEquals("index", index2, 0); Check_default.typeOf.number.lessThanOrEquals("index", index2, 2); Check_default.typeOf.object("result", result); const x = matrix[index2]; const y = matrix[index2 + 3]; const z = matrix[index2 + 6]; result.x = x; result.y = y; result.z = z; return result; }; Matrix3.setRow = function(matrix, index2, cartesian11, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number.greaterThanOrEquals("index", index2, 0); Check_default.typeOf.number.lessThanOrEquals("index", index2, 2); Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result = Matrix3.clone(matrix, result); result[index2] = cartesian11.x; result[index2 + 3] = cartesian11.y; result[index2 + 6] = cartesian11.z; return result; }; var scaleScratch1 = new Cartesian3_default(); Matrix3.setScale = function(matrix, scale, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("scale", scale); Check_default.typeOf.object("result", result); const existingScale = Matrix3.getScale(matrix, scaleScratch1); const scaleRatioX = scale.x / existingScale.x; const scaleRatioY = scale.y / existingScale.y; const scaleRatioZ = scale.z / existingScale.z; result[0] = matrix[0] * scaleRatioX; result[1] = matrix[1] * scaleRatioX; result[2] = matrix[2] * scaleRatioX; result[3] = matrix[3] * scaleRatioY; result[4] = matrix[4] * scaleRatioY; result[5] = matrix[5] * scaleRatioY; result[6] = matrix[6] * scaleRatioZ; result[7] = matrix[7] * scaleRatioZ; result[8] = matrix[8] * scaleRatioZ; return result; }; var scaleScratch2 = new Cartesian3_default(); Matrix3.setUniformScale = function(matrix, scale, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number("scale", scale); Check_default.typeOf.object("result", result); const existingScale = Matrix3.getScale(matrix, scaleScratch2); const scaleRatioX = scale / existingScale.x; const scaleRatioY = scale / existingScale.y; const scaleRatioZ = scale / existingScale.z; result[0] = matrix[0] * scaleRatioX; result[1] = matrix[1] * scaleRatioX; result[2] = matrix[2] * scaleRatioX; result[3] = matrix[3] * scaleRatioY; result[4] = matrix[4] * scaleRatioY; result[5] = matrix[5] * scaleRatioY; result[6] = matrix[6] * scaleRatioZ; result[7] = matrix[7] * scaleRatioZ; result[8] = matrix[8] * scaleRatioZ; return result; }; var scratchColumn = new Cartesian3_default(); Matrix3.getScale = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); result.x = Cartesian3_default.magnitude( Cartesian3_default.fromElements(matrix[0], matrix[1], matrix[2], scratchColumn) ); result.y = Cartesian3_default.magnitude( Cartesian3_default.fromElements(matrix[3], matrix[4], matrix[5], scratchColumn) ); result.z = Cartesian3_default.magnitude( Cartesian3_default.fromElements(matrix[6], matrix[7], matrix[8], scratchColumn) ); return result; }; var scaleScratch3 = new Cartesian3_default(); Matrix3.getMaximumScale = function(matrix) { Matrix3.getScale(matrix, scaleScratch3); return Cartesian3_default.maximumComponent(scaleScratch3); }; var scaleScratch4 = new Cartesian3_default(); Matrix3.setRotation = function(matrix, rotation, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); const scale = Matrix3.getScale(matrix, scaleScratch4); result[0] = rotation[0] * scale.x; result[1] = rotation[1] * scale.x; result[2] = rotation[2] * scale.x; result[3] = rotation[3] * scale.y; result[4] = rotation[4] * scale.y; result[5] = rotation[5] * scale.y; result[6] = rotation[6] * scale.z; result[7] = rotation[7] * scale.z; result[8] = rotation[8] * scale.z; return result; }; var scaleScratch5 = new Cartesian3_default(); Matrix3.getRotation = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); const scale = Matrix3.getScale(matrix, scaleScratch5); result[0] = matrix[0] / scale.x; result[1] = matrix[1] / scale.x; result[2] = matrix[2] / scale.x; result[3] = matrix[3] / scale.y; result[4] = matrix[4] / scale.y; result[5] = matrix[5] / scale.y; result[6] = matrix[6] / scale.z; result[7] = matrix[7] / scale.z; result[8] = matrix[8] / scale.z; return result; }; Matrix3.multiply = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); const column0Row0 = left[0] * right[0] + left[3] * right[1] + left[6] * right[2]; const column0Row1 = left[1] * right[0] + left[4] * right[1] + left[7] * right[2]; const column0Row2 = left[2] * right[0] + left[5] * right[1] + left[8] * right[2]; const column1Row0 = left[0] * right[3] + left[3] * right[4] + left[6] * right[5]; const column1Row1 = left[1] * right[3] + left[4] * right[4] + left[7] * right[5]; const column1Row2 = left[2] * right[3] + left[5] * right[4] + left[8] * right[5]; const column2Row0 = left[0] * right[6] + left[3] * right[7] + left[6] * right[8]; const column2Row1 = left[1] * right[6] + left[4] * right[7] + left[7] * right[8]; const column2Row2 = left[2] * right[6] + left[5] * right[7] + left[8] * right[8]; result[0] = column0Row0; result[1] = column0Row1; result[2] = column0Row2; result[3] = column1Row0; result[4] = column1Row1; result[5] = column1Row2; result[6] = column2Row0; result[7] = column2Row1; result[8] = column2Row2; return result; }; Matrix3.add = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result[0] = left[0] + right[0]; result[1] = left[1] + right[1]; result[2] = left[2] + right[2]; result[3] = left[3] + right[3]; result[4] = left[4] + right[4]; result[5] = left[5] + right[5]; result[6] = left[6] + right[6]; result[7] = left[7] + right[7]; result[8] = left[8] + right[8]; return result; }; Matrix3.subtract = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result[0] = left[0] - right[0]; result[1] = left[1] - right[1]; result[2] = left[2] - right[2]; result[3] = left[3] - right[3]; result[4] = left[4] - right[4]; result[5] = left[5] - right[5]; result[6] = left[6] - right[6]; result[7] = left[7] - right[7]; result[8] = left[8] - right[8]; return result; }; Matrix3.multiplyByVector = function(matrix, cartesian11, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const vX = cartesian11.x; const vY = cartesian11.y; const vZ = cartesian11.z; const x = matrix[0] * vX + matrix[3] * vY + matrix[6] * vZ; const y = matrix[1] * vX + matrix[4] * vY + matrix[7] * vZ; const z = matrix[2] * vX + matrix[5] * vY + matrix[8] * vZ; result.x = x; result.y = y; result.z = z; return result; }; Matrix3.multiplyByScalar = function(matrix, scalar, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number("scalar", scalar); Check_default.typeOf.object("result", result); result[0] = matrix[0] * scalar; result[1] = matrix[1] * scalar; result[2] = matrix[2] * scalar; result[3] = matrix[3] * scalar; result[4] = matrix[4] * scalar; result[5] = matrix[5] * scalar; result[6] = matrix[6] * scalar; result[7] = matrix[7] * scalar; result[8] = matrix[8] * scalar; return result; }; Matrix3.multiplyByScale = function(matrix, scale, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("scale", scale); Check_default.typeOf.object("result", result); result[0] = matrix[0] * scale.x; result[1] = matrix[1] * scale.x; result[2] = matrix[2] * scale.x; result[3] = matrix[3] * scale.y; result[4] = matrix[4] * scale.y; result[5] = matrix[5] * scale.y; result[6] = matrix[6] * scale.z; result[7] = matrix[7] * scale.z; result[8] = matrix[8] * scale.z; return result; }; Matrix3.multiplyByUniformScale = function(matrix, scale, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number("scale", scale); Check_default.typeOf.object("result", result); result[0] = matrix[0] * scale; result[1] = matrix[1] * scale; result[2] = matrix[2] * scale; result[3] = matrix[3] * scale; result[4] = matrix[4] * scale; result[5] = matrix[5] * scale; result[6] = matrix[6] * scale; result[7] = matrix[7] * scale; result[8] = matrix[8] * scale; return result; }; Matrix3.negate = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); result[0] = -matrix[0]; result[1] = -matrix[1]; result[2] = -matrix[2]; result[3] = -matrix[3]; result[4] = -matrix[4]; result[5] = -matrix[5]; result[6] = -matrix[6]; result[7] = -matrix[7]; result[8] = -matrix[8]; return result; }; Matrix3.transpose = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); const column0Row0 = matrix[0]; const column0Row1 = matrix[3]; const column0Row2 = matrix[6]; const column1Row0 = matrix[1]; const column1Row1 = matrix[4]; const column1Row2 = matrix[7]; const column2Row0 = matrix[2]; const column2Row1 = matrix[5]; const column2Row2 = matrix[8]; result[0] = column0Row0; result[1] = column0Row1; result[2] = column0Row2; result[3] = column1Row0; result[4] = column1Row1; result[5] = column1Row2; result[6] = column2Row0; result[7] = column2Row1; result[8] = column2Row2; return result; }; function computeFrobeniusNorm(matrix) { let norm = 0; for (let i2 = 0; i2 < 9; ++i2) { const temp = matrix[i2]; norm += temp * temp; } return Math.sqrt(norm); } var rowVal = [1, 0, 0]; var colVal = [2, 2, 1]; function offDiagonalFrobeniusNorm(matrix) { let norm = 0; for (let i2 = 0; i2 < 3; ++i2) { const temp = matrix[Matrix3.getElementIndex(colVal[i2], rowVal[i2])]; norm += 2 * temp * temp; } return Math.sqrt(norm); } function shurDecomposition(matrix, result) { const tolerance = Math_default.EPSILON15; let maxDiagonal = 0; let rotAxis2 = 1; for (let i2 = 0; i2 < 3; ++i2) { const temp = Math.abs( matrix[Matrix3.getElementIndex(colVal[i2], rowVal[i2])] ); if (temp > maxDiagonal) { rotAxis2 = i2; maxDiagonal = temp; } } let c14 = 1; let s2 = 0; const p2 = rowVal[rotAxis2]; const q = colVal[rotAxis2]; if (Math.abs(matrix[Matrix3.getElementIndex(q, p2)]) > tolerance) { const qq = matrix[Matrix3.getElementIndex(q, q)]; const pp = matrix[Matrix3.getElementIndex(p2, p2)]; const qp = matrix[Matrix3.getElementIndex(q, p2)]; const tau = (qq - pp) / 2 / qp; let t; if (tau < 0) { t = -1 / (-tau + Math.sqrt(1 + tau * tau)); } else { t = 1 / (tau + Math.sqrt(1 + tau * tau)); } c14 = 1 / Math.sqrt(1 + t * t); s2 = t * c14; } result = Matrix3.clone(Matrix3.IDENTITY, result); result[Matrix3.getElementIndex(p2, p2)] = result[Matrix3.getElementIndex(q, q)] = c14; result[Matrix3.getElementIndex(q, p2)] = s2; result[Matrix3.getElementIndex(p2, q)] = -s2; return result; } var jMatrix = new Matrix3(); var jMatrixTranspose = new Matrix3(); Matrix3.computeEigenDecomposition = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); const tolerance = Math_default.EPSILON20; const maxSweeps = 10; let count = 0; let sweep = 0; if (!defined_default(result)) { result = {}; } const unitaryMatrix = result.unitary = Matrix3.clone( Matrix3.IDENTITY, result.unitary ); const diagMatrix = result.diagonal = Matrix3.clone(matrix, result.diagonal); const epsilon = tolerance * computeFrobeniusNorm(diagMatrix); while (sweep < maxSweeps && offDiagonalFrobeniusNorm(diagMatrix) > epsilon) { shurDecomposition(diagMatrix, jMatrix); Matrix3.transpose(jMatrix, jMatrixTranspose); Matrix3.multiply(diagMatrix, jMatrix, diagMatrix); Matrix3.multiply(jMatrixTranspose, diagMatrix, diagMatrix); Matrix3.multiply(unitaryMatrix, jMatrix, unitaryMatrix); if (++count > 2) { ++sweep; count = 0; } } return result; }; Matrix3.abs = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); result[0] = Math.abs(matrix[0]); result[1] = Math.abs(matrix[1]); result[2] = Math.abs(matrix[2]); result[3] = Math.abs(matrix[3]); result[4] = Math.abs(matrix[4]); result[5] = Math.abs(matrix[5]); result[6] = Math.abs(matrix[6]); result[7] = Math.abs(matrix[7]); result[8] = Math.abs(matrix[8]); return result; }; Matrix3.determinant = function(matrix) { Check_default.typeOf.object("matrix", matrix); const m11 = matrix[0]; const m21 = matrix[3]; const m31 = matrix[6]; const m12 = matrix[1]; const m22 = matrix[4]; const m32 = matrix[7]; const m13 = matrix[2]; const m23 = matrix[5]; const m33 = matrix[8]; return m11 * (m22 * m33 - m23 * m32) + m12 * (m23 * m31 - m21 * m33) + m13 * (m21 * m32 - m22 * m31); }; Matrix3.inverse = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); const m11 = matrix[0]; const m21 = matrix[1]; const m31 = matrix[2]; const m12 = matrix[3]; const m22 = matrix[4]; const m32 = matrix[5]; const m13 = matrix[6]; const m23 = matrix[7]; const m33 = matrix[8]; const determinant = Matrix3.determinant(matrix); if (Math.abs(determinant) <= Math_default.EPSILON15) { throw new DeveloperError_default("matrix is not invertible"); } result[0] = m22 * m33 - m23 * m32; result[1] = m23 * m31 - m21 * m33; result[2] = m21 * m32 - m22 * m31; result[3] = m13 * m32 - m12 * m33; result[4] = m11 * m33 - m13 * m31; result[5] = m12 * m31 - m11 * m32; result[6] = m12 * m23 - m13 * m22; result[7] = m13 * m21 - m11 * m23; result[8] = m11 * m22 - m12 * m21; const scale = 1 / determinant; return Matrix3.multiplyByScalar(result, scale, result); }; var scratchTransposeMatrix = new Matrix3(); Matrix3.inverseTranspose = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); return Matrix3.inverse( Matrix3.transpose(matrix, scratchTransposeMatrix), result ); }; Matrix3.equals = function(left, right) { return left === right || defined_default(left) && defined_default(right) && left[0] === right[0] && left[1] === right[1] && left[2] === right[2] && left[3] === right[3] && left[4] === right[4] && left[5] === right[5] && left[6] === right[6] && left[7] === right[7] && left[8] === right[8]; }; Matrix3.equalsEpsilon = function(left, right, epsilon) { epsilon = defaultValue_default(epsilon, 0); return left === right || defined_default(left) && defined_default(right) && Math.abs(left[0] - right[0]) <= epsilon && Math.abs(left[1] - right[1]) <= epsilon && Math.abs(left[2] - right[2]) <= epsilon && Math.abs(left[3] - right[3]) <= epsilon && Math.abs(left[4] - right[4]) <= epsilon && Math.abs(left[5] - right[5]) <= epsilon && Math.abs(left[6] - right[6]) <= epsilon && Math.abs(left[7] - right[7]) <= epsilon && Math.abs(left[8] - right[8]) <= epsilon; }; Matrix3.IDENTITY = Object.freeze( new Matrix3(1, 0, 0, 0, 1, 0, 0, 0, 1) ); Matrix3.ZERO = Object.freeze( new Matrix3(0, 0, 0, 0, 0, 0, 0, 0, 0) ); Matrix3.COLUMN0ROW0 = 0; Matrix3.COLUMN0ROW1 = 1; Matrix3.COLUMN0ROW2 = 2; Matrix3.COLUMN1ROW0 = 3; Matrix3.COLUMN1ROW1 = 4; Matrix3.COLUMN1ROW2 = 5; Matrix3.COLUMN2ROW0 = 6; Matrix3.COLUMN2ROW1 = 7; Matrix3.COLUMN2ROW2 = 8; Object.defineProperties(Matrix3.prototype, { length: { get: function() { return Matrix3.packedLength; } } }); Matrix3.prototype.clone = function(result) { return Matrix3.clone(this, result); }; Matrix3.prototype.equals = function(right) { return Matrix3.equals(this, right); }; Matrix3.equalsArray = function(matrix, array, offset2) { return matrix[0] === array[offset2] && matrix[1] === array[offset2 + 1] && matrix[2] === array[offset2 + 2] && matrix[3] === array[offset2 + 3] && matrix[4] === array[offset2 + 4] && matrix[5] === array[offset2 + 5] && matrix[6] === array[offset2 + 6] && matrix[7] === array[offset2 + 7] && matrix[8] === array[offset2 + 8]; }; Matrix3.prototype.equalsEpsilon = function(right, epsilon) { return Matrix3.equalsEpsilon(this, right, epsilon); }; Matrix3.prototype.toString = function() { return `(${this[0]}, ${this[3]}, ${this[6]}) (${this[1]}, ${this[4]}, ${this[7]}) (${this[2]}, ${this[5]}, ${this[8]})`; }; var Matrix3_default = Matrix3; // node_modules/cesium/Source/Core/Cartesian4.js function Cartesian4(x, y, z, w) { this.x = defaultValue_default(x, 0); this.y = defaultValue_default(y, 0); this.z = defaultValue_default(z, 0); this.w = defaultValue_default(w, 0); } Cartesian4.fromElements = function(x, y, z, w, result) { if (!defined_default(result)) { return new Cartesian4(x, y, z, w); } result.x = x; result.y = y; result.z = z; result.w = w; return result; }; Cartesian4.fromColor = function(color, result) { Check_default.typeOf.object("color", color); if (!defined_default(result)) { return new Cartesian4(color.red, color.green, color.blue, color.alpha); } result.x = color.red; result.y = color.green; result.z = color.blue; result.w = color.alpha; return result; }; Cartesian4.clone = function(cartesian11, result) { if (!defined_default(cartesian11)) { return void 0; } if (!defined_default(result)) { return new Cartesian4(cartesian11.x, cartesian11.y, cartesian11.z, cartesian11.w); } result.x = cartesian11.x; result.y = cartesian11.y; result.z = cartesian11.z; result.w = cartesian11.w; return result; }; Cartesian4.packedLength = 4; Cartesian4.pack = function(value, array, startingIndex) { Check_default.typeOf.object("value", value); Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); array[startingIndex++] = value.x; array[startingIndex++] = value.y; array[startingIndex++] = value.z; array[startingIndex] = value.w; return array; }; Cartesian4.unpack = function(array, startingIndex, result) { Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); if (!defined_default(result)) { result = new Cartesian4(); } result.x = array[startingIndex++]; result.y = array[startingIndex++]; result.z = array[startingIndex++]; result.w = array[startingIndex]; return result; }; Cartesian4.packArray = function(array, result) { Check_default.defined("array", array); const length3 = array.length; const resultLength = length3 * 4; if (!defined_default(result)) { result = new Array(resultLength); } else if (!Array.isArray(result) && result.length !== resultLength) { throw new DeveloperError_default( "If result is a typed array, it must have exactly array.length * 4 elements" ); } else if (result.length !== resultLength) { result.length = resultLength; } for (let i2 = 0; i2 < length3; ++i2) { Cartesian4.pack(array[i2], result, i2 * 4); } return result; }; Cartesian4.unpackArray = function(array, result) { Check_default.defined("array", array); Check_default.typeOf.number.greaterThanOrEquals("array.length", array.length, 4); if (array.length % 4 !== 0) { throw new DeveloperError_default("array length must be a multiple of 4."); } const length3 = array.length; if (!defined_default(result)) { result = new Array(length3 / 4); } else { result.length = length3 / 4; } for (let i2 = 0; i2 < length3; i2 += 4) { const index2 = i2 / 4; result[index2] = Cartesian4.unpack(array, i2, result[index2]); } return result; }; Cartesian4.fromArray = Cartesian4.unpack; Cartesian4.maximumComponent = function(cartesian11) { Check_default.typeOf.object("cartesian", cartesian11); return Math.max(cartesian11.x, cartesian11.y, cartesian11.z, cartesian11.w); }; Cartesian4.minimumComponent = function(cartesian11) { Check_default.typeOf.object("cartesian", cartesian11); return Math.min(cartesian11.x, cartesian11.y, cartesian11.z, cartesian11.w); }; Cartesian4.minimumByComponent = function(first, second, result) { Check_default.typeOf.object("first", first); Check_default.typeOf.object("second", second); Check_default.typeOf.object("result", result); result.x = Math.min(first.x, second.x); result.y = Math.min(first.y, second.y); result.z = Math.min(first.z, second.z); result.w = Math.min(first.w, second.w); return result; }; Cartesian4.maximumByComponent = function(first, second, result) { Check_default.typeOf.object("first", first); Check_default.typeOf.object("second", second); Check_default.typeOf.object("result", result); result.x = Math.max(first.x, second.x); result.y = Math.max(first.y, second.y); result.z = Math.max(first.z, second.z); result.w = Math.max(first.w, second.w); return result; }; Cartesian4.clamp = function(value, min3, max3, result) { Check_default.typeOf.object("value", value); Check_default.typeOf.object("min", min3); Check_default.typeOf.object("max", max3); Check_default.typeOf.object("result", result); const x = Math_default.clamp(value.x, min3.x, max3.x); const y = Math_default.clamp(value.y, min3.y, max3.y); const z = Math_default.clamp(value.z, min3.z, max3.z); const w = Math_default.clamp(value.w, min3.w, max3.w); result.x = x; result.y = y; result.z = z; result.w = w; return result; }; Cartesian4.magnitudeSquared = function(cartesian11) { Check_default.typeOf.object("cartesian", cartesian11); return cartesian11.x * cartesian11.x + cartesian11.y * cartesian11.y + cartesian11.z * cartesian11.z + cartesian11.w * cartesian11.w; }; Cartesian4.magnitude = function(cartesian11) { return Math.sqrt(Cartesian4.magnitudeSquared(cartesian11)); }; var distanceScratch2 = new Cartesian4(); Cartesian4.distance = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Cartesian4.subtract(left, right, distanceScratch2); return Cartesian4.magnitude(distanceScratch2); }; Cartesian4.distanceSquared = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Cartesian4.subtract(left, right, distanceScratch2); return Cartesian4.magnitudeSquared(distanceScratch2); }; Cartesian4.normalize = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const magnitude = Cartesian4.magnitude(cartesian11); result.x = cartesian11.x / magnitude; result.y = cartesian11.y / magnitude; result.z = cartesian11.z / magnitude; result.w = cartesian11.w / magnitude; if (isNaN(result.x) || isNaN(result.y) || isNaN(result.z) || isNaN(result.w)) { throw new DeveloperError_default("normalized result is not a number"); } return result; }; Cartesian4.dot = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); return left.x * right.x + left.y * right.y + left.z * right.z + left.w * right.w; }; Cartesian4.multiplyComponents = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x * right.x; result.y = left.y * right.y; result.z = left.z * right.z; result.w = left.w * right.w; return result; }; Cartesian4.divideComponents = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x / right.x; result.y = left.y / right.y; result.z = left.z / right.z; result.w = left.w / right.w; return result; }; Cartesian4.add = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x + right.x; result.y = left.y + right.y; result.z = left.z + right.z; result.w = left.w + right.w; return result; }; Cartesian4.subtract = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x - right.x; result.y = left.y - right.y; result.z = left.z - right.z; result.w = left.w - right.w; return result; }; Cartesian4.multiplyByScalar = function(cartesian11, scalar, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.number("scalar", scalar); Check_default.typeOf.object("result", result); result.x = cartesian11.x * scalar; result.y = cartesian11.y * scalar; result.z = cartesian11.z * scalar; result.w = cartesian11.w * scalar; return result; }; Cartesian4.divideByScalar = function(cartesian11, scalar, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.number("scalar", scalar); Check_default.typeOf.object("result", result); result.x = cartesian11.x / scalar; result.y = cartesian11.y / scalar; result.z = cartesian11.z / scalar; result.w = cartesian11.w / scalar; return result; }; Cartesian4.negate = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result.x = -cartesian11.x; result.y = -cartesian11.y; result.z = -cartesian11.z; result.w = -cartesian11.w; return result; }; Cartesian4.abs = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result.x = Math.abs(cartesian11.x); result.y = Math.abs(cartesian11.y); result.z = Math.abs(cartesian11.z); result.w = Math.abs(cartesian11.w); return result; }; var lerpScratch2 = new Cartesian4(); Cartesian4.lerp = function(start, end, t, result) { Check_default.typeOf.object("start", start); Check_default.typeOf.object("end", end); Check_default.typeOf.number("t", t); Check_default.typeOf.object("result", result); Cartesian4.multiplyByScalar(end, t, lerpScratch2); result = Cartesian4.multiplyByScalar(start, 1 - t, result); return Cartesian4.add(lerpScratch2, result, result); }; var mostOrthogonalAxisScratch2 = new Cartesian4(); Cartesian4.mostOrthogonalAxis = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const f2 = Cartesian4.normalize(cartesian11, mostOrthogonalAxisScratch2); Cartesian4.abs(f2, f2); if (f2.x <= f2.y) { if (f2.x <= f2.z) { if (f2.x <= f2.w) { result = Cartesian4.clone(Cartesian4.UNIT_X, result); } else { result = Cartesian4.clone(Cartesian4.UNIT_W, result); } } else if (f2.z <= f2.w) { result = Cartesian4.clone(Cartesian4.UNIT_Z, result); } else { result = Cartesian4.clone(Cartesian4.UNIT_W, result); } } else if (f2.y <= f2.z) { if (f2.y <= f2.w) { result = Cartesian4.clone(Cartesian4.UNIT_Y, result); } else { result = Cartesian4.clone(Cartesian4.UNIT_W, result); } } else if (f2.z <= f2.w) { result = Cartesian4.clone(Cartesian4.UNIT_Z, result); } else { result = Cartesian4.clone(Cartesian4.UNIT_W, result); } return result; }; Cartesian4.equals = function(left, right) { return left === right || defined_default(left) && defined_default(right) && left.x === right.x && left.y === right.y && left.z === right.z && left.w === right.w; }; Cartesian4.equalsArray = function(cartesian11, array, offset2) { return cartesian11.x === array[offset2] && cartesian11.y === array[offset2 + 1] && cartesian11.z === array[offset2 + 2] && cartesian11.w === array[offset2 + 3]; }; Cartesian4.equalsEpsilon = function(left, right, relativeEpsilon, absoluteEpsilon) { return left === right || defined_default(left) && defined_default(right) && Math_default.equalsEpsilon( left.x, right.x, relativeEpsilon, absoluteEpsilon ) && Math_default.equalsEpsilon( left.y, right.y, relativeEpsilon, absoluteEpsilon ) && Math_default.equalsEpsilon( left.z, right.z, relativeEpsilon, absoluteEpsilon ) && Math_default.equalsEpsilon( left.w, right.w, relativeEpsilon, absoluteEpsilon ); }; Cartesian4.ZERO = Object.freeze(new Cartesian4(0, 0, 0, 0)); Cartesian4.ONE = Object.freeze(new Cartesian4(1, 1, 1, 1)); Cartesian4.UNIT_X = Object.freeze(new Cartesian4(1, 0, 0, 0)); Cartesian4.UNIT_Y = Object.freeze(new Cartesian4(0, 1, 0, 0)); Cartesian4.UNIT_Z = Object.freeze(new Cartesian4(0, 0, 1, 0)); Cartesian4.UNIT_W = Object.freeze(new Cartesian4(0, 0, 0, 1)); Cartesian4.prototype.clone = function(result) { return Cartesian4.clone(this, result); }; Cartesian4.prototype.equals = function(right) { return Cartesian4.equals(this, right); }; Cartesian4.prototype.equalsEpsilon = function(right, relativeEpsilon, absoluteEpsilon) { return Cartesian4.equalsEpsilon( this, right, relativeEpsilon, absoluteEpsilon ); }; Cartesian4.prototype.toString = function() { return `(${this.x}, ${this.y}, ${this.z}, ${this.w})`; }; var scratchF32Array = new Float32Array(1); var scratchU8Array = new Uint8Array(scratchF32Array.buffer); var testU32 = new Uint32Array([287454020]); var testU8 = new Uint8Array(testU32.buffer); var littleEndian = testU8[0] === 68; Cartesian4.packFloat = function(value, result) { Check_default.typeOf.number("value", value); if (!defined_default(result)) { result = new Cartesian4(); } scratchF32Array[0] = value; if (littleEndian) { result.x = scratchU8Array[0]; result.y = scratchU8Array[1]; result.z = scratchU8Array[2]; result.w = scratchU8Array[3]; } else { result.x = scratchU8Array[3]; result.y = scratchU8Array[2]; result.z = scratchU8Array[1]; result.w = scratchU8Array[0]; } return result; }; Cartesian4.unpackFloat = function(packedFloat) { Check_default.typeOf.object("packedFloat", packedFloat); if (littleEndian) { scratchU8Array[0] = packedFloat.x; scratchU8Array[1] = packedFloat.y; scratchU8Array[2] = packedFloat.z; scratchU8Array[3] = packedFloat.w; } else { scratchU8Array[0] = packedFloat.w; scratchU8Array[1] = packedFloat.z; scratchU8Array[2] = packedFloat.y; scratchU8Array[3] = packedFloat.x; } return scratchF32Array[0]; }; var Cartesian4_default = Cartesian4; // node_modules/cesium/Source/Core/RuntimeError.js function RuntimeError(message) { this.name = "RuntimeError"; this.message = message; let stack; try { throw new Error(); } catch (e2) { stack = e2.stack; } this.stack = stack; } if (defined_default(Object.create)) { RuntimeError.prototype = Object.create(Error.prototype); RuntimeError.prototype.constructor = RuntimeError; } RuntimeError.prototype.toString = function() { let str = `${this.name}: ${this.message}`; if (defined_default(this.stack)) { str += ` ${this.stack.toString()}`; } return str; }; var RuntimeError_default = RuntimeError; // node_modules/cesium/Source/Core/Matrix4.js function Matrix4(column0Row0, column1Row0, column2Row0, column3Row0, column0Row1, column1Row1, column2Row1, column3Row1, column0Row2, column1Row2, column2Row2, column3Row2, column0Row3, column1Row3, column2Row3, column3Row3) { this[0] = defaultValue_default(column0Row0, 0); this[1] = defaultValue_default(column0Row1, 0); this[2] = defaultValue_default(column0Row2, 0); this[3] = defaultValue_default(column0Row3, 0); this[4] = defaultValue_default(column1Row0, 0); this[5] = defaultValue_default(column1Row1, 0); this[6] = defaultValue_default(column1Row2, 0); this[7] = defaultValue_default(column1Row3, 0); this[8] = defaultValue_default(column2Row0, 0); this[9] = defaultValue_default(column2Row1, 0); this[10] = defaultValue_default(column2Row2, 0); this[11] = defaultValue_default(column2Row3, 0); this[12] = defaultValue_default(column3Row0, 0); this[13] = defaultValue_default(column3Row1, 0); this[14] = defaultValue_default(column3Row2, 0); this[15] = defaultValue_default(column3Row3, 0); } Matrix4.packedLength = 16; Matrix4.pack = function(value, array, startingIndex) { Check_default.typeOf.object("value", value); Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); array[startingIndex++] = value[0]; array[startingIndex++] = value[1]; array[startingIndex++] = value[2]; array[startingIndex++] = value[3]; array[startingIndex++] = value[4]; array[startingIndex++] = value[5]; array[startingIndex++] = value[6]; array[startingIndex++] = value[7]; array[startingIndex++] = value[8]; array[startingIndex++] = value[9]; array[startingIndex++] = value[10]; array[startingIndex++] = value[11]; array[startingIndex++] = value[12]; array[startingIndex++] = value[13]; array[startingIndex++] = value[14]; array[startingIndex] = value[15]; return array; }; Matrix4.unpack = function(array, startingIndex, result) { Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); if (!defined_default(result)) { result = new Matrix4(); } result[0] = array[startingIndex++]; result[1] = array[startingIndex++]; result[2] = array[startingIndex++]; result[3] = array[startingIndex++]; result[4] = array[startingIndex++]; result[5] = array[startingIndex++]; result[6] = array[startingIndex++]; result[7] = array[startingIndex++]; result[8] = array[startingIndex++]; result[9] = array[startingIndex++]; result[10] = array[startingIndex++]; result[11] = array[startingIndex++]; result[12] = array[startingIndex++]; result[13] = array[startingIndex++]; result[14] = array[startingIndex++]; result[15] = array[startingIndex]; return result; }; Matrix4.packArray = function(array, result) { Check_default.defined("array", array); const length3 = array.length; const resultLength = length3 * 16; if (!defined_default(result)) { result = new Array(resultLength); } else if (!Array.isArray(result) && result.length !== resultLength) { throw new DeveloperError_default( "If result is a typed array, it must have exactly array.length * 16 elements" ); } else if (result.length !== resultLength) { result.length = resultLength; } for (let i2 = 0; i2 < length3; ++i2) { Matrix4.pack(array[i2], result, i2 * 16); } return result; }; Matrix4.unpackArray = function(array, result) { Check_default.defined("array", array); Check_default.typeOf.number.greaterThanOrEquals("array.length", array.length, 16); if (array.length % 16 !== 0) { throw new DeveloperError_default("array length must be a multiple of 16."); } const length3 = array.length; if (!defined_default(result)) { result = new Array(length3 / 16); } else { result.length = length3 / 16; } for (let i2 = 0; i2 < length3; i2 += 16) { const index2 = i2 / 16; result[index2] = Matrix4.unpack(array, i2, result[index2]); } return result; }; Matrix4.clone = function(matrix, result) { if (!defined_default(matrix)) { return void 0; } if (!defined_default(result)) { return new Matrix4( matrix[0], matrix[4], matrix[8], matrix[12], matrix[1], matrix[5], matrix[9], matrix[13], matrix[2], matrix[6], matrix[10], matrix[14], matrix[3], matrix[7], matrix[11], matrix[15] ); } result[0] = matrix[0]; result[1] = matrix[1]; result[2] = matrix[2]; result[3] = matrix[3]; result[4] = matrix[4]; result[5] = matrix[5]; result[6] = matrix[6]; result[7] = matrix[7]; result[8] = matrix[8]; result[9] = matrix[9]; result[10] = matrix[10]; result[11] = matrix[11]; result[12] = matrix[12]; result[13] = matrix[13]; result[14] = matrix[14]; result[15] = matrix[15]; return result; }; Matrix4.fromArray = Matrix4.unpack; Matrix4.fromColumnMajorArray = function(values, result) { Check_default.defined("values", values); return Matrix4.clone(values, result); }; Matrix4.fromRowMajorArray = function(values, result) { Check_default.defined("values", values); if (!defined_default(result)) { return new Matrix4( values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[7], values[8], values[9], values[10], values[11], values[12], values[13], values[14], values[15] ); } result[0] = values[0]; result[1] = values[4]; result[2] = values[8]; result[3] = values[12]; result[4] = values[1]; result[5] = values[5]; result[6] = values[9]; result[7] = values[13]; result[8] = values[2]; result[9] = values[6]; result[10] = values[10]; result[11] = values[14]; result[12] = values[3]; result[13] = values[7]; result[14] = values[11]; result[15] = values[15]; return result; }; Matrix4.fromRotationTranslation = function(rotation, translation3, result) { Check_default.typeOf.object("rotation", rotation); translation3 = defaultValue_default(translation3, Cartesian3_default.ZERO); if (!defined_default(result)) { return new Matrix4( rotation[0], rotation[3], rotation[6], translation3.x, rotation[1], rotation[4], rotation[7], translation3.y, rotation[2], rotation[5], rotation[8], translation3.z, 0, 0, 0, 1 ); } result[0] = rotation[0]; result[1] = rotation[1]; result[2] = rotation[2]; result[3] = 0; result[4] = rotation[3]; result[5] = rotation[4]; result[6] = rotation[5]; result[7] = 0; result[8] = rotation[6]; result[9] = rotation[7]; result[10] = rotation[8]; result[11] = 0; result[12] = translation3.x; result[13] = translation3.y; result[14] = translation3.z; result[15] = 1; return result; }; Matrix4.fromTranslationQuaternionRotationScale = function(translation3, rotation, scale, result) { Check_default.typeOf.object("translation", translation3); Check_default.typeOf.object("rotation", rotation); Check_default.typeOf.object("scale", scale); if (!defined_default(result)) { result = new Matrix4(); } const scaleX = scale.x; const scaleY = scale.y; const scaleZ = scale.z; const x2 = rotation.x * rotation.x; const xy = rotation.x * rotation.y; const xz = rotation.x * rotation.z; const xw = rotation.x * rotation.w; const y2 = rotation.y * rotation.y; const yz = rotation.y * rotation.z; const yw = rotation.y * rotation.w; const z2 = rotation.z * rotation.z; const zw = rotation.z * rotation.w; const w2 = rotation.w * rotation.w; const m00 = x2 - y2 - z2 + w2; const m01 = 2 * (xy - zw); const m02 = 2 * (xz + yw); const m10 = 2 * (xy + zw); const m11 = -x2 + y2 - z2 + w2; const m12 = 2 * (yz - xw); const m20 = 2 * (xz - yw); const m21 = 2 * (yz + xw); const m22 = -x2 - y2 + z2 + w2; result[0] = m00 * scaleX; result[1] = m10 * scaleX; result[2] = m20 * scaleX; result[3] = 0; result[4] = m01 * scaleY; result[5] = m11 * scaleY; result[6] = m21 * scaleY; result[7] = 0; result[8] = m02 * scaleZ; result[9] = m12 * scaleZ; result[10] = m22 * scaleZ; result[11] = 0; result[12] = translation3.x; result[13] = translation3.y; result[14] = translation3.z; result[15] = 1; return result; }; Matrix4.fromTranslationRotationScale = function(translationRotationScale, result) { Check_default.typeOf.object("translationRotationScale", translationRotationScale); return Matrix4.fromTranslationQuaternionRotationScale( translationRotationScale.translation, translationRotationScale.rotation, translationRotationScale.scale, result ); }; Matrix4.fromTranslation = function(translation3, result) { Check_default.typeOf.object("translation", translation3); return Matrix4.fromRotationTranslation(Matrix3_default.IDENTITY, translation3, result); }; Matrix4.fromScale = function(scale, result) { Check_default.typeOf.object("scale", scale); if (!defined_default(result)) { return new Matrix4( scale.x, 0, 0, 0, 0, scale.y, 0, 0, 0, 0, scale.z, 0, 0, 0, 0, 1 ); } result[0] = scale.x; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = 0; result[5] = scale.y; result[6] = 0; result[7] = 0; result[8] = 0; result[9] = 0; result[10] = scale.z; result[11] = 0; result[12] = 0; result[13] = 0; result[14] = 0; result[15] = 1; return result; }; Matrix4.fromUniformScale = function(scale, result) { Check_default.typeOf.number("scale", scale); if (!defined_default(result)) { return new Matrix4( scale, 0, 0, 0, 0, scale, 0, 0, 0, 0, scale, 0, 0, 0, 0, 1 ); } result[0] = scale; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = 0; result[5] = scale; result[6] = 0; result[7] = 0; result[8] = 0; result[9] = 0; result[10] = scale; result[11] = 0; result[12] = 0; result[13] = 0; result[14] = 0; result[15] = 1; return result; }; Matrix4.fromRotation = function(rotation, result) { Check_default.typeOf.object("rotation", rotation); if (!defined_default(result)) { result = new Matrix4(); } result[0] = rotation[0]; result[1] = rotation[1]; result[2] = rotation[2]; result[3] = 0; result[4] = rotation[3]; result[5] = rotation[4]; result[6] = rotation[5]; result[7] = 0; result[8] = rotation[6]; result[9] = rotation[7]; result[10] = rotation[8]; result[11] = 0; result[12] = 0; result[13] = 0; result[14] = 0; result[15] = 1; return result; }; var fromCameraF = new Cartesian3_default(); var fromCameraR = new Cartesian3_default(); var fromCameraU = new Cartesian3_default(); Matrix4.fromCamera = function(camera, result) { Check_default.typeOf.object("camera", camera); const position = camera.position; const direction2 = camera.direction; const up = camera.up; Check_default.typeOf.object("camera.position", position); Check_default.typeOf.object("camera.direction", direction2); Check_default.typeOf.object("camera.up", up); Cartesian3_default.normalize(direction2, fromCameraF); Cartesian3_default.normalize( Cartesian3_default.cross(fromCameraF, up, fromCameraR), fromCameraR ); Cartesian3_default.normalize( Cartesian3_default.cross(fromCameraR, fromCameraF, fromCameraU), fromCameraU ); const sX = fromCameraR.x; const sY = fromCameraR.y; const sZ = fromCameraR.z; const fX = fromCameraF.x; const fY = fromCameraF.y; const fZ = fromCameraF.z; const uX = fromCameraU.x; const uY = fromCameraU.y; const uZ = fromCameraU.z; const positionX = position.x; const positionY = position.y; const positionZ = position.z; const t0 = sX * -positionX + sY * -positionY + sZ * -positionZ; const t1 = uX * -positionX + uY * -positionY + uZ * -positionZ; const t2 = fX * positionX + fY * positionY + fZ * positionZ; if (!defined_default(result)) { return new Matrix4( sX, sY, sZ, t0, uX, uY, uZ, t1, -fX, -fY, -fZ, t2, 0, 0, 0, 1 ); } result[0] = sX; result[1] = uX; result[2] = -fX; result[3] = 0; result[4] = sY; result[5] = uY; result[6] = -fY; result[7] = 0; result[8] = sZ; result[9] = uZ; result[10] = -fZ; result[11] = 0; result[12] = t0; result[13] = t1; result[14] = t2; result[15] = 1; return result; }; Matrix4.computePerspectiveFieldOfView = function(fovY, aspectRatio, near, far, result) { Check_default.typeOf.number.greaterThan("fovY", fovY, 0); Check_default.typeOf.number.lessThan("fovY", fovY, Math.PI); Check_default.typeOf.number.greaterThan("near", near, 0); Check_default.typeOf.number.greaterThan("far", far, 0); Check_default.typeOf.object("result", result); const bottom = Math.tan(fovY * 0.5); const column1Row1 = 1 / bottom; const column0Row0 = column1Row1 / aspectRatio; const column2Row2 = (far + near) / (near - far); const column3Row2 = 2 * far * near / (near - far); result[0] = column0Row0; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = 0; result[5] = column1Row1; result[6] = 0; result[7] = 0; result[8] = 0; result[9] = 0; result[10] = column2Row2; result[11] = -1; result[12] = 0; result[13] = 0; result[14] = column3Row2; result[15] = 0; return result; }; Matrix4.computeOrthographicOffCenter = function(left, right, bottom, top, near, far, result) { Check_default.typeOf.number("left", left); Check_default.typeOf.number("right", right); Check_default.typeOf.number("bottom", bottom); Check_default.typeOf.number("top", top); Check_default.typeOf.number("near", near); Check_default.typeOf.number("far", far); Check_default.typeOf.object("result", result); let a4 = 1 / (right - left); let b = 1 / (top - bottom); let c14 = 1 / (far - near); const tx = -(right + left) * a4; const ty = -(top + bottom) * b; const tz = -(far + near) * c14; a4 *= 2; b *= 2; c14 *= -2; result[0] = a4; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = 0; result[5] = b; result[6] = 0; result[7] = 0; result[8] = 0; result[9] = 0; result[10] = c14; result[11] = 0; result[12] = tx; result[13] = ty; result[14] = tz; result[15] = 1; return result; }; Matrix4.computePerspectiveOffCenter = function(left, right, bottom, top, near, far, result) { Check_default.typeOf.number("left", left); Check_default.typeOf.number("right", right); Check_default.typeOf.number("bottom", bottom); Check_default.typeOf.number("top", top); Check_default.typeOf.number("near", near); Check_default.typeOf.number("far", far); Check_default.typeOf.object("result", result); const column0Row0 = 2 * near / (right - left); const column1Row1 = 2 * near / (top - bottom); const column2Row0 = (right + left) / (right - left); const column2Row1 = (top + bottom) / (top - bottom); const column2Row2 = -(far + near) / (far - near); const column2Row3 = -1; const column3Row2 = -2 * far * near / (far - near); result[0] = column0Row0; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = 0; result[5] = column1Row1; result[6] = 0; result[7] = 0; result[8] = column2Row0; result[9] = column2Row1; result[10] = column2Row2; result[11] = column2Row3; result[12] = 0; result[13] = 0; result[14] = column3Row2; result[15] = 0; return result; }; Matrix4.computeInfinitePerspectiveOffCenter = function(left, right, bottom, top, near, result) { Check_default.typeOf.number("left", left); Check_default.typeOf.number("right", right); Check_default.typeOf.number("bottom", bottom); Check_default.typeOf.number("top", top); Check_default.typeOf.number("near", near); Check_default.typeOf.object("result", result); const column0Row0 = 2 * near / (right - left); const column1Row1 = 2 * near / (top - bottom); const column2Row0 = (right + left) / (right - left); const column2Row1 = (top + bottom) / (top - bottom); const column2Row2 = -1; const column2Row3 = -1; const column3Row2 = -2 * near; result[0] = column0Row0; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = 0; result[5] = column1Row1; result[6] = 0; result[7] = 0; result[8] = column2Row0; result[9] = column2Row1; result[10] = column2Row2; result[11] = column2Row3; result[12] = 0; result[13] = 0; result[14] = column3Row2; result[15] = 0; return result; }; Matrix4.computeViewportTransformation = function(viewport, nearDepthRange, farDepthRange, result) { if (!defined_default(result)) { result = new Matrix4(); } viewport = defaultValue_default(viewport, defaultValue_default.EMPTY_OBJECT); const x = defaultValue_default(viewport.x, 0); const y = defaultValue_default(viewport.y, 0); const width = defaultValue_default(viewport.width, 0); const height = defaultValue_default(viewport.height, 0); nearDepthRange = defaultValue_default(nearDepthRange, 0); farDepthRange = defaultValue_default(farDepthRange, 1); const halfWidth = width * 0.5; const halfHeight = height * 0.5; const halfDepth = (farDepthRange - nearDepthRange) * 0.5; const column0Row0 = halfWidth; const column1Row1 = halfHeight; const column2Row2 = halfDepth; const column3Row0 = x + halfWidth; const column3Row1 = y + halfHeight; const column3Row2 = nearDepthRange + halfDepth; const column3Row3 = 1; result[0] = column0Row0; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = 0; result[5] = column1Row1; result[6] = 0; result[7] = 0; result[8] = 0; result[9] = 0; result[10] = column2Row2; result[11] = 0; result[12] = column3Row0; result[13] = column3Row1; result[14] = column3Row2; result[15] = column3Row3; return result; }; Matrix4.computeView = function(position, direction2, up, right, result) { Check_default.typeOf.object("position", position); Check_default.typeOf.object("direction", direction2); Check_default.typeOf.object("up", up); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result[0] = right.x; result[1] = up.x; result[2] = -direction2.x; result[3] = 0; result[4] = right.y; result[5] = up.y; result[6] = -direction2.y; result[7] = 0; result[8] = right.z; result[9] = up.z; result[10] = -direction2.z; result[11] = 0; result[12] = -Cartesian3_default.dot(right, position); result[13] = -Cartesian3_default.dot(up, position); result[14] = Cartesian3_default.dot(direction2, position); result[15] = 1; return result; }; Matrix4.toArray = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); if (!defined_default(result)) { return [ matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5], matrix[6], matrix[7], matrix[8], matrix[9], matrix[10], matrix[11], matrix[12], matrix[13], matrix[14], matrix[15] ]; } result[0] = matrix[0]; result[1] = matrix[1]; result[2] = matrix[2]; result[3] = matrix[3]; result[4] = matrix[4]; result[5] = matrix[5]; result[6] = matrix[6]; result[7] = matrix[7]; result[8] = matrix[8]; result[9] = matrix[9]; result[10] = matrix[10]; result[11] = matrix[11]; result[12] = matrix[12]; result[13] = matrix[13]; result[14] = matrix[14]; result[15] = matrix[15]; return result; }; Matrix4.getElementIndex = function(column, row) { Check_default.typeOf.number.greaterThanOrEquals("row", row, 0); Check_default.typeOf.number.lessThanOrEquals("row", row, 3); Check_default.typeOf.number.greaterThanOrEquals("column", column, 0); Check_default.typeOf.number.lessThanOrEquals("column", column, 3); return column * 4 + row; }; Matrix4.getColumn = function(matrix, index2, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number.greaterThanOrEquals("index", index2, 0); Check_default.typeOf.number.lessThanOrEquals("index", index2, 3); Check_default.typeOf.object("result", result); const startIndex = index2 * 4; const x = matrix[startIndex]; const y = matrix[startIndex + 1]; const z = matrix[startIndex + 2]; const w = matrix[startIndex + 3]; result.x = x; result.y = y; result.z = z; result.w = w; return result; }; Matrix4.setColumn = function(matrix, index2, cartesian11, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number.greaterThanOrEquals("index", index2, 0); Check_default.typeOf.number.lessThanOrEquals("index", index2, 3); Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result = Matrix4.clone(matrix, result); const startIndex = index2 * 4; result[startIndex] = cartesian11.x; result[startIndex + 1] = cartesian11.y; result[startIndex + 2] = cartesian11.z; result[startIndex + 3] = cartesian11.w; return result; }; Matrix4.getRow = function(matrix, index2, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number.greaterThanOrEquals("index", index2, 0); Check_default.typeOf.number.lessThanOrEquals("index", index2, 3); Check_default.typeOf.object("result", result); const x = matrix[index2]; const y = matrix[index2 + 4]; const z = matrix[index2 + 8]; const w = matrix[index2 + 12]; result.x = x; result.y = y; result.z = z; result.w = w; return result; }; Matrix4.setRow = function(matrix, index2, cartesian11, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number.greaterThanOrEquals("index", index2, 0); Check_default.typeOf.number.lessThanOrEquals("index", index2, 3); Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result = Matrix4.clone(matrix, result); result[index2] = cartesian11.x; result[index2 + 4] = cartesian11.y; result[index2 + 8] = cartesian11.z; result[index2 + 12] = cartesian11.w; return result; }; Matrix4.setTranslation = function(matrix, translation3, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("translation", translation3); Check_default.typeOf.object("result", result); result[0] = matrix[0]; result[1] = matrix[1]; result[2] = matrix[2]; result[3] = matrix[3]; result[4] = matrix[4]; result[5] = matrix[5]; result[6] = matrix[6]; result[7] = matrix[7]; result[8] = matrix[8]; result[9] = matrix[9]; result[10] = matrix[10]; result[11] = matrix[11]; result[12] = translation3.x; result[13] = translation3.y; result[14] = translation3.z; result[15] = matrix[15]; return result; }; var scaleScratch12 = new Cartesian3_default(); Matrix4.setScale = function(matrix, scale, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("scale", scale); Check_default.typeOf.object("result", result); const existingScale = Matrix4.getScale(matrix, scaleScratch12); const scaleRatioX = scale.x / existingScale.x; const scaleRatioY = scale.y / existingScale.y; const scaleRatioZ = scale.z / existingScale.z; result[0] = matrix[0] * scaleRatioX; result[1] = matrix[1] * scaleRatioX; result[2] = matrix[2] * scaleRatioX; result[3] = matrix[3]; result[4] = matrix[4] * scaleRatioY; result[5] = matrix[5] * scaleRatioY; result[6] = matrix[6] * scaleRatioY; result[7] = matrix[7]; result[8] = matrix[8] * scaleRatioZ; result[9] = matrix[9] * scaleRatioZ; result[10] = matrix[10] * scaleRatioZ; result[11] = matrix[11]; result[12] = matrix[12]; result[13] = matrix[13]; result[14] = matrix[14]; result[15] = matrix[15]; return result; }; var scaleScratch22 = new Cartesian3_default(); Matrix4.setUniformScale = function(matrix, scale, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number("scale", scale); Check_default.typeOf.object("result", result); const existingScale = Matrix4.getScale(matrix, scaleScratch22); const scaleRatioX = scale / existingScale.x; const scaleRatioY = scale / existingScale.y; const scaleRatioZ = scale / existingScale.z; result[0] = matrix[0] * scaleRatioX; result[1] = matrix[1] * scaleRatioX; result[2] = matrix[2] * scaleRatioX; result[3] = matrix[3]; result[4] = matrix[4] * scaleRatioY; result[5] = matrix[5] * scaleRatioY; result[6] = matrix[6] * scaleRatioY; result[7] = matrix[7]; result[8] = matrix[8] * scaleRatioZ; result[9] = matrix[9] * scaleRatioZ; result[10] = matrix[10] * scaleRatioZ; result[11] = matrix[11]; result[12] = matrix[12]; result[13] = matrix[13]; result[14] = matrix[14]; result[15] = matrix[15]; return result; }; var scratchColumn2 = new Cartesian3_default(); Matrix4.getScale = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); result.x = Cartesian3_default.magnitude( Cartesian3_default.fromElements(matrix[0], matrix[1], matrix[2], scratchColumn2) ); result.y = Cartesian3_default.magnitude( Cartesian3_default.fromElements(matrix[4], matrix[5], matrix[6], scratchColumn2) ); result.z = Cartesian3_default.magnitude( Cartesian3_default.fromElements(matrix[8], matrix[9], matrix[10], scratchColumn2) ); return result; }; var scaleScratch32 = new Cartesian3_default(); Matrix4.getMaximumScale = function(matrix) { Matrix4.getScale(matrix, scaleScratch32); return Cartesian3_default.maximumComponent(scaleScratch32); }; var scaleScratch42 = new Cartesian3_default(); Matrix4.setRotation = function(matrix, rotation, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); const scale = Matrix4.getScale(matrix, scaleScratch42); result[0] = rotation[0] * scale.x; result[1] = rotation[1] * scale.x; result[2] = rotation[2] * scale.x; result[3] = matrix[3]; result[4] = rotation[3] * scale.y; result[5] = rotation[4] * scale.y; result[6] = rotation[5] * scale.y; result[7] = matrix[7]; result[8] = rotation[6] * scale.z; result[9] = rotation[7] * scale.z; result[10] = rotation[8] * scale.z; result[11] = matrix[11]; result[12] = matrix[12]; result[13] = matrix[13]; result[14] = matrix[14]; result[15] = matrix[15]; return result; }; var scaleScratch52 = new Cartesian3_default(); Matrix4.getRotation = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); const scale = Matrix4.getScale(matrix, scaleScratch52); result[0] = matrix[0] / scale.x; result[1] = matrix[1] / scale.x; result[2] = matrix[2] / scale.x; result[3] = matrix[4] / scale.y; result[4] = matrix[5] / scale.y; result[5] = matrix[6] / scale.y; result[6] = matrix[8] / scale.z; result[7] = matrix[9] / scale.z; result[8] = matrix[10] / scale.z; return result; }; Matrix4.multiply = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); const left0 = left[0]; const left1 = left[1]; const left2 = left[2]; const left3 = left[3]; const left4 = left[4]; const left5 = left[5]; const left6 = left[6]; const left7 = left[7]; const left8 = left[8]; const left9 = left[9]; const left10 = left[10]; const left11 = left[11]; const left12 = left[12]; const left13 = left[13]; const left14 = left[14]; const left15 = left[15]; const right0 = right[0]; const right1 = right[1]; const right2 = right[2]; const right3 = right[3]; const right4 = right[4]; const right5 = right[5]; const right6 = right[6]; const right7 = right[7]; const right8 = right[8]; const right9 = right[9]; const right10 = right[10]; const right11 = right[11]; const right12 = right[12]; const right13 = right[13]; const right14 = right[14]; const right15 = right[15]; const column0Row0 = left0 * right0 + left4 * right1 + left8 * right2 + left12 * right3; const column0Row1 = left1 * right0 + left5 * right1 + left9 * right2 + left13 * right3; const column0Row2 = left2 * right0 + left6 * right1 + left10 * right2 + left14 * right3; const column0Row3 = left3 * right0 + left7 * right1 + left11 * right2 + left15 * right3; const column1Row0 = left0 * right4 + left4 * right5 + left8 * right6 + left12 * right7; const column1Row1 = left1 * right4 + left5 * right5 + left9 * right6 + left13 * right7; const column1Row2 = left2 * right4 + left6 * right5 + left10 * right6 + left14 * right7; const column1Row3 = left3 * right4 + left7 * right5 + left11 * right6 + left15 * right7; const column2Row0 = left0 * right8 + left4 * right9 + left8 * right10 + left12 * right11; const column2Row1 = left1 * right8 + left5 * right9 + left9 * right10 + left13 * right11; const column2Row2 = left2 * right8 + left6 * right9 + left10 * right10 + left14 * right11; const column2Row3 = left3 * right8 + left7 * right9 + left11 * right10 + left15 * right11; const column3Row0 = left0 * right12 + left4 * right13 + left8 * right14 + left12 * right15; const column3Row1 = left1 * right12 + left5 * right13 + left9 * right14 + left13 * right15; const column3Row2 = left2 * right12 + left6 * right13 + left10 * right14 + left14 * right15; const column3Row3 = left3 * right12 + left7 * right13 + left11 * right14 + left15 * right15; result[0] = column0Row0; result[1] = column0Row1; result[2] = column0Row2; result[3] = column0Row3; result[4] = column1Row0; result[5] = column1Row1; result[6] = column1Row2; result[7] = column1Row3; result[8] = column2Row0; result[9] = column2Row1; result[10] = column2Row2; result[11] = column2Row3; result[12] = column3Row0; result[13] = column3Row1; result[14] = column3Row2; result[15] = column3Row3; return result; }; Matrix4.add = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result[0] = left[0] + right[0]; result[1] = left[1] + right[1]; result[2] = left[2] + right[2]; result[3] = left[3] + right[3]; result[4] = left[4] + right[4]; result[5] = left[5] + right[5]; result[6] = left[6] + right[6]; result[7] = left[7] + right[7]; result[8] = left[8] + right[8]; result[9] = left[9] + right[9]; result[10] = left[10] + right[10]; result[11] = left[11] + right[11]; result[12] = left[12] + right[12]; result[13] = left[13] + right[13]; result[14] = left[14] + right[14]; result[15] = left[15] + right[15]; return result; }; Matrix4.subtract = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result[0] = left[0] - right[0]; result[1] = left[1] - right[1]; result[2] = left[2] - right[2]; result[3] = left[3] - right[3]; result[4] = left[4] - right[4]; result[5] = left[5] - right[5]; result[6] = left[6] - right[6]; result[7] = left[7] - right[7]; result[8] = left[8] - right[8]; result[9] = left[9] - right[9]; result[10] = left[10] - right[10]; result[11] = left[11] - right[11]; result[12] = left[12] - right[12]; result[13] = left[13] - right[13]; result[14] = left[14] - right[14]; result[15] = left[15] - right[15]; return result; }; Matrix4.multiplyTransformation = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); const left0 = left[0]; const left1 = left[1]; const left2 = left[2]; const left4 = left[4]; const left5 = left[5]; const left6 = left[6]; const left8 = left[8]; const left9 = left[9]; const left10 = left[10]; const left12 = left[12]; const left13 = left[13]; const left14 = left[14]; const right0 = right[0]; const right1 = right[1]; const right2 = right[2]; const right4 = right[4]; const right5 = right[5]; const right6 = right[6]; const right8 = right[8]; const right9 = right[9]; const right10 = right[10]; const right12 = right[12]; const right13 = right[13]; const right14 = right[14]; const column0Row0 = left0 * right0 + left4 * right1 + left8 * right2; const column0Row1 = left1 * right0 + left5 * right1 + left9 * right2; const column0Row2 = left2 * right0 + left6 * right1 + left10 * right2; const column1Row0 = left0 * right4 + left4 * right5 + left8 * right6; const column1Row1 = left1 * right4 + left5 * right5 + left9 * right6; const column1Row2 = left2 * right4 + left6 * right5 + left10 * right6; const column2Row0 = left0 * right8 + left4 * right9 + left8 * right10; const column2Row1 = left1 * right8 + left5 * right9 + left9 * right10; const column2Row2 = left2 * right8 + left6 * right9 + left10 * right10; const column3Row0 = left0 * right12 + left4 * right13 + left8 * right14 + left12; const column3Row1 = left1 * right12 + left5 * right13 + left9 * right14 + left13; const column3Row2 = left2 * right12 + left6 * right13 + left10 * right14 + left14; result[0] = column0Row0; result[1] = column0Row1; result[2] = column0Row2; result[3] = 0; result[4] = column1Row0; result[5] = column1Row1; result[6] = column1Row2; result[7] = 0; result[8] = column2Row0; result[9] = column2Row1; result[10] = column2Row2; result[11] = 0; result[12] = column3Row0; result[13] = column3Row1; result[14] = column3Row2; result[15] = 1; return result; }; Matrix4.multiplyByMatrix3 = function(matrix, rotation, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("rotation", rotation); Check_default.typeOf.object("result", result); const left0 = matrix[0]; const left1 = matrix[1]; const left2 = matrix[2]; const left4 = matrix[4]; const left5 = matrix[5]; const left6 = matrix[6]; const left8 = matrix[8]; const left9 = matrix[9]; const left10 = matrix[10]; const right0 = rotation[0]; const right1 = rotation[1]; const right2 = rotation[2]; const right4 = rotation[3]; const right5 = rotation[4]; const right6 = rotation[5]; const right8 = rotation[6]; const right9 = rotation[7]; const right10 = rotation[8]; const column0Row0 = left0 * right0 + left4 * right1 + left8 * right2; const column0Row1 = left1 * right0 + left5 * right1 + left9 * right2; const column0Row2 = left2 * right0 + left6 * right1 + left10 * right2; const column1Row0 = left0 * right4 + left4 * right5 + left8 * right6; const column1Row1 = left1 * right4 + left5 * right5 + left9 * right6; const column1Row2 = left2 * right4 + left6 * right5 + left10 * right6; const column2Row0 = left0 * right8 + left4 * right9 + left8 * right10; const column2Row1 = left1 * right8 + left5 * right9 + left9 * right10; const column2Row2 = left2 * right8 + left6 * right9 + left10 * right10; result[0] = column0Row0; result[1] = column0Row1; result[2] = column0Row2; result[3] = 0; result[4] = column1Row0; result[5] = column1Row1; result[6] = column1Row2; result[7] = 0; result[8] = column2Row0; result[9] = column2Row1; result[10] = column2Row2; result[11] = 0; result[12] = matrix[12]; result[13] = matrix[13]; result[14] = matrix[14]; result[15] = matrix[15]; return result; }; Matrix4.multiplyByTranslation = function(matrix, translation3, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("translation", translation3); Check_default.typeOf.object("result", result); const x = translation3.x; const y = translation3.y; const z = translation3.z; const tx = x * matrix[0] + y * matrix[4] + z * matrix[8] + matrix[12]; const ty = x * matrix[1] + y * matrix[5] + z * matrix[9] + matrix[13]; const tz = x * matrix[2] + y * matrix[6] + z * matrix[10] + matrix[14]; result[0] = matrix[0]; result[1] = matrix[1]; result[2] = matrix[2]; result[3] = matrix[3]; result[4] = matrix[4]; result[5] = matrix[5]; result[6] = matrix[6]; result[7] = matrix[7]; result[8] = matrix[8]; result[9] = matrix[9]; result[10] = matrix[10]; result[11] = matrix[11]; result[12] = tx; result[13] = ty; result[14] = tz; result[15] = matrix[15]; return result; }; Matrix4.multiplyByScale = function(matrix, scale, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("scale", scale); Check_default.typeOf.object("result", result); const scaleX = scale.x; const scaleY = scale.y; const scaleZ = scale.z; if (scaleX === 1 && scaleY === 1 && scaleZ === 1) { return Matrix4.clone(matrix, result); } result[0] = scaleX * matrix[0]; result[1] = scaleX * matrix[1]; result[2] = scaleX * matrix[2]; result[3] = matrix[3]; result[4] = scaleY * matrix[4]; result[5] = scaleY * matrix[5]; result[6] = scaleY * matrix[6]; result[7] = matrix[7]; result[8] = scaleZ * matrix[8]; result[9] = scaleZ * matrix[9]; result[10] = scaleZ * matrix[10]; result[11] = matrix[11]; result[12] = matrix[12]; result[13] = matrix[13]; result[14] = matrix[14]; result[15] = matrix[15]; return result; }; Matrix4.multiplyByUniformScale = function(matrix, scale, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number("scale", scale); Check_default.typeOf.object("result", result); result[0] = matrix[0] * scale; result[1] = matrix[1] * scale; result[2] = matrix[2] * scale; result[3] = matrix[3]; result[4] = matrix[4] * scale; result[5] = matrix[5] * scale; result[6] = matrix[6] * scale; result[7] = matrix[7]; result[8] = matrix[8] * scale; result[9] = matrix[9] * scale; result[10] = matrix[10] * scale; result[11] = matrix[11]; result[12] = matrix[12]; result[13] = matrix[13]; result[14] = matrix[14]; result[15] = matrix[15]; return result; }; Matrix4.multiplyByVector = function(matrix, cartesian11, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const vX = cartesian11.x; const vY = cartesian11.y; const vZ = cartesian11.z; const vW = cartesian11.w; const x = matrix[0] * vX + matrix[4] * vY + matrix[8] * vZ + matrix[12] * vW; const y = matrix[1] * vX + matrix[5] * vY + matrix[9] * vZ + matrix[13] * vW; const z = matrix[2] * vX + matrix[6] * vY + matrix[10] * vZ + matrix[14] * vW; const w = matrix[3] * vX + matrix[7] * vY + matrix[11] * vZ + matrix[15] * vW; result.x = x; result.y = y; result.z = z; result.w = w; return result; }; Matrix4.multiplyByPointAsVector = function(matrix, cartesian11, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const vX = cartesian11.x; const vY = cartesian11.y; const vZ = cartesian11.z; const x = matrix[0] * vX + matrix[4] * vY + matrix[8] * vZ; const y = matrix[1] * vX + matrix[5] * vY + matrix[9] * vZ; const z = matrix[2] * vX + matrix[6] * vY + matrix[10] * vZ; result.x = x; result.y = y; result.z = z; return result; }; Matrix4.multiplyByPoint = function(matrix, cartesian11, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const vX = cartesian11.x; const vY = cartesian11.y; const vZ = cartesian11.z; const x = matrix[0] * vX + matrix[4] * vY + matrix[8] * vZ + matrix[12]; const y = matrix[1] * vX + matrix[5] * vY + matrix[9] * vZ + matrix[13]; const z = matrix[2] * vX + matrix[6] * vY + matrix[10] * vZ + matrix[14]; result.x = x; result.y = y; result.z = z; return result; }; Matrix4.multiplyByScalar = function(matrix, scalar, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.number("scalar", scalar); Check_default.typeOf.object("result", result); result[0] = matrix[0] * scalar; result[1] = matrix[1] * scalar; result[2] = matrix[2] * scalar; result[3] = matrix[3] * scalar; result[4] = matrix[4] * scalar; result[5] = matrix[5] * scalar; result[6] = matrix[6] * scalar; result[7] = matrix[7] * scalar; result[8] = matrix[8] * scalar; result[9] = matrix[9] * scalar; result[10] = matrix[10] * scalar; result[11] = matrix[11] * scalar; result[12] = matrix[12] * scalar; result[13] = matrix[13] * scalar; result[14] = matrix[14] * scalar; result[15] = matrix[15] * scalar; return result; }; Matrix4.negate = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); result[0] = -matrix[0]; result[1] = -matrix[1]; result[2] = -matrix[2]; result[3] = -matrix[3]; result[4] = -matrix[4]; result[5] = -matrix[5]; result[6] = -matrix[6]; result[7] = -matrix[7]; result[8] = -matrix[8]; result[9] = -matrix[9]; result[10] = -matrix[10]; result[11] = -matrix[11]; result[12] = -matrix[12]; result[13] = -matrix[13]; result[14] = -matrix[14]; result[15] = -matrix[15]; return result; }; Matrix4.transpose = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); const matrix1 = matrix[1]; const matrix2 = matrix[2]; const matrix3 = matrix[3]; const matrix6 = matrix[6]; const matrix7 = matrix[7]; const matrix11 = matrix[11]; result[0] = matrix[0]; result[1] = matrix[4]; result[2] = matrix[8]; result[3] = matrix[12]; result[4] = matrix1; result[5] = matrix[5]; result[6] = matrix[9]; result[7] = matrix[13]; result[8] = matrix2; result[9] = matrix6; result[10] = matrix[10]; result[11] = matrix[14]; result[12] = matrix3; result[13] = matrix7; result[14] = matrix11; result[15] = matrix[15]; return result; }; Matrix4.abs = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); result[0] = Math.abs(matrix[0]); result[1] = Math.abs(matrix[1]); result[2] = Math.abs(matrix[2]); result[3] = Math.abs(matrix[3]); result[4] = Math.abs(matrix[4]); result[5] = Math.abs(matrix[5]); result[6] = Math.abs(matrix[6]); result[7] = Math.abs(matrix[7]); result[8] = Math.abs(matrix[8]); result[9] = Math.abs(matrix[9]); result[10] = Math.abs(matrix[10]); result[11] = Math.abs(matrix[11]); result[12] = Math.abs(matrix[12]); result[13] = Math.abs(matrix[13]); result[14] = Math.abs(matrix[14]); result[15] = Math.abs(matrix[15]); return result; }; Matrix4.equals = function(left, right) { return left === right || defined_default(left) && defined_default(right) && left[12] === right[12] && left[13] === right[13] && left[14] === right[14] && left[0] === right[0] && left[1] === right[1] && left[2] === right[2] && left[4] === right[4] && left[5] === right[5] && left[6] === right[6] && left[8] === right[8] && left[9] === right[9] && left[10] === right[10] && left[3] === right[3] && left[7] === right[7] && left[11] === right[11] && left[15] === right[15]; }; Matrix4.equalsEpsilon = function(left, right, epsilon) { epsilon = defaultValue_default(epsilon, 0); return left === right || defined_default(left) && defined_default(right) && Math.abs(left[0] - right[0]) <= epsilon && Math.abs(left[1] - right[1]) <= epsilon && Math.abs(left[2] - right[2]) <= epsilon && Math.abs(left[3] - right[3]) <= epsilon && Math.abs(left[4] - right[4]) <= epsilon && Math.abs(left[5] - right[5]) <= epsilon && Math.abs(left[6] - right[6]) <= epsilon && Math.abs(left[7] - right[7]) <= epsilon && Math.abs(left[8] - right[8]) <= epsilon && Math.abs(left[9] - right[9]) <= epsilon && Math.abs(left[10] - right[10]) <= epsilon && Math.abs(left[11] - right[11]) <= epsilon && Math.abs(left[12] - right[12]) <= epsilon && Math.abs(left[13] - right[13]) <= epsilon && Math.abs(left[14] - right[14]) <= epsilon && Math.abs(left[15] - right[15]) <= epsilon; }; Matrix4.getTranslation = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); result.x = matrix[12]; result.y = matrix[13]; result.z = matrix[14]; return result; }; Matrix4.getMatrix3 = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); result[0] = matrix[0]; result[1] = matrix[1]; result[2] = matrix[2]; result[3] = matrix[4]; result[4] = matrix[5]; result[5] = matrix[6]; result[6] = matrix[8]; result[7] = matrix[9]; result[8] = matrix[10]; return result; }; var scratchInverseRotation = new Matrix3_default(); var scratchMatrix3Zero = new Matrix3_default(); var scratchBottomRow = new Cartesian4_default(); var scratchExpectedBottomRow = new Cartesian4_default(0, 0, 0, 1); Matrix4.inverse = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); const src0 = matrix[0]; const src1 = matrix[4]; const src2 = matrix[8]; const src3 = matrix[12]; const src4 = matrix[1]; const src5 = matrix[5]; const src6 = matrix[9]; const src7 = matrix[13]; const src8 = matrix[2]; const src9 = matrix[6]; const src10 = matrix[10]; const src11 = matrix[14]; const src12 = matrix[3]; const src13 = matrix[7]; const src14 = matrix[11]; const src15 = matrix[15]; let tmp0 = src10 * src15; let tmp1 = src11 * src14; let tmp2 = src9 * src15; let tmp3 = src11 * src13; let tmp4 = src9 * src14; let tmp5 = src10 * src13; let tmp6 = src8 * src15; let tmp7 = src11 * src12; let tmp8 = src8 * src14; let tmp9 = src10 * src12; let tmp10 = src8 * src13; let tmp11 = src9 * src12; const dst0 = tmp0 * src5 + tmp3 * src6 + tmp4 * src7 - (tmp1 * src5 + tmp2 * src6 + tmp5 * src7); const dst1 = tmp1 * src4 + tmp6 * src6 + tmp9 * src7 - (tmp0 * src4 + tmp7 * src6 + tmp8 * src7); const dst2 = tmp2 * src4 + tmp7 * src5 + tmp10 * src7 - (tmp3 * src4 + tmp6 * src5 + tmp11 * src7); const dst3 = tmp5 * src4 + tmp8 * src5 + tmp11 * src6 - (tmp4 * src4 + tmp9 * src5 + tmp10 * src6); const dst4 = tmp1 * src1 + tmp2 * src2 + tmp5 * src3 - (tmp0 * src1 + tmp3 * src2 + tmp4 * src3); const dst5 = tmp0 * src0 + tmp7 * src2 + tmp8 * src3 - (tmp1 * src0 + tmp6 * src2 + tmp9 * src3); const dst6 = tmp3 * src0 + tmp6 * src1 + tmp11 * src3 - (tmp2 * src0 + tmp7 * src1 + tmp10 * src3); const dst7 = tmp4 * src0 + tmp9 * src1 + tmp10 * src2 - (tmp5 * src0 + tmp8 * src1 + tmp11 * src2); tmp0 = src2 * src7; tmp1 = src3 * src6; tmp2 = src1 * src7; tmp3 = src3 * src5; tmp4 = src1 * src6; tmp5 = src2 * src5; tmp6 = src0 * src7; tmp7 = src3 * src4; tmp8 = src0 * src6; tmp9 = src2 * src4; tmp10 = src0 * src5; tmp11 = src1 * src4; const dst8 = tmp0 * src13 + tmp3 * src14 + tmp4 * src15 - (tmp1 * src13 + tmp2 * src14 + tmp5 * src15); const dst9 = tmp1 * src12 + tmp6 * src14 + tmp9 * src15 - (tmp0 * src12 + tmp7 * src14 + tmp8 * src15); const dst10 = tmp2 * src12 + tmp7 * src13 + tmp10 * src15 - (tmp3 * src12 + tmp6 * src13 + tmp11 * src15); const dst11 = tmp5 * src12 + tmp8 * src13 + tmp11 * src14 - (tmp4 * src12 + tmp9 * src13 + tmp10 * src14); const dst12 = tmp2 * src10 + tmp5 * src11 + tmp1 * src9 - (tmp4 * src11 + tmp0 * src9 + tmp3 * src10); const dst13 = tmp8 * src11 + tmp0 * src8 + tmp7 * src10 - (tmp6 * src10 + tmp9 * src11 + tmp1 * src8); const dst14 = tmp6 * src9 + tmp11 * src11 + tmp3 * src8 - (tmp10 * src11 + tmp2 * src8 + tmp7 * src9); const dst15 = tmp10 * src10 + tmp4 * src8 + tmp9 * src9 - (tmp8 * src9 + tmp11 * src10 + tmp5 * src8); let det = src0 * dst0 + src1 * dst1 + src2 * dst2 + src3 * dst3; if (Math.abs(det) < Math_default.EPSILON21) { if (Matrix3_default.equalsEpsilon( Matrix4.getMatrix3(matrix, scratchInverseRotation), scratchMatrix3Zero, Math_default.EPSILON7 ) && Cartesian4_default.equals( Matrix4.getRow(matrix, 3, scratchBottomRow), scratchExpectedBottomRow )) { result[0] = 0; result[1] = 0; result[2] = 0; result[3] = 0; result[4] = 0; result[5] = 0; result[6] = 0; result[7] = 0; result[8] = 0; result[9] = 0; result[10] = 0; result[11] = 0; result[12] = -matrix[12]; result[13] = -matrix[13]; result[14] = -matrix[14]; result[15] = 1; return result; } throw new RuntimeError_default( "matrix is not invertible because its determinate is zero." ); } det = 1 / det; result[0] = dst0 * det; result[1] = dst1 * det; result[2] = dst2 * det; result[3] = dst3 * det; result[4] = dst4 * det; result[5] = dst5 * det; result[6] = dst6 * det; result[7] = dst7 * det; result[8] = dst8 * det; result[9] = dst9 * det; result[10] = dst10 * det; result[11] = dst11 * det; result[12] = dst12 * det; result[13] = dst13 * det; result[14] = dst14 * det; result[15] = dst15 * det; return result; }; Matrix4.inverseTransformation = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); const matrix0 = matrix[0]; const matrix1 = matrix[1]; const matrix2 = matrix[2]; const matrix4 = matrix[4]; const matrix5 = matrix[5]; const matrix6 = matrix[6]; const matrix8 = matrix[8]; const matrix9 = matrix[9]; const matrix10 = matrix[10]; const vX = matrix[12]; const vY = matrix[13]; const vZ = matrix[14]; const x = -matrix0 * vX - matrix1 * vY - matrix2 * vZ; const y = -matrix4 * vX - matrix5 * vY - matrix6 * vZ; const z = -matrix8 * vX - matrix9 * vY - matrix10 * vZ; result[0] = matrix0; result[1] = matrix4; result[2] = matrix8; result[3] = 0; result[4] = matrix1; result[5] = matrix5; result[6] = matrix9; result[7] = 0; result[8] = matrix2; result[9] = matrix6; result[10] = matrix10; result[11] = 0; result[12] = x; result[13] = y; result[14] = z; result[15] = 1; return result; }; var scratchTransposeMatrix2 = new Matrix4(); Matrix4.inverseTranspose = function(matrix, result) { Check_default.typeOf.object("matrix", matrix); Check_default.typeOf.object("result", result); return Matrix4.inverse( Matrix4.transpose(matrix, scratchTransposeMatrix2), result ); }; Matrix4.IDENTITY = Object.freeze( new Matrix4( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ) ); Matrix4.ZERO = Object.freeze( new Matrix4( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ); Matrix4.COLUMN0ROW0 = 0; Matrix4.COLUMN0ROW1 = 1; Matrix4.COLUMN0ROW2 = 2; Matrix4.COLUMN0ROW3 = 3; Matrix4.COLUMN1ROW0 = 4; Matrix4.COLUMN1ROW1 = 5; Matrix4.COLUMN1ROW2 = 6; Matrix4.COLUMN1ROW3 = 7; Matrix4.COLUMN2ROW0 = 8; Matrix4.COLUMN2ROW1 = 9; Matrix4.COLUMN2ROW2 = 10; Matrix4.COLUMN2ROW3 = 11; Matrix4.COLUMN3ROW0 = 12; Matrix4.COLUMN3ROW1 = 13; Matrix4.COLUMN3ROW2 = 14; Matrix4.COLUMN3ROW3 = 15; Object.defineProperties(Matrix4.prototype, { length: { get: function() { return Matrix4.packedLength; } } }); Matrix4.prototype.clone = function(result) { return Matrix4.clone(this, result); }; Matrix4.prototype.equals = function(right) { return Matrix4.equals(this, right); }; Matrix4.equalsArray = function(matrix, array, offset2) { return matrix[0] === array[offset2] && matrix[1] === array[offset2 + 1] && matrix[2] === array[offset2 + 2] && matrix[3] === array[offset2 + 3] && matrix[4] === array[offset2 + 4] && matrix[5] === array[offset2 + 5] && matrix[6] === array[offset2 + 6] && matrix[7] === array[offset2 + 7] && matrix[8] === array[offset2 + 8] && matrix[9] === array[offset2 + 9] && matrix[10] === array[offset2 + 10] && matrix[11] === array[offset2 + 11] && matrix[12] === array[offset2 + 12] && matrix[13] === array[offset2 + 13] && matrix[14] === array[offset2 + 14] && matrix[15] === array[offset2 + 15]; }; Matrix4.prototype.equalsEpsilon = function(right, epsilon) { return Matrix4.equalsEpsilon(this, right, epsilon); }; Matrix4.prototype.toString = function() { return `(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]}) (${this[1]}, ${this[5]}, ${this[9]}, ${this[13]}) (${this[2]}, ${this[6]}, ${this[10]}, ${this[14]}) (${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`; }; var Matrix4_default = Matrix4; // node_modules/cesium/Source/Core/Rectangle.js function Rectangle(west, south, east, north) { this.west = defaultValue_default(west, 0); this.south = defaultValue_default(south, 0); this.east = defaultValue_default(east, 0); this.north = defaultValue_default(north, 0); } Object.defineProperties(Rectangle.prototype, { width: { get: function() { return Rectangle.computeWidth(this); } }, height: { get: function() { return Rectangle.computeHeight(this); } } }); Rectangle.packedLength = 4; Rectangle.pack = function(value, array, startingIndex) { Check_default.typeOf.object("value", value); Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); array[startingIndex++] = value.west; array[startingIndex++] = value.south; array[startingIndex++] = value.east; array[startingIndex] = value.north; return array; }; Rectangle.unpack = function(array, startingIndex, result) { Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); if (!defined_default(result)) { result = new Rectangle(); } result.west = array[startingIndex++]; result.south = array[startingIndex++]; result.east = array[startingIndex++]; result.north = array[startingIndex]; return result; }; Rectangle.computeWidth = function(rectangle) { Check_default.typeOf.object("rectangle", rectangle); let east = rectangle.east; const west = rectangle.west; if (east < west) { east += Math_default.TWO_PI; } return east - west; }; Rectangle.computeHeight = function(rectangle) { Check_default.typeOf.object("rectangle", rectangle); return rectangle.north - rectangle.south; }; Rectangle.fromDegrees = function(west, south, east, north, result) { west = Math_default.toRadians(defaultValue_default(west, 0)); south = Math_default.toRadians(defaultValue_default(south, 0)); east = Math_default.toRadians(defaultValue_default(east, 0)); north = Math_default.toRadians(defaultValue_default(north, 0)); if (!defined_default(result)) { return new Rectangle(west, south, east, north); } result.west = west; result.south = south; result.east = east; result.north = north; return result; }; Rectangle.fromRadians = function(west, south, east, north, result) { if (!defined_default(result)) { return new Rectangle(west, south, east, north); } result.west = defaultValue_default(west, 0); result.south = defaultValue_default(south, 0); result.east = defaultValue_default(east, 0); result.north = defaultValue_default(north, 0); return result; }; Rectangle.fromCartographicArray = function(cartographics, result) { Check_default.defined("cartographics", cartographics); let west = Number.MAX_VALUE; let east = -Number.MAX_VALUE; let westOverIDL = Number.MAX_VALUE; let eastOverIDL = -Number.MAX_VALUE; let south = Number.MAX_VALUE; let north = -Number.MAX_VALUE; for (let i2 = 0, len = cartographics.length; i2 < len; i2++) { const position = cartographics[i2]; west = Math.min(west, position.longitude); east = Math.max(east, position.longitude); south = Math.min(south, position.latitude); north = Math.max(north, position.latitude); const lonAdjusted = position.longitude >= 0 ? position.longitude : position.longitude + Math_default.TWO_PI; westOverIDL = Math.min(westOverIDL, lonAdjusted); eastOverIDL = Math.max(eastOverIDL, lonAdjusted); } if (east - west > eastOverIDL - westOverIDL) { west = westOverIDL; east = eastOverIDL; if (east > Math_default.PI) { east = east - Math_default.TWO_PI; } if (west > Math_default.PI) { west = west - Math_default.TWO_PI; } } if (!defined_default(result)) { return new Rectangle(west, south, east, north); } result.west = west; result.south = south; result.east = east; result.north = north; return result; }; Rectangle.fromCartesianArray = function(cartesians, ellipsoid, result) { Check_default.defined("cartesians", cartesians); ellipsoid = defaultValue_default(ellipsoid, Ellipsoid_default.WGS84); let west = Number.MAX_VALUE; let east = -Number.MAX_VALUE; let westOverIDL = Number.MAX_VALUE; let eastOverIDL = -Number.MAX_VALUE; let south = Number.MAX_VALUE; let north = -Number.MAX_VALUE; for (let i2 = 0, len = cartesians.length; i2 < len; i2++) { const position = ellipsoid.cartesianToCartographic(cartesians[i2]); west = Math.min(west, position.longitude); east = Math.max(east, position.longitude); south = Math.min(south, position.latitude); north = Math.max(north, position.latitude); const lonAdjusted = position.longitude >= 0 ? position.longitude : position.longitude + Math_default.TWO_PI; westOverIDL = Math.min(westOverIDL, lonAdjusted); eastOverIDL = Math.max(eastOverIDL, lonAdjusted); } if (east - west > eastOverIDL - westOverIDL) { west = westOverIDL; east = eastOverIDL; if (east > Math_default.PI) { east = east - Math_default.TWO_PI; } if (west > Math_default.PI) { west = west - Math_default.TWO_PI; } } if (!defined_default(result)) { return new Rectangle(west, south, east, north); } result.west = west; result.south = south; result.east = east; result.north = north; return result; }; Rectangle.clone = function(rectangle, result) { if (!defined_default(rectangle)) { return void 0; } if (!defined_default(result)) { return new Rectangle( rectangle.west, rectangle.south, rectangle.east, rectangle.north ); } result.west = rectangle.west; result.south = rectangle.south; result.east = rectangle.east; result.north = rectangle.north; return result; }; Rectangle.equalsEpsilon = function(left, right, absoluteEpsilon) { absoluteEpsilon = defaultValue_default(absoluteEpsilon, 0); return left === right || defined_default(left) && defined_default(right) && Math.abs(left.west - right.west) <= absoluteEpsilon && Math.abs(left.south - right.south) <= absoluteEpsilon && Math.abs(left.east - right.east) <= absoluteEpsilon && Math.abs(left.north - right.north) <= absoluteEpsilon; }; Rectangle.prototype.clone = function(result) { return Rectangle.clone(this, result); }; Rectangle.prototype.equals = function(other) { return Rectangle.equals(this, other); }; Rectangle.equals = function(left, right) { return left === right || defined_default(left) && defined_default(right) && left.west === right.west && left.south === right.south && left.east === right.east && left.north === right.north; }; Rectangle.prototype.equalsEpsilon = function(other, epsilon) { return Rectangle.equalsEpsilon(this, other, epsilon); }; Rectangle.validate = function(rectangle) { Check_default.typeOf.object("rectangle", rectangle); const north = rectangle.north; Check_default.typeOf.number.greaterThanOrEquals( "north", north, -Math_default.PI_OVER_TWO ); Check_default.typeOf.number.lessThanOrEquals("north", north, Math_default.PI_OVER_TWO); const south = rectangle.south; Check_default.typeOf.number.greaterThanOrEquals( "south", south, -Math_default.PI_OVER_TWO ); Check_default.typeOf.number.lessThanOrEquals("south", south, Math_default.PI_OVER_TWO); const west = rectangle.west; Check_default.typeOf.number.greaterThanOrEquals("west", west, -Math.PI); Check_default.typeOf.number.lessThanOrEquals("west", west, Math.PI); const east = rectangle.east; Check_default.typeOf.number.greaterThanOrEquals("east", east, -Math.PI); Check_default.typeOf.number.lessThanOrEquals("east", east, Math.PI); }; Rectangle.southwest = function(rectangle, result) { Check_default.typeOf.object("rectangle", rectangle); if (!defined_default(result)) { return new Cartographic_default(rectangle.west, rectangle.south); } result.longitude = rectangle.west; result.latitude = rectangle.south; result.height = 0; return result; }; Rectangle.northwest = function(rectangle, result) { Check_default.typeOf.object("rectangle", rectangle); if (!defined_default(result)) { return new Cartographic_default(rectangle.west, rectangle.north); } result.longitude = rectangle.west; result.latitude = rectangle.north; result.height = 0; return result; }; Rectangle.northeast = function(rectangle, result) { Check_default.typeOf.object("rectangle", rectangle); if (!defined_default(result)) { return new Cartographic_default(rectangle.east, rectangle.north); } result.longitude = rectangle.east; result.latitude = rectangle.north; result.height = 0; return result; }; Rectangle.southeast = function(rectangle, result) { Check_default.typeOf.object("rectangle", rectangle); if (!defined_default(result)) { return new Cartographic_default(rectangle.east, rectangle.south); } result.longitude = rectangle.east; result.latitude = rectangle.south; result.height = 0; return result; }; Rectangle.center = function(rectangle, result) { Check_default.typeOf.object("rectangle", rectangle); let east = rectangle.east; const west = rectangle.west; if (east < west) { east += Math_default.TWO_PI; } const longitude = Math_default.negativePiToPi((west + east) * 0.5); const latitude = (rectangle.south + rectangle.north) * 0.5; if (!defined_default(result)) { return new Cartographic_default(longitude, latitude); } result.longitude = longitude; result.latitude = latitude; result.height = 0; return result; }; Rectangle.intersection = function(rectangle, otherRectangle, result) { Check_default.typeOf.object("rectangle", rectangle); Check_default.typeOf.object("otherRectangle", otherRectangle); let rectangleEast = rectangle.east; let rectangleWest = rectangle.west; let otherRectangleEast = otherRectangle.east; let otherRectangleWest = otherRectangle.west; if (rectangleEast < rectangleWest && otherRectangleEast > 0) { rectangleEast += Math_default.TWO_PI; } else if (otherRectangleEast < otherRectangleWest && rectangleEast > 0) { otherRectangleEast += Math_default.TWO_PI; } if (rectangleEast < rectangleWest && otherRectangleWest < 0) { otherRectangleWest += Math_default.TWO_PI; } else if (otherRectangleEast < otherRectangleWest && rectangleWest < 0) { rectangleWest += Math_default.TWO_PI; } const west = Math_default.negativePiToPi( Math.max(rectangleWest, otherRectangleWest) ); const east = Math_default.negativePiToPi( Math.min(rectangleEast, otherRectangleEast) ); if ((rectangle.west < rectangle.east || otherRectangle.west < otherRectangle.east) && east <= west) { return void 0; } const south = Math.max(rectangle.south, otherRectangle.south); const north = Math.min(rectangle.north, otherRectangle.north); if (south >= north) { return void 0; } if (!defined_default(result)) { return new Rectangle(west, south, east, north); } result.west = west; result.south = south; result.east = east; result.north = north; return result; }; Rectangle.simpleIntersection = function(rectangle, otherRectangle, result) { Check_default.typeOf.object("rectangle", rectangle); Check_default.typeOf.object("otherRectangle", otherRectangle); const west = Math.max(rectangle.west, otherRectangle.west); const south = Math.max(rectangle.south, otherRectangle.south); const east = Math.min(rectangle.east, otherRectangle.east); const north = Math.min(rectangle.north, otherRectangle.north); if (south >= north || west >= east) { return void 0; } if (!defined_default(result)) { return new Rectangle(west, south, east, north); } result.west = west; result.south = south; result.east = east; result.north = north; return result; }; Rectangle.union = function(rectangle, otherRectangle, result) { Check_default.typeOf.object("rectangle", rectangle); Check_default.typeOf.object("otherRectangle", otherRectangle); if (!defined_default(result)) { result = new Rectangle(); } let rectangleEast = rectangle.east; let rectangleWest = rectangle.west; let otherRectangleEast = otherRectangle.east; let otherRectangleWest = otherRectangle.west; if (rectangleEast < rectangleWest && otherRectangleEast > 0) { rectangleEast += Math_default.TWO_PI; } else if (otherRectangleEast < otherRectangleWest && rectangleEast > 0) { otherRectangleEast += Math_default.TWO_PI; } if (rectangleEast < rectangleWest && otherRectangleWest < 0) { otherRectangleWest += Math_default.TWO_PI; } else if (otherRectangleEast < otherRectangleWest && rectangleWest < 0) { rectangleWest += Math_default.TWO_PI; } const west = Math_default.negativePiToPi( Math.min(rectangleWest, otherRectangleWest) ); const east = Math_default.negativePiToPi( Math.max(rectangleEast, otherRectangleEast) ); result.west = west; result.south = Math.min(rectangle.south, otherRectangle.south); result.east = east; result.north = Math.max(rectangle.north, otherRectangle.north); return result; }; Rectangle.expand = function(rectangle, cartographic2, result) { Check_default.typeOf.object("rectangle", rectangle); Check_default.typeOf.object("cartographic", cartographic2); if (!defined_default(result)) { result = new Rectangle(); } result.west = Math.min(rectangle.west, cartographic2.longitude); result.south = Math.min(rectangle.south, cartographic2.latitude); result.east = Math.max(rectangle.east, cartographic2.longitude); result.north = Math.max(rectangle.north, cartographic2.latitude); return result; }; Rectangle.contains = function(rectangle, cartographic2) { Check_default.typeOf.object("rectangle", rectangle); Check_default.typeOf.object("cartographic", cartographic2); let longitude = cartographic2.longitude; const latitude = cartographic2.latitude; const west = rectangle.west; let east = rectangle.east; if (east < west) { east += Math_default.TWO_PI; if (longitude < 0) { longitude += Math_default.TWO_PI; } } return (longitude > west || Math_default.equalsEpsilon(longitude, west, Math_default.EPSILON14)) && (longitude < east || Math_default.equalsEpsilon(longitude, east, Math_default.EPSILON14)) && latitude >= rectangle.south && latitude <= rectangle.north; }; var subsampleLlaScratch = new Cartographic_default(); Rectangle.subsample = function(rectangle, ellipsoid, surfaceHeight, result) { Check_default.typeOf.object("rectangle", rectangle); ellipsoid = defaultValue_default(ellipsoid, Ellipsoid_default.WGS84); surfaceHeight = defaultValue_default(surfaceHeight, 0); if (!defined_default(result)) { result = []; } let length3 = 0; const north = rectangle.north; const south = rectangle.south; const east = rectangle.east; const west = rectangle.west; const lla = subsampleLlaScratch; lla.height = surfaceHeight; lla.longitude = west; lla.latitude = north; result[length3] = ellipsoid.cartographicToCartesian(lla, result[length3]); length3++; lla.longitude = east; result[length3] = ellipsoid.cartographicToCartesian(lla, result[length3]); length3++; lla.latitude = south; result[length3] = ellipsoid.cartographicToCartesian(lla, result[length3]); length3++; lla.longitude = west; result[length3] = ellipsoid.cartographicToCartesian(lla, result[length3]); length3++; if (north < 0) { lla.latitude = north; } else if (south > 0) { lla.latitude = south; } else { lla.latitude = 0; } for (let i2 = 1; i2 < 8; ++i2) { lla.longitude = -Math.PI + i2 * Math_default.PI_OVER_TWO; if (Rectangle.contains(rectangle, lla)) { result[length3] = ellipsoid.cartographicToCartesian(lla, result[length3]); length3++; } } if (lla.latitude === 0) { lla.longitude = west; result[length3] = ellipsoid.cartographicToCartesian(lla, result[length3]); length3++; lla.longitude = east; result[length3] = ellipsoid.cartographicToCartesian(lla, result[length3]); length3++; } result.length = length3; return result; }; Rectangle.subsection = function(rectangle, westLerp, southLerp, eastLerp, northLerp, result) { Check_default.typeOf.object("rectangle", rectangle); Check_default.typeOf.number.greaterThanOrEquals("westLerp", westLerp, 0); Check_default.typeOf.number.lessThanOrEquals("westLerp", westLerp, 1); Check_default.typeOf.number.greaterThanOrEquals("southLerp", southLerp, 0); Check_default.typeOf.number.lessThanOrEquals("southLerp", southLerp, 1); Check_default.typeOf.number.greaterThanOrEquals("eastLerp", eastLerp, 0); Check_default.typeOf.number.lessThanOrEquals("eastLerp", eastLerp, 1); Check_default.typeOf.number.greaterThanOrEquals("northLerp", northLerp, 0); Check_default.typeOf.number.lessThanOrEquals("northLerp", northLerp, 1); Check_default.typeOf.number.lessThanOrEquals("westLerp", westLerp, eastLerp); Check_default.typeOf.number.lessThanOrEquals("southLerp", southLerp, northLerp); if (!defined_default(result)) { result = new Rectangle(); } if (rectangle.west <= rectangle.east) { const width = rectangle.east - rectangle.west; result.west = rectangle.west + westLerp * width; result.east = rectangle.west + eastLerp * width; } else { const width = Math_default.TWO_PI + rectangle.east - rectangle.west; result.west = Math_default.negativePiToPi(rectangle.west + westLerp * width); result.east = Math_default.negativePiToPi(rectangle.west + eastLerp * width); } const height = rectangle.north - rectangle.south; result.south = rectangle.south + southLerp * height; result.north = rectangle.south + northLerp * height; if (westLerp === 1) { result.west = rectangle.east; } if (eastLerp === 1) { result.east = rectangle.east; } if (southLerp === 1) { result.south = rectangle.north; } if (northLerp === 1) { result.north = rectangle.north; } return result; }; Rectangle.MAX_VALUE = Object.freeze( new Rectangle( -Math.PI, -Math_default.PI_OVER_TWO, Math.PI, Math_default.PI_OVER_TWO ) ); var Rectangle_default = Rectangle; // node_modules/cesium/Source/Core/BoundingSphere.js function BoundingSphere(center, radius) { this.center = Cartesian3_default.clone(defaultValue_default(center, Cartesian3_default.ZERO)); this.radius = defaultValue_default(radius, 0); } var fromPointsXMin = new Cartesian3_default(); var fromPointsYMin = new Cartesian3_default(); var fromPointsZMin = new Cartesian3_default(); var fromPointsXMax = new Cartesian3_default(); var fromPointsYMax = new Cartesian3_default(); var fromPointsZMax = new Cartesian3_default(); var fromPointsCurrentPos = new Cartesian3_default(); var fromPointsScratch = new Cartesian3_default(); var fromPointsRitterCenter = new Cartesian3_default(); var fromPointsMinBoxPt = new Cartesian3_default(); var fromPointsMaxBoxPt = new Cartesian3_default(); var fromPointsNaiveCenterScratch = new Cartesian3_default(); var volumeConstant = 4 / 3 * Math_default.PI; BoundingSphere.fromPoints = function(positions, result) { if (!defined_default(result)) { result = new BoundingSphere(); } if (!defined_default(positions) || positions.length === 0) { result.center = Cartesian3_default.clone(Cartesian3_default.ZERO, result.center); result.radius = 0; return result; } const currentPos = Cartesian3_default.clone(positions[0], fromPointsCurrentPos); const xMin = Cartesian3_default.clone(currentPos, fromPointsXMin); const yMin = Cartesian3_default.clone(currentPos, fromPointsYMin); const zMin = Cartesian3_default.clone(currentPos, fromPointsZMin); const xMax = Cartesian3_default.clone(currentPos, fromPointsXMax); const yMax = Cartesian3_default.clone(currentPos, fromPointsYMax); const zMax = Cartesian3_default.clone(currentPos, fromPointsZMax); const numPositions = positions.length; let i2; for (i2 = 1; i2 < numPositions; i2++) { Cartesian3_default.clone(positions[i2], currentPos); const x = currentPos.x; const y = currentPos.y; const z = currentPos.z; if (x < xMin.x) { Cartesian3_default.clone(currentPos, xMin); } if (x > xMax.x) { Cartesian3_default.clone(currentPos, xMax); } if (y < yMin.y) { Cartesian3_default.clone(currentPos, yMin); } if (y > yMax.y) { Cartesian3_default.clone(currentPos, yMax); } if (z < zMin.z) { Cartesian3_default.clone(currentPos, zMin); } if (z > zMax.z) { Cartesian3_default.clone(currentPos, zMax); } } const xSpan = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(xMax, xMin, fromPointsScratch) ); const ySpan = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(yMax, yMin, fromPointsScratch) ); const zSpan = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(zMax, zMin, fromPointsScratch) ); let diameter1 = xMin; let diameter2 = xMax; let maxSpan = xSpan; if (ySpan > maxSpan) { maxSpan = ySpan; diameter1 = yMin; diameter2 = yMax; } if (zSpan > maxSpan) { maxSpan = zSpan; diameter1 = zMin; diameter2 = zMax; } const ritterCenter = fromPointsRitterCenter; ritterCenter.x = (diameter1.x + diameter2.x) * 0.5; ritterCenter.y = (diameter1.y + diameter2.y) * 0.5; ritterCenter.z = (diameter1.z + diameter2.z) * 0.5; let radiusSquared = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(diameter2, ritterCenter, fromPointsScratch) ); let ritterRadius = Math.sqrt(radiusSquared); const minBoxPt = fromPointsMinBoxPt; minBoxPt.x = xMin.x; minBoxPt.y = yMin.y; minBoxPt.z = zMin.z; const maxBoxPt = fromPointsMaxBoxPt; maxBoxPt.x = xMax.x; maxBoxPt.y = yMax.y; maxBoxPt.z = zMax.z; const naiveCenter = Cartesian3_default.midpoint( minBoxPt, maxBoxPt, fromPointsNaiveCenterScratch ); let naiveRadius = 0; for (i2 = 0; i2 < numPositions; i2++) { Cartesian3_default.clone(positions[i2], currentPos); const r2 = Cartesian3_default.magnitude( Cartesian3_default.subtract(currentPos, naiveCenter, fromPointsScratch) ); if (r2 > naiveRadius) { naiveRadius = r2; } const oldCenterToPointSquared = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(currentPos, ritterCenter, fromPointsScratch) ); if (oldCenterToPointSquared > radiusSquared) { const oldCenterToPoint = Math.sqrt(oldCenterToPointSquared); ritterRadius = (ritterRadius + oldCenterToPoint) * 0.5; radiusSquared = ritterRadius * ritterRadius; const oldToNew = oldCenterToPoint - ritterRadius; ritterCenter.x = (ritterRadius * ritterCenter.x + oldToNew * currentPos.x) / oldCenterToPoint; ritterCenter.y = (ritterRadius * ritterCenter.y + oldToNew * currentPos.y) / oldCenterToPoint; ritterCenter.z = (ritterRadius * ritterCenter.z + oldToNew * currentPos.z) / oldCenterToPoint; } } if (ritterRadius < naiveRadius) { Cartesian3_default.clone(ritterCenter, result.center); result.radius = ritterRadius; } else { Cartesian3_default.clone(naiveCenter, result.center); result.radius = naiveRadius; } return result; }; var defaultProjection = new GeographicProjection_default(); var fromRectangle2DLowerLeft = new Cartesian3_default(); var fromRectangle2DUpperRight = new Cartesian3_default(); var fromRectangle2DSouthwest = new Cartographic_default(); var fromRectangle2DNortheast = new Cartographic_default(); BoundingSphere.fromRectangle2D = function(rectangle, projection, result) { return BoundingSphere.fromRectangleWithHeights2D( rectangle, projection, 0, 0, result ); }; BoundingSphere.fromRectangleWithHeights2D = function(rectangle, projection, minimumHeight, maximumHeight, result) { if (!defined_default(result)) { result = new BoundingSphere(); } if (!defined_default(rectangle)) { result.center = Cartesian3_default.clone(Cartesian3_default.ZERO, result.center); result.radius = 0; return result; } projection = defaultValue_default(projection, defaultProjection); Rectangle_default.southwest(rectangle, fromRectangle2DSouthwest); fromRectangle2DSouthwest.height = minimumHeight; Rectangle_default.northeast(rectangle, fromRectangle2DNortheast); fromRectangle2DNortheast.height = maximumHeight; const lowerLeft = projection.project( fromRectangle2DSouthwest, fromRectangle2DLowerLeft ); const upperRight = projection.project( fromRectangle2DNortheast, fromRectangle2DUpperRight ); const width = upperRight.x - lowerLeft.x; const height = upperRight.y - lowerLeft.y; const elevation = upperRight.z - lowerLeft.z; result.radius = Math.sqrt(width * width + height * height + elevation * elevation) * 0.5; const center = result.center; center.x = lowerLeft.x + width * 0.5; center.y = lowerLeft.y + height * 0.5; center.z = lowerLeft.z + elevation * 0.5; return result; }; var fromRectangle3DScratch = []; BoundingSphere.fromRectangle3D = function(rectangle, ellipsoid, surfaceHeight, result) { ellipsoid = defaultValue_default(ellipsoid, Ellipsoid_default.WGS84); surfaceHeight = defaultValue_default(surfaceHeight, 0); if (!defined_default(result)) { result = new BoundingSphere(); } if (!defined_default(rectangle)) { result.center = Cartesian3_default.clone(Cartesian3_default.ZERO, result.center); result.radius = 0; return result; } const positions = Rectangle_default.subsample( rectangle, ellipsoid, surfaceHeight, fromRectangle3DScratch ); return BoundingSphere.fromPoints(positions, result); }; BoundingSphere.fromVertices = function(positions, center, stride, result) { if (!defined_default(result)) { result = new BoundingSphere(); } if (!defined_default(positions) || positions.length === 0) { result.center = Cartesian3_default.clone(Cartesian3_default.ZERO, result.center); result.radius = 0; return result; } center = defaultValue_default(center, Cartesian3_default.ZERO); stride = defaultValue_default(stride, 3); Check_default.typeOf.number.greaterThanOrEquals("stride", stride, 3); const currentPos = fromPointsCurrentPos; currentPos.x = positions[0] + center.x; currentPos.y = positions[1] + center.y; currentPos.z = positions[2] + center.z; const xMin = Cartesian3_default.clone(currentPos, fromPointsXMin); const yMin = Cartesian3_default.clone(currentPos, fromPointsYMin); const zMin = Cartesian3_default.clone(currentPos, fromPointsZMin); const xMax = Cartesian3_default.clone(currentPos, fromPointsXMax); const yMax = Cartesian3_default.clone(currentPos, fromPointsYMax); const zMax = Cartesian3_default.clone(currentPos, fromPointsZMax); const numElements = positions.length; let i2; for (i2 = 0; i2 < numElements; i2 += stride) { const x = positions[i2] + center.x; const y = positions[i2 + 1] + center.y; const z = positions[i2 + 2] + center.z; currentPos.x = x; currentPos.y = y; currentPos.z = z; if (x < xMin.x) { Cartesian3_default.clone(currentPos, xMin); } if (x > xMax.x) { Cartesian3_default.clone(currentPos, xMax); } if (y < yMin.y) { Cartesian3_default.clone(currentPos, yMin); } if (y > yMax.y) { Cartesian3_default.clone(currentPos, yMax); } if (z < zMin.z) { Cartesian3_default.clone(currentPos, zMin); } if (z > zMax.z) { Cartesian3_default.clone(currentPos, zMax); } } const xSpan = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(xMax, xMin, fromPointsScratch) ); const ySpan = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(yMax, yMin, fromPointsScratch) ); const zSpan = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(zMax, zMin, fromPointsScratch) ); let diameter1 = xMin; let diameter2 = xMax; let maxSpan = xSpan; if (ySpan > maxSpan) { maxSpan = ySpan; diameter1 = yMin; diameter2 = yMax; } if (zSpan > maxSpan) { maxSpan = zSpan; diameter1 = zMin; diameter2 = zMax; } const ritterCenter = fromPointsRitterCenter; ritterCenter.x = (diameter1.x + diameter2.x) * 0.5; ritterCenter.y = (diameter1.y + diameter2.y) * 0.5; ritterCenter.z = (diameter1.z + diameter2.z) * 0.5; let radiusSquared = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(diameter2, ritterCenter, fromPointsScratch) ); let ritterRadius = Math.sqrt(radiusSquared); const minBoxPt = fromPointsMinBoxPt; minBoxPt.x = xMin.x; minBoxPt.y = yMin.y; minBoxPt.z = zMin.z; const maxBoxPt = fromPointsMaxBoxPt; maxBoxPt.x = xMax.x; maxBoxPt.y = yMax.y; maxBoxPt.z = zMax.z; const naiveCenter = Cartesian3_default.midpoint( minBoxPt, maxBoxPt, fromPointsNaiveCenterScratch ); let naiveRadius = 0; for (i2 = 0; i2 < numElements; i2 += stride) { currentPos.x = positions[i2] + center.x; currentPos.y = positions[i2 + 1] + center.y; currentPos.z = positions[i2 + 2] + center.z; const r2 = Cartesian3_default.magnitude( Cartesian3_default.subtract(currentPos, naiveCenter, fromPointsScratch) ); if (r2 > naiveRadius) { naiveRadius = r2; } const oldCenterToPointSquared = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(currentPos, ritterCenter, fromPointsScratch) ); if (oldCenterToPointSquared > radiusSquared) { const oldCenterToPoint = Math.sqrt(oldCenterToPointSquared); ritterRadius = (ritterRadius + oldCenterToPoint) * 0.5; radiusSquared = ritterRadius * ritterRadius; const oldToNew = oldCenterToPoint - ritterRadius; ritterCenter.x = (ritterRadius * ritterCenter.x + oldToNew * currentPos.x) / oldCenterToPoint; ritterCenter.y = (ritterRadius * ritterCenter.y + oldToNew * currentPos.y) / oldCenterToPoint; ritterCenter.z = (ritterRadius * ritterCenter.z + oldToNew * currentPos.z) / oldCenterToPoint; } } if (ritterRadius < naiveRadius) { Cartesian3_default.clone(ritterCenter, result.center); result.radius = ritterRadius; } else { Cartesian3_default.clone(naiveCenter, result.center); result.radius = naiveRadius; } return result; }; BoundingSphere.fromEncodedCartesianVertices = function(positionsHigh, positionsLow, result) { if (!defined_default(result)) { result = new BoundingSphere(); } if (!defined_default(positionsHigh) || !defined_default(positionsLow) || positionsHigh.length !== positionsLow.length || positionsHigh.length === 0) { result.center = Cartesian3_default.clone(Cartesian3_default.ZERO, result.center); result.radius = 0; return result; } const currentPos = fromPointsCurrentPos; currentPos.x = positionsHigh[0] + positionsLow[0]; currentPos.y = positionsHigh[1] + positionsLow[1]; currentPos.z = positionsHigh[2] + positionsLow[2]; const xMin = Cartesian3_default.clone(currentPos, fromPointsXMin); const yMin = Cartesian3_default.clone(currentPos, fromPointsYMin); const zMin = Cartesian3_default.clone(currentPos, fromPointsZMin); const xMax = Cartesian3_default.clone(currentPos, fromPointsXMax); const yMax = Cartesian3_default.clone(currentPos, fromPointsYMax); const zMax = Cartesian3_default.clone(currentPos, fromPointsZMax); const numElements = positionsHigh.length; let i2; for (i2 = 0; i2 < numElements; i2 += 3) { const x = positionsHigh[i2] + positionsLow[i2]; const y = positionsHigh[i2 + 1] + positionsLow[i2 + 1]; const z = positionsHigh[i2 + 2] + positionsLow[i2 + 2]; currentPos.x = x; currentPos.y = y; currentPos.z = z; if (x < xMin.x) { Cartesian3_default.clone(currentPos, xMin); } if (x > xMax.x) { Cartesian3_default.clone(currentPos, xMax); } if (y < yMin.y) { Cartesian3_default.clone(currentPos, yMin); } if (y > yMax.y) { Cartesian3_default.clone(currentPos, yMax); } if (z < zMin.z) { Cartesian3_default.clone(currentPos, zMin); } if (z > zMax.z) { Cartesian3_default.clone(currentPos, zMax); } } const xSpan = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(xMax, xMin, fromPointsScratch) ); const ySpan = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(yMax, yMin, fromPointsScratch) ); const zSpan = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(zMax, zMin, fromPointsScratch) ); let diameter1 = xMin; let diameter2 = xMax; let maxSpan = xSpan; if (ySpan > maxSpan) { maxSpan = ySpan; diameter1 = yMin; diameter2 = yMax; } if (zSpan > maxSpan) { maxSpan = zSpan; diameter1 = zMin; diameter2 = zMax; } const ritterCenter = fromPointsRitterCenter; ritterCenter.x = (diameter1.x + diameter2.x) * 0.5; ritterCenter.y = (diameter1.y + diameter2.y) * 0.5; ritterCenter.z = (diameter1.z + diameter2.z) * 0.5; let radiusSquared = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(diameter2, ritterCenter, fromPointsScratch) ); let ritterRadius = Math.sqrt(radiusSquared); const minBoxPt = fromPointsMinBoxPt; minBoxPt.x = xMin.x; minBoxPt.y = yMin.y; minBoxPt.z = zMin.z; const maxBoxPt = fromPointsMaxBoxPt; maxBoxPt.x = xMax.x; maxBoxPt.y = yMax.y; maxBoxPt.z = zMax.z; const naiveCenter = Cartesian3_default.midpoint( minBoxPt, maxBoxPt, fromPointsNaiveCenterScratch ); let naiveRadius = 0; for (i2 = 0; i2 < numElements; i2 += 3) { currentPos.x = positionsHigh[i2] + positionsLow[i2]; currentPos.y = positionsHigh[i2 + 1] + positionsLow[i2 + 1]; currentPos.z = positionsHigh[i2 + 2] + positionsLow[i2 + 2]; const r2 = Cartesian3_default.magnitude( Cartesian3_default.subtract(currentPos, naiveCenter, fromPointsScratch) ); if (r2 > naiveRadius) { naiveRadius = r2; } const oldCenterToPointSquared = Cartesian3_default.magnitudeSquared( Cartesian3_default.subtract(currentPos, ritterCenter, fromPointsScratch) ); if (oldCenterToPointSquared > radiusSquared) { const oldCenterToPoint = Math.sqrt(oldCenterToPointSquared); ritterRadius = (ritterRadius + oldCenterToPoint) * 0.5; radiusSquared = ritterRadius * ritterRadius; const oldToNew = oldCenterToPoint - ritterRadius; ritterCenter.x = (ritterRadius * ritterCenter.x + oldToNew * currentPos.x) / oldCenterToPoint; ritterCenter.y = (ritterRadius * ritterCenter.y + oldToNew * currentPos.y) / oldCenterToPoint; ritterCenter.z = (ritterRadius * ritterCenter.z + oldToNew * currentPos.z) / oldCenterToPoint; } } if (ritterRadius < naiveRadius) { Cartesian3_default.clone(ritterCenter, result.center); result.radius = ritterRadius; } else { Cartesian3_default.clone(naiveCenter, result.center); result.radius = naiveRadius; } return result; }; BoundingSphere.fromCornerPoints = function(corner, oppositeCorner, result) { Check_default.typeOf.object("corner", corner); Check_default.typeOf.object("oppositeCorner", oppositeCorner); if (!defined_default(result)) { result = new BoundingSphere(); } const center = Cartesian3_default.midpoint(corner, oppositeCorner, result.center); result.radius = Cartesian3_default.distance(center, oppositeCorner); return result; }; BoundingSphere.fromEllipsoid = function(ellipsoid, result) { Check_default.typeOf.object("ellipsoid", ellipsoid); if (!defined_default(result)) { result = new BoundingSphere(); } Cartesian3_default.clone(Cartesian3_default.ZERO, result.center); result.radius = ellipsoid.maximumRadius; return result; }; var fromBoundingSpheresScratch = new Cartesian3_default(); BoundingSphere.fromBoundingSpheres = function(boundingSpheres, result) { if (!defined_default(result)) { result = new BoundingSphere(); } if (!defined_default(boundingSpheres) || boundingSpheres.length === 0) { result.center = Cartesian3_default.clone(Cartesian3_default.ZERO, result.center); result.radius = 0; return result; } const length3 = boundingSpheres.length; if (length3 === 1) { return BoundingSphere.clone(boundingSpheres[0], result); } if (length3 === 2) { return BoundingSphere.union(boundingSpheres[0], boundingSpheres[1], result); } const positions = []; let i2; for (i2 = 0; i2 < length3; i2++) { positions.push(boundingSpheres[i2].center); } result = BoundingSphere.fromPoints(positions, result); const center = result.center; let radius = result.radius; for (i2 = 0; i2 < length3; i2++) { const tmp2 = boundingSpheres[i2]; radius = Math.max( radius, Cartesian3_default.distance(center, tmp2.center, fromBoundingSpheresScratch) + tmp2.radius ); } result.radius = radius; return result; }; var fromOrientedBoundingBoxScratchU = new Cartesian3_default(); var fromOrientedBoundingBoxScratchV = new Cartesian3_default(); var fromOrientedBoundingBoxScratchW = new Cartesian3_default(); BoundingSphere.fromOrientedBoundingBox = function(orientedBoundingBox, result) { Check_default.defined("orientedBoundingBox", orientedBoundingBox); if (!defined_default(result)) { result = new BoundingSphere(); } const halfAxes = orientedBoundingBox.halfAxes; const u3 = Matrix3_default.getColumn(halfAxes, 0, fromOrientedBoundingBoxScratchU); const v7 = Matrix3_default.getColumn(halfAxes, 1, fromOrientedBoundingBoxScratchV); const w = Matrix3_default.getColumn(halfAxes, 2, fromOrientedBoundingBoxScratchW); Cartesian3_default.add(u3, v7, u3); Cartesian3_default.add(u3, w, u3); result.center = Cartesian3_default.clone(orientedBoundingBox.center, result.center); result.radius = Cartesian3_default.magnitude(u3); return result; }; var scratchFromTransformationCenter = new Cartesian3_default(); var scratchFromTransformationScale = new Cartesian3_default(); BoundingSphere.fromTransformation = function(transformation, result) { Check_default.typeOf.object("transformation", transformation); if (!defined_default(result)) { result = new BoundingSphere(); } const center = Matrix4_default.getTranslation( transformation, scratchFromTransformationCenter ); const scale = Matrix4_default.getScale( transformation, scratchFromTransformationScale ); const radius = 0.5 * Cartesian3_default.magnitude(scale); result.center = Cartesian3_default.clone(center, result.center); result.radius = radius; return result; }; BoundingSphere.clone = function(sphere, result) { if (!defined_default(sphere)) { return void 0; } if (!defined_default(result)) { return new BoundingSphere(sphere.center, sphere.radius); } result.center = Cartesian3_default.clone(sphere.center, result.center); result.radius = sphere.radius; return result; }; BoundingSphere.packedLength = 4; BoundingSphere.pack = function(value, array, startingIndex) { Check_default.typeOf.object("value", value); Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); const center = value.center; array[startingIndex++] = center.x; array[startingIndex++] = center.y; array[startingIndex++] = center.z; array[startingIndex] = value.radius; return array; }; BoundingSphere.unpack = function(array, startingIndex, result) { Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); if (!defined_default(result)) { result = new BoundingSphere(); } const center = result.center; center.x = array[startingIndex++]; center.y = array[startingIndex++]; center.z = array[startingIndex++]; result.radius = array[startingIndex]; return result; }; var unionScratch = new Cartesian3_default(); var unionScratchCenter = new Cartesian3_default(); BoundingSphere.union = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); if (!defined_default(result)) { result = new BoundingSphere(); } const leftCenter = left.center; const leftRadius = left.radius; const rightCenter = right.center; const rightRadius = right.radius; const toRightCenter = Cartesian3_default.subtract( rightCenter, leftCenter, unionScratch ); const centerSeparation = Cartesian3_default.magnitude(toRightCenter); if (leftRadius >= centerSeparation + rightRadius) { left.clone(result); return result; } if (rightRadius >= centerSeparation + leftRadius) { right.clone(result); return result; } const halfDistanceBetweenTangentPoints = (leftRadius + centerSeparation + rightRadius) * 0.5; const center = Cartesian3_default.multiplyByScalar( toRightCenter, (-leftRadius + halfDistanceBetweenTangentPoints) / centerSeparation, unionScratchCenter ); Cartesian3_default.add(center, leftCenter, center); Cartesian3_default.clone(center, result.center); result.radius = halfDistanceBetweenTangentPoints; return result; }; var expandScratch = new Cartesian3_default(); BoundingSphere.expand = function(sphere, point, result) { Check_default.typeOf.object("sphere", sphere); Check_default.typeOf.object("point", point); result = BoundingSphere.clone(sphere, result); const radius = Cartesian3_default.magnitude( Cartesian3_default.subtract(point, result.center, expandScratch) ); if (radius > result.radius) { result.radius = radius; } return result; }; BoundingSphere.intersectPlane = function(sphere, plane) { Check_default.typeOf.object("sphere", sphere); Check_default.typeOf.object("plane", plane); const center = sphere.center; const radius = sphere.radius; const normal2 = plane.normal; const distanceToPlane = Cartesian3_default.dot(normal2, center) + plane.distance; if (distanceToPlane < -radius) { return Intersect_default.OUTSIDE; } else if (distanceToPlane < radius) { return Intersect_default.INTERSECTING; } return Intersect_default.INSIDE; }; BoundingSphere.transform = function(sphere, transform4, result) { Check_default.typeOf.object("sphere", sphere); Check_default.typeOf.object("transform", transform4); if (!defined_default(result)) { result = new BoundingSphere(); } result.center = Matrix4_default.multiplyByPoint( transform4, sphere.center, result.center ); result.radius = Matrix4_default.getMaximumScale(transform4) * sphere.radius; return result; }; var distanceSquaredToScratch = new Cartesian3_default(); BoundingSphere.distanceSquaredTo = function(sphere, cartesian11) { Check_default.typeOf.object("sphere", sphere); Check_default.typeOf.object("cartesian", cartesian11); const diff = Cartesian3_default.subtract( sphere.center, cartesian11, distanceSquaredToScratch ); const distance2 = Cartesian3_default.magnitude(diff) - sphere.radius; if (distance2 <= 0) { return 0; } return distance2 * distance2; }; BoundingSphere.transformWithoutScale = function(sphere, transform4, result) { Check_default.typeOf.object("sphere", sphere); Check_default.typeOf.object("transform", transform4); if (!defined_default(result)) { result = new BoundingSphere(); } result.center = Matrix4_default.multiplyByPoint( transform4, sphere.center, result.center ); result.radius = sphere.radius; return result; }; var scratchCartesian3 = new Cartesian3_default(); BoundingSphere.computePlaneDistances = function(sphere, position, direction2, result) { Check_default.typeOf.object("sphere", sphere); Check_default.typeOf.object("position", position); Check_default.typeOf.object("direction", direction2); if (!defined_default(result)) { result = new Interval_default(); } const toCenter = Cartesian3_default.subtract( sphere.center, position, scratchCartesian3 ); const mag = Cartesian3_default.dot(direction2, toCenter); result.start = mag - sphere.radius; result.stop = mag + sphere.radius; return result; }; var projectTo2DNormalScratch = new Cartesian3_default(); var projectTo2DEastScratch = new Cartesian3_default(); var projectTo2DNorthScratch = new Cartesian3_default(); var projectTo2DWestScratch = new Cartesian3_default(); var projectTo2DSouthScratch = new Cartesian3_default(); var projectTo2DCartographicScratch = new Cartographic_default(); var projectTo2DPositionsScratch = new Array(8); for (let n2 = 0; n2 < 8; ++n2) { projectTo2DPositionsScratch[n2] = new Cartesian3_default(); } var projectTo2DProjection = new GeographicProjection_default(); BoundingSphere.projectTo2D = function(sphere, projection, result) { Check_default.typeOf.object("sphere", sphere); projection = defaultValue_default(projection, projectTo2DProjection); const ellipsoid = projection.ellipsoid; let center = sphere.center; const radius = sphere.radius; let normal2; if (Cartesian3_default.equals(center, Cartesian3_default.ZERO)) { normal2 = Cartesian3_default.clone(Cartesian3_default.UNIT_X, projectTo2DNormalScratch); } else { normal2 = ellipsoid.geodeticSurfaceNormal(center, projectTo2DNormalScratch); } const east = Cartesian3_default.cross( Cartesian3_default.UNIT_Z, normal2, projectTo2DEastScratch ); Cartesian3_default.normalize(east, east); const north = Cartesian3_default.cross(normal2, east, projectTo2DNorthScratch); Cartesian3_default.normalize(north, north); Cartesian3_default.multiplyByScalar(normal2, radius, normal2); Cartesian3_default.multiplyByScalar(north, radius, north); Cartesian3_default.multiplyByScalar(east, radius, east); const south = Cartesian3_default.negate(north, projectTo2DSouthScratch); const west = Cartesian3_default.negate(east, projectTo2DWestScratch); const positions = projectTo2DPositionsScratch; let corner = positions[0]; Cartesian3_default.add(normal2, north, corner); Cartesian3_default.add(corner, east, corner); corner = positions[1]; Cartesian3_default.add(normal2, north, corner); Cartesian3_default.add(corner, west, corner); corner = positions[2]; Cartesian3_default.add(normal2, south, corner); Cartesian3_default.add(corner, west, corner); corner = positions[3]; Cartesian3_default.add(normal2, south, corner); Cartesian3_default.add(corner, east, corner); Cartesian3_default.negate(normal2, normal2); corner = positions[4]; Cartesian3_default.add(normal2, north, corner); Cartesian3_default.add(corner, east, corner); corner = positions[5]; Cartesian3_default.add(normal2, north, corner); Cartesian3_default.add(corner, west, corner); corner = positions[6]; Cartesian3_default.add(normal2, south, corner); Cartesian3_default.add(corner, west, corner); corner = positions[7]; Cartesian3_default.add(normal2, south, corner); Cartesian3_default.add(corner, east, corner); const length3 = positions.length; for (let i2 = 0; i2 < length3; ++i2) { const position = positions[i2]; Cartesian3_default.add(center, position, position); const cartographic2 = ellipsoid.cartesianToCartographic( position, projectTo2DCartographicScratch ); projection.project(cartographic2, position); } result = BoundingSphere.fromPoints(positions, result); center = result.center; const x = center.x; const y = center.y; const z = center.z; center.x = z; center.y = x; center.z = y; return result; }; BoundingSphere.isOccluded = function(sphere, occluder) { Check_default.typeOf.object("sphere", sphere); Check_default.typeOf.object("occluder", occluder); return !occluder.isBoundingSphereVisible(sphere); }; BoundingSphere.equals = function(left, right) { return left === right || defined_default(left) && defined_default(right) && Cartesian3_default.equals(left.center, right.center) && left.radius === right.radius; }; BoundingSphere.prototype.intersectPlane = function(plane) { return BoundingSphere.intersectPlane(this, plane); }; BoundingSphere.prototype.distanceSquaredTo = function(cartesian11) { return BoundingSphere.distanceSquaredTo(this, cartesian11); }; BoundingSphere.prototype.computePlaneDistances = function(position, direction2, result) { return BoundingSphere.computePlaneDistances( this, position, direction2, result ); }; BoundingSphere.prototype.isOccluded = function(occluder) { return BoundingSphere.isOccluded(this, occluder); }; BoundingSphere.prototype.equals = function(right) { return BoundingSphere.equals(this, right); }; BoundingSphere.prototype.clone = function(result) { return BoundingSphere.clone(this, result); }; BoundingSphere.prototype.volume = function() { const radius = this.radius; return volumeConstant * radius * radius * radius; }; var BoundingSphere_default = BoundingSphere; // node_modules/cesium/Source/ThirdParty/_commonjsHelpers-3aae1032.js var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; function createCommonjsModule(fn, basedir, module2) { return module2 = { path: basedir, exports: {}, require: function(path, base) { return commonjsRequire(path, base === void 0 || base === null ? module2.path : base); } }, fn(module2, module2.exports), module2.exports; } function commonjsRequire() { throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); } // node_modules/cesium/Source/ThirdParty/Uri.js var punycode = createCommonjsModule(function(module2, exports2) { (function(root) { var freeExports = exports2 && !exports2.nodeType && exports2; var freeModule = module2 && !module2.nodeType && module2; var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal; if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) { root = freeGlobal; } var punycode2, maxInt = 2147483647, base = 36, tMin = 1, tMax = 26, skew = 38, damp = 700, initialBias = 72, initialN = 128, delimiter = "-", regexPunycode = /^xn--/, regexNonASCII = /[^\x20-\x7E]/, regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, errors = { "overflow": "Overflow: input needs wider integers to process", "not-basic": "Illegal input >= 0x80 (not a basic code point)", "invalid-input": "Invalid input" }, baseMinusTMin = base - tMin, floor = Math.floor, stringFromCharCode = String.fromCharCode, key; function error(type) { throw new RangeError(errors[type]); } function map(array, fn) { var length3 = array.length; var result = []; while (length3--) { result[length3] = fn(array[length3]); } return result; } function mapDomain(string, fn) { var parts = string.split("@"); var result = ""; if (parts.length > 1) { result = parts[0] + "@"; string = parts[1]; } string = string.replace(regexSeparators, "."); var labels = string.split("."); var encoded = map(labels, fn).join("."); return result + encoded; } function ucs2decode(string) { var output = [], counter = 0, length3 = string.length, value, extra; while (counter < length3) { value = string.charCodeAt(counter++); if (value >= 55296 && value <= 56319 && counter < length3) { extra = string.charCodeAt(counter++); if ((extra & 64512) == 56320) { output.push(((value & 1023) << 10) + (extra & 1023) + 65536); } else { output.push(value); counter--; } } else { output.push(value); } } return output; } function ucs2encode(array) { return map(array, function(value) { var output = ""; if (value > 65535) { value -= 65536; output += stringFromCharCode(value >>> 10 & 1023 | 55296); value = 56320 | value & 1023; } output += stringFromCharCode(value); return output; }).join(""); } function basicToDigit(codePoint) { if (codePoint - 48 < 10) { return codePoint - 22; } if (codePoint - 65 < 26) { return codePoint - 65; } if (codePoint - 97 < 26) { return codePoint - 97; } return base; } function digitToBasic(digit, flag) { return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); } function adapt(delta, numPoints, firstTime) { var k = 0; delta = firstTime ? floor(delta / damp) : delta >> 1; delta += floor(delta / numPoints); for (; delta > baseMinusTMin * tMax >> 1; k += base) { delta = floor(delta / baseMinusTMin); } return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); } function decode(input) { var output = [], inputLength = input.length, out, i2 = 0, n2 = initialN, bias = initialBias, basic, j, index2, oldi, w, k, digit, t, baseMinusT; basic = input.lastIndexOf(delimiter); if (basic < 0) { basic = 0; } for (j = 0; j < basic; ++j) { if (input.charCodeAt(j) >= 128) { error("not-basic"); } output.push(input.charCodeAt(j)); } for (index2 = basic > 0 ? basic + 1 : 0; index2 < inputLength; ) { for (oldi = i2, w = 1, k = base; ; k += base) { if (index2 >= inputLength) { error("invalid-input"); } digit = basicToDigit(input.charCodeAt(index2++)); if (digit >= base || digit > floor((maxInt - i2) / w)) { error("overflow"); } i2 += digit * w; t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; if (digit < t) { break; } baseMinusT = base - t; if (w > floor(maxInt / baseMinusT)) { error("overflow"); } w *= baseMinusT; } out = output.length + 1; bias = adapt(i2 - oldi, out, oldi == 0); if (floor(i2 / out) > maxInt - n2) { error("overflow"); } n2 += floor(i2 / out); i2 %= out; output.splice(i2++, 0, n2); } return ucs2encode(output); } function encode(input) { var n2, delta, handledCPCount, basicLength, bias, j, m, q, k, t, currentValue, output = [], inputLength, handledCPCountPlusOne, baseMinusT, qMinusT; input = ucs2decode(input); inputLength = input.length; n2 = initialN; delta = 0; bias = initialBias; for (j = 0; j < inputLength; ++j) { currentValue = input[j]; if (currentValue < 128) { output.push(stringFromCharCode(currentValue)); } } handledCPCount = basicLength = output.length; if (basicLength) { output.push(delimiter); } while (handledCPCount < inputLength) { for (m = maxInt, j = 0; j < inputLength; ++j) { currentValue = input[j]; if (currentValue >= n2 && currentValue < m) { m = currentValue; } } handledCPCountPlusOne = handledCPCount + 1; if (m - n2 > floor((maxInt - delta) / handledCPCountPlusOne)) { error("overflow"); } delta += (m - n2) * handledCPCountPlusOne; n2 = m; for (j = 0; j < inputLength; ++j) { currentValue = input[j]; if (currentValue < n2 && ++delta > maxInt) { error("overflow"); } if (currentValue == n2) { for (q = delta, k = base; ; k += base) { t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; if (q < t) { break; } qMinusT = q - t; baseMinusT = base - t; output.push( stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) ); q = floor(qMinusT / baseMinusT); } output.push(stringFromCharCode(digitToBasic(q, 0))); bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); delta = 0; ++handledCPCount; } } ++delta; ++n2; } return output.join(""); } function toUnicode(input) { return mapDomain(input, function(string) { return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string; }); } function toASCII(input) { return mapDomain(input, function(string) { return regexNonASCII.test(string) ? "xn--" + encode(string) : string; }); } punycode2 = { "version": "1.3.2", "ucs2": { "decode": ucs2decode, "encode": ucs2encode }, "decode": decode, "encode": encode, "toASCII": toASCII, "toUnicode": toUnicode }; if (freeExports && freeModule) { if (module2.exports == freeExports) { freeModule.exports = punycode2; } else { for (key in punycode2) { punycode2.hasOwnProperty(key) && (freeExports[key] = punycode2[key]); } } } else { root.punycode = punycode2; } })(commonjsGlobal); }); var IPv6 = createCommonjsModule(function(module2) { (function(root, factory) { if (module2.exports) { module2.exports = factory(); } else { root.IPv6 = factory(root); } })(commonjsGlobal, function(root) { var _IPv6 = root && root.IPv6; function bestPresentation(address) { var _address = address.toLowerCase(); var segments = _address.split(":"); var length3 = segments.length; var total = 8; if (segments[0] === "" && segments[1] === "" && segments[2] === "") { segments.shift(); segments.shift(); } else if (segments[0] === "" && segments[1] === "") { segments.shift(); } else if (segments[length3 - 1] === "" && segments[length3 - 2] === "") { segments.pop(); } length3 = segments.length; if (segments[length3 - 1].indexOf(".") !== -1) { total = 7; } var pos; for (pos = 0; pos < length3; pos++) { if (segments[pos] === "") { break; } } if (pos < total) { segments.splice(pos, 1, "0000"); while (segments.length < total) { segments.splice(pos, 0, "0000"); } } var _segments; for (var i2 = 0; i2 < total; i2++) { _segments = segments[i2].split(""); for (var j = 0; j < 3; j++) { if (_segments[0] === "0" && _segments.length > 1) { _segments.splice(0, 1); } else { break; } } segments[i2] = _segments.join(""); } var best = -1; var _best = 0; var _current = 0; var current = -1; var inzeroes = false; for (i2 = 0; i2 < total; i2++) { if (inzeroes) { if (segments[i2] === "0") { _current += 1; } else { inzeroes = false; if (_current > _best) { best = current; _best = _current; } } } else { if (segments[i2] === "0") { inzeroes = true; current = i2; _current = 1; } } } if (_current > _best) { best = current; _best = _current; } if (_best > 1) { segments.splice(best, _best, ""); } length3 = segments.length; var result = ""; if (segments[0] === "") { result = ":"; } for (i2 = 0; i2 < length3; i2++) { result += segments[i2]; if (i2 === length3 - 1) { break; } result += ":"; } if (segments[length3 - 1] === "") { result += ":"; } return result; } function noConflict() { if (root.IPv6 === this) { root.IPv6 = _IPv6; } return this; } return { best: bestPresentation, noConflict }; }); }); var SecondLevelDomains = createCommonjsModule(function(module2) { (function(root, factory) { if (module2.exports) { module2.exports = factory(); } else { root.SecondLevelDomains = factory(root); } })(commonjsGlobal, function(root) { var _SecondLevelDomains = root && root.SecondLevelDomains; var SLD = { list: { "ac": " com gov mil net org ", "ae": " ac co gov mil name net org pro sch ", "af": " com edu gov net org ", "al": " com edu gov mil net org ", "ao": " co ed gv it og pb ", "ar": " com edu gob gov int mil net org tur ", "at": " ac co gv or ", "au": " asn com csiro edu gov id net org ", "ba": " co com edu gov mil net org rs unbi unmo unsa untz unze ", "bb": " biz co com edu gov info net org store tv ", "bh": " biz cc com edu gov info net org ", "bn": " com edu gov net org ", "bo": " com edu gob gov int mil net org tv ", "br": " adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ", "bs": " com edu gov net org ", "bz": " du et om ov rg ", "ca": " ab bc mb nb nf nl ns nt nu on pe qc sk yk ", "ck": " biz co edu gen gov info net org ", "cn": " ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ", "co": " com edu gov mil net nom org ", "cr": " ac c co ed fi go or sa ", "cy": " ac biz com ekloges gov ltd name net org parliament press pro tm ", "do": " art com edu gob gov mil net org sld web ", "dz": " art asso com edu gov net org pol ", "ec": " com edu fin gov info med mil net org pro ", "eg": " com edu eun gov mil name net org sci ", "er": " com edu gov ind mil net org rochest w ", "es": " com edu gob nom org ", "et": " biz com edu gov info name net org ", "fj": " ac biz com info mil name net org pro ", "fk": " ac co gov net nom org ", "fr": " asso com f gouv nom prd presse tm ", "gg": " co net org ", "gh": " com edu gov mil org ", "gn": " ac com gov net org ", "gr": " com edu gov mil net org ", "gt": " com edu gob ind mil net org ", "gu": " com edu gov net org ", "hk": " com edu gov idv net org ", "hu": " 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ", "id": " ac co go mil net or sch web ", "il": " ac co gov idf k12 muni net org ", "in": " ac co edu ernet firm gen gov i ind mil net nic org res ", "iq": " com edu gov i mil net org ", "ir": " ac co dnssec gov i id net org sch ", "it": " edu gov ", "je": " co net org ", "jo": " com edu gov mil name net org sch ", "jp": " ac ad co ed go gr lg ne or ", "ke": " ac co go info me mobi ne or sc ", "kh": " com edu gov mil net org per ", "ki": " biz com de edu gov info mob net org tel ", "km": " asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ", "kn": " edu gov net org ", "kr": " ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ", "kw": " com edu gov net org ", "ky": " com edu gov net org ", "kz": " com edu gov mil net org ", "lb": " com edu gov net org ", "lk": " assn com edu gov grp hotel int ltd net ngo org sch soc web ", "lr": " com edu gov net org ", "lv": " asn com conf edu gov id mil net org ", "ly": " com edu gov id med net org plc sch ", "ma": " ac co gov m net org press ", "mc": " asso tm ", "me": " ac co edu gov its net org priv ", "mg": " com edu gov mil nom org prd tm ", "mk": " com edu gov inf name net org pro ", "ml": " com edu gov net org presse ", "mn": " edu gov org ", "mo": " com edu gov net org ", "mt": " com edu gov net org ", "mv": " aero biz com coop edu gov info int mil museum name net org pro ", "mw": " ac co com coop edu gov int museum net org ", "mx": " com edu gob net org ", "my": " com edu gov mil name net org sch ", "nf": " arts com firm info net other per rec store web ", "ng": " biz com edu gov mil mobi name net org sch ", "ni": " ac co com edu gob mil net nom org ", "np": " com edu gov mil net org ", "nr": " biz com edu gov info net org ", "om": " ac biz co com edu gov med mil museum net org pro sch ", "pe": " com edu gob mil net nom org sld ", "ph": " com edu gov i mil net ngo org ", "pk": " biz com edu fam gob gok gon gop gos gov net org web ", "pl": " art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ", "pr": " ac biz com edu est gov info isla name net org pro prof ", "ps": " com edu gov net org plo sec ", "pw": " belau co ed go ne or ", "ro": " arts com firm info nom nt org rec store tm www ", "rs": " ac co edu gov in org ", "sb": " com edu gov net org ", "sc": " com edu gov net org ", "sh": " co com edu gov net nom org ", "sl": " com edu gov net org ", "st": " co com consulado edu embaixada gov mil net org principe saotome store ", "sv": " com edu gob org red ", "sz": " ac co org ", "tr": " av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ", "tt": " aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ", "tw": " club com ebiz edu game gov idv mil net org ", "mu": " ac co com gov net or org ", "mz": " ac co edu gov org ", "na": " co com ", "nz": " ac co cri geek gen govt health iwi maori mil net org parliament school ", "pa": " abo ac com edu gob ing med net nom org sld ", "pt": " com edu gov int net nome org publ ", "py": " com edu gov mil net org ", "qa": " com edu gov mil net org ", "re": " asso com nom ", "ru": " ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ", "rw": " ac co com edu gouv gov int mil net ", "sa": " com edu gov med net org pub sch ", "sd": " com edu gov info med net org tv ", "se": " a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ", "sg": " com edu gov idn net org per ", "sn": " art com edu gouv org perso univ ", "sy": " com edu gov mil net news org ", "th": " ac co go in mi net or ", "tj": " ac biz co com edu go gov info int mil name net nic org test web ", "tn": " agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ", "tz": " ac co go ne or ", "ua": " biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ", "ug": " ac co go ne or org sc ", "uk": " ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ", "us": " dni fed isa kids nsn ", "uy": " com edu gub mil net org ", "ve": " co com edu gob info mil net org web ", "vi": " co com k12 net org ", "vn": " ac biz com edu gov health info int name net org pro ", "ye": " co com gov ltd me net org plc ", "yu": " ac co edu gov org ", "za": " ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ", "zm": " ac co com edu gov net org sch ", "com": "ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ", "net": "gb jp se uk ", "org": "ae", "de": "com " }, has: function(domain) { var tldOffset = domain.lastIndexOf("."); if (tldOffset <= 0 || tldOffset >= domain.length - 1) { return false; } var sldOffset = domain.lastIndexOf(".", tldOffset - 1); if (sldOffset <= 0 || sldOffset >= tldOffset - 1) { return false; } var sldList = SLD.list[domain.slice(tldOffset + 1)]; if (!sldList) { return false; } return sldList.indexOf(" " + domain.slice(sldOffset + 1, tldOffset) + " ") >= 0; }, is: function(domain) { var tldOffset = domain.lastIndexOf("."); if (tldOffset <= 0 || tldOffset >= domain.length - 1) { return false; } var sldOffset = domain.lastIndexOf(".", tldOffset - 1); if (sldOffset >= 0) { return false; } var sldList = SLD.list[domain.slice(tldOffset + 1)]; if (!sldList) { return false; } return sldList.indexOf(" " + domain.slice(0, tldOffset) + " ") >= 0; }, get: function(domain) { var tldOffset = domain.lastIndexOf("."); if (tldOffset <= 0 || tldOffset >= domain.length - 1) { return null; } var sldOffset = domain.lastIndexOf(".", tldOffset - 1); if (sldOffset <= 0 || sldOffset >= tldOffset - 1) { return null; } var sldList = SLD.list[domain.slice(tldOffset + 1)]; if (!sldList) { return null; } if (sldList.indexOf(" " + domain.slice(sldOffset + 1, tldOffset) + " ") < 0) { return null; } return domain.slice(sldOffset + 1); }, noConflict: function() { if (root.SecondLevelDomains === this) { root.SecondLevelDomains = _SecondLevelDomains; } return this; } }; return SLD; }); }); var URI = createCommonjsModule(function(module2) { (function(root, factory) { if (module2.exports) { module2.exports = factory(punycode, IPv6, SecondLevelDomains); } else { root.URI = factory(root.punycode, root.IPv6, root.SecondLevelDomains, root); } })(commonjsGlobal, function(punycode2, IPv62, SLD, root) { var _URI = root && root.URI; function URI2(url2, base) { var _urlSupplied = arguments.length >= 1; var _baseSupplied = arguments.length >= 2; if (!(this instanceof URI2)) { if (_urlSupplied) { if (_baseSupplied) { return new URI2(url2, base); } return new URI2(url2); } return new URI2(); } if (url2 === void 0) { if (_urlSupplied) { throw new TypeError("undefined is not a valid argument for URI"); } if (typeof location !== "undefined") { url2 = location.href + ""; } else { url2 = ""; } } if (url2 === null) { if (_urlSupplied) { throw new TypeError("null is not a valid argument for URI"); } } this.href(url2); if (base !== void 0) { return this.absoluteTo(base); } return this; } function isInteger(value) { return /^[0-9]+$/.test(value); } URI2.version = "1.19.11"; var p2 = URI2.prototype; var hasOwn = Object.prototype.hasOwnProperty; function escapeRegEx(string) { return string.replace(/([.*+?^=!:${}()|[\]\/\\])/g, "\\$1"); } function getType(value) { if (value === void 0) { return "Undefined"; } return String(Object.prototype.toString.call(value)).slice(8, -1); } function isArray(obj) { return getType(obj) === "Array"; } function filterArrayValues(data, value) { var lookup = {}; var i2, length3; if (getType(value) === "RegExp") { lookup = null; } else if (isArray(value)) { for (i2 = 0, length3 = value.length; i2 < length3; i2++) { lookup[value[i2]] = true; } } else { lookup[value] = true; } for (i2 = 0, length3 = data.length; i2 < length3; i2++) { var _match = lookup && lookup[data[i2]] !== void 0 || !lookup && value.test(data[i2]); if (_match) { data.splice(i2, 1); length3--; i2--; } } return data; } function arrayContains(list, value) { var i2, length3; if (isArray(value)) { for (i2 = 0, length3 = value.length; i2 < length3; i2++) { if (!arrayContains(list, value[i2])) { return false; } } return true; } var _type = getType(value); for (i2 = 0, length3 = list.length; i2 < length3; i2++) { if (_type === "RegExp") { if (typeof list[i2] === "string" && list[i2].match(value)) { return true; } } else if (list[i2] === value) { return true; } } return false; } function arraysEqual(one, two) { if (!isArray(one) || !isArray(two)) { return false; } if (one.length !== two.length) { return false; } one.sort(); two.sort(); for (var i2 = 0, l2 = one.length; i2 < l2; i2++) { if (one[i2] !== two[i2]) { return false; } } return true; } function trimSlashes(text2) { var trim_expression = /^\/+|\/+$/g; return text2.replace(trim_expression, ""); } URI2._parts = function() { return { protocol: null, username: null, password: null, hostname: null, urn: null, port: null, path: null, query: null, fragment: null, preventInvalidHostname: URI2.preventInvalidHostname, duplicateQueryParameters: URI2.duplicateQueryParameters, escapeQuerySpace: URI2.escapeQuerySpace }; }; URI2.preventInvalidHostname = false; URI2.duplicateQueryParameters = false; URI2.escapeQuerySpace = true; URI2.protocol_expression = /^[a-z][a-z0-9.+-]*$/i; URI2.idn_expression = /[^a-z0-9\._-]/i; URI2.punycode_expression = /(xn--)/i; URI2.ip4_expression = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; URI2.ip6_expression = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/; URI2.find_uri_expression = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig; URI2.findUri = { start: /\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi, end: /[\s\r\n]|$/, trim: /[`!()\[\]{};:'".,<>?«»“”„‘’]+$/, parens: /(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g }; URI2.leading_whitespace_expression = /^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/; URI2.ascii_tab_whitespace = /[\u0009\u000A\u000D]+/g; URI2.defaultPorts = { http: "80", https: "443", ftp: "21", gopher: "70", ws: "80", wss: "443" }; URI2.hostProtocols = [ "http", "https" ]; URI2.invalid_hostname_characters = /[^a-zA-Z0-9\.\-:_]/; URI2.domAttributes = { "a": "href", "blockquote": "cite", "link": "href", "base": "href", "script": "src", "form": "action", "img": "src", "area": "href", "iframe": "src", "embed": "src", "source": "src", "track": "src", "input": "src", "audio": "src", "video": "src" }; URI2.getDomAttribute = function(node) { if (!node || !node.nodeName) { return void 0; } var nodeName = node.nodeName.toLowerCase(); if (nodeName === "input" && node.type !== "image") { return void 0; } return URI2.domAttributes[nodeName]; }; function escapeForDumbFirefox36(value) { return escape(value); } function strictEncodeURIComponent(string) { return encodeURIComponent(string).replace(/[!'()*]/g, escapeForDumbFirefox36).replace(/\*/g, "%2A"); } URI2.encode = strictEncodeURIComponent; URI2.decode = decodeURIComponent; URI2.iso8859 = function() { URI2.encode = escape; URI2.decode = unescape; }; URI2.unicode = function() { URI2.encode = strictEncodeURIComponent; URI2.decode = decodeURIComponent; }; URI2.characters = { pathname: { encode: { expression: /%(24|26|2B|2C|3B|3D|3A|40)/ig, map: { "%24": "$", "%26": "&", "%2B": "+", "%2C": ",", "%3B": ";", "%3D": "=", "%3A": ":", "%40": "@" } }, decode: { expression: /[\/\?#]/g, map: { "/": "%2F", "?": "%3F", "#": "%23" } } }, reserved: { encode: { expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig, map: { "%3A": ":", "%2F": "/", "%3F": "?", "%23": "#", "%5B": "[", "%5D": "]", "%40": "@", "%21": "!", "%24": "$", "%26": "&", "%27": "'", "%28": "(", "%29": ")", "%2A": "*", "%2B": "+", "%2C": ",", "%3B": ";", "%3D": "=" } } }, urnpath: { encode: { expression: /%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig, map: { "%21": "!", "%24": "$", "%27": "'", "%28": "(", "%29": ")", "%2A": "*", "%2B": "+", "%2C": ",", "%3B": ";", "%3D": "=", "%40": "@" } }, decode: { expression: /[\/\?#:]/g, map: { "/": "%2F", "?": "%3F", "#": "%23", ":": "%3A" } } } }; URI2.encodeQuery = function(string, escapeQuerySpace) { var escaped = URI2.encode(string + ""); if (escapeQuerySpace === void 0) { escapeQuerySpace = URI2.escapeQuerySpace; } return escapeQuerySpace ? escaped.replace(/%20/g, "+") : escaped; }; URI2.decodeQuery = function(string, escapeQuerySpace) { string += ""; if (escapeQuerySpace === void 0) { escapeQuerySpace = URI2.escapeQuerySpace; } try { return URI2.decode(escapeQuerySpace ? string.replace(/\+/g, "%20") : string); } catch (e2) { return string; } }; var _parts = { "encode": "encode", "decode": "decode" }; var _part; var generateAccessor = function(_group, _part2) { return function(string) { try { return URI2[_part2](string + "").replace(URI2.characters[_group][_part2].expression, function(c14) { return URI2.characters[_group][_part2].map[c14]; }); } catch (e2) { return string; } }; }; for (_part in _parts) { URI2[_part + "PathSegment"] = generateAccessor("pathname", _parts[_part]); URI2[_part + "UrnPathSegment"] = generateAccessor("urnpath", _parts[_part]); } var generateSegmentedPathFunction = function(_sep, _codingFuncName, _innerCodingFuncName) { return function(string) { var actualCodingFunc; if (!_innerCodingFuncName) { actualCodingFunc = URI2[_codingFuncName]; } else { actualCodingFunc = function(string2) { return URI2[_codingFuncName](URI2[_innerCodingFuncName](string2)); }; } var segments = (string + "").split(_sep); for (var i2 = 0, length3 = segments.length; i2 < length3; i2++) { segments[i2] = actualCodingFunc(segments[i2]); } return segments.join(_sep); }; }; URI2.decodePath = generateSegmentedPathFunction("/", "decodePathSegment"); URI2.decodeUrnPath = generateSegmentedPathFunction(":", "decodeUrnPathSegment"); URI2.recodePath = generateSegmentedPathFunction("/", "encodePathSegment", "decode"); URI2.recodeUrnPath = generateSegmentedPathFunction(":", "encodeUrnPathSegment", "decode"); URI2.encodeReserved = generateAccessor("reserved", "encode"); URI2.parse = function(string, parts) { var pos; if (!parts) { parts = { preventInvalidHostname: URI2.preventInvalidHostname }; } string = string.replace(URI2.leading_whitespace_expression, ""); string = string.replace(URI2.ascii_tab_whitespace, ""); pos = string.indexOf("#"); if (pos > -1) { parts.fragment = string.substring(pos + 1) || null; string = string.substring(0, pos); } pos = string.indexOf("?"); if (pos > -1) { parts.query = string.substring(pos + 1) || null; string = string.substring(0, pos); } string = string.replace(/^(https?|ftp|wss?)?:+[/\\]*/i, "$1://"); string = string.replace(/^[/\\]{2,}/i, "//"); if (string.substring(0, 2) === "//") { parts.protocol = null; string = string.substring(2); string = URI2.parseAuthority(string, parts); } else { pos = string.indexOf(":"); if (pos > -1) { parts.protocol = string.substring(0, pos) || null; if (parts.protocol && !parts.protocol.match(URI2.protocol_expression)) { parts.protocol = void 0; } else if (string.substring(pos + 1, pos + 3).replace(/\\/g, "/") === "//") { string = string.substring(pos + 3); string = URI2.parseAuthority(string, parts); } else { string = string.substring(pos + 1); parts.urn = true; } } } parts.path = string; return parts; }; URI2.parseHost = function(string, parts) { if (!string) { string = ""; } string = string.replace(/\\/g, "/"); var pos = string.indexOf("/"); var bracketPos; var t; if (pos === -1) { pos = string.length; } if (string.charAt(0) === "[") { bracketPos = string.indexOf("]"); parts.hostname = string.substring(1, bracketPos) || null; parts.port = string.substring(bracketPos + 2, pos) || null; if (parts.port === "/") { parts.port = null; } } else { var firstColon = string.indexOf(":"); var firstSlash = string.indexOf("/"); var nextColon = string.indexOf(":", firstColon + 1); if (nextColon !== -1 && (firstSlash === -1 || nextColon < firstSlash)) { parts.hostname = string.substring(0, pos) || null; parts.port = null; } else { t = string.substring(0, pos).split(":"); parts.hostname = t[0] || null; parts.port = t[1] || null; } } if (parts.hostname && string.substring(pos).charAt(0) !== "/") { pos++; string = "/" + string; } if (parts.preventInvalidHostname) { URI2.ensureValidHostname(parts.hostname, parts.protocol); } if (parts.port) { URI2.ensureValidPort(parts.port); } return string.substring(pos) || "/"; }; URI2.parseAuthority = function(string, parts) { string = URI2.parseUserinfo(string, parts); return URI2.parseHost(string, parts); }; URI2.parseUserinfo = function(string, parts) { var _string = string; var firstBackSlash = string.indexOf("\\"); if (firstBackSlash !== -1) { string = string.replace(/\\/g, "/"); } var firstSlash = string.indexOf("/"); var pos = string.lastIndexOf("@", firstSlash > -1 ? firstSlash : string.length - 1); var t; if (pos > -1 && (firstSlash === -1 || pos < firstSlash)) { t = string.substring(0, pos).split(":"); parts.username = t[0] ? URI2.decode(t[0]) : null; t.shift(); parts.password = t[0] ? URI2.decode(t.join(":")) : null; string = _string.substring(pos + 1); } else { parts.username = null; parts.password = null; } return string; }; URI2.parseQuery = function(string, escapeQuerySpace) { if (!string) { return {}; } string = string.replace(/&+/g, "&").replace(/^\?*&*|&+$/g, ""); if (!string) { return {}; } var items = {}; var splits = string.split("&"); var length3 = splits.length; var v7, name, value; for (var i2 = 0; i2 < length3; i2++) { v7 = splits[i2].split("="); name = URI2.decodeQuery(v7.shift(), escapeQuerySpace); value = v7.length ? URI2.decodeQuery(v7.join("="), escapeQuerySpace) : null; if (name === "__proto__") { continue; } else if (hasOwn.call(items, name)) { if (typeof items[name] === "string" || items[name] === null) { items[name] = [items[name]]; } items[name].push(value); } else { items[name] = value; } } return items; }; URI2.build = function(parts) { var t = ""; var requireAbsolutePath = false; if (parts.protocol) { t += parts.protocol + ":"; } if (!parts.urn && (t || parts.hostname)) { t += "//"; requireAbsolutePath = true; } t += URI2.buildAuthority(parts) || ""; if (typeof parts.path === "string") { if (parts.path.charAt(0) !== "/" && requireAbsolutePath) { t += "/"; } t += parts.path; } if (typeof parts.query === "string" && parts.query) { t += "?" + parts.query; } if (typeof parts.fragment === "string" && parts.fragment) { t += "#" + parts.fragment; } return t; }; URI2.buildHost = function(parts) { var t = ""; if (!parts.hostname) { return ""; } else if (URI2.ip6_expression.test(parts.hostname)) { t += "[" + parts.hostname + "]"; } else { t += parts.hostname; } if (parts.port) { t += ":" + parts.port; } return t; }; URI2.buildAuthority = function(parts) { return URI2.buildUserinfo(parts) + URI2.buildHost(parts); }; URI2.buildUserinfo = function(parts) { var t = ""; if (parts.username) { t += URI2.encode(parts.username); } if (parts.password) { t += ":" + URI2.encode(parts.password); } if (t) { t += "@"; } return t; }; URI2.buildQuery = function(data, duplicateQueryParameters, escapeQuerySpace) { var t = ""; var unique, key, i2, length3; for (key in data) { if (key === "__proto__") { continue; } else if (hasOwn.call(data, key)) { if (isArray(data[key])) { unique = {}; for (i2 = 0, length3 = data[key].length; i2 < length3; i2++) { if (data[key][i2] !== void 0 && unique[data[key][i2] + ""] === void 0) { t += "&" + URI2.buildQueryParameter(key, data[key][i2], escapeQuerySpace); if (duplicateQueryParameters !== true) { unique[data[key][i2] + ""] = true; } } } } else if (data[key] !== void 0) { t += "&" + URI2.buildQueryParameter(key, data[key], escapeQuerySpace); } } } return t.substring(1); }; URI2.buildQueryParameter = function(name, value, escapeQuerySpace) { return URI2.encodeQuery(name, escapeQuerySpace) + (value !== null ? "=" + URI2.encodeQuery(value, escapeQuerySpace) : ""); }; URI2.addQuery = function(data, name, value) { if (typeof name === "object") { for (var key in name) { if (hasOwn.call(name, key)) { URI2.addQuery(data, key, name[key]); } } } else if (typeof name === "string") { if (data[name] === void 0) { data[name] = value; return; } else if (typeof data[name] === "string") { data[name] = [data[name]]; } if (!isArray(value)) { value = [value]; } data[name] = (data[name] || []).concat(value); } else { throw new TypeError("URI.addQuery() accepts an object, string as the name parameter"); } }; URI2.setQuery = function(data, name, value) { if (typeof name === "object") { for (var key in name) { if (hasOwn.call(name, key)) { URI2.setQuery(data, key, name[key]); } } } else if (typeof name === "string") { data[name] = value === void 0 ? null : value; } else { throw new TypeError("URI.setQuery() accepts an object, string as the name parameter"); } }; URI2.removeQuery = function(data, name, value) { var i2, length3, key; if (isArray(name)) { for (i2 = 0, length3 = name.length; i2 < length3; i2++) { data[name[i2]] = void 0; } } else if (getType(name) === "RegExp") { for (key in data) { if (name.test(key)) { data[key] = void 0; } } } else if (typeof name === "object") { for (key in name) { if (hasOwn.call(name, key)) { URI2.removeQuery(data, key, name[key]); } } } else if (typeof name === "string") { if (value !== void 0) { if (getType(value) === "RegExp") { if (!isArray(data[name]) && value.test(data[name])) { data[name] = void 0; } else { data[name] = filterArrayValues(data[name], value); } } else if (data[name] === String(value) && (!isArray(value) || value.length === 1)) { data[name] = void 0; } else if (isArray(data[name])) { data[name] = filterArrayValues(data[name], value); } } else { data[name] = void 0; } } else { throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter"); } }; URI2.hasQuery = function(data, name, value, withinArray) { switch (getType(name)) { case "String": break; case "RegExp": for (var key in data) { if (hasOwn.call(data, key)) { if (name.test(key) && (value === void 0 || URI2.hasQuery(data, key, value))) { return true; } } } return false; case "Object": for (var _key in name) { if (hasOwn.call(name, _key)) { if (!URI2.hasQuery(data, _key, name[_key])) { return false; } } } return true; default: throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter"); } switch (getType(value)) { case "Undefined": return name in data; case "Boolean": var _booly = Boolean(isArray(data[name]) ? data[name].length : data[name]); return value === _booly; case "Function": return !!value(data[name], name, data); case "Array": if (!isArray(data[name])) { return false; } var op = withinArray ? arrayContains : arraysEqual; return op(data[name], value); case "RegExp": if (!isArray(data[name])) { return Boolean(data[name] && data[name].match(value)); } if (!withinArray) { return false; } return arrayContains(data[name], value); case "Number": value = String(value); case "String": if (!isArray(data[name])) { return data[name] === value; } if (!withinArray) { return false; } return arrayContains(data[name], value); default: throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter"); } }; URI2.joinPaths = function() { var input = []; var segments = []; var nonEmptySegments = 0; for (var i2 = 0; i2 < arguments.length; i2++) { var url2 = new URI2(arguments[i2]); input.push(url2); var _segments = url2.segment(); for (var s2 = 0; s2 < _segments.length; s2++) { if (typeof _segments[s2] === "string") { segments.push(_segments[s2]); } if (_segments[s2]) { nonEmptySegments++; } } } if (!segments.length || !nonEmptySegments) { return new URI2(""); } var uri = new URI2("").segment(segments); if (input[0].path() === "" || input[0].path().slice(0, 1) === "/") { uri.path("/" + uri.path()); } return uri.normalize(); }; URI2.commonPath = function(one, two) { var length3 = Math.min(one.length, two.length); var pos; for (pos = 0; pos < length3; pos++) { if (one.charAt(pos) !== two.charAt(pos)) { pos--; break; } } if (pos < 1) { return one.charAt(0) === two.charAt(0) && one.charAt(0) === "/" ? "/" : ""; } if (one.charAt(pos) !== "/" || two.charAt(pos) !== "/") { pos = one.substring(0, pos).lastIndexOf("/"); } return one.substring(0, pos + 1); }; URI2.withinString = function(string, callback, options) { options || (options = {}); var _start = options.start || URI2.findUri.start; var _end = options.end || URI2.findUri.end; var _trim = options.trim || URI2.findUri.trim; var _parens = options.parens || URI2.findUri.parens; var _attributeOpen = /[a-z0-9-]=["']?$/i; _start.lastIndex = 0; while (true) { var match = _start.exec(string); if (!match) { break; } var start = match.index; if (options.ignoreHtml) { var attributeOpen = string.slice(Math.max(start - 3, 0), start); if (attributeOpen && _attributeOpen.test(attributeOpen)) { continue; } } var end = start + string.slice(start).search(_end); var slice = string.slice(start, end); var parensEnd = -1; while (true) { var parensMatch = _parens.exec(slice); if (!parensMatch) { break; } var parensMatchEnd = parensMatch.index + parensMatch[0].length; parensEnd = Math.max(parensEnd, parensMatchEnd); } if (parensEnd > -1) { slice = slice.slice(0, parensEnd) + slice.slice(parensEnd).replace(_trim, ""); } else { slice = slice.replace(_trim, ""); } if (slice.length <= match[0].length) { continue; } if (options.ignore && options.ignore.test(slice)) { continue; } end = start + slice.length; var result = callback(slice, start, end, string); if (result === void 0) { _start.lastIndex = end; continue; } result = String(result); string = string.slice(0, start) + result + string.slice(end); _start.lastIndex = start + result.length; } _start.lastIndex = 0; return string; }; URI2.ensureValidHostname = function(v7, protocol) { var hasHostname = !!v7; var hasProtocol = !!protocol; var rejectEmptyHostname = false; if (hasProtocol) { rejectEmptyHostname = arrayContains(URI2.hostProtocols, protocol); } if (rejectEmptyHostname && !hasHostname) { throw new TypeError("Hostname cannot be empty, if protocol is " + protocol); } else if (v7 && v7.match(URI2.invalid_hostname_characters)) { if (!punycode2) { throw new TypeError('Hostname "' + v7 + '" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available'); } if (punycode2.toASCII(v7).match(URI2.invalid_hostname_characters)) { throw new TypeError('Hostname "' + v7 + '" contains characters other than [A-Z0-9.-:_]'); } } }; URI2.ensureValidPort = function(v7) { if (!v7) { return; } var port = Number(v7); if (isInteger(port) && port > 0 && port < 65536) { return; } throw new TypeError('Port "' + v7 + '" is not a valid port'); }; URI2.noConflict = function(removeAll) { if (removeAll) { var unconflicted = { URI: this.noConflict() }; if (root.URITemplate && typeof root.URITemplate.noConflict === "function") { unconflicted.URITemplate = root.URITemplate.noConflict(); } if (root.IPv6 && typeof root.IPv6.noConflict === "function") { unconflicted.IPv6 = root.IPv6.noConflict(); } if (root.SecondLevelDomains && typeof root.SecondLevelDomains.noConflict === "function") { unconflicted.SecondLevelDomains = root.SecondLevelDomains.noConflict(); } return unconflicted; } else if (root.URI === this) { root.URI = _URI; } return this; }; p2.build = function(deferBuild) { if (deferBuild === true) { this._deferred_build = true; } else if (deferBuild === void 0 || this._deferred_build) { this._string = URI2.build(this._parts); this._deferred_build = false; } return this; }; p2.clone = function() { return new URI2(this); }; p2.valueOf = p2.toString = function() { return this.build(false)._string; }; function generateSimpleAccessor(_part2) { return function(v7, build) { if (v7 === void 0) { return this._parts[_part2] || ""; } else { this._parts[_part2] = v7 || null; this.build(!build); return this; } }; } function generatePrefixAccessor(_part2, _key) { return function(v7, build) { if (v7 === void 0) { return this._parts[_part2] || ""; } else { if (v7 !== null) { v7 = v7 + ""; if (v7.charAt(0) === _key) { v7 = v7.substring(1); } } this._parts[_part2] = v7; this.build(!build); return this; } }; } p2.protocol = generateSimpleAccessor("protocol"); p2.username = generateSimpleAccessor("username"); p2.password = generateSimpleAccessor("password"); p2.hostname = generateSimpleAccessor("hostname"); p2.port = generateSimpleAccessor("port"); p2.query = generatePrefixAccessor("query", "?"); p2.fragment = generatePrefixAccessor("fragment", "#"); p2.search = function(v7, build) { var t = this.query(v7, build); return typeof t === "string" && t.length ? "?" + t : t; }; p2.hash = function(v7, build) { var t = this.fragment(v7, build); return typeof t === "string" && t.length ? "#" + t : t; }; p2.pathname = function(v7, build) { if (v7 === void 0 || v7 === true) { var res = this._parts.path || (this._parts.hostname ? "/" : ""); return v7 ? (this._parts.urn ? URI2.decodeUrnPath : URI2.decodePath)(res) : res; } else { if (this._parts.urn) { this._parts.path = v7 ? URI2.recodeUrnPath(v7) : ""; } else { this._parts.path = v7 ? URI2.recodePath(v7) : "/"; } this.build(!build); return this; } }; p2.path = p2.pathname; p2.href = function(href, build) { var key; if (href === void 0) { return this.toString(); } this._string = ""; this._parts = URI2._parts(); var _URI2 = href instanceof URI2; var _object = typeof href === "object" && (href.hostname || href.path || href.pathname); if (href.nodeName) { var attribute = URI2.getDomAttribute(href); href = href[attribute] || ""; _object = false; } if (!_URI2 && _object && href.pathname !== void 0) { href = href.toString(); } if (typeof href === "string" || href instanceof String) { this._parts = URI2.parse(String(href), this._parts); } else if (_URI2 || _object) { var src2 = _URI2 ? href._parts : href; for (key in src2) { if (key === "query") { continue; } if (hasOwn.call(this._parts, key)) { this._parts[key] = src2[key]; } } if (src2.query) { this.query(src2.query, false); } } else { throw new TypeError("invalid input"); } this.build(!build); return this; }; p2.is = function(what) { var ip = false; var ip4 = false; var ip6 = false; var name = false; var sld = false; var idn = false; var punycode3 = false; var relative = !this._parts.urn; if (this._parts.hostname) { relative = false; ip4 = URI2.ip4_expression.test(this._parts.hostname); ip6 = URI2.ip6_expression.test(this._parts.hostname); ip = ip4 || ip6; name = !ip; sld = name && SLD && SLD.has(this._parts.hostname); idn = name && URI2.idn_expression.test(this._parts.hostname); punycode3 = name && URI2.punycode_expression.test(this._parts.hostname); } switch (what.toLowerCase()) { case "relative": return relative; case "absolute": return !relative; case "domain": case "name": return name; case "sld": return sld; case "ip": return ip; case "ip4": case "ipv4": case "inet4": return ip4; case "ip6": case "ipv6": case "inet6": return ip6; case "idn": return idn; case "url": return !this._parts.urn; case "urn": return !!this._parts.urn; case "punycode": return punycode3; } return null; }; var _protocol = p2.protocol; var _port = p2.port; var _hostname = p2.hostname; p2.protocol = function(v7, build) { if (v7) { v7 = v7.replace(/:(\/\/)?$/, ""); if (!v7.match(URI2.protocol_expression)) { throw new TypeError('Protocol "' + v7 + `" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`); } } return _protocol.call(this, v7, build); }; p2.scheme = p2.protocol; p2.port = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (v7 !== void 0) { if (v7 === 0) { v7 = null; } if (v7) { v7 += ""; if (v7.charAt(0) === ":") { v7 = v7.substring(1); } URI2.ensureValidPort(v7); } } return _port.call(this, v7, build); }; p2.hostname = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (v7 !== void 0) { var x = { preventInvalidHostname: this._parts.preventInvalidHostname }; var res = URI2.parseHost(v7, x); if (res !== "/") { throw new TypeError('Hostname "' + v7 + '" contains characters other than [A-Z0-9.-]'); } v7 = x.hostname; if (this._parts.preventInvalidHostname) { URI2.ensureValidHostname(v7, this._parts.protocol); } } return _hostname.call(this, v7, build); }; p2.origin = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (v7 === void 0) { var protocol = this.protocol(); var authority = this.authority(); if (!authority) { return ""; } return (protocol ? protocol + "://" : "") + this.authority(); } else { var origin = URI2(v7); this.protocol(origin.protocol()).authority(origin.authority()).build(!build); return this; } }; p2.host = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (v7 === void 0) { return this._parts.hostname ? URI2.buildHost(this._parts) : ""; } else { var res = URI2.parseHost(v7, this._parts); if (res !== "/") { throw new TypeError('Hostname "' + v7 + '" contains characters other than [A-Z0-9.-]'); } this.build(!build); return this; } }; p2.authority = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (v7 === void 0) { return this._parts.hostname ? URI2.buildAuthority(this._parts) : ""; } else { var res = URI2.parseAuthority(v7, this._parts); if (res !== "/") { throw new TypeError('Hostname "' + v7 + '" contains characters other than [A-Z0-9.-]'); } this.build(!build); return this; } }; p2.userinfo = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (v7 === void 0) { var t = URI2.buildUserinfo(this._parts); return t ? t.substring(0, t.length - 1) : t; } else { if (v7[v7.length - 1] !== "@") { v7 += "@"; } URI2.parseUserinfo(v7, this._parts); this.build(!build); return this; } }; p2.resource = function(v7, build) { var parts; if (v7 === void 0) { return this.path() + this.search() + this.hash(); } parts = URI2.parse(v7); this._parts.path = parts.path; this._parts.query = parts.query; this._parts.fragment = parts.fragment; this.build(!build); return this; }; p2.subdomain = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (v7 === void 0) { if (!this._parts.hostname || this.is("IP")) { return ""; } var end = this._parts.hostname.length - this.domain().length - 1; return this._parts.hostname.substring(0, end) || ""; } else { var e2 = this._parts.hostname.length - this.domain().length; var sub = this._parts.hostname.substring(0, e2); var replace = new RegExp("^" + escapeRegEx(sub)); if (v7 && v7.charAt(v7.length - 1) !== ".") { v7 += "."; } if (v7.indexOf(":") !== -1) { throw new TypeError("Domains cannot contain colons"); } if (v7) { URI2.ensureValidHostname(v7, this._parts.protocol); } this._parts.hostname = this._parts.hostname.replace(replace, v7); this.build(!build); return this; } }; p2.domain = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (typeof v7 === "boolean") { build = v7; v7 = void 0; } if (v7 === void 0) { if (!this._parts.hostname || this.is("IP")) { return ""; } var t = this._parts.hostname.match(/\./g); if (t && t.length < 2) { return this._parts.hostname; } var end = this._parts.hostname.length - this.tld(build).length - 1; end = this._parts.hostname.lastIndexOf(".", end - 1) + 1; return this._parts.hostname.substring(end) || ""; } else { if (!v7) { throw new TypeError("cannot set domain empty"); } if (v7.indexOf(":") !== -1) { throw new TypeError("Domains cannot contain colons"); } URI2.ensureValidHostname(v7, this._parts.protocol); if (!this._parts.hostname || this.is("IP")) { this._parts.hostname = v7; } else { var replace = new RegExp(escapeRegEx(this.domain()) + "$"); this._parts.hostname = this._parts.hostname.replace(replace, v7); } this.build(!build); return this; } }; p2.tld = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (typeof v7 === "boolean") { build = v7; v7 = void 0; } if (v7 === void 0) { if (!this._parts.hostname || this.is("IP")) { return ""; } var pos = this._parts.hostname.lastIndexOf("."); var tld = this._parts.hostname.substring(pos + 1); if (build !== true && SLD && SLD.list[tld.toLowerCase()]) { return SLD.get(this._parts.hostname) || tld; } return tld; } else { var replace; if (!v7) { throw new TypeError("cannot set TLD empty"); } else if (v7.match(/[^a-zA-Z0-9-]/)) { if (SLD && SLD.is(v7)) { replace = new RegExp(escapeRegEx(this.tld()) + "$"); this._parts.hostname = this._parts.hostname.replace(replace, v7); } else { throw new TypeError('TLD "' + v7 + '" contains characters other than [A-Z0-9]'); } } else if (!this._parts.hostname || this.is("IP")) { throw new ReferenceError("cannot set TLD on non-domain host"); } else { replace = new RegExp(escapeRegEx(this.tld()) + "$"); this._parts.hostname = this._parts.hostname.replace(replace, v7); } this.build(!build); return this; } }; p2.directory = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (v7 === void 0 || v7 === true) { if (!this._parts.path && !this._parts.hostname) { return ""; } if (this._parts.path === "/") { return "/"; } var end = this._parts.path.length - this.filename().length - 1; var res = this._parts.path.substring(0, end) || (this._parts.hostname ? "/" : ""); return v7 ? URI2.decodePath(res) : res; } else { var e2 = this._parts.path.length - this.filename().length; var directory = this._parts.path.substring(0, e2); var replace = new RegExp("^" + escapeRegEx(directory)); if (!this.is("relative")) { if (!v7) { v7 = "/"; } if (v7.charAt(0) !== "/") { v7 = "/" + v7; } } if (v7 && v7.charAt(v7.length - 1) !== "/") { v7 += "/"; } v7 = URI2.recodePath(v7); this._parts.path = this._parts.path.replace(replace, v7); this.build(!build); return this; } }; p2.filename = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (typeof v7 !== "string") { if (!this._parts.path || this._parts.path === "/") { return ""; } var pos = this._parts.path.lastIndexOf("/"); var res = this._parts.path.substring(pos + 1); return v7 ? URI2.decodePathSegment(res) : res; } else { var mutatedDirectory = false; if (v7.charAt(0) === "/") { v7 = v7.substring(1); } if (v7.match(/\.?\//)) { mutatedDirectory = true; } var replace = new RegExp(escapeRegEx(this.filename()) + "$"); v7 = URI2.recodePath(v7); this._parts.path = this._parts.path.replace(replace, v7); if (mutatedDirectory) { this.normalizePath(build); } else { this.build(!build); } return this; } }; p2.suffix = function(v7, build) { if (this._parts.urn) { return v7 === void 0 ? "" : this; } if (v7 === void 0 || v7 === true) { if (!this._parts.path || this._parts.path === "/") { return ""; } var filename = this.filename(); var pos = filename.lastIndexOf("."); var s2, res; if (pos === -1) { return ""; } s2 = filename.substring(pos + 1); res = /^[a-z0-9%]+$/i.test(s2) ? s2 : ""; return v7 ? URI2.decodePathSegment(res) : res; } else { if (v7.charAt(0) === ".") { v7 = v7.substring(1); } var suffix = this.suffix(); var replace; if (!suffix) { if (!v7) { return this; } this._parts.path += "." + URI2.recodePath(v7); } else if (!v7) { replace = new RegExp(escapeRegEx("." + suffix) + "$"); } else { replace = new RegExp(escapeRegEx(suffix) + "$"); } if (replace) { v7 = URI2.recodePath(v7); this._parts.path = this._parts.path.replace(replace, v7); } this.build(!build); return this; } }; p2.segment = function(segment, v7, build) { var separator = this._parts.urn ? ":" : "/"; var path = this.path(); var absolute = path.substring(0, 1) === "/"; var segments = path.split(separator); if (segment !== void 0 && typeof segment !== "number") { build = v7; v7 = segment; segment = void 0; } if (segment !== void 0 && typeof segment !== "number") { throw new Error('Bad segment "' + segment + '", must be 0-based integer'); } if (absolute) { segments.shift(); } if (segment < 0) { segment = Math.max(segments.length + segment, 0); } if (v7 === void 0) { return segment === void 0 ? segments : segments[segment]; } else if (segment === null || segments[segment] === void 0) { if (isArray(v7)) { segments = []; for (var i2 = 0, l2 = v7.length; i2 < l2; i2++) { if (!v7[i2].length && (!segments.length || !segments[segments.length - 1].length)) { continue; } if (segments.length && !segments[segments.length - 1].length) { segments.pop(); } segments.push(trimSlashes(v7[i2])); } } else if (v7 || typeof v7 === "string") { v7 = trimSlashes(v7); if (segments[segments.length - 1] === "") { segments[segments.length - 1] = v7; } else { segments.push(v7); } } } else { if (v7) { segments[segment] = trimSlashes(v7); } else { segments.splice(segment, 1); } } if (absolute) { segments.unshift(""); } return this.path(segments.join(separator), build); }; p2.segmentCoded = function(segment, v7, build) { var segments, i2, l2; if (typeof segment !== "number") { build = v7; v7 = segment; segment = void 0; } if (v7 === void 0) { segments = this.segment(segment, v7, build); if (!isArray(segments)) { segments = segments !== void 0 ? URI2.decode(segments) : void 0; } else { for (i2 = 0, l2 = segments.length; i2 < l2; i2++) { segments[i2] = URI2.decode(segments[i2]); } } return segments; } if (!isArray(v7)) { v7 = typeof v7 === "string" || v7 instanceof String ? URI2.encode(v7) : v7; } else { for (i2 = 0, l2 = v7.length; i2 < l2; i2++) { v7[i2] = URI2.encode(v7[i2]); } } return this.segment(segment, v7, build); }; var q = p2.query; p2.query = function(v7, build) { if (v7 === true) { return URI2.parseQuery(this._parts.query, this._parts.escapeQuerySpace); } else if (typeof v7 === "function") { var data = URI2.parseQuery(this._parts.query, this._parts.escapeQuerySpace); var result = v7.call(this, data); this._parts.query = URI2.buildQuery(result || data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); this.build(!build); return this; } else if (v7 !== void 0 && typeof v7 !== "string") { this._parts.query = URI2.buildQuery(v7, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); this.build(!build); return this; } else { return q.call(this, v7, build); } }; p2.setQuery = function(name, value, build) { var data = URI2.parseQuery(this._parts.query, this._parts.escapeQuerySpace); if (typeof name === "string" || name instanceof String) { data[name] = value !== void 0 ? value : null; } else if (typeof name === "object") { for (var key in name) { if (hasOwn.call(name, key)) { data[key] = name[key]; } } } else { throw new TypeError("URI.addQuery() accepts an object, string as the name parameter"); } this._parts.query = URI2.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); if (typeof name !== "string") { build = value; } this.build(!build); return this; }; p2.addQuery = function(name, value, build) { var data = URI2.parseQuery(this._parts.query, this._parts.escapeQuerySpace); URI2.addQuery(data, name, value === void 0 ? null : value); this._parts.query = URI2.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); if (typeof name !== "string") { build = value; } this.build(!build); return this; }; p2.removeQuery = function(name, value, build) { var data = URI2.parseQuery(this._parts.query, this._parts.escapeQuerySpace); URI2.removeQuery(data, name, value); this._parts.query = URI2.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); if (typeof name !== "string") { build = value; } this.build(!build); return this; }; p2.hasQuery = function(name, value, withinArray) { var data = URI2.parseQuery(this._parts.query, this._parts.escapeQuerySpace); return URI2.hasQuery(data, name, value, withinArray); }; p2.setSearch = p2.setQuery; p2.addSearch = p2.addQuery; p2.removeSearch = p2.removeQuery; p2.hasSearch = p2.hasQuery; p2.normalize = function() { if (this._parts.urn) { return this.normalizeProtocol(false).normalizePath(false).normalizeQuery(false).normalizeFragment(false).build(); } return this.normalizeProtocol(false).normalizeHostname(false).normalizePort(false).normalizePath(false).normalizeQuery(false).normalizeFragment(false).build(); }; p2.normalizeProtocol = function(build) { if (typeof this._parts.protocol === "string") { this._parts.protocol = this._parts.protocol.toLowerCase(); this.build(!build); } return this; }; p2.normalizeHostname = function(build) { if (this._parts.hostname) { if (this.is("IDN") && punycode2) { this._parts.hostname = punycode2.toASCII(this._parts.hostname); } else if (this.is("IPv6") && IPv62) { this._parts.hostname = IPv62.best(this._parts.hostname); } this._parts.hostname = this._parts.hostname.toLowerCase(); this.build(!build); } return this; }; p2.normalizePort = function(build) { if (typeof this._parts.protocol === "string" && this._parts.port === URI2.defaultPorts[this._parts.protocol]) { this._parts.port = null; this.build(!build); } return this; }; p2.normalizePath = function(build) { var _path = this._parts.path; if (!_path) { return this; } if (this._parts.urn) { this._parts.path = URI2.recodeUrnPath(this._parts.path); this.build(!build); return this; } if (this._parts.path === "/") { return this; } _path = URI2.recodePath(_path); var _was_relative; var _leadingParents = ""; var _parent, _pos; if (_path.charAt(0) !== "/") { _was_relative = true; _path = "/" + _path; } if (_path.slice(-3) === "/.." || _path.slice(-2) === "/.") { _path += "/"; } _path = _path.replace(/(\/(\.\/)+)|(\/\.$)/g, "/").replace(/\/{2,}/g, "/"); if (_was_relative) { _leadingParents = _path.substring(1).match(/^(\.\.\/)+/) || ""; if (_leadingParents) { _leadingParents = _leadingParents[0]; } } while (true) { _parent = _path.search(/\/\.\.(\/|$)/); if (_parent === -1) { break; } else if (_parent === 0) { _path = _path.substring(3); continue; } _pos = _path.substring(0, _parent).lastIndexOf("/"); if (_pos === -1) { _pos = _parent; } _path = _path.substring(0, _pos) + _path.substring(_parent + 3); } if (_was_relative && this.is("relative")) { _path = _leadingParents + _path.substring(1); } this._parts.path = _path; this.build(!build); return this; }; p2.normalizePathname = p2.normalizePath; p2.normalizeQuery = function(build) { if (typeof this._parts.query === "string") { if (!this._parts.query.length) { this._parts.query = null; } else { this.query(URI2.parseQuery(this._parts.query, this._parts.escapeQuerySpace)); } this.build(!build); } return this; }; p2.normalizeFragment = function(build) { if (!this._parts.fragment) { this._parts.fragment = null; this.build(!build); } return this; }; p2.normalizeSearch = p2.normalizeQuery; p2.normalizeHash = p2.normalizeFragment; p2.iso8859 = function() { var e2 = URI2.encode; var d = URI2.decode; URI2.encode = escape; URI2.decode = decodeURIComponent; try { this.normalize(); } finally { URI2.encode = e2; URI2.decode = d; } return this; }; p2.unicode = function() { var e2 = URI2.encode; var d = URI2.decode; URI2.encode = strictEncodeURIComponent; URI2.decode = unescape; try { this.normalize(); } finally { URI2.encode = e2; URI2.decode = d; } return this; }; p2.readable = function() { var uri = this.clone(); uri.username("").password("").normalize(); var t = ""; if (uri._parts.protocol) { t += uri._parts.protocol + "://"; } if (uri._parts.hostname) { if (uri.is("punycode") && punycode2) { t += punycode2.toUnicode(uri._parts.hostname); if (uri._parts.port) { t += ":" + uri._parts.port; } } else { t += uri.host(); } } if (uri._parts.hostname && uri._parts.path && uri._parts.path.charAt(0) !== "/") { t += "/"; } t += uri.path(true); if (uri._parts.query) { var q3 = ""; for (var i2 = 0, qp = uri._parts.query.split("&"), l2 = qp.length; i2 < l2; i2++) { var kv = (qp[i2] || "").split("="); q3 += "&" + URI2.decodeQuery(kv[0], this._parts.escapeQuerySpace).replace(/&/g, "%26"); if (kv[1] !== void 0) { q3 += "=" + URI2.decodeQuery(kv[1], this._parts.escapeQuerySpace).replace(/&/g, "%26"); } } t += "?" + q3.substring(1); } t += URI2.decodeQuery(uri.hash(), true); return t; }; p2.absoluteTo = function(base) { var resolved = this.clone(); var properties = ["protocol", "username", "password", "hostname", "port"]; var basedir, i2, p3; if (this._parts.urn) { throw new Error("URNs do not have any generally defined hierarchical components"); } if (!(base instanceof URI2)) { base = new URI2(base); } if (resolved._parts.protocol) { return resolved; } else { resolved._parts.protocol = base._parts.protocol; } if (this._parts.hostname) { return resolved; } for (i2 = 0; p3 = properties[i2]; i2++) { resolved._parts[p3] = base._parts[p3]; } if (!resolved._parts.path) { resolved._parts.path = base._parts.path; if (!resolved._parts.query) { resolved._parts.query = base._parts.query; } } else { if (resolved._parts.path.substring(-2) === "..") { resolved._parts.path += "/"; } if (resolved.path().charAt(0) !== "/") { basedir = base.directory(); basedir = basedir ? basedir : base.path().indexOf("/") === 0 ? "/" : ""; resolved._parts.path = (basedir ? basedir + "/" : "") + resolved._parts.path; resolved.normalizePath(); } } resolved.build(); return resolved; }; p2.relativeTo = function(base) { var relative = this.clone().normalize(); var relativeParts, baseParts, common2, relativePath, basePath; if (relative._parts.urn) { throw new Error("URNs do not have any generally defined hierarchical components"); } base = new URI2(base).normalize(); relativeParts = relative._parts; baseParts = base._parts; relativePath = relative.path(); basePath = base.path(); if (relativePath.charAt(0) !== "/") { throw new Error("URI is already relative"); } if (basePath.charAt(0) !== "/") { throw new Error("Cannot calculate a URI relative to another relative URI"); } if (relativeParts.protocol === baseParts.protocol) { relativeParts.protocol = null; } if (relativeParts.username !== baseParts.username || relativeParts.password !== baseParts.password) { return relative.build(); } if (relativeParts.protocol !== null || relativeParts.username !== null || relativeParts.password !== null) { return relative.build(); } if (relativeParts.hostname === baseParts.hostname && relativeParts.port === baseParts.port) { relativeParts.hostname = null; relativeParts.port = null; } else { return relative.build(); } if (relativePath === basePath) { relativeParts.path = ""; return relative.build(); } common2 = URI2.commonPath(relativePath, basePath); if (!common2) { return relative.build(); } var parents = baseParts.path.substring(common2.length).replace(/[^\/]*$/, "").replace(/.*?\//g, "../"); relativeParts.path = parents + relativeParts.path.substring(common2.length) || "./"; return relative.build(); }; p2.equals = function(uri) { var one = this.clone(); var two = new URI2(uri); var one_map = {}; var two_map = {}; var checked = {}; var one_query, two_query, key; one.normalize(); two.normalize(); if (one.toString() === two.toString()) { return true; } one_query = one.query(); two_query = two.query(); one.query(""); two.query(""); if (one.toString() !== two.toString()) { return false; } if (one_query.length !== two_query.length) { return false; } one_map = URI2.parseQuery(one_query, this._parts.escapeQuerySpace); two_map = URI2.parseQuery(two_query, this._parts.escapeQuerySpace); for (key in one_map) { if (hasOwn.call(one_map, key)) { if (!isArray(one_map[key])) { if (one_map[key] !== two_map[key]) { return false; } } else if (!arraysEqual(one_map[key], two_map[key])) { return false; } checked[key] = true; } } for (key in two_map) { if (hasOwn.call(two_map, key)) { if (!checked[key]) { return false; } } } return true; }; p2.preventInvalidHostname = function(v7) { this._parts.preventInvalidHostname = !!v7; return this; }; p2.duplicateQueryParameters = function(v7) { this._parts.duplicateQueryParameters = !!v7; return this; }; p2.escapeQuerySpace = function(v7) { this._parts.escapeQuerySpace = !!v7; return this; }; return URI2; }); }); // node_modules/cesium/Source/Core/getAbsoluteUri.js function getAbsoluteUri(relative, base) { let documentObject; if (typeof document !== "undefined") { documentObject = document; } return getAbsoluteUri._implementation(relative, base, documentObject); } getAbsoluteUri._implementation = function(relative, base, documentObject) { if (!defined_default(relative)) { throw new DeveloperError_default("relative uri is required."); } if (!defined_default(base)) { if (typeof documentObject === "undefined") { return relative; } base = defaultValue_default(documentObject.baseURI, documentObject.location.href); } const relativeUri = new URI(relative); if (relativeUri.scheme() !== "") { return relativeUri.toString(); } return relativeUri.absoluteTo(base).toString(); }; var getAbsoluteUri_default = getAbsoluteUri; // node_modules/cesium/Source/Core/appendForwardSlash.js function appendForwardSlash(url2) { if (url2.length === 0 || url2[url2.length - 1] !== "/") { url2 = `${url2}/`; } return url2; } var appendForwardSlash_default = appendForwardSlash; // node_modules/cesium/Source/Core/clone.js function clone(object2, deep) { if (object2 === null || typeof object2 !== "object") { return object2; } deep = defaultValue_default(deep, false); const result = new object2.constructor(); for (const propertyName in object2) { if (object2.hasOwnProperty(propertyName)) { let value = object2[propertyName]; if (deep) { value = clone(value, deep); } result[propertyName] = value; } } return result; } var clone_default = clone; // node_modules/cesium/Source/Core/combine.js function combine(object1, object2, deep) { deep = defaultValue_default(deep, false); const result = {}; const object1Defined = defined_default(object1); const object2Defined = defined_default(object2); let property; let object1Value; let object2Value; if (object1Defined) { for (property in object1) { if (object1.hasOwnProperty(property)) { object1Value = object1[property]; if (object2Defined && deep && typeof object1Value === "object" && object2.hasOwnProperty(property)) { object2Value = object2[property]; if (typeof object2Value === "object") { result[property] = combine(object1Value, object2Value, deep); } else { result[property] = object1Value; } } else { result[property] = object1Value; } } } } if (object2Defined) { for (property in object2) { if (object2.hasOwnProperty(property) && !result.hasOwnProperty(property)) { object2Value = object2[property]; result[property] = object2Value; } } } return result; } var combine_default = combine; // node_modules/cesium/Source/Core/defer.js function defer() { let resolve2; let reject; const promise = new Promise(function(res, rej) { resolve2 = res; reject = rej; }); return { resolve: resolve2, reject, promise }; } var defer_default = defer; // node_modules/cesium/Source/Core/getBaseUri.js function getBaseUri(uri, includeQuery) { if (!defined_default(uri)) { throw new DeveloperError_default("uri is required."); } let basePath = ""; const i2 = uri.lastIndexOf("/"); if (i2 !== -1) { basePath = uri.substring(0, i2 + 1); } if (!includeQuery) { return basePath; } uri = new URI(uri); if (uri.query().length !== 0) { basePath += `?${uri.query()}`; } if (uri.fragment().length !== 0) { basePath += `#${uri.fragment()}`; } return basePath; } var getBaseUri_default = getBaseUri; // node_modules/cesium/Source/Core/getExtensionFromUri.js function getExtensionFromUri(uri) { if (!defined_default(uri)) { throw new DeveloperError_default("uri is required."); } const uriObject = new URI(uri); uriObject.normalize(); let path = uriObject.path(); let index2 = path.lastIndexOf("/"); if (index2 !== -1) { path = path.substr(index2 + 1); } index2 = path.lastIndexOf("."); if (index2 === -1) { path = ""; } else { path = path.substr(index2 + 1); } return path; } var getExtensionFromUri_default = getExtensionFromUri; // node_modules/cesium/Source/Core/getImagePixels.js var context2DsByWidthAndHeight = {}; function getImagePixels(image, width, height) { if (!defined_default(width)) { width = image.width; } if (!defined_default(height)) { height = image.height; } let context2DsByHeight = context2DsByWidthAndHeight[width]; if (!defined_default(context2DsByHeight)) { context2DsByHeight = {}; context2DsByWidthAndHeight[width] = context2DsByHeight; } let context2d = context2DsByHeight[height]; if (!defined_default(context2d)) { const canvas = document.createElement("canvas"); canvas.width = width; canvas.height = height; context2d = canvas.getContext("2d"); context2d.globalCompositeOperation = "copy"; context2DsByHeight[height] = context2d; } context2d.drawImage(image, 0, 0, width, height); return context2d.getImageData(0, 0, width, height).data; } var getImagePixels_default = getImagePixels; // node_modules/cesium/Source/Core/isBlobUri.js var blobUriRegex = /^blob:/i; function isBlobUri(uri) { Check_default.typeOf.string("uri", uri); return blobUriRegex.test(uri); } var isBlobUri_default = isBlobUri; // node_modules/cesium/Source/Core/isCrossOriginUrl.js var a; function isCrossOriginUrl(url2) { if (!defined_default(a)) { a = document.createElement("a"); } a.href = window.location.href; const host = a.host; const protocol = a.protocol; a.href = url2; a.href = a.href; return protocol !== a.protocol || host !== a.host; } var isCrossOriginUrl_default = isCrossOriginUrl; // node_modules/cesium/Source/Core/isDataUri.js var dataUriRegex = /^data:/i; function isDataUri(uri) { Check_default.typeOf.string("uri", uri); return dataUriRegex.test(uri); } var isDataUri_default = isDataUri; // node_modules/cesium/Source/Core/loadAndExecuteScript.js function loadAndExecuteScript(url2) { const deferred = defer_default(); const script = document.createElement("script"); script.async = true; script.src = url2; const head = document.getElementsByTagName("head")[0]; script.onload = function() { script.onload = void 0; head.removeChild(script); deferred.resolve(); }; script.onerror = function(e2) { deferred.reject(e2); }; head.appendChild(script); return deferred.promise; } var loadAndExecuteScript_default = loadAndExecuteScript; // node_modules/cesium/Source/Core/objectToQuery.js function objectToQuery(obj) { if (!defined_default(obj)) { throw new DeveloperError_default("obj is required."); } let result = ""; for (const propName in obj) { if (obj.hasOwnProperty(propName)) { const value = obj[propName]; const part = `${encodeURIComponent(propName)}=`; if (Array.isArray(value)) { for (let i2 = 0, len = value.length; i2 < len; ++i2) { result += `${part + encodeURIComponent(value[i2])}&`; } } else { result += `${part + encodeURIComponent(value)}&`; } } } result = result.slice(0, -1); return result; } var objectToQuery_default = objectToQuery; // node_modules/cesium/Source/Core/queryToObject.js function queryToObject(queryString) { if (!defined_default(queryString)) { throw new DeveloperError_default("queryString is required."); } const result = {}; if (queryString === "") { return result; } const parts = queryString.replace(/\+/g, "%20").split(/[&;]/); for (let i2 = 0, len = parts.length; i2 < len; ++i2) { const subparts = parts[i2].split("="); const name = decodeURIComponent(subparts[0]); let value = subparts[1]; if (defined_default(value)) { value = decodeURIComponent(value); } else { value = ""; } const resultValue = result[name]; if (typeof resultValue === "string") { result[name] = [resultValue, value]; } else if (Array.isArray(resultValue)) { resultValue.push(value); } else { result[name] = value; } } return result; } var queryToObject_default = queryToObject; // node_modules/cesium/Source/Core/RequestState.js var RequestState = { UNISSUED: 0, ISSUED: 1, ACTIVE: 2, RECEIVED: 3, CANCELLED: 4, FAILED: 5 }; var RequestState_default = Object.freeze(RequestState); // node_modules/cesium/Source/Core/RequestType.js var RequestType = { TERRAIN: 0, IMAGERY: 1, TILES3D: 2, OTHER: 3 }; var RequestType_default = Object.freeze(RequestType); // node_modules/cesium/Source/Core/Request.js function Request(options) { options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT); const throttleByServer = defaultValue_default(options.throttleByServer, false); const throttle = defaultValue_default(options.throttle, false); this.url = options.url; this.requestFunction = options.requestFunction; this.cancelFunction = options.cancelFunction; this.priorityFunction = options.priorityFunction; this.priority = defaultValue_default(options.priority, 0); this.throttle = throttle; this.throttleByServer = throttleByServer; this.type = defaultValue_default(options.type, RequestType_default.OTHER); this.serverKey = void 0; this.state = RequestState_default.UNISSUED; this.deferred = void 0; this.cancelled = false; } Request.prototype.cancel = function() { this.cancelled = true; }; Request.prototype.clone = function(result) { if (!defined_default(result)) { return new Request(this); } result.url = this.url; result.requestFunction = this.requestFunction; result.cancelFunction = this.cancelFunction; result.priorityFunction = this.priorityFunction; result.priority = this.priority; result.throttle = this.throttle; result.throttleByServer = this.throttleByServer; result.type = this.type; result.serverKey = this.serverKey; result.state = this.RequestState.UNISSUED; result.deferred = void 0; result.cancelled = false; return result; }; var Request_default = Request; // node_modules/cesium/Source/Core/parseResponseHeaders.js function parseResponseHeaders(headerString) { const headers = {}; if (!headerString) { return headers; } const headerPairs = headerString.split("\r\n"); for (let i2 = 0; i2 < headerPairs.length; ++i2) { const headerPair = headerPairs[i2]; const index2 = headerPair.indexOf(": "); if (index2 > 0) { const key = headerPair.substring(0, index2); const val = headerPair.substring(index2 + 2); headers[key] = val; } } return headers; } var parseResponseHeaders_default = parseResponseHeaders; // node_modules/cesium/Source/Core/RequestErrorEvent.js function RequestErrorEvent(statusCode, response, responseHeaders) { this.statusCode = statusCode; this.response = response; this.responseHeaders = responseHeaders; if (typeof this.responseHeaders === "string") { this.responseHeaders = parseResponseHeaders_default(this.responseHeaders); } } RequestErrorEvent.prototype.toString = function() { let str = "Request has failed."; if (defined_default(this.statusCode)) { str += ` Status Code: ${this.statusCode}`; } return str; }; var RequestErrorEvent_default = RequestErrorEvent; // node_modules/cesium/Source/Core/Event.js function Event() { this._listeners = []; this._scopes = []; this._toRemove = []; this._insideRaiseEvent = false; } Object.defineProperties(Event.prototype, { numberOfListeners: { get: function() { return this._listeners.length - this._toRemove.length; } } }); Event.prototype.addEventListener = function(listener, scope) { Check_default.typeOf.func("listener", listener); this._listeners.push(listener); this._scopes.push(scope); const event = this; return function() { event.removeEventListener(listener, scope); }; }; Event.prototype.removeEventListener = function(listener, scope) { Check_default.typeOf.func("listener", listener); const listeners = this._listeners; const scopes = this._scopes; let index2 = -1; for (let i2 = 0; i2 < listeners.length; i2++) { if (listeners[i2] === listener && scopes[i2] === scope) { index2 = i2; break; } } if (index2 !== -1) { if (this._insideRaiseEvent) { this._toRemove.push(index2); listeners[index2] = void 0; scopes[index2] = void 0; } else { listeners.splice(index2, 1); scopes.splice(index2, 1); } return true; } return false; }; function compareNumber(a4, b) { return b - a4; } Event.prototype.raiseEvent = function() { this._insideRaiseEvent = true; let i2; const listeners = this._listeners; const scopes = this._scopes; let length3 = listeners.length; for (i2 = 0; i2 < length3; i2++) { const listener = listeners[i2]; if (defined_default(listener)) { listeners[i2].apply(scopes[i2], arguments); } } const toRemove = this._toRemove; length3 = toRemove.length; if (length3 > 0) { toRemove.sort(compareNumber); for (i2 = 0; i2 < length3; i2++) { const index2 = toRemove[i2]; listeners.splice(index2, 1); scopes.splice(index2, 1); } toRemove.length = 0; } this._insideRaiseEvent = false; }; var Event_default = Event; // node_modules/cesium/Source/Core/Heap.js function Heap(options) { Check_default.typeOf.object("options", options); Check_default.defined("options.comparator", options.comparator); this._comparator = options.comparator; this._array = []; this._length = 0; this._maximumLength = void 0; } Object.defineProperties(Heap.prototype, { length: { get: function() { return this._length; } }, internalArray: { get: function() { return this._array; } }, maximumLength: { get: function() { return this._maximumLength; }, set: function(value) { Check_default.typeOf.number.greaterThanOrEquals("maximumLength", value, 0); const originalLength = this._length; if (value < originalLength) { const array = this._array; for (let i2 = value; i2 < originalLength; ++i2) { array[i2] = void 0; } this._length = value; array.length = value; } this._maximumLength = value; } }, comparator: { get: function() { return this._comparator; } } }); function swap(array, a4, b) { const temp = array[a4]; array[a4] = array[b]; array[b] = temp; } Heap.prototype.reserve = function(length3) { length3 = defaultValue_default(length3, this._length); this._array.length = length3; }; Heap.prototype.heapify = function(index2) { index2 = defaultValue_default(index2, 0); const length3 = this._length; const comparator = this._comparator; const array = this._array; let candidate = -1; let inserting = true; while (inserting) { const right = 2 * (index2 + 1); const left = right - 1; if (left < length3 && comparator(array[left], array[index2]) < 0) { candidate = left; } else { candidate = index2; } if (right < length3 && comparator(array[right], array[candidate]) < 0) { candidate = right; } if (candidate !== index2) { swap(array, candidate, index2); index2 = candidate; } else { inserting = false; } } }; Heap.prototype.resort = function() { const length3 = this._length; for (let i2 = Math.ceil(length3 / 2); i2 >= 0; --i2) { this.heapify(i2); } }; Heap.prototype.insert = function(element) { Check_default.defined("element", element); const array = this._array; const comparator = this._comparator; const maximumLength = this._maximumLength; let index2 = this._length++; if (index2 < array.length) { array[index2] = element; } else { array.push(element); } while (index2 !== 0) { const parent = Math.floor((index2 - 1) / 2); if (comparator(array[index2], array[parent]) < 0) { swap(array, index2, parent); index2 = parent; } else { break; } } let removedElement; if (defined_default(maximumLength) && this._length > maximumLength) { removedElement = array[maximumLength]; this._length = maximumLength; } return removedElement; }; Heap.prototype.pop = function(index2) { index2 = defaultValue_default(index2, 0); if (this._length === 0) { return void 0; } Check_default.typeOf.number.lessThan("index", index2, this._length); const array = this._array; const root = array[index2]; swap(array, index2, --this._length); this.heapify(index2); array[this._length] = void 0; return root; }; var Heap_default = Heap; // node_modules/cesium/Source/Core/RequestScheduler.js function sortRequests(a4, b) { return a4.priority - b.priority; } var statistics = { numberOfAttemptedRequests: 0, numberOfActiveRequests: 0, numberOfCancelledRequests: 0, numberOfCancelledActiveRequests: 0, numberOfFailedRequests: 0, numberOfActiveRequestsEver: 0, lastNumberOfActiveRequests: 0 }; var priorityHeapLength = 20; var requestHeap = new Heap_default({ comparator: sortRequests }); requestHeap.maximumLength = priorityHeapLength; requestHeap.reserve(priorityHeapLength); var activeRequests = []; var numberOfActiveRequestsByServer = {}; var pageUri = typeof document !== "undefined" ? new URI(document.location.href) : new URI(); var requestCompletedEvent = new Event_default(); function RequestScheduler() { } RequestScheduler.maximumRequests = 50; RequestScheduler.maximumRequestsPerServer = 6; RequestScheduler.requestsByServer = { "api.cesium.com:443": 18, "assets.cesium.com:443": 18 }; RequestScheduler.throttleRequests = true; RequestScheduler.debugShowStatistics = false; RequestScheduler.requestCompletedEvent = requestCompletedEvent; Object.defineProperties(RequestScheduler, { statistics: { get: function() { return statistics; } }, priorityHeapLength: { get: function() { return priorityHeapLength; }, set: function(value) { if (value < priorityHeapLength) { while (requestHeap.length > value) { const request = requestHeap.pop(); cancelRequest(request); } } priorityHeapLength = value; requestHeap.maximumLength = value; requestHeap.reserve(value); } } }); function updatePriority(request) { if (defined_default(request.priorityFunction)) { request.priority = request.priorityFunction(); } } RequestScheduler.serverHasOpenSlots = function(serverKey, desiredRequests) { desiredRequests = defaultValue_default(desiredRequests, 1); const maxRequests = defaultValue_default( RequestScheduler.requestsByServer[serverKey], RequestScheduler.maximumRequestsPerServer ); const hasOpenSlotsServer = numberOfActiveRequestsByServer[serverKey] + desiredRequests <= maxRequests; return hasOpenSlotsServer; }; RequestScheduler.heapHasOpenSlots = function(desiredRequests) { const hasOpenSlotsHeap = requestHeap.length + desiredRequests <= priorityHeapLength; return hasOpenSlotsHeap; }; function issueRequest(request) { if (request.state === RequestState_default.UNISSUED) { request.state = RequestState_default.ISSUED; request.deferred = defer_default(); } return request.deferred.promise; } function getRequestReceivedFunction(request) { return function(results) { if (request.state === RequestState_default.CANCELLED) { return; } const deferred = request.deferred; --statistics.numberOfActiveRequests; --numberOfActiveRequestsByServer[request.serverKey]; requestCompletedEvent.raiseEvent(); request.state = RequestState_default.RECEIVED; request.deferred = void 0; deferred.resolve(results); }; } function getRequestFailedFunction(request) { return function(error) { if (request.state === RequestState_default.CANCELLED) { return; } ++statistics.numberOfFailedRequests; --statistics.numberOfActiveRequests; --numberOfActiveRequestsByServer[request.serverKey]; requestCompletedEvent.raiseEvent(error); request.state = RequestState_default.FAILED; request.deferred.reject(error); }; } function startRequest(request) { const promise = issueRequest(request); request.state = RequestState_default.ACTIVE; activeRequests.push(request); ++statistics.numberOfActiveRequests; ++statistics.numberOfActiveRequestsEver; ++numberOfActiveRequestsByServer[request.serverKey]; request.requestFunction().then(getRequestReceivedFunction(request)).catch(getRequestFailedFunction(request)); return promise; } function cancelRequest(request) { const active = request.state === RequestState_default.ACTIVE; request.state = RequestState_default.CANCELLED; ++statistics.numberOfCancelledRequests; if (defined_default(request.deferred)) { const deferred = request.deferred; request.deferred = void 0; deferred.reject(); } if (active) { --statistics.numberOfActiveRequests; --numberOfActiveRequestsByServer[request.serverKey]; ++statistics.numberOfCancelledActiveRequests; } if (defined_default(request.cancelFunction)) { request.cancelFunction(); } } RequestScheduler.update = function() { let i2; let request; let removeCount = 0; const activeLength = activeRequests.length; for (i2 = 0; i2 < activeLength; ++i2) { request = activeRequests[i2]; if (request.cancelled) { cancelRequest(request); } if (request.state !== RequestState_default.ACTIVE) { ++removeCount; continue; } if (removeCount > 0) { activeRequests[i2 - removeCount] = request; } } activeRequests.length -= removeCount; const issuedRequests = requestHeap.internalArray; const issuedLength = requestHeap.length; for (i2 = 0; i2 < issuedLength; ++i2) { updatePriority(issuedRequests[i2]); } requestHeap.resort(); const openSlots = Math.max( RequestScheduler.maximumRequests - activeRequests.length, 0 ); let filledSlots = 0; while (filledSlots < openSlots && requestHeap.length > 0) { request = requestHeap.pop(); if (request.cancelled) { cancelRequest(request); continue; } if (request.throttleByServer && !RequestScheduler.serverHasOpenSlots(request.serverKey)) { cancelRequest(request); continue; } startRequest(request); ++filledSlots; } updateStatistics(); }; RequestScheduler.getServerKey = function(url2) { Check_default.typeOf.string("url", url2); let uri = new URI(url2); if (uri.scheme() === "") { uri = new URI(url2).absoluteTo(pageUri); uri.normalize(); } let serverKey = uri.authority(); if (!/:/.test(serverKey)) { serverKey = `${serverKey}:${uri.scheme() === "https" ? "443" : "80"}`; } const length3 = numberOfActiveRequestsByServer[serverKey]; if (!defined_default(length3)) { numberOfActiveRequestsByServer[serverKey] = 0; } return serverKey; }; RequestScheduler.request = function(request) { Check_default.typeOf.object("request", request); Check_default.typeOf.string("request.url", request.url); Check_default.typeOf.func("request.requestFunction", request.requestFunction); if (isDataUri_default(request.url) || isBlobUri_default(request.url)) { requestCompletedEvent.raiseEvent(); request.state = RequestState_default.RECEIVED; return request.requestFunction(); } ++statistics.numberOfAttemptedRequests; if (!defined_default(request.serverKey)) { request.serverKey = RequestScheduler.getServerKey(request.url); } if (RequestScheduler.throttleRequests && request.throttleByServer && !RequestScheduler.serverHasOpenSlots(request.serverKey)) { return void 0; } if (!RequestScheduler.throttleRequests || !request.throttle) { return startRequest(request); } if (activeRequests.length >= RequestScheduler.maximumRequests) { return void 0; } updatePriority(request); const removedRequest = requestHeap.insert(request); if (defined_default(removedRequest)) { if (removedRequest === request) { return void 0; } cancelRequest(removedRequest); } return issueRequest(request); }; function updateStatistics() { if (!RequestScheduler.debugShowStatistics) { return; } if (statistics.numberOfActiveRequests === 0 && statistics.lastNumberOfActiveRequests > 0) { if (statistics.numberOfAttemptedRequests > 0) { console.log( `Number of attempted requests: ${statistics.numberOfAttemptedRequests}` ); statistics.numberOfAttemptedRequests = 0; } if (statistics.numberOfCancelledRequests > 0) { console.log( `Number of cancelled requests: ${statistics.numberOfCancelledRequests}` ); statistics.numberOfCancelledRequests = 0; } if (statistics.numberOfCancelledActiveRequests > 0) { console.log( `Number of cancelled active requests: ${statistics.numberOfCancelledActiveRequests}` ); statistics.numberOfCancelledActiveRequests = 0; } if (statistics.numberOfFailedRequests > 0) { console.log( `Number of failed requests: ${statistics.numberOfFailedRequests}` ); statistics.numberOfFailedRequests = 0; } } statistics.lastNumberOfActiveRequests = statistics.numberOfActiveRequests; } RequestScheduler.clearForSpecs = function() { while (requestHeap.length > 0) { const request = requestHeap.pop(); cancelRequest(request); } const length3 = activeRequests.length; for (let i2 = 0; i2 < length3; ++i2) { cancelRequest(activeRequests[i2]); } activeRequests.length = 0; numberOfActiveRequestsByServer = {}; statistics.numberOfAttemptedRequests = 0; statistics.numberOfActiveRequests = 0; statistics.numberOfCancelledRequests = 0; statistics.numberOfCancelledActiveRequests = 0; statistics.numberOfFailedRequests = 0; statistics.numberOfActiveRequestsEver = 0; statistics.lastNumberOfActiveRequests = 0; }; RequestScheduler.numberOfActiveRequestsByServer = function(serverKey) { return numberOfActiveRequestsByServer[serverKey]; }; RequestScheduler.requestHeap = requestHeap; var RequestScheduler_default = RequestScheduler; // node_modules/cesium/Source/Core/TrustedServers.js var TrustedServers = {}; var _servers = {}; TrustedServers.add = function(host, port) { if (!defined_default(host)) { throw new DeveloperError_default("host is required."); } if (!defined_default(port) || port <= 0) { throw new DeveloperError_default("port is required to be greater than 0."); } const authority = `${host.toLowerCase()}:${port}`; if (!defined_default(_servers[authority])) { _servers[authority] = true; } }; TrustedServers.remove = function(host, port) { if (!defined_default(host)) { throw new DeveloperError_default("host is required."); } if (!defined_default(port) || port <= 0) { throw new DeveloperError_default("port is required to be greater than 0."); } const authority = `${host.toLowerCase()}:${port}`; if (defined_default(_servers[authority])) { delete _servers[authority]; } }; function getAuthority(url2) { const uri = new URI(url2); uri.normalize(); let authority = uri.authority(); if (authority.length === 0) { return void 0; } uri.authority(authority); if (authority.indexOf("@") !== -1) { const parts = authority.split("@"); authority = parts[1]; } if (authority.indexOf(":") === -1) { let scheme = uri.scheme(); if (scheme.length === 0) { scheme = window.location.protocol; scheme = scheme.substring(0, scheme.length - 1); } if (scheme === "http") { authority += ":80"; } else if (scheme === "https") { authority += ":443"; } else { return void 0; } } return authority; } TrustedServers.contains = function(url2) { if (!defined_default(url2)) { throw new DeveloperError_default("url is required."); } const authority = getAuthority(url2); if (defined_default(authority) && defined_default(_servers[authority])) { return true; } return false; }; TrustedServers.clear = function() { _servers = {}; }; var TrustedServers_default = TrustedServers; // node_modules/cesium/Source/Core/Resource.js var xhrBlobSupported = function() { try { const xhr = new XMLHttpRequest(); xhr.open("GET", "#", true); xhr.responseType = "blob"; return xhr.responseType === "blob"; } catch (e2) { return false; } }(); function parseQuery(uri, resource, merge3, preserveQueryParameters) { const queryString = uri.query(); if (queryString.length === 0) { return {}; } let query; if (queryString.indexOf("=") === -1) { const result = {}; result[queryString] = void 0; query = result; } else { query = queryToObject_default(queryString); } if (merge3) { resource._queryParameters = combineQueryParameters( query, resource._queryParameters, preserveQueryParameters ); } else { resource._queryParameters = query; } uri.search(""); } function stringifyQuery(uri, resource) { const queryObject = resource._queryParameters; const keys = Object.keys(queryObject); if (keys.length === 1 && !defined_default(queryObject[keys[0]])) { uri.search(keys[0]); } else { uri.search(objectToQuery_default(queryObject)); } } function defaultClone(val, defaultVal) { if (!defined_default(val)) { return defaultVal; } return defined_default(val.clone) ? val.clone() : clone_default(val); } function checkAndResetRequest(request) { if (request.state === RequestState_default.ISSUED || request.state === RequestState_default.ACTIVE) { throw new RuntimeError_default("The Resource is already being fetched."); } request.state = RequestState_default.UNISSUED; request.deferred = void 0; } function combineQueryParameters(q12, q22, preserveQueryParameters) { if (!preserveQueryParameters) { return combine_default(q12, q22); } const result = clone_default(q12, true); for (const param in q22) { if (q22.hasOwnProperty(param)) { let value = result[param]; const q2Value = q22[param]; if (defined_default(value)) { if (!Array.isArray(value)) { value = result[param] = [value]; } result[param] = value.concat(q2Value); } else { result[param] = Array.isArray(q2Value) ? q2Value.slice() : q2Value; } } } return result; } function Resource(options) { options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT); if (typeof options === "string") { options = { url: options }; } Check_default.typeOf.string("options.url", options.url); this._url = void 0; this._templateValues = defaultClone(options.templateValues, {}); this._queryParameters = defaultClone(options.queryParameters, {}); this.headers = defaultClone(options.headers, {}); this.request = defaultValue_default(options.request, new Request_default()); this.proxy = options.proxy; this.retryCallback = options.retryCallback; this.retryAttempts = defaultValue_default(options.retryAttempts, 0); this._retryCount = 0; const uri = new URI(options.url); parseQuery(uri, this, true, true); uri.fragment(""); this._url = uri.toString(); } Resource.createIfNeeded = function(resource) { if (resource instanceof Resource) { return resource.getDerivedResource({ request: resource.request }); } if (typeof resource !== "string") { return resource; } return new Resource({ url: resource }); }; var supportsImageBitmapOptionsPromise; Resource.supportsImageBitmapOptions = function() { if (defined_default(supportsImageBitmapOptionsPromise)) { return supportsImageBitmapOptionsPromise; } if (typeof createImageBitmap !== "function") { supportsImageBitmapOptionsPromise = Promise.resolve(false); return supportsImageBitmapOptionsPromise; } const imageDataUri = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC"; supportsImageBitmapOptionsPromise = Resource.fetchBlob({ url: imageDataUri }).then(function(blob) { const imageBitmapOptions = { imageOrientation: "flipY", premultiplyAlpha: "none", colorSpaceConversion: "none" }; return Promise.all([ createImageBitmap(blob, imageBitmapOptions), createImageBitmap(blob) ]); }).then(function(imageBitmaps) { const colorWithOptions = getImagePixels_default(imageBitmaps[0]); const colorWithDefaults = getImagePixels_default(imageBitmaps[1]); return colorWithOptions[1] !== colorWithDefaults[1]; }).catch(function() { return false; }); return supportsImageBitmapOptionsPromise; }; Object.defineProperties(Resource, { isBlobSupported: { get: function() { return xhrBlobSupported; } } }); Object.defineProperties(Resource.prototype, { queryParameters: { get: function() { return this._queryParameters; } }, templateValues: { get: function() { return this._templateValues; } }, url: { get: function() { return this.getUrlComponent(true, true); }, set: function(value) { const uri = new URI(value); parseQuery(uri, this, false); uri.fragment(""); this._url = uri.toString(); } }, extension: { get: function() { return getExtensionFromUri_default(this._url); } }, isDataUri: { get: function() { return isDataUri_default(this._url); } }, isBlobUri: { get: function() { return isBlobUri_default(this._url); } }, isCrossOriginUrl: { get: function() { return isCrossOriginUrl_default(this._url); } }, hasHeaders: { get: function() { return Object.keys(this.headers).length > 0; } } }); Resource.prototype.toString = function() { return this.getUrlComponent(true, true); }; Resource.prototype.getUrlComponent = function(query, proxy) { if (this.isDataUri) { return this._url; } const uri = new URI(this._url); if (query) { stringifyQuery(uri, this); } let url2 = uri.toString().replace(/%7B/g, "{").replace(/%7D/g, "}"); const templateValues = this._templateValues; url2 = url2.replace(/{(.*?)}/g, function(match, key) { const replacement = templateValues[key]; if (defined_default(replacement)) { return encodeURIComponent(replacement); } return match; }); if (proxy && defined_default(this.proxy)) { url2 = this.proxy.getURL(url2); } return url2; }; Resource.prototype.setQueryParameters = function(params, useAsDefault) { if (useAsDefault) { this._queryParameters = combineQueryParameters( this._queryParameters, params, false ); } else { this._queryParameters = combineQueryParameters( params, this._queryParameters, false ); } }; Resource.prototype.appendQueryParameters = function(params) { this._queryParameters = combineQueryParameters( params, this._queryParameters, true ); }; Resource.prototype.setTemplateValues = function(template, useAsDefault) { if (useAsDefault) { this._templateValues = combine_default(this._templateValues, template); } else { this._templateValues = combine_default(template, this._templateValues); } }; Resource.prototype.getDerivedResource = function(options) { const resource = this.clone(); resource._retryCount = 0; if (defined_default(options.url)) { const uri = new URI(options.url); const preserveQueryParameters = defaultValue_default( options.preserveQueryParameters, false ); parseQuery(uri, resource, true, preserveQueryParameters); uri.fragment(""); if (uri.scheme() !== "") { resource._url = uri.toString(); } else { resource._url = uri.absoluteTo(new URI(getAbsoluteUri_default(this._url))).toString(); } } if (defined_default(options.queryParameters)) { resource._queryParameters = combine_default( options.queryParameters, resource._queryParameters ); } if (defined_default(options.templateValues)) { resource._templateValues = combine_default( options.templateValues, resource.templateValues ); } if (defined_default(options.headers)) { resource.headers = combine_default(options.headers, resource.headers); } if (defined_default(options.proxy)) { resource.proxy = options.proxy; } if (defined_default(options.request)) { resource.request = options.request; } if (defined_default(options.retryCallback)) { resource.retryCallback = options.retryCallback; } if (defined_default(options.retryAttempts)) { resource.retryAttempts = options.retryAttempts; } return resource; }; Resource.prototype.retryOnError = function(error) { const retryCallback2 = this.retryCallback; if (typeof retryCallback2 !== "function" || this._retryCount >= this.retryAttempts) { return Promise.resolve(false); } const that = this; return Promise.resolve(retryCallback2(this, error)).then(function(result) { ++that._retryCount; return result; }); }; Resource.prototype.clone = function(result) { if (!defined_default(result)) { result = new Resource({ url: this._url }); } result._url = this._url; result._queryParameters = clone_default(this._queryParameters); result._templateValues = clone_default(this._templateValues); result.headers = clone_default(this.headers); result.proxy = this.proxy; result.retryCallback = this.retryCallback; result.retryAttempts = this.retryAttempts; result._retryCount = 0; result.request = this.request.clone(); return result; }; Resource.prototype.getBaseUri = function(includeQuery) { return getBaseUri_default(this.getUrlComponent(includeQuery), includeQuery); }; Resource.prototype.appendForwardSlash = function() { this._url = appendForwardSlash_default(this._url); }; Resource.prototype.fetchArrayBuffer = function() { return this.fetch({ responseType: "arraybuffer" }); }; Resource.fetchArrayBuffer = function(options) { const resource = new Resource(options); return resource.fetchArrayBuffer(); }; Resource.prototype.fetchBlob = function() { return this.fetch({ responseType: "blob" }); }; Resource.fetchBlob = function(options) { const resource = new Resource(options); return resource.fetchBlob(); }; Resource.prototype.fetchImage = function(options) { options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT); const preferImageBitmap = defaultValue_default(options.preferImageBitmap, false); const preferBlob = defaultValue_default(options.preferBlob, false); const flipY = defaultValue_default(options.flipY, false); const skipColorSpaceConversion = defaultValue_default( options.skipColorSpaceConversion, false ); checkAndResetRequest(this.request); if (!xhrBlobSupported || this.isDataUri || this.isBlobUri || !this.hasHeaders && !preferBlob) { return fetchImage({ resource: this, flipY, skipColorSpaceConversion, preferImageBitmap }); } const blobPromise = this.fetchBlob(); if (!defined_default(blobPromise)) { return; } let supportsImageBitmap; let useImageBitmap; let generatedBlobResource; let generatedBlob; return Resource.supportsImageBitmapOptions().then(function(result) { supportsImageBitmap = result; useImageBitmap = supportsImageBitmap && preferImageBitmap; return blobPromise; }).then(function(blob) { if (!defined_default(blob)) { return; } generatedBlob = blob; if (useImageBitmap) { return Resource.createImageBitmapFromBlob(blob, { flipY, premultiplyAlpha: false, skipColorSpaceConversion }); } const blobUrl = window.URL.createObjectURL(blob); generatedBlobResource = new Resource({ url: blobUrl }); return fetchImage({ resource: generatedBlobResource, flipY, skipColorSpaceConversion, preferImageBitmap: false }); }).then(function(image) { if (!defined_default(image)) { return; } image.blob = generatedBlob; if (useImageBitmap) { return image; } window.URL.revokeObjectURL(generatedBlobResource.url); return image; }).catch(function(error) { if (defined_default(generatedBlobResource)) { window.URL.revokeObjectURL(generatedBlobResource.url); } error.blob = generatedBlob; return Promise.reject(error); }); }; function fetchImage(options) { const resource = options.resource; const flipY = options.flipY; const skipColorSpaceConversion = options.skipColorSpaceConversion; const preferImageBitmap = options.preferImageBitmap; const request = resource.request; request.url = resource.url; request.requestFunction = function() { let crossOrigin = false; if (!resource.isDataUri && !resource.isBlobUri) { crossOrigin = resource.isCrossOriginUrl; } const deferred = defer_default(); Resource._Implementations.createImage( request, crossOrigin, deferred, flipY, skipColorSpaceConversion, preferImageBitmap ); return deferred.promise; }; const promise = RequestScheduler_default.request(request); if (!defined_default(promise)) { return; } return promise.catch(function(e2) { if (request.state !== RequestState_default.FAILED) { return Promise.reject(e2); } return resource.retryOnError(e2).then(function(retry) { if (retry) { request.state = RequestState_default.UNISSUED; request.deferred = void 0; return fetchImage({ resource, flipY, skipColorSpaceConversion, preferImageBitmap }); } return Promise.reject(e2); }); }); } Resource.fetchImage = function(options) { const resource = new Resource(options); return resource.fetchImage({ flipY: options.flipY, skipColorSpaceConversion: options.skipColorSpaceConversion, preferBlob: options.preferBlob, preferImageBitmap: options.preferImageBitmap }); }; Resource.prototype.fetchText = function() { return this.fetch({ responseType: "text" }); }; Resource.fetchText = function(options) { const resource = new Resource(options); return resource.fetchText(); }; Resource.prototype.fetchJson = function() { const promise = this.fetch({ responseType: "text", headers: { Accept: "application/json,*/*;q=0.01" } }); if (!defined_default(promise)) { return void 0; } return promise.then(function(value) { if (!defined_default(value)) { return; } return JSON.parse(value); }); }; Resource.fetchJson = function(options) { const resource = new Resource(options); return resource.fetchJson(); }; Resource.prototype.fetchXML = function() { return this.fetch({ responseType: "document", overrideMimeType: "text/xml" }); }; Resource.fetchXML = function(options) { const resource = new Resource(options); return resource.fetchXML(); }; Resource.prototype.fetchJsonp = function(callbackParameterName) { callbackParameterName = defaultValue_default(callbackParameterName, "callback"); checkAndResetRequest(this.request); let functionName; do { functionName = `loadJsonp${Math_default.nextRandomNumber().toString().substring(2, 8)}`; } while (defined_default(window[functionName])); return fetchJsonp(this, callbackParameterName, functionName); }; function fetchJsonp(resource, callbackParameterName, functionName) { const callbackQuery = {}; callbackQuery[callbackParameterName] = functionName; resource.setQueryParameters(callbackQuery); const request = resource.request; request.url = resource.url; request.requestFunction = function() { const deferred = defer_default(); window[functionName] = function(data) { deferred.resolve(data); try { delete window[functionName]; } catch (e2) { window[functionName] = void 0; } }; Resource._Implementations.loadAndExecuteScript( resource.url, functionName, deferred ); return deferred.promise; }; const promise = RequestScheduler_default.request(request); if (!defined_default(promise)) { return; } return promise.catch(function(e2) { if (request.state !== RequestState_default.FAILED) { return Promise.reject(e2); } return resource.retryOnError(e2).then(function(retry) { if (retry) { request.state = RequestState_default.UNISSUED; request.deferred = void 0; return fetchJsonp(resource, callbackParameterName, functionName); } return Promise.reject(e2); }); }); } Resource.fetchJsonp = function(options) { const resource = new Resource(options); return resource.fetchJsonp(options.callbackParameterName); }; Resource.prototype._makeRequest = function(options) { const resource = this; checkAndResetRequest(resource.request); const request = resource.request; request.url = resource.url; request.requestFunction = function() { const responseType = options.responseType; const headers = combine_default(options.headers, resource.headers); const overrideMimeType = options.overrideMimeType; const method = options.method; const data = options.data; const deferred = defer_default(); const xhr = Resource._Implementations.loadWithXhr( resource.url, responseType, method, data, headers, deferred, overrideMimeType ); if (defined_default(xhr) && defined_default(xhr.abort)) { request.cancelFunction = function() { xhr.abort(); }; } return deferred.promise; }; const promise = RequestScheduler_default.request(request); if (!defined_default(promise)) { return; } return promise.then(function(data) { request.cancelFunction = void 0; return data; }).catch(function(e2) { request.cancelFunction = void 0; if (request.state !== RequestState_default.FAILED) { return Promise.reject(e2); } return resource.retryOnError(e2).then(function(retry) { if (retry) { request.state = RequestState_default.UNISSUED; request.deferred = void 0; return resource.fetch(options); } return Promise.reject(e2); }); }); }; var dataUriRegex2 = /^data:(.*?)(;base64)?,(.*)$/; function decodeDataUriText(isBase64, data) { const result = decodeURIComponent(data); if (isBase64) { return atob(result); } return result; } function decodeDataUriArrayBuffer(isBase64, data) { const byteString = decodeDataUriText(isBase64, data); const buffer = new ArrayBuffer(byteString.length); const view = new Uint8Array(buffer); for (let i2 = 0; i2 < byteString.length; i2++) { view[i2] = byteString.charCodeAt(i2); } return buffer; } function decodeDataUri(dataUriRegexResult, responseType) { responseType = defaultValue_default(responseType, ""); const mimeType = dataUriRegexResult[1]; const isBase64 = !!dataUriRegexResult[2]; const data = dataUriRegexResult[3]; let buffer; let parser3; switch (responseType) { case "": case "text": return decodeDataUriText(isBase64, data); case "arraybuffer": return decodeDataUriArrayBuffer(isBase64, data); case "blob": buffer = decodeDataUriArrayBuffer(isBase64, data); return new Blob([buffer], { type: mimeType }); case "document": parser3 = new DOMParser(); return parser3.parseFromString( decodeDataUriText(isBase64, data), mimeType ); case "json": return JSON.parse(decodeDataUriText(isBase64, data)); default: throw new DeveloperError_default(`Unhandled responseType: ${responseType}`); } } Resource.prototype.fetch = function(options) { options = defaultClone(options, {}); options.method = "GET"; return this._makeRequest(options); }; Resource.fetch = function(options) { const resource = new Resource(options); return resource.fetch({ responseType: options.responseType, overrideMimeType: options.overrideMimeType }); }; Resource.prototype.delete = function(options) { options = defaultClone(options, {}); options.method = "DELETE"; return this._makeRequest(options); }; Resource.delete = function(options) { const resource = new Resource(options); return resource.delete({ responseType: options.responseType, overrideMimeType: options.overrideMimeType, data: options.data }); }; Resource.prototype.head = function(options) { options = defaultClone(options, {}); options.method = "HEAD"; return this._makeRequest(options); }; Resource.head = function(options) { const resource = new Resource(options); return resource.head({ responseType: options.responseType, overrideMimeType: options.overrideMimeType }); }; Resource.prototype.options = function(options) { options = defaultClone(options, {}); options.method = "OPTIONS"; return this._makeRequest(options); }; Resource.options = function(options) { const resource = new Resource(options); return resource.options({ responseType: options.responseType, overrideMimeType: options.overrideMimeType }); }; Resource.prototype.post = function(data, options) { Check_default.defined("data", data); options = defaultClone(options, {}); options.method = "POST"; options.data = data; return this._makeRequest(options); }; Resource.post = function(options) { const resource = new Resource(options); return resource.post(options.data, { responseType: options.responseType, overrideMimeType: options.overrideMimeType }); }; Resource.prototype.put = function(data, options) { Check_default.defined("data", data); options = defaultClone(options, {}); options.method = "PUT"; options.data = data; return this._makeRequest(options); }; Resource.put = function(options) { const resource = new Resource(options); return resource.put(options.data, { responseType: options.responseType, overrideMimeType: options.overrideMimeType }); }; Resource.prototype.patch = function(data, options) { Check_default.defined("data", data); options = defaultClone(options, {}); options.method = "PATCH"; options.data = data; return this._makeRequest(options); }; Resource.patch = function(options) { const resource = new Resource(options); return resource.patch(options.data, { responseType: options.responseType, overrideMimeType: options.overrideMimeType }); }; Resource._Implementations = {}; Resource._Implementations.loadImageElement = function(url2, crossOrigin, deferred) { const image = new Image(); image.onload = function() { if (image.naturalWidth === 0 && image.naturalHeight === 0 && image.width === 0 && image.height === 0) { image.width = 300; image.height = 150; } deferred.resolve(image); }; image.onerror = function(e2) { deferred.reject(e2); }; if (crossOrigin) { if (TrustedServers_default.contains(url2)) { image.crossOrigin = "use-credentials"; } else { image.crossOrigin = ""; } } image.src = url2; }; Resource._Implementations.createImage = function(request, crossOrigin, deferred, flipY, skipColorSpaceConversion, preferImageBitmap) { const url2 = request.url; Resource.supportsImageBitmapOptions().then(function(supportsImageBitmap) { if (!(supportsImageBitmap && preferImageBitmap)) { Resource._Implementations.loadImageElement(url2, crossOrigin, deferred); return; } const responseType = "blob"; const method = "GET"; const xhrDeferred = defer_default(); const xhr = Resource._Implementations.loadWithXhr( url2, responseType, method, void 0, void 0, xhrDeferred, void 0, void 0, void 0 ); if (defined_default(xhr) && defined_default(xhr.abort)) { request.cancelFunction = function() { xhr.abort(); }; } return xhrDeferred.promise.then(function(blob) { if (!defined_default(blob)) { deferred.reject( new RuntimeError_default( `Successfully retrieved ${url2} but it contained no content.` ) ); return; } return Resource.createImageBitmapFromBlob(blob, { flipY, premultiplyAlpha: false, skipColorSpaceConversion }); }).then(function(image) { deferred.resolve(image); }); }).catch(function(e2) { deferred.reject(e2); }); }; Resource.createImageBitmapFromBlob = function(blob, options) { Check_default.defined("options", options); Check_default.typeOf.bool("options.flipY", options.flipY); Check_default.typeOf.bool("options.premultiplyAlpha", options.premultiplyAlpha); Check_default.typeOf.bool( "options.skipColorSpaceConversion", options.skipColorSpaceConversion ); return createImageBitmap(blob, { imageOrientation: options.flipY ? "flipY" : "none", premultiplyAlpha: options.premultiplyAlpha ? "premultiply" : "none", colorSpaceConversion: options.skipColorSpaceConversion ? "none" : "default" }); }; function decodeResponse(loadWithHttpResponse, responseType) { switch (responseType) { case "text": return loadWithHttpResponse.toString("utf8"); case "json": return JSON.parse(loadWithHttpResponse.toString("utf8")); default: return new Uint8Array(loadWithHttpResponse).buffer; } } function loadWithHttpRequest(url2, responseType, method, data, headers, deferred, overrideMimeType) { const URL2 = require_url().parse(url2); const http = URL2.protocol === "https:" ? (init_https(), __toCommonJS(https_exports)) : (init_http(), __toCommonJS(http_exports)); const zlib = (init_zlib(), __toCommonJS(zlib_exports)); const options = { protocol: URL2.protocol, hostname: URL2.hostname, port: URL2.port, path: URL2.path, query: URL2.query, method, headers }; http.request(options).on("response", function(res) { if (res.statusCode < 200 || res.statusCode >= 300) { deferred.reject( new RequestErrorEvent_default(res.statusCode, res, res.headers) ); return; } const chunkArray = []; res.on("data", function(chunk) { chunkArray.push(chunk); }); res.on("end", function() { const result = Buffer.concat(chunkArray); if (res.headers["content-encoding"] === "gzip") { zlib.gunzip(result, function(error, resultUnzipped) { if (error) { deferred.reject( new RuntimeError_default("Error decompressing response.") ); } else { deferred.resolve(decodeResponse(resultUnzipped, responseType)); } }); } else { deferred.resolve(decodeResponse(result, responseType)); } }); }).on("error", function(e2) { deferred.reject(new RequestErrorEvent_default()); }).end(); } var noXMLHttpRequest = typeof XMLHttpRequest === "undefined"; Resource._Implementations.loadWithXhr = function(url2, responseType, method, data, headers, deferred, overrideMimeType) { const dataUriRegexResult = dataUriRegex2.exec(url2); if (dataUriRegexResult !== null) { deferred.resolve(decodeDataUri(dataUriRegexResult, responseType)); return; } if (noXMLHttpRequest) { loadWithHttpRequest( url2, responseType, method, data, headers, deferred, overrideMimeType ); return; } const xhr = new XMLHttpRequest(); if (TrustedServers_default.contains(url2)) { xhr.withCredentials = true; } xhr.open(method, url2, true); if (defined_default(overrideMimeType) && defined_default(xhr.overrideMimeType)) { xhr.overrideMimeType(overrideMimeType); } if (defined_default(headers)) { for (const key in headers) { if (headers.hasOwnProperty(key)) { xhr.setRequestHeader(key, headers[key]); } } } if (defined_default(responseType)) { xhr.responseType = responseType; } let localFile = false; if (typeof url2 === "string") { localFile = url2.indexOf("file://") === 0 || typeof window !== "undefined" && window.location.origin === "file://"; } xhr.onload = function() { if ((xhr.status < 200 || xhr.status >= 300) && !(localFile && xhr.status === 0)) { deferred.reject( new RequestErrorEvent_default( xhr.status, xhr.response, xhr.getAllResponseHeaders() ) ); return; } const response = xhr.response; const browserResponseType = xhr.responseType; if (method === "HEAD" || method === "OPTIONS") { const responseHeaderString = xhr.getAllResponseHeaders(); const splitHeaders = responseHeaderString.trim().split(/[\r\n]+/); const responseHeaders = {}; splitHeaders.forEach(function(line) { const parts = line.split(": "); const header = parts.shift(); responseHeaders[header] = parts.join(": "); }); deferred.resolve(responseHeaders); return; } if (xhr.status === 204) { deferred.resolve(); } else if (defined_default(response) && (!defined_default(responseType) || browserResponseType === responseType)) { deferred.resolve(response); } else if (responseType === "json" && typeof response === "string") { try { deferred.resolve(JSON.parse(response)); } catch (e2) { deferred.reject(e2); } } else if ((browserResponseType === "" || browserResponseType === "document") && defined_default(xhr.responseXML) && xhr.responseXML.hasChildNodes()) { deferred.resolve(xhr.responseXML); } else if ((browserResponseType === "" || browserResponseType === "text") && defined_default(xhr.responseText)) { deferred.resolve(xhr.responseText); } else { deferred.reject( new RuntimeError_default("Invalid XMLHttpRequest response type.") ); } }; xhr.onerror = function(e2) { deferred.reject(new RequestErrorEvent_default()); }; xhr.send(data); return xhr; }; Resource._Implementations.loadAndExecuteScript = function(url2, functionName, deferred) { return loadAndExecuteScript_default(url2, functionName).catch(function(e2) { deferred.reject(e2); }); }; Resource._DefaultImplementations = {}; Resource._DefaultImplementations.createImage = Resource._Implementations.createImage; Resource._DefaultImplementations.loadWithXhr = Resource._Implementations.loadWithXhr; Resource._DefaultImplementations.loadAndExecuteScript = Resource._Implementations.loadAndExecuteScript; Resource.DEFAULT = Object.freeze( new Resource({ url: typeof document === "undefined" ? "" : document.location.href.split("?")[0] }) ); var Resource_default = Resource; // node_modules/cesium/Source/Core/buildModuleUrl.js var cesiumScriptRegex = /((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/; var a2; function tryMakeAbsolute(url2) { if (typeof document === "undefined") { return url2; } if (!defined_default(a2)) { a2 = document.createElement("a"); } a2.href = url2; a2.href = a2.href; return a2.href; } var baseResource; function getCesiumBaseUrl() { if (defined_default(baseResource)) { return baseResource; } let baseUrlString; if (true) { baseUrlString = "cesium/"; } else if (typeof define === "object" && defined_default(define.amd) && !define.amd.toUrlUndefined && defined_default(__require.toUrl)) { baseUrlString = getAbsoluteUri_default( "..", buildModuleUrl("Core/buildModuleUrl.js") ); } else { baseUrlString = getBaseUrlFromCesiumScript(); } if (!defined_default(baseUrlString)) { throw new DeveloperError_default( "Unable to determine Cesium base URL automatically, try defining a global variable called CESIUM_BASE_URL." ); } baseResource = new Resource_default({ url: tryMakeAbsolute(baseUrlString) }); baseResource.appendForwardSlash(); return baseResource; } function buildModuleUrlFromRequireToUrl(moduleID) { return tryMakeAbsolute(__require.toUrl(`../${moduleID}`)); } function buildModuleUrlFromBaseUrl(moduleID) { const resource = getCesiumBaseUrl().getDerivedResource({ url: moduleID }); return resource.url; } var implementation; function buildModuleUrl(relativeUrl) { if (!defined_default(implementation)) { if (typeof define === "object" && defined_default(define.amd) && !define.amd.toUrlUndefined && defined_default(__require.toUrl)) { implementation = buildModuleUrlFromRequireToUrl; } else { implementation = buildModuleUrlFromBaseUrl; } } const url2 = implementation(relativeUrl); return url2; } buildModuleUrl._cesiumScriptRegex = cesiumScriptRegex; buildModuleUrl._buildModuleUrlFromBaseUrl = buildModuleUrlFromBaseUrl; buildModuleUrl._clearBaseResource = function() { baseResource = void 0; }; buildModuleUrl.setBaseUrl = function(value) { baseResource = Resource_default.DEFAULT.getDerivedResource({ url: value }); }; buildModuleUrl.getCesiumBaseUrl = getCesiumBaseUrl; var buildModuleUrl_default = buildModuleUrl; // node_modules/cesium/Source/Core/Cartesian2.js function Cartesian2(x, y) { this.x = defaultValue_default(x, 0); this.y = defaultValue_default(y, 0); } Cartesian2.fromElements = function(x, y, result) { if (!defined_default(result)) { return new Cartesian2(x, y); } result.x = x; result.y = y; return result; }; Cartesian2.clone = function(cartesian11, result) { if (!defined_default(cartesian11)) { return void 0; } if (!defined_default(result)) { return new Cartesian2(cartesian11.x, cartesian11.y); } result.x = cartesian11.x; result.y = cartesian11.y; return result; }; Cartesian2.fromCartesian3 = Cartesian2.clone; Cartesian2.fromCartesian4 = Cartesian2.clone; Cartesian2.packedLength = 2; Cartesian2.pack = function(value, array, startingIndex) { Check_default.typeOf.object("value", value); Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); array[startingIndex++] = value.x; array[startingIndex] = value.y; return array; }; Cartesian2.unpack = function(array, startingIndex, result) { Check_default.defined("array", array); startingIndex = defaultValue_default(startingIndex, 0); if (!defined_default(result)) { result = new Cartesian2(); } result.x = array[startingIndex++]; result.y = array[startingIndex]; return result; }; Cartesian2.packArray = function(array, result) { Check_default.defined("array", array); const length3 = array.length; const resultLength = length3 * 2; if (!defined_default(result)) { result = new Array(resultLength); } else if (!Array.isArray(result) && result.length !== resultLength) { throw new DeveloperError_default( "If result is a typed array, it must have exactly array.length * 2 elements" ); } else if (result.length !== resultLength) { result.length = resultLength; } for (let i2 = 0; i2 < length3; ++i2) { Cartesian2.pack(array[i2], result, i2 * 2); } return result; }; Cartesian2.unpackArray = function(array, result) { Check_default.defined("array", array); Check_default.typeOf.number.greaterThanOrEquals("array.length", array.length, 2); if (array.length % 2 !== 0) { throw new DeveloperError_default("array length must be a multiple of 2."); } const length3 = array.length; if (!defined_default(result)) { result = new Array(length3 / 2); } else { result.length = length3 / 2; } for (let i2 = 0; i2 < length3; i2 += 2) { const index2 = i2 / 2; result[index2] = Cartesian2.unpack(array, i2, result[index2]); } return result; }; Cartesian2.fromArray = Cartesian2.unpack; Cartesian2.maximumComponent = function(cartesian11) { Check_default.typeOf.object("cartesian", cartesian11); return Math.max(cartesian11.x, cartesian11.y); }; Cartesian2.minimumComponent = function(cartesian11) { Check_default.typeOf.object("cartesian", cartesian11); return Math.min(cartesian11.x, cartesian11.y); }; Cartesian2.minimumByComponent = function(first, second, result) { Check_default.typeOf.object("first", first); Check_default.typeOf.object("second", second); Check_default.typeOf.object("result", result); result.x = Math.min(first.x, second.x); result.y = Math.min(first.y, second.y); return result; }; Cartesian2.maximumByComponent = function(first, second, result) { Check_default.typeOf.object("first", first); Check_default.typeOf.object("second", second); Check_default.typeOf.object("result", result); result.x = Math.max(first.x, second.x); result.y = Math.max(first.y, second.y); return result; }; Cartesian2.clamp = function(value, min3, max3, result) { Check_default.typeOf.object("value", value); Check_default.typeOf.object("min", min3); Check_default.typeOf.object("max", max3); Check_default.typeOf.object("result", result); const x = Math_default.clamp(value.x, min3.x, max3.x); const y = Math_default.clamp(value.y, min3.y, max3.y); result.x = x; result.y = y; return result; }; Cartesian2.magnitudeSquared = function(cartesian11) { Check_default.typeOf.object("cartesian", cartesian11); return cartesian11.x * cartesian11.x + cartesian11.y * cartesian11.y; }; Cartesian2.magnitude = function(cartesian11) { return Math.sqrt(Cartesian2.magnitudeSquared(cartesian11)); }; var distanceScratch3 = new Cartesian2(); Cartesian2.distance = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Cartesian2.subtract(left, right, distanceScratch3); return Cartesian2.magnitude(distanceScratch3); }; Cartesian2.distanceSquared = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Cartesian2.subtract(left, right, distanceScratch3); return Cartesian2.magnitudeSquared(distanceScratch3); }; Cartesian2.normalize = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const magnitude = Cartesian2.magnitude(cartesian11); result.x = cartesian11.x / magnitude; result.y = cartesian11.y / magnitude; if (isNaN(result.x) || isNaN(result.y)) { throw new DeveloperError_default("normalized result is not a number"); } return result; }; Cartesian2.dot = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); return left.x * right.x + left.y * right.y; }; Cartesian2.cross = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); return left.x * right.y - left.y * right.x; }; Cartesian2.multiplyComponents = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x * right.x; result.y = left.y * right.y; return result; }; Cartesian2.divideComponents = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x / right.x; result.y = left.y / right.y; return result; }; Cartesian2.add = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x + right.x; result.y = left.y + right.y; return result; }; Cartesian2.subtract = function(left, right, result) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Check_default.typeOf.object("result", result); result.x = left.x - right.x; result.y = left.y - right.y; return result; }; Cartesian2.multiplyByScalar = function(cartesian11, scalar, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.number("scalar", scalar); Check_default.typeOf.object("result", result); result.x = cartesian11.x * scalar; result.y = cartesian11.y * scalar; return result; }; Cartesian2.divideByScalar = function(cartesian11, scalar, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.number("scalar", scalar); Check_default.typeOf.object("result", result); result.x = cartesian11.x / scalar; result.y = cartesian11.y / scalar; return result; }; Cartesian2.negate = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result.x = -cartesian11.x; result.y = -cartesian11.y; return result; }; Cartesian2.abs = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); result.x = Math.abs(cartesian11.x); result.y = Math.abs(cartesian11.y); return result; }; var lerpScratch3 = new Cartesian2(); Cartesian2.lerp = function(start, end, t, result) { Check_default.typeOf.object("start", start); Check_default.typeOf.object("end", end); Check_default.typeOf.number("t", t); Check_default.typeOf.object("result", result); Cartesian2.multiplyByScalar(end, t, lerpScratch3); result = Cartesian2.multiplyByScalar(start, 1 - t, result); return Cartesian2.add(lerpScratch3, result, result); }; var angleBetweenScratch3 = new Cartesian2(); var angleBetweenScratch22 = new Cartesian2(); Cartesian2.angleBetween = function(left, right) { Check_default.typeOf.object("left", left); Check_default.typeOf.object("right", right); Cartesian2.normalize(left, angleBetweenScratch3); Cartesian2.normalize(right, angleBetweenScratch22); return Math_default.acosClamped( Cartesian2.dot(angleBetweenScratch3, angleBetweenScratch22) ); }; var mostOrthogonalAxisScratch3 = new Cartesian2(); Cartesian2.mostOrthogonalAxis = function(cartesian11, result) { Check_default.typeOf.object("cartesian", cartesian11); Check_default.typeOf.object("result", result); const f2 = Cartesian2.normalize(cartesian11, mostOrthogonalAxisScratch3); Cartesian2.abs(f2, f2); if (f2.x <= f2.y) { result = Cartesian2.clone(Cartesian2.UNIT_X, result); } else { result = Cartesian2.clone(Cartesian2.UNIT_Y, result); } return result; }; Cartesian2.equals = function(left, right) { return left === right || defined_default(left) && defined_default(right) && left.x === right.x && left.y === right.y; }; Cartesian2.equalsArray = function(cartesian11, array, offset2) { return cartesian11.x === array[offset2] && cartesian11.y === array[offset2 + 1]; }; Cartesian2.equalsEpsilon = function(left, right, relativeEpsilon, absoluteEpsilon) { return left === right || defined_default(left) && defined_default(right) && Math_default.equalsEpsilon( left.x, right.x, relativeEpsilon, absoluteEpsilon ) && Math_default.equalsEpsilon( left.y, right.y, relativeEpsilon, absoluteEpsilon ); }; Cartesian2.ZERO = Object.freeze(new Cartesian2(0, 0)); Cartesian2.ONE = Object.freeze(new Cartesian2(1, 1)); Cartesian2.UNIT_X = Object.freeze(new Cartesian2(1, 0)); Cartesian2.UNIT_Y = Object.freeze(new Cartesian2(0, 1)); Cartesian2.prototype.clone = function(result) { return Cartesian2.clone(this, result); }; Cartesian2.prototype.equals = function(right) { return Cartesian2.equals(this, right); }; Cartesian2.prototype.equalsEpsilon = function(right, relativeEpsilon, absoluteEpsilon) { return Cartesian2.equalsEpsilon( this, right, relativeEpsilon, absoluteEpsilon ); }; Cartesian2.prototype.toString = function() { return `(${this.x}, ${this.y})`; }; var Cartesian2_default = Cartesian2; // node_modules/cesium/Source/Core/GeographicTilingScheme.js function GeographicTilingScheme(options) { options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT); this._ellipsoid = defaultValue_default(options.ellipsoid, Ellipsoid_default.WGS84); this._rectangle = defaultValue_default(options.rectangle, Rectangle_default.MAX_VALUE); this._projection = new GeographicProjection_default(this._ellipsoid); this._numberOfLevelZeroTilesX = defaultValue_default( options.numberOfLevelZeroTilesX, 2 ); this._numberOfLevelZeroTilesY = defaultValue_default( options.numberOfLevelZeroTilesY, 1 ); } Object.defineProperties(GeographicTilingScheme.prototype, { ellipsoid: { get: function() { return this._ellipsoid; } }, rectangle: { get: function() { return this._rectangle; } }, projection: { get: function() { return this._projection; } } }); GeographicTilingScheme.prototype.getNumberOfXTilesAtLevel = function(level) { return this._numberOfLevelZeroTilesX << level; }; GeographicTilingScheme.prototype.getNumberOfYTilesAtLevel = function(level) { return this._numberOfLevelZeroTilesY << level; }; GeographicTilingScheme.prototype.rectangleToNativeRectangle = function(rectangle, result) { Check_default.defined("rectangle", rectangle); const west = Math_default.toDegrees(rectangle.west); const south = Math_default.toDegrees(rectangle.south); const east = Math_default.toDegrees(rectangle.east); const north = Math_default.toDegrees(rectangle.north); if (!defined_default(result)) { return new Rectangle_default(west, south, east, north); } result.west = west; result.south = south; result.east = east; result.north = north; return result; }; GeographicTilingScheme.prototype.tileXYToNativeRectangle = function(x, y, level, result) { const rectangleRadians = this.tileXYToRectangle(x, y, level, result); rectangleRadians.west = Math_default.toDegrees(rectangleRadians.west); rectangleRadians.south = Math_default.toDegrees(rectangleRadians.south); rectangleRadians.east = Math_default.toDegrees(rectangleRadians.east); rectangleRadians.north = Math_default.toDegrees(rectangleRadians.north); return rectangleRadians; }; GeographicTilingScheme.prototype.tileXYToRectangle = function(x, y, level, result) { const rectangle = this._rectangle; const xTiles = this.getNumberOfXTilesAtLevel(level); const yTiles = this.getNumberOfYTilesAtLevel(level); const xTileWidth = rectangle.width / xTiles; const west = x * xTileWidth + rectangle.west; const east = (x + 1) * xTileWidth + rectangle.west; const yTileHeight = rectangle.height / yTiles; const north = rectangle.north - y * yTileHeight; const south = rectangle.north - (y + 1) * yTileHeight; if (!defined_default(result)) { result = new Rectangle_default(west, south, east, north); } result.west = west; result.south = south; result.east = east; result.north = north; return result; }; GeographicTilingScheme.prototype.positionToTileXY = function(position, level, result) { const rectangle = this._rectangle; if (!Rectangle_default.contains(rectangle, position)) { return void 0; } const xTiles = this.getNumberOfXTilesAtLevel(level); const yTiles = this.getNumberOfYTilesAtLevel(level); const xTileWidth = rectangle.width / xTiles; const yTileHeight = rectangle.height / yTiles; let longitude = position.longitude; if (rectangle.east < rectangle.west) { longitude += Math_default.TWO_PI; } let xTileCoordinate = (longitude - rectangle.west) / xTileWidth | 0; if (xTileCoordinate >= xTiles) { xTileCoordinate = xTiles - 1; } let yTileCoordinate = (rectangle.north - position.latitude) / yTileHeight | 0; if (yTileCoordinate >= yTiles) { yTileCoordinate = yTiles - 1; } if (!defined_default(result)) { return new Cartesian2_default(xTileCoordinate, yTileCoordinate); } result.x = xTileCoordinate; result.y = yTileCoordinate; return result; }; var GeographicTilingScheme_default = GeographicTilingScheme; // node_modules/cesium/Source/Core/ApproximateTerrainHeights.js var scratchDiagonalCartesianNE = new Cartesian3_default(); var scratchDiagonalCartesianSW = new Cartesian3_default(); var scratchDiagonalCartographic = new Cartographic_default(); var scratchCenterCartesian = new Cartesian3_default(); var scratchSurfaceCartesian = new Cartesian3_default(); var scratchBoundingSphere = new BoundingSphere_default(); var tilingScheme = new GeographicTilingScheme_default(); var scratchCorners = [ new Cartographic_default(), new Cartographic_default(), new Cartographic_default(), new Cartographic_default() ]; var scratchTileXY = new Cartesian2_default(); var ApproximateTerrainHeights = {}; ApproximateTerrainHeights.initialize = function() { let initPromise = ApproximateTerrainHeights._initPromise; if (defined_default(initPromise)) { return initPromise; } initPromise = Resource_default.fetchJson( buildModuleUrl_default("Assets/approximateTerrainHeights.json") ).then(function(json) { ApproximateTerrainHeights._terrainHeights = json; }); ApproximateTerrainHeights._initPromise = initPromise; return initPromise; }; ApproximateTerrainHeights.getMinimumMaximumHeights = function(rectangle, ellipsoid) { Check_default.defined("rectangle", rectangle); if (!defined_default(ApproximateTerrainHeights._terrainHeights)) { throw new DeveloperError_default( "You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function" ); } ellipsoid = defaultValue_default(ellipsoid, Ellipsoid_default.WGS84); const xyLevel = getTileXYLevel(rectangle); let minTerrainHeight = ApproximateTerrainHeights._defaultMinTerrainHeight; let maxTerrainHeight = ApproximateTerrainHeights._defaultMaxTerrainHeight; if (defined_default(xyLevel)) { const key = `${xyLevel.level}-${xyLevel.x}-${xyLevel.y}`; const heights = ApproximateTerrainHeights._terrainHeights[key]; if (defined_default(heights)) { minTerrainHeight = heights[0]; maxTerrainHeight = heights[1]; } ellipsoid.cartographicToCartesian( Rectangle_default.northeast(rectangle, scratchDiagonalCartographic), scratchDiagonalCartesianNE ); ellipsoid.cartographicToCartesian( Rectangle_default.southwest(rectangle, scratchDiagonalCartographic), scratchDiagonalCartesianSW ); Cartesian3_default.midpoint( scratchDiagonalCartesianSW, scratchDiagonalCartesianNE, scratchCenterCartesian ); const surfacePosition = ellipsoid.scaleToGeodeticSurface( scratchCenterCartesian, scratchSurfaceCartesian ); if (defined_default(surfacePosition)) { const distance2 = Cartesian3_default.distance( scratchCenterCartesian, surfacePosition ); minTerrainHeight = Math.min(minTerrainHeight, -distance2); } else { minTerrainHeight = ApproximateTerrainHeights._defaultMinTerrainHeight; } } minTerrainHeight = Math.max( ApproximateTerrainHeights._defaultMinTerrainHeight, minTerrainHeight ); return { minimumTerrainHeight: minTerrainHeight, maximumTerrainHeight: maxTerrainHeight }; }; ApproximateTerrainHeights.getBoundingSphere = function(rectangle, ellipsoid) { Check_default.defined("rectangle", rectangle); if (!defined_default(ApproximateTerrainHeights._terrainHeights)) { throw new DeveloperError_default( "You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function" ); } ellipsoid = defaultValue_default(ellipsoid, Ellipsoid_default.WGS84); const xyLevel = getTileXYLevel(rectangle); let maxTerrainHeight = ApproximateTerrainHeights._defaultMaxTerrainHeight; if (defined_default(xyLevel)) { const key = `${xyLevel.level}-${xyLevel.x}-${xyLevel.y}`; const heights = ApproximateTerrainHeights._terrainHeights[key]; if (defined_default(heights)) { maxTerrainHeight = heights[1]; } } const result = BoundingSphere_default.fromRectangle3D(rectangle, ellipsoid, 0); BoundingSphere_default.fromRectangle3D( rectangle, ellipsoid, maxTerrainHeight, scratchBoundingSphere ); return BoundingSphere_default.union(result, scratchBoundingSphere, result); }; function getTileXYLevel(rectangle) { Cartographic_default.fromRadians( rectangle.east, rectangle.north, 0, scratchCorners[0] ); Cartographic_default.fromRadians( rectangle.west, rectangle.north, 0, scratchCorners[1] ); Cartographic_default.fromRadians( rectangle.east, rectangle.south, 0, scratchCorners[2] ); Cartographic_default.fromRadians( rectangle.west, rectangle.south, 0, scratchCorners[3] ); let lastLevelX = 0, lastLevelY = 0; let currentX = 0, currentY = 0; const maxLevel = ApproximateTerrainHeights._terrainHeightsMaxLevel; let i2; for (i2 = 0; i2 <= maxLevel; ++i2) { let failed = false; for (let j = 0; j < 4; ++j) { const corner = scratchCorners[j]; tilingScheme.positionToTileXY(corner, i2, scratchTileXY); if (j === 0) { currentX = scratchTileXY.x; currentY = scratchTileXY.y; } else if (currentX !== scratchTileXY.x || currentY !== scratchTileXY.y) { failed = true; break; } } if (failed) { break; } lastLevelX = currentX; lastLevelY = currentY; } if (i2 === 0) { return void 0; } return { x: lastLevelX, y: lastLevelY, level: i2 > maxLevel ? maxLevel : i2 - 1 }; } ApproximateTerrainHeights._terrainHeightsMaxLevel = 6; ApproximateTerrainHeights._defaultMaxTerrainHeight = 9e3; ApproximateTerrainHeights._defaultMinTerrainHeight = -1e5; ApproximateTerrainHeights._terrainHeights = void 0; ApproximateTerrainHeights._initPromise = void 0; Object.defineProperties(ApproximateTerrainHeights, { initialized: { get: function() { return defined_default(ApproximateTerrainHeights._terrainHeights); } } }); var ApproximateTerrainHeights_default = ApproximateTerrainHeights; // node_modules/cesium/Source/ThirdParty/dompurify.js function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i2 = 0, arr2 = Array(arr.length); i2 < arr.length; i2++) { arr2[i2] = arr[i2]; } return arr2; } else { return Array.from(arr); } } var hasOwnProperty = Object.hasOwnProperty; var setPrototypeOf = Object.setPrototypeOf; var isFrozen = Object.isFrozen; var getPrototypeOf = Object.getPrototypeOf; var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var freeze = Object.freeze; var seal = Object.seal; var create = Object.create; var _ref = typeof Reflect !== "undefined" && Reflect; var apply = _ref.apply; var construct = _ref.construct; if (!apply) { apply = function apply2(fun, thisValue, args) { return fun.apply(thisValue, args); }; } if (!freeze) { freeze = function freeze2(x) { return x; }; } if (!seal) { seal = function seal2(x) { return x; }; } if (!construct) { construct = function construct2(Func, args) { return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))(); }; } var arrayForEach = unapply(Array.prototype.forEach); var arrayPop = unapply(Array.prototype.pop); var arrayPush = unapply(Array.prototype.push); var stringToLowerCase = unapply(String.prototype.toLowerCase); var stringMatch = unapply(String.prototype.match); var stringReplace = unapply(String.prototype.replace); var stringIndexOf = unapply(String.prototype.indexOf); var stringTrim = unapply(String.prototype.trim); var regExpTest = unapply(RegExp.prototype.test); var typeErrorCreate = unconstruct(TypeError); function unapply(func) { return function(thisArg) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } return apply(func, thisArg, args); }; } function unconstruct(func) { return function() { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return construct(func, args); }; } function addToSet(set2, array) { if (setPrototypeOf) { setPrototypeOf(set2, null); } var l2 = array.length; while (l2--) { var element = array[l2]; if (typeof element === "string") { var lcElement = stringToLowerCase(element); if (lcElement !== element) { if (!isFrozen(array)) { array[l2] = lcElement; } element = lcElement; } } set2[element] = true; } return set2; } function clone2(object2) { var newObject = create(null); var property = void 0; for (property in object2) { if (apply(hasOwnProperty, object2, [property])) { newObject[property] = object2[property]; } } return newObject; } function lookupGetter(object2, prop) { while (object2 !== null) { var desc = getOwnPropertyDescriptor(object2, prop); if (desc) { if (desc.get) { return unapply(desc.get); } if (typeof desc.value === "function") { return unapply(desc.value); } } object2 = getPrototypeOf(object2); } function fallbackValue(element) { console.warn("fallback value for", element); return null; } return fallbackValue; } var html = freeze(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]); var svg = freeze(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]); var svgFilters = freeze(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]); var svgDisallowed = freeze(["animate", "color-profile", "cursor", "discard", "fedropshadow", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]); var mathMl = freeze(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover"]); var mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]); var text = freeze(["#text"]); var html$1 = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]); var svg$1 = freeze(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]); var mathMl$1 = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]); var xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]); var MUSTACHE_EXPR = seal(/\{\{[\s\S]*|[\s\S]*\}\}/gm); var ERB_EXPR = seal(/<%[\s\S]*|[\s\S]*%>/gm); var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/); var ARIA_ATTR = seal(/^aria-[\-\w]+$/); var IS_ALLOWED_URI = seal( /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i ); var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i); var ATTR_WHITESPACE = seal( /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g ); var DOCTYPE_NAME = seal(/^html$/i); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { return typeof obj; } : function(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i2 = 0, arr2 = Array(arr.length); i2 < arr.length; i2++) { arr2[i2] = arr[i2]; } return arr2; } else { return Array.from(arr); } } var getGlobal = function getGlobal2() { return typeof window === "undefined" ? null : window; }; var _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, document2) { if ((typeof trustedTypes === "undefined" ? "undefined" : _typeof(trustedTypes)) !== "object" || typeof trustedTypes.createPolicy !== "function") { return null; } var suffix = null; var ATTR_NAME = "data-tt-policy-suffix"; if (document2.currentScript && document2.currentScript.hasAttribute(ATTR_NAME)) { suffix = document2.currentScript.getAttribute(ATTR_NAME); } var policyName = "dompurify" + (suffix ? "#" + suffix : ""); try { return trustedTypes.createPolicy(policyName, { createHTML: function createHTML(html$$1) { return html$$1; } }); } catch (_2) { console.warn("TrustedTypes policy " + policyName + " could not be created."); return null; } }; function createDOMPurify() { var window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal(); var DOMPurify = function DOMPurify2(root) { return createDOMPurify(root); }; DOMPurify.version = "2.3.6"; DOMPurify.removed = []; if (!window2 || !window2.document || window2.document.nodeType !== 9) { DOMPurify.isSupported = false; return DOMPurify; } var originalDocument = window2.document; var document2 = window2.document; var DocumentFragment2 = window2.DocumentFragment, HTMLTemplateElement = window2.HTMLTemplateElement, Node7 = window2.Node, Element2 = window2.Element, NodeFilter = window2.NodeFilter, _window$NamedNodeMap = window2.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window2.NamedNodeMap || window2.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window2.HTMLFormElement, DOMParser2 = window2.DOMParser, trustedTypes = window2.trustedTypes; var ElementPrototype = Element2.prototype; var cloneNode = lookupGetter(ElementPrototype, "cloneNode"); var getNextSibling = lookupGetter(ElementPrototype, "nextSibling"); var getChildNodes = lookupGetter(ElementPrototype, "childNodes"); var getParentNode = lookupGetter(ElementPrototype, "parentNode"); if (typeof HTMLTemplateElement === "function") { var template = document2.createElement("template"); if (template.content && template.content.ownerDocument) { document2 = template.content.ownerDocument; } } var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument); var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML("") : ""; var _document = document2, implementation4 = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName; var importNode = originalDocument.importNode; var documentMode = {}; try { documentMode = clone2(document2).documentMode ? document2.documentMode : {}; } catch (_2) { } var hooks = {}; DOMPurify.isSupported = typeof getParentNode === "function" && implementation4 && typeof implementation4.createHTMLDocument !== "undefined" && documentMode !== 9; var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR, ERB_EXPR$$1 = ERB_EXPR, DATA_ATTR$$1 = DATA_ATTR, ARIA_ATTR$$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$$1 = ATTR_WHITESPACE; var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI; var ALLOWED_TAGS = null; var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text))); var ALLOWED_ATTR = null; var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml))); var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, { tagNameCheck: { writable: true, configurable: false, enumerable: true, value: null }, attributeNameCheck: { writable: true, configurable: false, enumerable: true, value: null }, allowCustomizedBuiltInElements: { writable: true, configurable: false, enumerable: true, value: false } })); var FORBID_TAGS = null; var FORBID_ATTR = null; var ALLOW_ARIA_ATTR = true; var ALLOW_DATA_ATTR = true; var ALLOW_UNKNOWN_PROTOCOLS = false; var SAFE_FOR_TEMPLATES = false; var WHOLE_DOCUMENT = false; var SET_CONFIG = false; var FORCE_BODY = false; var RETURN_DOM = false; var RETURN_DOM_FRAGMENT = false; var RETURN_TRUSTED_TYPE = false; var SANITIZE_DOM = true; var KEEP_CONTENT = true; var IN_PLACE = false; var USE_PROFILES = {}; var FORBID_CONTENTS = null; var DEFAULT_FORBID_CONTENTS = addToSet({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]); var DATA_URI_TAGS = null; var DEFAULT_DATA_URI_TAGS = addToSet({}, ["audio", "video", "img", "source", "image", "track"]); var URI_SAFE_ATTRIBUTES = null; var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]); var MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML"; var SVG_NAMESPACE = "http://www.w3.org/2000/svg"; var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; var NAMESPACE = HTML_NAMESPACE; var IS_EMPTY_INPUT = false; var PARSER_MEDIA_TYPE = void 0; var SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"]; var DEFAULT_PARSER_MEDIA_TYPE = "text/html"; var transformCaseFunc = void 0; var CONFIG = null; var formElement = document2.createElement("form"); var isRegexOrFunction = function isRegexOrFunction2(testValue) { return testValue instanceof RegExp || testValue instanceof Function; }; var _parseConfig = function _parseConfig2(cfg) { if (CONFIG && CONFIG === cfg) { return; } if (!cfg || (typeof cfg === "undefined" ? "undefined" : _typeof(cfg)) !== "object") { cfg = {}; } cfg = clone2(cfg); ALLOWED_TAGS = "ALLOWED_TAGS" in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS; ALLOWED_ATTR = "ALLOWED_ATTR" in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR; URI_SAFE_ATTRIBUTES = "ADD_URI_SAFE_ATTR" in cfg ? addToSet(clone2(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES; DATA_URI_TAGS = "ADD_DATA_URI_TAGS" in cfg ? addToSet(clone2(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS; FORBID_CONTENTS = "FORBID_CONTENTS" in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS; FORBID_TAGS = "FORBID_TAGS" in cfg ? addToSet({}, cfg.FORBID_TAGS) : {}; FORBID_ATTR = "FORBID_ATTR" in cfg ? addToSet({}, cfg.FORBID_ATTR) : {}; USE_PROFILES = "USE_PROFILES" in cfg ? cfg.USE_PROFILES : false; ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; RETURN_DOM = cfg.RETURN_DOM || false; RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; FORCE_BODY = cfg.FORCE_BODY || false; SANITIZE_DOM = cfg.SANITIZE_DOM !== false; KEEP_CONTENT = cfg.KEEP_CONTENT !== false; IN_PLACE = cfg.IN_PLACE || false; IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1; NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE; if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) { CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck; } if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) { CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck; } if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") { CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements; } PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? function(x) { return x; } : stringToLowerCase; if (SAFE_FOR_TEMPLATES) { ALLOW_DATA_ATTR = false; } if (RETURN_DOM_FRAGMENT) { RETURN_DOM = true; } if (USE_PROFILES) { ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text))); ALLOWED_ATTR = []; if (USE_PROFILES.html === true) { addToSet(ALLOWED_TAGS, html); addToSet(ALLOWED_ATTR, html$1); } if (USE_PROFILES.svg === true) { addToSet(ALLOWED_TAGS, svg); addToSet(ALLOWED_ATTR, svg$1); addToSet(ALLOWED_ATTR, xml); } if (USE_PROFILES.svgFilters === true) { addToSet(ALLOWED_TAGS, svgFilters); addToSet(ALLOWED_ATTR, svg$1); addToSet(ALLOWED_ATTR, xml); } if (USE_PROFILES.mathMl === true) { addToSet(ALLOWED_TAGS, mathMl); addToSet(ALLOWED_ATTR, mathMl$1); addToSet(ALLOWED_ATTR, xml); } } if (cfg.ADD_TAGS) { if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) { ALLOWED_TAGS = clone2(ALLOWED_TAGS); } addToSet(ALLOWED_TAGS, cfg.ADD_TAGS); } if (cfg.ADD_ATTR) { if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) { ALLOWED_ATTR = clone2(ALLOWED_ATTR); } addToSet(ALLOWED_ATTR, cfg.ADD_ATTR); } if (cfg.ADD_URI_SAFE_ATTR) { addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR); } if (cfg.FORBID_CONTENTS) { if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) { FORBID_CONTENTS = clone2(FORBID_CONTENTS); } addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS); } if (KEEP_CONTENT) { ALLOWED_TAGS["#text"] = true; } if (WHOLE_DOCUMENT) { addToSet(ALLOWED_TAGS, ["html", "head", "body"]); } if (ALLOWED_TAGS.table) { addToSet(ALLOWED_TAGS, ["tbody"]); delete FORBID_TAGS.tbody; } if (freeze) { freeze(cfg); } CONFIG = cfg; }; var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ["mi", "mo", "mn", "ms", "mtext"]); var HTML_INTEGRATION_POINTS = addToSet({}, ["foreignobject", "desc", "title", "annotation-xml"]); var ALL_SVG_TAGS = addToSet({}, svg); addToSet(ALL_SVG_TAGS, svgFilters); addToSet(ALL_SVG_TAGS, svgDisallowed); var ALL_MATHML_TAGS = addToSet({}, mathMl); addToSet(ALL_MATHML_TAGS, mathMlDisallowed); var _checkValidNamespace = function _checkValidNamespace2(element) { var parent = getParentNode(element); if (!parent || !parent.tagName) { parent = { namespaceURI: HTML_NAMESPACE, tagName: "template" }; } var tagName = stringToLowerCase(element.tagName); var parentTagName = stringToLowerCase(parent.tagName); if (element.namespaceURI === SVG_NAMESPACE) { if (parent.namespaceURI === HTML_NAMESPACE) { return tagName === "svg"; } if (parent.namespaceURI === MATHML_NAMESPACE) { return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]); } return Boolean(ALL_SVG_TAGS[tagName]); } if (element.namespaceURI === MATHML_NAMESPACE) { if (parent.namespaceURI === HTML_NAMESPACE) { return tagName === "math"; } if (parent.namespaceURI === SVG_NAMESPACE) { return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName]; } return Boolean(ALL_MATHML_TAGS[tagName]); } if (element.namespaceURI === HTML_NAMESPACE) { if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) { return false; } if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) { return false; } var commonSvgAndHTMLElements = addToSet({}, ["title", "style", "font", "a", "script"]); return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]); } return false; }; var _forceRemove = function _forceRemove2(node) { arrayPush(DOMPurify.removed, { element: node }); try { node.parentNode.removeChild(node); } catch (_2) { try { node.outerHTML = emptyHTML; } catch (_3) { node.remove(); } } }; var _removeAttribute = function _removeAttribute2(name, node) { try { arrayPush(DOMPurify.removed, { attribute: node.getAttributeNode(name), from: node }); } catch (_2) { arrayPush(DOMPurify.removed, { attribute: null, from: node }); } node.removeAttribute(name); if (name === "is" && !ALLOWED_ATTR[name]) { if (RETURN_DOM || RETURN_DOM_FRAGMENT) { try { _forceRemove(node); } catch (_2) { } } else { try { node.setAttribute(name, ""); } catch (_2) { } } } }; var _initDocument = function _initDocument2(dirty) { var doc = void 0; var leadingWhitespace = void 0; if (FORCE_BODY) { dirty = "" + dirty; } else { var matches = stringMatch(dirty, /^[\r\n\t ]+/); leadingWhitespace = matches && matches[0]; } if (PARSER_MEDIA_TYPE === "application/xhtml+xml") { dirty = '' + dirty + ""; } var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty; if (NAMESPACE === HTML_NAMESPACE) { try { doc = new DOMParser2().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE); } catch (_2) { } } if (!doc || !doc.documentElement) { doc = implementation4.createDocument(NAMESPACE, "template", null); try { doc.documentElement.innerHTML = IS_EMPTY_INPUT ? "" : dirtyPayload; } catch (_2) { } } var body = doc.body || doc.documentElement; if (dirty && leadingWhitespace) { body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null); } if (NAMESPACE === HTML_NAMESPACE) { return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0]; } return WHOLE_DOCUMENT ? doc.documentElement : body; }; var _createIterator = function _createIterator2(root) { return createNodeIterator.call( root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false ); }; var _isClobbered = function _isClobbered2(elm) { return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function"); }; var _isNode = function _isNode2(object2) { return (typeof Node7 === "undefined" ? "undefined" : _typeof(Node7)) === "object" ? object2 instanceof Node7 : object2 && (typeof object2 === "undefined" ? "undefined" : _typeof(object2)) === "object" && typeof object2.nodeType === "number" && typeof object2.nodeName === "string"; }; var _executeHook = function _executeHook2(entryPoint, currentNode, data) { if (!hooks[entryPoint]) { return; } arrayForEach(hooks[entryPoint], function(hook) { hook.call(DOMPurify, currentNode, data, CONFIG); }); }; var _sanitizeElements = function _sanitizeElements2(currentNode) { var content = void 0; _executeHook("beforeSanitizeElements", currentNode, null); if (_isClobbered(currentNode)) { _forceRemove(currentNode); return true; } if (stringMatch(currentNode.nodeName, /[\u0080-\uFFFF]/)) { _forceRemove(currentNode); return true; } var tagName = transformCaseFunc(currentNode.nodeName); _executeHook("uponSanitizeElement", currentNode, { tagName, allowedTags: ALLOWED_TAGS }); if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) { _forceRemove(currentNode); return true; } if (tagName === "select" && regExpTest(/