!(function (e, t) { 'object' == typeof exports && 'undefined' != typeof module ? t(exports) : 'function' == typeof define && define.amd ? define(['exports'], t) : t(((e = 'undefined' != typeof globalThis ? globalThis : e || self).Cesium = {})); })(this, function (exports) { 'use strict'; function appendForwardSlash(e) { return (0 !== e.length && '/' === e[e.length - 1]) || (e += '/'), e; } function defined(e) { return null != e; } function DeveloperError(e) { var t; (this.name = 'DeveloperError'), (this.message = e); try { throw new Error(); } catch (e) { t = e.stack; } this.stack = t; } defined(Object.create) && ((DeveloperError.prototype = Object.create(Error.prototype)), (DeveloperError.prototype.constructor = DeveloperError)), (DeveloperError.prototype.toString = function () { var e = this.name + ': ' + this.message; return defined(this.stack) && (e += '\n' + this.stack.toString()), e; }), (DeveloperError.throwInstantiationError = function () { throw new DeveloperError( 'This function defines an interface and should not be called directly.' ); }); var Check = {}; function getUndefinedErrorMessage(e) { return e + ' is required, actual value was undefined'; } function getFailedTypeErrorMessage(e, t, i) { return 'Expected ' + i + ' to be typeof ' + t + ', actual typeof was ' + e; } function defaultValue(e, t) { return null != e ? e : t; } (Check.typeOf = {}), (Check.defined = function (e, t) { if (!defined(t)) throw new DeveloperError(getUndefinedErrorMessage(e)); }), (Check.typeOf.func = function (e, t) { if ('function' != typeof t) throw new DeveloperError(getFailedTypeErrorMessage(typeof t, 'function', e)); }), (Check.typeOf.string = function (e, t) { if ('string' != typeof t) throw new DeveloperError(getFailedTypeErrorMessage(typeof t, 'string', e)); }), (Check.typeOf.number = function (e, t) { if ('number' != typeof t) throw new DeveloperError(getFailedTypeErrorMessage(typeof t, 'number', e)); }), (Check.typeOf.number.lessThan = function (e, t, i) { if ((Check.typeOf.number(e, t), t >= i)) throw new DeveloperError( 'Expected ' + e + ' to be less than ' + i + ', actual value was ' + t ); }), (Check.typeOf.number.lessThanOrEquals = function (e, t, i) { if ((Check.typeOf.number(e, t), t > i)) throw new DeveloperError( 'Expected ' + e + ' to be less than or equal to ' + i + ', actual value was ' + t ); }), (Check.typeOf.number.greaterThan = function (e, t, i) { if ((Check.typeOf.number(e, t), t <= i)) throw new DeveloperError( 'Expected ' + e + ' to be greater than ' + i + ', actual value was ' + t ); }), (Check.typeOf.number.greaterThanOrEquals = function (e, t, i) { if ((Check.typeOf.number(e, t), t < i)) throw new DeveloperError( 'Expected ' + e + ' to be greater than or equal to ' + i + ', actual value was ' + t ); }), (Check.typeOf.object = function (e, t) { if ('object' != typeof t) throw new DeveloperError(getFailedTypeErrorMessage(typeof t, 'object', e)); }), (Check.typeOf.bool = function (e, t) { if ('boolean' != typeof t) throw new DeveloperError(getFailedTypeErrorMessage(typeof t, 'boolean', e)); }), (Check.typeOf.bigint = function (e, t) { if ('bigint' != typeof t) throw new DeveloperError(getFailedTypeErrorMessage(typeof t, 'bigint', e)); }), (Check.typeOf.number.equals = function (e, t, i, r) { if ((Check.typeOf.number(e, i), Check.typeOf.number(t, r), i !== r)) throw new DeveloperError( e + ' must be equal to ' + t + ', the actual values are ' + i + ' and ' + r ); }), (defaultValue.EMPTY_OBJECT = Object.freeze({})); var MersenneTwister = function (e) { null == e && (e = 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), e.constructor == Array ? this.init_by_array(e, e.length) : this.init_seed(e); }; (MersenneTwister.prototype.init_seed = function (e) { for (this.mt[0] = e >>> 0, this.mti = 1; this.mti < this.N; this.mti++) { e = this.mt[this.mti - 1] ^ (this.mt[this.mti - 1] >>> 30); (this.mt[this.mti] = ((1812433253 * ((4294901760 & e) >>> 16)) << 16) + 1812433253 * (65535 & e) + this.mti), (this.mt[this.mti] >>>= 0); } }), (MersenneTwister.prototype.init_by_array = function (e, t) { var i, r, n; for (this.init_seed(19650218), i = 1, r = 0, n = this.N > t ? this.N : t; n; n--) { var a = this.mt[i - 1] ^ (this.mt[i - 1] >>> 30); (this.mt[i] = (this.mt[i] ^ (((1664525 * ((4294901760 & a) >>> 16)) << 16) + 1664525 * (65535 & a))) + e[r] + r), (this.mt[i] >>>= 0), r++, ++i >= this.N && ((this.mt[0] = this.mt[this.N - 1]), (i = 1)), r >= t && (r = 0); } for (n = this.N - 1; n; n--) { a = this.mt[i - 1] ^ (this.mt[i - 1] >>> 30); (this.mt[i] = (this.mt[i] ^ (((1566083941 * ((4294901760 & a) >>> 16)) << 16) + 1566083941 * (65535 & a))) - i), (this.mt[i] >>>= 0), ++i >= this.N && ((this.mt[0] = this.mt[this.N - 1]), (i = 1)); } this.mt[0] = 2147483648; }), (MersenneTwister.prototype.random_int = function () { var e, t = new Array(0, this.MATRIX_A); if (this.mti >= this.N) { var i; for (this.mti == this.N + 1 && this.init_seed(5489), i = 0; i < this.N - this.M; i++) (e = (this.mt[i] & this.UPPER_MASK) | (this.mt[i + 1] & this.LOWER_MASK)), (this.mt[i] = this.mt[i + this.M] ^ (e >>> 1) ^ t[1 & e]); for (; i < this.N - 1; i++) (e = (this.mt[i] & this.UPPER_MASK) | (this.mt[i + 1] & this.LOWER_MASK)), (this.mt[i] = this.mt[i + (this.M - this.N)] ^ (e >>> 1) ^ t[1 & e]); (e = (this.mt[this.N - 1] & this.UPPER_MASK) | (this.mt[0] & this.LOWER_MASK)), (this.mt[this.N - 1] = this.mt[this.M - 1] ^ (e >>> 1) ^ t[1 & e]), (this.mti = 0); } return ( (e = this.mt[this.mti++]), (e ^= e >>> 11), (e ^= (e << 7) & 2636928640), (e ^= (e << 15) & 4022730752), (e ^= e >>> 18) >>> 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 () { return ( (67108864 * (this.random_int() >>> 5) + (this.random_int() >>> 6)) * (1 / 9007199254740992) ); }); var mersenneTwister = MersenneTwister, CesiumMath = { EPSILON1: 0.1, EPSILON2: 0.01, EPSILON3: 0.001, EPSILON4: 1e-4, EPSILON5: 1e-5, EPSILON6: 1e-6, EPSILON7: 1e-7, EPSILON8: 1e-8, EPSILON9: 1e-9, EPSILON10: 1e-10, EPSILON11: 1e-11, EPSILON12: 1e-12, EPSILON13: 1e-13, EPSILON14: 1e-14, EPSILON15: 1e-15, EPSILON16: 1e-16, EPSILON17: 1e-17, EPSILON18: 1e-18, EPSILON19: 1e-19, EPSILON20: 1e-20, EPSILON21: 1e-21, GRAVITATIONALPARAMETER: 3986004418e5, SOLAR_RADIUS: 6955e5, LUNAR_RADIUS: 1737400, SIXTY_FOUR_KILOBYTES: 65536, FOUR_GIGABYTES: 4294967296, }; (CesiumMath.sign = defaultValue(Math.sign, function (e) { return 0 === (e = +e) || e != e ? e : e > 0 ? 1 : -1; })), (CesiumMath.signNotZero = function (e) { return e < 0 ? -1 : 1; }), (CesiumMath.toSNorm = function (e, t) { return (t = defaultValue(t, 255)), Math.round((0.5 * CesiumMath.clamp(e, -1, 1) + 0.5) * t); }), (CesiumMath.fromSNorm = function (e, t) { return (t = defaultValue(t, 255)), (CesiumMath.clamp(e, 0, t) / t) * 2 - 1; }), (CesiumMath.normalize = function (e, t, i) { return 0 === (i = Math.max(i - t, 0)) ? 0 : CesiumMath.clamp((e - t) / i, 0, 1); }), (CesiumMath.sinh = defaultValue(Math.sinh, function (e) { return (Math.exp(e) - Math.exp(-e)) / 2; })), (CesiumMath.cosh = defaultValue(Math.cosh, function (e) { return (Math.exp(e) + Math.exp(-e)) / 2; })), (CesiumMath.lerp = function (e, t, i) { return (1 - i) * e + i * t; }), (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 (e) { return e * CesiumMath.RADIANS_PER_DEGREE; }), (CesiumMath.toDegrees = function (e) { return e * CesiumMath.DEGREES_PER_RADIAN; }), (CesiumMath.convertLongitudeRange = function (e) { var t = CesiumMath.TWO_PI, i = e - Math.floor(e / t) * t; return i < -Math.PI ? i + t : i >= Math.PI ? i - t : i; }), (CesiumMath.clampToLatitudeRange = function (e) { return CesiumMath.clamp(e, -1 * CesiumMath.PI_OVER_TWO, CesiumMath.PI_OVER_TWO); }), (CesiumMath.negativePiToPi = function (e) { return e >= -CesiumMath.PI && e <= CesiumMath.PI ? e : CesiumMath.zeroToTwoPi(e + CesiumMath.PI) - CesiumMath.PI; }), (CesiumMath.zeroToTwoPi = function (e) { if (e >= 0 && e <= CesiumMath.TWO_PI) return e; var t = CesiumMath.mod(e, CesiumMath.TWO_PI); return Math.abs(t) < CesiumMath.EPSILON14 && Math.abs(e) > CesiumMath.EPSILON14 ? CesiumMath.TWO_PI : t; }), (CesiumMath.mod = function (e, t) { return CesiumMath.sign(e) === CesiumMath.sign(t) && Math.abs(e) < Math.abs(t) ? e : ((e % t) + t) % t; }), (CesiumMath.equalsEpsilon = function (e, t, i, r) { (i = defaultValue(i, 0)), (r = defaultValue(r, i)); var n = Math.abs(e - t); return n <= r || n <= i * Math.max(Math.abs(e), Math.abs(t)); }), (CesiumMath.lessThan = function (e, t, i) { return e - t < -i; }), (CesiumMath.lessThanOrEquals = function (e, t, i) { return e - t < i; }), (CesiumMath.greaterThan = function (e, t, i) { return e - t > i; }), (CesiumMath.greaterThanOrEquals = function (e, t, i) { return e - t > -i; }); var factorials = [1]; (CesiumMath.factorial = function (e) { var t = factorials.length; if (e >= t) for (var i = factorials[t - 1], r = t; r <= e; r++) { var n = i * r; factorials.push(n), (i = n); } return factorials[e]; }), (CesiumMath.incrementWrap = function (e, t, i) { return (i = defaultValue(i, 0)), ++e > t && (e = i), e; }), (CesiumMath.isPowerOfTwo = function (e) { return 0 !== e && 0 == (e & (e - 1)); }), (CesiumMath.nextPowerOfTwo = function (e) { return --e, (e |= e >> 1), (e |= e >> 2), (e |= e >> 4), (e |= e >> 8), (e |= e >> 16), ++e; }), (CesiumMath.previousPowerOfTwo = function (e) { return ( (e |= e >> 1), (e |= e >> 2), (e |= e >> 4), (e |= e >> 8), (e |= e >> 16), (e = ((e |= e >> 32) >>> 0) - (e >>> 1)) ); }), (CesiumMath.clamp = function (e, t, i) { return e < t ? t : e > i ? i : e; }); var randomNumberGenerator = new mersenneTwister(); function Cartesian3(e, t, i) { (this.x = defaultValue(e, 0)), (this.y = defaultValue(t, 0)), (this.z = defaultValue(i, 0)); } (CesiumMath.setRandomNumberSeed = function (e) { randomNumberGenerator = new mersenneTwister(e); }), (CesiumMath.nextRandomNumber = function () { return randomNumberGenerator.random(); }), (CesiumMath.randomBetween = function (e, t) { return CesiumMath.nextRandomNumber() * (t - e) + e; }), (CesiumMath.acosClamped = function (e) { return Math.acos(CesiumMath.clamp(e, -1, 1)); }), (CesiumMath.asinClamped = function (e) { return Math.asin(CesiumMath.clamp(e, -1, 1)); }), (CesiumMath.chordLength = function (e, t) { return 2 * t * Math.sin(0.5 * e); }), (CesiumMath.logBase = function (e, t) { return Math.log(e) / Math.log(t); }), (CesiumMath.cbrt = defaultValue(Math.cbrt, function (e) { var t = Math.pow(Math.abs(e), 1 / 3); return e < 0 ? -t : t; })), (CesiumMath.log2 = defaultValue(Math.log2, function (e) { return Math.log(e) * Math.LOG2E; })), (CesiumMath.fog = function (e, t) { var i = e * t; return 1 - Math.exp(-i * i); }), (CesiumMath.fastApproximateAtan = function (e) { return e * (-0.1784 * Math.abs(e) - 0.0663 * e * e + 1.0301); }), (CesiumMath.fastApproximateAtan2 = function (e, t) { var i, r, n = Math.abs(e); (i = Math.abs(t)), (r = Math.max(n, i)); var a = (i = Math.min(n, i)) / r; return ( (n = CesiumMath.fastApproximateAtan(a)), (n = Math.abs(t) > Math.abs(e) ? CesiumMath.PI_OVER_TWO - n : n), (n = e < 0 ? CesiumMath.PI - n : n), (n = t < 0 ? -n : n) ); }), (Cartesian3.fromSpherical = function (e, t) { defined(t) || (t = new Cartesian3()); var i = e.clock, r = e.cone, n = defaultValue(e.magnitude, 1), a = n * Math.sin(r); return (t.x = a * Math.cos(i)), (t.y = a * Math.sin(i)), (t.z = n * Math.cos(r)), t; }), (Cartesian3.fromElements = function (e, t, i, r) { return defined(r) ? ((r.x = e), (r.y = t), (r.z = i), r) : new Cartesian3(e, t, i); }), (Cartesian3.clone = function (e, t) { if (defined(e)) return defined(t) ? ((t.x = e.x), (t.y = e.y), (t.z = e.z), t) : new Cartesian3(e.x, e.y, e.z); }), (Cartesian3.fromCartesian4 = Cartesian3.clone), (Cartesian3.packedLength = 3), (Cartesian3.pack = function (e, t, i) { return (i = defaultValue(i, 0)), (t[i++] = e.x), (t[i++] = e.y), (t[i] = e.z), t; }), (Cartesian3.unpack = function (e, t, i) { return ( (t = defaultValue(t, 0)), defined(i) || (i = new Cartesian3()), (i.x = e[t++]), (i.y = e[t++]), (i.z = e[t]), i ); }), (Cartesian3.packArray = function (e, t) { var i = e.length, r = 3 * i; if (defined(t)) { if (!Array.isArray(t) && t.length !== r) throw new DeveloperError( 'If result is a typed array, it must have exactly array.length * 3 elements' ); t.length !== r && (t.length = r); } else t = new Array(r); for (var n = 0; n < i; ++n) Cartesian3.pack(e[n], t, 3 * n); return t; }), (Cartesian3.unpackArray = function (e, t) { var i = e.length; defined(t) ? (t.length = i / 3) : (t = new Array(i / 3)); for (var r = 0; r < i; r += 3) { var n = r / 3; t[n] = Cartesian3.unpack(e, r, t[n]); } return t; }), (Cartesian3.fromArray = Cartesian3.unpack), (Cartesian3.maximumComponent = function (e) { return Math.max(e.x, e.y, e.z); }), (Cartesian3.minimumComponent = function (e) { return Math.min(e.x, e.y, e.z); }), (Cartesian3.minimumByComponent = function (e, t, i) { return (i.x = Math.min(e.x, t.x)), (i.y = Math.min(e.y, t.y)), (i.z = Math.min(e.z, t.z)), i; }), (Cartesian3.maximumByComponent = function (e, t, i) { return (i.x = Math.max(e.x, t.x)), (i.y = Math.max(e.y, t.y)), (i.z = Math.max(e.z, t.z)), i; }), (Cartesian3.magnitudeSquared = function (e) { return e.x * e.x + e.y * e.y + e.z * e.z; }), (Cartesian3.magnitude = function (e) { return Math.sqrt(Cartesian3.magnitudeSquared(e)); }); var distanceScratch$3 = new Cartesian3(); (Cartesian3.distance = function (e, t) { return Cartesian3.subtract(e, t, distanceScratch$3), Cartesian3.magnitude(distanceScratch$3); }), (Cartesian3.distanceSquared = function (e, t) { return ( Cartesian3.subtract(e, t, distanceScratch$3), Cartesian3.magnitudeSquared(distanceScratch$3) ); }), (Cartesian3.normalize = function (e, t) { var i = Cartesian3.magnitude(e); return (t.x = e.x / i), (t.y = e.y / i), (t.z = e.z / i), t; }), (Cartesian3.dot = function (e, t) { return e.x * t.x + e.y * t.y + e.z * t.z; }), (Cartesian3.multiplyComponents = function (e, t, i) { return (i.x = e.x * t.x), (i.y = e.y * t.y), (i.z = e.z * t.z), i; }), (Cartesian3.divideComponents = function (e, t, i) { return (i.x = e.x / t.x), (i.y = e.y / t.y), (i.z = e.z / t.z), i; }), (Cartesian3.add = function (e, t, i) { return (i.x = e.x + t.x), (i.y = e.y + t.y), (i.z = e.z + t.z), i; }), (Cartesian3.subtract = function (e, t, i) { return (i.x = e.x - t.x), (i.y = e.y - t.y), (i.z = e.z - t.z), i; }), (Cartesian3.multiplyByScalar = function (e, t, i) { return (i.x = e.x * t), (i.y = e.y * t), (i.z = e.z * t), i; }), (Cartesian3.divideByScalar = function (e, t, i) { return (i.x = e.x / t), (i.y = e.y / t), (i.z = e.z / t), i; }), (Cartesian3.negate = function (e, t) { return (t.x = -e.x), (t.y = -e.y), (t.z = -e.z), t; }), (Cartesian3.abs = function (e, t) { return (t.x = Math.abs(e.x)), (t.y = Math.abs(e.y)), (t.z = Math.abs(e.z)), t; }); var lerpScratch$3 = new Cartesian3(); Cartesian3.lerp = function (e, t, i, r) { return ( Cartesian3.multiplyByScalar(t, i, lerpScratch$3), (r = Cartesian3.multiplyByScalar(e, 1 - i, r)), Cartesian3.add(lerpScratch$3, r, r) ); }; var angleBetweenScratch$1 = new Cartesian3(), angleBetweenScratch2$1 = new Cartesian3(); Cartesian3.angleBetween = function (e, t) { Cartesian3.normalize(e, angleBetweenScratch$1), Cartesian3.normalize(t, angleBetweenScratch2$1); var i = Cartesian3.dot(angleBetweenScratch$1, angleBetweenScratch2$1), r = Cartesian3.magnitude( Cartesian3.cross(angleBetweenScratch$1, angleBetweenScratch2$1, angleBetweenScratch$1) ); return Math.atan2(r, i); }; var mostOrthogonalAxisScratch$2 = new Cartesian3(); (Cartesian3.mostOrthogonalAxis = function (e, t) { var i = Cartesian3.normalize(e, mostOrthogonalAxisScratch$2); return ( Cartesian3.abs(i, i), (t = i.x <= i.y ? i.x <= i.z ? Cartesian3.clone(Cartesian3.UNIT_X, t) : Cartesian3.clone(Cartesian3.UNIT_Z, t) : i.y <= i.z ? Cartesian3.clone(Cartesian3.UNIT_Y, t) : Cartesian3.clone(Cartesian3.UNIT_Z, t)) ); }), (Cartesian3.projectVector = function (e, t, i) { var r = Cartesian3.dot(e, t) / Cartesian3.dot(t, t); return Cartesian3.multiplyByScalar(t, r, i); }), (Cartesian3.equals = function (e, t) { return e === t || (defined(e) && defined(t) && e.x === t.x && e.y === t.y && e.z === t.z); }), (Cartesian3.equalsArray = function (e, t, i) { return e.x === t[i] && e.y === t[i + 1] && e.z === t[i + 2]; }), (Cartesian3.equalsEpsilon = function (e, t, i, r) { return ( e === t || (defined(e) && defined(t) && CesiumMath.equalsEpsilon(e.x, t.x, i, r) && CesiumMath.equalsEpsilon(e.y, t.y, i, r) && CesiumMath.equalsEpsilon(e.z, t.z, i, r)) ); }), (Cartesian3.cross = function (e, t, i) { var r = e.x, n = e.y, a = e.z, o = t.x, s = t.y, l = t.z, c = n * l - a * s, u = a * o - r * l, d = r * s - n * o; return (i.x = c), (i.y = u), (i.z = d), i; }), (Cartesian3.midpoint = function (e, t, i) { return (i.x = 0.5 * (e.x + t.x)), (i.y = 0.5 * (e.y + t.y)), (i.z = 0.5 * (e.z + t.z)), i; }), (Cartesian3.fromDegrees = function (e, t, i, r, n) { return ( (e = CesiumMath.toRadians(e)), (t = CesiumMath.toRadians(t)), Cartesian3.fromRadians(e, t, i, r, n) ); }); var scratchN = new Cartesian3(), scratchK = new Cartesian3(), wgs84RadiiSquared = new Cartesian3(40680631590769, 40680631590769, 40408299984661.445); (Cartesian3.fromRadians = function (e, t, i, r, n) { i = defaultValue(i, 0); var a = defined(r) ? r.radiiSquared : wgs84RadiiSquared, o = Math.cos(t); (scratchN.x = o * Math.cos(e)), (scratchN.y = o * Math.sin(e)), (scratchN.z = Math.sin(t)), (scratchN = Cartesian3.normalize(scratchN, scratchN)), Cartesian3.multiplyComponents(a, scratchN, scratchK); var s = Math.sqrt(Cartesian3.dot(scratchN, scratchK)); return ( (scratchK = Cartesian3.divideByScalar(scratchK, s, scratchK)), (scratchN = Cartesian3.multiplyByScalar(scratchN, i, scratchN)), defined(n) || (n = new Cartesian3()), Cartesian3.add(scratchK, scratchN, n) ); }), (Cartesian3.fromDegreesArray = function (e, t, i) { var r = e.length; defined(i) ? (i.length = r / 2) : (i = new Array(r / 2)); for (var n = 0; n < r; n += 2) { var a = e[n], o = e[n + 1], s = n / 2; i[s] = Cartesian3.fromDegrees(a, o, 0, t, i[s]); } return i; }), (Cartesian3.fromRadiansArray = function (e, t, i) { var r = e.length; defined(i) ? (i.length = r / 2) : (i = new Array(r / 2)); for (var n = 0; n < r; n += 2) { var a = e[n], o = e[n + 1], s = n / 2; i[s] = Cartesian3.fromRadians(a, o, 0, t, i[s]); } return i; }), (Cartesian3.fromDegreesArrayHeights = function (e, t, i) { var r = e.length; defined(i) ? (i.length = r / 3) : (i = new Array(r / 3)); for (var n = 0; n < r; n += 3) { var a = e[n], o = e[n + 1], s = e[n + 2], l = n / 3; i[l] = Cartesian3.fromDegrees(a, o, s, t, i[l]); } return i; }), (Cartesian3.fromRadiansArrayHeights = function (e, t, i) { var r = e.length; defined(i) ? (i.length = r / 3) : (i = new Array(r / 3)); for (var n = 0; n < r; n += 3) { var a = e[n], o = e[n + 1], s = e[n + 2], l = n / 3; i[l] = Cartesian3.fromRadians(a, o, s, t, i[l]); } return i; }), (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 (e) { return Cartesian3.clone(this, e); }), (Cartesian3.prototype.equals = function (e) { return Cartesian3.equals(this, e); }), (Cartesian3.prototype.equalsEpsilon = function (e, t, i) { return Cartesian3.equalsEpsilon(this, e, t, i); }), (Cartesian3.prototype.toString = function () { return '(' + this.x + ', ' + this.y + ', ' + this.z + ')'; }); var scaleToGeodeticSurfaceIntersection = new Cartesian3(), scaleToGeodeticSurfaceGradient = new Cartesian3(); function scaleToGeodeticSurface(e, t, i, r, n) { var a = e.x, o = e.y, s = e.z, l = t.x, c = t.y, u = t.z, d = a * a * l * l, h = o * o * c * c, p = s * s * u * u, f = d + h + p, m = Math.sqrt(1 / f), g = Cartesian3.multiplyByScalar(e, m, scaleToGeodeticSurfaceIntersection); if (f < r) return isFinite(m) ? Cartesian3.clone(g, n) : void 0; var _ = i.x, y = i.y, v = i.z, C = scaleToGeodeticSurfaceGradient; (C.x = g.x * _ * 2), (C.y = g.y * y * 2), (C.z = g.z * v * 2); var T, S, A, x, E, b, P, D = ((1 - m) * Cartesian3.magnitude(e)) / (0.5 * Cartesian3.magnitude(C)), w = 0; do { w = (T = d * (E = (S = 1 / (1 + (D -= w) * _)) * S) + h * (b = (A = 1 / (1 + D * y)) * A) + p * (P = (x = 1 / (1 + D * v)) * x) - 1) / (-2 * (d * (E * S) * _ + h * (b * A) * y + p * (P * x) * v)); } while (Math.abs(T) > CesiumMath.EPSILON12); return defined(n) ? ((n.x = a * S), (n.y = o * A), (n.z = s * x), n) : new Cartesian3(a * S, o * A, s * x); } function Cartographic(e, t, i) { (this.longitude = defaultValue(e, 0)), (this.latitude = defaultValue(t, 0)), (this.height = defaultValue(i, 0)); } (Cartographic.fromRadians = function (e, t, i, r) { return ( (i = defaultValue(i, 0)), defined(r) ? ((r.longitude = e), (r.latitude = t), (r.height = i), r) : new Cartographic(e, t, i) ); }), (Cartographic.fromDegrees = function (e, t, i, r) { return ( (e = CesiumMath.toRadians(e)), (t = CesiumMath.toRadians(t)), Cartographic.fromRadians(e, t, i, r) ); }); var cartesianToCartographicN$1 = new Cartesian3(), cartesianToCartographicP$1 = new Cartesian3(), cartesianToCartographicH$1 = new Cartesian3(), wgs84OneOverRadii = new Cartesian3(1 / 6378137, 1 / 6378137, 1 / 6356752.314245179), wgs84OneOverRadiiSquared = new Cartesian3( 1 / 40680631590769, 1 / 40680631590769, 1 / 40408299984661.445 ), wgs84CenterToleranceSquared = CesiumMath.EPSILON1; function initialize$h(e, t, i, r) { (t = defaultValue(t, 0)), (i = defaultValue(i, 0)), (r = defaultValue(r, 0)), (e._radii = new Cartesian3(t, i, r)), (e._radiiSquared = new Cartesian3(t * t, i * i, r * r)), (e._radiiToTheFourth = new Cartesian3(t * t * t * t, i * i * i * i, r * r * r * r)), (e._oneOverRadii = new Cartesian3( 0 === t ? 0 : 1 / t, 0 === i ? 0 : 1 / i, 0 === r ? 0 : 1 / r )), (e._oneOverRadiiSquared = new Cartesian3( 0 === t ? 0 : 1 / (t * t), 0 === i ? 0 : 1 / (i * i), 0 === r ? 0 : 1 / (r * r) )), (e._minimumRadius = Math.min(t, i, r)), (e._maximumRadius = Math.max(t, i, r)), (e._centerToleranceSquared = CesiumMath.EPSILON1), 0 !== e._radiiSquared.z && (e._squaredXOverSquaredZ = e._radiiSquared.x / e._radiiSquared.z); } function Ellipsoid(e, t, i) { (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$h(this, e, t, i); } (Cartographic.fromCartesian = function (e, t, i) { var r = defined(t) ? t.oneOverRadii : wgs84OneOverRadii, n = defined(t) ? t.oneOverRadiiSquared : wgs84OneOverRadiiSquared, a = scaleToGeodeticSurface( e, r, n, defined(t) ? t._centerToleranceSquared : wgs84CenterToleranceSquared, cartesianToCartographicP$1 ); if (defined(a)) { var o = Cartesian3.multiplyComponents(a, n, cartesianToCartographicN$1); o = Cartesian3.normalize(o, o); var s = Cartesian3.subtract(e, a, cartesianToCartographicH$1), l = Math.atan2(o.y, o.x), c = Math.asin(o.z), u = CesiumMath.sign(Cartesian3.dot(s, e)) * Cartesian3.magnitude(s); return defined(i) ? ((i.longitude = l), (i.latitude = c), (i.height = u), i) : new Cartographic(l, c, u); } }), (Cartographic.toCartesian = function (e, t, i) { return Cartesian3.fromRadians(e.longitude, e.latitude, e.height, t, i); }), (Cartographic.clone = function (e, t) { if (defined(e)) return defined(t) ? ((t.longitude = e.longitude), (t.latitude = e.latitude), (t.height = e.height), t) : new Cartographic(e.longitude, e.latitude, e.height); }), (Cartographic.equals = function (e, t) { return ( e === t || (defined(e) && defined(t) && e.longitude === t.longitude && e.latitude === t.latitude && e.height === t.height) ); }), (Cartographic.equalsEpsilon = function (e, t, i) { return ( (i = defaultValue(i, 0)), e === t || (defined(e) && defined(t) && Math.abs(e.longitude - t.longitude) <= i && Math.abs(e.latitude - t.latitude) <= i && Math.abs(e.height - t.height) <= i) ); }), (Cartographic.ZERO = Object.freeze(new Cartographic(0, 0, 0))), (Cartographic.prototype.clone = function (e) { return Cartographic.clone(this, e); }), (Cartographic.prototype.equals = function (e) { return Cartographic.equals(this, e); }), (Cartographic.prototype.equalsEpsilon = function (e, t) { return Cartographic.equalsEpsilon(this, e, t); }), (Cartographic.prototype.toString = function () { return '(' + this.longitude + ', ' + this.latitude + ', ' + this.height + ')'; }), 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 (e, t) { if (defined(e)) { var i = e._radii; return defined(t) ? (Cartesian3.clone(i, t._radii), Cartesian3.clone(e._radiiSquared, t._radiiSquared), Cartesian3.clone(e._radiiToTheFourth, t._radiiToTheFourth), Cartesian3.clone(e._oneOverRadii, t._oneOverRadii), Cartesian3.clone(e._oneOverRadiiSquared, t._oneOverRadiiSquared), (t._minimumRadius = e._minimumRadius), (t._maximumRadius = e._maximumRadius), (t._centerToleranceSquared = e._centerToleranceSquared), t) : new Ellipsoid(i.x, i.y, i.z); } }), (Ellipsoid.fromCartesian3 = function (e, t) { return ( defined(t) || (t = new Ellipsoid()), defined(e) ? (initialize$h(t, e.x, e.y, e.z), t) : t ); }), (Ellipsoid.WGS84 = Object.freeze(new Ellipsoid(6378137, 6378137, 6356752.314245179))), (Ellipsoid.UNIT_SPHERE = Object.freeze(new Ellipsoid(1, 1, 1))), (Ellipsoid.MOON = Object.freeze( new Ellipsoid(CesiumMath.LUNAR_RADIUS, CesiumMath.LUNAR_RADIUS, CesiumMath.LUNAR_RADIUS) )), (Ellipsoid.prototype.clone = function (e) { return Ellipsoid.clone(this, e); }), (Ellipsoid.packedLength = Cartesian3.packedLength), (Ellipsoid.pack = function (e, t, i) { return (i = defaultValue(i, 0)), Cartesian3.pack(e._radii, t, i), t; }), (Ellipsoid.unpack = function (e, t, i) { t = defaultValue(t, 0); var r = Cartesian3.unpack(e, t); return Ellipsoid.fromCartesian3(r, i); }), (Ellipsoid.prototype.geocentricSurfaceNormal = Cartesian3.normalize), (Ellipsoid.prototype.geodeticSurfaceNormalCartographic = function (e, t) { var i = e.longitude, r = e.latitude, n = Math.cos(r), a = n * Math.cos(i), o = n * Math.sin(i), s = Math.sin(r); return ( defined(t) || (t = new Cartesian3()), (t.x = a), (t.y = o), (t.z = s), Cartesian3.normalize(t, t) ); }), (Ellipsoid.prototype.geodeticSurfaceNormal = function (e, t) { if (!Cartesian3.equalsEpsilon(e, Cartesian3.ZERO, CesiumMath.EPSILON14)) return ( defined(t) || (t = new Cartesian3()), (t = Cartesian3.multiplyComponents(e, this._oneOverRadiiSquared, t)), Cartesian3.normalize(t, t) ); }); var cartographicToCartesianNormal = new Cartesian3(), cartographicToCartesianK = new Cartesian3(); (Ellipsoid.prototype.cartographicToCartesian = function (e, t) { var i = cartographicToCartesianNormal, r = cartographicToCartesianK; this.geodeticSurfaceNormalCartographic(e, i), Cartesian3.multiplyComponents(this._radiiSquared, i, r); var n = Math.sqrt(Cartesian3.dot(i, r)); return ( Cartesian3.divideByScalar(r, n, r), Cartesian3.multiplyByScalar(i, e.height, i), defined(t) || (t = new Cartesian3()), Cartesian3.add(r, i, t) ); }), (Ellipsoid.prototype.cartographicArrayToCartesianArray = function (e, t) { var i = e.length; defined(t) ? (t.length = i) : (t = new Array(i)); for (var r = 0; r < i; r++) t[r] = this.cartographicToCartesian(e[r], t[r]); return t; }); var cartesianToCartographicN = new Cartesian3(), cartesianToCartographicP = new Cartesian3(), cartesianToCartographicH = new Cartesian3(); (Ellipsoid.prototype.cartesianToCartographic = function (e, t) { var i = this.scaleToGeodeticSurface(e, cartesianToCartographicP); if (defined(i)) { var r = this.geodeticSurfaceNormal(i, cartesianToCartographicN), n = Cartesian3.subtract(e, i, cartesianToCartographicH), a = Math.atan2(r.y, r.x), o = Math.asin(r.z), s = CesiumMath.sign(Cartesian3.dot(n, e)) * Cartesian3.magnitude(n); return defined(t) ? ((t.longitude = a), (t.latitude = o), (t.height = s), t) : new Cartographic(a, o, s); } }), (Ellipsoid.prototype.cartesianArrayToCartographicArray = function (e, t) { var i = e.length; defined(t) ? (t.length = i) : (t = new Array(i)); for (var r = 0; r < i; ++r) t[r] = this.cartesianToCartographic(e[r], t[r]); return t; }), (Ellipsoid.prototype.scaleToGeodeticSurface = function (e, t) { return scaleToGeodeticSurface( e, this._oneOverRadii, this._oneOverRadiiSquared, this._centerToleranceSquared, t ); }), (Ellipsoid.prototype.scaleToGeocentricSurface = function (e, t) { defined(t) || (t = new Cartesian3()); var i = e.x, r = e.y, n = e.z, a = this._oneOverRadiiSquared, o = 1 / Math.sqrt(i * i * a.x + r * r * a.y + n * n * a.z); return Cartesian3.multiplyByScalar(e, o, t); }), (Ellipsoid.prototype.transformPositionToScaledSpace = function (e, t) { return ( defined(t) || (t = new Cartesian3()), Cartesian3.multiplyComponents(e, this._oneOverRadii, t) ); }), (Ellipsoid.prototype.transformPositionFromScaledSpace = function (e, t) { return defined(t) || (t = new Cartesian3()), Cartesian3.multiplyComponents(e, this._radii, t); }), (Ellipsoid.prototype.equals = function (e) { return this === e || (defined(e) && Cartesian3.equals(this._radii, e._radii)); }), (Ellipsoid.prototype.toString = function () { return this._radii.toString(); }), (Ellipsoid.prototype.getSurfaceNormalIntersectionWithZAxis = function (e, t, i) { t = defaultValue(t, 0); var r = this._squaredXOverSquaredZ; if ( (defined(i) || (i = new Cartesian3()), (i.x = 0), (i.y = 0), (i.z = e.z * (1 - r)), !(Math.abs(i.z) >= this._radii.z - t)) ) return i; }); var abscissas = [ 0.14887433898163, 0.43339539412925, 0.67940956829902, 0.86506336668898, 0.97390652851717, 0, ], weights = [ 0.29552422471475, 0.26926671930999, 0.21908636251598, 0.14945134915058, 0.066671344308684, 0, ]; function gaussLegendreQuadrature(e, t, i) { for (var r = 0.5 * (t + e), n = 0.5 * (t - e), a = 0, o = 0; o < 5; o++) { var s = n * abscissas[o]; a += weights[o] * (i(r + s) + i(r - s)); } return (a *= n); } function GeographicProjection(e) { (this._ellipsoid = defaultValue(e, Ellipsoid.WGS84)), (this._semimajorAxis = this._ellipsoid.maximumRadius), (this._oneOverSemimajorAxis = 1 / this._semimajorAxis); } (Ellipsoid.prototype.surfaceArea = function (e) { for (var t = e.west, i = e.east, r = e.south, n = e.north; i < t; ) i += CesiumMath.TWO_PI; var a = this._radiiSquared, o = a.x, s = a.y, l = a.z, c = o * s; return gaussLegendreQuadrature(r, n, function (e) { var r = Math.cos(e), n = Math.sin(e); return ( Math.cos(e) * gaussLegendreQuadrature(t, i, function (e) { var t = Math.cos(e), i = Math.sin(e); return Math.sqrt(c * n * n + l * (s * t * t + o * i * i) * r * r); }) ); }); }), Object.defineProperties(GeographicProjection.prototype, { ellipsoid: { get: function () { return this._ellipsoid; }, }, }), (GeographicProjection.prototype.project = function (e, t) { var i = this._semimajorAxis, r = e.longitude * i, n = e.latitude * i, a = e.height; return defined(t) ? ((t.x = r), (t.y = n), (t.z = a), t) : new Cartesian3(r, n, a); }), (GeographicProjection.prototype.unproject = function (e, t) { var i = this._oneOverSemimajorAxis, r = e.x * i, n = e.y * i, a = e.z; return defined(t) ? ((t.longitude = r), (t.latitude = n), (t.height = a), t) : new Cartographic(r, n, a); }); var Intersect = { OUTSIDE: -1, INTERSECTING: 0, INSIDE: 1 }, Intersect$1 = Object.freeze(Intersect); function Interval(e, t) { (this.start = defaultValue(e, 0)), (this.stop = defaultValue(t, 0)); } function Matrix3(e, t, i, r, n, a, o, s, l) { (this[0] = defaultValue(e, 0)), (this[1] = defaultValue(r, 0)), (this[2] = defaultValue(o, 0)), (this[3] = defaultValue(t, 0)), (this[4] = defaultValue(n, 0)), (this[5] = defaultValue(s, 0)), (this[6] = defaultValue(i, 0)), (this[7] = defaultValue(a, 0)), (this[8] = defaultValue(l, 0)); } (Matrix3.packedLength = 9), (Matrix3.pack = function (e, t, i) { return ( (i = defaultValue(i, 0)), (t[i++] = e[0]), (t[i++] = e[1]), (t[i++] = e[2]), (t[i++] = e[3]), (t[i++] = e[4]), (t[i++] = e[5]), (t[i++] = e[6]), (t[i++] = e[7]), (t[i++] = e[8]), t ); }), (Matrix3.unpack = function (e, t, i) { return ( (t = defaultValue(t, 0)), defined(i) || (i = new Matrix3()), (i[0] = e[t++]), (i[1] = e[t++]), (i[2] = e[t++]), (i[3] = e[t++]), (i[4] = e[t++]), (i[5] = e[t++]), (i[6] = e[t++]), (i[7] = e[t++]), (i[8] = e[t++]), i ); }), (Matrix3.clone = function (e, t) { if (defined(e)) return defined(t) ? ((t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), (t[3] = e[3]), (t[4] = e[4]), (t[5] = e[5]), (t[6] = e[6]), (t[7] = e[7]), (t[8] = e[8]), t) : new Matrix3(e[0], e[3], e[6], e[1], e[4], e[7], e[2], e[5], e[8]); }), (Matrix3.fromArray = function (e, t, i) { return ( (t = defaultValue(t, 0)), defined(i) || (i = new Matrix3()), (i[0] = e[t]), (i[1] = e[t + 1]), (i[2] = e[t + 2]), (i[3] = e[t + 3]), (i[4] = e[t + 4]), (i[5] = e[t + 5]), (i[6] = e[t + 6]), (i[7] = e[t + 7]), (i[8] = e[t + 8]), i ); }), (Matrix3.fromColumnMajorArray = function (e, t) { return Matrix3.clone(e, t); }), (Matrix3.fromRowMajorArray = function (e, t) { return defined(t) ? ((t[0] = e[0]), (t[1] = e[3]), (t[2] = e[6]), (t[3] = e[1]), (t[4] = e[4]), (t[5] = e[7]), (t[6] = e[2]), (t[7] = e[5]), (t[8] = e[8]), t) : new Matrix3(e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8]); }), (Matrix3.fromQuaternion = function (e, t) { var i = e.x * e.x, r = e.x * e.y, n = e.x * e.z, a = e.x * e.w, o = e.y * e.y, s = e.y * e.z, l = e.y * e.w, c = e.z * e.z, u = e.z * e.w, d = e.w * e.w, h = i - o - c + d, p = 2 * (r - u), f = 2 * (n + l), m = 2 * (r + u), g = -i + o - c + d, _ = 2 * (s - a), y = 2 * (n - l), v = 2 * (s + a), C = -i - o + c + d; return defined(t) ? ((t[0] = h), (t[1] = m), (t[2] = y), (t[3] = p), (t[4] = g), (t[5] = v), (t[6] = f), (t[7] = _), (t[8] = C), t) : new Matrix3(h, p, f, m, g, _, y, v, C); }), (Matrix3.fromHeadingPitchRoll = function (e, t) { var i = Math.cos(-e.pitch), r = Math.cos(-e.heading), n = Math.cos(e.roll), a = Math.sin(-e.pitch), o = Math.sin(-e.heading), s = Math.sin(e.roll), l = i * r, c = -n * o + s * a * r, u = s * o + n * a * r, d = i * o, h = n * r + s * a * o, p = -s * r + n * a * o, f = -a, m = s * i, g = n * i; return defined(t) ? ((t[0] = l), (t[1] = d), (t[2] = f), (t[3] = c), (t[4] = h), (t[5] = m), (t[6] = u), (t[7] = p), (t[8] = g), t) : new Matrix3(l, c, u, d, h, p, f, m, g); }), (Matrix3.fromScale = function (e, t) { return defined(t) ? ((t[0] = e.x), (t[1] = 0), (t[2] = 0), (t[3] = 0), (t[4] = e.y), (t[5] = 0), (t[6] = 0), (t[7] = 0), (t[8] = e.z), t) : new Matrix3(e.x, 0, 0, 0, e.y, 0, 0, 0, e.z); }), (Matrix3.fromUniformScale = function (e, t) { return defined(t) ? ((t[0] = e), (t[1] = 0), (t[2] = 0), (t[3] = 0), (t[4] = e), (t[5] = 0), (t[6] = 0), (t[7] = 0), (t[8] = e), t) : new Matrix3(e, 0, 0, 0, e, 0, 0, 0, e); }), (Matrix3.fromCrossProduct = function (e, t) { return defined(t) ? ((t[0] = 0), (t[1] = e.z), (t[2] = -e.y), (t[3] = -e.z), (t[4] = 0), (t[5] = e.x), (t[6] = e.y), (t[7] = -e.x), (t[8] = 0), t) : new Matrix3(0, -e.z, e.y, e.z, 0, -e.x, -e.y, e.x, 0); }), (Matrix3.fromRotationX = function (e, t) { var i = Math.cos(e), r = Math.sin(e); return defined(t) ? ((t[0] = 1), (t[1] = 0), (t[2] = 0), (t[3] = 0), (t[4] = i), (t[5] = r), (t[6] = 0), (t[7] = -r), (t[8] = i), t) : new Matrix3(1, 0, 0, 0, i, -r, 0, r, i); }), (Matrix3.fromRotationY = function (e, t) { var i = Math.cos(e), r = Math.sin(e); return defined(t) ? ((t[0] = i), (t[1] = 0), (t[2] = -r), (t[3] = 0), (t[4] = 1), (t[5] = 0), (t[6] = r), (t[7] = 0), (t[8] = i), t) : new Matrix3(i, 0, r, 0, 1, 0, -r, 0, i); }), (Matrix3.fromRotationZ = function (e, t) { var i = Math.cos(e), r = Math.sin(e); return defined(t) ? ((t[0] = i), (t[1] = r), (t[2] = 0), (t[3] = -r), (t[4] = i), (t[5] = 0), (t[6] = 0), (t[7] = 0), (t[8] = 1), t) : new Matrix3(i, -r, 0, r, i, 0, 0, 0, 1); }), (Matrix3.toArray = function (e, t) { return defined(t) ? ((t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), (t[3] = e[3]), (t[4] = e[4]), (t[5] = e[5]), (t[6] = e[6]), (t[7] = e[7]), (t[8] = e[8]), t) : [e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8]]; }), (Matrix3.getElementIndex = function (e, t) { return 3 * e + t; }), (Matrix3.getColumn = function (e, t, i) { var r = 3 * t, n = e[r], a = e[r + 1], o = e[r + 2]; return (i.x = n), (i.y = a), (i.z = o), i; }), (Matrix3.setColumn = function (e, t, i, r) { var n = 3 * t; return ((r = Matrix3.clone(e, r))[n] = i.x), (r[n + 1] = i.y), (r[n + 2] = i.z), r; }), (Matrix3.getRow = function (e, t, i) { var r = e[t], n = e[t + 3], a = e[t + 6]; return (i.x = r), (i.y = n), (i.z = a), i; }), (Matrix3.setRow = function (e, t, i, r) { return ((r = Matrix3.clone(e, r))[t] = i.x), (r[t + 3] = i.y), (r[t + 6] = i.z), r; }); var scratchColumn$2 = new Cartesian3(); Matrix3.getScale = function (e, t) { return ( (t.x = Cartesian3.magnitude(Cartesian3.fromElements(e[0], e[1], e[2], scratchColumn$2))), (t.y = Cartesian3.magnitude(Cartesian3.fromElements(e[3], e[4], e[5], scratchColumn$2))), (t.z = Cartesian3.magnitude(Cartesian3.fromElements(e[6], e[7], e[8], scratchColumn$2))), t ); }; var scratchScale$8 = new Cartesian3(); (Matrix3.getMaximumScale = function (e) { return Matrix3.getScale(e, scratchScale$8), Cartesian3.maximumComponent(scratchScale$8); }), (Matrix3.multiply = function (e, t, i) { var r = e[0] * t[0] + e[3] * t[1] + e[6] * t[2], n = e[1] * t[0] + e[4] * t[1] + e[7] * t[2], a = e[2] * t[0] + e[5] * t[1] + e[8] * t[2], o = e[0] * t[3] + e[3] * t[4] + e[6] * t[5], s = e[1] * t[3] + e[4] * t[4] + e[7] * t[5], l = e[2] * t[3] + e[5] * t[4] + e[8] * t[5], c = e[0] * t[6] + e[3] * t[7] + e[6] * t[8], u = e[1] * t[6] + e[4] * t[7] + e[7] * t[8], d = e[2] * t[6] + e[5] * t[7] + e[8] * t[8]; return ( (i[0] = r), (i[1] = n), (i[2] = a), (i[3] = o), (i[4] = s), (i[5] = l), (i[6] = c), (i[7] = u), (i[8] = d), i ); }), (Matrix3.add = function (e, t, i) { return ( (i[0] = e[0] + t[0]), (i[1] = e[1] + t[1]), (i[2] = e[2] + t[2]), (i[3] = e[3] + t[3]), (i[4] = e[4] + t[4]), (i[5] = e[5] + t[5]), (i[6] = e[6] + t[6]), (i[7] = e[7] + t[7]), (i[8] = e[8] + t[8]), i ); }), (Matrix3.subtract = function (e, t, i) { return ( (i[0] = e[0] - t[0]), (i[1] = e[1] - t[1]), (i[2] = e[2] - t[2]), (i[3] = e[3] - t[3]), (i[4] = e[4] - t[4]), (i[5] = e[5] - t[5]), (i[6] = e[6] - t[6]), (i[7] = e[7] - t[7]), (i[8] = e[8] - t[8]), i ); }), (Matrix3.multiplyByVector = function (e, t, i) { var r = t.x, n = t.y, a = t.z, o = e[0] * r + e[3] * n + e[6] * a, s = e[1] * r + e[4] * n + e[7] * a, l = e[2] * r + e[5] * n + e[8] * a; return (i.x = o), (i.y = s), (i.z = l), i; }), (Matrix3.multiplyByScalar = function (e, t, i) { return ( (i[0] = e[0] * t), (i[1] = e[1] * t), (i[2] = e[2] * t), (i[3] = e[3] * t), (i[4] = e[4] * t), (i[5] = e[5] * t), (i[6] = e[6] * t), (i[7] = e[7] * t), (i[8] = e[8] * t), i ); }), (Matrix3.multiplyByScale = function (e, t, i) { return ( (i[0] = e[0] * t.x), (i[1] = e[1] * t.x), (i[2] = e[2] * t.x), (i[3] = e[3] * t.y), (i[4] = e[4] * t.y), (i[5] = e[5] * t.y), (i[6] = e[6] * t.z), (i[7] = e[7] * t.z), (i[8] = e[8] * t.z), i ); }), (Matrix3.negate = function (e, t) { return ( (t[0] = -e[0]), (t[1] = -e[1]), (t[2] = -e[2]), (t[3] = -e[3]), (t[4] = -e[4]), (t[5] = -e[5]), (t[6] = -e[6]), (t[7] = -e[7]), (t[8] = -e[8]), t ); }), (Matrix3.transpose = function (e, t) { var i = e[0], r = e[3], n = e[6], a = e[1], o = e[4], s = e[7], l = e[2], c = e[5], u = e[8]; return ( (t[0] = i), (t[1] = r), (t[2] = n), (t[3] = a), (t[4] = o), (t[5] = s), (t[6] = l), (t[7] = c), (t[8] = u), t ); }); var UNIT = new Cartesian3(1, 1, 1); function computeFrobeniusNorm(e) { for (var t = 0, i = 0; i < 9; ++i) { var r = e[i]; t += r * r; } return Math.sqrt(t); } Matrix3.getRotation = function (e, t) { var i = Cartesian3.divideComponents(UNIT, Matrix3.getScale(e, scratchScale$8), scratchScale$8); return (t = Matrix3.multiplyByScale(e, i, t)); }; var rowVal = [1, 0, 0], colVal = [2, 2, 1]; function offDiagonalFrobeniusNorm(e) { for (var t = 0, i = 0; i < 3; ++i) { var r = e[Matrix3.getElementIndex(colVal[i], rowVal[i])]; t += 2 * r * r; } return Math.sqrt(t); } function shurDecomposition(e, t) { for (var i = CesiumMath.EPSILON15, r = 0, n = 1, a = 0; a < 3; ++a) { var o = Math.abs(e[Matrix3.getElementIndex(colVal[a], rowVal[a])]); o > r && ((n = a), (r = o)); } var s = 1, l = 0, c = rowVal[n], u = colVal[n]; if (Math.abs(e[Matrix3.getElementIndex(u, c)]) > i) { var d, h = (e[Matrix3.getElementIndex(u, u)] - e[Matrix3.getElementIndex(c, c)]) / 2 / e[Matrix3.getElementIndex(u, c)]; l = (d = h < 0 ? -1 / (-h + Math.sqrt(1 + h * h)) : 1 / (h + Math.sqrt(1 + h * h))) * (s = 1 / Math.sqrt(1 + d * d)); } return ( ((t = Matrix3.clone(Matrix3.IDENTITY, t))[Matrix3.getElementIndex(c, c)] = t[ Matrix3.getElementIndex(u, u) ] = s), (t[Matrix3.getElementIndex(u, c)] = l), (t[Matrix3.getElementIndex(c, u)] = -l), t ); } var jMatrix = new Matrix3(), jMatrixTranspose = new Matrix3(); (Matrix3.computeEigenDecomposition = function (e, t) { var i = CesiumMath.EPSILON20, r = 0, n = 0; defined(t) || (t = {}); for ( var a = (t.unitary = Matrix3.clone(Matrix3.IDENTITY, t.unitary)), o = (t.diagonal = Matrix3.clone(e, t.diagonal)), s = i * computeFrobeniusNorm(o); n < 10 && offDiagonalFrobeniusNorm(o) > s; ) shurDecomposition(o, jMatrix), Matrix3.transpose(jMatrix, jMatrixTranspose), Matrix3.multiply(o, jMatrix, o), Matrix3.multiply(jMatrixTranspose, o, o), Matrix3.multiply(a, jMatrix, a), ++r > 2 && (++n, (r = 0)); return t; }), (Matrix3.abs = function (e, t) { return ( (t[0] = Math.abs(e[0])), (t[1] = Math.abs(e[1])), (t[2] = Math.abs(e[2])), (t[3] = Math.abs(e[3])), (t[4] = Math.abs(e[4])), (t[5] = Math.abs(e[5])), (t[6] = Math.abs(e[6])), (t[7] = Math.abs(e[7])), (t[8] = Math.abs(e[8])), t ); }), (Matrix3.determinant = function (e) { var t = e[0], i = e[3], r = e[6], n = e[1], a = e[4], o = e[7], s = e[2], l = e[5], c = e[8]; return t * (a * c - l * o) + n * (l * r - i * c) + s * (i * o - a * r); }), (Matrix3.inverse = function (e, t) { var i = e[0], r = e[1], n = e[2], a = e[3], o = e[4], s = e[5], l = e[6], c = e[7], u = e[8], d = Matrix3.determinant(e); (t[0] = o * u - c * s), (t[1] = c * n - r * u), (t[2] = r * s - o * n), (t[3] = l * s - a * u), (t[4] = i * u - l * n), (t[5] = a * n - i * s), (t[6] = a * c - l * o), (t[7] = l * r - i * c), (t[8] = i * o - a * r); var h = 1 / d; return Matrix3.multiplyByScalar(t, h, t); }); var scratchTransposeMatrix$1 = new Matrix3(); function Cartesian4(e, t, i, r) { (this.x = defaultValue(e, 0)), (this.y = defaultValue(t, 0)), (this.z = defaultValue(i, 0)), (this.w = defaultValue(r, 0)); } (Matrix3.inverseTranspose = function (e, t) { return Matrix3.inverse(Matrix3.transpose(e, scratchTransposeMatrix$1), t); }), (Matrix3.equals = function (e, t) { return ( e === t || (defined(e) && defined(t) && e[0] === t[0] && e[1] === t[1] && e[2] === t[2] && e[3] === t[3] && e[4] === t[4] && e[5] === t[5] && e[6] === t[6] && e[7] === t[7] && e[8] === t[8]) ); }), (Matrix3.equalsEpsilon = function (e, t, i) { return ( (i = defaultValue(i, 0)), e === t || (defined(e) && defined(t) && Math.abs(e[0] - t[0]) <= i && Math.abs(e[1] - t[1]) <= i && Math.abs(e[2] - t[2]) <= i && Math.abs(e[3] - t[3]) <= i && Math.abs(e[4] - t[4]) <= i && Math.abs(e[5] - t[5]) <= i && Math.abs(e[6] - t[6]) <= i && Math.abs(e[7] - t[7]) <= i && Math.abs(e[8] - t[8]) <= i) ); }), (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 (e) { return Matrix3.clone(this, e); }), (Matrix3.prototype.equals = function (e) { return Matrix3.equals(this, e); }), (Matrix3.equalsArray = function (e, t, i) { return ( e[0] === t[i] && e[1] === t[i + 1] && e[2] === t[i + 2] && e[3] === t[i + 3] && e[4] === t[i + 4] && e[5] === t[i + 5] && e[6] === t[i + 6] && e[7] === t[i + 7] && e[8] === t[i + 8] ); }), (Matrix3.prototype.equalsEpsilon = function (e, t) { return Matrix3.equalsEpsilon(this, e, t); }), (Matrix3.prototype.toString = function () { return ( '(' + this[0] + ', ' + this[3] + ', ' + this[6] + ')\n(' + this[1] + ', ' + this[4] + ', ' + this[7] + ')\n(' + this[2] + ', ' + this[5] + ', ' + this[8] + ')' ); }), (Cartesian4.fromElements = function (e, t, i, r, n) { return defined(n) ? ((n.x = e), (n.y = t), (n.z = i), (n.w = r), n) : new Cartesian4(e, t, i, r); }), (Cartesian4.fromColor = function (e, t) { return defined(t) ? ((t.x = e.red), (t.y = e.green), (t.z = e.blue), (t.w = e.alpha), t) : new Cartesian4(e.red, e.green, e.blue, e.alpha); }), (Cartesian4.clone = function (e, t) { if (defined(e)) return defined(t) ? ((t.x = e.x), (t.y = e.y), (t.z = e.z), (t.w = e.w), t) : new Cartesian4(e.x, e.y, e.z, e.w); }), (Cartesian4.packedLength = 4), (Cartesian4.pack = function (e, t, i) { return ( (i = defaultValue(i, 0)), (t[i++] = e.x), (t[i++] = e.y), (t[i++] = e.z), (t[i] = e.w), t ); }), (Cartesian4.unpack = function (e, t, i) { return ( (t = defaultValue(t, 0)), defined(i) || (i = new Cartesian4()), (i.x = e[t++]), (i.y = e[t++]), (i.z = e[t++]), (i.w = e[t]), i ); }), (Cartesian4.packArray = function (e, t) { var i = e.length, r = 4 * i; if (defined(t)) { if (!Array.isArray(t) && t.length !== r) throw new DeveloperError( 'If result is a typed array, it must have exactly array.length * 4 elements' ); t.length !== r && (t.length = r); } else t = new Array(r); for (var n = 0; n < i; ++n) Cartesian4.pack(e[n], t, 4 * n); return t; }), (Cartesian4.unpackArray = function (e, t) { var i = e.length; defined(t) ? (t.length = i / 4) : (t = new Array(i / 4)); for (var r = 0; r < i; r += 4) { var n = r / 4; t[n] = Cartesian4.unpack(e, r, t[n]); } return t; }), (Cartesian4.fromArray = Cartesian4.unpack), (Cartesian4.maximumComponent = function (e) { return Math.max(e.x, e.y, e.z, e.w); }), (Cartesian4.minimumComponent = function (e) { return Math.min(e.x, e.y, e.z, e.w); }), (Cartesian4.minimumByComponent = function (e, t, i) { return ( (i.x = Math.min(e.x, t.x)), (i.y = Math.min(e.y, t.y)), (i.z = Math.min(e.z, t.z)), (i.w = Math.min(e.w, t.w)), i ); }), (Cartesian4.maximumByComponent = function (e, t, i) { return ( (i.x = Math.max(e.x, t.x)), (i.y = Math.max(e.y, t.y)), (i.z = Math.max(e.z, t.z)), (i.w = Math.max(e.w, t.w)), i ); }), (Cartesian4.magnitudeSquared = function (e) { return e.x * e.x + e.y * e.y + e.z * e.z + e.w * e.w; }), (Cartesian4.magnitude = function (e) { return Math.sqrt(Cartesian4.magnitudeSquared(e)); }); var distanceScratch$2 = new Cartesian4(); (Cartesian4.distance = function (e, t) { return Cartesian4.subtract(e, t, distanceScratch$2), Cartesian4.magnitude(distanceScratch$2); }), (Cartesian4.distanceSquared = function (e, t) { return ( Cartesian4.subtract(e, t, distanceScratch$2), Cartesian4.magnitudeSquared(distanceScratch$2) ); }), (Cartesian4.normalize = function (e, t) { var i = Cartesian4.magnitude(e); return (t.x = e.x / i), (t.y = e.y / i), (t.z = e.z / i), (t.w = e.w / i), t; }), (Cartesian4.dot = function (e, t) { return e.x * t.x + e.y * t.y + e.z * t.z + e.w * t.w; }), (Cartesian4.multiplyComponents = function (e, t, i) { return (i.x = e.x * t.x), (i.y = e.y * t.y), (i.z = e.z * t.z), (i.w = e.w * t.w), i; }), (Cartesian4.divideComponents = function (e, t, i) { return (i.x = e.x / t.x), (i.y = e.y / t.y), (i.z = e.z / t.z), (i.w = e.w / t.w), i; }), (Cartesian4.add = function (e, t, i) { return (i.x = e.x + t.x), (i.y = e.y + t.y), (i.z = e.z + t.z), (i.w = e.w + t.w), i; }), (Cartesian4.subtract = function (e, t, i) { return (i.x = e.x - t.x), (i.y = e.y - t.y), (i.z = e.z - t.z), (i.w = e.w - t.w), i; }), (Cartesian4.multiplyByScalar = function (e, t, i) { return (i.x = e.x * t), (i.y = e.y * t), (i.z = e.z * t), (i.w = e.w * t), i; }), (Cartesian4.divideByScalar = function (e, t, i) { return (i.x = e.x / t), (i.y = e.y / t), (i.z = e.z / t), (i.w = e.w / t), i; }), (Cartesian4.negate = function (e, t) { return (t.x = -e.x), (t.y = -e.y), (t.z = -e.z), (t.w = -e.w), t; }), (Cartesian4.abs = function (e, t) { return ( (t.x = Math.abs(e.x)), (t.y = Math.abs(e.y)), (t.z = Math.abs(e.z)), (t.w = Math.abs(e.w)), t ); }); var lerpScratch$2 = new Cartesian4(); Cartesian4.lerp = function (e, t, i, r) { return ( Cartesian4.multiplyByScalar(t, i, lerpScratch$2), (r = Cartesian4.multiplyByScalar(e, 1 - i, r)), Cartesian4.add(lerpScratch$2, r, r) ); }; var mostOrthogonalAxisScratch$1 = new Cartesian4(); (Cartesian4.mostOrthogonalAxis = function (e, t) { var i = Cartesian4.normalize(e, mostOrthogonalAxisScratch$1); return ( Cartesian4.abs(i, i), (t = i.x <= i.y ? i.x <= i.z ? i.x <= i.w ? Cartesian4.clone(Cartesian4.UNIT_X, t) : Cartesian4.clone(Cartesian4.UNIT_W, t) : i.z <= i.w ? Cartesian4.clone(Cartesian4.UNIT_Z, t) : Cartesian4.clone(Cartesian4.UNIT_W, t) : i.y <= i.z ? i.y <= i.w ? Cartesian4.clone(Cartesian4.UNIT_Y, t) : Cartesian4.clone(Cartesian4.UNIT_W, t) : i.z <= i.w ? Cartesian4.clone(Cartesian4.UNIT_Z, t) : Cartesian4.clone(Cartesian4.UNIT_W, t)) ); }), (Cartesian4.equals = function (e, t) { return ( e === t || (defined(e) && defined(t) && e.x === t.x && e.y === t.y && e.z === t.z && e.w === t.w) ); }), (Cartesian4.equalsArray = function (e, t, i) { return e.x === t[i] && e.y === t[i + 1] && e.z === t[i + 2] && e.w === t[i + 3]; }), (Cartesian4.equalsEpsilon = function (e, t, i, r) { return ( e === t || (defined(e) && defined(t) && CesiumMath.equalsEpsilon(e.x, t.x, i, r) && CesiumMath.equalsEpsilon(e.y, t.y, i, r) && CesiumMath.equalsEpsilon(e.z, t.z, i, r) && CesiumMath.equalsEpsilon(e.w, t.w, i, r)) ); }), (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 (e) { return Cartesian4.clone(this, e); }), (Cartesian4.prototype.equals = function (e) { return Cartesian4.equals(this, e); }), (Cartesian4.prototype.equalsEpsilon = function (e, t, i) { return Cartesian4.equalsEpsilon(this, e, t, i); }), (Cartesian4.prototype.toString = function () { return '(' + this.x + ', ' + this.y + ', ' + this.z + ', ' + this.w + ')'; }); var scratchF32Array = new Float32Array(1), scratchU8Array = new Uint8Array(scratchF32Array.buffer), testU32 = new Uint32Array([287454020]), testU8 = new Uint8Array(testU32.buffer), littleEndian = 68 === testU8[0]; function RuntimeError(e) { var t; (this.name = 'RuntimeError'), (this.message = e); try { throw new Error(); } catch (e) { t = e.stack; } this.stack = t; } function Matrix4(e, t, i, r, n, a, o, s, l, c, u, d, h, p, f, m) { (this[0] = defaultValue(e, 0)), (this[1] = defaultValue(n, 0)), (this[2] = defaultValue(l, 0)), (this[3] = defaultValue(h, 0)), (this[4] = defaultValue(t, 0)), (this[5] = defaultValue(a, 0)), (this[6] = defaultValue(c, 0)), (this[7] = defaultValue(p, 0)), (this[8] = defaultValue(i, 0)), (this[9] = defaultValue(o, 0)), (this[10] = defaultValue(u, 0)), (this[11] = defaultValue(f, 0)), (this[12] = defaultValue(r, 0)), (this[13] = defaultValue(s, 0)), (this[14] = defaultValue(d, 0)), (this[15] = defaultValue(m, 0)); } (Cartesian4.packFloat = function (e, t) { return ( defined(t) || (t = new Cartesian4()), (scratchF32Array[0] = e), littleEndian ? ((t.x = scratchU8Array[0]), (t.y = scratchU8Array[1]), (t.z = scratchU8Array[2]), (t.w = scratchU8Array[3])) : ((t.x = scratchU8Array[3]), (t.y = scratchU8Array[2]), (t.z = scratchU8Array[1]), (t.w = scratchU8Array[0])), t ); }), (Cartesian4.unpackFloat = function (e) { return ( littleEndian ? ((scratchU8Array[0] = e.x), (scratchU8Array[1] = e.y), (scratchU8Array[2] = e.z), (scratchU8Array[3] = e.w)) : ((scratchU8Array[0] = e.w), (scratchU8Array[1] = e.z), (scratchU8Array[2] = e.y), (scratchU8Array[3] = e.x)), scratchF32Array[0] ); }), defined(Object.create) && ((RuntimeError.prototype = Object.create(Error.prototype)), (RuntimeError.prototype.constructor = RuntimeError)), (RuntimeError.prototype.toString = function () { var e = this.name + ': ' + this.message; return defined(this.stack) && (e += '\n' + this.stack.toString()), e; }), (Matrix4.packedLength = 16), (Matrix4.pack = function (e, t, i) { return ( (i = defaultValue(i, 0)), (t[i++] = e[0]), (t[i++] = e[1]), (t[i++] = e[2]), (t[i++] = e[3]), (t[i++] = e[4]), (t[i++] = e[5]), (t[i++] = e[6]), (t[i++] = e[7]), (t[i++] = e[8]), (t[i++] = e[9]), (t[i++] = e[10]), (t[i++] = e[11]), (t[i++] = e[12]), (t[i++] = e[13]), (t[i++] = e[14]), (t[i] = e[15]), t ); }), (Matrix4.unpack = function (e, t, i) { return ( (t = defaultValue(t, 0)), defined(i) || (i = new Matrix4()), (i[0] = e[t++]), (i[1] = e[t++]), (i[2] = e[t++]), (i[3] = e[t++]), (i[4] = e[t++]), (i[5] = e[t++]), (i[6] = e[t++]), (i[7] = e[t++]), (i[8] = e[t++]), (i[9] = e[t++]), (i[10] = e[t++]), (i[11] = e[t++]), (i[12] = e[t++]), (i[13] = e[t++]), (i[14] = e[t++]), (i[15] = e[t]), i ); }), (Matrix4.clone = function (e, t) { if (defined(e)) return defined(t) ? ((t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), (t[3] = e[3]), (t[4] = e[4]), (t[5] = e[5]), (t[6] = e[6]), (t[7] = e[7]), (t[8] = e[8]), (t[9] = e[9]), (t[10] = e[10]), (t[11] = e[11]), (t[12] = e[12]), (t[13] = e[13]), (t[14] = e[14]), (t[15] = e[15]), t) : new Matrix4( e[0], e[4], e[8], e[12], e[1], e[5], e[9], e[13], e[2], e[6], e[10], e[14], e[3], e[7], e[11], e[15] ); }), (Matrix4.fromArray = Matrix4.unpack), (Matrix4.fromColumnMajorArray = function (e, t) { return Matrix4.clone(e, t); }), (Matrix4.fromRowMajorArray = function (e, t) { return defined(t) ? ((t[0] = e[0]), (t[1] = e[4]), (t[2] = e[8]), (t[3] = e[12]), (t[4] = e[1]), (t[5] = e[5]), (t[6] = e[9]), (t[7] = e[13]), (t[8] = e[2]), (t[9] = e[6]), (t[10] = e[10]), (t[11] = e[14]), (t[12] = e[3]), (t[13] = e[7]), (t[14] = e[11]), (t[15] = e[15]), t) : new Matrix4( e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8], e[9], e[10], e[11], e[12], e[13], e[14], e[15] ); }), (Matrix4.fromRotationTranslation = function (e, t, i) { return ( (t = defaultValue(t, Cartesian3.ZERO)), defined(i) ? ((i[0] = e[0]), (i[1] = e[1]), (i[2] = e[2]), (i[3] = 0), (i[4] = e[3]), (i[5] = e[4]), (i[6] = e[5]), (i[7] = 0), (i[8] = e[6]), (i[9] = e[7]), (i[10] = e[8]), (i[11] = 0), (i[12] = t.x), (i[13] = t.y), (i[14] = t.z), (i[15] = 1), i) : new Matrix4( e[0], e[3], e[6], t.x, e[1], e[4], e[7], t.y, e[2], e[5], e[8], t.z, 0, 0, 0, 1 ) ); }), (Matrix4.fromTranslationQuaternionRotationScale = function (e, t, i, r) { defined(r) || (r = new Matrix4()); var n = i.x, a = i.y, o = i.z, s = t.x * t.x, l = t.x * t.y, c = t.x * t.z, u = t.x * t.w, d = t.y * t.y, h = t.y * t.z, p = t.y * t.w, f = t.z * t.z, m = t.z * t.w, g = t.w * t.w, _ = s - d - f + g, y = 2 * (l - m), v = 2 * (c + p), C = 2 * (l + m), T = -s + d - f + g, S = 2 * (h - u), A = 2 * (c - p), x = 2 * (h + u), E = -s - d + f + g; return ( (r[0] = _ * n), (r[1] = C * n), (r[2] = A * n), (r[3] = 0), (r[4] = y * a), (r[5] = T * a), (r[6] = x * a), (r[7] = 0), (r[8] = v * o), (r[9] = S * o), (r[10] = E * o), (r[11] = 0), (r[12] = e.x), (r[13] = e.y), (r[14] = e.z), (r[15] = 1), r ); }), (Matrix4.fromTranslationRotationScale = function (e, t) { return Matrix4.fromTranslationQuaternionRotationScale(e.translation, e.rotation, e.scale, t); }), (Matrix4.fromTranslation = function (e, t) { return Matrix4.fromRotationTranslation(Matrix3.IDENTITY, e, t); }), (Matrix4.fromScale = function (e, t) { return defined(t) ? ((t[0] = e.x), (t[1] = 0), (t[2] = 0), (t[3] = 0), (t[4] = 0), (t[5] = e.y), (t[6] = 0), (t[7] = 0), (t[8] = 0), (t[9] = 0), (t[10] = e.z), (t[11] = 0), (t[12] = 0), (t[13] = 0), (t[14] = 0), (t[15] = 1), t) : new Matrix4(e.x, 0, 0, 0, 0, e.y, 0, 0, 0, 0, e.z, 0, 0, 0, 0, 1); }), (Matrix4.fromUniformScale = function (e, t) { return defined(t) ? ((t[0] = e), (t[1] = 0), (t[2] = 0), (t[3] = 0), (t[4] = 0), (t[5] = e), (t[6] = 0), (t[7] = 0), (t[8] = 0), (t[9] = 0), (t[10] = e), (t[11] = 0), (t[12] = 0), (t[13] = 0), (t[14] = 0), (t[15] = 1), t) : new Matrix4(e, 0, 0, 0, 0, e, 0, 0, 0, 0, e, 0, 0, 0, 0, 1); }); var fromCameraF = new Cartesian3(), fromCameraR = new Cartesian3(), fromCameraU = new Cartesian3(); (Matrix4.fromCamera = function (e, t) { var i = e.position, r = e.direction, n = e.up; Cartesian3.normalize(r, fromCameraF), Cartesian3.normalize(Cartesian3.cross(fromCameraF, n, fromCameraR), fromCameraR), Cartesian3.normalize(Cartesian3.cross(fromCameraR, fromCameraF, fromCameraU), fromCameraU); var a = fromCameraR.x, o = fromCameraR.y, s = fromCameraR.z, l = fromCameraF.x, c = fromCameraF.y, u = fromCameraF.z, d = fromCameraU.x, h = fromCameraU.y, p = fromCameraU.z, f = i.x, m = i.y, g = i.z, _ = a * -f + o * -m + s * -g, y = d * -f + h * -m + p * -g, v = l * f + c * m + u * g; return defined(t) ? ((t[0] = a), (t[1] = d), (t[2] = -l), (t[3] = 0), (t[4] = o), (t[5] = h), (t[6] = -c), (t[7] = 0), (t[8] = s), (t[9] = p), (t[10] = -u), (t[11] = 0), (t[12] = _), (t[13] = y), (t[14] = v), (t[15] = 1), t) : new Matrix4(a, o, s, _, d, h, p, y, -l, -c, -u, v, 0, 0, 0, 1); }), (Matrix4.computePerspectiveFieldOfView = function (e, t, i, r, n) { var a = 1 / Math.tan(0.5 * e), o = a / t, s = (r + i) / (i - r), l = (2 * r * i) / (i - r); return ( (n[0] = o), (n[1] = 0), (n[2] = 0), (n[3] = 0), (n[4] = 0), (n[5] = a), (n[6] = 0), (n[7] = 0), (n[8] = 0), (n[9] = 0), (n[10] = s), (n[11] = -1), (n[12] = 0), (n[13] = 0), (n[14] = l), (n[15] = 0), n ); }), (Matrix4.computeOrthographicOffCenter = function (e, t, i, r, n, a, o) { var s = 1 / (t - e), l = 1 / (r - i), c = 1 / (a - n), u = -(t + e) * s, d = -(r + i) * l, h = -(a + n) * c; return ( (s *= 2), (l *= 2), (c *= -2), (o[0] = s), (o[1] = 0), (o[2] = 0), (o[3] = 0), (o[4] = 0), (o[5] = l), (o[6] = 0), (o[7] = 0), (o[8] = 0), (o[9] = 0), (o[10] = c), (o[11] = 0), (o[12] = u), (o[13] = d), (o[14] = h), (o[15] = 1), o ); }), (Matrix4.computePerspectiveOffCenter = function (e, t, i, r, n, a, o) { var s = (2 * n) / (t - e), l = (2 * n) / (r - i), c = (t + e) / (t - e), u = (r + i) / (r - i), d = -(a + n) / (a - n), h = (-2 * a * n) / (a - n); return ( (o[0] = s), (o[1] = 0), (o[2] = 0), (o[3] = 0), (o[4] = 0), (o[5] = l), (o[6] = 0), (o[7] = 0), (o[8] = c), (o[9] = u), (o[10] = d), (o[11] = -1), (o[12] = 0), (o[13] = 0), (o[14] = h), (o[15] = 0), o ); }), (Matrix4.computeInfinitePerspectiveOffCenter = function (e, t, i, r, n, a) { var o = (2 * n) / (t - e), s = (2 * n) / (r - i), l = (t + e) / (t - e), c = (r + i) / (r - i), u = -2 * n; return ( (a[0] = o), (a[1] = 0), (a[2] = 0), (a[3] = 0), (a[4] = 0), (a[5] = s), (a[6] = 0), (a[7] = 0), (a[8] = l), (a[9] = c), (a[10] = -1), (a[11] = -1), (a[12] = 0), (a[13] = 0), (a[14] = u), (a[15] = 0), a ); }), (Matrix4.computeViewportTransformation = function (e, t, i, r) { defined(r) || (r = new Matrix4()), (e = defaultValue(e, defaultValue.EMPTY_OBJECT)); var n = defaultValue(e.x, 0), a = defaultValue(e.y, 0), o = defaultValue(e.width, 0), s = defaultValue(e.height, 0); t = defaultValue(t, 0); var l = 0.5 * o, c = 0.5 * s, u = 0.5 * ((i = defaultValue(i, 1)) - t), d = l, h = c, p = u, f = n + l, m = a + c, g = t + u; return ( (r[0] = d), (r[1] = 0), (r[2] = 0), (r[3] = 0), (r[4] = 0), (r[5] = h), (r[6] = 0), (r[7] = 0), (r[8] = 0), (r[9] = 0), (r[10] = p), (r[11] = 0), (r[12] = f), (r[13] = m), (r[14] = g), (r[15] = 1), r ); }), (Matrix4.computeView = function (e, t, i, r, n) { return ( (n[0] = r.x), (n[1] = i.x), (n[2] = -t.x), (n[3] = 0), (n[4] = r.y), (n[5] = i.y), (n[6] = -t.y), (n[7] = 0), (n[8] = r.z), (n[9] = i.z), (n[10] = -t.z), (n[11] = 0), (n[12] = -Cartesian3.dot(r, e)), (n[13] = -Cartesian3.dot(i, e)), (n[14] = Cartesian3.dot(t, e)), (n[15] = 1), n ); }), (Matrix4.toArray = function (e, t) { return defined(t) ? ((t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), (t[3] = e[3]), (t[4] = e[4]), (t[5] = e[5]), (t[6] = e[6]), (t[7] = e[7]), (t[8] = e[8]), (t[9] = e[9]), (t[10] = e[10]), (t[11] = e[11]), (t[12] = e[12]), (t[13] = e[13]), (t[14] = e[14]), (t[15] = e[15]), t) : [ e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8], e[9], e[10], e[11], e[12], e[13], e[14], e[15], ]; }), (Matrix4.getElementIndex = function (e, t) { return 4 * e + t; }), (Matrix4.getColumn = function (e, t, i) { var r = 4 * t, n = e[r], a = e[r + 1], o = e[r + 2], s = e[r + 3]; return (i.x = n), (i.y = a), (i.z = o), (i.w = s), i; }), (Matrix4.setColumn = function (e, t, i, r) { var n = 4 * t; return ( ((r = Matrix4.clone(e, r))[n] = i.x), (r[n + 1] = i.y), (r[n + 2] = i.z), (r[n + 3] = i.w), r ); }), (Matrix4.setTranslation = function (e, t, i) { return ( (i[0] = e[0]), (i[1] = e[1]), (i[2] = e[2]), (i[3] = e[3]), (i[4] = e[4]), (i[5] = e[5]), (i[6] = e[6]), (i[7] = e[7]), (i[8] = e[8]), (i[9] = e[9]), (i[10] = e[10]), (i[11] = e[11]), (i[12] = t.x), (i[13] = t.y), (i[14] = t.z), (i[15] = e[15]), i ); }); var scaleScratch$1 = new Cartesian3(); (Matrix4.setScale = function (e, t, i) { var r = Matrix4.getScale(e, scaleScratch$1), n = Cartesian3.divideComponents(t, r, scaleScratch$1); return Matrix4.multiplyByScale(e, n, i); }), (Matrix4.getRow = function (e, t, i) { var r = e[t], n = e[t + 4], a = e[t + 8], o = e[t + 12]; return (i.x = r), (i.y = n), (i.z = a), (i.w = o), i; }), (Matrix4.setRow = function (e, t, i, r) { return ( ((r = Matrix4.clone(e, r))[t] = i.x), (r[t + 4] = i.y), (r[t + 8] = i.z), (r[t + 12] = i.w), r ); }); var scratchColumn$1 = new Cartesian3(); Matrix4.getScale = function (e, t) { return ( (t.x = Cartesian3.magnitude(Cartesian3.fromElements(e[0], e[1], e[2], scratchColumn$1))), (t.y = Cartesian3.magnitude(Cartesian3.fromElements(e[4], e[5], e[6], scratchColumn$1))), (t.z = Cartesian3.magnitude(Cartesian3.fromElements(e[8], e[9], e[10], scratchColumn$1))), t ); }; var scratchScale$7 = new Cartesian3(); (Matrix4.getMaximumScale = function (e) { return Matrix4.getScale(e, scratchScale$7), Cartesian3.maximumComponent(scratchScale$7); }), (Matrix4.multiply = function (e, t, i) { var r = e[0], n = e[1], a = e[2], o = e[3], s = e[4], l = e[5], c = e[6], u = e[7], d = e[8], h = e[9], p = e[10], f = e[11], m = e[12], g = e[13], _ = e[14], y = e[15], v = t[0], C = t[1], T = t[2], S = t[3], A = t[4], x = t[5], E = t[6], b = t[7], P = t[8], D = t[9], w = t[10], M = t[11], I = t[12], R = t[13], O = t[14], B = t[15], L = r * v + s * C + d * T + m * S, F = n * v + l * C + h * T + g * S, N = a * v + c * C + p * T + _ * S, V = o * v + u * C + f * T + y * S, k = r * A + s * x + d * E + m * b, U = n * A + l * x + h * E + g * b, G = a * A + c * x + p * E + _ * b, $ = o * A + u * x + f * E + y * b, z = r * P + s * D + d * w + m * M, H = n * P + l * D + h * w + g * M, W = a * P + c * D + p * w + _ * M, q = o * P + u * D + f * w + y * M, j = r * I + s * R + d * O + m * B, X = n * I + l * R + h * O + g * B, Y = a * I + c * R + p * O + _ * B, K = o * I + u * R + f * O + y * B; return ( (i[0] = L), (i[1] = F), (i[2] = N), (i[3] = V), (i[4] = k), (i[5] = U), (i[6] = G), (i[7] = $), (i[8] = z), (i[9] = H), (i[10] = W), (i[11] = q), (i[12] = j), (i[13] = X), (i[14] = Y), (i[15] = K), i ); }), (Matrix4.add = function (e, t, i) { return ( (i[0] = e[0] + t[0]), (i[1] = e[1] + t[1]), (i[2] = e[2] + t[2]), (i[3] = e[3] + t[3]), (i[4] = e[4] + t[4]), (i[5] = e[5] + t[5]), (i[6] = e[6] + t[6]), (i[7] = e[7] + t[7]), (i[8] = e[8] + t[8]), (i[9] = e[9] + t[9]), (i[10] = e[10] + t[10]), (i[11] = e[11] + t[11]), (i[12] = e[12] + t[12]), (i[13] = e[13] + t[13]), (i[14] = e[14] + t[14]), (i[15] = e[15] + t[15]), i ); }), (Matrix4.subtract = function (e, t, i) { return ( (i[0] = e[0] - t[0]), (i[1] = e[1] - t[1]), (i[2] = e[2] - t[2]), (i[3] = e[3] - t[3]), (i[4] = e[4] - t[4]), (i[5] = e[5] - t[5]), (i[6] = e[6] - t[6]), (i[7] = e[7] - t[7]), (i[8] = e[8] - t[8]), (i[9] = e[9] - t[9]), (i[10] = e[10] - t[10]), (i[11] = e[11] - t[11]), (i[12] = e[12] - t[12]), (i[13] = e[13] - t[13]), (i[14] = e[14] - t[14]), (i[15] = e[15] - t[15]), i ); }), (Matrix4.multiplyTransformation = function (e, t, i) { var r = e[0], n = e[1], a = e[2], o = e[4], s = e[5], l = e[6], c = e[8], u = e[9], d = e[10], h = e[12], p = e[13], f = e[14], m = t[0], g = t[1], _ = t[2], y = t[4], v = t[5], C = t[6], T = t[8], S = t[9], A = t[10], x = t[12], E = t[13], b = t[14], P = r * m + o * g + c * _, D = n * m + s * g + u * _, w = a * m + l * g + d * _, M = r * y + o * v + c * C, I = n * y + s * v + u * C, R = a * y + l * v + d * C, O = r * T + o * S + c * A, B = n * T + s * S + u * A, L = a * T + l * S + d * A, F = r * x + o * E + c * b + h, N = n * x + s * E + u * b + p, V = a * x + l * E + d * b + f; return ( (i[0] = P), (i[1] = D), (i[2] = w), (i[3] = 0), (i[4] = M), (i[5] = I), (i[6] = R), (i[7] = 0), (i[8] = O), (i[9] = B), (i[10] = L), (i[11] = 0), (i[12] = F), (i[13] = N), (i[14] = V), (i[15] = 1), i ); }), (Matrix4.multiplyByMatrix3 = function (e, t, i) { var r = e[0], n = e[1], a = e[2], o = e[4], s = e[5], l = e[6], c = e[8], u = e[9], d = e[10], h = t[0], p = t[1], f = t[2], m = t[3], g = t[4], _ = t[5], y = t[6], v = t[7], C = t[8], T = r * h + o * p + c * f, S = n * h + s * p + u * f, A = a * h + l * p + d * f, x = r * m + o * g + c * _, E = n * m + s * g + u * _, b = a * m + l * g + d * _, P = r * y + o * v + c * C, D = n * y + s * v + u * C, w = a * y + l * v + d * C; return ( (i[0] = T), (i[1] = S), (i[2] = A), (i[3] = 0), (i[4] = x), (i[5] = E), (i[6] = b), (i[7] = 0), (i[8] = P), (i[9] = D), (i[10] = w), (i[11] = 0), (i[12] = e[12]), (i[13] = e[13]), (i[14] = e[14]), (i[15] = e[15]), i ); }), (Matrix4.multiplyByTranslation = function (e, t, i) { var r = t.x, n = t.y, a = t.z, o = r * e[0] + n * e[4] + a * e[8] + e[12], s = r * e[1] + n * e[5] + a * e[9] + e[13], l = r * e[2] + n * e[6] + a * e[10] + e[14]; return ( (i[0] = e[0]), (i[1] = e[1]), (i[2] = e[2]), (i[3] = e[3]), (i[4] = e[4]), (i[5] = e[5]), (i[6] = e[6]), (i[7] = e[7]), (i[8] = e[8]), (i[9] = e[9]), (i[10] = e[10]), (i[11] = e[11]), (i[12] = o), (i[13] = s), (i[14] = l), (i[15] = e[15]), i ); }); var uniformScaleScratch = new Cartesian3(); (Matrix4.multiplyByUniformScale = function (e, t, i) { return ( (uniformScaleScratch.x = t), (uniformScaleScratch.y = t), (uniformScaleScratch.z = t), Matrix4.multiplyByScale(e, uniformScaleScratch, i) ); }), (Matrix4.multiplyByScale = function (e, t, i) { var r = t.x, n = t.y, a = t.z; return 1 === r && 1 === n && 1 === a ? Matrix4.clone(e, i) : ((i[0] = r * e[0]), (i[1] = r * e[1]), (i[2] = r * e[2]), (i[3] = 0), (i[4] = n * e[4]), (i[5] = n * e[5]), (i[6] = n * e[6]), (i[7] = 0), (i[8] = a * e[8]), (i[9] = a * e[9]), (i[10] = a * e[10]), (i[11] = 0), (i[12] = e[12]), (i[13] = e[13]), (i[14] = e[14]), (i[15] = 1), i); }), (Matrix4.multiplyByVector = function (e, t, i) { var r = t.x, n = t.y, a = t.z, o = t.w, s = e[0] * r + e[4] * n + e[8] * a + e[12] * o, l = e[1] * r + e[5] * n + e[9] * a + e[13] * o, c = e[2] * r + e[6] * n + e[10] * a + e[14] * o, u = e[3] * r + e[7] * n + e[11] * a + e[15] * o; return (i.x = s), (i.y = l), (i.z = c), (i.w = u), i; }), (Matrix4.multiplyByPointAsVector = function (e, t, i) { var r = t.x, n = t.y, a = t.z, o = e[0] * r + e[4] * n + e[8] * a, s = e[1] * r + e[5] * n + e[9] * a, l = e[2] * r + e[6] * n + e[10] * a; return (i.x = o), (i.y = s), (i.z = l), i; }), (Matrix4.multiplyByPoint = function (e, t, i) { var r = t.x, n = t.y, a = t.z, o = e[0] * r + e[4] * n + e[8] * a + e[12], s = e[1] * r + e[5] * n + e[9] * a + e[13], l = e[2] * r + e[6] * n + e[10] * a + e[14]; return (i.x = o), (i.y = s), (i.z = l), i; }), (Matrix4.multiplyByScalar = function (e, t, i) { return ( (i[0] = e[0] * t), (i[1] = e[1] * t), (i[2] = e[2] * t), (i[3] = e[3] * t), (i[4] = e[4] * t), (i[5] = e[5] * t), (i[6] = e[6] * t), (i[7] = e[7] * t), (i[8] = e[8] * t), (i[9] = e[9] * t), (i[10] = e[10] * t), (i[11] = e[11] * t), (i[12] = e[12] * t), (i[13] = e[13] * t), (i[14] = e[14] * t), (i[15] = e[15] * t), i ); }), (Matrix4.negate = function (e, t) { return ( (t[0] = -e[0]), (t[1] = -e[1]), (t[2] = -e[2]), (t[3] = -e[3]), (t[4] = -e[4]), (t[5] = -e[5]), (t[6] = -e[6]), (t[7] = -e[7]), (t[8] = -e[8]), (t[9] = -e[9]), (t[10] = -e[10]), (t[11] = -e[11]), (t[12] = -e[12]), (t[13] = -e[13]), (t[14] = -e[14]), (t[15] = -e[15]), t ); }), (Matrix4.transpose = function (e, t) { var i = e[1], r = e[2], n = e[3], a = e[6], o = e[7], s = e[11]; return ( (t[0] = e[0]), (t[1] = e[4]), (t[2] = e[8]), (t[3] = e[12]), (t[4] = i), (t[5] = e[5]), (t[6] = e[9]), (t[7] = e[13]), (t[8] = r), (t[9] = a), (t[10] = e[10]), (t[11] = e[14]), (t[12] = n), (t[13] = o), (t[14] = s), (t[15] = e[15]), t ); }), (Matrix4.abs = function (e, t) { return ( (t[0] = Math.abs(e[0])), (t[1] = Math.abs(e[1])), (t[2] = Math.abs(e[2])), (t[3] = Math.abs(e[3])), (t[4] = Math.abs(e[4])), (t[5] = Math.abs(e[5])), (t[6] = Math.abs(e[6])), (t[7] = Math.abs(e[7])), (t[8] = Math.abs(e[8])), (t[9] = Math.abs(e[9])), (t[10] = Math.abs(e[10])), (t[11] = Math.abs(e[11])), (t[12] = Math.abs(e[12])), (t[13] = Math.abs(e[13])), (t[14] = Math.abs(e[14])), (t[15] = Math.abs(e[15])), t ); }), (Matrix4.equals = function (e, t) { return ( e === t || (defined(e) && defined(t) && e[12] === t[12] && e[13] === t[13] && e[14] === t[14] && e[0] === t[0] && e[1] === t[1] && e[2] === t[2] && e[4] === t[4] && e[5] === t[5] && e[6] === t[6] && e[8] === t[8] && e[9] === t[9] && e[10] === t[10] && e[3] === t[3] && e[7] === t[7] && e[11] === t[11] && e[15] === t[15]) ); }), (Matrix4.equalsEpsilon = function (e, t, i) { return ( (i = defaultValue(i, 0)), e === t || (defined(e) && defined(t) && Math.abs(e[0] - t[0]) <= i && Math.abs(e[1] - t[1]) <= i && Math.abs(e[2] - t[2]) <= i && Math.abs(e[3] - t[3]) <= i && Math.abs(e[4] - t[4]) <= i && Math.abs(e[5] - t[5]) <= i && Math.abs(e[6] - t[6]) <= i && Math.abs(e[7] - t[7]) <= i && Math.abs(e[8] - t[8]) <= i && Math.abs(e[9] - t[9]) <= i && Math.abs(e[10] - t[10]) <= i && Math.abs(e[11] - t[11]) <= i && Math.abs(e[12] - t[12]) <= i && Math.abs(e[13] - t[13]) <= i && Math.abs(e[14] - t[14]) <= i && Math.abs(e[15] - t[15]) <= i) ); }), (Matrix4.getTranslation = function (e, t) { return (t.x = e[12]), (t.y = e[13]), (t.z = e[14]), t; }), (Matrix4.getMatrix3 = function (e, t) { return ( (t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), (t[3] = e[4]), (t[4] = e[5]), (t[5] = e[6]), (t[6] = e[8]), (t[7] = e[9]), (t[8] = e[10]), t ); }); var scratchInverseRotation = new Matrix3(), scratchMatrix3Zero = new Matrix3(), scratchBottomRow = new Cartesian4(), scratchExpectedBottomRow = new Cartesian4(0, 0, 0, 1); (Matrix4.inverse = function (e, t) { var i = e[0], r = e[4], n = e[8], a = e[12], o = e[1], s = e[5], l = e[9], c = e[13], u = e[2], d = e[6], h = e[10], p = e[14], f = e[3], m = e[7], g = e[11], _ = e[15], y = h * _, v = p * g, C = d * _, T = p * m, S = d * g, A = h * m, x = u * _, E = p * f, b = u * g, P = h * f, D = u * m, w = d * f, M = y * s + T * l + S * c - (v * s + C * l + A * c), I = v * o + x * l + P * c - (y * o + E * l + b * c), R = C * o + E * s + D * c - (T * o + x * s + w * c), O = A * o + b * s + w * l - (S * o + P * s + D * l), B = v * r + C * n + A * a - (y * r + T * n + S * a), L = y * i + E * n + b * a - (v * i + x * n + P * a), F = T * i + x * r + w * a - (C * i + E * r + D * a), N = S * i + P * r + D * n - (A * i + b * r + w * n), V = (y = n * c) * m + (T = a * s) * g + (S = r * l) * _ - ((v = a * l) * m + (C = r * c) * g + (A = n * s) * _), k = v * f + (x = i * c) * g + (P = n * o) * _ - (y * f + (E = a * o) * g + (b = i * l) * _), U = C * f + E * m + (D = i * s) * _ - (T * f + x * m + (w = r * o) * _), G = A * f + b * m + w * g - (S * f + P * m + D * g), $ = C * h + A * p + v * d - (S * p + y * d + T * h), z = b * p + y * u + E * h - (x * h + P * p + v * u), H = x * d + w * p + T * u - (D * p + C * u + E * d), W = D * h + S * u + P * d - (b * d + w * h + A * u), q = i * M + r * I + n * R + a * O; if (Math.abs(q) < CesiumMath.EPSILON21) { if ( Matrix3.equalsEpsilon( Matrix4.getMatrix3(e, scratchInverseRotation), scratchMatrix3Zero, CesiumMath.EPSILON7 ) && Cartesian4.equals(Matrix4.getRow(e, 3, scratchBottomRow), scratchExpectedBottomRow) ) return ( (t[0] = 0), (t[1] = 0), (t[2] = 0), (t[3] = 0), (t[4] = 0), (t[5] = 0), (t[6] = 0), (t[7] = 0), (t[8] = 0), (t[9] = 0), (t[10] = 0), (t[11] = 0), (t[12] = -e[12]), (t[13] = -e[13]), (t[14] = -e[14]), (t[15] = 1), t ); throw new RuntimeError('matrix is not invertible because its determinate is zero.'); } return ( (q = 1 / q), (t[0] = M * q), (t[1] = I * q), (t[2] = R * q), (t[3] = O * q), (t[4] = B * q), (t[5] = L * q), (t[6] = F * q), (t[7] = N * q), (t[8] = V * q), (t[9] = k * q), (t[10] = U * q), (t[11] = G * q), (t[12] = $ * q), (t[13] = z * q), (t[14] = H * q), (t[15] = W * q), t ); }), (Matrix4.inverseTransformation = function (e, t) { var i = e[0], r = e[1], n = e[2], a = e[4], o = e[5], s = e[6], l = e[8], c = e[9], u = e[10], d = e[12], h = e[13], p = e[14], f = -i * d - r * h - n * p, m = -a * d - o * h - s * p, g = -l * d - c * h - u * p; return ( (t[0] = i), (t[1] = a), (t[2] = l), (t[3] = 0), (t[4] = r), (t[5] = o), (t[6] = c), (t[7] = 0), (t[8] = n), (t[9] = s), (t[10] = u), (t[11] = 0), (t[12] = f), (t[13] = m), (t[14] = g), (t[15] = 1), t ); }); var scratchTransposeMatrix = new Matrix4(); function Rectangle(e, t, i, r) { (this.west = defaultValue(e, 0)), (this.south = defaultValue(t, 0)), (this.east = defaultValue(i, 0)), (this.north = defaultValue(r, 0)); } (Matrix4.inverseTranspose = function (e, t) { return Matrix4.inverse(Matrix4.transpose(e, scratchTransposeMatrix), t); }), (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 (e) { return Matrix4.clone(this, e); }), (Matrix4.prototype.equals = function (e) { return Matrix4.equals(this, e); }), (Matrix4.equalsArray = function (e, t, i) { return ( e[0] === t[i] && e[1] === t[i + 1] && e[2] === t[i + 2] && e[3] === t[i + 3] && e[4] === t[i + 4] && e[5] === t[i + 5] && e[6] === t[i + 6] && e[7] === t[i + 7] && e[8] === t[i + 8] && e[9] === t[i + 9] && e[10] === t[i + 10] && e[11] === t[i + 11] && e[12] === t[i + 12] && e[13] === t[i + 13] && e[14] === t[i + 14] && e[15] === t[i + 15] ); }), (Matrix4.prototype.equalsEpsilon = function (e, t) { return Matrix4.equalsEpsilon(this, e, t); }), (Matrix4.prototype.toString = function () { return ( '(' + this[0] + ', ' + this[4] + ', ' + this[8] + ', ' + this[12] + ')\n(' + this[1] + ', ' + this[5] + ', ' + this[9] + ', ' + this[13] + ')\n(' + this[2] + ', ' + this[6] + ', ' + this[10] + ', ' + this[14] + ')\n(' + this[3] + ', ' + this[7] + ', ' + this[11] + ', ' + this[15] + ')' ); }), Object.defineProperties(Rectangle.prototype, { width: { get: function () { return Rectangle.computeWidth(this); }, }, height: { get: function () { return Rectangle.computeHeight(this); }, }, }), (Rectangle.packedLength = 4), (Rectangle.pack = function (e, t, i) { return ( (i = defaultValue(i, 0)), (t[i++] = e.west), (t[i++] = e.south), (t[i++] = e.east), (t[i] = e.north), t ); }), (Rectangle.unpack = function (e, t, i) { return ( (t = defaultValue(t, 0)), defined(i) || (i = new Rectangle()), (i.west = e[t++]), (i.south = e[t++]), (i.east = e[t++]), (i.north = e[t]), i ); }), (Rectangle.computeWidth = function (e) { var t = e.east, i = e.west; return t < i && (t += CesiumMath.TWO_PI), t - i; }), (Rectangle.computeHeight = function (e) { return e.north - e.south; }), (Rectangle.fromDegrees = function (e, t, i, r, n) { return ( (e = CesiumMath.toRadians(defaultValue(e, 0))), (t = CesiumMath.toRadians(defaultValue(t, 0))), (i = CesiumMath.toRadians(defaultValue(i, 0))), (r = CesiumMath.toRadians(defaultValue(r, 0))), defined(n) ? ((n.west = e), (n.south = t), (n.east = i), (n.north = r), n) : new Rectangle(e, t, i, r) ); }), (Rectangle.fromRadians = function (e, t, i, r, n) { return defined(n) ? ((n.west = defaultValue(e, 0)), (n.south = defaultValue(t, 0)), (n.east = defaultValue(i, 0)), (n.north = defaultValue(r, 0)), n) : new Rectangle(e, t, i, r); }), (Rectangle.fromCartographicArray = function (e, t) { for ( var i = Number.MAX_VALUE, r = -Number.MAX_VALUE, n = Number.MAX_VALUE, a = -Number.MAX_VALUE, o = Number.MAX_VALUE, s = -Number.MAX_VALUE, l = 0, c = e.length; l < c; l++ ) { var u = e[l]; (i = Math.min(i, u.longitude)), (r = Math.max(r, u.longitude)), (o = Math.min(o, u.latitude)), (s = Math.max(s, u.latitude)); var d = u.longitude >= 0 ? u.longitude : u.longitude + CesiumMath.TWO_PI; (n = Math.min(n, d)), (a = Math.max(a, d)); } return ( r - i > a - n && ((i = n), (r = a) > CesiumMath.PI && (r -= CesiumMath.TWO_PI), i > CesiumMath.PI && (i -= CesiumMath.TWO_PI)), defined(t) ? ((t.west = i), (t.south = o), (t.east = r), (t.north = s), t) : new Rectangle(i, o, r, s) ); }), (Rectangle.fromCartesianArray = function (e, t, i) { t = defaultValue(t, Ellipsoid.WGS84); for ( var r = Number.MAX_VALUE, n = -Number.MAX_VALUE, a = Number.MAX_VALUE, o = -Number.MAX_VALUE, s = Number.MAX_VALUE, l = -Number.MAX_VALUE, c = 0, u = e.length; c < u; c++ ) { var d = t.cartesianToCartographic(e[c]); (r = Math.min(r, d.longitude)), (n = Math.max(n, d.longitude)), (s = Math.min(s, d.latitude)), (l = Math.max(l, d.latitude)); var h = d.longitude >= 0 ? d.longitude : d.longitude + CesiumMath.TWO_PI; (a = Math.min(a, h)), (o = Math.max(o, h)); } return ( n - r > o - a && ((r = a), (n = o) > CesiumMath.PI && (n -= CesiumMath.TWO_PI), r > CesiumMath.PI && (r -= CesiumMath.TWO_PI)), defined(i) ? ((i.west = r), (i.south = s), (i.east = n), (i.north = l), i) : new Rectangle(r, s, n, l) ); }), (Rectangle.clone = function (e, t) { if (defined(e)) return defined(t) ? ((t.west = e.west), (t.south = e.south), (t.east = e.east), (t.north = e.north), t) : new Rectangle(e.west, e.south, e.east, e.north); }), (Rectangle.equalsEpsilon = function (e, t, i) { return ( (i = defaultValue(i, 0)), e === t || (defined(e) && defined(t) && Math.abs(e.west - t.west) <= i && Math.abs(e.south - t.south) <= i && Math.abs(e.east - t.east) <= i && Math.abs(e.north - t.north) <= i) ); }), (Rectangle.prototype.clone = function (e) { return Rectangle.clone(this, e); }), (Rectangle.prototype.equals = function (e) { return Rectangle.equals(this, e); }), (Rectangle.equals = function (e, t) { return ( e === t || (defined(e) && defined(t) && e.west === t.west && e.south === t.south && e.east === t.east && e.north === t.north) ); }), (Rectangle.prototype.equalsEpsilon = function (e, t) { return Rectangle.equalsEpsilon(this, e, t); }), (Rectangle.validate = function (e) {}), (Rectangle.southwest = function (e, t) { return defined(t) ? ((t.longitude = e.west), (t.latitude = e.south), (t.height = 0), t) : new Cartographic(e.west, e.south); }), (Rectangle.northwest = function (e, t) { return defined(t) ? ((t.longitude = e.west), (t.latitude = e.north), (t.height = 0), t) : new Cartographic(e.west, e.north); }), (Rectangle.northeast = function (e, t) { return defined(t) ? ((t.longitude = e.east), (t.latitude = e.north), (t.height = 0), t) : new Cartographic(e.east, e.north); }), (Rectangle.southeast = function (e, t) { return defined(t) ? ((t.longitude = e.east), (t.latitude = e.south), (t.height = 0), t) : new Cartographic(e.east, e.south); }), (Rectangle.center = function (e, t) { var i = e.east, r = e.west; i < r && (i += CesiumMath.TWO_PI); var n = CesiumMath.negativePiToPi(0.5 * (r + i)), a = 0.5 * (e.south + e.north); return defined(t) ? ((t.longitude = n), (t.latitude = a), (t.height = 0), t) : new Cartographic(n, a); }), (Rectangle.intersection = function (e, t, i) { var r = e.east, n = e.west, a = t.east, o = t.west; r < n && a > 0 ? (r += CesiumMath.TWO_PI) : a < o && r > 0 && (a += CesiumMath.TWO_PI), r < n && o < 0 ? (o += CesiumMath.TWO_PI) : a < o && n < 0 && (n += CesiumMath.TWO_PI); var s = CesiumMath.negativePiToPi(Math.max(n, o)), l = CesiumMath.negativePiToPi(Math.min(r, a)); if (!((e.west < e.east || t.west < t.east) && l <= s)) { var c = Math.max(e.south, t.south), u = Math.min(e.north, t.north); if (!(c >= u)) return defined(i) ? ((i.west = s), (i.south = c), (i.east = l), (i.north = u), i) : new Rectangle(s, c, l, u); } }), (Rectangle.simpleIntersection = function (e, t, i) { var r = Math.max(e.west, t.west), n = Math.max(e.south, t.south), a = Math.min(e.east, t.east), o = Math.min(e.north, t.north); if (!(n >= o || r >= a)) return defined(i) ? ((i.west = r), (i.south = n), (i.east = a), (i.north = o), i) : new Rectangle(r, n, a, o); }), (Rectangle.union = function (e, t, i) { defined(i) || (i = new Rectangle()); var r = e.east, n = e.west, a = t.east, o = t.west; r < n && a > 0 ? (r += CesiumMath.TWO_PI) : a < o && r > 0 && (a += CesiumMath.TWO_PI), r < n && o < 0 ? (o += CesiumMath.TWO_PI) : a < o && n < 0 && (n += CesiumMath.TWO_PI); var s = CesiumMath.negativePiToPi(Math.min(n, o)), l = CesiumMath.negativePiToPi(Math.max(r, a)); return ( (i.west = s), (i.south = Math.min(e.south, t.south)), (i.east = l), (i.north = Math.max(e.north, t.north)), i ); }), (Rectangle.expand = function (e, t, i) { return ( defined(i) || (i = new Rectangle()), (i.west = Math.min(e.west, t.longitude)), (i.south = Math.min(e.south, t.latitude)), (i.east = Math.max(e.east, t.longitude)), (i.north = Math.max(e.north, t.latitude)), i ); }), (Rectangle.contains = function (e, t) { var i = t.longitude, r = t.latitude, n = e.west, a = e.east; return ( a < n && ((a += CesiumMath.TWO_PI), i < 0 && (i += CesiumMath.TWO_PI)), (i > n || CesiumMath.equalsEpsilon(i, n, CesiumMath.EPSILON14)) && (i < a || CesiumMath.equalsEpsilon(i, a, CesiumMath.EPSILON14)) && r >= e.south && r <= e.north ); }); var subsampleLlaScratch = new Cartographic(); function BoundingSphere(e, t) { (this.center = Cartesian3.clone(defaultValue(e, Cartesian3.ZERO))), (this.radius = defaultValue(t, 0)); } (Rectangle.subsample = function (e, t, i, r) { (t = defaultValue(t, Ellipsoid.WGS84)), (i = defaultValue(i, 0)), defined(r) || (r = []); var n = 0, a = e.north, o = e.south, s = e.east, l = e.west, c = subsampleLlaScratch; (c.height = i), (c.longitude = l), (c.latitude = a), (r[n] = t.cartographicToCartesian(c, r[n])), n++, (c.longitude = s), (r[n] = t.cartographicToCartesian(c, r[n])), n++, (c.latitude = o), (r[n] = t.cartographicToCartesian(c, r[n])), n++, (c.longitude = l), (r[n] = t.cartographicToCartesian(c, r[n])), n++, (c.latitude = a < 0 ? a : o > 0 ? o : 0); for (var u = 1; u < 8; ++u) (c.longitude = -Math.PI + u * CesiumMath.PI_OVER_TWO), Rectangle.contains(e, c) && ((r[n] = t.cartographicToCartesian(c, r[n])), n++); return ( 0 === c.latitude && ((c.longitude = l), (r[n] = t.cartographicToCartesian(c, r[n])), n++, (c.longitude = s), (r[n] = t.cartographicToCartesian(c, r[n])), n++), (r.length = n), r ); }), (Rectangle.MAX_VALUE = Object.freeze( new Rectangle(-Math.PI, -CesiumMath.PI_OVER_TWO, Math.PI, CesiumMath.PI_OVER_TWO) )); var fromPointsXMin = new Cartesian3(), fromPointsYMin = new Cartesian3(), fromPointsZMin = new Cartesian3(), fromPointsXMax = new Cartesian3(), fromPointsYMax = new Cartesian3(), fromPointsZMax = new Cartesian3(), fromPointsCurrentPos = new Cartesian3(), fromPointsScratch = new Cartesian3(), fromPointsRitterCenter = new Cartesian3(), fromPointsMinBoxPt = new Cartesian3(), fromPointsMaxBoxPt = new Cartesian3(), fromPointsNaiveCenterScratch = new Cartesian3(), volumeConstant = (4 / 3) * CesiumMath.PI; BoundingSphere.fromPoints = function (e, t) { if ((defined(t) || (t = new BoundingSphere()), !defined(e) || 0 === e.length)) return (t.center = Cartesian3.clone(Cartesian3.ZERO, t.center)), (t.radius = 0), t; var i, r = Cartesian3.clone(e[0], fromPointsCurrentPos), n = Cartesian3.clone(r, fromPointsXMin), a = Cartesian3.clone(r, fromPointsYMin), o = Cartesian3.clone(r, fromPointsZMin), s = Cartesian3.clone(r, fromPointsXMax), l = Cartesian3.clone(r, fromPointsYMax), c = Cartesian3.clone(r, fromPointsZMax), u = e.length; for (i = 1; i < u; i++) { Cartesian3.clone(e[i], r); var d = r.x, h = r.y, p = r.z; d < n.x && Cartesian3.clone(r, n), d > s.x && Cartesian3.clone(r, s), h < a.y && Cartesian3.clone(r, a), h > l.y && Cartesian3.clone(r, l), p < o.z && Cartesian3.clone(r, o), p > c.z && Cartesian3.clone(r, c); } var f = Cartesian3.magnitudeSquared(Cartesian3.subtract(s, n, fromPointsScratch)), m = Cartesian3.magnitudeSquared(Cartesian3.subtract(l, a, fromPointsScratch)), g = Cartesian3.magnitudeSquared(Cartesian3.subtract(c, o, fromPointsScratch)), _ = n, y = s, v = f; m > v && ((v = m), (_ = a), (y = l)), g > v && ((v = g), (_ = o), (y = c)); var C = fromPointsRitterCenter; (C.x = 0.5 * (_.x + y.x)), (C.y = 0.5 * (_.y + y.y)), (C.z = 0.5 * (_.z + y.z)); var T = Cartesian3.magnitudeSquared(Cartesian3.subtract(y, C, fromPointsScratch)), S = Math.sqrt(T), A = fromPointsMinBoxPt; (A.x = n.x), (A.y = a.y), (A.z = o.z); var x = fromPointsMaxBoxPt; (x.x = s.x), (x.y = l.y), (x.z = c.z); var E = Cartesian3.midpoint(A, x, fromPointsNaiveCenterScratch), b = 0; for (i = 0; i < u; i++) { Cartesian3.clone(e[i], r); var P = Cartesian3.magnitude(Cartesian3.subtract(r, E, fromPointsScratch)); P > b && (b = P); var D = Cartesian3.magnitudeSquared(Cartesian3.subtract(r, C, fromPointsScratch)); if (D > T) { var w = Math.sqrt(D); T = (S = 0.5 * (S + w)) * S; var M = w - S; (C.x = (S * C.x + M * r.x) / w), (C.y = (S * C.y + M * r.y) / w), (C.z = (S * C.z + M * r.z) / w); } } return ( S < b ? (Cartesian3.clone(C, t.center), (t.radius = S)) : (Cartesian3.clone(E, t.center), (t.radius = b)), t ); }; var defaultProjection$1 = new GeographicProjection(), fromRectangle2DLowerLeft = new Cartesian3(), fromRectangle2DUpperRight = new Cartesian3(), fromRectangle2DSouthwest = new Cartographic(), fromRectangle2DNortheast = new Cartographic(); (BoundingSphere.fromRectangle2D = function (e, t, i) { return BoundingSphere.fromRectangleWithHeights2D(e, t, 0, 0, i); }), (BoundingSphere.fromRectangleWithHeights2D = function (e, t, i, r, n) { if ((defined(n) || (n = new BoundingSphere()), !defined(e))) return (n.center = Cartesian3.clone(Cartesian3.ZERO, n.center)), (n.radius = 0), n; (t = defaultValue(t, defaultProjection$1)), Rectangle.southwest(e, fromRectangle2DSouthwest), (fromRectangle2DSouthwest.height = i), Rectangle.northeast(e, fromRectangle2DNortheast), (fromRectangle2DNortheast.height = r); var a = t.project(fromRectangle2DSouthwest, fromRectangle2DLowerLeft), o = t.project(fromRectangle2DNortheast, fromRectangle2DUpperRight), s = o.x - a.x, l = o.y - a.y, c = o.z - a.z; n.radius = 0.5 * Math.sqrt(s * s + l * l + c * c); var u = n.center; return (u.x = a.x + 0.5 * s), (u.y = a.y + 0.5 * l), (u.z = a.z + 0.5 * c), n; }); var fromRectangle3DScratch = []; (BoundingSphere.fromRectangle3D = function (e, t, i, r) { if ( ((t = defaultValue(t, Ellipsoid.WGS84)), (i = defaultValue(i, 0)), defined(r) || (r = new BoundingSphere()), !defined(e)) ) return (r.center = Cartesian3.clone(Cartesian3.ZERO, r.center)), (r.radius = 0), r; var n = Rectangle.subsample(e, t, i, fromRectangle3DScratch); return BoundingSphere.fromPoints(n, r); }), (BoundingSphere.fromVertices = function (e, t, i, r) { if ((defined(r) || (r = new BoundingSphere()), !defined(e) || 0 === e.length)) return (r.center = Cartesian3.clone(Cartesian3.ZERO, r.center)), (r.radius = 0), r; (t = defaultValue(t, Cartesian3.ZERO)), (i = defaultValue(i, 3)); var n = fromPointsCurrentPos; (n.x = e[0] + t.x), (n.y = e[1] + t.y), (n.z = e[2] + t.z); var a, o = Cartesian3.clone(n, fromPointsXMin), s = Cartesian3.clone(n, fromPointsYMin), l = Cartesian3.clone(n, fromPointsZMin), c = Cartesian3.clone(n, fromPointsXMax), u = Cartesian3.clone(n, fromPointsYMax), d = Cartesian3.clone(n, fromPointsZMax), h = e.length; for (a = 0; a < h; a += i) { var p = e[a] + t.x, f = e[a + 1] + t.y, m = e[a + 2] + t.z; (n.x = p), (n.y = f), (n.z = m), p < o.x && Cartesian3.clone(n, o), p > c.x && Cartesian3.clone(n, c), f < s.y && Cartesian3.clone(n, s), f > u.y && Cartesian3.clone(n, u), m < l.z && Cartesian3.clone(n, l), m > d.z && Cartesian3.clone(n, d); } var g = Cartesian3.magnitudeSquared(Cartesian3.subtract(c, o, fromPointsScratch)), _ = Cartesian3.magnitudeSquared(Cartesian3.subtract(u, s, fromPointsScratch)), y = Cartesian3.magnitudeSquared(Cartesian3.subtract(d, l, fromPointsScratch)), v = o, C = c, T = g; _ > T && ((T = _), (v = s), (C = u)), y > T && ((T = y), (v = l), (C = d)); var S = fromPointsRitterCenter; (S.x = 0.5 * (v.x + C.x)), (S.y = 0.5 * (v.y + C.y)), (S.z = 0.5 * (v.z + C.z)); var A = Cartesian3.magnitudeSquared(Cartesian3.subtract(C, S, fromPointsScratch)), x = Math.sqrt(A), E = fromPointsMinBoxPt; (E.x = o.x), (E.y = s.y), (E.z = l.z); var b = fromPointsMaxBoxPt; (b.x = c.x), (b.y = u.y), (b.z = d.z); var P = Cartesian3.midpoint(E, b, fromPointsNaiveCenterScratch), D = 0; for (a = 0; a < h; a += i) { (n.x = e[a] + t.x), (n.y = e[a + 1] + t.y), (n.z = e[a + 2] + t.z); var w = Cartesian3.magnitude(Cartesian3.subtract(n, P, fromPointsScratch)); w > D && (D = w); var M = Cartesian3.magnitudeSquared(Cartesian3.subtract(n, S, fromPointsScratch)); if (M > A) { var I = Math.sqrt(M); A = (x = 0.5 * (x + I)) * x; var R = I - x; (S.x = (x * S.x + R * n.x) / I), (S.y = (x * S.y + R * n.y) / I), (S.z = (x * S.z + R * n.z) / I); } } return ( x < D ? (Cartesian3.clone(S, r.center), (r.radius = x)) : (Cartesian3.clone(P, r.center), (r.radius = D)), r ); }), (BoundingSphere.fromEncodedCartesianVertices = function (e, t, i) { if ( (defined(i) || (i = new BoundingSphere()), !defined(e) || !defined(t) || e.length !== t.length || 0 === e.length) ) return (i.center = Cartesian3.clone(Cartesian3.ZERO, i.center)), (i.radius = 0), i; var r = fromPointsCurrentPos; (r.x = e[0] + t[0]), (r.y = e[1] + t[1]), (r.z = e[2] + t[2]); var n, a = Cartesian3.clone(r, fromPointsXMin), o = Cartesian3.clone(r, fromPointsYMin), s = Cartesian3.clone(r, fromPointsZMin), l = Cartesian3.clone(r, fromPointsXMax), c = Cartesian3.clone(r, fromPointsYMax), u = Cartesian3.clone(r, fromPointsZMax), d = e.length; for (n = 0; n < d; n += 3) { var h = e[n] + t[n], p = e[n + 1] + t[n + 1], f = e[n + 2] + t[n + 2]; (r.x = h), (r.y = p), (r.z = f), h < a.x && Cartesian3.clone(r, a), h > l.x && Cartesian3.clone(r, l), p < o.y && Cartesian3.clone(r, o), p > c.y && Cartesian3.clone(r, c), f < s.z && Cartesian3.clone(r, s), f > u.z && Cartesian3.clone(r, u); } var m = Cartesian3.magnitudeSquared(Cartesian3.subtract(l, a, fromPointsScratch)), g = Cartesian3.magnitudeSquared(Cartesian3.subtract(c, o, fromPointsScratch)), _ = Cartesian3.magnitudeSquared(Cartesian3.subtract(u, s, fromPointsScratch)), y = a, v = l, C = m; g > C && ((C = g), (y = o), (v = c)), _ > C && ((C = _), (y = s), (v = u)); var T = fromPointsRitterCenter; (T.x = 0.5 * (y.x + v.x)), (T.y = 0.5 * (y.y + v.y)), (T.z = 0.5 * (y.z + v.z)); var S = Cartesian3.magnitudeSquared(Cartesian3.subtract(v, T, fromPointsScratch)), A = Math.sqrt(S), x = fromPointsMinBoxPt; (x.x = a.x), (x.y = o.y), (x.z = s.z); var E = fromPointsMaxBoxPt; (E.x = l.x), (E.y = c.y), (E.z = u.z); var b = Cartesian3.midpoint(x, E, fromPointsNaiveCenterScratch), P = 0; for (n = 0; n < d; n += 3) { (r.x = e[n] + t[n]), (r.y = e[n + 1] + t[n + 1]), (r.z = e[n + 2] + t[n + 2]); var D = Cartesian3.magnitude(Cartesian3.subtract(r, b, fromPointsScratch)); D > P && (P = D); var w = Cartesian3.magnitudeSquared(Cartesian3.subtract(r, T, fromPointsScratch)); if (w > S) { var M = Math.sqrt(w); S = (A = 0.5 * (A + M)) * A; var I = M - A; (T.x = (A * T.x + I * r.x) / M), (T.y = (A * T.y + I * r.y) / M), (T.z = (A * T.z + I * r.z) / M); } } return ( A < P ? (Cartesian3.clone(T, i.center), (i.radius = A)) : (Cartesian3.clone(b, i.center), (i.radius = P)), i ); }), (BoundingSphere.fromCornerPoints = function (e, t, i) { defined(i) || (i = new BoundingSphere()); var r = Cartesian3.midpoint(e, t, i.center); return (i.radius = Cartesian3.distance(r, t)), i; }), (BoundingSphere.fromEllipsoid = function (e, t) { return ( defined(t) || (t = new BoundingSphere()), Cartesian3.clone(Cartesian3.ZERO, t.center), (t.radius = e.maximumRadius), t ); }); var fromBoundingSpheresScratch = new Cartesian3(); BoundingSphere.fromBoundingSpheres = function (e, t) { if ((defined(t) || (t = new BoundingSphere()), !defined(e) || 0 === e.length)) return (t.center = Cartesian3.clone(Cartesian3.ZERO, t.center)), (t.radius = 0), t; var i = e.length; if (1 === i) return BoundingSphere.clone(e[0], t); if (2 === i) return BoundingSphere.union(e[0], e[1], t); var r, n = []; for (r = 0; r < i; r++) n.push(e[r].center); var a = (t = BoundingSphere.fromPoints(n, t)).center, o = t.radius; for (r = 0; r < i; r++) { var s = e[r]; o = Math.max(o, Cartesian3.distance(a, s.center, fromBoundingSpheresScratch) + s.radius); } return (t.radius = o), t; }; var fromOrientedBoundingBoxScratchU = new Cartesian3(), fromOrientedBoundingBoxScratchV = new Cartesian3(), fromOrientedBoundingBoxScratchW = new Cartesian3(); (BoundingSphere.fromOrientedBoundingBox = function (e, t) { defined(t) || (t = new BoundingSphere()); var i = e.halfAxes, r = Matrix3.getColumn(i, 0, fromOrientedBoundingBoxScratchU), n = Matrix3.getColumn(i, 1, fromOrientedBoundingBoxScratchV), a = Matrix3.getColumn(i, 2, fromOrientedBoundingBoxScratchW); return ( Cartesian3.add(r, n, r), Cartesian3.add(r, a, r), (t.center = Cartesian3.clone(e.center, t.center)), (t.radius = Cartesian3.magnitude(r)), t ); }), (BoundingSphere.clone = function (e, t) { if (defined(e)) return defined(t) ? ((t.center = Cartesian3.clone(e.center, t.center)), (t.radius = e.radius), t) : new BoundingSphere(e.center, e.radius); }), (BoundingSphere.packedLength = 4), (BoundingSphere.pack = function (e, t, i) { i = defaultValue(i, 0); var r = e.center; return (t[i++] = r.x), (t[i++] = r.y), (t[i++] = r.z), (t[i] = e.radius), t; }), (BoundingSphere.unpack = function (e, t, i) { (t = defaultValue(t, 0)), defined(i) || (i = new BoundingSphere()); var r = i.center; return (r.x = e[t++]), (r.y = e[t++]), (r.z = e[t++]), (i.radius = e[t]), i; }); var unionScratch = new Cartesian3(), unionScratchCenter = new Cartesian3(); BoundingSphere.union = function (e, t, i) { defined(i) || (i = new BoundingSphere()); var r = e.center, n = e.radius, a = t.center, o = t.radius, s = Cartesian3.subtract(a, r, unionScratch), l = Cartesian3.magnitude(s); if (n >= l + o) return e.clone(i), i; if (o >= l + n) return t.clone(i), i; var c = 0.5 * (n + l + o), u = Cartesian3.multiplyByScalar(s, (-n + c) / l, unionScratchCenter); return Cartesian3.add(u, r, u), Cartesian3.clone(u, i.center), (i.radius = c), i; }; var expandScratch = new Cartesian3(); (BoundingSphere.expand = function (e, t, i) { i = BoundingSphere.clone(e, i); var r = Cartesian3.magnitude(Cartesian3.subtract(t, i.center, expandScratch)); return r > i.radius && (i.radius = r), i; }), (BoundingSphere.intersectPlane = function (e, t) { var i = e.center, r = e.radius, n = t.normal, a = Cartesian3.dot(n, i) + t.distance; return a < -r ? Intersect$1.OUTSIDE : a < r ? Intersect$1.INTERSECTING : Intersect$1.INSIDE; }), (BoundingSphere.transform = function (e, t, i) { return ( defined(i) || (i = new BoundingSphere()), (i.center = Matrix4.multiplyByPoint(t, e.center, i.center)), (i.radius = Matrix4.getMaximumScale(t) * e.radius), i ); }); var distanceSquaredToScratch = new Cartesian3(); (BoundingSphere.distanceSquaredTo = function (e, t) { var i = Cartesian3.subtract(e.center, t, distanceSquaredToScratch), r = Cartesian3.magnitude(i) - e.radius; return r <= 0 ? 0 : r * r; }), (BoundingSphere.transformWithoutScale = function (e, t, i) { return ( defined(i) || (i = new BoundingSphere()), (i.center = Matrix4.multiplyByPoint(t, e.center, i.center)), (i.radius = e.radius), i ); }); var scratchCartesian3$d = new Cartesian3(); BoundingSphere.computePlaneDistances = function (e, t, i, r) { defined(r) || (r = new Interval()); var n = Cartesian3.subtract(e.center, t, scratchCartesian3$d), a = Cartesian3.dot(i, n); return (r.start = a - e.radius), (r.stop = a + e.radius), r; }; for ( var projectTo2DNormalScratch = new Cartesian3(), projectTo2DEastScratch = new Cartesian3(), projectTo2DNorthScratch = new Cartesian3(), projectTo2DWestScratch = new Cartesian3(), projectTo2DSouthScratch = new Cartesian3(), projectTo2DCartographicScratch = new Cartographic(), projectTo2DPositionsScratch = new Array(8), n$1 = 0; n$1 < 8; ++n$1 ) projectTo2DPositionsScratch[n$1] = new Cartesian3(); var projectTo2DProjection = new GeographicProjection(); (BoundingSphere.projectTo2D = function (e, t, i) { var r, n = (t = defaultValue(t, projectTo2DProjection)).ellipsoid, a = e.center, o = e.radius; r = Cartesian3.equals(a, Cartesian3.ZERO) ? Cartesian3.clone(Cartesian3.UNIT_X, projectTo2DNormalScratch) : n.geodeticSurfaceNormal(a, projectTo2DNormalScratch); var s = Cartesian3.cross(Cartesian3.UNIT_Z, r, projectTo2DEastScratch); Cartesian3.normalize(s, s); var l = Cartesian3.cross(r, s, projectTo2DNorthScratch); Cartesian3.normalize(l, l), Cartesian3.multiplyByScalar(r, o, r), Cartesian3.multiplyByScalar(l, o, l), Cartesian3.multiplyByScalar(s, o, s); var c = Cartesian3.negate(l, projectTo2DSouthScratch), u = Cartesian3.negate(s, projectTo2DWestScratch), d = projectTo2DPositionsScratch, h = d[0]; Cartesian3.add(r, l, h), Cartesian3.add(h, s, h), (h = d[1]), Cartesian3.add(r, l, h), Cartesian3.add(h, u, h), (h = d[2]), Cartesian3.add(r, c, h), Cartesian3.add(h, u, h), (h = d[3]), Cartesian3.add(r, c, h), Cartesian3.add(h, s, h), Cartesian3.negate(r, r), (h = d[4]), Cartesian3.add(r, l, h), Cartesian3.add(h, s, h), (h = d[5]), Cartesian3.add(r, l, h), Cartesian3.add(h, u, h), (h = d[6]), Cartesian3.add(r, c, h), Cartesian3.add(h, u, h), (h = d[7]), Cartesian3.add(r, c, h), Cartesian3.add(h, s, h); for (var p = d.length, f = 0; f < p; ++f) { var m = d[f]; Cartesian3.add(a, m, m); var g = n.cartesianToCartographic(m, projectTo2DCartographicScratch); t.project(g, m); } var _ = (a = (i = BoundingSphere.fromPoints(d, i)).center).x, y = a.y, v = a.z; return (a.x = v), (a.y = _), (a.z = y), i; }), (BoundingSphere.isOccluded = function (e, t) { return !t.isBoundingSphereVisible(e); }), (BoundingSphere.equals = function (e, t) { return ( e === t || (defined(e) && defined(t) && Cartesian3.equals(e.center, t.center) && e.radius === t.radius) ); }), (BoundingSphere.prototype.intersectPlane = function (e) { return BoundingSphere.intersectPlane(this, e); }), (BoundingSphere.prototype.distanceSquaredTo = function (e) { return BoundingSphere.distanceSquaredTo(this, e); }), (BoundingSphere.prototype.computePlaneDistances = function (e, t, i) { return BoundingSphere.computePlaneDistances(this, e, t, i); }), (BoundingSphere.prototype.isOccluded = function (e) { return BoundingSphere.isOccluded(this, e); }), (BoundingSphere.prototype.equals = function (e) { return BoundingSphere.equals(this, e); }), (BoundingSphere.prototype.clone = function (e) { return BoundingSphere.clone(this, e); }), (BoundingSphere.prototype.volume = function () { var e = this.radius; return volumeConstant * e * e * e; }); var commonjsGlobal = 'undefined' != typeof globalThis ? globalThis : 'undefined' != typeof window ? window : 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : {}; function createCommonjsModule(e, t, i) { return ( e( (i = { path: t, exports: {}, require: function (e, t) { return commonjsRequire(e, null == t ? i.path : t); }, }), i.exports ), i.exports ); } function commonjsRequire() { throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); } var punycode = createCommonjsModule(function (e, t) { !(function (i) { var r = t && !t.nodeType && t, n = e && !e.nodeType && e, a = 'object' == typeof commonjsGlobal && commonjsGlobal; (a.global !== a && a.window !== a && a.self !== a) || (i = a); var o, s, l = 2147483647, c = 36, u = /^xn--/, d = /[^\x20-\x7E]/, h = /[\x2E\u3002\uFF0E\uFF61]/g, p = { overflow: 'Overflow: input needs wider integers to process', 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', 'invalid-input': 'Invalid input', }, f = Math.floor, m = String.fromCharCode; function g(e) { throw new RangeError(p[e]); } function _(e, t) { for (var i = e.length, r = []; i--; ) r[i] = t(e[i]); return r; } function y(e, t) { var i = e.split('@'), r = ''; return ( i.length > 1 && ((r = i[0] + '@'), (e = i[1])), r + _((e = e.replace(h, '.')).split('.'), t).join('.') ); } function v(e) { for (var t, i, r = [], n = 0, a = e.length; n < a; ) (t = e.charCodeAt(n++)) >= 55296 && t <= 56319 && n < a ? 56320 == (64512 & (i = e.charCodeAt(n++))) ? r.push(((1023 & t) << 10) + (1023 & i) + 65536) : (r.push(t), n--) : r.push(t); return r; } function C(e) { return _(e, function (e) { var t = ''; return ( e > 65535 && ((t += m((((e -= 65536) >>> 10) & 1023) | 55296)), (e = 56320 | (1023 & e))), (t += m(e)) ); }).join(''); } function T(e, t) { return e + 22 + 75 * (e < 26) - ((0 != t) << 5); } function S(e, t, i) { var r = 0; for (e = i ? f(e / 700) : e >> 1, e += f(e / t); e > 455; r += c) e = f(e / 35); return f(r + (36 * e) / (e + 38)); } function A(e) { var t, i, r, n, a, o, s, u, d, h, p, m = [], _ = e.length, y = 0, v = 128, T = 72; for ((i = e.lastIndexOf('-')) < 0 && (i = 0), r = 0; r < i; ++r) e.charCodeAt(r) >= 128 && g('not-basic'), m.push(e.charCodeAt(r)); for (n = i > 0 ? i + 1 : 0; n < _; ) { for ( a = y, o = 1, s = c; n >= _ && g('invalid-input'), ((u = (p = e.charCodeAt(n++)) - 48 < 10 ? p - 22 : p - 65 < 26 ? p - 65 : p - 97 < 26 ? p - 97 : c) >= c || u > f((l - y) / o)) && g('overflow'), (y += u * o), !(u < (d = s <= T ? 1 : s >= T + 26 ? 26 : s - T)); s += c ) o > f(l / (h = c - d)) && g('overflow'), (o *= h); (T = S(y - a, (t = m.length + 1), 0 == a)), f(y / t) > l - v && g('overflow'), (v += f(y / t)), (y %= t), m.splice(y++, 0, v); } return C(m); } function x(e) { var t, i, r, n, a, o, s, u, d, h, p, _, y, C, A, x = []; for (_ = (e = v(e)).length, t = 128, i = 0, a = 72, o = 0; o < _; ++o) (p = e[o]) < 128 && x.push(m(p)); for (r = n = x.length, n && x.push('-'); r < _; ) { for (s = l, o = 0; o < _; ++o) (p = e[o]) >= t && p < s && (s = p); for ( s - t > f((l - i) / (y = r + 1)) && g('overflow'), i += (s - t) * y, t = s, o = 0; o < _; ++o ) if (((p = e[o]) < t && ++i > l && g('overflow'), p == t)) { for (u = i, d = c; !(u < (h = d <= a ? 1 : d >= a + 26 ? 26 : d - a)); d += c) (A = u - h), (C = c - h), x.push(m(T(h + (A % C), 0))), (u = f(A / C)); x.push(m(T(u, 0))), (a = S(i, y, r == n)), (i = 0), ++r; } ++i, ++t; } return x.join(''); } if ( ((o = { version: '1.3.2', ucs2: { decode: v, encode: C }, decode: A, encode: x, toASCII: function (e) { return y(e, function (e) { return d.test(e) ? 'xn--' + x(e) : e; }); }, toUnicode: function (e) { return y(e, function (e) { return u.test(e) ? A(e.slice(4).toLowerCase()) : e; }); }, }), r && n) ) if (e.exports == r) n.exports = o; else for (s in o) o.hasOwnProperty(s) && (r[s] = o[s]); else i.punycode = o; })(commonjsGlobal); }), IPv6 = createCommonjsModule(function (e) { /*! * URI.js - Mutating URLs * IPv6 Support * * Version: 1.19.7 * * Author: Rodney Rehm * Web: http://medialize.github.io/URI.js/ * * Licensed under * MIT License http://www.opensource.org/licenses/mit-license * */ var t, i; (t = commonjsGlobal), (i = function (e) { var t = e && e.IPv6; return { best: function (e) { var t, i, r = e.toLowerCase().split(':'), n = r.length, a = 8; for ( '' === r[0] && '' === r[1] && '' === r[2] ? (r.shift(), r.shift()) : '' === r[0] && '' === r[1] ? r.shift() : '' === r[n - 1] && '' === r[n - 2] && r.pop(), -1 !== r[(n = r.length) - 1].indexOf('.') && (a = 7), t = 0; t < n && '' !== r[t]; t++ ); if (t < a) for (r.splice(t, 1, '0000'); r.length < a; ) r.splice(t, 0, '0000'); for (var o = 0; o < a; o++) { i = r[o].split(''); for (var s = 0; s < 3 && '0' === i[0] && i.length > 1; s++) i.splice(0, 1); r[o] = i.join(''); } var l = -1, c = 0, u = 0, d = -1, h = !1; for (o = 0; o < a; o++) h ? '0' === r[o] ? (u += 1) : ((h = !1), u > c && ((l = d), (c = u))) : '0' === r[o] && ((h = !0), (d = o), (u = 1)); u > c && ((l = d), (c = u)), c > 1 && r.splice(l, c, ''), (n = r.length); var p = ''; for ('' === r[0] && (p = ':'), o = 0; o < n && ((p += r[o]), o !== n - 1); o++) p += ':'; return '' === r[n - 1] && (p += ':'), p; }, noConflict: function () { return e.IPv6 === this && (e.IPv6 = t), this; }, }; }), e.exports ? (e.exports = i()) : (t.IPv6 = i(t)); }), SecondLevelDomains = createCommonjsModule(function (e) { /*! * URI.js - Mutating URLs * Second Level Domain (SLD) Support * * Version: 1.19.7 * * Author: Rodney Rehm * Web: http://medialize.github.io/URI.js/ * * Licensed under * MIT License http://www.opensource.org/licenses/mit-license * */ var t, i; (t = commonjsGlobal), (i = function (e) { var t = e && e.SecondLevelDomains, i = { 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 (e) { var t = e.lastIndexOf('.'); if (t <= 0 || t >= e.length - 1) return !1; var r = e.lastIndexOf('.', t - 1); if (r <= 0 || r >= t - 1) return !1; var n = i.list[e.slice(t + 1)]; return !!n && n.indexOf(' ' + e.slice(r + 1, t) + ' ') >= 0; }, is: function (e) { var t = e.lastIndexOf('.'); if (t <= 0 || t >= e.length - 1) return !1; if (e.lastIndexOf('.', t - 1) >= 0) return !1; var r = i.list[e.slice(t + 1)]; return !!r && r.indexOf(' ' + e.slice(0, t) + ' ') >= 0; }, get: function (e) { var t = e.lastIndexOf('.'); if (t <= 0 || t >= e.length - 1) return null; var r = e.lastIndexOf('.', t - 1); if (r <= 0 || r >= t - 1) return null; var n = i.list[e.slice(t + 1)]; return n ? n.indexOf(' ' + e.slice(r + 1, t) + ' ') < 0 ? null : e.slice(r + 1) : null; }, noConflict: function () { return e.SecondLevelDomains === this && (e.SecondLevelDomains = t), this; }, }; return i; }), e.exports ? (e.exports = i()) : (t.SecondLevelDomains = i(t)); }), URI = createCommonjsModule(function (e) { /*! * URI.js - Mutating URLs * * Version: 1.19.7 * * Author: Rodney Rehm * Web: http://medialize.github.io/URI.js/ * * Licensed under * MIT License http://www.opensource.org/licenses/mit-license * */ var t, i; (t = commonjsGlobal), (i = function (e, t, i, r) { var n = r && r.URI; function a(e, t) { var i = arguments.length >= 1, r = arguments.length >= 2; if (!(this instanceof a)) return i ? (r ? new a(e, t) : new a(e)) : new a(); if (void 0 === e) { if (i) throw new TypeError('undefined is not a valid argument for URI'); e = 'undefined' != typeof location ? location.href + '' : ''; } if (null === e && i) throw new TypeError('null is not a valid argument for URI'); return this.href(e), void 0 !== t ? this.absoluteTo(t) : this; } a.version = '1.19.7'; var o = a.prototype, s = Object.prototype.hasOwnProperty; function l(e) { return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); } function c(e) { return void 0 === e ? 'Undefined' : String(Object.prototype.toString.call(e)).slice(8, -1); } function u(e) { return 'Array' === c(e); } function d(e, t) { var i, r, n = {}; if ('RegExp' === c(t)) n = null; else if (u(t)) for (i = 0, r = t.length; i < r; i++) n[t[i]] = !0; else n[t] = !0; for (i = 0, r = e.length; i < r; i++) ((n && void 0 !== n[e[i]]) || (!n && t.test(e[i]))) && (e.splice(i, 1), r--, i--); return e; } function h(e, t) { var i, r; if (u(t)) { for (i = 0, r = t.length; i < r; i++) if (!h(e, t[i])) return !1; return !0; } var n = c(t); for (i = 0, r = e.length; i < r; i++) if ('RegExp' === n) { if ('string' == typeof e[i] && e[i].match(t)) return !0; } else if (e[i] === t) return !0; return !1; } function p(e, t) { if (!u(e) || !u(t)) return !1; if (e.length !== t.length) return !1; e.sort(), t.sort(); for (var i = 0, r = e.length; i < r; i++) if (e[i] !== t[i]) return !1; return !0; } function f(e) { return e.replace(/^\/+|\/+$/g, ''); } function m(e) { return escape(e); } function g(e) { return encodeURIComponent(e) .replace(/[!'()*]/g, m) .replace(/\*/g, '%2A'); } (a._parts = function () { return { protocol: null, username: null, password: null, hostname: null, urn: null, port: null, path: null, query: null, fragment: null, preventInvalidHostname: a.preventInvalidHostname, duplicateQueryParameters: a.duplicateQueryParameters, escapeQuerySpace: a.escapeQuerySpace, }; }), (a.preventInvalidHostname = !1), (a.duplicateQueryParameters = !1), (a.escapeQuerySpace = !0), (a.protocol_expression = /^[a-z][a-z0-9.+-]*$/i), (a.idn_expression = /[^a-z0-9\._-]/i), (a.punycode_expression = /(xn--)/i), (a.ip4_expression = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/), (a.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*$/), (a.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`!()\[\]{};:'".,<>?«»“”‘’]))/gi), (a.findUri = { start: /\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi, end: /[\s\r\n]|$/, trim: /[`!()\[\]{};:'".,<>?«»“”„‘’]+$/, parens: /(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g, }), (a.defaultPorts = { http: '80', https: '443', ftp: '21', gopher: '70', ws: '80', wss: '443', }), (a.hostProtocols = ['http', 'https']), (a.invalid_hostname_characters = /[^a-zA-Z0-9\.\-:_]/), (a.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', }), (a.getDomAttribute = function (e) { if (e && e.nodeName) { var t = e.nodeName.toLowerCase(); if ('input' !== t || 'image' === e.type) return a.domAttributes[t]; } }), (a.encode = g), (a.decode = decodeURIComponent), (a.iso8859 = function () { (a.encode = escape), (a.decode = unescape); }), (a.unicode = function () { (a.encode = g), (a.decode = decodeURIComponent); }), (a.characters = { pathname: { encode: { expression: /%(24|26|2B|2C|3B|3D|3A|40)/gi, 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)/gi, 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)/gi, map: { '%21': '!', '%24': '$', '%27': "'", '%28': '(', '%29': ')', '%2A': '*', '%2B': '+', '%2C': ',', '%3B': ';', '%3D': '=', '%40': '@', }, }, decode: { expression: /[\/\?#:]/g, map: { '/': '%2F', '?': '%3F', '#': '%23', ':': '%3A' }, }, }, }), (a.encodeQuery = function (e, t) { var i = a.encode(e + ''); return void 0 === t && (t = a.escapeQuerySpace), t ? i.replace(/%20/g, '+') : i; }), (a.decodeQuery = function (e, t) { (e += ''), void 0 === t && (t = a.escapeQuerySpace); try { return a.decode(t ? e.replace(/\+/g, '%20') : e); } catch (t) { return e; } }); var _, y = { encode: 'encode', decode: 'decode' }, v = function (e, t) { return function (i) { try { return a[t](i + '').replace(a.characters[e][t].expression, function (i) { return a.characters[e][t].map[i]; }); } catch (e) { return i; } }; }; for (_ in y) (a[_ + 'PathSegment'] = v('pathname', y[_])), (a[_ + 'UrnPathSegment'] = v('urnpath', y[_])); var C = function (e, t, i) { return function (r) { var n; n = i ? function (e) { return a[t](a[i](e)); } : a[t]; for (var o = (r + '').split(e), s = 0, l = o.length; s < l; s++) o[s] = n(o[s]); return o.join(e); }; }; function T(e) { return function (t, i) { return void 0 === t ? this._parts[e] || '' : ((this._parts[e] = t || null), this.build(!i), this); }; } function S(e, t) { return function (i, r) { return void 0 === i ? this._parts[e] || '' : (null !== i && (i += '').charAt(0) === t && (i = i.substring(1)), (this._parts[e] = i), this.build(!r), this); }; } (a.decodePath = C('/', 'decodePathSegment')), (a.decodeUrnPath = C(':', 'decodeUrnPathSegment')), (a.recodePath = C('/', 'encodePathSegment', 'decode')), (a.recodeUrnPath = C(':', 'encodeUrnPathSegment', 'decode')), (a.encodeReserved = v('reserved', 'encode')), (a.parse = function (e, t) { var i; return ( t || (t = { preventInvalidHostname: a.preventInvalidHostname }), (i = e.indexOf('#')) > -1 && ((t.fragment = e.substring(i + 1) || null), (e = e.substring(0, i))), (i = e.indexOf('?')) > -1 && ((t.query = e.substring(i + 1) || null), (e = e.substring(0, i))), '//' === (e = e.replace(/^(https?|ftp|wss?)?:[/\\]*/, '$1://')).substring(0, 2) ? ((t.protocol = null), (e = e.substring(2)), (e = a.parseAuthority(e, t))) : (i = e.indexOf(':')) > -1 && ((t.protocol = e.substring(0, i) || null), t.protocol && !t.protocol.match(a.protocol_expression) ? (t.protocol = void 0) : '//' === e.substring(i + 1, i + 3).replace(/\\/g, '/') ? ((e = e.substring(i + 3)), (e = a.parseAuthority(e, t))) : ((e = e.substring(i + 1)), (t.urn = !0))), (t.path = e), t ); }), (a.parseHost = function (e, t) { e || (e = ''); var i, r, n = (e = e.replace(/\\/g, '/')).indexOf('/'); if ((-1 === n && (n = e.length), '[' === e.charAt(0))) (i = e.indexOf(']')), (t.hostname = e.substring(1, i) || null), (t.port = e.substring(i + 2, n) || null), '/' === t.port && (t.port = null); else { var o = e.indexOf(':'), s = e.indexOf('/'), l = e.indexOf(':', o + 1); -1 !== l && (-1 === s || l < s) ? ((t.hostname = e.substring(0, n) || null), (t.port = null)) : ((r = e.substring(0, n).split(':')), (t.hostname = r[0] || null), (t.port = r[1] || null)); } return ( t.hostname && '/' !== e.substring(n).charAt(0) && (n++, (e = '/' + e)), t.preventInvalidHostname && a.ensureValidHostname(t.hostname, t.protocol), t.port && a.ensureValidPort(t.port), e.substring(n) || '/' ); }), (a.parseAuthority = function (e, t) { return (e = a.parseUserinfo(e, t)), a.parseHost(e, t); }), (a.parseUserinfo = function (e, t) { var i = e; -1 !== e.indexOf('\\') && (e = e.replace(/\\/g, '/')); var r, n = e.indexOf('/'), o = e.lastIndexOf('@', n > -1 ? n : e.length - 1); return ( o > -1 && (-1 === n || o < n) ? ((r = e.substring(0, o).split(':')), (t.username = r[0] ? a.decode(r[0]) : null), r.shift(), (t.password = r[0] ? a.decode(r.join(':')) : null), (e = i.substring(o + 1))) : ((t.username = null), (t.password = null)), e ); }), (a.parseQuery = function (e, t) { if (!e) return {}; if (!(e = e.replace(/&+/g, '&').replace(/^\?*&*|&+$/g, ''))) return {}; for (var i, r, n, o = {}, l = e.split('&'), c = l.length, u = 0; u < c; u++) (i = l[u].split('=')), (r = a.decodeQuery(i.shift(), t)), (n = i.length ? a.decodeQuery(i.join('='), t) : null), '__proto__' !== r && (s.call(o, r) ? (('string' != typeof o[r] && null !== o[r]) || (o[r] = [o[r]]), o[r].push(n)) : (o[r] = n)); return o; }), (a.build = function (e) { var t = '', i = !1; return ( e.protocol && (t += e.protocol + ':'), e.urn || (!t && !e.hostname) || ((t += '//'), (i = !0)), (t += a.buildAuthority(e) || ''), 'string' == typeof e.path && ('/' !== e.path.charAt(0) && i && (t += '/'), (t += e.path)), 'string' == typeof e.query && e.query && (t += '?' + e.query), 'string' == typeof e.fragment && e.fragment && (t += '#' + e.fragment), t ); }), (a.buildHost = function (e) { var t = ''; return e.hostname ? (a.ip6_expression.test(e.hostname) ? (t += '[' + e.hostname + ']') : (t += e.hostname), e.port && (t += ':' + e.port), t) : ''; }), (a.buildAuthority = function (e) { return a.buildUserinfo(e) + a.buildHost(e); }), (a.buildUserinfo = function (e) { var t = ''; return ( e.username && (t += a.encode(e.username)), e.password && (t += ':' + a.encode(e.password)), t && (t += '@'), t ); }), (a.buildQuery = function (e, t, i) { var r, n, o, l, c = ''; for (n in e) if ('__proto__' !== n && s.call(e, n)) if (u(e[n])) for (r = {}, o = 0, l = e[n].length; o < l; o++) void 0 !== e[n][o] && void 0 === r[e[n][o] + ''] && ((c += '&' + a.buildQueryParameter(n, e[n][o], i)), !0 !== t && (r[e[n][o] + ''] = !0)); else void 0 !== e[n] && (c += '&' + a.buildQueryParameter(n, e[n], i)); return c.substring(1); }), (a.buildQueryParameter = function (e, t, i) { return a.encodeQuery(e, i) + (null !== t ? '=' + a.encodeQuery(t, i) : ''); }), (a.addQuery = function (e, t, i) { if ('object' == typeof t) for (var r in t) s.call(t, r) && a.addQuery(e, r, t[r]); else { if ('string' != typeof t) throw new TypeError( 'URI.addQuery() accepts an object, string as the name parameter' ); if (void 0 === e[t]) return void (e[t] = i); 'string' == typeof e[t] && (e[t] = [e[t]]), u(i) || (i = [i]), (e[t] = (e[t] || []).concat(i)); } }), (a.setQuery = function (e, t, i) { if ('object' == typeof t) for (var r in t) s.call(t, r) && a.setQuery(e, r, t[r]); else { if ('string' != typeof t) throw new TypeError( 'URI.setQuery() accepts an object, string as the name parameter' ); e[t] = void 0 === i ? null : i; } }), (a.removeQuery = function (e, t, i) { var r, n, o; if (u(t)) for (r = 0, n = t.length; r < n; r++) e[t[r]] = void 0; else if ('RegExp' === c(t)) for (o in e) t.test(o) && (e[o] = void 0); else if ('object' == typeof t) for (o in t) s.call(t, o) && a.removeQuery(e, o, t[o]); else { if ('string' != typeof t) throw new TypeError( 'URI.removeQuery() accepts an object, string, RegExp as the first parameter' ); void 0 !== i ? 'RegExp' === c(i) ? !u(e[t]) && i.test(e[t]) ? (e[t] = void 0) : (e[t] = d(e[t], i)) : e[t] !== String(i) || (u(i) && 1 !== i.length) ? u(e[t]) && (e[t] = d(e[t], i)) : (e[t] = void 0) : (e[t] = void 0); } }), (a.hasQuery = function (e, t, i, r) { switch (c(t)) { case 'String': break; case 'RegExp': for (var n in e) if (s.call(e, n) && t.test(n) && (void 0 === i || a.hasQuery(e, n, i))) return !0; return !1; case 'Object': for (var o in t) if (s.call(t, o) && !a.hasQuery(e, o, t[o])) return !1; return !0; default: throw new TypeError( 'URI.hasQuery() accepts a string, regular expression or object as the name parameter' ); } switch (c(i)) { case 'Undefined': return t in e; case 'Boolean': return i === Boolean(u(e[t]) ? e[t].length : e[t]); case 'Function': return !!i(e[t], t, e); case 'Array': return !!u(e[t]) && (r ? h : p)(e[t], i); case 'RegExp': return u(e[t]) ? !!r && h(e[t], i) : Boolean(e[t] && e[t].match(i)); case 'Number': i = String(i); case 'String': return u(e[t]) ? !!r && h(e[t], i) : e[t] === i; default: throw new TypeError( 'URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter' ); } }), (a.joinPaths = function () { for (var e = [], t = [], i = 0, r = 0; r < arguments.length; r++) { var n = new a(arguments[r]); e.push(n); for (var o = n.segment(), s = 0; s < o.length; s++) 'string' == typeof o[s] && t.push(o[s]), o[s] && i++; } if (!t.length || !i) return new a(''); var l = new a('').segment(t); return ( ('' !== e[0].path() && '/' !== e[0].path().slice(0, 1)) || l.path('/' + l.path()), l.normalize() ); }), (a.commonPath = function (e, t) { var i, r = Math.min(e.length, t.length); for (i = 0; i < r; i++) if (e.charAt(i) !== t.charAt(i)) { i--; break; } return i < 1 ? e.charAt(0) === t.charAt(0) && '/' === e.charAt(0) ? '/' : '' : (('/' === e.charAt(i) && '/' === t.charAt(i)) || (i = e.substring(0, i).lastIndexOf('/')), e.substring(0, i + 1)); }), (a.withinString = function (e, t, i) { i || (i = {}); var r = i.start || a.findUri.start, n = i.end || a.findUri.end, o = i.trim || a.findUri.trim, s = i.parens || a.findUri.parens, l = /[a-z0-9-]=["']?$/i; for (r.lastIndex = 0; ; ) { var c = r.exec(e); if (!c) break; var u = c.index; if (i.ignoreHtml) { var d = e.slice(Math.max(u - 3, 0), u); if (d && l.test(d)) continue; } for (var h = u + e.slice(u).search(n), p = e.slice(u, h), f = -1; ; ) { var m = s.exec(p); if (!m) break; var g = m.index + m[0].length; f = Math.max(f, g); } if ( !( (p = f > -1 ? p.slice(0, f) + p.slice(f).replace(o, '') : p.replace(o, '')) .length <= c[0].length || (i.ignore && i.ignore.test(p)) ) ) { var _ = t(p, u, (h = u + p.length), e); void 0 !== _ ? ((_ = String(_)), (e = e.slice(0, u) + _ + e.slice(h)), (r.lastIndex = u + _.length)) : (r.lastIndex = h); } } return (r.lastIndex = 0), e; }), (a.ensureValidHostname = function (t, i) { var r = !!t, n = !1; if ((!!i && (n = h(a.hostProtocols, i)), n && !r)) throw new TypeError('Hostname cannot be empty, if protocol is ' + i); if (t && t.match(a.invalid_hostname_characters)) { if (!e) throw new TypeError( 'Hostname "' + t + '" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available' ); if (e.toASCII(t).match(a.invalid_hostname_characters)) throw new TypeError( 'Hostname "' + t + '" contains characters other than [A-Z0-9.-:_]' ); } }), (a.ensureValidPort = function (e) { if (e) { var t = Number(e); if (!(/^[0-9]+$/.test(t) && t > 0 && t < 65536)) throw new TypeError('Port "' + e + '" is not a valid port'); } }), (a.noConflict = function (e) { if (e) { var t = { URI: this.noConflict() }; return ( r.URITemplate && 'function' == typeof r.URITemplate.noConflict && (t.URITemplate = r.URITemplate.noConflict()), r.IPv6 && 'function' == typeof r.IPv6.noConflict && (t.IPv6 = r.IPv6.noConflict()), r.SecondLevelDomains && 'function' == typeof r.SecondLevelDomains.noConflict && (t.SecondLevelDomains = r.SecondLevelDomains.noConflict()), t ); } return r.URI === this && (r.URI = n), this; }), (o.build = function (e) { return ( !0 === e ? (this._deferred_build = !0) : (void 0 === e || this._deferred_build) && ((this._string = a.build(this._parts)), (this._deferred_build = !1)), this ); }), (o.clone = function () { return new a(this); }), (o.valueOf = o.toString = function () { return this.build(!1)._string; }), (o.protocol = T('protocol')), (o.username = T('username')), (o.password = T('password')), (o.hostname = T('hostname')), (o.port = T('port')), (o.query = S('query', '?')), (o.fragment = S('fragment', '#')), (o.search = function (e, t) { var i = this.query(e, t); return 'string' == typeof i && i.length ? '?' + i : i; }), (o.hash = function (e, t) { var i = this.fragment(e, t); return 'string' == typeof i && i.length ? '#' + i : i; }), (o.pathname = function (e, t) { if (void 0 === e || !0 === e) { var i = this._parts.path || (this._parts.hostname ? '/' : ''); return e ? (this._parts.urn ? a.decodeUrnPath : a.decodePath)(i) : i; } return ( this._parts.urn ? (this._parts.path = e ? a.recodeUrnPath(e) : '') : (this._parts.path = e ? a.recodePath(e) : '/'), this.build(!t), this ); }), (o.path = o.pathname), (o.href = function (e, t) { var i; if (void 0 === e) return this.toString(); (this._string = ''), (this._parts = a._parts()); var r = e instanceof a, n = 'object' == typeof e && (e.hostname || e.path || e.pathname); if ( (e.nodeName && ((e = e[a.getDomAttribute(e)] || ''), (n = !1)), !r && n && void 0 !== e.pathname && (e = e.toString()), 'string' == typeof e || e instanceof String) ) this._parts = a.parse(String(e), this._parts); else { if (!r && !n) throw new TypeError('invalid input'); var o = r ? e._parts : e; for (i in o) 'query' !== i && s.call(this._parts, i) && (this._parts[i] = o[i]); o.query && this.query(o.query, !1); } return this.build(!t), this; }), (o.is = function (e) { var t = !1, r = !1, n = !1, o = !1, s = !1, l = !1, c = !1, u = !this._parts.urn; switch ( (this._parts.hostname && ((u = !1), (r = a.ip4_expression.test(this._parts.hostname)), (n = a.ip6_expression.test(this._parts.hostname)), (s = (o = !(t = r || n)) && i && i.has(this._parts.hostname)), (l = o && a.idn_expression.test(this._parts.hostname)), (c = o && a.punycode_expression.test(this._parts.hostname))), e.toLowerCase()) ) { case 'relative': return u; case 'absolute': return !u; case 'domain': case 'name': return o; case 'sld': return s; case 'ip': return t; case 'ip4': case 'ipv4': case 'inet4': return r; case 'ip6': case 'ipv6': case 'inet6': return n; case 'idn': return l; case 'url': return !this._parts.urn; case 'urn': return !!this._parts.urn; case 'punycode': return c; } return null; }); var A = o.protocol, x = o.port, E = o.hostname; (o.protocol = function (e, t) { if (e && !(e = e.replace(/:(\/\/)?$/, '')).match(a.protocol_expression)) throw new TypeError( 'Protocol "' + e + '" contains characters other than [A-Z0-9.+-] or doesn\'t start with [A-Z]' ); return A.call(this, e, t); }), (o.scheme = o.protocol), (o.port = function (e, t) { return this._parts.urn ? void 0 === e ? '' : this : (void 0 !== e && (0 === e && (e = null), e && (':' === (e += '').charAt(0) && (e = e.substring(1)), a.ensureValidPort(e))), x.call(this, e, t)); }), (o.hostname = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (void 0 !== e) { var i = { preventInvalidHostname: this._parts.preventInvalidHostname }; if ('/' !== a.parseHost(e, i)) throw new TypeError( 'Hostname "' + e + '" contains characters other than [A-Z0-9.-]' ); (e = i.hostname), this._parts.preventInvalidHostname && a.ensureValidHostname(e, this._parts.protocol); } return E.call(this, e, t); }), (o.origin = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (void 0 === e) { var i = this.protocol(); return this.authority() ? (i ? i + '://' : '') + this.authority() : ''; } var r = a(e); return this.protocol(r.protocol()).authority(r.authority()).build(!t), this; }), (o.host = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (void 0 === e) return this._parts.hostname ? a.buildHost(this._parts) : ''; if ('/' !== a.parseHost(e, this._parts)) throw new TypeError( 'Hostname "' + e + '" contains characters other than [A-Z0-9.-]' ); return this.build(!t), this; }), (o.authority = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (void 0 === e) return this._parts.hostname ? a.buildAuthority(this._parts) : ''; if ('/' !== a.parseAuthority(e, this._parts)) throw new TypeError( 'Hostname "' + e + '" contains characters other than [A-Z0-9.-]' ); return this.build(!t), this; }), (o.userinfo = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (void 0 === e) { var i = a.buildUserinfo(this._parts); return i ? i.substring(0, i.length - 1) : i; } return ( '@' !== e[e.length - 1] && (e += '@'), a.parseUserinfo(e, this._parts), this.build(!t), this ); }), (o.resource = function (e, t) { var i; return void 0 === e ? this.path() + this.search() + this.hash() : ((i = a.parse(e)), (this._parts.path = i.path), (this._parts.query = i.query), (this._parts.fragment = i.fragment), this.build(!t), this); }), (o.subdomain = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (void 0 === e) { if (!this._parts.hostname || this.is('IP')) return ''; var i = this._parts.hostname.length - this.domain().length - 1; return this._parts.hostname.substring(0, i) || ''; } var r = this._parts.hostname.length - this.domain().length, n = this._parts.hostname.substring(0, r), o = new RegExp('^' + l(n)); if ((e && '.' !== e.charAt(e.length - 1) && (e += '.'), -1 !== e.indexOf(':'))) throw new TypeError('Domains cannot contain colons'); return ( e && a.ensureValidHostname(e, this._parts.protocol), (this._parts.hostname = this._parts.hostname.replace(o, e)), this.build(!t), this ); }), (o.domain = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (('boolean' == typeof e && ((t = e), (e = void 0)), void 0 === e)) { if (!this._parts.hostname || this.is('IP')) return ''; var i = this._parts.hostname.match(/\./g); if (i && i.length < 2) return this._parts.hostname; var r = this._parts.hostname.length - this.tld(t).length - 1; return ( (r = this._parts.hostname.lastIndexOf('.', r - 1) + 1), this._parts.hostname.substring(r) || '' ); } if (!e) throw new TypeError('cannot set domain empty'); if (-1 !== e.indexOf(':')) throw new TypeError('Domains cannot contain colons'); if ( (a.ensureValidHostname(e, this._parts.protocol), !this._parts.hostname || this.is('IP')) ) this._parts.hostname = e; else { var n = new RegExp(l(this.domain()) + '$'); this._parts.hostname = this._parts.hostname.replace(n, e); } return this.build(!t), this; }), (o.tld = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (('boolean' == typeof e && ((t = e), (e = void 0)), void 0 === e)) { if (!this._parts.hostname || this.is('IP')) return ''; var r = this._parts.hostname.lastIndexOf('.'), n = this._parts.hostname.substring(r + 1); return ( (!0 !== t && i && i.list[n.toLowerCase()] && i.get(this._parts.hostname)) || n ); } var a; if (!e) throw new TypeError('cannot set TLD empty'); if (e.match(/[^a-zA-Z0-9-]/)) { if (!i || !i.is(e)) throw new TypeError('TLD "' + e + '" contains characters other than [A-Z0-9]'); (a = new RegExp(l(this.tld()) + '$')), (this._parts.hostname = this._parts.hostname.replace(a, e)); } else { if (!this._parts.hostname || this.is('IP')) throw new ReferenceError('cannot set TLD on non-domain host'); (a = new RegExp(l(this.tld()) + '$')), (this._parts.hostname = this._parts.hostname.replace(a, e)); } return this.build(!t), this; }), (o.directory = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (void 0 === e || !0 === e) { if (!this._parts.path && !this._parts.hostname) return ''; if ('/' === this._parts.path) return '/'; var i = this._parts.path.length - this.filename().length - 1, r = this._parts.path.substring(0, i) || (this._parts.hostname ? '/' : ''); return e ? a.decodePath(r) : r; } var n = this._parts.path.length - this.filename().length, o = this._parts.path.substring(0, n), s = new RegExp('^' + l(o)); return ( this.is('relative') || (e || (e = '/'), '/' !== e.charAt(0) && (e = '/' + e)), e && '/' !== e.charAt(e.length - 1) && (e += '/'), (e = a.recodePath(e)), (this._parts.path = this._parts.path.replace(s, e)), this.build(!t), this ); }), (o.filename = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if ('string' != typeof e) { if (!this._parts.path || '/' === this._parts.path) return ''; var i = this._parts.path.lastIndexOf('/'), r = this._parts.path.substring(i + 1); return e ? a.decodePathSegment(r) : r; } var n = !1; '/' === e.charAt(0) && (e = e.substring(1)), e.match(/\.?\//) && (n = !0); var o = new RegExp(l(this.filename()) + '$'); return ( (e = a.recodePath(e)), (this._parts.path = this._parts.path.replace(o, e)), n ? this.normalizePath(t) : this.build(!t), this ); }), (o.suffix = function (e, t) { if (this._parts.urn) return void 0 === e ? '' : this; if (void 0 === e || !0 === e) { if (!this._parts.path || '/' === this._parts.path) return ''; var i, r, n = this.filename(), o = n.lastIndexOf('.'); return -1 === o ? '' : ((i = n.substring(o + 1)), (r = /^[a-z0-9%]+$/i.test(i) ? i : ''), e ? a.decodePathSegment(r) : r); } '.' === e.charAt(0) && (e = e.substring(1)); var s, c = this.suffix(); if (c) s = e ? new RegExp(l(c) + '$') : new RegExp(l('.' + c) + '$'); else { if (!e) return this; this._parts.path += '.' + a.recodePath(e); } return ( s && ((e = a.recodePath(e)), (this._parts.path = this._parts.path.replace(s, e))), this.build(!t), this ); }), (o.segment = function (e, t, i) { var r = this._parts.urn ? ':' : '/', n = this.path(), a = '/' === n.substring(0, 1), o = n.split(r); if ( (void 0 !== e && 'number' != typeof e && ((i = t), (t = e), (e = void 0)), void 0 !== e && 'number' != typeof e) ) throw new Error('Bad segment "' + e + '", must be 0-based integer'); if ((a && o.shift(), e < 0 && (e = Math.max(o.length + e, 0)), void 0 === t)) return void 0 === e ? o : o[e]; if (null === e || void 0 === o[e]) if (u(t)) { o = []; for (var s = 0, l = t.length; s < l; s++) (t[s].length || (o.length && o[o.length - 1].length)) && (o.length && !o[o.length - 1].length && o.pop(), o.push(f(t[s]))); } else (t || 'string' == typeof t) && ((t = f(t)), '' === o[o.length - 1] ? (o[o.length - 1] = t) : o.push(t)); else t ? (o[e] = f(t)) : o.splice(e, 1); return a && o.unshift(''), this.path(o.join(r), i); }), (o.segmentCoded = function (e, t, i) { var r, n, o; if (('number' != typeof e && ((i = t), (t = e), (e = void 0)), void 0 === t)) { if (u((r = this.segment(e, t, i)))) for (n = 0, o = r.length; n < o; n++) r[n] = a.decode(r[n]); else r = void 0 !== r ? a.decode(r) : void 0; return r; } if (u(t)) for (n = 0, o = t.length; n < o; n++) t[n] = a.encode(t[n]); else t = 'string' == typeof t || t instanceof String ? a.encode(t) : t; return this.segment(e, t, i); }); var b = o.query; return ( (o.query = function (e, t) { if (!0 === e) return a.parseQuery(this._parts.query, this._parts.escapeQuerySpace); if ('function' == typeof e) { var i = a.parseQuery(this._parts.query, this._parts.escapeQuerySpace), r = e.call(this, i); return ( (this._parts.query = a.buildQuery( r || i, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace )), this.build(!t), this ); } return void 0 !== e && 'string' != typeof e ? ((this._parts.query = a.buildQuery( e, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace )), this.build(!t), this) : b.call(this, e, t); }), (o.setQuery = function (e, t, i) { var r = a.parseQuery(this._parts.query, this._parts.escapeQuerySpace); if ('string' == typeof e || e instanceof String) r[e] = void 0 !== t ? t : null; else { if ('object' != typeof e) throw new TypeError( 'URI.addQuery() accepts an object, string as the name parameter' ); for (var n in e) s.call(e, n) && (r[n] = e[n]); } return ( (this._parts.query = a.buildQuery( r, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace )), 'string' != typeof e && (i = t), this.build(!i), this ); }), (o.addQuery = function (e, t, i) { var r = a.parseQuery(this._parts.query, this._parts.escapeQuerySpace); return ( a.addQuery(r, e, void 0 === t ? null : t), (this._parts.query = a.buildQuery( r, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace )), 'string' != typeof e && (i = t), this.build(!i), this ); }), (o.removeQuery = function (e, t, i) { var r = a.parseQuery(this._parts.query, this._parts.escapeQuerySpace); return ( a.removeQuery(r, e, t), (this._parts.query = a.buildQuery( r, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace )), 'string' != typeof e && (i = t), this.build(!i), this ); }), (o.hasQuery = function (e, t, i) { var r = a.parseQuery(this._parts.query, this._parts.escapeQuerySpace); return a.hasQuery(r, e, t, i); }), (o.setSearch = o.setQuery), (o.addSearch = o.addQuery), (o.removeSearch = o.removeQuery), (o.hasSearch = o.hasQuery), (o.normalize = function () { return this._parts.urn ? this.normalizeProtocol(!1) .normalizePath(!1) .normalizeQuery(!1) .normalizeFragment(!1) .build() : this.normalizeProtocol(!1) .normalizeHostname(!1) .normalizePort(!1) .normalizePath(!1) .normalizeQuery(!1) .normalizeFragment(!1) .build(); }), (o.normalizeProtocol = function (e) { return ( 'string' == typeof this._parts.protocol && ((this._parts.protocol = this._parts.protocol.toLowerCase()), this.build(!e)), this ); }), (o.normalizeHostname = function (i) { return ( this._parts.hostname && (this.is('IDN') && e ? (this._parts.hostname = e.toASCII(this._parts.hostname)) : this.is('IPv6') && t && (this._parts.hostname = t.best(this._parts.hostname)), (this._parts.hostname = this._parts.hostname.toLowerCase()), this.build(!i)), this ); }), (o.normalizePort = function (e) { return ( 'string' == typeof this._parts.protocol && this._parts.port === a.defaultPorts[this._parts.protocol] && ((this._parts.port = null), this.build(!e)), this ); }), (o.normalizePath = function (e) { var t, i = this._parts.path; if (!i) return this; if (this._parts.urn) return (this._parts.path = a.recodeUrnPath(this._parts.path)), this.build(!e), this; if ('/' === this._parts.path) return this; var r, n, o = ''; for ( '/' !== (i = a.recodePath(i)).charAt(0) && ((t = !0), (i = '/' + i)), ('/..' !== i.slice(-3) && '/.' !== i.slice(-2)) || (i += '/'), i = i.replace(/(\/(\.\/)+)|(\/\.$)/g, '/').replace(/\/{2,}/g, '/'), t && (o = i.substring(1).match(/^(\.\.\/)+/) || '') && (o = o[0]); -1 !== (r = i.search(/\/\.\.(\/|$)/)); ) 0 !== r ? (-1 === (n = i.substring(0, r).lastIndexOf('/')) && (n = r), (i = i.substring(0, n) + i.substring(r + 3))) : (i = i.substring(3)); return ( t && this.is('relative') && (i = o + i.substring(1)), (this._parts.path = i), this.build(!e), this ); }), (o.normalizePathname = o.normalizePath), (o.normalizeQuery = function (e) { return ( 'string' == typeof this._parts.query && (this._parts.query.length ? this.query(a.parseQuery(this._parts.query, this._parts.escapeQuerySpace)) : (this._parts.query = null), this.build(!e)), this ); }), (o.normalizeFragment = function (e) { return this._parts.fragment || ((this._parts.fragment = null), this.build(!e)), this; }), (o.normalizeSearch = o.normalizeQuery), (o.normalizeHash = o.normalizeFragment), (o.iso8859 = function () { var e = a.encode, t = a.decode; (a.encode = escape), (a.decode = decodeURIComponent); try { this.normalize(); } finally { (a.encode = e), (a.decode = t); } return this; }), (o.unicode = function () { var e = a.encode, t = a.decode; (a.encode = g), (a.decode = unescape); try { this.normalize(); } finally { (a.encode = e), (a.decode = t); } return this; }), (o.readable = function () { var t = this.clone(); t.username('').password('').normalize(); var i = ''; if ( (t._parts.protocol && (i += t._parts.protocol + '://'), t._parts.hostname && (t.is('punycode') && e ? ((i += e.toUnicode(t._parts.hostname)), t._parts.port && (i += ':' + t._parts.port)) : (i += t.host())), t._parts.hostname && t._parts.path && '/' !== t._parts.path.charAt(0) && (i += '/'), (i += t.path(!0)), t._parts.query) ) { for (var r = '', n = 0, o = t._parts.query.split('&'), s = o.length; n < s; n++) { var l = (o[n] || '').split('='); (r += '&' + a.decodeQuery(l[0], this._parts.escapeQuerySpace).replace(/&/g, '%26')), void 0 !== l[1] && (r += '=' + a.decodeQuery(l[1], this._parts.escapeQuerySpace).replace(/&/g, '%26')); } i += '?' + r.substring(1); } return (i += a.decodeQuery(t.hash(), !0)); }), (o.absoluteTo = function (e) { var t, i, r, n = this.clone(), o = ['protocol', 'username', 'password', 'hostname', 'port']; if (this._parts.urn) throw new Error('URNs do not have any generally defined hierarchical components'); if ((e instanceof a || (e = new a(e)), n._parts.protocol)) return n; if (((n._parts.protocol = e._parts.protocol), this._parts.hostname)) return n; for (i = 0; (r = o[i]); i++) n._parts[r] = e._parts[r]; return ( n._parts.path ? ('..' === n._parts.path.substring(-2) && (n._parts.path += '/'), '/' !== n.path().charAt(0) && ((t = (t = e.directory()) || (0 === e.path().indexOf('/') ? '/' : '')), (n._parts.path = (t ? t + '/' : '') + n._parts.path), n.normalizePath())) : ((n._parts.path = e._parts.path), n._parts.query || (n._parts.query = e._parts.query)), n.build(), n ); }), (o.relativeTo = function (e) { var t, i, r, n, o, s = this.clone().normalize(); if (s._parts.urn) throw new Error('URNs do not have any generally defined hierarchical components'); if ( ((e = new a(e).normalize()), (t = s._parts), (i = e._parts), (n = s.path()), (o = e.path()), '/' !== n.charAt(0)) ) throw new Error('URI is already relative'); if ('/' !== o.charAt(0)) throw new Error('Cannot calculate a URI relative to another relative URI'); if ( (t.protocol === i.protocol && (t.protocol = null), t.username !== i.username || t.password !== i.password) ) return s.build(); if (null !== t.protocol || null !== t.username || null !== t.password) return s.build(); if (t.hostname !== i.hostname || t.port !== i.port) return s.build(); if (((t.hostname = null), (t.port = null), n === o)) return (t.path = ''), s.build(); if (!(r = a.commonPath(n, o))) return s.build(); var l = i.path .substring(r.length) .replace(/[^\/]*$/, '') .replace(/.*?\//g, '../'); return (t.path = l + t.path.substring(r.length) || './'), s.build(); }), (o.equals = function (e) { var t, i, r, n, o, l = this.clone(), c = new a(e), d = {}; if ((l.normalize(), c.normalize(), l.toString() === c.toString())) return !0; if ( ((r = l.query()), (n = c.query()), l.query(''), c.query(''), l.toString() !== c.toString()) ) return !1; if (r.length !== n.length) return !1; for (o in ((t = a.parseQuery(r, this._parts.escapeQuerySpace)), (i = a.parseQuery(n, this._parts.escapeQuerySpace)), t)) if (s.call(t, o)) { if (u(t[o])) { if (!p(t[o], i[o])) return !1; } else if (t[o] !== i[o]) return !1; d[o] = !0; } for (o in i) if (s.call(i, o) && !d[o]) return !1; return !0; }), (o.preventInvalidHostname = function (e) { return (this._parts.preventInvalidHostname = !!e), this; }), (o.duplicateQueryParameters = function (e) { return (this._parts.duplicateQueryParameters = !!e), this; }), (o.escapeQuerySpace = function (e) { return (this._parts.escapeQuerySpace = !!e), this; }), a ); }), e.exports ? (e.exports = i(punycode, IPv6, SecondLevelDomains)) : (t.URI = i(t.punycode, t.IPv6, t.SecondLevelDomains, t)); }); function getAbsoluteUri(e, t) { var i; return ( 'undefined' != typeof document && (i = document), getAbsoluteUri._implementation(e, t, i) ); } getAbsoluteUri._implementation = function (e, t, i) { if (!defined(t)) { if (void 0 === i) return e; t = defaultValue(i.baseURI, i.location.href); } var r = new URI(e); return '' !== r.scheme() ? r.toString() : r.absoluteTo(t).toString(); }; var when = createCommonjsModule(function (e, t) { /** @license MIT License (c) copyright B Cavalier & J Hann */ var i; (i = function () { var e, t, i; function r(e, t, i, r) { return n(e).then(t, i, r); } function n(e) { var t, i; return ( e instanceof a ? (t = e) : l(e) ? ((i = s()), e.then( function (e) { i.resolve(e); }, function (e) { i.reject(e); }, function (e) { i.progress(e); } ), (t = i.promise)) : (t = (function (e) { var t = new a(function (t) { try { return n(t ? t(e) : e); } catch (e) { return o(e); } }); return t; })(e)), t ); } function a(e) { this.then = e; } function o(e) { var t = new a(function (t, i) { try { return i ? n(i(e)) : o(e); } catch (e) { return o(e); } }); return t; } function s() { var e, t, r, l, c, u; return ( (e = new a(d)), (t = []), (r = []), (l = function (e, i, n) { var a, o; return ( (a = s()), (o = 'function' == typeof n ? function (e) { try { a.progress(n(e)); } catch (e) { a.progress(e); } } : function (e) { a.progress(e); }), t.push(function (t) { t.then(e, i).then(a.resolve, a.reject, o); }), r.push(o), a.promise ); }), (c = function (e) { return h(r, e), e; }), (u = function (e) { return (e = n(e)), (l = e.then), (u = n), (c = f), h(t, e), (r = t = i), e; }), { then: d, resolve: p, reject: m, progress: g, promise: e, resolver: { resolve: p, reject: m, progress: g }, } ); function d(e, t, i) { return l(e, t, i); } function p(e) { return u(e); } function m(e) { return u(o(e)); } function g(e) { return c(e); } } function l(e) { return e && 'function' == typeof e.then; } function c(e, t, i, n, a) { return ( p(2, arguments), r(e, function (e) { var o, l, c, u, d, h, p, m, g, _; if ( ((g = e.length >>> 0), (o = Math.max(0, Math.min(t, g))), (c = []), (l = g - o + 1), (u = []), (d = s()), o) ) for ( m = d.progress, p = function (e) { u.push(e), --l || ((h = p = f), d.reject(u)); }, h = function (e) { c.push(e), --o || ((h = p = f), d.resolve(c)); }, _ = 0; _ < g; ++_ ) _ in e && r(e[_], v, y, m); else d.resolve(c); return d.then(i, n, a); function y(e) { p(e); } function v(e) { h(e); } }) ); } function u(e, t, i, r) { return p(1, arguments), d(e, m).then(t, i, r); } function d(e, t) { return r(e, function (e) { var i, n, a, o, l, c; if (((a = n = e.length >>> 0), (i = []), (c = s()), a)) for ( o = function (e, n) { r(e, t).then(function (e) { (i[n] = e), --a || c.resolve(i); }, c.reject); }, l = 0; l < n; l++ ) l in e ? o(e[l], l) : --a; else c.resolve(i); return c.promise; }); } function h(e, t) { for (var i, r = 0; (i = e[r++]); ) i(t); } function p(e, t) { for (var i, r = t.length; r > e; ) if (null != (i = t[--r]) && 'function' != typeof i) throw new Error('arg ' + r + ' must be a function'); } function f() {} function m(e) { return e; } return ( (r.defer = s), (r.resolve = n), (r.reject = function (e) { return r(e, o); }), (r.join = function () { return d(arguments, m); }), (r.all = u), (r.map = d), (r.reduce = function (i, n) { var a = t.call(arguments, 1); return r(i, function (t) { var i; return ( (i = t.length), (a[0] = function (e, t, a) { return r(e, function (e) { return r(t, function (t) { return n(e, t, a, i); }); }); }), e.apply(t, a) ); }); }), (r.any = function (e, t, i, r) { return c( e, 1, function (e) { return t ? t(e[0]) : e[0]; }, i, r ); }), (r.some = c), (r.chain = function (e, t, i) { var n = arguments.length > 2; return r( e, function (e) { return (e = n ? i : e), t.resolve(e), e; }, function (e) { return t.reject(e), o(e); }, t.progress ); }), (r.isPromise = l), (a.prototype = { always: function (e, t) { return this.then(e, e, t); }, otherwise: function (e) { return this.then(i, e); }, yield: function (e) { return this.then(function () { return e; }); }, spread: function (e) { return this.then(function (t) { return u(t, function (t) { return e.apply(i, t); }); }); }, }), (t = [].slice), (e = [].reduce || function (e) { var t, i, r, n, a; if (((a = 0), (n = (t = Object(this)).length >>> 0), (i = arguments).length <= 1)) for (;;) { if (a in t) { r = t[a++]; break; } if (++a >= n) throw new TypeError(); } else r = i[1]; for (; a < n; ++a) a in t && (r = e(r, t[a], a, t)); return r; }), r ); }), (e.exports = i()); }); function clone$1(e, t) { if (null === e || 'object' != typeof e) return e; t = defaultValue(t, !1); var i = new e.constructor(); for (var r in e) if (e.hasOwnProperty(r)) { var n = e[r]; t && (n = clone$1(n, t)), (i[r] = n); } return i; } function combine$2(e, t, i) { i = defaultValue(i, !1); var r, n, a, o = {}, s = defined(e), l = defined(t); if (s) for (r in e) e.hasOwnProperty(r) && ((n = e[r]), l && i && 'object' == typeof n && t.hasOwnProperty(r) ? ((a = t[r]), (o[r] = 'object' == typeof a ? combine$2(n, a, i) : n)) : (o[r] = n)); if (l) for (r in t) t.hasOwnProperty(r) && !o.hasOwnProperty(r) && ((a = t[r]), (o[r] = a)); return o; } function getBaseUri(e, t) { var i = '', r = e.lastIndexOf('/'); return ( -1 !== r && (i = e.substring(0, r + 1)), t ? (0 !== (e = new URI(e)).query().length && (i += '?' + e.query()), 0 !== e.fragment().length && (i += '#' + e.fragment()), i) : i ); } function getExtensionFromUri(e) { var t = new URI(e); t.normalize(); var i = t.path(), r = i.lastIndexOf('/'); return ( -1 !== r && (i = i.substr(r + 1)), (r = i.lastIndexOf('.')), (i = -1 === r ? '' : i.substr(r + 1)) ); } var blobUriRegex = /^blob:/i, a$2; function isBlobUri(e) { return blobUriRegex.test(e); } function isCrossOriginUrl(e) { defined(a$2) || (a$2 = document.createElement('a')), (a$2.href = window.location.href); var t = a$2.host, i = a$2.protocol; return (a$2.href = e), (a$2.href = a$2.href), i !== a$2.protocol || t !== a$2.host; } var dataUriRegex$2 = /^data:/i; function isDataUri(e) { return dataUriRegex$2.test(e); } function loadAndExecuteScript(e) { var t = when.defer(), i = document.createElement('script'); (i.async = !0), (i.src = e); var r = document.getElementsByTagName('head')[0]; return ( (i.onload = function () { (i.onload = void 0), r.removeChild(i), t.resolve(); }), (i.onerror = function (e) { t.reject(e); }), r.appendChild(i), t.promise ); } function objectToQuery(e) { var t = ''; for (var i in e) if (e.hasOwnProperty(i)) { var r = e[i], n = encodeURIComponent(i) + '='; if (Array.isArray(r)) for (var a = 0, o = r.length; a < o; ++a) t += n + encodeURIComponent(r[a]) + '&'; else t += n + encodeURIComponent(r) + '&'; } return (t = t.slice(0, -1)); } function queryToObject(e) { var t = {}; if ('' === e) return t; for (var i = e.replace(/\+/g, '%20').split(/[&;]/), r = 0, n = i.length; r < n; ++r) { var a = i[r].split('='), o = decodeURIComponent(a[0]), s = a[1]; s = defined(s) ? decodeURIComponent(s) : ''; var l = t[o]; 'string' == typeof l ? (t[o] = [l, s]) : Array.isArray(l) ? l.push(s) : (t[o] = s); } return t; } var RequestState = { UNISSUED: 0, ISSUED: 1, ACTIVE: 2, RECEIVED: 3, CANCELLED: 4, FAILED: 5 }, RequestState$1 = Object.freeze(RequestState), RequestType = { TERRAIN: 0, IMAGERY: 1, TILES3D: 2, OTHER: 3 }, RequestType$1 = Object.freeze(RequestType); function Request(e) { e = defaultValue(e, defaultValue.EMPTY_OBJECT); var t = defaultValue(e.throttleByServer, !1), i = defaultValue(e.throttle, !1); (this.url = e.url), (this.requestFunction = e.requestFunction), (this.cancelFunction = e.cancelFunction), (this.priorityFunction = e.priorityFunction), (this.priority = defaultValue(e.priority, 0)), (this.throttle = i), (this.throttleByServer = t), (this.type = defaultValue(e.type, RequestType$1.OTHER)), (this.serverKey = void 0), (this.state = RequestState$1.UNISSUED), (this.deferred = void 0), (this.cancelled = !1); } function parseResponseHeaders(e) { var t = {}; if (!e) return t; for (var i = e.split('\r\n'), r = 0; r < i.length; ++r) { var n = i[r], a = n.indexOf(': '); if (a > 0) { var o = n.substring(0, a), s = n.substring(a + 2); t[o] = s; } } return t; } function RequestErrorEvent(e, t, i) { (this.statusCode = e), (this.response = t), (this.responseHeaders = i), 'string' == typeof this.responseHeaders && (this.responseHeaders = parseResponseHeaders(this.responseHeaders)); } function Event() { (this._listeners = []), (this._scopes = []), (this._toRemove = []), (this._insideRaiseEvent = !1); } function compareNumber(e, t) { return t - e; } function Heap(e) { (this._comparator = e.comparator), (this._array = []), (this._length = 0), (this._maximumLength = void 0); } function swap$3(e, t, i) { var r = e[t]; (e[t] = e[i]), (e[i] = r); } function sortRequests(e, t) { return e.priority - t.priority; } (Request.prototype.cancel = function () { this.cancelled = !0; }), (Request.prototype.clone = function (e) { return defined(e) ? ((e.url = this.url), (e.requestFunction = this.requestFunction), (e.cancelFunction = this.cancelFunction), (e.priorityFunction = this.priorityFunction), (e.priority = this.priority), (e.throttle = this.throttle), (e.throttleByServer = this.throttleByServer), (e.type = this.type), (e.serverKey = this.serverKey), (e.state = this.RequestState.UNISSUED), (e.deferred = void 0), (e.cancelled = !1), e) : new Request(this); }), (RequestErrorEvent.prototype.toString = function () { var e = 'Request has failed.'; return defined(this.statusCode) && (e += ' Status Code: ' + this.statusCode), e; }), Object.defineProperties(Event.prototype, { numberOfListeners: { get: function () { return this._listeners.length - this._toRemove.length; }, }, }), (Event.prototype.addEventListener = function (e, t) { this._listeners.push(e), this._scopes.push(t); var i = this; return function () { i.removeEventListener(e, t); }; }), (Event.prototype.removeEventListener = function (e, t) { for (var i = this._listeners, r = this._scopes, n = -1, a = 0; a < i.length; a++) if (i[a] === e && r[a] === t) { n = a; break; } return ( -1 !== n && (this._insideRaiseEvent ? (this._toRemove.push(n), (i[n] = void 0), (r[n] = void 0)) : (i.splice(n, 1), r.splice(n, 1)), !0) ); }), (Event.prototype.raiseEvent = function () { var e; this._insideRaiseEvent = !0; var t = this._listeners, i = this._scopes, r = t.length; for (e = 0; e < r; e++) { var n = t[e]; defined(n) && t[e].apply(i[e], arguments); } var a = this._toRemove; if ((r = a.length) > 0) { for (a.sort(compareNumber), e = 0; e < r; e++) { var o = a[e]; t.splice(o, 1), i.splice(o, 1); } a.length = 0; } this._insideRaiseEvent = !1; }), Object.defineProperties(Heap.prototype, { length: { get: function () { return this._length; }, }, internalArray: { get: function () { return this._array; }, }, maximumLength: { get: function () { return this._maximumLength; }, set: function (e) { var t = this._length; if (e < t) { for (var i = this._array, r = e; r < t; ++r) i[r] = void 0; (this._length = e), (i.length = e); } this._maximumLength = e; }, }, comparator: { get: function () { return this._comparator; }, }, }), (Heap.prototype.reserve = function (e) { (e = defaultValue(e, this._length)), (this._array.length = e); }), (Heap.prototype.heapify = function (e) { e = defaultValue(e, 0); for (var t = this._length, i = this._comparator, r = this._array, n = -1, a = !0; a; ) { var o = 2 * (e + 1), s = o - 1; (n = s < t && i(r[s], r[e]) < 0 ? s : e), o < t && i(r[o], r[n]) < 0 && (n = o), n !== e ? (swap$3(r, n, e), (e = n)) : (a = !1); } }), (Heap.prototype.resort = function () { for (var e = this._length, t = Math.ceil(e / 2); t >= 0; --t) this.heapify(t); }), (Heap.prototype.insert = function (e) { var t, i = this._array, r = this._comparator, n = this._maximumLength, a = this._length++; for (a < i.length ? (i[a] = e) : i.push(e); 0 !== a; ) { var o = Math.floor((a - 1) / 2); if (!(r(i[a], i[o]) < 0)) break; swap$3(i, a, o), (a = o); } return defined(n) && this._length > n && ((t = i[n]), (this._length = n)), t; }), (Heap.prototype.pop = function (e) { if (((e = defaultValue(e, 0)), 0 !== this._length)) { var t = this._array, i = t[e]; return swap$3(t, e, --this._length), this.heapify(e), (t[this._length] = void 0), i; } }); var statistics = { numberOfAttemptedRequests: 0, numberOfActiveRequests: 0, numberOfCancelledRequests: 0, numberOfCancelledActiveRequests: 0, numberOfFailedRequests: 0, numberOfActiveRequestsEver: 0, lastNumberOfActiveRequests: 0, }, priorityHeapLength = 20, requestHeap = new Heap({ comparator: sortRequests }); (requestHeap.maximumLength = priorityHeapLength), requestHeap.reserve(priorityHeapLength); var activeRequests = [], numberOfActiveRequestsByServer = {}, pageUri = 'undefined' != typeof document ? new URI(document.location.href) : new URI(), requestCompletedEvent = new Event(); function RequestScheduler() {} function updatePriority(e) { defined(e.priorityFunction) && (e.priority = e.priorityFunction()); } function issueRequest(e) { return ( e.state === RequestState$1.UNISSUED && ((e.state = RequestState$1.ISSUED), (e.deferred = when.defer())), e.deferred.promise ); } function getRequestReceivedFunction(e) { return function (t) { if (e.state !== RequestState$1.CANCELLED) { var i = e.deferred; --statistics.numberOfActiveRequests, --numberOfActiveRequestsByServer[e.serverKey], requestCompletedEvent.raiseEvent(), (e.state = RequestState$1.RECEIVED), (e.deferred = void 0), i.resolve(t); } }; } function getRequestFailedFunction(e) { return function (t) { e.state !== RequestState$1.CANCELLED && (++statistics.numberOfFailedRequests, --statistics.numberOfActiveRequests, --numberOfActiveRequestsByServer[e.serverKey], requestCompletedEvent.raiseEvent(t), (e.state = RequestState$1.FAILED), e.deferred.reject(t)); }; } function startRequest(e) { var t = issueRequest(e); return ( (e.state = RequestState$1.ACTIVE), activeRequests.push(e), ++statistics.numberOfActiveRequests, ++statistics.numberOfActiveRequestsEver, ++numberOfActiveRequestsByServer[e.serverKey], e .requestFunction() .then(getRequestReceivedFunction(e)) .otherwise(getRequestFailedFunction(e)), t ); } function cancelRequest(e) { var t = e.state === RequestState$1.ACTIVE; if ( ((e.state = RequestState$1.CANCELLED), ++statistics.numberOfCancelledRequests, defined(e.deferred)) ) { var i = e.deferred; (e.deferred = void 0), i.reject(); } t && (--statistics.numberOfActiveRequests, --numberOfActiveRequestsByServer[e.serverKey], ++statistics.numberOfCancelledActiveRequests), defined(e.cancelFunction) && e.cancelFunction(); } function updateStatistics() { RequestScheduler.debugShowStatistics && (0 === statistics.numberOfActiveRequests && statistics.lastNumberOfActiveRequests > 0 && (statistics.numberOfAttemptedRequests > 0 && (console.log('Number of attempted requests: ' + statistics.numberOfAttemptedRequests), (statistics.numberOfAttemptedRequests = 0)), statistics.numberOfCancelledRequests > 0 && (console.log('Number of cancelled requests: ' + statistics.numberOfCancelledRequests), (statistics.numberOfCancelledRequests = 0)), statistics.numberOfCancelledActiveRequests > 0 && (console.log( 'Number of cancelled active requests: ' + statistics.numberOfCancelledActiveRequests ), (statistics.numberOfCancelledActiveRequests = 0)), statistics.numberOfFailedRequests > 0 && (console.log('Number of failed requests: ' + statistics.numberOfFailedRequests), (statistics.numberOfFailedRequests = 0))), (statistics.lastNumberOfActiveRequests = statistics.numberOfActiveRequests)); } (RequestScheduler.maximumRequests = 50), (RequestScheduler.maximumRequestsPerServer = 6), (RequestScheduler.requestsByServer = { 'api.cesium.com:443': 18, 'assets.cesium.com:443': 18 }), (RequestScheduler.throttleRequests = !0), (RequestScheduler.debugShowStatistics = !1), (RequestScheduler.requestCompletedEvent = requestCompletedEvent), Object.defineProperties(RequestScheduler, { statistics: { get: function () { return statistics; }, }, priorityHeapLength: { get: function () { return priorityHeapLength; }, set: function (e) { if (e < priorityHeapLength) for (; requestHeap.length > e; ) { cancelRequest(requestHeap.pop()); } (priorityHeapLength = e), (requestHeap.maximumLength = e), requestHeap.reserve(e); }, }, }), (RequestScheduler.serverHasOpenSlots = function (e, t) { t = defaultValue(t, 1); var i = defaultValue( RequestScheduler.requestsByServer[e], RequestScheduler.maximumRequestsPerServer ); return numberOfActiveRequestsByServer[e] + t <= i; }), (RequestScheduler.heapHasOpenSlots = function (e) { return requestHeap.length + e <= priorityHeapLength; }), (RequestScheduler.update = function () { var e, t, i = 0, r = activeRequests.length; for (e = 0; e < r; ++e) (t = activeRequests[e]).cancelled && cancelRequest(t), t.state === RequestState$1.ACTIVE ? i > 0 && (activeRequests[e - i] = t) : ++i; activeRequests.length -= i; var n = requestHeap.internalArray, a = requestHeap.length; for (e = 0; e < a; ++e) updatePriority(n[e]); requestHeap.resort(); for ( var o = Math.max(RequestScheduler.maximumRequests - activeRequests.length, 0), s = 0; s < o && requestHeap.length > 0; ) (t = requestHeap.pop()).cancelled ? cancelRequest(t) : !t.throttleByServer || RequestScheduler.serverHasOpenSlots(t.serverKey) ? (startRequest(t), ++s) : cancelRequest(t); updateStatistics(); }), (RequestScheduler.getServerKey = function (e) { var t = new URI(e); '' === t.scheme() && (t = new URI(e).absoluteTo(pageUri)).normalize(); var i = t.authority(); return ( /:/.test(i) || (i = i + ':' + ('https' === t.scheme() ? '443' : '80')), defined(numberOfActiveRequestsByServer[i]) || (numberOfActiveRequestsByServer[i] = 0), i ); }), (RequestScheduler.request = function (e) { if (isDataUri(e.url) || isBlobUri(e.url)) return ( requestCompletedEvent.raiseEvent(), (e.state = RequestState$1.RECEIVED), e.requestFunction() ); if ( (++statistics.numberOfAttemptedRequests, defined(e.serverKey) || (e.serverKey = RequestScheduler.getServerKey(e.url)), !RequestScheduler.throttleRequests || !e.throttleByServer || RequestScheduler.serverHasOpenSlots(e.serverKey)) ) { if (!RequestScheduler.throttleRequests || !e.throttle) return startRequest(e); if (!(activeRequests.length >= RequestScheduler.maximumRequests)) { updatePriority(e); var t = requestHeap.insert(e); if (defined(t)) { if (t === e) return; cancelRequest(t); } return issueRequest(e); } } }), (RequestScheduler.clearForSpecs = function () { for (; requestHeap.length > 0; ) { cancelRequest(requestHeap.pop()); } for (var e = activeRequests.length, t = 0; t < e; ++t) cancelRequest(activeRequests[t]); (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 (e) { return numberOfActiveRequestsByServer[e]; }), (RequestScheduler.requestHeap = requestHeap); var TrustedServers = {}, _servers = {}; function getAuthority(e) { var t = new URI(e); t.normalize(); var i = t.authority(); if (0 !== i.length) { if ((t.authority(i), -1 !== i.indexOf('@'))) { var r = i.split('@'); i = r[1]; } if (-1 === i.indexOf(':')) { var n = t.scheme(); if ( (0 === n.length && (n = (n = window.location.protocol).substring(0, n.length - 1)), 'http' === n) ) i += ':80'; else { if ('https' !== n) return; i += ':443'; } } return i; } } (TrustedServers.add = function (e, t) { var i = e.toLowerCase() + ':' + t; defined(_servers[i]) || (_servers[i] = !0); }), (TrustedServers.remove = function (e, t) { var i = e.toLowerCase() + ':' + t; defined(_servers[i]) && delete _servers[i]; }), (TrustedServers.contains = function (e) { var t = getAuthority(e); return !(!defined(t) || !defined(_servers[t])); }), (TrustedServers.clear = function () { _servers = {}; }); var xhrBlobSupported = (function () { try { var e = new XMLHttpRequest(); return e.open('GET', '#', !0), (e.responseType = 'blob'), 'blob' === e.responseType; } catch (e) { return !1; } })(), supportsImageBitmapOptionsPromise; function parseQuery(e, t, i, r) { var n, a = e.query(); if (0 === a.length) return {}; if (-1 === a.indexOf('=')) { var o = {}; (o[a] = void 0), (n = o); } else n = queryToObject(a); (t._queryParameters = i ? combineQueryParameters(n, t._queryParameters, r) : n), e.search(''); } function stringifyQuery(e, t) { var i = t._queryParameters, r = Object.keys(i); 1 !== r.length || defined(i[r[0]]) ? e.search(objectToQuery(i)) : e.search(r[0]); } function defaultClone(e, t) { return defined(e) ? (defined(e.clone) ? e.clone() : clone$1(e)) : t; } function checkAndResetRequest(e) { if (e.state === RequestState$1.ISSUED || e.state === RequestState$1.ACTIVE) throw new RuntimeError('The Resource is already being fetched.'); (e.state = RequestState$1.UNISSUED), (e.deferred = void 0); } function combineQueryParameters(e, t, i) { if (!i) return combine$2(e, t); var r = clone$1(e, !0); for (var n in t) if (t.hasOwnProperty(n)) { var a = r[n], o = t[n]; defined(a) ? (Array.isArray(a) || (a = r[n] = [a]), (r[n] = a.concat(o))) : (r[n] = Array.isArray(o) ? o.slice() : o); } return r; } function Resource(e) { 'string' == typeof (e = defaultValue(e, defaultValue.EMPTY_OBJECT)) && (e = { url: e }), (this._url = void 0), (this._templateValues = defaultClone(e.templateValues, {})), (this._queryParameters = defaultClone(e.queryParameters, {})), (this.headers = defaultClone(e.headers, {})), (this.request = defaultValue(e.request, new Request())), (this.proxy = e.proxy), (this.retryCallback = e.retryCallback), (this.retryAttempts = defaultValue(e.retryAttempts, 0)), (this._retryCount = 0); var t = new URI(e.url); parseQuery(t, this, !0, !0), t.fragment(''), (this._url = t.toString()); } function fetchImage(e) { var t = e.resource, i = e.flipY, r = e.skipColorSpaceConversion, n = e.preferImageBitmap, a = t.request; (a.url = t.url), (a.requestFunction = function () { var e = !1; t.isDataUri || t.isBlobUri || (e = t.isCrossOriginUrl); var o = when.defer(); return Resource._Implementations.createImage(a, e, o, i, r, n), o.promise; }); var o = RequestScheduler.request(a); if (defined(o)) return o.otherwise(function (e) { return a.state !== RequestState$1.FAILED ? when.reject(e) : t.retryOnError(e).then(function (o) { return o ? ((a.state = RequestState$1.UNISSUED), (a.deferred = void 0), fetchImage({ resource: t, flipY: i, skipColorSpaceConversion: r, preferImageBitmap: n, })) : when.reject(e); }); }); } function fetchJsonp(e, t, i) { var r = {}; (r[t] = i), e.setQueryParameters(r); var n = e.request; (n.url = e.url), (n.requestFunction = function () { var t = when.defer(); return ( (window[i] = function (e) { t.resolve(e); try { delete window[i]; } catch (e) { window[i] = void 0; } }), Resource._Implementations.loadAndExecuteScript(e.url, i, t), t.promise ); }); var a = RequestScheduler.request(n); if (defined(a)) return a.otherwise(function (r) { return n.state !== RequestState$1.FAILED ? when.reject(r) : e.retryOnError(r).then(function (a) { return a ? ((n.state = RequestState$1.UNISSUED), (n.deferred = void 0), fetchJsonp(e, t, i)) : when.reject(r); }); }); } (Resource.createIfNeeded = function (e) { return e instanceof Resource ? e.getDerivedResource({ request: e.request }) : 'string' != typeof e ? e : new Resource({ url: e }); }), (Resource.supportsImageBitmapOptions = function () { if (defined(supportsImageBitmapOptionsPromise)) return supportsImageBitmapOptionsPromise; if ('function' != typeof createImageBitmap) return (supportsImageBitmapOptionsPromise = when.resolve(!1)); return (supportsImageBitmapOptionsPromise = Resource.fetchBlob({ url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg==', }) .then(function (e) { return createImageBitmap(e, { imageOrientation: 'flipY', premultiplyAlpha: 'none', colorSpaceConversion: 'none', }); }) .then(function (e) { return !0; }) .otherwise(function () { return !1; })); }), 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(!0, !0); }, set: function (e) { var t = new URI(e); parseQuery(t, this, !1), t.fragment(''), (this._url = t.toString()); }, }, extension: { get: function () { return getExtensionFromUri(this._url); }, }, isDataUri: { get: function () { return isDataUri(this._url); }, }, isBlobUri: { get: function () { return isBlobUri(this._url); }, }, isCrossOriginUrl: { get: function () { return isCrossOriginUrl(this._url); }, }, hasHeaders: { get: function () { return Object.keys(this.headers).length > 0; }, }, }), (Resource.prototype.toString = function () { return this.getUrlComponent(!0, !0); }), (Resource.prototype.getUrlComponent = function (e, t) { if (this.isDataUri) return this._url; var i = new URI(this._url); e && stringifyQuery(i, this); var r = i.toString().replace(/%7B/g, '{').replace(/%7D/g, '}'); r = r.replace(new RegExp('\\+', 'gm'), '%2B'); var n = this._templateValues; return ( (r = r.replace(/{(.*?)}/g, function (e, t) { var i = n[t]; return defined(i) ? encodeURIComponent(i) : e; })), t && defined(this.proxy) && (r = this.proxy.getURL(r)), r ); }), (Resource.prototype.setQueryParameters = function (e, t) { this._queryParameters = t ? combineQueryParameters(this._queryParameters, e, !1) : combineQueryParameters(e, this._queryParameters, !1); }), (Resource.prototype.appendQueryParameters = function (e) { this._queryParameters = combineQueryParameters(e, this._queryParameters, !0); }), (Resource.prototype.setTemplateValues = function (e, t) { this._templateValues = t ? combine$2(this._templateValues, e) : combine$2(e, this._templateValues); }), (Resource.prototype.getDerivedResource = function (e) { var t = this.clone(); if (((t._retryCount = 0), defined(e.url))) { var i = new URI(e.url); parseQuery(i, t, !0, defaultValue(e.preserveQueryParameters, !1)), i.fragment(''), '' !== i.scheme() ? (t._url = i.toString()) : (t._url = i.absoluteTo(new URI(getAbsoluteUri(this._url))).toString()); } return ( defined(e.queryParameters) && (t._queryParameters = combine$2(e.queryParameters, t._queryParameters)), defined(e.templateValues) && (t._templateValues = combine$2(e.templateValues, t.templateValues)), defined(e.headers) && (t.headers = combine$2(e.headers, t.headers)), defined(e.proxy) && (t.proxy = e.proxy), defined(e.request) && (t.request = e.request), defined(e.retryCallback) && (t.retryCallback = e.retryCallback), defined(e.retryAttempts) && (t.retryAttempts = e.retryAttempts), t ); }), (Resource.prototype.retryOnError = function (e) { var t = this.retryCallback; if ('function' != typeof t || this._retryCount >= this.retryAttempts) return when(!1); var i = this; return when(t(this, e)).then(function (e) { return ++i._retryCount, e; }); }), (Resource.prototype.clone = function (e) { return ( defined(e) || (e = new Resource({ url: this._url })), (e._url = this._url), (e._queryParameters = clone$1(this._queryParameters)), (e._templateValues = clone$1(this._templateValues)), (e.headers = clone$1(this.headers)), (e.proxy = this.proxy), (e.retryCallback = this.retryCallback), (e.retryAttempts = this.retryAttempts), (e._retryCount = 0), (e.request = this.request.clone()), e ); }), (Resource.prototype.getBaseUri = function (e) { return getBaseUri(this.getUrlComponent(e), e); }), (Resource.prototype.appendForwardSlash = function () { this._url = appendForwardSlash(this._url); }), (Resource.prototype.fetchArrayBuffer = function () { return this.fetch({ responseType: 'arraybuffer' }); }), (Resource.fetchArrayBuffer = function (e) { return new Resource(e).fetchArrayBuffer(); }), (Resource.prototype.fetchBlob = function () { return this.fetch({ responseType: 'blob' }); }), (Resource.fetchBlob = function (e) { return new Resource(e).fetchBlob(); }), (Resource.prototype.fetchImage = function (e) { e = defaultValue(e, defaultValue.EMPTY_OBJECT); var t = defaultValue(e.preferImageBitmap, !1), i = defaultValue(e.preferBlob, !1), r = defaultValue(e.flipY, !1), n = defaultValue(e.skipColorSpaceConversion, !1); if ( (checkAndResetRequest(this.request), !xhrBlobSupported || this.isDataUri || this.isBlobUri || (!this.hasHeaders && !i)) ) return fetchImage({ resource: this, flipY: r, skipColorSpaceConversion: n, preferImageBitmap: t, }); var a, o, s, l = this.fetchBlob(); return defined(l) ? Resource.supportsImageBitmapOptions() .then(function (e) { return (a = e && t), l; }) .then(function (e) { if (defined(e)) { if (((s = e), a)) return Resource.createImageBitmapFromBlob(e, { flipY: r, premultiplyAlpha: !1, skipColorSpaceConversion: n, }); var t = window.URL.createObjectURL(e); return fetchImage({ resource: (o = new Resource({ url: t })), flipY: r, skipColorSpaceConversion: n, preferImageBitmap: !1, }); } }) .then(function (e) { if (defined(e)) return (e.blob = s), a || window.URL.revokeObjectURL(o.url), e; }) .otherwise(function (e) { return defined(o) && window.URL.revokeObjectURL(o.url), (e.blob = s), when.reject(e); }) : void 0; }), (Resource.fetchImage = function (e) { return new Resource(e).fetchImage({ flipY: e.flipY, skipColorSpaceConversion: e.skipColorSpaceConversion, preferBlob: e.preferBlob, preferImageBitmap: e.preferImageBitmap, }); }), (Resource.prototype.fetchText = function () { return this.fetch({ responseType: 'text' }); }), (Resource.fetchText = function (e) { return new Resource(e).fetchText(); }), (Resource.prototype.fetchJson = function () { var e = this.fetch({ responseType: 'text', headers: { Accept: 'application/json,*/*;q=0.01' }, }); if (defined(e)) return e.then(function (e) { if (defined(e)) return JSON.parse(e); }); }), (Resource.fetchJson = function (e) { return new Resource(e).fetchJson(); }), (Resource.prototype.fetchXML = function () { return this.fetch({ responseType: 'document', overrideMimeType: 'text/xml' }); }), (Resource.fetchXML = function (e) { return new Resource(e).fetchXML(); }), (Resource.prototype.fetchJsonp = function (e) { var t; (e = defaultValue(e, 'callback')), checkAndResetRequest(this.request); do { t = 'loadJsonp' + CesiumMath.nextRandomNumber().toString().substring(2, 8); } while (defined(window[t])); return fetchJsonp(this, e, t); }), (Resource.fetchJsonp = function (e) { return new Resource(e).fetchJsonp(e.callbackParameterName); }), (Resource.prototype._makeRequest = function (e) { var t = this; checkAndResetRequest(t.request); var i = t.request; (i.url = t.url), (i.requestFunction = function () { var r = e.responseType, n = combine$2(e.headers, t.headers), a = e.overrideMimeType, o = e.method, s = e.data, l = when.defer(), c = Resource._Implementations.loadWithXhr(t.url, r, o, s, n, l, a); return ( defined(c) && defined(c.abort) && (i.cancelFunction = function () { c.abort(); }), l.promise ); }); var r = RequestScheduler.request(i); if (defined(r)) return r .then(function (e) { return (i.cancelFunction = void 0), e; }) .otherwise(function (r) { return ( (i.cancelFunction = void 0), i.state !== RequestState$1.FAILED ? when.reject(r) : t.retryOnError(r).then(function (n) { return n ? ((i.state = RequestState$1.UNISSUED), (i.deferred = void 0), t.fetch(e)) : when.reject(r); }) ); }); }); var dataUriRegex$1 = /^data:(.*?)(;base64)?,(.*)$/; function decodeDataUriText(e, t) { var i = decodeURIComponent(t); return e ? atob(i) : i; } function decodeDataUriArrayBuffer(e, t) { for ( var i = decodeDataUriText(e, t), r = new ArrayBuffer(i.length), n = new Uint8Array(r), a = 0; a < i.length; a++ ) n[a] = i.charCodeAt(a); return r; } function decodeDataUri(e, t) { t = defaultValue(t, ''); var i = e[1], r = !!e[2], n = e[3]; switch (t) { case '': case 'text': return decodeDataUriText(r, n); case 'arraybuffer': return decodeDataUriArrayBuffer(r, n); case 'blob': var a = decodeDataUriArrayBuffer(r, n); return new Blob([a], { type: i }); case 'document': return new DOMParser().parseFromString(decodeDataUriText(r, n), i); case 'json': return JSON.parse(decodeDataUriText(r, n)); } } function loadImageElement(e, t, i) { var r = new Image(); (r.onload = function () { i.resolve(r); }), (r.onerror = function (e) { i.reject(e); }), t && (TrustedServers.contains(e) ? (r.crossOrigin = 'use-credentials') : (r.crossOrigin = '')), (r.src = e); } function decodeResponse(e, t) { switch (t) { case 'text': return e.toString('utf8'); case 'json': return JSON.parse(e.toString('utf8')); default: return new Uint8Array(e).buffer; } } function loadWithHttpRequest(e, t, i, r, n, a, o) { var s = require('url').parse(e), l = 'https:' === s.protocol ? require('https') : require('http'), c = require('zlib'), u = { protocol: s.protocol, hostname: s.hostname, port: s.port, path: s.path, query: s.query, method: i, headers: n, }; l.request(u) .on('response', function (e) { if (e.statusCode < 200 || e.statusCode >= 300) a.reject(new RequestErrorEvent(e.statusCode, e, e.headers)); else { var i = []; e.on('data', function (e) { i.push(e); }), e.on('end', function () { var r = Buffer.concat(i); 'gzip' === e.headers['content-encoding'] ? c.gunzip(r, function (e, i) { e ? a.reject(new RuntimeError('Error decompressing response.')) : a.resolve(decodeResponse(i, t)); }) : a.resolve(decodeResponse(r, t)); }); } }) .on('error', function (e) { a.reject(new RequestErrorEvent()); }) .end(); } (Resource.prototype.fetch = function (e) { return ((e = defaultClone(e, {})).method = 'GET'), this._makeRequest(e); }), (Resource.fetch = function (e) { return new Resource(e).fetch({ responseType: e.responseType, overrideMimeType: e.overrideMimeType, }); }), (Resource.prototype.delete = function (e) { return ((e = defaultClone(e, {})).method = 'DELETE'), this._makeRequest(e); }), (Resource.delete = function (e) { return new Resource(e).delete({ responseType: e.responseType, overrideMimeType: e.overrideMimeType, data: e.data, }); }), (Resource.prototype.head = function (e) { return ((e = defaultClone(e, {})).method = 'HEAD'), this._makeRequest(e); }), (Resource.head = function (e) { return new Resource(e).head({ responseType: e.responseType, overrideMimeType: e.overrideMimeType, }); }), (Resource.prototype.options = function (e) { return ((e = defaultClone(e, {})).method = 'OPTIONS'), this._makeRequest(e); }), (Resource.options = function (e) { return new Resource(e).options({ responseType: e.responseType, overrideMimeType: e.overrideMimeType, }); }), (Resource.prototype.post = function (e, t) { return ( Check.defined('data', e), ((t = defaultClone(t, {})).method = 'POST'), (t.data = e), this._makeRequest(t) ); }), (Resource.post = function (e) { return new Resource(e).post(e.data, { responseType: e.responseType, overrideMimeType: e.overrideMimeType, }); }), (Resource.prototype.put = function (e, t) { return ( Check.defined('data', e), ((t = defaultClone(t, {})).method = 'PUT'), (t.data = e), this._makeRequest(t) ); }), (Resource.put = function (e) { return new Resource(e).put(e.data, { responseType: e.responseType, overrideMimeType: e.overrideMimeType, }); }), (Resource.prototype.patch = function (e, t) { return ( Check.defined('data', e), ((t = defaultClone(t, {})).method = 'PATCH'), (t.data = e), this._makeRequest(t) ); }), (Resource.patch = function (e) { return new Resource(e).patch(e.data, { responseType: e.responseType, overrideMimeType: e.overrideMimeType, }); }), (Resource._Implementations = {}), (Resource._Implementations.createImage = function (e, t, i, r, n, a) { var o = e.url; Resource.supportsImageBitmapOptions() .then(function (s) { if (s && a) { var l = when.defer(), c = Resource._Implementations.loadWithXhr( o, 'blob', 'GET', void 0, void 0, l, void 0, void 0, void 0 ); return ( defined(c) && defined(c.abort) && (e.cancelFunction = function () { c.abort(); }), l.promise .then(function (e) { if (defined(e)) return Resource.createImageBitmapFromBlob(e, { flipY: r, premultiplyAlpha: !1, skipColorSpaceConversion: n, }); i.reject( new RuntimeError( 'Successfully retrieved ' + o + ' but it contained no content.' ) ); }) .then(i.resolve) ); } loadImageElement(o, t, i); }) .otherwise(i.reject); }), (Resource.createImageBitmapFromBlob = function (e, t) { return ( Check.defined('options', t), Check.typeOf.bool('options.flipY', t.flipY), Check.typeOf.bool('options.premultiplyAlpha', t.premultiplyAlpha), Check.typeOf.bool('options.skipColorSpaceConversion', t.skipColorSpaceConversion), createImageBitmap(e, { imageOrientation: t.flipY ? 'flipY' : 'none', premultiplyAlpha: t.premultiplyAlpha ? 'premultiply' : 'none', colorSpaceConversion: t.skipColorSpaceConversion ? 'none' : 'default', }) ); }); var noXMLHttpRequest = 'undefined' == typeof XMLHttpRequest; (Resource._Implementations.loadWithXhr = function (e, t, i, r, n, a, o) { var s = dataUriRegex$1.exec(e); if (null === s) { if (!noXMLHttpRequest) { var l = new XMLHttpRequest(); if ( (TrustedServers.contains(e) && (l.withCredentials = !0), l.open(i, e, !0), defined(o) && defined(l.overrideMimeType) && l.overrideMimeType(o), defined(n)) ) for (var c in n) n.hasOwnProperty(c) && l.setRequestHeader(c, n[c]); defined(t) && (l.responseType = t); var u = !1; return ( 'string' == typeof e && (u = 0 === e.indexOf('file://') || ('undefined' != typeof window && 'file://' === window.location.origin)), (l.onload = function () { if (!(l.status < 200 || l.status >= 300) || (u && 0 === l.status)) { var e = l.response, r = l.responseType; if ('HEAD' === i || 'OPTIONS' === i) { var n = l .getAllResponseHeaders() .trim() .split(/[\r\n]+/), o = {}; return ( n.forEach(function (e) { var t = e.split(': '), i = t.shift(); o[i] = t.join(': '); }), void a.resolve(o) ); } if (204 === l.status) a.resolve(); else if (!defined(e) || (defined(t) && r !== t)) if ('json' === t && 'string' == typeof e) try { a.resolve(JSON.parse(e)); } catch (e) { a.reject(e); } else ('' === r || 'document' === r) && defined(l.responseXML) && l.responseXML.hasChildNodes() ? a.resolve(l.responseXML) : ('' !== r && 'text' !== r) || !defined(l.responseText) ? a.reject(new RuntimeError('Invalid XMLHttpRequest response type.')) : a.resolve(l.responseText); else a.resolve(e); } else a.reject(new RequestErrorEvent(l.status, l.response, l.getAllResponseHeaders())); }), (l.onerror = function (e) { a.reject(new RequestErrorEvent()); }), l.send(r), l ); } loadWithHttpRequest(e, t, i, r, n, a); } else a.resolve(decodeDataUri(s, t)); }), (Resource._Implementations.loadAndExecuteScript = function (e, t, i) { return loadAndExecuteScript(e).otherwise(i.reject); }), (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: 'undefined' == typeof document ? '' : document.location.href.split('?')[0], }) )); var cesiumScriptRegex = /((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/, a$1, baseResource, implementation$2; function getBaseUrlFromCesiumScript() { for (var e = document.getElementsByTagName('script'), t = 0, i = e.length; t < i; ++t) { var r = e[t].getAttribute('src'), n = cesiumScriptRegex.exec(r); if (null !== n) return n[1]; } } function tryMakeAbsolute(e) { return 'undefined' == typeof document ? e : (defined(a$1) || (a$1 = document.createElement('a')), (a$1.href = e), (a$1.href = a$1.href), a$1.href); } function getCesiumBaseUrl() { return ( defined(baseResource) || ((e = 'undefined' != typeof CESIUM_BASE_URL ? CESIUM_BASE_URL : 'object' == typeof define && defined(define.amd) && !define.amd.toUrlUndefined && defined(require.toUrl) ? getAbsoluteUri('..', buildModuleUrl('Core/buildModuleUrl.js')) : getBaseUrlFromCesiumScript()), (baseResource = new Resource({ url: tryMakeAbsolute(e) })).appendForwardSlash()), baseResource ); var e; } function buildModuleUrlFromRequireToUrl(e) { return tryMakeAbsolute(require.toUrl('../' + e)); } function buildModuleUrlFromBaseUrl(e) { return getCesiumBaseUrl().getDerivedResource({ url: e }).url; } function buildModuleUrl(e) { return ( defined(implementation$2) || (implementation$2 = 'object' == typeof define && defined(define.amd) && !define.amd.toUrlUndefined && defined(require.toUrl) ? buildModuleUrlFromRequireToUrl : buildModuleUrlFromBaseUrl), implementation$2(e) ); } function Cartesian2(e, t) { (this.x = defaultValue(e, 0)), (this.y = defaultValue(t, 0)); } (buildModuleUrl._cesiumScriptRegex = cesiumScriptRegex), (buildModuleUrl._buildModuleUrlFromBaseUrl = buildModuleUrlFromBaseUrl), (buildModuleUrl._clearBaseResource = function () { baseResource = void 0; }), (buildModuleUrl.setBaseUrl = function (e) { baseResource = Resource.DEFAULT.getDerivedResource({ url: e }); }), (buildModuleUrl.getCesiumBaseUrl = getCesiumBaseUrl), (Cartesian2.fromElements = function (e, t, i) { return defined(i) ? ((i.x = e), (i.y = t), i) : new Cartesian2(e, t); }), (Cartesian2.clone = function (e, t) { if (defined(e)) return defined(t) ? ((t.x = e.x), (t.y = e.y), t) : new Cartesian2(e.x, e.y); }), (Cartesian2.fromCartesian3 = Cartesian2.clone), (Cartesian2.fromCartesian4 = Cartesian2.clone), (Cartesian2.packedLength = 2), (Cartesian2.pack = function (e, t, i) { return (i = defaultValue(i, 0)), (t[i++] = e.x), (t[i] = e.y), t; }), (Cartesian2.unpack = function (e, t, i) { return ( (t = defaultValue(t, 0)), defined(i) || (i = new Cartesian2()), (i.x = e[t++]), (i.y = e[t]), i ); }), (Cartesian2.packArray = function (e, t) { var i = e.length, r = 2 * i; if (defined(t)) { if (!Array.isArray(t) && t.length !== r) throw new DeveloperError( 'If result is a typed array, it must have exactly array.length * 2 elements' ); t.length !== r && (t.length = r); } else t = new Array(r); for (var n = 0; n < i; ++n) Cartesian2.pack(e[n], t, 2 * n); return t; }), (Cartesian2.unpackArray = function (e, t) { var i = e.length; defined(t) ? (t.length = i / 2) : (t = new Array(i / 2)); for (var r = 0; r < i; r += 2) { var n = r / 2; t[n] = Cartesian2.unpack(e, r, t[n]); } return t; }), (Cartesian2.fromArray = Cartesian2.unpack), (Cartesian2.maximumComponent = function (e) { return Math.max(e.x, e.y); }), (Cartesian2.minimumComponent = function (e) { return Math.min(e.x, e.y); }), (Cartesian2.minimumByComponent = function (e, t, i) { return (i.x = Math.min(e.x, t.x)), (i.y = Math.min(e.y, t.y)), i; }), (Cartesian2.maximumByComponent = function (e, t, i) { return (i.x = Math.max(e.x, t.x)), (i.y = Math.max(e.y, t.y)), i; }), (Cartesian2.magnitudeSquared = function (e) { return e.x * e.x + e.y * e.y; }), (Cartesian2.magnitude = function (e) { return Math.sqrt(Cartesian2.magnitudeSquared(e)); }); var distanceScratch$1 = new Cartesian2(); (Cartesian2.distance = function (e, t) { return Cartesian2.subtract(e, t, distanceScratch$1), Cartesian2.magnitude(distanceScratch$1); }), (Cartesian2.distanceSquared = function (e, t) { return ( Cartesian2.subtract(e, t, distanceScratch$1), Cartesian2.magnitudeSquared(distanceScratch$1) ); }), (Cartesian2.normalize = function (e, t) { var i = Cartesian2.magnitude(e); return (t.x = e.x / i), (t.y = e.y / i), t; }), (Cartesian2.dot = function (e, t) { return e.x * t.x + e.y * t.y; }), (Cartesian2.cross = function (e, t) { return e.x * t.y - e.y * t.x; }), (Cartesian2.multiplyComponents = function (e, t, i) { return (i.x = e.x * t.x), (i.y = e.y * t.y), i; }), (Cartesian2.divideComponents = function (e, t, i) { return (i.x = e.x / t.x), (i.y = e.y / t.y), i; }), (Cartesian2.add = function (e, t, i) { return (i.x = e.x + t.x), (i.y = e.y + t.y), i; }), (Cartesian2.subtract = function (e, t, i) { return (i.x = e.x - t.x), (i.y = e.y - t.y), i; }), (Cartesian2.multiplyByScalar = function (e, t, i) { return (i.x = e.x * t), (i.y = e.y * t), i; }), (Cartesian2.divideByScalar = function (e, t, i) { return (i.x = e.x / t), (i.y = e.y / t), i; }), (Cartesian2.negate = function (e, t) { return (t.x = -e.x), (t.y = -e.y), t; }), (Cartesian2.abs = function (e, t) { return (t.x = Math.abs(e.x)), (t.y = Math.abs(e.y)), t; }); var lerpScratch$1 = new Cartesian2(); Cartesian2.lerp = function (e, t, i, r) { return ( Cartesian2.multiplyByScalar(t, i, lerpScratch$1), (r = Cartesian2.multiplyByScalar(e, 1 - i, r)), Cartesian2.add(lerpScratch$1, r, r) ); }; var angleBetweenScratch = new Cartesian2(), angleBetweenScratch2 = new Cartesian2(); Cartesian2.angleBetween = function (e, t) { return ( Cartesian2.normalize(e, angleBetweenScratch), Cartesian2.normalize(t, angleBetweenScratch2), CesiumMath.acosClamped(Cartesian2.dot(angleBetweenScratch, angleBetweenScratch2)) ); }; var mostOrthogonalAxisScratch = new Cartesian2(); function GeographicTilingScheme(e) { (e = defaultValue(e, defaultValue.EMPTY_OBJECT)), (this._ellipsoid = defaultValue(e.ellipsoid, Ellipsoid.WGS84)), (this._rectangle = defaultValue(e.rectangle, Rectangle.MAX_VALUE)), (this._projection = new GeographicProjection(this._ellipsoid)), (this._numberOfLevelZeroTilesX = defaultValue(e.numberOfLevelZeroTilesX, 2)), (this._numberOfLevelZeroTilesY = defaultValue(e.numberOfLevelZeroTilesY, 1)); } (Cartesian2.mostOrthogonalAxis = function (e, t) { var i = Cartesian2.normalize(e, mostOrthogonalAxisScratch); return ( Cartesian2.abs(i, i), (t = i.x <= i.y ? Cartesian2.clone(Cartesian2.UNIT_X, t) : Cartesian2.clone(Cartesian2.UNIT_Y, t)) ); }), (Cartesian2.equals = function (e, t) { return e === t || (defined(e) && defined(t) && e.x === t.x && e.y === t.y); }), (Cartesian2.equalsArray = function (e, t, i) { return e.x === t[i] && e.y === t[i + 1]; }), (Cartesian2.equalsEpsilon = function (e, t, i, r) { return ( e === t || (defined(e) && defined(t) && CesiumMath.equalsEpsilon(e.x, t.x, i, r) && CesiumMath.equalsEpsilon(e.y, t.y, i, r)) ); }), (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 (e) { return Cartesian2.clone(this, e); }), (Cartesian2.prototype.equals = function (e) { return Cartesian2.equals(this, e); }), (Cartesian2.prototype.equalsEpsilon = function (e, t, i) { return Cartesian2.equalsEpsilon(this, e, t, i); }), (Cartesian2.prototype.toString = function () { return '(' + this.x + ', ' + this.y + ')'; }), 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 (e) { return this._numberOfLevelZeroTilesX << e; }), (GeographicTilingScheme.prototype.getNumberOfYTilesAtLevel = function (e) { return this._numberOfLevelZeroTilesY << e; }), (GeographicTilingScheme.prototype.rectangleToNativeRectangle = function (e, t) { var i = CesiumMath.toDegrees(e.west), r = CesiumMath.toDegrees(e.south), n = CesiumMath.toDegrees(e.east), a = CesiumMath.toDegrees(e.north); return defined(t) ? ((t.west = i), (t.south = r), (t.east = n), (t.north = a), t) : new Rectangle(i, r, n, a); }), (GeographicTilingScheme.prototype.tileXYToNativeRectangle = function (e, t, i, r) { var n = this.tileXYToRectangle(e, t, i, r); return ( (n.west = CesiumMath.toDegrees(n.west)), (n.south = CesiumMath.toDegrees(n.south)), (n.east = CesiumMath.toDegrees(n.east)), (n.north = CesiumMath.toDegrees(n.north)), n ); }), (GeographicTilingScheme.prototype.tileXYToRectangle = function (e, t, i, r) { var n = this._rectangle, a = this.getNumberOfXTilesAtLevel(i), o = this.getNumberOfYTilesAtLevel(i), s = n.width / a, l = e * s + n.west, c = (e + 1) * s + n.west, u = n.height / o, d = n.north - t * u, h = n.north - (t + 1) * u; return ( defined(r) || (r = new Rectangle(l, h, c, d)), (r.west = l), (r.south = h), (r.east = c), (r.north = d), r ); }), (GeographicTilingScheme.prototype.positionToTileXY = function (e, t, i) { var r = this._rectangle; if (Rectangle.contains(r, e)) { var n = this.getNumberOfXTilesAtLevel(t), a = this.getNumberOfYTilesAtLevel(t), o = r.width / n, s = r.height / a, l = e.longitude; r.east < r.west && (l += CesiumMath.TWO_PI); var c = ((l - r.west) / o) | 0; c >= n && (c = n - 1); var u = ((r.north - e.latitude) / s) | 0; return u >= a && (u = a - 1), defined(i) ? ((i.x = c), (i.y = u), i) : new Cartesian2(c, u); } }); var scratchDiagonalCartesianNE = new Cartesian3(), scratchDiagonalCartesianSW = new Cartesian3(), scratchDiagonalCartographic = new Cartographic(), scratchCenterCartesian = new Cartesian3(), scratchSurfaceCartesian = new Cartesian3(), scratchBoundingSphere$4 = new BoundingSphere(), tilingScheme = new GeographicTilingScheme(), scratchCorners = [ new Cartographic(), new Cartographic(), new Cartographic(), new Cartographic(), ], scratchTileXY = new Cartesian2(), ApproximateTerrainHeights = {}; function getTileXYLevel(e) { Cartographic.fromRadians(e.east, e.north, 0, scratchCorners[0]), Cartographic.fromRadians(e.west, e.north, 0, scratchCorners[1]), Cartographic.fromRadians(e.east, e.south, 0, scratchCorners[2]), Cartographic.fromRadians(e.west, e.south, 0, scratchCorners[3]); var t, i = 0, r = 0, n = 0, a = 0, o = ApproximateTerrainHeights._terrainHeightsMaxLevel; for (t = 0; t <= o; ++t) { for (var s = !1, l = 0; l < 4; ++l) { var c = scratchCorners[l]; if ((tilingScheme.positionToTileXY(c, t, scratchTileXY), 0 === l)) (n = scratchTileXY.x), (a = scratchTileXY.y); else if (n !== scratchTileXY.x || a !== scratchTileXY.y) { s = !0; break; } } if (s) break; (i = n), (r = a); } if (0 !== t) return { x: i, y: r, level: t > o ? o : t - 1 }; } /*! @license DOMPurify 2.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.3/LICENSE */ function _toConsumableArray(e) { if (Array.isArray(e)) { for (var t = 0, i = Array(e.length); t < e.length; t++) i[t] = e[t]; return i; } return Array.from(e); } (ApproximateTerrainHeights.initialize = function () { var e = ApproximateTerrainHeights._initPromise; return ( defined(e) || ((e = Resource.fetchJson(buildModuleUrl('Assets/approximateTerrainHeights.json')).then( function (e) { ApproximateTerrainHeights._terrainHeights = e; } )), (ApproximateTerrainHeights._initPromise = e)), e ); }), (ApproximateTerrainHeights.getMinimumMaximumHeights = function (e, t) { t = defaultValue(t, Ellipsoid.WGS84); var i = getTileXYLevel(e), r = ApproximateTerrainHeights._defaultMinTerrainHeight, n = ApproximateTerrainHeights._defaultMaxTerrainHeight; if (defined(i)) { var a = i.level + '-' + i.x + '-' + i.y, o = ApproximateTerrainHeights._terrainHeights[a]; defined(o) && ((r = o[0]), (n = o[1])), t.cartographicToCartesian( Rectangle.northeast(e, scratchDiagonalCartographic), scratchDiagonalCartesianNE ), t.cartographicToCartesian( Rectangle.southwest(e, scratchDiagonalCartographic), scratchDiagonalCartesianSW ), Cartesian3.midpoint( scratchDiagonalCartesianSW, scratchDiagonalCartesianNE, scratchCenterCartesian ); var s = t.scaleToGeodeticSurface(scratchCenterCartesian, scratchSurfaceCartesian); if (defined(s)) { var l = Cartesian3.distance(scratchCenterCartesian, s); r = Math.min(r, -l); } else r = ApproximateTerrainHeights._defaultMinTerrainHeight; } return { minimumTerrainHeight: (r = Math.max(ApproximateTerrainHeights._defaultMinTerrainHeight, r)), maximumTerrainHeight: n, }; }), (ApproximateTerrainHeights.getBoundingSphere = function (e, t) { t = defaultValue(t, Ellipsoid.WGS84); var i = getTileXYLevel(e), r = ApproximateTerrainHeights._defaultMaxTerrainHeight; if (defined(i)) { var n = i.level + '-' + i.x + '-' + i.y, a = ApproximateTerrainHeights._terrainHeights[n]; defined(a) && (r = a[1]); } var o = BoundingSphere.fromRectangle3D(e, t, 0); return ( BoundingSphere.fromRectangle3D(e, t, r, scratchBoundingSphere$4), BoundingSphere.union(o, scratchBoundingSphere$4, o) ); }), (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(ApproximateTerrainHeights._terrainHeights); }, }, }); var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor, freeze = Object.freeze, seal = Object.seal, create = Object.create, _ref = 'undefined' != typeof Reflect && Reflect, apply = _ref.apply, construct = _ref.construct; apply || (apply = function (e, t, i) { return e.apply(t, i); }), freeze || (freeze = function (e) { return e; }), seal || (seal = function (e) { return e; }), construct || (construct = function (e, t) { return new (Function.prototype.bind.apply(e, [null].concat(_toConsumableArray(t))))(); }); var arrayForEach = unapply(Array.prototype.forEach), arrayPop = unapply(Array.prototype.pop), arrayPush = unapply(Array.prototype.push), stringToLowerCase = unapply(String.prototype.toLowerCase), stringMatch = unapply(String.prototype.match), stringReplace = unapply(String.prototype.replace), stringIndexOf = unapply(String.prototype.indexOf), stringTrim = unapply(String.prototype.trim), regExpTest = unapply(RegExp.prototype.test), typeErrorCreate = unconstruct(TypeError); function unapply(e) { return function (t) { for (var i = arguments.length, r = Array(i > 1 ? i - 1 : 0), n = 1; n < i; n++) r[n - 1] = arguments[n]; return apply(e, t, r); }; } function unconstruct(e) { return function () { for (var t = arguments.length, i = Array(t), r = 0; r < t; r++) i[r] = arguments[r]; return construct(e, i); }; } function addToSet(e, t) { setPrototypeOf && setPrototypeOf(e, null); for (var i = t.length; i--; ) { var r = t[i]; if ('string' == typeof r) { var n = stringToLowerCase(r); n !== r && (isFrozen(t) || (t[i] = n), (r = n)); } e[r] = !0; } return e; } function clone(e) { var t = create(null), i = void 0; for (i in e) apply(hasOwnProperty, e, [i]) && (t[i] = e[i]); return t; } function lookupGetter(e, t) { for (; null !== e; ) { var i = getOwnPropertyDescriptor(e, t); if (i) { if (i.get) return unapply(i.get); if ('function' == typeof i.value) return unapply(i.value); } e = getPrototypeOf(e); } return function (e) { return console.warn('fallback value for', e), null; }; } 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', ]), 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', ]), svgFilters = freeze([ 'feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', ]), svgDisallowed = freeze([ 'animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'feimage', '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', ]), 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', ]), mathMlDisallowed = freeze([ 'maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none', ]), text = freeze(['#text']), 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', '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', ]), 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', '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', ]), 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', ]), xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']), MUSTACHE_EXPR = seal(/\{\{[\s\S]*|[\s\S]*\}\}/gm), ERB_EXPR = seal(/<%[\s\S]*|[\s\S]*%>/gm), DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/), ARIA_ATTR = seal(/^aria-[\-\w]+$/), IS_ALLOWED_URI = seal( /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i ), IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i), ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g), _typeof = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e; }; function _toConsumableArray$1(e) { if (Array.isArray(e)) { for (var t = 0, i = Array(e.length); t < e.length; t++) i[t] = e[t]; return i; } return Array.from(e); } var getGlobal = function () { return 'undefined' == typeof window ? null : window; }, _createTrustedTypesPolicy = function (e, t) { if ( 'object' !== (void 0 === e ? 'undefined' : _typeof(e)) || 'function' != typeof e.createPolicy ) return null; var i = null, r = 'data-tt-policy-suffix'; t.currentScript && t.currentScript.hasAttribute(r) && (i = t.currentScript.getAttribute(r)); var n = 'dompurify' + (i ? '#' + i : ''); try { return e.createPolicy(n, { createHTML: function (e) { return e; }, }); } catch (e) { return console.warn('TrustedTypes policy ' + n + ' could not be created.'), null; } }; function createDOMPurify() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : getGlobal(), t = function (e) { return createDOMPurify(e); }; if (((t.version = '2.3.3'), (t.removed = []), !e || !e.document || 9 !== e.document.nodeType)) return (t.isSupported = !1), t; var i = e.document, r = e.document, n = e.DocumentFragment, a = e.HTMLTemplateElement, o = e.Node, s = e.Element, l = e.NodeFilter, c = e.NamedNodeMap, u = void 0 === c ? e.NamedNodeMap || e.MozNamedAttrMap : c, d = e.Text, h = e.Comment, p = e.DOMParser, f = e.trustedTypes, m = s.prototype, g = lookupGetter(m, 'cloneNode'), _ = lookupGetter(m, 'nextSibling'), y = lookupGetter(m, 'childNodes'), v = lookupGetter(m, 'parentNode'); if ('function' == typeof a) { var C = r.createElement('template'); C.content && C.content.ownerDocument && (r = C.content.ownerDocument); } var T = _createTrustedTypesPolicy(f, i), S = T && ee ? T.createHTML('') : '', A = r, x = A.implementation, E = A.createNodeIterator, b = A.createDocumentFragment, P = A.getElementsByTagName, D = i.importNode, w = {}; try { w = clone(r).documentMode ? r.documentMode : {}; } catch (e) {} var M = {}; t.isSupported = 'function' == typeof v && x && void 0 !== x.createHTMLDocument && 9 !== w; var I = MUSTACHE_EXPR, R = ERB_EXPR, O = DATA_ATTR, B = ARIA_ATTR, L = IS_SCRIPT_OR_DATA, F = ATTR_WHITESPACE, N = IS_ALLOWED_URI, V = null, k = addToSet( {}, [].concat( _toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text) ) ), U = null, G = addToSet( {}, [].concat( _toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml) ) ), $ = null, z = null, H = !0, W = !0, q = !1, j = !1, X = !1, Y = !1, K = !1, J = !1, Q = !1, Z = !0, ee = !1, te = !0, ie = !0, re = !1, ne = {}, ae = null, oe = 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', ]), se = null, le = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']), ce = null, ue = addToSet({}, [ 'alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns', ]), de = 'http://www.w3.org/1998/Math/MathML', he = 'http://www.w3.org/2000/svg', pe = 'http://www.w3.org/1999/xhtml', fe = pe, me = !1, ge = void 0, _e = ['application/xhtml+xml', 'text/html'], ye = 'text/html', ve = void 0, Ce = null, Te = r.createElement('form'), Se = function (e) { (Ce && Ce === e) || ((e && 'object' === (void 0 === e ? 'undefined' : _typeof(e))) || (e = {}), (e = clone(e)), (V = 'ALLOWED_TAGS' in e ? addToSet({}, e.ALLOWED_TAGS) : k), (U = 'ALLOWED_ATTR' in e ? addToSet({}, e.ALLOWED_ATTR) : G), (ce = 'ADD_URI_SAFE_ATTR' in e ? addToSet(clone(ue), e.ADD_URI_SAFE_ATTR) : ue), (se = 'ADD_DATA_URI_TAGS' in e ? addToSet(clone(le), e.ADD_DATA_URI_TAGS) : le), (ae = 'FORBID_CONTENTS' in e ? addToSet({}, e.FORBID_CONTENTS) : oe), ($ = 'FORBID_TAGS' in e ? addToSet({}, e.FORBID_TAGS) : {}), (z = 'FORBID_ATTR' in e ? addToSet({}, e.FORBID_ATTR) : {}), (ne = 'USE_PROFILES' in e && e.USE_PROFILES), (H = !1 !== e.ALLOW_ARIA_ATTR), (W = !1 !== e.ALLOW_DATA_ATTR), (q = e.ALLOW_UNKNOWN_PROTOCOLS || !1), (j = e.SAFE_FOR_TEMPLATES || !1), (X = e.WHOLE_DOCUMENT || !1), (J = e.RETURN_DOM || !1), (Q = e.RETURN_DOM_FRAGMENT || !1), (Z = !1 !== e.RETURN_DOM_IMPORT), (ee = e.RETURN_TRUSTED_TYPE || !1), (K = e.FORCE_BODY || !1), (te = !1 !== e.SANITIZE_DOM), (ie = !1 !== e.KEEP_CONTENT), (re = e.IN_PLACE || !1), (N = e.ALLOWED_URI_REGEXP || N), (fe = e.NAMESPACE || pe), (ge = ge = -1 === _e.indexOf(e.PARSER_MEDIA_TYPE) ? ye : e.PARSER_MEDIA_TYPE), (ve = 'application/xhtml+xml' === ge ? function (e) { return e; } : stringToLowerCase), j && (W = !1), Q && (J = !0), ne && ((V = addToSet({}, [].concat(_toConsumableArray$1(text)))), (U = []), !0 === ne.html && (addToSet(V, html), addToSet(U, html$1)), !0 === ne.svg && (addToSet(V, svg), addToSet(U, svg$1), addToSet(U, xml)), !0 === ne.svgFilters && (addToSet(V, svgFilters), addToSet(U, svg$1), addToSet(U, xml)), !0 === ne.mathMl && (addToSet(V, mathMl), addToSet(U, mathMl$1), addToSet(U, xml))), e.ADD_TAGS && (V === k && (V = clone(V)), addToSet(V, e.ADD_TAGS)), e.ADD_ATTR && (U === G && (U = clone(U)), addToSet(U, e.ADD_ATTR)), e.ADD_URI_SAFE_ATTR && addToSet(ce, e.ADD_URI_SAFE_ATTR), e.FORBID_CONTENTS && (ae === oe && (ae = clone(ae)), addToSet(ae, e.FORBID_CONTENTS)), ie && (V['#text'] = !0), X && addToSet(V, ['html', 'head', 'body']), V.table && (addToSet(V, ['tbody']), delete $.tbody), freeze && freeze(e), (Ce = e)); }, Ae = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']), xe = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']), Ee = addToSet({}, svg); addToSet(Ee, svgFilters), addToSet(Ee, svgDisallowed); var be = addToSet({}, mathMl); addToSet(be, mathMlDisallowed); var Pe = function (e) { var t = v(e); (t && t.tagName) || (t = { namespaceURI: pe, tagName: 'template' }); var i = stringToLowerCase(e.tagName), r = stringToLowerCase(t.tagName); if (e.namespaceURI === he) return t.namespaceURI === pe ? 'svg' === i : t.namespaceURI === de ? 'svg' === i && ('annotation-xml' === r || Ae[r]) : Boolean(Ee[i]); if (e.namespaceURI === de) return t.namespaceURI === pe ? 'math' === i : t.namespaceURI === he ? 'math' === i && xe[r] : Boolean(be[i]); if (e.namespaceURI === pe) { if (t.namespaceURI === he && !xe[r]) return !1; if (t.namespaceURI === de && !Ae[r]) return !1; var n = addToSet({}, ['title', 'style', 'font', 'a', 'script']); return !be[i] && (n[i] || !Ee[i]); } return !1; }, De = function (e) { arrayPush(t.removed, { element: e }); try { e.parentNode.removeChild(e); } catch (t) { try { e.outerHTML = S; } catch (t) { e.remove(); } } }, we = function (e, i) { try { arrayPush(t.removed, { attribute: i.getAttributeNode(e), from: i }); } catch (e) { arrayPush(t.removed, { attribute: null, from: i }); } if ((i.removeAttribute(e), 'is' === e && !U[e])) if (J || Q) try { De(i); } catch (e) {} else try { i.setAttribute(e, ''); } catch (e) {} }, Me = function (e) { var t = void 0, i = void 0; if (K) e = '' + e; else { var n = stringMatch(e, /^[\r\n\t ]+/); i = n && n[0]; } 'application/xhtml+xml' === ge && (e = '' + e + ''); var a = T ? T.createHTML(e) : e; if (fe === pe) try { t = new p().parseFromString(a, ge); } catch (e) {} if (!t || !t.documentElement) { t = x.createDocument(fe, 'template', null); try { t.documentElement.innerHTML = me ? '' : a; } catch (e) {} } var o = t.body || t.documentElement; return ( e && i && o.insertBefore(r.createTextNode(i), o.childNodes[0] || null), fe === pe ? P.call(t, X ? 'html' : 'body')[0] : X ? t.documentElement : o ); }, Ie = function (e) { return E.call( e.ownerDocument || e, e, l.SHOW_ELEMENT | l.SHOW_COMMENT | l.SHOW_TEXT, null, !1 ); }, Re = function (e) { return ( !(e instanceof d || e instanceof h) && !( 'string' == typeof e.nodeName && 'string' == typeof e.textContent && 'function' == typeof e.removeChild && e.attributes instanceof u && 'function' == typeof e.removeAttribute && 'function' == typeof e.setAttribute && 'string' == typeof e.namespaceURI && 'function' == typeof e.insertBefore ) ); }, Oe = function (e) { return 'object' === (void 0 === o ? 'undefined' : _typeof(o)) ? e instanceof o : e && 'object' === (void 0 === e ? 'undefined' : _typeof(e)) && 'number' == typeof e.nodeType && 'string' == typeof e.nodeName; }, Be = function (e, i, r) { M[e] && arrayForEach(M[e], function (e) { e.call(t, i, r, Ce); }); }, Le = function (e) { var i = void 0; if ((Be('beforeSanitizeElements', e, null), Re(e))) return De(e), !0; if (stringMatch(e.nodeName, /[\u0080-\uFFFF]/)) return De(e), !0; var r = ve(e.nodeName); if ( (Be('uponSanitizeElement', e, { tagName: r, allowedTags: V }), !Oe(e.firstElementChild) && (!Oe(e.content) || !Oe(e.content.firstElementChild)) && regExpTest(/<[/\w]/g, e.innerHTML) && regExpTest(/<[/\w]/g, e.textContent)) ) return De(e), !0; if ('select' === r && regExpTest(/