diff --git a/crates/swc/tests/vercel/full/next-31419/1/output/index.js b/crates/swc/tests/vercel/full/next-31419/1/output/index.js index 490b5818f6b..e02f2f38e24 100644 --- a/crates/swc/tests/vercel/full/next-31419/1/output/index.js +++ b/crates/swc/tests/vercel/full/next-31419/1/output/index.js @@ -8,7 +8,7 @@ Promise.all(assignAll).then(function() { switch(a.label){ case 0: for(c in e = function(u) { - var t, e; + var t; return n(this, function(n) { switch(n.label){ case 0: diff --git a/crates/swc/tests/vercel/full/next-33088/output/index.js b/crates/swc/tests/vercel/full/next-33088/output/index.js index 87dc31e1bff..0289deac1ac 100644 --- a/crates/swc/tests/vercel/full/next-33088/output/index.js +++ b/crates/swc/tests/vercel/full/next-33088/output/index.js @@ -1,21 +1,20 @@ -import r from "@swc/helpers/src/_async_to_generator.mjs"; -import t from "@swc/helpers/src/_sliced_to_array.mjs"; +import t from "@swc/helpers/src/_async_to_generator.mjs"; +import r from "@swc/helpers/src/_sliced_to_array.mjs"; import e from "@swc/helpers/src/_ts_generator.mjs"; import { jsx as n, jsxs as s, Fragment as a } from "react/jsx-runtime"; import * as c from "react"; export default function i() { - var i = t(c.useState({ + var i = r(c.useState({ hits: [] - }), 2), o = i[0], u = i[1], l = t(c.useState("react"), 2), h = l[0], f = l[1]; + }), 2), o = i[0], u = i[1], l = r(c.useState("react"), 2), h = l[0], f = l[1]; return c.useEffect(function() { "" !== h && function() { - t.apply(this, arguments); + r.apply(this, arguments); }(); - function t() { - return (t = r(function() { - var r, t; - return e(this, function(r) { - switch(r.label){ + function r() { + return (r = t(function() { + return e(this, function(t) { + switch(t.label){ case 0: return [ 4, @@ -24,10 +23,10 @@ export default function i() { case 1: return [ 4, - r.sent().json() + t.sent().json() ]; case 2: - return u(r.sent()), [ + return u(t.sent()), [ 2 ]; } @@ -40,18 +39,18 @@ export default function i() { children: [ n("input", { value: h, - onChange: function(r) { - return f(r.target.value); + onChange: function(t) { + return f(t.target.value); } }), n("ul", { - children: o.hits.map(function(r) { + children: o.hits.map(function(t) { return n("li", { children: n("a", { - href: r.url, - children: r.title + href: t.url, + children: t.title }) - }, r.objectID); + }, t.objectID); }) }) ] diff --git a/crates/swc/tests/vercel/full/utf8-1/output/index.js b/crates/swc/tests/vercel/full/utf8-1/output/index.js index b486a39ba10..dbe6173c261 100644 --- a/crates/swc/tests/vercel/full/utf8-1/output/index.js +++ b/crates/swc/tests/vercel/full/utf8-1/output/index.js @@ -10,16 +10,16 @@ s = s || ""; var _ = null, u = __webpack_hash__, d = s + (s.endsWith("/") ? "" : "/") + "_next/static/webpack/"; function p() { return (p = e(function() { - var e, a, r, n, c; - return t(this, function(e) { - switch(e.label){ + var e, a; + return t(this, function(t) { + switch(t.label){ case 0: if (!(_ !== __webpack_hash__) || "idle" !== module.hot.status()) return [ 2 ]; - e.label = 1; + t.label = 1; case 1: - return e.trys.push([ + return t.trys.push([ 1, 4, , @@ -31,17 +31,17 @@ function p() { case 2: return [ 4, - e.sent().json() + t.sent().json() ]; case 3: - return a = e.sent(), r = "/" === i ? "index" : i, (Array.isArray(a.c) ? a.c : Object.keys(a.c)).some(function(e) { - return -1 !== e.indexOf("pages".concat(r.startsWith("/") ? r : "/".concat(r))) || -1 !== e.indexOf("pages".concat(r.startsWith("/") ? r : "/".concat(r)).replace(/\//g, "\\")); + return e = t.sent(), a = "/" === i ? "index" : i, (Array.isArray(e.c) ? e.c : Object.keys(e.c)).some(function(e) { + return -1 !== e.indexOf("pages".concat(a.startsWith("/") ? a : "/".concat(a))) || -1 !== e.indexOf("pages".concat(a.startsWith("/") ? a : "/".concat(a)).replace(/\//g, "\\")); }) ? document.location.reload(!0) : u = _, [ 3, 5 ]; case 4: - return console.error("Error occurred checking for update", e.sent()), document.location.reload(!0), [ + return console.error("Error occurred checking for update", t.sent()), document.location.reload(!0), [ 3, 5 ]; diff --git a/crates/swc_ecma_minifier/src/analyzer/storage/normal.rs b/crates/swc_ecma_minifier/src/analyzer/storage/normal.rs index e116f2fa901..94262996d6b 100644 --- a/crates/swc_ecma_minifier/src/analyzer/storage/normal.rs +++ b/crates/swc_ecma_minifier/src/analyzer/storage/normal.rs @@ -44,12 +44,22 @@ impl Storage for ProgramData { Entry::Occupied(mut e) => { e.get_mut().inline_prevented |= var_info.inline_prevented; - e.get_mut().ref_count += var_info.ref_count; e.get_mut().cond_init |= if !inited && e.get().var_initialized { true } else { var_info.cond_init }; + if var_info.var_initialized { + if e.get().var_initialized || e.get().ref_count > 0 { + e.get_mut().assign_count += 1; + e.get_mut().reassigned_with_assignment = true; + } else { + // If it is referred outside child scope, it will + // be marked as var_initialized false + e.get_mut().var_initialized = true; + } + } + e.get_mut().ref_count += var_info.ref_count; e.get_mut().reassigned_with_assignment |= var_info.reassigned_with_assignment; e.get_mut().reassigned_with_var_decl |= var_info.reassigned_with_var_decl; @@ -94,13 +104,6 @@ impl Storage for ProgramData { e.get_mut().is_fn_local &= var_info.is_fn_local; e.get_mut().used_in_non_child_fn |= var_info.used_in_non_child_fn; - if var_info.var_initialized { - if e.get().var_initialized || e.get().ref_count > 0 { - e.get_mut().assign_count += 1; - e.get_mut().reassigned_with_assignment = true; - } - } - match kind { ScopeKind::Fn => { e.get_mut().is_fn_local = false; diff --git a/crates/swc_ecma_minifier/tests/benches-full/d3.js b/crates/swc_ecma_minifier/tests/benches-full/d3.js index 3e56fd78e78..67e2e9b8dee 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/d3.js +++ b/crates/swc_ecma_minifier/tests/benches-full/d3.js @@ -1969,9 +1969,9 @@ var t0, i0; function tween() { var fullname1, i, i1 = value.apply(this, arguments); - return i1 !== i0 && (t0 = (i0 = i1) && (fullname1 = fullname, i = i1, function(t) { - this.setAttributeNS(fullname1.space, fullname1.local, i.call(this, t)); - })), t0; + return i1 !== i0 && (t0 = (i0 = i1) && function(t) { + this.setAttributeNS(fullname.space, fullname.local, i1.call(this, t)); + }), t0; } return tween._value = value, tween; } @@ -1979,9 +1979,9 @@ var t0, i0; function tween() { var name1, i, i1 = value.apply(this, arguments); - return i1 !== i0 && (t0 = (i0 = i1) && (name1 = name, i = i1, function(t) { - this.setAttribute(name1, i.call(this, t)); - })), t0; + return i1 !== i0 && (t0 = (i0 = i1) && function(t) { + this.setAttribute(name, i1.call(this, t)); + }), t0; } return tween._value = value, tween; } @@ -2124,9 +2124,9 @@ var t, i0; function tween() { var name1, i, priority1, i1 = value.apply(this, arguments); - return i1 !== i0 && (t = (i0 = i1) && (name1 = name, i = i1, priority1 = priority, function(t) { - this.style.setProperty(name1, i.call(this, t), priority1); - })), t; + return i1 !== i0 && (t = (i0 = i1) && function(t) { + this.style.setProperty(name, i1.call(this, t), priority); + }), t; } return tween._value = value, tween; }(name, value, null == priority ? "" : priority)); @@ -2149,9 +2149,9 @@ var t0, i0; function tween() { var i, i1 = value.apply(this, arguments); - return i1 !== i0 && (t0 = (i0 = i1) && (i = i1, function(t) { - this.textContent = i.call(this, t); - })), t0; + return i1 !== i0 && (t0 = (i0 = i1) && function(t) { + this.textContent = i1.call(this, t); + }), t0; } return tween._value = value, tween; }(value)); @@ -5698,12 +5698,12 @@ } return projection.stream = function(stream) { var rotate1; - return cache && cacheStream === stream ? cache : cache = transformRadians((rotate1 = rotate, transformer({ + return cache && cacheStream === stream ? cache : cache = transformRadians(transformer({ point: function(x, y) { - var r = rotate1(x, y); + var r = rotate(x, y); return this.stream.point(r[0], r[1]); } - }))(preclip(projectResample(postclip(cacheStream = stream))))); + })(preclip(projectResample(postclip(cacheStream = stream))))); }, projection.preclip = function(_) { return arguments.length ? (preclip = _, theta = void 0, reset()) : preclip; }, projection.postclip = function(_) { @@ -6203,7 +6203,7 @@ for(var node, nodes = parent.children, i = -1, n = nodes.length, k = parent.value && (x1 - x0) / parent.value; ++i < n;)(node = nodes[i]).y0 = y0, node.y1 = y1, node.x0 = x0, node.x1 = x0 += node.value * k; } equalEarthRaw.invert = function(x, y) { - for(var delta, fy, fpy, l = y, l2 = l * l, l6 = l2 * l2 * l2, i = 0; i < 12 && (fy = l * (1.340264 + -0.081106 * l2 + l6 * (0.000893 + 0.003796 * l2)) - y, l -= delta = fy / (1.340264 + -0.24331799999999998 * l2 + l6 * (0.0062510000000000005 + 0.034164 * l2)), l6 = (l2 = l * l) * l2 * l2, !(1e-12 > abs$2(delta))); ++i); + for(var delta, fy, l = y, l2 = l * l, l6 = l2 * l2 * l2, i = 0; i < 12 && (fy = l * (1.340264 + -0.081106 * l2 + l6 * (0.000893 + 0.003796 * l2)) - y, l -= delta = fy / (1.340264 + -0.24331799999999998 * l2 + l6 * (0.0062510000000000005 + 0.034164 * l2)), l6 = (l2 = l * l) * l2 * l2, !(1e-12 > abs$2(delta))); ++i); return [ M * x * (1.340264 + -0.24331799999999998 * l2 + l6 * (0.0062510000000000005 + 0.034164 * l2)) / cos$1(l), asin(sin$1(l) / M) @@ -9046,7 +9046,7 @@ var previousNode, x = 0; root.eachAfter(function(node) { var children, children1 = node.children; - children1 ? (node.x = (children = children1).reduce(meanXReduce, 0) / children.length, node.y = 1 + children1.reduce(maxYReduce, 0)) : (node.x = previousNode ? x += separation(node, previousNode) : 0, node.y = 0, previousNode = node); + children1 ? (node.x = children1.reduce(meanXReduce, 0) / children1.length, node.y = 1 + children1.reduce(maxYReduce, 0)) : (node.x = previousNode ? x += separation(node, previousNode) : 0, node.y = 0, previousNode = node); }); var left = function(node) { for(var children; children = node.children;)node = children[0]; @@ -10671,7 +10671,7 @@ for(var vim, v1, ancestor1, shift, vip = v, vop = v, vim1 = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim1.m, som = vom.m; vim1 = nextRight(vim1), vip = nextLeft(vip), vim1 && vip;)vom = nextLeft(vom), (vop = nextRight(vop)).a = v, (shift = vim1.z + sim - vip.z - sip + separation(vim1._, vip._)) > 0 && (function(wm, wp, shift) { var change = shift / (wp.i - wm.i); wp.c -= change, wp.s += shift, wm.c += change, wp.z += shift, wp.m += shift; - }((vim = vim1, v1 = v, ancestor1 = ancestor, vim.a.parent === v1.parent ? vim.a : ancestor1), v, shift), sip += shift, sop += shift), sim += vim1.m, sip += vip.m, som += vom.m, sop += vop.m; + }((vim = vim1, ancestor1 = ancestor, vim.a.parent === v.parent ? vim.a : ancestor1), v, shift), sip += shift, sop += shift), sim += vim1.m, sip += vip.m, som += vom.m, sop += vop.m; vim1 && !nextRight(vop) && (vop.t = vim1, vop.m += sim - sop), vip && !nextLeft(vom) && (vom.t = vip, vom.m += sip - som, ancestor = v); } return ancestor; diff --git a/crates/swc_ecma_minifier/tests/benches-full/echarts.js b/crates/swc_ecma_minifier/tests/benches-full/echarts.js index b018c79fd16..a2e88b3e467 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/echarts.js +++ b/crates/swc_ecma_minifier/tests/benches-full/echarts.js @@ -873,23 +873,23 @@ }, Handler.prototype.dispatchToElement = function(targetInfo, eventName, event) { var eveType, targetInfo1, event1, el = (targetInfo = targetInfo || {}).target; if (!el || !el.silent) { - for(var eventKey = 'on' + eventName, eventPacket = (eveType = eventName, targetInfo1 = targetInfo, { - type: eveType, - event: event1 = event, - target: targetInfo1.target, + for(var eventKey = 'on' + eventName, eventPacket = { + type: eventName, + event: event, + target: (targetInfo1 = targetInfo).target, topTarget: targetInfo1.topTarget, cancelBubble: !1, - offsetX: event1.zrX, - offsetY: event1.zrY, - gestureEvent: event1.gestureEvent, - pinchX: event1.pinchX, - pinchY: event1.pinchY, - pinchScale: event1.pinchScale, - wheelDelta: event1.zrDelta, - zrByTouch: event1.zrByTouch, - which: event1.which, + offsetX: event.zrX, + offsetY: event.zrY, + gestureEvent: event.gestureEvent, + pinchX: event.pinchX, + pinchY: event.pinchY, + pinchScale: event.pinchScale, + wheelDelta: event.zrDelta, + zrByTouch: event.zrByTouch, + which: event.which, stop: stopEvent - }); el && (el[eventKey] && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket)), el.trigger(eventName, eventPacket), el = el.__hostTarget ? el.__hostTarget : el.parent, !eventPacket.cancelBubble);); + }; el && (el[eventKey] && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket)), el.trigger(eventName, eventPacket), el = el.__hostTarget ? el.__hostTarget : el.parent, !eventPacket.cancelBubble);); !eventPacket.cancelBubble && (this.trigger(eventName, eventPacket), this.painter && this.painter.eachOtherLayer && this.painter.eachOtherLayer(function(layer) { 'function' == typeof layer[eventKey] && layer[eventKey].call(layer, eventPacket), layer.trigger && layer.trigger(eventName, eventPacket); })); @@ -2307,7 +2307,7 @@ } }), arraySlice = Array.prototype.slice; function interpolate1DArray(out, p0, p1, percent) { - for(var p01, p11, len = p0.length, i = 0; i < len; i++)out[i] = (p01 = p0[i], ((p11 = p1[i]) - p01) * percent + p01); + for(var p01, len = p0.length, i = 0; i < len; i++)out[i] = (p01 = p0[i], (p1[i] - p01) * percent + p01); } function add1DArray(out, p0, p1, sign) { for(var len = p0.length, i = 0; i < len; i++)out[i] = p0[i] + p1[i] * sign; @@ -2459,13 +2459,13 @@ } else if (arrDim > 0) 1 === arrDim ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w) : function(out, p0, p1, percent) { for(var len = p0.length, len2 = len && p0[0].length, i = 0; i < len; i++){ out[i] || (out[i] = []); - for(var p01, p11, j = 0; j < len2; j++)out[i][j] = (p01 = p0[i][j], ((p11 = p1[i][j]) - p01) * percent + p01); + for(var p01, j = 0; j < len2; j++)out[i][j] = (p01 = p0[i][j], (p1[i][j] - p01) * percent + p01); } }(targetArr, frame[valueKey], nextFrame[valueKey], w); else if (isValueColor) interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w), isAdditive || (target[propName] = rgba2String(targetArr)); else { - var p01, p11, p02, p12, value = void 0; - this.interpolable ? (p01 = frame[valueKey], value = ((p11 = nextFrame[valueKey]) - p01) * w + p01) : (p02 = frame[valueKey], p12 = nextFrame[valueKey], value = w > 0.5 ? p12 : p02), isAdditive ? this._additiveValue = value : target[propName] = value; + var p01, p02, p11, value = void 0; + this.interpolable ? (p01 = frame[valueKey], value = (nextFrame[valueKey] - p01) * w + p01) : (p02 = frame[valueKey], p11 = nextFrame[valueKey], value = w > 0.5 ? p11 : p02), isAdditive ? this._additiveValue = value : target[propName] = value; } isAdditive && this._addToTarget(target); } @@ -5067,7 +5067,7 @@ } return this._pathLen = pathTotalLen, pathTotalLen; }, PathProxy.prototype.rebuildPath = function(ctx, percent) { - var x0, y0, xi, yi, x, y, pathSegLen, pathTotalLen, displayedLength, d = this.data, ux = this._ux, uy = this._uy, len = this._len, drawPart = percent < 1, accumLength = 0, segCount = 0; + var x0, y0, xi, yi, x, y, pathSegLen, displayedLength, d = this.data, ux = this._ux, uy = this._uy, len = this._len, drawPart = percent < 1, accumLength = 0, segCount = 0; if (!drawPart || (this._pathSegLen || this._calculateLength(), pathSegLen = this._pathSegLen, displayedLength = percent * this._pathLen)) lo: for(var i = 0; i < len;){ var cmd = d[i++], isFirst = 1 === i; switch(isFirst && (xi = d[i], yi = d[i + 1], x0 = xi, y0 = yi), cmd){ @@ -5199,7 +5199,7 @@ break; case CMD$1.C: if (isStroke) { - if (x01 = xi, y01 = yi, x11 = data[i++], y11 = data[i++], x2 = data[i++], y2 = data[i++], x3 = data[i], y3 = data[i + 1], lineWidth1 = lineWidth, x4 = x, y4 = y, 0 !== lineWidth1 && (!(y4 > y01 + lineWidth1) || !(y4 > y11 + lineWidth1) || !(y4 > y2 + lineWidth1) || !(y4 > y3 + lineWidth1)) && (!(y4 < y01 - lineWidth1) || !(y4 < y11 - lineWidth1) || !(y4 < y2 - lineWidth1) || !(y4 < y3 - lineWidth1)) && (!(x4 > x01 + lineWidth1) || !(x4 > x11 + lineWidth1) || !(x4 > x2 + lineWidth1) || !(x4 > x3 + lineWidth1)) && (!(x4 < x01 - lineWidth1) || !(x4 < x11 - lineWidth1) || !(x4 < x2 - lineWidth1) || !(x4 < x3 - lineWidth1)) && cubicProjectPoint(x01, y01, x11, y11, x2, y2, x3, y3, x4, y4, null) <= lineWidth1 / 2) return !0; + if (x01 = xi, y01 = yi, x11 = data[i++], y11 = data[i++], x2 = data[i++], y2 = data[i++], x3 = data[i], y3 = data[i + 1], 0 !== lineWidth && (!(y > y01 + lineWidth) || !(y > y11 + lineWidth) || !(y > y2 + lineWidth) || !(y > y3 + lineWidth)) && (!(y < y01 - lineWidth) || !(y < y11 - lineWidth) || !(y < y2 - lineWidth) || !(y < y3 - lineWidth)) && (!(x > x01 + lineWidth) || !(x > x11 + lineWidth) || !(x > x2 + lineWidth) || !(x > x3 + lineWidth)) && (!(x < x01 - lineWidth) || !(x < x11 - lineWidth) || !(x < x2 - lineWidth) || !(x < x3 - lineWidth)) && cubicProjectPoint(x01, y01, x11, y11, x2, y2, x3, y3, x, y, null) <= lineWidth / 2) return !0; } else w += function(x0, y0, x1, y1, x2, y2, x3, y3, x, y) { if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) return 0; var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots); @@ -5442,12 +5442,12 @@ }, Path.prototype.contain = function(x, y) { var localPos = this.transformCoordToLocal(x, y), rect = this.getBoundingRect(), style = this.style; if (x = localPos[0], y = localPos[1], rect.contain(x, y)) { - var pathProxy, x1, pathProxy1 = this.path; + var pathProxy, pathProxy1 = this.path; if (this.hasStroke()) { - var pathProxy2, lineWidth, x2, lineWidth1 = style.lineWidth, lineScale = style.strokeNoScale ? this.getLineScale() : 1; - if (lineScale > 1e-10 && (this.hasFill() || (lineWidth1 = Math.max(lineWidth1, this.strokeContainThreshold)), pathProxy2 = pathProxy1, lineWidth = lineWidth1 / lineScale, containPath(pathProxy2, lineWidth, !0, x2 = x, y))) return !0; + var pathProxy2, lineWidth, lineWidth1 = style.lineWidth, lineScale = style.strokeNoScale ? this.getLineScale() : 1; + if (lineScale > 1e-10 && (this.hasFill() || (lineWidth1 = Math.max(lineWidth1, this.strokeContainThreshold)), lineWidth = lineWidth1 / lineScale, containPath(pathProxy1, lineWidth, !0, x, y))) return !0; } - if (this.hasFill()) return pathProxy = pathProxy1, containPath(pathProxy, 0, !1, x1 = x, y); + if (this.hasFill()) return containPath(pathProxy1, 0, !1, x, y); } return !1; }, Path.prototype.dirtyShape = function() { @@ -5622,7 +5622,7 @@ var ctx1, shape1, r1, r2, r3, r4, total, x, y, width, height, r, x1, y1, width1, height1, optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style); x1 = optimizedShape.x, y1 = optimizedShape.y, width1 = optimizedShape.width, height1 = optimizedShape.height, optimizedShape.r = shape.r, shape = optimizedShape; } else x1 = shape.x, y1 = shape.y, width1 = shape.width, height1 = shape.height; - shape.r ? (ctx1 = ctx, x = (shape1 = shape).x, y = shape1.y, width = shape1.width, height = shape1.height, r = shape1.r, width < 0 && (x += width, width = -width), height < 0 && (y += height, height = -height), 'number' == typeof r ? r1 = r2 = r3 = r4 = r : r instanceof Array ? 1 === r.length ? r1 = r2 = r3 = r4 = r[0] : 2 === r.length ? (r1 = r3 = r[0], r2 = r4 = r[1]) : 3 === r.length ? (r1 = r[0], r2 = r4 = r[1], r3 = r[2]) : (r1 = r[0], r2 = r[1], r3 = r[2], r4 = r[3]) : r1 = r2 = r3 = r4 = 0, r1 + r2 > width && (total = r1 + r2, r1 *= width / total, r2 *= width / total), r3 + r4 > width && (total = r3 + r4, r3 *= width / total, r4 *= width / total), r2 + r3 > height && (total = r2 + r3, r2 *= height / total, r3 *= height / total), r1 + r4 > height && (total = r1 + r4, r1 *= height / total, r4 *= height / total), ctx1.moveTo(x + r1, y), ctx1.lineTo(x + width - r2, y), 0 !== r2 && ctx1.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0), ctx1.lineTo(x + width, y + height - r3), 0 !== r3 && ctx1.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2), ctx1.lineTo(x + r4, y + height), 0 !== r4 && ctx1.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI), ctx1.lineTo(x, y + r1), 0 !== r1 && ctx1.arc(x + r1, y + r1, r1, Math.PI, 1.5 * Math.PI)) : ctx.rect(x1, y1, width1, height1); + shape.r ? (x = (shape1 = shape).x, y = shape1.y, width = shape1.width, height = shape1.height, r = shape1.r, width < 0 && (x += width, width = -width), height < 0 && (y += height, height = -height), 'number' == typeof r ? r1 = r2 = r3 = r4 = r : r instanceof Array ? 1 === r.length ? r1 = r2 = r3 = r4 = r[0] : 2 === r.length ? (r1 = r3 = r[0], r2 = r4 = r[1]) : 3 === r.length ? (r1 = r[0], r2 = r4 = r[1], r3 = r[2]) : (r1 = r[0], r2 = r[1], r3 = r[2], r4 = r[3]) : r1 = r2 = r3 = r4 = 0, r1 + r2 > width && (total = r1 + r2, r1 *= width / total, r2 *= width / total), r3 + r4 > width && (total = r3 + r4, r3 *= width / total, r4 *= width / total), r2 + r3 > height && (total = r2 + r3, r2 *= height / total, r3 *= height / total), r1 + r4 > height && (total = r1 + r4, r1 *= height / total, r4 *= height / total), ctx.moveTo(x + r1, y), ctx.lineTo(x + width - r2, y), 0 !== r2 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0), ctx.lineTo(x + width, y + height - r3), 0 !== r3 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2), ctx.lineTo(x + r4, y + height), 0 !== r4 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI), ctx.lineTo(x, y + r1), 0 !== r1 && ctx.arc(x + r1, y + r1, r1, Math.PI, 1.5 * Math.PI)) : ctx.rect(x1, y1, width1, height1); }, Rect.prototype.isZeroArea = function() { return !this.shape.width || !this.shape.height; }, Rect; @@ -5966,7 +5966,7 @@ } return state; }(this, stateName, targetStates, state1); - if ('blur' === stateName) return el = this, stateName1 = stateName, state = state1, hasBlur = indexOf(el.currentStates, stateName1) >= 0, currentOpacity = el.style.opacity, fromState = hasBlur ? null : function(el, props, toStateName, defaultValue) { + if ('blur' === stateName) return state = state1, hasBlur = indexOf(this.currentStates, stateName) >= 0, currentOpacity = this.style.opacity, fromState = hasBlur ? null : function(el, props, toStateName, defaultValue) { for(var style = el.style, fromState = {}, i = 0; i < props.length; i++){ var propName = props[i], val = style[propName]; fromState[propName] = null == val ? defaultValue && defaultValue[propName] : val; @@ -5976,9 +5976,9 @@ animator.__fromStateTransition && 0 > animator.__fromStateTransition.indexOf(toStateName) && 'style' === animator.targetName && animator.saveFinalToTarget(fromState, props); } return fromState; - }(el, [ + }(this, [ 'opacity' - ], stateName1, { + ], stateName, { opacity: 1 }), null == (blurStyle = (state = state || {}).style || {}).opacity && (state = extend({}, state), blurStyle = extend({ opacity: hasBlur ? currentOpacity : 0.1 * fromState.opacity @@ -11662,7 +11662,7 @@ } style.strokeFirst ? (styleHasStroke(style) && ctx.strokeText(text, style.x, style.y), styleHasFill(style) && ctx.fillText(text, style.x, style.y)) : (styleHasFill(style) && ctx.fillText(text, style.x, style.y), styleHasStroke(style) && ctx.strokeText(text, style.x, style.y)), hasLineDash && ctx.setLineDash([]); } - }(ctx, el, style1)) : el instanceof ZRImage ? (2 !== scope.lastDrawType && (forceSetStyle = !0, scope.lastDrawType = 2), ctx1 = ctx, el1 = el, prevEl = prevEl1, forceSetAll = forceSetStyle, bindCommonProps(ctx1, getStyle(el1, (scope1 = scope).inHover), prevEl && getStyle(prevEl, scope1.inHover), forceSetAll, scope1), function(ctx, el, style) { + }(ctx, el, style1)) : el instanceof ZRImage ? (2 !== scope.lastDrawType && (forceSetStyle = !0, scope.lastDrawType = 2), forceSetAll = forceSetStyle, bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl1 && getStyle(prevEl1, scope.inHover), forceSetAll, scope), function(ctx, el, style) { var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload); if (image && isImageReady(image)) { var x = style.x || 0, y = style.y || 0, width = el.getWidth(), height = el.getHeight(), aspect = image.width / image.height; @@ -13571,14 +13571,14 @@ }, bindMouseEvent = function(zr, ecIns) { zr.on('mouseover', function(e) { var dispatcher, e1, api, ecData, _a, dispatchers, focusSelf, dispatcher1 = findEventDispatcher(e.target, isHighDownDispatcher); - dispatcher1 && (dispatcher = dispatcher1, e1 = e, api = ecIns._api, isHighDownDispatcher(dispatcher) || error('param should be highDownDispatcher'), dispatchers = (_a = findComponentHighDownDispatchers((ecData = getECData(dispatcher)).componentMainType, ecData.componentIndex, ecData.componentHighDownName, api)).dispatchers, focusSelf = _a.focusSelf, dispatchers ? (focusSelf && blurComponent(ecData.componentMainType, ecData.componentIndex, api), each(dispatchers, function(dispatcher) { - return enterEmphasisWhenMouseOver(dispatcher, e1); - })) : (blurSeries(ecData.seriesIndex, ecData.focus, ecData.blurScope, api), 'self' === ecData.focus && blurComponent(ecData.componentMainType, ecData.componentIndex, api), enterEmphasisWhenMouseOver(dispatcher, e1)), markStatusToUpdate(ecIns)); + dispatcher1 && (api = ecIns._api, isHighDownDispatcher(dispatcher1) || error('param should be highDownDispatcher'), dispatchers = (_a = findComponentHighDownDispatchers((ecData = getECData(dispatcher1)).componentMainType, ecData.componentIndex, ecData.componentHighDownName, api)).dispatchers, focusSelf = _a.focusSelf, dispatchers ? (focusSelf && blurComponent(ecData.componentMainType, ecData.componentIndex, api), each(dispatchers, function(dispatcher) { + return enterEmphasisWhenMouseOver(dispatcher, e); + })) : (blurSeries(ecData.seriesIndex, ecData.focus, ecData.blurScope, api), 'self' === ecData.focus && blurComponent(ecData.componentMainType, ecData.componentIndex, api), enterEmphasisWhenMouseOver(dispatcher1, e)), markStatusToUpdate(ecIns)); }).on('mouseout', function(e) { var dispatcher, e1, api, ecData, dispatchers, dispatcher1 = findEventDispatcher(e.target, isHighDownDispatcher); - dispatcher1 && (dispatcher = dispatcher1, e1 = e, api = ecIns._api, isHighDownDispatcher(dispatcher) || error('param should be highDownDispatcher'), allLeaveBlur(api), (dispatchers = findComponentHighDownDispatchers((ecData = getECData(dispatcher)).componentMainType, ecData.componentIndex, ecData.componentHighDownName, api).dispatchers) ? each(dispatchers, function(dispatcher) { - return leaveEmphasisWhenMouseOut(dispatcher, e1); - }) : leaveEmphasisWhenMouseOut(dispatcher, e1), markStatusToUpdate(ecIns)); + dispatcher1 && (api = ecIns._api, isHighDownDispatcher(dispatcher1) || error('param should be highDownDispatcher'), allLeaveBlur(api), (dispatchers = findComponentHighDownDispatchers((ecData = getECData(dispatcher1)).componentMainType, ecData.componentIndex, ecData.componentHighDownName, api).dispatchers) ? each(dispatchers, function(dispatcher) { + return leaveEmphasisWhenMouseOut(dispatcher, e); + }) : leaveEmphasisWhenMouseOut(dispatcher1, e), markStatusToUpdate(ecIns)); }).on('click', function(e) { var dispatcher = findEventDispatcher(e.target, function(target) { return null != getECData(target).dataIndex; @@ -15146,10 +15146,10 @@ var extent, splitNumber1, minInterval1, maxInterval1, result, span, interval, precision, extent1 = this._extent, span1 = extent1[1] - extent1[0]; if (isFinite(span1)) { span1 < 0 && (span1 = -span1, extent1.reverse()); - var niceTickExtent, extent2, result1 = (extent = extent1, splitNumber1 = splitNumber, minInterval1 = minInterval, maxInterval1 = maxInterval, result = {}, span = extent[1] - extent[0], interval = result.interval = nice(span / splitNumber1, !0), null != minInterval1 && interval < minInterval1 && (interval = result.interval = minInterval1), null != maxInterval1 && interval > maxInterval1 && (interval = result.interval = maxInterval1), precision = result.intervalPrecision = getIntervalPrecision(interval), niceTickExtent = result.niceTickExtent = [ - round(Math.ceil(extent[0] / interval) * interval, precision), - round(Math.floor(extent[1] / interval) * interval, precision) - ], extent2 = extent, isFinite(niceTickExtent[0]) || (niceTickExtent[0] = extent2[0]), isFinite(niceTickExtent[1]) || (niceTickExtent[1] = extent2[1]), clamp(niceTickExtent, 0, extent2), clamp(niceTickExtent, 1, extent2), niceTickExtent[0] > niceTickExtent[1] && (niceTickExtent[0] = niceTickExtent[1]), result); + var niceTickExtent, extent2, result1 = (splitNumber1 = splitNumber, result = {}, span = extent1[1] - extent1[0], interval = result.interval = nice(span / splitNumber1, !0), null != minInterval && interval < minInterval && (interval = result.interval = minInterval), null != maxInterval && interval > maxInterval && (interval = result.interval = maxInterval), precision = result.intervalPrecision = getIntervalPrecision(interval), niceTickExtent = result.niceTickExtent = [ + round(Math.ceil(extent1[0] / interval) * interval, precision), + round(Math.floor(extent1[1] / interval) * interval, precision) + ], extent2 = extent1, isFinite(niceTickExtent[0]) || (niceTickExtent[0] = extent2[0]), isFinite(niceTickExtent[1]) || (niceTickExtent[1] = extent2[1]), clamp(niceTickExtent, 0, extent2), clamp(niceTickExtent, 1, extent2), niceTickExtent[0] > niceTickExtent[1] && (niceTickExtent[0] = niceTickExtent[1]), result); this._intervalPrecision = result1.intervalPrecision, this._interval = result1.interval, this._niceExtent = result1.niceTickExtent; } }, IntervalScale.prototype.niceExtent = function(opt) { @@ -15846,18 +15846,18 @@ } function makeLabelFormatter(axis) { var tpl, tpl1, cb, labelFormatter = axis.getLabelModel().get('formatter'), categoryTickStart = 'category' === axis.type ? axis.scale.getExtent()[0] : null; - return 'time' === axis.scale.type ? (tpl = labelFormatter, function(tick, idx) { - return axis.scale.getFormattedLabel(tick, idx, tpl); - }) : 'string' == typeof labelFormatter ? (tpl1 = labelFormatter, function(tick) { + return 'time' === axis.scale.type ? function(tick, idx) { + return axis.scale.getFormattedLabel(tick, idx, labelFormatter); + } : 'string' == typeof labelFormatter ? function(tick) { var label = axis.scale.getLabel(tick); - return tpl1.replace('{value}', null != label ? label : ''); - }) : 'function' != typeof labelFormatter ? function(tick) { + return labelFormatter.replace('{value}', null != label ? label : ''); + } : 'function' != typeof labelFormatter ? function(tick) { return axis.scale.getLabel(tick); - } : (cb = labelFormatter, function(tick, idx) { - return null != categoryTickStart && (idx = tick.value - categoryTickStart), cb(getAxisRawValue(axis, tick), idx, null != tick.level ? { + } : function(tick, idx) { + return null != categoryTickStart && (idx = tick.value - categoryTickStart), labelFormatter(getAxisRawValue(axis, tick), idx, null != tick.level ? { level: tick.level } : null); - }); + }; } function getAxisRawValue(axis, tick) { return 'category' === axis.type ? axis.scale.getLabel(tick) : tick.value; @@ -18114,10 +18114,10 @@ return null != interpolatedValue ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex); }, enableTextSetter: !0 - }, (endLabelModel1 = endLabelModel, isHorizontal = (baseAxis = coordSys.getBaseAxis()).isHorizontal(), isBaseInversed = baseAxis.inverse, { + }, (isHorizontal = (baseAxis = coordSys.getBaseAxis()).isHorizontal(), isBaseInversed = baseAxis.inverse, { normal: { - align: endLabelModel1.get('align') || (isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center'), - verticalAlign: endLabelModel1.get('verticalAlign') || (isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom') + align: endLabelModel.get('align') || (isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center'), + verticalAlign: endLabelModel.get('verticalAlign') || (isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom') } })), polyline.textConfig.position = null); } else this._endLabel && (this._polyline.removeTextContent(), this._endLabel = null); @@ -21432,7 +21432,7 @@ function resetStateTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel) { el.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode'); var el1, componentModel, componentHighDownName, ecData, emphasisModel = regionModel.getModel('emphasis'), focus = emphasisModel.get('focus'); - return enableHoverEmphasis(el, focus, emphasisModel.get('blurScope')), viewBuildCtx.isGeo && (el1 = el, componentModel = mapOrGeoModel, componentHighDownName = regionName, (ecData = getECData(el1)).componentMainType = componentModel.mainType, ecData.componentIndex = componentModel.componentIndex, ecData.componentHighDownName = componentHighDownName), focus; + return enableHoverEmphasis(el, focus, emphasisModel.get('blurScope')), viewBuildCtx.isGeo && ((ecData = getECData(el)).componentMainType = mapOrGeoModel.mainType, ecData.componentIndex = mapOrGeoModel.componentIndex, ecData.componentHighDownName = regionName), focus; } var MapView = function(_super) { function MapView() { @@ -26614,7 +26614,7 @@ return assert(this._mounted), this._brushType && this._doDisableBrush(), brushOption.brushType && this._doEnableBrush(brushOption), this; }, BrushController.prototype._doEnableBrush = function(brushOption) { var zr, resourceKey, userKey, zr1 = this._zr; - !this._enableGlobalPan && (zr = zr1, resourceKey = MUTEX_RESOURCE_KEY, userKey = this._uid, getStore(zr)[resourceKey] = userKey), each(this._handlers, function(handler, eventName) { + !this._enableGlobalPan && (userKey = this._uid, getStore(zr1)[MUTEX_RESOURCE_KEY] = userKey), each(this._handlers, function(handler, eventName) { zr1.on(eventName, handler); }), this._brushType = brushOption.brushType, this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, !0); }, BrushController.prototype._doDisableBrush = function() { @@ -30981,7 +30981,7 @@ setStyle: function(key, val) { assertNotReserved(key); var value, style = tmpDuringScope.el.style; - return style && ((value = val) != value && warn('style.' + key + ' must not be assigned with NaN.'), style[key] = val, tmpDuringScope.isStyleDirty = !0), this; + return style && (val != val && warn('style.' + key + ' must not be assigned with NaN.'), style[key] = val, tmpDuringScope.isStyleDirty = !0), this; }, getStyle: function(key) { assertNotReserved(key); @@ -31204,7 +31204,7 @@ var optZ2 = elOption.z2; null != optZ2 && (elDisplayable.z2 = optZ2 || 0); for(var i = 0; i < STATES.length; i++)(function(elDisplayable, elOption, state) { - var stateObj, isNormal = state === NORMAL, elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state), optZ2 = elStateOpt ? elStateOpt.z2 : null; + var isNormal = state === NORMAL, elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state), optZ2 = elStateOpt ? elStateOpt.z2 : null; null != optZ2 && ((isNormal ? elDisplayable : elDisplayable.ensureState(state)).z2 = optZ2 || 0); })(elDisplayable, elOption, STATES[i]); } @@ -34516,10 +34516,10 @@ var itemSize = +toolboxModel.get('itemSize'), featureOpts = toolboxModel.get('feature') || {}, features1 = this._features || (this._features = {}), featureNames = []; each(featureOpts, function(opt, name) { featureNames.push(name); - }), new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(curry(processFeature, null)).execute(), this._featureNames = featureNames, group = group1, componentModel = toolboxModel, api1 = api, boxLayoutParams = componentModel.getBoxLayoutParams(), padding = componentModel.get('padding'), rect = getLayoutRect(boxLayoutParams, viewportSize = { - width: api1.getWidth(), - height: api1.getHeight() - }, padding), boxLayout(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height), positionElement(group, boxLayoutParams, viewportSize, padding), group1.add(makeBackground(group1.getBoundingRect(), toolboxModel)), group1.eachChild(function(icon) { + }), new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(curry(processFeature, null)).execute(), this._featureNames = featureNames, boxLayoutParams = toolboxModel.getBoxLayoutParams(), padding = toolboxModel.get('padding'), rect = getLayoutRect(boxLayoutParams, viewportSize = { + width: api.getWidth(), + height: api.getHeight() + }, padding), boxLayout(toolboxModel.get('orient'), group1, toolboxModel.get('itemGap'), rect.width, rect.height), positionElement(group1, boxLayoutParams, viewportSize, padding), group1.add(makeBackground(group1.getBoundingRect(), toolboxModel)), group1.eachChild(function(icon) { var titleText = icon.__title, emphasisState = icon.ensureState('emphasis'), emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {}), textContent = icon.getTextContent(), emphasisTextState = textContent && textContent.states.emphasis; if (emphasisTextState && !isFunction(emphasisTextState) && titleText) { var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {}), rect = getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle)), offsetX = icon.x + group1.x, offsetY = icon.y + group1.y + itemSize, needPutOnTop = !1; @@ -34899,13 +34899,13 @@ container.removeChild(root), self1._dom = null; } addEventListener(closeButton, 'click', close), addEventListener(refreshButton, 'click', function() { - var newOption, str, blockMetaList1, blocks, newOption1; + var newOption, blockMetaList1, blocks, newOption1; if (null == contentToOption && null != optionToContent || null != contentToOption && null == optionToContent) { console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.'), close(); return; } try { - 'function' == typeof contentToOption ? newOption = contentToOption(viewMain, api.getOption()) : (str = textarea.value, blockMetaList1 = blockMetaList, blocks = str.split(RegExp('\n*' + BLOCK_SPLITER + '\n*', 'g')), newOption1 = { + 'function' == typeof contentToOption ? newOption = contentToOption(viewMain, api.getOption()) : (blocks = textarea.value.split(RegExp('\n*' + BLOCK_SPLITER + '\n*', 'g')), newOption1 = { series: [] }, each(blocks, function(block, idx) { if (function(block) { @@ -34926,7 +34926,7 @@ series: series, categories: categories }; - }(block), blockMeta = blockMetaList1[idx], axisKey = blockMeta.axisDim + 'Axis'; + }(block), blockMeta = blockMetaList[idx], axisKey = blockMeta.axisDim + 'Axis'; blockMeta && (newOption1[axisKey] = newOption1[axisKey] || [], newOption1[axisKey][blockMeta.axisIndex] = { data: result.categories }, newOption1.series = newOption1.series.concat(result.series)); @@ -35348,10 +35348,10 @@ lineY: 'y' }[brushType], coordSys, coordRange); } - }), ecModel = ecModel1, newSnapshot = snapshot, storedSnapshots = getStoreSnapshots(ecModel), each(newSnapshot, function(batchItem, dataZoomId) { + }), storedSnapshots = getStoreSnapshots(ecModel1), each(snapshot, function(batchItem, dataZoomId) { for(var i = storedSnapshots.length - 1; i >= 0 && !storedSnapshots[i][dataZoomId]; i--); if (i < 0) { - var dataZoomModel = ecModel.queryComponents({ + var dataZoomModel = ecModel1.queryComponents({ mainType: 'dataZoom', subType: 'select', id: dataZoomId @@ -35365,7 +35365,7 @@ }; } } - }), storedSnapshots.push(newSnapshot), this._dispatchZoomAction(snapshot); + }), storedSnapshots.push(snapshot), this._dispatchZoomAction(snapshot); } function setBatch(dimName, coordSys, minMax) { var dimName1, axisModel, found, axis = coordSys.getAxis(dimName), axisModel1 = axis.model, dataZoomModel = (dimName1 = dimName, axisModel = axisModel1, ecModel1.eachComponent({ @@ -35574,7 +35574,7 @@ var zrPainter = zr && zr.painter; if (appendToBody) { var out1, elFrom, elTarget, inX, zrViewportRoot = zrPainter && zrPainter.getViewportRoot(); - zrViewportRoot && (out1 = out, elFrom = zrViewportRoot, elTarget = document.body, transformCoordWithViewport(_calcOut, elFrom, inX = zrX, zrY, !0) && transformCoordWithViewport(out1, elTarget, _calcOut[0], _calcOut[1])); + zrViewportRoot && (elTarget = document.body, transformCoordWithViewport(_calcOut, zrViewportRoot, zrX, zrY, !0) && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1])); } else { out[0] = zrX, out[1] = zrY; var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset(); @@ -35612,18 +35612,18 @@ }, TooltipHTMLContent.prototype.show = function(tooltipModel, nearPointColor) { clearTimeout(this._hideTimeout), clearTimeout(this._longHideTimeout); var tooltipModel1, enableTransition, onlyFade, cssText, transitionDuration, backgroundColor, shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY, textStyleModel, padding, duration, onlyFade1, transitionCurve, transitionOption, transitionText, textStyleModel1, cssText1, fontSize, color, shadowColor1, shadowBlur1, shadowOffsetX1, shadowOffsetY1, el = this.el, style = el.style, styleCoord = this._styleCoord; - el.innerHTML ? style.cssText = gCssText + (tooltipModel1 = tooltipModel, enableTransition = !this._firstShow, onlyFade = this._longHide, cssText = [], transitionDuration = tooltipModel1.get('transitionDuration'), backgroundColor = tooltipModel1.get('backgroundColor'), shadowBlur = tooltipModel1.get('shadowBlur'), shadowColor = tooltipModel1.get('shadowColor'), shadowOffsetX = tooltipModel1.get('shadowOffsetX'), shadowOffsetY = tooltipModel1.get('shadowOffsetY'), textStyleModel = tooltipModel1.getModel('textStyle'), padding = getPaddingFromTooltipModel(tooltipModel1, 'html'), cssText.push('box-shadow:' + (shadowOffsetX + "px " + shadowOffsetY + "px " + shadowBlur) + "px " + shadowColor), enableTransition && transitionDuration && cssText.push((duration = transitionDuration, onlyFade1 = onlyFade, transitionText = "opacity" + (transitionOption = " " + duration / 2 + "s " + (transitionCurve = 'cubic-bezier(0.23,1,0.32,1)')) + ",visibility" + transitionOption, onlyFade1 || (transitionOption = " " + duration + "s " + transitionCurve, transitionText += env1.transformSupported ? "," + TRANSFORM_VENDOR + transitionOption : ",left" + transitionOption + ",top" + transitionOption), CSS_TRANSITION_VENDOR + ':' + transitionText)), backgroundColor && (env1.canvasSupported ? cssText.push('background-color:' + backgroundColor) : (cssText.push('background-color:#' + toHex(backgroundColor)), cssText.push('filter:alpha(opacity=70)'))), each([ + el.innerHTML ? style.cssText = gCssText + (enableTransition = !this._firstShow, onlyFade = this._longHide, cssText = [], transitionDuration = tooltipModel.get('transitionDuration'), backgroundColor = tooltipModel.get('backgroundColor'), shadowBlur = tooltipModel.get('shadowBlur'), shadowColor = tooltipModel.get('shadowColor'), shadowOffsetX = tooltipModel.get('shadowOffsetX'), shadowOffsetY = tooltipModel.get('shadowOffsetY'), textStyleModel = tooltipModel.getModel('textStyle'), padding = getPaddingFromTooltipModel(tooltipModel, 'html'), cssText.push('box-shadow:' + (shadowOffsetX + "px " + shadowOffsetY + "px " + shadowBlur) + "px " + shadowColor), enableTransition && transitionDuration && cssText.push((transitionText = "opacity" + (transitionOption = " " + transitionDuration / 2 + "s " + (transitionCurve = 'cubic-bezier(0.23,1,0.32,1)')) + ",visibility" + transitionOption, onlyFade || (transitionOption = " " + transitionDuration + "s " + transitionCurve, transitionText += env1.transformSupported ? "," + TRANSFORM_VENDOR + transitionOption : ",left" + transitionOption + ",top" + transitionOption), CSS_TRANSITION_VENDOR + ':' + transitionText)), backgroundColor && (env1.canvasSupported ? cssText.push('background-color:' + backgroundColor) : (cssText.push('background-color:#' + toHex(backgroundColor)), cssText.push('filter:alpha(opacity=70)'))), each([ 'width', 'color', 'radius' ], function(name) { - var borderName = 'border-' + name, camelCase = toCamelCase(borderName), val = tooltipModel1.get(camelCase); + var borderName = 'border-' + name, camelCase = toCamelCase(borderName), val = tooltipModel.get(camelCase); null != val && cssText.push(borderName + ':' + val + ('color' === name ? '' : 'px')); - }), cssText.push((cssText1 = [], fontSize = (textStyleModel1 = textStyleModel).get('fontSize'), (color = textStyleModel1.getTextColor()) && cssText1.push('color:' + color), cssText1.push('font:' + textStyleModel1.getFont()), fontSize && cssText1.push('line-height:' + Math.round(3 * fontSize / 2) + 'px'), shadowColor1 = textStyleModel1.get('textShadowColor'), shadowBlur1 = textStyleModel1.get('textShadowBlur') || 0, shadowOffsetX1 = textStyleModel1.get('textShadowOffsetX') || 0, shadowOffsetY1 = textStyleModel1.get('textShadowOffsetY') || 0, shadowColor1 && shadowBlur1 && cssText1.push('text-shadow:' + shadowOffsetX1 + 'px ' + shadowOffsetY1 + 'px ' + shadowBlur1 + 'px ' + shadowColor1), each([ + }), cssText.push((cssText1 = [], fontSize = textStyleModel.get('fontSize'), (color = textStyleModel.getTextColor()) && cssText1.push('color:' + color), cssText1.push('font:' + textStyleModel.getFont()), fontSize && cssText1.push('line-height:' + Math.round(3 * fontSize / 2) + 'px'), shadowColor1 = textStyleModel.get('textShadowColor'), shadowBlur1 = textStyleModel.get('textShadowBlur') || 0, shadowOffsetX1 = textStyleModel.get('textShadowOffsetX') || 0, shadowOffsetY1 = textStyleModel.get('textShadowOffsetY') || 0, shadowColor1 && shadowBlur1 && cssText1.push('text-shadow:' + shadowOffsetX1 + 'px ' + shadowOffsetY1 + 'px ' + shadowBlur1 + 'px ' + shadowColor1), each([ 'decoration', 'align' ], function(name) { - var val = textStyleModel1.get(name); + var val = textStyleModel.get(name); val && cssText1.push('text-' + name + ':' + val); }), cssText1.join(';'))), null != padding && cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px'), cssText.join(';') + ';') + assembleTransform(styleCoord[0], styleCoord[1], !0) + "border-color:" + convertToColorString(nearPointColor) + ";" + (tooltipModel.get('extraCssText') || '') + ";pointer-event:" + (this._enterable ? 'auto' : 'none') : style.display = 'none', this._show = !0, this._firstShow = !1, this._longHide = !1; }, TooltipHTMLContent.prototype.setContent = function(content, markers, tooltipModel, borderColor, arrowPosition) { @@ -40983,7 +40983,7 @@ for(var errMsg = '', valueGetterParam = getters.prepareGetValue(exprOption), subCondList = [], exprKeys = keys(exprOption), parserName = exprOption.parser, valueParser = parserName ? getRawValueParser(parserName) : null, i = 0; i < exprKeys.length; i++){ var op, rval, keyRaw = exprKeys[i]; if (!('parser' === keyRaw || getters.valueGetterAttrMap.get(keyRaw))) { - var op1 = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw, condValueRaw = exprOption[keyRaw], condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw, evaluator = (op = op1, rval = condValueParsed, ('eq' === op || 'ne' === op ? new FilterEqualityComparator('eq' === op, rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null) || 'reg' === op1 && new RegExpEvaluator(condValueParsed)); + var op1 = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw, condValueRaw = exprOption[keyRaw], condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw, evaluator = ('eq' === op1 || 'ne' === op1 ? new FilterEqualityComparator('eq' === op1, condValueParsed) : hasOwn(ORDER_COMPARISON_OP_MAP, op1) ? new FilterOrderComparator(op1, condValueParsed) : null) || 'reg' === op1 && new RegExpEvaluator(condValueParsed); evaluator || throwError(makePrintable('Illegal relational operation: "' + keyRaw + '" in condition:', exprOption)), subCondList.push(evaluator); } } diff --git a/crates/swc_ecma_minifier/tests/benches-full/jquery.js b/crates/swc_ecma_minifier/tests/benches-full/jquery.js index c6c4e8e85a1..3985ae470c4 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/jquery.js +++ b/crates/swc_ecma_minifier/tests/benches-full/jquery.js @@ -133,7 +133,7 @@ return first.length = i, first; }, grep: function(elems, callback, invert) { - for(var callbackInverse, matches = [], i = 0, length = elems.length, callbackExpect = !invert; i < length; i++)!callback(elems[i], i) !== callbackExpect && matches.push(elems[i]); + for(var matches = [], i = 0, length = elems.length, callbackExpect = !invert; i < length; i++)!callback(elems[i], i) !== callbackExpect && matches.push(elems[i]); return matches; }, map: function(elems, callback, arg) { @@ -711,11 +711,11 @@ } return elementMatcher(matchers); }(match[i]))[expando] ? setMatchers1.push(cached) : elementMatchers1.push(cached); - (cached = compilerCache(selector, (elementMatchers = elementMatchers1, bySet = (setMatchers = setMatchers1).length > 0, byElement = elementMatchers.length > 0, superMatcher = function(seed, context, xml, results, outermost) { + (cached = compilerCache(selector, (bySet = setMatchers1.length > 0, byElement = elementMatchers1.length > 0, superMatcher = function(seed, context, xml, results, outermost) { var elem, j, matcher, matchedCount = 0, i = "0", unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG("*", outermost), dirrunsUnique = dirruns += null == contextBackup ? 1 : Math.random() || 0.1, len = elems.length; for(outermost && (outermostContext = context == document || context || outermost); i !== len && null != (elem = elems[i]); i++){ if (byElement && elem) { - for(j = 0, context || elem.ownerDocument == document || (setDocument(elem), xml = !documentIsHTML); matcher = elementMatchers[j++];)if (matcher(elem, context || document, xml)) { + for(j = 0, context || elem.ownerDocument == document || (setDocument(elem), xml = !documentIsHTML); matcher = elementMatchers1[j++];)if (matcher(elem, context || document, xml)) { results.push(elem); break; } @@ -724,12 +724,12 @@ bySet && ((elem = !matcher && elem) && matchedCount--, seed && unmatched.push(elem)); } if (matchedCount += i, bySet && i !== matchedCount) { - for(j = 0; matcher = setMatchers[j++];)matcher(unmatched, setMatched, context, xml); + for(j = 0; matcher = setMatchers1[j++];)matcher(unmatched, setMatched, context, xml); if (seed) { if (matchedCount > 0) for(; i--;)unmatched[i] || setMatched[i] || (setMatched[i] = pop.call(results)); setMatched = condense(setMatched); } - push.apply(results, setMatched), outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1 && Sizzle.uniqueSort(results); + push.apply(results, setMatched), outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers1.length > 1 && Sizzle.uniqueSort(results); } return outermost && (dirruns = dirrunsUnique, outermostContext = contextBackup), unmatched; }, bySet ? markFunction(superMatcher) : superMatcher))).selector = selector; @@ -1363,7 +1363,7 @@ ]); var rhtml = /<|&#?\w+;/; function buildFragment(elems, context, scripts, selection, ignored) { - for(var elem, tmp, tag, wrap, attached, j, fragment = context.createDocumentFragment(), nodes = [], i = 0, l = elems.length; i < l; i++)if ((elem = elems[i]) || 0 === elem) { + for(var elem, tmp, wrap, attached, j, fragment = context.createDocumentFragment(), nodes = [], i = 0, l = elems.length; i < l; i++)if ((elem = elems[i]) || 0 === elem) { if ("object" === toType(elem)) jQuery.merge(nodes, elem.nodeType ? [ elem ] : elem); @@ -1652,7 +1652,7 @@ return "true/" === (elem.type || "").slice(0, 5) ? elem.type = elem.type.slice(5) : elem.removeAttribute("type"), elem; } function cloneCopyEvent(src, dest) { - var i, l, type, pdataOld, udataOld, udataCur, events; + var i, l, type, udataOld, udataCur, events; if (1 === dest.nodeType) { if (dataPriv.hasData(src) && (events = dataPriv.get(src).events)) for(type in dataPriv.remove(dest, "handle events"), events)for(i = 0, l = events[type].length; i < l; i++)jQuery.event.add(dest, type, events[type][i]); dataUser.hasData(src) && (udataOld = dataUser.access(src), udataCur = jQuery.extend({}, udataOld), dataUser.set(dest, udataCur)); diff --git a/crates/swc_ecma_minifier/tests/benches-full/lodash.js b/crates/swc_ecma_minifier/tests/benches-full/lodash.js index 72233defe3d..d1997a3ee4f 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/lodash.js +++ b/crates/swc_ecma_minifier/tests/benches-full/lodash.js @@ -633,7 +633,7 @@ if (isBuffer(value)) return cloneBuffer(value, isDeep); if (tag == objectTag || tag == argsTag || isFunc && !object) { if (result = isFlat || isFunc ? {} : initCloneObject(value), !isDeep) { - return isFlat ? (source = value, object1 = (object3 = result, source2 = value, object3 && copyObject(source2, keysIn(source2), object3)), copyObject(source, getSymbolsIn(source), object1)) : (source1 = value, object2 = baseAssign(result, value), copyObject(source1, getSymbols(source1), object2)); + return isFlat ? (source = value, object1 = (object3 = result) && copyObject(value, keysIn(value), object3), copyObject(source, getSymbolsIn(source), object1)) : (source1 = value, object2 = baseAssign(result, value), copyObject(source1, getSymbols(source1), object2)); } } else { if (!cloneableTags[tag]) return object ? value : {}; @@ -1518,7 +1518,7 @@ function createToPairs(keysFunc) { return function(object) { var set, index, result, object1, tag = getTag(object); - return tag == mapTag ? mapToArray(object) : tag == setTag ? (index = -1, result = Array((set = object).size), set.forEach(function(value) { + return tag == mapTag ? mapToArray(object) : tag == setTag ? (index = -1, result = Array(object.size), object.forEach(function(value) { result[++index] = [ value, value diff --git a/crates/swc_ecma_minifier/tests/benches-full/moment.js b/crates/swc_ecma_minifier/tests/benches-full/moment.js index 9872c5f813d..f68c20c0742 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/moment.js +++ b/crates/swc_ecma_minifier/tests/benches-full/moment.js @@ -535,7 +535,7 @@ return key ? key.toLowerCase().replace('_', '-') : key; } function loadLocale(name) { - var aliasedRequire, oldLocale = null; + var oldLocale = null; if (void 0 === locales[name] && 'undefined' != typeof module && module && module.exports) try { oldLocale = globalLocale._abbr, require('./locale/' + name), getSetGlobalLocale(oldLocale); } catch (e) { @@ -745,8 +745,8 @@ parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10) - ], secondStr && result.push(parseInt(secondStr, 10)), parsedArray = result, weekdayStr = match[1], parsedInput = parsedArray, config1 = config, weekdayStr && defaultLocaleWeekdaysShort.indexOf(weekdayStr) !== new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay() && (getParsingFlags(config1).weekdayMismatch = !0, config1._isValid = !1, 1)) return; - config._a = parsedArray, config._tzm = function(obsOffset, militaryOffset, numOffset) { + ], secondStr && result.push(parseInt(secondStr, 10)), weekdayStr = match[1], parsedInput = result, config1 = config, weekdayStr && defaultLocaleWeekdaysShort.indexOf(weekdayStr) !== new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay() && (getParsingFlags(config1).weekdayMismatch = !0, config1._isValid = !1, 1)) return; + config._a = result, config._tzm = function(obsOffset, militaryOffset, numOffset) { if (obsOffset) return obsOffsets[obsOffset]; if (militaryOffset) return 0; var hm = parseInt(numOffset, 10), m = hm % 100; @@ -760,7 +760,7 @@ function configFromArray(config) { var config1, w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek, config2, nowValue, i, date, currentDate, expectedWeekday, yearToUse, input = []; if (!config._d) { - for(config2 = config, nowValue = new Date(hooks.now()), currentDate = config2._useUTC ? [ + for(nowValue = new Date(hooks.now()), currentDate = config._useUTC ? [ nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate() @@ -784,9 +784,9 @@ } config._a = [], getParsingFlags(config).empty = !0; var locale, hour, meridiem, isPm, token, config1, token1, input, config2, i, parsedInput, tokens1, token2, skipped, era, string = '' + config._i, stringLength = string.length, totalParsedInputLength = 0; - for(i = 0, tokens1 = expandFormat(config._f, config._locale).match(formattingTokens) || []; i < tokens1.length; i++)if (token2 = tokens1[i], (parsedInput = (string.match((token = token2, config1 = config, hasOwnProp(regexes, token) ? regexes[token](config1._strict, config1._locale) : RegExp(regexEscape(token.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(matched, p1, p2, p3, p4) { + for(i = 0, tokens1 = expandFormat(config._f, config._locale).match(formattingTokens) || []; i < tokens1.length; i++)if (token2 = tokens1[i], (parsedInput = (string.match(hasOwnProp(regexes, token2) ? regexes[token2](config._strict, config._locale) : RegExp(regexEscape(token2.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(matched, p1, p2, p3, p4) { return p1 || p2 || p3 || p4; - }))))) || [])[0]) && ((skipped = string.substr(0, string.indexOf(parsedInput))).length > 0 && getParsingFlags(config).unusedInput.push(skipped), string = string.slice(string.indexOf(parsedInput) + parsedInput.length), totalParsedInputLength += parsedInput.length), formatTokenFunctions[token2]) parsedInput ? getParsingFlags(config).empty = !1 : getParsingFlags(config).unusedTokens.push(token2), token1 = token2, input = parsedInput, config2 = config, null != input && hasOwnProp(tokens, token1) && tokens[token1](input, config2._a, config2, token1); + })))) || [])[0]) && ((skipped = string.substr(0, string.indexOf(parsedInput))).length > 0 && getParsingFlags(config).unusedInput.push(skipped), string = string.slice(string.indexOf(parsedInput) + parsedInput.length), totalParsedInputLength += parsedInput.length), formatTokenFunctions[token2]) parsedInput ? getParsingFlags(config).empty = !1 : getParsingFlags(config).unusedTokens.push(token2), null != parsedInput && hasOwnProp(tokens, token2) && tokens[token2](parsedInput, config._a, config, token2); else config._strict && !parsedInput && getParsingFlags(config).unusedTokens.push(token2); getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength, string.length > 0 && getParsingFlags(config).unusedInput.push(string), config._a[3] <= 12 && !0 === getParsingFlags(config).bigHour && config._a[3] > 0 && (getParsingFlags(config).bigHour = void 0), getParsingFlags(config).parsedDateParts = config._a.slice(0), getParsingFlags(config).meridiem = config._meridiem, config._a[3] = (locale = config._locale, hour = config._a[3], null == (meridiem = config._meridiem) ? hour : null != locale.meridiemHour ? locale.meridiemHour(hour, meridiem) : (null != locale.isPM && ((isPm = locale.isPM(meridiem)) && hour < 12 && (hour += 12), isPm || 12 !== hour || (hour = 0)), hour)), null !== (era = getParsingFlags(config).era) && (config._a[0] = config._locale.erasConvertYear(era, config._a[0])), configFromArray(config), checkOverflow(config); } diff --git a/crates/swc_ecma_minifier/tests/benches-full/react.js b/crates/swc_ecma_minifier/tests/benches-full/react.js index 3fd9c8692da..50b8f482824 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/react.js +++ b/crates/swc_ecma_minifier/tests/benches-full/react.js @@ -218,14 +218,14 @@ } if (key || ref) { var props1, displayName, warnAboutAccessingKey, props2, displayName1, warnAboutAccessingRef, displayName2 = 'function' == typeof type ? type.displayName || type.name || 'Unknown' : type; - key && (props1 = props, displayName = displayName2, (warnAboutAccessingKey = function() { - specialPropKeyWarningShown || (specialPropKeyWarningShown = !0, error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName)); - }).isReactWarning = !0, Object.defineProperty(props1, 'key', { + key && ((warnAboutAccessingKey = function() { + specialPropKeyWarningShown || (specialPropKeyWarningShown = !0, error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName2)); + }).isReactWarning = !0, Object.defineProperty(props, 'key', { get: warnAboutAccessingKey, configurable: !0 - })), ref && (props2 = props, displayName1 = displayName2, (warnAboutAccessingRef = function() { - specialPropRefWarningShown || (specialPropRefWarningShown = !0, error("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName1)); - }).isReactWarning = !0, Object.defineProperty(props2, 'ref', { + })), ref && ((warnAboutAccessingRef = function() { + specialPropRefWarningShown || (specialPropRefWarningShown = !0, error("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName2)); + }).isReactWarning = !0, Object.defineProperty(props, 'ref', { get: warnAboutAccessingRef, configurable: !0 })); diff --git a/crates/swc_ecma_minifier/tests/benches-full/terser.js b/crates/swc_ecma_minifier/tests/benches-full/terser.js index bb6bed6d679..c4bcdb90534 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/terser.js +++ b/crates/swc_ecma_minifier/tests/benches-full/terser.js @@ -1602,7 +1602,7 @@ }(is_import)), is("punc", ",") && next(); next(); } else is("operator", "*") && (next(), is_import && is("name", "as") && (next(), name = as_symbol(is_import ? AST_SymbolImport : AST_SymbolExportForeign)), names = [ - (is_import1 = is_import, name1 = name, foreign_type = is_import1 ? AST_SymbolImportForeign : AST_SymbolExportForeign, start = S.token, end = prev(), name1 = name1 || new (is_import1 ? AST_SymbolImport : AST_SymbolExport)({ + (name1 = name, foreign_type = is_import ? AST_SymbolImportForeign : AST_SymbolExportForeign, start = S.token, end = prev(), name1 = name1 || new (is_import ? AST_SymbolImport : AST_SymbolExport)({ name: "*", start: start, end: end @@ -7315,7 +7315,7 @@ this.definition().fixed = !1; }), def_reduce_vars(AST_SymbolRef, function(tw, descend, compressor) { var tw1, compressor1, def, value, fixed_value, d = this.definition(); - (d.references.push(this), 1 == d.references.length && !d.fixed && d.orig[0] instanceof AST_SymbolDefun && tw.loop_ids.set(d.id, tw.in_loop), void 0 !== d.fixed && safe_to_read(tw, d)) ? d.fixed && ((fixed_value = this.fixed_value()) instanceof AST_Lambda && is_recursive_ref(tw, d) ? d.recursive_refs++ : fixed_value && !compressor.exposed(d) && (tw1 = tw, compressor1 = compressor, def = d, compressor1.option("unused") && !def.scope.pinned() && def.references.length - def.recursive_refs == 1 && tw1.loop_ids.get(def.id) === tw1.in_loop) ? d.single_use = fixed_value instanceof AST_Lambda && !fixed_value.pinned() || fixed_value instanceof AST_Class || d.scope === this.scope && fixed_value.is_constant_expression() : d.single_use = !1, is_modified(compressor, tw, this, fixed_value, 0, !!(value = fixed_value) && (value.is_constant() || value instanceof AST_Lambda || value instanceof AST_This)) && (d.single_use ? d.single_use = "m" : d.fixed = !1)) : d.fixed = !1, mark_escaped(tw, d, this.scope, this, fixed_value, 0, 1); + (d.references.push(this), 1 == d.references.length && !d.fixed && d.orig[0] instanceof AST_SymbolDefun && tw.loop_ids.set(d.id, tw.in_loop), void 0 !== d.fixed && safe_to_read(tw, d)) ? d.fixed && ((fixed_value = this.fixed_value()) instanceof AST_Lambda && is_recursive_ref(tw, d) ? d.recursive_refs++ : fixed_value && !compressor.exposed(d) && compressor.option("unused") && !d.scope.pinned() && d.references.length - d.recursive_refs == 1 && tw.loop_ids.get(d.id) === tw.in_loop ? d.single_use = fixed_value instanceof AST_Lambda && !fixed_value.pinned() || fixed_value instanceof AST_Class || d.scope === this.scope && fixed_value.is_constant_expression() : d.single_use = !1, is_modified(compressor, tw, this, fixed_value, 0, !!(value = fixed_value) && (value.is_constant() || value instanceof AST_Lambda || value instanceof AST_This)) && (d.single_use ? d.single_use = "m" : d.fixed = !1)) : d.fixed = !1, mark_escaped(tw, d, this.scope, this, fixed_value, 0, 1); }), def_reduce_vars(AST_Toplevel, function(tw, descend, compressor) { this.globals.forEach(function(def) { reset_def(compressor, def); diff --git a/crates/swc_ecma_minifier/tests/benches-full/three.js b/crates/swc_ecma_minifier/tests/benches-full/three.js index 0764e3a9efd..3ef3ca931b9 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/three.js +++ b/crates/swc_ecma_minifier/tests/benches-full/three.js @@ -3389,12 +3389,12 @@ } attribute.isInterleavedBufferAttribute && (attribute = attribute.data); var data = buffers.get(attribute); - void 0 === data ? buffers.set(attribute, (attribute1 = attribute, bufferType1 = bufferType, array = attribute1.array, usage = attribute1.usage, buffer = gl.createBuffer(), gl.bindBuffer(bufferType1, buffer), gl.bufferData(bufferType1, array, usage), attribute1.onUploadCallback(), type = 5126, array instanceof Float32Array ? type = 5126 : array instanceof Float64Array ? console.warn('THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.') : array instanceof Uint16Array ? attribute1.isFloat16BufferAttribute ? isWebGL2 ? type = 5131 : console.warn('THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.') : type = 5123 : array instanceof Int16Array ? type = 5122 : array instanceof Uint32Array ? type = 5125 : array instanceof Int32Array ? type = 5124 : array instanceof Int8Array ? type = 5120 : array instanceof Uint8Array && (type = 5121), { + void 0 === data ? buffers.set(attribute, (array = (attribute1 = attribute).array, usage = attribute1.usage, buffer = gl.createBuffer(), gl.bindBuffer(bufferType, buffer), gl.bufferData(bufferType, array, usage), attribute1.onUploadCallback(), type = 5126, array instanceof Float32Array ? type = 5126 : array instanceof Float64Array ? console.warn('THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.') : array instanceof Uint16Array ? attribute1.isFloat16BufferAttribute ? isWebGL2 ? type = 5131 : console.warn('THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.') : type = 5123 : array instanceof Int16Array ? type = 5122 : array instanceof Uint32Array ? type = 5125 : array instanceof Int32Array ? type = 5124 : array instanceof Int8Array ? type = 5120 : array instanceof Uint8Array && (type = 5121), { buffer: buffer, type: type, bytesPerElement: array.BYTES_PER_ELEMENT, version: attribute1.version - })) : data.version < attribute.version && (buffer1 = data.buffer, attribute2 = attribute, bufferType2 = bufferType, array1 = attribute2.array, updateRange = attribute2.updateRange, gl.bindBuffer(bufferType2, buffer1), -1 === updateRange.count ? gl.bufferSubData(bufferType2, 0, array1) : (isWebGL2 ? gl.bufferSubData(bufferType2, updateRange.offset * array1.BYTES_PER_ELEMENT, array1, updateRange.offset, updateRange.count) : gl.bufferSubData(bufferType2, updateRange.offset * array1.BYTES_PER_ELEMENT, array1.subarray(updateRange.offset, updateRange.offset + updateRange.count)), updateRange.count = -1), data.version = attribute.version); + })) : data.version < attribute.version && (buffer1 = data.buffer, array1 = (attribute2 = attribute).array, updateRange = attribute2.updateRange, gl.bindBuffer(bufferType, buffer1), -1 === updateRange.count ? gl.bufferSubData(bufferType, 0, array1) : (isWebGL2 ? gl.bufferSubData(bufferType, updateRange.offset * array1.BYTES_PER_ELEMENT, array1, updateRange.offset, updateRange.count) : gl.bufferSubData(bufferType, updateRange.offset * array1.BYTES_PER_ELEMENT, array1.subarray(updateRange.offset, updateRange.offset + updateRange.count)), updateRange.count = -1), data.version = attribute.version); } }; } @@ -6683,7 +6683,7 @@ for(var i = 0; i < cameras.length; i++)updateCamera(cameras[i], parent); camera.matrixWorld.copy(cameraVR.matrixWorld); for(var children = camera.children, _i3 = 0, l = children.length; _i3 < l; _i3++)children[_i3].updateMatrixWorld(!0); - return 2 === cameras.length ? (camera1 = cameraVR, cameraL1 = cameraL, cameraR1 = cameraR, cameraLPos.setFromMatrixPosition(cameraL1.matrixWorld), cameraRPos.setFromMatrixPosition(cameraR1.matrixWorld), ipd = cameraLPos.distanceTo(cameraRPos), projL = cameraL1.projectionMatrix.elements, projR = cameraR1.projectionMatrix.elements, near = projL[14] / (projL[10] - 1), far = projL[14] / (projL[10] + 1), topFov = (projL[9] + 1) / projL[5], bottomFov = (projL[9] - 1) / projL[5], xOffset = -((zOffset = ipd / (-(leftFov = (projL[8] - 1) / projL[0]) + (rightFov = (projR[8] + 1) / projR[0]))) * leftFov), cameraL1.matrixWorld.decompose(camera1.position, camera1.quaternion, camera1.scale), camera1.translateX(xOffset), camera1.translateZ(zOffset), camera1.matrixWorld.compose(camera1.position, camera1.quaternion, camera1.scale), camera1.matrixWorldInverse.copy(camera1.matrixWorld).invert(), near2 = near + zOffset, far2 = far + zOffset, camera1.projectionMatrix.makePerspective(near * leftFov - xOffset, near * rightFov + (ipd - xOffset), topFov * far / far2 * near2, bottomFov * far / far2 * near2, near2, far2)) : cameraVR.projectionMatrix.copy(cameraL.projectionMatrix), cameraVR; + return 2 === cameras.length ? (cameraLPos.setFromMatrixPosition(cameraL.matrixWorld), cameraRPos.setFromMatrixPosition(cameraR.matrixWorld), ipd = cameraLPos.distanceTo(cameraRPos), projL = cameraL.projectionMatrix.elements, projR = cameraR.projectionMatrix.elements, near = projL[14] / (projL[10] - 1), far = projL[14] / (projL[10] + 1), topFov = (projL[9] + 1) / projL[5], bottomFov = (projL[9] - 1) / projL[5], xOffset = -((zOffset = ipd / (-(leftFov = (projL[8] - 1) / projL[0]) + (rightFov = (projR[8] + 1) / projR[0]))) * leftFov), cameraL.matrixWorld.decompose(cameraVR.position, cameraVR.quaternion, cameraVR.scale), cameraVR.translateX(xOffset), cameraVR.translateZ(zOffset), cameraVR.matrixWorld.compose(cameraVR.position, cameraVR.quaternion, cameraVR.scale), cameraVR.matrixWorldInverse.copy(cameraVR.matrixWorld).invert(), near2 = near + zOffset, far2 = far + zOffset, cameraVR.projectionMatrix.makePerspective(near * leftFov - xOffset, near * rightFov + (ipd - xOffset), topFov * far / far2 * near2, bottomFov * far / far2 * near2, near2, far2)) : cameraVR.projectionMatrix.copy(cameraL.projectionMatrix), cameraVR; }; var onAnimationFrameCallback = null, animation = new WebGLAnimation(); animation.setAnimationLoop(function(time, frame) { diff --git a/crates/swc_ecma_minifier/tests/benches-full/victory.js b/crates/swc_ecma_minifier/tests/benches-full/victory.js index 959cc1de6fe..ed4d28f4c3c 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/victory.js +++ b/crates/swc_ecma_minifier/tests/benches-full/victory.js @@ -6305,7 +6305,7 @@ triangles: function() { var triangles = [], edges = this.edges; return this.cells.forEach(function(cell, i) { - if (m = (halfedges = cell.halfedges).length) for(var a, b, c, halfedges, m, s0, site = cell.site, j = -1, e1 = edges[halfedges[m - 1]], s1 = e1.left === site ? e1.right : e1.left; ++j < m;)s0 = s1, s1 = (e1 = edges[halfedges[j]]).left === site ? e1.right : e1.left, s0 && s1 && i < s0.index && i < s1.index && 0 > (a = site, b = s0, c = s1, (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1])) && triangles.push([ + if (m = (halfedges = cell.halfedges).length) for(var a, b, c, halfedges, m, s0, site = cell.site, j = -1, e1 = edges[halfedges[m - 1]], s1 = e1.left === site ? e1.right : e1.left; ++j < m;)s0 = s1, s1 = (e1 = edges[halfedges[j]]).left === site ? e1.right : e1.left, s0 && s1 && i < s0.index && i < s1.index && 0 > (c = s1, (site[0] - c[0]) * (s0[1] - site[1]) - (site[0] - s0[0]) * (c[1] - site[1])) && triangles.push([ site.data, s0.data, s1.data @@ -8522,7 +8522,7 @@ }, oneOf: function(expectedValues) { return Array.isArray(expectedValues) ? createChainableTypeChecker(function(props, propName, componentName, location, propFullName) { - for(var x, y, propValue = props[propName], i = 0; i < expectedValues.length; i++)if ((x = propValue) === (y = expectedValues[i]) ? 0 !== x || 1 / x == 1 / y : x != x && y != y) return null; + for(var x, y, propValue = props[propName], i = 0; i < expectedValues.length; i++)if (propValue === (y = expectedValues[i]) ? 0 !== propValue || 1 / propValue == 1 / y : propValue != propValue && y != y) return null; var valuesString = JSON.stringify(expectedValues, function(key, value) { return 'symbol' === getPreciseType(value) ? String(value) : value; }); @@ -13463,13 +13463,13 @@ var child1, props1, calculatedProps1, domain, scale, stringMap, categories, axisChild = victory_core__WEBPACK_IMPORTED_MODULE_3__.Axis.findAxisComponents([ child ]); - if (axisChild.length > 0) return axisChild[0], props1 = props, domain = (calculatedProps1 = calculatedProps).domain, scale = calculatedProps1.scale, stringMap = calculatedProps1.stringMap, categories = calculatedProps1.categories, { + if (axisChild.length > 0) return axisChild[0], domain = calculatedProps.domain, scale = calculatedProps.scale, stringMap = calculatedProps.stringMap, categories = calculatedProps.categories, { stringMap: stringMap, - horizontal: calculatedProps1.horizontal, + horizontal: calculatedProps.horizontal, categories: categories, - startAngle: props1.startAngle, - endAngle: props1.endAngle, - innerRadius: props1.innerRadius, + startAngle: props.startAngle, + endAngle: props.endAngle, + innerRadius: props.innerRadius, domain: domain, scale: scale }; @@ -17045,7 +17045,7 @@ } function getTickArray(props) { var props1, axis, stringMap, categories, ticksFromCategories, ticksFromStringMap, arr, newTickArray, domain, tickValues = props.tickValues, tickFormat = props.tickFormat, axis1 = getAxis(props), stringMap1 = props.stringMap && props.stringMap[axis1], ticks = tickValues; - stringMap1 && (axis = getAxis(props1 = props), stringMap = props1.stringMap && props1.stringMap[axis], ticksFromCategories = (categories = Array.isArray(props1.categories) ? props1.categories : props1.categories && props1.categories[axis]) && _collection__WEBPACK_IMPORTED_MODULE_13__.default.containsOnlyStrings(categories) ? categories.map(function(tick) { + stringMap1 && (axis = getAxis(props), stringMap = props.stringMap && props.stringMap[axis], ticksFromCategories = (categories = Array.isArray(props.categories) ? props.categories : props.categories && props.categories[axis]) && _collection__WEBPACK_IMPORTED_MODULE_13__.default.containsOnlyStrings(categories) ? categories.map(function(tick) { return stringMap[tick]; }) : void 0, ticksFromStringMap = stringMap && lodash_values__WEBPACK_IMPORTED_MODULE_2___default()(stringMap), ticks = ticksFromCategories && 0 !== ticksFromCategories.length ? ticksFromCategories : ticksFromStringMap), tickValues && _collection__WEBPACK_IMPORTED_MODULE_13__.default.containsStrings(tickValues) && (ticks = stringMap1 ? tickValues.map(function(tick) { return stringMap1[tick]; @@ -22639,9 +22639,9 @@ nodesShouldEnter: !0 }); }); - } else if (!state && animate && animate.onExit) return animate1 = animate, data1 = data, after = animate1.onEnter && animate1.onEnter.after ? animate1.onEnter.after : lodash_identity__WEBPACK_IMPORTED_MODULE_1___default.a, { - data: data1.map(function(datum, idx) { - return lodash_assign__WEBPACK_IMPORTED_MODULE_3___default()({}, datum, after(datum, idx, data1)); + } else if (!state && animate && animate.onExit) return after = animate.onEnter && animate.onEnter.after ? animate.onEnter.after : lodash_identity__WEBPACK_IMPORTED_MODULE_1___default.a, { + data: data.map(function(datum, idx) { + return lodash_assign__WEBPACK_IMPORTED_MODULE_3___default()({}, datum, after(datum, idx, data)); }) }; } else { @@ -30703,12 +30703,12 @@ }, getDomain: function(props) { var obj, key, value, originalDomain = props.originalDomain, domain = props.domain, children = props.children, zoomDimension = props.zoomDimension, childComponents = react__WEBPACK_IMPORTED_MODULE_4__.Children.toArray(children), childrenDomain = {}; - return childComponents.length && (childrenDomain = zoomDimension ? (obj = {}, key = zoomDimension, value = victory_core__WEBPACK_IMPORTED_MODULE_5__.Wrapper.getDomainFromChildren(props, zoomDimension, childComponents), key in obj ? Object.defineProperty(obj, key, { + return childComponents.length && (childrenDomain = zoomDimension ? (obj = {}, value = victory_core__WEBPACK_IMPORTED_MODULE_5__.Wrapper.getDomainFromChildren(props, zoomDimension, childComponents), zoomDimension in obj ? Object.defineProperty(obj, zoomDimension, { value: value, enumerable: !0, configurable: !0, writable: !0 - }) : obj[key] = value, obj) : { + }) : obj[zoomDimension] = value, obj) : { x: victory_core__WEBPACK_IMPORTED_MODULE_5__.Wrapper.getDomainFromChildren(props, "x", childComponents), y: victory_core__WEBPACK_IMPORTED_MODULE_5__.Wrapper.getDomainFromChildren(props, "y", childComponents) }), lodash_defaults__WEBPACK_IMPORTED_MODULE_1___default()({}, childrenDomain, originalDomain, domain); diff --git a/crates/swc_ecma_minifier/tests/benches-full/vue.js b/crates/swc_ecma_minifier/tests/benches-full/vue.js index aa4757cd0cc..f8457c94e80 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/vue.js +++ b/crates/swc_ecma_minifier/tests/benches-full/vue.js @@ -1738,7 +1738,7 @@ } } function updateAttrs(oldVnode, vnode) { - var key, cur, old, opts = vnode.componentOptions; + var key, cur, opts = vnode.componentOptions; if (!(isDef(opts) && !1 === opts.Ctor.options.inheritAttrs || isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs))) { var elm = vnode.elm, oldAttrs = oldVnode.data.attrs || {}, attrs = vnode.data.attrs || {}; for(key in isDef(attrs.__ob__) && (attrs = vnode.data.attrs = extend({}, attrs)), attrs)cur = attrs[key], oldAttrs[key] !== cur && setAttr(elm, key, cur); @@ -2382,7 +2382,7 @@ isDef(i = data.hook) && isDef(i = i.update) && i(oldVnode, vnode); } isUndef(vnode.text) ? isDef(oldCh) && isDef(ch) ? oldCh !== ch && function(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) { - var oldKeyToIdx, idxInOld, vnodeToMove, refElm, oldStartIdx = 0, newStartIdx = 0, oldEndIdx = oldCh.length - 1, oldStartVnode = oldCh[0], oldEndVnode = oldCh[oldEndIdx], newEndIdx = newCh.length - 1, newStartVnode = newCh[0], newEndVnode = newCh[newEndIdx], canMove = !removeOnly; + var oldKeyToIdx, idxInOld, vnodeToMove, oldStartIdx = 0, newStartIdx = 0, oldEndIdx = oldCh.length - 1, oldStartVnode = oldCh[0], oldEndVnode = oldCh[oldEndIdx], newEndIdx = newCh.length - 1, newStartVnode = newCh[0], newEndVnode = newCh[newEndIdx], canMove = !removeOnly; for(checkDuplicateKeys(newCh); oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx;)isUndef(oldStartVnode) ? oldStartVnode = oldCh[++oldStartIdx] : isUndef(oldEndVnode) ? oldEndVnode = oldCh[--oldEndIdx] : sameVnode(oldStartVnode, newStartVnode) ? (patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx), oldStartVnode = oldCh[++oldStartIdx], newStartVnode = newCh[++newStartIdx]) : sameVnode(oldEndVnode, newEndVnode) ? (patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx), oldEndVnode = oldCh[--oldEndIdx], newEndVnode = newCh[--newEndIdx]) : sameVnode(oldStartVnode, newEndVnode) ? (patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx), canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm)), oldStartVnode = oldCh[++oldStartIdx], newEndVnode = newCh[--newEndIdx]) : sameVnode(oldEndVnode, newStartVnode) ? (patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx), canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm), oldEndVnode = oldCh[--oldEndIdx], newStartVnode = newCh[++newStartIdx]) : (isUndef(oldKeyToIdx) && (oldKeyToIdx = function(children, beginIdx, endIdx) { var i, key, map = {}; for(i = beginIdx; i <= endIdx; ++i)isDef(key = children[i].key) && (map[key] = i); @@ -2829,13 +2829,13 @@ else if (onRE.test(name)) name = name.replace(onRE, ''), (isDynamic = dynamicArgRE.test(name)) && (name = name.slice(1, -1)), addHandler(el, name, value, modifiers, !1, warn$2, list[i], isDynamic); else { var el1, name1, rawName1, value1, arg, isDynamicArg, modifiers1, range, argMatch = (name = name.replace(dirRE, '')).match(argRE), arg1 = argMatch && argMatch[1]; - isDynamic = !1, arg1 && (name = name.slice(0, -(arg1.length + 1)), dynamicArgRE.test(arg1) && (arg1 = arg1.slice(1, -1), isDynamic = !0)), el1 = el, name1 = name, value1 = value, arg = arg1, isDynamicArg = isDynamic, modifiers1 = modifiers, range = list[i], (el1.directives || (el1.directives = [])).push(rangeSetItem({ + isDynamic = !1, arg1 && (name = name.slice(0, -(arg1.length + 1)), dynamicArgRE.test(arg1) && (arg1 = arg1.slice(1, -1), isDynamic = !0)), el1 = el, name1 = name, value1 = value, arg = arg1, isDynamicArg = isDynamic, range = list[i], (el1.directives || (el1.directives = [])).push(rangeSetItem({ name: name1, rawName: rawName, value: value1, arg: arg, isDynamicArg: isDynamicArg, - modifiers: modifiers1 + modifiers: modifiers }, range)), el1.plain = !1, 'model' === name && function(el, value) { for(var _el = el; _el;)_el.for && _el.alias === value && warn$2("<" + el.tag + " v-model=\"" + value + '">: You are binding v-model directly to a v-for iteration alias. This will not be able to modify the v-for source array because writing to the alias is like modifying a function local variable. Consider using an array of objects and use v-model on an object property instead.', el.rawAttrsMap['v-model']), _el = _el.parent; }(el, value); @@ -2935,9 +2935,8 @@ modules: modules$1, directives: { model: function(el, dir, _warn) { - warn$1 = _warn; var el1, value, modifiers, code, el2, value1, modifiers1, number, valueBinding, trueValueBinding, falseValueBinding, el3, value2, modifiers2, number1, valueBinding1, value3 = dir.value, modifiers3 = dir.modifiers, tag = el.tag, type = el.attrsMap.type; - if ('input' === tag && 'file' === type && warn$1("<" + el.tag + " v-model=\"" + value3 + '" type="file">:\nFile inputs are read only. Use a v-on:change listener instead.', el.rawAttrsMap['v-model']), el.component) return genComponentModel(el, value3, modifiers3), !1; + if ('input' === tag && 'file' === type && _warn("<" + el.tag + " v-model=\"" + value3 + '" type="file">:\nFile inputs are read only. Use a v-on:change listener instead.', el.rawAttrsMap['v-model']), el.component) return genComponentModel(el, value3, modifiers3), !1; if ('select' === tag) { el1 = el, value = value3, addHandler(el1, 'change', code = (code = 'var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return ' + ((modifiers = modifiers3) && modifiers.number ? '_n(val)' : 'val') + "});") + " " + genAssignmentCode(value, '$event.target.multiple ? $$selectedVal : $$selectedVal[0]'), null, !0); } else if ('input' === tag && 'checkbox' === type) { @@ -2948,7 +2947,7 @@ var type = el.attrsMap.type, value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'], typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type']; if (value$1 && !typeBinding) { var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value'; - warn$1(binding + "=\"" + value$1 + '" conflicts with v-model on the same element because the latter already expands to a value binding internally', el.rawAttrsMap[binding]); + _warn(binding + "=\"" + value$1 + '" conflicts with v-model on the same element because the latter already expands to a value binding internally', el.rawAttrsMap[binding]); } var ref = modifiers || {}, lazy = ref.lazy, number = ref.number, trim = ref.trim, valueExpression = '$event.target.value'; trim && (valueExpression = "$event.target.value.trim()"), number && (valueExpression = "_n(" + valueExpression + ")"); @@ -2957,7 +2956,7 @@ }(el, value3, modifiers3); else { if (!config.isReservedTag(tag)) return genComponentModel(el, value3, modifiers3), !1; - warn$1("<" + el.tag + " v-model=\"" + value3 + "\">: v-model is not supported on this element type. If you are working with contenteditable, it's recommended to wrap a library dedicated for that purpose inside a custom component.", el.rawAttrsMap['v-model']); + _warn("<" + el.tag + " v-model=\"" + value3 + "\">: v-model is not supported on this element type. If you are working with contenteditable, it's recommended to wrap a library dedicated for that purpose inside a custom component.", el.rawAttrsMap['v-model']); } return !0; }, diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/emotion/react/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/emotion/react/1/output.js index 58a22199cfe..32eee14e6a8 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/emotion/react/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/emotion/react/1/output.js @@ -199,10 +199,10 @@ return parsed; }, fixedElements = new WeakMap(), compat = function(element) { if ("rule" === element.type && element.parent && element.length) { - for(var value, points, value1 = element.value, parent = element.parent, isImplicitRule = element.column === parent.column && element.line === parent.line; "rule" !== parent.type;)if (!(parent = parent.parent)) return; - if ((1 !== element.props.length || 58 === value1.charCodeAt(0) || fixedElements.get(parent)) && !isImplicitRule) { + for(var value = element.value, parent = element.parent, isImplicitRule = element.column === parent.column && element.line === parent.line; "rule" !== parent.type;)if (!(parent = parent.parent)) return; + if ((1 !== element.props.length || 58 === value.charCodeAt(0) || fixedElements.get(parent)) && !isImplicitRule) { fixedElements.set(element, !0); - for(var points1 = [], rules = (value = value1, points = points1, dealloc(toRules(alloc(value), points))), parentRules = parent.props, i = 0, k = 0; i < rules.length; i++)for(var j = 0; j < parentRules.length; j++, k++)element.props[k] = points1[i] ? rules[i].replace(/&\f/g, parentRules[j]) : parentRules[j] + " " + rules[i]; + for(var points = [], rules = dealloc(toRules(alloc(value), points)), parentRules = parent.props, i = 0, k = 0; i < rules.length; i++)for(var j = 0; j < parentRules.length; j++, k++)element.props[k] = points[i] ? rules[i].replace(/&\f/g, parentRules[j]) : parentRules[j] + " " + rules[i]; } } }, removeLabel = function(element) { diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/firebase-firestore/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/firebase-firestore/1/output.js index 846cce9bbe9..5a4eb37229f 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/firebase-firestore/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/firebase-firestore/1/output.js @@ -55,11 +55,10 @@ } } function M(t) { - var e; if ("string" == typeof t) return t; try { - return e = t, JSON.stringify(e); - } catch (e1) { + return JSON.stringify(t); + } catch (e) { return t; } } @@ -1008,21 +1007,20 @@ return !At(t.limit) && "L" === t.limitType; } function Te(t) { - var t1; const e = t; if (null === e.V) { e.V = []; - const t2 = function(t) { + const t1 = function(t) { for (const e of t.filters)if (e.v()) return e.field; return null; - }(e), n = (t1 = e).explicitOrderBy.length > 0 ? t1.explicitOrderBy[0].field : null; - if (null !== t2 && null === n) t2.isKeyField() || e.V.push(new ae(t2)), e.V.push(new ae(ft.keyField(), "asc")); + }(e), n = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[0].field : null; + if (null !== t1 && null === n) t1.isKeyField() || e.V.push(new ae(t1)), e.V.push(new ae(ft.keyField(), "asc")); else { - let t3 = !1; - for (const n1 of e.explicitOrderBy)e.V.push(n1), n1.field.isKeyField() && (t3 = !0); - if (!t3) { - const t4 = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[e.explicitOrderBy.length - 1].dir : "asc"; - e.V.push(new ae(ft.keyField(), t4)); + let t2 = !1; + for (const n1 of e.explicitOrderBy)e.V.push(n1), n1.field.isKeyField() && (t2 = !0); + if (!t2) { + const t3 = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[e.explicitOrderBy.length - 1].dir : "asc"; + e.V.push(new ae(ft.keyField(), t3)); } } } @@ -1183,12 +1181,12 @@ }), e; } function rn(t, e, n) { - var t1, e1, n1; + var n1; const s = new Map(); t.length === n.length || L(); for(let i = 0; i < n.length; i++){ const r = t[i], o = r.transform, c = e.data.field(r.field); - s.set(r.field, (t1 = o, e1 = c, n1 = n[i], t1 instanceof Fe ? Me(t1, e1) : t1 instanceof Le ? Be(t1, e1) : n1)); + s.set(r.field, (n1 = n[i], o instanceof Fe ? Me(o, c) : o instanceof Le ? Be(o, c) : n1)); } return s; } @@ -2380,14 +2378,14 @@ }).next(()=>i)); } Dn(t, e, n) { - let s, i; - return this.He.getDocumentsMatchingQuery(t, e, n).next((n)=>(s = n, this.In.getAllMutationBatchesAffectingQuery(t, e))).next((e)=>(i = e, this.Cn(t, i, s).next((t)=>{ - for (const t1 of (s = t, i))for (const e of t1.mutations){ - const n = e.key; - let i1 = s.get(n); - null == i1 && (i1 = Kt.newInvalidDocument(n), s = s.insert(n, i1)), Ye(e, i1, t1.localWriteTime), i1.isFoundDocument() || (s = s.remove(n)); + let s; + return this.He.getDocumentsMatchingQuery(t, e, n).next((n)=>(s = n, this.In.getAllMutationBatchesAffectingQuery(t, e))).next((e)=>this.Cn(t, e, s).next((t)=>{ + for (const t1 of (s = t, e))for (const e1 of t1.mutations){ + const n = e1.key; + let i = s.get(n); + null == i && (i = Kt.newInvalidDocument(n), s = s.insert(n, i)), Ye(e1, i, t1.localWriteTime), i.isFoundDocument() || (s = s.remove(n)); } - }))).next(()=>(s.forEach((t, n)=>{ + })).next(()=>(s.forEach((t, n)=>{ Pe(e, n) || (s = s.remove(t)); }), s)); } @@ -4224,16 +4222,15 @@ }(t.localStore, r)); } async function Tc(t, e) { - var t1; const n = t; if (!n.currentUser.isEqual(e)) { $("SyncEngine", "User change. New user:", e.toKey()); - const t2 = await hr(n.localStore, e); - n.currentUser = e, (t1 = n).Ko.forEach((t)=>{ + const t1 = await hr(n.localStore, e); + n.currentUser = e, n.Ko.forEach((t)=>{ t.forEach((t)=>{ t.reject(new j(K.CANCELLED, "'waitForPendingWrites' promise is rejected due to a user change.")); }); - }), t1.Ko.clear(), n.sharedClientState.handleUserChange(e, t2.removedBatchIds, t2.addedBatchIds), await pc(n, t2.Wn); + }), n.Ko.clear(), n.sharedClientState.handleUserChange(e, t1.removedBatchIds, t1.addedBatchIds), await pc(n, t1.Wn); } } function Ec(t, e) { diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/moment/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/moment/1/output.js index adc585c1f07..507530ae720 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/moment/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/moment/1/output.js @@ -737,7 +737,7 @@ } else config._isValid = !1; } function configFromRFC2822(config) { - var year, weekdayStr, parsedInput, config1, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr, result, parsedArray, match = rfc2822.exec(config._i.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "")); + var year, weekdayStr, config1, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr, result, match = rfc2822.exec(config._i.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "")); if (match) { if (yearStr = match[4], monthStr = match[3], dayStr = match[2], hourStr = match[5], minuteStr = match[6], secondStr = match[7], result = [ (year = parseInt(yearStr, 10)) <= 49 ? 2000 + year : year <= 999 ? 1900 + year : year, @@ -745,8 +745,8 @@ parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10) - ], secondStr && result.push(parseInt(secondStr, 10)), parsedArray = result, weekdayStr = match[1], parsedInput = parsedArray, config1 = config, weekdayStr && defaultLocaleWeekdaysShort.indexOf(weekdayStr) !== new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay() && (getParsingFlags(config1).weekdayMismatch = !0, config1._isValid = !1, 1)) return; - config._a = parsedArray, config._tzm = function(obsOffset, militaryOffset, numOffset) { + ], secondStr && result.push(parseInt(secondStr, 10)), weekdayStr = match[1], config1 = config, weekdayStr && defaultLocaleWeekdaysShort.indexOf(weekdayStr) !== new Date(result[0], result[1], result[2]).getDay() && (getParsingFlags(config1).weekdayMismatch = !0, config1._isValid = !1, 1)) return; + config._a = result, config._tzm = function(obsOffset, militaryOffset, numOffset) { if (obsOffset) return obsOffsets[obsOffset]; if (militaryOffset) return 0; var hm = parseInt(numOffset, 10), m = hm % 100; @@ -758,9 +758,9 @@ return null != a ? a : null != b ? b : c; } function configFromArray(config) { - var config1, w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek, config2, nowValue, i, date, currentDate, expectedWeekday, yearToUse, input = []; + var config1, w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek, nowValue, i, date, currentDate, expectedWeekday, yearToUse, input = []; if (!config._d) { - for(config2 = config, nowValue = new Date(hooks.now()), currentDate = config2._useUTC ? [ + for(nowValue = new Date(hooks.now()), currentDate = config._useUTC ? [ nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate() diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/quagga2/1.4.2/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/quagga2/1.4.2/1/output.js index c8046e18628..b650dc0ca42 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/quagga2/1.4.2/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/quagga2/1.4.2/1/output.js @@ -7120,9 +7120,9 @@ }, _that.getData = function() { return _data; }, _that.grab = function() { - var canvas, targetSize, ctxData, doHalfSample = _streamConfig.halfSample, frame = inputStream.getFrame(), drawable = frame, drawAngle = 0; + var canvas, ctxData, doHalfSample = _streamConfig.halfSample, frame = inputStream.getFrame(), drawable = frame, drawAngle = 0; if (drawable) { - if (canvas = _canvas, targetSize = _canvasSize, canvas.width !== targetSize.x && (console.log("WARNING: canvas-size needs to be adjusted"), canvas.width = targetSize.x), canvas.height !== targetSize.y && (console.log("WARNING: canvas-size needs to be adjusted"), canvas.height = targetSize.y), "ImageStream" === _streamConfig.type && (drawable = frame.img, frame.tags && frame.tags.orientation)) switch(frame.tags.orientation){ + if ((canvas = _canvas).width !== _canvasSize.x && (console.log("WARNING: canvas-size needs to be adjusted"), canvas.width = _canvasSize.x), canvas.height !== _canvasSize.y && (console.log("WARNING: canvas-size needs to be adjusted"), canvas.height = _canvasSize.y), "ImageStream" === _streamConfig.type && (drawable = frame.img, frame.tags && frame.tags.orientation)) switch(frame.tags.orientation){ case 6: drawAngle = 90 * TO_RADIANS; break; diff --git a/crates/swc_ecma_minifier/tests/fixture/next/31077/static/chunks/1606726a.10299989c08cb523/output.js b/crates/swc_ecma_minifier/tests/fixture/next/31077/static/chunks/1606726a.10299989c08cb523/output.js index 3a5e9a59d4f..1984f874915 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/31077/static/chunks/1606726a.10299989c08cb523/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/31077/static/chunks/1606726a.10299989c08cb523/output.js @@ -2537,14 +2537,14 @@ return cached || document; }, EditorView.prototype.posAtCoords = function(coords) { return function(view, coords) { - var assign, assign$1, node, offset, doc = view.dom.ownerDocument; + var node, offset, doc = view.dom.ownerDocument; if (doc.caretPositionFromPoint) try { var pos$1 = doc.caretPositionFromPoint(coords.left, coords.top); - pos$1 && (node = (assign = pos$1).offsetNode, offset = assign.offset); + pos$1 && (node = pos$1.offsetNode, offset = pos$1.offset); } catch (_) {} if (!node && doc.caretRangeFromPoint) { var range = doc.caretRangeFromPoint(coords.left, coords.top); - range && (node = (assign$1 = range).startContainer, offset = assign$1.startOffset); + range && (node = range.startContainer, offset = range.startOffset); } var pos, elt = (view.root.elementFromPoint ? view.root : doc).elementFromPoint(coords.left, coords.top + 1); if (!elt || !view.dom.contains(1 != elt.nodeType ? elt.parentNode : elt)) { diff --git a/crates/swc_ecma_minifier/tests/fixture/next/31084/xml2js/parser/output.js b/crates/swc_ecma_minifier/tests/fixture/next/31084/xml2js/parser/output.js index 40114bc65df..6d185457391 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/31084/xml2js/parser/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/31084/xml2js/parser/output.js @@ -26,12 +26,12 @@ this.options.xmlns && (this.options.xmlnskey = this.options.attrkey + "ns"), this.options.normalizeTags && (this.options.tagNameProcessors || (this.options.tagNameProcessors = []), this.options.tagNameProcessors.unshift(processors.normalize)), this.reset(); } return extend(Parser, superClass), Parser.prototype.processAsync = function() { - var chunk, err; + var chunk; try { if (this.remaining.length <= this.options.chunkSize) return chunk = this.remaining, this.remaining = "", this.saxParser = this.saxParser.write(chunk), this.saxParser.close(); return chunk = this.remaining.substr(0, this.options.chunkSize), this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length), this.saxParser = this.saxParser.write(chunk), setImmediate(this.processAsync); } catch (error1) { - if (err = error1, !this.saxParser.errThrown) return this.saxParser.errThrown = !0, this.emit(err); + if (!this.saxParser.errThrown) return this.saxParser.errThrown = !0, this.emit(error1); } }, Parser.prototype.assignOrPush = function(obj, key, newValue) { return key in obj ? (obj[key] instanceof Array || (obj[key] = [ @@ -63,11 +63,10 @@ for(i = 0, results = [], len = stack.length; i < len; i++)node = stack[i], results.push(node["#name"]); return results; })().concat(nodeName).join("/"), function() { - var err; try { obj = _this3.options.validator(xpath, s && s[nodeName], obj); } catch (error1) { - return err = error1, _this3.emit("error", err); + return _this3.emit("error", error1); } }()), _this3.options.explicitChildren && !_this3.options.mergeAttrs && "object" == typeof obj) { if (_this3.options.preserveChildrenOrder) { @@ -88,7 +87,6 @@ if (s = ontext(text)) return s.cdata = !0; }; }, Parser.prototype.parseString = function(str, cb) { - var err; null != cb && "function" == typeof cb && (this.on("end", function(result) { return this.reset(), cb(null, result); }), this.on("error", function(err) { @@ -99,8 +97,8 @@ if (str = bom.stripBOM(str), this.options.async) return this.remaining = str, setImmediate(this.processAsync), this.saxParser; return this.saxParser.write(str).close(); } catch (error1) { - if (err = error1, !(this.saxParser.errThrown || this.saxParser.ended)) return this.emit("error", err), this.saxParser.errThrown = !0; - if (this.saxParser.ended) throw err; + if (!(this.saxParser.errThrown || this.saxParser.ended)) return this.emit("error", error1), this.saxParser.errThrown = !0; + if (this.saxParser.ended) throw error1; } }, Parser.prototype.parseStringPromise = function(str) { var _this; diff --git a/crates/swc_ecma_minifier/tests/fixture/next/feedback-2/codemirror/output.js b/crates/swc_ecma_minifier/tests/fixture/next/feedback-2/codemirror/output.js index 96febc97348..890269726f8 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/feedback-2/codemirror/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/feedback-2/codemirror/output.js @@ -4106,7 +4106,7 @@ this.time = time, this.pos = pos, this.button = button; }; function onMouseDown(e) { - var cm, button, pos, repeat, event, name, cm1, pos1, repeat1, event1, behavior, contained, sel, cm2, event2, pos2, behavior1, display, moved, dragEnd, mouseMove, dragStart, now, display1 = this.display; + var cm, name, cm1, behavior, contained, sel, cm2, display, moved, dragEnd, mouseMove, dragStart, now, display1 = this.display; if (!(signalDOMEvent(this, e) || display1.activeTouch && display1.input.supportsTouch())) { if (display1.input.ensurePolled(), display1.shift = e.shiftKey, eventInWidget(display1, e)) { webkit || (display1.scroller.draggable = !1, setTimeout(function() { @@ -4115,8 +4115,8 @@ return; } if (!clickInGutter(this, e)) { - var pos3 = posFromMouse(this, e), button1 = e_button(e), repeat2 = pos3 ? (now = +new Date(), lastDoubleClick && lastDoubleClick.compare(now, pos3, button1) ? (lastClick = lastDoubleClick = null, "triple") : lastClick && lastClick.compare(now, pos3, button1) ? (lastDoubleClick = new PastClick(now, pos3, button1), lastClick = null, "double") : (lastClick = new PastClick(now, pos3, button1), lastDoubleClick = null, "single")) : "single"; - window.focus(), 1 == button1 && this.state.selectingText && this.state.selectingText(e), !(pos3 && (cm = this, button = button1, pos = pos3, repeat = repeat2, event = e, name = "Click", "double" == repeat ? name = "Double" + name : "triple" == repeat && (name = "Triple" + name), dispatchKey(cm, addModifierNames(name = (1 == button ? "Left" : 2 == button ? "Middle" : "Right") + name, event), event, function(bound) { + var pos = posFromMouse(this, e), button = e_button(e), repeat = pos ? (now = +new Date(), lastDoubleClick && lastDoubleClick.compare(now, pos, button) ? (lastClick = lastDoubleClick = null, "triple") : lastClick && lastClick.compare(now, pos, button) ? (lastDoubleClick = new PastClick(now, pos, button), lastClick = null, "double") : (lastClick = new PastClick(now, pos, button), lastDoubleClick = null, "single")) : "single"; + window.focus(), 1 == button && this.state.selectingText && this.state.selectingText(e), !(pos && (cm = this, name = "Click", "double" == repeat ? name = "Double" + name : "triple" == repeat && (name = "Triple" + name), dispatchKey(cm, addModifierNames(name = (1 == button ? "Left" : 2 == button ? "Middle" : "Right") + name, e), e, function(bound) { if ("string" == typeof bound && (bound = commands[bound]), !bound) return !1; var done = !1; try { @@ -4125,24 +4125,24 @@ cm.state.suppressEdits = !1; } return done; - }))) && (1 == button1 ? pos3 ? (cm1 = this, pos1 = pos3, repeat1 = repeat2, event1 = e, ie ? setTimeout(bind(ensureFocus, cm1), 0) : cm1.curOp.focus = activeElt(), behavior = function(cm, repeat, event) { + }))) && (1 == button ? pos ? (cm1 = this, ie ? setTimeout(bind(ensureFocus, cm1), 0) : cm1.curOp.focus = activeElt(), behavior = function(cm, repeat, event) { var option = cm.getOption("configureMouse"), value = option ? option(cm, repeat, event) : {}; if (null == value.unit) { var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey; value.unit = rect ? "rectangle" : "single" == repeat ? "char" : "double" == repeat ? "word" : "line"; } return (null == value.extend || cm.doc.extend) && (value.extend = cm.doc.extend || event.shiftKey), null == value.addNew && (value.addNew = mac ? event.metaKey : event.ctrlKey), null == value.moveOnDrag && (value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey)), value; - }(cm1, repeat1, event1), sel = cm1.doc.sel, cm1.options.dragDrop && dragAndDrop && !cm1.isReadOnly() && "single" == repeat1 && (contained = sel.contains(pos1)) > -1 && (0 > cmp((contained = sel.ranges[contained]).from(), pos1) || pos1.xRel > 0) && (cmp(contained.to(), pos1) > 0 || pos1.xRel < 0) ? (cm2 = cm1, event2 = event1, pos2 = pos1, behavior1 = behavior, display = cm2.display, moved = !1, dragEnd = operation(cm2, function(e) { - webkit && (display.scroller.draggable = !1), cm2.state.draggingText = !1, cm2.state.delayingBlurEvent && (cm2.hasFocus() ? cm2.state.delayingBlurEvent = !1 : delayBlurEvent(cm2)), off(display.wrapper.ownerDocument, "mouseup", dragEnd), off(display.wrapper.ownerDocument, "mousemove", mouseMove), off(display.scroller, "dragstart", dragStart), off(display.scroller, "drop", dragEnd), moved || (e_preventDefault(e), behavior1.addNew || extendSelection(cm2.doc, pos2, null, null, behavior1.extend), webkit && !safari || ie && 9 == ie_version ? setTimeout(function() { + }(cm1, repeat, e), sel = cm1.doc.sel, cm1.options.dragDrop && dragAndDrop && !cm1.isReadOnly() && "single" == repeat && (contained = sel.contains(pos)) > -1 && (0 > cmp((contained = sel.ranges[contained]).from(), pos) || pos.xRel > 0) && (cmp(contained.to(), pos) > 0 || pos.xRel < 0) ? (display = (cm2 = cm1).display, moved = !1, dragEnd = operation(cm2, function(e) { + webkit && (display.scroller.draggable = !1), cm2.state.draggingText = !1, cm2.state.delayingBlurEvent && (cm2.hasFocus() ? cm2.state.delayingBlurEvent = !1 : delayBlurEvent(cm2)), off(display.wrapper.ownerDocument, "mouseup", dragEnd), off(display.wrapper.ownerDocument, "mousemove", mouseMove), off(display.scroller, "dragstart", dragStart), off(display.scroller, "drop", dragEnd), moved || (e_preventDefault(e), behavior.addNew || extendSelection(cm2.doc, pos, null, null, behavior.extend), webkit && !safari || ie && 9 == ie_version ? setTimeout(function() { display.wrapper.ownerDocument.body.focus({ preventScroll: !0 }), display.input.focus(); }, 20) : display.input.focus()); }), mouseMove = function(e2) { - moved = moved || Math.abs(event2.clientX - e2.clientX) + Math.abs(event2.clientY - e2.clientY) >= 10; + moved = moved || Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) >= 10; }, dragStart = function() { return moved = !0; - }, webkit && (display.scroller.draggable = !0), cm2.state.draggingText = dragEnd, dragEnd.copy = !behavior1.moveOnDrag, on(display.wrapper.ownerDocument, "mouseup", dragEnd), on(display.wrapper.ownerDocument, "mousemove", mouseMove), on(display.scroller, "dragstart", dragStart), on(display.scroller, "drop", dragEnd), cm2.state.delayingBlurEvent = !0, setTimeout(function() { + }, webkit && (display.scroller.draggable = !0), cm2.state.draggingText = dragEnd, dragEnd.copy = !behavior.moveOnDrag, on(display.wrapper.ownerDocument, "mouseup", dragEnd), on(display.wrapper.ownerDocument, "mousemove", mouseMove), on(display.scroller, "dragstart", dragStart), on(display.scroller, "drop", dragEnd), cm2.state.delayingBlurEvent = !0, setTimeout(function() { return display.input.focus(); }, 20), display.scroller.dragDrop && display.scroller.dragDrop()) : function(cm, event, start, behavior) { ie && delayBlurEvent(cm); @@ -4223,9 +4223,9 @@ }(e) : done(e); }), up = operation(cm, done); cm.state.selectingText = up, on(display.wrapper.ownerDocument, "mousemove", move), on(display.wrapper.ownerDocument, "mouseup", up); - }(cm1, event1, pos1, behavior)) : e_target(e) == display1.scroller && e_preventDefault(e) : 2 == button1 ? (pos3 && extendSelection(this.doc, pos3), setTimeout(function() { + }(cm1, e, pos, behavior)) : e_target(e) == display1.scroller && e_preventDefault(e) : 2 == button ? (pos && extendSelection(this.doc, pos), setTimeout(function() { return display1.input.focus(); - }, 20)) : 3 == button1 && (captureRightClick ? this.display.input.onContextMenu(e) : delayBlurEvent(this))); + }, 20)) : 3 == button && (captureRightClick ? this.display.input.onContextMenu(e) : delayBlurEvent(this))); } } } diff --git a/crates/swc_ecma_minifier/tests/fixture/next/octokit/static/chunks/357-72bd409f1472b1b8/output.js b/crates/swc_ecma_minifier/tests/fixture/next/octokit/static/chunks/357-72bd409f1472b1b8/output.js index 1cd6a996555..fea96c9cd08 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/octokit/static/chunks/357-72bd409f1472b1b8/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/octokit/static/chunks/357-72bd409f1472b1b8/output.js @@ -72,27 +72,26 @@ return null != this._events[name] ? this._events[name].length : 0; } async trigger(name, ...args) { - var e; try { if ("debug" !== name && this.trigger("debug", `Event triggered: ${name}`, args), null == this._events[name]) return; return this._events[name] = this._events[name].filter(function(listener) { return "none" !== listener.status; }), (await Promise.all(this._events[name].map(async (listener)=>{ - var e, returned; + var returned; if ("none" !== listener.status) { "once" === listener.status && (listener.status = "none"); try { if (returned = "function" == typeof listener.cb ? listener.cb(...args) : void 0, "function" == typeof (null != returned ? returned.then : void 0)) return await returned; return returned; } catch (error) { - return e = error, this.trigger("error", e), null; + return this.trigger("error", error), null; } } }))).find(function(x) { return null != x; }); } catch (error) { - return e = error, this.trigger("error", e), null; + return this.trigger("error", error), null; } } }, Queues = class { @@ -175,7 +174,7 @@ }); } async doExecute(chained, clearGlobalState, run, free) { - var error, eventInfo, passed; + var eventInfo, passed; 0 === this.retryCount ? (this._assertStatus("RUNNING"), this._states.next(this.options.id)) : this._assertStatus("EXECUTING"), eventInfo = { args: this.args, options: this.options, @@ -184,7 +183,7 @@ try { if (passed = await (null != chained ? chained.schedule(this.options, this.task, ...this.args) : this.task(...this.args)), clearGlobalState()) return this.doDone(eventInfo), await free(this.options, eventInfo), this._assertStatus("DONE"), this._resolve(passed); } catch (error1) { - return error = error1, this._onFailure(error, eventInfo, clearGlobalState, run, free); + return this._onFailure(error1, eventInfo, clearGlobalState, run, free); } } doExpire(clearGlobalState, run, free) { @@ -334,15 +333,15 @@ return 0 === this._queue.length; } async _tryToRun() { - var args, cb, error, reject, resolve, returned, task; + var args, cb, reject, resolve, returned, task; if (this._running < 1 && this._queue.length > 0) return this._running++, { task , args , resolve , reject } = this._queue.shift(), cb = await async function() { try { return returned = await task(...args), function() { return resolve(returned); }; } catch (error1) { - return error = error1, function() { - return reject(error); + return function() { + return reject(error1); }; } }(), this._running--, this._tryToRun(), cb(); @@ -419,13 +418,13 @@ _startAutoCleanup() { var base; return clearInterval(this.interval), "function" == typeof (base = this.interval = setInterval(async ()=>{ - var e, k, ref, results, time, v; + var k, ref, results, time, v; for(k in time = Date.now(), ref = this.instances, results = [], ref){ v = ref[k]; try { await v._store.__groupCheck__(time) ? results.push(this.deleteKey(k)) : results.push(void 0); } catch (error) { - e = error, results.push(v.Events.trigger("error", e)); + results.push(v.Events.trigger("error", error)); } } return results; @@ -548,11 +547,11 @@ return null != this._scheduled[index] && (clearTimeout(this._scheduled[index].expiration), delete this._scheduled[index], !0); } async _free(index, job, options, eventInfo) { - var e, running; + var running; try { if ({ running } = await this._store.__free__(index, options.weight), this.Events.trigger("debug", `Freed ${options.id}`, eventInfo), 0 === running && this.empty()) return this.Events.trigger("idle"); } catch (error1) { - return e = error1, this.Events.trigger("error", e); + return this.Events.trigger("error", error1); } } _run(index, job, wait) { @@ -619,17 +618,17 @@ }, this.stop = ()=>this.Promise.reject(new Bottleneck.prototype.BottleneckError("stop() has already been called")), done; } async _addToQueue(job) { - var args, blocked, error, options, reachedHWM, shifted, strategy; + var args, blocked, options, reachedHWM, shifted, strategy; ({ args , options } = job); try { ({ reachedHWM , blocked , strategy } = await this._store.__submit__(this.queued(), options.weight)); } catch (error1) { - return error = error1, this.Events.trigger("debug", `Could not queue ${options.id}`, { + return this.Events.trigger("debug", `Could not queue ${options.id}`, { args, options, - error + error: error1 }), job.doDrop({ - error + error: error1 }), !1; } return blocked ? (job.doDrop(), !0) : reachedHWM && (null != (shifted = strategy === Bottleneck.prototype.strategy.LEAK ? this._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? this._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0) && shifted.doDrop(), null == shifted || strategy === Bottleneck.prototype.strategy.OVERFLOW) ? (null == shifted && job.doDrop(), reachedHWM) : (job.doQueue(reachedHWM, blocked), this._queues.push(job), await this._drainAll(), reachedHWM); diff --git a/crates/swc_ecma_minifier/tests/fixture/next/react-ace/chunks/8a28b14e.d8fbda268ed281a1/output.js b/crates/swc_ecma_minifier/tests/fixture/next/react-ace/chunks/8a28b14e.d8fbda268ed281a1/output.js index 316b49b4edf..1d5739f6086 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/react-ace/chunks/8a28b14e.d8fbda268ed281a1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/react-ace/chunks/8a28b14e.d8fbda268ed281a1/output.js @@ -11768,9 +11768,9 @@ margin: 0 10px;\ } sel.fromOrientedRange(sel.ranges[0]); }, this.selectMore = function(dir, skip, stopAtFirst) { - var session, needle, dir1, session1 = this.session, range = session1.multiSelect.toOrientedRange(); - if (!range.isEmpty() || ((range = session1.getWordRange(range.start.row, range.start.column)).cursor = -1 == dir ? range.start : range.end, this.multiSelect.addRange(range), !stopAtFirst)) { - var needle1 = session1.getTextRange(range), newRange = (session = session1, needle = needle1, dir1 = dir, search.$options.wrap = !0, search.$options.needle = needle, search.$options.backwards = -1 == dir1, search.find(session)); + var session = this.session, range = session.multiSelect.toOrientedRange(); + if (!range.isEmpty() || ((range = session.getWordRange(range.start.row, range.start.column)).cursor = -1 == dir ? range.start : range.end, this.multiSelect.addRange(range), !stopAtFirst)) { + var needle = session.getTextRange(range), newRange = (search.$options.wrap = !0, search.$options.needle = needle, search.$options.backwards = -1 == dir, search.find(session)); newRange && (newRange.cursor = -1 == dir ? newRange.start : newRange.end, this.session.unfold(newRange), this.multiSelect.addRange(newRange), this.renderer.scrollCursorIntoView(null, 0.5)), skip && this.multiSelect.substractPoint(range.cursor); } }, this.alignCursors = function() { diff --git a/crates/swc_ecma_minifier/tests/fixture/next/react-pdf-renderer/output.js b/crates/swc_ecma_minifier/tests/fixture/next/react-pdf-renderer/output.js index 9ffe011c350..c83bc18da54 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/react-pdf-renderer/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/react-pdf-renderer/output.js @@ -4194,7 +4194,7 @@ case 0: return e.next = 2, c(); case 2: - return t = (0, e.sent).pipe(v()()), e.abrupt("return", new Promise(function(e, r) { + return t = e.sent.pipe(v()()), e.abrupt("return", new Promise(function(e, r) { t.on("finish", function() { try { var n = t.toBlob("application/pdf"); @@ -9389,7 +9389,7 @@ }, 4756: function(e, t, r) { var n, i; - void 0 !== (i = "function" == typeof (n = function() { + void 0 !== (n = "function" == typeof (i = function() { var e = "debug", t = "hyphenChar", n = "minWordLength", i = "object" == typeof r.g ? r.g : "object" == typeof window ? window : "object" == typeof this ? this : {}; function o(e) { var t = {}; @@ -9519,14 +9519,14 @@ }(i, y, f[D], s, b, v, m, c); }; }; - }) ? n.apply(t, []) : n) && (e.exports = i); + }) ? i.apply(t, []) : i) && (e.exports = n); }, 3202: function(e, t, r) { e.exports = r(4756); }, 1487: function(e, t) { var r, n; - void 0 !== (n = "function" == typeof (r = function() { + void 0 !== (r = "function" == typeof (n = function() { return { patterns: [ " ", @@ -14488,7 +14488,7 @@ "" ] }; - }) ? r.apply(t, []) : r) && (e.exports = n); + }) ? n.apply(t, []) : n) && (e.exports = r); }, 5717: function(e) { "function" == typeof Object.create ? e.exports = function(e, t) { @@ -16071,14 +16071,14 @@ if (null === e || "object" !== i(e)) return (null === t || "object" !== i(t)) && e == t; if (null === t || "object" !== i(t)) return !1; } - var a, u, s = h(e); - if (s !== h(t)) return !1; + var a = h(e); + if (a !== h(t)) return !1; if (Array.isArray(e)) { if (e.length !== t.length) return !1; - var f = F(e, I), d = F(t, I); - return f.length === d.length && M(e, t, r, n, 1, f); + var u = F(e, I), s = F(t, I); + return u.length === s.length && M(e, t, r, n, 1, u); } - if ("[object Object]" === s && (!m(e) && m(t) || !w(e) && w(t))) return !1; + if ("[object Object]" === a && (!m(e) && m(t) || !w(e) && w(t))) return !1; if (b(e)) { if (!b(t) || Date.prototype.getTime.call(e) !== Date.prototype.getTime.call(t)) return !1; } else if (D(e)) { @@ -16092,9 +16092,9 @@ for(var r = 0; r < e.byteLength; r++)if (e[r] !== t[r]) return !1; return !0; }(e, t)) return !1; - } else if (a = e, u = t, a.byteLength !== u.byteLength || 0 !== R(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(u.buffer, u.byteOffset, u.byteLength))) return !1; - var p = F(e, I), y = F(t, I); - return p.length === y.length && M(e, t, r, n, 0, p); + } else if (e.byteLength !== t.byteLength || 0 !== R(new Uint8Array(e.buffer, e.byteOffset, e.byteLength), new Uint8Array(t.buffer, t.byteOffset, t.byteLength))) return !1; + var f = F(e, I), d = F(t, I); + return f.length === d.length && M(e, t, r, n, 0, f); } else if (w(e)) return !!w(t) && e.size === t.size && M(e, t, r, n, 2); else if (m(e)) return !!m(t) && e.size === t.size && M(e, t, r, n, 3); else if (g(e)) { @@ -18576,10 +18576,10 @@ var r = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array; t.assign = function(e) { for(var t = Array.prototype.slice.call(arguments, 1); t.length;){ - var r, n, i = t.shift(); - if (i) { - if ("object" != typeof i) throw TypeError(i + "must be non-object"); - for(var o in i)r = i, n = o, Object.prototype.hasOwnProperty.call(r, n) && (e[o] = i[o]); + var r, n = t.shift(); + if (n) { + if ("object" != typeof n) throw TypeError(n + "must be non-object"); + for(var i in n)r = i, Object.prototype.hasOwnProperty.call(n, r) && (e[i] = n[i]); } } return e; @@ -20939,14 +20939,14 @@ r("ERR_INVALID_OPT_VALUE", function(e, t) { return 'The value "' + t + '" is invalid for option "' + e + '"'; }, TypeError), r("ERR_INVALID_ARG_TYPE", function(e, t, r) { - var i, o, a, u, l, s, c; - let f, d; - if ("string" == typeof t && (i = "not ", t.substr(!o || o < 0 ? 0 : +o, i.length) === i) ? (f = "must not be", t = t.replace(/^not /, "")) : f = "must be", a = " argument", (void 0 === u || u > e.length) && (u = e.length), e.substring(u - a.length, u) === a) d = `The ${e} ${f} ${n(t, "type")}`; + var i, o, a, u, l; + let s, c; + if ("string" == typeof t && (i = "not ", t.substr(!o || o < 0 ? 0 : +o, i.length) === i) ? (s = "must not be", t = t.replace(/^not /, "")) : s = "must be", a = " argument", (void 0 === u || u > e.length) && (u = e.length), e.substring(u - a.length, u) === a) c = `The ${e} ${s} ${n(t, "type")}`; else { - const p = (l = e, "number" != typeof c && (c = 0), c + (s = ".").length > l.length || -1 === l.indexOf(s, c)) ? "argument" : "property"; - d = `The "${e}" ${p} ${f} ${n(t, "type")}`; + const f = ("number" != typeof l && (l = 0), l + 1 > e.length || -1 === e.indexOf(".", l)) ? "argument" : "property"; + c = `The "${e}" ${f} ${s} ${n(t, "type")}`; } - return d + `. Received type ${typeof r}`; + return c + `. Received type ${typeof r}`; }, TypeError), r("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF"), r("ERR_METHOD_NOT_IMPLEMENTED", function(e) { return "The " + e + " method is not implemented"; }), r("ERR_STREAM_PREMATURE_CLOSE", "Premature close"), r("ERR_STREAM_DESTROYED", function(e) { diff --git a/crates/swc_ecma_minifier/tests/fixture/next/syncfusion/933-e9f9a6bf671b96fc/output.js b/crates/swc_ecma_minifier/tests/fixture/next/syncfusion/933-e9f9a6bf671b96fc/output.js index 27fbb8ec780..673c22305e6 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/syncfusion/933-e9f9a6bf671b96fc/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/syncfusion/933-e9f9a6bf671b96fc/output.js @@ -16954,8 +16954,8 @@ previousListClone.appendChild(liElement.cloneNode(!0)); } removedList = this.listParent.querySelectorAll('li'); - for(var _i = 0, removedList_1 = removedList; _i < removedList_1.length; _i++){ - var item = removedList_1[_i]; + for(var _i = 0; _i < removedList.length; _i++){ + var item = removedList[_i]; (0, ej2_base.og)(item); } this.removeActionButtons(); @@ -18101,7 +18101,7 @@ }, PasteCleanup.prototype.removeEventListener = function() { this.parent.isDestroyed || (this.parent.off(constant.dI, this.pasteClean), this.parent.off(constant._8, this.setCssClass), this.parent.off(constant.ob, this.destroy)); }, PasteCleanup.prototype.pasteClean = function(e) { - var imageproperties, _this = this, args = { + var _this = this, args = { requestType: 'Paste', editorMode: this.parent.editorMode, event: e @@ -18118,7 +18118,7 @@ args: e.args, text: value, callBack: function(b) { - 'object' == typeof (imageproperties = b) ? _this.parent.formatter.editorManager.execCommand('Images', 'Image', e.args, _this.imageFormatting.bind(_this, args), 'pasteCleanup', imageproperties, 'pasteCleanupModule') : value = imageproperties; + 'object' == typeof b ? _this.parent.formatter.editorManager.execCommand('Images', 'Image', e.args, _this.imageFormatting.bind(_this, args), 'pasteCleanup', b, 'pasteCleanupModule') : value = b; } }), !htmlRegex.test(value)) { var divElement = this.parent.createElement('div'); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/chunkfilename-b114cf1d23876beaa712/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/chunkfilename-b114cf1d23876beaa712/output.js index 4c45c1e0f2b..ecb31b091a0 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/chunkfilename-b114cf1d23876beaa712/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/chunkfilename-b114cf1d23876beaa712/output.js @@ -28,7 +28,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -36,7 +36,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/function-7fe8439c89afccb77983/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/function-7fe8439c89afccb77983/output.js index ea5968204d4..e721c769094 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/function-7fe8439c89afccb77983/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/function-7fe8439c89afccb77983/output.js @@ -28,7 +28,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -36,7 +36,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/head-432fc3a9a66c90ce2ec2/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/head-432fc3a9a66c90ce2ec2/output.js index 13c3b161c4c..d46a0d3d6d6 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/head-432fc3a9a66c90ce2ec2/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/head-432fc3a9a66c90ce2ec2/output.js @@ -60,7 +60,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -68,7 +68,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/multiple-modules-d02ebebcfa5282e50b34/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/multiple-modules-d02ebebcfa5282e50b34/output.js index eb48860050b..c8266bb822d 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/multiple-modules-d02ebebcfa5282e50b34/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/multiple-modules-d02ebebcfa5282e50b34/output.js @@ -28,7 +28,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -36,7 +36,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/nested-05a7ce04b1f7eb6da341/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/nested-05a7ce04b1f7eb6da341/output.js index 5e43de7cfe8..3b7a6c98181 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/nested-05a7ce04b1f7eb6da341/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/nested-05a7ce04b1f7eb6da341/output.js @@ -28,7 +28,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -36,7 +36,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-chunk-e2d9573b8d7df68a6cde/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-chunk-e2d9573b8d7df68a6cde/output.js index a762c526e96..75590a2b533 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-chunk-e2d9573b8d7df68a6cde/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-chunk-e2d9573b8d7df68a6cde/output.js @@ -139,7 +139,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -147,7 +147,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-ssr-9ced90e71a0d75a11cdd/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-ssr-9ced90e71a0d75a11cdd/output.js index b857c8cc348..a58c35672fe 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-ssr-9ced90e71a0d75a11cdd/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-ssr-9ced90e71a0d75a11cdd/output.js @@ -28,7 +28,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -36,7 +36,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-ssr-custom-loading-7f61b2e27708ca1854e0/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-ssr-custom-loading-7f61b2e27708ca1854e0/output.js index caa9e840bc7..ad97671a182 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-ssr-custom-loading-7f61b2e27708ca1854e0/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/no-ssr-custom-loading-7f61b2e27708ca1854e0/output.js @@ -28,7 +28,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -36,7 +36,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/ssr-994266264fb6ff57d32c/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/ssr-994266264fb6ff57d32c/output.js index 6b9e31e8aaf..1bab344b44f 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/ssr-994266264fb6ff57d32c/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/ssr-994266264fb6ff57d32c/output.js @@ -28,7 +28,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -36,7 +36,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/ssr-true-6d4aa8fc503b9d073aef/output.js b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/ssr-true-6d4aa8fc503b9d073aef/output.js index 5c965b278d9..77cf32d75a1 100644 --- a/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/ssr-true-6d4aa8fc503b9d073aef/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/projects/next/archive-3/pages/dynamic/ssr-true-6d4aa8fc503b9d073aef/output.js @@ -28,7 +28,7 @@ return target; } exports.default = function(dynamicOptions, options) { - var LoadableInitializer, loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { + var loadableOptions, loadableFn = _loadable.default, loadableOptions1 = { loading: function(_ref) { return _ref.error, _ref.isLoading, _ref.pastDelay, null; } @@ -36,7 +36,7 @@ if (dynamicOptions instanceof Promise ? loadableOptions1.loader = function() { return dynamicOptions; } : "function" == typeof dynamicOptions ? loadableOptions1.loader = dynamicOptions : "object" == typeof dynamicOptions && (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), dynamicOptions)), (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), options)).loadableGenerated && delete (loadableOptions1 = _objectSpread(_objectSpread({}, loadableOptions1), loadableOptions1.loadableGenerated)).loadableGenerated, "boolean" == typeof loadableOptions1.ssr) { - if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, LoadableInitializer = loadableFn, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, LoadableInitializer(loadableOptions); + if (!loadableOptions1.ssr) return delete loadableOptions1.ssr, delete (loadableOptions = loadableOptions1).webpack, delete loadableOptions.modules, loadableFn(loadableOptions); delete loadableOptions1.ssr; } return loadableFn(loadableOptions1); diff --git a/crates/swc_ecma_minifier/tests/full/feedback-mapbox/2c796e83-0724e2af5f19128a/output.js b/crates/swc_ecma_minifier/tests/full/feedback-mapbox/2c796e83-0724e2af5f19128a/output.js index 65e1cfbb5a9..ad1bdaf493a 100644 --- a/crates/swc_ecma_minifier/tests/full/feedback-mapbox/2c796e83-0724e2af5f19128a/output.js +++ b/crates/swc_ecma_minifier/tests/full/feedback-mapbox/2c796e83-0724e2af5f19128a/output.js @@ -1,11 +1,11 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[634],{6158:function(i,r,n){var o,s=n(3454);o=function(){"use strict";var i,r,n;function o(o,s){if(i){if(r){var a="self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; ("+i+")(sharedChunk); ("+r+")(sharedChunk); self.onerror = null;",l={};i(l),n=s(l),"undefined"!=typeof window&&window&&window.URL&&window.URL.createObjectURL&&(n.workerUrl=window.URL.createObjectURL(new Blob([a],{type:"text/javascript"})))}else r=s}else i=s}return o(["exports"],function(i){var r,n,o="2.7.0";function a(i,r,n,o){this.cx=3*i,this.bx=3*(n-i)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*r,this.by=3*(o-r)-this.cy,this.ay=1-this.cy-this.by,this.p1x=i,this.p1y=o,this.p2x=n,this.p2y=o}a.prototype.sampleCurveX=function(i){return((this.ax*i+this.bx)*i+this.cx)*i},a.prototype.sampleCurveY=function(i){return((this.ay*i+this.by)*i+this.cy)*i},a.prototype.sampleCurveDerivativeX=function(i){return(3*this.ax*i+2*this.bx)*i+this.cx},a.prototype.solveCurveX=function(i,r){var n,o,s,a,l;for(void 0===r&&(r=1e-6),s=i,l=0;l<8;l++){if(Math.abs(a=this.sampleCurveX(s)-i)Math.abs(c))break;s-=a/c}if((s=i)<(n=0))return n;if(s>(o=1))return o;for(;na?n=s:o=s,s=.5*(o-n)+n;return s},a.prototype.solve=function(i,r){return this.sampleCurveY(this.solveCurveX(i,r))};var l=c;function c(i,r){this.x=i,this.y=r}c.prototype={clone:function(){return new c(this.x,this.y)},add:function(i){return this.clone()._add(i)},sub:function(i){return this.clone()._sub(i)},multByPoint:function(i){return this.clone()._multByPoint(i)},divByPoint:function(i){return this.clone()._divByPoint(i)},mult:function(i){return this.clone()._mult(i)},div:function(i){return this.clone()._div(i)},rotate:function(i){return this.clone()._rotate(i)},rotateAround:function(i,r){return this.clone()._rotateAround(i,r)},matMult:function(i){return this.clone()._matMult(i)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(i){return this.x===i.x&&this.y===i.y},dist:function(i){return Math.sqrt(this.distSqr(i))},distSqr:function(i){var r=i.x-this.x,n=i.y-this.y;return r*r+n*n},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(i){return Math.atan2(this.y-i.y,this.x-i.x)},angleWith:function(i){return this.angleWithSep(i.x,i.y)},angleWithSep:function(i,r){return Math.atan2(this.x*r-this.y*i,this.x*i+this.y*r)},_matMult:function(i){var r=i[2]*this.x+i[3]*this.y;return this.x=i[0]*this.x+i[1]*this.y,this.y=r,this},_add:function(i){return this.x+=i.x,this.y+=i.y,this},_sub:function(i){return this.x-=i.x,this.y-=i.y,this},_mult:function(i){return this.x*=i,this.y*=i,this},_div:function(i){return this.x/=i,this.y/=i,this},_multByPoint:function(i){return this.x*=i.x,this.y*=i.y,this},_divByPoint:function(i){return this.x/=i.x,this.y/=i.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var i=this.y;return this.y=this.x,this.x=-i,this},_rotate:function(i){var r=Math.cos(i),n=Math.sin(i),o=n*this.x+r*this.y;return this.x=r*this.x-n*this.y,this.y=o,this},_rotateAround:function(i,r){var n=Math.cos(i),o=Math.sin(i),s=r.y+o*(this.x-r.x)+n*(this.y-r.y);return this.x=r.x+n*(this.x-r.x)-o*(this.y-r.y),this.y=s,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},c.convert=function(i){return i instanceof c?i:Array.isArray(i)?new c(i[0],i[1]):i};var h="undefined"!=typeof self?self:{},u="undefined"!=typeof Float32Array?Float32Array:Array;function d(){var i=new u(9);return u!=Float32Array&&(i[1]=0,i[2]=0,i[3]=0,i[5]=0,i[6]=0,i[7]=0),i[0]=1,i[4]=1,i[8]=1,i}function p(i){return i[0]=1,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=1,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=1,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i}function f(i,r,n){var o=r[0],s=r[1],a=r[2],l=r[3],c=r[4],h=r[5],u=r[6],d=r[7],p=r[8],f=r[9],m=r[10],_=r[11],g=r[12],y=r[13],x=r[14],v=r[15],b=n[0],w=n[1],T=n[2],E=n[3];return i[0]=b*o+w*c+T*p+E*g,i[1]=b*s+w*h+T*f+E*y,i[2]=b*a+w*u+T*m+E*x,i[3]=b*l+w*d+T*_+E*v,i[4]=(b=n[4])*o+(w=n[5])*c+(T=n[6])*p+(E=n[7])*g,i[5]=b*s+w*h+T*f+E*y,i[6]=b*a+w*u+T*m+E*x,i[7]=b*l+w*d+T*_+E*v,i[8]=(b=n[8])*o+(w=n[9])*c+(T=n[10])*p+(E=n[11])*g,i[9]=b*s+w*h+T*f+E*y,i[10]=b*a+w*u+T*m+E*x,i[11]=b*l+w*d+T*_+E*v,i[12]=(b=n[12])*o+(w=n[13])*c+(T=n[14])*p+(E=n[15])*g,i[13]=b*s+w*h+T*f+E*y,i[14]=b*a+w*u+T*m+E*x,i[15]=b*l+w*d+T*_+E*v,i}function m(i,r,n){var o,s,a,l,c,h,u,d,p,f,m,_,g=n[0],y=n[1],x=n[2];return r===i?(i[12]=r[0]*g+r[4]*y+r[8]*x+r[12],i[13]=r[1]*g+r[5]*y+r[9]*x+r[13],i[14]=r[2]*g+r[6]*y+r[10]*x+r[14],i[15]=r[3]*g+r[7]*y+r[11]*x+r[15]):(s=r[1],a=r[2],l=r[3],c=r[4],h=r[5],u=r[6],d=r[7],p=r[8],f=r[9],m=r[10],_=r[11],i[0]=o=r[0],i[1]=s,i[2]=a,i[3]=l,i[4]=c,i[5]=h,i[6]=u,i[7]=d,i[8]=p,i[9]=f,i[10]=m,i[11]=_,i[12]=o*g+c*y+p*x+r[12],i[13]=s*g+h*y+f*x+r[13],i[14]=a*g+u*y+m*x+r[14],i[15]=l*g+d*y+_*x+r[15]),i}function _(i,r,n){var o=n[0],s=n[1],a=n[2];return i[0]=r[0]*o,i[1]=r[1]*o,i[2]=r[2]*o,i[3]=r[3]*o,i[4]=r[4]*s,i[5]=r[5]*s,i[6]=r[6]*s,i[7]=r[7]*s,i[8]=r[8]*a,i[9]=r[9]*a,i[10]=r[10]*a,i[11]=r[11]*a,i[12]=r[12],i[13]=r[13],i[14]=r[14],i[15]=r[15],i}function g(i,r,n){var o=Math.sin(n),s=Math.cos(n),a=r[4],l=r[5],c=r[6],h=r[7],u=r[8],d=r[9],p=r[10],f=r[11];return r!==i&&(i[0]=r[0],i[1]=r[1],i[2]=r[2],i[3]=r[3],i[12]=r[12],i[13]=r[13],i[14]=r[14],i[15]=r[15]),i[4]=a*s+u*o,i[5]=l*s+d*o,i[6]=c*s+p*o,i[7]=h*s+f*o,i[8]=u*s-a*o,i[9]=d*s-l*o,i[10]=p*s-c*o,i[11]=f*s-h*o,i}function y(i,r,n){var o=Math.sin(n),s=Math.cos(n),a=r[0],l=r[1],c=r[2],h=r[3],u=r[8],d=r[9],p=r[10],f=r[11];return r!==i&&(i[4]=r[4],i[5]=r[5],i[6]=r[6],i[7]=r[7],i[12]=r[12],i[13]=r[13],i[14]=r[14],i[15]=r[15]),i[0]=a*s-u*o,i[1]=l*s-d*o,i[2]=c*s-p*o,i[3]=h*s-f*o,i[8]=a*o+u*s,i[9]=l*o+d*s,i[10]=c*o+p*s,i[11]=h*o+f*s,i}function x(){var i=new u(3);return u!=Float32Array&&(i[0]=0,i[1]=0,i[2]=0),i}function v(i){var r=new u(3);return r[0]=i[0],r[1]=i[1],r[2]=i[2],r}function b(i){return Math.hypot(i[0],i[1],i[2])}function w(i,r,n){var o=new u(3);return o[0]=i,o[1]=r,o[2]=n,o}function T(i,r,n){return i[0]=r[0]+n[0],i[1]=r[1]+n[1],i[2]=r[2]+n[2],i}function E(i,r,n){return i[0]=r[0]-n[0],i[1]=r[1]-n[1],i[2]=r[2]-n[2],i}function S(i,r,n){return i[0]=r[0]*n[0],i[1]=r[1]*n[1],i[2]=r[2]*n[2],i}function I(i,r,n){return i[0]=r[0]*n,i[1]=r[1]*n,i[2]=r[2]*n,i}function M(i,r,n,o){return i[0]=r[0]+n[0]*o,i[1]=r[1]+n[1]*o,i[2]=r[2]+n[2]*o,i}function A(i,r){var n=r[0],o=r[1],s=r[2],a=n*n+o*o+s*s;return a>0&&(a=1/Math.sqrt(a)),i[0]=r[0]*a,i[1]=r[1]*a,i[2]=r[2]*a,i}function C(i,r){return i[0]*r[0]+i[1]*r[1]+i[2]*r[2]}function z(i,r,n){var o=r[0],s=r[1],a=r[2],l=n[0],c=n[1],h=n[2];return i[0]=s*h-a*c,i[1]=a*l-o*h,i[2]=o*c-s*l,i}function k(i,r,n){var o=r[0],s=r[1],a=r[2],l=n[3]*o+n[7]*s+n[11]*a+n[15];return i[0]=(n[0]*o+n[4]*s+n[8]*a+n[12])/(l=l||1),i[1]=(n[1]*o+n[5]*s+n[9]*a+n[13])/l,i[2]=(n[2]*o+n[6]*s+n[10]*a+n[14])/l,i}function P(i,r,n){var o=n[0],s=n[1],a=n[2],l=r[0],c=r[1],h=r[2],u=s*h-a*c,d=a*l-o*h,p=o*c-s*l,f=s*p-a*d,m=a*u-o*p,_=o*d-s*u,g=2*n[3];return d*=g,p*=g,m*=2,_*=2,i[0]=l+(u*=g)+(f*=2),i[1]=c+d+m,i[2]=h+p+_,i}function D(i,r,n){var o=r[0],s=r[1],a=r[2],l=r[3];return i[0]=n[0]*o+n[4]*s+n[8]*a+n[12]*l,i[1]=n[1]*o+n[5]*s+n[9]*a+n[13]*l,i[2]=n[2]*o+n[6]*s+n[10]*a+n[14]*l,i[3]=n[3]*o+n[7]*s+n[11]*a+n[15]*l,i}function L(){var i=new u(4);return u!=Float32Array&&(i[0]=0,i[1]=0,i[2]=0),i[3]=1,i}function B(i){return i[0]=0,i[1]=0,i[2]=0,i[3]=1,i}function R(i,r,n){n*=.5;var o=r[0],s=r[1],a=r[2],l=r[3],c=Math.sin(n),h=Math.cos(n);return i[0]=o*h+l*c,i[1]=s*h+a*c,i[2]=a*h-s*c,i[3]=l*h-o*c,i}function F(i,r){return i[0]===r[0]&&i[1]===r[1]}Math.hypot||(Math.hypot=function(){for(var i=0,r=arguments.length;r--;)i+=arguments[r]*arguments[r];return Math.sqrt(i)}),x(),r=new u(4),u!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0,r[3]=0),x(),w(1,0,0),w(0,1,0),L(),L(),d(),n=new u(2),u!=Float32Array&&(n[0]=0,n[1]=0);const O=Math.PI/180,U=180/Math.PI,V=[[0,0],[1,0],[1,1],[0,1]];function N(i){if(i<=0)return 0;if(i>=1)return 1;const r=i*i,n=r*i;return 4*(i<.5?n:3*(i-r)+n-.75)}function j(i,r,n,o){const s=new a(i,r,n,o);return function(i){return s.solve(i)}}const G=j(.25,.1,.25,1);function Z(i,r,n){return Math.min(n,Math.max(r,i))}function $(i,r,n){return(n=Z((n-i)/(r-i),0,1))*n*(3-2*n)}function q(i,r,n){const o=n-r,s=((i-r)%o+o)%o+r;return s===r?n:s}function X(i,r,n){if(!i.length)return n(null,[]);let o=i.length;const s=Array(i.length);let a=null;i.forEach((i,l)=>{r(i,(i,r)=>{i&&(a=i),s[l]=r,0==--o&&n(a,s)})})}function W(i){const r=[];for(const n in i)r.push(i[n]);return r}function H(i,...r){for(const n of r)for(const o in n)i[o]=n[o];return i}let K=1;function Y(){return K++}function J(){return function i(r){return r?(r^16*Math.random()>>r/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,i)}()}function Q(i){return i<=1?1:Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function ee(i){return!!i&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(i)}function et(i,r){i.forEach(i=>{r[i]&&(r[i]=r[i].bind(r))})}function ei(i,r){return -1!==i.indexOf(r,i.length-r.length)}function er(i,r,n){const o={};for(const s in i)o[s]=r.call(n||this,i[s],s,i);return o}function en(i,r,n){const o={};for(const s in i)r.call(n||this,i[s],s,i)&&(o[s]=i[s]);return o}function eo(i){return Array.isArray(i)?i.map(eo):"object"==typeof i&&i?er(i,eo):i}const es={};function ea(i){es[i]||("undefined"!=typeof console&&console.warn(i),es[i]=!0)}function el(i,r,n){return(n.y-i.y)*(r.x-i.x)>(r.y-i.y)*(n.x-i.x)}function ec(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function eh(i){const r={};if(i.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(i,n,o,s)=>{const a=o||s;return r[n]=!a||a.toLowerCase(),""}),r["max-age"]){const n=parseInt(r["max-age"],10);isNaN(n)?delete r["max-age"]:r["max-age"]=n}return r}let eu,ed,ep,ef,em,e_=null;function eg(i){if(null==e_){const r=i.navigator?i.navigator.userAgent:null;e_=!!i.safari||!(!r||!(/\b(iPad|iPhone|iPod)\b/.test(r)||r.match("Safari")&&!r.match("Chrome")))}return e_}function ey(i){try{const r=h[i];return r.setItem("_mapbox_test_",1),r.removeItem("_mapbox_test_"),!0}catch(n){return!1}}const ex={now:()=>void 0!==em?em:h.performance.now(),setNow(i){em=i},restoreNow(){em=void 0},frame(i){const r=h.requestAnimationFrame(i);return{cancel:()=>h.cancelAnimationFrame(r)}},getImageData(i,r=0){const n=h.document.createElement("canvas"),o=n.getContext("2d");if(!o)throw Error("failed to create canvas 2d context");return n.width=i.width,n.height=i.height,o.drawImage(i,0,0,i.width,i.height),o.getImageData(-r,-r,i.width+2*r,i.height+2*r)},resolveURL:i=>(ep||(ep=h.document.createElement("a")),ep.href=i,ep.href),get devicePixelRatio(){return h.devicePixelRatio},get prefersReducedMotion(){return!!h.matchMedia&&(null==ef&&(ef=h.matchMedia("(prefers-reduced-motion: reduce)")),ef.matches)}},ev={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){if(null==eE){const eb=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{eE=null!=s.env.API_URL_REGEX?RegExp(s.env.API_URL_REGEX):eb}catch(ew){eE=eb}}return eE},get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com")?"https://events.mapbox.com/events/v2":null:null},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},eT={supported:!1,testSupport:function(i){!eM&&eI&&(eA?eC(i):eS=i)}};let eE,eS,eI,eM=!1,eA=!1;function eC(i){const r=i.createTexture();i.bindTexture(i.TEXTURE_2D,r);try{if(i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,eI),i.isContextLost())return;eT.supported=!0}catch(n){}i.deleteTexture(r),eM=!0}h.document&&((eI=h.document.createElement("img")).onload=function(){eS&&eC(eS),eS=null,eA=!0},eI.onerror=function(){eM=!0,eS=null},eI.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");const ez="NO_ACCESS_TOKEN";function ek(i){return 0===i.indexOf("mapbox:")}function eP(i){return ev.API_URL_REGEX.test(i)}const eD=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function eL(i){const r=i.match(eD);if(!r)throw Error("Unable to parse URL object");return{protocol:r[1],authority:r[2],path:r[3]||"/",params:r[4]?r[4].split("&"):[]}}function eB(i){const r=i.params.length?`?${i.params.join("&")}`:"";return`${i.protocol}://${i.authority}${i.path}${r}`}function eR(i){if(!i)return null;const r=i.split(".");if(!r||3!==r.length)return null;try{return JSON.parse(decodeURIComponent(h.atob(r[1]).split("").map(i=>"%"+("00"+i.charCodeAt(0).toString(16)).slice(-2)).join("")))}catch(n){return null}}class eF{constructor(i){this.type=i,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null}getStorageKey(i){const r=eR(ev.ACCESS_TOKEN);let n="";return n=r&&r.u?h.btoa(encodeURIComponent(r.u).replace(/%([0-9A-F]{2})/g,(i,r)=>String.fromCharCode(Number("0x"+r)))):ev.ACCESS_TOKEN||"",i?`mapbox.eventData.${i}:${n}`:`mapbox.eventData:${n}`}fetchEventData(){const i=ey("localStorage"),r=this.getStorageKey(),n=this.getStorageKey("uuid");if(i)try{const o=h.localStorage.getItem(r);o&&(this.eventData=JSON.parse(o));const s=h.localStorage.getItem(n);s&&(this.anonId=s)}catch(a){ea("Unable to read from LocalStorage")}}saveEventData(){const i=ey("localStorage"),r=this.getStorageKey(),n=this.getStorageKey("uuid");if(i)try{h.localStorage.setItem(n,this.anonId),Object.keys(this.eventData).length>=1&&h.localStorage.setItem(r,JSON.stringify(this.eventData))}catch(o){ea("Unable to write to LocalStorage")}}processRequests(i){}postEvent(i,r,n,s){if(!ev.EVENTS_URL)return;const a=eL(ev.EVENTS_URL);a.params.push(`access_token=${s||ev.ACCESS_TOKEN||""}`);const l={event:this.type,created:new Date(i).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:o,skuId:"01",userId:this.anonId},c=r?H(l,r):l,h={url:eB(a),headers:{"Content-Type":"text/plain"},body:JSON.stringify([c])};this.pendingRequest=e5(h,i=>{this.pendingRequest=null,n(i),this.saveEventData(),this.processRequests(s)})}queueRequest(i,r){this.queue.push(i),this.processRequests(r)}}const eO=new class extends eF{constructor(i){super("appUserTurnstile"),this._customAccessToken=i}postTurnstileEvent(i,r){ev.EVENTS_URL&&ev.ACCESS_TOKEN&&Array.isArray(i)&&i.some(i=>ek(i)||eP(i))&&this.queueRequest(Date.now(),r)}processRequests(i){if(this.pendingRequest||0===this.queue.length)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const r=eR(ev.ACCESS_TOKEN),n=r?r.u:ev.ACCESS_TOKEN;let o=n!==this.eventData.tokenU;ee(this.anonId)||(this.anonId=J(),o=!0);const s=this.queue.shift();if(this.eventData.lastSuccess){const a=new Date(this.eventData.lastSuccess),l=new Date(s),c=(s-this.eventData.lastSuccess)/864e5;o=o||c>=1||c<-1||a.getDate()!==l.getDate()}else o=!0;if(!o)return this.processRequests();this.postEvent(s,{"enabled.telemetry":!1},i=>{i||(this.eventData.lastSuccess=s,this.eventData.tokenU=n)},i)}},eU=eO.postTurnstileEvent.bind(eO),eV=new class extends eF{constructor(){super("map.load"),this.success={},this.skuToken=""}postMapLoadEvent(i,r,n,o){this.skuToken=r,this.errorCb=o,ev.EVENTS_URL&&(n||ev.ACCESS_TOKEN?this.queueRequest({id:i,timestamp:Date.now()},n):this.errorCb(Error(ez)))}processRequests(i){if(this.pendingRequest||0===this.queue.length)return;const{id:r,timestamp:n}=this.queue.shift();r&&this.success[r]||(this.anonId||this.fetchEventData(),ee(this.anonId)||(this.anonId=J()),this.postEvent(n,{skuToken:this.skuToken},i=>{i?this.errorCb(i):r&&(this.success[r]=!0)},i))}},eN=eV.postMapLoadEvent.bind(eV),ej=new class extends eF{constructor(){super("map.auth"),this.success={},this.skuToken=""}getSession(i,r,n,o){if(!ev.API_URL||!ev.SESSION_PATH)return;const s=eL(ev.API_URL+ev.SESSION_PATH);s.params.push(`sku=${r||""}`),s.params.push(`access_token=${o||ev.ACCESS_TOKEN||""}`);const a={url:eB(s),headers:{"Content-Type":"text/plain"}};this.pendingRequest=e4(a,i=>{this.pendingRequest=null,n(i),this.saveEventData(),this.processRequests(o)})}getSessionAPI(i,r,n,o){this.skuToken=r,this.errorCb=o,ev.SESSION_PATH&&ev.API_URL&&(n||ev.ACCESS_TOKEN?this.queueRequest({id:i,timestamp:Date.now()},n):this.errorCb(Error(ez)))}processRequests(i){if(this.pendingRequest||0===this.queue.length)return;const{id:r,timestamp:n}=this.queue.shift();r&&this.success[r]||this.getSession(n,this.skuToken,i=>{i?this.errorCb(i):r&&(this.success[r]=!0)},i)}},eG=ej.getSessionAPI.bind(ej),eZ=new Set,e$="mapbox-tiles";let eq,eX,eW=500,eH=50;function eK(){h.caches&&!eq&&(eq=h.caches.open(e$))}function eY(i){const r=i.indexOf("?");return r<0?i:i.slice(0,r)}let eJ=1/0;const eQ={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(eQ);class e0 extends Error{constructor(i,r,n){401===r&&eP(n)&&(i+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),super(i),this.status=r,this.url=n}toString(){return`${this.name}: ${this.message} (${this.status}): ${this.url}`}}const e1=ec()?()=>self.worker&&self.worker.referrer:()=>("blob:"===h.location.protocol?h.parent:h).location.href,e2=function(i,r){var n;if(!(/^file:/.test(n=i.url)||/^file:/.test(e1())&&!/^\w+:/.test(n))){if(h.fetch&&h.Request&&h.AbortController&&h.Request.prototype.hasOwnProperty("signal"))return function(i,r){var n;const o=new h.AbortController,s=new h.Request(i.url,{method:i.method||"GET",body:i.body,credentials:i.credentials,headers:i.headers,referrer:e1(),signal:o.signal});let a=!1,l=!1;const c=(n=s.url).indexOf("sku=")>0&&eP(n);"json"===i.type&&s.headers.set("Accept","application/json");const u=(n,o,a)=>{if(l)return;if(n&&"SecurityError"!==n.message&&ea(n),o&&a)return d(o);const u=Date.now();h.fetch(s).then(n=>{if(n.ok){const o=c?n.clone():null;return d(n,o,u)}return r(new e0(n.statusText,n.status,i.url))}).catch(i=>{20!==i.code&&r(Error(i.message))})},d=(n,o,c)=>{("arrayBuffer"===i.type?n.arrayBuffer():"json"===i.type?n.json():n.text()).then(i=>{l||(o&&c&&function(i,r,n){if(eK(),!eq)return;const o={status:r.status,statusText:r.statusText,headers:new h.Headers};r.headers.forEach((i,r)=>o.headers.set(r,i));const s=eh(r.headers.get("Cache-Control")||"");s["no-store"]||(s["max-age"]&&o.headers.set("Expires",new Date(n+1e3*s["max-age"]).toUTCString()),new Date(o.headers.get("Expires")).getTime()-n<42e4||function(i,r){if(void 0===eX)try{new Response(new ReadableStream),eX=!0}catch(n){eX=!1}eX?r(i.body):i.blob().then(r)}(r,r=>{const n=new h.Response(r,o);eK(),eq&&eq.then(r=>r.put(eY(i.url),n)).catch(i=>ea(i.message))}))}(s,o,c),a=!0,r(null,i,n.headers.get("Cache-Control"),n.headers.get("Expires")))}).catch(i=>{l||r(Error(i.message))})};return c?function(i,r){if(eK(),!eq)return r(null);const n=eY(i.url);eq.then(i=>{i.match(n).then(o=>{const s=function(i){if(!i)return!1;const r=new Date(i.headers.get("Expires")||0),n=eh(i.headers.get("Cache-Control")||"");return r>Date.now()&&!n["no-cache"]}(o);i.delete(n),s&&i.put(n,o.clone()),r(null,o,s)}).catch(r)}).catch(r)}(s,u):u(null,null),{cancel(){l=!0,a||o.abort()}}}(i,r);if(ec()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",i,r,void 0,!0)}return function(i,r){const n=new h.XMLHttpRequest;for(const o in n.open(i.method||"GET",i.url,!0),"arrayBuffer"===i.type&&(n.responseType="arraybuffer"),i.headers)n.setRequestHeader(o,i.headers[o]);return"json"===i.type&&(n.responseType="text",n.setRequestHeader("Accept","application/json")),n.withCredentials="include"===i.credentials,n.onerror=()=>{r(Error(n.statusText))},n.onload=()=>{if((n.status>=200&&n.status<300||0===n.status)&&null!==n.response){let o=n.response;if("json"===i.type)try{o=JSON.parse(n.response)}catch(s){return r(s)}r(null,o,n.getResponseHeader("Cache-Control"),n.getResponseHeader("Expires"))}else r(new e0(n.statusText,n.status,i.url))},n.send(i.body),{cancel:()=>n.abort()}}(i,r)},e3=function(i,r){return e2(H(i,{type:"arrayBuffer"}),r)},e5=function(i,r){return e2(H(i,{method:"POST"}),r)},e4=function(i,r){return e2(H(i,{method:"GET"}),r)},e6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";eu=[],ed=0;const e8=function(i,r){if(eT.supported&&(i.headers||(i.headers={}),i.headers.accept="image/webp,*/*"),ed>=ev.MAX_PARALLEL_IMAGE_REQUESTS){const n={requestParameters:i,callback:r,cancelled:!1,cancel(){this.cancelled=!0}};return eu.push(n),n}ed++;let o=!1;const s=()=>{if(!o)for(o=!0,ed--;eu.length&&ed{s(),i?r(i):n&&(h.createImageBitmap?function(i,r){const n=new h.Blob([new Uint8Array(i)],{type:"image/png"});h.createImageBitmap(n).then(i=>{r(null,i)}).catch(i=>{r(Error(`Could not load image because of ${i.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}(n,(i,n)=>r(i,n,o,a)):function(i,r){const n=new h.Image,o=h.URL;n.onload=()=>{r(null,n),o.revokeObjectURL(n.src),n.onload=null,h.requestAnimationFrame(()=>{n.src=e6})},n.onerror=()=>r(Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const s=new h.Blob([new Uint8Array(i)],{type:"image/png"});n.src=i.byteLength?o.createObjectURL(s):e6}(n,(i,n)=>r(i,n,o,a)))});return{cancel(){a.cancel(),s()}}};function e9(i,r,n){n[i]&&-1!==n[i].indexOf(r)||(n[i]=n[i]||[],n[i].push(r))}function e7(i,r,n){if(n&&n[i]){const o=n[i].indexOf(r);-1!==o&&n[i].splice(o,1)}}class te{constructor(i,r={}){H(this,r),this.type=i}}class tt extends te{constructor(i,r={}){super("error",H({error:i},r))}}class ti{on(i,r){return this._listeners=this._listeners||{},e9(i,r,this._listeners),this}off(i,r){return e7(i,r,this._listeners),e7(i,r,this._oneTimeListeners),this}once(i,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},e9(i,r,this._oneTimeListeners),this):new Promise(r=>this.once(i,r))}fire(i,r){"string"==typeof i&&(i=new te(i,r||{}));const n=i.type;if(this.listens(n)){i.target=this;const o=this._listeners&&this._listeners[n]?this._listeners[n].slice():[];for(const s of o)s.call(this,i);const a=this._oneTimeListeners&&this._oneTimeListeners[n]?this._oneTimeListeners[n].slice():[];for(const l of a)e7(n,l,this._oneTimeListeners),l.call(this,i);const c=this._eventedParent;c&&(H(i,"function"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),c.fire(i))}else i instanceof tt&&console.error(i.error);return this}listens(i){return!!(this._listeners&&this._listeners[i]&&this._listeners[i].length>0||this._oneTimeListeners&&this._oneTimeListeners[i]&&this._oneTimeListeners[i].length>0||this._eventedParent&&this._eventedParent.listens(i))}setEventedParent(i,r){return this._eventedParent=i,this._eventedParentData=r,this}}var tr=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"type":"array","value":"layer"}},"sources":{"*":{"type":"source"}},"source":["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"attribution":{"type":"string"},"promoteId":{"type":"promoteId"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"attribution":{"type":"string"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"attribution":{"type":"string"},"encoding":{"type":"enum","values":{"terrarium":{},"mapbox":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0},"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"metadata":{"type":"*"},"source":{"type":"string"},"source-layer":{"type":"string"},"minzoom":{"type":"number","minimum":0,"maximum":24},"maxzoom":{"type":"number","minimum":0,"maximum":24},"filter":{"type":"filter"},"layout":{"type":"layout"},"paint":{"type":"paint"}},"layout":["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_circle":{"circle-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{},"line":{},"line-center":{}},"default":"point","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{"type":"enum","values":{"none":{},"width":{},"height":{},"both":{}},"default":"none","requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["text-field",{"!":"text-variable-anchor"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","requires":["text-field",{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"filter":{"type":"array","value":"*"},"filter_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":0.1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_line":{"line-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"line-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","minimum":0,"transition":true,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"cross-faded"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}},"property-type":{"data-driven":{"type":"property-type"},"cross-faded":{"type":"property-type"},"cross-faded-data-driven":{"type":"property-type"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}');class tn{constructor(i,r,n,o){this.message=(i?`${i}: `:"")+n,o&&(this.identifier=o),null!=r&&r.__line__&&(this.line=r.__line__)}}function to(i){const r=i.value;return r?[new tn(i.key,r,"constants have been deprecated as of v8")]:[]}function ts(i,...r){for(const n of r)for(const o in n)i[o]=n[o];return i}function ta(i){return i instanceof Number||i instanceof String||i instanceof Boolean?i.valueOf():i}function tl(i){if(Array.isArray(i))return i.map(tl);if(i instanceof Object&&!(i instanceof Number||i instanceof String||i instanceof Boolean)){const r={};for(const n in i)r[n]=tl(i[n]);return r}return ta(i)}class tc extends Error{constructor(i,r){super(r),this.message=r,this.key=i}}class th{constructor(i,r=[]){for(const[n,o]of(this.parent=i,this.bindings={},r))this.bindings[n]=o}concat(i){return new th(this,i)}get(i){if(this.bindings[i])return this.bindings[i];if(this.parent)return this.parent.get(i);throw Error(`${i} not found in scope.`)}has(i){return!!this.bindings[i]||!!this.parent&&this.parent.has(i)}}const tu={kind:"null"},td={kind:"number"},tp={kind:"string"},tf={kind:"boolean"},tm={kind:"color"},t_={kind:"object"},tg={kind:"value"},ty={kind:"collator"},tx={kind:"formatted"},tv={kind:"resolvedImage"};function tb(i,r){return{kind:"array",itemType:i,N:r}}function tw(i){if("array"===i.kind){const r=tw(i.itemType);return"number"==typeof i.N?`array<${r}, ${i.N}>`:"value"===i.itemType.kind?"array":`array<${r}>`}return i.kind}const tT=[tu,td,tp,tf,tm,tx,t_,tb(tg),tv];function tE(i,r){if("error"===r.kind)return null;if("array"===i.kind){if("array"===r.kind&&(0===r.N&&"value"===r.itemType.kind||!tE(i.itemType,r.itemType))&&("number"!=typeof i.N||i.N===r.N))return null}else{if(i.kind===r.kind)return null;if("value"===i.kind){for(const n of tT)if(!tE(n,r))return null}}return`Expected ${tw(i)} but found ${tw(r)} instead.`}function tS(i,r){return r.some(r=>r.kind===i.kind)}function tI(i,r){return r.some(r=>"null"===r?null===i:"array"===r?Array.isArray(i):"object"===r?i&&!Array.isArray(i)&&"object"==typeof i:r===typeof i)}function tM(i){var r={exports:{}};return i(r,r.exports),r.exports}var tA=tM(function(i,r){var n={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function o(i){return(i=Math.round(i))<0?0:i>255?255:i}function s(i){return o("%"===i[i.length-1]?parseFloat(i)/100*255:parseInt(i))}function a(i){var r;return(r="%"===i[i.length-1]?parseFloat(i)/100:parseFloat(i))<0?0:r>1?1:r}function l(i,r,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?i+(r-i)*n*6:2*n<1?r:3*n<2?i+(r-i)*(2/3-n)*6:i}try{r.parseCSSColor=function(i){var r,c=i.replace(/ /g,"").toLowerCase();if(c in n)return n[c].slice();if("#"===c[0])return 4===c.length?(r=parseInt(c.substr(1),16))>=0&&r<=4095?[(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,1]:null:7===c.length&&(r=parseInt(c.substr(1),16))>=0&&r<=16777215?[(16711680&r)>>16,(65280&r)>>8,255&r,1]:null;var h=c.indexOf("("),u=c.indexOf(")");if(-1!==h&&u+1===c.length){var d=c.substr(0,h),p=c.substr(h+1,u-(h+1)).split(","),f=1;switch(d){case"rgba":if(4!==p.length)break;f=a(p.pop());case"rgb":return 3!==p.length?null:[s(p[0]),s(p[1]),s(p[2]),f];case"hsla":if(4!==p.length)break;f=a(p.pop());case"hsl":if(3!==p.length)break;var m=(parseFloat(p[0])%360+360)%360/360,_=a(p[1]),g=a(p[2]),y=g<=.5?g*(_+1):g+_-g*_,x=2*g-y;return[o(255*l(x,y,m+1/3)),o(255*l(x,y,m)),o(255*l(x,y,m-1/3)),f]}}return null}}catch(c){}});class tC{constructor(i,r,n,o=1){this.r=i,this.g=r,this.b=n,this.a=o}static parse(i){if(!i)return;if(i instanceof tC)return i;if("string"!=typeof i)return;const r=tA.parseCSSColor(i);return r?new tC(r[0]/255*r[3],r[1]/255*r[3],r[2]/255*r[3],r[3]):void 0}toString(){const[i,r,n,o]=this.toArray();return`rgba(${Math.round(i)},${Math.round(r)},${Math.round(n)},${o})`}toArray(){const{r:i,g:r,b:n,a:o}=this;return 0===o?[0,0,0,0]:[255*i/o,255*r/o,255*n/o,o]}}tC.black=new tC(0,0,0,1),tC.white=new tC(1,1,1,1),tC.transparent=new tC(0,0,0,0),tC.red=new tC(1,0,0,1),tC.blue=new tC(0,0,1,1);class tz{constructor(i,r,n){this.sensitivity=i?r?"variant":"case":r?"accent":"base",this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(i,r){return this.collator.compare(i,r)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class tk{constructor(i,r,n,o,s){this.text=i.normalize?i.normalize():i,this.image=r,this.scale=n,this.fontStack=o,this.textColor=s}}class tP{constructor(i){this.sections=i}static fromString(i){return new tP([new tk(i,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(i=>0!==i.text.length||i.image&&0!==i.image.name.length)}static factory(i){return i instanceof tP?i:tP.fromString(i)}toString(){return 0===this.sections.length?"":this.sections.map(i=>i.text).join("")}serialize(){const i=["format"];for(const r of this.sections){if(r.image){i.push(["image",r.image.name]);continue}i.push(r.text);const n={};r.fontStack&&(n["text-font"]=["literal",r.fontStack.split(",")]),r.scale&&(n["font-scale"]=r.scale),r.textColor&&(n["text-color"]=["rgba"].concat(r.textColor.toArray())),i.push(n)}return i}}class tD{constructor(i){this.name=i.name,this.available=i.available}toString(){return this.name}static fromString(i){return i?new tD({name:i,available:!1}):null}serialize(){return["image",this.name]}}function tL(i,r,n,o){return"number"==typeof i&&i>=0&&i<=255&&"number"==typeof r&&r>=0&&r<=255&&"number"==typeof n&&n>=0&&n<=255?void 0===o||"number"==typeof o&&o>=0&&o<=1?null:`Invalid rgba value [${[i,r,n,o].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof o?[i,r,n,o]:[i,r,n]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function tB(i){if(null===i||"string"==typeof i||"boolean"==typeof i||"number"==typeof i||i instanceof tC||i instanceof tz||i instanceof tP||i instanceof tD)return!0;if(Array.isArray(i)){for(const r of i)if(!tB(r))return!1;return!0}if("object"==typeof i){for(const n in i)if(!tB(i[n]))return!1;return!0}return!1}function tR(i){if(null===i)return tu;if("string"==typeof i)return tp;if("boolean"==typeof i)return tf;if("number"==typeof i)return td;if(i instanceof tC)return tm;if(i instanceof tz)return ty;if(i instanceof tP)return tx;if(i instanceof tD)return tv;if(Array.isArray(i)){let r;const n=i.length;for(const o of i){const s=tR(o);if(r){if(r===s)continue;r=tg;break}r=s}return tb(r||tg,n)}return t_}function tF(i){const r=typeof i;return null===i?"":"string"===r||"number"===r||"boolean"===r?String(i):i instanceof tC||i instanceof tP||i instanceof tD?i.toString():JSON.stringify(i)}class tO{constructor(i,r){this.type=i,this.value=r}static parse(i,r){if(2!==i.length)return r.error(`'literal' expression requires exactly one argument, but found ${i.length-1} instead.`);if(!tB(i[1]))return r.error("invalid value");const n=i[1];let o=tR(n);const s=r.expectedType;return"array"===o.kind&&0===o.N&&s&&"array"===s.kind&&("number"!=typeof s.N||0===s.N)&&(o=s),new tO(o,n)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof tC?["rgba"].concat(this.value.toArray()):this.value instanceof tP?this.value.serialize():this.value}}class tU{constructor(i){this.name="ExpressionEvaluationError",this.message=i}toJSON(){return this.message}}const tV={string:tp,number:td,boolean:tf,object:t_};class tN{constructor(i,r){this.type=i,this.args=r}static parse(i,r){if(i.length<2)return r.error("Expected at least one argument.");let n,o=1;const s=i[0];if("array"===s){let a,l;if(i.length>2){const c=i[1];if("string"!=typeof c||!(c in tV)||"object"===c)return r.error('The item type argument of "array" must be one of string, number, boolean',1);a=tV[c],o++}else a=tg;if(i.length>3){if(null!==i[2]&&("number"!=typeof i[2]||i[2]<0||i[2]!==Math.floor(i[2])))return r.error('The length argument to "array" must be a positive integer literal',2);l=i[2],o++}n=tb(a,l)}else n=tV[s];const h=[];for(;oi.outputDefined())}serialize(){const i=this.type,r=[i.kind];if("array"===i.kind){const n=i.itemType;if("string"===n.kind||"number"===n.kind||"boolean"===n.kind){r.push(n.kind);const o=i.N;("number"==typeof o||this.args.length>1)&&r.push(o)}}return r.concat(this.args.map(i=>i.serialize()))}}class tj{constructor(i){this.type=tx,this.sections=i}static parse(i,r){if(i.length<2)return r.error("Expected at least one argument.");const n=i[1];if(!Array.isArray(n)&&"object"==typeof n)return r.error("First argument must be an image or text section.");const o=[];let s=!1;for(let a=1;a<=i.length-1;++a){const l=i[a];if(s&&"object"==typeof l&&!Array.isArray(l)){s=!1;let c=null;if(l["font-scale"]&&!(c=r.parse(l["font-scale"],1,td)))return null;let h=null;if(l["text-font"]&&!(h=r.parse(l["text-font"],1,tb(tp))))return null;let u=null;if(l["text-color"]&&!(u=r.parse(l["text-color"],1,tm)))return null;const d=o[o.length-1];d.scale=c,d.font=h,d.textColor=u}else{const p=r.parse(i[a],1,tg);if(!p)return null;const f=p.type.kind;if("string"!==f&&"value"!==f&&"null"!==f&&"resolvedImage"!==f)return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");s=!0,o.push({content:p,scale:null,font:null,textColor:null})}}return new tj(o)}evaluate(i){return new tP(this.sections.map(r=>{const n=r.content.evaluate(i);return tR(n)===tv?new tk("",n,null,null,null):new tk(tF(n),null,r.scale?r.scale.evaluate(i):null,r.font?r.font.evaluate(i).join(","):null,r.textColor?r.textColor.evaluate(i):null)}))}eachChild(i){for(const r of this.sections)i(r.content),r.scale&&i(r.scale),r.font&&i(r.font),r.textColor&&i(r.textColor)}outputDefined(){return!1}serialize(){const i=["format"];for(const r of this.sections){i.push(r.content.serialize());const n={};r.scale&&(n["font-scale"]=r.scale.serialize()),r.font&&(n["text-font"]=r.font.serialize()),r.textColor&&(n["text-color"]=r.textColor.serialize()),i.push(n)}return i}}class tG{constructor(i){this.type=tv,this.input=i}static parse(i,r){if(2!==i.length)return r.error("Expected two arguments.");const n=r.parse(i[1],1,tp);return n?new tG(n):r.error("No image name provided.")}evaluate(i){const r=this.input.evaluate(i),n=tD.fromString(r);return n&&i.availableImages&&(n.available=i.availableImages.indexOf(r)>-1),n}eachChild(i){i(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const tZ={"to-boolean":tf,"to-color":tm,"to-number":td,"to-string":tp};class t${constructor(i,r){this.type=i,this.args=r}static parse(i,r){if(i.length<2)return r.error("Expected at least one argument.");const n=i[0];if(("to-boolean"===n||"to-string"===n)&&2!==i.length)return r.error("Expected one argument.");const o=tZ[n],s=[];for(let a=1;a4?`Invalid rbga value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:tL(r[0],r[1],r[2],r[3])))return new tC(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new tU(n||`Could not parse color from value '${"string"==typeof r?r:String(JSON.stringify(r))}'`)}if("number"===this.type.kind){let a=null;for(const l of this.args){if(null===(a=l.evaluate(i)))return 0;const c=Number(a);if(!isNaN(c))return c}throw new tU(`Could not convert ${JSON.stringify(a)} to number.`)}return"formatted"===this.type.kind?tP.fromString(tF(this.args[0].evaluate(i))):"resolvedImage"===this.type.kind?tD.fromString(tF(this.args[0].evaluate(i))):tF(this.args[0].evaluate(i))}eachChild(i){this.args.forEach(i)}outputDefined(){return this.args.every(i=>i.outputDefined())}serialize(){if("formatted"===this.type.kind)return new tj([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new tG(this.args[0]).serialize();const i=[`to-${this.type.kind}`];return this.eachChild(r=>{i.push(r.serialize())}),i}}const tq=["Unknown","Point","LineString","Polygon"];class tX{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?tq[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const i=this.featureDistanceData.center,r=this.featureDistanceData.scale,{x:n,y:o}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(n*r-i[0])+this.featureDistanceData.bearing[1]*(o*r-i[1])}return 0}parseColor(i){let r=this._parseColorCache[i];return r||(r=this._parseColorCache[i]=tC.parse(i)),r}}class tW{constructor(i,r,n,o){this.name=i,this.type=r,this._evaluate=n,this.args=o}evaluate(i){return this._evaluate(i,this.args)}eachChild(i){this.args.forEach(i)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(i=>i.serialize()))}static parse(i,r){const n=i[0],o=tW.definitions[n];if(!o)return r.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0);const s=Array.isArray(o)?o[0]:o.type,a=Array.isArray(o)?[[o[1],o[2]]]:o.overloads,l=a.filter(([r])=>!Array.isArray(r)||r.length===i.length-1);let c=null;for(const[h,u]of l){c=new it(r.registry,r.path,null,r.scope);const d=[];let p=!1;for(let f=1;fArray.isArray(i)?`(${i.map(tw).join(", ")})`:`(${tw(i.type)}...)`).join(" | "),w=[];for(let T=1;T=r[2]||i[1]<=r[1]||i[3]>=r[3])}function tJ(i,r){var n,o,s;let a=!1;for(let l=0,c=r.length;l(n=i)[1]!=(s=h[u+1])[1]>n[1]&&n[0]<(s[0]-o[0])*(n[1]-o[1])/(s[1]-o[1])+o[0]&&(a=!a)}}return a}function tQ(i,r,n,o){const s=o[0]-n[0],a=o[1]-n[1],l=(i[0]-n[0])*a-s*(i[1]-n[1]),c=(r[0]-n[0])*a-s*(r[1]-n[1]);return l>0&&c<0||l<0&&c>0}function t0(i,r){for(let n=0;nn[2]){const s=.5*o;let a=i[0]-n[0]>s?-o:n[0]-i[0]>s?o:0;0===a&&(a=i[0]-n[2]>s?-o:n[2]-i[0]>s?o:0),i[0]+=a}tK(r,i)}function t5(i,r,n,o){const s=8192*Math.pow(2,o.z),a=[8192*o.x,8192*o.y],l=[];for(const c of i)for(const h of c){const u=[h.x+a[0],h.y+a[1]];t3(u,r,n,s),l.push(u)}return l}function t4(i,r,n,o){var s;const a=8192*Math.pow(2,o.z),l=[8192*o.x,8192*o.y],c=[];for(const h of i){const u=[];for(const d of h){const p=[d.x+l[0],d.y+l[1]];tK(r,p),u.push(p)}c.push(u)}if(r[2]-r[0]<=a/2)for(const f of((s=r)[0]=s[1]=1/0,s[2]=s[3]=-1/0,c))for(const m of f)t3(m,r,n,a);return c}class t6{constructor(i,r){this.type=tf,this.geojson=i,this.geometries=r}static parse(i,r){if(2!==i.length)return r.error(`'within' expression requires exactly one argument, but found ${i.length-1} instead.`);if(tB(i[1])){const n=i[1];if("FeatureCollection"===n.type)for(let o=0;o{r&&!t8(i)&&(r=!1)}),r}function t9(i){if(i instanceof tW&&"feature-state"===i.name)return!1;let r=!0;return i.eachChild(i=>{r&&!t9(i)&&(r=!1)}),r}function t7(i,r){if(i instanceof tW&&r.indexOf(i.name)>=0)return!1;let n=!0;return i.eachChild(i=>{n&&!t7(i,r)&&(n=!1)}),n}class ie{constructor(i,r){this.type=r.type,this.name=i,this.boundExpression=r}static parse(i,r){if(2!==i.length||"string"!=typeof i[1])return r.error("'var' expression requires exactly one string literal argument.");const n=i[1];return r.scope.has(n)?new ie(n,r.scope.get(n)):r.error(`Unknown variable "${n}". Make sure "${n}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(i){return this.boundExpression.evaluate(i)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}class it{constructor(i,r=[],n,o=new th,s=[]){this.registry=i,this.path=r,this.key=r.map(i=>`[${i}]`).join(""),this.scope=o,this.errors=s,this.expectedType=n}parse(i,r,n,o,s={}){return r?this.concat(r,n,o)._parse(i,s):this._parse(i,s)}_parse(i,r){function n(i,r,n){return"assert"===n?new tN(r,[i]):"coerce"===n?new t$(r,[i]):i}if(null!==i&&"string"!=typeof i&&"boolean"!=typeof i&&"number"!=typeof i||(i=["literal",i]),Array.isArray(i)){if(0===i.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const o=i[0];if("string"!=typeof o)return this.error(`Expression name must be a string, but found ${typeof o} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const s=this.registry[o];if(s){let a=s.parse(i,this);if(!a)return null;if(this.expectedType){const l=this.expectedType,c=a.type;if("string"!==l.kind&&"number"!==l.kind&&"boolean"!==l.kind&&"object"!==l.kind&&"array"!==l.kind||"value"!==c.kind){if("color"!==l.kind&&"formatted"!==l.kind&&"resolvedImage"!==l.kind||"value"!==c.kind&&"string"!==c.kind){if(this.checkSubtype(l,c))return null}else a=n(a,l,r.typeAnnotation||"coerce")}else a=n(a,l,r.typeAnnotation||"assert")}if(!(a instanceof tO)&&"resolvedImage"!==a.type.kind&&function i(r){if(r instanceof ie)return i(r.boundExpression);if(r instanceof tW&&"error"===r.name||r instanceof tH||r instanceof t6)return!1;const n=r instanceof t$||r instanceof tN;let o=!0;return r.eachChild(r=>{o=n?o&&i(r):o&&r instanceof tO}),!!o&&t8(r)&&t7(r,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"])}(a)){const h=new tX;try{a=new tO(a.type,a.evaluate(h))}catch(u){return this.error(u.message),null}}return a}return this.error(`Unknown expression "${o}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===i?"'undefined' value invalid. Use null instead.":"object"==typeof i?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof i} instead.`)}concat(i,r,n){const o="number"==typeof i?this.path.concat(i):this.path,s=n?this.scope.concat(n):this.scope;return new it(this.registry,o,r||null,s,this.errors)}error(i,...r){const n=`${this.key}${r.map(i=>`[${i}]`).join("")}`;this.errors.push(new tc(n,i))}checkSubtype(i,r){const n=tE(i,r);return n&&this.error(n),n}}function ii(i,r){const n=i.length-1;let o,s,a=0,l=n,c=0;for(;a<=l;)if(o=i[c=Math.floor((a+l)/2)],s=i[c+1],o<=r){if(c===n||rr))throw new tU("Input is not a number.");l=c-1}return 0}class ir{constructor(i,r,n){for(const[o,s]of(this.type=i,this.input=r,this.labels=[],this.outputs=[],n))this.labels.push(o),this.outputs.push(s)}static parse(i,r){if(i.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${i.length-1}.`);if((i.length-1)%2!=0)return r.error("Expected an even number of arguments.");const n=r.parse(i[1],1,td);if(!n)return null;const o=[];let s=null;r.expectedType&&"value"!==r.expectedType.kind&&(s=r.expectedType);for(let a=1;a=l)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',h);const d=r.parse(c,u,s);if(!d)return null;s=s||d.type,o.push([l,d])}return new ir(s,n,o)}evaluate(i){const r=this.labels,n=this.outputs;if(1===r.length)return n[0].evaluate(i);const o=this.input.evaluate(i);if(o<=r[0])return n[0].evaluate(i);const s=r.length;return o>=r[s-1]?n[s-1].evaluate(i):n[ii(r,o)].evaluate(i)}eachChild(i){for(const r of(i(this.input),this.outputs))i(r)}outputDefined(){return this.outputs.every(i=>i.outputDefined())}serialize(){const i=["step",this.input.serialize()];for(let r=0;r0&&i.push(this.labels[r]),i.push(this.outputs[r].serialize());return i}}function io(i,r,n){return i*(1-n)+r*n}var is=Object.freeze({__proto__:null,number:io,color:function(i,r,n){return new tC(io(i.r,r.r,n),io(i.g,r.g,n),io(i.b,r.b,n),io(i.a,r.a,n))},array:function(i,r,n){return i.map((i,o)=>io(i,r[o],n))}});const ia=4/29,il=6/29,ic=3*il*il,ih=Math.PI/180,iu=180/Math.PI;function id(i){return i>.008856451679035631?Math.pow(i,1/3):i/ic+ia}function ip(i){return i>il?i*i*i:ic*(i-ia)}function im(i){return 255*(i<=.0031308?12.92*i:1.055*Math.pow(i,1/2.4)-.055)}function i_(i){return(i/=255)<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function ig(i){const r=i_(i.r),n=i_(i.g),o=i_(i.b),s=id((.4124564*r+.3575761*n+.1804375*o)/.95047),a=id((.2126729*r+.7151522*n+.072175*o)/1);return{l:116*a-16,a:500*(s-a),b:200*(a-id((.0193339*r+.119192*n+.9503041*o)/1.08883)),alpha:i.a}}function iy(i){let r=(i.l+16)/116,n=isNaN(i.a)?r:r+i.a/500,o=isNaN(i.b)?r:r-i.b/200;return r=1*ip(r),n=.95047*ip(n),o=1.08883*ip(o),new tC(im(3.2404542*n-1.5371385*r-.4985314*o),im(-.969266*n+1.8760108*r+.041556*o),im(.0556434*n-.2040259*r+1.0572252*o),i.alpha)}const ix={forward:ig,reverse:iy,interpolate:function(i,r,n){return{l:io(i.l,r.l,n),a:io(i.a,r.a,n),b:io(i.b,r.b,n),alpha:io(i.alpha,r.alpha,n)}}},iv={forward:function(i){const{l:r,a:n,b:o}=ig(i),s=Math.atan2(o,n)*iu;return{h:s<0?s+360:s,c:Math.sqrt(n*n+o*o),l:r,alpha:i.a}},reverse:function(i){const r=i.h*ih,n=i.c;return iy({l:i.l,a:Math.cos(r)*n,b:Math.sin(r)*n,alpha:i.alpha})},interpolate:function(i,r,n){return{h:function(i,r,n){const o=r-i;return i+n*(o>180||o<-180?o-360*Math.round(o/360):o)}(i.h,r.h,n),c:io(i.c,r.c,n),l:io(i.l,r.l,n),alpha:io(i.alpha,r.alpha,n)}}};var ib=Object.freeze({__proto__:null,lab:ix,hcl:iv});class iw{constructor(i,r,n,o,s){for(const[a,l]of(this.type=i,this.operator=r,this.interpolation=n,this.input=o,this.labels=[],this.outputs=[],s))this.labels.push(a),this.outputs.push(l)}static interpolationFactor(i,r,n,o){let s=0;if("exponential"===i.name)s=iT(r,i.base,n,o);else if("linear"===i.name)s=iT(r,1,n,o);else if("cubic-bezier"===i.name){const l=i.controlPoints;s=new a(l[0],l[1],l[2],l[3]).solve(iT(r,1,n,o))}return s}static parse(i,r){let[n,o,s,...a]=i;if(!Array.isArray(o)||0===o.length)return r.error("Expected an interpolation type expression.",1);if("linear"===o[0])o={name:"linear"};else if("exponential"===o[0]){const l=o[1];if("number"!=typeof l)return r.error("Exponential interpolation requires a numeric base.",1,1);o={name:"exponential",base:l}}else{if("cubic-bezier"!==o[0])return r.error(`Unknown interpolation type ${String(o[0])}`,1,0);{const c=o.slice(1);if(4!==c.length||c.some(i=>"number"!=typeof i||i<0||i>1))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);o={name:"cubic-bezier",controlPoints:c}}}if(i.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${i.length-1}.`);if((i.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(!(s=r.parse(s,2,td)))return null;const h=[];let u=null;"interpolate-hcl"===n||"interpolate-lab"===n?u=tm:r.expectedType&&"value"!==r.expectedType.kind&&(u=r.expectedType);for(let d=0;d=p)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',m);const g=r.parse(f,_,u);if(!g)return null;u=u||g.type,h.push([p,g])}return"number"===u.kind||"color"===u.kind||"array"===u.kind&&"number"===u.itemType.kind&&"number"==typeof u.N?new iw(u,n,o,s,h):r.error(`Type ${tw(u)} is not interpolatable.`)}evaluate(i){const r=this.labels,n=this.outputs;if(1===r.length)return n[0].evaluate(i);const o=this.input.evaluate(i);if(o<=r[0])return n[0].evaluate(i);const s=r.length;if(o>=r[s-1])return n[s-1].evaluate(i);const a=ii(r,o),l=iw.interpolationFactor(this.interpolation,o,r[a],r[a+1]),c=n[a].evaluate(i),h=n[a+1].evaluate(i);return"interpolate"===this.operator?is[this.type.kind.toLowerCase()](c,h,l):"interpolate-hcl"===this.operator?iv.reverse(iv.interpolate(iv.forward(c),iv.forward(h),l)):ix.reverse(ix.interpolate(ix.forward(c),ix.forward(h),l))}eachChild(i){for(const r of(i(this.input),this.outputs))i(r)}outputDefined(){return this.outputs.every(i=>i.outputDefined())}serialize(){let i;i="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const r=[this.operator,i,this.input.serialize()];for(let n=0;ntE(o,i.type));return new iE(c?tg:n,s)}evaluate(i){let r,n=null,o=0;for(const s of this.args){if(o++,(n=s.evaluate(i))&&n instanceof tD&&!n.available&&(r||(r=n),n=null,o===this.args.length))return r;if(null!==n)break}return n}eachChild(i){this.args.forEach(i)}outputDefined(){return this.args.every(i=>i.outputDefined())}serialize(){const i=["coalesce"];return this.eachChild(r=>{i.push(r.serialize())}),i}}class iS{constructor(i,r){this.type=r.type,this.bindings=[].concat(i),this.result=r}evaluate(i){return this.result.evaluate(i)}eachChild(i){for(const r of this.bindings)i(r[1]);i(this.result)}static parse(i,r){if(i.length<4)return r.error(`Expected at least 3 arguments, but found ${i.length-1} instead.`);const n=[];for(let o=1;o=n.length)throw new tU(`Array index out of bounds: ${r} > ${n.length-1}.`);if(r!==Math.floor(r))throw new tU(`Array index must be an integer, but found ${r} instead.`);return n[r]}eachChild(i){i(this.index),i(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}class iM{constructor(i,r){this.type=tf,this.needle=i,this.haystack=r}static parse(i,r){if(3!==i.length)return r.error(`Expected 2 arguments, but found ${i.length-1} instead.`);const n=r.parse(i[1],1,tg),o=r.parse(i[2],2,tg);return n&&o?tS(n.type,[tf,tp,td,tu,tg])?new iM(n,o):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${tw(n.type)} instead`):null}evaluate(i){const r=this.needle.evaluate(i),n=this.haystack.evaluate(i);if(!n)return!1;if(!tI(r,["boolean","string","number","null"]))throw new tU(`Expected first argument to be of type boolean, string, number or null, but found ${tw(tR(r))} instead.`);if(!tI(n,["string","array"]))throw new tU(`Expected second argument to be of type array or string, but found ${tw(tR(n))} instead.`);return n.indexOf(r)>=0}eachChild(i){i(this.needle),i(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}class iA{constructor(i,r,n){this.type=td,this.needle=i,this.haystack=r,this.fromIndex=n}static parse(i,r){if(i.length<=2||i.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${i.length-1} instead.`);const n=r.parse(i[1],1,tg),o=r.parse(i[2],2,tg);if(!n||!o)return null;if(!tS(n.type,[tf,tp,td,tu,tg]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${tw(n.type)} instead`);if(4===i.length){const s=r.parse(i[3],3,td);return s?new iA(n,o,s):null}return new iA(n,o)}evaluate(i){const r=this.needle.evaluate(i),n=this.haystack.evaluate(i);if(!tI(r,["boolean","string","number","null"]))throw new tU(`Expected first argument to be of type boolean, string, number or null, but found ${tw(tR(r))} instead.`);if(!tI(n,["string","array"]))throw new tU(`Expected second argument to be of type array or string, but found ${tw(tR(n))} instead.`);if(this.fromIndex){const o=this.fromIndex.evaluate(i);return n.indexOf(r,o)}return n.indexOf(r)}eachChild(i){i(this.needle),i(this.haystack),this.fromIndex&&i(this.fromIndex)}outputDefined(){return!1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const i=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),i]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}class iC{constructor(i,r,n,o,s,a){this.inputType=i,this.type=r,this.input=n,this.cases=o,this.outputs=s,this.otherwise=a}static parse(i,r){let n,o;if(i.length<5)return r.error(`Expected at least 4 arguments, but found only ${i.length-1}.`);if(i.length%2!=1)return r.error("Expected an even number of arguments.");r.expectedType&&"value"!==r.expectedType.kind&&(o=r.expectedType);const s={},a=[];for(let l=2;lNumber.MAX_SAFE_INTEGER)return u.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof d&&Math.floor(d)!==d)return u.error("Numeric branch labels must be integer values.");if(n){if(u.checkSubtype(n,tR(d)))return null}else n=tR(d);if(void 0!==s[String(d)])return u.error("Branch labels must be unique.");s[String(d)]=a.length}const p=r.parse(h,l,o);if(!p)return null;o=o||p.type,a.push(p)}const f=r.parse(i[1],1,tg);if(!f)return null;const m=r.parse(i[i.length-1],i.length-1,o);return m?"value"!==f.type.kind&&r.concat(1).checkSubtype(n,f.type)?null:new iC(n,o,f,s,a,m):null}evaluate(i){const r=this.input.evaluate(i);return(tR(r)===this.inputType&&this.outputs[this.cases[r]]||this.otherwise).evaluate(i)}eachChild(i){i(this.input),this.outputs.forEach(i),i(this.otherwise)}outputDefined(){return this.outputs.every(i=>i.outputDefined())&&this.otherwise.outputDefined()}serialize(){const i=["match",this.input.serialize()],r=Object.keys(this.cases).sort(),n=[],o={};for(const s of r){const a=o[this.cases[s]];void 0===a?(o[this.cases[s]]=n.length,n.push([this.cases[s],[s]])):n[a][1].push(s)}const l=i=>"number"===this.inputType.kind?Number(i):i;for(const[c,h]of n)i.push(1===h.length?l(h[0]):h.map(l)),i.push(this.outputs[c].serialize());return i.push(this.otherwise.serialize()),i}}class iz{constructor(i,r,n){this.type=i,this.branches=r,this.otherwise=n}static parse(i,r){let n;if(i.length<4)return r.error(`Expected at least 3 arguments, but found only ${i.length-1}.`);if(i.length%2!=0)return r.error("Expected an odd number of arguments.");r.expectedType&&"value"!==r.expectedType.kind&&(n=r.expectedType);const o=[];for(let s=1;sr.outputDefined())&&this.otherwise.outputDefined()}serialize(){const i=["case"];return this.eachChild(r=>{i.push(r.serialize())}),i}}class ik{constructor(i,r,n,o){this.type=i,this.input=r,this.beginIndex=n,this.endIndex=o}static parse(i,r){if(i.length<=2||i.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${i.length-1} instead.`);const n=r.parse(i[1],1,tg),o=r.parse(i[2],2,td);if(!n||!o)return null;if(!tS(n.type,[tb(tg),tp,tg]))return r.error(`Expected first argument to be of type array or string, but found ${tw(n.type)} instead`);if(4===i.length){const s=r.parse(i[3],3,td);return s?new ik(n.type,n,o,s):null}return new ik(n.type,n,o)}evaluate(i){const r=this.input.evaluate(i),n=this.beginIndex.evaluate(i);if(!tI(r,["string","array"]))throw new tU(`Expected first argument to be of type array or string, but found ${tw(tR(r))} instead.`);if(this.endIndex){const o=this.endIndex.evaluate(i);return r.slice(n,o)}return r.slice(n)}eachChild(i){i(this.input),i(this.beginIndex),this.endIndex&&i(this.endIndex)}outputDefined(){return!1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const i=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),i]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}function iP(i,r){return"=="===i||"!="===i?"boolean"===r.kind||"string"===r.kind||"number"===r.kind||"null"===r.kind||"value"===r.kind:"string"===r.kind||"number"===r.kind||"value"===r.kind}function iD(i,r,n,o){return 0===o.compare(r,n)}function iL(i,r,n){const o="=="!==i&&"!="!==i;return class s{constructor(i,r,n){this.type=tf,this.lhs=i,this.rhs=r,this.collator=n,this.hasUntypedArgument="value"===i.type.kind||"value"===r.type.kind}static parse(i,r){if(3!==i.length&&4!==i.length)return r.error("Expected two or three arguments.");const n=i[0];let a=r.parse(i[1],1,tg);if(!a)return null;if(!iP(n,a.type))return r.concat(1).error(`"${n}" comparisons are not supported for type '${tw(a.type)}'.`);let l=r.parse(i[2],2,tg);if(!l)return null;if(!iP(n,l.type))return r.concat(2).error(`"${n}" comparisons are not supported for type '${tw(l.type)}'.`);if(a.type.kind!==l.type.kind&&"value"!==a.type.kind&&"value"!==l.type.kind)return r.error(`Cannot compare types '${tw(a.type)}' and '${tw(l.type)}'.`);o&&("value"===a.type.kind&&"value"!==l.type.kind?a=new tN(l.type,[a]):"value"!==a.type.kind&&"value"===l.type.kind&&(l=new tN(a.type,[l])));let c=null;if(4===i.length){if("string"!==a.type.kind&&"string"!==l.type.kind&&"value"!==a.type.kind&&"value"!==l.type.kind)return r.error("Cannot use collator to compare non-string types.");if(!(c=r.parse(i[3],3,ty)))return null}return new s(a,l,c)}evaluate(s){const a=this.lhs.evaluate(s),l=this.rhs.evaluate(s);if(o&&this.hasUntypedArgument){const c=tR(a),h=tR(l);if(c.kind!==h.kind||"string"!==c.kind&&"number"!==c.kind)throw new tU(`Expected arguments for "${i}" to be (string, string) or (number, number), but found (${c.kind}, ${h.kind}) instead.`)}if(this.collator&&!o&&this.hasUntypedArgument){const u=tR(a),d=tR(l);if("string"!==u.kind||"string"!==d.kind)return r(s,a,l)}return this.collator?n(s,a,l,this.collator.evaluate(s)):r(s,a,l)}eachChild(i){i(this.lhs),i(this.rhs),this.collator&&i(this.collator)}outputDefined(){return!0}serialize(){const r=[i];return this.eachChild(i=>{r.push(i.serialize())}),r}}}const iB=iL("==",function(i,r,n){return r===n},iD),iR=iL("!=",function(i,r,n){return r!==n},function(i,r,n,o){return!iD(0,r,n,o)}),iF=iL("<",function(i,r,n){return ro.compare(r,n)}),iO=iL(">",function(i,r,n){return r>n},function(i,r,n,o){return o.compare(r,n)>0}),iU=iL("<=",function(i,r,n){return r<=n},function(i,r,n,o){return 0>=o.compare(r,n)}),iV=iL(">=",function(i,r,n){return r>=n},function(i,r,n,o){return o.compare(r,n)>=0});class iN{constructor(i,r,n,o,s){this.type=tp,this.number=i,this.locale=r,this.currency=n,this.minFractionDigits=o,this.maxFractionDigits=s}static parse(i,r){if(3!==i.length)return r.error("Expected two arguments.");const n=r.parse(i[1],1,td);if(!n)return null;const o=i[2];if("object"!=typeof o||Array.isArray(o))return r.error("NumberFormat options argument must be an object.");let s=null;if(o.locale&&!(s=r.parse(o.locale,1,tp)))return null;let a=null;if(o.currency&&!(a=r.parse(o.currency,1,tp)))return null;let l=null;if(o["min-fraction-digits"]&&!(l=r.parse(o["min-fraction-digits"],1,td)))return null;let c=null;return!o["max-fraction-digits"]||(c=r.parse(o["max-fraction-digits"],1,td))?new iN(n,s,a,l,c):null}evaluate(i){return new Intl.NumberFormat(this.locale?this.locale.evaluate(i):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(i):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(i):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(i):void 0}).format(this.number.evaluate(i))}eachChild(i){i(this.number),this.locale&&i(this.locale),this.currency&&i(this.currency),this.minFractionDigits&&i(this.minFractionDigits),this.maxFractionDigits&&i(this.maxFractionDigits)}outputDefined(){return!1}serialize(){const i={};return this.locale&&(i.locale=this.locale.serialize()),this.currency&&(i.currency=this.currency.serialize()),this.minFractionDigits&&(i["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(i["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),i]}}class ij{constructor(i){this.type=td,this.input=i}static parse(i,r){if(2!==i.length)return r.error(`Expected 1 argument, but found ${i.length-1} instead.`);const n=r.parse(i[1],1);return n?"array"!==n.type.kind&&"string"!==n.type.kind&&"value"!==n.type.kind?r.error(`Expected argument of type string or array, but found ${tw(n.type)} instead.`):new ij(n):null}evaluate(i){const r=this.input.evaluate(i);if("string"==typeof r||Array.isArray(r))return r.length;throw new tU(`Expected value to be of type string or array, but found ${tw(tR(r))} instead.`)}eachChild(i){i(this.input)}outputDefined(){return!1}serialize(){const i=["length"];return this.eachChild(r=>{i.push(r.serialize())}),i}}const iG={"==":iB,"!=":iR,">":iO,"<":iF,">=":iV,"<=":iU,array:tN,at:iI,boolean:tN,case:iz,coalesce:iE,collator:tH,format:tj,image:tG,in:iM,"index-of":iA,interpolate:iw,"interpolate-hcl":iw,"interpolate-lab":iw,length:ij,let:iS,literal:tO,match:iC,number:tN,"number-format":iN,object:tN,slice:ik,step:ir,string:tN,"to-boolean":t$,"to-color":t$,"to-number":t$,"to-string":t$,var:ie,within:t6};function iZ(i,[r,n,o,s]){r=r.evaluate(i),n=n.evaluate(i),o=o.evaluate(i);const a=s?s.evaluate(i):1,l=tL(r,n,o,a);if(l)throw new tU(l);return new tC(r/255*a,n/255*a,o/255*a,a)}function i$(i,r){const n=r[i];return void 0===n?null:n}function iq(i){return{type:i}}function iX(i){return{result:"success",value:i}}function iW(i){return{result:"error",value:i}}function iH(i){return"data-driven"===i["property-type"]||"cross-faded-data-driven"===i["property-type"]}function iK(i){return!!i.expression&&i.expression.parameters.indexOf("zoom")>-1}function iY(i){return!!i.expression&&i.expression.interpolated}function iJ(i){return i instanceof Number?"number":i instanceof String?"string":i instanceof Boolean?"boolean":Array.isArray(i)?"array":null===i?"null":typeof i}function iQ(i){return"object"==typeof i&&null!==i&&!Array.isArray(i)}function i0(i){return i}function i1(i,r,n){return void 0!==i?i:void 0!==r?r:void 0!==n?n:void 0}function i2(i,r,n,o,s){return i1(typeof n===s?o[n]:void 0,i.default,r.default)}function i3(i,r,n){if("number"!==iJ(n))return i1(i.default,r.default);const o=i.stops.length;if(1===o||n<=i.stops[0][0])return i.stops[0][1];if(n>=i.stops[o-1][0])return i.stops[o-1][1];const s=ii(i.stops.map(i=>i[0]),n);return i.stops[s][1]}function i5(i,r,n){const o=void 0!==i.base?i.base:1;if("number"!==iJ(n))return i1(i.default,r.default);const s=i.stops.length;if(1===s||n<=i.stops[0][0])return i.stops[0][1];if(n>=i.stops[s-1][0])return i.stops[s-1][1];const a=ii(i.stops.map(i=>i[0]),n),l=function(i,r,n,o){const s=o-n,a=i-n;return 0===s?0:1===r?a/s:(Math.pow(r,a)-1)/(Math.pow(r,s)-1)}(n,o,i.stops[a][0],i.stops[a+1][0]),c=i.stops[a][1],h=i.stops[a+1][1];let u=is[r.type]||i0;if(i.colorSpace&&"rgb"!==i.colorSpace){const d=ib[i.colorSpace];u=(i,r)=>d.reverse(d.interpolate(d.forward(i),d.forward(r),l))}return"function"==typeof c.evaluate?{evaluate(...i){const r=c.evaluate.apply(void 0,i),n=h.evaluate.apply(void 0,i);if(void 0!==r&&void 0!==n)return u(r,n,l)}}:u(c,h,l)}function i4(i,r,n){return"color"===r.type?n=tC.parse(n):"formatted"===r.type?n=tP.fromString(n.toString()):"resolvedImage"===r.type?n=tD.fromString(n.toString()):iJ(n)===r.type||"enum"===r.type&&r.values[n]||(n=void 0),i1(n,i.default,r.default)}tW.register(iG,{error:[{kind:"error"},[tp],(i,[r])=>{throw new tU(r.evaluate(i))}],typeof:[tp,[tg],(i,[r])=>tw(tR(r.evaluate(i)))],"to-rgba":[tb(td,4),[tm],(i,[r])=>r.evaluate(i).toArray()],rgb:[tm,[td,td,td],iZ],rgba:[tm,[td,td,td,td],iZ],has:{type:tf,overloads:[[[tp],(i,[r])=>r.evaluate(i) in i.properties()],[[tp,t_],(i,[r,n])=>r.evaluate(i) in n.evaluate(i)]]},get:{type:tg,overloads:[[[tp],(i,[r])=>i$(r.evaluate(i),i.properties())],[[tp,t_],(i,[r,n])=>i$(r.evaluate(i),n.evaluate(i))]]},"feature-state":[tg,[tp],(i,[r])=>i$(r.evaluate(i),i.featureState||{})],properties:[t_,[],i=>i.properties()],"geometry-type":[tp,[],i=>i.geometryType()],id:[tg,[],i=>i.id()],zoom:[td,[],i=>i.globals.zoom],pitch:[td,[],i=>i.globals.pitch||0],"distance-from-center":[td,[],i=>i.distanceFromCenter()],"heatmap-density":[td,[],i=>i.globals.heatmapDensity||0],"line-progress":[td,[],i=>i.globals.lineProgress||0],"sky-radial-progress":[td,[],i=>i.globals.skyRadialProgress||0],accumulated:[tg,[],i=>void 0===i.globals.accumulated?null:i.globals.accumulated],"+":[td,iq(td),(i,r)=>{let n=0;for(const o of r)n+=o.evaluate(i);return n}],"*":[td,iq(td),(i,r)=>{let n=1;for(const o of r)n*=o.evaluate(i);return n}],"-":{type:td,overloads:[[[td,td],(i,[r,n])=>r.evaluate(i)-n.evaluate(i)],[[td],(i,[r])=>-r.evaluate(i)]]},"/":[td,[td,td],(i,[r,n])=>r.evaluate(i)/n.evaluate(i)],"%":[td,[td,td],(i,[r,n])=>r.evaluate(i)%n.evaluate(i)],ln2:[td,[],()=>Math.LN2],pi:[td,[],()=>Math.PI],e:[td,[],()=>Math.E],"^":[td,[td,td],(i,[r,n])=>Math.pow(r.evaluate(i),n.evaluate(i))],sqrt:[td,[td],(i,[r])=>Math.sqrt(r.evaluate(i))],log10:[td,[td],(i,[r])=>Math.log(r.evaluate(i))/Math.LN10],ln:[td,[td],(i,[r])=>Math.log(r.evaluate(i))],log2:[td,[td],(i,[r])=>Math.log(r.evaluate(i))/Math.LN2],sin:[td,[td],(i,[r])=>Math.sin(r.evaluate(i))],cos:[td,[td],(i,[r])=>Math.cos(r.evaluate(i))],tan:[td,[td],(i,[r])=>Math.tan(r.evaluate(i))],asin:[td,[td],(i,[r])=>Math.asin(r.evaluate(i))],acos:[td,[td],(i,[r])=>Math.acos(r.evaluate(i))],atan:[td,[td],(i,[r])=>Math.atan(r.evaluate(i))],min:[td,iq(td),(i,r)=>Math.min(...r.map(r=>r.evaluate(i)))],max:[td,iq(td),(i,r)=>Math.max(...r.map(r=>r.evaluate(i)))],abs:[td,[td],(i,[r])=>Math.abs(r.evaluate(i))],round:[td,[td],(i,[r])=>{const n=r.evaluate(i);return n<0?-Math.round(-n):Math.round(n)}],floor:[td,[td],(i,[r])=>Math.floor(r.evaluate(i))],ceil:[td,[td],(i,[r])=>Math.ceil(r.evaluate(i))],"filter-==":[tf,[tp,tg],(i,[r,n])=>i.properties()[r.value]===n.value],"filter-id-==":[tf,[tg],(i,[r])=>i.id()===r.value],"filter-type-==":[tf,[tp],(i,[r])=>i.geometryType()===r.value],"filter-<":[tf,[tp,tg],(i,[r,n])=>{const o=i.properties()[r.value],s=n.value;return typeof o==typeof s&&o{const n=i.id(),o=r.value;return typeof n==typeof o&&n":[tf,[tp,tg],(i,[r,n])=>{const o=i.properties()[r.value],s=n.value;return typeof o==typeof s&&o>s}],"filter-id->":[tf,[tg],(i,[r])=>{const n=i.id(),o=r.value;return typeof n==typeof o&&n>o}],"filter-<=":[tf,[tp,tg],(i,[r,n])=>{const o=i.properties()[r.value],s=n.value;return typeof o==typeof s&&o<=s}],"filter-id-<=":[tf,[tg],(i,[r])=>{const n=i.id(),o=r.value;return typeof n==typeof o&&n<=o}],"filter->=":[tf,[tp,tg],(i,[r,n])=>{const o=i.properties()[r.value],s=n.value;return typeof o==typeof s&&o>=s}],"filter-id->=":[tf,[tg],(i,[r])=>{const n=i.id(),o=r.value;return typeof n==typeof o&&n>=o}],"filter-has":[tf,[tg],(i,[r])=>r.value in i.properties()],"filter-has-id":[tf,[],i=>null!==i.id()&&void 0!==i.id()],"filter-type-in":[tf,[tb(tp)],(i,[r])=>r.value.indexOf(i.geometryType())>=0],"filter-id-in":[tf,[tb(tg)],(i,[r])=>r.value.indexOf(i.id())>=0],"filter-in-small":[tf,[tp,tb(tg)],(i,[r,n])=>n.value.indexOf(i.properties()[r.value])>=0],"filter-in-large":[tf,[tp,tb(tg)],(i,[r,n])=>(function(i,r,n,o){for(;n<=o;){const s=n+o>>1;if(r[s]===i)return!0;r[s]>i?o=s-1:n=s+1}return!1})(i.properties()[r.value],n.value,0,n.value.length-1)],all:{type:tf,overloads:[[[tf,tf],(i,[r,n])=>r.evaluate(i)&&n.evaluate(i)],[iq(tf),(i,r)=>{for(const n of r)if(!n.evaluate(i))return!1;return!0}]]},any:{type:tf,overloads:[[[tf,tf],(i,[r,n])=>r.evaluate(i)||n.evaluate(i)],[iq(tf),(i,r)=>{for(const n of r)if(n.evaluate(i))return!0;return!1}]]},"!":[tf,[tf],(i,[r])=>!r.evaluate(i)],"is-supported-script":[tf,[tp],(i,[r])=>{const n=i.globals&&i.globals.isSupportedScript;return!n||n(r.evaluate(i))}],upcase:[tp,[tp],(i,[r])=>r.evaluate(i).toUpperCase()],downcase:[tp,[tp],(i,[r])=>r.evaluate(i).toLowerCase()],concat:[tp,iq(tg),(i,r)=>r.map(r=>tF(r.evaluate(i))).join("")],"resolved-locale":[tp,[ty],(i,[r])=>r.evaluate(i).resolvedLocale()]});class i6{constructor(i,r){this.expression=i,this._warningHistory={},this._evaluator=new tX,this._defaultValue=r?"color"===r.type&&iQ(r.default)?new tC(0,0,0,0):"color"===r.type?tC.parse(r.default)||null:void 0===r.default?null:r.default:null,this._enumValues=r&&"enum"===r.type?r.values:null}evaluateWithoutErrorHandling(i,r,n,o,s,a,l,c){return this._evaluator.globals=i,this._evaluator.feature=r,this._evaluator.featureState=n,this._evaluator.canonical=o,this._evaluator.availableImages=s||null,this._evaluator.formattedSection=a,this._evaluator.featureTileCoord=l||null,this._evaluator.featureDistanceData=c||null,this.expression.evaluate(this._evaluator)}evaluate(i,r,n,o,s,a,l,c){this._evaluator.globals=i,this._evaluator.feature=r||null,this._evaluator.featureState=n||null,this._evaluator.canonical=o,this._evaluator.availableImages=s||null,this._evaluator.formattedSection=a||null,this._evaluator.featureTileCoord=l||null,this._evaluator.featureDistanceData=c||null;try{const h=this.expression.evaluate(this._evaluator);if(null==h||"number"==typeof h&&h!=h)return this._defaultValue;if(this._enumValues&&!(h in this._enumValues))throw new tU(`Expected value to be one of ${Object.keys(this._enumValues).map(i=>JSON.stringify(i)).join(", ")}, but found ${JSON.stringify(h)} instead.`);return h}catch(u){return this._warningHistory[u.message]||(this._warningHistory[u.message]=!0,"undefined"!=typeof console&&console.warn(u.message)),this._defaultValue}}}function i8(i){return Array.isArray(i)&&i.length>0&&"string"==typeof i[0]&&i[0]in iG}function i9(i,r){const n=new it(iG,[],r?function(i){const r={color:tm,string:tp,number:td,enum:tp,boolean:tf,formatted:tx,resolvedImage:tv};return"array"===i.type?tb(r[i.value]||tg,i.length):r[i.type]}(r):void 0),o=n.parse(i,void 0,void 0,void 0,r&&"string"===r.type?{typeAnnotation:"coerce"}:void 0);return o?iX(new i6(o,r)):iW(n.errors)}class i7{constructor(i,r){this.kind=i,this._styleExpression=r,this.isStateDependent="constant"!==i&&!t9(r.expression)}evaluateWithoutErrorHandling(i,r,n,o,s,a){return this._styleExpression.evaluateWithoutErrorHandling(i,r,n,o,s,a)}evaluate(i,r,n,o,s,a){return this._styleExpression.evaluate(i,r,n,o,s,a)}}class re{constructor(i,r,n,o){this.kind=i,this.zoomStops=n,this._styleExpression=r,this.isStateDependent="camera"!==i&&!t9(r.expression),this.interpolationType=o}evaluateWithoutErrorHandling(i,r,n,o,s,a){return this._styleExpression.evaluateWithoutErrorHandling(i,r,n,o,s,a)}evaluate(i,r,n,o,s,a){return this._styleExpression.evaluate(i,r,n,o,s,a)}interpolationFactor(i,r,n){return this.interpolationType?iw.interpolationFactor(this.interpolationType,i,r,n):0}}function rt(i,r){if("error"===(i=i9(i,r)).result)return i;const n=i.value.expression,o=t8(n);if(!o&&!iH(r))return iW([new tc("","data expressions not supported")]);const s=t7(n,["zoom","pitch","distance-from-center"]);if(!s&&!iK(r))return iW([new tc("","zoom expressions not supported")]);const a=function i(r){let n=null;if(r instanceof iS)n=i(r.result);else if(r instanceof iE){for(const o of r.args)if(n=i(o))break}else(r instanceof ir||r instanceof iw)&&r.input instanceof tW&&"zoom"===r.input.name&&(n=r);return n instanceof tc||r.eachChild(r=>{const o=i(r);o instanceof tc?n=o:!n&&o?n=new tc("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):n&&o&&n!==o&&(n=new tc("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),n}(n);return a||s?a instanceof tc?iW([a]):a instanceof iw&&!iY(r)?iW([new tc("",'"interpolate" expressions cannot be used with this property')]):iX(a?new re(o?"camera":"composite",i.value,a.labels,a instanceof iw?a.interpolation:void 0):new i7(o?"constant":"source",i.value)):iW([new tc("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class ri{constructor(i,r){this._parameters=i,this._specification=r,ts(this,function i(r,n){let o,s,a;const l="color"===n.type,c=r.stops&&"object"==typeof r.stops[0][0],h=c||!(c||void 0!==r.property),u=r.type||(iY(n)?"exponential":"interval");if(l&&((r=ts({},r)).stops&&(r.stops=r.stops.map(i=>[i[0],tC.parse(i[1])])),r.default=tC.parse(r.default?r.default:n.default)),r.colorSpace&&"rgb"!==r.colorSpace&&!ib[r.colorSpace])throw Error(`Unknown color space: ${r.colorSpace}`);if("exponential"===u)o=i5;else if("interval"===u)o=i3;else if("categorical"===u){for(const d of(o=i2,s=Object.create(null),r.stops))s[d[0]]=d[1];a=typeof r.stops[0][0]}else{if("identity"!==u)throw Error(`Unknown function type "${u}"`);o=i4}if(c){const p={},f=[];for(let m=0;mi[0]),evaluate:({zoom:i},o)=>i5({stops:y,base:r.base},n,i).evaluate(i,o)}}if(h){const b="exponential"===u?{name:"exponential",base:void 0!==r.base?r.base:1}:null;return{kind:"camera",interpolationType:b,interpolationFactor:iw.interpolationFactor.bind(void 0,b),zoomStops:r.stops.map(i=>i[0]),evaluate:({zoom:i})=>o(r,n,i,s,a)}}return{kind:"source",evaluate(i,l){const c=l&&l.properties?l.properties[r.property]:void 0;return void 0===c?i1(r.default,n.default):o(r,n,c,s,a)}}}(this._parameters,this._specification))}static deserialize(i){return new ri(i._parameters,i._specification)}static serialize(i){return{_parameters:i._parameters,_specification:i._specification}}}function rr(i){const r=i.key,n=i.value,o=i.valueSpec||{},s=i.objectElementValidators||{},a=i.style,l=i.styleSpec;let c=[];const h=iJ(n);if("object"!==h)return[new tn(r,n,`object expected, ${h} found`)];for(const u in n){let d;const p=u.split(".")[0],f=o[p]||o["*"];if(s[p])d=s[p];else if(o[p])d=rz;else if(s["*"])d=s["*"];else{if(!o["*"]){c.push(new tn(r,n[u],`unknown property "${u}"`));continue}d=rz}c=c.concat(d({key:(r?`${r}.`:r)+u,value:n[u],valueSpec:f,style:a,styleSpec:l,object:n,objectKey:u},n))}for(const m in o)s[m]||o[m].required&&void 0===o[m].default&&void 0===n[m]&&c.push(new tn(r,n,`missing required property "${m}"`));return c}function rn(i){const r=i.value,n=i.valueSpec,o=i.style,s=i.styleSpec,a=i.key,l=i.arrayElementValidator||rz;if("array"!==iJ(r))return[new tn(a,r,`array expected, ${iJ(r)} found`)];if(n.length&&r.length!==n.length)return[new tn(a,r,`array length ${n.length} expected, length ${r.length} found`)];if(n["min-length"]&&r.lengthl)return[new tn(r,n,`${n} is greater than the maximum value ${l}`)]}return[]}function rs(i){const r=i.valueSpec,n=ta(i.value.type);let o,s,a,l={};const c="categorical"!==n&&void 0===i.value.property,h="array"===iJ(i.value.stops)&&"array"===iJ(i.value.stops[0])&&"object"===iJ(i.value.stops[0][0]),u=rr({key:i.key,value:i.value,valueSpec:i.styleSpec.function,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{stops:function(i){if("identity"===n)return[new tn(i.key,i.value,'identity function may not have a "stops" property')];let r=[];const o=i.value;return r=r.concat(rn({key:i.key,value:o,valueSpec:i.valueSpec,style:i.style,styleSpec:i.styleSpec,arrayElementValidator:d})),"array"===iJ(o)&&0===o.length&&r.push(new tn(i.key,o,"array must have at least one stop")),r},default:function(i){return rz({key:i.key,value:i.value,valueSpec:r,style:i.style,styleSpec:i.styleSpec})}}});return"identity"===n&&c&&u.push(new tn(i.key,i.value,'missing required property "property"')),"identity"===n||i.value.stops||u.push(new tn(i.key,i.value,'missing required property "stops"')),"exponential"===n&&i.valueSpec.expression&&!iY(i.valueSpec)&&u.push(new tn(i.key,i.value,"exponential functions not supported")),i.styleSpec.$version>=8&&(c||iH(i.valueSpec)?c&&!iK(i.valueSpec)&&u.push(new tn(i.key,i.value,"zoom functions not supported")):u.push(new tn(i.key,i.value,"property functions not supported"))),("categorical"===n||h)&&void 0===i.value.property&&u.push(new tn(i.key,i.value,'"property" property is required')),u;function d(i){let n=[];const o=i.value,c=i.key;if("array"!==iJ(o))return[new tn(c,o,`array expected, ${iJ(o)} found`)];if(2!==o.length)return[new tn(c,o,`array length 2 expected, length ${o.length} found`)];if(h){if("object"!==iJ(o[0]))return[new tn(c,o,`object expected, ${iJ(o[0])} found`)];if(void 0===o[0].zoom)return[new tn(c,o,"object stop key must have zoom")];if(void 0===o[0].value)return[new tn(c,o,"object stop key must have value")];if(a&&a>ta(o[0].zoom))return[new tn(c,o[0].zoom,"stop zoom values must appear in ascending order")];ta(o[0].zoom)!==a&&(a=ta(o[0].zoom),s=void 0,l={}),n=n.concat(rr({key:`${c}[0]`,value:o[0],valueSpec:{zoom:{}},style:i.style,styleSpec:i.styleSpec,objectElementValidators:{zoom:ro,value:p}}))}else n=n.concat(p({key:`${c}[0]`,value:o[0],valueSpec:{},style:i.style,styleSpec:i.styleSpec},o));return i8(tl(o[1]))?n.concat([new tn(`${c}[1]`,o[1],"expressions are not allowed in function stops.")]):n.concat(rz({key:`${c}[1]`,value:o[1],valueSpec:r,style:i.style,styleSpec:i.styleSpec}))}function p(i,a){const c=iJ(i.value),h=ta(i.value),u=null!==i.value?i.value:a;if(o){if(c!==o)return[new tn(i.key,u,`${c} stop domain type must match previous stop domain type ${o}`)]}else o=c;if("number"!==c&&"string"!==c&&"boolean"!==c)return[new tn(i.key,u,"stop domain value must be a number, string, or boolean")];if("number"!==c&&"categorical"!==n){let d=`number expected, ${c} found`;return iH(r)&&void 0===n&&(d+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new tn(i.key,u,d)]}return"categorical"!==n||"number"!==c||isFinite(h)&&Math.floor(h)===h?"categorical"!==n&&"number"===c&&void 0!==s&&hnew tn(`${i.key}${r.key}`,i.value,r.message));const n=r.value.expression||r.value._styleExpression.expression;if("property"===i.expressionContext&&"text-font"===i.propertyKey&&!n.outputDefined())return[new tn(i.key,i.value,`Invalid data expression for "${i.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===i.expressionContext&&"layout"===i.propertyType&&!t9(n))return[new tn(i.key,i.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===i.expressionContext)return function i(r,n){const o=new Set(["zoom","feature-state","pitch","distance-from-center"]);for(const s of n.valueSpec.expression.parameters)o.delete(s);if(0===o.size)return[];const a=[];return r instanceof tW&&o.has(r.name)?[new tn(n.key,n.value,`["${r.name}"] expression is not supported in a filter for a ${n.object.type} layer with id: ${n.object.id}`)]:(r.eachChild(r=>{a.push(...i(r,n))}),a)}(n,i);if(i.expressionContext&&0===i.expressionContext.indexOf("cluster")){if(!t7(n,["zoom","feature-state"]))return[new tn(i.key,i.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===i.expressionContext&&!t8(n))return[new tn(i.key,i.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function rl(i){const r=i.key,n=i.value,o=i.valueSpec,s=[];return Array.isArray(o.values)?-1===o.values.indexOf(ta(n))&&s.push(new tn(r,n,`expected one of [${o.values.join(", ")}], ${JSON.stringify(n)} found`)):-1===Object.keys(o.values).indexOf(ta(n))&&s.push(new tn(r,n,`expected one of [${Object.keys(o.values).join(", ")}], ${JSON.stringify(n)} found`)),s}function rc(i){if(!0===i||!1===i)return!0;if(!Array.isArray(i)||0===i.length)return!1;switch(i[0]){case"has":return i.length>=2&&"$id"!==i[1]&&"$type"!==i[1];case"in":return i.length>=3&&("string"!=typeof i[1]||Array.isArray(i[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==i.length||Array.isArray(i[1])||Array.isArray(i[2]);case"any":case"all":for(const r of i.slice(1))if(!rc(r)&&"boolean"!=typeof r)return!1;return!0;default:return!0}}function rh(i,r="fill"){if(null==i)return{filter:()=>!0,needGeometry:!1,needFeature:!1};rc(i)||(i=function i(r){if(!r)return!0;const n=r[0];return r.length<=1?"any"!==n:"=="===n?rf(r[1],r[2],"=="):"!="===n?rg(rf(r[1],r[2],"==")):"<"===n||">"===n||"<="===n||">="===n?rf(r[1],r[2],n):"any"===n?["any"].concat(r.slice(1).map(i)):"all"===n?["all"].concat(r.slice(1).map(i)):"none"===n?["all"].concat(r.slice(1).map(i).map(rg)):"in"===n?rm(r[1],r.slice(2)):"!in"===n?rg(rm(r[1],r.slice(2))):"has"===n?r_(r[1]):"!has"===n?rg(r_(r[1])):"within"!==n||r}(i));const n=i;let o=!0;try{o=function(i){if(!ru(i))return i;let r=tl(i);return function i(r){let n=!1;const o=[];if("case"===r[0]){for(let s=1;si(r))}(r)}(n)}catch(s){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate. +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[634],{6158:function(i,r,n){var o,s=n(3454);o=function(){"use strict";var i,r,n;function o(o,s){if(i){if(r){var a="self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; ("+i+")(sharedChunk); ("+r+")(sharedChunk); self.onerror = null;",l={};i(l),n=s(l),"undefined"!=typeof window&&window&&window.URL&&window.URL.createObjectURL&&(n.workerUrl=window.URL.createObjectURL(new Blob([a],{type:"text/javascript"})))}else r=s}else i=s}return o(["exports"],function(i){var r,n,o="2.7.0";function a(i,r,n,o){this.cx=3*i,this.bx=3*(n-i)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*r,this.by=3*(o-r)-this.cy,this.ay=1-this.cy-this.by,this.p1x=i,this.p1y=o,this.p2x=n,this.p2y=o}a.prototype.sampleCurveX=function(i){return((this.ax*i+this.bx)*i+this.cx)*i},a.prototype.sampleCurveY=function(i){return((this.ay*i+this.by)*i+this.cy)*i},a.prototype.sampleCurveDerivativeX=function(i){return(3*this.ax*i+2*this.bx)*i+this.cx},a.prototype.solveCurveX=function(i,r){var n,o,s,a,l;for(void 0===r&&(r=1e-6),s=i,l=0;l<8;l++){if(Math.abs(a=this.sampleCurveX(s)-i)Math.abs(c))break;s-=a/c}if((s=i)<(n=0))return n;if(s>(o=1))return o;for(;na?n=s:o=s,s=.5*(o-n)+n;return s},a.prototype.solve=function(i,r){return this.sampleCurveY(this.solveCurveX(i,r))};var l=c;function c(i,r){this.x=i,this.y=r}c.prototype={clone:function(){return new c(this.x,this.y)},add:function(i){return this.clone()._add(i)},sub:function(i){return this.clone()._sub(i)},multByPoint:function(i){return this.clone()._multByPoint(i)},divByPoint:function(i){return this.clone()._divByPoint(i)},mult:function(i){return this.clone()._mult(i)},div:function(i){return this.clone()._div(i)},rotate:function(i){return this.clone()._rotate(i)},rotateAround:function(i,r){return this.clone()._rotateAround(i,r)},matMult:function(i){return this.clone()._matMult(i)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(i){return this.x===i.x&&this.y===i.y},dist:function(i){return Math.sqrt(this.distSqr(i))},distSqr:function(i){var r=i.x-this.x,n=i.y-this.y;return r*r+n*n},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(i){return Math.atan2(this.y-i.y,this.x-i.x)},angleWith:function(i){return this.angleWithSep(i.x,i.y)},angleWithSep:function(i,r){return Math.atan2(this.x*r-this.y*i,this.x*i+this.y*r)},_matMult:function(i){var r=i[2]*this.x+i[3]*this.y;return this.x=i[0]*this.x+i[1]*this.y,this.y=r,this},_add:function(i){return this.x+=i.x,this.y+=i.y,this},_sub:function(i){return this.x-=i.x,this.y-=i.y,this},_mult:function(i){return this.x*=i,this.y*=i,this},_div:function(i){return this.x/=i,this.y/=i,this},_multByPoint:function(i){return this.x*=i.x,this.y*=i.y,this},_divByPoint:function(i){return this.x/=i.x,this.y/=i.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var i=this.y;return this.y=this.x,this.x=-i,this},_rotate:function(i){var r=Math.cos(i),n=Math.sin(i),o=n*this.x+r*this.y;return this.x=r*this.x-n*this.y,this.y=o,this},_rotateAround:function(i,r){var n=Math.cos(i),o=Math.sin(i),s=r.y+o*(this.x-r.x)+n*(this.y-r.y);return this.x=r.x+n*(this.x-r.x)-o*(this.y-r.y),this.y=s,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},c.convert=function(i){return i instanceof c?i:Array.isArray(i)?new c(i[0],i[1]):i};var h="undefined"!=typeof self?self:{},u="undefined"!=typeof Float32Array?Float32Array:Array;function d(){var i=new u(9);return u!=Float32Array&&(i[1]=0,i[2]=0,i[3]=0,i[5]=0,i[6]=0,i[7]=0),i[0]=1,i[4]=1,i[8]=1,i}function p(i){return i[0]=1,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=1,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=1,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i}function f(i,r,n){var o=r[0],s=r[1],a=r[2],l=r[3],c=r[4],h=r[5],u=r[6],d=r[7],p=r[8],f=r[9],m=r[10],_=r[11],g=r[12],y=r[13],x=r[14],v=r[15],b=n[0],w=n[1],T=n[2],E=n[3];return i[0]=b*o+w*c+T*p+E*g,i[1]=b*s+w*h+T*f+E*y,i[2]=b*a+w*u+T*m+E*x,i[3]=b*l+w*d+T*_+E*v,i[4]=(b=n[4])*o+(w=n[5])*c+(T=n[6])*p+(E=n[7])*g,i[5]=b*s+w*h+T*f+E*y,i[6]=b*a+w*u+T*m+E*x,i[7]=b*l+w*d+T*_+E*v,i[8]=(b=n[8])*o+(w=n[9])*c+(T=n[10])*p+(E=n[11])*g,i[9]=b*s+w*h+T*f+E*y,i[10]=b*a+w*u+T*m+E*x,i[11]=b*l+w*d+T*_+E*v,i[12]=(b=n[12])*o+(w=n[13])*c+(T=n[14])*p+(E=n[15])*g,i[13]=b*s+w*h+T*f+E*y,i[14]=b*a+w*u+T*m+E*x,i[15]=b*l+w*d+T*_+E*v,i}function m(i,r,n){var o,s,a,l,c,h,u,d,p,f,m,_,g=n[0],y=n[1],x=n[2];return r===i?(i[12]=r[0]*g+r[4]*y+r[8]*x+r[12],i[13]=r[1]*g+r[5]*y+r[9]*x+r[13],i[14]=r[2]*g+r[6]*y+r[10]*x+r[14],i[15]=r[3]*g+r[7]*y+r[11]*x+r[15]):(s=r[1],a=r[2],l=r[3],c=r[4],h=r[5],u=r[6],d=r[7],p=r[8],f=r[9],m=r[10],_=r[11],i[0]=o=r[0],i[1]=s,i[2]=a,i[3]=l,i[4]=c,i[5]=h,i[6]=u,i[7]=d,i[8]=p,i[9]=f,i[10]=m,i[11]=_,i[12]=o*g+c*y+p*x+r[12],i[13]=s*g+h*y+f*x+r[13],i[14]=a*g+u*y+m*x+r[14],i[15]=l*g+d*y+_*x+r[15]),i}function _(i,r,n){var o=n[0],s=n[1],a=n[2];return i[0]=r[0]*o,i[1]=r[1]*o,i[2]=r[2]*o,i[3]=r[3]*o,i[4]=r[4]*s,i[5]=r[5]*s,i[6]=r[6]*s,i[7]=r[7]*s,i[8]=r[8]*a,i[9]=r[9]*a,i[10]=r[10]*a,i[11]=r[11]*a,i[12]=r[12],i[13]=r[13],i[14]=r[14],i[15]=r[15],i}function g(i,r,n){var o=Math.sin(n),s=Math.cos(n),a=r[4],l=r[5],c=r[6],h=r[7],u=r[8],d=r[9],p=r[10],f=r[11];return r!==i&&(i[0]=r[0],i[1]=r[1],i[2]=r[2],i[3]=r[3],i[12]=r[12],i[13]=r[13],i[14]=r[14],i[15]=r[15]),i[4]=a*s+u*o,i[5]=l*s+d*o,i[6]=c*s+p*o,i[7]=h*s+f*o,i[8]=u*s-a*o,i[9]=d*s-l*o,i[10]=p*s-c*o,i[11]=f*s-h*o,i}function y(i,r,n){var o=Math.sin(n),s=Math.cos(n),a=r[0],l=r[1],c=r[2],h=r[3],u=r[8],d=r[9],p=r[10],f=r[11];return r!==i&&(i[4]=r[4],i[5]=r[5],i[6]=r[6],i[7]=r[7],i[12]=r[12],i[13]=r[13],i[14]=r[14],i[15]=r[15]),i[0]=a*s-u*o,i[1]=l*s-d*o,i[2]=c*s-p*o,i[3]=h*s-f*o,i[8]=a*o+u*s,i[9]=l*o+d*s,i[10]=c*o+p*s,i[11]=h*o+f*s,i}function x(){var i=new u(3);return u!=Float32Array&&(i[0]=0,i[1]=0,i[2]=0),i}function v(i){var r=new u(3);return r[0]=i[0],r[1]=i[1],r[2]=i[2],r}function b(i){return Math.hypot(i[0],i[1],i[2])}function w(i,r,n){var o=new u(3);return o[0]=i,o[1]=r,o[2]=n,o}function T(i,r,n){return i[0]=r[0]+n[0],i[1]=r[1]+n[1],i[2]=r[2]+n[2],i}function E(i,r,n){return i[0]=r[0]-n[0],i[1]=r[1]-n[1],i[2]=r[2]-n[2],i}function S(i,r,n){return i[0]=r[0]*n[0],i[1]=r[1]*n[1],i[2]=r[2]*n[2],i}function I(i,r,n){return i[0]=r[0]*n,i[1]=r[1]*n,i[2]=r[2]*n,i}function M(i,r,n,o){return i[0]=r[0]+n[0]*o,i[1]=r[1]+n[1]*o,i[2]=r[2]+n[2]*o,i}function A(i,r){var n=r[0],o=r[1],s=r[2],a=n*n+o*o+s*s;return a>0&&(a=1/Math.sqrt(a)),i[0]=r[0]*a,i[1]=r[1]*a,i[2]=r[2]*a,i}function C(i,r){return i[0]*r[0]+i[1]*r[1]+i[2]*r[2]}function z(i,r,n){var o=r[0],s=r[1],a=r[2],l=n[0],c=n[1],h=n[2];return i[0]=s*h-a*c,i[1]=a*l-o*h,i[2]=o*c-s*l,i}function k(i,r,n){var o=r[0],s=r[1],a=r[2],l=n[3]*o+n[7]*s+n[11]*a+n[15];return i[0]=(n[0]*o+n[4]*s+n[8]*a+n[12])/(l=l||1),i[1]=(n[1]*o+n[5]*s+n[9]*a+n[13])/l,i[2]=(n[2]*o+n[6]*s+n[10]*a+n[14])/l,i}function P(i,r,n){var o=n[0],s=n[1],a=n[2],l=r[0],c=r[1],h=r[2],u=s*h-a*c,d=a*l-o*h,p=o*c-s*l,f=s*p-a*d,m=a*u-o*p,_=o*d-s*u,g=2*n[3];return d*=g,p*=g,m*=2,_*=2,i[0]=l+(u*=g)+(f*=2),i[1]=c+d+m,i[2]=h+p+_,i}function D(i,r,n){var o=r[0],s=r[1],a=r[2],l=r[3];return i[0]=n[0]*o+n[4]*s+n[8]*a+n[12]*l,i[1]=n[1]*o+n[5]*s+n[9]*a+n[13]*l,i[2]=n[2]*o+n[6]*s+n[10]*a+n[14]*l,i[3]=n[3]*o+n[7]*s+n[11]*a+n[15]*l,i}function L(){var i=new u(4);return u!=Float32Array&&(i[0]=0,i[1]=0,i[2]=0),i[3]=1,i}function B(i){return i[0]=0,i[1]=0,i[2]=0,i[3]=1,i}function R(i,r,n){n*=.5;var o=r[0],s=r[1],a=r[2],l=r[3],c=Math.sin(n),h=Math.cos(n);return i[0]=o*h+l*c,i[1]=s*h+a*c,i[2]=a*h-s*c,i[3]=l*h-o*c,i}function F(i,r){return i[0]===r[0]&&i[1]===r[1]}Math.hypot||(Math.hypot=function(){for(var i=0,r=arguments.length;r--;)i+=arguments[r]*arguments[r];return Math.sqrt(i)}),x(),r=new u(4),u!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0,r[3]=0),x(),w(1,0,0),w(0,1,0),L(),L(),d(),n=new u(2),u!=Float32Array&&(n[0]=0,n[1]=0);const O=Math.PI/180,U=180/Math.PI,V=[[0,0],[1,0],[1,1],[0,1]];function N(i){if(i<=0)return 0;if(i>=1)return 1;const r=i*i,n=r*i;return 4*(i<.5?n:3*(i-r)+n-.75)}function j(i,r,n,o){const s=new a(i,r,n,o);return function(i){return s.solve(i)}}const G=j(.25,.1,.25,1);function Z(i,r,n){return Math.min(n,Math.max(r,i))}function $(i,r,n){return(n=Z((n-i)/(r-i),0,1))*n*(3-2*n)}function q(i,r,n){const o=n-r,s=((i-r)%o+o)%o+r;return s===r?n:s}function X(i,r,n){if(!i.length)return n(null,[]);let o=i.length;const s=Array(i.length);let a=null;i.forEach((i,l)=>{r(i,(i,r)=>{i&&(a=i),s[l]=r,0==--o&&n(a,s)})})}function W(i){const r=[];for(const n in i)r.push(i[n]);return r}function H(i,...r){for(const n of r)for(const o in n)i[o]=n[o];return i}let K=1;function Y(){return K++}function J(){return function i(r){return r?(r^16*Math.random()>>r/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,i)}()}function Q(i){return i<=1?1:Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function ee(i){return!!i&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(i)}function et(i,r){i.forEach(i=>{r[i]&&(r[i]=r[i].bind(r))})}function ei(i,r){return -1!==i.indexOf(r,i.length-r.length)}function er(i,r,n){const o={};for(const s in i)o[s]=r.call(n||this,i[s],s,i);return o}function en(i,r,n){const o={};for(const s in i)r.call(n||this,i[s],s,i)&&(o[s]=i[s]);return o}function eo(i){return Array.isArray(i)?i.map(eo):"object"==typeof i&&i?er(i,eo):i}const es={};function ea(i){es[i]||("undefined"!=typeof console&&console.warn(i),es[i]=!0)}function el(i,r,n){return(n.y-i.y)*(r.x-i.x)>(r.y-i.y)*(n.x-i.x)}function ec(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function eh(i){const r={};if(i.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(i,n,o,s)=>{const a=o||s;return r[n]=!a||a.toLowerCase(),""}),r["max-age"]){const n=parseInt(r["max-age"],10);isNaN(n)?delete r["max-age"]:r["max-age"]=n}return r}let eu,ed,ep,ef,em,e_=null;function eg(i){if(null==e_){const r=i.navigator?i.navigator.userAgent:null;e_=!!i.safari||!(!r||!(/\b(iPad|iPhone|iPod)\b/.test(r)||r.match("Safari")&&!r.match("Chrome")))}return e_}function ey(i){try{const r=h[i];return r.setItem("_mapbox_test_",1),r.removeItem("_mapbox_test_"),!0}catch(n){return!1}}const ex={now:()=>void 0!==em?em:h.performance.now(),setNow(i){em=i},restoreNow(){em=void 0},frame(i){const r=h.requestAnimationFrame(i);return{cancel:()=>h.cancelAnimationFrame(r)}},getImageData(i,r=0){const n=h.document.createElement("canvas"),o=n.getContext("2d");if(!o)throw Error("failed to create canvas 2d context");return n.width=i.width,n.height=i.height,o.drawImage(i,0,0,i.width,i.height),o.getImageData(-r,-r,i.width+2*r,i.height+2*r)},resolveURL:i=>(ep||(ep=h.document.createElement("a")),ep.href=i,ep.href),get devicePixelRatio(){return h.devicePixelRatio},get prefersReducedMotion(){return!!h.matchMedia&&(null==ef&&(ef=h.matchMedia("(prefers-reduced-motion: reduce)")),ef.matches)}},ev={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){if(null==eE){const eb=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{eE=null!=s.env.API_URL_REGEX?RegExp(s.env.API_URL_REGEX):eb}catch(ew){eE=eb}}return eE},get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com")?"https://events.mapbox.com/events/v2":null:null},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},eT={supported:!1,testSupport:function(i){!eM&&eI&&(eA?eC(i):eS=i)}};let eE,eS,eI,eM=!1,eA=!1;function eC(i){const r=i.createTexture();i.bindTexture(i.TEXTURE_2D,r);try{if(i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,eI),i.isContextLost())return;eT.supported=!0}catch(n){}i.deleteTexture(r),eM=!0}h.document&&((eI=h.document.createElement("img")).onload=function(){eS&&eC(eS),eS=null,eA=!0},eI.onerror=function(){eM=!0,eS=null},eI.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");const ez="NO_ACCESS_TOKEN";function ek(i){return 0===i.indexOf("mapbox:")}function eP(i){return ev.API_URL_REGEX.test(i)}const eD=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function eL(i){const r=i.match(eD);if(!r)throw Error("Unable to parse URL object");return{protocol:r[1],authority:r[2],path:r[3]||"/",params:r[4]?r[4].split("&"):[]}}function eB(i){const r=i.params.length?`?${i.params.join("&")}`:"";return`${i.protocol}://${i.authority}${i.path}${r}`}function eR(i){if(!i)return null;const r=i.split(".");if(!r||3!==r.length)return null;try{return JSON.parse(decodeURIComponent(h.atob(r[1]).split("").map(i=>"%"+("00"+i.charCodeAt(0).toString(16)).slice(-2)).join("")))}catch(n){return null}}class eF{constructor(i){this.type=i,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null}getStorageKey(i){const r=eR(ev.ACCESS_TOKEN);let n="";return n=r&&r.u?h.btoa(encodeURIComponent(r.u).replace(/%([0-9A-F]{2})/g,(i,r)=>String.fromCharCode(Number("0x"+r)))):ev.ACCESS_TOKEN||"",i?`mapbox.eventData.${i}:${n}`:`mapbox.eventData:${n}`}fetchEventData(){const i=ey("localStorage"),r=this.getStorageKey(),n=this.getStorageKey("uuid");if(i)try{const o=h.localStorage.getItem(r);o&&(this.eventData=JSON.parse(o));const s=h.localStorage.getItem(n);s&&(this.anonId=s)}catch(a){ea("Unable to read from LocalStorage")}}saveEventData(){const i=ey("localStorage"),r=this.getStorageKey(),n=this.getStorageKey("uuid");if(i)try{h.localStorage.setItem(n,this.anonId),Object.keys(this.eventData).length>=1&&h.localStorage.setItem(r,JSON.stringify(this.eventData))}catch(o){ea("Unable to write to LocalStorage")}}processRequests(i){}postEvent(i,r,n,s){if(!ev.EVENTS_URL)return;const a=eL(ev.EVENTS_URL);a.params.push(`access_token=${s||ev.ACCESS_TOKEN||""}`);const l={event:this.type,created:new Date(i).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:o,skuId:"01",userId:this.anonId},c=r?H(l,r):l,h={url:eB(a),headers:{"Content-Type":"text/plain"},body:JSON.stringify([c])};this.pendingRequest=e5(h,i=>{this.pendingRequest=null,n(i),this.saveEventData(),this.processRequests(s)})}queueRequest(i,r){this.queue.push(i),this.processRequests(r)}}const eO=new class extends eF{constructor(i){super("appUserTurnstile"),this._customAccessToken=i}postTurnstileEvent(i,r){ev.EVENTS_URL&&ev.ACCESS_TOKEN&&Array.isArray(i)&&i.some(i=>ek(i)||eP(i))&&this.queueRequest(Date.now(),r)}processRequests(i){if(this.pendingRequest||0===this.queue.length)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const r=eR(ev.ACCESS_TOKEN),n=r?r.u:ev.ACCESS_TOKEN;let o=n!==this.eventData.tokenU;ee(this.anonId)||(this.anonId=J(),o=!0);const s=this.queue.shift();if(this.eventData.lastSuccess){const a=new Date(this.eventData.lastSuccess),l=new Date(s),c=(s-this.eventData.lastSuccess)/864e5;o=o||c>=1||c<-1||a.getDate()!==l.getDate()}else o=!0;if(!o)return this.processRequests();this.postEvent(s,{"enabled.telemetry":!1},i=>{i||(this.eventData.lastSuccess=s,this.eventData.tokenU=n)},i)}},eU=eO.postTurnstileEvent.bind(eO),eV=new class extends eF{constructor(){super("map.load"),this.success={},this.skuToken=""}postMapLoadEvent(i,r,n,o){this.skuToken=r,this.errorCb=o,ev.EVENTS_URL&&(n||ev.ACCESS_TOKEN?this.queueRequest({id:i,timestamp:Date.now()},n):this.errorCb(Error(ez)))}processRequests(i){if(this.pendingRequest||0===this.queue.length)return;const{id:r,timestamp:n}=this.queue.shift();r&&this.success[r]||(this.anonId||this.fetchEventData(),ee(this.anonId)||(this.anonId=J()),this.postEvent(n,{skuToken:this.skuToken},i=>{i?this.errorCb(i):r&&(this.success[r]=!0)},i))}},eN=eV.postMapLoadEvent.bind(eV),ej=new class extends eF{constructor(){super("map.auth"),this.success={},this.skuToken=""}getSession(i,r,n,o){if(!ev.API_URL||!ev.SESSION_PATH)return;const s=eL(ev.API_URL+ev.SESSION_PATH);s.params.push(`sku=${r||""}`),s.params.push(`access_token=${o||ev.ACCESS_TOKEN||""}`);const a={url:eB(s),headers:{"Content-Type":"text/plain"}};this.pendingRequest=e4(a,i=>{this.pendingRequest=null,n(i),this.saveEventData(),this.processRequests(o)})}getSessionAPI(i,r,n,o){this.skuToken=r,this.errorCb=o,ev.SESSION_PATH&&ev.API_URL&&(n||ev.ACCESS_TOKEN?this.queueRequest({id:i,timestamp:Date.now()},n):this.errorCb(Error(ez)))}processRequests(i){if(this.pendingRequest||0===this.queue.length)return;const{id:r,timestamp:n}=this.queue.shift();r&&this.success[r]||this.getSession(n,this.skuToken,i=>{i?this.errorCb(i):r&&(this.success[r]=!0)},i)}},eG=ej.getSessionAPI.bind(ej),eZ=new Set,e$="mapbox-tiles";let eq,eX,eW=500,eH=50;function eK(){h.caches&&!eq&&(eq=h.caches.open(e$))}function eY(i){const r=i.indexOf("?");return r<0?i:i.slice(0,r)}let eJ=1/0;const eQ={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(eQ);class e0 extends Error{constructor(i,r,n){401===r&&eP(n)&&(i+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),super(i),this.status=r,this.url=n}toString(){return`${this.name}: ${this.message} (${this.status}): ${this.url}`}}const e1=ec()?()=>self.worker&&self.worker.referrer:()=>("blob:"===h.location.protocol?h.parent:h).location.href,e2=function(i,r){var n;if(!(/^file:/.test(n=i.url)||/^file:/.test(e1())&&!/^\w+:/.test(n))){if(h.fetch&&h.Request&&h.AbortController&&h.Request.prototype.hasOwnProperty("signal"))return function(i,r){var n;const o=new h.AbortController,s=new h.Request(i.url,{method:i.method||"GET",body:i.body,credentials:i.credentials,headers:i.headers,referrer:e1(),signal:o.signal});let a=!1,l=!1;const c=(n=s.url).indexOf("sku=")>0&&eP(n);"json"===i.type&&s.headers.set("Accept","application/json");const u=(n,o,a)=>{if(l)return;if(n&&"SecurityError"!==n.message&&ea(n),o&&a)return d(o);const u=Date.now();h.fetch(s).then(n=>{if(n.ok){const o=c?n.clone():null;return d(n,o,u)}return r(new e0(n.statusText,n.status,i.url))}).catch(i=>{20!==i.code&&r(Error(i.message))})},d=(n,o,c)=>{("arrayBuffer"===i.type?n.arrayBuffer():"json"===i.type?n.json():n.text()).then(i=>{l||(o&&c&&function(i,r,n){if(eK(),!eq)return;const o={status:r.status,statusText:r.statusText,headers:new h.Headers};r.headers.forEach((i,r)=>o.headers.set(r,i));const s=eh(r.headers.get("Cache-Control")||"");s["no-store"]||(s["max-age"]&&o.headers.set("Expires",new Date(n+1e3*s["max-age"]).toUTCString()),new Date(o.headers.get("Expires")).getTime()-n<42e4||function(i,r){if(void 0===eX)try{new Response(new ReadableStream),eX=!0}catch(n){eX=!1}eX?r(i.body):i.blob().then(r)}(r,r=>{const n=new h.Response(r,o);eK(),eq&&eq.then(r=>r.put(eY(i.url),n)).catch(i=>ea(i.message))}))}(s,o,c),a=!0,r(null,i,n.headers.get("Cache-Control"),n.headers.get("Expires")))}).catch(i=>{l||r(Error(i.message))})};return c?function(i,r){if(eK(),!eq)return r(null);const n=eY(i.url);eq.then(i=>{i.match(n).then(o=>{const s=function(i){if(!i)return!1;const r=new Date(i.headers.get("Expires")||0),n=eh(i.headers.get("Cache-Control")||"");return r>Date.now()&&!n["no-cache"]}(o);i.delete(n),s&&i.put(n,o.clone()),r(null,o,s)}).catch(r)}).catch(r)}(s,u):u(null,null),{cancel(){l=!0,a||o.abort()}}}(i,r);if(ec()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",i,r,void 0,!0)}return function(i,r){const n=new h.XMLHttpRequest;for(const o in n.open(i.method||"GET",i.url,!0),"arrayBuffer"===i.type&&(n.responseType="arraybuffer"),i.headers)n.setRequestHeader(o,i.headers[o]);return"json"===i.type&&(n.responseType="text",n.setRequestHeader("Accept","application/json")),n.withCredentials="include"===i.credentials,n.onerror=()=>{r(Error(n.statusText))},n.onload=()=>{if((n.status>=200&&n.status<300||0===n.status)&&null!==n.response){let o=n.response;if("json"===i.type)try{o=JSON.parse(n.response)}catch(s){return r(s)}r(null,o,n.getResponseHeader("Cache-Control"),n.getResponseHeader("Expires"))}else r(new e0(n.statusText,n.status,i.url))},n.send(i.body),{cancel:()=>n.abort()}}(i,r)},e3=function(i,r){return e2(H(i,{type:"arrayBuffer"}),r)},e5=function(i,r){return e2(H(i,{method:"POST"}),r)},e4=function(i,r){return e2(H(i,{method:"GET"}),r)},e6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";eu=[],ed=0;const e8=function(i,r){if(eT.supported&&(i.headers||(i.headers={}),i.headers.accept="image/webp,*/*"),ed>=ev.MAX_PARALLEL_IMAGE_REQUESTS){const n={requestParameters:i,callback:r,cancelled:!1,cancel(){this.cancelled=!0}};return eu.push(n),n}ed++;let o=!1;const s=()=>{if(!o)for(o=!0,ed--;eu.length&&ed{s(),i?r(i):n&&(h.createImageBitmap?function(i,r){const n=new h.Blob([new Uint8Array(i)],{type:"image/png"});h.createImageBitmap(n).then(i=>{r(null,i)}).catch(i=>{r(Error(`Could not load image because of ${i.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}(n,(i,n)=>r(i,n,o,a)):function(i,r){const n=new h.Image,o=h.URL;n.onload=()=>{r(null,n),o.revokeObjectURL(n.src),n.onload=null,h.requestAnimationFrame(()=>{n.src=e6})},n.onerror=()=>r(Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const s=new h.Blob([new Uint8Array(i)],{type:"image/png"});n.src=i.byteLength?o.createObjectURL(s):e6}(n,(i,n)=>r(i,n,o,a)))});return{cancel(){a.cancel(),s()}}};function e9(i,r,n){n[i]&&-1!==n[i].indexOf(r)||(n[i]=n[i]||[],n[i].push(r))}function e7(i,r,n){if(n&&n[i]){const o=n[i].indexOf(r);-1!==o&&n[i].splice(o,1)}}class te{constructor(i,r={}){H(this,r),this.type=i}}class tt extends te{constructor(i,r={}){super("error",H({error:i},r))}}class ti{on(i,r){return this._listeners=this._listeners||{},e9(i,r,this._listeners),this}off(i,r){return e7(i,r,this._listeners),e7(i,r,this._oneTimeListeners),this}once(i,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},e9(i,r,this._oneTimeListeners),this):new Promise(r=>this.once(i,r))}fire(i,r){"string"==typeof i&&(i=new te(i,r||{}));const n=i.type;if(this.listens(n)){i.target=this;const o=this._listeners&&this._listeners[n]?this._listeners[n].slice():[];for(const s of o)s.call(this,i);const a=this._oneTimeListeners&&this._oneTimeListeners[n]?this._oneTimeListeners[n].slice():[];for(const l of a)e7(n,l,this._oneTimeListeners),l.call(this,i);const c=this._eventedParent;c&&(H(i,"function"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),c.fire(i))}else i instanceof tt&&console.error(i.error);return this}listens(i){return!!(this._listeners&&this._listeners[i]&&this._listeners[i].length>0||this._oneTimeListeners&&this._oneTimeListeners[i]&&this._oneTimeListeners[i].length>0||this._eventedParent&&this._eventedParent.listens(i))}setEventedParent(i,r){return this._eventedParent=i,this._eventedParentData=r,this}}var tr=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"type":"array","value":"layer"}},"sources":{"*":{"type":"source"}},"source":["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"attribution":{"type":"string"},"promoteId":{"type":"promoteId"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"attribution":{"type":"string"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"attribution":{"type":"string"},"encoding":{"type":"enum","values":{"terrarium":{},"mapbox":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0},"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"metadata":{"type":"*"},"source":{"type":"string"},"source-layer":{"type":"string"},"minzoom":{"type":"number","minimum":0,"maximum":24},"maxzoom":{"type":"number","minimum":0,"maximum":24},"filter":{"type":"filter"},"layout":{"type":"layout"},"paint":{"type":"paint"}},"layout":["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_circle":{"circle-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{},"line":{},"line-center":{}},"default":"point","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{"type":"enum","values":{"none":{},"width":{},"height":{},"both":{}},"default":"none","requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["text-field",{"!":"text-variable-anchor"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","requires":["text-field",{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"filter":{"type":"array","value":"*"},"filter_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":0.1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_line":{"line-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"line-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","minimum":0,"transition":true,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"cross-faded"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}},"property-type":{"data-driven":{"type":"property-type"},"cross-faded":{"type":"property-type"},"cross-faded-data-driven":{"type":"property-type"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}');class tn{constructor(i,r,n,o){this.message=(i?`${i}: `:"")+n,o&&(this.identifier=o),null!=r&&r.__line__&&(this.line=r.__line__)}}function to(i){const r=i.value;return r?[new tn(i.key,r,"constants have been deprecated as of v8")]:[]}function ts(i,...r){for(const n of r)for(const o in n)i[o]=n[o];return i}function ta(i){return i instanceof Number||i instanceof String||i instanceof Boolean?i.valueOf():i}function tl(i){if(Array.isArray(i))return i.map(tl);if(i instanceof Object&&!(i instanceof Number||i instanceof String||i instanceof Boolean)){const r={};for(const n in i)r[n]=tl(i[n]);return r}return ta(i)}class tc extends Error{constructor(i,r){super(r),this.message=r,this.key=i}}class th{constructor(i,r=[]){for(const[n,o]of(this.parent=i,this.bindings={},r))this.bindings[n]=o}concat(i){return new th(this,i)}get(i){if(this.bindings[i])return this.bindings[i];if(this.parent)return this.parent.get(i);throw Error(`${i} not found in scope.`)}has(i){return!!this.bindings[i]||!!this.parent&&this.parent.has(i)}}const tu={kind:"null"},td={kind:"number"},tp={kind:"string"},tf={kind:"boolean"},tm={kind:"color"},t_={kind:"object"},tg={kind:"value"},ty={kind:"collator"},tx={kind:"formatted"},tv={kind:"resolvedImage"};function tb(i,r){return{kind:"array",itemType:i,N:r}}function tw(i){if("array"===i.kind){const r=tw(i.itemType);return"number"==typeof i.N?`array<${r}, ${i.N}>`:"value"===i.itemType.kind?"array":`array<${r}>`}return i.kind}const tT=[tu,td,tp,tf,tm,tx,t_,tb(tg),tv];function tE(i,r){if("error"===r.kind)return null;if("array"===i.kind){if("array"===r.kind&&(0===r.N&&"value"===r.itemType.kind||!tE(i.itemType,r.itemType))&&("number"!=typeof i.N||i.N===r.N))return null}else{if(i.kind===r.kind)return null;if("value"===i.kind){for(const n of tT)if(!tE(n,r))return null}}return`Expected ${tw(i)} but found ${tw(r)} instead.`}function tS(i,r){return r.some(r=>r.kind===i.kind)}function tI(i,r){return r.some(r=>"null"===r?null===i:"array"===r?Array.isArray(i):"object"===r?i&&!Array.isArray(i)&&"object"==typeof i:r===typeof i)}function tM(i){var r={exports:{}};return i(r,r.exports),r.exports}var tA=tM(function(i,r){var n={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function o(i){return(i=Math.round(i))<0?0:i>255?255:i}function s(i){return o("%"===i[i.length-1]?parseFloat(i)/100*255:parseInt(i))}function a(i){var r;return(r="%"===i[i.length-1]?parseFloat(i)/100:parseFloat(i))<0?0:r>1?1:r}function l(i,r,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?i+(r-i)*n*6:2*n<1?r:3*n<2?i+(r-i)*(2/3-n)*6:i}try{r.parseCSSColor=function(i){var r,c=i.replace(/ /g,"").toLowerCase();if(c in n)return n[c].slice();if("#"===c[0])return 4===c.length?(r=parseInt(c.substr(1),16))>=0&&r<=4095?[(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,1]:null:7===c.length&&(r=parseInt(c.substr(1),16))>=0&&r<=16777215?[(16711680&r)>>16,(65280&r)>>8,255&r,1]:null;var h=c.indexOf("("),u=c.indexOf(")");if(-1!==h&&u+1===c.length){var d=c.substr(0,h),p=c.substr(h+1,u-(h+1)).split(","),f=1;switch(d){case"rgba":if(4!==p.length)break;f=a(p.pop());case"rgb":return 3!==p.length?null:[s(p[0]),s(p[1]),s(p[2]),f];case"hsla":if(4!==p.length)break;f=a(p.pop());case"hsl":if(3!==p.length)break;var m=(parseFloat(p[0])%360+360)%360/360,_=a(p[1]),g=a(p[2]),y=g<=.5?g*(_+1):g+_-g*_,x=2*g-y;return[o(255*l(x,y,m+1/3)),o(255*l(x,y,m)),o(255*l(x,y,m-1/3)),f]}}return null}}catch(c){}});class tC{constructor(i,r,n,o=1){this.r=i,this.g=r,this.b=n,this.a=o}static parse(i){if(!i)return;if(i instanceof tC)return i;if("string"!=typeof i)return;const r=tA.parseCSSColor(i);return r?new tC(r[0]/255*r[3],r[1]/255*r[3],r[2]/255*r[3],r[3]):void 0}toString(){const[i,r,n,o]=this.toArray();return`rgba(${Math.round(i)},${Math.round(r)},${Math.round(n)},${o})`}toArray(){const{r:i,g:r,b:n,a:o}=this;return 0===o?[0,0,0,0]:[255*i/o,255*r/o,255*n/o,o]}}tC.black=new tC(0,0,0,1),tC.white=new tC(1,1,1,1),tC.transparent=new tC(0,0,0,0),tC.red=new tC(1,0,0,1),tC.blue=new tC(0,0,1,1);class tz{constructor(i,r,n){this.sensitivity=i?r?"variant":"case":r?"accent":"base",this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(i,r){return this.collator.compare(i,r)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class tk{constructor(i,r,n,o,s){this.text=i.normalize?i.normalize():i,this.image=r,this.scale=n,this.fontStack=o,this.textColor=s}}class tP{constructor(i){this.sections=i}static fromString(i){return new tP([new tk(i,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(i=>0!==i.text.length||i.image&&0!==i.image.name.length)}static factory(i){return i instanceof tP?i:tP.fromString(i)}toString(){return 0===this.sections.length?"":this.sections.map(i=>i.text).join("")}serialize(){const i=["format"];for(const r of this.sections){if(r.image){i.push(["image",r.image.name]);continue}i.push(r.text);const n={};r.fontStack&&(n["text-font"]=["literal",r.fontStack.split(",")]),r.scale&&(n["font-scale"]=r.scale),r.textColor&&(n["text-color"]=["rgba"].concat(r.textColor.toArray())),i.push(n)}return i}}class tD{constructor(i){this.name=i.name,this.available=i.available}toString(){return this.name}static fromString(i){return i?new tD({name:i,available:!1}):null}serialize(){return["image",this.name]}}function tL(i,r,n,o){return"number"==typeof i&&i>=0&&i<=255&&"number"==typeof r&&r>=0&&r<=255&&"number"==typeof n&&n>=0&&n<=255?void 0===o||"number"==typeof o&&o>=0&&o<=1?null:`Invalid rgba value [${[i,r,n,o].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof o?[i,r,n,o]:[i,r,n]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function tB(i){if(null===i||"string"==typeof i||"boolean"==typeof i||"number"==typeof i||i instanceof tC||i instanceof tz||i instanceof tP||i instanceof tD)return!0;if(Array.isArray(i)){for(const r of i)if(!tB(r))return!1;return!0}if("object"==typeof i){for(const n in i)if(!tB(i[n]))return!1;return!0}return!1}function tR(i){if(null===i)return tu;if("string"==typeof i)return tp;if("boolean"==typeof i)return tf;if("number"==typeof i)return td;if(i instanceof tC)return tm;if(i instanceof tz)return ty;if(i instanceof tP)return tx;if(i instanceof tD)return tv;if(Array.isArray(i)){let r;const n=i.length;for(const o of i){const s=tR(o);if(r){if(r===s)continue;r=tg;break}r=s}return tb(r||tg,n)}return t_}function tF(i){const r=typeof i;return null===i?"":"string"===r||"number"===r||"boolean"===r?String(i):i instanceof tC||i instanceof tP||i instanceof tD?i.toString():JSON.stringify(i)}class tO{constructor(i,r){this.type=i,this.value=r}static parse(i,r){if(2!==i.length)return r.error(`'literal' expression requires exactly one argument, but found ${i.length-1} instead.`);if(!tB(i[1]))return r.error("invalid value");const n=i[1];let o=tR(n);const s=r.expectedType;return"array"===o.kind&&0===o.N&&s&&"array"===s.kind&&("number"!=typeof s.N||0===s.N)&&(o=s),new tO(o,n)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof tC?["rgba"].concat(this.value.toArray()):this.value instanceof tP?this.value.serialize():this.value}}class tU{constructor(i){this.name="ExpressionEvaluationError",this.message=i}toJSON(){return this.message}}const tV={string:tp,number:td,boolean:tf,object:t_};class tN{constructor(i,r){this.type=i,this.args=r}static parse(i,r){if(i.length<2)return r.error("Expected at least one argument.");let n,o=1;const s=i[0];if("array"===s){let a,l;if(i.length>2){const c=i[1];if("string"!=typeof c||!(c in tV)||"object"===c)return r.error('The item type argument of "array" must be one of string, number, boolean',1);a=tV[c],o++}else a=tg;if(i.length>3){if(null!==i[2]&&("number"!=typeof i[2]||i[2]<0||i[2]!==Math.floor(i[2])))return r.error('The length argument to "array" must be a positive integer literal',2);l=i[2],o++}n=tb(a,l)}else n=tV[s];const h=[];for(;oi.outputDefined())}serialize(){const i=this.type,r=[i.kind];if("array"===i.kind){const n=i.itemType;if("string"===n.kind||"number"===n.kind||"boolean"===n.kind){r.push(n.kind);const o=i.N;("number"==typeof o||this.args.length>1)&&r.push(o)}}return r.concat(this.args.map(i=>i.serialize()))}}class tj{constructor(i){this.type=tx,this.sections=i}static parse(i,r){if(i.length<2)return r.error("Expected at least one argument.");const n=i[1];if(!Array.isArray(n)&&"object"==typeof n)return r.error("First argument must be an image or text section.");const o=[];let s=!1;for(let a=1;a<=i.length-1;++a){const l=i[a];if(s&&"object"==typeof l&&!Array.isArray(l)){s=!1;let c=null;if(l["font-scale"]&&!(c=r.parse(l["font-scale"],1,td)))return null;let h=null;if(l["text-font"]&&!(h=r.parse(l["text-font"],1,tb(tp))))return null;let u=null;if(l["text-color"]&&!(u=r.parse(l["text-color"],1,tm)))return null;const d=o[o.length-1];d.scale=c,d.font=h,d.textColor=u}else{const p=r.parse(i[a],1,tg);if(!p)return null;const f=p.type.kind;if("string"!==f&&"value"!==f&&"null"!==f&&"resolvedImage"!==f)return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");s=!0,o.push({content:p,scale:null,font:null,textColor:null})}}return new tj(o)}evaluate(i){return new tP(this.sections.map(r=>{const n=r.content.evaluate(i);return tR(n)===tv?new tk("",n,null,null,null):new tk(tF(n),null,r.scale?r.scale.evaluate(i):null,r.font?r.font.evaluate(i).join(","):null,r.textColor?r.textColor.evaluate(i):null)}))}eachChild(i){for(const r of this.sections)i(r.content),r.scale&&i(r.scale),r.font&&i(r.font),r.textColor&&i(r.textColor)}outputDefined(){return!1}serialize(){const i=["format"];for(const r of this.sections){i.push(r.content.serialize());const n={};r.scale&&(n["font-scale"]=r.scale.serialize()),r.font&&(n["text-font"]=r.font.serialize()),r.textColor&&(n["text-color"]=r.textColor.serialize()),i.push(n)}return i}}class tG{constructor(i){this.type=tv,this.input=i}static parse(i,r){if(2!==i.length)return r.error("Expected two arguments.");const n=r.parse(i[1],1,tp);return n?new tG(n):r.error("No image name provided.")}evaluate(i){const r=this.input.evaluate(i),n=tD.fromString(r);return n&&i.availableImages&&(n.available=i.availableImages.indexOf(r)>-1),n}eachChild(i){i(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const tZ={"to-boolean":tf,"to-color":tm,"to-number":td,"to-string":tp};class t${constructor(i,r){this.type=i,this.args=r}static parse(i,r){if(i.length<2)return r.error("Expected at least one argument.");const n=i[0];if(("to-boolean"===n||"to-string"===n)&&2!==i.length)return r.error("Expected one argument.");const o=tZ[n],s=[];for(let a=1;a4?`Invalid rbga value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:tL(r[0],r[1],r[2],r[3])))return new tC(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new tU(n||`Could not parse color from value '${"string"==typeof r?r:String(JSON.stringify(r))}'`)}if("number"===this.type.kind){let a=null;for(const l of this.args){if(null===(a=l.evaluate(i)))return 0;const c=Number(a);if(!isNaN(c))return c}throw new tU(`Could not convert ${JSON.stringify(a)} to number.`)}return"formatted"===this.type.kind?tP.fromString(tF(this.args[0].evaluate(i))):"resolvedImage"===this.type.kind?tD.fromString(tF(this.args[0].evaluate(i))):tF(this.args[0].evaluate(i))}eachChild(i){this.args.forEach(i)}outputDefined(){return this.args.every(i=>i.outputDefined())}serialize(){if("formatted"===this.type.kind)return new tj([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new tG(this.args[0]).serialize();const i=[`to-${this.type.kind}`];return this.eachChild(r=>{i.push(r.serialize())}),i}}const tq=["Unknown","Point","LineString","Polygon"];class tX{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?tq[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const i=this.featureDistanceData.center,r=this.featureDistanceData.scale,{x:n,y:o}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(n*r-i[0])+this.featureDistanceData.bearing[1]*(o*r-i[1])}return 0}parseColor(i){let r=this._parseColorCache[i];return r||(r=this._parseColorCache[i]=tC.parse(i)),r}}class tW{constructor(i,r,n,o){this.name=i,this.type=r,this._evaluate=n,this.args=o}evaluate(i){return this._evaluate(i,this.args)}eachChild(i){this.args.forEach(i)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(i=>i.serialize()))}static parse(i,r){const n=i[0],o=tW.definitions[n];if(!o)return r.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0);const s=Array.isArray(o)?o[0]:o.type,a=Array.isArray(o)?[[o[1],o[2]]]:o.overloads,l=a.filter(([r])=>!Array.isArray(r)||r.length===i.length-1);let c=null;for(const[h,u]of l){c=new it(r.registry,r.path,null,r.scope);const d=[];let p=!1;for(let f=1;fArray.isArray(i)?`(${i.map(tw).join(", ")})`:`(${tw(i.type)}...)`).join(" | "),w=[];for(let T=1;T=r[2]||i[1]<=r[1]||i[3]>=r[3])}function tJ(i,r){var n,o;let s=!1;for(let a=0,l=r.length;ai[1]!=(o=c[h+1])[1]>i[1]&&i[0]<(o[0]-n[0])*(i[1]-n[1])/(o[1]-n[1])+n[0]&&(s=!s)}}return s}function tQ(i,r,n,o){const s=o[0]-n[0],a=o[1]-n[1],l=(i[0]-n[0])*a-s*(i[1]-n[1]),c=(r[0]-n[0])*a-s*(r[1]-n[1]);return l>0&&c<0||l<0&&c>0}function t0(i,r){for(let n=0;nn[2]){const s=.5*o;let a=i[0]-n[0]>s?-o:n[0]-i[0]>s?o:0;0===a&&(a=i[0]-n[2]>s?-o:n[2]-i[0]>s?o:0),i[0]+=a}tK(r,i)}function t5(i,r,n,o){const s=8192*Math.pow(2,o.z),a=[8192*o.x,8192*o.y],l=[];for(const c of i)for(const h of c){const u=[h.x+a[0],h.y+a[1]];t3(u,r,n,s),l.push(u)}return l}function t4(i,r,n,o){var s;const a=8192*Math.pow(2,o.z),l=[8192*o.x,8192*o.y],c=[];for(const h of i){const u=[];for(const d of h){const p=[d.x+l[0],d.y+l[1]];tK(r,p),u.push(p)}c.push(u)}if(r[2]-r[0]<=a/2)for(const f of((s=r)[0]=s[1]=1/0,s[2]=s[3]=-1/0,c))for(const m of f)t3(m,r,n,a);return c}class t6{constructor(i,r){this.type=tf,this.geojson=i,this.geometries=r}static parse(i,r){if(2!==i.length)return r.error(`'within' expression requires exactly one argument, but found ${i.length-1} instead.`);if(tB(i[1])){const n=i[1];if("FeatureCollection"===n.type)for(let o=0;o{r&&!t8(i)&&(r=!1)}),r}function t9(i){if(i instanceof tW&&"feature-state"===i.name)return!1;let r=!0;return i.eachChild(i=>{r&&!t9(i)&&(r=!1)}),r}function t7(i,r){if(i instanceof tW&&r.indexOf(i.name)>=0)return!1;let n=!0;return i.eachChild(i=>{n&&!t7(i,r)&&(n=!1)}),n}class ie{constructor(i,r){this.type=r.type,this.name=i,this.boundExpression=r}static parse(i,r){if(2!==i.length||"string"!=typeof i[1])return r.error("'var' expression requires exactly one string literal argument.");const n=i[1];return r.scope.has(n)?new ie(n,r.scope.get(n)):r.error(`Unknown variable "${n}". Make sure "${n}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(i){return this.boundExpression.evaluate(i)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}class it{constructor(i,r=[],n,o=new th,s=[]){this.registry=i,this.path=r,this.key=r.map(i=>`[${i}]`).join(""),this.scope=o,this.errors=s,this.expectedType=n}parse(i,r,n,o,s={}){return r?this.concat(r,n,o)._parse(i,s):this._parse(i,s)}_parse(i,r){function n(i,r,n){return"assert"===n?new tN(r,[i]):"coerce"===n?new t$(r,[i]):i}if(null!==i&&"string"!=typeof i&&"boolean"!=typeof i&&"number"!=typeof i||(i=["literal",i]),Array.isArray(i)){if(0===i.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const o=i[0];if("string"!=typeof o)return this.error(`Expression name must be a string, but found ${typeof o} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const s=this.registry[o];if(s){let a=s.parse(i,this);if(!a)return null;if(this.expectedType){const l=this.expectedType,c=a.type;if("string"!==l.kind&&"number"!==l.kind&&"boolean"!==l.kind&&"object"!==l.kind&&"array"!==l.kind||"value"!==c.kind){if("color"!==l.kind&&"formatted"!==l.kind&&"resolvedImage"!==l.kind||"value"!==c.kind&&"string"!==c.kind){if(this.checkSubtype(l,c))return null}else a=n(a,l,r.typeAnnotation||"coerce")}else a=n(a,l,r.typeAnnotation||"assert")}if(!(a instanceof tO)&&"resolvedImage"!==a.type.kind&&function i(r){if(r instanceof ie)return i(r.boundExpression);if(r instanceof tW&&"error"===r.name||r instanceof tH||r instanceof t6)return!1;const n=r instanceof t$||r instanceof tN;let o=!0;return r.eachChild(r=>{o=n?o&&i(r):o&&r instanceof tO}),!!o&&t8(r)&&t7(r,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"])}(a)){const h=new tX;try{a=new tO(a.type,a.evaluate(h))}catch(u){return this.error(u.message),null}}return a}return this.error(`Unknown expression "${o}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===i?"'undefined' value invalid. Use null instead.":"object"==typeof i?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof i} instead.`)}concat(i,r,n){const o="number"==typeof i?this.path.concat(i):this.path,s=n?this.scope.concat(n):this.scope;return new it(this.registry,o,r||null,s,this.errors)}error(i,...r){const n=`${this.key}${r.map(i=>`[${i}]`).join("")}`;this.errors.push(new tc(n,i))}checkSubtype(i,r){const n=tE(i,r);return n&&this.error(n),n}}function ii(i,r){const n=i.length-1;let o,s,a=0,l=n,c=0;for(;a<=l;)if(o=i[c=Math.floor((a+l)/2)],s=i[c+1],o<=r){if(c===n||rr))throw new tU("Input is not a number.");l=c-1}return 0}class ir{constructor(i,r,n){for(const[o,s]of(this.type=i,this.input=r,this.labels=[],this.outputs=[],n))this.labels.push(o),this.outputs.push(s)}static parse(i,r){if(i.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${i.length-1}.`);if((i.length-1)%2!=0)return r.error("Expected an even number of arguments.");const n=r.parse(i[1],1,td);if(!n)return null;const o=[];let s=null;r.expectedType&&"value"!==r.expectedType.kind&&(s=r.expectedType);for(let a=1;a=l)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',h);const d=r.parse(c,u,s);if(!d)return null;s=s||d.type,o.push([l,d])}return new ir(s,n,o)}evaluate(i){const r=this.labels,n=this.outputs;if(1===r.length)return n[0].evaluate(i);const o=this.input.evaluate(i);if(o<=r[0])return n[0].evaluate(i);const s=r.length;return o>=r[s-1]?n[s-1].evaluate(i):n[ii(r,o)].evaluate(i)}eachChild(i){for(const r of(i(this.input),this.outputs))i(r)}outputDefined(){return this.outputs.every(i=>i.outputDefined())}serialize(){const i=["step",this.input.serialize()];for(let r=0;r0&&i.push(this.labels[r]),i.push(this.outputs[r].serialize());return i}}function io(i,r,n){return i*(1-n)+r*n}var is=Object.freeze({__proto__:null,number:io,color:function(i,r,n){return new tC(io(i.r,r.r,n),io(i.g,r.g,n),io(i.b,r.b,n),io(i.a,r.a,n))},array:function(i,r,n){return i.map((i,o)=>io(i,r[o],n))}});const ia=4/29,il=6/29,ic=3*il*il,ih=Math.PI/180,iu=180/Math.PI;function id(i){return i>.008856451679035631?Math.pow(i,1/3):i/ic+ia}function ip(i){return i>il?i*i*i:ic*(i-ia)}function im(i){return 255*(i<=.0031308?12.92*i:1.055*Math.pow(i,1/2.4)-.055)}function i_(i){return(i/=255)<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function ig(i){const r=i_(i.r),n=i_(i.g),o=i_(i.b),s=id((.4124564*r+.3575761*n+.1804375*o)/.95047),a=id((.2126729*r+.7151522*n+.072175*o)/1);return{l:116*a-16,a:500*(s-a),b:200*(a-id((.0193339*r+.119192*n+.9503041*o)/1.08883)),alpha:i.a}}function iy(i){let r=(i.l+16)/116,n=isNaN(i.a)?r:r+i.a/500,o=isNaN(i.b)?r:r-i.b/200;return r=1*ip(r),n=.95047*ip(n),o=1.08883*ip(o),new tC(im(3.2404542*n-1.5371385*r-.4985314*o),im(-.969266*n+1.8760108*r+.041556*o),im(.0556434*n-.2040259*r+1.0572252*o),i.alpha)}const ix={forward:ig,reverse:iy,interpolate:function(i,r,n){return{l:io(i.l,r.l,n),a:io(i.a,r.a,n),b:io(i.b,r.b,n),alpha:io(i.alpha,r.alpha,n)}}},iv={forward:function(i){const{l:r,a:n,b:o}=ig(i),s=Math.atan2(o,n)*iu;return{h:s<0?s+360:s,c:Math.sqrt(n*n+o*o),l:r,alpha:i.a}},reverse:function(i){const r=i.h*ih,n=i.c;return iy({l:i.l,a:Math.cos(r)*n,b:Math.sin(r)*n,alpha:i.alpha})},interpolate:function(i,r,n){return{h:function(i,r,n){const o=r-i;return i+n*(o>180||o<-180?o-360*Math.round(o/360):o)}(i.h,r.h,n),c:io(i.c,r.c,n),l:io(i.l,r.l,n),alpha:io(i.alpha,r.alpha,n)}}};var ib=Object.freeze({__proto__:null,lab:ix,hcl:iv});class iw{constructor(i,r,n,o,s){for(const[a,l]of(this.type=i,this.operator=r,this.interpolation=n,this.input=o,this.labels=[],this.outputs=[],s))this.labels.push(a),this.outputs.push(l)}static interpolationFactor(i,r,n,o){let s=0;if("exponential"===i.name)s=iT(r,i.base,n,o);else if("linear"===i.name)s=iT(r,1,n,o);else if("cubic-bezier"===i.name){const l=i.controlPoints;s=new a(l[0],l[1],l[2],l[3]).solve(iT(r,1,n,o))}return s}static parse(i,r){let[n,o,s,...a]=i;if(!Array.isArray(o)||0===o.length)return r.error("Expected an interpolation type expression.",1);if("linear"===o[0])o={name:"linear"};else if("exponential"===o[0]){const l=o[1];if("number"!=typeof l)return r.error("Exponential interpolation requires a numeric base.",1,1);o={name:"exponential",base:l}}else{if("cubic-bezier"!==o[0])return r.error(`Unknown interpolation type ${String(o[0])}`,1,0);{const c=o.slice(1);if(4!==c.length||c.some(i=>"number"!=typeof i||i<0||i>1))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);o={name:"cubic-bezier",controlPoints:c}}}if(i.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${i.length-1}.`);if((i.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(!(s=r.parse(s,2,td)))return null;const h=[];let u=null;"interpolate-hcl"===n||"interpolate-lab"===n?u=tm:r.expectedType&&"value"!==r.expectedType.kind&&(u=r.expectedType);for(let d=0;d=p)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',m);const g=r.parse(f,_,u);if(!g)return null;u=u||g.type,h.push([p,g])}return"number"===u.kind||"color"===u.kind||"array"===u.kind&&"number"===u.itemType.kind&&"number"==typeof u.N?new iw(u,n,o,s,h):r.error(`Type ${tw(u)} is not interpolatable.`)}evaluate(i){const r=this.labels,n=this.outputs;if(1===r.length)return n[0].evaluate(i);const o=this.input.evaluate(i);if(o<=r[0])return n[0].evaluate(i);const s=r.length;if(o>=r[s-1])return n[s-1].evaluate(i);const a=ii(r,o),l=iw.interpolationFactor(this.interpolation,o,r[a],r[a+1]),c=n[a].evaluate(i),h=n[a+1].evaluate(i);return"interpolate"===this.operator?is[this.type.kind.toLowerCase()](c,h,l):"interpolate-hcl"===this.operator?iv.reverse(iv.interpolate(iv.forward(c),iv.forward(h),l)):ix.reverse(ix.interpolate(ix.forward(c),ix.forward(h),l))}eachChild(i){for(const r of(i(this.input),this.outputs))i(r)}outputDefined(){return this.outputs.every(i=>i.outputDefined())}serialize(){let i;i="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const r=[this.operator,i,this.input.serialize()];for(let n=0;ntE(o,i.type));return new iE(c?tg:n,s)}evaluate(i){let r,n=null,o=0;for(const s of this.args){if(o++,(n=s.evaluate(i))&&n instanceof tD&&!n.available&&(r||(r=n),n=null,o===this.args.length))return r;if(null!==n)break}return n}eachChild(i){this.args.forEach(i)}outputDefined(){return this.args.every(i=>i.outputDefined())}serialize(){const i=["coalesce"];return this.eachChild(r=>{i.push(r.serialize())}),i}}class iS{constructor(i,r){this.type=r.type,this.bindings=[].concat(i),this.result=r}evaluate(i){return this.result.evaluate(i)}eachChild(i){for(const r of this.bindings)i(r[1]);i(this.result)}static parse(i,r){if(i.length<4)return r.error(`Expected at least 3 arguments, but found ${i.length-1} instead.`);const n=[];for(let o=1;o=n.length)throw new tU(`Array index out of bounds: ${r} > ${n.length-1}.`);if(r!==Math.floor(r))throw new tU(`Array index must be an integer, but found ${r} instead.`);return n[r]}eachChild(i){i(this.index),i(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}class iM{constructor(i,r){this.type=tf,this.needle=i,this.haystack=r}static parse(i,r){if(3!==i.length)return r.error(`Expected 2 arguments, but found ${i.length-1} instead.`);const n=r.parse(i[1],1,tg),o=r.parse(i[2],2,tg);return n&&o?tS(n.type,[tf,tp,td,tu,tg])?new iM(n,o):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${tw(n.type)} instead`):null}evaluate(i){const r=this.needle.evaluate(i),n=this.haystack.evaluate(i);if(!n)return!1;if(!tI(r,["boolean","string","number","null"]))throw new tU(`Expected first argument to be of type boolean, string, number or null, but found ${tw(tR(r))} instead.`);if(!tI(n,["string","array"]))throw new tU(`Expected second argument to be of type array or string, but found ${tw(tR(n))} instead.`);return n.indexOf(r)>=0}eachChild(i){i(this.needle),i(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}class iA{constructor(i,r,n){this.type=td,this.needle=i,this.haystack=r,this.fromIndex=n}static parse(i,r){if(i.length<=2||i.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${i.length-1} instead.`);const n=r.parse(i[1],1,tg),o=r.parse(i[2],2,tg);if(!n||!o)return null;if(!tS(n.type,[tf,tp,td,tu,tg]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${tw(n.type)} instead`);if(4===i.length){const s=r.parse(i[3],3,td);return s?new iA(n,o,s):null}return new iA(n,o)}evaluate(i){const r=this.needle.evaluate(i),n=this.haystack.evaluate(i);if(!tI(r,["boolean","string","number","null"]))throw new tU(`Expected first argument to be of type boolean, string, number or null, but found ${tw(tR(r))} instead.`);if(!tI(n,["string","array"]))throw new tU(`Expected second argument to be of type array or string, but found ${tw(tR(n))} instead.`);if(this.fromIndex){const o=this.fromIndex.evaluate(i);return n.indexOf(r,o)}return n.indexOf(r)}eachChild(i){i(this.needle),i(this.haystack),this.fromIndex&&i(this.fromIndex)}outputDefined(){return!1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const i=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),i]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}class iC{constructor(i,r,n,o,s,a){this.inputType=i,this.type=r,this.input=n,this.cases=o,this.outputs=s,this.otherwise=a}static parse(i,r){let n,o;if(i.length<5)return r.error(`Expected at least 4 arguments, but found only ${i.length-1}.`);if(i.length%2!=1)return r.error("Expected an even number of arguments.");r.expectedType&&"value"!==r.expectedType.kind&&(o=r.expectedType);const s={},a=[];for(let l=2;lNumber.MAX_SAFE_INTEGER)return u.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof d&&Math.floor(d)!==d)return u.error("Numeric branch labels must be integer values.");if(n){if(u.checkSubtype(n,tR(d)))return null}else n=tR(d);if(void 0!==s[String(d)])return u.error("Branch labels must be unique.");s[String(d)]=a.length}const p=r.parse(h,l,o);if(!p)return null;o=o||p.type,a.push(p)}const f=r.parse(i[1],1,tg);if(!f)return null;const m=r.parse(i[i.length-1],i.length-1,o);return m?"value"!==f.type.kind&&r.concat(1).checkSubtype(n,f.type)?null:new iC(n,o,f,s,a,m):null}evaluate(i){const r=this.input.evaluate(i);return(tR(r)===this.inputType&&this.outputs[this.cases[r]]||this.otherwise).evaluate(i)}eachChild(i){i(this.input),this.outputs.forEach(i),i(this.otherwise)}outputDefined(){return this.outputs.every(i=>i.outputDefined())&&this.otherwise.outputDefined()}serialize(){const i=["match",this.input.serialize()],r=Object.keys(this.cases).sort(),n=[],o={};for(const s of r){const a=o[this.cases[s]];void 0===a?(o[this.cases[s]]=n.length,n.push([this.cases[s],[s]])):n[a][1].push(s)}const l=i=>"number"===this.inputType.kind?Number(i):i;for(const[c,h]of n)i.push(1===h.length?l(h[0]):h.map(l)),i.push(this.outputs[c].serialize());return i.push(this.otherwise.serialize()),i}}class iz{constructor(i,r,n){this.type=i,this.branches=r,this.otherwise=n}static parse(i,r){let n;if(i.length<4)return r.error(`Expected at least 3 arguments, but found only ${i.length-1}.`);if(i.length%2!=0)return r.error("Expected an odd number of arguments.");r.expectedType&&"value"!==r.expectedType.kind&&(n=r.expectedType);const o=[];for(let s=1;sr.outputDefined())&&this.otherwise.outputDefined()}serialize(){const i=["case"];return this.eachChild(r=>{i.push(r.serialize())}),i}}class ik{constructor(i,r,n,o){this.type=i,this.input=r,this.beginIndex=n,this.endIndex=o}static parse(i,r){if(i.length<=2||i.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${i.length-1} instead.`);const n=r.parse(i[1],1,tg),o=r.parse(i[2],2,td);if(!n||!o)return null;if(!tS(n.type,[tb(tg),tp,tg]))return r.error(`Expected first argument to be of type array or string, but found ${tw(n.type)} instead`);if(4===i.length){const s=r.parse(i[3],3,td);return s?new ik(n.type,n,o,s):null}return new ik(n.type,n,o)}evaluate(i){const r=this.input.evaluate(i),n=this.beginIndex.evaluate(i);if(!tI(r,["string","array"]))throw new tU(`Expected first argument to be of type array or string, but found ${tw(tR(r))} instead.`);if(this.endIndex){const o=this.endIndex.evaluate(i);return r.slice(n,o)}return r.slice(n)}eachChild(i){i(this.input),i(this.beginIndex),this.endIndex&&i(this.endIndex)}outputDefined(){return!1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const i=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),i]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}function iP(i,r){return"=="===i||"!="===i?"boolean"===r.kind||"string"===r.kind||"number"===r.kind||"null"===r.kind||"value"===r.kind:"string"===r.kind||"number"===r.kind||"value"===r.kind}function iD(i,r,n,o){return 0===o.compare(r,n)}function iL(i,r,n){const o="=="!==i&&"!="!==i;return class s{constructor(i,r,n){this.type=tf,this.lhs=i,this.rhs=r,this.collator=n,this.hasUntypedArgument="value"===i.type.kind||"value"===r.type.kind}static parse(i,r){if(3!==i.length&&4!==i.length)return r.error("Expected two or three arguments.");const n=i[0];let a=r.parse(i[1],1,tg);if(!a)return null;if(!iP(n,a.type))return r.concat(1).error(`"${n}" comparisons are not supported for type '${tw(a.type)}'.`);let l=r.parse(i[2],2,tg);if(!l)return null;if(!iP(n,l.type))return r.concat(2).error(`"${n}" comparisons are not supported for type '${tw(l.type)}'.`);if(a.type.kind!==l.type.kind&&"value"!==a.type.kind&&"value"!==l.type.kind)return r.error(`Cannot compare types '${tw(a.type)}' and '${tw(l.type)}'.`);o&&("value"===a.type.kind&&"value"!==l.type.kind?a=new tN(l.type,[a]):"value"!==a.type.kind&&"value"===l.type.kind&&(l=new tN(a.type,[l])));let c=null;if(4===i.length){if("string"!==a.type.kind&&"string"!==l.type.kind&&"value"!==a.type.kind&&"value"!==l.type.kind)return r.error("Cannot use collator to compare non-string types.");if(!(c=r.parse(i[3],3,ty)))return null}return new s(a,l,c)}evaluate(s){const a=this.lhs.evaluate(s),l=this.rhs.evaluate(s);if(o&&this.hasUntypedArgument){const c=tR(a),h=tR(l);if(c.kind!==h.kind||"string"!==c.kind&&"number"!==c.kind)throw new tU(`Expected arguments for "${i}" to be (string, string) or (number, number), but found (${c.kind}, ${h.kind}) instead.`)}if(this.collator&&!o&&this.hasUntypedArgument){const u=tR(a),d=tR(l);if("string"!==u.kind||"string"!==d.kind)return r(s,a,l)}return this.collator?n(s,a,l,this.collator.evaluate(s)):r(s,a,l)}eachChild(i){i(this.lhs),i(this.rhs),this.collator&&i(this.collator)}outputDefined(){return!0}serialize(){const r=[i];return this.eachChild(i=>{r.push(i.serialize())}),r}}}const iB=iL("==",function(i,r,n){return r===n},iD),iR=iL("!=",function(i,r,n){return r!==n},function(i,r,n,o){return!iD(0,r,n,o)}),iF=iL("<",function(i,r,n){return ro.compare(r,n)}),iO=iL(">",function(i,r,n){return r>n},function(i,r,n,o){return o.compare(r,n)>0}),iU=iL("<=",function(i,r,n){return r<=n},function(i,r,n,o){return 0>=o.compare(r,n)}),iV=iL(">=",function(i,r,n){return r>=n},function(i,r,n,o){return o.compare(r,n)>=0});class iN{constructor(i,r,n,o,s){this.type=tp,this.number=i,this.locale=r,this.currency=n,this.minFractionDigits=o,this.maxFractionDigits=s}static parse(i,r){if(3!==i.length)return r.error("Expected two arguments.");const n=r.parse(i[1],1,td);if(!n)return null;const o=i[2];if("object"!=typeof o||Array.isArray(o))return r.error("NumberFormat options argument must be an object.");let s=null;if(o.locale&&!(s=r.parse(o.locale,1,tp)))return null;let a=null;if(o.currency&&!(a=r.parse(o.currency,1,tp)))return null;let l=null;if(o["min-fraction-digits"]&&!(l=r.parse(o["min-fraction-digits"],1,td)))return null;let c=null;return!o["max-fraction-digits"]||(c=r.parse(o["max-fraction-digits"],1,td))?new iN(n,s,a,l,c):null}evaluate(i){return new Intl.NumberFormat(this.locale?this.locale.evaluate(i):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(i):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(i):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(i):void 0}).format(this.number.evaluate(i))}eachChild(i){i(this.number),this.locale&&i(this.locale),this.currency&&i(this.currency),this.minFractionDigits&&i(this.minFractionDigits),this.maxFractionDigits&&i(this.maxFractionDigits)}outputDefined(){return!1}serialize(){const i={};return this.locale&&(i.locale=this.locale.serialize()),this.currency&&(i.currency=this.currency.serialize()),this.minFractionDigits&&(i["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(i["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),i]}}class ij{constructor(i){this.type=td,this.input=i}static parse(i,r){if(2!==i.length)return r.error(`Expected 1 argument, but found ${i.length-1} instead.`);const n=r.parse(i[1],1);return n?"array"!==n.type.kind&&"string"!==n.type.kind&&"value"!==n.type.kind?r.error(`Expected argument of type string or array, but found ${tw(n.type)} instead.`):new ij(n):null}evaluate(i){const r=this.input.evaluate(i);if("string"==typeof r||Array.isArray(r))return r.length;throw new tU(`Expected value to be of type string or array, but found ${tw(tR(r))} instead.`)}eachChild(i){i(this.input)}outputDefined(){return!1}serialize(){const i=["length"];return this.eachChild(r=>{i.push(r.serialize())}),i}}const iG={"==":iB,"!=":iR,">":iO,"<":iF,">=":iV,"<=":iU,array:tN,at:iI,boolean:tN,case:iz,coalesce:iE,collator:tH,format:tj,image:tG,in:iM,"index-of":iA,interpolate:iw,"interpolate-hcl":iw,"interpolate-lab":iw,length:ij,let:iS,literal:tO,match:iC,number:tN,"number-format":iN,object:tN,slice:ik,step:ir,string:tN,"to-boolean":t$,"to-color":t$,"to-number":t$,"to-string":t$,var:ie,within:t6};function iZ(i,[r,n,o,s]){r=r.evaluate(i),n=n.evaluate(i),o=o.evaluate(i);const a=s?s.evaluate(i):1,l=tL(r,n,o,a);if(l)throw new tU(l);return new tC(r/255*a,n/255*a,o/255*a,a)}function i$(i,r){const n=r[i];return void 0===n?null:n}function iq(i){return{type:i}}function iX(i){return{result:"success",value:i}}function iW(i){return{result:"error",value:i}}function iH(i){return"data-driven"===i["property-type"]||"cross-faded-data-driven"===i["property-type"]}function iK(i){return!!i.expression&&i.expression.parameters.indexOf("zoom")>-1}function iY(i){return!!i.expression&&i.expression.interpolated}function iJ(i){return i instanceof Number?"number":i instanceof String?"string":i instanceof Boolean?"boolean":Array.isArray(i)?"array":null===i?"null":typeof i}function iQ(i){return"object"==typeof i&&null!==i&&!Array.isArray(i)}function i0(i){return i}function i1(i,r,n){return void 0!==i?i:void 0!==r?r:void 0!==n?n:void 0}function i2(i,r,n,o,s){return i1(typeof n===s?o[n]:void 0,i.default,r.default)}function i3(i,r,n){if("number"!==iJ(n))return i1(i.default,r.default);const o=i.stops.length;if(1===o||n<=i.stops[0][0])return i.stops[0][1];if(n>=i.stops[o-1][0])return i.stops[o-1][1];const s=ii(i.stops.map(i=>i[0]),n);return i.stops[s][1]}function i5(i,r,n){const o=void 0!==i.base?i.base:1;if("number"!==iJ(n))return i1(i.default,r.default);const s=i.stops.length;if(1===s||n<=i.stops[0][0])return i.stops[0][1];if(n>=i.stops[s-1][0])return i.stops[s-1][1];const a=ii(i.stops.map(i=>i[0]),n),l=function(i,r,n,o){const s=o-n,a=i-n;return 0===s?0:1===r?a/s:(Math.pow(r,a)-1)/(Math.pow(r,s)-1)}(n,o,i.stops[a][0],i.stops[a+1][0]),c=i.stops[a][1],h=i.stops[a+1][1];let u=is[r.type]||i0;if(i.colorSpace&&"rgb"!==i.colorSpace){const d=ib[i.colorSpace];u=(i,r)=>d.reverse(d.interpolate(d.forward(i),d.forward(r),l))}return"function"==typeof c.evaluate?{evaluate(...i){const r=c.evaluate.apply(void 0,i),n=h.evaluate.apply(void 0,i);if(void 0!==r&&void 0!==n)return u(r,n,l)}}:u(c,h,l)}function i4(i,r,n){return"color"===r.type?n=tC.parse(n):"formatted"===r.type?n=tP.fromString(n.toString()):"resolvedImage"===r.type?n=tD.fromString(n.toString()):iJ(n)===r.type||"enum"===r.type&&r.values[n]||(n=void 0),i1(n,i.default,r.default)}tW.register(iG,{error:[{kind:"error"},[tp],(i,[r])=>{throw new tU(r.evaluate(i))}],typeof:[tp,[tg],(i,[r])=>tw(tR(r.evaluate(i)))],"to-rgba":[tb(td,4),[tm],(i,[r])=>r.evaluate(i).toArray()],rgb:[tm,[td,td,td],iZ],rgba:[tm,[td,td,td,td],iZ],has:{type:tf,overloads:[[[tp],(i,[r])=>r.evaluate(i) in i.properties()],[[tp,t_],(i,[r,n])=>r.evaluate(i) in n.evaluate(i)]]},get:{type:tg,overloads:[[[tp],(i,[r])=>i$(r.evaluate(i),i.properties())],[[tp,t_],(i,[r,n])=>i$(r.evaluate(i),n.evaluate(i))]]},"feature-state":[tg,[tp],(i,[r])=>i$(r.evaluate(i),i.featureState||{})],properties:[t_,[],i=>i.properties()],"geometry-type":[tp,[],i=>i.geometryType()],id:[tg,[],i=>i.id()],zoom:[td,[],i=>i.globals.zoom],pitch:[td,[],i=>i.globals.pitch||0],"distance-from-center":[td,[],i=>i.distanceFromCenter()],"heatmap-density":[td,[],i=>i.globals.heatmapDensity||0],"line-progress":[td,[],i=>i.globals.lineProgress||0],"sky-radial-progress":[td,[],i=>i.globals.skyRadialProgress||0],accumulated:[tg,[],i=>void 0===i.globals.accumulated?null:i.globals.accumulated],"+":[td,iq(td),(i,r)=>{let n=0;for(const o of r)n+=o.evaluate(i);return n}],"*":[td,iq(td),(i,r)=>{let n=1;for(const o of r)n*=o.evaluate(i);return n}],"-":{type:td,overloads:[[[td,td],(i,[r,n])=>r.evaluate(i)-n.evaluate(i)],[[td],(i,[r])=>-r.evaluate(i)]]},"/":[td,[td,td],(i,[r,n])=>r.evaluate(i)/n.evaluate(i)],"%":[td,[td,td],(i,[r,n])=>r.evaluate(i)%n.evaluate(i)],ln2:[td,[],()=>Math.LN2],pi:[td,[],()=>Math.PI],e:[td,[],()=>Math.E],"^":[td,[td,td],(i,[r,n])=>Math.pow(r.evaluate(i),n.evaluate(i))],sqrt:[td,[td],(i,[r])=>Math.sqrt(r.evaluate(i))],log10:[td,[td],(i,[r])=>Math.log(r.evaluate(i))/Math.LN10],ln:[td,[td],(i,[r])=>Math.log(r.evaluate(i))],log2:[td,[td],(i,[r])=>Math.log(r.evaluate(i))/Math.LN2],sin:[td,[td],(i,[r])=>Math.sin(r.evaluate(i))],cos:[td,[td],(i,[r])=>Math.cos(r.evaluate(i))],tan:[td,[td],(i,[r])=>Math.tan(r.evaluate(i))],asin:[td,[td],(i,[r])=>Math.asin(r.evaluate(i))],acos:[td,[td],(i,[r])=>Math.acos(r.evaluate(i))],atan:[td,[td],(i,[r])=>Math.atan(r.evaluate(i))],min:[td,iq(td),(i,r)=>Math.min(...r.map(r=>r.evaluate(i)))],max:[td,iq(td),(i,r)=>Math.max(...r.map(r=>r.evaluate(i)))],abs:[td,[td],(i,[r])=>Math.abs(r.evaluate(i))],round:[td,[td],(i,[r])=>{const n=r.evaluate(i);return n<0?-Math.round(-n):Math.round(n)}],floor:[td,[td],(i,[r])=>Math.floor(r.evaluate(i))],ceil:[td,[td],(i,[r])=>Math.ceil(r.evaluate(i))],"filter-==":[tf,[tp,tg],(i,[r,n])=>i.properties()[r.value]===n.value],"filter-id-==":[tf,[tg],(i,[r])=>i.id()===r.value],"filter-type-==":[tf,[tp],(i,[r])=>i.geometryType()===r.value],"filter-<":[tf,[tp,tg],(i,[r,n])=>{const o=i.properties()[r.value],s=n.value;return typeof o==typeof s&&o{const n=i.id(),o=r.value;return typeof n==typeof o&&n":[tf,[tp,tg],(i,[r,n])=>{const o=i.properties()[r.value],s=n.value;return typeof o==typeof s&&o>s}],"filter-id->":[tf,[tg],(i,[r])=>{const n=i.id(),o=r.value;return typeof n==typeof o&&n>o}],"filter-<=":[tf,[tp,tg],(i,[r,n])=>{const o=i.properties()[r.value],s=n.value;return typeof o==typeof s&&o<=s}],"filter-id-<=":[tf,[tg],(i,[r])=>{const n=i.id(),o=r.value;return typeof n==typeof o&&n<=o}],"filter->=":[tf,[tp,tg],(i,[r,n])=>{const o=i.properties()[r.value],s=n.value;return typeof o==typeof s&&o>=s}],"filter-id->=":[tf,[tg],(i,[r])=>{const n=i.id(),o=r.value;return typeof n==typeof o&&n>=o}],"filter-has":[tf,[tg],(i,[r])=>r.value in i.properties()],"filter-has-id":[tf,[],i=>null!==i.id()&&void 0!==i.id()],"filter-type-in":[tf,[tb(tp)],(i,[r])=>r.value.indexOf(i.geometryType())>=0],"filter-id-in":[tf,[tb(tg)],(i,[r])=>r.value.indexOf(i.id())>=0],"filter-in-small":[tf,[tp,tb(tg)],(i,[r,n])=>n.value.indexOf(i.properties()[r.value])>=0],"filter-in-large":[tf,[tp,tb(tg)],(i,[r,n])=>(function(i,r,n,o){for(;n<=o;){const s=n+o>>1;if(r[s]===i)return!0;r[s]>i?o=s-1:n=s+1}return!1})(i.properties()[r.value],n.value,0,n.value.length-1)],all:{type:tf,overloads:[[[tf,tf],(i,[r,n])=>r.evaluate(i)&&n.evaluate(i)],[iq(tf),(i,r)=>{for(const n of r)if(!n.evaluate(i))return!1;return!0}]]},any:{type:tf,overloads:[[[tf,tf],(i,[r,n])=>r.evaluate(i)||n.evaluate(i)],[iq(tf),(i,r)=>{for(const n of r)if(n.evaluate(i))return!0;return!1}]]},"!":[tf,[tf],(i,[r])=>!r.evaluate(i)],"is-supported-script":[tf,[tp],(i,[r])=>{const n=i.globals&&i.globals.isSupportedScript;return!n||n(r.evaluate(i))}],upcase:[tp,[tp],(i,[r])=>r.evaluate(i).toUpperCase()],downcase:[tp,[tp],(i,[r])=>r.evaluate(i).toLowerCase()],concat:[tp,iq(tg),(i,r)=>r.map(r=>tF(r.evaluate(i))).join("")],"resolved-locale":[tp,[ty],(i,[r])=>r.evaluate(i).resolvedLocale()]});class i6{constructor(i,r){this.expression=i,this._warningHistory={},this._evaluator=new tX,this._defaultValue=r?"color"===r.type&&iQ(r.default)?new tC(0,0,0,0):"color"===r.type?tC.parse(r.default)||null:void 0===r.default?null:r.default:null,this._enumValues=r&&"enum"===r.type?r.values:null}evaluateWithoutErrorHandling(i,r,n,o,s,a,l,c){return this._evaluator.globals=i,this._evaluator.feature=r,this._evaluator.featureState=n,this._evaluator.canonical=o,this._evaluator.availableImages=s||null,this._evaluator.formattedSection=a,this._evaluator.featureTileCoord=l||null,this._evaluator.featureDistanceData=c||null,this.expression.evaluate(this._evaluator)}evaluate(i,r,n,o,s,a,l,c){this._evaluator.globals=i,this._evaluator.feature=r||null,this._evaluator.featureState=n||null,this._evaluator.canonical=o,this._evaluator.availableImages=s||null,this._evaluator.formattedSection=a||null,this._evaluator.featureTileCoord=l||null,this._evaluator.featureDistanceData=c||null;try{const h=this.expression.evaluate(this._evaluator);if(null==h||"number"==typeof h&&h!=h)return this._defaultValue;if(this._enumValues&&!(h in this._enumValues))throw new tU(`Expected value to be one of ${Object.keys(this._enumValues).map(i=>JSON.stringify(i)).join(", ")}, but found ${JSON.stringify(h)} instead.`);return h}catch(u){return this._warningHistory[u.message]||(this._warningHistory[u.message]=!0,"undefined"!=typeof console&&console.warn(u.message)),this._defaultValue}}}function i8(i){return Array.isArray(i)&&i.length>0&&"string"==typeof i[0]&&i[0]in iG}function i9(i,r){const n=new it(iG,[],r?function(i){const r={color:tm,string:tp,number:td,enum:tp,boolean:tf,formatted:tx,resolvedImage:tv};return"array"===i.type?tb(r[i.value]||tg,i.length):r[i.type]}(r):void 0),o=n.parse(i,void 0,void 0,void 0,r&&"string"===r.type?{typeAnnotation:"coerce"}:void 0);return o?iX(new i6(o,r)):iW(n.errors)}class i7{constructor(i,r){this.kind=i,this._styleExpression=r,this.isStateDependent="constant"!==i&&!t9(r.expression)}evaluateWithoutErrorHandling(i,r,n,o,s,a){return this._styleExpression.evaluateWithoutErrorHandling(i,r,n,o,s,a)}evaluate(i,r,n,o,s,a){return this._styleExpression.evaluate(i,r,n,o,s,a)}}class re{constructor(i,r,n,o){this.kind=i,this.zoomStops=n,this._styleExpression=r,this.isStateDependent="camera"!==i&&!t9(r.expression),this.interpolationType=o}evaluateWithoutErrorHandling(i,r,n,o,s,a){return this._styleExpression.evaluateWithoutErrorHandling(i,r,n,o,s,a)}evaluate(i,r,n,o,s,a){return this._styleExpression.evaluate(i,r,n,o,s,a)}interpolationFactor(i,r,n){return this.interpolationType?iw.interpolationFactor(this.interpolationType,i,r,n):0}}function rt(i,r){if("error"===(i=i9(i,r)).result)return i;const n=i.value.expression,o=t8(n);if(!o&&!iH(r))return iW([new tc("","data expressions not supported")]);const s=t7(n,["zoom","pitch","distance-from-center"]);if(!s&&!iK(r))return iW([new tc("","zoom expressions not supported")]);const a=function i(r){let n=null;if(r instanceof iS)n=i(r.result);else if(r instanceof iE){for(const o of r.args)if(n=i(o))break}else(r instanceof ir||r instanceof iw)&&r.input instanceof tW&&"zoom"===r.input.name&&(n=r);return n instanceof tc||r.eachChild(r=>{const o=i(r);o instanceof tc?n=o:!n&&o?n=new tc("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):n&&o&&n!==o&&(n=new tc("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),n}(n);return a||s?a instanceof tc?iW([a]):a instanceof iw&&!iY(r)?iW([new tc("",'"interpolate" expressions cannot be used with this property')]):iX(a?new re(o?"camera":"composite",i.value,a.labels,a instanceof iw?a.interpolation:void 0):new i7(o?"constant":"source",i.value)):iW([new tc("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class ri{constructor(i,r){this._parameters=i,this._specification=r,ts(this,function i(r,n){let o,s,a;const l="color"===n.type,c=r.stops&&"object"==typeof r.stops[0][0],h=c||!(c||void 0!==r.property),u=r.type||(iY(n)?"exponential":"interval");if(l&&((r=ts({},r)).stops&&(r.stops=r.stops.map(i=>[i[0],tC.parse(i[1])])),r.default=tC.parse(r.default?r.default:n.default)),r.colorSpace&&"rgb"!==r.colorSpace&&!ib[r.colorSpace])throw Error(`Unknown color space: ${r.colorSpace}`);if("exponential"===u)o=i5;else if("interval"===u)o=i3;else if("categorical"===u){for(const d of(o=i2,s=Object.create(null),r.stops))s[d[0]]=d[1];a=typeof r.stops[0][0]}else{if("identity"!==u)throw Error(`Unknown function type "${u}"`);o=i4}if(c){const p={},f=[];for(let m=0;mi[0]),evaluate:({zoom:i},o)=>i5({stops:y,base:r.base},n,i).evaluate(i,o)}}if(h){const b="exponential"===u?{name:"exponential",base:void 0!==r.base?r.base:1}:null;return{kind:"camera",interpolationType:b,interpolationFactor:iw.interpolationFactor.bind(void 0,b),zoomStops:r.stops.map(i=>i[0]),evaluate:({zoom:i})=>o(r,n,i,s,a)}}return{kind:"source",evaluate(i,l){const c=l&&l.properties?l.properties[r.property]:void 0;return void 0===c?i1(r.default,n.default):o(r,n,c,s,a)}}}(this._parameters,this._specification))}static deserialize(i){return new ri(i._parameters,i._specification)}static serialize(i){return{_parameters:i._parameters,_specification:i._specification}}}function rr(i){const r=i.key,n=i.value,o=i.valueSpec||{},s=i.objectElementValidators||{},a=i.style,l=i.styleSpec;let c=[];const h=iJ(n);if("object"!==h)return[new tn(r,n,`object expected, ${h} found`)];for(const u in n){let d;const p=u.split(".")[0],f=o[p]||o["*"];if(s[p])d=s[p];else if(o[p])d=rz;else if(s["*"])d=s["*"];else{if(!o["*"]){c.push(new tn(r,n[u],`unknown property "${u}"`));continue}d=rz}c=c.concat(d({key:(r?`${r}.`:r)+u,value:n[u],valueSpec:f,style:a,styleSpec:l,object:n,objectKey:u},n))}for(const m in o)s[m]||o[m].required&&void 0===o[m].default&&void 0===n[m]&&c.push(new tn(r,n,`missing required property "${m}"`));return c}function rn(i){const r=i.value,n=i.valueSpec,o=i.style,s=i.styleSpec,a=i.key,l=i.arrayElementValidator||rz;if("array"!==iJ(r))return[new tn(a,r,`array expected, ${iJ(r)} found`)];if(n.length&&r.length!==n.length)return[new tn(a,r,`array length ${n.length} expected, length ${r.length} found`)];if(n["min-length"]&&r.lengthl)return[new tn(r,n,`${n} is greater than the maximum value ${l}`)]}return[]}function rs(i){const r=i.valueSpec,n=ta(i.value.type);let o,s,a,l={};const c="categorical"!==n&&void 0===i.value.property,h="array"===iJ(i.value.stops)&&"array"===iJ(i.value.stops[0])&&"object"===iJ(i.value.stops[0][0]),u=rr({key:i.key,value:i.value,valueSpec:i.styleSpec.function,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{stops:function(i){if("identity"===n)return[new tn(i.key,i.value,'identity function may not have a "stops" property')];let r=[];const o=i.value;return r=r.concat(rn({key:i.key,value:o,valueSpec:i.valueSpec,style:i.style,styleSpec:i.styleSpec,arrayElementValidator:d})),"array"===iJ(o)&&0===o.length&&r.push(new tn(i.key,o,"array must have at least one stop")),r},default:function(i){return rz({key:i.key,value:i.value,valueSpec:r,style:i.style,styleSpec:i.styleSpec})}}});return"identity"===n&&c&&u.push(new tn(i.key,i.value,'missing required property "property"')),"identity"===n||i.value.stops||u.push(new tn(i.key,i.value,'missing required property "stops"')),"exponential"===n&&i.valueSpec.expression&&!iY(i.valueSpec)&&u.push(new tn(i.key,i.value,"exponential functions not supported")),i.styleSpec.$version>=8&&(c||iH(i.valueSpec)?c&&!iK(i.valueSpec)&&u.push(new tn(i.key,i.value,"zoom functions not supported")):u.push(new tn(i.key,i.value,"property functions not supported"))),("categorical"===n||h)&&void 0===i.value.property&&u.push(new tn(i.key,i.value,'"property" property is required')),u;function d(i){let n=[];const o=i.value,c=i.key;if("array"!==iJ(o))return[new tn(c,o,`array expected, ${iJ(o)} found`)];if(2!==o.length)return[new tn(c,o,`array length 2 expected, length ${o.length} found`)];if(h){if("object"!==iJ(o[0]))return[new tn(c,o,`object expected, ${iJ(o[0])} found`)];if(void 0===o[0].zoom)return[new tn(c,o,"object stop key must have zoom")];if(void 0===o[0].value)return[new tn(c,o,"object stop key must have value")];if(a&&a>ta(o[0].zoom))return[new tn(c,o[0].zoom,"stop zoom values must appear in ascending order")];ta(o[0].zoom)!==a&&(a=ta(o[0].zoom),s=void 0,l={}),n=n.concat(rr({key:`${c}[0]`,value:o[0],valueSpec:{zoom:{}},style:i.style,styleSpec:i.styleSpec,objectElementValidators:{zoom:ro,value:p}}))}else n=n.concat(p({key:`${c}[0]`,value:o[0],valueSpec:{},style:i.style,styleSpec:i.styleSpec},o));return i8(tl(o[1]))?n.concat([new tn(`${c}[1]`,o[1],"expressions are not allowed in function stops.")]):n.concat(rz({key:`${c}[1]`,value:o[1],valueSpec:r,style:i.style,styleSpec:i.styleSpec}))}function p(i,a){const c=iJ(i.value),h=ta(i.value),u=null!==i.value?i.value:a;if(o){if(c!==o)return[new tn(i.key,u,`${c} stop domain type must match previous stop domain type ${o}`)]}else o=c;if("number"!==c&&"string"!==c&&"boolean"!==c)return[new tn(i.key,u,"stop domain value must be a number, string, or boolean")];if("number"!==c&&"categorical"!==n){let d=`number expected, ${c} found`;return iH(r)&&void 0===n&&(d+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new tn(i.key,u,d)]}return"categorical"!==n||"number"!==c||isFinite(h)&&Math.floor(h)===h?"categorical"!==n&&"number"===c&&void 0!==s&&hnew tn(`${i.key}${r.key}`,i.value,r.message));const n=r.value.expression||r.value._styleExpression.expression;if("property"===i.expressionContext&&"text-font"===i.propertyKey&&!n.outputDefined())return[new tn(i.key,i.value,`Invalid data expression for "${i.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===i.expressionContext&&"layout"===i.propertyType&&!t9(n))return[new tn(i.key,i.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===i.expressionContext)return function i(r,n){const o=new Set(["zoom","feature-state","pitch","distance-from-center"]);for(const s of n.valueSpec.expression.parameters)o.delete(s);if(0===o.size)return[];const a=[];return r instanceof tW&&o.has(r.name)?[new tn(n.key,n.value,`["${r.name}"] expression is not supported in a filter for a ${n.object.type} layer with id: ${n.object.id}`)]:(r.eachChild(r=>{a.push(...i(r,n))}),a)}(n,i);if(i.expressionContext&&0===i.expressionContext.indexOf("cluster")){if(!t7(n,["zoom","feature-state"]))return[new tn(i.key,i.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===i.expressionContext&&!t8(n))return[new tn(i.key,i.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function rl(i){const r=i.key,n=i.value,o=i.valueSpec,s=[];return Array.isArray(o.values)?-1===o.values.indexOf(ta(n))&&s.push(new tn(r,n,`expected one of [${o.values.join(", ")}], ${JSON.stringify(n)} found`)):-1===Object.keys(o.values).indexOf(ta(n))&&s.push(new tn(r,n,`expected one of [${Object.keys(o.values).join(", ")}], ${JSON.stringify(n)} found`)),s}function rc(i){if(!0===i||!1===i)return!0;if(!Array.isArray(i)||0===i.length)return!1;switch(i[0]){case"has":return i.length>=2&&"$id"!==i[1]&&"$type"!==i[1];case"in":return i.length>=3&&("string"!=typeof i[1]||Array.isArray(i[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==i.length||Array.isArray(i[1])||Array.isArray(i[2]);case"any":case"all":for(const r of i.slice(1))if(!rc(r)&&"boolean"!=typeof r)return!1;return!0;default:return!0}}function rh(i,r="fill"){if(null==i)return{filter:()=>!0,needGeometry:!1,needFeature:!1};rc(i)||(i=function i(r){if(!r)return!0;const n=r[0];return r.length<=1?"any"!==n:"=="===n?rf(r[1],r[2],"=="):"!="===n?rg(rf(r[1],r[2],"==")):"<"===n||">"===n||"<="===n||">="===n?rf(r[1],r[2],n):"any"===n?["any"].concat(r.slice(1).map(i)):"all"===n?["all"].concat(r.slice(1).map(i)):"none"===n?["all"].concat(r.slice(1).map(i).map(rg)):"in"===n?rm(r[1],r.slice(2)):"!in"===n?rg(rm(r[1],r.slice(2))):"has"===n?r_(r[1]):"!has"===n?rg(r_(r[1])):"within"!==n||r}(i));const n=i;let o=!0;try{o=function(i){if(!ru(i))return i;let r=tl(i);return function i(r){let n=!1;const o=[];if("case"===r[0]){for(let s=1;si(r))}(r)}(n)}catch(s){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate. This is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md and paste the contents of this message in the report. Thank you! Filter Expression: ${JSON.stringify(n,null,2)} `)}const a=tr[`filter_${r}`],l=i9(o,a);let c=null;if("error"===l.result)throw Error(l.value.map(i=>`${i.key}: ${i.message}`).join(", "));c=(i,r,n)=>l.value.evaluate(i,r,{},n);let h=null,u=null;if(o!==n){const d=i9(n,a);if("error"===d.result)throw Error(d.value.map(i=>`${i.key}: ${i.message}`).join(", "));h=(i,r,n,o,s)=>d.value.evaluate(i,r,{},n,void 0,void 0,o,s),u=!t8(d.value.expression)}return{filter:c,dynamicFilter:h||void 0,needGeometry:function i(r){if(!Array.isArray(r))return!1;if("within"===r[0])return!0;for(let n=1;n",">=","<","<=","to-boolean"]);function rp(i,r){return ir?1:0}function rf(i,r,n){switch(i){case"$type":return[`filter-type-${n}`,r];case"$id":return[`filter-id-${n}`,r];default:return[`filter-${n}`,i,r]}}function rm(i,r){if(0===r.length)return!1;switch(i){case"$type":return["filter-type-in",["literal",r]];case"$id":return["filter-id-in",["literal",r]];default:return r.length>200&&!r.some(i=>typeof i!=typeof r[0])?["filter-in-large",i,["literal",r.sort(rp)]]:["filter-in-small",i,["literal",r]]}}function r_(i){switch(i){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",i]}}function rg(i){return["!",i]}function ry(i){if(rc(tl(i.value))){const r=tl(i.layerType);return ra(ts({},i,{expressionContext:"filter",valueSpec:i.styleSpec[`filter_${r||"fill"}`]}))}return function i(r){const n=r.value,o=r.key;if("array"!==iJ(n))return[new tn(o,n,`array expected, ${iJ(n)} found`)];const s=r.styleSpec;let a,l=[];if(n.length<1)return[new tn(o,n,"filter array must have at least 1 element")];switch(l=l.concat(rl({key:`${o}[0]`,value:n[0],valueSpec:s.filter_operator,style:r.style,styleSpec:r.styleSpec})),ta(n[0])){case"<":case"<=":case">":case">=":n.length>=2&&"$type"===ta(n[1])&&l.push(new tn(o,n,`"$type" cannot be use with operator "${n[0]}"`));case"==":case"!=":3!==n.length&&l.push(new tn(o,n,`filter array for operator "${n[0]}" must have 3 elements`));case"in":case"!in":n.length>=2&&"string"!==(a=iJ(n[1]))&&l.push(new tn(`${o}[1]`,n[1],`string expected, ${a} found`));for(let c=2;c{i in n&&r.push(new tn(o,n[i],`"${i}" is prohibited for ref layers`))}),s.layers.forEach(i=>{ta(i.id)===c&&(p=i)}),p?p.ref?r.push(new tn(o,n.ref,"ref cannot reference another ref layer")):l=ta(p.type):r.push(new tn(o,n.ref,`ref layer "${c}" not found`))}else if("background"!==l&&"sky"!==l){if(n.source){const f=s.sources&&s.sources[n.source],m=f&&ta(f.type);f?"vector"===m&&"raster"===l?r.push(new tn(o,n.source,`layer "${n.id}" requires a raster source`)):"raster"===m&&"raster"!==l?r.push(new tn(o,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==m||n["source-layer"]?"raster-dem"===m&&"hillshade"!==l?r.push(new tn(o,n.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"===l&&n.paint&&n.paint["line-gradient"]&&("geojson"!==m||!f.lineMetrics)&&r.push(new tn(o,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):r.push(new tn(o,n,`layer "${n.id}" must specify a "source-layer"`)):r.push(new tn(o,n.source,`source "${n.source}" not found`))}else r.push(new tn(o,n,'missing required property "source"'))}return r=r.concat(rr({key:o,value:n,valueSpec:a.layer,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":()=>[],type:()=>rz({key:`${o}.type`,value:n.type,valueSpec:a.layer.type,style:i.style,styleSpec:i.styleSpec,object:n,objectKey:"type"}),filter:i=>ry(ts({layerType:l},i)),layout:i=>rr({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rb(ts({layerType:l},i))}}),paint:i=>rr({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rv(ts({layerType:l},i))}})}}))}function rT(i){const r=i.value,n=i.key,o=iJ(r);return"string"!==o?[new tn(n,r,`string expected, ${o} found`)]:[]}const rE={promoteId:function({key:i,value:r}){if("string"===iJ(r))return rT({key:i,value:r});{const n=[];for(const o in r)n.push(...rT({key:`${i}.${o}`,value:r[o]}));return n}}};function rS(i){let r;const n=i.value,o=i.key,s=i.styleSpec,a=i.style;if(!n.type)return[new tn(o,n,'"type" is required')];const l=ta(n.type);switch(l){case"vector":case"raster":case"raster-dem":return rr({key:o,value:n,valueSpec:s[`source_${l.replace("-","_")}`],style:i.style,styleSpec:s,objectElementValidators:rE});case"geojson":if(r=rr({key:o,value:n,valueSpec:s.source_geojson,style:a,styleSpec:s,objectElementValidators:rE}),n.cluster)for(const c in n.clusterProperties){const[h,u]=n.clusterProperties[c],d="string"==typeof h?[h,["accumulated"],["get",c]]:h;r.push(...ra({key:`${o}.${c}.map`,value:u,expressionContext:"cluster-map"})),r.push(...ra({key:`${o}.${c}.reduce`,value:d,expressionContext:"cluster-reduce"}))}return r;case"video":return rr({key:o,value:n,valueSpec:s.source_video,style:a,styleSpec:s});case"image":return rr({key:o,value:n,valueSpec:s.source_image,style:a,styleSpec:s});case"canvas":return[new tn(o,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return rl({key:`${o}.type`,value:n.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:a,styleSpec:s})}}function rI(i){const r=i.value,n=i.styleSpec,o=n.light,s=i.style;let a=[];const l=iJ(r);if(void 0===r)return a;if("object"!==l)return a.concat([new tn("light",r,`object expected, ${l} found`)]);for(const c in r){const h=c.match(/^(.*)-transition$/);a=a.concat(h&&o[h[1]]&&o[h[1]].transition?rz({key:c,value:r[c],valueSpec:n.transition,style:s,styleSpec:n}):o[c]?rz({key:c,value:r[c],valueSpec:o[c],style:s,styleSpec:n}):[new tn(c,r[c],`unknown property "${c}"`)])}return a}function rM(i){const r=i.value,n=i.key,o=i.style,s=i.styleSpec,a=s.terrain;let l=[];const c=iJ(r);if(void 0===r)return l;if("object"!==c)return l.concat([new tn("terrain",r,`object expected, ${c} found`)]);for(const h in r){const u=h.match(/^(.*)-transition$/);l=l.concat(u&&a[u[1]]&&a[u[1]].transition?rz({key:h,value:r[h],valueSpec:s.transition,style:o,styleSpec:s}):a[h]?rz({key:h,value:r[h],valueSpec:a[h],style:o,styleSpec:s}):[new tn(h,r[h],`unknown property "${h}"`)])}if(r.source){const d=o.sources&&o.sources[r.source],p=d&&ta(d.type);d?"raster-dem"!==p&&l.push(new tn(n,r.source,`terrain cannot be used with a source of type ${p}, it only be used with a "raster-dem" source type`)):l.push(new tn(n,r.source,`source "${r.source}" not found`))}else l.push(new tn(n,r,'terrain is missing required property "source"'));return l}function rA(i){const r=i.value,n=i.style,o=i.styleSpec,s=o.fog;let a=[];const l=iJ(r);if(void 0===r)return a;if("object"!==l)return a.concat([new tn("fog",r,`object expected, ${l} found`)]);for(const c in r){const h=c.match(/^(.*)-transition$/);a=a.concat(h&&s[h[1]]&&s[h[1]].transition?rz({key:c,value:r[c],valueSpec:o.transition,style:n,styleSpec:o}):s[c]?rz({key:c,value:r[c],valueSpec:s[c],style:n,styleSpec:o}):[new tn(c,r[c],`unknown property "${c}"`)])}return a}const rC={"*":()=>[],array:rn,boolean:function(i){const r=i.value,n=i.key,o=iJ(r);return"boolean"!==o?[new tn(n,r,`boolean expected, ${o} found`)]:[]},number:ro,color:function(i){const r=i.key,n=i.value,o=iJ(n);return"string"!==o?[new tn(r,n,`color expected, ${o} found`)]:null===tA.parseCSSColor(n)?[new tn(r,n,`color expected, "${n}" found`)]:[]},constants:to,enum:rl,filter:ry,function:rs,layer:rw,object:rr,source:rS,light:rI,terrain:rM,fog:rA,string:rT,formatted:function(i){return 0===rT(i).length?[]:ra(i)},resolvedImage:function(i){return 0===rT(i).length?[]:ra(i)},projection:function(i){const r=i.value,n=i.styleSpec,o=n.projection,s=i.style;let a=[];const l=iJ(r);if("object"===l)for(const c in r)a=a.concat(rz({key:c,value:r[c],valueSpec:o[c],style:s,styleSpec:n}));else"string"!==l&&(a=a.concat([new tn("projection",r,`object or string expected, ${l} found`)]));return a}};function rz(i){const r=i.value,n=i.valueSpec,o=i.styleSpec;return n.expression&&iQ(ta(r))?rs(i):n.expression&&i8(tl(r))?ra(i):n.type&&rC[n.type]?rC[n.type](i):rr(ts({},i,{valueSpec:n.type?o[n.type]:n}))}function rk(i){const r=i.value,n=i.key,o=rT(i);return o.length||(-1===r.indexOf("{fontstack}")&&o.push(new tn(n,r,'"glyphs" url must include a "{fontstack}" token')),-1===r.indexOf("{range}")&&o.push(new tn(n,r,'"glyphs" url must include a "{range}" token'))),o}function rP(i,r=tr){let n=[];return n=n.concat(rz({key:"",value:i,valueSpec:r.$root,styleSpec:r,style:i,objectElementValidators:{glyphs:rk,"*":()=>[]}})),i.constants&&(n=n.concat(to({key:"constants",value:i.constants,style:i,styleSpec:r}))),rD(n)}function rD(i){return[].concat(i).sort((i,r)=>i.line-r.line)}function rL(i){return function(...r){return rD(i.apply(this,r))}}rP.source=rL(rS),rP.light=rL(rI),rP.terrain=rL(rM),rP.fog=rL(rA),rP.layer=rL(rw),rP.filter=rL(ry),rP.paintProperty=rL(rv),rP.layoutProperty=rL(rb);const rB=rP.light,rR=rP.fog,rF=rP.paintProperty,rO=rP.layoutProperty;function rU(i,r){let n=!1;if(r&&r.length)for(const o of r)i.fire(new tt(Error(o.message))),n=!0;return n}var rV=rN;function rN(i,r,n){var o=this.cells=[];if(i instanceof ArrayBuffer){this.arrayBuffer=i;var s=new Int32Array(this.arrayBuffer);i=s[0],this.d=(r=s[1])+2*(n=s[2]);for(var a=0;a=d[m+0]&&o>=d[m+1])?(l[f]=!0,a.push(u[f])):l[f]=!1}}},rN.prototype._forEachCell=function(i,r,n,o,s,a,l,c){for(var h=this._convertToCellCoord(i),u=this._convertToCellCoord(r),d=this._convertToCellCoord(n),p=this._convertToCellCoord(o),f=h;f<=d;f++)for(var m=u;m<=p;m++){var _=this.d*m+f;if((!c||c(this._convertFromCellCoord(f),this._convertFromCellCoord(m),this._convertFromCellCoord(f+1),this._convertFromCellCoord(m+1)))&&s.call(this,i,r,n,o,_,a,l,c))return}},rN.prototype._convertFromCellCoord=function(i){return(i-this.padding)/this.scale},rN.prototype._convertToCellCoord=function(i){return Math.max(0,Math.min(this.d-1,Math.floor(i*this.scale)+this.padding))},rN.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var i=this.cells,r=3+this.cells.length+1+1,n=0,o=0;o=0)continue;const h=i[c];l[c]=rZ[a].shallow.indexOf(c)>=0?h:rH(h,r)}i instanceof Error&&(l.message=i.message)}if(l.$name)throw Error("$name property is reserved for worker serialization logic.");return"Object"!==a&&(l.$name=a),l}throw Error("can't serialize object of type "+typeof i)}function rK(i){if(null==i||"boolean"==typeof i||"number"==typeof i||"string"==typeof i||i instanceof Boolean||i instanceof Number||i instanceof String||i instanceof Date||i instanceof RegExp||rX(i)||rW(i)||ArrayBuffer.isView(i)||i instanceof rj)return i;if(Array.isArray(i))return i.map(rK);if("object"==typeof i){const r=i.$name||"Object",{klass:n}=rZ[r];if(!n)throw Error(`can't deserialize unregistered class ${r}`);if(n.deserialize)return n.deserialize(i);const o=Object.create(n.prototype);for(const s of Object.keys(i)){if("$name"===s)continue;const a=i[s];o[s]=rZ[r].shallow.indexOf(s)>=0?a:rK(a)}return o}throw Error("can't deserialize object of type "+typeof i)}class rY{constructor(){this.first=!0}update(i,r){const n=Math.floor(i);return this.first?(this.first=!1,this.lastIntegerZoom=n,this.lastIntegerZoomTime=0,this.lastZoom=i,this.lastFloorZoom=n,!0):(this.lastFloorZoom>n?(this.lastIntegerZoom=n+1,this.lastIntegerZoomTime=r):this.lastFloorZoomi>=1536&&i<=1791,rQ=i=>i>=1872&&i<=1919,r0=i=>i>=2208&&i<=2303,r1=i=>i>=11904&&i<=12031,r2=i=>i>=12032&&i<=12255,r3=i=>i>=12272&&i<=12287,r5=i=>i>=12288&&i<=12351,r4=i=>i>=12352&&i<=12447,r6=i=>i>=12448&&i<=12543,r8=i=>i>=12544&&i<=12591,r9=i=>i>=12704&&i<=12735,r7=i=>i>=12736&&i<=12783,ne=i=>i>=12784&&i<=12799,nt=i=>i>=12800&&i<=13055,ni=i=>i>=13056&&i<=13311,nr=i=>i>=13312&&i<=19903,nn=i=>i>=19968&&i<=40959,no=i=>i>=40960&&i<=42127,ns=i=>i>=42128&&i<=42191,na=i=>i>=44032&&i<=55215,nl=i=>i>=63744&&i<=64255,nc=i=>i>=64336&&i<=65023,nh=i=>i>=65040&&i<=65055,nu=i=>i>=65072&&i<=65103,nd=i=>i>=65104&&i<=65135,np=i=>i>=65136&&i<=65279,nf=i=>i>=65280&&i<=65519;function nm(i){for(const r of i)if(n_(r.charCodeAt(0)))return!0;return!1}function n_(i){return!(746!==i&&747!==i&&(i<4352||!(r9(i)||r8(i)||nu(i)&&!(i>=65097&&i<=65103)||nl(i)||ni(i)||r1(i)||r7(i)||!(!r5(i)||i>=12296&&i<=12305||i>=12308&&i<=12319||12336===i)||nr(i)||nn(i)||nt(i)||i>=12592&&i<=12687||i>=43360&&i<=43391||i>=55216&&i<=55295||i>=4352&&i<=4607||na(i)||r4(i)||r3(i)||i>=12688&&i<=12703||r2(i)||ne(i)||r6(i)&&12540!==i||!(!nf(i)||65288===i||65289===i||65293===i||i>=65306&&i<=65310||65339===i||65341===i||65343===i||i>=65371&&i<=65503||65507===i||i>=65512&&i<=65519)||!(!nd(i)||i>=65112&&i<=65118||i>=65123&&i<=65126)||i>=5120&&i<=5759||i>=6320&&i<=6399||nh(i)||i>=19904&&i<=19967||no(i)||ns(i))))}function ng(i){return!(n_(i)||i>=128&&i<=255&&(167===i||169===i||174===i||177===i||188===i||189===i||190===i||215===i||247===i)||i>=8192&&i<=8303&&(8214===i||8224===i||8225===i||8240===i||8241===i||8251===i||8252===i||8258===i||8263===i||8264===i||8265===i||8273===i)||i>=8448&&i<=8527||i>=8528&&i<=8591||i>=8960&&i<=9215&&(i>=8960&&i<=8967||i>=8972&&i<=8991||i>=8996&&i<=9e3||9003===i||i>=9085&&i<=9114||i>=9150&&i<=9165||9167===i||i>=9169&&i<=9179||i>=9186&&i<=9215)||i>=9216&&i<=9279&&9251!==i||i>=9280&&i<=9311||i>=9312&&i<=9471||i>=9632&&i<=9727||i>=9728&&i<=9983&&!(i>=9754&&i<=9759)||i>=11008&&i<=11263&&(i>=11026&&i<=11055||i>=11088&&i<=11097||i>=11192&&i<=11243)||r5(i)||r6(i)||i>=57344&&i<=63743||nu(i)||nd(i)||nf(i)||8734===i||8756===i||8757===i||i>=9984&&i<=10087||i>=10102&&i<=10131||65532===i||65533===i)}function ny(i){return i>=1424&&i<=2303||nc(i)||np(i)}const nx="deferred",nv="loading",nb="loaded";let nw=null,nT="unavailable",nE=null;const nS=function(i){i&&"string"==typeof i&&i.indexOf("NetworkError")>-1&&(nT="error"),nw&&nw(i)};function nI(){nM.fire(new te("pluginStateChange",{pluginStatus:nT,pluginURL:nE}))}const nM=new ti,nA=function(){return nT},nC=function(){if(nT!==nx||!nE)throw Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");nT=nv,nI(),nE&&e3({url:nE},i=>{i?nS(i):(nT=nb,nI())})},nz={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>nT===nb||null!=nz.applyArabicShaping,isLoading:()=>nT===nv,setState(i){nT=i.pluginStatus,nE=i.pluginURL},isParsed:()=>null!=nz.applyArabicShaping&&null!=nz.processBidirectionalText&&null!=nz.processStyledBidirectionalText,getPluginURL:()=>nE};class nk{constructor(i,r){this.zoom=i,r?(this.now=r.now,this.fadeDuration=r.fadeDuration,this.zoomHistory=r.zoomHistory,this.transition=r.transition,this.pitch=r.pitch):(this.now=0,this.fadeDuration=0,this.zoomHistory=new rY,this.transition={},this.pitch=0)}isSupportedScript(i){return function(i,r){for(const n of i){var o;if(o=n.charCodeAt(0),!r&&ny(o)||o>=2304&&o<=3583||o>=3840&&o<=4255||o>=6016&&o<=6143)return!1}return!0}(i,nz.isLoaded())}crossFadingFactor(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const i=this.zoom,r=i-Math.floor(i),n=this.crossFadingFactor();return i>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:r+(1-r)*n}:{fromScale:.5,toScale:1,t:1-(1-n)*r}}}class nP{constructor(i,r){this.property=i,this.value=r,this.expression=function(i,r){if(iQ(i))return new ri(i,r);if(i8(i)){const n=rt(i,r);if("error"===n.result)throw Error(n.value.map(i=>`${i.key}: ${i.message}`).join(", "));return n.value}{let o=i;return"string"==typeof i&&"color"===r.type&&(o=tC.parse(i)),{kind:"constant",evaluate:()=>o}}}(void 0===r?i.specification.default:r,i.specification)}isDataDriven(){return"source"===this.expression.kind||"composite"===this.expression.kind}possiblyEvaluate(i,r,n){return this.property.possiblyEvaluate(this,i,r,n)}}class nD{constructor(i){this.property=i,this.value=new nP(i,void 0)}transitioned(i,r){return new nB(this.property,this.value,r,H({},i.transition,this.transition),i.now)}untransitioned(){return new nB(this.property,this.value,null,{},0)}}class nL{constructor(i){this._properties=i,this._values=Object.create(i.defaultTransitionablePropertyValues)}getValue(i){return eo(this._values[i].value.value)}setValue(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nD(this._values[i].property)),this._values[i].value=new nP(this._values[i].property,null===r?void 0:eo(r))}getTransition(i){return eo(this._values[i].transition)}setTransition(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nD(this._values[i].property)),this._values[i].transition=eo(r)||void 0}serialize(){const i={};for(const r of Object.keys(this._values)){const n=this.getValue(r);void 0!==n&&(i[r]=n);const o=this.getTransition(r);void 0!==o&&(i[`${r}-transition`]=o)}return i}transitioned(i,r){const n=new nR(this._properties);for(const o of Object.keys(this._values))n._values[o]=this._values[o].transitioned(i,r._values[o]);return n}untransitioned(){const i=new nR(this._properties);for(const r of Object.keys(this._values))i._values[r]=this._values[r].untransitioned();return i}}class nB{constructor(i,r,n,o,s){const a=o.delay||0,l=o.duration||0;s=s||0,this.property=i,this.value=r,this.begin=s+a,this.end=this.begin+l,i.specification.transition&&(o.delay||o.duration)&&(this.prior=n)}possiblyEvaluate(i,r,n){const o=i.now||0,s=this.value.possiblyEvaluate(i,r,n),a=this.prior;if(a){if(o>this.end||this.value.isDataDriven())return this.prior=null,s;if(oo.zoomHistory.lastIntegerZoom?{from:i,to:r,other:n}:{from:n,to:r,other:i}}interpolate(i){return i}}class nG{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){if(void 0!==i.value){if("constant"===i.expression.kind){const s=i.expression.evaluate(r,null,{},n,o);return this._calculate(s,s,s,r)}return this._calculate(i.expression.evaluate(new nk(Math.floor(r.zoom-1),r)),i.expression.evaluate(new nk(Math.floor(r.zoom),r)),i.expression.evaluate(new nk(Math.floor(r.zoom+1),r)),r)}}_calculate(i,r,n,o){return o.zoom>o.zoomHistory.lastIntegerZoom?{from:i,to:r}:{from:n,to:r}}interpolate(i){return i}}class nZ{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){return!!i.expression.evaluate(r,null,{},n,o)}interpolate(){return!1}}class n${constructor(i){for(const r in this.properties=i,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],i){const n=i[r];n.specification.overridable&&this.overridableProperties.push(r);const o=this.defaultPropertyValues[r]=new nP(n,void 0),s=this.defaultTransitionablePropertyValues[r]=new nD(n);this.defaultTransitioningPropertyValues[r]=s.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=o.possiblyEvaluate({})}}}function nq(i,r){return 256*(i=Z(Math.floor(i),0,255))+Z(Math.floor(r),0,255)}r$("DataDrivenProperty",nN),r$("DataConstantProperty",nV),r$("CrossFadedDataDrivenProperty",nj),r$("CrossFadedProperty",nG),r$("ColorRampProperty",nZ);const nX={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class nW{constructor(i,r){this._structArray=i,this._pos1=r*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class nH{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(i,r){return i._trim(),r&&(i.isTransferred=!0,r.push(i.arrayBuffer)),{length:i.length,arrayBuffer:i.arrayBuffer}}static deserialize(i){const r=Object.create(this.prototype);return r.arrayBuffer=i.arrayBuffer,r.length=i.length,r.capacity=i.arrayBuffer.byteLength/r.bytesPerElement,r._refreshViews(),r}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(i){this.reserve(i),this.length=i}reserve(i){if(i>this.capacity){this.capacity=Math.max(i,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function nK(i,r=1){let n=0,o=0;return{members:i.map(i=>{const s=nX[i.type].BYTES_PER_ELEMENT,a=n=nY(n,Math.max(r,s)),l=i.components||1;return o=Math.max(o,s),n+=s*l,{name:i.name,type:i.type,components:l,offset:a}}),size:nY(n,Math.max(o,r)),alignment:r}}function nY(i,r){return Math.ceil(i/r)*r}class nJ extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.int16[o+0]=r,this.int16[o+1]=n,i}}nJ.prototype.bytesPerElement=4,r$("StructArrayLayout2i4",nJ);class nQ extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=4*i;return this.int16[a+0]=r,this.int16[a+1]=n,this.int16[a+2]=o,this.int16[a+3]=s,i}}nQ.prototype.bytesPerElement=8,r$("StructArrayLayout4i8",nQ);class n0 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=6*i,u=12*i,d=3*i;return this.int16[h+0]=r,this.int16[h+1]=n,this.uint8[u+4]=o,this.uint8[u+5]=s,this.uint8[u+6]=a,this.uint8[u+7]=l,this.float32[d+2]=c,i}}n0.prototype.bytesPerElement=12,r$("StructArrayLayout2i4ub1f12",n0);class n1 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.float32[s+0]=r,this.float32[s+1]=n,this.float32[s+2]=o,i}}n1.prototype.bytesPerElement=12,r$("StructArrayLayout3f12",n1);class n2 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u){const d=this.length;return this.resize(d+1),this.emplace(d,i,r,n,o,s,a,l,c,h,u)}emplace(i,r,n,o,s,a,l,c,h,u,d){const p=10*i;return this.uint16[p+0]=r,this.uint16[p+1]=n,this.uint16[p+2]=o,this.uint16[p+3]=s,this.uint16[p+4]=a,this.uint16[p+5]=l,this.uint16[p+6]=c,this.uint16[p+7]=h,this.uint16[p+8]=u,this.uint16[p+9]=d,i}}n2.prototype.bytesPerElement=20,r$("StructArrayLayout10ui20",n2);class n3 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c){const h=this.length;return this.resize(h+1),this.emplace(h,i,r,n,o,s,a,l,c)}emplace(i,r,n,o,s,a,l,c,h){const u=8*i;return this.uint16[u+0]=r,this.uint16[u+1]=n,this.uint16[u+2]=o,this.uint16[u+3]=s,this.uint16[u+4]=a,this.uint16[u+5]=l,this.uint16[u+6]=c,this.uint16[u+7]=h,i}}n3.prototype.bytesPerElement=16,r$("StructArrayLayout8ui16",n3);class n5 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){const y=this.length;return this.resize(y+1),this.emplace(y,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y){const x=16*i;return this.int16[x+0]=r,this.int16[x+1]=n,this.int16[x+2]=o,this.int16[x+3]=s,this.uint16[x+4]=a,this.uint16[x+5]=l,this.uint16[x+6]=c,this.uint16[x+7]=h,this.int16[x+8]=u,this.int16[x+9]=d,this.int16[x+10]=p,this.int16[x+11]=f,this.int16[x+12]=m,this.int16[x+13]=_,this.int16[x+14]=g,this.int16[x+15]=y,i}}n5.prototype.bytesPerElement=32,r$("StructArrayLayout4i4ui4i4i32",n5);class n4 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.uint32[1*i+0]=r,i}}n4.prototype.bytesPerElement=4,r$("StructArrayLayout1ul4",n4);class n6 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f){const m=this.length;return this.resize(m+1),this.emplace(m,i,r,n,o,s,a,l,c,h,u,d,p,f)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m){const _=20*i,g=10*i;return this.int16[_+0]=r,this.int16[_+1]=n,this.int16[_+2]=o,this.int16[_+3]=s,this.int16[_+4]=a,this.float32[g+3]=l,this.float32[g+4]=c,this.float32[g+5]=h,this.float32[g+6]=u,this.int16[_+14]=d,this.uint32[g+8]=p,this.uint16[_+18]=f,this.uint16[_+19]=m,i}}n6.prototype.bytesPerElement=40,r$("StructArrayLayout5i4f1i1ul2ui40",n6);class n8 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=8*i;return this.int16[h+0]=r,this.int16[h+1]=n,this.int16[h+2]=o,this.int16[h+4]=s,this.int16[h+5]=a,this.int16[h+6]=l,this.int16[h+7]=c,i}}n8.prototype.bytesPerElement=16,r$("StructArrayLayout3i2i2i16",n8);class n9 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s){const a=this.length;return this.resize(a+1),this.emplace(a,i,r,n,o,s)}emplace(i,r,n,o,s,a){const l=4*i,c=8*i;return this.float32[l+0]=r,this.float32[l+1]=n,this.float32[l+2]=o,this.int16[c+6]=s,this.int16[c+7]=a,i}}n9.prototype.bytesPerElement=16,r$("StructArrayLayout2f1f2i16",n9);class n7 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=12*i,l=3*i;return this.uint8[a+0]=r,this.uint8[a+1]=n,this.float32[l+1]=o,this.float32[l+2]=s,i}}n7.prototype.bytesPerElement=12,r$("StructArrayLayout2ub2f12",n7);class oe extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.uint16[s+0]=r,this.uint16[s+1]=n,this.uint16[s+2]=o,i}}oe.prototype.bytesPerElement=6,r$("StructArrayLayout3ui6",oe);class ot extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w){const T=this.length;return this.resize(T+1),this.emplace(T,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T){const E=30*i,S=15*i,I=60*i;return this.int16[E+0]=r,this.int16[E+1]=n,this.int16[E+2]=o,this.float32[S+2]=s,this.float32[S+3]=a,this.uint16[E+8]=l,this.uint16[E+9]=c,this.uint32[S+5]=h,this.uint32[S+6]=u,this.uint32[S+7]=d,this.uint16[E+16]=p,this.uint16[E+17]=f,this.uint16[E+18]=m,this.float32[S+10]=_,this.float32[S+11]=g,this.uint8[I+48]=y,this.uint8[I+49]=x,this.uint8[I+50]=v,this.uint32[S+13]=b,this.int16[E+28]=w,this.uint8[I+58]=T,i}}ot.prototype.bytesPerElement=60,r$("StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60",ot);class oi extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k){const P=this.length;return this.resize(P+1),this.emplace(P,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k,P){const D=38*i,L=19*i;return this.int16[D+0]=r,this.int16[D+1]=n,this.int16[D+2]=o,this.float32[L+2]=s,this.float32[L+3]=a,this.int16[D+8]=l,this.int16[D+9]=c,this.int16[D+10]=h,this.int16[D+11]=u,this.int16[D+12]=d,this.int16[D+13]=p,this.uint16[D+14]=f,this.uint16[D+15]=m,this.uint16[D+16]=_,this.uint16[D+17]=g,this.uint16[D+18]=y,this.uint16[D+19]=x,this.uint16[D+20]=v,this.uint16[D+21]=b,this.uint16[D+22]=w,this.uint16[D+23]=T,this.uint16[D+24]=E,this.uint16[D+25]=S,this.uint16[D+26]=I,this.uint16[D+27]=M,this.uint16[D+28]=A,this.uint32[L+15]=C,this.float32[L+16]=z,this.float32[L+17]=k,this.float32[L+18]=P,i}}oi.prototype.bytesPerElement=76,r$("StructArrayLayout3i2f6i15ui1ul3f76",oi);class or extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.float32[1*i+0]=r,i}}or.prototype.bytesPerElement=4,r$("StructArrayLayout1f4",or);class on extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.int16[s+0]=r,this.int16[s+1]=n,this.int16[s+2]=o,i}}on.prototype.bytesPerElement=6,r$("StructArrayLayout3i6",on);class oo extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=7*i;return this.float32[h+0]=r,this.float32[h+1]=n,this.float32[h+2]=o,this.float32[h+3]=s,this.float32[h+4]=a,this.float32[h+5]=l,this.float32[h+6]=c,i}}oo.prototype.bytesPerElement=28,r$("StructArrayLayout7f28",oo);class os extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=6*i;return this.uint32[3*i+0]=r,this.uint16[a+2]=n,this.uint16[a+3]=o,this.uint16[a+4]=s,i}}os.prototype.bytesPerElement=12,r$("StructArrayLayout1ul3ui12",os);class oa extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.uint16[o+0]=r,this.uint16[o+1]=n,i}}oa.prototype.bytesPerElement=4,r$("StructArrayLayout2ui4",oa);class ol extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.uint16[1*i+0]=r,i}}ol.prototype.bytesPerElement=2,r$("StructArrayLayout1ui2",ol);class oc extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.float32[o+0]=r,this.float32[o+1]=n,i}}oc.prototype.bytesPerElement=8,r$("StructArrayLayout2f8",oc);class oh extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=4*i;return this.float32[a+0]=r,this.float32[a+1]=n,this.float32[a+2]=o,this.float32[a+3]=s,i}}oh.prototype.bytesPerElement=16,r$("StructArrayLayout4f16",oh);class ou extends nW{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}ou.prototype.size=40;class od extends n6{get(i){return new ou(this,i)}}r$("CollisionBoxArray",od);class op extends nW{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(i){this._structArray.uint8[this._pos1+49]=i}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(i){this._structArray.uint8[this._pos1+50]=i}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(i){this._structArray.uint32[this._pos4+13]=i}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(i){this._structArray.uint8[this._pos1+58]=i}}op.prototype.size=60;class of extends ot{get(i){return new op(this,i)}}r$("PlacedSymbolArray",of);class om extends nW{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(i){this._structArray.uint32[this._pos4+15]=i}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}om.prototype.size=76;class o_ extends oi{get(i){return new om(this,i)}}r$("SymbolInstanceArray",o_);class og extends or{getoffsetX(i){return this.float32[1*i+0]}}r$("GlyphOffsetArray",og);class oy extends on{getx(i){return this.int16[3*i+0]}gety(i){return this.int16[3*i+1]}gettileUnitDistanceFromAnchor(i){return this.int16[3*i+2]}}r$("SymbolLineVertexArray",oy);class ox extends nW{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}ox.prototype.size=12;class ov extends os{get(i){return new ox(this,i)}}r$("FeatureIndexArray",ov);class ob extends nW{get a_centroid_pos0(){return this._structArray.uint16[this._pos2+0]}get a_centroid_pos1(){return this._structArray.uint16[this._pos2+1]}}ob.prototype.size=4;class ow extends oa{get(i){return new ob(this,i)}}r$("FillExtrusionCentroidArray",ow);const oT=nK([{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"}]),oE=nK([{name:"a_dash_to",components:4,type:"Uint16"},{name:"a_dash_from",components:4,type:"Uint16"}]);var oS=tM(function(i){i.exports=function(i,r){var n,o,s,a,l,c;for(o=i.length-(n=3&i.length),s=r,c=0;c>>16)*3432918353&65535)<<16)&4294967295)<<15|l>>>17))*461845907+(((l>>>16)*461845907&65535)<<16)&4294967295)<<13|s>>>19))+((5*(s>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,n){case 3:l^=(255&i.charCodeAt(c+2))<<16;case 2:l^=(255&i.charCodeAt(c+1))<<8;case 1:s^=l=(65535&(l=(l=(65535&(l^=255&i.charCodeAt(c)))*3432918353+(((l>>>16)*3432918353&65535)<<16)&4294967295)<<15|l>>>17))*461845907+(((l>>>16)*461845907&65535)<<16)&4294967295}return s^=i.length,s=2246822507*(65535&(s^=s>>>16))+((2246822507*(s>>>16)&65535)<<16)&4294967295,s=3266489909*(65535&(s^=s>>>13))+((3266489909*(s>>>16)&65535)<<16)&4294967295,(s^=s>>>16)>>>0}}),oI=tM(function(i){i.exports=function(i,r){for(var n,o=i.length,s=r^o,a=0;o>=4;)n=1540483477*(65535&(n=255&i.charCodeAt(a)|(255&i.charCodeAt(++a))<<8|(255&i.charCodeAt(++a))<<16|(255&i.charCodeAt(++a))<<24))+((1540483477*(n>>>16)&65535)<<16),s=1540483477*(65535&s)+((1540483477*(s>>>16)&65535)<<16)^(n=1540483477*(65535&(n^=n>>>24))+((1540483477*(n>>>16)&65535)<<16)),o-=4,++a;switch(o){case 3:s^=(255&i.charCodeAt(a+2))<<16;case 2:s^=(255&i.charCodeAt(a+1))<<8;case 1:s=1540483477*(65535&(s^=255&i.charCodeAt(a)))+((1540483477*(s>>>16)&65535)<<16)}return s=1540483477*(65535&(s^=s>>>13))+((1540483477*(s>>>16)&65535)<<16),(s^=s>>>15)>>>0}}),oM=oS;oM.murmur3=oS,oM.murmur2=oI;class oA{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(i,r,n,o){this.ids.push(oC(i)),this.positions.push(r,n,o)}getPositions(i){const r=oC(i);let n=0,o=this.ids.length-1;for(;n>1;this.ids[s]>=r?o=s:n=s+1}const a=[];for(;this.ids[n]===r;)a.push({index:this.positions[3*n],start:this.positions[3*n+1],end:this.positions[3*n+2]}),n++;return a}static serialize(i,r){const n=new Float64Array(i.ids),o=new Uint32Array(i.positions);return function i(r,n,o,s){for(;o>1];let l=o-1,c=s+1;for(;;){do l++;while(r[l]a)if(l>=c)break;oz(r,l,c),oz(n,3*l,3*c),oz(n,3*l+1,3*c+1),oz(n,3*l+2,3*c+2)}c-o`u_${i}`),this.type=n}setUniform(i,r,n){i.set(n.constantOr(this.value))}getBinding(i,r,n){return"color"===this.type?new oL(i,r):new oP(i,r)}}class oV{constructor(i,r){this.uniformNames=r.map(i=>`u_${i}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(i,r){this.pixelRatioFrom=r.pixelRatio,this.pixelRatioTo=i.pixelRatio,this.patternFrom=r.tl.concat(r.br),this.patternTo=i.tl.concat(i.br)}setUniform(i,r,n,o){const s="u_pattern_to"===o||"u_dash_to"===o?this.patternTo:"u_pattern_from"===o||"u_dash_from"===o?this.patternFrom:"u_pixel_ratio_to"===o?this.pixelRatioTo:"u_pixel_ratio_from"===o?this.pixelRatioFrom:null;s&&i.set(s)}getBinding(i,r,n){return"u_pattern_from"===n||"u_pattern_to"===n||"u_dash_from"===n||"u_dash_to"===n?new oD(i,r):new oP(i,r)}}class oN{constructor(i,r,n,o){this.expression=i,this.type=n,this.maxValue=0,this.paintVertexAttributes=r.map(i=>({name:`a_${i}`,type:"Float32",components:"color"===n?2:1,offset:0})),this.paintVertexArray=new o}populatePaintArray(i,r,n,o,s,a){const l=this.paintVertexArray.length,c=this.expression.evaluate(new nk(0),r,{},s,o,a);this.paintVertexArray.resize(i),this._setPaintValue(l,i,c)}updatePaintArray(i,r,n,o,s){const a=this.expression.evaluate({zoom:0},n,o,void 0,s);this._setPaintValue(i,r,a)}_setPaintValue(i,r,n){if("color"===this.type){const o=oO(n);for(let s=i;s`u_${i}_t`),this.type=n,this.useIntegerZoom=o,this.zoom=s,this.maxValue=0,this.paintVertexAttributes=r.map(i=>({name:`a_${i}`,type:"Float32",components:"color"===n?4:2,offset:0})),this.paintVertexArray=new a}populatePaintArray(i,r,n,o,s,a){const l=this.expression.evaluate(new nk(this.zoom),r,{},s,o,a),c=this.expression.evaluate(new nk(this.zoom+1),r,{},s,o,a),h=this.paintVertexArray.length;this.paintVertexArray.resize(i),this._setPaintValue(h,i,l,c)}updatePaintArray(i,r,n,o,s){const a=this.expression.evaluate({zoom:this.zoom},n,o,void 0,s),l=this.expression.evaluate({zoom:this.zoom+1},n,o,void 0,s);this._setPaintValue(i,r,a,l)}_setPaintValue(i,r,n,o){if("color"===this.type){const s=oO(n),a=oO(o);for(let l=i;l!0){this.binders={},this._buffers=[];const o=[];for(const s in i.paint._values){var a,l;if(!n(s))continue;const c=i.paint.get(s);if(!(c instanceof nO&&iH(c.property.specification)))continue;const h=(a=s,l=i.type,oq[a]||[a.replace(`${l}-`,"").replace(/-/g,"_")]),u=c.value,d=c.property.specification.type,p=c.property.useIntegerZoom,f=c.property.specification["property-type"],m="cross-faded"===f||"cross-faded-data-driven"===f,_="line-dasharray"===String(s)&&"constant"!==i.layout.get("line-cap").value.kind;if("constant"!==u.kind||_){if("source"===u.kind||_||m){const g=oH(s,d,"source");this.binders[s]=m?new oG(u,h,d,p,r,g,i.id):new oN(u,h,d,g),o.push(`/a_${s}`)}else{const y=oH(s,d,"composite");this.binders[s]=new oj(u,h,d,p,r,y),o.push(`/z_${s}`)}}else this.binders[s]=m?new oV(u.value,h):new oU(u.value,h,d),o.push(`/u_${s}`)}this.cacheKey=o.sort().join("")}getMaxValue(i){const r=this.binders[i];return r instanceof oN||r instanceof oj?r.maxValue:0}populatePaintArrays(i,r,n,o,s,a){for(const l in this.binders){const c=this.binders[l];(c instanceof oN||c instanceof oj||c instanceof oG)&&c.populatePaintArray(i,r,n,o,s,a)}}setConstantPatternPositions(i,r){for(const n in this.binders){const o=this.binders[n];o instanceof oV&&o.setConstantPatternPositions(i,r)}}updatePaintArrays(i,r,n,o,s,a){let l=!1;for(const c in i){const h=r.getPositions(c);for(const u of h){const d=n.feature(u.index);for(const p in this.binders){const f=this.binders[p];if((f instanceof oN||f instanceof oj||f instanceof oG)&&!0===f.expression.isStateDependent){const m=o.paint.get(p);f.expression=m.value,f.updatePaintArray(u.start,u.end,d,i[c],s,a),l=!0}}}}return l}defines(){const i=[];for(const r in this.binders){const n=this.binders[r];(n instanceof oU||n instanceof oV)&&i.push(...n.uniformNames.map(i=>`#define HAS_UNIFORM_${i}`))}return i}getBinderAttributes(){const i=[];for(const r in this.binders){const n=this.binders[r];if(n instanceof oN||n instanceof oj||n instanceof oG)for(let o=0;o!0){for(const o of(this.programConfigurations={},i))this.programConfigurations[o.id]=new oZ(o,r,n);this.needsUpload=!1,this._featureMap=new oA,this._bufferOffset=0}populatePaintArrays(i,r,n,o,s,a,l){for(const c in this.programConfigurations)this.programConfigurations[c].populatePaintArrays(i,r,o,s,a,l);void 0!==r.id&&this._featureMap.add(r.id,n,this._bufferOffset,i),this._bufferOffset=i,this.needsUpload=!0}updatePaintArrays(i,r,n,o,s){for(const a of n)this.needsUpload=this.programConfigurations[a.id].updatePaintArrays(i,this._featureMap,r,a,o,s)||this.needsUpload}get(i){return this.programConfigurations[i]}upload(i){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(i);this.needsUpload=!1}}destroy(){for(const i in this.programConfigurations)this.programConfigurations[i].destroy()}}const oq={"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"line-dasharray":["dash_to","dash_from"]},oX={"line-pattern":{source:n2,composite:n2},"fill-pattern":{source:n2,composite:n2},"fill-extrusion-pattern":{source:n2,composite:n2},"line-dasharray":{source:n3,composite:n3}},oW={color:{source:oc,composite:oh},number:{source:or,composite:oc}};function oH(i,r,n){const o=oX[i];return o&&o[n]||oW[r][n]}r$("ConstantBinder",oU),r$("CrossFadedConstantBinder",oV),r$("SourceExpressionBinder",oN),r$("CrossFadedCompositeBinder",oG),r$("CompositeExpressionBinder",oj),r$("ProgramConfiguration",oZ,{omit:["_buffers"]}),r$("ProgramConfigurationSet",o$);const oK="-transition";class oY extends ti{constructor(i,r){if(super(),this.id=i.id,this.type=i.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,"custom"!==i.type&&(this.metadata=i.metadata,this.minzoom=i.minzoom,this.maxzoom=i.maxzoom,"background"!==i.type&&"sky"!==i.type&&(this.source=i.source,this.sourceLayer=i["source-layer"],this.filter=i.filter),r.layout&&(this._unevaluatedLayout=new nF(r.layout)),r.paint)){for(const n in this._transitionablePaint=new nL(r.paint),i.paint)this.setPaintProperty(n,i.paint[n],{validate:!1});for(const o in i.layout)this.setLayoutProperty(o,i.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new nU(r.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(i){return"visibility"===i?this.visibility:this._unevaluatedLayout.getValue(i)}setLayoutProperty(i,r,n={}){null!=r&&this._validate(rO,`layers.${this.id}.layout.${i}`,i,r,n)||("visibility"!==i?this._unevaluatedLayout.setValue(i,r):this.visibility=r)}getPaintProperty(i){return ei(i,oK)?this._transitionablePaint.getTransition(i.slice(0,-oK.length)):this._transitionablePaint.getValue(i)}setPaintProperty(i,r,n={}){if(null!=r&&this._validate(rF,`layers.${this.id}.paint.${i}`,i,r,n))return!1;if(ei(i,oK))return this._transitionablePaint.setTransition(i.slice(0,-oK.length),r||void 0),!1;{const o=this._transitionablePaint._values[i],s="cross-faded-data-driven"===o.property.specification["property-type"],a=o.value.isDataDriven(),l=o.value;this._transitionablePaint.setValue(i,r),this._handleSpecialPaintPropertyUpdate(i);const c=this._transitionablePaint._values[i].value;return c.isDataDriven()||a||s||this._handleOverridablePaintPropertyUpdate(i,l,c)}}_handleSpecialPaintPropertyUpdate(i){}getProgramIds(){return null}getProgramConfiguration(i){return null}_handleOverridablePaintPropertyUpdate(i,r,n){return!1}isHidden(i){return!!(this.minzoom&&i=this.maxzoom)||"none"===this.visibility}updateTransitions(i){this._transitioningPaint=this._transitionablePaint.transitioned(i,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(i,r){i.getCrossfadeParameters&&(this._crossfadeParameters=i.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(i,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(i,void 0,r)}serialize(){const i={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(i.layout=i.layout||{},i.layout.visibility=this.visibility),en(i,(i,r)=>!(void 0===i||"layout"===r&&!Object.keys(i).length||"paint"===r&&!Object.keys(i).length))}_validate(i,r,n,o,s={}){return(!s||!1!==s.validate)&&rU(this,i.call(rP,{key:r,layerType:this.type,objectKey:n,value:o,styleSpec:tr,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const i in this.paint._values){const r=this.paint.get(i);if(r instanceof nO&&iH(r.property.specification)&&("source"===r.value.kind||"composite"===r.value.kind)&&r.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=rh(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const oJ=nK([{name:"a_pos",components:2,type:"Int16"}],4),{members:oQ}=oJ;class o0{constructor(i=[]){this.segments=i}prepareSegment(i,r,n,o){let s=this.segments[this.segments.length-1];return i>o0.MAX_VERTEX_ARRAY_LENGTH&&ea(`Max vertices per segment is ${o0.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${i}`),(!s||s.vertexLength+i>o0.MAX_VERTEX_ARRAY_LENGTH||s.sortKey!==o)&&(s={vertexOffset:r.length,primitiveOffset:n.length,vertexLength:0,primitiveLength:0},void 0!==o&&(s.sortKey=o),this.segments.push(s)),s}get(){return this.segments}destroy(){for(const i of this.segments)for(const r in i.vaos)i.vaos[r].destroy()}static simpleSegment(i,r,n,o){return new o0([{vertexOffset:i,primitiveOffset:r,vertexLength:n,primitiveLength:o,vaos:{},sortKey:0}])}}o0.MAX_VERTEX_ARRAY_LENGTH=65535,r$("SegmentVector",o0);class o1{constructor(i,r){i&&(r?this.setSouthWest(i).setNorthEast(r):4===i.length?this.setSouthWest([i[0],i[1]]).setNorthEast([i[2],i[3]]):this.setSouthWest(i[0]).setNorthEast(i[1]))}setNorthEast(i){return this._ne=i instanceof o2?new o2(i.lng,i.lat):o2.convert(i),this}setSouthWest(i){return this._sw=i instanceof o2?new o2(i.lng,i.lat):o2.convert(i),this}extend(i){let r,n;const o=this._sw,s=this._ne;if(i instanceof o2)r=i,n=i;else{if(!(i instanceof o1))return Array.isArray(i)?4===i.length||i.every(Array.isArray)?this.extend(o1.convert(i)):this.extend(o2.convert(i)):this;if(r=i._sw,n=i._ne,!r||!n)return this}return o||s?(o.lng=Math.min(r.lng,o.lng),o.lat=Math.min(r.lat,o.lat),s.lng=Math.max(n.lng,s.lng),s.lat=Math.max(n.lat,s.lat)):(this._sw=new o2(r.lng,r.lat),this._ne=new o2(n.lng,n.lat)),this}getCenter(){return new o2((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new o2(this.getWest(),this.getNorth())}getSouthEast(){return new o2(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(i){const{lng:r,lat:n}=o2.convert(i);let o=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(o=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=n&&n<=this._ne.lat&&o}static convert(i){return!i||i instanceof o1?i:new o1(i)}}class o2{constructor(i,r){if(isNaN(i)||isNaN(r))throw Error(`Invalid LngLat object: (${i}, ${r})`);if(this.lng=+i,this.lat=+r,this.lat>90||this.lat<-90)throw Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new o2(q(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(i){const r=Math.PI/180,n=this.lat*r,o=i.lat*r,s=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((i.lng-this.lng)*r);return 6371008.8*Math.acos(Math.min(s,1))}toBounds(i=0){const r=360*i/40075017,n=r/Math.cos(Math.PI/180*this.lat);return new o1(new o2(this.lng-n,this.lat-r),new o2(this.lng+n,this.lat+r))}static convert(i){if(i instanceof o2)return i;if(Array.isArray(i)&&(2===i.length||3===i.length))return new o2(Number(i[0]),Number(i[1]));if(!Array.isArray(i)&&"object"==typeof i&&null!==i)return new o2(Number("lng"in i?i.lng:i.lon),Number(i.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const o3=2*Math.PI*6371008.8;function o5(i){return o3*Math.cos(i*Math.PI/180)}function o4(i){return(180+i)/360}function o6(i){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360}function o8(i){return 360*i-180}function o9(i){return 360/Math.PI*Math.atan(Math.exp((180-360*i)*Math.PI/180))-90}function o7(i,r){return i*o5(o9(r))}class se{constructor(i,r,n=0){this.x=+i,this.y=+r,this.z=+n}static fromLngLat(i,r=0){const n=o2.convert(i);return new se(o4(n.lng),o6(n.lat),r/o5(n.lat))}toLngLat(){return new o2(o8(this.x),o9(this.y))}toAltitude(){return o7(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/o3*(1/Math.cos(o9(this.y)*Math.PI/180))}}const st=-16383-1;function si(i,r,n){const o=i.loadGeometry(),s=i.extent,a=8192/s;if(r&&n&&n.projection.isReprojectedInTileSpace){const c=1<{const n=o8((r.x+i.x/s)/c),o=o9((r.y+i.y/s)/c),a=p.project(n,o);i.x=(a.x*h-u)*s,i.y=(a.y*h-d)*s};for(let m=0;m=d?(i(r,n,o,p,f,c,m,u,d),i(r,p,f,s,a,m,h,u,d)):r.push(h)}(c,o,s,u,d,a,h,r,1):c.push(h),o=u,s=d,a=h}return c}(o[m],f,1);else{const _=[];for(const g of o[m])g.x<0||g.x>=s||g.y<0||g.y>=s||(f(g),_.push(g));o[m]=_}}for(const y of o)for(const x of y)!function(i,r){const n=Math.round(i.x*r),o=Math.round(i.y*r);i.x=Z(n,st,16383),i.y=Z(o,st,16383),(ni.x+1||oi.y+1)&&ea("Geometry exceeds allowed extent, reduce your vector tile buffer size")}(x,a);return o}function sr(i,r){return{type:i.type,id:i.id,properties:i.properties,geometry:r?si(i):[]}}function sn(i,r,n,o,s){i.emplaceBack(2*r+(o+1)/2,2*n+(s+1)/2)}class so{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.layoutVertexArray=new nJ,this.indexArray=new oe,this.segments=new o0,this.programConfigurations=new o$(i.layers,i.zoom),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){const s=this.layers[0],a=[];let l=null;for(const{feature:c,id:h,index:u,sourceLayerIndex:d}of("circle"===s.type&&(l=s.layout.get("circle-sort-key")),i)){const p=this.layers[0]._featureFilter.needGeometry,f=sr(c,p);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),f,n))continue;const m=l?l.evaluate(f,{},n):void 0,_={id:h,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:p?f.geometry:si(c,n,o),patterns:{},sortKey:m};a.push(_)}for(const g of(l&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:y,index:x,sourceLayerIndex:v}=g,b=i[x].feature;this.addFeature(g,y,x,r.availableImages,n),r.featureIndex.insert(b,y,x,v,this.index)}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,oQ),this.indexBuffer=i.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(i,r,n,o,s){for(const a of r)for(const l of a){const c=l.x,h=l.y;if(c<0||c>=8192||h<0||h>=8192)continue;const u=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,i.sortKey),d=u.vertexLength;sn(this.layoutVertexArray,c,h,-1,-1),sn(this.layoutVertexArray,c,h,1,-1),sn(this.layoutVertexArray,c,h,1,1),sn(this.layoutVertexArray,c,h,-1,1),this.indexArray.emplaceBack(d,d+1,d+2),this.indexArray.emplaceBack(d,d+3,d+2),u.vertexLength+=4,u.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,{},o,s)}}function ss(i,r){for(let n=0;n1?n:n.sub(r)._mult(s)._add(r))}function su(i,r){let n,o,s,a=!1;for(let l=0;lr.y!=s.y>r.y&&r.x<(s.x-o.x)*(r.y-o.y)/(s.y-o.y)+o.x&&(a=!a)}return a}function sd(i,r){let n=!1;for(let o=0,s=i.length-1;or.y!=l.y>r.y&&r.x<(l.x-a.x)*(r.y-a.y)/(l.y-a.y)+a.x&&(n=!n)}return n}function sp(i,r,n,o,s){for(const a of i)if(r<=a.x&&n<=a.y&&o>=a.x&&s>=a.y)return!0;const c=[new l(r,n),new l(r,s),new l(o,s),new l(o,n)];if(i.length>2){for(const h of c)if(sd(i,h))return!0}for(let u=0;us.x&&r.x>s.x||i.ys.y&&r.y>s.y)return!1;const a=el(i,r,n[0]);return a!==el(i,r,n[1])||a!==el(i,r,n[2])||a!==el(i,r,n[3])}(i[u],i[u+1],c))return!0;return!1}function sf(i,r,n){const o=r.paint.get(i).value;return"constant"===o.kind?o.value:n.programConfigurations.get(r.id).getMaxValue(i)}function sm(i){return Math.sqrt(i[0]*i[0]+i[1]*i[1])}function s_(i,r,n,o,s){if(!r[0]&&!r[1])return i;const a=l.convert(r)._mult(s);"viewport"===n&&a._rotate(-o);const c=[];for(let h=0;h{var a,l;const c=D([],n,i),h=1/c[3]/r*s;return a=c,l=[h,h,o?1/c[3]:h,h],a[0]=c[0]*l[0],a[1]=c[1]*l[1],a[2]=c[2]*l[2],a[3]=c[3]*l[3],a}),l=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(i=>{const r=A([],z([],E([],a[i[0]],a[i[1]]),E([],a[i[2]],a[i[1]]))),n=-C(r,a[i[1]]);return r.concat(n)});return new sv(a,l)}}class sb{constructor(i,r){this.min=i,this.max=r,this.center=I([],T([],this.min,this.max),.5)}quadrant(i){const r=[i%2==0,i<2],n=v(this.min),o=v(this.max);for(let s=0;s=0;if(0===a)return 0;a!==r.length&&(n=!1)}if(n)return 2;for(let c=0;c<3;c++){let h=Number.MAX_VALUE,u=-Number.MAX_VALUE;for(let d=0;dthis.max[c]-this.min[c])return 0}return 1}}function sw(i,r,n,o,s,a,c,h,u){if(a&&i.queryGeometry.isAboveHorizon)return!1;for(const d of(a&&(u*=i.pixelToTileUnitsFactor),r))for(const p of d){var f;const m=p.add(h),_=s&&n.elevation?n.elevation.exaggeration()*s.getElevationAt(m.x,m.y,!0):0,g=a?m:function(i,r,n){const o=D([],[i.x,i.y,r,1],n);return new l(o[0]/o[3],o[1]/o[3])}(m,_,o),y=a?i.tilespaceRays.map(i=>(function(i,r){const n=x();return sT[2]=r,i.intersectsPlane(sT,sE,n),new l(n[0],n[1])})(i,_)):i.queryGeometry.screenGeometry,v=D([],[p.x,p.y,_,1],o);if(!c&&a?u*=v[3]/n.cameraToCenterDistance:c&&!a&&(u*=n.cameraToCenterDistance/v[3]),f=u,sd(y,g)||sc(g,y,f))return!0}return!1}const sT=w(0,0,0),sE=w(0,0,1);class sS extends so{}function sI(i,{width:r,height:n},o,s){if(s){if(s instanceof Uint8ClampedArray)s=new Uint8Array(s.buffer);else if(s.length!==r*n*o)throw RangeError("mismatched image size")}else s=new Uint8Array(r*n*o);return i.width=r,i.height=n,i.data=s,i}function sM(i,{width:r,height:n},o){if(r===i.width&&n===i.height)return;const s=sI({},{width:r,height:n},o);sA(i,s,{x:0,y:0},{x:0,y:0},{width:Math.min(i.width,r),height:Math.min(i.height,n)},o),i.width=r,i.height=n,i.data=s.data}function sA(i,r,n,o,s,a){if(0===s.width||0===s.height)return r;if(s.width>i.width||s.height>i.height||n.x>i.width-s.width||n.y>i.height-s.height)throw RangeError("out of range source coordinates for image copy");if(s.width>r.width||s.height>r.height||o.x>r.width-s.width||o.y>r.height-s.height)throw RangeError("out of range destination coordinates for image copy");const l=i.data,c=r.data;for(let h=0;h{r[i.evaluationKey]=a;const l=i.expression.evaluate(r);s.data[n+o+0]=Math.floor(255*l.r/l.a),s.data[n+o+1]=Math.floor(255*l.g/l.a),s.data[n+o+2]=Math.floor(255*l.b/l.a),s.data[n+o+3]=Math.floor(255*l.a)};if(i.clips)for(let l=0,c=0;l=a.next.y&&a.next.y!==a.y){var u=a.x+(c-a.y)*(a.next.x-a.x)/(a.next.y-a.y);if(u<=l&&u>h){if(h=u,u===l){if(c===a.y)return a;if(c===a.next.y)return a.next}s=a.x=a.x&&a.x>=f&&l!==a.x&&sj(cs.x||a.x===s.x&&(n=s,o=a,0>sG(n.prev,n,o.prev)&&0>sG(o.next,n,n.next))))&&(s=a,_=d)),a=a.next;while(a!==p)return s}(i,r);if(!n)return r;var o=sH(n,i),s=sU(n,n.next);return sU(o,o.next),r===n?s:r}(c[s],n),n.next);return n}(i,r,f,n)),i.length>80*n){o=a=i[0],s=l=i[1];for(var _=n;_a&&(a=c),h>l&&(l=h);u=0!==(u=Math.max(a-o,l-s))?1/u:0}return function i(r,n,o,s,a,l,c){if(r){!c&&l&&function(i,r,n,o){var s=i;do null===s.z&&(s.z=sN(s.x,s.y,r,n,o)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==i)s.prevZ.nextZ=null,s.prevZ=null,function(i){var r,n,o,s,a,l,c,h,u=1;do{for(n=i,i=null,a=null,l=0;n;){for(l++,o=n,c=0,r=0;r0||h>0&&o;)0!==c&&(0===h||!o||n.z<=o.z)?(s=n,n=n.nextZ,c--):(s=o,o=o.nextZ,h--),a?a.nextZ=s:i=s,s.prevZ=a,a=s;n=o}a.nextZ=null,u*=2}while(l>1)}(s)}(r,s,a,l);for(var h,u,d=r;r.prev!==r.next;)if(h=r.prev,u=r.next,l?function(i,r,n,o){var s=i.prev,a=i.next;if(sG(s,i,a)>=0)return!1;for(var l=s.x>i.x?s.x>a.x?s.x:a.x:i.x>a.x?i.x:a.x,c=s.y>i.y?s.y>a.y?s.y:a.y:i.y>a.y?i.y:a.y,h=sN(s.x=h&&p&&p.z<=u;){if(d!==i.prev&&d!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sG(d.prev,d,d.next)>=0||(d=d.prevZ,p!==i.prev&&p!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sG(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;d&&d.z>=h;){if(d!==i.prev&&d!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sG(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;p&&p.z<=u;){if(p!==i.prev&&p!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sG(p.prev,p,p.next)>=0)return!1;p=p.nextZ}return!0}(r,s,a,l):function(i){var r=i.prev,n=i.next;if(sG(r,i,n)>=0)return!1;for(var o=i.next.next;o!==i.prev;){if(sj(r.x,r.y,i.x,i.y,n.x,n.y,o.x,o.y)&&sG(o.prev,o,o.next)>=0)return!1;o=o.next}return!0}(r))n.push(h.i/o),n.push(r.i/o),n.push(u.i/o),sY(r),r=u.next,d=u.next;else if((r=u)===d){c?1===c?i(r=function(i,r,n){var o=i;do{var s=o.prev,a=o.next.next;!sZ(s,a)&&s$(s,o,o.next,a)&&sW(s,a)&&sW(a,s)&&(r.push(s.i/n),r.push(o.i/n),r.push(a.i/n),sY(o),sY(o.next),o=i=a),o=o.next}while(o!==i)return sU(o)}(sU(r),n,o),n,o,s,a,l,2):2===c&&function(r,n,o,s,a,l){var c=r;do{for(var h,u,d=c.next.next;d!==c.prev;){if(c.i!==d.i&&(h=c,u=d,h.next.i!==u.i&&h.prev.i!==u.i&&!function(i,r){var n=i;do{if(n.i!==i.i&&n.next.i!==i.i&&n.i!==r.i&&n.next.i!==r.i&&s$(n,n.next,i,r))return!0;n=n.next}while(n!==i)return!1}(h,u)&&(sW(h,u)&&sW(u,h)&&function(i,r){var n=i,o=!1,s=(i.x+r.x)/2,a=(i.y+r.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&s<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(o=!o),n=n.next;while(n!==i)return o}(h,u)&&(sG(h.prev,h,u.prev)||sG(h,u.prev,u))||sZ(h,u)&&sG(h.prev,h,h.next)>0&&sG(u.prev,u,u.next)>0))){var p=sH(c,d);return c=sU(c,c.next),p=sU(p,p.next),i(c,n,o,s,a,l),void i(p,n,o,s,a,l)}d=d.next}c=c.next}while(c!==r)}(r,n,o,s,a,l):i(sU(r),n,o,s,a,l,1);break}}}(f,m,n,o,s,u),m}function sO(i,r,n,o,s){var a,l;if(s===sQ(i,r,n,o)>0)for(a=r;a=r;a-=o)l=sK(a,i[a],i[a+1],l);return l&&sZ(l,l.next)&&(sY(l),l=l.next),l}function sU(i,r){if(!i)return i;r||(r=i);var n,o=i;do if(n=!1,o.steiner||!sZ(o,o.next)&&0!==sG(o.prev,o,o.next))o=o.next;else{if(sY(o),(o=r=o.prev)===o.next)break;n=!0}while(n||o!==r)return r}function sV(i,r){return i.x-r.x}function sN(i,r,n,o,s){return(i=1431655765&((i=858993459&((i=252645135&((i=16711935&((i=32767*(i-n)*s)|i<<8))|i<<4))|i<<2))|i<<1))|(r=1431655765&((r=858993459&((r=252645135&((r=16711935&((r=32767*(r-o)*s)|r<<8))|r<<4))|r<<2))|r<<1))<<1}function sj(i,r,n,o,s,a,l,c){return(s-l)*(r-c)-(i-l)*(a-c)>=0&&(i-l)*(o-c)-(n-l)*(r-c)>=0&&(n-l)*(a-c)-(s-l)*(o-c)>=0}function sG(i,r,n){return(r.y-i.y)*(n.x-r.x)-(r.x-i.x)*(n.y-r.y)}function sZ(i,r){return i.x===r.x&&i.y===r.y}function s$(i,r,n,o){var s=sX(sG(i,r,n)),a=sX(sG(i,r,o)),l=sX(sG(n,o,i)),c=sX(sG(n,o,r));return s!==a&&l!==c||!(0!==s||!sq(i,n,r))||!(0!==a||!sq(i,o,r))||!(0!==l||!sq(n,i,o))||!(0!==c||!sq(n,r,o))}function sq(i,r,n){return r.x<=Math.max(i.x,n.x)&&r.x>=Math.min(i.x,n.x)&&r.y<=Math.max(i.y,n.y)&&r.y>=Math.min(i.y,n.y)}function sX(i){return i>0?1:i<0?-1:0}function sW(i,r){return 0>sG(i.prev,i,i.next)?sG(i,r,i.next)>=0&&sG(i,i.prev,r)>=0:0>sG(i,r,i.prev)||0>sG(i,i.next,r)}function sH(i,r){var n=new sJ(i.i,i.x,i.y),o=new sJ(r.i,r.x,r.y),s=i.next,a=r.prev;return i.next=r,r.prev=i,n.next=s,s.prev=n,o.next=n,n.prev=o,a.next=o,o.prev=a,o}function sK(i,r,n,o){var s=new sJ(i,r,n);return o?(s.next=o.next,s.prev=o,o.next.prev=s,o.next=s):(s.prev=s,s.next=s),s}function sY(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function sJ(i,r,n){this.i=i,this.x=r,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function sQ(i,r,n,o){for(var s=0,a=r,l=n-o;ar?1:0}function s2(i,r){let n,o;const s=i.length;if(s<=1)return[i];const a=[];for(let l=0;l1)for(let h=0;ho;){if(s-o>600){var l=s-o+1,c=n-o+1,h=Math.log(l),u=.5*Math.exp(2*h/3),d=.5*Math.sqrt(h*u*(l-u)/l)*(c-l/2<0?-1:1);i(r,n,Math.max(o,Math.floor(n-c*u/l+d)),Math.min(s,Math.floor(n+(l-c)*u/l+d)),a)}var p=r[n],f=o,m=s;for(s0(r,o,n),a(r[s],p)>0&&s0(r,o,s);fa(r[f],p);)f++;for(;a(r[m],p)>0;)m--}0===a(r[o],p)?s0(r,o,m):s0(r,++m,s),m<=n&&(o=m+1),n<=m&&(s=m-1)}}(u,r,1,d||u.length-1,s3||s1),a[h]=a[h].slice(0,r))}return a}function s3(i,r){return r.area-i.area}function s5(i,r,n){const o=n.patternDependencies;let s=!1;for(const a of r){const l=a.paint.get(`${i}-pattern`);l.isConstant()||(s=!0);const c=l.constantOr(null);c&&(s=!0,o[c.to]=!0,o[c.from]=!0)}return s}function s4(i,r,n,o,s){const a=s.patternDependencies;for(const l of r){const c=l.paint.get(`${i}-pattern`).value;if("constant"!==c.kind){let h=c.evaluate({zoom:o-1},n,{},s.availableImages),u=c.evaluate({zoom:o},n,{},s.availableImages),d=c.evaluate({zoom:o+1},n,{},s.availableImages);h=h&&h.name?h.name:h,u=u&&u.name?u.name:u,d=d&&d.name?d.name:d,a[h]=!0,a[u]=!0,a[d]=!0,n.patterns[l.id]={min:h,mid:u,max:d}}}return n}sF.deviation=function(i,r,n,o){var s=r&&r.length,a=Math.abs(sQ(i,0,s?r[0]*n:i.length,n));if(s)for(var l=0,c=r.length;l0&&n.holes.push(o+=i[s-1].length)}return n},sR.default=sF;class s6{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new nJ,this.indexArray=new oe,this.indexArray2=new oa,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.segments2=new o0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=s5("fill",this.layers,r);const s=this.layers[0].layout.get("fill-sort-key"),a=[];for(const{feature:l,id:c,index:h,sourceLayerIndex:u}of i){const d=this.layers[0]._featureFilter.needGeometry,p=sr(l,d);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),p,n))continue;const f=s?s.evaluate(p,{},n,r.availableImages):void 0,m={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:d?p.geometry:si(l,n,o),patterns:{},sortKey:f};a.push(m)}for(const _ of(s&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:g,index:y,sourceLayerIndex:x}=_;if(this.hasPattern){const v=s4("fill",this.layers,_,this.zoom,r);this.patternFeatures.push(v)}else this.addFeature(_,g,y,n,{},r.availableImages);r.featureIndex.insert(i[y].feature,g,y,x,this.index)}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const s of this.patternFeatures)this.addFeature(s,s.geometry,s.index,r,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,sB),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.indexBuffer2=i.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(i,r,n,o,s,a=[]){for(const l of s2(r,500)){let c=0;for(const h of l)c+=h.length;const u=this.segments.prepareSegment(c,this.layoutVertexArray,this.indexArray),d=u.vertexLength,p=[],f=[];for(const m of l){if(0===m.length)continue;m!==l[0]&&f.push(p.length/2);const _=this.segments2.prepareSegment(m.length,this.layoutVertexArray,this.indexArray2),g=_.vertexLength;this.layoutVertexArray.emplaceBack(m[0].x,m[0].y),this.indexArray2.emplaceBack(g+m.length-1,g),p.push(m[0].x),p.push(m[0].y);for(let y=1;y>3;r=1===o?i.readString():2===o?i.readFloat():3===o?i.readDouble():4===o?i.readVarint64():5===o?i.readVarint():6===o?i.readSVarint():7===o?i.readBoolean():null}return r}(n))}function as(i,r,n){if(3===i){var o=new an(n,n.readVarint()+n.pos);o.length&&(r[o.name]=o)}}ai.types=["Unknown","Point","LineString","Polygon"],ai.prototype.loadGeometry=function(){var i=this._pbf;i.pos=this._geometry;for(var r,n=i.readVarint()+i.pos,o=1,s=0,a=0,c=0,h=[];i.pos>3}if(s--,1===o||2===o)a+=i.readSVarint(),c+=i.readSVarint(),1===o&&(r&&h.push(r),r=[]),r.push(new l(a,c));else{if(7!==o)throw Error("unknown command "+o);r&&r.push(r[0].clone())}}return r&&h.push(r),h},ai.prototype.bbox=function(){var i=this._pbf;i.pos=this._geometry;for(var r=i.readVarint()+i.pos,n=1,o=0,s=0,a=0,l=1/0,c=-1/0,h=1/0,u=-1/0;i.pos>3}if(o--,1===n||2===n)(s+=i.readSVarint())c&&(c=s),(a+=i.readSVarint())u&&(u=a);else if(7!==n)throw Error("unknown command "+n)}return[l,h,c,u]},ai.prototype.toGeoJSON=function(i,r,n){var o,s,a=this.extent*Math.pow(2,n),l=this.extent*i,c=this.extent*r,h=this.loadGeometry(),u=ai.types[this.type];function d(i){for(var r=0;r=this._features.length)throw Error("feature index out of bounds");this._pbf.pos=this._features[i];var r=this._pbf.readVarint()+this._pbf.pos;return new ai(this._pbf,r,this.extent,this._keys,this._values)};var aa={VectorTile:function(i,r){this.layers=i.readFields(as,{},r)},VectorTileFeature:ai,VectorTileLayer:an};const al=aa.VectorTileFeature.types;function ac(i,r,n,o,s,a,l,c){i.emplaceBack((r<<1)+l,(n<<1)+a,(Math.floor(8192*o)<<1)+s,Math.round(c))}class ah{constructor(){this.acc=new l(0,0),this.polyCount=[]}startRing(i){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new l(i.x,i.y),this.max=new l(i.x,i.y))}append(i,r){this.currentPolyCount.edges++,this.acc._add(i);let n=!!this.borders;const o=this.min,s=this.max;i.xs.x&&(s.x=i.x,n=!0),i.ys.y&&(s.y=i.y,n=!0),((0===i.x||8192===i.x)&&i.x===r.x)!=((0===i.y||8192===i.y)&&i.y===r.y)&&this.processBorderOverlap(i,r),n&&this.checkBorderIntersection(i,r)}checkBorderIntersection(i,r){r.x<0!=i.x<0&&this.addBorderIntersection(0,io(r.y,i.y,(0-r.x)/(i.x-r.x))),r.x>8192!=i.x>8192&&this.addBorderIntersection(1,io(r.y,i.y,(8192-r.x)/(i.x-r.x))),r.y<0!=i.y<0&&this.addBorderIntersection(2,io(r.x,i.x,(0-r.y)/(i.y-r.y))),r.y>8192!=i.y>8192&&this.addBorderIntersection(3,io(r.x,i.x,(8192-r.y)/(i.y-r.y)))}addBorderIntersection(i,r){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const n=this.borders[i];rn[1]&&(n[1]=r)}processBorderOverlap(i,r){if(i.x===r.x){if(i.y===r.y)return;const n=0===i.x?0:1;this.addBorderIntersection(n,r.y),this.addBorderIntersection(n,i.y)}else{const o=0===i.y?2:3;this.addBorderIntersection(o,r.x),this.addBorderIntersection(o,i.x)}}centroid(){const i=this.polyCount.reduce((i,r)=>i+r.edges,0);return 0!==i?this.acc.div(i)._round():new l(0,0)}span(){return new l(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce((i,r)=>i+ +(r[0]!==Number.MAX_VALUE),0)}}class au{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.layoutVertexArray=new nQ,this.centroidVertexArray=new ow,this.indexArray=new oe,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.enableTerrain=i.enableTerrain}populate(i,r,n,o){for(const{feature:s,id:a,index:l,sourceLayerIndex:c}of(this.features=[],this.hasPattern=s5("fill-extrusion",this.layers,r),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDone=[!1,!1,!1,!1],this.tileToMeter=function(i){const r=Math.exp(Math.PI*(1-i.y/(1<i.x<=0)||l.every(i=>i.x>=8192)||l.every(i=>i.y<=0)||l.every(i=>i.y>=8192))continue;for(let m=0;m=1){const v=_[y-1];if(c=x,h=v,(c.x!==h.x||!(c.x<0)&&!(c.x>8192))&&(c.y!==h.y||!(c.y<0)&&!(c.y>8192))){u&&u.append(x,v),f.vertexLength+4>o0.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const b=x.sub(v)._perp(),w=b.x/(Math.abs(b.x)+Math.abs(b.y)),T=b.y>0?1:0,E=v.dist(x);g+E>32768&&(g=0),ac(this.layoutVertexArray,x.x,x.y,w,T,0,0,g),ac(this.layoutVertexArray,x.x,x.y,w,T,0,1,g),g+=E,ac(this.layoutVertexArray,v.x,v.y,w,T,0,0,g),ac(this.layoutVertexArray,v.x,v.y,w,T,0,1,g);const S=f.vertexLength;this.indexArray.emplaceBack(S,S+2,S+1),this.indexArray.emplaceBack(S+1,S+2,S+3),f.vertexLength+=4,f.primitiveLength+=2}}}}if(f.vertexLength+p>o0.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(p,this.layoutVertexArray,this.indexArray)),"Polygon"!==al[i.type])continue;const I=[],M=[],A=f.vertexLength;for(let C=0;C0){if(u.borders){u.vertexArrayOffset=this.centroidVertexArray.length;const B=u.borders,R=this.featuresOnBorder.push(u)-1;for(let F=0;F<4;F++)B[F][0]!==Number.MAX_VALUE&&this.borders[F].push(R)}this.encodeCentroid(u.borders?void 0:u.centroid(),u)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,s,a,o)}sortBorders(){for(let i=0;i<4;i++)this.borders[i].sort((r,n)=>this.featuresOnBorder[r].borders[i][0]-this.featuresOnBorder[n].borders[i][0])}encodeCentroid(i,r,n=!0){let o,s;if(i){if(0!==i.y){const a=r.span()._mult(this.tileToMeter);o=(Math.max(i.x,1)<<3)+Math.min(7,Math.round(a.x/10)),s=(Math.max(i.y,1)<<3)+Math.min(7,Math.round(a.y/10))}else o=Math.ceil(7*(i.x+450)),s=0}else o=0,s=+n;let l=n?this.centroidVertexArray.length:r.vertexArrayOffset;for(const c of r.polyCount){n&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*c.edges+c.top);for(let h=0;h<2*c.edges;h++)this.centroidVertexArray.emplace(l++,0,s),this.centroidVertexArray.emplace(l++,o,s);for(let u=0;ui.id),this.index=i.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(i=>{this.gradients[i.id]={}}),this.layoutVertexArray=new n0,this.layoutVertexArray2=new n1,this.indexArray=new oe,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=s5("line",this.layers,r);const s=this.layers[0].layout.get("line-sort-key"),a=[];for(const{feature:l,id:c,index:h,sourceLayerIndex:u}of i){const d=this.layers[0]._featureFilter.needGeometry,p=sr(l,d);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),p,n))continue;const f=s?s.evaluate(p,{},n):void 0,m={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:d?p.geometry:si(l,n,o),patterns:{},sortKey:f};a.push(m)}s&&a.sort((i,r)=>i.sortKey-r.sortKey);const{lineAtlas:_,featureIndex:g}=r,y=this.addConstantDashes(_);for(const x of a){const{geometry:v,index:b,sourceLayerIndex:w}=x;if(y&&this.addFeatureDashes(x,_),this.hasPattern){const T=s4("line",this.layers,x,this.zoom,r);this.patternFeatures.push(T)}else this.addFeature(x,v,b,n,_.positions,r.availableImages);g.insert(i[b].feature,v,b,w,this.index)}}addConstantDashes(i){let r=!1;for(const n of this.layers){const o=n.paint.get("line-dasharray").value,s=n.layout.get("line-cap").value;if("constant"!==o.kind||"constant"!==s.kind)r=!0;else{const a=s.value,l=o.value;if(!l)continue;i.addDash(l.from,a),i.addDash(l.to,a),l.other&&i.addDash(l.other,a)}}return r}addFeatureDashes(i,r){const n=this.zoom;for(const o of this.layers){let s,a,l,c,h,u;const d=o.paint.get("line-dasharray").value,p=o.layout.get("line-cap").value;if("constant"===d.kind&&"constant"===p.kind)continue;if("constant"===d.kind){const f=d.value;if(!f)continue;s=f.other||f.to,a=f.to,l=f.from}else s=d.evaluate({zoom:n-1},i),a=d.evaluate({zoom:n},i),l=d.evaluate({zoom:n+1},i);"constant"===p.kind?c=h=u=p.value:(c=p.evaluate({zoom:n-1},i),h=p.evaluate({zoom:n},i),u=p.evaluate({zoom:n+1},i)),r.addDash(s,c),r.addDash(a,h),r.addDash(l,u);const m=r.getKey(s,c),_=r.getKey(a,h),g=r.getKey(l,u);i.patterns[o.id]={min:m,mid:_,max:g}}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const s of this.patternFeatures)this.addFeature(s,s.geometry,s.index,r,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=i.createVertexBuffer(this.layoutVertexArray2,ax)),this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,ag),this.indexBuffer=i.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(i){if(i.properties&&i.properties.hasOwnProperty("mapbox_clip_start")&&i.properties.hasOwnProperty("mapbox_clip_end"))return{start:+i.properties.mapbox_clip_start,end:+i.properties.mapbox_clip_end}}addFeature(i,r,n,o,s,a){const l=this.layers[0].layout,c=l.get("line-join").evaluate(i,{}),h=l.get("line-cap").evaluate(i,{}),u=l.get("line-miter-limit"),d=l.get("line-round-limit");for(const p of(this.lineClips=this.lineFeatureClips(i),r))this.addLine(p,i,c,h,u,d);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,s,a,o)}addLine(i,r,n,o,s,a){let l,c,h,u,d;if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let p=0;p=2&&i[m-1].equals(i[m-2]);)m--;let _=0;for(;_0;if(S&&x>_){const M=l.dist(c);if(M>2*g){const A=l.sub(l.sub(c)._mult(g/M)._round());this.updateDistance(c,A),this.addCurrentVertex(A,u,0,0,y),c=A}}const C=c&&h;let z=C?n:f?"butt":o;if(C&&"round"===z&&(Ts&&(z="bevel"),"bevel"===z&&(T>2&&(z="flipbevel"),T100)v=d.mult(-1);else{const k=T*u.add(d).mag()/u.sub(d).mag();v._perp()._mult(k*(I?-1:1))}this.addCurrentVertex(l,v,0,0,y),this.addCurrentVertex(l,v.mult(-1),0,0,y)}else if("bevel"===z||"fakeround"===z){const P=-Math.sqrt(T*T-1),D=I?P:0,L=I?0:P;if(c&&this.addCurrentVertex(l,u,D,L,y),"fakeround"===z){const B=Math.round(180*E/Math.PI/20);for(let R=1;R2*g){const j=l.add(h.sub(l)._mult(g/N)._round());this.updateDistance(l,j),this.addCurrentVertex(j,d,0,0,y),l=j}}}}addCurrentVertex(i,r,n,o,s,a=!1){const l=r.y*o-r.x,c=-r.y-r.x*o;this.addHalfVertex(i,r.x+r.y*n,r.y-r.x*n,a,!1,n,s),this.addHalfVertex(i,l,c,a,!0,-o,s)}addHalfVertex({x:i,y:r},n,o,s,a,l,c){this.layoutVertexArray.emplaceBack((i<<1)+(s?1:0),(r<<1)+(a?1:0),Math.round(63*n)+128,Math.round(63*o)+128,1+(0===l?0:l<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineSoFar);const h=c.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,h),c.primitiveLength++),a?this.e2=h:this.e1=h}updateScaledDistance(){if(this.lineClips){const i=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=i*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(i,r){this.distance+=i.dist(r),this.updateScaledDistance()}}r$("LineBucket",aw,{omit:["layers","patternFeatures"]});const aT=new n$({"line-cap":new nN(tr.layout_line["line-cap"]),"line-join":new nN(tr.layout_line["line-join"]),"line-miter-limit":new nV(tr.layout_line["line-miter-limit"]),"line-round-limit":new nV(tr.layout_line["line-round-limit"]),"line-sort-key":new nN(tr.layout_line["line-sort-key"])});var aE={paint:new n$({"line-opacity":new nN(tr.paint_line["line-opacity"]),"line-color":new nN(tr.paint_line["line-color"]),"line-translate":new nV(tr.paint_line["line-translate"]),"line-translate-anchor":new nV(tr.paint_line["line-translate-anchor"]),"line-width":new nN(tr.paint_line["line-width"]),"line-gap-width":new nN(tr.paint_line["line-gap-width"]),"line-offset":new nN(tr.paint_line["line-offset"]),"line-blur":new nN(tr.paint_line["line-blur"]),"line-dasharray":new nj(tr.paint_line["line-dasharray"]),"line-pattern":new nj(tr.paint_line["line-pattern"]),"line-gradient":new nZ(tr.paint_line["line-gradient"])}),layout:aT};const aS=new class extends nN{possiblyEvaluate(i,r){return r=new nk(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),super.possiblyEvaluate(i,r)}evaluate(i,r,n,o){return r=H({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(i,r,n,o)}}(aE.paint.properties["line-width"].specification);function aI(i,r){return r>0?r+2*i:i}aS.useIntegerZoom=!0;const aM=nK([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"},{name:"a_z_tile_anchor",components:4,type:"Int16"}],4),aA=nK([{name:"a_projected_pos",components:3,type:"Float32"}],4);nK([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const aC=nK([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),az=nK([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);nK([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const ak=nK([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),aP=nK([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function aD(i,r){const{expression:n}=r;if("constant"===n.kind)return{kind:"constant",layoutSize:n.evaluate(new nk(i+1))};if("source"===n.kind)return{kind:"source"};{const{zoomStops:o,interpolationType:s}=n;let a=0;for(;a":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","\xa2":"¢","\xa3":"£","\xa5":"¥","\xa6":"¦","\xac":"¬","\xaf":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var aO=function(i,r,n,o,s){var a,l,c=8*s-o-1,h=(1<>1,d=-7,p=n?s-1:0,f=n?-1:1,m=i[r+p];for(p+=f,a=m&(1<<-d)-1,m>>=-d,d+=c;d>0;a=256*a+i[r+p],p+=f,d-=8);for(l=a&(1<<-d)-1,a>>=-d,d+=o;d>0;l=256*l+i[r+p],p+=f,d-=8);if(0===a)a=1-u;else{if(a===h)return l?NaN:1/0*(m?-1:1);l+=Math.pow(2,o),a-=u}return(m?-1:1)*l*Math.pow(2,a-o)},aU=function(i,r,n,o,s,a){var l,c,h,u=8*a-s-1,d=(1<>1,f=23===s?5960464477539062e-23:0,m=o?0:a-1,_=o?1:-1,g=r<0||0===r&&1/r<0?1:0;for(isNaN(r=Math.abs(r))||r===1/0?(c=isNaN(r)?1:0,l=d):(l=Math.floor(Math.log(r)/Math.LN2),r*(h=Math.pow(2,-l))<1&&(l--,h*=2),(r+=l+p>=1?f/h:f*Math.pow(2,1-p))*h>=2&&(l++,h/=2),l+p>=d?(c=0,l=d):l+p>=1?(c=(r*h-1)*Math.pow(2,s),l+=p):(c=r*Math.pow(2,p-1)*Math.pow(2,s),l=0));s>=8;i[n+m]=255&c,m+=_,c/=256,s-=8);for(l=l<0;i[n+m]=255&l,m+=_,l/=256,u-=8);i[n+m-_]|=128*g};function aV(i){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(i)?i:new Uint8Array(i||0),this.pos=0,this.type=0,this.length=this.buf.length}aV.Varint=0,aV.Fixed64=1,aV.Bytes=2,aV.Fixed32=5;var aN="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function aj(i){return i.type===aV.Bytes?i.readVarint()+i.pos:i.pos+1}function aG(i,r,n){var o=r<=16383?1:r<=2097151?2:r<=268435455?3:Math.floor(Math.log(r)/(7*Math.LN2));n.realloc(o);for(var s=n.pos-1;s>=i;s--)n.buf[s+o]=n.buf[s]}function aZ(i,r){for(var n=0;n>>8,i[n+2]=r>>>16,i[n+3]=r>>>24}function a1(i,r){return(i[r]|i[r+1]<<8|i[r+2]<<16)+(i[r+3]<<24)}function a2(i,r,n){r.glyphs=[],1===i&&n.readMessage(a3,r)}function a3(i,r,n){if(3===i){const{id:o,bitmap:s,width:a,height:l,left:c,top:h,advance:u}=n.readMessage(a5,{});r.glyphs.push({id:o,bitmap:new sC({width:a+6,height:l+6},s),metrics:{width:a,height:l,left:c,top:h,advance:u}})}else 4===i?r.ascender=n.readSVarint():5===i&&(r.descender=n.readSVarint())}function a5(i,r,n){1===i?r.id=n.readVarint():2===i?r.bitmap=n.readBytes():3===i?r.width=n.readVarint():4===i?r.height=n.readVarint():5===i?r.left=n.readSVarint():6===i?r.top=n.readSVarint():7===i&&(r.advance=n.readVarint())}function a4(i){let r=0,n=0;for(const o of i)r+=o.w*o.h,n=Math.max(n,o.w);i.sort((i,r)=>r.h-i.h);const s=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(r/.95)),n),h:1/0}];let a=0,l=0;for(const c of i)for(let h=s.length-1;h>=0;h--){const u=s[h];if(!(c.w>u.w||c.h>u.h)){if(c.x=u.x,c.y=u.y,l=Math.max(l,c.y+c.h),a=Math.max(a,c.x+c.w),c.w===u.w&&c.h===u.h){const d=s.pop();h>3,a=this.pos;this.type=7&o,i(s,r,this),this.pos===a&&this.skip(o)}return r},readMessage:function(i,r){return this.readFields(i,r,this.readVarint()+this.pos)},readFixed32:function(){var i=aQ(this.buf,this.pos);return this.pos+=4,i},readSFixed32:function(){var i=a1(this.buf,this.pos);return this.pos+=4,i},readFixed64:function(){var i=aQ(this.buf,this.pos)+4294967296*aQ(this.buf,this.pos+4);return this.pos+=8,i},readSFixed64:function(){var i=aQ(this.buf,this.pos)+4294967296*a1(this.buf,this.pos+4);return this.pos+=8,i},readFloat:function(){var i=aO(this.buf,this.pos,!0,23,4);return this.pos+=4,i},readDouble:function(){var i=aO(this.buf,this.pos,!0,52,8);return this.pos+=8,i},readVarint:function(i){var r,n,o=this.buf;return r=127&(n=o[this.pos++]),n<128?r:(r|=(127&(n=o[this.pos++]))<<7,n<128?r:(r|=(127&(n=o[this.pos++]))<<14,n<128?r:(r|=(127&(n=o[this.pos++]))<<21,n<128?r:function(i,r,n){var o,s,a,l=n.buf;if(s=(112&(a=l[n.pos++]))>>4,a<128||(s|=(127&(a=l[n.pos++]))<<3,a<128)||(s|=(127&(a=l[n.pos++]))<<10,a<128)||(s|=(127&(a=l[n.pos++]))<<17,a<128)||(s|=(127&(a=l[n.pos++]))<<24,a<128)||(s|=(1&(a=l[n.pos++]))<<31,a<128))return o=s,r?4294967296*o+(i>>>0):4294967296*(o>>>0)+(i>>>0);throw Error("Expected varint not more than 10 bytes")}(r|=(15&(n=o[this.pos]))<<28,i,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var i=this.readVarint();return i%2==1?-((i+1)/2):i/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var i,r=this.readVarint()+this.pos,n=this.pos;return this.pos=r,r-n>=12&&aN?(i=this.buf,aN.decode(i.subarray(n,r))):function(i,r,n){for(var o="",s=r;s239?4:h>223?3:h>191?2:1;if(s+d>n)break;1===d?h<128&&(u=h):2===d?128==(192&(a=i[s+1]))&&(u=(31&h)<<6|63&a)<=127&&(u=null):3===d?(l=i[s+2],128==(192&(a=i[s+1]))&&128==(192&l)&&((u=(15&h)<<12|(63&a)<<6|63&l)<=2047||u>=55296&&u<=57343)&&(u=null)):4===d&&(l=i[s+2],c=i[s+3],128==(192&(a=i[s+1]))&&128==(192&l)&&128==(192&c)&&((u=(15&h)<<18|(63&a)<<12|(63&l)<<6|63&c)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,d=1):u>65535&&(u-=65536,o+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),o+=String.fromCharCode(u),s+=d}return o}(this.buf,n,r)},readBytes:function(){var i=this.readVarint()+this.pos,r=this.buf.subarray(this.pos,i);return this.pos=i,r},readPackedVarint:function(i,r){if(this.type!==aV.Bytes)return i.push(this.readVarint(r));var n=aj(this);for(i=i||[];this.pos127;);else if(r===aV.Bytes)this.pos=this.readVarint()+this.pos;else if(r===aV.Fixed32)this.pos+=4;else{if(r!==aV.Fixed64)throw Error("Unimplemented type: "+r);this.pos+=8}},writeTag:function(i,r){this.writeVarint(i<<3|r)},realloc:function(i){for(var r=this.length||16;r268435455||i<0?function(i,r){var n,o,s,a,l,c,h;if(i>=0?(n=i%4294967296|0,o=i/4294967296|0):(o=~(-i/4294967296),4294967295^(n=~(-i%4294967296))?n=n+1|0:(n=0,o=o+1|0)),i>=18446744073709552e3||i<-18446744073709552e3)throw Error("Given varint doesn't fit into 10 bytes");r.realloc(10),s=n,(a=r).buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,a.buf[a.pos]=127&(s>>>=7),l=o,c=r,h=(7&l)<<4,c.buf[c.pos++]|=h|((l>>>=3)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l)))))}(i,this):(this.realloc(4),this.buf[this.pos++]=127&i|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=i>>>7&127))))},writeSVarint:function(i){this.writeVarint(i<0?-(2*i)-1:2*i)},writeBoolean:function(i){this.writeVarint(Boolean(i))},writeString:function(i){i=String(i),this.realloc(4*i.length),this.pos++;var r=this.pos;this.pos=function(i,r,n){for(var o,s,a=0;a55295&&o<57344){if(!s){o>56319||a+1===r.length?(i[n++]=239,i[n++]=191,i[n++]=189):s=o;continue}if(o<56320){i[n++]=239,i[n++]=191,i[n++]=189,s=o;continue}o=s-55296<<10|o-56320|65536,s=null}else s&&(i[n++]=239,i[n++]=191,i[n++]=189,s=null);o<128?i[n++]=o:(o<2048?i[n++]=o>>6|192:(o<65536?i[n++]=o>>12|224:(i[n++]=o>>18|240,i[n++]=o>>12&63|128),i[n++]=o>>6&63|128),i[n++]=63&o|128)}return n}(this.buf,i,this.pos);var n=this.pos-r;n>=128&&aG(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeFloat:function(i){this.realloc(4),aU(this.buf,i,this.pos,!0,23,4),this.pos+=4},writeDouble:function(i){this.realloc(8),aU(this.buf,i,this.pos,!0,52,8),this.pos+=8},writeBytes:function(i){var r=i.length;this.writeVarint(r),this.realloc(r);for(var n=0;n=128&&aG(n,o,this),this.pos=n-1,this.writeVarint(o),this.pos+=o},writeMessage:function(i,r,n){this.writeTag(i,aV.Bytes),this.writeRawMessage(r,n)},writePackedVarint:function(i,r){r.length&&this.writeMessage(i,aZ,r)},writePackedSVarint:function(i,r){r.length&&this.writeMessage(i,a$,r)},writePackedBoolean:function(i,r){r.length&&this.writeMessage(i,aW,r)},writePackedFloat:function(i,r){r.length&&this.writeMessage(i,aq,r)},writePackedDouble:function(i,r){r.length&&this.writeMessage(i,aX,r)},writePackedFixed32:function(i,r){r.length&&this.writeMessage(i,aH,r)},writePackedSFixed32:function(i,r){r.length&&this.writeMessage(i,aK,r)},writePackedFixed64:function(i,r){r.length&&this.writeMessage(i,aY,r)},writePackedSFixed64:function(i,r){r.length&&this.writeMessage(i,aJ,r)},writeBytesField:function(i,r){this.writeTag(i,aV.Bytes),this.writeBytes(r)},writeFixed32Field:function(i,r){this.writeTag(i,aV.Fixed32),this.writeFixed32(r)},writeSFixed32Field:function(i,r){this.writeTag(i,aV.Fixed32),this.writeSFixed32(r)},writeFixed64Field:function(i,r){this.writeTag(i,aV.Fixed64),this.writeFixed64(r)},writeSFixed64Field:function(i,r){this.writeTag(i,aV.Fixed64),this.writeSFixed64(r)},writeVarintField:function(i,r){this.writeTag(i,aV.Varint),this.writeVarint(r)},writeSVarintField:function(i,r){this.writeTag(i,aV.Varint),this.writeSVarint(r)},writeStringField:function(i,r){this.writeTag(i,aV.Bytes),this.writeString(r)},writeFloatField:function(i,r){this.writeTag(i,aV.Fixed32),this.writeFloat(r)},writeDoubleField:function(i,r){this.writeTag(i,aV.Fixed64),this.writeDouble(r)},writeBooleanField:function(i,r){this.writeVarintField(i,Boolean(r))}};class a6{constructor(i,{pixelRatio:r,version:n,stretchX:o,stretchY:s,content:a}){this.paddedRect=i,this.pixelRatio=r,this.stretchX=o,this.stretchY=s,this.content=a,this.version=n}get tl(){return[this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get displaySize(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}}class a8{constructor(i,r){const n={},o={};this.haveRenderCallbacks=[];const s=[];this.addImages(i,n,s),this.addImages(r,o,s);const{w:a,h:l}=a4(s),c=new sz({width:a||1,height:l||1});for(const h in i){const u=i[h],d=n[h].paddedRect;sz.copy(u.data,c,{x:0,y:0},{x:d.x+1,y:d.y+1},u.data)}for(const p in r){const f=r[p],m=o[p].paddedRect,_=m.x+1,g=m.y+1,y=f.data.width,x=f.data.height;sz.copy(f.data,c,{x:0,y:0},{x:_,y:g},f.data),sz.copy(f.data,c,{x:0,y:x-1},{x:_,y:g-1},{width:y,height:1}),sz.copy(f.data,c,{x:0,y:0},{x:_,y:g+x},{width:y,height:1}),sz.copy(f.data,c,{x:y-1,y:0},{x:_-1,y:g},{width:1,height:x}),sz.copy(f.data,c,{x:0,y:0},{x:_+y,y:g},{width:1,height:x})}this.image=c,this.iconPositions=n,this.patternPositions=o}addImages(i,r,n){for(const o in i){const s=i[o],a={x:0,y:0,w:s.data.width+2,h:s.data.height+2};n.push(a),r[o]=new a6(a,s),s.hasRenderCallback&&this.haveRenderCallbacks.push(o)}}patchUpdatedImages(i,r){for(const n in i.dispatchRenderCallbacks(this.haveRenderCallbacks),i.updatedImages)this.patchUpdatedImage(this.iconPositions[n],i.getImage(n),r),this.patchUpdatedImage(this.patternPositions[n],i.getImage(n),r)}patchUpdatedImage(i,r,n){if(!i||!r||i.version===r.version)return;i.version=r.version;const[o,s]=i.tl;n.update(r.data,void 0,{x:o,y:s})}}r$("ImagePosition",a6),r$("ImageAtlas",a8);const a9={horizontal:1,vertical:2,horizontalOnly:3};class a7{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(i,r){const n=new a7;return n.scale=i||1,n.fontStack=r,n}static forImage(i){const r=new a7;return r.imageName=i,r}}class le{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(i,r){const n=new le;for(let o=0;o=0&&o>=i&&li[this.text.charCodeAt(o)];o--)n--;this.text=this.text.substring(i,n),this.sectionIndex=this.sectionIndex.slice(i,n)}substring(i,r){const n=new le;return n.text=this.text.substring(i,r),n.sectionIndex=this.sectionIndex.slice(i,r),n.sections=this.sections,n}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((i,r)=>Math.max(i,this.sections[r].scale),0)}addTextSection(i,r){this.text+=i.text,this.sections.push(a7.forText(i.scale,i.fontStack||r));const n=this.sections.length-1;for(let o=0;o=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function lt(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){let y;const x=le.fromFeature(i,s);p===a9.vertical&&x.verticalizePunctuation(f);const{processBidirectionalText:v,processStyledBidirectionalText:b}=nz;if(v&&1===x.sections.length){y=[];const w=v(x.toString(),la(x,u,a,r,o,m,_));for(const T of w){const E=new le;E.text=T,E.sections=x.sections;for(let S=0;S0&&q>z&&(z=q)}else{const X=n[L.fontStack];if(!X)continue;X[R]&&(U=X[R]);const W=r[L.fontStack];if(!W)continue;const H=W.glyphs[R];if(!H)continue;if(O=H.metrics,N=8203!==R?24:0,x){const K=void 0!==W.ascender?Math.abs(W.ascender):0,Y=void 0!==W.descender?Math.abs(W.descender):0,J=(K+Y)*F;k=0;let p=0;for(let f=0;f-n/2;){if(--l<0)return!1;c-=i[l].dist(a),a=i[l]}c+=i[l].dist(i[l+1]),l++;const h=[];let u=0;for(;co;)u-=h.shift().angleDelta;if(u>s)return!1;l++,c+=d.dist(p)}return!0}function lp(i){let r=0;for(let n=0;n=o&&f.x>=o||(p.x>=o?p=new l(o,p.y+(o-p.x)/(f.x-p.x)*(f.y-p.y))._round():f.x>=o&&(f=new l(o,p.y+(o-p.x)/(f.x-p.x)*(f.y-p.y))._round()),p.y>=s&&f.y>=s||(p.y>=s?p=new l(p.x+(s-p.y)/(f.y-p.y)*(f.x-p.x),s)._round():f.y>=s&&(f=new l(p.x+(s-p.y)/(f.y-p.y)*(f.x-p.x),s)._round()),h&&p.equals(h[h.length-1])||(h=[p],a.push(h)),h.push(f)))))}}return a}function lg(i,r,n,o,s,a,l,c,h){for(let u=r;u-1)a[++h]=c,l[h]=u,l[h+1]=1e20}for(let f=0,m=0;f{let o=this.entries[i];o||(o=this.entries[i]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let s=o.glyphs[r];if(void 0!==s)return void n(null,{stack:i,id:r,glyph:s});if(s=this._tinySDF(o,i,r))return o.glyphs[r]=s,void n(null,{stack:i,id:r,glyph:s});const a=Math.floor(r/256);if(256*a>65535)return void n(Error("glyphs > 65535 not supported"));if(o.ranges[a])return void n(null,{stack:i,id:r,glyph:s});let l=o.requests[a];l||(l=o.requests[a]=[],lv.loadGlyphRange(i,a,this.url,this.requestManager,(i,r)=>{if(r){for(const n in o.ascender=r.ascender,o.descender=r.descender,r.glyphs)this._doesCharSupportLocalGlyph(+n)||(o.glyphs[+n]=r.glyphs[+n]);o.ranges[a]=!0}for(const s of l)s(i,r);delete o.requests[a]})),l.push((o,s)=>{o?n(o):s&&n(null,{stack:i,id:r,glyph:s.glyphs[r]||null})})},(i,n)=>{if(i)r(i);else if(n){const o={};for(const{stack:s,id:a,glyph:l}of n)void 0===o[s]&&(o[s]={}),void 0===o[s].glyphs&&(o[s].glyphs={}),o[s].glyphs[a]=l&&{id:l.id,bitmap:l.bitmap.clone(),metrics:l.metrics},o[s].ascender=this.entries[s].ascender,o[s].descender=this.entries[s].descender;r(null,o)}})}_doesCharSupportLocalGlyph(i){return this.localGlyphMode!==lx.none&&(this.localGlyphMode===lx.all?!!this.localFontFamily:!!this.localFontFamily&&(nn(i)||na(i)||r4(i)||r6(i))||r5(i))}_tinySDF(i,r,n){const o=this.localFontFamily;if(!o||!this._doesCharSupportLocalGlyph(n))return;let s=i.tinySDF;if(!s){let a="400";/bold/i.test(r)?a="900":/medium/i.test(r)?a="500":/light/i.test(r)&&(a="200"),(s=i.tinySDF=new lv.TinySDF({fontFamily:o,fontWeight:a,fontSize:48,buffer:6,radius:16})).fontWeight=a}if(this.localGlyphs[s.fontWeight][n])return this.localGlyphs[s.fontWeight][n];const l=String.fromCharCode(n),{data:c,width:h,height:u,glyphWidth:d,glyphHeight:p,glyphLeft:f,glyphTop:m,glyphAdvance:_}=s.draw(l);return this.localGlyphs[s.fontWeight][n]={id:n,bitmap:new sC({width:h,height:u},c),metrics:{width:d/2,height:p/2,left:f/2,top:m/2-27,advance:_/2,localGlyph:!0}}}}function lb(i,r,n,o){const s=[],a=i.image,c=a.pixelRatio,h=a.paddedRect.w-2,u=a.paddedRect.h-2,d=i.right-i.left,p=i.bottom-i.top,f=a.stretchX||[[0,h]],m=a.stretchY||[[0,u]],_=(i,r)=>i+r[1]-r[0],g=f.reduce(_,0),y=m.reduce(_,0),x=h-g,v=u-y;let b=0,w=g,T=0,E=y,S=0,I=x,M=0,A=v;if(a.content&&o){const C=a.content;b=lw(f,0,C[0]),T=lw(m,0,C[1]),w=lw(f,C[0],C[2]),E=lw(m,C[1],C[3]),S=C[0]-b,M=C[1]-T,I=C[2]-C[0]-w,A=C[3]-C[1]-E}const z=(o,s,h,u)=>{const f=(o.stretch-b)/w*d+i.left,m=o.fixed-S-I*o.stretch/g,_=(s.stretch-T)/E*p+i.top,x=s.fixed-M-A*s.stretch/y,v=(h.stretch-b)/w*d+i.left,C=h.fixed-S-I*h.stretch/g,z=(u.stretch-T)/E*p+i.top,k=u.fixed-M-A*u.stretch/y,P=new l(f,_),D=new l(v,_),L=new l(v,z),B=new l(f,z),R=new l(m/c,x/c),F=new l(C/c,k/c),O=r*Math.PI/180;if(O){const U=Math.sin(O),V=Math.cos(O),N=[V,-U,U,V];P._matMult(N),D._matMult(N),B._matMult(N),L._matMult(N)}const j=o.stretch+o.fixed,G=s.stretch+s.fixed;return{tl:P,tr:D,bl:B,br:L,tex:{x:a.paddedRect.x+1+j,y:a.paddedRect.y+1+G,w:h.stretch+h.fixed-j,h:u.stretch+u.fixed-G},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:R,pixelOffsetBR:F,minFontScaleX:I/c/d,minFontScaleY:A/c/p,isSDF:n}};if(o&&(a.stretchX||a.stretchY)){const k=lT(f,x,g),P=lT(m,v,y);for(let D=0;D{if(i)s(i);else if(r){const n={},o=new aV(r).readFields(a2,{});for(const a of o.glyphs)n[a.id]=a;s(null,{glyphs:n,ascender:o.ascender,descender:o.descender})}})},lv.TinySDF=class{constructor({fontSize:i=24,buffer:r=3,radius:n=8,cutoff:o=.25,fontFamily:s="sans-serif",fontWeight:a="normal",fontStyle:l="normal"}){this.buffer=r,this.cutoff=o,this.radius=n;const c=this.size=i+4*r,h=this._createCanvas(c),u=this.ctx=h.getContext("2d",{willReadFrequently:!0});u.font=`${l} ${a} ${i}px ${s}`,u.textBaseline="alphabetic",u.textAlign="left",u.fillStyle="black",this.gridOuter=new Float64Array(c*c),this.gridInner=new Float64Array(c*c),this.f=new Float64Array(c),this.z=new Float64Array(c+1),this.v=new Uint16Array(c)}_createCanvas(i){const r=document.createElement("canvas");return r.width=r.height=i,r}draw(i){const{width:r,actualBoundingBoxAscent:n,actualBoundingBoxDescent:o,actualBoundingBoxLeft:s,actualBoundingBoxRight:a}=this.ctx.measureText(i),l=Math.floor(n),c=Math.min(this.size-this.buffer,Math.ceil(a-s)),h=Math.min(this.size-this.buffer,Math.ceil(n)+Math.ceil(o)),u=c+2*this.buffer,d=h+2*this.buffer,p=u*d,f=new Uint8ClampedArray(p),m={data:f,width:u,height:d,glyphWidth:c,glyphHeight:h,glyphTop:l,glyphLeft:0,glyphAdvance:r};if(0===c||0===h)return m;const{ctx:_,buffer:g,gridInner:y,gridOuter:x}=this;_.clearRect(g,g,c,h),_.fillText(i,g,g+l+1);const v=_.getImageData(g,g,c,h);x.fill(1e20,0,p),y.fill(0,0,p);for(let b=0;b0?S*S:0,y[E]=S<0?S*S:0}}lg(x,0,0,u,d,u,this.f,this.v,this.z),lg(y,g,g,c,h,u,this.f,this.v,this.z);for(let I=0;I0)for(let n=(this.length>>1)-1;n>=0;n--)this._down(n)}push(i){this.data.push(i),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const i=this.data[0],r=this.data.pop();return this.length--,this.length>0&&(this.data[0]=r,this._down(0)),i}peek(){return this.data[0]}_up(i){const{data:r,compare:n}=this,o=r[i];for(;i>0;){const s=i-1>>1,a=r[s];if(n(o,a)>=0)break;r[i]=a,i=s}r[i]=o}_down(i){const{data:r,compare:n}=this,o=this.length>>1,s=r[i];for(;in(r[c],l)&&(a=c,l=r[c]),n(l,s)>=0)break;r[i]=l,i=a}r[i]=s}}function lS(i,r){return ir?1:0}function lI(i,r){return r.max-i.max}function lM(i,r,n,o){this.p=new l(i,r),this.h=n,this.d=function(i,r){let n=!1,o=1/0;for(let s=0;si.y!=d.y>i.y&&i.x<(d.x-u.x)*(i.y-u.y)/(d.y-u.y)+u.x&&(n=!n),o=Math.min(o,sh(i,u,d))}}return(n?1:-1)*Math.sqrt(o)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}const lA=Number.POSITIVE_INFINITY,lC=Math.sqrt(2);function lz(i,r){return r[1]!==lA?function(i,r,n){let o=0,s=0;switch(r=Math.abs(r),n=Math.abs(n),i){case"top-right":case"top-left":case"top":s=n-7;break;case"bottom-right":case"bottom-left":case"bottom":s=7-n}switch(i){case"top-right":case"bottom-right":case"right":o=-r;break;case"top-left":case"bottom-left":case"left":o=r}return[o,s]}(i,r[0],r[1]):function(i,r){let n=0,o=0;r<0&&(r=0);const s=r/lC;switch(i){case"top-right":case"top-left":o=s-7;break;case"bottom-right":case"bottom-left":o=7-s;break;case"bottom":o=7-r;break;case"top":o=r-7}switch(i){case"top-right":case"bottom-right":n=-s;break;case"top-left":case"bottom-left":n=s;break;case"left":n=r;break;case"right":n=-r}return[n,o]}(i,r[0])}function lk(i){switch(i){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function lP(i,r,n,o,s,a,c,h,u,d,p,f,m,_,g,y,x){const v=function(i,r,n,o,s,a,c,h){const u=[];if(0===r.positionedLines.length)return u;const d=o.layout.get("text-rotate").evaluate(a,{})*Math.PI/180,p=function(i){const r=i[0],n=i[1],o=r*n;return o>0?[r,-n]:o<0?[-r,n]:0===r?[n,r]:[n,-r]}(n);let f=Math.abs(r.top-r.bottom);for(const m of r.positionedLines)f-=m.lineOffset;const _=r.positionedLines.length,g=f/_;let y=r.top-n[1];for(let x=0;x<_;++x){const v=r.positionedLines[x];for(const b of(y=function(i,r,n,o){const s=r+i.positionedLines[o].lineOffset;return 0===o?n+s/2:n+(s+(r+i.positionedLines[o-1].lineOffset))/2}(r,g,y,x),v.positionedGlyphs)){let w,T,E,S;if(!b.rect)continue;const I=b.rect||{};let M=4,A=!0,C=1,z=0;if(b.imageName){const k=c[b.imageName];if(!k)continue;if(k.sdf){ea("SDF images are not supported in formatted text and will be ignored.");continue}A=!1,M=1/(C=k.pixelRatio)}const P=(s||h)&&b.vertical,D=b.metrics.advance*b.scale/2,L=b.metrics,B=b.rect;if(null===B)continue;h&&r.verticalizable&&(z=b.imageName?D-b.metrics.width*b.scale/2:0);const R=s?[b.x+D,b.y]:[0,0];let F=[0,0],O=[0,0],U=!1;s||(P?(O=[b.x+D+p[0],b.y+p[1]-z],U=!0):F=[b.x+D+n[0],b.y+n[1]-z]);const V=B.w*b.scale/(C*(b.localGlyph?2:1)),N=B.h*b.scale/(C*(b.localGlyph?2:1));if(P){const j=b.y-y,G=new l(-D,D-j),Z=-Math.PI/2,$=new l(...O);(w=new l(-D+F[0],F[1]))._rotateAround(Z,G)._add($),w.x+=-j+D,w.y-=(L.left-M)*b.scale;const q=b.imageName?L.advance*b.scale:24*b.scale,X=String.fromCharCode(b.glyph);"︶"===X||"﹈"===X||"︸"===X||"﹄"===X||"﹂"===X||"︾"===X||"︼"===X||"︺"===X||"︘"===X||"﹀"===X||"︐"===X||"︓"===X||"︔"===X||"`"===X||" ̄"===X||"︑"===X||"︒"===X?w.x+=(1-M)*b.scale:"︵"===X||"﹇"===X||"︷"===X||"﹃"===X||"﹁"===X||"︽"===X||"︻"===X||"︹"===X||"︗"===X||"︿"===X?w.x+=q-L.height*b.scale+(-M-1)*b.scale:w.x+=b.imageName||L.width+2*M===B.w&&L.height+2*M===B.h?(q-N)/2:(q-(L.height+2*M)*b.scale)/2,T=new l(w.x,w.y-V),E=new l(w.x+N,w.y),S=new l(w.x+N,w.y-V)}else{const W=(L.left-M)*b.scale-D+F[0],H=(-L.top-M)*b.scale+F[1],K=W+V,Y=H+N;w=new l(W,H),T=new l(K,H),E=new l(W,Y),S=new l(K,Y)}if(d){let J;J=s?new l(0,0):U?new l(p[0],p[1]):new l(n[0],n[1]),w._rotateAround(d,J),T._rotateAround(d,J),E._rotateAround(d,J),S._rotateAround(d,J)}const Q=new l(0,0),ee=new l(0,0);u.push({tl:w,tr:T,bl:E,br:S,tex:I,writingMode:r.writingMode,glyphOffset:R,sectionIndex:b.sectionIndex,isSDF:A,pixelOffsetTL:Q,pixelOffsetBR:ee,minFontScaleX:0,minFontScaleY:0})}}return u}(0,o,u,a,c,h,s,i.allowVerticalPlacement),b=i.textSizeData;let w=null;for(const T of("source"===b.kind?(w=[128*a.layout.get("text-size").evaluate(h,{},x)])[0]>32640&&ea(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`):"composite"===b.kind&&((w=[128*g.compositeTextSizes[0].evaluate(h,{},x),128*g.compositeTextSizes[1].evaluate(h,{},x)])[0]>32640||w[1]>32640)&&ea(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`),i.addSymbols(i.text,v,w,u,c,h,p,r,n,d.lineStartIndex,d.lineLength,_,y,x),f))m[T]=i.text.placedSymbolArray.length-1;return 4*v.length}function lD(i){for(const r in i)return i[r];return null}function lL(i,r,n,o,s,a,c,h,u,d){let p=c.top,f=c.bottom,m=c.left,_=c.right;const g=c.collisionPadding;if(g&&(m-=g[0],p-=g[1],_+=g[2],f+=g[3]),u){const y=new l(m,p),x=new l(_,p),v=new l(m,f),b=new l(_,f),w=u*O;let T=new l(0,0);d&&(T=new l(d[0],d[1])),y._rotateAround(w,T),x._rotateAround(w,T),v._rotateAround(w,T),b._rotateAround(w,T),m=Math.min(y.x,x.x,v.x,b.x),_=Math.max(y.x,x.x,v.x,b.x),p=Math.min(y.y,x.y,v.y,b.y),f=Math.max(y.y,x.y,v.y,b.y)}return i.emplaceBack(r.x,r.y,r.z,n.x,n.y,m,p,_,f,h,o,s,a),i.length-1}function lB(i){i.collisionPadding&&(i.top-=i.collisionPadding[1],i.bottom+=i.collisionPadding[3]);const r=i.bottom-i.top;return r>0?Math.max(10,r):null}const lR=aa.VectorTileFeature.types,lF=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function lO(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){const y=d?Math.min(32640,Math.round(d[0])):0,x=d?Math.min(32640,Math.round(d[1])):0;i.emplaceBack(r,n,Math.round(32*l),Math.round(32*c),h,u,(y<<1)+(p?1:0),x,16*f,16*m,256*_,256*g,o,s,a,0)}function lU(i,r,n){i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n)}class lV{constructor(i){this.layoutVertexArray=new n5,this.indexArray=new oe,this.programConfigurations=i,this.segments=new o0,this.dynamicLayoutVertexArray=new n1,this.opacityVertexArray=new n4,this.placedSymbolArray=new of}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length}upload(i,r,n,o){this.isEmpty()||(n&&(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,aM.members),this.indexBuffer=i.createIndexBuffer(this.indexArray,r),this.dynamicLayoutVertexBuffer=i.createVertexBuffer(this.dynamicLayoutVertexArray,aA.members,!0),this.opacityVertexBuffer=i.createVertexBuffer(this.opacityVertexArray,lF,!0),this.opacityVertexBuffer.itemSize=1),(n||o)&&this.programConfigurations.upload(i))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())}}r$("SymbolBuffers",lV);class lN{constructor(i,r,n){this.layoutVertexArray=new i,this.layoutAttributes=r,this.indexArray=new n,this.segments=new o0,this.collisionVertexArray=new n7,this.collisionVertexArrayExt=new n1}upload(i){this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=i.createVertexBuffer(this.collisionVertexArray,aC.members,!0),this.collisionVertexBufferExt=i.createVertexBuffer(this.collisionVertexArrayExt,az.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}r$("CollisionBuffers",lN);class lj{constructor(i){this.collisionBoxArray=i.collisionBoxArray,this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.pixelRatio=i.pixelRatio,this.sourceLayerIndex=i.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=p([]),this.placementViewportMatrix=p([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=aD(this.zoom,r["text-size"]),this.iconSizeData=aD(this.zoom,r["icon-size"]);const n=this.layers[0].layout,o=n.get("symbol-sort-key"),s=n.get("symbol-z-order");this.canOverlap=n.get("text-allow-overlap")||n.get("icon-allow-overlap")||n.get("text-ignore-placement")||n.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==s&&void 0!==o.constantOr(1),this.sortFeaturesByY=("viewport-y"===s||"auto"===s&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=n.get("text-writing-mode").map(i=>a9[i]),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.sourceID=i.sourceID}createArrays(){this.text=new lV(new o$(this.layers,this.zoom,i=>/^text/.test(i))),this.icon=new lV(new o$(this.layers,this.zoom,i=>/^icon/.test(i))),this.glyphOffsetArray=new og,this.lineVertexArray=new oy,this.symbolInstances=new o_}calculateGlyphDependencies(i,r,n,o,s){for(let a=0;a0)&&("constant"!==l.value.kind||l.value.value.length>0),d="constant"!==h.value.kind||!!h.value.value||Object.keys(h.parameters).length>0,p=a.get("symbol-sort-key");if(this.features=[],!u&&!d)return;const f=r.iconDependencies,m=r.glyphDependencies,_=r.availableImages,g=new nk(this.zoom);for(const{feature:y,id:x,index:v,sourceLayerIndex:b}of i){let w,T;const E=s._featureFilter.needGeometry,S=sr(y,E);if(!s._featureFilter.filter(g,S,n))continue;if(E||(S.geometry=si(y,n,o)),u){const I=s.getValueAndResolveTokens("text-field",S,n,_),M=tP.factory(I);(function(i){for(const r of i.sections)if(function(i){for(const r of i)if(ny(r.charCodeAt(0)))return!0;return!1}(r.text))return!0;return!1})(M)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===nA()||this.hasRTLText&&nz.isParsed())&&(w=function(i,r,n){return i.sections.forEach(i=>{i.text=function(i,r,n){const o=r.layout.get("text-transform").evaluate(n,{});return"uppercase"===o?i=i.toLocaleUpperCase():"lowercase"===o&&(i=i.toLocaleLowerCase()),nz.applyArabicShaping&&(i=nz.applyArabicShaping(i)),i}(i.text,r,n)}),i}(M,s,S))}if(d){const A=s.getValueAndResolveTokens("icon-image",S,n,_);T=A instanceof tD?A:tD.fromString(A)}if(!w&&!T)continue;const C=this.sortFeaturesByKey?p.evaluate(S,{},n):void 0;if(this.features.push({id:x,text:w,icon:T,index:v,sourceLayerIndex:b,geometry:S.geometry,properties:y.properties,type:lR[y.type],sortKey:C}),T&&(f[T.name]=!0),w){const z=l.evaluate(S,{},n).join(","),k="map"===a.get("text-rotation-alignment")&&"point"!==a.get("symbol-placement");for(const P of(this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(a9.vertical)>=0,w.sections))if(P.image)f[P.image.name]=!0;else{const D=nm(w.toString()),L=P.fontStack||z,B=m[L]=m[L]||{};this.calculateGlyphDependencies(P.text,B,k,this.allowVerticalPlacement,D)}}}"line"===a.get("symbol-placement")&&(this.features=function(i){const r={},n={},o=[];let s=0;function a(r){o.push(i[r]),s++}function l(i,r,s){const a=n[i];return delete n[i],n[r]=a,o[a].geometry[0].pop(),o[a].geometry[0]=o[a].geometry[0].concat(s[0]),a}function c(i,n,s){const a=r[n];return delete r[n],r[i]=a,o[a].geometry[0].shift(),o[a].geometry[0]=s[0].concat(o[a].geometry[0]),a}function h(i,r,n){const o=n?r[0][r[0].length-1]:r[0][0];return`${i}:${o.x}:${o.y}`}for(let u=0;ui.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((i,r)=>i.sortKey-r.sortKey)}update(i,r,n,o){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(i,r,this.layers,n,o),this.icon.programConfigurations.updatePaintArrays(i,r,this.layers,n,o))}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(i){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(i),this.iconCollisionBox.upload(i)),this.text.upload(i,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(i,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(i,r){const n=this.lineVertexArray.length;if(void 0!==i.segment){let o=i.dist(r[i.segment+1]),s=i.dist(r[i.segment]);const a={};for(let l=i.segment+1;l=0;c--)a[c]={x:r[c].x,y:r[c].y,tileUnitDistanceFromAnchor:s},c>0&&(s+=r[c-1].dist(r[c]));for(let h=0;h=0?r.rightJustifiedTextSymbolIndex:r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.leftJustifiedTextSymbolIndex>=0?r.leftJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex>=0?r.verticalPlacedTextSymbolIndex:o),a=aL(this.textSizeData,i,s)/24;return this.tilePixelRatio*a}getSymbolInstanceIconSize(i,r,n){const o=this.icon.placedSymbolArray.get(n),s=aL(this.iconSizeData,i,o);return this.tilePixelRatio*s}_commitDebugCollisionVertexUpdate(i,r,n){i.emplaceBack(r,-n,-n),i.emplaceBack(r,n,-n),i.emplaceBack(r,n,n),i.emplaceBack(r,-n,n)}_updateTextDebugCollisionBoxes(i,r,n,o,s,a){for(let l=o;l0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(i,r){const n=i.placedSymbolArray.get(r),o=n.vertexStartIndex+4*n.numGlyphs;for(let s=n.vertexStartIndex;so[i]-o[r]||s[r]-s[i]),a}addToSortKeyRanges(i,r){const n=this.sortKeyRanges[this.sortKeyRanges.length-1];n&&n.sortKey===r?n.symbolInstanceEnd=i+1:this.sortKeyRanges.push({sortKey:r,symbolInstanceStart:i,symbolInstanceEnd:i+1})}sortFeatures(i){if(this.sortFeaturesByY&&this.sortedAngle!==i&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){for(const r of(this.symbolInstanceIndexes=this.getSortedSymbolIndexes(i),this.sortedAngle=i,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[],this.symbolInstanceIndexes)){const n=this.symbolInstances.get(r);this.featureSortOrder.push(n.featureIndex),[n.rightJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.leftJustifiedTextSymbolIndex].forEach((i,r,n)=>{i>=0&&n.indexOf(i)===r&&this.addIndicesForPlacedSymbol(this.text,i)}),n.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,n.verticalPlacedTextSymbolIndex),n.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,n.placedIconSymbolIndex),n.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,n.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}r$("SymbolBucket",lj,{omit:["layers","collisionBoxArray","features","compareText"]}),lj.MAX_GLYPHS=65535,lj.addDynamicAttributes=lU;const lG=new n$({"symbol-placement":new nV(tr.layout_symbol["symbol-placement"]),"symbol-spacing":new nV(tr.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new nV(tr.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new nN(tr.layout_symbol["symbol-sort-key"]),"symbol-z-order":new nV(tr.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new nV(tr.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new nV(tr.layout_symbol["icon-ignore-placement"]),"icon-optional":new nV(tr.layout_symbol["icon-optional"]),"icon-rotation-alignment":new nV(tr.layout_symbol["icon-rotation-alignment"]),"icon-size":new nN(tr.layout_symbol["icon-size"]),"icon-text-fit":new nV(tr.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new nV(tr.layout_symbol["icon-text-fit-padding"]),"icon-image":new nN(tr.layout_symbol["icon-image"]),"icon-rotate":new nN(tr.layout_symbol["icon-rotate"]),"icon-padding":new nV(tr.layout_symbol["icon-padding"]),"icon-keep-upright":new nV(tr.layout_symbol["icon-keep-upright"]),"icon-offset":new nN(tr.layout_symbol["icon-offset"]),"icon-anchor":new nN(tr.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new nV(tr.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new nV(tr.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new nV(tr.layout_symbol["text-rotation-alignment"]),"text-field":new nN(tr.layout_symbol["text-field"]),"text-font":new nN(tr.layout_symbol["text-font"]),"text-size":new nN(tr.layout_symbol["text-size"]),"text-max-width":new nN(tr.layout_symbol["text-max-width"]),"text-line-height":new nN(tr.layout_symbol["text-line-height"]),"text-letter-spacing":new nN(tr.layout_symbol["text-letter-spacing"]),"text-justify":new nN(tr.layout_symbol["text-justify"]),"text-radial-offset":new nN(tr.layout_symbol["text-radial-offset"]),"text-variable-anchor":new nV(tr.layout_symbol["text-variable-anchor"]),"text-anchor":new nN(tr.layout_symbol["text-anchor"]),"text-max-angle":new nV(tr.layout_symbol["text-max-angle"]),"text-writing-mode":new nV(tr.layout_symbol["text-writing-mode"]),"text-rotate":new nN(tr.layout_symbol["text-rotate"]),"text-padding":new nV(tr.layout_symbol["text-padding"]),"text-keep-upright":new nV(tr.layout_symbol["text-keep-upright"]),"text-transform":new nN(tr.layout_symbol["text-transform"]),"text-offset":new nN(tr.layout_symbol["text-offset"]),"text-allow-overlap":new nV(tr.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new nV(tr.layout_symbol["text-ignore-placement"]),"text-optional":new nV(tr.layout_symbol["text-optional"])});var lZ={paint:new n$({"icon-opacity":new nN(tr.paint_symbol["icon-opacity"]),"icon-color":new nN(tr.paint_symbol["icon-color"]),"icon-halo-color":new nN(tr.paint_symbol["icon-halo-color"]),"icon-halo-width":new nN(tr.paint_symbol["icon-halo-width"]),"icon-halo-blur":new nN(tr.paint_symbol["icon-halo-blur"]),"icon-translate":new nV(tr.paint_symbol["icon-translate"]),"icon-translate-anchor":new nV(tr.paint_symbol["icon-translate-anchor"]),"text-opacity":new nN(tr.paint_symbol["text-opacity"]),"text-color":new nN(tr.paint_symbol["text-color"],{runtimeType:tm,getOverride:i=>i.textColor,hasOverride:i=>!!i.textColor}),"text-halo-color":new nN(tr.paint_symbol["text-halo-color"]),"text-halo-width":new nN(tr.paint_symbol["text-halo-width"]),"text-halo-blur":new nN(tr.paint_symbol["text-halo-blur"]),"text-translate":new nV(tr.paint_symbol["text-translate"]),"text-translate-anchor":new nV(tr.paint_symbol["text-translate-anchor"])}),layout:lG};class l${constructor(i){this.type=i.property.overrides?i.property.overrides.runtimeType:tu,this.defaultValue=i}evaluate(i){if(i.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(i.formattedSection))return r.getOverride(i.formattedSection)}return i.feature&&i.featureState?this.defaultValue.evaluate(i.feature,i.featureState):this.defaultValue.property.specification.default}eachChild(i){this.defaultValue.isConstant()||i(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}r$("FormatSectionOverride",l$,{omit:["defaultValue"]});class lq extends oY{constructor(i){super(i,lZ)}recalculate(i,r){super.recalculate(i,r),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));const n=this.layout.get("text-writing-mode");if(n){const o=[];for(const s of n)0>o.indexOf(s)&&o.push(s);this.layout._values["text-writing-mode"]=o}else this.layout._values["text-writing-mode"]="point"===this.layout.get("symbol-placement")?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getValueAndResolveTokens(i,r,n,o){var s;const a=this.layout.get(i).evaluate(r,{},n,o),l=this._unevaluatedLayout._values[i];return l.isDataDriven()||i8(l.value)||!a?a:(s=r.properties,a.replace(/{([^{}]+)}/g,(i,r)=>r in s?String(s[r]):""))}createBucket(i){return new lj(i)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const i of lZ.paint.overridableProperties){if(!lq.hasPaintOverride(this.layout,i))continue;const r=this.paint.get(i),n=new l$(r),o=new i6(n,r.property.specification);let s=null;s="constant"===r.value.kind||"source"===r.value.kind?new i7("source",o):new re("composite",o,r.value.zoomStops,r.value._interpolationType),this.paint._values[i]=new nO(r.property,s,r.parameters)}}_handleOverridablePaintPropertyUpdate(i,r,n){return!(!this.layout||r.isDataDriven()||n.isDataDriven())&&lq.hasPaintOverride(this.layout,i)}static hasPaintOverride(i,r){const n=i.get("text-field"),o=lZ.paint.properties[r];let s=!1;const a=i=>{for(const r of i)if(o.overrides&&o.overrides.hasOverride(r))return void(s=!0)};if("constant"===n.value.kind&&n.value.value instanceof tP)a(n.value.value.sections);else if("source"===n.value.kind){const l=i=>{s||(i instanceof tO&&tR(i.value)===tx?a(i.value.sections):i instanceof tj?a(i.sections):i.eachChild(l))},c=n.value;c._styleExpression&&l(c._styleExpression.expression)}return s}getProgramConfiguration(i){return new oZ(this,i)}}var lX={paint:new n$({"background-color":new nV(tr.paint_background["background-color"]),"background-pattern":new nG(tr.paint_background["background-pattern"]),"background-opacity":new nV(tr.paint_background["background-opacity"])})},lW={paint:new n$({"raster-opacity":new nV(tr.paint_raster["raster-opacity"]),"raster-hue-rotate":new nV(tr.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new nV(tr.paint_raster["raster-brightness-min"]),"raster-brightness-max":new nV(tr.paint_raster["raster-brightness-max"]),"raster-saturation":new nV(tr.paint_raster["raster-saturation"]),"raster-contrast":new nV(tr.paint_raster["raster-contrast"]),"raster-resampling":new nV(tr.paint_raster["raster-resampling"]),"raster-fade-duration":new nV(tr.paint_raster["raster-fade-duration"])})};class lH extends oY{constructor(i){super(i,{}),this.implementation=i}is3D(){return"3d"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}recalculate(){}updateTransitions(){}hasTransition(){}serialize(){}onAdd(i){this.implementation.onAdd&&this.implementation.onAdd(i,i.painter.context.gl)}onRemove(i){this.implementation.onRemove&&this.implementation.onRemove(i,i.painter.context.gl)}}var lK={paint:new n$({"sky-type":new nV(tr.paint_sky["sky-type"]),"sky-atmosphere-sun":new nV(tr.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new nV(tr.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new nV(tr.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new nV(tr.paint_sky["sky-gradient-radius"]),"sky-gradient":new nZ(tr.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new nV(tr.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new nV(tr.paint_sky["sky-atmosphere-color"]),"sky-opacity":new nV(tr.paint_sky["sky-opacity"])})};function lY(i,r,n){var o,s,a,l,c,h,u,d;const p=w(0,0,1),f=B(L());return o=f,s=n?-(i*O)+Math.PI:i*O,s*=.5,a=f[0],l=f[1],c=f[2],h=f[3],u=Math.sin(s),d=Math.cos(s),o[0]=a*d-c*u,o[1]=l*d+h*u,o[2]=c*d+a*u,o[3]=h*d-l*u,R(f,f,-(r*O)),P(p,p,f),A(p,p)}const lJ={circle:class extends oY{constructor(i){super(i,sx)}createBucket(i){return new so(i)}queryRadius(i){return sf("circle-radius",this,i)+sf("circle-stroke-width",this,i)+sm(this.paint.get("circle-translate"))}queryIntersectsFeature(i,r,n,o,s,a,l,c){const h=sg(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),u=this.paint.get("circle-radius").evaluate(r,n)+this.paint.get("circle-stroke-width").evaluate(r,n);return sw(i,o,a,l,c,"map"===this.paint.get("circle-pitch-alignment"),"map"===this.paint.get("circle-pitch-scale"),h,u)}getProgramIds(){return["circle"]}getProgramConfiguration(i){return new oZ(this,i)}},heatmap:class extends oY{createBucket(i){return new sS(i)}constructor(i){super(i,sk),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(i){"heatmap-color"===i&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=sP({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)}queryRadius(i){return sf("heatmap-radius",this,i)}queryIntersectsFeature(i,r,n,o,s,a,c,h){const u=this.paint.get("heatmap-radius").evaluate(r,n);return sw(i,o,a,c,h,!0,!0,new l(0,0),u)}hasOffscreenPass(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(i){return new oZ(this,i)}},hillshade:class extends oY{constructor(i){super(i,sD)}hasOffscreenPass(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility}getProgramIds(){return["hillshade","hillshadePrepare"]}getProgramConfiguration(i){return new oZ(this,i)}},fill:class extends oY{constructor(i){super(i,s9)}getProgramIds(){const i=this.paint.get("fill-pattern"),r=i&&i.constantOr(1),n=[r?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&n.push(r&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),n}getProgramConfiguration(i){return new oZ(this,i)}recalculate(i,r){super.recalculate(i,r);const n=this.paint._values["fill-outline-color"];"constant"===n.value.kind&&void 0===n.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(i){return new s6(i)}queryRadius(){return sm(this.paint.get("fill-translate"))}queryIntersectsFeature(i,r,n,o,s,a){return!i.queryGeometry.isAboveHorizon&&sa(s_(i.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),o)}isTileClipped(){return!0}},"fill-extrusion":class extends oY{constructor(i){super(i,ad)}createBucket(i){return new au(i)}queryRadius(){return sm(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}getProgramIds(){return[this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(i){return new oZ(this,i)}queryIntersectsFeature(i,r,n,o,s,a,c,h,u){var d,p;const f=sg(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),m=this.paint.get("fill-extrusion-height").evaluate(r,n),_=this.paint.get("fill-extrusion-base").evaluate(r,n),g=[0,0],y=h&&a.elevation,x=a.elevation?a.elevation.exaggeration():1;if(y){const v=i.tile.getBucket(this).centroidVertexArray,b=u+1;if(b=3){for(let a=0;a1){if(sl(i,r))return!0;for(let o=0;o1&&(c=i[++l]);const d=Math.abs(h-c.left),p=Math.abs(h-c.right),f=Math.min(d,p),m=s/n*(o+1);if(c.isDash){const _=o-Math.abs(m);u=Math.sqrt(f*f+_*_)}else u=o-Math.sqrt(f*f+m*m);this.image.data[a+h]=Math.max(0,Math.min(255,u+128))}}}addRegularDash(i,r){for(let n=i.length-1;n>=0;--n){const o=i[n],s=i[n+1];o.zeroLength?i.splice(n,1):s&&s.isDash===o.isDash&&(s.left=o.left,i.splice(n,1))}const a=i[0],l=i[i.length-1];a.isDash===l.isDash&&(a.left=l.left-this.width,l.right=a.right+this.width);const c=this.width*this.nextRow;let h=0,u=i[0];for(let d=0;d1&&(u=i[++h]);const p=Math.abs(d-u.left),f=Math.abs(d-u.right),m=Math.min(p,f);this.image.data[c+d]=Math.max(0,Math.min(255,(u.isDash?m:-m)+r+128))}}addDash(i,r){const n=this.getKey(i,r);if(this.positions[n])return this.positions[n];const o="round"===r,s=o?7:0,a=2*s+1;if(this.nextRow+a>this.height)return ea("LineAtlas out of space"),null;0===i.length&&i.push(1);let l=0;for(let c=0;c{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){delete this._channel,this._callback=()=>{}}}const l8=h.performance;function l9(i){const r=i?i.url.toString():void 0;return l8.getEntriesByName(r)}class l7{constructor(){this.tasks={},this.taskQueue=[],et(["process"],this),this.invoker=new l6(this.process),this.nextId=0}add(i,r){const n=this.nextId++,o=function({type:i,isSymbolTile:r,zoom:n}){return n=n||0,"message"===i?0:"maybePrepare"!==i||r?"parseTile"!==i||r?"parseTile"===i&&r?300-n:"maybePrepare"===i&&r?400-n:500:200-n:100-n}(r);return 0===o?(ec(),i(),{cancel(){}}):(this.tasks[n]={fn:i,metadata:r,priority:o,id:n},this.taskQueue.push(n),this.invoker.trigger(),{cancel:()=>{delete this.tasks[n]}})}process(){ec();{if(this.taskQueue=this.taskQueue.filter(i=>!!this.tasks[i]),!this.taskQueue.length)return;const i=this.pick();if(null===i)return;const r=this.tasks[i];if(delete this.tasks[i],this.taskQueue.length&&this.invoker.trigger(),!r)return;r.fn()}}pick(){let i=null,r=1/0;for(let n=0;n0;a--)s+=(r&(o=1<this.canonical.z?new cr(i,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new cr(i,this.wrap,i,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(i,r=!0){if(this.overscaledZ===i&&r)return this.key;if(i>this.canonical.z)return cn(this.wrap*+r,i,this.canonical.z,this.canonical.x,this.canonical.y);{const n=this.canonical.z-i;return cn(this.wrap*+r,i,i,this.canonical.x>>n,this.canonical.y>>n)}}isChildOf(i){if(i.wrap!==this.wrap)return!1;const r=this.canonical.z-i.canonical.z;return 0===i.overscaledZ||i.overscaledZ>r&&i.canonical.y===this.canonical.y>>r}children(i){if(this.overscaledZ>=i)return[new cr(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,n=2*this.canonical.x,o=2*this.canonical.y;return[new cr(r,this.wrap,r,n,o),new cr(r,this.wrap,r,n+1,o),new cr(r,this.wrap,r,n,o+1),new cr(r,this.wrap,r,n+1,o+1)]}isLessThan(i){return this.wrapi.wrap)&&(this.overscaledZi.overscaledZ)&&(this.canonical.xi.canonical.x)&&this.canonical.yMath.abs(o[l])){if(n[l]r[l])return null}else{const c=1/o[l];let h=(i[l]-n[l])*c,u=(r[l]-n[l])*c;if(h>u){const d=h;h=u,u=d}if(h>s&&(s=h),ua)return null}return s}function cf(i,r,n,o,s,a,l,c,h,u,d){const p=o-i,f=s-r,m=a-n,_=l-i,g=c-r,y=h-n,x=d[1]*y-d[2]*g,v=d[2]*_-d[0]*y,b=d[0]*g-d[1]*_,w=p*x+f*v+m*b;if(1e-15>Math.abs(w))return null;const T=1/w,E=u[0]-i,S=u[1]-r,I=u[2]-n,M=(E*x+S*v+I*b)*T;if(M<0||M>1)return null;const A=S*m-I*f,C=I*p-E*m,z=E*f-S*p,k=(d[0]*A+d[1]*C+d[2]*z)*T;return k<0||M+k>1?null:(_*A+g*C+y*z)*T}function cm(i,r,n,o,s,a,l,c,h){const u=1<{const a=o?1:0;s[0]=i*n,s[1]=r*n,s[2]=(i+1)*n-a,s[3]=(r+1)*n-a};let l=new cd(o);const c=[];for(let h=0;h=1;o/=2){const m=n[n.length-1];l=new cd(o);for(let _=0;_0;){const{idx:m,t:_,nodex:g,nodey:y,depth:x}=f.pop();if(this.leaves[m]){cm(g,y,x,i,r,n,o,d,p);const v=1<=B[2])return _}continue}let R=0;for(let F=0;F=h[u[V]]&&(u.splice(V,0,F),U=!0);U||(u[R]=F),R++}}for(let N=0;N=this.dim+1||r<-1||r>=this.dim+1)throw RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(i+1)}_unpackMapbox(i,r,n){return(256*i*256+256*r+n)/10-1e4}_unpackTerrarium(i,r,n){return 256*i+r+n/256-32768}static pack(i,r){const n=[0,0,0,0],o=cv.getUnpackVector(r);let s=Math.floor((i+o[3])/o[2]);return n[2]=s%256,s=Math.floor(s/256),n[1]=s%256,s=Math.floor(s/256),n[0]=s,n}getPixels(){return new sz({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(i,r,n){if(this.dim!==i.dim)throw Error("dem dimension mismatch");let o=r*this.dim,s=r*this.dim+this.dim,a=n*this.dim,l=n*this.dim+this.dim;switch(r){case -1:o=s-1;break;case 1:s=o+1}switch(n){case -1:a=l-1;break;case 1:l=a+1}const c=-r*this.dim,h=-n*this.dim;for(let u=a;u{this.remove(i,s)},n)),this.data[o].push(s),this.order.push(o),this.order.length>this.max){const a=this._getAndRemoveByKey(this.order[0]);a&&this.onRemove(a)}return this}has(i){return i.wrapped().key in this.data}getAndRemove(i){return this.has(i)?this._getAndRemoveByKey(i.wrapped().key):null}_getAndRemoveByKey(i){const r=this.data[i].shift();return r.timeout&&clearTimeout(r.timeout),0===this.data[i].length&&delete this.data[i],this.order.splice(this.order.indexOf(i),1),r.value}getByKey(i){const r=this.data[i];return r?r[0].value:null}get(i){return this.has(i)?this.data[i.wrapped().key][0].value:null}remove(i,r){if(!this.has(i))return this;const n=i.wrapped().key,o=void 0===r?0:this.data[n].indexOf(r),s=this.data[n][o];return this.data[n].splice(o,1),s.timeout&&clearTimeout(s.timeout),0===this.data[n].length&&delete this.data[n],this.onRemove(s.value),this.order.splice(this.order.indexOf(n),1),this}setMaxSize(i){for(this.max=i;this.order.length>this.max;){const r=this._getAndRemoveByKey(this.order[0]);r&&this.onRemove(r)}return this}filter(i){const r=[];for(const n in this.data)for(const o of this.data[n])i(o.value)||r.push(o);for(const s of r)this.remove(s.value.tileID,s)}}class cw extends ti{constructor(i,r,n){super(),this.id=i,this._onlySymbols=n,r.on("data",i=>{"source"===i.dataType&&"metadata"===i.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&"source"===i.dataType&&"content"===i.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform))}),r.on("error",()=>{this._sourceErrored=!0}),this._source=r,this._tiles={},this._cache=new cb(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=null,this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new cu}onAdd(i){this.map=i,this._minTileCacheSize=i?i._minTileCacheSize:null,this._maxTileCacheSize=i?i._maxTileCacheSize:null}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(const i in this._tiles){const r=this._tiles[i];if("loaded"!==r.state&&"errored"!==r.state)return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const i=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,i&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(i,r){return i.isSymbolTile=this._onlySymbols,this._source.loadTile(i,r)}_unloadTile(i){if(this._source.unloadTile)return this._source.unloadTile(i,()=>{})}_abortTile(i){if(this._source.abortTile)return this._source.abortTile(i,()=>{})}serialize(){return this._source.serialize()}prepare(i){for(const r in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){const n=this._tiles[r];n.upload(i),n.prepare(this.map.style.imageManager)}}getIds(){return W(this._tiles).map(i=>i.tileID).sort(cT).map(i=>i.key)}getRenderableIds(i){const r=[];for(const n in this._tiles)this._isIdRenderable(+n,i)&&r.push(this._tiles[n]);return i?r.sort((i,r)=>{const n=i.tileID,o=r.tileID,s=new l(n.canonical.x,n.canonical.y)._rotate(this.transform.angle),a=new l(o.canonical.x,o.canonical.y)._rotate(this.transform.angle);return n.overscaledZ-o.overscaledZ||a.y-s.y||a.x-s.x}).map(i=>i.tileID.key):r.map(i=>i.tileID).sort(cT).map(i=>i.key)}hasRenderableParent(i){const r=this.findLoadedParent(i,0);return!!r&&this._isIdRenderable(r.tileID.key)}_isIdRenderable(i,r){return this._tiles[i]&&this._tiles[i].hasData()&&!this._coveredTiles[i]&&(r||!this._tiles[i].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else for(const i in this._cache.reset(),this._tiles)"errored"!==this._tiles[i].state&&this._reloadTile(+i,"reloading")}_reloadTile(i,r){const n=this._tiles[i];n&&("loading"!==n.state&&(n.state=r),this._loadTile(n,this._tileLoaded.bind(this,n,i,r)))}_tileLoaded(i,r,n,o){if(o){if(i.state="errored",404!==o.status)this._source.fire(new tt(o,{tile:i}));else if("raster-dem"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){const s=this.map.painter.terrain;this.update(this.transform,s.getScaledDemTileSize(),!0),s.resetTileLookupCache(this.id)}else this.update(this.transform)}else i.timeAdded=ex.now(),"expired"===n&&(i.refreshedUponExpiration=!0),this._setTileReloadTimer(r,i),"raster-dem"===this._source.type&&i.dem&&this._backfillDEM(i),this._state.initializeTileState(i,this.map?this.map.painter:null),this._source.fire(new te("data",{dataType:"source",tile:i,coord:i.tileID,sourceCacheId:this.id}))}_backfillDEM(i){const r=this.getRenderableIds();for(let n=0;n1||(Math.abs(n)>1&&(1===Math.abs(n+s)?n+=s:1===Math.abs(n-s)&&(n-=s)),r.dem&&i.dem&&(i.dem.backfillBorder(r.dem,n,o),i.neighboringTiles&&i.neighboringTiles[a]&&(i.neighboringTiles[a].backfilled=!0)))}}getTile(i){return this.getTileByID(i.key)}getTileByID(i){return this._tiles[i]}_retainLoadedChildren(i,r,n,o){for(const s in this._tiles){let a=this._tiles[s];if(o[s]||!a.hasData()||a.tileID.overscaledZ<=r||a.tileID.overscaledZ>n)continue;let l=a.tileID;for(;a&&a.tileID.overscaledZ>r+1;){const c=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[c.key])&&a.hasData()&&(l=c)}let h=l;for(;h.overscaledZ>r;)if(i[(h=h.scaledTo(h.overscaledZ-1)).key]){o[l.key]=l;break}}}findLoadedParent(i,r){if(i.key in this._loadedParentTiles){const n=this._loadedParentTiles[i.key];return n&&n.tileID.overscaledZ>=r?n:null}for(let o=i.overscaledZ-1;o>=r;o--){const s=i.scaledTo(o),a=this._getLoadedTile(s);if(a)return a}}_getLoadedTile(i){const r=this._tiles[i.key];return r&&r.hasData()?r:this._cache.getByKey(this._source.reparseOverscaled?i.wrapped().key:i.canonical.key)}updateCacheSize(i,r){r=r||this._source.tileSize;const n=Math.ceil(i.width/r)+1,o=Math.ceil(i.height/r)+1,s=Math.floor(n*o*5),a="number"==typeof this._minTileCacheSize?Math.max(this._minTileCacheSize,s):s,l="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,a):a;this._cache.setMaxSize(l)}handleWrapJump(i){const r=Math.round((i-(void 0===this._prevLng?i:this._prevLng))/360);if(this._prevLng=i,r){const n={};for(const o in this._tiles){const s=this._tiles[o];s.tileID=s.tileID.unwrapTo(s.tileID.wrap+r),n[s.tileID.key]=s}for(const a in this._tiles=n,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(const l in this._tiles)this._setTileReloadTimer(+l,this._tiles[l])}}update(i,r,n){let o;if(this.transform=i,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!n)return;this.updateCacheSize(i,r),"globe"!==this.transform.projection.name&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?o=i.getVisibleUnwrappedCoordinates(this._source.tileID).map(i=>new cr(i.canonical.z,i.wrap,i.canonical.z,i.canonical.x,i.canonical.y)):(o=i.coveringTiles({tileSize:r||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!n,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(o=o.filter(i=>this._source.hasTile(i)))):o=[];const s=this._updateRetainedTiles(o);if(cE(this._source.type)&&0!==o.length){const a={},l={},c=Object.keys(s);for(const h of c){const u=s[h],d=this._tiles[h];if(!d||d.fadeEndTime&&d.fadeEndTime<=ex.now())continue;const p=this.findLoadedParent(u,Math.max(u.overscaledZ-cw.maxOverzooming,this._source.minzoom));p&&(this._addTile(p.tileID),a[p.tileID.key]=p.tileID),l[h]=u}const f=o[o.length-1].overscaledZ;for(const m in this._tiles){const _=this._tiles[m];if(s[m]||!_.hasData())continue;let g=_.tileID;for(;g.overscaledZ>f;){g=g.scaledTo(g.overscaledZ-1);const y=this._tiles[g.key];if(y&&y.hasData()&&l[g.key]){s[m]=_.tileID;break}}}for(const x in a)s[x]||(this._coveredTiles[x]=!0,s[x]=a[x])}for(const v in s)this._tiles[v].clearFadeHold();const b=function(i,r){const n=[];for(const o in i)o in r||n.push(o);return n}(this._tiles,s);for(const w of b){const T=this._tiles[w];T.hasSymbolBuckets&&!T.holdingForFade()?T.setHoldDuration(this.map._fadeDuration):T.hasSymbolBuckets&&!T.symbolFadeFinished()||this._removeTile(+w)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(const i in this._tiles)this._tiles[i].holdingForFade()&&this._removeTile(+i)}_updateRetainedTiles(i){const r={};if(0===i.length)return r;const n={},o=i.reduce((i,r)=>Math.min(i,r.overscaledZ),1/0),s=i[0].overscaledZ,a=Math.max(s-cw.maxOverzooming,this._source.minzoom),l=Math.max(s+cw.maxUnderzooming,this._source.minzoom),c={};for(const h of i){const u=this._addTile(h);r[h.key]=h,u.hasData()||o=this._source.maxzoom){const f=d.children(this._source.maxzoom)[0],m=this.getTile(f);if(m&&m.hasData()){r[f.key]=f;continue}}else{const _=d.children(this._source.maxzoom);if(r[_[0].key]&&r[_[1].key]&&r[_[2].key]&&r[_[3].key])continue}let g=p.wasRequested();for(let y=d.overscaledZ-1;y>=a;--y){const x=d.scaledTo(y);if(n[x.key]||(n[x.key]=!0,(p=this.getTile(x))||!g||(p=this._addTile(x)),p&&(r[x.key]=x,g=p.wasRequested(),p.hasData())))break}}return r}_updateLoadedParentTileCache(){for(const i in this._loadedParentTiles={},this._tiles){const r=[];let n,o=this._tiles[i].tileID;for(;o.overscaledZ>0;){if(o.key in this._loadedParentTiles){n=this._loadedParentTiles[o.key];break}r.push(o.key);const s=o.scaledTo(o.overscaledZ-1);if(n=this._getLoadedTile(s))break;o=s}for(const a of r)this._loadedParentTiles[a]=n}}_addTile(i){let r=this._tiles[i.key];if(r)return r;(r=this._cache.getAndRemove(i))&&(this._setTileReloadTimer(i.key,r),r.tileID=i,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[i.key]&&(clearTimeout(this._cacheTimers[i.key]),delete this._cacheTimers[i.key],this._setTileReloadTimer(i.key,r)));const n=Boolean(r);if(!n){const o=this.map?this.map.painter:null,s="raster"===this._source.type||"raster-dem"===this._source.type;r=new cW(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,o,s),this._loadTile(r,this._tileLoaded.bind(this,r,i.key,r.state))}return r?(r.uses++,this._tiles[i.key]=r,n||this._source.fire(new te("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r):null}_setTileReloadTimer(i,r){i in this._timers&&(clearTimeout(this._timers[i]),delete this._timers[i]);const n=r.getExpiryTimeout();n&&(this._timers[i]=setTimeout(()=>{this._reloadTile(i,"expired"),delete this._timers[i]},n))}_removeTile(i){const r=this._tiles[i];r&&(r.uses--,delete this._tiles[i],this._timers[i]&&(clearTimeout(this._timers[i]),delete this._timers[i]),r.uses>0||(r.hasData()&&"reloading"!==r.state?this._cache.add(r.tileID,r,r.getExpiryTimeout()):(r.aborted=!0,this._abortTile(r),this._unloadTile(r))))}clearTiles(){for(const i in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(+i);this._source._clear&&this._source._clear(),this._cache.reset()}tilesIn(i,r,n){const o=[],s=this.transform;if(!s)return o;for(const a in this._tiles){const l=this._tiles[a];if(n&&l.clearQueryDebugViz(),l.holdingForFade())continue;const c=i.containsTile(l,s,r);c&&o.push(c)}return o}getVisibleCoordinates(i){const r=this.getRenderableIds(i).map(i=>this._tiles[i].tileID);for(const n of r)n.projMatrix=this.transform.calculateProjMatrix(n.toUnwrapped());return r}hasTransition(){if(this._source.hasTransition())return!0;if(cE(this._source.type))for(const i in this._tiles){const r=this._tiles[i];if(void 0!==r.fadeEndTime&&r.fadeEndTime>=ex.now())return!0}return!1}setFeatureState(i,r,n){this._state.updateState(i=i||"_geojsonTileLayer",r,n)}removeFeatureState(i,r,n){this._state.removeFeatureState(i=i||"_geojsonTileLayer",r,n)}getFeatureState(i,r){return this._state.getState(i=i||"_geojsonTileLayer",r)}setDependencies(i,r,n){const o=this._tiles[i];o&&o.setDependencies(r,n)}reloadTilesForDependencies(i,r){for(const n in this._tiles)this._tiles[n].hasDependency(i,r)&&this._reloadTile(+n,"reloading");this._cache.filter(n=>!n.hasDependency(i,r))}_preloadTiles(i,r){const n=new Map,o=Array.isArray(i)?i:[i],s=this.map.painter.terrain,a=this.usedForTerrain&&s?s.getScaledDemTileSize():this._source.tileSize;for(const l of o){const c=l.coveringTiles({tileSize:a,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const h of c)n.set(h.key,h);this.usedForTerrain&&l.updateElevation(!1)}const u=Array.from(n.values()),d="raster"===this._source.type||"raster-dem"===this._source.type;X(u,(i,r)=>{const n=new cW(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,this.map.painter,d);this._loadTile(n,i=>{"raster-dem"===this._source.type&&n.dem&&this._backfillDEM(n),r(i,n)})},r)}}function cT(i,r){const n=Math.abs(2*i.wrap)-+(i.wrap<0),o=Math.abs(2*r.wrap)-+(r.wrap<0);return i.overscaledZ-r.overscaledZ||o-n||r.canonical.y-i.canonical.y||r.canonical.x-i.canonical.x}function cE(i){return"raster"===i||"image"===i||"video"===i}cw.maxOverzooming=10,cw.maxUnderzooming=3;class cS{constructor(i,r,n){this._demTile=i,this._dem=this._demTile.dem,this._scale=r,this._offset=n}static create(i,r,n){const o=n||i.findDEMTileFor(r);if(!o||!o.dem)return;const s=o.dem,a=o.tileID,l=1<=0&&d[3]>=0&&c.insert(l,d[0],d[1],d[2],d[3])}}loadVTLayers(){if(!this.vtLayers)for(const i in this.vtLayers=new aa.VectorTile(new aV(this.rawTileData)).layers,this.sourceLayerCoder=new cc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={},this.vtLayers)this.vtFeatures[i]=[];return this.vtLayers}query(i,r,n,o){let s;this.loadVTLayers();const a=i.params||{},l=rh(a.filter),c=i.tileResult,h=i.transform,u=c.bufferedTilespaceBounds,d=this.grid.query(u.min.x,u.min.y,u.max.x,u.max.y,(i,r,n,o)=>sp(c.bufferedTilespaceGeometry,i,r,n,o));d.sort(cA);let p=null;h.elevation&&d.length>0&&(p=cS.create(h.elevation,this.tileID));const f={};for(let m=0;m(y||(y=si(r,this.tileID.canonical,i.tileTransform)),n.queryIntersectsFeature(c,r,o,y,this.z,i.transform,i.pixelPosMatrix,p,s)))}return f}loadMatchingFeature(i,r,n,o,s,a,l,c,h){const{featureIndex:u,bucketIndex:d,sourceLayerIndex:p,layoutVertexArrayOffset:f}=r,m=this.bucketLayerIDs[d];if(o&&!function(i,r){for(let n=0;n=0)return!0;return!1}(o,m))return;const _=this.sourceLayerCoder.decode(p),g=this.vtLayers[_].feature(u);if(n.needGeometry){const y=sr(g,!0);if(!n.filter(new nk(this.tileID.overscaledZ),y,this.tileID.canonical))return}else if(!n.filter(new nk(this.tileID.overscaledZ),g))return;const x=this.getId(g,_);for(let v=0;vo.indexOf(b))continue;const w=a[b];if(!w)continue;let T={};void 0!==x&&c&&(T=c.getState(w.sourceLayer||"_geojsonTileLayer",x));const E=H({},l[b]);E.paint=cM(E.paint,w.paint,g,T,s),E.layout=cM(E.layout,w.layout,g,T,s);const S=!h||h(g,w,T,f);if(!S)continue;const I=new ch(g,this.z,this.x,this.y,x);I.layer=E;let M=i[b];void 0===M&&(M=i[b]=[]),M.push({featureIndex:u,feature:I,intersectionZ:S})}}lookupSymbolFeatures(i,r,n,o,s,a,l,c){const h={};this.loadVTLayers();const u=rh(s);for(const d of i)this.loadMatchingFeature(h,{bucketIndex:n,sourceLayerIndex:o,featureIndex:d,layoutVertexArrayOffset:0},u,a,l,c,r);return h}loadFeature(i){const{featureIndex:r,sourceLayerIndex:n}=i;this.loadVTLayers();const o=this.sourceLayerCoder.decode(n),s=this.vtFeatures[o];if(s[r])return s[r];const a=this.vtLayers[o].feature(r);return s[r]=a,a}hasLayer(i){for(const r of this.bucketLayerIDs)for(const n of r)if(i===n)return!0;return!1}getId(i,r){let n=i.id;return this.promoteId&&"boolean"==typeof(n=i.properties["string"==typeof this.promoteId?this.promoteId:this.promoteId[r]])&&(n=Number(n)),n}}function cM(i,r,n,o,s){return er(i,(i,a)=>{const l=r instanceof nU?r.get(a):null;return l&&l.evaluate?l.evaluate(n,o,s):l})}function cA(i,r){return r-i}r$("FeatureIndex",cI,{omit:["rawTileData","sourceLayerCoder"]});var cC=nK([{name:"a_pos",type:"Int16",components:2}]);const cz=new Uint16Array(8184);for(let ck=0;ck<2046;ck++){let cP=ck+2,cD=0,cL=0,cB=0,cR=0,cF=0,cO=0;for(1&cP?cB=cR=cF=32:cD=cL=cO=32;(cP>>=1)>1;){const cU=cD+cB>>1,cV=cL+cR>>1;1&cP?(cB=cD,cR=cL,cD=cF,cL=cO):(cD=cB,cL=cR,cB=cF,cR=cO),cF=cU,cO=cV}const cN=4*ck;cz[cN+0]=cD,cz[cN+1]=cL,cz[cN+2]=cB,cz[cN+3]=cR}const cj=new Uint16Array(2178),cG=new Uint8Array(1089),cZ=new Uint16Array(1089);function c$(i){return 0===i?-.03125:32===i?.03125:0}var cq=nK([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const cX={type:2,extent:8192,loadGeometry:()=>[[new l(0,0),new l(8193,0),new l(8193,8193),new l(0,8193),new l(0,0)]]};class cW{constructor(i,r,n,o,s){this.tileID=i,this.uid=Y(),this.uses=0,this.tileSize=r,this.tileZoom=n,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=s,this.expiredRequestCount=0,this.state="loading",o&&o.transform&&(this.projection=o.transform.projection)}registerFadeDuration(i){const r=i+this.timeAdded;rr.getLayer(i)).filter(Boolean);if(0!==s.length)for(const a of(o.layers=s,o.stateDependentLayerIds&&(o.stateDependentLayers=o.stateDependentLayerIds.map(i=>s.filter(r=>r.id===i)[0])),s))n[a.id]=o}return n}(i.buckets,r.style),this.hasSymbolBuckets=!1,this.buckets){const s=this.buckets[o];if(s instanceof lj){if(this.hasSymbolBuckets=!0,!n)break;s.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const a in this.buckets){const l=this.buckets[a];if(l instanceof lj&&l.hasRTLText){this.hasRTLText=!0,nz.isLoading()||nz.isLoaded()||"deferred"!==nA()||nC();break}}for(const c in this.queryPadding=0,this.buckets){const h=this.buckets[c];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(c).queryRadius(h))}i.imageAtlas&&(this.imageAtlas=i.imageAtlas),i.glyphAtlasImage&&(this.glyphAtlasImage=i.glyphAtlasImage),i.lineAtlas&&(this.lineAtlas=i.lineAtlas)}else this.collisionBoxArray=new od}unloadVectorData(){if(this.hasData()){for(const i in this.buckets)this.buckets[i].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugIndexBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this.globeGridBuffer&&(this.globeGridBuffer.destroy(),this.globeGridBuffer=null),this.globePoleBuffer&&(this.globePoleBuffer.destroy(),this.globePoleBuffer=null),this.latestFeatureIndex=null,this.state="unloaded"}}getBucket(i){return this.buckets[i.id]}upload(i){for(const r in this.buckets){const n=this.buckets[r];n.uploadPending()&&n.upload(i)}const o=i.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new l5(i,this.imageAtlas.image,o.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new l5(i,this.glyphAtlasImage,o.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new l5(i,this.lineAtlas.image,o.ALPHA),this.lineAtlas.uploaded=!0)}prepare(i){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(i,this.imageAtlasTexture)}queryRenderedFeatures(i,r,n,o,s,a,l,c){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:o,pixelPosMatrix:l,transform:a,params:s,tileTransform:this.tileTransform},i,r,n):{}}querySourceFeatures(i,r){const n=this.latestFeatureIndex;if(!n||!n.rawTileData)return;const o=n.loadVTLayers(),s=r?r.sourceLayer:"",a=o._geojsonTileLayer||o[s];if(!a)return;const l=rh(r&&r.filter),{z:c,x:h,y:u}=this.tileID.canonical,d={z:c,x:h,y:u};for(let p=0;po)s=!1;else if(r){if(this.expirationTime=0;d--){const p=4*d,f=cz[p+0],m=cz[p+1],_=cz[p+2],g=cz[p+3],y=f+_>>1,x=m+g>>1,v=y+x-m,b=x+f-y,w=33*m+f,T=33*g+_,E=33*x+y,S=Math.hypot((cj[2*w+0]+cj[2*T+0])/2-cj[2*E+0],(cj[2*w+1]+cj[2*T+1])/2-cj[2*E+1])>=16;if(cG[E]=cG[E]||(S?1:0),d<1022){const I=(m+b>>1)*33+(f+v>>1),M=(g+b>>1)*33+(_+v>>1);cG[E]=cG[E]||cG[I]||cG[M]}}const A=new nQ,C=new oe;let z=0;function k(i,r){const n=33*r+i;return 0===cZ[n]&&(A.emplaceBack(cj[2*n+0],cj[2*n+1],8192*i/32,8192*r/32),cZ[n]=++z),cZ[n]-1}function P(i,r,n,o,s,a){const l=i+n>>1,c=r+o>>1;if(Math.abs(i-s)+Math.abs(r-a)>1&&cG[33*c+l])P(s,a,i,r,l,c),P(n,o,s,a,l,c);else{const h=k(i,r),u=k(n,o),d=k(s,a);C.emplaceBack(h,u,d)}}return P(0,0,32,32,32,0),P(32,32,0,0,0,32),{vertices:A,indices:C}}(this.tileID.canonical,r);n=a.vertices,o=a.indices}else{for(const{x:l,y:c}of(n=new nQ,o=new oe,s))n.emplaceBack(l,c,0,0);const h=sR(n.int16,void 0,4);for(let u=0;u{const o=65*n+r;i.emplaceBack(o+1,o,o+65),i.emplaceBack(o+65,o+65+1,o+1)};for(let n=0;n<64;n++)for(let o=0;o<64;o++)r(o,n);return i}getWirefameBuffer(i){if(!this.wireframeSegments){const r=this._createWireframeGrid();this.wireframeIndexBuffer=i.createIndexBuffer(r),this.wireframeSegments=o0.simpleSegment(0,0,4096,r.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}_createWireframeGrid(){const i=new oa,r=(r,n)=>{const o=65*n+r;i.emplaceBack(o,o+1),i.emplaceBack(o,o+65),i.emplaceBack(o,o+65+1)};for(let n=0;n<64;n++)for(let o=0;o<64;o++)r(o,n);return i}}function he(i,r){if(!r.isReprojectedInTileSpace)return{scale:1<b&&(w(i,u,o,s,c,h),w(u,n,c,h,a,l))}w(p,f,o,a,s,a),w(f,m,s,a,s,l),w(m,_,s,l,o,l),w(_,p,o,l,o,a),g-=b,y-=b,x+=b,v+=b;const T=1/Math.max(x-g,v-y);return{scale:T,x:g*T,y:y*T,x2:x*T,y2:v*T,projection:r}}class ht{constructor(i){const r={},n=[];for(const o in i){const s=i[o],a=r[o]={};for(const l in s.glyphs){const c=s.glyphs[+l];if(!c||0===c.bitmap.width||0===c.bitmap.height)continue;const h=c.metrics.localGlyph?2:1,u={x:0,y:0,w:c.bitmap.width+2*h,h:c.bitmap.height+2*h};n.push(u),a[l]=u}}const{w:d,h:p}=a4(n),f=new sC({width:d||1,height:p||1});for(const m in i){const _=i[m];for(const g in _.glyphs){const y=_.glyphs[+g];if(!y||0===y.bitmap.width||0===y.bitmap.height)continue;const x=r[m][g],v=y.metrics.localGlyph?2:1;sC.copy(y.bitmap,f,{x:0,y:0},{x:x.x+v,y:x.y+v},y.bitmap)}}this.image=f,this.positions=r}}r$("GlyphAtlas",ht);class hi{constructor(i){this.tileID=new cr(i.tileID.overscaledZ,i.tileID.wrap,i.tileID.canonical.z,i.tileID.canonical.x,i.tileID.canonical.y),this.tileZoom=i.tileZoom,this.uid=i.uid,this.zoom=i.zoom,this.canonical=i.tileID.canonical,this.pixelRatio=i.pixelRatio,this.tileSize=i.tileSize,this.source=i.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=i.showCollisionBoxes,this.collectResourceTiming=!!i.collectResourceTiming,this.returnDependencies=!!i.returnDependencies,this.promoteId=i.promoteId,this.enableTerrain=!!i.enableTerrain,this.isSymbolTile=i.isSymbolTile,this.tileTransform=he(i.tileID.canonical,i.projection),this.projection=i.projection}parse(i,r,n,o,s){let a,c,h,u;this.status="parsing",this.data=i,this.collisionBoxArray=new od;const d=new cc(Object.keys(i.layers).sort()),p=new cI(this.tileID,this.promoteId);p.bucketLayerIDs=[];const f={},m=new l4(256,256),_={featureIndex:p,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:m,availableImages:n},g=r.familiesBySource[this.source];for(const y in g){const x=i.layers[y];if(!x)continue;let v=!1,b=!1;for(const w of g[y])"symbol"===w[0].type?v=!0:b=!0;if(!0===this.isSymbolTile&&!v||!1===this.isSymbolTile&&!b)continue;1===x.version&&ea(`Vector tile source "${this.source}" layer "${y}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const T=d.encode(y),E=[];for(let S=0;S=C.maxzoom||"none"!==C.visibility&&(hr(A,this.zoom,n),(f[C.id]=C.createBucket({index:p.bucketLayerIDs.length,layers:A,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:T,sourceID:this.source,enableTerrain:this.enableTerrain,availableImages:n})).populate(E,_,this.tileID.canonical,this.tileTransform),p.bucketLayerIDs.push(A.map(i=>i.id)))}}m.trim();const z={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},k=er(_.glyphDependencies,i=>Object.keys(i).map(Number));Object.keys(k).length?o.send("getGlyphs",{uid:this.uid,stacks:k},(i,r)=>{a||(a=i,c=r,L.call(this))},void 0,!1,z):c={};const P=Object.keys(_.iconDependencies);P.length?o.send("getImages",{icons:P,source:this.source,tileID:this.tileID,type:"icons"},(i,r)=>{a||(a=i,h=r,L.call(this))},void 0,!1,z):h={};const D=Object.keys(_.patternDependencies);function L(){if(a)return s(a);if(c&&h&&u){const i=new ht(c),r=new a8(h,u);for(const o in f){const d=f[o];d instanceof lj?(hr(d.layers,this.zoom,n),function(i,r,n,o,s,a,c,h,u,d){i.createArrays(),i.tilePixelRatio=8192/(512*i.overscaling),i.compareText={},i.iconsNeedLinear=!1;const p=i.layers[0].layout,f=i.layers[0]._unevaluatedLayout._values,m={};if("composite"===i.textSizeData.kind){const{minZoom:_,maxZoom:g}=i.textSizeData;m.compositeTextSizes=[f["text-size"].possiblyEvaluate(new nk(_),h),f["text-size"].possiblyEvaluate(new nk(g),h)]}if("composite"===i.iconSizeData.kind){const{minZoom:y,maxZoom:x}=i.iconSizeData;m.compositeIconSizes=[f["icon-size"].possiblyEvaluate(new nk(y),h),f["icon-size"].possiblyEvaluate(new nk(x),h)]}m.layoutTextSize=f["text-size"].possiblyEvaluate(new nk(u+1),h),m.layoutIconSize=f["icon-size"].possiblyEvaluate(new nk(u+1),h),m.textMaxSize=f["text-size"].possiblyEvaluate(new nk(18),h);const v="map"===p.get("text-rotation-alignment")&&"point"!==p.get("symbol-placement"),b=p.get("text-size");for(const w of i.features){const T=p.get("text-font").evaluate(w,{},h).join(","),E=b.evaluate(w,{},h),S=m.layoutTextSize.evaluate(w,{},h),I=(m.layoutIconSize.evaluate(w,{},h),{horizontal:{},vertical:void 0}),M=w.text;let A,C=[0,0];if(M){const z=M.toString(),k=24*p.get("text-letter-spacing").evaluate(w,{},h),P=24*p.get("text-line-height").evaluate(w,{},h),D=!function(i){for(const r of i){var n;if(rJ(n=r.charCodeAt(0))||rQ(n)||r0(n)||nc(n)||np(n))return!1}return!0}(z)?0:k,L=p.get("text-anchor").evaluate(w,{},h),B=p.get("text-variable-anchor");if(!B){const R=p.get("text-radial-offset").evaluate(w,{},h);C=R?lz(L,[24*R,lA]):p.get("text-offset").evaluate(w,{},h).map(i=>24*i)}let F=v?"center":p.get("text-justify").evaluate(w,{},h);const U=p.get("symbol-placement"),V="point"===U,N="point"===U?24*p.get("text-max-width").evaluate(w,{},h):0,j=o=>{i.allowVerticalPlacement&&nm(z)&&(I.vertical=lt(M,r,n,s,T,N,P,L,o,D,C,a9.vertical,!0,U,S,E))};if(!v&&B){const G="auto"===F?B.map(i=>lk(i)):[F];let Z=!1;for(let $=0;$=0||!nm(z)){const W=lt(M,r,n,s,T,N,P,L,F,D,C,a9.horizontal,!1,U,S,E);W&&(I.horizontal[F]=W)}j("point"===U?"left":F)}}let H=!1;if(w.icon&&w.icon.name){const K=o[w.icon.name];K&&(A=function(i,r,n){const{horizontalAlign:o,verticalAlign:s}=ll(n),a=r[0]-i.displaySize[0]*o,l=r[1]-i.displaySize[1]*s;return{image:i,top:l,bottom:l+i.displaySize[1],left:a,right:a+i.displaySize[0]}}(s[w.icon.name],p.get("icon-offset").evaluate(w,{},h),p.get("icon-anchor").evaluate(w,{},h)),H=K.sdf,void 0===i.sdfIcons?i.sdfIcons=K.sdf:i.sdfIcons!==K.sdf&&ea("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(K.pixelRatio!==i.pixelRatio||0!==p.get("icon-rotate").constantOr(1))&&(i.iconsNeedLinear=!0))}const Y=lD(I.horizontal)||I.vertical;i.iconsInText||(i.iconsInText=!!Y&&Y.iconsInText),(Y||A)&&function(i,r,n,o,s,a,c,h,u,d,p,f,m){let _,g=a.textMaxSize.evaluate(r,{},f);void 0===g&&(g=c);const y=i.layers[0].layout,x=y.get("icon-offset").evaluate(r,{},f),v=lD(n.horizontal)||n.vertical,b=c/24,w=i.tilePixelRatio*g/24,T=i.tilePixelRatio*y.get("symbol-spacing"),E=y.get("text-padding")*i.tilePixelRatio,S=y.get("icon-padding")*i.tilePixelRatio,I=y.get("text-max-angle")*O,M="map"===y.get("text-rotation-alignment")&&"point"!==y.get("symbol-placement"),A="map"===y.get("icon-rotation-alignment")&&"point"!==y.get("symbol-placement"),C=y.get("symbol-placement"),z=T/2,k=y.get("icon-text-fit");o&&"none"!==k&&(i.allowVerticalPlacement&&n.vertical&&(_=lh(o,n.vertical,k,y.get("icon-text-fit-padding"),x,b)),v&&(o=lh(o,v,k,y.get("icon-text-fit-padding"),x,b)));const P=(l,c,h)=>{if(c.x<0||c.x>=8192||c.y<0||c.y>=8192)return;const{x:g,y:y,z:v}=m.projectTilePoint(c.x,c.y,h),b=new lu(g,y,v,0,void 0);!function(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I){const M=i.addToLineVertexArray(r,o);let A,C,z,k,P,D,L,B=0,R=0,F=0,O=0,U=-1,V=-1;const N={};let j=oM(""),G=0,Z=0;if(void 0===h._unevaluatedLayout.getValue("text-radial-offset")?[G,Z]=h.layout.get("text-offset").evaluate(w,{},I).map(i=>24*i):(G=24*h.layout.get("text-radial-offset").evaluate(w,{},I),Z=lA),i.allowVerticalPlacement&&s.vertical){const $=s.vertical;if(_)D=lB($),c&&(L=lB(c));else{const q=h.layout.get("text-rotate").evaluate(w,{},I)+90;z=lL(u,n,r,d,p,f,$,m,q,g),c&&(k=lL(u,n,r,d,p,f,c,x,q))}}if(a){const X=h.layout.get("icon-rotate").evaluate(w,{},I),W="none"!==h.layout.get("icon-text-fit"),H=lb(a,X,E,W),K=c?lb(c,X,E,W):void 0;C=lL(u,n,r,d,p,f,a,x,X),B=4*H.length;const Y=i.iconSizeData;let J=null;"source"===Y.kind?(J=[128*h.layout.get("icon-size").evaluate(w,{},I)])[0]>32640&&ea(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`):"composite"===Y.kind&&((J=[128*T.compositeIconSizes[0].evaluate(w,{},I),128*T.compositeIconSizes[1].evaluate(w,{},I)])[0]>32640||J[1]>32640)&&ea(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`),i.addSymbols(i.icon,H,J,b,v,w,!1,n,r,M.lineStartIndex,M.lineLength,-1,S,I),U=i.icon.placedSymbolArray.length-1,K&&(R=4*K.length,i.addSymbols(i.icon,K,J,b,v,w,a9.vertical,n,r,M.lineStartIndex,M.lineLength,-1,S,I),V=i.icon.placedSymbolArray.length-1)}for(const Q in s.horizontal){const ee=s.horizontal[Q];A||(j=oM(ee.text),_?P=lB(ee):A=lL(u,n,r,d,p,f,ee,m,h.layout.get("text-rotate").evaluate(w,{},I),g));const et=1===ee.positionedLines.length;if(F+=lP(i,n,r,ee,l,h,_,w,g,M,s.vertical?a9.horizontal:a9.horizontalOnly,et?Object.keys(s.horizontal):[Q],N,U,T,S,I),et)break}s.vertical&&(O+=lP(i,n,r,s.vertical,l,h,_,w,g,M,a9.vertical,["vertical"],N,V,T,S,I));let ei=-1;const er=(i,r)=>i?Math.max(i,r):r;ei=er(P,ei),ei=er(D,ei),ei=er(L,ei);const en=ei>-1?1:0;i.glyphOffsetArray.length>=lj.MAX_GLYPHS&&ea("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==w.sortKey&&i.addToSortKeyRanges(i.symbolInstances.length,w.sortKey),i.symbolInstances.emplaceBack(n.x,n.y,n.z,r.x,r.y,N.right>=0?N.right:-1,N.center>=0?N.center:-1,N.left>=0?N.left:-1,N.vertical>=0?N.vertical:-1,U,V,j,void 0!==A?A:i.collisionBoxArray.length,void 0!==A?A+1:i.collisionBoxArray.length,void 0!==z?z:i.collisionBoxArray.length,void 0!==z?z+1:i.collisionBoxArray.length,void 0!==C?C:i.collisionBoxArray.length,void 0!==C?C+1:i.collisionBoxArray.length,k||i.collisionBoxArray.length,k?k+1:i.collisionBoxArray.length,d,F,O,B,R,en,0,G,Z,ei)}(i,c,b,l,n,o,s,_,i.layers[0],i.collisionBoxArray,r.index,r.sourceLayerIndex,i.index,E,M,u,0,S,A,x,r,a,d,p,f)};if("line"===C)for(const D of l_(r.geometry,0,0,8192,8192)){const L=function(i,r,n,o,s,a,l,c,h){const u=lf(o,a,l),d=lm(o,s),p=d*l,f=0===i[0].x||i[0].x===h||0===i[0].y||i[0].y===h;return r-p=0&&T=0&&E=0&&m+d<=p){const S=new lu(T,E,0,b,g);S._round(),s&&!ld(r,S,l,s,a)||_.push(S)}}f+=v}return h||_.length||c||(_=i(r,f/2,o,s,a,l,c,!0,u)),_}(i,f?r/2*c%r:(d/2+2*a)*l*c%r,r,u,n,p,f,!1,h)}(D,T,I,n.vertical||v,o,24,w,i.overscaling,8192);for(const B of L)v&&function(i,r,n,o){const s=i.compareText;if(r in s){const a=s[r];for(let l=a.length-1;l>=0;l--)if(o.dist(a[l])1){const F=function(i,r,n,o,s,a){const l=lf(n,24,a),c=lm(n,o)*a;let h=0;const u=lp(i)/2;for(let d=0;du){const _=(u-h)/m,g=io(p.x,f.x,_),y=io(p.y,f.y,_),x=new lu(g,y,0,f.angleTo(p),d);return!l||ld(i,x,c,l,r)?x:void 0}h+=m}}(R,I,n.vertical||v,o,24,w);F&&P(R,F,f)}}else if("Polygon"===r.type)for(const U of s2(r.geometry,0)){const V=function(i,r=1,n=!1){let o=1/0,s=1/0,a=-1/0,c=-1/0;const h=i[0];for(let u=0;ua)&&(a=d.x),(!u||d.y>c)&&(c=d.y)}const p=Math.min(a-o,c-s);let f=p/2;const m=new lE([],lI);if(0===p)return new l(o,s);for(let _=o;_y.d||!y.d)&&(y=v,n&&console.log("found best %d after %d probes",Math.round(1e4*v.d)/1e4,x)),v.max-y.d<=r||(f=v.h/2,m.push(new lM(v.p.x-f,v.p.y-f,f,i)),m.push(new lM(v.p.x+f,v.p.y-f,f,i)),m.push(new lM(v.p.x-f,v.p.y+f,f,i)),m.push(new lM(v.p.x+f,v.p.y+f,f,i)),x+=4)}return n&&(console.log(`num probes: ${x}`),console.log(`best distance: ${y.d}`)),y.p}(U,16);P(U[0],new lu(V.x,V.y,0,0,void 0),f)}else if("LineString"===r.type)for(const N of r.geometry)P(N,new lu(N[0].x,N[0].y,0,0,void 0),f);else if("Point"===r.type)for(const j of r.geometry)for(const G of j)P([G],new lu(G.x,G.y,0,0,void 0),f)}(i,w,I,A,o,m,S,0,C,H,c,h,d)}a&&i.generateCollisionDebugBuffers(u,i.collisionBoxArray)}(d,c,i.positions,h,r.iconPositions,this.showCollisionBoxes,n,this.tileID.canonical,this.tileZoom,this.projection),d.projection=this.projection.name):d.hasPattern&&(d instanceof aw||d instanceof s6||d instanceof au)&&(hr(d.layers,this.zoom,n),d.addFeatures(_,this.tileID.canonical,r.patternPositions,n))}this.status="done",s(null,{buckets:W(f).filter(i=>!i.isEmpty()),featureIndex:p,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:i.image,lineAtlas:m,imageAtlas:r,glyphMap:this.returnDependencies?c:null,iconMap:this.returnDependencies?h:null,glyphPositions:this.returnDependencies?i.positions:null})}}D.length?o.send("getImages",{icons:D,source:this.source,tileID:this.tileID,type:"patterns"},(i,r)=>{a||(a=i,u=r,L.call(this))},void 0,!1,z):u={},L.call(this)}}function hr(i,r,n){const o=new nk(r);for(const s of i)s.recalculate(o,n)}class hn{constructor(i){this.entries={},this.scheduler=i}request(i,r,n,o){const s=this.entries[i]=this.entries[i]||{callbacks:[]};if(s.result){const[a,l]=s.result;return this.scheduler?this.scheduler.add(()=>{o(a,l)},r):o(a,l),()=>{}}return s.callbacks.push(o),s.cancel||(s.cancel=n((n,o)=>{for(const a of(s.result=[n,o],s.callbacks))this.scheduler?this.scheduler.add(()=>{a(n,o)},r):a(n,o);setTimeout(()=>delete this.entries[i],3e3)})),()=>{s.result||(s.callbacks=s.callbacks.filter(i=>i!==o),s.callbacks.length||(s.cancel(),delete this.entries[i]))}}}function ho(i,r,n){const o=JSON.stringify(i.request);return i.data&&(this.deduped.entries[o]={result:[null,i.data]}),this.deduped.request(o,{type:"parseTile",isSymbolTile:i.isSymbolTile,zoom:i.tileZoom},r=>{const o=e3(i.request,(i,o,s,a)=>{i?r(i):o&&r(null,{vectorTile:n?void 0:new aa.VectorTile(new aV(o)),rawData:o,cacheControl:s,expires:a})});return()=>{o.cancel(),r()}},r)}const hs=p(new Float64Array(16));class ha{constructor(i,r){this._tr=i,this._worldSize=r}createInversionMatrix(){return hs}createTileMatrix(i){let r,n,o;const s=i.canonical,a=p(new Float64Array(16)),l=this._tr.projection;if(l.isReprojectedInTileSpace){const c=he(s,l);r=1,n=c.x+i.wrap*c.scale,o=c.y,_(a,a,[r/c.scale,r/c.scale,this._tr.pixelsPerMeter/this._worldSize])}else r=this._worldSize/this._tr.zoomScale(s.z),n=(s.x+Math.pow(2,s.z)*i.wrap)*r,o=s.y*r;return m(a,a,[n,o,0]),_(a,a,[r/8192,r/8192,1]),a}pointCoordinate(i,r,n){const o=this._tr.horizonLineFromTop(!1),s=new l(i,Math.max(o,r));return this._tr.rayIntersectionCoordinate(this._tr.pointRayIntersection(s,n))}upVector(){return[0,0,1]}upVectorScale(){return 1}}const hl=Math.sqrt(3)/2,hc=Math.PI/2;function hh(i){return Math.tan((hc+i)/2)}const hu=85.051129*O,hd=85.051129*O,hp={albers:{name:"albers",range:[4,7],center:[-96,37.5],parallels:[29.5,45.5],zAxisUnit:"meters",conic:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],initializeConstants(){if(this.constants&&F(this.parallels,this.constants.parallels))return;const i=Math.sin(this.parallels[0]*O),r=(i+Math.sin(this.parallels[1]*O))/2,n=1+i*(2*r-i),o=Math.sqrt(n)/r;this.constants={n:r,c:n,r0:o,parallels:this.parallels}},project(i,r){this.initializeConstants();const n=(i-this.center[0])*O,{n:o,c:s,r0:a}=this.constants,l=Math.sqrt(s-2*o*Math.sin(r*O))/o;return{x:l*Math.sin(n*o),y:l*Math.cos(n*o)-a,z:0}},unproject(i,r){this.initializeConstants();const{n:n,c:o,r0:s}=this.constants,a=s+r;let l=Math.atan2(i,Math.abs(a))*Math.sign(a);a*n<0&&(l-=Math.PI*Math.sign(i)*Math.sign(a));const c=this.center[0]*O*n;l=q(l,-Math.PI-c,Math.PI-c);const h=l/n*U+this.center[0],u=Math.asin(Z((o-(i*i+a*a)*n*n)/(2*n),-1,1)),d=Z(u*U,-85.051129,85.051129);return new o2(h,d)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},equalEarth:{name:"equalEarth",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r=r/180*Math.PI,i=i/180*Math.PI;const n=Math.asin(hl*Math.sin(r)),o=n*n,s=o*o*o;return{x:.5*(i*Math.cos(n)/(hl*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o)))/Math.PI+.5),y:1-.5*(n*(1.340264+-.081106*o+s*(893e-6+.003796*o))/Math.PI+1),z:0}},unproject(i,r){i=(2*i-.5)*Math.PI;let n=r=(2*(1-r)-1)*Math.PI,o=n*n,s=o*o*o;for(let a,l,c=0;c<12&&(l=n*(1.340264+-.081106*o+s*(893e-6+.003796*o))-r,s=(o=(n=Z(n-(a=l/(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))),-Math.PI/3,Math.PI/3))*n)*o*o,!(1e-12>Math.abs(a)));++c);const h=hl*i*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))/Math.cos(n),u=Math.asin(Math.sin(n)/hl),d=Z(180*h/Math.PI,-180,180),p=Z(180*u/Math.PI,-85.051129,85.051129);return new o2(d,p)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},equirectangular:{name:"equirectangular",supportsWorldCopies:!0,center:[0,0],range:[3.5,7],zAxisUnit:"meters",wrap:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project:(i,r)=>({x:.5+i/360,y:.5-r/360,z:0}),unproject(i,r){const n=Z(360*(.5-r),-85.051129,85.051129);return new o2(360*(i-.5),n)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},lambertConformalConic:{name:"lambertConformalConic",range:[3.5,7],zAxisUnit:"meters",center:[0,30],parallels:[30,30],conic:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],initializeConstants(){if(this.constants&&F(this.parallels,this.constants.parallels))return;const i=this.parallels[0]*O,r=this.parallels[1]*O,n=Math.cos(i),o=i===r?Math.sin(i):Math.log(n/Math.cos(r))/Math.log(hh(r)/hh(i)),s=n*Math.pow(hh(i),o)/o;this.constants={n:o,f:s,parallels:this.parallels}},project(i,r){this.initializeConstants(),r*=O,i=(i-this.center[0])*O;const{n:n,f:o}=this.constants;o>0?r<-hc+1e-6&&(r=-hc+1e-6):r>hc-1e-6&&(r=hc-1e-6);const s=o/Math.pow(hh(r),n),a=s*Math.sin(n*i),l=o-s*Math.cos(n*i);return{x:.5*(a/Math.PI+.5),y:1-.5*(l/Math.PI+.5),z:0}},unproject(i,r){this.initializeConstants(),i=(2*i-.5)*Math.PI,r=(2*(1-r)-.5)*Math.PI;const{n:n,f:o}=this.constants,s=o-r,a=Math.sign(s),l=Math.sign(n)*Math.sqrt(i*i+s*s);let c=Math.atan2(i,Math.abs(s))*a;s*n<0&&(c-=Math.PI*Math.sign(i)*a);const h=Z(c/n*U+this.center[0],-180,180),u=Z((2*Math.atan(Math.pow(o/l,1/n))-hc)*U,-85.051129,85.051129);return new o2(h,u)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},mercator:{name:"mercator",wrap:!0,requiresDraping:!1,supportsWorldCopies:!0,supportsTerrain:!0,supportsFog:!0,supportsFreeCamera:!0,zAxisUnit:"meters",center:[0,0],project:(i,r)=>({x:o4(i),y:o6(r),z:0}),unproject(i,r){const n=o8(i),o=o9(r);return new o2(n,o)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},naturalEarth:{name:"naturalEarth",center:[0,0],range:[3.5,7],isReprojectedInTileSpace:!0,zAxisUnit:"meters",unsupportedLayers:["custom"],project(i,r){const n=(r*=O)*r,o=n*n;return{x:.5*((i*=O)*(.8707-.131979*n+o*(o*(.003971*n-.001529*o)-.013791))/Math.PI+.5),y:1-.5*(r*(1.007226+n*(.015085+o*(.028874*n-.044475-.005916*o)))/Math.PI+1),z:0}},unproject(i,r){i=(2*i-.5)*Math.PI;let n=r=(2*(1-r)-1)*Math.PI,o=25,s=0,a=n*n;do{a=n*n;const l=a*a;s=(n*(1.007226+a*(.015085+l*(.028874*a-.044475-.005916*l)))-r)/(1.007226+a*(.045255+l*(.259866*a-.311325-.005916*11*l))),n=Z(n-s,-hu,hu)}while(Math.abs(s)>1e-6&&--o>0)a=n*n;const c=Z(i/(.8707+a*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979))*U,-180,180),h=n*U;return new o2(c,h)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},winkelTripel:{name:"winkelTripel",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r*=O,i*=O;const n=Math.cos(r),o=2/Math.PI,s=Math.acos(n*Math.cos(i/2)),a=Math.sin(s)/s,l=.5*(i*o+2*n*Math.sin(i/2)/a)||0,c=.5*(r+Math.sin(r)/a)||0;return{x:.5*(l/Math.PI+.5),y:1-.5*(c/Math.PI+1),z:0}},unproject(i,r){let n=i=(2*i-.5)*Math.PI,o=r=(2*(1-r)-1)*Math.PI,s=25,a=0,l=0;do{const c=Math.cos(o),h=Math.sin(o),u=2*h*c,d=h*h,p=c*c,f=Math.cos(n/2),m=Math.sin(n/2),_=2*f*m,g=m*m,y=1-p*f*f,x=y?1/y:0,v=y?Math.acos(c*f)*Math.sqrt(1/y):0,b=.5*(2*v*c*m+2*n/Math.PI)-i,w=.5*(v*h+o)-r,T=.5*x*(p*g+v*c*f*d)+1/Math.PI,E=x*(_*u/4-v*h*m),S=.125*x*(u*m-v*h*p*_),I=.5*x*(d*f+v*g*c)+.5,M=E*S-I*T;a=(w*E-b*I)/M,l=(b*S-w*T)/M,n=Z(n-a,-Math.PI,Math.PI),o=Z(o-l,-hd,hd)}while((Math.abs(a)>1e-6||Math.abs(l)>1e-6)&&--s>0)return new o2(n*U,o*U)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)}};i.ARRAY_TYPE=u,i.AUTH_ERR_MSG=ez,i.Aabb=sb,i.Actor=class{constructor(i,r,n){this.target=i,this.parent=r,this.mapId=n,this.callbacks={},this.cancelCallbacks={},et(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=ec()?i:h,this.scheduler=new l7}send(i,r,n,o,s=!1,a){const l=Math.round(1e18*Math.random()).toString(36).substring(0,10);n&&(n.metadata=a,this.callbacks[l]=n);const c=eg(this.globalScope)?void 0:[];return this.target.postMessage({id:l,type:i,hasCallback:!!n,targetMapId:o,mustQueue:s,sourceMapId:this.mapId,data:rH(r,c)},c),{cancel:()=>{n&&delete this.callbacks[l],this.target.postMessage({id:l,type:"",targetMapId:o,sourceMapId:this.mapId})}}}receive(i){const r=i.data,n=r.id;if(n&&(!r.targetMapId||this.mapId===r.targetMapId)){if(""===r.type){const o=this.cancelCallbacks[n];delete this.cancelCallbacks[n],o&&o.cancel()}else if(r.mustQueue||ec()){const s=this.callbacks[n];this.cancelCallbacks[n]=this.scheduler.add(()=>this.processTask(n,r),s&&s.metadata||{type:"message"})}else this.processTask(n,r)}}processTask(i,r){if(""===r.type){const n=this.callbacks[i];delete this.callbacks[i],n&&(r.error?n(rK(r.error)):n(null,rK(r.data)))}else{const o=eg(this.globalScope)?void 0:[],s=r.hasCallback?(r,n)=>{delete this.cancelCallbacks[i],this.target.postMessage({id:i,type:"",sourceMapId:this.mapId,error:r?rH(r):null,data:rH(n,o)},o)}:i=>{},a=rK(r.data);if(this.parent[r.type])this.parent[r.type](r.sourceMapId,a,s);else if(this.parent.getWorkerSource){const l=r.type.split(".");this.parent.getWorkerSource(r.sourceMapId,l[0],a.source)[l[1]](a,s)}else s(Error(`Could not find function ${r.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},i.CanonicalTileID=ct,i.Color=tC,i.ColorMode=ca,i.CullFaceMode=cl,i.DEMData=cv,i.DataConstantProperty=nV,i.DedupedRequest=hn,i.DepthMode=co,i.EXTENT=8192,i.Elevation=class{getAtPointOrZero(i,r=0){return this.getAtPoint(i,r)||0}getAtPoint(i,r,n=!0){null==r&&(r=null);const o=this._source();if(!o||i.y<0||i.y>1)return r;const s=o.getSource().maxzoom,a=1<{const o=this.getAtTileOffset(i,n.x,n.y),s=r.upVector(i.canonical,n.x,n.y);return I(s,s,o*r.upVectorScale(i.canonical)),s}}getForTilePoints(i,r,n,o){const s=cS.create(this,i,o);return!!s&&(r.forEach(i=>{i[2]=this.exaggeration()*s.getElevationAt(i[0],i[1],n)}),!0)}getMinMaxForTile(i){const r=this.findDEMTileFor(i);if(!r||!r.dem)return null;const n=r.dem.tree,o=r.tileID,s=1<Math.abs(o))return!1;const s=((i[0]-this.pos[0])*r[0]+(i[1]-this.pos[1])*r[1]+(i[2]-this.pos[2])*r[2])/o;return n[0]=this.pos[0]+this.dir[0]*s,n[1]=this.pos[1]+this.dir[1]*s,n[2]=this.pos[2]+this.dir[2]*s,!0}closestPointOnSphere(i,r,n){var o,s,a,l,c,h,u;if(s=(o=this.pos)[0],a=o[1],l=o[2],c=i[0],h=i[1],u=i[2],Math.abs(s-c)<=1e-6*Math.max(1,Math.abs(s),Math.abs(c))&&Math.abs(a-h)<=1e-6*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(l-u)<=1e-6*Math.max(1,Math.abs(l),Math.abs(u))||0===r)return n[0]=n[1]=n[2]=0,!1;const[d,p,f]=this.dir,m=this.pos[0]-i[0],_=this.pos[1]-i[1],g=this.pos[2]-i[2],y=d*d+p*p+f*f,x=2*(m*d+_*p+g*f),v=x*x-4*y*(m*m+_*_+g*g-r*r);if(v<0){const b=Math.max(-x/2,0),w=m+d*b,T=_+p*b,E=g+f*b,S=Math.hypot(w,T,E);return n[0]=w*r/S,n[1]=T*r/S,n[2]=E*r/S,!1}{const I=(-x-Math.sqrt(v))/(2*y);if(I<0){const M=Math.hypot(m,_,g);return n[0]=m*r/M,n[1]=_*r/M,n[2]=g*r/M,!1}return n[0]=m+d*I,n[1]=_+p*I,n[2]=g+f*I,!0}}},i.RequestManager=class{constructor(i,r,n){this._transformRequestFn=i,this._customAccessToken=r,this._silenceAuthErrors=!!n,this._createSkuToken()}_createSkuToken(){const i=function(){let i="";for(let r=0;r<10;r++)i+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1","01",i].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=i.token,this._skuTokenExpiresAt=i.tokenExpiresAt}_isSkuTokenExpired(){return Date.now()>this._skuTokenExpiresAt}transformRequest(i,r){return this._transformRequestFn&&this._transformRequestFn(i,r)||{url:i}}normalizeStyleURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/styles/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeGlyphsURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/fonts/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeSourceURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/v4/${n.authority}.json`,n.params.push("secure"),this._makeAPIURL(n,this._customAccessToken||r)}normalizeSpriteURL(i,r,n,o){const s=eL(i);return ek(i)?(s.path=`/styles/v1${s.path}/sprite${r}${n}`,this._makeAPIURL(s,this._customAccessToken||o)):(s.path+=`${r}${n}`,eB(s))}normalizeTileURL(i,r,n){if(this._isSkuTokenExpired()&&this._createSkuToken(),i&&!ek(i))return i;const o=eL(i);o.path=o.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${r||n&&"raster"!==o.authority&&512===n?"@2x":""}${eT.supported?".webp":"$1"}`),"raster"===o.authority?o.path=`/${ev.RASTER_URL_PREFIX}${o.path}`:(o.path=o.path.replace(/^.+\/v4\//,"/"),o.path=`/${ev.TILE_URL_VERSION}${o.path}`);const s=this._customAccessToken||function(i){for(const r of i){const n=r.match(/^access_token=(.*)$/);if(n)return n[1]}return null}(o.params)||ev.ACCESS_TOKEN;return ev.REQUIRE_ACCESS_TOKEN&&s&&this._skuToken&&o.params.push(`sku=${this._skuToken}`),this._makeAPIURL(o,s)}canonicalizeTileURL(i,r){const n=eL(i);if(!n.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!n.path.match(/\.[\w]+$/))return i;let o="mapbox://";n.path.match(/^\/raster\/v1\//)?o+=`raster/${n.path.replace(`/${ev.RASTER_URL_PREFIX}/`,"")}`:o+=`tiles/${n.path.replace(`/${ev.TILE_URL_VERSION}/`,"")}`;let s=n.params;return r&&(s=s.filter(i=>!i.match(/^access_token=/))),s.length&&(o+=`?${s.join("&")}`),o}canonicalizeTileset(i,r){const n=!!r&&ek(r),o=[];for(const s of i.tiles||[])eP(s)?o.push(this.canonicalizeTileURL(s,n)):o.push(s);return o}_makeAPIURL(i,r){const n="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",o=eL(ev.API_URL);if(i.protocol=o.protocol,i.authority=o.authority,"http"===i.protocol){const s=i.params.indexOf("secure");s>=0&&i.params.splice(s,1)}if("/"!==o.path&&(i.path=`${o.path}${i.path}`),!ev.REQUIRE_ACCESS_TOKEN)return eB(i);if(r=r||ev.ACCESS_TOKEN,!this._silenceAuthErrors){if(!r)throw Error(`An API access token is required to use Mapbox GL. ${n}`);if("s"===r[0])throw Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${n}`)}return i.params=i.params.filter(i=>-1===i.indexOf("access_token")),i.params.push(`access_token=${r||""}`),eB(i)}},i.ResourceType=eQ,i.SegmentVector=o0,i.SourceCache=cw,i.StencilMode=cs,i.StructArrayLayout1ui2=ol,i.StructArrayLayout2f1f2i16=n9,i.StructArrayLayout2i4=nJ,i.StructArrayLayout2ui4=oa,i.StructArrayLayout3f12=n1,i.StructArrayLayout3ui6=oe,i.StructArrayLayout4i8=nQ,i.Texture=l5,i.Tile=cW,i.Transitionable=nL,i.Uniform1f=oP,i.Uniform1i=class extends ok{constructor(i,r){super(i,r),this.current=0}set(i){this.current!==i&&(this.current=i,this.gl.uniform1i(this.location,i))}},i.Uniform2f=class extends ok{constructor(i,r){super(i,r),this.current=[0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]||(this.current=i,this.gl.uniform2f(this.location,i[0],i[1]))}},i.Uniform3f=class extends ok{constructor(i,r){super(i,r),this.current=[0,0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]&&i[2]===this.current[2]||(this.current=i,this.gl.uniform3f(this.location,i[0],i[1],i[2]))}},i.Uniform4f=oD,i.UniformColor=oL,i.UniformMatrix2f=class extends ok{constructor(i,r){super(i,r),this.current=oF}set(i){for(let r=0;r<4;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix2fv(this.location,!1,i);break}}},i.UniformMatrix3f=class extends ok{constructor(i,r){super(i,r),this.current=oR}set(i){for(let r=0;r<9;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix3fv(this.location,!1,i);break}}},i.UniformMatrix4f=class extends ok{constructor(i,r){super(i,r),this.current=oB}set(i){if(i[12]!==this.current[12]||i[0]!==this.current[0])return this.current=i,void this.gl.uniformMatrix4fv(this.location,!1,i);for(let r=1;r<16;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix4fv(this.location,!1,i);break}}},i.UnwrappedTileID=ci,i.ValidationError=tn,i.VectorTileWorkerSource=class extends ti{constructor(i,r,n,o,s){super(),this.actor=i,this.layerIndex=r,this.availableImages=n,this.loadVectorData=s||ho,this.loading={},this.loaded={},this.deduped=new hn(i.scheduler),this.isSpriteLoaded=o,this.scheduler=i.scheduler}loadTile(i,r){const n=i.uid,o=i&&i.request,s=o&&o.collectResourceTiming,a=this.loading[n]=new hi(i);a.abort=this.loadVectorData(i,(l,c)=>{const h=!this.loading[n];if(delete this.loading[n],h||l||!c)return a.status="done",h||(this.loaded[n]=a),r(l);const u=c.rawData,d={};c.expires&&(d.expires=c.expires),c.cacheControl&&(d.cacheControl=c.cacheControl),a.vectorTile=c.vectorTile||new aa.VectorTile(new aV(u));const p=()=>{a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,(i,n)=>{if(i||!n)return r(i);const a={};if(s){const l=l9(o);l.length>0&&(a.resourceTiming=JSON.parse(JSON.stringify(l)))}r(null,H({rawTileData:u.slice(0)},n,d,a))})};this.isSpriteLoaded?p():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(p,{type:"parseTile",isSymbolTile:i.isSymbolTile,zoom:i.tileZoom}):p()}),this.loaded=this.loaded||{},this.loaded[n]=a})}reloadTile(i,r){const n=this.loaded,o=i.uid,s=this;if(n&&n[o]){const a=n[o];a.showCollisionBoxes=i.showCollisionBoxes,a.enableTerrain=!!i.enableTerrain,a.projection=i.projection;const l=(i,n)=>{const o=a.reloadCallback;o&&(delete a.reloadCallback,a.parse(a.vectorTile,s.layerIndex,this.availableImages,s.actor,o)),r(i,n)};"parsing"===a.status?a.reloadCallback=l:"done"===a.status&&(a.vectorTile?a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,l):l())}}abortTile(i,r){const n=i.uid,o=this.loading[n];o&&(o.abort&&o.abort(),delete this.loading[n]),r()}removeTile(i,r){const n=this.loaded,o=i.uid;n&&n[o]&&delete n[o],r()}},i.WritingMode=a9,i.ZoomHistory=rY,i.add=T,i.addDynamicAttributes=lU,i.adjoint=function(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=r[4],c=r[5],h=r[6],u=r[7],d=r[8];return i[0]=l*d-c*u,i[1]=s*u-o*d,i[2]=o*c-s*l,i[3]=c*h-a*d,i[4]=n*d-s*h,i[5]=s*a-n*c,i[6]=a*u-l*h,i[7]=o*h-n*u,i[8]=n*l-o*a,i},i.asyncAll=X,i.bezier=j,i.bindAll=et,i.boundsAttributes=cq,i.bufferConvexPolygon=function(i,r){const n=[];for(let o=0;oeH&&(i.getActor().send("enforceCacheSizeLimit",eW),eJ=0)},i.calculateGlobeMatrix=c9,i.calculateGlobeMercatorMatrix=function(i){const r=i.worldSize,n=Z(i.center.lat,-85.051129,85.051129),o=new l(o4(i.center.lng)*r,o6(n)*r),s=1/o5(i.center.lat)*r,a=i.pixelsPerMeter,c=r/(s/i.pixelsPerMeter),h=p(new Float64Array(16));return m(h,h,[o.x,o.y,0]),_(h,h,[c,c,a]),h},i.clamp=Z,i.clearTileCache=function(i){const r=h.caches.delete(e$);i&&r.catch(i).then(()=>i())},i.clipLine=l_,i.clone=function(i){var r=new u(16);return r[0]=i[0],r[1]=i[1],r[2]=i[2],r[3]=i[3],r[4]=i[4],r[5]=i[5],r[6]=i[6],r[7]=i[7],r[8]=i[8],r[9]=i[9],r[10]=i[10],r[11]=i[11],r[12]=i[12],r[13]=i[13],r[14]=i[14],r[15]=i[15],r},i.clone$1=eo,i.collisionCircleLayout=aP,i.config=ev,i.conjugate=function(i,r){return i[0]=-r[0],i[1]=-r[1],i[2]=-r[2],i[3]=r[3],i},i.create=function(){var i=new u(16);return u!=Float32Array&&(i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=0,i[12]=0,i[13]=0,i[14]=0),i[0]=1,i[5]=1,i[10]=1,i[15]=1,i},i.create$1=d,i.createExpression=i9,i.createLayout=nK,i.createStyleLayer=function(i){return"custom"===i.type?new lH(i):new lJ[i.type](i)},i.cross=z,i.degToRad=function(i){return i*O},i.div=function(i,r,n){return i[0]=r[0]/n[0],i[1]=r[1]/n[1],i[2]=r[2]/n[2],i},i.dot=C,i.ease=G,i.easeCubicInOut=N,i.emitValidationErrors=rU,i.endsWith=ei,i.enforceCacheSizeLimit=function(i){eK(),eq&&eq.then(r=>{r.keys().then(n=>{for(let o=0;oa&&(o+=(i[s]-a)*(i[s]-a)),r[s]Math.abs(r.parallels[0]+r.parallels[1])){let n=function(i){const r=Math.max(.01,Math.cos(i*O)),n=1/(2*Math.max(Math.PI*r,1/r));return{wrap:!0,supportsWorldCopies:!0,unsupportedLayers:["custom"],project(i,o){const s=Math.sin(o*O)/r;return{x:i*O*r*n+.5,y:-s*n+.5,z:0}},unproject(i,o){const s=Z((i-.5)/n*U/r,-180,180),a=Math.asin(Z(-(o-.5)/n*r,-1,1)),l=Z(a*U,-85.051129,85.051129);return new o2(s,l)}}}(r.parallels[0]);if("lambertConformalConic"===r.name){const{project:o,unproject:s}=hp.mercator;n={wrap:!0,supportsWorldCopies:!0,project:o,unproject:s}}return H({},i,r,n)}return H({},i,r)}(r,i):r},i.getRTLTextPluginStatus=nA,i.getReferrer=e1,i.getTilePoint=function(i,{x:r,y:n},o=0){return new l(((r-o)*i.scale-i.x)*8192,(n*i.scale-i.y)*8192)},i.getTileVec3=function(i,r,n=0){return w(((r.x-n)*i.scale-i.x)*8192,(r.y*i.scale-i.y)*8192,o7(r.z,r.y))},i.getVideo=function(i,r){const n=h.document.createElement("video");n.muted=!0,n.onloadstart=function(){r(null,n)};for(let o=0;o0&&(l=1/Math.sqrt(l)),i[0]=n*l,i[1]=o*l,i[2]=s*l,i[3]=a*l,i},i.number=io,i.ortho=function(i,r,n,o,s,a,l){var c=1/(r-n),h=1/(o-s),u=1/(a-l);return i[0]=-2*c,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=-2*h,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=2*u,i[11]=0,i[12]=(r+n)*c,i[13]=(s+o)*h,i[14]=(l+a)*u,i[15]=1,i},i.pbf=aV,i.perspective=function(i,r,n,o,s){var a,l=1/Math.tan(r/2);return i[0]=l/n,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=l,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=-1,i[12]=0,i[13]=0,i[15]=0,null!=s&&s!==1/0?(i[10]=(s+o)*(a=1/(o-s)),i[14]=2*s*o*a):(i[10]=-1,i[14]=-2*o),i},i.pick=function(i,r){const n={};for(let o=0;othis._layers[i.id]),h=c[0];if("none"===h.visibility)continue;const u=h.source||"";let d=this.familiesBySource[u];d||(d=this.familiesBySource[u]={});const p=h.sourceLayer||"_geojsonTileLayer";let f=d[p];f||(f=d[p]=[]),f.push(c)}}}const{ImageBitmap:n}=i.window;class o{loadTile(r,o){const{uid:s,encoding:a,rawImageData:l,padding:c,buildQuadTree:h}=r,u=n&&l instanceof n?this.getImageData(l,c):l;o(null,new i.DEMData(s,u,a,c<1,h))}getImageData(r,n){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(r.width,r.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=r.width,this.offscreenCanvas.height=r.height,this.offscreenCanvasContext.drawImage(r,0,0,r.width,r.height);const o=this.offscreenCanvasContext.getImageData(-n,-n,r.width+2*n,r.height+2*n);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new i.RGBAImage({width:o.width,height:o.height},o.data)}}var s,a=function i(r,n){var o,s=r&&r.type;if("FeatureCollection"===s)for(o=0;o=Math.abs(c)?n-h+c:c-h+n,n=h}n+o>=0!=!!r&&i.reverse()}const h=i.vectorTile.VectorTileFeature.prototype.toGeoJSON;class u{constructor(r){this._feature=r,this.extent=i.EXTENT,this.type=r.type,this.properties=r.tags,"id"in r&&!isNaN(r.id)&&(this.id=parseInt(r.id,10))}loadGeometry(){if(1===this._feature.type){const r=[];for(const n of this._feature.geometry)r.push([new i.pointGeometry(n[0],n[1])]);return r}{const o=[];for(const s of this._feature.geometry){const a=[];for(const l of s)a.push(new i.pointGeometry(l[0],l[1]));o.push(a)}return o}}toGeoJSON(i,r,n){return h.call(this,i,r,n)}}class d{constructor(r){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=i.EXTENT,this.length=r.length,this._features=r}feature(i){return new u(this._features[i])}}var p=i.vectorTile.VectorTileFeature;function f(i,r){this.options=r||{},this.features=i,this.length=i.length}function m(i,r){this.id="number"==typeof i.id?i.id:void 0,this.type=i.type,this.rawGeometry=1===i.type?[i.geometry]:i.geometry,this.properties=i.tags,this.extent=r||4096}f.prototype.feature=function(i){return new m(this.features[i],this.options.extent)},m.prototype.loadGeometry=function(){var r=this.rawGeometry;this.geometry=[];for(var n=0;n>31}function T(i,r){for(var n=i.loadGeometry(),o=i.type,s=0,a=0,l=n.length,c=0;ci[0],C=i=>i[1];class z{constructor(i,r=A,n=C,o=64,s=Float64Array){this.nodeSize=o,this.points=i;const a=i.length<65536?Uint16Array:Uint32Array,l=this.ids=new a(i.length),c=this.coords=new s(2*i.length);for(let h=0;h>1;(function i(r,n,o,s,a,l){for(;a>s;){if(a-s>600){const c=a-s+1,h=o-s+1,u=Math.log(c),d=.5*Math.exp(2*u/3),p=.5*Math.sqrt(u*d*(c-d)/c)*(h-c/2<0?-1:1);i(r,n,o,Math.max(s,Math.floor(o-h*d/c+p)),Math.min(a,Math.floor(o+(c-h)*d/c+p)),l)}const f=n[2*o+l];let m=s,_=a;for(S(r,n,s,o),n[2*a+l]>f&&S(r,n,s,a);m<_;){for(S(r,n,m,_),m++,_--;n[2*m+l]f;)_--}n[2*s+l]===f?S(r,n,s,_):S(r,n,++_,a),_<=o&&(s=_+1),o<=_&&(a=_-1)}})(r,n,c,s,a,l%2),i(r,n,o,s,c-1,l+1),i(r,n,o,c+1,a,l+1)}(l,c,o,0,l.length-1,0)}range(i,r,n,o){return function(i,r,n,o,s,a,l){let c,h;const u=[0,i.length-1,0],d=[];for(;u.length;){const p=u.pop(),f=u.pop(),m=u.pop();if(f-m<=l){for(let _=m;_<=f;_++)c=r[2*_],h=r[2*_+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[_]);continue}const g=Math.floor((m+f)/2);c=r[2*g],h=r[2*g+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[g]);const y=(p+1)%2;(0===p?n<=c:o<=h)&&(u.push(m),u.push(g-1),u.push(y)),(0===p?s>=c:a>=h)&&(u.push(g+1),u.push(f),u.push(y))}return d}(this.ids,this.coords,i,r,n,o,this.nodeSize)}within(i,r,n){return function(i,r,n,o,s,a){const l=[0,i.length-1,0],c=[],h=s*s;for(;l.length;){const u=l.pop(),d=l.pop(),p=l.pop();if(d-p<=a){for(let f=p;f<=d;f++)M(r[2*f],r[2*f+1],n,o)<=h&&c.push(i[f]);continue}const m=Math.floor((p+d)/2),_=r[2*m],g=r[2*m+1];M(_,g,n,o)<=h&&c.push(i[m]);const y=(u+1)%2;(0===u?n-s<=_:o-s<=g)&&(l.push(p),l.push(m-1),l.push(y)),(0===u?n+s>=_:o+s>=g)&&(l.push(m+1),l.push(d),l.push(y))}return c}(this.ids,this.coords,i,r,n,this.nodeSize)}}const k={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:i=>i},P=Math.fround||(s=new Float32Array(1),i=>(s[0]=+i,s[0]));class D{constructor(i){this.options=O(Object.create(k),i),this.trees=Array(this.options.maxZoom+1)}load(i){const{log:r,minZoom:n,maxZoom:o,nodeSize:s}=this.options;r&&console.time("total time");const a=`prepare ${i.length} points`;r&&console.time(a),this.points=i;let l=[];for(let c=0;c=n;h--){const u=+Date.now();l=this._cluster(l,h),this.trees[h]=new z(l,U,V,s,Float32Array),r&&console.log("z%d: %d clusters in %dms",h,l.length,+Date.now()-u)}return r&&console.timeEnd("total time"),this}getClusters(i,r){let n=((i[0]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,i[1]));let s=180===i[2]?180:((i[2]+180)%360+360)%360-180;const a=Math.max(-90,Math.min(90,i[3]));if(i[2]-i[0]>=360)n=-180,s=180;else if(n>s){const l=this.getClusters([n,o,180,a],r),c=this.getClusters([-180,o,s,a],r);return l.concat(c)}const h=this.trees[this._limitZoom(r)],u=h.range(R(n),F(a),R(s),F(o)),d=[];for(const p of u){const f=h.points[p];d.push(f.numPoints?L(f):this.points[f.index])}return d}getChildren(i){const r=this._getOriginId(i),n=this._getOriginZoom(i),o="No cluster with the specified id.",s=this.trees[n];if(!s)throw Error(o);const a=s.points[r];if(!a)throw Error(o);const l=this.options.radius/(this.options.extent*Math.pow(2,n-1)),c=s.within(a.x,a.y,l),h=[];for(const u of c){const d=s.points[u];d.parentId===i&&h.push(d.numPoints?L(d):this.points[d.index])}if(0===h.length)throw Error(o);return h}getLeaves(i,r,n){const o=[];return this._appendLeaves(o,i,r=r||10,n=n||0,0),o}getTile(i,r,n){const o=this.trees[this._limitZoom(i)],s=Math.pow(2,i),{extent:a,radius:l}=this.options,c=l/a,h=(n-c)/s,u=(n+1+c)/s,d={features:[]};return this._addTileFeatures(o.range((r-c)/s,h,(r+1+c)/s,u),o.points,r,n,s,d),0===r&&this._addTileFeatures(o.range(1-c/s,h,1,u),o.points,s,n,s,d),r===s-1&&this._addTileFeatures(o.range(0,h,c/s,u),o.points,-1,n,s,d),d.features.length?d:null}getClusterExpansionZoom(i){let r=this._getOriginZoom(i)-1;for(;r<=this.options.maxZoom;){const n=this.getChildren(i);if(r++,1!==n.length)break;i=n[0].properties.cluster_id}return r}_appendLeaves(i,r,n,o,s){const a=this.getChildren(r);for(const l of a){const c=l.properties;if(c&&c.cluster?s+c.point_count<=o?s+=c.point_count:s=this._appendLeaves(i,c.cluster_id,n,o,s):sr&&(m+=g.numPoints||1)}if(m>f&&m>=l){var y,x,v,b;let w=u.x*f,T=u.y*f,E=a&&f>1?this._map(u,!0):null;const S=(h<<5)+(r+1)+this.points.length;for(const I of p){const M=d.points[I];if(M.zoom<=r)continue;M.zoom=r;const A=M.numPoints||1;w+=M.x*A,T+=M.y*A,M.parentId=S,a&&(E||(E=this._map(u,!0)),a(E,this._map(M)))}u.parentId=S,n.push((y=w/m,x=T/m,v=m,b=E,{x:P(y),y:P(x),zoom:1/0,id:S,parentId:-1,numPoints:v,properties:b}))}else if(n.push(u),m>1)for(const C of p){const z=d.points[C];z.zoom<=r||(z.zoom=r,n.push(z))}}return n}_getOriginId(i){return i-this.points.length>>5}_getOriginZoom(i){return(i-this.points.length)%32}_map(i,r){if(i.numPoints)return r?O({},i.properties):i.properties;const n=this.points[i.index].properties,o=this.options.map(n);return r&&o===n?O({},o):o}}function L(i){return{type:"Feature",id:i.id,properties:B(i),geometry:{type:"Point",coordinates:[360*(i.x-.5),function(i){const r=(180-360*i)*Math.PI/180;return 360*Math.atan(Math.exp(r))/Math.PI-90}(i.y)]}}}function B(i){const r=i.numPoints,n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r;return O(O({},i.properties),{cluster:!0,cluster_id:i.id,point_count:r,point_count_abbreviated:n})}function R(i){return i/360+.5}function F(i){const r=Math.sin(i*Math.PI/180),n=.5-.25*Math.log((1+r)/(1-r))/Math.PI;return n<0?0:n>1?1:n}function O(i,r){for(const n in r)i[n]=r[n];return i}function U(i){return i.x}function V(i){return i.y}function N(i,r,n,o){var s={id:void 0===i?null:i,type:r,geometry:n,tags:o,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(i){var r=i.geometry,n=i.type;if("Point"===n||"MultiPoint"===n||"LineString"===n)j(i,r);else if("Polygon"===n||"MultiLineString"===n)for(var o=0;o0&&(l+=o?(s*u-h*a)/2:Math.sqrt(Math.pow(h-s,2)+Math.pow(u-a,2))),s=h,a=u}var d=r.length-3;r[2]=1,function i(r,n,o,s){for(var a,l=s,c=o-n>>1,h=o-n,u=r[n],d=r[n+1],p=r[o],f=r[o+1],m=n+3;m1?(n=s,o=a):h>0&&(n+=l*h,o+=c*h)}return(l=i-n)*l+(c=r-o)*c}(r[m],r[m+1],u,d,p,f);if(_>l)a=m,l=_;else if(_===l){var g=Math.abs(m-c);gs&&(a-n>3&&i(r,n,a,s),r[a+2]=l,o-a>3&&i(r,a,o,s))}(r,0,d,n),r[d+2]=1,r.size=Math.abs(l),r.start=0,r.end=r.size}function q(i,r,n,o){for(var s=0;s1?1:n}function H(i,r,n,o,s,a,l,c){if(o/=r,a>=(n/=r)&&l=o)return null;for(var h=[],u=0;u=n&&_=o)){var g=[];if("Point"===f||"MultiPoint"===f)(function(i,r,n,o,s){for(var a=0;a=n&&l<=o&&(r.push(i[a]),r.push(i[a+1]),r.push(i[a+2]))}})(p,g,n,o,s);else if("LineString"===f)K(p,g,n,o,s,!1,c.lineMetrics);else if("MultiLineString"===f)J(p,g,n,o,s,!1);else if("Polygon"===f)J(p,g,n,o,s,!0);else if("MultiPolygon"===f)for(var y=0;yn&&(h=d(u,m,_,y,x,n),l&&(u.start=p+c*h)):v>o?b=n&&(h=d(u,m,_,y,x,n),w=!0),b>o&&v<=o&&(h=d(u,m,_,y,x,o),w=!0),!a&&w&&(l&&(u.end=p+c*h),r.push(u),u=Y(i)),l&&(p+=c)}var T=i.length-3;m=i[T],_=i[T+1],g=i[T+2],(v=0===s?m:_)>=n&&v<=o&&Q(u,m,_,g),T=u.length-3,a&&T>=3&&(u[T]!==u[0]||u[T+1]!==u[1])&&Q(u,u[0],u[1],u[2]),u.length&&r.push(u)}function Y(i){var r=[];return r.size=i.size,r.start=i.start,r.end=i.end,r}function J(i,r,n,o,s,a){for(var l=0;l0&&r.size<(s?l:o))n.numPoints+=r.length/3;else{for(var c=[],h=0;hl)&&(n.numSimplified++,c.push(r[h]),c.push(r[h+1])),n.numPoints++;s&&function(i,r){for(var n=0,o=0,s=i.length,a=s-2;o0===r)for(o=0,s=i.length;o24)throw Error("maxZoom should be in the 0-24 range");if(r.promoteId&&r.generateId)throw Error("promoteId and generateId cannot be used together.");var u=function(i,r){var n=[];if("FeatureCollection"===i.type)for(var o=0;o1&&console.time("creation"),f=this.tiles[p]=function(i,r,n,o,s){for(var a=r===s.maxZoom?0:s.tolerance/((1<l.maxX&&(l.maxX=d),p>l.maxY&&(l.maxY=p)}return l}(i,r,n,o,h),this.tileCoords.push({z:r,x:n,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",r,n,o,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));var m="z"+r;this.stats[m]=(this.stats[m]||0)+1,this.total++}if(f.source=i,s){if(r===h.maxZoom||r===s)continue;var _=1<1&&console.time("clipping");var g,y,x,v,b,w,T=.5*h.buffer/h.extent,E=.5-T,S=.5+T,I=1+T;g=y=x=v=null,b=H(i,d,n-T,n+S,0,f.minX,f.maxX,h),w=H(i,d,n+E,n+I,0,f.minX,f.maxX,h),i=null,b&&(g=H(b,d,o-T,o+S,1,f.minY,f.maxY,h),y=H(b,d,o+E,o+I,1,f.minY,f.maxY,h),b=null),w&&(x=H(w,d,o-T,o+S,1,f.minY,f.maxY,h),v=H(w,d,o+E,o+I,1,f.minY,f.maxY,h),w=null),u>1&&console.timeEnd("clipping"),c.push(g||[],r+1,2*n,2*o),c.push(y||[],r+1,2*n,2*o+1),c.push(x||[],r+1,2*n+1,2*o),c.push(v||[],r+1,2*n+1,2*o+1)}}},ea.prototype.getTile=function(i,r,n){var o=this.options,s=o.extent,a=o.debug;if(i<0||i>24)return null;var l=1<1&&console.log("drilling down to z%d-%d-%d",i,r,n);for(var h,u=i,d=r,p=n;!h&&u>0;)u--,d=Math.floor(d/2),p=Math.floor(p/2),h=this.tiles[el(u,d,p)];return h&&h.source?(a>1&&console.log("found parent tile z%d-%d-%d",u,d,p),a>1&&console.time("drilling down"),this.splitTile(h.source,u,d,p,i,r,n),a>1&&console.timeEnd("drilling down"),this.tiles[c]?en(this.tiles[c],s):null):null};class eh extends i.VectorTileWorkerSource{constructor(i,r,n,o,s){super(i,r,n,o,ec),s&&(this.loadGeoJSON=s)}loadData(r,n){const o=r&&r.request,s=o&&o.collectResourceTiming;this.loadGeoJSON(r,(l,c)=>{if(l||!c)return n(l);if("object"!=typeof c)return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`));{a(c,!0);try{var h,u;if(r.filter){const d=i.createExpression(r.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===d.result)throw Error(d.value.map(i=>`${i.key}: ${i.message}`).join(", "));const p=c.features.filter(i=>d.value.evaluate({zoom:0},i));c={type:"FeatureCollection",features:p}}this._geoJSONIndex=r.cluster?new D(function({superclusterOptions:r,clusterProperties:n}){if(!n||!r)return r;const o={},s={},a={accumulated:null,zoom:0},l={properties:null},c=Object.keys(n);for(const h of c){const[u,d]=n[h],p=i.createExpression(d),f=i.createExpression("string"==typeof u?[u,["accumulated"],["get",h]]:u);o[h]=p.value,s[h]=f.value}return r.map=i=>{l.properties=i;const r={};for(const n of c)r[n]=o[n].evaluate(a,l);return r},r.reduce=(i,r)=>{for(const n of(l.properties=r,c))a.accumulated=i[n],i[n]=s[n].evaluate(a,l)},r}(r)).load(c.features):(h=c,u=r.geojsonVtOptions,new ea(h,u))}catch(f){return n(f)}this.loaded={};const m={};if(s){const _=i.getPerformanceMeasurement(o);_&&(m.resourceTiming={},m.resourceTiming[r.source]=JSON.parse(JSON.stringify(_)))}n(null,m)}})}reloadTile(i,r){const n=this.loaded;return n&&n[i.uid]?super.reloadTile(i,r):this.loadTile(i,r)}loadGeoJSON(r,n){if(r.request)i.getJSON(r.request,n);else{if("string"!=typeof r.data)return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`));try{return n(null,JSON.parse(r.data))}catch(o){return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(i,r){try{r(null,this._geoJSONIndex.getClusterExpansionZoom(i.clusterId))}catch(n){r(n)}}getClusterChildren(i,r){try{r(null,this._geoJSONIndex.getChildren(i.clusterId))}catch(n){r(n)}}getClusterLeaves(i,r){try{r(null,this._geoJSONIndex.getLeaves(i.clusterId,i.limit,i.offset))}catch(n){r(n)}}}class eu{constructor(r){this.self=r,this.actor=new i.Actor(r,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=i.getProjection({name:"mercator"}),this.workerSourceTypes={vector:i.VectorTileWorkerSource,geojson:eh},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(i,r)=>{if(this.workerSourceTypes[i])throw Error(`Worker source with name "${i}" already registered.`);this.workerSourceTypes[i]=r},this.self.registerRTLTextPlugin=r=>{if(i.plugin.isParsed())throw Error("RTL text plugin already registered.");i.plugin.applyArabicShaping=r.applyArabicShaping,i.plugin.processBidirectionalText=r.processBidirectionalText,i.plugin.processStyledBidirectionalText=r.processStyledBidirectionalText}}clearCaches(i,r,n){delete this.layerIndexes[i],delete this.availableImages[i],delete this.workerSources[i],delete this.demWorkerSources[i],n()}checkIfReady(i,r,n){n()}setReferrer(i,r){this.referrer=r}spriteLoaded(r,n){for(const o in this.isSpriteLoaded[r]=n,this.workerSources[r]){const s=this.workerSources[r][o];for(const a in s)s[a]instanceof i.VectorTileWorkerSource&&(s[a].isSpriteLoaded=n,s[a].fire(new i.Event("isSpriteLoaded")))}}setImages(i,r,n){for(const o in this.availableImages[i]=r,this.workerSources[i]){const s=this.workerSources[i][o];for(const a in s)s[a].availableImages=r}n()}enableTerrain(i,r,n){this.terrain=r,n()}setProjection(r,n){this.projections[r]=i.getProjection(n)}setLayers(i,r,n){this.getLayerIndex(i).replace(r),n()}updateLayers(i,r,n){this.getLayerIndex(i).update(r.layers,r.removedIds),n()}loadTile(r,n,o){const s=this.enableTerrain?i.extend({enableTerrain:this.terrain},n):n;s.projection=this.projections[r]||this.defaultProjection,this.getWorkerSource(r,n.type,n.source).loadTile(s,o)}loadDEMTile(r,n,o){const s=this.enableTerrain?i.extend({buildQuadTree:this.terrain},n):n;this.getDEMWorkerSource(r,n.source).loadTile(s,o)}reloadTile(r,n,o){const s=this.enableTerrain?i.extend({enableTerrain:this.terrain},n):n;s.projection=this.projections[r]||this.defaultProjection,this.getWorkerSource(r,n.type,n.source).reloadTile(s,o)}abortTile(i,r,n){this.getWorkerSource(i,r.type,r.source).abortTile(r,n)}removeTile(i,r,n){this.getWorkerSource(i,r.type,r.source).removeTile(r,n)}removeSource(i,r,n){if(!this.workerSources[i]||!this.workerSources[i][r.type]||!this.workerSources[i][r.type][r.source])return;const o=this.workerSources[i][r.type][r.source];delete this.workerSources[i][r.type][r.source],void 0!==o.removeSource?o.removeSource(r,n):n()}loadWorkerSource(i,r,n){try{this.self.importScripts(r.url),n()}catch(o){n(o.toString())}}syncRTLPluginState(r,n,o){try{i.plugin.setState(n);const s=i.plugin.getPluginURL();if(i.plugin.isLoaded()&&!i.plugin.isParsed()&&null!=s){this.self.importScripts(s);const a=i.plugin.isParsed();o(a?void 0:Error(`RTL Text Plugin failed to import scripts from ${s}`),a)}}catch(l){o(l.toString())}}getAvailableImages(i){let r=this.availableImages[i];return r||(r=[]),r}getLayerIndex(i){let n=this.layerIndexes[i];return n||(n=this.layerIndexes[i]=new r),n}getWorkerSource(i,r,n){return this.workerSources[i]||(this.workerSources[i]={}),this.workerSources[i][r]||(this.workerSources[i][r]={}),this.workerSources[i][r][n]||(this.workerSources[i][r][n]=new this.workerSourceTypes[r]({send:(r,n,o,s,a,l)=>{this.actor.send(r,n,o,i,a,l)},scheduler:this.actor.scheduler},this.getLayerIndex(i),this.getAvailableImages(i),this.isSpriteLoaded[i])),this.workerSources[i][r][n]}getDEMWorkerSource(i,r){return this.demWorkerSources[i]||(this.demWorkerSources[i]={}),this.demWorkerSources[i][r]||(this.demWorkerSources[i][r]=new o),this.demWorkerSources[i][r]}enforceCacheSizeLimit(r,n){i.enforceCacheSizeLimit(n)}getWorkerPerformanceMetrics(i,r,n){n(void 0,void 0)}}return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope&&(self.worker=new eu(self)),eu}),o(["./shared"],function(i){function r(i){var o;return"undefined"!=typeof window&&"undefined"!=typeof document&&!!Array.prototype&&!!Array.prototype.every&&!!Array.prototype.filter&&!!Array.prototype.forEach&&!!Array.prototype.indexOf&&!!Array.prototype.lastIndexOf&&!!Array.prototype.map&&!!Array.prototype.some&&!!Array.prototype.reduce&&!!Array.prototype.reduceRight&&!!Array.isArray&&!!Function.prototype&&!!Function.prototype.bind&&!!Object.keys&&!!Object.create&&!!Object.getPrototypeOf&&!!Object.getOwnPropertyNames&&!!Object.isSealed&&!!Object.isFrozen&&!!Object.isExtensible&&!!Object.getOwnPropertyDescriptor&&!!Object.defineProperty&&!!Object.defineProperties&&!!Object.seal&&!!Object.freeze&&!!Object.preventExtensions&&!!("JSON"in window&&"parse"in JSON&&"stringify"in JSON)&&!!function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var i,r,n=new Blob([""],{type:"text/javascript"}),o=URL.createObjectURL(n);try{r=new Worker(o),i=!0}catch(s){i=!1}return r&&r.terminate(),URL.revokeObjectURL(o),i}()&&"Uint8ClampedArray"in window&&!!ArrayBuffer.isView&&!!function(){var i=document.createElement("canvas");i.width=i.height=1;var r=i.getContext("2d");if(!r)return!1;var n=r.getImageData(0,0,1,1);return n&&n.width===i.width}()&&(void 0===n[o=i&&i.failIfMajorPerformanceCaveat]&&(n[o]=function(i){var n,o,s,a=(n=document.createElement("canvas"),(o=Object.create(r.webGLContextAttributes)).failIfMajorPerformanceCaveat=i,n.getContext("webgl",o)||n.getContext("experimental-webgl",o));if(!a)return!1;try{s=a.createShader(a.VERTEX_SHADER)}catch(l){return!1}return!(!s||a.isContextLost())&&(a.shaderSource(s,"void main() {}"),a.compileShader(s),!0===a.getShaderParameter(s,a.COMPILE_STATUS))}(o)),!!n[o]&&!document.documentMode)}var n={};function o(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=n*a-s*o;return l?(i[0]=a*(l=1/l),i[1]=-o*l,i[2]=-s*l,i[3]=n*l,i):null}function s(i,r){if(Array.isArray(i)){if(!Array.isArray(r)||i.length!==r.length)return!1;for(let n=0;n{i.window.removeEventListener("click",h,!0)},0)},a.mousePos=function(i,r){const n=i.getBoundingClientRect();return u(i,n,r)},a.touchPos=function(i,r){const n=i.getBoundingClientRect(),o=[];for(let s=0;s=0?0:r.button};class d extends i.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new i.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(i){if(this.loaded!==i&&(this.loaded=i,i)){for(const{ids:r,callback:n}of this.requestors)this._notify(r,n);this.requestors=[]}}getImage(i){return this.images[i]}addImage(i,r){this._validate(i,r)&&(this.images[i]=r)}_validate(r,n){let o=!0;return this._validateStretch(n.stretchX,n.data&&n.data.width)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "stretchX" value`))),o=!1),this._validateStretch(n.stretchY,n.data&&n.data.height)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "stretchY" value`))),o=!1),this._validateContent(n.content,n)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "content" value`))),o=!1),o}_validateStretch(i,r){if(!i)return!0;let n=0;for(const o of i){if(o[0]{this.ready=!0})}broadcast(r,n,o){i.asyncAll(this.actors,(i,o)=>{i.send(r,n,o)},o=o||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(i=>{i.remove()}),this.actors=[],this.workerPool.release(this.id)}}function S(r,n,o){return n*(i.EXTENT/(r.tileSize*Math.pow(2,o-r.tileID.overscaledZ)))}E.Actor=i.Actor;class I{constructor(i,r,n){this.context=i;const o=i.gl;this.buffer=o.createBuffer(),this.dynamicDraw=Boolean(n),this.context.unbindVAO(),i.bindElementBuffer.set(this.buffer),o.bufferData(o.ELEMENT_ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?o.DYNAMIC_DRAW:o.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(i){const r=this.context.gl;this.context.unbindVAO(),this.bind(),r.bufferSubData(r.ELEMENT_ARRAY_BUFFER,0,i.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const M={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class A{constructor(i,r,n,o){this.length=r.length,this.attributes=n,this.itemSize=r.bytesPerElement,this.dynamicDraw=o,this.context=i;const s=i.gl;this.buffer=s.createBuffer(),i.bindVertexBuffer.set(this.buffer),s.bufferData(s.ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?s.DYNAMIC_DRAW:s.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(i){const r=this.context.gl;this.bind(),r.bufferSubData(r.ARRAY_BUFFER,0,i.arrayBuffer)}enableAttributes(i,r){for(let n=0;no.pointCoordinate3D(i)),this.cameraGeometry=this.bufferedCameraGeometry(0)}static createFromScreenPoints(r,n){let o,s;if(r instanceof i.pointGeometry||"number"==typeof r[0]){const a=i.pointGeometry.convert(r);o=[i.pointGeometry.convert(r)],s=n.isPointAboveHorizon(a)}else{const l=i.pointGeometry.convert(r[0]),c=i.pointGeometry.convert(r[1]);o=[l,c],s=i.polygonizeBounds(l,c).every(i=>n.isPointAboveHorizon(i))}return new ep(o,n.getCameraPoint(),s,n)}isPointQuery(){return 1===this.screenBounds.length}bufferedScreenGeometry(r){return i.polygonizeBounds(this.screenBounds[0],1===this.screenBounds.length?this.screenBounds[0]:this.screenBounds[1],r)}bufferedCameraGeometry(r){const n=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new i.pointGeometry(1,1)):this.screenBounds[1],s=i.polygonizeBounds(n,o,0,!1);return this.cameraPoint.y>o.y&&(this.cameraPoint.x>n.x&&this.cameraPoint.x=o.x?s[2]=this.cameraPoint:this.cameraPoint.x<=n.x&&(s[3]=this.cameraPoint)),i.bufferConvexPolygon(s,r)}containsTile(r,n,o){var s;const a=r.queryPadding+1,l=r.tileID.wrap,c=o?this._bufferedCameraMercator(a,n).map(n=>i.getTilePoint(r.tileTransform,n,l)):this._bufferedScreenMercator(a,n).map(n=>i.getTilePoint(r.tileTransform,n,l)),h=this.screenGeometryMercator.map(n=>i.getTileVec3(r.tileTransform,n,l)),u=h.map(r=>new i.pointGeometry(r[0],r[1])),d=n.getFreeCameraOptions().position||new i.MercatorCoordinate(0,0,0),p=i.getTileVec3(r.tileTransform,d,l),f=h.map(r=>{const n=i.sub(r,r,p);return i.normalize(n,n),new i.Ray(p,n)}),m=S(r,1,n.zoom);if(i.polygonIntersectsBox(c,0,0,i.EXTENT,i.EXTENT))return{queryGeometry:this,tilespaceGeometry:u,tilespaceRays:f,bufferedTilespaceGeometry:c,bufferedTilespaceBounds:((s=i.getBounds(c)).min.x=i.clamp(s.min.x,0,i.EXTENT),s.min.y=i.clamp(s.min.y,0,i.EXTENT),s.max.x=i.clamp(s.max.x,0,i.EXTENT),s.max.y=i.clamp(s.max.y,0,i.EXTENT),s),tile:r,tileID:r.tileID,pixelToTileUnitsFactor:m}}_bufferedScreenMercator(i,r){const n=ef(i);if(this._screenRaycastCache[n])return this._screenRaycastCache[n];{const o=this.bufferedScreenGeometry(i).map(i=>r.pointCoordinate3D(i));return this._screenRaycastCache[n]=o,o}}_bufferedCameraMercator(i,r){const n=ef(i);if(this._cameraRaycastCache[n])return this._cameraRaycastCache[n];{const o=this.bufferedCameraGeometry(i).map(i=>r.pointCoordinate3D(i));return this._cameraRaycastCache[n]=o,o}}}function ef(i){return 100*i|0}function em(r,n,o){const s=function(s,a){if(s)return o(s);if(a){const l=i.pick(i.extend(a,r),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);a.vector_layers&&(l.vectorLayers=a.vector_layers,l.vectorLayerIds=l.vectorLayers.map(i=>i.id)),l.tiles=n.canonicalizeTileset(l,r.url),o(null,l)}};return r.url?i.getJSON(n.transformRequest(n.normalizeSourceURL(r.url),i.ResourceType.Source),s):i.exported.frame(()=>s(null,r))}class e_{constructor(r,n,o){this.bounds=i.LngLatBounds.convert(this.validateBounds(r)),this.minzoom=n||0,this.maxzoom=o||24}validateBounds(i){return Array.isArray(i)&&4===i.length?[Math.max(-180,i[0]),Math.max(-90,i[1]),Math.min(180,i[2]),Math.min(90,i[3])]:[-180,-90,180,90]}contains(r){const n=Math.pow(2,r.z),o=Math.floor(i.mercatorXfromLng(this.bounds.getWest())*n),s=Math.floor(i.mercatorYfromLat(this.bounds.getNorth())*n),a=Math.ceil(i.mercatorXfromLng(this.bounds.getEast())*n),l=Math.ceil(i.mercatorYfromLat(this.bounds.getSouth())*n);return r.x>=o&&r.x=s&&r.y{this._tileJSONRequest=null,this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(i.extend(this,n),n.bounds&&(this.tileBounds=new e_(n.bounds,this.minzoom,this.maxzoom)),i.postTurnstileEvent(n.tiles),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}onAdd(i){this.map=i,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return i.extend({},this._options)}hasTile(i){return!this.tileBounds||this.tileBounds.contains(i.canonical)}loadTile(r,n){const o=i.exported.devicePixelRatio>=2,s=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),o,this.tileSize);r.request=i.getImage(this.map._requestManager.transformRequest(s,i.ResourceType.Tile),(o,s,a,l)=>{if(delete r.request,r.aborted)r.state="unloaded",n(null);else if(o)r.state="errored",n(o);else if(s){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:a,expires:l});const c=this.map.painter.context,h=c.gl;r.texture=this.map.painter.getTileTexture(s.width),r.texture?r.texture.update(s,{useMipmap:!0}):(r.texture=new i.Texture(c,s,h.RGBA,{useMipmap:!0}),r.texture.bind(h.LINEAR,h.CLAMP_TO_EDGE),c.extTextureFilterAnisotropic&&h.texParameterf(h.TEXTURE_2D,c.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,c.extTextureFilterAnisotropicMax)),r.state="loaded",i.cacheEntryPossiblyAdded(this.dispatcher),n(null)}})}abortTile(i,r){i.request&&(i.request.cancel(),delete i.request),r()}unloadTile(i,r){i.texture&&this.map.painter.saveTileTexture(i.texture),r()}hasTransition(){return!1}}function ey(r,n,o,s,a,l,c,h){const u=[r,o,a,n,s,l,1,1,1],d=[c,h,1],p=i.adjoint([],u),[f,m,_]=i.transformMat3(d,d,i.transpose(p,p));return i.multiply(u,[f,0,0,0,m,0,0,0,_],u)}class ex extends i.Evented{constructor(i,r,n,o){super(),this.id=i,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(o),this.options=r}load(r,n){this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this.url=this.options.url,i.getImage(this.map._requestManager.transformRequest(this.url,i.ResourceType.Image),(o,s)=>{this._loaded=!0,o?this.fire(new i.ErrorEvent(o)):s&&(this.image=i.exported.getImageData(s),this.width=this.image.width,this.height=this.image.height,r&&(this.coordinates=r),n&&n(),this._finishLoading())})}loaded(){return this._loaded}updateImage(i){return this.image&&i.url&&(this.options.url=i.url,this.load(i.coordinates,()=>{this.texture=null})),this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(i){this.map=i,this.load()}setCoordinates(r){this.coordinates=r,delete this._boundsArray;const n=r.map(i.MercatorCoordinate.fromLngLat);return this.tileID=function(r){let n=1/0,o=1/0,s=-1/0,a=-1/0;for(const l of r)n=Math.min(n,l.x),o=Math.min(o,l.y),s=Math.max(s,l.x),a=Math.max(a,l.y);const c=Math.max(s-n,a-o),h=Math.max(0,Math.floor(-Math.log(c)/Math.LN2)),u=Math.pow(2,h);return new i.CanonicalTileID(h,Math.floor((n+s)/2*u),Math.floor((o+a)/2*u))}(n),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){delete this._boundsArray}_makeBoundsArray(){const r=i.tileTransform(this.tileID,this.map.transform.projection),[n,o,s,a]=this.coordinates.map(n=>{const o=r.projection.project(n[0],n[1]);return i.getTilePoint(r,o)._round()});return this.perspectiveTransform=function(r,n,o,s,a,l,c,h,u,d){const p=ey(0,0,r,0,0,n,r,n),f=ey(o,s,a,l,c,h,u,d);return i.multiply(f,i.adjoint(p,p),f),[f[6]/f[8]*r/i.EXTENT,f[7]/f[8]*n/i.EXTENT]}(this.width,this.height,n.x,n.y,o.x,o.y,a.x,a.y,s.x,s.y),this._boundsArray=new i.StructArrayLayout4i8,this._boundsArray.emplaceBack(n.x,n.y,0,0),this._boundsArray.emplaceBack(o.x,o.y,i.EXTENT,0),this._boundsArray.emplaceBack(a.x,a.y,0,i.EXTENT),this._boundsArray.emplaceBack(s.x,s.y,i.EXTENT,i.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this}prepare(){if(0===Object.keys(this.tiles).length||!this.image)return;const r=this.map.painter.context,n=r.gl;for(const o in this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new i.Texture(r,this.image,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE)),this.tiles){const s=this.tiles[o];"loaded"!==s.state&&(s.state="loaded",s.texture=this.texture)}}loadTile(i,r){this.tileID&&this.tileID.equals(i.tileID.canonical)?(this.tiles[String(i.tileID.wrap)]=i,i.buckets={},r(null)):(i.state="errored",r(null))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}const ev={vector:class extends i.Evented{constructor(r,n,o,s){if(super(),this.id=r,this.dispatcher=o,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,i.extend(this,i.pick(n,["url","scheme","tileSize","promoteId"])),this._options=i.extend({type:"vector"},n),this._collectResourceTiming=n.collectResourceTiming,512!==this.tileSize)throw Error("vector tile sources must have a tileSize of 512");this.setEventedParent(s),this._tileWorkers={},this._deduped=new i.DedupedRequest}load(){this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=em(this._options,this.map._requestManager,(r,n)=>{this._tileJSONRequest=null,this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(i.extend(this,n),n.bounds&&(this.tileBounds=new e_(n.bounds,this.minzoom,this.maxzoom)),i.postTurnstileEvent(n.tiles,this.map._requestManager._customAccessToken),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}hasTile(i){return!this.tileBounds||this.tileBounds.contains(i.canonical)}onAdd(i){this.map=i,this.load()}setSourceProperty(i){this._tileJSONRequest&&this._tileJSONRequest.cancel(),i();const r=this.map.style._getSourceCaches(this.id);for(const n of r)n.clearTiles();this.load()}setTiles(i){return this.setSourceProperty(()=>{this._options.tiles=i}),this}setUrl(i){return this.setSourceProperty(()=>{this.url=i,this._options.url=i}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return i.extend({},this._options)}loadTile(r,n){const o=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme)),s={request:this.map._requestManager.transformRequest(o,i.ResourceType.Tile),data:void 0,uid:r.uid,tileID:r.tileID,tileZoom:r.tileZoom,zoom:r.tileID.overscaledZ,tileSize:this.tileSize*r.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:i.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:r.isSymbolTile};if(s.request.collectResourceTiming=this._collectResourceTiming,r.actor&&"expired"!==r.state)"loading"===r.state?r.reloadCallback=n:r.request=r.actor.send("reloadTile",s,l.bind(this));else if(r.actor=this._tileWorkers[o]=this._tileWorkers[o]||this.dispatcher.getActor(),this.dispatcher.ready)r.request=r.actor.send("loadTile",s,l.bind(this),void 0,!0);else{const a=i.loadVectorTile.call({deduped:this._deduped},s,(i,n)=>{i||!n?l.call(this,i):(s.data={cacheControl:n.cacheControl,expires:n.expires,rawData:n.rawData.slice(0)},r.actor&&r.actor.send("loadTile",s,l.bind(this),void 0,!0))},!0);r.request={cancel:a}}function l(o,s){return delete r.request,r.aborted?n(null):o&&404!==o.status?n(o):(s&&s.resourceTiming&&(r.resourceTiming=s.resourceTiming),this.map._refreshExpiredTiles&&s&&r.setExpiryData(s),r.loadVectorData(s,this.map.painter),i.cacheEntryPossiblyAdded(this.dispatcher),n(null),void(r.reloadCallback&&(this.loadTile(r,r.reloadCallback),r.reloadCallback=null)))}}abortTile(i){i.request&&(i.request.cancel(),delete i.request),i.actor&&i.actor.send("abortTile",{uid:i.uid,type:this.type,source:this.id})}unloadTile(i){i.unloadVectorData(),i.actor&&i.actor.send("removeTile",{uid:i.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}},raster:eg,"raster-dem":class extends eg{constructor(r,n,o,s){super(r,n,o,s),this.type="raster-dem",this.maxzoom=22,this._options=i.extend({type:"raster-dem"},n),this.encoding=n.encoding||"mapbox"}loadTile(r,n){const o=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function s(i,o){i&&(r.state="errored",n(i)),o&&(r.dem=o,r.dem.onDeserialize(),r.needsHillshadePrepare=!0,r.needsDEMTextureUpload=!0,r.state="loaded",n(null))}r.request=i.getImage(this.map._requestManager.transformRequest(o,i.ResourceType.Tile),(function(o,a,l,c){if(delete r.request,r.aborted)r.state="unloaded",n(null);else if(o)r.state="errored",n(o);else if(a){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:l,expires:c});const h=i.window.ImageBitmap&&a instanceof i.window.ImageBitmap&&(null==rR&&(rR=i.window.OffscreenCanvas&&new i.window.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof i.window.createImageBitmap),rR),u=1-(a.width-i.prevPowerOfTwo(a.width))/2;u<1||r.neighboringTiles||(r.neighboringTiles=this._getNeighboringTiles(r.tileID));const d=h?a:i.exported.getImageData(a,u),p={uid:r.uid,coord:r.tileID,source:this.id,rawImageData:d,encoding:this.encoding,padding:u};r.actor&&"expired"!==r.state||(r.actor=this.dispatcher.getActor(),r.actor.send("loadDEMTile",p,s.bind(this),void 0,!0))}}).bind(this))}_getNeighboringTiles(r){const n=r.canonical,o=Math.pow(2,n.z),s=(n.x-1+o)%o,a=0===n.x?r.wrap-1:r.wrap,l=(n.x+1+o)%o,c=n.x+1===o?r.wrap+1:r.wrap,h={};return h[new i.OverscaledTileID(r.overscaledZ,a,n.z,s,n.y).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,c,n.z,l,n.y).key]={backfilled:!1},n.y>0&&(h[new i.OverscaledTileID(r.overscaledZ,a,n.z,s,n.y-1).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,r.wrap,n.z,n.x,n.y-1).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,c,n.z,l,n.y-1).key]={backfilled:!1}),n.y+1{if(this._loaded=!0,this._pendingLoad=null,r)this.fire(new i.ErrorEvent(r));else{const o={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&n&&n.resourceTiming&&n.resourceTiming[this.id]&&(o.resourceTiming=n.resourceTiming[this.id]),this.fire(new i.Event("data",o)),this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1)})}loaded(){return this._loaded}loadTile(r,n){const o=r.actor?"reloadTile":"loadTile";r.actor=this.actor,r.request=this.actor.send(o,{type:this.type,uid:r.uid,tileID:r.tileID,tileZoom:r.tileZoom,zoom:r.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:i.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(i,s)=>(delete r.request,r.unloadVectorData(),r.aborted?n(null):i?n(i):(r.loadVectorData(s,this.map.painter,"reloadTile"===o),n(null))),void 0,"loadTile"===o)}abortTile(i){i.request&&(i.request.cancel(),delete i.request),i.aborted=!0}unloadTile(i){i.unloadVectorData(),this.actor.send("removeTile",{uid:i.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return i.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends ex{constructor(i,r,n,o){super(i,r,n,o),this.roundZoom=!0,this.type="video",this.options=r}load(){this._loaded=!1;const r=this.options;for(const n of(this.urls=[],r.urls))this.urls.push(this.map._requestManager.transformRequest(n,i.ResourceType.Source).url);i.getVideo(this.urls,(r,n)=>{this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(this.video=n,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(r){if(this.video){const n=this.video.seekable;rn.end(0)?this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))):this.video.currentTime=r}}getVideo(){return this.video}onAdd(i){this.map||(this.map=i,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(0===Object.keys(this.tiles).length||this.video.readyState<2)return;const r=this.map.painter.context,n=r.gl;for(const o in this.texture?this.video.paused||(this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,this.video)):(this.texture=new i.Texture(r,this.video,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.tiles){const s=this.tiles[o];"loaded"!==s.state&&(s.state="loaded",s.texture=this.texture)}}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:ex,canvas:class extends ex{constructor(r,n,o,s){super(r,n,o,s),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some(i=>!Array.isArray(i)||2!==i.length||i.some(i=>"number"!=typeof i))||this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof i.window.HTMLCanvasElement||this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof i.window.HTMLCanvasElement?this.options.canvas:i.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new i.ErrorEvent(Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}getCanvas(){return this.canvas}onAdd(i){this.map=i,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let r=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,r=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,r=!0),this._hasInvalidDimensions()||0===Object.keys(this.tiles).length)return;const n=this.map.painter.context,o=n.gl;for(const s in this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=n.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(r||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new i.Texture(n,this.canvas,o.RGBA,{premultiply:!0}),this.tiles){const a=this.tiles[s];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const i of[this.canvas.width,this.canvas.height])if(isNaN(i)||i<=0)return!0;return!1}}},eb=function(r,n,o,s){const a=new ev[n.type](r,n,o,s);if(a.id!==r)throw Error(`Expected Source id to be ${r} instead of ${a.id}`);return i.bindAll(["load","abort","unload","serialize","prepare"],a),a};function ew(i,r){const n=i.tileID,o=r.tileID;return n.overscaledZ-o.overscaledZ||n.canonical.y-o.canonical.y||n.wrap-o.wrap||n.canonical.x-o.canonical.x}function eT(){return null!=rq.workerClass?new rq.workerClass:new i.window.Worker(rq.workerUrl)}const eE="mapboxgl_preloaded_worker_pool";class eS{constructor(){this.active={}}acquire(i){if(!this.workers)for(this.workers=[];this.workers.length{i.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[eE]}numActive(){return Object.keys(this.active).length}}function eI(){return rF||(rF=new eS),rF}function eM(r){r=r.slice();const n=Object.create(null);for(let o=0;o{i in n&&(o[i]=n[i])}),o}(r[s],n[r[s].ref]));return r}eS.workerCount=2;const eA={setStyle:"setStyle",addLayer:"addLayer",removeLayer:"removeLayer",setPaintProperty:"setPaintProperty",setLayoutProperty:"setLayoutProperty",setFilter:"setFilter",addSource:"addSource",removeSource:"removeSource",setGeoJSONSourceData:"setGeoJSONSourceData",setLayerZoomRange:"setLayerZoomRange",setLayerProperty:"setLayerProperty",setCenter:"setCenter",setZoom:"setZoom",setBearing:"setBearing",setPitch:"setPitch",setSprite:"setSprite",setGlyphs:"setGlyphs",setTransition:"setTransition",setLight:"setLight",setTerrain:"setTerrain",setFog:"setFog",setProjection:"setProjection"};function eC(i,r,n){n.push({command:eA.addSource,args:[i,r[i]]})}function ez(i,r,n){r.push({command:eA.removeSource,args:[i]}),n[i]=!0}function ek(i,r,n,o,a,l){let c;for(c in r=r||{},i=i||{})i.hasOwnProperty(c)&&(s(i[c],r[c])||n.push({command:l,args:[o,c,r[c],a]}));for(c in r)r.hasOwnProperty(c)&&!i.hasOwnProperty(c)&&(s(i[c],r[c])||n.push({command:l,args:[o,c,r[c],a]}))}function eP(i){return i.id}function eD(i,r){return i[r.id]=r,i}class eL{constructor(i,r){this.reset(i,r)}reset(i,r){this.points=i||[],this._distances=[0];for(let n=1;n0?(s-l)/c:0;return this.points[a].mult(1-h).add(this.points[n].mult(h))}}class eB{constructor(i,r,n){const o=this.boxCells=[],s=this.circleCells=[];this.xCellCount=Math.ceil(i/n),this.yCellCount=Math.ceil(r/n);for(let a=0;athis.width||o<0||r>this.height)return!s&&[];const l=[];if(i<=0&&r<=0&&this.width<=n&&this.height<=o){if(s)return!0;for(let c=0;c0:l}_queryCircle(i,r,n,o,s){const a=i-n,l=i+n,c=r-n,h=r+n;if(l<0||a>this.width||h<0||c>this.height)return!o&&[];const u=[];return this._forEachCell(a,c,l,h,this._queryCellCircle,u,{hitTest:o,circle:{x:i,y:r,radius:n},seenUids:{box:{},circle:{}}},s),o?u.length>0:u}query(i,r,n,o,s){return this._query(i,r,n,o,!1,s)}hitTest(i,r,n,o,s){return this._query(i,r,n,o,!0,s)}hitTestCircle(i,r,n,o){return this._queryCircle(i,r,n,!0,o)}_queryCell(i,r,n,o,s,a,l,c){const h=l.seenUids,u=this.boxCells[s];if(null!==u){const d=this.bboxes;for(const p of u)if(!h.box[p]){h.box[p]=!0;const f=4*p;if(i<=d[f+2]&&r<=d[f+3]&&n>=d[f+0]&&o>=d[f+1]&&(!c||c(this.boxKeys[p]))){if(l.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:d[f],y1:d[f+1],x2:d[f+2],y2:d[f+3]})}}}const m=this.circleCells[s];if(null!==m){const _=this.circles;for(const g of m)if(!h.circle[g]){h.circle[g]=!0;const y=3*g;if(this._circleAndRectCollide(_[y],_[y+1],_[y+2],i,r,n,o)&&(!c||c(this.circleKeys[g]))){if(l.hitTest)return a.push(!0),!0;{const x=_[y],v=_[y+1],b=_[y+2];a.push({key:this.circleKeys[g],x1:x-b,y1:v-b,x2:x+b,y2:v+b})}}}}}_queryCellCircle(i,r,n,o,s,a,l,c){const h=l.circle,u=l.seenUids,d=this.boxCells[s];if(null!==d){const p=this.bboxes;for(const f of d)if(!u.box[f]){u.box[f]=!0;const m=4*f;if(this._circleAndRectCollide(h.x,h.y,h.radius,p[m+0],p[m+1],p[m+2],p[m+3])&&(!c||c(this.boxKeys[f])))return a.push(!0),!0}}const _=this.circleCells[s];if(null!==_){const g=this.circles;for(const y of _)if(!u.circle[y]){u.circle[y]=!0;const x=3*y;if(this._circlesCollide(g[x],g[x+1],g[x+2],h.x,h.y,h.radius)&&(!c||c(this.circleKeys[y])))return a.push(!0),!0}}}_forEachCell(i,r,n,o,s,a,l,c){const h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(r),d=this._convertToXCellCoord(n),p=this._convertToYCellCoord(o);for(let f=h;f<=d;f++)for(let m=u;m<=p;m++)if(s.call(this,i,r,n,o,this.xCellCount*m+f,a,l,c))return}_convertToXCellCoord(i){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(i*this.xScale)))}_convertToYCellCoord(i){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(i*this.yScale)))}_circlesCollide(i,r,n,o,s,a){const l=o-i,c=s-r,h=n+a;return h*h>l*l+c*c}_circleAndRectCollide(i,r,n,o,s,a,l){const c=(a-o)/2,h=Math.abs(i-(o+c));if(h>c+n)return!1;const u=(l-s)/2,d=Math.abs(r-(s+u));if(d>u+n)return!1;if(h<=c||d<=u)return!0;const p=h-c,f=d-u;return p*p+f*f<=n*n}}const eR=Math.tan(85*Math.PI/180);function eF(r,n,s,a,l,c){let h=i.create();if(s){if("globe"===l.projection.name)h=i.calculateGlobeMatrix(l,l.worldSize/l._projectionScaler,[0,0]),i.multiply$1(h,h,i.globeDenormalizeECEF(i.globeTileBounds(n)));else{const u=o([],c);h[0]=u[0],h[1]=u[1],h[4]=u[2],h[5]=u[3]}a||i.rotateZ(h,h,l.angle)}else i.multiply$1(h,l.labelPlaneMatrix,r);return h}function eO(r,n,o,s,a,l){if(o){if("globe"===a.projection.name){const c=eF(r,n,o,s,a,l);return i.invert(c,c),i.multiply$1(c,r,c),c}{const h=i.clone(r),u=i.identity([]);return u[0]=l[0],u[1]=l[1],u[4]=l[2],u[5]=l[3],i.multiply$1(h,h,u),s||i.rotateZ(h,h,-a.angle),h}}return a.glCoordMatrix}function eU(r,n,o=0){const s=[r.x,r.y,o,1];o?i.transformMat4$1(s,s,n):eH(s,s,n);const a=s[3];return{point:new i.pointGeometry(s[0]/a,s[1]/a),signedDistanceFromCamera:a}}function eV(i,r){return Math.min(.5+i/r*.5,1.5)}function eN(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_){const g=c.glyphStartIndex+c.numGlyphs,y=c.lineStartIndex,x=c.lineStartIndex+c.lineLength,v=r.getoffsetX(c.glyphStartIndex),b=r.getoffsetX(g-1),w=eq(i*v,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);if(!w)return null;const T=eq(i*b,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);return T?{first:w,last:T}:null}function ej(r,n,o,s){return r.writingMode===i.WritingMode.horizontal&&Math.abs(o.y-n.y)>Math.abs(o.x-n.x)*s?{useVertical:!0}:r.writingMode===i.WritingMode.vertical?n.yeR}(n,o,s)?1===r.flipState?{needsFlipping:!0}:null:n.x>o.x?{needsFlipping:!0}:null}function eG(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){let v;const b=n/24,w=r.lineOffsetX*b,T=r.lineOffsetY*b;if(r.numGlyphs>1){const E=r.glyphStartIndex+r.numGlyphs,S=r.lineStartIndex,I=r.lineStartIndex+r.lineLength,M=eN(b,h,w,T,o,p,f,r,u,l,m,g,!1,y,x);if(!M)return{notEnoughRoom:!0};const A=eU(M.first.point,c).point,C=eU(M.last.point,c).point;if(s&&!o){const z=ej(r,A,C,_);if(r.flipState=z&&z.needsFlipping?1:2,z)return z}v=[M.first];for(let k=r.glyphStartIndex+1;k0?B.point:e$(f,L,P,1,a,void 0,y,x.canonical),_);if(r.flipState=R&&R.needsFlipping?1:2,R)return R}const F=eq(b*h.getoffsetX(r.glyphStartIndex),w,T,o,p,f,r.segment,r.lineStartIndex,r.lineStartIndex+r.lineLength,u,l,m,g,!1,!1,y,x);if(!F)return{notEnoughRoom:!0};v=[F]}for(const O of v)i.addDynamicAttributes(d,O.point,O.angle);return{}}function eZ(r,n,o,s,a){const l=s.projectTilePoint(r.x,r.y,n);if(!a)return eU(l,o,l.z);const c=a(r);return eU(new i.pointGeometry(l.x+c[0],l.y+c[1]),o,l.z+c[2])}function e$(i,r,n,o,s,a,l,c){const h=eZ(i.add(i.sub(r)._unit()),c,s,l,a).point,u=n.sub(h);return n.add(u._mult(o/u.mag()))}function eq(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){const v=s?r-n:r+n;let b=v>0?1:-1,w=0;s&&(b*=-1,w=Math.PI),b<0&&(w+=Math.PI);let T=b>0?h+c:h+c+1,E=a,S=a,I=0,M=0;const A=Math.abs(v),C=[],z=[];let k=l;const P=()=>{const r=T-b;return 0===I?l:new i.pointGeometry(d.getx(r),d.gety(r))},D=()=>e$(P(),k,S,A-I+1,p,m,y,x.canonical);for(;I+M<=A;){if((T+=b)=u)return null;if(S=E,C.push(E),_&&z.push(k||P()),void 0===(E=f[T])){k=new i.pointGeometry(d.getx(T),d.gety(T));const L=eZ(k,x.canonical,p,y,m);E=L.signedDistanceFromCamera>0?f[T]=L.point:D()}else k=null;I+=M,M=S.dist(E)}g&&m&&(k=k||new i.pointGeometry(d.getx(T),d.gety(T)),f[T]=E=void 0===f[T]?E:D(),M=S.dist(E));const B=(A-I)/M,R=E.sub(S),F=R.mult(B)._add(S);o&&F._add(R._unit()._perp()._mult(o*b));const O=w+Math.atan2(E.y-S.y,E.x-S.x);return C.push(F),_&&(k=k||new i.pointGeometry(d.getx(T),d.gety(T)),z.push(function(r,n,o){const s=1-o;return new i.pointGeometry(r.x*s+n.x*o,r.y*s+n.y*o)}(z.length>0?z[z.length-1]:k,k,B))),{point:F,angle:O,path:C,tilePath:z}}const eX=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function eW(i,r){for(let n=0;n[0,0,0],b=new i.pointGeometry(n.tileAnchorX,n.tileAnchorY),w=this.transform.projection.projectTilePoint(n.tileAnchorX,n.tileAnchorY,_.canonical),T=v(b),E=[w.x+T[0],w.y+T[1],w.z+T[2]],S=this.projectAndGetPerspectiveRatio(l,E[0],E[1],E[2],_),{perspectiveRatio:I}=S,M=(d?a/I:a*I)/i.ONE_EM,A=eU(new i.pointGeometry(E[0],E[1]),c,E[2]).point,C=S.signedDistanceFromCamera>0?eN(M,s,n.lineOffsetX*M,n.lineOffsetY*M,!1,A,b,n,o,c,{},y&&!d?v:null,d&&!!y,this.transform.projection,_):null;let z=!1,k=!1,P=!0;if(C&&!S.aboveHorizon){const D=.5*f*I+m,L=new i.pointGeometry(-100,-100),B=new i.pointGeometry(this.screenRightBoundary,this.screenBottomBoundary),R=new eL,F=C.first,O=C.last;let U=[];for(let V=F.path.length-1;V>=1;V--)U.push(F.path[V]);for(let N=1;N{const n=v(reU(i,h));U=G.some(i=>i.signedDistanceFromCamera<=0)?[]:G.map(i=>i.point)}let Z=[];if(U.length>0){const $=U[0].clone(),q=U[0].clone();for(let X=1;X=L.x&&q.x<=B.x&&$.y>=L.y&&q.y<=B.y?[U]:q.xB.x||q.yB.y?[]:i.clipLine([U],L.x,L.y,B.x,B.y)}for(const W of Z){R.reset(W,.25*D);let H=0;H=R.length<=.5*D?1:Math.ceil(R.paddedLength/j)+1;for(let K=0;K0){i.transformMat4$1(l,l,r);let h=!1;this.fogState&&a&&(h=function(r,n,o,s,a,l){const c=l.calculateFogTileMatrix(a),h=[n,o,s];return i.transformMat4(h,h,c),x(r,h,l.pitch,l._fov)}(this.fogState,n,o,s||0,a.toUnwrapped(),this.transform)>.9),c=l[2]>l[3]||h}else eH(l,l,r);return{point:new i.pointGeometry((l[0]/l[3]+1)/2*this.transform.width+100,(-l[1]/l[3]+1)/2*this.transform.height+100),perspectiveRatio:Math.min(.5+this.transform.cameraToCenterDistance/l[3]*.5,1.5),signedDistanceFromCamera:l[3],aboveHorizon:c}}isOffscreen(i,r,n,o){return n<100||i>=this.screenRightBoundary||o<100||r>this.screenBottomBoundary}isInsideGrid(i,r,n,o){return n>=0&&i=0&&ri.collisionGroupID===r}}return this.collisionGroups[i]}}function e3(r,n,o,s,a){const{horizontalAlign:l,verticalAlign:c}=i.getAnchorAlignment(r),h=i.evaluateVariableOffset(r,s);return new i.pointGeometry(-(l-.5)*n+h[0]*a,-(c-.5)*o+h[1]*a)}function e5(r,n,o,s,a){const l=new i.pointGeometry(r,n);return o&&l._rotate(s?a:-a),l}class e4{constructor(i,r,n,o,s){this.transform=i.clone(),this.collisionIndex=new eK(this.transform,s),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=r,this.retainedQueryData={},this.collisionGroups=new e2(n),this.collisionCircleArrays={},this.prevPlacement=o,o&&(o.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(r,n,o,s){const a=o.getBucket(n),l=o.latestFeatureIndex;if(!a||!l||n.id!==a.layerIds[0])return;const c=a.layers[0].layout,h=o.collisionBoxArray,u=Math.pow(2,this.transform.zoom-o.tileID.overscaledZ),d=o.tileSize/i.EXTENT,p=o.tileID.toUnwrapped(),f=this.transform.calculateProjMatrix(p),m="map"===c.get("text-pitch-alignment"),_="map"===c.get("text-rotation-alignment");n.compileFilter();const g=n.dynamicFilter(),y=n.dynamicFilterNeedsFeature(),x=this.transform.calculatePixelsToTileUnitsMatrix(o),v=eF(f,o.tileID.canonical,m,_,this.transform,x);let b=null;if(m){const w=eO(f,o.tileID.canonical,m,_,this.transform,x);b=i.multiply$1([],this.transform.labelPlaneMatrix,w)}let T=null;g&&o.latestFeatureIndex&&(T={unwrappedTileID:p,dynamicFilter:g,dynamicFilterNeedsFeature:y,featureIndex:o.latestFeatureIndex}),this.retainedQueryData[a.bucketInstanceId]=new e1(a.bucketInstanceId,l,a.sourceLayerIndex,a.index,o.tileID);const E={bucket:a,layout:c,posMatrix:f,textLabelPlaneMatrix:v,labelToScreenMatrix:b,clippingData:T,scale:u,textPixelRatio:d,holdingForFade:o.holdingForFade(),collisionBoxArray:h,partiallyEvaluatedTextSize:i.evaluateSizeForZoom(a.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:i.evaluateSizeForZoom(a.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(a.sourceID)};if(s)for(const S of a.sortKeyRanges){const{sortKey:I,symbolInstanceStart:M,symbolInstanceEnd:A}=S;r.push({sortKey:I,symbolInstanceStart:M,symbolInstanceEnd:A,parameters:E})}else r.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:E})}attemptAnchorPlacement(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){const v=[p.textOffset0,p.textOffset1],b=e3(i,n,o,v,s),w=this.collisionIndex.placeCollisionBox(s,r,e5(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate);if((!g||0!==this.collisionIndex.placeCollisionBox(m.getSymbolInstanceIconSize(x,this.transform.zoom,f),g,e5(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate).box.length)&&w.box.length>0){let T;return this.prevPlacement&&this.prevPlacement.variableOffsets[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID].text&&(T=this.prevPlacement.variableOffsets[p.crossTileID].anchor),this.variableOffsets[p.crossTileID]={textOffset:v,width:n,height:o,anchor:i,textScale:s,prevAnchor:T},this.markUsedJustification(m,i,p,_),m.allowVerticalPlacement&&(this.markUsedOrientation(m,_,p),this.placedOrientations[p.crossTileID]=_),{shift:b,placedGlyphBoxes:w}}}placeLayerBucketPart(r,n,o,s){const{bucket:a,layout:l,posMatrix:c,textLabelPlaneMatrix:h,labelToScreenMatrix:u,clippingData:d,textPixelRatio:p,holdingForFade:f,collisionBoxArray:m,partiallyEvaluatedTextSize:_,partiallyEvaluatedIconSize:g,collisionGroup:y}=r.parameters,x=l.get("text-optional"),v=l.get("icon-optional"),b=l.get("text-allow-overlap"),w=l.get("icon-allow-overlap"),T="map"===l.get("text-rotation-alignment"),E="map"===l.get("text-pitch-alignment"),S="none"!==l.get("icon-text-fit"),I="viewport-y"===l.get("symbol-z-order"),M=b&&(w||!a.hasIconData()||v),A=w&&(b||!a.hasTextData()||x);!a.collisionArrays&&m&&a.deserializeCollisionBoxes(m),o&&s&&a.updateCollisionDebugBuffers(this.transform.zoom,m);const C=(r,s,m)=>{if(d){const I={zoom:this.transform.zoom,pitch:this.transform.pitch};let C=null;if(d.dynamicFilterNeedsFeature){const z=this.retainedQueryData[a.bucketInstanceId];C=d.featureIndex.loadFeature({featureIndex:r.featureIndex,bucketIndex:z.bucketIndex,sourceLayerIndex:z.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,d.dynamicFilter)(I,C,this.retainedQueryData[a.bucketInstanceId].tileID.canonical,new i.pointGeometry(r.tileAnchorX,r.tileAnchorY),this.transform.calculateDistanceTileData(d.unwrappedTileID)))return this.placements[r.crossTileID]=new eQ(!1,!1,!1,!0),void(n[r.crossTileID]=!0)}if(n[r.crossTileID])return;if(f)return void(this.placements[r.crossTileID]=new eQ(!1,!1,!1));let k=!1,P=!1,D=!0,L=null,B={box:null,offscreen:null},R={box:null,offscreen:null},F=null,O=null,U=null,V=0,N=0,j=0;m.textFeatureIndex?V=m.textFeatureIndex:r.useRuntimeCollisionCircles&&(V=r.featureIndex),m.verticalTextFeatureIndex&&(N=m.verticalTextFeatureIndex);const G=i=>{i.tileID=this.retainedQueryData[a.bucketInstanceId].tileID,(this.transform.elevation||i.elevation)&&(i.elevation=this.transform.elevation?this.transform.elevation.getAtTileOffset(this.retainedQueryData[a.bucketInstanceId].tileID,i.tileAnchorX,i.tileAnchorY):0)},Z=m.textBox;if(Z){G(Z);const $=n=>{let o=i.WritingMode.horizontal;if(a.allowVerticalPlacement&&!n&&this.prevPlacement){const s=this.prevPlacement.placedOrientations[r.crossTileID];s&&(this.placedOrientations[r.crossTileID]=s,o=s,this.markUsedOrientation(a,o,r))}return o},q=(n,o)=>{if(a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&m.verticalTextBox){for(const s of a.writingModes)if(s===i.WritingMode.vertical?R=B=o():B=n(),B&&B.box&&B.box.length)break}else B=n()};if(l.get("text-variable-anchor")){let X=l.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[r.crossTileID]){const W=this.prevPlacement.variableOffsets[r.crossTileID];X.indexOf(W.anchor)>0&&(X=X.filter(i=>i!==W.anchor)).unshift(W.anchor)}const H=(i,n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),h=(i.x2-i.x1)*l+2*i.padding,u=(i.y2-i.y1)*l+2*i.padding,d=S&&!w?n:null;d&&G(d);let f={box:[],offscreen:!1};const m=b?2*X.length:X.length;for(let x=0;x=X.length,r,s,a,o,d,_,g);if(v&&(f=v.placedGlyphBoxes)&&f.box&&f.box.length){k=!0,L=v.shift;break}}return f};q(()=>H(Z,m.iconBox,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return n&&G(n),a.allowVerticalPlacement&&!(B&&B.box&&B.box.length)&&r.numVerticalGlyphVertices>0&&n?H(n,m.verticalIconBox,i.WritingMode.vertical):{box:null,offscreen:null}}),B&&(k=B.box,D=B.offscreen);const K=$(B&&B.box);if(!k&&this.prevPlacement){const Y=this.prevPlacement.variableOffsets[r.crossTileID];Y&&(this.variableOffsets[r.crossTileID]=Y,this.markUsedJustification(a,Y.anchor,r,K))}}else{const J=(n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),h=this.collisionIndex.placeCollisionBox(l,n,new i.pointGeometry(0,0),b,p,c,y.predicate);return h&&h.box&&h.box.length&&(this.markUsedOrientation(a,o,r),this.placedOrientations[r.crossTileID]=o),h};q(()=>J(Z,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&n?(G(n),J(n,i.WritingMode.vertical)):{box:null,offscreen:null}}),$(B&&B.box&&B.box.length)}}if(k=(F=B)&&F.box&&F.box.length>0,D=F&&F.offscreen,r.useRuntimeCollisionCircles){const Q=a.text.placedSymbolArray.get(r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex),ee=i.evaluateSizeForFeature(a.textSizeData,_,Q),et=l.get("text-padding");O=this.collisionIndex.placeCollisionCircles(b,Q,a.lineVertexArray,a.glyphOffsetArray,ee,c,h,u,o,E,y.predicate,r.collisionCircleDiameter*ee/i.ONE_EM,et,this.retainedQueryData[a.bucketInstanceId].tileID),k=b||O.circles.length>0&&!O.collisionDetected,D=D&&O.offscreen}if(m.iconFeatureIndex&&(j=m.iconFeatureIndex),m.iconBox){const ei=r=>{G(r);const n=S&&L?e5(L.x,L.y,T,E,this.transform.angle):new i.pointGeometry(0,0),o=a.getSymbolInstanceIconSize(g,this.transform.zoom,s);return this.collisionIndex.placeCollisionBox(o,r,n,w,p,c,y.predicate)};P=R&&R.box&&R.box.length&&m.verticalIconBox?(U=ei(m.verticalIconBox)).box.length>0:(U=ei(m.iconBox)).box.length>0,D=D&&U.offscreen}const er=x||0===r.numHorizontalGlyphVertices&&0===r.numVerticalGlyphVertices,en=v||0===r.numIconVertices;if(er||en?en?er||(P=P&&k):k=P&&k:P=k=P&&k,k&&F&&F.box&&this.collisionIndex.insertCollisionBox(F.box,l.get("text-ignore-placement"),a.bucketInstanceId,R&&R.box&&N?N:V,y.ID),P&&U&&this.collisionIndex.insertCollisionBox(U.box,l.get("icon-ignore-placement"),a.bucketInstanceId,j,y.ID),O&&(k&&this.collisionIndex.insertCollisionCircles(O.circles,l.get("text-ignore-placement"),a.bucketInstanceId,V,y.ID),o)){const eo=a.bucketInstanceId;let es=this.collisionCircleArrays[eo];void 0===es&&(es=this.collisionCircleArrays[eo]=new e0);for(let ea=0;ea=0;--k){const P=z[k];C(a.symbolInstances.get(P),P,a.collisionArrays[P])}}else for(let D=r.symbolInstanceStart;D=0&&(r.text.placedSymbolArray.get(c).crossTileID=a>=0&&c!==a?0:o.crossTileID)}markUsedOrientation(r,n,o){const s=n===i.WritingMode.horizontal||n===i.WritingMode.horizontalOnly?n:0,a=n===i.WritingMode.vertical?n:0,l=[o.leftJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.rightJustifiedTextSymbolIndex];for(const c of l)r.text.placedSymbolArray.get(c).placedOrientation=s;o.verticalPlacedTextSymbolIndex&&(r.text.placedSymbolArray.get(o.verticalPlacedTextSymbolIndex).placedOrientation=a)}commit(i){this.commitTime=i,this.zoomAtLastRecencyCheck=this.transform.zoom;const r=this.prevPlacement;let n=!1;this.prevZoomAdjustment=r?r.zoomAdjustment(this.transform.zoom):0;const o=r?r.symbolFadeChange(i):1,s=r?r.opacities:{},a=r?r.variableOffsets:{},l=r?r.placedOrientations:{};for(const c in this.placements){const h=this.placements[c],u=s[c];u?(this.opacities[c]=new eJ(u,o,h.text,h.icon,null,h.clipped),n=n||h.text!==u.text.placed||h.icon!==u.icon.placed):(this.opacities[c]=new eJ(null,o,h.text,h.icon,h.skipFade,h.clipped),n=n||h.text||h.icon)}for(const d in s){const p=s[d];if(!this.opacities[d]){const f=new eJ(p,o,!1,!1);f.isHidden()||(this.opacities[d]=f,n=n||p.text.placed||p.icon.placed)}}for(const m in a)this.variableOffsets[m]||!this.opacities[m]||this.opacities[m].isHidden()||(this.variableOffsets[m]=a[m]);for(const _ in l)this.placedOrientations[_]||!this.opacities[_]||this.opacities[_].isHidden()||(this.placedOrientations[_]=l[_]);n?this.lastPlacementChangeTime=i:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=r?r.lastPlacementChangeTime:i)}updateLayerOpacities(i,r){const n={};for(const o of r){const s=o.getBucket(i);s&&o.latestFeatureIndex&&i.id===s.layerIds[0]&&this.updateBucketOpacities(s,n,o.collisionBoxArray)}}updateBucketOpacities(r,n,o){r.hasTextData()&&r.text.opacityVertexArray.clear(),r.hasIconData()&&r.icon.opacityVertexArray.clear(),r.hasIconCollisionBoxData()&&r.iconCollisionBox.collisionVertexArray.clear(),r.hasTextCollisionBoxData()&&r.textCollisionBox.collisionVertexArray.clear();const s=r.layers[0].layout,a=!!r.layers[0].dynamicFilter(),l=new eJ(null,0,!1,!1,!0),c=s.get("text-allow-overlap"),h=s.get("icon-allow-overlap"),u=s.get("text-variable-anchor"),d="map"===s.get("text-rotation-alignment"),p="map"===s.get("text-pitch-alignment"),f="none"!==s.get("icon-text-fit"),m=new eJ(null,0,c&&(h||!r.hasIconData()||s.get("icon-optional")),h&&(c||!r.hasTextData()||s.get("text-optional")),!0);!r.collisionArrays&&o&&(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData())&&r.deserializeCollisionBoxes(o);const _=(i,r,n)=>{for(let o=0;o0||b>0,S=x.numIconVertices>0,I=this.placedOrientations[x.crossTileID],M=I===i.WritingMode.vertical,A=I===i.WritingMode.horizontal||I===i.WritingMode.horizontalOnly;if(!E&&!S||T.isHidden()||g++,E){const C=e8(T.text);_(r.text,v,M?e9:C),_(r.text,b,A?e9:C);const z=T.text.isHidden();[x.rightJustifiedTextSymbolIndex,x.centerJustifiedTextSymbolIndex,x.leftJustifiedTextSymbolIndex].forEach(i=>{i>=0&&(r.text.placedSymbolArray.get(i).hidden=z||M?1:0)}),x.verticalPlacedTextSymbolIndex>=0&&(r.text.placedSymbolArray.get(x.verticalPlacedTextSymbolIndex).hidden=z||A?1:0);const k=this.variableOffsets[x.crossTileID];k&&this.markUsedJustification(r,k.anchor,x,I);const P=this.placedOrientations[x.crossTileID];P&&(this.markUsedJustification(r,"left",x,P),this.markUsedOrientation(r,P,x))}if(S){const D=e8(T.icon);x.placedIconSymbolIndex>=0&&(_(r.icon,x.numIconVertices,M?e9:D),r.icon.placedSymbolArray.get(x.placedIconSymbolIndex).hidden=T.icon.isHidden()),x.verticalPlacedIconSymbolIndex>=0&&(_(r.icon,x.numVerticalIconVertices,A?e9:D),r.icon.placedSymbolArray.get(x.verticalPlacedIconSymbolIndex).hidden=T.icon.isHidden())}if(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData()){const L=r.collisionArrays[y];if(L){let B=new i.pointGeometry(0,0),R=!0;if(L.textBox||L.verticalTextBox){if(u){const F=this.variableOffsets[w];F?(B=e3(F.anchor,F.width,F.height,F.textOffset,F.textScale),d&&B._rotate(p?this.transform.angle:-this.transform.angle)):R=!1}a&&(R=!T.clipped),L.textBox&&e6(r.textCollisionBox.collisionVertexArray,T.text.placed,!R||M,B.x,B.y),L.verticalTextBox&&e6(r.textCollisionBox.collisionVertexArray,T.text.placed,!R||A,B.x,B.y)}const O=R&&Boolean(!A&&L.verticalIconBox);L.iconBox&&e6(r.iconCollisionBox.collisionVertexArray,T.icon.placed,O,f?B.x:0,f?B.y:0),L.verticalIconBox&&e6(r.iconCollisionBox.collisionVertexArray,T.icon.placed,!O,f?B.x:0,f?B.y:0)}}}if(r.fullyClipped=0===g,r.sortFeatures(this.transform.angle),this.retainedQueryData[r.bucketInstanceId]&&(this.retainedQueryData[r.bucketInstanceId].featureSortOrder=r.featureSortOrder),r.hasTextData()&&r.text.opacityVertexBuffer&&r.text.opacityVertexBuffer.updateData(r.text.opacityVertexArray),r.hasIconData()&&r.icon.opacityVertexBuffer&&r.icon.opacityVertexBuffer.updateData(r.icon.opacityVertexArray),r.hasIconCollisionBoxData()&&r.iconCollisionBox.collisionVertexBuffer&&r.iconCollisionBox.collisionVertexBuffer.updateData(r.iconCollisionBox.collisionVertexArray),r.hasTextCollisionBoxData()&&r.textCollisionBox.collisionVertexBuffer&&r.textCollisionBox.collisionVertexBuffer.updateData(r.textCollisionBox.collisionVertexArray),r.bucketInstanceId in this.collisionCircleArrays){const U=this.collisionCircleArrays[r.bucketInstanceId];r.placementInvProjMatrix=U.invProjMatrix,r.placementViewportMatrix=U.viewportMatrix,r.collisionCircleArray=U.circles,delete this.collisionCircleArrays[r.bucketInstanceId]}}symbolFadeChange(i){return 0===this.fadeDuration?1:(i-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(i){return Math.max(0,(this.transform.zoom-i)/1.5)}hasTransitions(i){return this.stale||i-this.lastPlacementChangeTimei}setStale(){this.stale=!0}}function e6(i,r,n,o,s){i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0)}function e8(i){if(0===i.opacity&&!i.placed)return 0;if(1===i.opacity&&i.placed)return 4294967295;const r=i.placed?1:0,n=Math.floor(127*i.opacity);return 33554432*n+16777216*r+131072*n+65536*r+512*n+256*r+2*n+r}const e9=0;class e7{constructor(i){this._sortAcrossTiles="viewport-y"!==i.layout.get("symbol-z-order")&&void 0!==i.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(i,r,n,o,s){const a=this._bucketParts;for(;this._currentTileIndexi.sortKey-r.sortKey));this._currentPartIndex{const r=i.exported.now()-s;return!this._forceFullPlacement&&r>2};for(;this._currentPlacementIndex>=0;){const l=n[r[this._currentPlacementIndex]],c=this.placement.collisionIndex.transform.zoom;if("symbol"===l.type&&(!l.minzoom||l.minzoom<=c)&&(!l.maxzoom||l.maxzoom>c)){if(this._inProgressLayer||(this._inProgressLayer=new e7(l)),this._inProgressLayer.continuePlacement(o[l.source],this.placement,this._showCollisionBoxes,l,a))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(i){return this.placement.commit(i),this.placement}}const tt=512/i.EXTENT/2;class ti{constructor(i,r,n){this.tileID=i,this.indexedSymbolInstances={},this.bucketInstanceId=n;for(let o=0;oi.overscaledZ)for(const c in l){const h=l[c];h.tileID.isChildOf(i)&&h.findMatches(r.symbolInstances,i,s)}else{const u=l[i.scaledTo(Number(a)).key];u&&u.findMatches(r.symbolInstances,i,s)}}for(let d=0;d{r[i]=!0}),this.layerIndexes)r[n]||delete this.layerIndexes[n]}}const ts=(r,n)=>i.emitValidationErrors(r,n&&n.filter(i=>"source.canvas"!==i.identifier)),ta=i.pick(eA,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),tl=i.pick(eA,["setCenter","setZoom","setBearing","setPitch"]),tc=function(){const r={},n=i.spec.$version;for(const o in i.spec.$root){const s=i.spec.$root[o];if(s.required){let a=null;null!=(a="version"===o?n:"array"===s.type?[]:{})&&(r[o]=a)}}return r}(),th={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class tu extends i.Evented{constructor(r,n={}){super(),this.map=r,this.dispatcher=new E(eI(),this),this.imageManager=new d,this.imageManager.setEventedParent(this),this.glyphManager=new i.GlyphManager(r._requestManager,n.localFontFamily?i.LocalGlyphMode.all:n.localIdeographFontFamily?i.LocalGlyphMode.ideographs:i.LocalGlyphMode.none,n.localFontFamily||n.localIdeographFontFamily),this.lineAtlas=new i.LineAtlas(256,512),this.crossTileSymbolIndex=new to,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this.zoomHistory=new i.ZoomHistory,this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",i.getReferrer());const o=this;this._rtlTextPluginCallback=tu.registerForPluginStateChange(r=>{o.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:r.pluginStatus,pluginURL:r.pluginURL},(r,n)=>{if(i.triggerPluginCompletionEvent(r),n&&n.every(i=>i))for(const s in o._sourceCaches){const a=o._sourceCaches[s],l=a.getSource().type;"vector"!==l&&"geojson"!==l||a.reload()}})}),this.on("data",i=>{if("source"!==i.dataType||"metadata"!==i.sourceDataType)return;const r=this.getSource(i.sourceId);if(r&&r.vectorLayerIds)for(const n in this._layers){const o=this._layers[n];o.source===r.id&&this._validateLayer(o)}})}loadURL(r,n={}){this.fire(new i.Event("dataloading",{dataType:"style"}));const o="boolean"==typeof n.validate?n.validate:!i.isMapboxURL(r);r=this.map._requestManager.normalizeStyleURL(r,n.accessToken);const s=this.map._requestManager.transformRequest(r,i.ResourceType.Style);this._request=i.getJSON(s,(r,n)=>{this._request=null,r?this.fire(new i.ErrorEvent(r)):n&&this._load(n,o)})}loadJSON(r,n={}){this.fire(new i.Event("dataloading",{dataType:"style"})),this._request=i.exported.frame(()=>{this._request=null,this._load(r,!1!==n.validate)})}loadEmpty(){this.fire(new i.Event("dataloading",{dataType:"style"})),this._load(tc,!1)}_updateLayerCount(i,r){const n=r?1:-1;i.is3D()&&(this._num3DLayers+=n),"circle"===i.type&&(this._numCircleLayers+=n),"symbol"===i.type&&(this._numSymbolLayers+=n)}_load(r,n){if(n&&ts(this,i.validateStyle(r)))return;for(const o in this._loaded=!0,this.stylesheet=r,this.updateProjection(),r.sources)this.addSource(o,r.sources[o],{validate:!1});this._changed=!1,r.sprite?this._loadSprite(r.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(r.glyphs);const s=eM(this.stylesheet.layers);for(let a of(this._order=s.map(i=>i.id),this._layers={},this._serializedLayers={},s))(a=i.createStyleLayer(a)).setEventedParent(this,{layer:{id:a.id}}),this._layers[a.id]=a,this._serializedLayers[a.id]=a.serialize(),this._updateLayerCount(a,!0);this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new m(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new i.Event("data",{dataType:"style"})),this.fire(new i.Event("style.load"))}terrainSetForDrapingOnly(){return this.terrain&&0===this.terrain.drapeRenderMode}setProjection(i){i?this.stylesheet.projection=i:delete this.stylesheet.projection,this.updateProjection()}updateProjection(){const i=this.map.transform.projection,r=this.map.transform.setProjection(this.map._runtimeProjection||(this.stylesheet?this.stylesheet.projection:void 0)),n=this.map.transform.projection;if(this._loaded&&(n.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null)),this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),r){if(n.isReprojectedInTileSpace||i.isReprojectedInTileSpace)for(const o in this.map.painter.clearBackgroundTiles(),this._sourceCaches)this._sourceCaches[o].clearTiles();else this._forceSymbolLayerUpdate();this.map._update(!0)}}_loadSprite(r){this._spriteRequest=function(r,n,o){let s,a,l;const c=i.exported.devicePixelRatio>1?"@2x":"";let h=i.getJSON(n.transformRequest(n.normalizeSpriteURL(r,c,".json"),i.ResourceType.SpriteJSON),(i,r)=>{h=null,l||(l=i,s=r,d())}),u=i.getImage(n.transformRequest(n.normalizeSpriteURL(r,c,".png"),i.ResourceType.SpriteImage),(i,r)=>{u=null,l||(l=i,a=r,d())});function d(){if(l)o(l);else if(s&&a){const r=i.exported.getImageData(a),n={};for(const c in s){const{width:h,height:u,x:d,y:p,sdf:f,pixelRatio:m,stretchX:_,stretchY:g,content:y}=s[c],x=new i.RGBAImage({width:h,height:u});i.RGBAImage.copy(r,x,{x:d,y:p},{x:0,y:0},{width:h,height:u}),n[c]={data:x,pixelRatio:m,sdf:f,stretchX:_,stretchY:g,content:y}}o(null,n)}}return{cancel(){h&&(h.cancel(),h=null),u&&(u.cancel(),u=null)}}}(r,this.map._requestManager,(r,n)=>{if(this._spriteRequest=null,r)this.fire(new i.ErrorEvent(r));else if(n)for(const o in n)this.imageManager.addImage(o,n[o]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new i.Event("data",{dataType:"style"}))})}_validateLayer(r){const n=this.getSource(r.source);if(!n)return;const o=r.sourceLayer;o&&("geojson"===n.type||n.vectorLayerIds&&-1===n.vectorLayerIds.indexOf(o))&&this.fire(new i.ErrorEvent(Error(`Source layer "${o}" does not exist on source "${n.id}" as specified by style layer "${r.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const i in this._sourceCaches)if(!this._sourceCaches[i].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(i){const r=[];for(const n of i){const o=this._layers[n];"custom"!==o.type&&r.push(o.serialize())}return r}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(const i in this._sourceCaches)if(this._sourceCaches[i].hasTransition())return!0;for(const r in this._layers)if(this._layers[r].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(i){return!!this.terrain&&th[i.type]}_checkLoaded(){if(!this._loaded)throw Error("Style is not done loading")}update(r){if(!this._loaded)return;const n=this._changed;if(this._changed){const o=Object.keys(this._updatedLayers),s=Object.keys(this._removedLayers);for(const a in(o.length||s.length)&&this._updateWorkerLayers(o,s),this._updatedSources){const l=this._updatedSources[a];"reload"===l?this._reloadSource(a):"clear"===l&&this._clearSource(a)}for(const c in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[c].updateTransitions(r);this.light.updateTransitions(r),this.fog&&this.fog.updateTransitions(r),this._resetUpdates()}const h={};for(const u in this._sourceCaches){const d=this._sourceCaches[u];h[u]=d.used,d.used=!1}for(const p of this._order){const f=this._layers[p];if(f.recalculate(r,this._availableImages),!f.isHidden(r.zoom)){const m=this._getLayerSourceCache(f);m&&(m.used=!0)}const _=this.map.painter;if(_){const g=f.getProgramIds();if(!g)continue;const y=f.getProgramConfiguration(r.zoom);for(const x of g)_.useProgram(x,y)}}for(const v in h){const b=this._sourceCaches[v];h[v]!==b.used&&b.getSource().fire(new i.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:b.getSource().id}))}this.light.recalculate(r),this.terrain&&this.terrain.recalculate(r),this.fog&&this.fog.recalculate(r),this.z=r.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),n&&this.fire(new i.Event("data",{dataType:"style"}))}_updateTilesForChangedImages(){const i=Object.keys(this._changedImages);if(i.length){for(const r in this._sourceCaches)this._sourceCaches[r].reloadTilesForDependencies(["icons","patterns"],i);this._changedImages={}}}_updateWorkerLayers(i,r){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(i),removedIds:r})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(r){if(this._checkLoaded(),ts(this,i.validateStyle(r)))return!1;(r=i.clone$1(r)).layers=eM(r.layers);const n=(function(i,r){if(!i)return[{command:eA.setStyle,args:[r]}];let n=[];try{if(!s(i.version,r.version))return[{command:eA.setStyle,args:[r]}];s(i.center,r.center)||n.push({command:eA.setCenter,args:[r.center]}),s(i.zoom,r.zoom)||n.push({command:eA.setZoom,args:[r.zoom]}),s(i.bearing,r.bearing)||n.push({command:eA.setBearing,args:[r.bearing]}),s(i.pitch,r.pitch)||n.push({command:eA.setPitch,args:[r.pitch]}),s(i.sprite,r.sprite)||n.push({command:eA.setSprite,args:[r.sprite]}),s(i.glyphs,r.glyphs)||n.push({command:eA.setGlyphs,args:[r.glyphs]}),s(i.transition,r.transition)||n.push({command:eA.setTransition,args:[r.transition]}),s(i.light,r.light)||n.push({command:eA.setLight,args:[r.light]}),s(i.fog,r.fog)||n.push({command:eA.setFog,args:[r.fog]}),s(i.projection,r.projection)||n.push({command:eA.setProjection,args:[r.projection]});const o={},a=[];!function(i,r,n,o){let a;for(a in r=r||{},i=i||{})i.hasOwnProperty(a)&&(r.hasOwnProperty(a)||ez(a,n,o));for(a in r){var l,c;r.hasOwnProperty(a)&&(i.hasOwnProperty(a)?s(i[a],r[a])||("geojson"===i[a].type&&"geojson"===r[a].type&&function(i,r,n){let o;for(o in i[n])if(i[n].hasOwnProperty(o)&&"data"!==o&&!s(i[n][o],r[n][o]))return!1;for(o in r[n])if(r[n].hasOwnProperty(o)&&"data"!==o&&!s(i[n][o],r[n][o]))return!1;return!0}(i,r,a)?n.push({command:eA.setGeoJSONSourceData,args:[a,r[a].data]}):(l=a,c=r,ez(l,n,o),eC(l,c,n))):eC(a,r,n))}}(i.sources,r.sources,a,o);const l=[];i.layers&&i.layers.forEach(i=>{o[i.source]?n.push({command:eA.removeLayer,args:[i.id]}):l.push(i)});let c=i.terrain;c&&o[c.source]&&(n.push({command:eA.setTerrain,args:[void 0]}),c=void 0),n=n.concat(a),s(c,r.terrain)||n.push({command:eA.setTerrain,args:[r.terrain]}),function(i,r,n){let o,a,l,c,h,u,d;r=r||[];const p=(i=i||[]).map(eP),f=r.map(eP),m=i.reduce(eD,{}),_=r.reduce(eD,{}),g=p.slice(),y=Object.create(null);for(o=0,a=0;o!(i.command in tl));if(0===n.length)return!1;const o=n.filter(i=>!(i.command in ta));if(o.length>0)throw Error(`Unimplemented: ${o.map(i=>i.command).join(", ")}.`);return n.forEach(i=>{"setTransition"!==i.command&&this[i.command].apply(this,i.args)}),this.stylesheet=r,this.updateProjection(),!0}addImage(r,n){if(this.getImage(r))return this.fire(new i.ErrorEvent(Error("An image with this name already exists.")));this.imageManager.addImage(r,n),this._afterImageUpdated(r)}updateImage(i,r){this.imageManager.updateImage(i,r)}getImage(i){return this.imageManager.getImage(i)}removeImage(r){if(!this.getImage(r))return this.fire(new i.ErrorEvent(Error("No image with this name exists.")));this.imageManager.removeImage(r),this._afterImageUpdated(r)}_afterImageUpdated(r){this._availableImages=this.imageManager.listImages(),this._changedImages[r]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new i.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(r,n,o={}){if(this._checkLoaded(),void 0!==this.getSource(r))throw Error("There is already a source with this ID");if(!n.type)throw Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(n.type)>=0&&this._validate(i.validateStyle.source,`sources.${r}`,n,null,o))return;this.map&&this.map._collectResourceTiming&&(n.collectResourceTiming=!0);const s=eb(r,n,this.dispatcher,this);s.setEventedParent(this,()=>({isSourceLoaded:this.loaded(),source:s.serialize(),sourceId:r}));const a=n=>{const o=(n?"symbol:":"other:")+r,a=this._sourceCaches[o]=new i.SourceCache(o,s,n);(n?this._symbolSourceCaches:this._otherSourceCaches)[r]=a,a.style=this,a.onAdd(this.map)};a(!1),"vector"!==n.type&&"geojson"!==n.type||a(!0),s.onAdd&&s.onAdd(this.map),this._changed=!0}removeSource(r){this._checkLoaded();const n=this.getSource(r);if(void 0===n)throw Error("There is no source with this ID");for(const o in this._layers)if(this._layers[o].source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while layer "${o}" is using it.`)));if(this.terrain&&this.terrain.get().source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while terrain is using it.`)));const s=this._getSourceCaches(r);for(const a of s)delete this._sourceCaches[a.id],delete this._updatedSources[a.id],a.fire(new i.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:a.getSource().id})),a.setEventedParent(null),a.clearTiles();delete this._otherSourceCaches[r],delete this._symbolSourceCaches[r],n.setEventedParent(null),n.onRemove&&n.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(i,r){this._checkLoaded(),this.getSource(i).setData(r),this._changed=!0}getSource(i){const r=this._getSourceCache(i);return r&&r.getSource()}addLayer(r,n,o={}){let s;this._checkLoaded();const a=r.id;if(this.getLayer(a))return void this.fire(new i.ErrorEvent(Error(`Layer with id "${a}" already exists on this map`)));if("custom"===r.type){if(ts(this,i.validateCustomStyleLayer(r)))return;s=i.createStyleLayer(r)}else{if("object"==typeof r.source&&(this.addSource(a,r.source),r=i.clone$1(r),r=i.extend(r,{source:a})),this._validate(i.validateStyle.layer,`layers.${a}`,r,{arrayIndex:-1},o))return;s=i.createStyleLayer(r),this._validateLayer(s),s.setEventedParent(this,{layer:{id:a}}),this._serializedLayers[s.id]=s.serialize(),this._updateLayerCount(s,!0)}const l=n?this._order.indexOf(n):this._order.length;if(n&&-1===l)return void this.fire(new i.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`)));this._order.splice(l,0,a),this._layerOrderChanged=!0,this._layers[a]=s;const c=this._getLayerSourceCache(s);if(this._removedLayers[a]&&s.source&&c&&"custom"!==s.type){const h=this._removedLayers[a];delete this._removedLayers[a],h.type!==s.type?this._updatedSources[s.source]="clear":(this._updatedSources[s.source]="reload",c.pause())}this._updateLayer(s),s.onAdd&&s.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(r,n){if(this._checkLoaded(),this._changed=!0,!this._layers[r])return void this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be moved.`)));if(r===n)return;const o=this._order.indexOf(r);this._order.splice(o,1);const s=n?this._order.indexOf(n):this._order.length;n&&-1===s?this.fire(new i.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`))):(this._order.splice(s,0,r),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(r){this._checkLoaded();const n=this._layers[r];if(!n)return void this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be removed.`)));n.setEventedParent(null),this._updateLayerCount(n,!1);const o=this._order.indexOf(r);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[r]=n,delete this._layers[r],delete this._serializedLayers[r],delete this._updatedLayers[r],delete this._updatedPaintProps[r],n.onRemove&&n.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(i){return this._layers[i]}hasLayer(i){return i in this._layers}hasLayerType(i){for(const r in this._layers)if(this._layers[r].type===i)return!0;return!1}setLayerZoomRange(r,n,o){this._checkLoaded();const s=this.getLayer(r);s?s.minzoom===n&&s.maxzoom===o||(null!=n&&(s.minzoom=n),null!=o&&(s.maxzoom=o),this._updateLayer(s)):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(r,n,o={}){this._checkLoaded();const a=this.getLayer(r);if(a){if(!s(a.filter,n))return null==n?(a.filter=void 0,void this._updateLayer(a)):void(this._validate(i.validateStyle.filter,`layers.${a.id}.filter`,n,{layerType:a.type},o)||(a.filter=i.clone$1(n),this._updateLayer(a)))}else this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be filtered.`)))}getFilter(r){return i.clone$1(this.getLayer(r).filter)}setLayoutProperty(r,n,o,a={}){this._checkLoaded();const l=this.getLayer(r);l?s(l.getLayoutProperty(n),o)||(l.setLayoutProperty(n,o,a),this._updateLayer(l)):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(r,n){const o=this.getLayer(r);if(o)return o.getLayoutProperty(n);this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style.`)))}setPaintProperty(r,n,o,a={}){this._checkLoaded();const l=this.getLayer(r);l?s(l.getPaintProperty(n),o)||(l.setPaintProperty(n,o,a)&&this._updateLayer(l),this._changed=!0,this._updatedPaintProps[r]=!0):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(i,r){return this.getLayer(i).getPaintProperty(r)}setFeatureState(r,n){this._checkLoaded();const o=r.source,s=r.sourceLayer,a=this.getSource(o);if(void 0===a)return void this.fire(new i.ErrorEvent(Error(`The source '${o}' does not exist in the map's style.`)));const l=a.type;if("geojson"===l&&s)return void this.fire(new i.ErrorEvent(Error("GeoJSON sources cannot have a sourceLayer parameter.")));if("vector"===l&&!s)return void this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));void 0===r.id&&this.fire(new i.ErrorEvent(Error("The feature id parameter must be provided.")));const c=this._getSourceCaches(o);for(const h of c)h.setFeatureState(s,r.id,n)}removeFeatureState(r,n){this._checkLoaded();const o=r.source,s=this.getSource(o);if(void 0===s)return void this.fire(new i.ErrorEvent(Error(`The source '${o}' does not exist in the map's style.`)));const a=s.type,l="vector"===a?r.sourceLayer:void 0;if("vector"===a&&!l)return void this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));if(n&&"string"!=typeof r.id&&"number"!=typeof r.id)return void this.fire(new i.ErrorEvent(Error("A feature id is required to remove its specific state property.")));const c=this._getSourceCaches(o);for(const h of c)h.removeFeatureState(l,r.id,n)}getFeatureState(r){this._checkLoaded();const n=r.source,o=r.sourceLayer,s=this.getSource(n);if(void 0!==s){if("vector"!==s.type||o)return void 0===r.id&&this.fire(new i.ErrorEvent(Error("The feature id parameter must be provided."))),this._getSourceCaches(n)[0].getFeatureState(o,r.id);this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new i.ErrorEvent(Error(`The source '${n}' does not exist in the map's style.`)))}getTransition(){return i.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const r={};for(const n in this._sourceCaches){const o=this._sourceCaches[n].getSource();r[o.id]||(r[o.id]=o.serialize())}return i.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.stylesheet.terrain,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:r,layers:this._serializeLayers(this._order)},i=>void 0!==i)}_updateLayer(i){this._updatedLayers[i.id]=!0;const r=this._getLayerSourceCache(i);i.source&&!this._updatedSources[i.source]&&r&&"raster"!==r.getSource().type&&(this._updatedSources[i.source]="reload",r.pause()),this._changed=!0,i.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(i){var r,n;const o={},s=[];for(let a=this._order.length-1;a>=0;a--){const l=this._order[a];if(r=l,"fill-extrusion"===this._layers[r].type)for(const c of(o[l]=a,i)){const h=c[l];if(h)for(const u of h)s.push(u)}}s.sort((i,r)=>r.intersectionZ-i.intersectionZ);const d=[];for(let p=this._order.length-1;p>=0;p--){const f=this._order[p];if(n=f,"fill-extrusion"===this._layers[n].type)for(let m=s.length-1;m>=0;m--){const _=s[m].feature;if(o[_.layer.id]{const r=this.getLayer(i);return r&&r.is3D()}):this.has3DLayers(),u=ep.createFromScreenPoints(r,o);for(const d in this._sourceCaches){const p=this._sourceCaches[d].getSource().id;n.layers&&!s[p]||c.push(function(r,n,o,s,a,l,c,h=!1){const u=r.tilesIn(s,c,h);u.sort(ew);const d=[];for(const p of u)d.push({wrappedTileID:p.tile.tileID.wrapped().key,queryResults:p.tile.queryRenderedFeatures(n,o,r._state,p,a,l,function(r,n){const o=i.identity([]);return i.scale(o,o,[.5*r.width,-(.5*r.height),1]),i.translate(o,o,[1,-1,0]),i.multiply$1(o,o,r.calculateProjMatrix(n.toUnwrapped()))}(r.transform,p.tile.tileID),h)});const f=function(i){const r={},n={};for(const o of i){const s=o.queryResults,a=o.wrappedTileID,l=n[a]=n[a]||{};for(const c in s){const h=s[c],u=l[c]=l[c]||{},d=r[c]=r[c]||[];for(const p of h)u[p.featureIndex]||(u[p.featureIndex]=!0,d.push(p))}}return r}(d);for(const m in f)f[m].forEach(i=>{const n=i.feature,o=r.getFeatureState(n.layer["source-layer"],n.id);n.source=n.layer.source,n.layer["source-layer"]&&(n.sourceLayer=n.layer["source-layer"]),n.state=o});return f}(this._sourceCaches[d],this._layers,this._serializedLayers,u,n,o,h,!!this.map._showQueryGeometry))}return this.placement&&c.push(function(i,r,n,o,s,a,l){const c={},h=a.queryRenderedSymbols(o),u=[];for(const d of Object.keys(h).map(Number))u.push(l[d]);for(const p of(u.sort(ew),u)){const f=p.featureIndex.lookupSymbolFeatures(h[p.bucketInstanceId],r,p.bucketIndex,p.sourceLayerIndex,s.filter,s.layers,s.availableImages,i);for(const m in f){const _=c[m]=c[m]||[],g=f[m];for(const y of(g.sort((i,r)=>{const n=p.featureSortOrder;if(n){const o=n.indexOf(i.featureIndex);return n.indexOf(r.featureIndex)-o}return r.featureIndex-i.featureIndex}),g))_.push(y)}}for(const x in c)c[x].forEach(r=>{const o=r.feature,s=n(i[x]).getFeatureState(o.layer["source-layer"],o.id);o.source=o.layer.source,o.layer["source-layer"]&&(o.sourceLayer=o.layer["source-layer"]),o.state=s});return c}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),u.screenGeometry,n,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(c)}querySourceFeatures(r,n){n&&n.filter&&this._validate(i.validateStyle.filter,"querySourceFeatures.filter",n.filter,null,n);const o=this._getSourceCaches(r);let s=[];for(const a of o)s=s.concat(function(i,r){const n=i.getRenderableIds().map(r=>i.getTileByID(r)),o=[],s={};for(let a=0;a{for(const i of this.map._markers)i._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(r){if(this._checkLoaded(),!r)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const n=this.fog,o=n.get();for(const a in r)if(!s(r[a],o[a])){n.set(r),this.stylesheet.fog=r;const l={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};n.updateTransitions(l);break}}else this._createFog(r);this._markersNeedUpdate=!0}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const i=this._order.filter(i=>this.isLayerDraped(this._layers[i])),r=this._order.filter(i=>!this.isLayerDraped(this._layers[i]));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...i),this._drapedFirstOrder.push(...r)}_createTerrain(r,n){const o=this.terrain=new y(r,n);this.stylesheet.terrain=r,this.dispatcher.broadcast("enableTerrain",!0),this._force3DLayerUpdate();const s={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};o.updateTransitions(s)}_force3DLayerUpdate(){for(const i in this._layers){const r=this._layers[i];"fill-extrusion"===r.type&&this._updateLayer(r)}}_forceSymbolLayerUpdate(){for(const i in this._layers){const r=this._layers[i];"symbol"===r.type&&this._updateLayer(r)}}_validate(r,n,o,s,a={}){return(!a||!1!==a.validate)&&ts(this,r.call(i.validateStyle,i.extend({key:n,style:this.serialize(),value:o,styleSpec:i.spec},s)))}_remove(){for(const r in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),i.evented.off("pluginStateChange",this._rtlTextPluginCallback),this._layers)this._layers[r].setEventedParent(null);for(const n in this._sourceCaches)this._sourceCaches[n].clearTiles(),this._sourceCaches[n].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(i){const r=this._getSourceCaches(i);for(const n of r)n.clearTiles()}_reloadSource(i){const r=this._getSourceCaches(i);for(const n of r)n.resume(),n.reload()}_updateSources(i){for(const r in this._sourceCaches)this._sourceCaches[r].update(i)}_generateCollisionBoxes(){for(const i in this._sourceCaches){const r=this._sourceCaches[i];r.resume(),r.reload()}}_updatePlacement(r,n,o,s,a=!1){let l=!1,c=!1;const h={};for(const u of this._order){const d=this._layers[u];if("symbol"!==d.type)continue;if(!h[d.source]){const p=this._getLayerSourceCache(d);if(!p)continue;h[d.source]=p.getRenderableIds(!0).map(i=>p.getTileByID(i)).sort((i,r)=>r.tileID.overscaledZ-i.tileID.overscaledZ||(i.tileID.isLessThan(r.tileID)?-1:1))}const f=this.crossTileSymbolIndex.addLayer(d,h[d.source],r.center.lng,r.projection);l=l||f}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),a=a||this._layerOrderChanged||0===o,this._layerOrderChanged&&this.fire(new i.Event("neworder")),(a||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(i.exported.now(),r.zoom))&&(this.pauseablePlacement=new te(r,this._order,a,n,o,s,this.placement,this.fog&&r.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,h),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(i.exported.now()),c=!0),l&&this.pauseablePlacement.placement.setStale()),c||l)for(const m of this._order){const _=this._layers[m];"symbol"===_.type&&this.placement.updateLayerOpacities(_,h[_.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(i.exported.now())}_releaseSymbolFadeTiles(){for(const i in this._sourceCaches)this._sourceCaches[i].releaseSymbolFadeTiles()}getImages(i,r,n){this.imageManager.getImages(r.icons,n),this._updateTilesForChangedImages();const o=i=>{i&&i.setDependencies(r.tileID.key,r.type,r.icons)};o(this._otherSourceCaches[r.source]),o(this._symbolSourceCaches[r.source])}getGlyphs(i,r,n){this.glyphManager.getGlyphs(r.stacks,n)}getResource(r,n,o){return i.makeRequest(n,o)}_getSourceCache(i){return this._otherSourceCaches[i]}_getLayerSourceCache(i){return"symbol"===i.type?this._symbolSourceCaches[i.source]:this._otherSourceCaches[i.source]}_getSourceCaches(i){const r=[];return this._otherSourceCaches[i]&&r.push(this._otherSourceCaches[i]),this._symbolSourceCaches[i]&&r.push(this._symbolSourceCaches[i]),r}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}tu.getSourceType=function(i){return ev[i]},tu.setSourceType=function(i,r){ev[i]=r},tu.registerForPluginStateChange=i.registerForPluginStateChange;var td="\n#define EPSILON 0.0000001\n#define PI 3.141592653589793\n#define EXTENT 8192.0\n#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}\n#endif",tp="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}";let tf={},tm={};tf=ty("","\n#define ELEVATION_SCALE 7.0\n#define ELEVATION_OFFSET 450.0\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix(\nmix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;}\n#else\nvec3 elevationVector(vec2 pos) { return vec3(0,0,1); }\n#endif\n#ifdef TERRAIN\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nuniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev;\n#else\nuniform sampler2D u_dem;uniform sampler2D u_dem_prev;\n#endif\nuniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos));\n#ifdef TERRAIN_DEM_NEAREST_FILTER\nreturn u_exaggeration*tl;\n#endif\nfloat tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}float prevElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}\n#ifdef TERRAIN_VERTEX_MORPHING\nfloat elevation(vec2 apos) {float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);}\n#else\nfloat elevation(vec2 apos) {return currentElevation(apos);}\n#endif\nfloat unpack_depth(vec4 rgba_depth)\n{const vec4 bit_shift=vec4(1.0/(256.0*256.0*256.0),1.0/(256.0*256.0),1.0/256.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4(\nunpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy))\n);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nfloat tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a;\n#else\nvec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack);\n#endif\nreturn vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;vec4 bounds=vec4(d,vec2(1.0)-d);h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);}\n#else\nfloat elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; }\n#endif",!0),tm=ty("#ifdef FOG\nuniform float u_fog_temporal_offset;float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);}\n#endif","#ifdef FOG\nuniform mat4 u_fog_matrix;vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);}\n#endif",!0);const t_=ty("\nhighp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}\n#ifdef TERRAIN\nhighp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(256.0*256.0*256.0,256.0*256.0,256.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/256.0,1.0/256.0,1.0/256.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}\n#endif","\nfloat wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;}vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) {\n#if defined(PROJECTION_GLOBE_VIEW) && !defined(PROJECTED_POS_ON_VIEWPORT)\nfloat tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz;\n#else\nreturn vec3(0.0);\n#endif\n}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {\n#if defined(PROJECTION_GLOBE_VIEW) && !defined(PROJECTED_POS_ON_VIEWPORT)\nreturn mix(globe,mercator,t);\n#else\nreturn globe;\n#endif\n}\n#ifdef PROJECTION_GLOBE_VIEW\nmat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);}\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(\nunpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered.");var tg={background:ty("uniform vec4 u_color;uniform float u_opacity;void main() {vec4 out_color=u_color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),backgroundPattern:ty("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_mix);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),circle:ty("varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(\nantialiased_blur,0.0,extrude_length-radius/(radius+stroke_width)\n);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef FOG\nout_color=fog_apply_premultiplied(out_color,v_fog_pos);\n#endif\ngl_FragColor=out_color*(v_visibility*opacity_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","#define NUM_VISIBILITY_RINGS 2\n#define INV_SQRT2 0.70710678\n#define ELEVATION_BIAS 0.0001\n#define NUM_SAMPLES_PER_RING 16\nuniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;attribute float a_scale;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) {\n#if defined(TERRAIN)\nreturn elevation(pos)+ELEVATION_BIAS;\n#else\nreturn 0.0;\n#endif\n}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale);\n#ifdef PITCH_WITH_MAP\n#ifdef PROJECTION_GLOBE_VIEW\nreturn u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) );\n#else\nreturn u_matrix*( world_center+vec4(sample_offset,0,0) );\n#endif\n#else\nreturn projected_center+vec4(sample_offset,0,0);\n#endif\n}float get_sample_step() {\n#ifdef PITCH_WITH_MAP\nreturn 2.0*PI/float(NUM_SAMPLES_PER_RING);\n#else\nreturn PI/float(NUM_SAMPLES_PER_RING);\n#endif\n}void main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);\n#ifdef PROJECTION_GLOBE_VIEW\nvec2 scaled_extrude=extrude*a_scale;vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=scaled_extrude.x*surface_vectors[0]+scaled_extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);vec4 world_center=vec4(pos,1);\n#else \nmat3 surface_vectors=mat3(1.0);float height=circle_elevation(circle_center);vec4 world_center=vec4(circle_center,height,1);\n#endif\nvec4 projected_center=u_matrix*world_center;float view_scale=0.0;\n#ifdef PITCH_WITH_MAP\n#ifdef SCALE_WITH_MAP\nview_scale=1.0;\n#else\nview_scale=projected_center.w/u_camera_to_center_distance;\n#endif\n#else\n#ifdef SCALE_WITH_MAP\nview_scale=u_camera_to_center_distance;\n#else\nview_scale=projected_center.w;\n#endif\n#endif\n#if defined(SCALE_WITH_MAP) && defined(PROJECTION_GLOBE_VIEW)\nview_scale*=a_scale;\n#endif\ngl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0;\n#ifdef TERRAIN\nfloat step=get_sample_step();\n#ifdef PITCH_WITH_MAP\nfloat cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);vec4 occlusion_world_center=vec4(circle_center,cantilevered_height,1);vec4 occlusion_projected_center=u_matrix*occlusion_world_center;\n#else\nvec4 occlusion_world_center=world_center;vec4 occlusion_projected_center=projected_center;\n#endif\nfor(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING);\n#else\nvisibility=1.0;\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nvisibility=1.0;\n#endif\nv_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);\n#ifdef FOG\nv_fog_pos=fog_position(world_center.xyz);\n#endif\n}"),clippingMask:ty("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:ty("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef FOG\ngl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;attribute float a_scale;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5);\n#ifdef PROJECTION_GLOBE_VIEW\nextrude*=a_scale;vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#else\nvec3 pos=vec3(tilePos+extrude,elevation(tilePos));\n#endif\ngl_Position=u_matrix*vec4(pos,1);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),heatmapTexture:ty("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:ty("varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}","attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:ty("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(\nmix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:ty("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;\n#endif\nvarying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0;\n#ifdef PROJECTION_GLOBE_VIEW\ngl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1);\n#else\ngl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1);\n#endif\n}"),fill:ty("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\nvec4 out_color=color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutline:ty("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutlinePattern:ty("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=mix(color1,color2,u_fade);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillPattern:ty("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillExtrusion:ty("varying vec4 v_color;void main() {vec4 color=v_color;\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 pos_nx=floor(a_pos_normal_ed.xyz*0.5);mediump vec3 top_up_ny=a_pos_normal_ed.xyz-2.0*pos_nx;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;float ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;float h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 pos=vec3(pos_nx.xy,h);\n#else\nvec3 pos=vec3(pos_nx.xy,t > 0.0 ? height : base);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(pos.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.rgb+=clamp(color.rgb*directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_color*=u_opacity;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),fillExtrusionPattern:ty("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade);out_color=out_color*v_lighting;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 pos_nx=floor(a_pos_normal_ed.xyz*0.5);mediump vec3 top_up_ny=a_pos_normal_ed.xyz-2.0*pos_nx;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;float ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;float h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 p=vec3(pos_nx.xy,h);\n#else\nvec3 p=vec3(pos_nx.xy,z);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0\n? pos_nx.xy\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;\n#ifdef FOG\nv_fog_pos=fog_position(p);\n#endif\n}"),hillshadePrepare:ty("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nreturn texture2D(u_image,coord).a/4.0;\n#else\nvec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;\n#endif\n}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos);float f=getElevation(v_pos+vec2(epsilon.x,0));float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float h=getElevation(v_pos+vec2(0,epsilon.y));float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2(\n(c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c)\n)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(\nderiv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:ty("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef FOG\ngl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos));\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),line:ty("uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#ifdef RENDER_LINE_DASH\nuniform sampler2D u_dash_image;uniform float u_mix;uniform vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform sampler2D u_gradient_image;varying highp vec2 v_uv;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash_from\n#pragma mapbox: define lowp vec4 dash_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash_from\n#pragma mapbox: initialize lowp vec4 dash_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);\n#ifdef RENDER_LINE_DASH\nfloat sdfdist_a=texture2D(u_dash_image,v_tex_a).a;float sdfdist_b=texture2D(u_dash_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfwidth=min(dash_from.z*u_scale.y,dash_to.z*u_scale.z);float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/sdfwidth;alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);\n#endif\n#ifdef RENDER_LINE_GRADIENT\nvec4 out_color=texture2D(u_gradient_image,v_uv);\n#else\nvec4 out_color=color;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\n#ifdef RENDER_LINE_ALPHA_DISCARD\nif (alpha < u_alpha_discard_threshold) {discard;}\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define EXTRUDE_SCALE 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;\n#ifdef RENDER_LINE_GRADIENT\nattribute vec3 a_packed;\n#else\nattribute float a_linesofar;\n#endif\nuniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;\n#ifdef RENDER_LINE_DASH\nuniform vec2 u_texsize;uniform mediump vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform float u_image_height;varying highp vec2 v_uv;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash_from\n#pragma mapbox: define lowp vec4 dash_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash_from\n#pragma mapbox: initialize lowp vec4 dash_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nfloat a_uv_x=a_packed[0];float a_split_index=a_packed[1];float a_linesofar=a_packed[2];highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);\n#endif\n#ifdef RENDER_LINE_DASH\nfloat tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;float scaleA=dash_from.z==0.0 ? 0.0 : tileZoomRatio/(dash_from.z*fromScale);float scaleB=dash_to.z==0.0 ? 0.0 : tileZoomRatio/(dash_to.z*toScale);float heightA=dash_from.y;float heightB=dash_to.y;v_tex_a=vec2(a_linesofar*scaleA/floorwidth,(-normal.y*heightA+dash_from.x+0.5)/u_texsize.y);v_tex_b=vec2(a_linesofar*scaleB/floorwidth,(-normal.y*heightB+dash_to.x+0.5)/u_texsize.y);\n#endif\nv_width2=vec2(outset,inset);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),linePattern:ty("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),raster:ty("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(\ndot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);vec3 out_color=mix(u_high_vec,u_low_vec,rgb);\n#ifdef FOG\nout_color=fog_dither(fog_apply(out_color,v_fog_pos));\n#endif\ngl_FragColor=vec4(out_color*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),symbolIcon:ty("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0);\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}"),symbolSDF:ty("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_tile_id;uniform float u_zoom_transition;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset);\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float gamma_scale=gl_Position.w;float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nvec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}"),symbolTextAndIcon:ty("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale);\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}"),terrainRaster:ty("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\nvoid main() {vec4 color=texture2D(u_image0,v_pos0);\n#ifdef FOG\ncolor=fog_dither(fog_apply_from_vert(color,v_fog_opacity));\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\nconst float skirtOffset=24575.0;const float wireframeOffset=0.00015;void main() {v_pos0=a_texture_pos/8192.0;float skirt=float(a_pos.x >=skirtOffset);float elevation=elevation(a_texture_pos)-skirt*u_skirt_height;\n#ifdef TERRAIN_WIREFRAME\nelevation+=u_skirt_height*u_skirt_height*wireframeOffset;\n#endif\nvec2 decodedPos=a_pos-vec2(skirt*skirtOffset,0.0);gl_Position=u_matrix*vec4(decodedPos,elevation,1.0);\n#ifdef FOG\nv_fog_opacity=fog(fog_position(vec3(decodedPos,elevation)));\n#endif\n}"),terrainDepth:ty("#ifdef GL_ES\nprecision highp float;\n#endif\nvarying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying float v_depth;void main() {float elevation=elevation(a_texture_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:ty("\nvarying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep(\ncos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb;\n#ifdef FOG\nsky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color);\n#endif\nsky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",tp),skyboxGradient:ty("varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5));\n#ifdef FOG\ncolor.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a;\n#endif\ncolor*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",tp),skyboxCapture:ty("\nvarying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m;\n#ifdef GL_ES\nprecision highp float;\n#endif\n#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6)\n#define BETA_M vec3(21e-6,21e-6,21e-6)\n#define MIE_G 0.76\n#define DENSITY_HEIGHT_SCALE_R 8000.0\n#define DENSITY_HEIGHT_SCALE_M 1200.0\n#define PLANET_RADIUS 6360e3\n#define ATMOSPHERE_RADIUS 6420e3\n#define SAMPLE_STEPS 10\n#define DENSITY_STEPS 4\nfloat ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}","attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:ty("uniform sampler2D u_image0;varying vec2 v_pos0;void main() {gl_FragColor=texture2D(u_image0,v_pos0);\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_proj_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;attribute vec3 a_globe_pos;attribute vec2 a_merc_pos;attribute vec2 a_uv;varying vec2 v_pos0;const float wireframeOffset=1e3;void main() {v_pos0=a_uv;vec2 uv=a_uv*EXTENT;vec4 up_vector=vec4(elevationVector(uv),1.0);float height=elevation(uv);\n#ifdef TERRAIN_WIREFRAME\nheight+=wireframeOffset;\n#endif\nvec4 globe=u_globe_matrix*vec4(a_globe_pos+up_vector.xyz*height,1.0);vec4 mercator=vec4(0.0);if (u_zoom_transition > 0.0) {mercator=vec4(a_merc_pos,height,1.0);mercator.xy-=u_merc_center;mercator.x=wrap(mercator.x,-0.5,0.5);mercator=u_merc_matrix*mercator;}vec3 position=mix(globe.xyz,mercator.xyz,u_zoom_transition);gl_Position=u_proj_matrix*vec4(position,1.0);}"),globeAtmosphere:ty("uniform vec2 u_center;uniform float u_radius;uniform vec2 u_screen_size;uniform float u_opacity;uniform highp float u_fadeout_range;uniform vec3 u_start_color;uniform vec3 u_end_color;uniform float u_pixel_ratio;void main() {highp vec2 fragCoord=gl_FragCoord.xy/u_pixel_ratio;fragCoord.y=u_screen_size.y-fragCoord.y;float distFromCenter=length(fragCoord-u_center);float normDistFromCenter=length(fragCoord-u_center)/u_radius;if (normDistFromCenter < 1.0)\ndiscard;float t=clamp(1.0-sqrt(normDistFromCenter-1.0)/u_fadeout_range,0.0,1.0);vec3 color=mix(u_start_color,u_end_color,1.0-t);gl_FragColor=vec4(color*t*u_opacity,u_opacity);}","attribute vec3 a_pos;void main() {gl_Position=vec4(a_pos,1.0);}")};function ty(i,r,n){const o=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,s=/uniform (highp |mediump |lowp )?([\w]+) ([\w]+)([\s]*)([\w]*)/g,a=r.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),l=i.match(s),c=r.match(s),h=td.match(s);let u=c?c.concat(l):l;n||(tf.staticUniforms&&(u=tf.staticUniforms.concat(u)),tm.staticUniforms&&(u=tm.staticUniforms.concat(u))),u&&(u=u.concat(h));const d={};return{fragmentSource:i=i.replace(o,(i,r,n,o,s)=>(d[s]=!0,"define"===r?` +Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(n[1])} }\`.`)];const p=[];return"symbol"===i.layerType&&("text-field"===c&&s&&!s.glyphs&&p.push(new tn(o,l,'use of "text-field" requires a style "glyphs" property')),"text-font"===c&&iQ(tl(l))&&"identity"===ta(l.type)&&p.push(new tn(o,l,'"text-font" does not support identity functions'))),p.concat(rz({key:i.key,value:l,valueSpec:d,style:s,styleSpec:a,expressionContext:"property",propertyType:r,propertyKey:c}))}function rv(i){return rx(i,"paint")}function rb(i){return rx(i,"layout")}function rw(i){let r=[];const n=i.value,o=i.key,s=i.style,a=i.styleSpec;n.type||n.ref||r.push(new tn(o,n,'either "type" or "ref" is required'));let l=ta(n.type);const c=ta(n.ref);if(n.id){const h=ta(n.id);for(let u=0;u{i in n&&r.push(new tn(o,n[i],`"${i}" is prohibited for ref layers`))}),s.layers.forEach(i=>{ta(i.id)===c&&(p=i)}),p?p.ref?r.push(new tn(o,n.ref,"ref cannot reference another ref layer")):l=ta(p.type):r.push(new tn(o,n.ref,`ref layer "${c}" not found`))}else if("background"!==l&&"sky"!==l){if(n.source){const f=s.sources&&s.sources[n.source],m=f&&ta(f.type);f?"vector"===m&&"raster"===l?r.push(new tn(o,n.source,`layer "${n.id}" requires a raster source`)):"raster"===m&&"raster"!==l?r.push(new tn(o,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==m||n["source-layer"]?"raster-dem"===m&&"hillshade"!==l?r.push(new tn(o,n.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"===l&&n.paint&&n.paint["line-gradient"]&&("geojson"!==m||!f.lineMetrics)&&r.push(new tn(o,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):r.push(new tn(o,n,`layer "${n.id}" must specify a "source-layer"`)):r.push(new tn(o,n.source,`source "${n.source}" not found`))}else r.push(new tn(o,n,'missing required property "source"'))}return r=r.concat(rr({key:o,value:n,valueSpec:a.layer,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":()=>[],type:()=>rz({key:`${o}.type`,value:n.type,valueSpec:a.layer.type,style:i.style,styleSpec:i.styleSpec,object:n,objectKey:"type"}),filter:i=>ry(ts({layerType:l},i)),layout:i=>rr({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rb(ts({layerType:l},i))}}),paint:i=>rr({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rv(ts({layerType:l},i))}})}}))}function rT(i){const r=i.value,n=i.key,o=iJ(r);return"string"!==o?[new tn(n,r,`string expected, ${o} found`)]:[]}const rE={promoteId:function({key:i,value:r}){if("string"===iJ(r))return rT({key:i,value:r});{const n=[];for(const o in r)n.push(...rT({key:`${i}.${o}`,value:r[o]}));return n}}};function rS(i){let r;const n=i.value,o=i.key,s=i.styleSpec,a=i.style;if(!n.type)return[new tn(o,n,'"type" is required')];const l=ta(n.type);switch(l){case"vector":case"raster":case"raster-dem":return rr({key:o,value:n,valueSpec:s[`source_${l.replace("-","_")}`],style:i.style,styleSpec:s,objectElementValidators:rE});case"geojson":if(r=rr({key:o,value:n,valueSpec:s.source_geojson,style:a,styleSpec:s,objectElementValidators:rE}),n.cluster)for(const c in n.clusterProperties){const[h,u]=n.clusterProperties[c],d="string"==typeof h?[h,["accumulated"],["get",c]]:h;r.push(...ra({key:`${o}.${c}.map`,value:u,expressionContext:"cluster-map"})),r.push(...ra({key:`${o}.${c}.reduce`,value:d,expressionContext:"cluster-reduce"}))}return r;case"video":return rr({key:o,value:n,valueSpec:s.source_video,style:a,styleSpec:s});case"image":return rr({key:o,value:n,valueSpec:s.source_image,style:a,styleSpec:s});case"canvas":return[new tn(o,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return rl({key:`${o}.type`,value:n.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:a,styleSpec:s})}}function rI(i){const r=i.value,n=i.styleSpec,o=n.light,s=i.style;let a=[];const l=iJ(r);if(void 0===r)return a;if("object"!==l)return a.concat([new tn("light",r,`object expected, ${l} found`)]);for(const c in r){const h=c.match(/^(.*)-transition$/);a=a.concat(h&&o[h[1]]&&o[h[1]].transition?rz({key:c,value:r[c],valueSpec:n.transition,style:s,styleSpec:n}):o[c]?rz({key:c,value:r[c],valueSpec:o[c],style:s,styleSpec:n}):[new tn(c,r[c],`unknown property "${c}"`)])}return a}function rM(i){const r=i.value,n=i.key,o=i.style,s=i.styleSpec,a=s.terrain;let l=[];const c=iJ(r);if(void 0===r)return l;if("object"!==c)return l.concat([new tn("terrain",r,`object expected, ${c} found`)]);for(const h in r){const u=h.match(/^(.*)-transition$/);l=l.concat(u&&a[u[1]]&&a[u[1]].transition?rz({key:h,value:r[h],valueSpec:s.transition,style:o,styleSpec:s}):a[h]?rz({key:h,value:r[h],valueSpec:a[h],style:o,styleSpec:s}):[new tn(h,r[h],`unknown property "${h}"`)])}if(r.source){const d=o.sources&&o.sources[r.source],p=d&&ta(d.type);d?"raster-dem"!==p&&l.push(new tn(n,r.source,`terrain cannot be used with a source of type ${p}, it only be used with a "raster-dem" source type`)):l.push(new tn(n,r.source,`source "${r.source}" not found`))}else l.push(new tn(n,r,'terrain is missing required property "source"'));return l}function rA(i){const r=i.value,n=i.style,o=i.styleSpec,s=o.fog;let a=[];const l=iJ(r);if(void 0===r)return a;if("object"!==l)return a.concat([new tn("fog",r,`object expected, ${l} found`)]);for(const c in r){const h=c.match(/^(.*)-transition$/);a=a.concat(h&&s[h[1]]&&s[h[1]].transition?rz({key:c,value:r[c],valueSpec:o.transition,style:n,styleSpec:o}):s[c]?rz({key:c,value:r[c],valueSpec:s[c],style:n,styleSpec:o}):[new tn(c,r[c],`unknown property "${c}"`)])}return a}const rC={"*":()=>[],array:rn,boolean:function(i){const r=i.value,n=i.key,o=iJ(r);return"boolean"!==o?[new tn(n,r,`boolean expected, ${o} found`)]:[]},number:ro,color:function(i){const r=i.key,n=i.value,o=iJ(n);return"string"!==o?[new tn(r,n,`color expected, ${o} found`)]:null===tA.parseCSSColor(n)?[new tn(r,n,`color expected, "${n}" found`)]:[]},constants:to,enum:rl,filter:ry,function:rs,layer:rw,object:rr,source:rS,light:rI,terrain:rM,fog:rA,string:rT,formatted:function(i){return 0===rT(i).length?[]:ra(i)},resolvedImage:function(i){return 0===rT(i).length?[]:ra(i)},projection:function(i){const r=i.value,n=i.styleSpec,o=n.projection,s=i.style;let a=[];const l=iJ(r);if("object"===l)for(const c in r)a=a.concat(rz({key:c,value:r[c],valueSpec:o[c],style:s,styleSpec:n}));else"string"!==l&&(a=a.concat([new tn("projection",r,`object or string expected, ${l} found`)]));return a}};function rz(i){const r=i.value,n=i.valueSpec,o=i.styleSpec;return n.expression&&iQ(ta(r))?rs(i):n.expression&&i8(tl(r))?ra(i):n.type&&rC[n.type]?rC[n.type](i):rr(ts({},i,{valueSpec:n.type?o[n.type]:n}))}function rk(i){const r=i.value,n=i.key,o=rT(i);return o.length||(-1===r.indexOf("{fontstack}")&&o.push(new tn(n,r,'"glyphs" url must include a "{fontstack}" token')),-1===r.indexOf("{range}")&&o.push(new tn(n,r,'"glyphs" url must include a "{range}" token'))),o}function rP(i,r=tr){let n=[];return n=n.concat(rz({key:"",value:i,valueSpec:r.$root,styleSpec:r,style:i,objectElementValidators:{glyphs:rk,"*":()=>[]}})),i.constants&&(n=n.concat(to({key:"constants",value:i.constants,style:i,styleSpec:r}))),rD(n)}function rD(i){return[].concat(i).sort((i,r)=>i.line-r.line)}function rL(i){return function(...r){return rD(i.apply(this,r))}}rP.source=rL(rS),rP.light=rL(rI),rP.terrain=rL(rM),rP.fog=rL(rA),rP.layer=rL(rw),rP.filter=rL(ry),rP.paintProperty=rL(rv),rP.layoutProperty=rL(rb);const rB=rP.light,rR=rP.fog,rF=rP.paintProperty,rO=rP.layoutProperty;function rU(i,r){let n=!1;if(r&&r.length)for(const o of r)i.fire(new tt(Error(o.message))),n=!0;return n}var rV=rN;function rN(i,r,n){var o=this.cells=[];if(i instanceof ArrayBuffer){this.arrayBuffer=i;var s=new Int32Array(this.arrayBuffer);i=s[0],this.d=(r=s[1])+2*(n=s[2]);for(var a=0;a=d[m+0]&&o>=d[m+1])?(l[f]=!0,a.push(u[f])):l[f]=!1}}},rN.prototype._forEachCell=function(i,r,n,o,s,a,l,c){for(var h=this._convertToCellCoord(i),u=this._convertToCellCoord(r),d=this._convertToCellCoord(n),p=this._convertToCellCoord(o),f=h;f<=d;f++)for(var m=u;m<=p;m++){var _=this.d*m+f;if((!c||c(this._convertFromCellCoord(f),this._convertFromCellCoord(m),this._convertFromCellCoord(f+1),this._convertFromCellCoord(m+1)))&&s.call(this,i,r,n,o,_,a,l,c))return}},rN.prototype._convertFromCellCoord=function(i){return(i-this.padding)/this.scale},rN.prototype._convertToCellCoord=function(i){return Math.max(0,Math.min(this.d-1,Math.floor(i*this.scale)+this.padding))},rN.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var i=this.cells,r=3+this.cells.length+1+1,n=0,o=0;o=0)continue;const h=i[c];l[c]=rZ[a].shallow.indexOf(c)>=0?h:rH(h,r)}i instanceof Error&&(l.message=i.message)}if(l.$name)throw Error("$name property is reserved for worker serialization logic.");return"Object"!==a&&(l.$name=a),l}throw Error("can't serialize object of type "+typeof i)}function rK(i){if(null==i||"boolean"==typeof i||"number"==typeof i||"string"==typeof i||i instanceof Boolean||i instanceof Number||i instanceof String||i instanceof Date||i instanceof RegExp||rX(i)||rW(i)||ArrayBuffer.isView(i)||i instanceof rj)return i;if(Array.isArray(i))return i.map(rK);if("object"==typeof i){const r=i.$name||"Object",{klass:n}=rZ[r];if(!n)throw Error(`can't deserialize unregistered class ${r}`);if(n.deserialize)return n.deserialize(i);const o=Object.create(n.prototype);for(const s of Object.keys(i)){if("$name"===s)continue;const a=i[s];o[s]=rZ[r].shallow.indexOf(s)>=0?a:rK(a)}return o}throw Error("can't deserialize object of type "+typeof i)}class rY{constructor(){this.first=!0}update(i,r){const n=Math.floor(i);return this.first?(this.first=!1,this.lastIntegerZoom=n,this.lastIntegerZoomTime=0,this.lastZoom=i,this.lastFloorZoom=n,!0):(this.lastFloorZoom>n?(this.lastIntegerZoom=n+1,this.lastIntegerZoomTime=r):this.lastFloorZoomi>=1536&&i<=1791,rQ=i=>i>=1872&&i<=1919,r0=i=>i>=2208&&i<=2303,r1=i=>i>=11904&&i<=12031,r2=i=>i>=12032&&i<=12255,r3=i=>i>=12272&&i<=12287,r5=i=>i>=12288&&i<=12351,r4=i=>i>=12352&&i<=12447,r6=i=>i>=12448&&i<=12543,r8=i=>i>=12544&&i<=12591,r9=i=>i>=12704&&i<=12735,r7=i=>i>=12736&&i<=12783,ne=i=>i>=12784&&i<=12799,nt=i=>i>=12800&&i<=13055,ni=i=>i>=13056&&i<=13311,nr=i=>i>=13312&&i<=19903,nn=i=>i>=19968&&i<=40959,no=i=>i>=40960&&i<=42127,ns=i=>i>=42128&&i<=42191,na=i=>i>=44032&&i<=55215,nl=i=>i>=63744&&i<=64255,nc=i=>i>=64336&&i<=65023,nh=i=>i>=65040&&i<=65055,nu=i=>i>=65072&&i<=65103,nd=i=>i>=65104&&i<=65135,np=i=>i>=65136&&i<=65279,nf=i=>i>=65280&&i<=65519;function nm(i){for(const r of i)if(n_(r.charCodeAt(0)))return!0;return!1}function n_(i){return!(746!==i&&747!==i&&(i<4352||!(r9(i)||r8(i)||nu(i)&&!(i>=65097&&i<=65103)||nl(i)||ni(i)||r1(i)||r7(i)||!(!r5(i)||i>=12296&&i<=12305||i>=12308&&i<=12319||12336===i)||nr(i)||nn(i)||nt(i)||i>=12592&&i<=12687||i>=43360&&i<=43391||i>=55216&&i<=55295||i>=4352&&i<=4607||na(i)||r4(i)||r3(i)||i>=12688&&i<=12703||r2(i)||ne(i)||r6(i)&&12540!==i||!(!nf(i)||65288===i||65289===i||65293===i||i>=65306&&i<=65310||65339===i||65341===i||65343===i||i>=65371&&i<=65503||65507===i||i>=65512&&i<=65519)||!(!nd(i)||i>=65112&&i<=65118||i>=65123&&i<=65126)||i>=5120&&i<=5759||i>=6320&&i<=6399||nh(i)||i>=19904&&i<=19967||no(i)||ns(i))))}function ng(i){return!(n_(i)||i>=128&&i<=255&&(167===i||169===i||174===i||177===i||188===i||189===i||190===i||215===i||247===i)||i>=8192&&i<=8303&&(8214===i||8224===i||8225===i||8240===i||8241===i||8251===i||8252===i||8258===i||8263===i||8264===i||8265===i||8273===i)||i>=8448&&i<=8527||i>=8528&&i<=8591||i>=8960&&i<=9215&&(i>=8960&&i<=8967||i>=8972&&i<=8991||i>=8996&&i<=9e3||9003===i||i>=9085&&i<=9114||i>=9150&&i<=9165||9167===i||i>=9169&&i<=9179||i>=9186&&i<=9215)||i>=9216&&i<=9279&&9251!==i||i>=9280&&i<=9311||i>=9312&&i<=9471||i>=9632&&i<=9727||i>=9728&&i<=9983&&!(i>=9754&&i<=9759)||i>=11008&&i<=11263&&(i>=11026&&i<=11055||i>=11088&&i<=11097||i>=11192&&i<=11243)||r5(i)||r6(i)||i>=57344&&i<=63743||nu(i)||nd(i)||nf(i)||8734===i||8756===i||8757===i||i>=9984&&i<=10087||i>=10102&&i<=10131||65532===i||65533===i)}function ny(i){return i>=1424&&i<=2303||nc(i)||np(i)}const nx="deferred",nv="loading",nb="loaded";let nw=null,nT="unavailable",nE=null;const nS=function(i){i&&"string"==typeof i&&i.indexOf("NetworkError")>-1&&(nT="error"),nw&&nw(i)};function nI(){nM.fire(new te("pluginStateChange",{pluginStatus:nT,pluginURL:nE}))}const nM=new ti,nA=function(){return nT},nC=function(){if(nT!==nx||!nE)throw Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");nT=nv,nI(),nE&&e3({url:nE},i=>{i?nS(i):(nT=nb,nI())})},nz={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>nT===nb||null!=nz.applyArabicShaping,isLoading:()=>nT===nv,setState(i){nT=i.pluginStatus,nE=i.pluginURL},isParsed:()=>null!=nz.applyArabicShaping&&null!=nz.processBidirectionalText&&null!=nz.processStyledBidirectionalText,getPluginURL:()=>nE};class nk{constructor(i,r){this.zoom=i,r?(this.now=r.now,this.fadeDuration=r.fadeDuration,this.zoomHistory=r.zoomHistory,this.transition=r.transition,this.pitch=r.pitch):(this.now=0,this.fadeDuration=0,this.zoomHistory=new rY,this.transition={},this.pitch=0)}isSupportedScript(i){return function(i,r){for(const n of i){var o;if(o=n.charCodeAt(0),!r&&ny(o)||o>=2304&&o<=3583||o>=3840&&o<=4255||o>=6016&&o<=6143)return!1}return!0}(i,nz.isLoaded())}crossFadingFactor(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const i=this.zoom,r=i-Math.floor(i),n=this.crossFadingFactor();return i>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:r+(1-r)*n}:{fromScale:.5,toScale:1,t:1-(1-n)*r}}}class nP{constructor(i,r){this.property=i,this.value=r,this.expression=function(i,r){if(iQ(i))return new ri(i,r);if(i8(i)){const n=rt(i,r);if("error"===n.result)throw Error(n.value.map(i=>`${i.key}: ${i.message}`).join(", "));return n.value}{let o=i;return"string"==typeof i&&"color"===r.type&&(o=tC.parse(i)),{kind:"constant",evaluate:()=>o}}}(void 0===r?i.specification.default:r,i.specification)}isDataDriven(){return"source"===this.expression.kind||"composite"===this.expression.kind}possiblyEvaluate(i,r,n){return this.property.possiblyEvaluate(this,i,r,n)}}class nD{constructor(i){this.property=i,this.value=new nP(i,void 0)}transitioned(i,r){return new nB(this.property,this.value,r,H({},i.transition,this.transition),i.now)}untransitioned(){return new nB(this.property,this.value,null,{},0)}}class nL{constructor(i){this._properties=i,this._values=Object.create(i.defaultTransitionablePropertyValues)}getValue(i){return eo(this._values[i].value.value)}setValue(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nD(this._values[i].property)),this._values[i].value=new nP(this._values[i].property,null===r?void 0:eo(r))}getTransition(i){return eo(this._values[i].transition)}setTransition(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nD(this._values[i].property)),this._values[i].transition=eo(r)||void 0}serialize(){const i={};for(const r of Object.keys(this._values)){const n=this.getValue(r);void 0!==n&&(i[r]=n);const o=this.getTransition(r);void 0!==o&&(i[`${r}-transition`]=o)}return i}transitioned(i,r){const n=new nR(this._properties);for(const o of Object.keys(this._values))n._values[o]=this._values[o].transitioned(i,r._values[o]);return n}untransitioned(){const i=new nR(this._properties);for(const r of Object.keys(this._values))i._values[r]=this._values[r].untransitioned();return i}}class nB{constructor(i,r,n,o,s){const a=o.delay||0,l=o.duration||0;s=s||0,this.property=i,this.value=r,this.begin=s+a,this.end=this.begin+l,i.specification.transition&&(o.delay||o.duration)&&(this.prior=n)}possiblyEvaluate(i,r,n){const o=i.now||0,s=this.value.possiblyEvaluate(i,r,n),a=this.prior;if(a){if(o>this.end||this.value.isDataDriven())return this.prior=null,s;if(oo.zoomHistory.lastIntegerZoom?{from:i,to:r,other:n}:{from:n,to:r,other:i}}interpolate(i){return i}}class nG{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){if(void 0!==i.value){if("constant"===i.expression.kind){const s=i.expression.evaluate(r,null,{},n,o);return this._calculate(s,s,s,r)}return this._calculate(i.expression.evaluate(new nk(Math.floor(r.zoom-1),r)),i.expression.evaluate(new nk(Math.floor(r.zoom),r)),i.expression.evaluate(new nk(Math.floor(r.zoom+1),r)),r)}}_calculate(i,r,n,o){return o.zoom>o.zoomHistory.lastIntegerZoom?{from:i,to:r}:{from:n,to:r}}interpolate(i){return i}}class nZ{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){return!!i.expression.evaluate(r,null,{},n,o)}interpolate(){return!1}}class n${constructor(i){for(const r in this.properties=i,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],i){const n=i[r];n.specification.overridable&&this.overridableProperties.push(r);const o=this.defaultPropertyValues[r]=new nP(n,void 0),s=this.defaultTransitionablePropertyValues[r]=new nD(n);this.defaultTransitioningPropertyValues[r]=s.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=o.possiblyEvaluate({})}}}function nq(i,r){return 256*(i=Z(Math.floor(i),0,255))+Z(Math.floor(r),0,255)}r$("DataDrivenProperty",nN),r$("DataConstantProperty",nV),r$("CrossFadedDataDrivenProperty",nj),r$("CrossFadedProperty",nG),r$("ColorRampProperty",nZ);const nX={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class nW{constructor(i,r){this._structArray=i,this._pos1=r*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class nH{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(i,r){return i._trim(),r&&(i.isTransferred=!0,r.push(i.arrayBuffer)),{length:i.length,arrayBuffer:i.arrayBuffer}}static deserialize(i){const r=Object.create(this.prototype);return r.arrayBuffer=i.arrayBuffer,r.length=i.length,r.capacity=i.arrayBuffer.byteLength/r.bytesPerElement,r._refreshViews(),r}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(i){this.reserve(i),this.length=i}reserve(i){if(i>this.capacity){this.capacity=Math.max(i,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function nK(i,r=1){let n=0,o=0;return{members:i.map(i=>{const s=nX[i.type].BYTES_PER_ELEMENT,a=n=nY(n,Math.max(r,s)),l=i.components||1;return o=Math.max(o,s),n+=s*l,{name:i.name,type:i.type,components:l,offset:a}}),size:nY(n,Math.max(o,r)),alignment:r}}function nY(i,r){return Math.ceil(i/r)*r}class nJ extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.int16[o+0]=r,this.int16[o+1]=n,i}}nJ.prototype.bytesPerElement=4,r$("StructArrayLayout2i4",nJ);class nQ extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=4*i;return this.int16[a+0]=r,this.int16[a+1]=n,this.int16[a+2]=o,this.int16[a+3]=s,i}}nQ.prototype.bytesPerElement=8,r$("StructArrayLayout4i8",nQ);class n0 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=6*i,u=12*i,d=3*i;return this.int16[h+0]=r,this.int16[h+1]=n,this.uint8[u+4]=o,this.uint8[u+5]=s,this.uint8[u+6]=a,this.uint8[u+7]=l,this.float32[d+2]=c,i}}n0.prototype.bytesPerElement=12,r$("StructArrayLayout2i4ub1f12",n0);class n1 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.float32[s+0]=r,this.float32[s+1]=n,this.float32[s+2]=o,i}}n1.prototype.bytesPerElement=12,r$("StructArrayLayout3f12",n1);class n2 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u){const d=this.length;return this.resize(d+1),this.emplace(d,i,r,n,o,s,a,l,c,h,u)}emplace(i,r,n,o,s,a,l,c,h,u,d){const p=10*i;return this.uint16[p+0]=r,this.uint16[p+1]=n,this.uint16[p+2]=o,this.uint16[p+3]=s,this.uint16[p+4]=a,this.uint16[p+5]=l,this.uint16[p+6]=c,this.uint16[p+7]=h,this.uint16[p+8]=u,this.uint16[p+9]=d,i}}n2.prototype.bytesPerElement=20,r$("StructArrayLayout10ui20",n2);class n3 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c){const h=this.length;return this.resize(h+1),this.emplace(h,i,r,n,o,s,a,l,c)}emplace(i,r,n,o,s,a,l,c,h){const u=8*i;return this.uint16[u+0]=r,this.uint16[u+1]=n,this.uint16[u+2]=o,this.uint16[u+3]=s,this.uint16[u+4]=a,this.uint16[u+5]=l,this.uint16[u+6]=c,this.uint16[u+7]=h,i}}n3.prototype.bytesPerElement=16,r$("StructArrayLayout8ui16",n3);class n5 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){const y=this.length;return this.resize(y+1),this.emplace(y,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y){const x=16*i;return this.int16[x+0]=r,this.int16[x+1]=n,this.int16[x+2]=o,this.int16[x+3]=s,this.uint16[x+4]=a,this.uint16[x+5]=l,this.uint16[x+6]=c,this.uint16[x+7]=h,this.int16[x+8]=u,this.int16[x+9]=d,this.int16[x+10]=p,this.int16[x+11]=f,this.int16[x+12]=m,this.int16[x+13]=_,this.int16[x+14]=g,this.int16[x+15]=y,i}}n5.prototype.bytesPerElement=32,r$("StructArrayLayout4i4ui4i4i32",n5);class n4 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.uint32[1*i+0]=r,i}}n4.prototype.bytesPerElement=4,r$("StructArrayLayout1ul4",n4);class n6 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f){const m=this.length;return this.resize(m+1),this.emplace(m,i,r,n,o,s,a,l,c,h,u,d,p,f)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m){const _=20*i,g=10*i;return this.int16[_+0]=r,this.int16[_+1]=n,this.int16[_+2]=o,this.int16[_+3]=s,this.int16[_+4]=a,this.float32[g+3]=l,this.float32[g+4]=c,this.float32[g+5]=h,this.float32[g+6]=u,this.int16[_+14]=d,this.uint32[g+8]=p,this.uint16[_+18]=f,this.uint16[_+19]=m,i}}n6.prototype.bytesPerElement=40,r$("StructArrayLayout5i4f1i1ul2ui40",n6);class n8 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=8*i;return this.int16[h+0]=r,this.int16[h+1]=n,this.int16[h+2]=o,this.int16[h+4]=s,this.int16[h+5]=a,this.int16[h+6]=l,this.int16[h+7]=c,i}}n8.prototype.bytesPerElement=16,r$("StructArrayLayout3i2i2i16",n8);class n9 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s){const a=this.length;return this.resize(a+1),this.emplace(a,i,r,n,o,s)}emplace(i,r,n,o,s,a){const l=4*i,c=8*i;return this.float32[l+0]=r,this.float32[l+1]=n,this.float32[l+2]=o,this.int16[c+6]=s,this.int16[c+7]=a,i}}n9.prototype.bytesPerElement=16,r$("StructArrayLayout2f1f2i16",n9);class n7 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=12*i,l=3*i;return this.uint8[a+0]=r,this.uint8[a+1]=n,this.float32[l+1]=o,this.float32[l+2]=s,i}}n7.prototype.bytesPerElement=12,r$("StructArrayLayout2ub2f12",n7);class oe extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.uint16[s+0]=r,this.uint16[s+1]=n,this.uint16[s+2]=o,i}}oe.prototype.bytesPerElement=6,r$("StructArrayLayout3ui6",oe);class ot extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w){const T=this.length;return this.resize(T+1),this.emplace(T,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T){const E=30*i,S=15*i,I=60*i;return this.int16[E+0]=r,this.int16[E+1]=n,this.int16[E+2]=o,this.float32[S+2]=s,this.float32[S+3]=a,this.uint16[E+8]=l,this.uint16[E+9]=c,this.uint32[S+5]=h,this.uint32[S+6]=u,this.uint32[S+7]=d,this.uint16[E+16]=p,this.uint16[E+17]=f,this.uint16[E+18]=m,this.float32[S+10]=_,this.float32[S+11]=g,this.uint8[I+48]=y,this.uint8[I+49]=x,this.uint8[I+50]=v,this.uint32[S+13]=b,this.int16[E+28]=w,this.uint8[I+58]=T,i}}ot.prototype.bytesPerElement=60,r$("StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60",ot);class oi extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k){const P=this.length;return this.resize(P+1),this.emplace(P,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k,P){const D=38*i,L=19*i;return this.int16[D+0]=r,this.int16[D+1]=n,this.int16[D+2]=o,this.float32[L+2]=s,this.float32[L+3]=a,this.int16[D+8]=l,this.int16[D+9]=c,this.int16[D+10]=h,this.int16[D+11]=u,this.int16[D+12]=d,this.int16[D+13]=p,this.uint16[D+14]=f,this.uint16[D+15]=m,this.uint16[D+16]=_,this.uint16[D+17]=g,this.uint16[D+18]=y,this.uint16[D+19]=x,this.uint16[D+20]=v,this.uint16[D+21]=b,this.uint16[D+22]=w,this.uint16[D+23]=T,this.uint16[D+24]=E,this.uint16[D+25]=S,this.uint16[D+26]=I,this.uint16[D+27]=M,this.uint16[D+28]=A,this.uint32[L+15]=C,this.float32[L+16]=z,this.float32[L+17]=k,this.float32[L+18]=P,i}}oi.prototype.bytesPerElement=76,r$("StructArrayLayout3i2f6i15ui1ul3f76",oi);class or extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.float32[1*i+0]=r,i}}or.prototype.bytesPerElement=4,r$("StructArrayLayout1f4",or);class on extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.int16[s+0]=r,this.int16[s+1]=n,this.int16[s+2]=o,i}}on.prototype.bytesPerElement=6,r$("StructArrayLayout3i6",on);class oo extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=7*i;return this.float32[h+0]=r,this.float32[h+1]=n,this.float32[h+2]=o,this.float32[h+3]=s,this.float32[h+4]=a,this.float32[h+5]=l,this.float32[h+6]=c,i}}oo.prototype.bytesPerElement=28,r$("StructArrayLayout7f28",oo);class os extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=6*i;return this.uint32[3*i+0]=r,this.uint16[a+2]=n,this.uint16[a+3]=o,this.uint16[a+4]=s,i}}os.prototype.bytesPerElement=12,r$("StructArrayLayout1ul3ui12",os);class oa extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.uint16[o+0]=r,this.uint16[o+1]=n,i}}oa.prototype.bytesPerElement=4,r$("StructArrayLayout2ui4",oa);class ol extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.uint16[1*i+0]=r,i}}ol.prototype.bytesPerElement=2,r$("StructArrayLayout1ui2",ol);class oc extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.float32[o+0]=r,this.float32[o+1]=n,i}}oc.prototype.bytesPerElement=8,r$("StructArrayLayout2f8",oc);class oh extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=4*i;return this.float32[a+0]=r,this.float32[a+1]=n,this.float32[a+2]=o,this.float32[a+3]=s,i}}oh.prototype.bytesPerElement=16,r$("StructArrayLayout4f16",oh);class ou extends nW{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}ou.prototype.size=40;class od extends n6{get(i){return new ou(this,i)}}r$("CollisionBoxArray",od);class op extends nW{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(i){this._structArray.uint8[this._pos1+49]=i}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(i){this._structArray.uint8[this._pos1+50]=i}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(i){this._structArray.uint32[this._pos4+13]=i}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(i){this._structArray.uint8[this._pos1+58]=i}}op.prototype.size=60;class of extends ot{get(i){return new op(this,i)}}r$("PlacedSymbolArray",of);class om extends nW{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(i){this._structArray.uint32[this._pos4+15]=i}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}om.prototype.size=76;class o_ extends oi{get(i){return new om(this,i)}}r$("SymbolInstanceArray",o_);class og extends or{getoffsetX(i){return this.float32[1*i+0]}}r$("GlyphOffsetArray",og);class oy extends on{getx(i){return this.int16[3*i+0]}gety(i){return this.int16[3*i+1]}gettileUnitDistanceFromAnchor(i){return this.int16[3*i+2]}}r$("SymbolLineVertexArray",oy);class ox extends nW{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}ox.prototype.size=12;class ov extends os{get(i){return new ox(this,i)}}r$("FeatureIndexArray",ov);class ob extends nW{get a_centroid_pos0(){return this._structArray.uint16[this._pos2+0]}get a_centroid_pos1(){return this._structArray.uint16[this._pos2+1]}}ob.prototype.size=4;class ow extends oa{get(i){return new ob(this,i)}}r$("FillExtrusionCentroidArray",ow);const oT=nK([{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"}]),oE=nK([{name:"a_dash_to",components:4,type:"Uint16"},{name:"a_dash_from",components:4,type:"Uint16"}]);var oS=tM(function(i){i.exports=function(i,r){var n,o,s,a,l,c;for(o=i.length-(n=3&i.length),s=r,c=0;c>>16)*3432918353&65535)<<16)&4294967295)<<15|l>>>17))*461845907+(((l>>>16)*461845907&65535)<<16)&4294967295)<<13|s>>>19))+((5*(s>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,n){case 3:l^=(255&i.charCodeAt(c+2))<<16;case 2:l^=(255&i.charCodeAt(c+1))<<8;case 1:s^=l=(65535&(l=(l=(65535&(l^=255&i.charCodeAt(c)))*3432918353+(((l>>>16)*3432918353&65535)<<16)&4294967295)<<15|l>>>17))*461845907+(((l>>>16)*461845907&65535)<<16)&4294967295}return s^=i.length,s=2246822507*(65535&(s^=s>>>16))+((2246822507*(s>>>16)&65535)<<16)&4294967295,s=3266489909*(65535&(s^=s>>>13))+((3266489909*(s>>>16)&65535)<<16)&4294967295,(s^=s>>>16)>>>0}}),oI=tM(function(i){i.exports=function(i,r){for(var n,o=i.length,s=r^o,a=0;o>=4;)n=1540483477*(65535&(n=255&i.charCodeAt(a)|(255&i.charCodeAt(++a))<<8|(255&i.charCodeAt(++a))<<16|(255&i.charCodeAt(++a))<<24))+((1540483477*(n>>>16)&65535)<<16),s=1540483477*(65535&s)+((1540483477*(s>>>16)&65535)<<16)^(n=1540483477*(65535&(n^=n>>>24))+((1540483477*(n>>>16)&65535)<<16)),o-=4,++a;switch(o){case 3:s^=(255&i.charCodeAt(a+2))<<16;case 2:s^=(255&i.charCodeAt(a+1))<<8;case 1:s=1540483477*(65535&(s^=255&i.charCodeAt(a)))+((1540483477*(s>>>16)&65535)<<16)}return s=1540483477*(65535&(s^=s>>>13))+((1540483477*(s>>>16)&65535)<<16),(s^=s>>>15)>>>0}}),oM=oS;oM.murmur3=oS,oM.murmur2=oI;class oA{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(i,r,n,o){this.ids.push(oC(i)),this.positions.push(r,n,o)}getPositions(i){const r=oC(i);let n=0,o=this.ids.length-1;for(;n>1;this.ids[s]>=r?o=s:n=s+1}const a=[];for(;this.ids[n]===r;)a.push({index:this.positions[3*n],start:this.positions[3*n+1],end:this.positions[3*n+2]}),n++;return a}static serialize(i,r){const n=new Float64Array(i.ids),o=new Uint32Array(i.positions);return function i(r,n,o,s){for(;o>1];let l=o-1,c=s+1;for(;;){do l++;while(r[l]a)if(l>=c)break;oz(r,l,c),oz(n,3*l,3*c),oz(n,3*l+1,3*c+1),oz(n,3*l+2,3*c+2)}c-o`u_${i}`),this.type=n}setUniform(i,r,n){i.set(n.constantOr(this.value))}getBinding(i,r,n){return"color"===this.type?new oL(i,r):new oP(i,r)}}class oV{constructor(i,r){this.uniformNames=r.map(i=>`u_${i}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(i,r){this.pixelRatioFrom=r.pixelRatio,this.pixelRatioTo=i.pixelRatio,this.patternFrom=r.tl.concat(r.br),this.patternTo=i.tl.concat(i.br)}setUniform(i,r,n,o){const s="u_pattern_to"===o||"u_dash_to"===o?this.patternTo:"u_pattern_from"===o||"u_dash_from"===o?this.patternFrom:"u_pixel_ratio_to"===o?this.pixelRatioTo:"u_pixel_ratio_from"===o?this.pixelRatioFrom:null;s&&i.set(s)}getBinding(i,r,n){return"u_pattern_from"===n||"u_pattern_to"===n||"u_dash_from"===n||"u_dash_to"===n?new oD(i,r):new oP(i,r)}}class oN{constructor(i,r,n,o){this.expression=i,this.type=n,this.maxValue=0,this.paintVertexAttributes=r.map(i=>({name:`a_${i}`,type:"Float32",components:"color"===n?2:1,offset:0})),this.paintVertexArray=new o}populatePaintArray(i,r,n,o,s,a){const l=this.paintVertexArray.length,c=this.expression.evaluate(new nk(0),r,{},s,o,a);this.paintVertexArray.resize(i),this._setPaintValue(l,i,c)}updatePaintArray(i,r,n,o,s){const a=this.expression.evaluate({zoom:0},n,o,void 0,s);this._setPaintValue(i,r,a)}_setPaintValue(i,r,n){if("color"===this.type){const o=oO(n);for(let s=i;s`u_${i}_t`),this.type=n,this.useIntegerZoom=o,this.zoom=s,this.maxValue=0,this.paintVertexAttributes=r.map(i=>({name:`a_${i}`,type:"Float32",components:"color"===n?4:2,offset:0})),this.paintVertexArray=new a}populatePaintArray(i,r,n,o,s,a){const l=this.expression.evaluate(new nk(this.zoom),r,{},s,o,a),c=this.expression.evaluate(new nk(this.zoom+1),r,{},s,o,a),h=this.paintVertexArray.length;this.paintVertexArray.resize(i),this._setPaintValue(h,i,l,c)}updatePaintArray(i,r,n,o,s){const a=this.expression.evaluate({zoom:this.zoom},n,o,void 0,s),l=this.expression.evaluate({zoom:this.zoom+1},n,o,void 0,s);this._setPaintValue(i,r,a,l)}_setPaintValue(i,r,n,o){if("color"===this.type){const s=oO(n),a=oO(o);for(let l=i;l!0){this.binders={},this._buffers=[];const o=[];for(const s in i.paint._values){var a,l;if(!n(s))continue;const c=i.paint.get(s);if(!(c instanceof nO&&iH(c.property.specification)))continue;const h=(a=s,l=i.type,oq[a]||[a.replace(`${l}-`,"").replace(/-/g,"_")]),u=c.value,d=c.property.specification.type,p=c.property.useIntegerZoom,f=c.property.specification["property-type"],m="cross-faded"===f||"cross-faded-data-driven"===f,_="line-dasharray"===String(s)&&"constant"!==i.layout.get("line-cap").value.kind;if("constant"!==u.kind||_){if("source"===u.kind||_||m){const g=oH(s,d,"source");this.binders[s]=m?new oG(u,h,d,p,r,g,i.id):new oN(u,h,d,g),o.push(`/a_${s}`)}else{const y=oH(s,d,"composite");this.binders[s]=new oj(u,h,d,p,r,y),o.push(`/z_${s}`)}}else this.binders[s]=m?new oV(u.value,h):new oU(u.value,h,d),o.push(`/u_${s}`)}this.cacheKey=o.sort().join("")}getMaxValue(i){const r=this.binders[i];return r instanceof oN||r instanceof oj?r.maxValue:0}populatePaintArrays(i,r,n,o,s,a){for(const l in this.binders){const c=this.binders[l];(c instanceof oN||c instanceof oj||c instanceof oG)&&c.populatePaintArray(i,r,n,o,s,a)}}setConstantPatternPositions(i,r){for(const n in this.binders){const o=this.binders[n];o instanceof oV&&o.setConstantPatternPositions(i,r)}}updatePaintArrays(i,r,n,o,s,a){let l=!1;for(const c in i){const h=r.getPositions(c);for(const u of h){const d=n.feature(u.index);for(const p in this.binders){const f=this.binders[p];if((f instanceof oN||f instanceof oj||f instanceof oG)&&!0===f.expression.isStateDependent){const m=o.paint.get(p);f.expression=m.value,f.updatePaintArray(u.start,u.end,d,i[c],s,a),l=!0}}}}return l}defines(){const i=[];for(const r in this.binders){const n=this.binders[r];(n instanceof oU||n instanceof oV)&&i.push(...n.uniformNames.map(i=>`#define HAS_UNIFORM_${i}`))}return i}getBinderAttributes(){const i=[];for(const r in this.binders){const n=this.binders[r];if(n instanceof oN||n instanceof oj||n instanceof oG)for(let o=0;o!0){for(const o of(this.programConfigurations={},i))this.programConfigurations[o.id]=new oZ(o,r,n);this.needsUpload=!1,this._featureMap=new oA,this._bufferOffset=0}populatePaintArrays(i,r,n,o,s,a,l){for(const c in this.programConfigurations)this.programConfigurations[c].populatePaintArrays(i,r,o,s,a,l);void 0!==r.id&&this._featureMap.add(r.id,n,this._bufferOffset,i),this._bufferOffset=i,this.needsUpload=!0}updatePaintArrays(i,r,n,o,s){for(const a of n)this.needsUpload=this.programConfigurations[a.id].updatePaintArrays(i,this._featureMap,r,a,o,s)||this.needsUpload}get(i){return this.programConfigurations[i]}upload(i){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(i);this.needsUpload=!1}}destroy(){for(const i in this.programConfigurations)this.programConfigurations[i].destroy()}}const oq={"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"line-dasharray":["dash_to","dash_from"]},oX={"line-pattern":{source:n2,composite:n2},"fill-pattern":{source:n2,composite:n2},"fill-extrusion-pattern":{source:n2,composite:n2},"line-dasharray":{source:n3,composite:n3}},oW={color:{source:oc,composite:oh},number:{source:or,composite:oc}};function oH(i,r,n){const o=oX[i];return o&&o[n]||oW[r][n]}r$("ConstantBinder",oU),r$("CrossFadedConstantBinder",oV),r$("SourceExpressionBinder",oN),r$("CrossFadedCompositeBinder",oG),r$("CompositeExpressionBinder",oj),r$("ProgramConfiguration",oZ,{omit:["_buffers"]}),r$("ProgramConfigurationSet",o$);const oK="-transition";class oY extends ti{constructor(i,r){if(super(),this.id=i.id,this.type=i.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,"custom"!==i.type&&(this.metadata=i.metadata,this.minzoom=i.minzoom,this.maxzoom=i.maxzoom,"background"!==i.type&&"sky"!==i.type&&(this.source=i.source,this.sourceLayer=i["source-layer"],this.filter=i.filter),r.layout&&(this._unevaluatedLayout=new nF(r.layout)),r.paint)){for(const n in this._transitionablePaint=new nL(r.paint),i.paint)this.setPaintProperty(n,i.paint[n],{validate:!1});for(const o in i.layout)this.setLayoutProperty(o,i.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new nU(r.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(i){return"visibility"===i?this.visibility:this._unevaluatedLayout.getValue(i)}setLayoutProperty(i,r,n={}){null!=r&&this._validate(rO,`layers.${this.id}.layout.${i}`,i,r,n)||("visibility"!==i?this._unevaluatedLayout.setValue(i,r):this.visibility=r)}getPaintProperty(i){return ei(i,oK)?this._transitionablePaint.getTransition(i.slice(0,-oK.length)):this._transitionablePaint.getValue(i)}setPaintProperty(i,r,n={}){if(null!=r&&this._validate(rF,`layers.${this.id}.paint.${i}`,i,r,n))return!1;if(ei(i,oK))return this._transitionablePaint.setTransition(i.slice(0,-oK.length),r||void 0),!1;{const o=this._transitionablePaint._values[i],s="cross-faded-data-driven"===o.property.specification["property-type"],a=o.value.isDataDriven(),l=o.value;this._transitionablePaint.setValue(i,r),this._handleSpecialPaintPropertyUpdate(i);const c=this._transitionablePaint._values[i].value;return c.isDataDriven()||a||s||this._handleOverridablePaintPropertyUpdate(i,l,c)}}_handleSpecialPaintPropertyUpdate(i){}getProgramIds(){return null}getProgramConfiguration(i){return null}_handleOverridablePaintPropertyUpdate(i,r,n){return!1}isHidden(i){return!!(this.minzoom&&i=this.maxzoom)||"none"===this.visibility}updateTransitions(i){this._transitioningPaint=this._transitionablePaint.transitioned(i,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(i,r){i.getCrossfadeParameters&&(this._crossfadeParameters=i.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(i,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(i,void 0,r)}serialize(){const i={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(i.layout=i.layout||{},i.layout.visibility=this.visibility),en(i,(i,r)=>!(void 0===i||"layout"===r&&!Object.keys(i).length||"paint"===r&&!Object.keys(i).length))}_validate(i,r,n,o,s={}){return(!s||!1!==s.validate)&&rU(this,i.call(rP,{key:r,layerType:this.type,objectKey:n,value:o,styleSpec:tr,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const i in this.paint._values){const r=this.paint.get(i);if(r instanceof nO&&iH(r.property.specification)&&("source"===r.value.kind||"composite"===r.value.kind)&&r.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=rh(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const oJ=nK([{name:"a_pos",components:2,type:"Int16"}],4),{members:oQ}=oJ;class o0{constructor(i=[]){this.segments=i}prepareSegment(i,r,n,o){let s=this.segments[this.segments.length-1];return i>o0.MAX_VERTEX_ARRAY_LENGTH&&ea(`Max vertices per segment is ${o0.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${i}`),(!s||s.vertexLength+i>o0.MAX_VERTEX_ARRAY_LENGTH||s.sortKey!==o)&&(s={vertexOffset:r.length,primitiveOffset:n.length,vertexLength:0,primitiveLength:0},void 0!==o&&(s.sortKey=o),this.segments.push(s)),s}get(){return this.segments}destroy(){for(const i of this.segments)for(const r in i.vaos)i.vaos[r].destroy()}static simpleSegment(i,r,n,o){return new o0([{vertexOffset:i,primitiveOffset:r,vertexLength:n,primitiveLength:o,vaos:{},sortKey:0}])}}o0.MAX_VERTEX_ARRAY_LENGTH=65535,r$("SegmentVector",o0);class o1{constructor(i,r){i&&(r?this.setSouthWest(i).setNorthEast(r):4===i.length?this.setSouthWest([i[0],i[1]]).setNorthEast([i[2],i[3]]):this.setSouthWest(i[0]).setNorthEast(i[1]))}setNorthEast(i){return this._ne=i instanceof o2?new o2(i.lng,i.lat):o2.convert(i),this}setSouthWest(i){return this._sw=i instanceof o2?new o2(i.lng,i.lat):o2.convert(i),this}extend(i){let r,n;const o=this._sw,s=this._ne;if(i instanceof o2)r=i,n=i;else{if(!(i instanceof o1))return Array.isArray(i)?4===i.length||i.every(Array.isArray)?this.extend(o1.convert(i)):this.extend(o2.convert(i)):this;if(r=i._sw,n=i._ne,!r||!n)return this}return o||s?(o.lng=Math.min(r.lng,o.lng),o.lat=Math.min(r.lat,o.lat),s.lng=Math.max(n.lng,s.lng),s.lat=Math.max(n.lat,s.lat)):(this._sw=new o2(r.lng,r.lat),this._ne=new o2(n.lng,n.lat)),this}getCenter(){return new o2((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new o2(this.getWest(),this.getNorth())}getSouthEast(){return new o2(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(i){const{lng:r,lat:n}=o2.convert(i);let o=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(o=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=n&&n<=this._ne.lat&&o}static convert(i){return!i||i instanceof o1?i:new o1(i)}}class o2{constructor(i,r){if(isNaN(i)||isNaN(r))throw Error(`Invalid LngLat object: (${i}, ${r})`);if(this.lng=+i,this.lat=+r,this.lat>90||this.lat<-90)throw Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new o2(q(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(i){const r=Math.PI/180,n=this.lat*r,o=i.lat*r,s=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((i.lng-this.lng)*r);return 6371008.8*Math.acos(Math.min(s,1))}toBounds(i=0){const r=360*i/40075017,n=r/Math.cos(Math.PI/180*this.lat);return new o1(new o2(this.lng-n,this.lat-r),new o2(this.lng+n,this.lat+r))}static convert(i){if(i instanceof o2)return i;if(Array.isArray(i)&&(2===i.length||3===i.length))return new o2(Number(i[0]),Number(i[1]));if(!Array.isArray(i)&&"object"==typeof i&&null!==i)return new o2(Number("lng"in i?i.lng:i.lon),Number(i.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const o3=2*Math.PI*6371008.8;function o5(i){return o3*Math.cos(i*Math.PI/180)}function o4(i){return(180+i)/360}function o6(i){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360}function o8(i){return 360*i-180}function o9(i){return 360/Math.PI*Math.atan(Math.exp((180-360*i)*Math.PI/180))-90}function o7(i,r){return i*o5(o9(r))}class se{constructor(i,r,n=0){this.x=+i,this.y=+r,this.z=+n}static fromLngLat(i,r=0){const n=o2.convert(i);return new se(o4(n.lng),o6(n.lat),r/o5(n.lat))}toLngLat(){return new o2(o8(this.x),o9(this.y))}toAltitude(){return o7(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/o3*(1/Math.cos(o9(this.y)*Math.PI/180))}}const st=-16383-1;function si(i,r,n){const o=i.loadGeometry(),s=i.extent,a=8192/s;if(r&&n&&n.projection.isReprojectedInTileSpace){const c=1<{const n=o8((r.x+i.x/s)/c),o=o9((r.y+i.y/s)/c),a=p.project(n,o);i.x=(a.x*h-u)*s,i.y=(a.y*h-d)*s};for(let m=0;m=d?(i(r,n,o,p,f,c,m,u,d),i(r,p,f,s,a,m,h,u,d)):r.push(h)}(c,o,s,u,d,a,h,r,1):c.push(h),o=u,s=d,a=h}return c}(o[m],f,1);else{const _=[];for(const g of o[m])g.x<0||g.x>=s||g.y<0||g.y>=s||(f(g),_.push(g));o[m]=_}}for(const y of o)for(const x of y)!function(i,r){const n=Math.round(i.x*r),o=Math.round(i.y*r);i.x=Z(n,st,16383),i.y=Z(o,st,16383),(ni.x+1||oi.y+1)&&ea("Geometry exceeds allowed extent, reduce your vector tile buffer size")}(x,a);return o}function sr(i,r){return{type:i.type,id:i.id,properties:i.properties,geometry:r?si(i):[]}}function sn(i,r,n,o,s){i.emplaceBack(2*r+(o+1)/2,2*n+(s+1)/2)}class so{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.layoutVertexArray=new nJ,this.indexArray=new oe,this.segments=new o0,this.programConfigurations=new o$(i.layers,i.zoom),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){const s=this.layers[0],a=[];let l=null;for(const{feature:c,id:h,index:u,sourceLayerIndex:d}of("circle"===s.type&&(l=s.layout.get("circle-sort-key")),i)){const p=this.layers[0]._featureFilter.needGeometry,f=sr(c,p);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),f,n))continue;const m=l?l.evaluate(f,{},n):void 0,_={id:h,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:p?f.geometry:si(c,n,o),patterns:{},sortKey:m};a.push(_)}for(const g of(l&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:y,index:x,sourceLayerIndex:v}=g,b=i[x].feature;this.addFeature(g,y,x,r.availableImages,n),r.featureIndex.insert(b,y,x,v,this.index)}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,oQ),this.indexBuffer=i.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(i,r,n,o,s){for(const a of r)for(const l of a){const c=l.x,h=l.y;if(c<0||c>=8192||h<0||h>=8192)continue;const u=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,i.sortKey),d=u.vertexLength;sn(this.layoutVertexArray,c,h,-1,-1),sn(this.layoutVertexArray,c,h,1,-1),sn(this.layoutVertexArray,c,h,1,1),sn(this.layoutVertexArray,c,h,-1,1),this.indexArray.emplaceBack(d,d+1,d+2),this.indexArray.emplaceBack(d,d+3,d+2),u.vertexLength+=4,u.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,{},o,s)}}function ss(i,r){for(let n=0;n1?n:n.sub(r)._mult(s)._add(r))}function su(i,r){let n,o,s,a=!1;for(let l=0;lr.y!=s.y>r.y&&r.x<(s.x-o.x)*(r.y-o.y)/(s.y-o.y)+o.x&&(a=!a)}return a}function sd(i,r){let n=!1;for(let o=0,s=i.length-1;or.y!=l.y>r.y&&r.x<(l.x-a.x)*(r.y-a.y)/(l.y-a.y)+a.x&&(n=!n)}return n}function sp(i,r,n,o,s){for(const a of i)if(r<=a.x&&n<=a.y&&o>=a.x&&s>=a.y)return!0;const c=[new l(r,n),new l(r,s),new l(o,s),new l(o,n)];if(i.length>2){for(const h of c)if(sd(i,h))return!0}for(let u=0;us.x&&r.x>s.x||i.ys.y&&r.y>s.y)return!1;const a=el(i,r,n[0]);return a!==el(i,r,n[1])||a!==el(i,r,n[2])||a!==el(i,r,n[3])}(i[u],i[u+1],c))return!0;return!1}function sf(i,r,n){const o=r.paint.get(i).value;return"constant"===o.kind?o.value:n.programConfigurations.get(r.id).getMaxValue(i)}function sm(i){return Math.sqrt(i[0]*i[0]+i[1]*i[1])}function s_(i,r,n,o,s){if(!r[0]&&!r[1])return i;const a=l.convert(r)._mult(s);"viewport"===n&&a._rotate(-o);const c=[];for(let h=0;h{var a,l;const c=D([],n,i),h=1/c[3]/r*s;return a=c,l=[h,h,o?1/c[3]:h,h],a[0]=c[0]*l[0],a[1]=c[1]*l[1],a[2]=c[2]*l[2],a[3]=c[3]*l[3],a}),l=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(i=>{const r=A([],z([],E([],a[i[0]],a[i[1]]),E([],a[i[2]],a[i[1]]))),n=-C(r,a[i[1]]);return r.concat(n)});return new sv(a,l)}}class sb{constructor(i,r){this.min=i,this.max=r,this.center=I([],T([],this.min,this.max),.5)}quadrant(i){const r=[i%2==0,i<2],n=v(this.min),o=v(this.max);for(let s=0;s=0;if(0===a)return 0;a!==r.length&&(n=!1)}if(n)return 2;for(let c=0;c<3;c++){let h=Number.MAX_VALUE,u=-Number.MAX_VALUE;for(let d=0;dthis.max[c]-this.min[c])return 0}return 1}}function sw(i,r,n,o,s,a,c,h,u){if(a&&i.queryGeometry.isAboveHorizon)return!1;for(const d of(a&&(u*=i.pixelToTileUnitsFactor),r))for(const p of d){var f;const m=p.add(h),_=s&&n.elevation?n.elevation.exaggeration()*s.getElevationAt(m.x,m.y,!0):0,g=a?m:function(i,r,n){const o=D([],[i.x,i.y,r,1],n);return new l(o[0]/o[3],o[1]/o[3])}(m,_,o),y=a?i.tilespaceRays.map(i=>(function(i,r){const n=x();return sT[2]=r,i.intersectsPlane(sT,sE,n),new l(n[0],n[1])})(i,_)):i.queryGeometry.screenGeometry,v=D([],[p.x,p.y,_,1],o);if(!c&&a?u*=v[3]/n.cameraToCenterDistance:c&&!a&&(u*=n.cameraToCenterDistance/v[3]),f=u,sd(y,g)||sc(g,y,f))return!0}return!1}const sT=w(0,0,0),sE=w(0,0,1);class sS extends so{}function sI(i,{width:r,height:n},o,s){if(s){if(s instanceof Uint8ClampedArray)s=new Uint8Array(s.buffer);else if(s.length!==r*n*o)throw RangeError("mismatched image size")}else s=new Uint8Array(r*n*o);return i.width=r,i.height=n,i.data=s,i}function sM(i,{width:r,height:n},o){if(r===i.width&&n===i.height)return;const s=sI({},{width:r,height:n},o);sA(i,s,{x:0,y:0},{x:0,y:0},{width:Math.min(i.width,r),height:Math.min(i.height,n)},o),i.width=r,i.height=n,i.data=s.data}function sA(i,r,n,o,s,a){if(0===s.width||0===s.height)return r;if(s.width>i.width||s.height>i.height||n.x>i.width-s.width||n.y>i.height-s.height)throw RangeError("out of range source coordinates for image copy");if(s.width>r.width||s.height>r.height||o.x>r.width-s.width||o.y>r.height-s.height)throw RangeError("out of range destination coordinates for image copy");const l=i.data,c=r.data;for(let h=0;h{r[i.evaluationKey]=a;const l=i.expression.evaluate(r);s.data[n+o+0]=Math.floor(255*l.r/l.a),s.data[n+o+1]=Math.floor(255*l.g/l.a),s.data[n+o+2]=Math.floor(255*l.b/l.a),s.data[n+o+3]=Math.floor(255*l.a)};if(i.clips)for(let l=0,c=0;l=a.next.y&&a.next.y!==a.y){var u=a.x+(c-a.y)*(a.next.x-a.x)/(a.next.y-a.y);if(u<=l&&u>h){if(h=u,u===l){if(c===a.y)return a;if(c===a.next.y)return a.next}s=a.x=a.x&&a.x>=f&&l!==a.x&&sj(cs.x||a.x===s.x&&(n=s,o=a,0>sG(n.prev,n,o.prev)&&0>sG(o.next,n,n.next))))&&(s=a,_=d)),a=a.next;while(a!==p)return s}(i,r);if(!n)return r;var o=sH(n,i),s=sU(n,n.next);return sU(o,o.next),r===n?s:r}(c[s],n),n.next);return n}(i,r,f,n)),i.length>80*n){o=a=i[0],s=l=i[1];for(var _=n;_a&&(a=c),h>l&&(l=h);u=0!==(u=Math.max(a-o,l-s))?1/u:0}return function i(r,n,o,s,a,l,c){if(r){!c&&l&&function(i,r,n,o){var s=i;do null===s.z&&(s.z=sN(s.x,s.y,r,n,o)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==i)s.prevZ.nextZ=null,s.prevZ=null,function(i){var r,n,o,s,a,l,c,h,u=1;do{for(n=i,i=null,a=null,l=0;n;){for(l++,o=n,c=0,r=0;r0||h>0&&o;)0!==c&&(0===h||!o||n.z<=o.z)?(s=n,n=n.nextZ,c--):(s=o,o=o.nextZ,h--),a?a.nextZ=s:i=s,s.prevZ=a,a=s;n=o}a.nextZ=null,u*=2}while(l>1)}(s)}(r,s,a,l);for(var h,u,d=r;r.prev!==r.next;)if(h=r.prev,u=r.next,l?function(i,r,n,o){var s=i.prev,a=i.next;if(sG(s,i,a)>=0)return!1;for(var l=s.x>i.x?s.x>a.x?s.x:a.x:i.x>a.x?i.x:a.x,c=s.y>i.y?s.y>a.y?s.y:a.y:i.y>a.y?i.y:a.y,h=sN(s.x=h&&p&&p.z<=u;){if(d!==i.prev&&d!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sG(d.prev,d,d.next)>=0||(d=d.prevZ,p!==i.prev&&p!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sG(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;d&&d.z>=h;){if(d!==i.prev&&d!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sG(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;p&&p.z<=u;){if(p!==i.prev&&p!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sG(p.prev,p,p.next)>=0)return!1;p=p.nextZ}return!0}(r,s,a,l):function(i){var r=i.prev,n=i.next;if(sG(r,i,n)>=0)return!1;for(var o=i.next.next;o!==i.prev;){if(sj(r.x,r.y,i.x,i.y,n.x,n.y,o.x,o.y)&&sG(o.prev,o,o.next)>=0)return!1;o=o.next}return!0}(r))n.push(h.i/o),n.push(r.i/o),n.push(u.i/o),sY(r),r=u.next,d=u.next;else if((r=u)===d){c?1===c?i(r=function(i,r,n){var o=i;do{var s=o.prev,a=o.next.next;!sZ(s,a)&&s$(s,o,o.next,a)&&sW(s,a)&&sW(a,s)&&(r.push(s.i/n),r.push(o.i/n),r.push(a.i/n),sY(o),sY(o.next),o=i=a),o=o.next}while(o!==i)return sU(o)}(sU(r),n,o),n,o,s,a,l,2):2===c&&function(r,n,o,s,a,l){var c=r;do{for(var h,u,d=c.next.next;d!==c.prev;){if(c.i!==d.i&&(h=c,u=d,h.next.i!==u.i&&h.prev.i!==u.i&&!function(i,r){var n=i;do{if(n.i!==i.i&&n.next.i!==i.i&&n.i!==r.i&&n.next.i!==r.i&&s$(n,n.next,i,r))return!0;n=n.next}while(n!==i)return!1}(h,u)&&(sW(h,u)&&sW(u,h)&&function(i,r){var n=i,o=!1,s=(i.x+r.x)/2,a=(i.y+r.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&s<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(o=!o),n=n.next;while(n!==i)return o}(h,u)&&(sG(h.prev,h,u.prev)||sG(h,u.prev,u))||sZ(h,u)&&sG(h.prev,h,h.next)>0&&sG(u.prev,u,u.next)>0))){var p=sH(c,d);return c=sU(c,c.next),p=sU(p,p.next),i(c,n,o,s,a,l),void i(p,n,o,s,a,l)}d=d.next}c=c.next}while(c!==r)}(r,n,o,s,a,l):i(sU(r),n,o,s,a,l,1);break}}}(f,m,n,o,s,u),m}function sO(i,r,n,o,s){var a,l;if(s===sQ(i,r,n,o)>0)for(a=r;a=r;a-=o)l=sK(a,i[a],i[a+1],l);return l&&sZ(l,l.next)&&(sY(l),l=l.next),l}function sU(i,r){if(!i)return i;r||(r=i);var n,o=i;do if(n=!1,o.steiner||!sZ(o,o.next)&&0!==sG(o.prev,o,o.next))o=o.next;else{if(sY(o),(o=r=o.prev)===o.next)break;n=!0}while(n||o!==r)return r}function sV(i,r){return i.x-r.x}function sN(i,r,n,o,s){return(i=1431655765&((i=858993459&((i=252645135&((i=16711935&((i=32767*(i-n)*s)|i<<8))|i<<4))|i<<2))|i<<1))|(r=1431655765&((r=858993459&((r=252645135&((r=16711935&((r=32767*(r-o)*s)|r<<8))|r<<4))|r<<2))|r<<1))<<1}function sj(i,r,n,o,s,a,l,c){return(s-l)*(r-c)-(i-l)*(a-c)>=0&&(i-l)*(o-c)-(n-l)*(r-c)>=0&&(n-l)*(a-c)-(s-l)*(o-c)>=0}function sG(i,r,n){return(r.y-i.y)*(n.x-r.x)-(r.x-i.x)*(n.y-r.y)}function sZ(i,r){return i.x===r.x&&i.y===r.y}function s$(i,r,n,o){var s=sX(sG(i,r,n)),a=sX(sG(i,r,o)),l=sX(sG(n,o,i)),c=sX(sG(n,o,r));return s!==a&&l!==c||!(0!==s||!sq(i,n,r))||!(0!==a||!sq(i,o,r))||!(0!==l||!sq(n,i,o))||!(0!==c||!sq(n,r,o))}function sq(i,r,n){return r.x<=Math.max(i.x,n.x)&&r.x>=Math.min(i.x,n.x)&&r.y<=Math.max(i.y,n.y)&&r.y>=Math.min(i.y,n.y)}function sX(i){return i>0?1:i<0?-1:0}function sW(i,r){return 0>sG(i.prev,i,i.next)?sG(i,r,i.next)>=0&&sG(i,i.prev,r)>=0:0>sG(i,r,i.prev)||0>sG(i,i.next,r)}function sH(i,r){var n=new sJ(i.i,i.x,i.y),o=new sJ(r.i,r.x,r.y),s=i.next,a=r.prev;return i.next=r,r.prev=i,n.next=s,s.prev=n,o.next=n,n.prev=o,a.next=o,o.prev=a,o}function sK(i,r,n,o){var s=new sJ(i,r,n);return o?(s.next=o.next,s.prev=o,o.next.prev=s,o.next=s):(s.prev=s,s.next=s),s}function sY(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function sJ(i,r,n){this.i=i,this.x=r,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function sQ(i,r,n,o){for(var s=0,a=r,l=n-o;ar?1:0}function s2(i,r){let n,o;const s=i.length;if(s<=1)return[i];const a=[];for(let l=0;l1)for(let h=0;ho;){if(s-o>600){var l=s-o+1,c=n-o+1,h=Math.log(l),u=.5*Math.exp(2*h/3),d=.5*Math.sqrt(h*u*(l-u)/l)*(c-l/2<0?-1:1);i(r,n,Math.max(o,Math.floor(n-c*u/l+d)),Math.min(s,Math.floor(n+(l-c)*u/l+d)),a)}var p=r[n],f=o,m=s;for(s0(r,o,n),a(r[s],p)>0&&s0(r,o,s);fa(r[f],p);)f++;for(;a(r[m],p)>0;)m--}0===a(r[o],p)?s0(r,o,m):s0(r,++m,s),m<=n&&(o=m+1),n<=m&&(s=m-1)}}(u,r,1,d||u.length-1,s3||s1),a[h]=a[h].slice(0,r))}return a}function s3(i,r){return r.area-i.area}function s5(i,r,n){const o=n.patternDependencies;let s=!1;for(const a of r){const l=a.paint.get(`${i}-pattern`);l.isConstant()||(s=!0);const c=l.constantOr(null);c&&(s=!0,o[c.to]=!0,o[c.from]=!0)}return s}function s4(i,r,n,o,s){const a=s.patternDependencies;for(const l of r){const c=l.paint.get(`${i}-pattern`).value;if("constant"!==c.kind){let h=c.evaluate({zoom:o-1},n,{},s.availableImages),u=c.evaluate({zoom:o},n,{},s.availableImages),d=c.evaluate({zoom:o+1},n,{},s.availableImages);h=h&&h.name?h.name:h,u=u&&u.name?u.name:u,d=d&&d.name?d.name:d,a[h]=!0,a[u]=!0,a[d]=!0,n.patterns[l.id]={min:h,mid:u,max:d}}}return n}sF.deviation=function(i,r,n,o){var s=r&&r.length,a=Math.abs(sQ(i,0,s?r[0]*n:i.length,n));if(s)for(var l=0,c=r.length;l0&&n.holes.push(o+=i[s-1].length)}return n},sR.default=sF;class s6{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new nJ,this.indexArray=new oe,this.indexArray2=new oa,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.segments2=new o0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=s5("fill",this.layers,r);const s=this.layers[0].layout.get("fill-sort-key"),a=[];for(const{feature:l,id:c,index:h,sourceLayerIndex:u}of i){const d=this.layers[0]._featureFilter.needGeometry,p=sr(l,d);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),p,n))continue;const f=s?s.evaluate(p,{},n,r.availableImages):void 0,m={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:d?p.geometry:si(l,n,o),patterns:{},sortKey:f};a.push(m)}for(const _ of(s&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:g,index:y,sourceLayerIndex:x}=_;if(this.hasPattern){const v=s4("fill",this.layers,_,this.zoom,r);this.patternFeatures.push(v)}else this.addFeature(_,g,y,n,{},r.availableImages);r.featureIndex.insert(i[y].feature,g,y,x,this.index)}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const s of this.patternFeatures)this.addFeature(s,s.geometry,s.index,r,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,sB),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.indexBuffer2=i.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(i,r,n,o,s,a=[]){for(const l of s2(r,500)){let c=0;for(const h of l)c+=h.length;const u=this.segments.prepareSegment(c,this.layoutVertexArray,this.indexArray),d=u.vertexLength,p=[],f=[];for(const m of l){if(0===m.length)continue;m!==l[0]&&f.push(p.length/2);const _=this.segments2.prepareSegment(m.length,this.layoutVertexArray,this.indexArray2),g=_.vertexLength;this.layoutVertexArray.emplaceBack(m[0].x,m[0].y),this.indexArray2.emplaceBack(g+m.length-1,g),p.push(m[0].x),p.push(m[0].y);for(let y=1;y>3;r=1===o?i.readString():2===o?i.readFloat():3===o?i.readDouble():4===o?i.readVarint64():5===o?i.readVarint():6===o?i.readSVarint():7===o?i.readBoolean():null}return r}(n))}function as(i,r,n){if(3===i){var o=new an(n,n.readVarint()+n.pos);o.length&&(r[o.name]=o)}}ai.types=["Unknown","Point","LineString","Polygon"],ai.prototype.loadGeometry=function(){var i=this._pbf;i.pos=this._geometry;for(var r,n=i.readVarint()+i.pos,o=1,s=0,a=0,c=0,h=[];i.pos>3}if(s--,1===o||2===o)a+=i.readSVarint(),c+=i.readSVarint(),1===o&&(r&&h.push(r),r=[]),r.push(new l(a,c));else{if(7!==o)throw Error("unknown command "+o);r&&r.push(r[0].clone())}}return r&&h.push(r),h},ai.prototype.bbox=function(){var i=this._pbf;i.pos=this._geometry;for(var r=i.readVarint()+i.pos,n=1,o=0,s=0,a=0,l=1/0,c=-1/0,h=1/0,u=-1/0;i.pos>3}if(o--,1===n||2===n)(s+=i.readSVarint())c&&(c=s),(a+=i.readSVarint())u&&(u=a);else if(7!==n)throw Error("unknown command "+n)}return[l,h,c,u]},ai.prototype.toGeoJSON=function(i,r,n){var o,s,a=this.extent*Math.pow(2,n),l=this.extent*i,c=this.extent*r,h=this.loadGeometry(),u=ai.types[this.type];function d(i){for(var r=0;r=this._features.length)throw Error("feature index out of bounds");this._pbf.pos=this._features[i];var r=this._pbf.readVarint()+this._pbf.pos;return new ai(this._pbf,r,this.extent,this._keys,this._values)};var aa={VectorTile:function(i,r){this.layers=i.readFields(as,{},r)},VectorTileFeature:ai,VectorTileLayer:an};const al=aa.VectorTileFeature.types;function ac(i,r,n,o,s,a,l,c){i.emplaceBack((r<<1)+l,(n<<1)+a,(Math.floor(8192*o)<<1)+s,Math.round(c))}class ah{constructor(){this.acc=new l(0,0),this.polyCount=[]}startRing(i){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new l(i.x,i.y),this.max=new l(i.x,i.y))}append(i,r){this.currentPolyCount.edges++,this.acc._add(i);let n=!!this.borders;const o=this.min,s=this.max;i.xs.x&&(s.x=i.x,n=!0),i.ys.y&&(s.y=i.y,n=!0),((0===i.x||8192===i.x)&&i.x===r.x)!=((0===i.y||8192===i.y)&&i.y===r.y)&&this.processBorderOverlap(i,r),n&&this.checkBorderIntersection(i,r)}checkBorderIntersection(i,r){r.x<0!=i.x<0&&this.addBorderIntersection(0,io(r.y,i.y,(0-r.x)/(i.x-r.x))),r.x>8192!=i.x>8192&&this.addBorderIntersection(1,io(r.y,i.y,(8192-r.x)/(i.x-r.x))),r.y<0!=i.y<0&&this.addBorderIntersection(2,io(r.x,i.x,(0-r.y)/(i.y-r.y))),r.y>8192!=i.y>8192&&this.addBorderIntersection(3,io(r.x,i.x,(8192-r.y)/(i.y-r.y)))}addBorderIntersection(i,r){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const n=this.borders[i];rn[1]&&(n[1]=r)}processBorderOverlap(i,r){if(i.x===r.x){if(i.y===r.y)return;const n=0===i.x?0:1;this.addBorderIntersection(n,r.y),this.addBorderIntersection(n,i.y)}else{const o=0===i.y?2:3;this.addBorderIntersection(o,r.x),this.addBorderIntersection(o,i.x)}}centroid(){const i=this.polyCount.reduce((i,r)=>i+r.edges,0);return 0!==i?this.acc.div(i)._round():new l(0,0)}span(){return new l(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce((i,r)=>i+ +(r[0]!==Number.MAX_VALUE),0)}}class au{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.layoutVertexArray=new nQ,this.centroidVertexArray=new ow,this.indexArray=new oe,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.enableTerrain=i.enableTerrain}populate(i,r,n,o){for(const{feature:s,id:a,index:l,sourceLayerIndex:c}of(this.features=[],this.hasPattern=s5("fill-extrusion",this.layers,r),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDone=[!1,!1,!1,!1],this.tileToMeter=function(i){const r=Math.exp(Math.PI*(1-i.y/(1<i.x<=0)||l.every(i=>i.x>=8192)||l.every(i=>i.y<=0)||l.every(i=>i.y>=8192))continue;for(let p=0;p=1){const y=f[_-1];if((g.x!==y.x||!(g.x<0)&&!(g.x>8192))&&(g.y!==y.y||!(g.y<0)&&!(g.y>8192))){c&&c.append(g,y),d.vertexLength+4>o0.MAX_VERTEX_ARRAY_LENGTH&&(d=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const x=g.sub(y)._perp(),v=x.x/(Math.abs(x.x)+Math.abs(x.y)),b=x.y>0?1:0,w=y.dist(g);m+w>32768&&(m=0),ac(this.layoutVertexArray,g.x,g.y,v,b,0,0,m),ac(this.layoutVertexArray,g.x,g.y,v,b,0,1,m),m+=w,ac(this.layoutVertexArray,y.x,y.y,v,b,0,0,m),ac(this.layoutVertexArray,y.x,y.y,v,b,0,1,m);const T=d.vertexLength;this.indexArray.emplaceBack(T,T+2,T+1),this.indexArray.emplaceBack(T+1,T+2,T+3),d.vertexLength+=4,d.primitiveLength+=2}}}}if(d.vertexLength+u>o0.MAX_VERTEX_ARRAY_LENGTH&&(d=this.segments.prepareSegment(u,this.layoutVertexArray,this.indexArray)),"Polygon"!==al[i.type])continue;const E=[],S=[],I=d.vertexLength;for(let M=0;M0){if(c.borders){c.vertexArrayOffset=this.centroidVertexArray.length;const D=c.borders,L=this.featuresOnBorder.push(c)-1;for(let B=0;B<4;B++)D[B][0]!==Number.MAX_VALUE&&this.borders[B].push(L)}this.encodeCentroid(c.borders?void 0:c.centroid(),c)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,s,a,o)}sortBorders(){for(let i=0;i<4;i++)this.borders[i].sort((r,n)=>this.featuresOnBorder[r].borders[i][0]-this.featuresOnBorder[n].borders[i][0])}encodeCentroid(i,r,n=!0){let o,s;if(i){if(0!==i.y){const a=r.span()._mult(this.tileToMeter);o=(Math.max(i.x,1)<<3)+Math.min(7,Math.round(a.x/10)),s=(Math.max(i.y,1)<<3)+Math.min(7,Math.round(a.y/10))}else o=Math.ceil(7*(i.x+450)),s=0}else o=0,s=+n;let l=n?this.centroidVertexArray.length:r.vertexArrayOffset;for(const c of r.polyCount){n&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*c.edges+c.top);for(let h=0;h<2*c.edges;h++)this.centroidVertexArray.emplace(l++,0,s),this.centroidVertexArray.emplace(l++,o,s);for(let u=0;ui.id),this.index=i.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(i=>{this.gradients[i.id]={}}),this.layoutVertexArray=new n0,this.layoutVertexArray2=new n1,this.indexArray=new oe,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=s5("line",this.layers,r);const s=this.layers[0].layout.get("line-sort-key"),a=[];for(const{feature:l,id:c,index:h,sourceLayerIndex:u}of i){const d=this.layers[0]._featureFilter.needGeometry,p=sr(l,d);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),p,n))continue;const f=s?s.evaluate(p,{},n):void 0,m={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:d?p.geometry:si(l,n,o),patterns:{},sortKey:f};a.push(m)}s&&a.sort((i,r)=>i.sortKey-r.sortKey);const{lineAtlas:_,featureIndex:g}=r,y=this.addConstantDashes(_);for(const x of a){const{geometry:v,index:b,sourceLayerIndex:w}=x;if(y&&this.addFeatureDashes(x,_),this.hasPattern){const T=s4("line",this.layers,x,this.zoom,r);this.patternFeatures.push(T)}else this.addFeature(x,v,b,n,_.positions,r.availableImages);g.insert(i[b].feature,v,b,w,this.index)}}addConstantDashes(i){let r=!1;for(const n of this.layers){const o=n.paint.get("line-dasharray").value,s=n.layout.get("line-cap").value;if("constant"!==o.kind||"constant"!==s.kind)r=!0;else{const a=s.value,l=o.value;if(!l)continue;i.addDash(l.from,a),i.addDash(l.to,a),l.other&&i.addDash(l.other,a)}}return r}addFeatureDashes(i,r){const n=this.zoom;for(const o of this.layers){let s,a,l,c,h,u;const d=o.paint.get("line-dasharray").value,p=o.layout.get("line-cap").value;if("constant"===d.kind&&"constant"===p.kind)continue;if("constant"===d.kind){const f=d.value;if(!f)continue;s=f.other||f.to,a=f.to,l=f.from}else s=d.evaluate({zoom:n-1},i),a=d.evaluate({zoom:n},i),l=d.evaluate({zoom:n+1},i);"constant"===p.kind?c=h=u=p.value:(c=p.evaluate({zoom:n-1},i),h=p.evaluate({zoom:n},i),u=p.evaluate({zoom:n+1},i)),r.addDash(s,c),r.addDash(a,h),r.addDash(l,u);const m=r.getKey(s,c),_=r.getKey(a,h),g=r.getKey(l,u);i.patterns[o.id]={min:m,mid:_,max:g}}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const s of this.patternFeatures)this.addFeature(s,s.geometry,s.index,r,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=i.createVertexBuffer(this.layoutVertexArray2,ax)),this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,ag),this.indexBuffer=i.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(i){if(i.properties&&i.properties.hasOwnProperty("mapbox_clip_start")&&i.properties.hasOwnProperty("mapbox_clip_end"))return{start:+i.properties.mapbox_clip_start,end:+i.properties.mapbox_clip_end}}addFeature(i,r,n,o,s,a){const l=this.layers[0].layout,c=l.get("line-join").evaluate(i,{}),h=l.get("line-cap").evaluate(i,{}),u=l.get("line-miter-limit"),d=l.get("line-round-limit");for(const p of(this.lineClips=this.lineFeatureClips(i),r))this.addLine(p,i,c,h,u,d);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,s,a,o)}addLine(i,r,n,o,s,a){let l,c,h,u,d;if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let p=0;p=2&&i[m-1].equals(i[m-2]);)m--;let _=0;for(;_0;if(S&&x>_){const M=l.dist(c);if(M>2*g){const A=l.sub(l.sub(c)._mult(g/M)._round());this.updateDistance(c,A),this.addCurrentVertex(A,u,0,0,y),c=A}}const C=c&&h;let z=C?n:f?"butt":o;if(C&&"round"===z&&(Ts&&(z="bevel"),"bevel"===z&&(T>2&&(z="flipbevel"),T100)v=d.mult(-1);else{const k=T*u.add(d).mag()/u.sub(d).mag();v._perp()._mult(k*(I?-1:1))}this.addCurrentVertex(l,v,0,0,y),this.addCurrentVertex(l,v.mult(-1),0,0,y)}else if("bevel"===z||"fakeround"===z){const P=-Math.sqrt(T*T-1),D=I?P:0,L=I?0:P;if(c&&this.addCurrentVertex(l,u,D,L,y),"fakeround"===z){const B=Math.round(180*E/Math.PI/20);for(let R=1;R2*g){const j=l.add(h.sub(l)._mult(g/N)._round());this.updateDistance(l,j),this.addCurrentVertex(j,d,0,0,y),l=j}}}}addCurrentVertex(i,r,n,o,s,a=!1){const l=r.y*o-r.x,c=-r.y-r.x*o;this.addHalfVertex(i,r.x+r.y*n,r.y-r.x*n,a,!1,n,s),this.addHalfVertex(i,l,c,a,!0,-o,s)}addHalfVertex({x:i,y:r},n,o,s,a,l,c){this.layoutVertexArray.emplaceBack((i<<1)+(s?1:0),(r<<1)+(a?1:0),Math.round(63*n)+128,Math.round(63*o)+128,1+(0===l?0:l<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineSoFar);const h=c.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,h),c.primitiveLength++),a?this.e2=h:this.e1=h}updateScaledDistance(){if(this.lineClips){const i=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=i*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(i,r){this.distance+=i.dist(r),this.updateScaledDistance()}}r$("LineBucket",aw,{omit:["layers","patternFeatures"]});const aT=new n$({"line-cap":new nN(tr.layout_line["line-cap"]),"line-join":new nN(tr.layout_line["line-join"]),"line-miter-limit":new nV(tr.layout_line["line-miter-limit"]),"line-round-limit":new nV(tr.layout_line["line-round-limit"]),"line-sort-key":new nN(tr.layout_line["line-sort-key"])});var aE={paint:new n$({"line-opacity":new nN(tr.paint_line["line-opacity"]),"line-color":new nN(tr.paint_line["line-color"]),"line-translate":new nV(tr.paint_line["line-translate"]),"line-translate-anchor":new nV(tr.paint_line["line-translate-anchor"]),"line-width":new nN(tr.paint_line["line-width"]),"line-gap-width":new nN(tr.paint_line["line-gap-width"]),"line-offset":new nN(tr.paint_line["line-offset"]),"line-blur":new nN(tr.paint_line["line-blur"]),"line-dasharray":new nj(tr.paint_line["line-dasharray"]),"line-pattern":new nj(tr.paint_line["line-pattern"]),"line-gradient":new nZ(tr.paint_line["line-gradient"])}),layout:aT};const aS=new class extends nN{possiblyEvaluate(i,r){return r=new nk(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),super.possiblyEvaluate(i,r)}evaluate(i,r,n,o){return r=H({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(i,r,n,o)}}(aE.paint.properties["line-width"].specification);function aI(i,r){return r>0?r+2*i:i}aS.useIntegerZoom=!0;const aM=nK([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"},{name:"a_z_tile_anchor",components:4,type:"Int16"}],4),aA=nK([{name:"a_projected_pos",components:3,type:"Float32"}],4);nK([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const aC=nK([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),az=nK([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);nK([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const ak=nK([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),aP=nK([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function aD(i,r){const{expression:n}=r;if("constant"===n.kind)return{kind:"constant",layoutSize:n.evaluate(new nk(i+1))};if("source"===n.kind)return{kind:"source"};{const{zoomStops:o,interpolationType:s}=n;let a=0;for(;a":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","\xa2":"¢","\xa3":"£","\xa5":"¥","\xa6":"¦","\xac":"¬","\xaf":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var aO=function(i,r,n,o,s){var a,l,c=8*s-o-1,h=(1<>1,d=-7,p=n?s-1:0,f=n?-1:1,m=i[r+p];for(p+=f,a=m&(1<<-d)-1,m>>=-d,d+=c;d>0;a=256*a+i[r+p],p+=f,d-=8);for(l=a&(1<<-d)-1,a>>=-d,d+=o;d>0;l=256*l+i[r+p],p+=f,d-=8);if(0===a)a=1-u;else{if(a===h)return l?NaN:1/0*(m?-1:1);l+=Math.pow(2,o),a-=u}return(m?-1:1)*l*Math.pow(2,a-o)},aU=function(i,r,n,o,s,a){var l,c,h,u=8*a-s-1,d=(1<>1,f=23===s?5960464477539062e-23:0,m=o?0:a-1,_=o?1:-1,g=r<0||0===r&&1/r<0?1:0;for(isNaN(r=Math.abs(r))||r===1/0?(c=isNaN(r)?1:0,l=d):(l=Math.floor(Math.log(r)/Math.LN2),r*(h=Math.pow(2,-l))<1&&(l--,h*=2),(r+=l+p>=1?f/h:f*Math.pow(2,1-p))*h>=2&&(l++,h/=2),l+p>=d?(c=0,l=d):l+p>=1?(c=(r*h-1)*Math.pow(2,s),l+=p):(c=r*Math.pow(2,p-1)*Math.pow(2,s),l=0));s>=8;i[n+m]=255&c,m+=_,c/=256,s-=8);for(l=l<0;i[n+m]=255&l,m+=_,l/=256,u-=8);i[n+m-_]|=128*g};function aV(i){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(i)?i:new Uint8Array(i||0),this.pos=0,this.type=0,this.length=this.buf.length}aV.Varint=0,aV.Fixed64=1,aV.Bytes=2,aV.Fixed32=5;var aN="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function aj(i){return i.type===aV.Bytes?i.readVarint()+i.pos:i.pos+1}function aG(i,r,n){var o=r<=16383?1:r<=2097151?2:r<=268435455?3:Math.floor(Math.log(r)/(7*Math.LN2));n.realloc(o);for(var s=n.pos-1;s>=i;s--)n.buf[s+o]=n.buf[s]}function aZ(i,r){for(var n=0;n>>8,i[n+2]=r>>>16,i[n+3]=r>>>24}function a1(i,r){return(i[r]|i[r+1]<<8|i[r+2]<<16)+(i[r+3]<<24)}function a2(i,r,n){r.glyphs=[],1===i&&n.readMessage(a3,r)}function a3(i,r,n){if(3===i){const{id:o,bitmap:s,width:a,height:l,left:c,top:h,advance:u}=n.readMessage(a5,{});r.glyphs.push({id:o,bitmap:new sC({width:a+6,height:l+6},s),metrics:{width:a,height:l,left:c,top:h,advance:u}})}else 4===i?r.ascender=n.readSVarint():5===i&&(r.descender=n.readSVarint())}function a5(i,r,n){1===i?r.id=n.readVarint():2===i?r.bitmap=n.readBytes():3===i?r.width=n.readVarint():4===i?r.height=n.readVarint():5===i?r.left=n.readSVarint():6===i?r.top=n.readSVarint():7===i&&(r.advance=n.readVarint())}function a4(i){let r=0,n=0;for(const o of i)r+=o.w*o.h,n=Math.max(n,o.w);i.sort((i,r)=>r.h-i.h);const s=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(r/.95)),n),h:1/0}];let a=0,l=0;for(const c of i)for(let h=s.length-1;h>=0;h--){const u=s[h];if(!(c.w>u.w||c.h>u.h)){if(c.x=u.x,c.y=u.y,l=Math.max(l,c.y+c.h),a=Math.max(a,c.x+c.w),c.w===u.w&&c.h===u.h){const d=s.pop();h>3,a=this.pos;this.type=7&o,i(s,r,this),this.pos===a&&this.skip(o)}return r},readMessage:function(i,r){return this.readFields(i,r,this.readVarint()+this.pos)},readFixed32:function(){var i=aQ(this.buf,this.pos);return this.pos+=4,i},readSFixed32:function(){var i=a1(this.buf,this.pos);return this.pos+=4,i},readFixed64:function(){var i=aQ(this.buf,this.pos)+4294967296*aQ(this.buf,this.pos+4);return this.pos+=8,i},readSFixed64:function(){var i=aQ(this.buf,this.pos)+4294967296*a1(this.buf,this.pos+4);return this.pos+=8,i},readFloat:function(){var i=aO(this.buf,this.pos,!0,23,4);return this.pos+=4,i},readDouble:function(){var i=aO(this.buf,this.pos,!0,52,8);return this.pos+=8,i},readVarint:function(i){var r,n,o=this.buf;return r=127&(n=o[this.pos++]),n<128?r:(r|=(127&(n=o[this.pos++]))<<7,n<128?r:(r|=(127&(n=o[this.pos++]))<<14,n<128?r:(r|=(127&(n=o[this.pos++]))<<21,n<128?r:function(i,r,n){var o,s,a,l=n.buf;if(s=(112&(a=l[n.pos++]))>>4,a<128||(s|=(127&(a=l[n.pos++]))<<3,a<128)||(s|=(127&(a=l[n.pos++]))<<10,a<128)||(s|=(127&(a=l[n.pos++]))<<17,a<128)||(s|=(127&(a=l[n.pos++]))<<24,a<128)||(s|=(1&(a=l[n.pos++]))<<31,a<128))return o=s,r?4294967296*o+(i>>>0):4294967296*(o>>>0)+(i>>>0);throw Error("Expected varint not more than 10 bytes")}(r|=(15&(n=o[this.pos]))<<28,i,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var i=this.readVarint();return i%2==1?-((i+1)/2):i/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var i,r=this.readVarint()+this.pos,n=this.pos;return this.pos=r,r-n>=12&&aN?(i=this.buf,aN.decode(i.subarray(n,r))):function(i,r,n){for(var o="",s=r;s239?4:h>223?3:h>191?2:1;if(s+d>n)break;1===d?h<128&&(u=h):2===d?128==(192&(a=i[s+1]))&&(u=(31&h)<<6|63&a)<=127&&(u=null):3===d?(l=i[s+2],128==(192&(a=i[s+1]))&&128==(192&l)&&((u=(15&h)<<12|(63&a)<<6|63&l)<=2047||u>=55296&&u<=57343)&&(u=null)):4===d&&(l=i[s+2],c=i[s+3],128==(192&(a=i[s+1]))&&128==(192&l)&&128==(192&c)&&((u=(15&h)<<18|(63&a)<<12|(63&l)<<6|63&c)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,d=1):u>65535&&(u-=65536,o+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),o+=String.fromCharCode(u),s+=d}return o}(this.buf,n,r)},readBytes:function(){var i=this.readVarint()+this.pos,r=this.buf.subarray(this.pos,i);return this.pos=i,r},readPackedVarint:function(i,r){if(this.type!==aV.Bytes)return i.push(this.readVarint(r));var n=aj(this);for(i=i||[];this.pos127;);else if(r===aV.Bytes)this.pos=this.readVarint()+this.pos;else if(r===aV.Fixed32)this.pos+=4;else{if(r!==aV.Fixed64)throw Error("Unimplemented type: "+r);this.pos+=8}},writeTag:function(i,r){this.writeVarint(i<<3|r)},realloc:function(i){for(var r=this.length||16;r268435455||i<0?function(i,r){var n,o,s,a,l,c,h;if(i>=0?(n=i%4294967296|0,o=i/4294967296|0):(o=~(-i/4294967296),4294967295^(n=~(-i%4294967296))?n=n+1|0:(n=0,o=o+1|0)),i>=18446744073709552e3||i<-18446744073709552e3)throw Error("Given varint doesn't fit into 10 bytes");r.realloc(10),s=n,(a=r).buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,a.buf[a.pos]=127&(s>>>=7),l=o,c=r,h=(7&l)<<4,c.buf[c.pos++]|=h|((l>>>=3)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l)))))}(i,this):(this.realloc(4),this.buf[this.pos++]=127&i|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=i>>>7&127))))},writeSVarint:function(i){this.writeVarint(i<0?-(2*i)-1:2*i)},writeBoolean:function(i){this.writeVarint(Boolean(i))},writeString:function(i){i=String(i),this.realloc(4*i.length),this.pos++;var r=this.pos;this.pos=function(i,r,n){for(var o,s,a=0;a55295&&o<57344){if(!s){o>56319||a+1===r.length?(i[n++]=239,i[n++]=191,i[n++]=189):s=o;continue}if(o<56320){i[n++]=239,i[n++]=191,i[n++]=189,s=o;continue}o=s-55296<<10|o-56320|65536,s=null}else s&&(i[n++]=239,i[n++]=191,i[n++]=189,s=null);o<128?i[n++]=o:(o<2048?i[n++]=o>>6|192:(o<65536?i[n++]=o>>12|224:(i[n++]=o>>18|240,i[n++]=o>>12&63|128),i[n++]=o>>6&63|128),i[n++]=63&o|128)}return n}(this.buf,i,this.pos);var n=this.pos-r;n>=128&&aG(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeFloat:function(i){this.realloc(4),aU(this.buf,i,this.pos,!0,23,4),this.pos+=4},writeDouble:function(i){this.realloc(8),aU(this.buf,i,this.pos,!0,52,8),this.pos+=8},writeBytes:function(i){var r=i.length;this.writeVarint(r),this.realloc(r);for(var n=0;n=128&&aG(n,o,this),this.pos=n-1,this.writeVarint(o),this.pos+=o},writeMessage:function(i,r,n){this.writeTag(i,aV.Bytes),this.writeRawMessage(r,n)},writePackedVarint:function(i,r){r.length&&this.writeMessage(i,aZ,r)},writePackedSVarint:function(i,r){r.length&&this.writeMessage(i,a$,r)},writePackedBoolean:function(i,r){r.length&&this.writeMessage(i,aW,r)},writePackedFloat:function(i,r){r.length&&this.writeMessage(i,aq,r)},writePackedDouble:function(i,r){r.length&&this.writeMessage(i,aX,r)},writePackedFixed32:function(i,r){r.length&&this.writeMessage(i,aH,r)},writePackedSFixed32:function(i,r){r.length&&this.writeMessage(i,aK,r)},writePackedFixed64:function(i,r){r.length&&this.writeMessage(i,aY,r)},writePackedSFixed64:function(i,r){r.length&&this.writeMessage(i,aJ,r)},writeBytesField:function(i,r){this.writeTag(i,aV.Bytes),this.writeBytes(r)},writeFixed32Field:function(i,r){this.writeTag(i,aV.Fixed32),this.writeFixed32(r)},writeSFixed32Field:function(i,r){this.writeTag(i,aV.Fixed32),this.writeSFixed32(r)},writeFixed64Field:function(i,r){this.writeTag(i,aV.Fixed64),this.writeFixed64(r)},writeSFixed64Field:function(i,r){this.writeTag(i,aV.Fixed64),this.writeSFixed64(r)},writeVarintField:function(i,r){this.writeTag(i,aV.Varint),this.writeVarint(r)},writeSVarintField:function(i,r){this.writeTag(i,aV.Varint),this.writeSVarint(r)},writeStringField:function(i,r){this.writeTag(i,aV.Bytes),this.writeString(r)},writeFloatField:function(i,r){this.writeTag(i,aV.Fixed32),this.writeFloat(r)},writeDoubleField:function(i,r){this.writeTag(i,aV.Fixed64),this.writeDouble(r)},writeBooleanField:function(i,r){this.writeVarintField(i,Boolean(r))}};class a6{constructor(i,{pixelRatio:r,version:n,stretchX:o,stretchY:s,content:a}){this.paddedRect=i,this.pixelRatio=r,this.stretchX=o,this.stretchY=s,this.content=a,this.version=n}get tl(){return[this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get displaySize(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}}class a8{constructor(i,r){const n={},o={};this.haveRenderCallbacks=[];const s=[];this.addImages(i,n,s),this.addImages(r,o,s);const{w:a,h:l}=a4(s),c=new sz({width:a||1,height:l||1});for(const h in i){const u=i[h],d=n[h].paddedRect;sz.copy(u.data,c,{x:0,y:0},{x:d.x+1,y:d.y+1},u.data)}for(const p in r){const f=r[p],m=o[p].paddedRect,_=m.x+1,g=m.y+1,y=f.data.width,x=f.data.height;sz.copy(f.data,c,{x:0,y:0},{x:_,y:g},f.data),sz.copy(f.data,c,{x:0,y:x-1},{x:_,y:g-1},{width:y,height:1}),sz.copy(f.data,c,{x:0,y:0},{x:_,y:g+x},{width:y,height:1}),sz.copy(f.data,c,{x:y-1,y:0},{x:_-1,y:g},{width:1,height:x}),sz.copy(f.data,c,{x:0,y:0},{x:_+y,y:g},{width:1,height:x})}this.image=c,this.iconPositions=n,this.patternPositions=o}addImages(i,r,n){for(const o in i){const s=i[o],a={x:0,y:0,w:s.data.width+2,h:s.data.height+2};n.push(a),r[o]=new a6(a,s),s.hasRenderCallback&&this.haveRenderCallbacks.push(o)}}patchUpdatedImages(i,r){for(const n in i.dispatchRenderCallbacks(this.haveRenderCallbacks),i.updatedImages)this.patchUpdatedImage(this.iconPositions[n],i.getImage(n),r),this.patchUpdatedImage(this.patternPositions[n],i.getImage(n),r)}patchUpdatedImage(i,r,n){if(!i||!r||i.version===r.version)return;i.version=r.version;const[o,s]=i.tl;n.update(r.data,void 0,{x:o,y:s})}}r$("ImagePosition",a6),r$("ImageAtlas",a8);const a9={horizontal:1,vertical:2,horizontalOnly:3};class a7{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(i,r){const n=new a7;return n.scale=i||1,n.fontStack=r,n}static forImage(i){const r=new a7;return r.imageName=i,r}}class le{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(i,r){const n=new le;for(let o=0;o=0&&o>=i&&li[this.text.charCodeAt(o)];o--)n--;this.text=this.text.substring(i,n),this.sectionIndex=this.sectionIndex.slice(i,n)}substring(i,r){const n=new le;return n.text=this.text.substring(i,r),n.sectionIndex=this.sectionIndex.slice(i,r),n.sections=this.sections,n}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((i,r)=>Math.max(i,this.sections[r].scale),0)}addTextSection(i,r){this.text+=i.text,this.sections.push(a7.forText(i.scale,i.fontStack||r));const n=this.sections.length-1;for(let o=0;o=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function lt(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){let y;const x=le.fromFeature(i,s);p===a9.vertical&&x.verticalizePunctuation(f);const{processBidirectionalText:v,processStyledBidirectionalText:b}=nz;if(v&&1===x.sections.length){y=[];const w=v(x.toString(),la(x,u,a,r,o,m,_));for(const T of w){const E=new le;E.text=T,E.sections=x.sections;for(let S=0;S0&&$>C&&(C=$)}else{const q=n[D.fontStack];if(!q)continue;q[B]&&(O=q[B]);const X=r[D.fontStack];if(!X)continue;const W=X.glyphs[B];if(!W)continue;if(F=W.metrics,V=8203!==B?24:0,y){const H=void 0!==X.ascender?Math.abs(X.ascender):0,K=void 0!==X.descender?Math.abs(X.descender):0,Y=(H+K)*R;z=0;let d=0;for(let p=0;p-n/2;){if(--l<0)return!1;c-=i[l].dist(a),a=i[l]}c+=i[l].dist(i[l+1]),l++;const h=[];let u=0;for(;co;)u-=h.shift().angleDelta;if(u>s)return!1;l++,c+=d.dist(p)}return!0}function lp(i){let r=0;for(let n=0;n=o&&f.x>=o||(p.x>=o?p=new l(o,p.y+(o-p.x)/(f.x-p.x)*(f.y-p.y))._round():f.x>=o&&(f=new l(o,p.y+(o-p.x)/(f.x-p.x)*(f.y-p.y))._round()),p.y>=s&&f.y>=s||(p.y>=s?p=new l(p.x+(s-p.y)/(f.y-p.y)*(f.x-p.x),s)._round():f.y>=s&&(f=new l(p.x+(s-p.y)/(f.y-p.y)*(f.x-p.x),s)._round()),h&&p.equals(h[h.length-1])||(h=[p],a.push(h)),h.push(f)))))}}return a}function lg(i,r,n,o,s,a,l,c,h){for(let u=r;u-1)a[++h]=c,l[h]=u,l[h+1]=1e20}for(let f=0,m=0;f{let o=this.entries[i];o||(o=this.entries[i]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let s=o.glyphs[r];if(void 0!==s)return void n(null,{stack:i,id:r,glyph:s});if(s=this._tinySDF(o,i,r))return o.glyphs[r]=s,void n(null,{stack:i,id:r,glyph:s});const a=Math.floor(r/256);if(256*a>65535)return void n(Error("glyphs > 65535 not supported"));if(o.ranges[a])return void n(null,{stack:i,id:r,glyph:s});let l=o.requests[a];l||(l=o.requests[a]=[],lv.loadGlyphRange(i,a,this.url,this.requestManager,(i,r)=>{if(r){for(const n in o.ascender=r.ascender,o.descender=r.descender,r.glyphs)this._doesCharSupportLocalGlyph(+n)||(o.glyphs[+n]=r.glyphs[+n]);o.ranges[a]=!0}for(const s of l)s(i,r);delete o.requests[a]})),l.push((o,s)=>{o?n(o):s&&n(null,{stack:i,id:r,glyph:s.glyphs[r]||null})})},(i,n)=>{if(i)r(i);else if(n){const o={};for(const{stack:s,id:a,glyph:l}of n)void 0===o[s]&&(o[s]={}),void 0===o[s].glyphs&&(o[s].glyphs={}),o[s].glyphs[a]=l&&{id:l.id,bitmap:l.bitmap.clone(),metrics:l.metrics},o[s].ascender=this.entries[s].ascender,o[s].descender=this.entries[s].descender;r(null,o)}})}_doesCharSupportLocalGlyph(i){return this.localGlyphMode!==lx.none&&(this.localGlyphMode===lx.all?!!this.localFontFamily:!!this.localFontFamily&&(nn(i)||na(i)||r4(i)||r6(i))||r5(i))}_tinySDF(i,r,n){const o=this.localFontFamily;if(!o||!this._doesCharSupportLocalGlyph(n))return;let s=i.tinySDF;if(!s){let a="400";/bold/i.test(r)?a="900":/medium/i.test(r)?a="500":/light/i.test(r)&&(a="200"),(s=i.tinySDF=new lv.TinySDF({fontFamily:o,fontWeight:a,fontSize:48,buffer:6,radius:16})).fontWeight=a}if(this.localGlyphs[s.fontWeight][n])return this.localGlyphs[s.fontWeight][n];const l=String.fromCharCode(n),{data:c,width:h,height:u,glyphWidth:d,glyphHeight:p,glyphLeft:f,glyphTop:m,glyphAdvance:_}=s.draw(l);return this.localGlyphs[s.fontWeight][n]={id:n,bitmap:new sC({width:h,height:u},c),metrics:{width:d/2,height:p/2,left:f/2,top:m/2-27,advance:_/2,localGlyph:!0}}}}function lb(i,r,n,o){const s=[],a=i.image,c=a.pixelRatio,h=a.paddedRect.w-2,u=a.paddedRect.h-2,d=i.right-i.left,p=i.bottom-i.top,f=a.stretchX||[[0,h]],m=a.stretchY||[[0,u]],_=(i,r)=>i+r[1]-r[0],g=f.reduce(_,0),y=m.reduce(_,0),x=h-g,v=u-y;let b=0,w=g,T=0,E=y,S=0,I=x,M=0,A=v;if(a.content&&o){const C=a.content;b=lw(f,0,C[0]),T=lw(m,0,C[1]),w=lw(f,C[0],C[2]),E=lw(m,C[1],C[3]),S=C[0]-b,M=C[1]-T,I=C[2]-C[0]-w,A=C[3]-C[1]-E}const z=(o,s,h,u)=>{const f=(o.stretch-b)/w*d+i.left,m=o.fixed-S-I*o.stretch/g,_=(s.stretch-T)/E*p+i.top,x=s.fixed-M-A*s.stretch/y,v=(h.stretch-b)/w*d+i.left,C=h.fixed-S-I*h.stretch/g,z=(u.stretch-T)/E*p+i.top,k=u.fixed-M-A*u.stretch/y,P=new l(f,_),D=new l(v,_),L=new l(v,z),B=new l(f,z),R=new l(m/c,x/c),F=new l(C/c,k/c),O=r*Math.PI/180;if(O){const U=Math.sin(O),V=Math.cos(O),N=[V,-U,U,V];P._matMult(N),D._matMult(N),B._matMult(N),L._matMult(N)}const j=o.stretch+o.fixed,G=s.stretch+s.fixed;return{tl:P,tr:D,bl:B,br:L,tex:{x:a.paddedRect.x+1+j,y:a.paddedRect.y+1+G,w:h.stretch+h.fixed-j,h:u.stretch+u.fixed-G},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:R,pixelOffsetBR:F,minFontScaleX:I/c/d,minFontScaleY:A/c/p,isSDF:n}};if(o&&(a.stretchX||a.stretchY)){const k=lT(f,x,g),P=lT(m,v,y);for(let D=0;D{if(i)s(i);else if(r){const n={},o=new aV(r).readFields(a2,{});for(const a of o.glyphs)n[a.id]=a;s(null,{glyphs:n,ascender:o.ascender,descender:o.descender})}})},lv.TinySDF=class{constructor({fontSize:i=24,buffer:r=3,radius:n=8,cutoff:o=.25,fontFamily:s="sans-serif",fontWeight:a="normal",fontStyle:l="normal"}){this.buffer=r,this.cutoff=o,this.radius=n;const c=this.size=i+4*r,h=this._createCanvas(c),u=this.ctx=h.getContext("2d",{willReadFrequently:!0});u.font=`${l} ${a} ${i}px ${s}`,u.textBaseline="alphabetic",u.textAlign="left",u.fillStyle="black",this.gridOuter=new Float64Array(c*c),this.gridInner=new Float64Array(c*c),this.f=new Float64Array(c),this.z=new Float64Array(c+1),this.v=new Uint16Array(c)}_createCanvas(i){const r=document.createElement("canvas");return r.width=r.height=i,r}draw(i){const{width:r,actualBoundingBoxAscent:n,actualBoundingBoxDescent:o,actualBoundingBoxLeft:s,actualBoundingBoxRight:a}=this.ctx.measureText(i),l=Math.floor(n),c=Math.min(this.size-this.buffer,Math.ceil(a-s)),h=Math.min(this.size-this.buffer,Math.ceil(n)+Math.ceil(o)),u=c+2*this.buffer,d=h+2*this.buffer,p=u*d,f=new Uint8ClampedArray(p),m={data:f,width:u,height:d,glyphWidth:c,glyphHeight:h,glyphTop:l,glyphLeft:0,glyphAdvance:r};if(0===c||0===h)return m;const{ctx:_,buffer:g,gridInner:y,gridOuter:x}=this;_.clearRect(g,g,c,h),_.fillText(i,g,g+l+1);const v=_.getImageData(g,g,c,h);x.fill(1e20,0,p),y.fill(0,0,p);for(let b=0;b0?S*S:0,y[E]=S<0?S*S:0}}lg(x,0,0,u,d,u,this.f,this.v,this.z),lg(y,g,g,c,h,u,this.f,this.v,this.z);for(let I=0;I0)for(let n=(this.length>>1)-1;n>=0;n--)this._down(n)}push(i){this.data.push(i),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const i=this.data[0],r=this.data.pop();return this.length--,this.length>0&&(this.data[0]=r,this._down(0)),i}peek(){return this.data[0]}_up(i){const{data:r,compare:n}=this,o=r[i];for(;i>0;){const s=i-1>>1,a=r[s];if(n(o,a)>=0)break;r[i]=a,i=s}r[i]=o}_down(i){const{data:r,compare:n}=this,o=this.length>>1,s=r[i];for(;in(r[c],l)&&(a=c,l=r[c]),n(l,s)>=0)break;r[i]=l,i=a}r[i]=s}}function lS(i,r){return ir?1:0}function lI(i,r){return r.max-i.max}function lM(i,r,n,o){this.p=new l(i,r),this.h=n,this.d=function(i,r){let n=!1,o=1/0;for(let s=0;si.y!=d.y>i.y&&i.x<(d.x-u.x)*(i.y-u.y)/(d.y-u.y)+u.x&&(n=!n),o=Math.min(o,sh(i,u,d))}}return(n?1:-1)*Math.sqrt(o)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}const lA=Number.POSITIVE_INFINITY,lC=Math.sqrt(2);function lz(i,r){return r[1]!==lA?function(i,r,n){let o=0,s=0;switch(r=Math.abs(r),n=Math.abs(n),i){case"top-right":case"top-left":case"top":s=n-7;break;case"bottom-right":case"bottom-left":case"bottom":s=7-n}switch(i){case"top-right":case"bottom-right":case"right":o=-r;break;case"top-left":case"bottom-left":case"left":o=r}return[o,s]}(i,r[0],r[1]):function(i,r){let n=0,o=0;r<0&&(r=0);const s=r/lC;switch(i){case"top-right":case"top-left":o=s-7;break;case"bottom-right":case"bottom-left":o=7-s;break;case"bottom":o=7-r;break;case"top":o=r-7}switch(i){case"top-right":case"bottom-right":n=-s;break;case"top-left":case"bottom-left":n=s;break;case"left":n=r;break;case"right":n=-r}return[n,o]}(i,r[0])}function lk(i){switch(i){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function lP(i,r,n,o,s,a,c,h,u,d,p,f,m,_,g,y,x){const v=function(i,r,n,o,s,a,c,h){const u=[];if(0===r.positionedLines.length)return u;const d=o.layout.get("text-rotate").evaluate(a,{})*Math.PI/180,p=function(i){const r=i[0],n=i[1],o=r*n;return o>0?[r,-n]:o<0?[-r,n]:0===r?[n,r]:[n,-r]}(n);let f=Math.abs(r.top-r.bottom);for(const m of r.positionedLines)f-=m.lineOffset;const _=r.positionedLines.length,g=f/_;let y=r.top-n[1];for(let x=0;x<_;++x){const v=r.positionedLines[x];for(const b of(y=function(i,r,n,o){const s=r+i.positionedLines[o].lineOffset;return 0===o?n+s/2:n+(s+(r+i.positionedLines[o-1].lineOffset))/2}(r,g,y,x),v.positionedGlyphs)){let w,T,E,S;if(!b.rect)continue;const I=b.rect||{};let M=4,A=!0,C=1,z=0;if(b.imageName){const k=c[b.imageName];if(!k)continue;if(k.sdf){ea("SDF images are not supported in formatted text and will be ignored.");continue}A=!1,M=1/(C=k.pixelRatio)}const P=(s||h)&&b.vertical,D=b.metrics.advance*b.scale/2,L=b.metrics,B=b.rect;if(null===B)continue;h&&r.verticalizable&&(z=b.imageName?D-b.metrics.width*b.scale/2:0);const R=s?[b.x+D,b.y]:[0,0];let F=[0,0],O=[0,0],U=!1;s||(P?(O=[b.x+D+p[0],b.y+p[1]-z],U=!0):F=[b.x+D+n[0],b.y+n[1]-z]);const V=B.w*b.scale/(C*(b.localGlyph?2:1)),N=B.h*b.scale/(C*(b.localGlyph?2:1));if(P){const j=b.y-y,G=new l(-D,D-j),Z=-Math.PI/2,$=new l(...O);(w=new l(-D+F[0],F[1]))._rotateAround(Z,G)._add($),w.x+=-j+D,w.y-=(L.left-M)*b.scale;const q=b.imageName?L.advance*b.scale:24*b.scale,X=String.fromCharCode(b.glyph);"︶"===X||"﹈"===X||"︸"===X||"﹄"===X||"﹂"===X||"︾"===X||"︼"===X||"︺"===X||"︘"===X||"﹀"===X||"︐"===X||"︓"===X||"︔"===X||"`"===X||" ̄"===X||"︑"===X||"︒"===X?w.x+=(1-M)*b.scale:"︵"===X||"﹇"===X||"︷"===X||"﹃"===X||"﹁"===X||"︽"===X||"︻"===X||"︹"===X||"︗"===X||"︿"===X?w.x+=q-L.height*b.scale+(-M-1)*b.scale:w.x+=b.imageName||L.width+2*M===B.w&&L.height+2*M===B.h?(q-N)/2:(q-(L.height+2*M)*b.scale)/2,T=new l(w.x,w.y-V),E=new l(w.x+N,w.y),S=new l(w.x+N,w.y-V)}else{const W=(L.left-M)*b.scale-D+F[0],H=(-L.top-M)*b.scale+F[1],K=W+V,Y=H+N;w=new l(W,H),T=new l(K,H),E=new l(W,Y),S=new l(K,Y)}if(d){let J;J=s?new l(0,0):U?new l(p[0],p[1]):new l(n[0],n[1]),w._rotateAround(d,J),T._rotateAround(d,J),E._rotateAround(d,J),S._rotateAround(d,J)}const Q=new l(0,0),ee=new l(0,0);u.push({tl:w,tr:T,bl:E,br:S,tex:I,writingMode:r.writingMode,glyphOffset:R,sectionIndex:b.sectionIndex,isSDF:A,pixelOffsetTL:Q,pixelOffsetBR:ee,minFontScaleX:0,minFontScaleY:0})}}return u}(0,o,u,a,c,h,s,i.allowVerticalPlacement),b=i.textSizeData;let w=null;for(const T of("source"===b.kind?(w=[128*a.layout.get("text-size").evaluate(h,{},x)])[0]>32640&&ea(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`):"composite"===b.kind&&((w=[128*g.compositeTextSizes[0].evaluate(h,{},x),128*g.compositeTextSizes[1].evaluate(h,{},x)])[0]>32640||w[1]>32640)&&ea(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`),i.addSymbols(i.text,v,w,u,c,h,p,r,n,d.lineStartIndex,d.lineLength,_,y,x),f))m[T]=i.text.placedSymbolArray.length-1;return 4*v.length}function lD(i){for(const r in i)return i[r];return null}function lL(i,r,n,o,s,a,c,h,u,d){let p=c.top,f=c.bottom,m=c.left,_=c.right;const g=c.collisionPadding;if(g&&(m-=g[0],p-=g[1],_+=g[2],f+=g[3]),u){const y=new l(m,p),x=new l(_,p),v=new l(m,f),b=new l(_,f),w=u*O;let T=new l(0,0);d&&(T=new l(d[0],d[1])),y._rotateAround(w,T),x._rotateAround(w,T),v._rotateAround(w,T),b._rotateAround(w,T),m=Math.min(y.x,x.x,v.x,b.x),_=Math.max(y.x,x.x,v.x,b.x),p=Math.min(y.y,x.y,v.y,b.y),f=Math.max(y.y,x.y,v.y,b.y)}return i.emplaceBack(r.x,r.y,r.z,n.x,n.y,m,p,_,f,h,o,s,a),i.length-1}function lB(i){i.collisionPadding&&(i.top-=i.collisionPadding[1],i.bottom+=i.collisionPadding[3]);const r=i.bottom-i.top;return r>0?Math.max(10,r):null}const lR=aa.VectorTileFeature.types,lF=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function lO(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){const y=d?Math.min(32640,Math.round(d[0])):0,x=d?Math.min(32640,Math.round(d[1])):0;i.emplaceBack(r,n,Math.round(32*l),Math.round(32*c),h,u,(y<<1)+(p?1:0),x,16*f,16*m,256*_,256*g,o,s,a,0)}function lU(i,r,n){i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n)}class lV{constructor(i){this.layoutVertexArray=new n5,this.indexArray=new oe,this.programConfigurations=i,this.segments=new o0,this.dynamicLayoutVertexArray=new n1,this.opacityVertexArray=new n4,this.placedSymbolArray=new of}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length}upload(i,r,n,o){this.isEmpty()||(n&&(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,aM.members),this.indexBuffer=i.createIndexBuffer(this.indexArray,r),this.dynamicLayoutVertexBuffer=i.createVertexBuffer(this.dynamicLayoutVertexArray,aA.members,!0),this.opacityVertexBuffer=i.createVertexBuffer(this.opacityVertexArray,lF,!0),this.opacityVertexBuffer.itemSize=1),(n||o)&&this.programConfigurations.upload(i))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())}}r$("SymbolBuffers",lV);class lN{constructor(i,r,n){this.layoutVertexArray=new i,this.layoutAttributes=r,this.indexArray=new n,this.segments=new o0,this.collisionVertexArray=new n7,this.collisionVertexArrayExt=new n1}upload(i){this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=i.createVertexBuffer(this.collisionVertexArray,aC.members,!0),this.collisionVertexBufferExt=i.createVertexBuffer(this.collisionVertexArrayExt,az.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}r$("CollisionBuffers",lN);class lj{constructor(i){this.collisionBoxArray=i.collisionBoxArray,this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.pixelRatio=i.pixelRatio,this.sourceLayerIndex=i.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=p([]),this.placementViewportMatrix=p([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=aD(this.zoom,r["text-size"]),this.iconSizeData=aD(this.zoom,r["icon-size"]);const n=this.layers[0].layout,o=n.get("symbol-sort-key"),s=n.get("symbol-z-order");this.canOverlap=n.get("text-allow-overlap")||n.get("icon-allow-overlap")||n.get("text-ignore-placement")||n.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==s&&void 0!==o.constantOr(1),this.sortFeaturesByY=("viewport-y"===s||"auto"===s&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=n.get("text-writing-mode").map(i=>a9[i]),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.sourceID=i.sourceID}createArrays(){this.text=new lV(new o$(this.layers,this.zoom,i=>/^text/.test(i))),this.icon=new lV(new o$(this.layers,this.zoom,i=>/^icon/.test(i))),this.glyphOffsetArray=new og,this.lineVertexArray=new oy,this.symbolInstances=new o_}calculateGlyphDependencies(i,r,n,o,s){for(let a=0;a0)&&("constant"!==l.value.kind||l.value.value.length>0),d="constant"!==h.value.kind||!!h.value.value||Object.keys(h.parameters).length>0,p=a.get("symbol-sort-key");if(this.features=[],!u&&!d)return;const f=r.iconDependencies,m=r.glyphDependencies,_=r.availableImages,g=new nk(this.zoom);for(const{feature:y,id:x,index:v,sourceLayerIndex:b}of i){let w,T;const E=s._featureFilter.needGeometry,S=sr(y,E);if(!s._featureFilter.filter(g,S,n))continue;if(E||(S.geometry=si(y,n,o)),u){const I=s.getValueAndResolveTokens("text-field",S,n,_),M=tP.factory(I);(function(i){for(const r of i.sections)if(function(i){for(const r of i)if(ny(r.charCodeAt(0)))return!0;return!1}(r.text))return!0;return!1})(M)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===nA()||this.hasRTLText&&nz.isParsed())&&(w=function(i,r,n){return i.sections.forEach(i=>{i.text=function(i,r,n){const o=r.layout.get("text-transform").evaluate(n,{});return"uppercase"===o?i=i.toLocaleUpperCase():"lowercase"===o&&(i=i.toLocaleLowerCase()),nz.applyArabicShaping&&(i=nz.applyArabicShaping(i)),i}(i.text,r,n)}),i}(M,s,S))}if(d){const A=s.getValueAndResolveTokens("icon-image",S,n,_);T=A instanceof tD?A:tD.fromString(A)}if(!w&&!T)continue;const C=this.sortFeaturesByKey?p.evaluate(S,{},n):void 0;if(this.features.push({id:x,text:w,icon:T,index:v,sourceLayerIndex:b,geometry:S.geometry,properties:y.properties,type:lR[y.type],sortKey:C}),T&&(f[T.name]=!0),w){const z=l.evaluate(S,{},n).join(","),k="map"===a.get("text-rotation-alignment")&&"point"!==a.get("symbol-placement");for(const P of(this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(a9.vertical)>=0,w.sections))if(P.image)f[P.image.name]=!0;else{const D=nm(w.toString()),L=P.fontStack||z,B=m[L]=m[L]||{};this.calculateGlyphDependencies(P.text,B,k,this.allowVerticalPlacement,D)}}}"line"===a.get("symbol-placement")&&(this.features=function(i){const r={},n={},o=[];let s=0;function a(r){o.push(i[r]),s++}function l(i,r,s){const a=n[i];return delete n[i],n[r]=a,o[a].geometry[0].pop(),o[a].geometry[0]=o[a].geometry[0].concat(s[0]),a}function c(i,n,s){const a=r[n];return delete r[n],r[i]=a,o[a].geometry[0].shift(),o[a].geometry[0]=s[0].concat(o[a].geometry[0]),a}function h(i,r,n){const o=n?r[0][r[0].length-1]:r[0][0];return`${i}:${o.x}:${o.y}`}for(let u=0;ui.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((i,r)=>i.sortKey-r.sortKey)}update(i,r,n,o){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(i,r,this.layers,n,o),this.icon.programConfigurations.updatePaintArrays(i,r,this.layers,n,o))}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(i){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(i),this.iconCollisionBox.upload(i)),this.text.upload(i,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(i,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(i,r){const n=this.lineVertexArray.length;if(void 0!==i.segment){let o=i.dist(r[i.segment+1]),s=i.dist(r[i.segment]);const a={};for(let l=i.segment+1;l=0;c--)a[c]={x:r[c].x,y:r[c].y,tileUnitDistanceFromAnchor:s},c>0&&(s+=r[c-1].dist(r[c]));for(let h=0;h=0?r.rightJustifiedTextSymbolIndex:r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.leftJustifiedTextSymbolIndex>=0?r.leftJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex>=0?r.verticalPlacedTextSymbolIndex:o),a=aL(this.textSizeData,i,s)/24;return this.tilePixelRatio*a}getSymbolInstanceIconSize(i,r,n){const o=this.icon.placedSymbolArray.get(n),s=aL(this.iconSizeData,i,o);return this.tilePixelRatio*s}_commitDebugCollisionVertexUpdate(i,r,n){i.emplaceBack(r,-n,-n),i.emplaceBack(r,n,-n),i.emplaceBack(r,n,n),i.emplaceBack(r,-n,n)}_updateTextDebugCollisionBoxes(i,r,n,o,s,a){for(let l=o;l0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(i,r){const n=i.placedSymbolArray.get(r),o=n.vertexStartIndex+4*n.numGlyphs;for(let s=n.vertexStartIndex;so[i]-o[r]||s[r]-s[i]),a}addToSortKeyRanges(i,r){const n=this.sortKeyRanges[this.sortKeyRanges.length-1];n&&n.sortKey===r?n.symbolInstanceEnd=i+1:this.sortKeyRanges.push({sortKey:r,symbolInstanceStart:i,symbolInstanceEnd:i+1})}sortFeatures(i){if(this.sortFeaturesByY&&this.sortedAngle!==i&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){for(const r of(this.symbolInstanceIndexes=this.getSortedSymbolIndexes(i),this.sortedAngle=i,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[],this.symbolInstanceIndexes)){const n=this.symbolInstances.get(r);this.featureSortOrder.push(n.featureIndex),[n.rightJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.leftJustifiedTextSymbolIndex].forEach((i,r,n)=>{i>=0&&n.indexOf(i)===r&&this.addIndicesForPlacedSymbol(this.text,i)}),n.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,n.verticalPlacedTextSymbolIndex),n.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,n.placedIconSymbolIndex),n.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,n.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}r$("SymbolBucket",lj,{omit:["layers","collisionBoxArray","features","compareText"]}),lj.MAX_GLYPHS=65535,lj.addDynamicAttributes=lU;const lG=new n$({"symbol-placement":new nV(tr.layout_symbol["symbol-placement"]),"symbol-spacing":new nV(tr.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new nV(tr.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new nN(tr.layout_symbol["symbol-sort-key"]),"symbol-z-order":new nV(tr.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new nV(tr.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new nV(tr.layout_symbol["icon-ignore-placement"]),"icon-optional":new nV(tr.layout_symbol["icon-optional"]),"icon-rotation-alignment":new nV(tr.layout_symbol["icon-rotation-alignment"]),"icon-size":new nN(tr.layout_symbol["icon-size"]),"icon-text-fit":new nV(tr.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new nV(tr.layout_symbol["icon-text-fit-padding"]),"icon-image":new nN(tr.layout_symbol["icon-image"]),"icon-rotate":new nN(tr.layout_symbol["icon-rotate"]),"icon-padding":new nV(tr.layout_symbol["icon-padding"]),"icon-keep-upright":new nV(tr.layout_symbol["icon-keep-upright"]),"icon-offset":new nN(tr.layout_symbol["icon-offset"]),"icon-anchor":new nN(tr.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new nV(tr.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new nV(tr.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new nV(tr.layout_symbol["text-rotation-alignment"]),"text-field":new nN(tr.layout_symbol["text-field"]),"text-font":new nN(tr.layout_symbol["text-font"]),"text-size":new nN(tr.layout_symbol["text-size"]),"text-max-width":new nN(tr.layout_symbol["text-max-width"]),"text-line-height":new nN(tr.layout_symbol["text-line-height"]),"text-letter-spacing":new nN(tr.layout_symbol["text-letter-spacing"]),"text-justify":new nN(tr.layout_symbol["text-justify"]),"text-radial-offset":new nN(tr.layout_symbol["text-radial-offset"]),"text-variable-anchor":new nV(tr.layout_symbol["text-variable-anchor"]),"text-anchor":new nN(tr.layout_symbol["text-anchor"]),"text-max-angle":new nV(tr.layout_symbol["text-max-angle"]),"text-writing-mode":new nV(tr.layout_symbol["text-writing-mode"]),"text-rotate":new nN(tr.layout_symbol["text-rotate"]),"text-padding":new nV(tr.layout_symbol["text-padding"]),"text-keep-upright":new nV(tr.layout_symbol["text-keep-upright"]),"text-transform":new nN(tr.layout_symbol["text-transform"]),"text-offset":new nN(tr.layout_symbol["text-offset"]),"text-allow-overlap":new nV(tr.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new nV(tr.layout_symbol["text-ignore-placement"]),"text-optional":new nV(tr.layout_symbol["text-optional"])});var lZ={paint:new n$({"icon-opacity":new nN(tr.paint_symbol["icon-opacity"]),"icon-color":new nN(tr.paint_symbol["icon-color"]),"icon-halo-color":new nN(tr.paint_symbol["icon-halo-color"]),"icon-halo-width":new nN(tr.paint_symbol["icon-halo-width"]),"icon-halo-blur":new nN(tr.paint_symbol["icon-halo-blur"]),"icon-translate":new nV(tr.paint_symbol["icon-translate"]),"icon-translate-anchor":new nV(tr.paint_symbol["icon-translate-anchor"]),"text-opacity":new nN(tr.paint_symbol["text-opacity"]),"text-color":new nN(tr.paint_symbol["text-color"],{runtimeType:tm,getOverride:i=>i.textColor,hasOverride:i=>!!i.textColor}),"text-halo-color":new nN(tr.paint_symbol["text-halo-color"]),"text-halo-width":new nN(tr.paint_symbol["text-halo-width"]),"text-halo-blur":new nN(tr.paint_symbol["text-halo-blur"]),"text-translate":new nV(tr.paint_symbol["text-translate"]),"text-translate-anchor":new nV(tr.paint_symbol["text-translate-anchor"])}),layout:lG};class l${constructor(i){this.type=i.property.overrides?i.property.overrides.runtimeType:tu,this.defaultValue=i}evaluate(i){if(i.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(i.formattedSection))return r.getOverride(i.formattedSection)}return i.feature&&i.featureState?this.defaultValue.evaluate(i.feature,i.featureState):this.defaultValue.property.specification.default}eachChild(i){this.defaultValue.isConstant()||i(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}r$("FormatSectionOverride",l$,{omit:["defaultValue"]});class lq extends oY{constructor(i){super(i,lZ)}recalculate(i,r){super.recalculate(i,r),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));const n=this.layout.get("text-writing-mode");if(n){const o=[];for(const s of n)0>o.indexOf(s)&&o.push(s);this.layout._values["text-writing-mode"]=o}else this.layout._values["text-writing-mode"]="point"===this.layout.get("symbol-placement")?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getValueAndResolveTokens(i,r,n,o){var s;const a=this.layout.get(i).evaluate(r,{},n,o),l=this._unevaluatedLayout._values[i];return l.isDataDriven()||i8(l.value)||!a?a:(s=r.properties,a.replace(/{([^{}]+)}/g,(i,r)=>r in s?String(s[r]):""))}createBucket(i){return new lj(i)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const i of lZ.paint.overridableProperties){if(!lq.hasPaintOverride(this.layout,i))continue;const r=this.paint.get(i),n=new l$(r),o=new i6(n,r.property.specification);let s=null;s="constant"===r.value.kind||"source"===r.value.kind?new i7("source",o):new re("composite",o,r.value.zoomStops,r.value._interpolationType),this.paint._values[i]=new nO(r.property,s,r.parameters)}}_handleOverridablePaintPropertyUpdate(i,r,n){return!(!this.layout||r.isDataDriven()||n.isDataDriven())&&lq.hasPaintOverride(this.layout,i)}static hasPaintOverride(i,r){const n=i.get("text-field"),o=lZ.paint.properties[r];let s=!1;const a=i=>{for(const r of i)if(o.overrides&&o.overrides.hasOverride(r))return void(s=!0)};if("constant"===n.value.kind&&n.value.value instanceof tP)a(n.value.value.sections);else if("source"===n.value.kind){const l=i=>{s||(i instanceof tO&&tR(i.value)===tx?a(i.value.sections):i instanceof tj?a(i.sections):i.eachChild(l))},c=n.value;c._styleExpression&&l(c._styleExpression.expression)}return s}getProgramConfiguration(i){return new oZ(this,i)}}var lX={paint:new n$({"background-color":new nV(tr.paint_background["background-color"]),"background-pattern":new nG(tr.paint_background["background-pattern"]),"background-opacity":new nV(tr.paint_background["background-opacity"])})},lW={paint:new n$({"raster-opacity":new nV(tr.paint_raster["raster-opacity"]),"raster-hue-rotate":new nV(tr.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new nV(tr.paint_raster["raster-brightness-min"]),"raster-brightness-max":new nV(tr.paint_raster["raster-brightness-max"]),"raster-saturation":new nV(tr.paint_raster["raster-saturation"]),"raster-contrast":new nV(tr.paint_raster["raster-contrast"]),"raster-resampling":new nV(tr.paint_raster["raster-resampling"]),"raster-fade-duration":new nV(tr.paint_raster["raster-fade-duration"])})};class lH extends oY{constructor(i){super(i,{}),this.implementation=i}is3D(){return"3d"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}recalculate(){}updateTransitions(){}hasTransition(){}serialize(){}onAdd(i){this.implementation.onAdd&&this.implementation.onAdd(i,i.painter.context.gl)}onRemove(i){this.implementation.onRemove&&this.implementation.onRemove(i,i.painter.context.gl)}}var lK={paint:new n$({"sky-type":new nV(tr.paint_sky["sky-type"]),"sky-atmosphere-sun":new nV(tr.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new nV(tr.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new nV(tr.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new nV(tr.paint_sky["sky-gradient-radius"]),"sky-gradient":new nZ(tr.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new nV(tr.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new nV(tr.paint_sky["sky-atmosphere-color"]),"sky-opacity":new nV(tr.paint_sky["sky-opacity"])})};function lY(i,r,n){var o,s,a,l,c,h,u,d;const p=w(0,0,1),f=B(L());return o=f,s=n?-(i*O)+Math.PI:i*O,s*=.5,a=f[0],l=f[1],c=f[2],h=f[3],u=Math.sin(s),d=Math.cos(s),o[0]=a*d-c*u,o[1]=l*d+h*u,o[2]=c*d+a*u,o[3]=h*d-l*u,R(f,f,-(r*O)),P(p,p,f),A(p,p)}const lJ={circle:class extends oY{constructor(i){super(i,sx)}createBucket(i){return new so(i)}queryRadius(i){return sf("circle-radius",this,i)+sf("circle-stroke-width",this,i)+sm(this.paint.get("circle-translate"))}queryIntersectsFeature(i,r,n,o,s,a,l,c){const h=sg(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),u=this.paint.get("circle-radius").evaluate(r,n)+this.paint.get("circle-stroke-width").evaluate(r,n);return sw(i,o,a,l,c,"map"===this.paint.get("circle-pitch-alignment"),"map"===this.paint.get("circle-pitch-scale"),h,u)}getProgramIds(){return["circle"]}getProgramConfiguration(i){return new oZ(this,i)}},heatmap:class extends oY{createBucket(i){return new sS(i)}constructor(i){super(i,sk),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(i){"heatmap-color"===i&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=sP({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)}queryRadius(i){return sf("heatmap-radius",this,i)}queryIntersectsFeature(i,r,n,o,s,a,c,h){const u=this.paint.get("heatmap-radius").evaluate(r,n);return sw(i,o,a,c,h,!0,!0,new l(0,0),u)}hasOffscreenPass(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(i){return new oZ(this,i)}},hillshade:class extends oY{constructor(i){super(i,sD)}hasOffscreenPass(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility}getProgramIds(){return["hillshade","hillshadePrepare"]}getProgramConfiguration(i){return new oZ(this,i)}},fill:class extends oY{constructor(i){super(i,s9)}getProgramIds(){const i=this.paint.get("fill-pattern"),r=i&&i.constantOr(1),n=[r?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&n.push(r&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),n}getProgramConfiguration(i){return new oZ(this,i)}recalculate(i,r){super.recalculate(i,r);const n=this.paint._values["fill-outline-color"];"constant"===n.value.kind&&void 0===n.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(i){return new s6(i)}queryRadius(){return sm(this.paint.get("fill-translate"))}queryIntersectsFeature(i,r,n,o,s,a){return!i.queryGeometry.isAboveHorizon&&sa(s_(i.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),o)}isTileClipped(){return!0}},"fill-extrusion":class extends oY{constructor(i){super(i,ad)}createBucket(i){return new au(i)}queryRadius(){return sm(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}getProgramIds(){return[this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(i){return new oZ(this,i)}queryIntersectsFeature(i,r,n,o,s,a,c,h,u){var d,p;const f=sg(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),m=this.paint.get("fill-extrusion-height").evaluate(r,n),_=this.paint.get("fill-extrusion-base").evaluate(r,n),g=[0,0],y=h&&a.elevation,x=a.elevation?a.elevation.exaggeration():1;if(y){const v=i.tile.getBucket(this).centroidVertexArray,b=u+1;if(b=3){for(let a=0;a1){if(sl(i,r))return!0;for(let o=0;o1&&(c=i[++l]);const d=Math.abs(h-c.left),p=Math.abs(h-c.right),f=Math.min(d,p),m=s/n*(o+1);if(c.isDash){const _=o-Math.abs(m);u=Math.sqrt(f*f+_*_)}else u=o-Math.sqrt(f*f+m*m);this.image.data[a+h]=Math.max(0,Math.min(255,u+128))}}}addRegularDash(i,r){for(let n=i.length-1;n>=0;--n){const o=i[n],s=i[n+1];o.zeroLength?i.splice(n,1):s&&s.isDash===o.isDash&&(s.left=o.left,i.splice(n,1))}const a=i[0],l=i[i.length-1];a.isDash===l.isDash&&(a.left=l.left-this.width,l.right=a.right+this.width);const c=this.width*this.nextRow;let h=0,u=i[0];for(let d=0;d1&&(u=i[++h]);const p=Math.abs(d-u.left),f=Math.abs(d-u.right),m=Math.min(p,f);this.image.data[c+d]=Math.max(0,Math.min(255,(u.isDash?m:-m)+r+128))}}addDash(i,r){const n=this.getKey(i,r);if(this.positions[n])return this.positions[n];const o="round"===r,s=o?7:0,a=2*s+1;if(this.nextRow+a>this.height)return ea("LineAtlas out of space"),null;0===i.length&&i.push(1);let l=0;for(let c=0;c{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){delete this._channel,this._callback=()=>{}}}const l8=h.performance;function l9(i){const r=i?i.url.toString():void 0;return l8.getEntriesByName(r)}class l7{constructor(){this.tasks={},this.taskQueue=[],et(["process"],this),this.invoker=new l6(this.process),this.nextId=0}add(i,r){const n=this.nextId++,o=function({type:i,isSymbolTile:r,zoom:n}){return n=n||0,"message"===i?0:"maybePrepare"!==i||r?"parseTile"!==i||r?"parseTile"===i&&r?300-n:"maybePrepare"===i&&r?400-n:500:200-n:100-n}(r);return 0===o?(ec(),i(),{cancel(){}}):(this.tasks[n]={fn:i,metadata:r,priority:o,id:n},this.taskQueue.push(n),this.invoker.trigger(),{cancel:()=>{delete this.tasks[n]}})}process(){ec();{if(this.taskQueue=this.taskQueue.filter(i=>!!this.tasks[i]),!this.taskQueue.length)return;const i=this.pick();if(null===i)return;const r=this.tasks[i];if(delete this.tasks[i],this.taskQueue.length&&this.invoker.trigger(),!r)return;r.fn()}}pick(){let i=null,r=1/0;for(let n=0;n0;a--)s+=(r&(o=1<this.canonical.z?new cr(i,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new cr(i,this.wrap,i,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(i,r=!0){if(this.overscaledZ===i&&r)return this.key;if(i>this.canonical.z)return cn(this.wrap*+r,i,this.canonical.z,this.canonical.x,this.canonical.y);{const n=this.canonical.z-i;return cn(this.wrap*+r,i,i,this.canonical.x>>n,this.canonical.y>>n)}}isChildOf(i){if(i.wrap!==this.wrap)return!1;const r=this.canonical.z-i.canonical.z;return 0===i.overscaledZ||i.overscaledZ>r&&i.canonical.y===this.canonical.y>>r}children(i){if(this.overscaledZ>=i)return[new cr(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,n=2*this.canonical.x,o=2*this.canonical.y;return[new cr(r,this.wrap,r,n,o),new cr(r,this.wrap,r,n+1,o),new cr(r,this.wrap,r,n,o+1),new cr(r,this.wrap,r,n+1,o+1)]}isLessThan(i){return this.wrapi.wrap)&&(this.overscaledZi.overscaledZ)&&(this.canonical.xi.canonical.x)&&this.canonical.yMath.abs(o[l])){if(n[l]r[l])return null}else{const c=1/o[l];let h=(i[l]-n[l])*c,u=(r[l]-n[l])*c;if(h>u){const d=h;h=u,u=d}if(h>s&&(s=h),ua)return null}return s}function cf(i,r,n,o,s,a,l,c,h,u,d){const p=o-i,f=s-r,m=a-n,_=l-i,g=c-r,y=h-n,x=d[1]*y-d[2]*g,v=d[2]*_-d[0]*y,b=d[0]*g-d[1]*_,w=p*x+f*v+m*b;if(1e-15>Math.abs(w))return null;const T=1/w,E=u[0]-i,S=u[1]-r,I=u[2]-n,M=(E*x+S*v+I*b)*T;if(M<0||M>1)return null;const A=S*m-I*f,C=I*p-E*m,z=E*f-S*p,k=(d[0]*A+d[1]*C+d[2]*z)*T;return k<0||M+k>1?null:(_*A+g*C+y*z)*T}function cm(i,r,n,o,s,a,l,c,h){const u=1<{const a=o?1:0;s[0]=i*n,s[1]=r*n,s[2]=(i+1)*n-a,s[3]=(r+1)*n-a};let l=new cd(o);const c=[];for(let h=0;h=1;o/=2){const m=n[n.length-1];l=new cd(o);for(let _=0;_0;){const{idx:m,t:_,nodex:g,nodey:y,depth:x}=f.pop();if(this.leaves[m]){cm(g,y,x,i,r,n,o,d,p);const v=1<=B[2])return _}continue}let R=0;for(let F=0;F=h[u[V]]&&(u.splice(V,0,F),U=!0);U||(u[R]=F),R++}}for(let N=0;N=this.dim+1||r<-1||r>=this.dim+1)throw RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(i+1)}_unpackMapbox(i,r,n){return(256*i*256+256*r+n)/10-1e4}_unpackTerrarium(i,r,n){return 256*i+r+n/256-32768}static pack(i,r){const n=[0,0,0,0],o=cv.getUnpackVector(r);let s=Math.floor((i+o[3])/o[2]);return n[2]=s%256,s=Math.floor(s/256),n[1]=s%256,s=Math.floor(s/256),n[0]=s,n}getPixels(){return new sz({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(i,r,n){if(this.dim!==i.dim)throw Error("dem dimension mismatch");let o=r*this.dim,s=r*this.dim+this.dim,a=n*this.dim,l=n*this.dim+this.dim;switch(r){case -1:o=s-1;break;case 1:s=o+1}switch(n){case -1:a=l-1;break;case 1:l=a+1}const c=-r*this.dim,h=-n*this.dim;for(let u=a;u{this.remove(i,s)},n)),this.data[o].push(s),this.order.push(o),this.order.length>this.max){const a=this._getAndRemoveByKey(this.order[0]);a&&this.onRemove(a)}return this}has(i){return i.wrapped().key in this.data}getAndRemove(i){return this.has(i)?this._getAndRemoveByKey(i.wrapped().key):null}_getAndRemoveByKey(i){const r=this.data[i].shift();return r.timeout&&clearTimeout(r.timeout),0===this.data[i].length&&delete this.data[i],this.order.splice(this.order.indexOf(i),1),r.value}getByKey(i){const r=this.data[i];return r?r[0].value:null}get(i){return this.has(i)?this.data[i.wrapped().key][0].value:null}remove(i,r){if(!this.has(i))return this;const n=i.wrapped().key,o=void 0===r?0:this.data[n].indexOf(r),s=this.data[n][o];return this.data[n].splice(o,1),s.timeout&&clearTimeout(s.timeout),0===this.data[n].length&&delete this.data[n],this.onRemove(s.value),this.order.splice(this.order.indexOf(n),1),this}setMaxSize(i){for(this.max=i;this.order.length>this.max;){const r=this._getAndRemoveByKey(this.order[0]);r&&this.onRemove(r)}return this}filter(i){const r=[];for(const n in this.data)for(const o of this.data[n])i(o.value)||r.push(o);for(const s of r)this.remove(s.value.tileID,s)}}class cw extends ti{constructor(i,r,n){super(),this.id=i,this._onlySymbols=n,r.on("data",i=>{"source"===i.dataType&&"metadata"===i.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&"source"===i.dataType&&"content"===i.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform))}),r.on("error",()=>{this._sourceErrored=!0}),this._source=r,this._tiles={},this._cache=new cb(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=null,this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new cu}onAdd(i){this.map=i,this._minTileCacheSize=i?i._minTileCacheSize:null,this._maxTileCacheSize=i?i._maxTileCacheSize:null}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(const i in this._tiles){const r=this._tiles[i];if("loaded"!==r.state&&"errored"!==r.state)return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const i=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,i&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(i,r){return i.isSymbolTile=this._onlySymbols,this._source.loadTile(i,r)}_unloadTile(i){if(this._source.unloadTile)return this._source.unloadTile(i,()=>{})}_abortTile(i){if(this._source.abortTile)return this._source.abortTile(i,()=>{})}serialize(){return this._source.serialize()}prepare(i){for(const r in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){const n=this._tiles[r];n.upload(i),n.prepare(this.map.style.imageManager)}}getIds(){return W(this._tiles).map(i=>i.tileID).sort(cT).map(i=>i.key)}getRenderableIds(i){const r=[];for(const n in this._tiles)this._isIdRenderable(+n,i)&&r.push(this._tiles[n]);return i?r.sort((i,r)=>{const n=i.tileID,o=r.tileID,s=new l(n.canonical.x,n.canonical.y)._rotate(this.transform.angle),a=new l(o.canonical.x,o.canonical.y)._rotate(this.transform.angle);return n.overscaledZ-o.overscaledZ||a.y-s.y||a.x-s.x}).map(i=>i.tileID.key):r.map(i=>i.tileID).sort(cT).map(i=>i.key)}hasRenderableParent(i){const r=this.findLoadedParent(i,0);return!!r&&this._isIdRenderable(r.tileID.key)}_isIdRenderable(i,r){return this._tiles[i]&&this._tiles[i].hasData()&&!this._coveredTiles[i]&&(r||!this._tiles[i].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else for(const i in this._cache.reset(),this._tiles)"errored"!==this._tiles[i].state&&this._reloadTile(+i,"reloading")}_reloadTile(i,r){const n=this._tiles[i];n&&("loading"!==n.state&&(n.state=r),this._loadTile(n,this._tileLoaded.bind(this,n,i,r)))}_tileLoaded(i,r,n,o){if(o){if(i.state="errored",404!==o.status)this._source.fire(new tt(o,{tile:i}));else if("raster-dem"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){const s=this.map.painter.terrain;this.update(this.transform,s.getScaledDemTileSize(),!0),s.resetTileLookupCache(this.id)}else this.update(this.transform)}else i.timeAdded=ex.now(),"expired"===n&&(i.refreshedUponExpiration=!0),this._setTileReloadTimer(r,i),"raster-dem"===this._source.type&&i.dem&&this._backfillDEM(i),this._state.initializeTileState(i,this.map?this.map.painter:null),this._source.fire(new te("data",{dataType:"source",tile:i,coord:i.tileID,sourceCacheId:this.id}))}_backfillDEM(i){const r=this.getRenderableIds();for(let n=0;n1||(Math.abs(n)>1&&(1===Math.abs(n+s)?n+=s:1===Math.abs(n-s)&&(n-=s)),r.dem&&i.dem&&(i.dem.backfillBorder(r.dem,n,o),i.neighboringTiles&&i.neighboringTiles[a]&&(i.neighboringTiles[a].backfilled=!0)))}}getTile(i){return this.getTileByID(i.key)}getTileByID(i){return this._tiles[i]}_retainLoadedChildren(i,r,n,o){for(const s in this._tiles){let a=this._tiles[s];if(o[s]||!a.hasData()||a.tileID.overscaledZ<=r||a.tileID.overscaledZ>n)continue;let l=a.tileID;for(;a&&a.tileID.overscaledZ>r+1;){const c=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[c.key])&&a.hasData()&&(l=c)}let h=l;for(;h.overscaledZ>r;)if(i[(h=h.scaledTo(h.overscaledZ-1)).key]){o[l.key]=l;break}}}findLoadedParent(i,r){if(i.key in this._loadedParentTiles){const n=this._loadedParentTiles[i.key];return n&&n.tileID.overscaledZ>=r?n:null}for(let o=i.overscaledZ-1;o>=r;o--){const s=i.scaledTo(o),a=this._getLoadedTile(s);if(a)return a}}_getLoadedTile(i){const r=this._tiles[i.key];return r&&r.hasData()?r:this._cache.getByKey(this._source.reparseOverscaled?i.wrapped().key:i.canonical.key)}updateCacheSize(i,r){r=r||this._source.tileSize;const n=Math.ceil(i.width/r)+1,o=Math.ceil(i.height/r)+1,s=Math.floor(n*o*5),a="number"==typeof this._minTileCacheSize?Math.max(this._minTileCacheSize,s):s,l="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,a):a;this._cache.setMaxSize(l)}handleWrapJump(i){const r=Math.round((i-(void 0===this._prevLng?i:this._prevLng))/360);if(this._prevLng=i,r){const n={};for(const o in this._tiles){const s=this._tiles[o];s.tileID=s.tileID.unwrapTo(s.tileID.wrap+r),n[s.tileID.key]=s}for(const a in this._tiles=n,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(const l in this._tiles)this._setTileReloadTimer(+l,this._tiles[l])}}update(i,r,n){let o;if(this.transform=i,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!n)return;this.updateCacheSize(i,r),"globe"!==this.transform.projection.name&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?o=i.getVisibleUnwrappedCoordinates(this._source.tileID).map(i=>new cr(i.canonical.z,i.wrap,i.canonical.z,i.canonical.x,i.canonical.y)):(o=i.coveringTiles({tileSize:r||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!n,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(o=o.filter(i=>this._source.hasTile(i)))):o=[];const s=this._updateRetainedTiles(o);if(cE(this._source.type)&&0!==o.length){const a={},l={},c=Object.keys(s);for(const h of c){const u=s[h],d=this._tiles[h];if(!d||d.fadeEndTime&&d.fadeEndTime<=ex.now())continue;const p=this.findLoadedParent(u,Math.max(u.overscaledZ-cw.maxOverzooming,this._source.minzoom));p&&(this._addTile(p.tileID),a[p.tileID.key]=p.tileID),l[h]=u}const f=o[o.length-1].overscaledZ;for(const m in this._tiles){const _=this._tiles[m];if(s[m]||!_.hasData())continue;let g=_.tileID;for(;g.overscaledZ>f;){g=g.scaledTo(g.overscaledZ-1);const y=this._tiles[g.key];if(y&&y.hasData()&&l[g.key]){s[m]=_.tileID;break}}}for(const x in a)s[x]||(this._coveredTiles[x]=!0,s[x]=a[x])}for(const v in s)this._tiles[v].clearFadeHold();const b=function(i,r){const n=[];for(const o in i)o in r||n.push(o);return n}(this._tiles,s);for(const w of b){const T=this._tiles[w];T.hasSymbolBuckets&&!T.holdingForFade()?T.setHoldDuration(this.map._fadeDuration):T.hasSymbolBuckets&&!T.symbolFadeFinished()||this._removeTile(+w)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(const i in this._tiles)this._tiles[i].holdingForFade()&&this._removeTile(+i)}_updateRetainedTiles(i){const r={};if(0===i.length)return r;const n={},o=i.reduce((i,r)=>Math.min(i,r.overscaledZ),1/0),s=i[0].overscaledZ,a=Math.max(s-cw.maxOverzooming,this._source.minzoom),l=Math.max(s+cw.maxUnderzooming,this._source.minzoom),c={};for(const h of i){const u=this._addTile(h);r[h.key]=h,u.hasData()||o=this._source.maxzoom){const f=d.children(this._source.maxzoom)[0],m=this.getTile(f);if(m&&m.hasData()){r[f.key]=f;continue}}else{const _=d.children(this._source.maxzoom);if(r[_[0].key]&&r[_[1].key]&&r[_[2].key]&&r[_[3].key])continue}let g=p.wasRequested();for(let y=d.overscaledZ-1;y>=a;--y){const x=d.scaledTo(y);if(n[x.key]||(n[x.key]=!0,(p=this.getTile(x))||!g||(p=this._addTile(x)),p&&(r[x.key]=x,g=p.wasRequested(),p.hasData())))break}}return r}_updateLoadedParentTileCache(){for(const i in this._loadedParentTiles={},this._tiles){const r=[];let n,o=this._tiles[i].tileID;for(;o.overscaledZ>0;){if(o.key in this._loadedParentTiles){n=this._loadedParentTiles[o.key];break}r.push(o.key);const s=o.scaledTo(o.overscaledZ-1);if(n=this._getLoadedTile(s))break;o=s}for(const a of r)this._loadedParentTiles[a]=n}}_addTile(i){let r=this._tiles[i.key];if(r)return r;(r=this._cache.getAndRemove(i))&&(this._setTileReloadTimer(i.key,r),r.tileID=i,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[i.key]&&(clearTimeout(this._cacheTimers[i.key]),delete this._cacheTimers[i.key],this._setTileReloadTimer(i.key,r)));const n=Boolean(r);if(!n){const o=this.map?this.map.painter:null,s="raster"===this._source.type||"raster-dem"===this._source.type;r=new cW(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,o,s),this._loadTile(r,this._tileLoaded.bind(this,r,i.key,r.state))}return r?(r.uses++,this._tiles[i.key]=r,n||this._source.fire(new te("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r):null}_setTileReloadTimer(i,r){i in this._timers&&(clearTimeout(this._timers[i]),delete this._timers[i]);const n=r.getExpiryTimeout();n&&(this._timers[i]=setTimeout(()=>{this._reloadTile(i,"expired"),delete this._timers[i]},n))}_removeTile(i){const r=this._tiles[i];r&&(r.uses--,delete this._tiles[i],this._timers[i]&&(clearTimeout(this._timers[i]),delete this._timers[i]),r.uses>0||(r.hasData()&&"reloading"!==r.state?this._cache.add(r.tileID,r,r.getExpiryTimeout()):(r.aborted=!0,this._abortTile(r),this._unloadTile(r))))}clearTiles(){for(const i in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(+i);this._source._clear&&this._source._clear(),this._cache.reset()}tilesIn(i,r,n){const o=[],s=this.transform;if(!s)return o;for(const a in this._tiles){const l=this._tiles[a];if(n&&l.clearQueryDebugViz(),l.holdingForFade())continue;const c=i.containsTile(l,s,r);c&&o.push(c)}return o}getVisibleCoordinates(i){const r=this.getRenderableIds(i).map(i=>this._tiles[i].tileID);for(const n of r)n.projMatrix=this.transform.calculateProjMatrix(n.toUnwrapped());return r}hasTransition(){if(this._source.hasTransition())return!0;if(cE(this._source.type))for(const i in this._tiles){const r=this._tiles[i];if(void 0!==r.fadeEndTime&&r.fadeEndTime>=ex.now())return!0}return!1}setFeatureState(i,r,n){this._state.updateState(i=i||"_geojsonTileLayer",r,n)}removeFeatureState(i,r,n){this._state.removeFeatureState(i=i||"_geojsonTileLayer",r,n)}getFeatureState(i,r){return this._state.getState(i=i||"_geojsonTileLayer",r)}setDependencies(i,r,n){const o=this._tiles[i];o&&o.setDependencies(r,n)}reloadTilesForDependencies(i,r){for(const n in this._tiles)this._tiles[n].hasDependency(i,r)&&this._reloadTile(+n,"reloading");this._cache.filter(n=>!n.hasDependency(i,r))}_preloadTiles(i,r){const n=new Map,o=Array.isArray(i)?i:[i],s=this.map.painter.terrain,a=this.usedForTerrain&&s?s.getScaledDemTileSize():this._source.tileSize;for(const l of o){const c=l.coveringTiles({tileSize:a,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const h of c)n.set(h.key,h);this.usedForTerrain&&l.updateElevation(!1)}const u=Array.from(n.values()),d="raster"===this._source.type||"raster-dem"===this._source.type;X(u,(i,r)=>{const n=new cW(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,this.map.painter,d);this._loadTile(n,i=>{"raster-dem"===this._source.type&&n.dem&&this._backfillDEM(n),r(i,n)})},r)}}function cT(i,r){const n=Math.abs(2*i.wrap)-+(i.wrap<0),o=Math.abs(2*r.wrap)-+(r.wrap<0);return i.overscaledZ-r.overscaledZ||o-n||r.canonical.y-i.canonical.y||r.canonical.x-i.canonical.x}function cE(i){return"raster"===i||"image"===i||"video"===i}cw.maxOverzooming=10,cw.maxUnderzooming=3;class cS{constructor(i,r,n){this._demTile=i,this._dem=this._demTile.dem,this._scale=r,this._offset=n}static create(i,r,n){const o=n||i.findDEMTileFor(r);if(!o||!o.dem)return;const s=o.dem,a=o.tileID,l=1<=0&&d[3]>=0&&c.insert(l,d[0],d[1],d[2],d[3])}}loadVTLayers(){if(!this.vtLayers)for(const i in this.vtLayers=new aa.VectorTile(new aV(this.rawTileData)).layers,this.sourceLayerCoder=new cc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={},this.vtLayers)this.vtFeatures[i]=[];return this.vtLayers}query(i,r,n,o){let s;this.loadVTLayers();const a=i.params||{},l=rh(a.filter),c=i.tileResult,h=i.transform,u=c.bufferedTilespaceBounds,d=this.grid.query(u.min.x,u.min.y,u.max.x,u.max.y,(i,r,n,o)=>sp(c.bufferedTilespaceGeometry,i,r,n,o));d.sort(cA);let p=null;h.elevation&&d.length>0&&(p=cS.create(h.elevation,this.tileID));const f={};for(let m=0;m(y||(y=si(r,this.tileID.canonical,i.tileTransform)),n.queryIntersectsFeature(c,r,o,y,this.z,i.transform,i.pixelPosMatrix,p,s)))}return f}loadMatchingFeature(i,r,n,o,s,a,l,c,h){const{featureIndex:u,bucketIndex:d,sourceLayerIndex:p,layoutVertexArrayOffset:f}=r,m=this.bucketLayerIDs[d];if(o&&!function(i,r){for(let n=0;n=0)return!0;return!1}(o,m))return;const _=this.sourceLayerCoder.decode(p),g=this.vtLayers[_].feature(u);if(n.needGeometry){const y=sr(g,!0);if(!n.filter(new nk(this.tileID.overscaledZ),y,this.tileID.canonical))return}else if(!n.filter(new nk(this.tileID.overscaledZ),g))return;const x=this.getId(g,_);for(let v=0;vo.indexOf(b))continue;const w=a[b];if(!w)continue;let T={};void 0!==x&&c&&(T=c.getState(w.sourceLayer||"_geojsonTileLayer",x));const E=H({},l[b]);E.paint=cM(E.paint,w.paint,g,T,s),E.layout=cM(E.layout,w.layout,g,T,s);const S=!h||h(g,w,T,f);if(!S)continue;const I=new ch(g,this.z,this.x,this.y,x);I.layer=E;let M=i[b];void 0===M&&(M=i[b]=[]),M.push({featureIndex:u,feature:I,intersectionZ:S})}}lookupSymbolFeatures(i,r,n,o,s,a,l,c){const h={};this.loadVTLayers();const u=rh(s);for(const d of i)this.loadMatchingFeature(h,{bucketIndex:n,sourceLayerIndex:o,featureIndex:d,layoutVertexArrayOffset:0},u,a,l,c,r);return h}loadFeature(i){const{featureIndex:r,sourceLayerIndex:n}=i;this.loadVTLayers();const o=this.sourceLayerCoder.decode(n),s=this.vtFeatures[o];if(s[r])return s[r];const a=this.vtLayers[o].feature(r);return s[r]=a,a}hasLayer(i){for(const r of this.bucketLayerIDs)for(const n of r)if(i===n)return!0;return!1}getId(i,r){let n=i.id;return this.promoteId&&"boolean"==typeof(n=i.properties["string"==typeof this.promoteId?this.promoteId:this.promoteId[r]])&&(n=Number(n)),n}}function cM(i,r,n,o,s){return er(i,(i,a)=>{const l=r instanceof nU?r.get(a):null;return l&&l.evaluate?l.evaluate(n,o,s):l})}function cA(i,r){return r-i}r$("FeatureIndex",cI,{omit:["rawTileData","sourceLayerCoder"]});var cC=nK([{name:"a_pos",type:"Int16",components:2}]);const cz=new Uint16Array(8184);for(let ck=0;ck<2046;ck++){let cP=ck+2,cD=0,cL=0,cB=0,cR=0,cF=0,cO=0;for(1&cP?cB=cR=cF=32:cD=cL=cO=32;(cP>>=1)>1;){const cU=cD+cB>>1,cV=cL+cR>>1;1&cP?(cB=cD,cR=cL,cD=cF,cL=cO):(cD=cB,cL=cR,cB=cF,cR=cO),cF=cU,cO=cV}const cN=4*ck;cz[cN+0]=cD,cz[cN+1]=cL,cz[cN+2]=cB,cz[cN+3]=cR}const cj=new Uint16Array(2178),cG=new Uint8Array(1089),cZ=new Uint16Array(1089);function c$(i){return 0===i?-.03125:32===i?.03125:0}var cq=nK([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const cX={type:2,extent:8192,loadGeometry:()=>[[new l(0,0),new l(8193,0),new l(8193,8193),new l(0,8193),new l(0,0)]]};class cW{constructor(i,r,n,o,s){this.tileID=i,this.uid=Y(),this.uses=0,this.tileSize=r,this.tileZoom=n,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=s,this.expiredRequestCount=0,this.state="loading",o&&o.transform&&(this.projection=o.transform.projection)}registerFadeDuration(i){const r=i+this.timeAdded;rr.getLayer(i)).filter(Boolean);if(0!==s.length)for(const a of(o.layers=s,o.stateDependentLayerIds&&(o.stateDependentLayers=o.stateDependentLayerIds.map(i=>s.filter(r=>r.id===i)[0])),s))n[a.id]=o}return n}(i.buckets,r.style),this.hasSymbolBuckets=!1,this.buckets){const s=this.buckets[o];if(s instanceof lj){if(this.hasSymbolBuckets=!0,!n)break;s.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const a in this.buckets){const l=this.buckets[a];if(l instanceof lj&&l.hasRTLText){this.hasRTLText=!0,nz.isLoading()||nz.isLoaded()||"deferred"!==nA()||nC();break}}for(const c in this.queryPadding=0,this.buckets){const h=this.buckets[c];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(c).queryRadius(h))}i.imageAtlas&&(this.imageAtlas=i.imageAtlas),i.glyphAtlasImage&&(this.glyphAtlasImage=i.glyphAtlasImage),i.lineAtlas&&(this.lineAtlas=i.lineAtlas)}else this.collisionBoxArray=new od}unloadVectorData(){if(this.hasData()){for(const i in this.buckets)this.buckets[i].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugIndexBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this.globeGridBuffer&&(this.globeGridBuffer.destroy(),this.globeGridBuffer=null),this.globePoleBuffer&&(this.globePoleBuffer.destroy(),this.globePoleBuffer=null),this.latestFeatureIndex=null,this.state="unloaded"}}getBucket(i){return this.buckets[i.id]}upload(i){for(const r in this.buckets){const n=this.buckets[r];n.uploadPending()&&n.upload(i)}const o=i.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new l5(i,this.imageAtlas.image,o.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new l5(i,this.glyphAtlasImage,o.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new l5(i,this.lineAtlas.image,o.ALPHA),this.lineAtlas.uploaded=!0)}prepare(i){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(i,this.imageAtlasTexture)}queryRenderedFeatures(i,r,n,o,s,a,l,c){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:o,pixelPosMatrix:l,transform:a,params:s,tileTransform:this.tileTransform},i,r,n):{}}querySourceFeatures(i,r){const n=this.latestFeatureIndex;if(!n||!n.rawTileData)return;const o=n.loadVTLayers(),s=r?r.sourceLayer:"",a=o._geojsonTileLayer||o[s];if(!a)return;const l=rh(r&&r.filter),{z:c,x:h,y:u}=this.tileID.canonical,d={z:c,x:h,y:u};for(let p=0;po)s=!1;else if(r){if(this.expirationTime=0;d--){const p=4*d,f=cz[p+0],m=cz[p+1],_=cz[p+2],g=cz[p+3],y=f+_>>1,x=m+g>>1,v=y+x-m,b=x+f-y,w=33*m+f,T=33*g+_,E=33*x+y,S=Math.hypot((cj[2*w+0]+cj[2*T+0])/2-cj[2*E+0],(cj[2*w+1]+cj[2*T+1])/2-cj[2*E+1])>=16;if(cG[E]=cG[E]||(S?1:0),d<1022){const I=(m+b>>1)*33+(f+v>>1),M=(g+b>>1)*33+(_+v>>1);cG[E]=cG[E]||cG[I]||cG[M]}}const A=new nQ,C=new oe;let z=0;function k(i,r){const n=33*r+i;return 0===cZ[n]&&(A.emplaceBack(cj[2*n+0],cj[2*n+1],8192*i/32,8192*r/32),cZ[n]=++z),cZ[n]-1}function P(i,r,n,o,s,a){const l=i+n>>1,c=r+o>>1;if(Math.abs(i-s)+Math.abs(r-a)>1&&cG[33*c+l])P(s,a,i,r,l,c),P(n,o,s,a,l,c);else{const h=k(i,r),u=k(n,o),d=k(s,a);C.emplaceBack(h,u,d)}}return P(0,0,32,32,32,0),P(32,32,0,0,0,32),{vertices:A,indices:C}}(this.tileID.canonical,r);n=a.vertices,o=a.indices}else{for(const{x:l,y:c}of(n=new nQ,o=new oe,s))n.emplaceBack(l,c,0,0);const h=sR(n.int16,void 0,4);for(let u=0;u{const o=65*n+r;i.emplaceBack(o+1,o,o+65),i.emplaceBack(o+65,o+65+1,o+1)};for(let n=0;n<64;n++)for(let o=0;o<64;o++)r(o,n);return i}getWirefameBuffer(i){if(!this.wireframeSegments){const r=this._createWireframeGrid();this.wireframeIndexBuffer=i.createIndexBuffer(r),this.wireframeSegments=o0.simpleSegment(0,0,4096,r.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}_createWireframeGrid(){const i=new oa,r=(r,n)=>{const o=65*n+r;i.emplaceBack(o,o+1),i.emplaceBack(o,o+65),i.emplaceBack(o,o+65+1)};for(let n=0;n<64;n++)for(let o=0;o<64;o++)r(o,n);return i}}function he(i,r){if(!r.isReprojectedInTileSpace)return{scale:1<b&&(w(i,u,o,s,c,h),w(u,n,c,h,a,l))}w(p,f,o,a,s,a),w(f,m,s,a,s,l),w(m,_,s,l,o,l),w(_,p,o,l,o,a),g-=b,y-=b,x+=b,v+=b;const T=1/Math.max(x-g,v-y);return{scale:T,x:g*T,y:y*T,x2:x*T,y2:v*T,projection:r}}class ht{constructor(i){const r={},n=[];for(const o in i){const s=i[o],a=r[o]={};for(const l in s.glyphs){const c=s.glyphs[+l];if(!c||0===c.bitmap.width||0===c.bitmap.height)continue;const h=c.metrics.localGlyph?2:1,u={x:0,y:0,w:c.bitmap.width+2*h,h:c.bitmap.height+2*h};n.push(u),a[l]=u}}const{w:d,h:p}=a4(n),f=new sC({width:d||1,height:p||1});for(const m in i){const _=i[m];for(const g in _.glyphs){const y=_.glyphs[+g];if(!y||0===y.bitmap.width||0===y.bitmap.height)continue;const x=r[m][g],v=y.metrics.localGlyph?2:1;sC.copy(y.bitmap,f,{x:0,y:0},{x:x.x+v,y:x.y+v},y.bitmap)}}this.image=f,this.positions=r}}r$("GlyphAtlas",ht);class hi{constructor(i){this.tileID=new cr(i.tileID.overscaledZ,i.tileID.wrap,i.tileID.canonical.z,i.tileID.canonical.x,i.tileID.canonical.y),this.tileZoom=i.tileZoom,this.uid=i.uid,this.zoom=i.zoom,this.canonical=i.tileID.canonical,this.pixelRatio=i.pixelRatio,this.tileSize=i.tileSize,this.source=i.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=i.showCollisionBoxes,this.collectResourceTiming=!!i.collectResourceTiming,this.returnDependencies=!!i.returnDependencies,this.promoteId=i.promoteId,this.enableTerrain=!!i.enableTerrain,this.isSymbolTile=i.isSymbolTile,this.tileTransform=he(i.tileID.canonical,i.projection),this.projection=i.projection}parse(i,r,n,o,s){let a,c,h,u;this.status="parsing",this.data=i,this.collisionBoxArray=new od;const d=new cc(Object.keys(i.layers).sort()),p=new cI(this.tileID,this.promoteId);p.bucketLayerIDs=[];const f={},m=new l4(256,256),_={featureIndex:p,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:m,availableImages:n},g=r.familiesBySource[this.source];for(const y in g){const x=i.layers[y];if(!x)continue;let v=!1,b=!1;for(const w of g[y])"symbol"===w[0].type?v=!0:b=!0;if(!0===this.isSymbolTile&&!v||!1===this.isSymbolTile&&!b)continue;1===x.version&&ea(`Vector tile source "${this.source}" layer "${y}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const T=d.encode(y),E=[];for(let S=0;S=C.maxzoom||"none"!==C.visibility&&(hr(A,this.zoom,n),(f[C.id]=C.createBucket({index:p.bucketLayerIDs.length,layers:A,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:T,sourceID:this.source,enableTerrain:this.enableTerrain,availableImages:n})).populate(E,_,this.tileID.canonical,this.tileTransform),p.bucketLayerIDs.push(A.map(i=>i.id)))}}m.trim();const z={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},k=er(_.glyphDependencies,i=>Object.keys(i).map(Number));Object.keys(k).length?o.send("getGlyphs",{uid:this.uid,stacks:k},(i,r)=>{a||(a=i,c=r,L.call(this))},void 0,!1,z):c={};const P=Object.keys(_.iconDependencies);P.length?o.send("getImages",{icons:P,source:this.source,tileID:this.tileID,type:"icons"},(i,r)=>{a||(a=i,h=r,L.call(this))},void 0,!1,z):h={};const D=Object.keys(_.patternDependencies);function L(){if(a)return s(a);if(c&&h&&u){const i=new ht(c),r=new a8(h,u);for(const o in f){const d=f[o];d instanceof lj?(hr(d.layers,this.zoom,n),function(i,r,n,o,s,a,c,h,u,d){i.createArrays(),i.tilePixelRatio=8192/(512*i.overscaling),i.compareText={},i.iconsNeedLinear=!1;const p=i.layers[0].layout,f=i.layers[0]._unevaluatedLayout._values,m={};if("composite"===i.textSizeData.kind){const{minZoom:_,maxZoom:g}=i.textSizeData;m.compositeTextSizes=[f["text-size"].possiblyEvaluate(new nk(_),h),f["text-size"].possiblyEvaluate(new nk(g),h)]}if("composite"===i.iconSizeData.kind){const{minZoom:y,maxZoom:x}=i.iconSizeData;m.compositeIconSizes=[f["icon-size"].possiblyEvaluate(new nk(y),h),f["icon-size"].possiblyEvaluate(new nk(x),h)]}m.layoutTextSize=f["text-size"].possiblyEvaluate(new nk(u+1),h),m.layoutIconSize=f["icon-size"].possiblyEvaluate(new nk(u+1),h),m.textMaxSize=f["text-size"].possiblyEvaluate(new nk(18),h);const v="map"===p.get("text-rotation-alignment")&&"point"!==p.get("symbol-placement"),b=p.get("text-size");for(const w of i.features){const T=p.get("text-font").evaluate(w,{},h).join(","),E=b.evaluate(w,{},h),S=m.layoutTextSize.evaluate(w,{},h),I=(m.layoutIconSize.evaluate(w,{},h),{horizontal:{},vertical:void 0}),M=w.text;let A,C=[0,0];if(M){const z=M.toString(),k=24*p.get("text-letter-spacing").evaluate(w,{},h),P=24*p.get("text-line-height").evaluate(w,{},h),D=!function(i){for(const r of i){var n;if(rJ(n=r.charCodeAt(0))||rQ(n)||r0(n)||nc(n)||np(n))return!1}return!0}(z)?0:k,L=p.get("text-anchor").evaluate(w,{},h),B=p.get("text-variable-anchor");if(!B){const R=p.get("text-radial-offset").evaluate(w,{},h);C=R?lz(L,[24*R,lA]):p.get("text-offset").evaluate(w,{},h).map(i=>24*i)}let F=v?"center":p.get("text-justify").evaluate(w,{},h);const U=p.get("symbol-placement"),V="point"===U,N="point"===U?24*p.get("text-max-width").evaluate(w,{},h):0,j=o=>{i.allowVerticalPlacement&&nm(z)&&(I.vertical=lt(M,r,n,s,T,N,P,L,o,D,C,a9.vertical,!0,U,S,E))};if(!v&&B){const G="auto"===F?B.map(i=>lk(i)):[F];let Z=!1;for(let $=0;$=0||!nm(z)){const W=lt(M,r,n,s,T,N,P,L,F,D,C,a9.horizontal,!1,U,S,E);W&&(I.horizontal[F]=W)}j("point"===U?"left":F)}}let H=!1;if(w.icon&&w.icon.name){const K=o[w.icon.name];K&&(A=function(i,r,n){const{horizontalAlign:o,verticalAlign:s}=ll(n),a=r[0]-i.displaySize[0]*o,l=r[1]-i.displaySize[1]*s;return{image:i,top:l,bottom:l+i.displaySize[1],left:a,right:a+i.displaySize[0]}}(s[w.icon.name],p.get("icon-offset").evaluate(w,{},h),p.get("icon-anchor").evaluate(w,{},h)),H=K.sdf,void 0===i.sdfIcons?i.sdfIcons=K.sdf:i.sdfIcons!==K.sdf&&ea("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(K.pixelRatio!==i.pixelRatio||0!==p.get("icon-rotate").constantOr(1))&&(i.iconsNeedLinear=!0))}const Y=lD(I.horizontal)||I.vertical;i.iconsInText||(i.iconsInText=!!Y&&Y.iconsInText),(Y||A)&&function(i,r,n,o,s,a,c,h,u,d,p,f,m){let _,g=a.textMaxSize.evaluate(r,{},f);void 0===g&&(g=c);const y=i.layers[0].layout,x=y.get("icon-offset").evaluate(r,{},f),v=lD(n.horizontal)||n.vertical,b=c/24,w=i.tilePixelRatio*g/24,T=i.tilePixelRatio*y.get("symbol-spacing"),E=y.get("text-padding")*i.tilePixelRatio,S=y.get("icon-padding")*i.tilePixelRatio,I=y.get("text-max-angle")*O,M="map"===y.get("text-rotation-alignment")&&"point"!==y.get("symbol-placement"),A="map"===y.get("icon-rotation-alignment")&&"point"!==y.get("symbol-placement"),C=y.get("symbol-placement"),z=T/2,k=y.get("icon-text-fit");o&&"none"!==k&&(i.allowVerticalPlacement&&n.vertical&&(_=lh(o,n.vertical,k,y.get("icon-text-fit-padding"),x,b)),v&&(o=lh(o,v,k,y.get("icon-text-fit-padding"),x,b)));const P=(l,c,h)=>{if(c.x<0||c.x>=8192||c.y<0||c.y>=8192)return;const{x:g,y:y,z:v}=m.projectTilePoint(c.x,c.y,h),b=new lu(g,y,v,0,void 0);!function(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I){const M=i.addToLineVertexArray(r,o);let A,C,z,k,P,D,L,B=0,R=0,F=0,O=0,U=-1,V=-1;const N={};let j=oM(""),G=0,Z=0;if(void 0===h._unevaluatedLayout.getValue("text-radial-offset")?[G,Z]=h.layout.get("text-offset").evaluate(w,{},I).map(i=>24*i):(G=24*h.layout.get("text-radial-offset").evaluate(w,{},I),Z=lA),i.allowVerticalPlacement&&s.vertical){const $=s.vertical;if(_)D=lB($),c&&(L=lB(c));else{const q=h.layout.get("text-rotate").evaluate(w,{},I)+90;z=lL(u,n,r,d,p,f,$,m,q,g),c&&(k=lL(u,n,r,d,p,f,c,x,q))}}if(a){const X=h.layout.get("icon-rotate").evaluate(w,{},I),W="none"!==h.layout.get("icon-text-fit"),H=lb(a,X,E,W),K=c?lb(c,X,E,W):void 0;C=lL(u,n,r,d,p,f,a,x,X),B=4*H.length;const Y=i.iconSizeData;let J=null;"source"===Y.kind?(J=[128*h.layout.get("icon-size").evaluate(w,{},I)])[0]>32640&&ea(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`):"composite"===Y.kind&&((J=[128*T.compositeIconSizes[0].evaluate(w,{},I),128*T.compositeIconSizes[1].evaluate(w,{},I)])[0]>32640||J[1]>32640)&&ea(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`),i.addSymbols(i.icon,H,J,b,v,w,!1,n,r,M.lineStartIndex,M.lineLength,-1,S,I),U=i.icon.placedSymbolArray.length-1,K&&(R=4*K.length,i.addSymbols(i.icon,K,J,b,v,w,a9.vertical,n,r,M.lineStartIndex,M.lineLength,-1,S,I),V=i.icon.placedSymbolArray.length-1)}for(const Q in s.horizontal){const ee=s.horizontal[Q];A||(j=oM(ee.text),_?P=lB(ee):A=lL(u,n,r,d,p,f,ee,m,h.layout.get("text-rotate").evaluate(w,{},I),g));const et=1===ee.positionedLines.length;if(F+=lP(i,n,r,ee,l,h,_,w,g,M,s.vertical?a9.horizontal:a9.horizontalOnly,et?Object.keys(s.horizontal):[Q],N,U,T,S,I),et)break}s.vertical&&(O+=lP(i,n,r,s.vertical,l,h,_,w,g,M,a9.vertical,["vertical"],N,V,T,S,I));let ei=-1;const er=(i,r)=>i?Math.max(i,r):r;ei=er(P,ei),ei=er(D,ei),ei=er(L,ei);const en=ei>-1?1:0;i.glyphOffsetArray.length>=lj.MAX_GLYPHS&&ea("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==w.sortKey&&i.addToSortKeyRanges(i.symbolInstances.length,w.sortKey),i.symbolInstances.emplaceBack(n.x,n.y,n.z,r.x,r.y,N.right>=0?N.right:-1,N.center>=0?N.center:-1,N.left>=0?N.left:-1,N.vertical>=0?N.vertical:-1,U,V,j,void 0!==A?A:i.collisionBoxArray.length,void 0!==A?A+1:i.collisionBoxArray.length,void 0!==z?z:i.collisionBoxArray.length,void 0!==z?z+1:i.collisionBoxArray.length,void 0!==C?C:i.collisionBoxArray.length,void 0!==C?C+1:i.collisionBoxArray.length,k||i.collisionBoxArray.length,k?k+1:i.collisionBoxArray.length,d,F,O,B,R,en,0,G,Z,ei)}(i,c,b,l,n,o,s,_,i.layers[0],i.collisionBoxArray,r.index,r.sourceLayerIndex,i.index,E,M,u,0,S,A,x,r,a,d,p,f)};if("line"===C)for(const D of l_(r.geometry,0,0,8192,8192)){const L=function(i,r,n,o,s,a,l,c,h){const u=lf(o,a,l),d=lm(o,s),p=d*l,f=0===i[0].x||i[0].x===h||0===i[0].y||i[0].y===h;return r-p=0&&T=0&&E=0&&m+d<=p){const S=new lu(T,E,0,b,g);S._round(),s&&!ld(r,S,l,s,a)||_.push(S)}}f+=v}return h||_.length||c||(_=i(r,f/2,o,s,a,l,c,!0,u)),_}(i,f?r/2*c%r:(d/2+2*a)*l*c%r,r,u,n,p,f,!1,h)}(D,T,I,n.vertical||v,o,24,w,i.overscaling,8192);for(const B of L)v&&function(i,r,n,o){const s=i.compareText;if(r in s){const a=s[r];for(let l=a.length-1;l>=0;l--)if(o.dist(a[l])1){const F=function(i,r,n,o,s,a){const l=lf(n,24,a),c=lm(n,o)*a;let h=0;const u=lp(i)/2;for(let d=0;du){const _=(u-h)/m,g=io(p.x,f.x,_),y=io(p.y,f.y,_),x=new lu(g,y,0,f.angleTo(p),d);return!l||ld(i,x,c,l,r)?x:void 0}h+=m}}(R,I,n.vertical||v,o,24,w);F&&P(R,F,f)}}else if("Polygon"===r.type)for(const U of s2(r.geometry,0)){const V=function(i,r=1,n=!1){let o=1/0,s=1/0,a=-1/0,c=-1/0;const h=i[0];for(let u=0;ua)&&(a=d.x),(!u||d.y>c)&&(c=d.y)}const p=Math.min(a-o,c-s);let f=p/2;const m=new lE([],lI);if(0===p)return new l(o,s);for(let _=o;_y.d||!y.d)&&(y=v,n&&console.log("found best %d after %d probes",Math.round(1e4*v.d)/1e4,x)),v.max-y.d<=r||(f=v.h/2,m.push(new lM(v.p.x-f,v.p.y-f,f,i)),m.push(new lM(v.p.x+f,v.p.y-f,f,i)),m.push(new lM(v.p.x-f,v.p.y+f,f,i)),m.push(new lM(v.p.x+f,v.p.y+f,f,i)),x+=4)}return n&&(console.log(`num probes: ${x}`),console.log(`best distance: ${y.d}`)),y.p}(U,16);P(U[0],new lu(V.x,V.y,0,0,void 0),f)}else if("LineString"===r.type)for(const N of r.geometry)P(N,new lu(N[0].x,N[0].y,0,0,void 0),f);else if("Point"===r.type)for(const j of r.geometry)for(const G of j)P([G],new lu(G.x,G.y,0,0,void 0),f)}(i,w,I,A,o,m,S,0,C,H,c,h,d)}a&&i.generateCollisionDebugBuffers(u,i.collisionBoxArray)}(d,c,i.positions,h,r.iconPositions,this.showCollisionBoxes,n,this.tileID.canonical,this.tileZoom,this.projection),d.projection=this.projection.name):d.hasPattern&&(d instanceof aw||d instanceof s6||d instanceof au)&&(hr(d.layers,this.zoom,n),d.addFeatures(_,this.tileID.canonical,r.patternPositions,n))}this.status="done",s(null,{buckets:W(f).filter(i=>!i.isEmpty()),featureIndex:p,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:i.image,lineAtlas:m,imageAtlas:r,glyphMap:this.returnDependencies?c:null,iconMap:this.returnDependencies?h:null,glyphPositions:this.returnDependencies?i.positions:null})}}D.length?o.send("getImages",{icons:D,source:this.source,tileID:this.tileID,type:"patterns"},(i,r)=>{a||(a=i,u=r,L.call(this))},void 0,!1,z):u={},L.call(this)}}function hr(i,r,n){const o=new nk(r);for(const s of i)s.recalculate(o,n)}class hn{constructor(i){this.entries={},this.scheduler=i}request(i,r,n,o){const s=this.entries[i]=this.entries[i]||{callbacks:[]};if(s.result){const[a,l]=s.result;return this.scheduler?this.scheduler.add(()=>{o(a,l)},r):o(a,l),()=>{}}return s.callbacks.push(o),s.cancel||(s.cancel=n((n,o)=>{for(const a of(s.result=[n,o],s.callbacks))this.scheduler?this.scheduler.add(()=>{a(n,o)},r):a(n,o);setTimeout(()=>delete this.entries[i],3e3)})),()=>{s.result||(s.callbacks=s.callbacks.filter(i=>i!==o),s.callbacks.length||(s.cancel(),delete this.entries[i]))}}}function ho(i,r,n){const o=JSON.stringify(i.request);return i.data&&(this.deduped.entries[o]={result:[null,i.data]}),this.deduped.request(o,{type:"parseTile",isSymbolTile:i.isSymbolTile,zoom:i.tileZoom},r=>{const o=e3(i.request,(i,o,s,a)=>{i?r(i):o&&r(null,{vectorTile:n?void 0:new aa.VectorTile(new aV(o)),rawData:o,cacheControl:s,expires:a})});return()=>{o.cancel(),r()}},r)}const hs=p(new Float64Array(16));class ha{constructor(i,r){this._tr=i,this._worldSize=r}createInversionMatrix(){return hs}createTileMatrix(i){let r,n,o;const s=i.canonical,a=p(new Float64Array(16)),l=this._tr.projection;if(l.isReprojectedInTileSpace){const c=he(s,l);r=1,n=c.x+i.wrap*c.scale,o=c.y,_(a,a,[r/c.scale,r/c.scale,this._tr.pixelsPerMeter/this._worldSize])}else r=this._worldSize/this._tr.zoomScale(s.z),n=(s.x+Math.pow(2,s.z)*i.wrap)*r,o=s.y*r;return m(a,a,[n,o,0]),_(a,a,[r/8192,r/8192,1]),a}pointCoordinate(i,r,n){const o=this._tr.horizonLineFromTop(!1),s=new l(i,Math.max(o,r));return this._tr.rayIntersectionCoordinate(this._tr.pointRayIntersection(s,n))}upVector(){return[0,0,1]}upVectorScale(){return 1}}const hl=Math.sqrt(3)/2,hc=Math.PI/2;function hh(i){return Math.tan((hc+i)/2)}const hu=85.051129*O,hd=85.051129*O,hp={albers:{name:"albers",range:[4,7],center:[-96,37.5],parallels:[29.5,45.5],zAxisUnit:"meters",conic:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],initializeConstants(){if(this.constants&&F(this.parallels,this.constants.parallels))return;const i=Math.sin(this.parallels[0]*O),r=(i+Math.sin(this.parallels[1]*O))/2,n=1+i*(2*r-i),o=Math.sqrt(n)/r;this.constants={n:r,c:n,r0:o,parallels:this.parallels}},project(i,r){this.initializeConstants();const n=(i-this.center[0])*O,{n:o,c:s,r0:a}=this.constants,l=Math.sqrt(s-2*o*Math.sin(r*O))/o;return{x:l*Math.sin(n*o),y:l*Math.cos(n*o)-a,z:0}},unproject(i,r){this.initializeConstants();const{n:n,c:o,r0:s}=this.constants,a=s+r;let l=Math.atan2(i,Math.abs(a))*Math.sign(a);a*n<0&&(l-=Math.PI*Math.sign(i)*Math.sign(a));const c=this.center[0]*O*n;l=q(l,-Math.PI-c,Math.PI-c);const h=l/n*U+this.center[0],u=Math.asin(Z((o-(i*i+a*a)*n*n)/(2*n),-1,1)),d=Z(u*U,-85.051129,85.051129);return new o2(h,d)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},equalEarth:{name:"equalEarth",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r=r/180*Math.PI,i=i/180*Math.PI;const n=Math.asin(hl*Math.sin(r)),o=n*n,s=o*o*o;return{x:.5*(i*Math.cos(n)/(hl*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o)))/Math.PI+.5),y:1-.5*(n*(1.340264+-.081106*o+s*(893e-6+.003796*o))/Math.PI+1),z:0}},unproject(i,r){i=(2*i-.5)*Math.PI;let n=r=(2*(1-r)-1)*Math.PI,o=n*n,s=o*o*o;for(let a,l,c=0;c<12&&(l=n*(1.340264+-.081106*o+s*(893e-6+.003796*o))-r,s=(o=(n=Z(n-(a=l/(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))),-Math.PI/3,Math.PI/3))*n)*o*o,!(1e-12>Math.abs(a)));++c);const h=hl*i*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))/Math.cos(n),u=Math.asin(Math.sin(n)/hl),d=Z(180*h/Math.PI,-180,180),p=Z(180*u/Math.PI,-85.051129,85.051129);return new o2(d,p)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},equirectangular:{name:"equirectangular",supportsWorldCopies:!0,center:[0,0],range:[3.5,7],zAxisUnit:"meters",wrap:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project:(i,r)=>({x:.5+i/360,y:.5-r/360,z:0}),unproject(i,r){const n=Z(360*(.5-r),-85.051129,85.051129);return new o2(360*(i-.5),n)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},lambertConformalConic:{name:"lambertConformalConic",range:[3.5,7],zAxisUnit:"meters",center:[0,30],parallels:[30,30],conic:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],initializeConstants(){if(this.constants&&F(this.parallels,this.constants.parallels))return;const i=this.parallels[0]*O,r=this.parallels[1]*O,n=Math.cos(i),o=i===r?Math.sin(i):Math.log(n/Math.cos(r))/Math.log(hh(r)/hh(i)),s=n*Math.pow(hh(i),o)/o;this.constants={n:o,f:s,parallels:this.parallels}},project(i,r){this.initializeConstants(),r*=O,i=(i-this.center[0])*O;const{n:n,f:o}=this.constants;o>0?r<-hc+1e-6&&(r=-hc+1e-6):r>hc-1e-6&&(r=hc-1e-6);const s=o/Math.pow(hh(r),n),a=s*Math.sin(n*i),l=o-s*Math.cos(n*i);return{x:.5*(a/Math.PI+.5),y:1-.5*(l/Math.PI+.5),z:0}},unproject(i,r){this.initializeConstants(),i=(2*i-.5)*Math.PI,r=(2*(1-r)-.5)*Math.PI;const{n:n,f:o}=this.constants,s=o-r,a=Math.sign(s),l=Math.sign(n)*Math.sqrt(i*i+s*s);let c=Math.atan2(i,Math.abs(s))*a;s*n<0&&(c-=Math.PI*Math.sign(i)*a);const h=Z(c/n*U+this.center[0],-180,180),u=Z((2*Math.atan(Math.pow(o/l,1/n))-hc)*U,-85.051129,85.051129);return new o2(h,u)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},mercator:{name:"mercator",wrap:!0,requiresDraping:!1,supportsWorldCopies:!0,supportsTerrain:!0,supportsFog:!0,supportsFreeCamera:!0,zAxisUnit:"meters",center:[0,0],project:(i,r)=>({x:o4(i),y:o6(r),z:0}),unproject(i,r){const n=o8(i),o=o9(r);return new o2(n,o)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},naturalEarth:{name:"naturalEarth",center:[0,0],range:[3.5,7],isReprojectedInTileSpace:!0,zAxisUnit:"meters",unsupportedLayers:["custom"],project(i,r){const n=(r*=O)*r,o=n*n;return{x:.5*((i*=O)*(.8707-.131979*n+o*(o*(.003971*n-.001529*o)-.013791))/Math.PI+.5),y:1-.5*(r*(1.007226+n*(.015085+o*(.028874*n-.044475-.005916*o)))/Math.PI+1),z:0}},unproject(i,r){i=(2*i-.5)*Math.PI;let n=r=(2*(1-r)-1)*Math.PI,o=25,s=0,a=n*n;do{a=n*n;const l=a*a;s=(n*(1.007226+a*(.015085+l*(.028874*a-.044475-.005916*l)))-r)/(1.007226+a*(.045255+l*(.259866*a-.311325-.005916*11*l))),n=Z(n-s,-hu,hu)}while(Math.abs(s)>1e-6&&--o>0)a=n*n;const c=Z(i/(.8707+a*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979))*U,-180,180),h=n*U;return new o2(c,h)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},winkelTripel:{name:"winkelTripel",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r*=O,i*=O;const n=Math.cos(r),o=2/Math.PI,s=Math.acos(n*Math.cos(i/2)),a=Math.sin(s)/s,l=.5*(i*o+2*n*Math.sin(i/2)/a)||0,c=.5*(r+Math.sin(r)/a)||0;return{x:.5*(l/Math.PI+.5),y:1-.5*(c/Math.PI+1),z:0}},unproject(i,r){let n=i=(2*i-.5)*Math.PI,o=r=(2*(1-r)-1)*Math.PI,s=25,a=0,l=0;do{const c=Math.cos(o),h=Math.sin(o),u=2*h*c,d=h*h,p=c*c,f=Math.cos(n/2),m=Math.sin(n/2),_=2*f*m,g=m*m,y=1-p*f*f,x=y?1/y:0,v=y?Math.acos(c*f)*Math.sqrt(1/y):0,b=.5*(2*v*c*m+2*n/Math.PI)-i,w=.5*(v*h+o)-r,T=.5*x*(p*g+v*c*f*d)+1/Math.PI,E=x*(_*u/4-v*h*m),S=.125*x*(u*m-v*h*p*_),I=.5*x*(d*f+v*g*c)+.5,M=E*S-I*T;a=(w*E-b*I)/M,l=(b*S-w*T)/M,n=Z(n-a,-Math.PI,Math.PI),o=Z(o-l,-hd,hd)}while((Math.abs(a)>1e-6||Math.abs(l)>1e-6)&&--s>0)return new o2(n*U,o*U)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)}};i.ARRAY_TYPE=u,i.AUTH_ERR_MSG=ez,i.Aabb=sb,i.Actor=class{constructor(i,r,n){this.target=i,this.parent=r,this.mapId=n,this.callbacks={},this.cancelCallbacks={},et(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=ec()?i:h,this.scheduler=new l7}send(i,r,n,o,s=!1,a){const l=Math.round(1e18*Math.random()).toString(36).substring(0,10);n&&(n.metadata=a,this.callbacks[l]=n);const c=eg(this.globalScope)?void 0:[];return this.target.postMessage({id:l,type:i,hasCallback:!!n,targetMapId:o,mustQueue:s,sourceMapId:this.mapId,data:rH(r,c)},c),{cancel:()=>{n&&delete this.callbacks[l],this.target.postMessage({id:l,type:"",targetMapId:o,sourceMapId:this.mapId})}}}receive(i){const r=i.data,n=r.id;if(n&&(!r.targetMapId||this.mapId===r.targetMapId)){if(""===r.type){const o=this.cancelCallbacks[n];delete this.cancelCallbacks[n],o&&o.cancel()}else if(r.mustQueue||ec()){const s=this.callbacks[n];this.cancelCallbacks[n]=this.scheduler.add(()=>this.processTask(n,r),s&&s.metadata||{type:"message"})}else this.processTask(n,r)}}processTask(i,r){if(""===r.type){const n=this.callbacks[i];delete this.callbacks[i],n&&(r.error?n(rK(r.error)):n(null,rK(r.data)))}else{const o=eg(this.globalScope)?void 0:[],s=r.hasCallback?(r,n)=>{delete this.cancelCallbacks[i],this.target.postMessage({id:i,type:"",sourceMapId:this.mapId,error:r?rH(r):null,data:rH(n,o)},o)}:i=>{},a=rK(r.data);if(this.parent[r.type])this.parent[r.type](r.sourceMapId,a,s);else if(this.parent.getWorkerSource){const l=r.type.split(".");this.parent.getWorkerSource(r.sourceMapId,l[0],a.source)[l[1]](a,s)}else s(Error(`Could not find function ${r.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},i.CanonicalTileID=ct,i.Color=tC,i.ColorMode=ca,i.CullFaceMode=cl,i.DEMData=cv,i.DataConstantProperty=nV,i.DedupedRequest=hn,i.DepthMode=co,i.EXTENT=8192,i.Elevation=class{getAtPointOrZero(i,r=0){return this.getAtPoint(i,r)||0}getAtPoint(i,r,n=!0){null==r&&(r=null);const o=this._source();if(!o||i.y<0||i.y>1)return r;const s=o.getSource().maxzoom,a=1<{const o=this.getAtTileOffset(i,n.x,n.y),s=r.upVector(i.canonical,n.x,n.y);return I(s,s,o*r.upVectorScale(i.canonical)),s}}getForTilePoints(i,r,n,o){const s=cS.create(this,i,o);return!!s&&(r.forEach(i=>{i[2]=this.exaggeration()*s.getElevationAt(i[0],i[1],n)}),!0)}getMinMaxForTile(i){const r=this.findDEMTileFor(i);if(!r||!r.dem)return null;const n=r.dem.tree,o=r.tileID,s=1<Math.abs(o))return!1;const s=((i[0]-this.pos[0])*r[0]+(i[1]-this.pos[1])*r[1]+(i[2]-this.pos[2])*r[2])/o;return n[0]=this.pos[0]+this.dir[0]*s,n[1]=this.pos[1]+this.dir[1]*s,n[2]=this.pos[2]+this.dir[2]*s,!0}closestPointOnSphere(i,r,n){var o,s,a,l,c,h,u;if(s=(o=this.pos)[0],a=o[1],l=o[2],c=i[0],h=i[1],u=i[2],Math.abs(s-c)<=1e-6*Math.max(1,Math.abs(s),Math.abs(c))&&Math.abs(a-h)<=1e-6*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(l-u)<=1e-6*Math.max(1,Math.abs(l),Math.abs(u))||0===r)return n[0]=n[1]=n[2]=0,!1;const[d,p,f]=this.dir,m=this.pos[0]-i[0],_=this.pos[1]-i[1],g=this.pos[2]-i[2],y=d*d+p*p+f*f,x=2*(m*d+_*p+g*f),v=x*x-4*y*(m*m+_*_+g*g-r*r);if(v<0){const b=Math.max(-x/2,0),w=m+d*b,T=_+p*b,E=g+f*b,S=Math.hypot(w,T,E);return n[0]=w*r/S,n[1]=T*r/S,n[2]=E*r/S,!1}{const I=(-x-Math.sqrt(v))/(2*y);if(I<0){const M=Math.hypot(m,_,g);return n[0]=m*r/M,n[1]=_*r/M,n[2]=g*r/M,!1}return n[0]=m+d*I,n[1]=_+p*I,n[2]=g+f*I,!0}}},i.RequestManager=class{constructor(i,r,n){this._transformRequestFn=i,this._customAccessToken=r,this._silenceAuthErrors=!!n,this._createSkuToken()}_createSkuToken(){const i=function(){let i="";for(let r=0;r<10;r++)i+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1","01",i].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=i.token,this._skuTokenExpiresAt=i.tokenExpiresAt}_isSkuTokenExpired(){return Date.now()>this._skuTokenExpiresAt}transformRequest(i,r){return this._transformRequestFn&&this._transformRequestFn(i,r)||{url:i}}normalizeStyleURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/styles/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeGlyphsURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/fonts/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeSourceURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/v4/${n.authority}.json`,n.params.push("secure"),this._makeAPIURL(n,this._customAccessToken||r)}normalizeSpriteURL(i,r,n,o){const s=eL(i);return ek(i)?(s.path=`/styles/v1${s.path}/sprite${r}${n}`,this._makeAPIURL(s,this._customAccessToken||o)):(s.path+=`${r}${n}`,eB(s))}normalizeTileURL(i,r,n){if(this._isSkuTokenExpired()&&this._createSkuToken(),i&&!ek(i))return i;const o=eL(i);o.path=o.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${r||n&&"raster"!==o.authority&&512===n?"@2x":""}${eT.supported?".webp":"$1"}`),"raster"===o.authority?o.path=`/${ev.RASTER_URL_PREFIX}${o.path}`:(o.path=o.path.replace(/^.+\/v4\//,"/"),o.path=`/${ev.TILE_URL_VERSION}${o.path}`);const s=this._customAccessToken||function(i){for(const r of i){const n=r.match(/^access_token=(.*)$/);if(n)return n[1]}return null}(o.params)||ev.ACCESS_TOKEN;return ev.REQUIRE_ACCESS_TOKEN&&s&&this._skuToken&&o.params.push(`sku=${this._skuToken}`),this._makeAPIURL(o,s)}canonicalizeTileURL(i,r){const n=eL(i);if(!n.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!n.path.match(/\.[\w]+$/))return i;let o="mapbox://";n.path.match(/^\/raster\/v1\//)?o+=`raster/${n.path.replace(`/${ev.RASTER_URL_PREFIX}/`,"")}`:o+=`tiles/${n.path.replace(`/${ev.TILE_URL_VERSION}/`,"")}`;let s=n.params;return r&&(s=s.filter(i=>!i.match(/^access_token=/))),s.length&&(o+=`?${s.join("&")}`),o}canonicalizeTileset(i,r){const n=!!r&&ek(r),o=[];for(const s of i.tiles||[])eP(s)?o.push(this.canonicalizeTileURL(s,n)):o.push(s);return o}_makeAPIURL(i,r){const n="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",o=eL(ev.API_URL);if(i.protocol=o.protocol,i.authority=o.authority,"http"===i.protocol){const s=i.params.indexOf("secure");s>=0&&i.params.splice(s,1)}if("/"!==o.path&&(i.path=`${o.path}${i.path}`),!ev.REQUIRE_ACCESS_TOKEN)return eB(i);if(r=r||ev.ACCESS_TOKEN,!this._silenceAuthErrors){if(!r)throw Error(`An API access token is required to use Mapbox GL. ${n}`);if("s"===r[0])throw Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${n}`)}return i.params=i.params.filter(i=>-1===i.indexOf("access_token")),i.params.push(`access_token=${r||""}`),eB(i)}},i.ResourceType=eQ,i.SegmentVector=o0,i.SourceCache=cw,i.StencilMode=cs,i.StructArrayLayout1ui2=ol,i.StructArrayLayout2f1f2i16=n9,i.StructArrayLayout2i4=nJ,i.StructArrayLayout2ui4=oa,i.StructArrayLayout3f12=n1,i.StructArrayLayout3ui6=oe,i.StructArrayLayout4i8=nQ,i.Texture=l5,i.Tile=cW,i.Transitionable=nL,i.Uniform1f=oP,i.Uniform1i=class extends ok{constructor(i,r){super(i,r),this.current=0}set(i){this.current!==i&&(this.current=i,this.gl.uniform1i(this.location,i))}},i.Uniform2f=class extends ok{constructor(i,r){super(i,r),this.current=[0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]||(this.current=i,this.gl.uniform2f(this.location,i[0],i[1]))}},i.Uniform3f=class extends ok{constructor(i,r){super(i,r),this.current=[0,0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]&&i[2]===this.current[2]||(this.current=i,this.gl.uniform3f(this.location,i[0],i[1],i[2]))}},i.Uniform4f=oD,i.UniformColor=oL,i.UniformMatrix2f=class extends ok{constructor(i,r){super(i,r),this.current=oF}set(i){for(let r=0;r<4;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix2fv(this.location,!1,i);break}}},i.UniformMatrix3f=class extends ok{constructor(i,r){super(i,r),this.current=oR}set(i){for(let r=0;r<9;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix3fv(this.location,!1,i);break}}},i.UniformMatrix4f=class extends ok{constructor(i,r){super(i,r),this.current=oB}set(i){if(i[12]!==this.current[12]||i[0]!==this.current[0])return this.current=i,void this.gl.uniformMatrix4fv(this.location,!1,i);for(let r=1;r<16;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix4fv(this.location,!1,i);break}}},i.UnwrappedTileID=ci,i.ValidationError=tn,i.VectorTileWorkerSource=class extends ti{constructor(i,r,n,o,s){super(),this.actor=i,this.layerIndex=r,this.availableImages=n,this.loadVectorData=s||ho,this.loading={},this.loaded={},this.deduped=new hn(i.scheduler),this.isSpriteLoaded=o,this.scheduler=i.scheduler}loadTile(i,r){const n=i.uid,o=i&&i.request,s=o&&o.collectResourceTiming,a=this.loading[n]=new hi(i);a.abort=this.loadVectorData(i,(l,c)=>{const h=!this.loading[n];if(delete this.loading[n],h||l||!c)return a.status="done",h||(this.loaded[n]=a),r(l);const u=c.rawData,d={};c.expires&&(d.expires=c.expires),c.cacheControl&&(d.cacheControl=c.cacheControl),a.vectorTile=c.vectorTile||new aa.VectorTile(new aV(u));const p=()=>{a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,(i,n)=>{if(i||!n)return r(i);const a={};if(s){const l=l9(o);l.length>0&&(a.resourceTiming=JSON.parse(JSON.stringify(l)))}r(null,H({rawTileData:u.slice(0)},n,d,a))})};this.isSpriteLoaded?p():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(p,{type:"parseTile",isSymbolTile:i.isSymbolTile,zoom:i.tileZoom}):p()}),this.loaded=this.loaded||{},this.loaded[n]=a})}reloadTile(i,r){const n=this.loaded,o=i.uid,s=this;if(n&&n[o]){const a=n[o];a.showCollisionBoxes=i.showCollisionBoxes,a.enableTerrain=!!i.enableTerrain,a.projection=i.projection;const l=(i,n)=>{const o=a.reloadCallback;o&&(delete a.reloadCallback,a.parse(a.vectorTile,s.layerIndex,this.availableImages,s.actor,o)),r(i,n)};"parsing"===a.status?a.reloadCallback=l:"done"===a.status&&(a.vectorTile?a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,l):l())}}abortTile(i,r){const n=i.uid,o=this.loading[n];o&&(o.abort&&o.abort(),delete this.loading[n]),r()}removeTile(i,r){const n=this.loaded,o=i.uid;n&&n[o]&&delete n[o],r()}},i.WritingMode=a9,i.ZoomHistory=rY,i.add=T,i.addDynamicAttributes=lU,i.adjoint=function(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=r[4],c=r[5],h=r[6],u=r[7],d=r[8];return i[0]=l*d-c*u,i[1]=s*u-o*d,i[2]=o*c-s*l,i[3]=c*h-a*d,i[4]=n*d-s*h,i[5]=s*a-n*c,i[6]=a*u-l*h,i[7]=o*h-n*u,i[8]=n*l-o*a,i},i.asyncAll=X,i.bezier=j,i.bindAll=et,i.boundsAttributes=cq,i.bufferConvexPolygon=function(i,r){const n=[];for(let o=0;oeH&&(i.getActor().send("enforceCacheSizeLimit",eW),eJ=0)},i.calculateGlobeMatrix=c9,i.calculateGlobeMercatorMatrix=function(i){const r=i.worldSize,n=Z(i.center.lat,-85.051129,85.051129),o=new l(o4(i.center.lng)*r,o6(n)*r),s=1/o5(i.center.lat)*r,a=i.pixelsPerMeter,c=r/(s/i.pixelsPerMeter),h=p(new Float64Array(16));return m(h,h,[o.x,o.y,0]),_(h,h,[c,c,a]),h},i.clamp=Z,i.clearTileCache=function(i){const r=h.caches.delete(e$);i&&r.catch(i).then(()=>i())},i.clipLine=l_,i.clone=function(i){var r=new u(16);return r[0]=i[0],r[1]=i[1],r[2]=i[2],r[3]=i[3],r[4]=i[4],r[5]=i[5],r[6]=i[6],r[7]=i[7],r[8]=i[8],r[9]=i[9],r[10]=i[10],r[11]=i[11],r[12]=i[12],r[13]=i[13],r[14]=i[14],r[15]=i[15],r},i.clone$1=eo,i.collisionCircleLayout=aP,i.config=ev,i.conjugate=function(i,r){return i[0]=-r[0],i[1]=-r[1],i[2]=-r[2],i[3]=r[3],i},i.create=function(){var i=new u(16);return u!=Float32Array&&(i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=0,i[12]=0,i[13]=0,i[14]=0),i[0]=1,i[5]=1,i[10]=1,i[15]=1,i},i.create$1=d,i.createExpression=i9,i.createLayout=nK,i.createStyleLayer=function(i){return"custom"===i.type?new lH(i):new lJ[i.type](i)},i.cross=z,i.degToRad=function(i){return i*O},i.div=function(i,r,n){return i[0]=r[0]/n[0],i[1]=r[1]/n[1],i[2]=r[2]/n[2],i},i.dot=C,i.ease=G,i.easeCubicInOut=N,i.emitValidationErrors=rU,i.endsWith=ei,i.enforceCacheSizeLimit=function(i){eK(),eq&&eq.then(r=>{r.keys().then(n=>{for(let o=0;oa&&(o+=(i[s]-a)*(i[s]-a)),r[s]Math.abs(r.parallels[0]+r.parallels[1])){let n=function(i){const r=Math.max(.01,Math.cos(i*O)),n=1/(2*Math.max(Math.PI*r,1/r));return{wrap:!0,supportsWorldCopies:!0,unsupportedLayers:["custom"],project(i,o){const s=Math.sin(o*O)/r;return{x:i*O*r*n+.5,y:-s*n+.5,z:0}},unproject(i,o){const s=Z((i-.5)/n*U/r,-180,180),a=Math.asin(Z(-(o-.5)/n*r,-1,1)),l=Z(a*U,-85.051129,85.051129);return new o2(s,l)}}}(r.parallels[0]);if("lambertConformalConic"===r.name){const{project:o,unproject:s}=hp.mercator;n={wrap:!0,supportsWorldCopies:!0,project:o,unproject:s}}return H({},i,r,n)}return H({},i,r)}(r,i):r},i.getRTLTextPluginStatus=nA,i.getReferrer=e1,i.getTilePoint=function(i,{x:r,y:n},o=0){return new l(((r-o)*i.scale-i.x)*8192,(n*i.scale-i.y)*8192)},i.getTileVec3=function(i,r,n=0){return w(((r.x-n)*i.scale-i.x)*8192,(r.y*i.scale-i.y)*8192,o7(r.z,r.y))},i.getVideo=function(i,r){const n=h.document.createElement("video");n.muted=!0,n.onloadstart=function(){r(null,n)};for(let o=0;o0&&(l=1/Math.sqrt(l)),i[0]=n*l,i[1]=o*l,i[2]=s*l,i[3]=a*l,i},i.number=io,i.ortho=function(i,r,n,o,s,a,l){var c=1/(r-n),h=1/(o-s),u=1/(a-l);return i[0]=-2*c,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=-2*h,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=2*u,i[11]=0,i[12]=(r+n)*c,i[13]=(s+o)*h,i[14]=(l+a)*u,i[15]=1,i},i.pbf=aV,i.perspective=function(i,r,n,o,s){var a,l=1/Math.tan(r/2);return i[0]=l/n,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=l,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=-1,i[12]=0,i[13]=0,i[15]=0,null!=s&&s!==1/0?(i[10]=(s+o)*(a=1/(o-s)),i[14]=2*s*o*a):(i[10]=-1,i[14]=-2*o),i},i.pick=function(i,r){const n={};for(let o=0;othis._layers[i.id]),h=c[0];if("none"===h.visibility)continue;const u=h.source||"";let d=this.familiesBySource[u];d||(d=this.familiesBySource[u]={});const p=h.sourceLayer||"_geojsonTileLayer";let f=d[p];f||(f=d[p]=[]),f.push(c)}}}const{ImageBitmap:n}=i.window;class o{loadTile(r,o){const{uid:s,encoding:a,rawImageData:l,padding:c,buildQuadTree:h}=r,u=n&&l instanceof n?this.getImageData(l,c):l;o(null,new i.DEMData(s,u,a,c<1,h))}getImageData(r,n){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(r.width,r.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=r.width,this.offscreenCanvas.height=r.height,this.offscreenCanvasContext.drawImage(r,0,0,r.width,r.height);const o=this.offscreenCanvasContext.getImageData(-n,-n,r.width+2*n,r.height+2*n);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new i.RGBAImage({width:o.width,height:o.height},o.data)}}var s,a=function i(r,n){var o,s=r&&r.type;if("FeatureCollection"===s)for(o=0;o=Math.abs(c)?n-h+c:c-h+n,n=h}n+o>=0!=!!r&&i.reverse()}const h=i.vectorTile.VectorTileFeature.prototype.toGeoJSON;class u{constructor(r){this._feature=r,this.extent=i.EXTENT,this.type=r.type,this.properties=r.tags,"id"in r&&!isNaN(r.id)&&(this.id=parseInt(r.id,10))}loadGeometry(){if(1===this._feature.type){const r=[];for(const n of this._feature.geometry)r.push([new i.pointGeometry(n[0],n[1])]);return r}{const o=[];for(const s of this._feature.geometry){const a=[];for(const l of s)a.push(new i.pointGeometry(l[0],l[1]));o.push(a)}return o}}toGeoJSON(i,r,n){return h.call(this,i,r,n)}}class d{constructor(r){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=i.EXTENT,this.length=r.length,this._features=r}feature(i){return new u(this._features[i])}}var p=i.vectorTile.VectorTileFeature;function f(i,r){this.options=r||{},this.features=i,this.length=i.length}function m(i,r){this.id="number"==typeof i.id?i.id:void 0,this.type=i.type,this.rawGeometry=1===i.type?[i.geometry]:i.geometry,this.properties=i.tags,this.extent=r||4096}f.prototype.feature=function(i){return new m(this.features[i],this.options.extent)},m.prototype.loadGeometry=function(){var r=this.rawGeometry;this.geometry=[];for(var n=0;n>31}function T(i,r){for(var n=i.loadGeometry(),o=i.type,s=0,a=0,l=n.length,c=0;ci[0],C=i=>i[1];class z{constructor(i,r=A,n=C,o=64,s=Float64Array){this.nodeSize=o,this.points=i;const a=i.length<65536?Uint16Array:Uint32Array,l=this.ids=new a(i.length),c=this.coords=new s(2*i.length);for(let h=0;h>1;(function i(r,n,o,s,a,l){for(;a>s;){if(a-s>600){const c=a-s+1,h=o-s+1,u=Math.log(c),d=.5*Math.exp(2*u/3),p=.5*Math.sqrt(u*d*(c-d)/c)*(h-c/2<0?-1:1);i(r,n,o,Math.max(s,Math.floor(o-h*d/c+p)),Math.min(a,Math.floor(o+(c-h)*d/c+p)),l)}const f=n[2*o+l];let m=s,_=a;for(S(r,n,s,o),n[2*a+l]>f&&S(r,n,s,a);m<_;){for(S(r,n,m,_),m++,_--;n[2*m+l]f;)_--}n[2*s+l]===f?S(r,n,s,_):S(r,n,++_,a),_<=o&&(s=_+1),o<=_&&(a=_-1)}})(r,n,c,s,a,l%2),i(r,n,o,s,c-1,l+1),i(r,n,o,c+1,a,l+1)}(l,c,o,0,l.length-1,0)}range(i,r,n,o){return function(i,r,n,o,s,a,l){let c,h;const u=[0,i.length-1,0],d=[];for(;u.length;){const p=u.pop(),f=u.pop(),m=u.pop();if(f-m<=l){for(let _=m;_<=f;_++)c=r[2*_],h=r[2*_+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[_]);continue}const g=Math.floor((m+f)/2);c=r[2*g],h=r[2*g+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[g]);const y=(p+1)%2;(0===p?n<=c:o<=h)&&(u.push(m),u.push(g-1),u.push(y)),(0===p?s>=c:a>=h)&&(u.push(g+1),u.push(f),u.push(y))}return d}(this.ids,this.coords,i,r,n,o,this.nodeSize)}within(i,r,n){return function(i,r,n,o,s,a){const l=[0,i.length-1,0],c=[],h=s*s;for(;l.length;){const u=l.pop(),d=l.pop(),p=l.pop();if(d-p<=a){for(let f=p;f<=d;f++)M(r[2*f],r[2*f+1],n,o)<=h&&c.push(i[f]);continue}const m=Math.floor((p+d)/2),_=r[2*m],g=r[2*m+1];M(_,g,n,o)<=h&&c.push(i[m]);const y=(u+1)%2;(0===u?n-s<=_:o-s<=g)&&(l.push(p),l.push(m-1),l.push(y)),(0===u?n+s>=_:o+s>=g)&&(l.push(m+1),l.push(d),l.push(y))}return c}(this.ids,this.coords,i,r,n,this.nodeSize)}}const k={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:i=>i},P=Math.fround||(s=new Float32Array(1),i=>(s[0]=+i,s[0]));class D{constructor(i){this.options=O(Object.create(k),i),this.trees=Array(this.options.maxZoom+1)}load(i){const{log:r,minZoom:n,maxZoom:o,nodeSize:s}=this.options;r&&console.time("total time");const a=`prepare ${i.length} points`;r&&console.time(a),this.points=i;let l=[];for(let c=0;c=n;h--){const u=+Date.now();l=this._cluster(l,h),this.trees[h]=new z(l,U,V,s,Float32Array),r&&console.log("z%d: %d clusters in %dms",h,l.length,+Date.now()-u)}return r&&console.timeEnd("total time"),this}getClusters(i,r){let n=((i[0]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,i[1]));let s=180===i[2]?180:((i[2]+180)%360+360)%360-180;const a=Math.max(-90,Math.min(90,i[3]));if(i[2]-i[0]>=360)n=-180,s=180;else if(n>s){const l=this.getClusters([n,o,180,a],r),c=this.getClusters([-180,o,s,a],r);return l.concat(c)}const h=this.trees[this._limitZoom(r)],u=h.range(R(n),F(a),R(s),F(o)),d=[];for(const p of u){const f=h.points[p];d.push(f.numPoints?L(f):this.points[f.index])}return d}getChildren(i){const r=this._getOriginId(i),n=this._getOriginZoom(i),o="No cluster with the specified id.",s=this.trees[n];if(!s)throw Error(o);const a=s.points[r];if(!a)throw Error(o);const l=this.options.radius/(this.options.extent*Math.pow(2,n-1)),c=s.within(a.x,a.y,l),h=[];for(const u of c){const d=s.points[u];d.parentId===i&&h.push(d.numPoints?L(d):this.points[d.index])}if(0===h.length)throw Error(o);return h}getLeaves(i,r,n){const o=[];return this._appendLeaves(o,i,r=r||10,n=n||0,0),o}getTile(i,r,n){const o=this.trees[this._limitZoom(i)],s=Math.pow(2,i),{extent:a,radius:l}=this.options,c=l/a,h=(n-c)/s,u=(n+1+c)/s,d={features:[]};return this._addTileFeatures(o.range((r-c)/s,h,(r+1+c)/s,u),o.points,r,n,s,d),0===r&&this._addTileFeatures(o.range(1-c/s,h,1,u),o.points,s,n,s,d),r===s-1&&this._addTileFeatures(o.range(0,h,c/s,u),o.points,-1,n,s,d),d.features.length?d:null}getClusterExpansionZoom(i){let r=this._getOriginZoom(i)-1;for(;r<=this.options.maxZoom;){const n=this.getChildren(i);if(r++,1!==n.length)break;i=n[0].properties.cluster_id}return r}_appendLeaves(i,r,n,o,s){const a=this.getChildren(r);for(const l of a){const c=l.properties;if(c&&c.cluster?s+c.point_count<=o?s+=c.point_count:s=this._appendLeaves(i,c.cluster_id,n,o,s):sr&&(m+=g.numPoints||1)}if(m>f&&m>=l){var y,x,v,b;let w=u.x*f,T=u.y*f,E=a&&f>1?this._map(u,!0):null;const S=(h<<5)+(r+1)+this.points.length;for(const I of p){const M=d.points[I];if(M.zoom<=r)continue;M.zoom=r;const A=M.numPoints||1;w+=M.x*A,T+=M.y*A,M.parentId=S,a&&(E||(E=this._map(u,!0)),a(E,this._map(M)))}u.parentId=S,n.push((y=w/m,x=T/m,v=m,b=E,{x:P(y),y:P(x),zoom:1/0,id:S,parentId:-1,numPoints:v,properties:b}))}else if(n.push(u),m>1)for(const C of p){const z=d.points[C];z.zoom<=r||(z.zoom=r,n.push(z))}}return n}_getOriginId(i){return i-this.points.length>>5}_getOriginZoom(i){return(i-this.points.length)%32}_map(i,r){if(i.numPoints)return r?O({},i.properties):i.properties;const n=this.points[i.index].properties,o=this.options.map(n);return r&&o===n?O({},o):o}}function L(i){return{type:"Feature",id:i.id,properties:B(i),geometry:{type:"Point",coordinates:[360*(i.x-.5),function(i){const r=(180-360*i)*Math.PI/180;return 360*Math.atan(Math.exp(r))/Math.PI-90}(i.y)]}}}function B(i){const r=i.numPoints,n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r;return O(O({},i.properties),{cluster:!0,cluster_id:i.id,point_count:r,point_count_abbreviated:n})}function R(i){return i/360+.5}function F(i){const r=Math.sin(i*Math.PI/180),n=.5-.25*Math.log((1+r)/(1-r))/Math.PI;return n<0?0:n>1?1:n}function O(i,r){for(const n in r)i[n]=r[n];return i}function U(i){return i.x}function V(i){return i.y}function N(i,r,n,o){var s={id:void 0===i?null:i,type:r,geometry:n,tags:o,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(i){var r=i.geometry,n=i.type;if("Point"===n||"MultiPoint"===n||"LineString"===n)j(i,r);else if("Polygon"===n||"MultiLineString"===n)for(var o=0;o0&&(l+=o?(s*u-h*a)/2:Math.sqrt(Math.pow(h-s,2)+Math.pow(u-a,2))),s=h,a=u}var d=r.length-3;r[2]=1,function i(r,n,o,s){for(var a,l=s,c=o-n>>1,h=o-n,u=r[n],d=r[n+1],p=r[o],f=r[o+1],m=n+3;m1?(n=s,o=a):h>0&&(n+=l*h,o+=c*h)}return(l=i-n)*l+(c=r-o)*c}(r[m],r[m+1],u,d,p,f);if(_>l)a=m,l=_;else if(_===l){var g=Math.abs(m-c);gs&&(a-n>3&&i(r,n,a,s),r[a+2]=l,o-a>3&&i(r,a,o,s))}(r,0,d,n),r[d+2]=1,r.size=Math.abs(l),r.start=0,r.end=r.size}function q(i,r,n,o){for(var s=0;s1?1:n}function H(i,r,n,o,s,a,l,c){if(o/=r,a>=(n/=r)&&l=o)return null;for(var h=[],u=0;u=n&&_=o)){var g=[];if("Point"===f||"MultiPoint"===f)(function(i,r,n,o,s){for(var a=0;a=n&&l<=o&&(r.push(i[a]),r.push(i[a+1]),r.push(i[a+2]))}})(p,g,n,o,s);else if("LineString"===f)K(p,g,n,o,s,!1,c.lineMetrics);else if("MultiLineString"===f)J(p,g,n,o,s,!1);else if("Polygon"===f)J(p,g,n,o,s,!0);else if("MultiPolygon"===f)for(var y=0;yn&&(h=d(u,m,_,y,x,n),l&&(u.start=p+c*h)):v>o?b=n&&(h=d(u,m,_,y,x,n),w=!0),b>o&&v<=o&&(h=d(u,m,_,y,x,o),w=!0),!a&&w&&(l&&(u.end=p+c*h),r.push(u),u=Y(i)),l&&(p+=c)}var T=i.length-3;m=i[T],_=i[T+1],g=i[T+2],(v=0===s?m:_)>=n&&v<=o&&Q(u,m,_,g),T=u.length-3,a&&T>=3&&(u[T]!==u[0]||u[T+1]!==u[1])&&Q(u,u[0],u[1],u[2]),u.length&&r.push(u)}function Y(i){var r=[];return r.size=i.size,r.start=i.start,r.end=i.end,r}function J(i,r,n,o,s,a){for(var l=0;l0&&r.size<(s?l:o))n.numPoints+=r.length/3;else{for(var c=[],h=0;hl)&&(n.numSimplified++,c.push(r[h]),c.push(r[h+1])),n.numPoints++;s&&function(i,r){for(var n=0,o=0,s=i.length,a=s-2;o0===r)for(o=0,s=i.length;o24)throw Error("maxZoom should be in the 0-24 range");if(r.promoteId&&r.generateId)throw Error("promoteId and generateId cannot be used together.");var u=function(i,r){var n=[];if("FeatureCollection"===i.type)for(var o=0;o1&&console.time("creation"),f=this.tiles[p]=function(i,r,n,o,s){for(var a=r===s.maxZoom?0:s.tolerance/((1<l.maxX&&(l.maxX=d),p>l.maxY&&(l.maxY=p)}return l}(i,r,n,o,h),this.tileCoords.push({z:r,x:n,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",r,n,o,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));var m="z"+r;this.stats[m]=(this.stats[m]||0)+1,this.total++}if(f.source=i,s){if(r===h.maxZoom||r===s)continue;var _=1<1&&console.time("clipping");var g,y,x,v,b,w,T=.5*h.buffer/h.extent,E=.5-T,S=.5+T,I=1+T;g=y=x=v=null,b=H(i,d,n-T,n+S,0,f.minX,f.maxX,h),w=H(i,d,n+E,n+I,0,f.minX,f.maxX,h),i=null,b&&(g=H(b,d,o-T,o+S,1,f.minY,f.maxY,h),y=H(b,d,o+E,o+I,1,f.minY,f.maxY,h),b=null),w&&(x=H(w,d,o-T,o+S,1,f.minY,f.maxY,h),v=H(w,d,o+E,o+I,1,f.minY,f.maxY,h),w=null),u>1&&console.timeEnd("clipping"),c.push(g||[],r+1,2*n,2*o),c.push(y||[],r+1,2*n,2*o+1),c.push(x||[],r+1,2*n+1,2*o),c.push(v||[],r+1,2*n+1,2*o+1)}}},ea.prototype.getTile=function(i,r,n){var o=this.options,s=o.extent,a=o.debug;if(i<0||i>24)return null;var l=1<1&&console.log("drilling down to z%d-%d-%d",i,r,n);for(var h,u=i,d=r,p=n;!h&&u>0;)u--,d=Math.floor(d/2),p=Math.floor(p/2),h=this.tiles[el(u,d,p)];return h&&h.source?(a>1&&console.log("found parent tile z%d-%d-%d",u,d,p),a>1&&console.time("drilling down"),this.splitTile(h.source,u,d,p,i,r,n),a>1&&console.timeEnd("drilling down"),this.tiles[c]?en(this.tiles[c],s):null):null};class eh extends i.VectorTileWorkerSource{constructor(i,r,n,o,s){super(i,r,n,o,ec),s&&(this.loadGeoJSON=s)}loadData(r,n){const o=r&&r.request,s=o&&o.collectResourceTiming;this.loadGeoJSON(r,(l,c)=>{if(l||!c)return n(l);if("object"!=typeof c)return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`));{a(c,!0);try{var h,u;if(r.filter){const d=i.createExpression(r.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===d.result)throw Error(d.value.map(i=>`${i.key}: ${i.message}`).join(", "));const p=c.features.filter(i=>d.value.evaluate({zoom:0},i));c={type:"FeatureCollection",features:p}}this._geoJSONIndex=r.cluster?new D(function({superclusterOptions:r,clusterProperties:n}){if(!n||!r)return r;const o={},s={},a={accumulated:null,zoom:0},l={properties:null},c=Object.keys(n);for(const h of c){const[u,d]=n[h],p=i.createExpression(d),f=i.createExpression("string"==typeof u?[u,["accumulated"],["get",h]]:u);o[h]=p.value,s[h]=f.value}return r.map=i=>{l.properties=i;const r={};for(const n of c)r[n]=o[n].evaluate(a,l);return r},r.reduce=(i,r)=>{for(const n of(l.properties=r,c))a.accumulated=i[n],i[n]=s[n].evaluate(a,l)},r}(r)).load(c.features):(h=c,u=r.geojsonVtOptions,new ea(h,u))}catch(f){return n(f)}this.loaded={};const m={};if(s){const _=i.getPerformanceMeasurement(o);_&&(m.resourceTiming={},m.resourceTiming[r.source]=JSON.parse(JSON.stringify(_)))}n(null,m)}})}reloadTile(i,r){const n=this.loaded;return n&&n[i.uid]?super.reloadTile(i,r):this.loadTile(i,r)}loadGeoJSON(r,n){if(r.request)i.getJSON(r.request,n);else{if("string"!=typeof r.data)return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`));try{return n(null,JSON.parse(r.data))}catch(o){return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(i,r){try{r(null,this._geoJSONIndex.getClusterExpansionZoom(i.clusterId))}catch(n){r(n)}}getClusterChildren(i,r){try{r(null,this._geoJSONIndex.getChildren(i.clusterId))}catch(n){r(n)}}getClusterLeaves(i,r){try{r(null,this._geoJSONIndex.getLeaves(i.clusterId,i.limit,i.offset))}catch(n){r(n)}}}class eu{constructor(r){this.self=r,this.actor=new i.Actor(r,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=i.getProjection({name:"mercator"}),this.workerSourceTypes={vector:i.VectorTileWorkerSource,geojson:eh},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(i,r)=>{if(this.workerSourceTypes[i])throw Error(`Worker source with name "${i}" already registered.`);this.workerSourceTypes[i]=r},this.self.registerRTLTextPlugin=r=>{if(i.plugin.isParsed())throw Error("RTL text plugin already registered.");i.plugin.applyArabicShaping=r.applyArabicShaping,i.plugin.processBidirectionalText=r.processBidirectionalText,i.plugin.processStyledBidirectionalText=r.processStyledBidirectionalText}}clearCaches(i,r,n){delete this.layerIndexes[i],delete this.availableImages[i],delete this.workerSources[i],delete this.demWorkerSources[i],n()}checkIfReady(i,r,n){n()}setReferrer(i,r){this.referrer=r}spriteLoaded(r,n){for(const o in this.isSpriteLoaded[r]=n,this.workerSources[r]){const s=this.workerSources[r][o];for(const a in s)s[a]instanceof i.VectorTileWorkerSource&&(s[a].isSpriteLoaded=n,s[a].fire(new i.Event("isSpriteLoaded")))}}setImages(i,r,n){for(const o in this.availableImages[i]=r,this.workerSources[i]){const s=this.workerSources[i][o];for(const a in s)s[a].availableImages=r}n()}enableTerrain(i,r,n){this.terrain=r,n()}setProjection(r,n){this.projections[r]=i.getProjection(n)}setLayers(i,r,n){this.getLayerIndex(i).replace(r),n()}updateLayers(i,r,n){this.getLayerIndex(i).update(r.layers,r.removedIds),n()}loadTile(r,n,o){const s=this.enableTerrain?i.extend({enableTerrain:this.terrain},n):n;s.projection=this.projections[r]||this.defaultProjection,this.getWorkerSource(r,n.type,n.source).loadTile(s,o)}loadDEMTile(r,n,o){const s=this.enableTerrain?i.extend({buildQuadTree:this.terrain},n):n;this.getDEMWorkerSource(r,n.source).loadTile(s,o)}reloadTile(r,n,o){const s=this.enableTerrain?i.extend({enableTerrain:this.terrain},n):n;s.projection=this.projections[r]||this.defaultProjection,this.getWorkerSource(r,n.type,n.source).reloadTile(s,o)}abortTile(i,r,n){this.getWorkerSource(i,r.type,r.source).abortTile(r,n)}removeTile(i,r,n){this.getWorkerSource(i,r.type,r.source).removeTile(r,n)}removeSource(i,r,n){if(!this.workerSources[i]||!this.workerSources[i][r.type]||!this.workerSources[i][r.type][r.source])return;const o=this.workerSources[i][r.type][r.source];delete this.workerSources[i][r.type][r.source],void 0!==o.removeSource?o.removeSource(r,n):n()}loadWorkerSource(i,r,n){try{this.self.importScripts(r.url),n()}catch(o){n(o.toString())}}syncRTLPluginState(r,n,o){try{i.plugin.setState(n);const s=i.plugin.getPluginURL();if(i.plugin.isLoaded()&&!i.plugin.isParsed()&&null!=s){this.self.importScripts(s);const a=i.plugin.isParsed();o(a?void 0:Error(`RTL Text Plugin failed to import scripts from ${s}`),a)}}catch(l){o(l.toString())}}getAvailableImages(i){let r=this.availableImages[i];return r||(r=[]),r}getLayerIndex(i){let n=this.layerIndexes[i];return n||(n=this.layerIndexes[i]=new r),n}getWorkerSource(i,r,n){return this.workerSources[i]||(this.workerSources[i]={}),this.workerSources[i][r]||(this.workerSources[i][r]={}),this.workerSources[i][r][n]||(this.workerSources[i][r][n]=new this.workerSourceTypes[r]({send:(r,n,o,s,a,l)=>{this.actor.send(r,n,o,i,a,l)},scheduler:this.actor.scheduler},this.getLayerIndex(i),this.getAvailableImages(i),this.isSpriteLoaded[i])),this.workerSources[i][r][n]}getDEMWorkerSource(i,r){return this.demWorkerSources[i]||(this.demWorkerSources[i]={}),this.demWorkerSources[i][r]||(this.demWorkerSources[i][r]=new o),this.demWorkerSources[i][r]}enforceCacheSizeLimit(r,n){i.enforceCacheSizeLimit(n)}getWorkerPerformanceMetrics(i,r,n){n(void 0,void 0)}}return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope&&(self.worker=new eu(self)),eu}),o(["./shared"],function(i){function r(i){var o;return"undefined"!=typeof window&&"undefined"!=typeof document&&!!Array.prototype&&!!Array.prototype.every&&!!Array.prototype.filter&&!!Array.prototype.forEach&&!!Array.prototype.indexOf&&!!Array.prototype.lastIndexOf&&!!Array.prototype.map&&!!Array.prototype.some&&!!Array.prototype.reduce&&!!Array.prototype.reduceRight&&!!Array.isArray&&!!Function.prototype&&!!Function.prototype.bind&&!!Object.keys&&!!Object.create&&!!Object.getPrototypeOf&&!!Object.getOwnPropertyNames&&!!Object.isSealed&&!!Object.isFrozen&&!!Object.isExtensible&&!!Object.getOwnPropertyDescriptor&&!!Object.defineProperty&&!!Object.defineProperties&&!!Object.seal&&!!Object.freeze&&!!Object.preventExtensions&&!!("JSON"in window&&"parse"in JSON&&"stringify"in JSON)&&!!function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var i,r,n=new Blob([""],{type:"text/javascript"}),o=URL.createObjectURL(n);try{r=new Worker(o),i=!0}catch(s){i=!1}return r&&r.terminate(),URL.revokeObjectURL(o),i}()&&"Uint8ClampedArray"in window&&!!ArrayBuffer.isView&&!!function(){var i=document.createElement("canvas");i.width=i.height=1;var r=i.getContext("2d");if(!r)return!1;var n=r.getImageData(0,0,1,1);return n&&n.width===i.width}()&&(void 0===n[o=i&&i.failIfMajorPerformanceCaveat]&&(n[o]=function(i){var n,o,s,a=(n=document.createElement("canvas"),(o=Object.create(r.webGLContextAttributes)).failIfMajorPerformanceCaveat=i,n.getContext("webgl",o)||n.getContext("experimental-webgl",o));if(!a)return!1;try{s=a.createShader(a.VERTEX_SHADER)}catch(l){return!1}return!(!s||a.isContextLost())&&(a.shaderSource(s,"void main() {}"),a.compileShader(s),!0===a.getShaderParameter(s,a.COMPILE_STATUS))}(o)),!!n[o]&&!document.documentMode)}var n={};function o(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=n*a-s*o;return l?(i[0]=a*(l=1/l),i[1]=-o*l,i[2]=-s*l,i[3]=n*l,i):null}function s(i,r){if(Array.isArray(i)){if(!Array.isArray(r)||i.length!==r.length)return!1;for(let n=0;n{i.window.removeEventListener("click",h,!0)},0)},a.mousePos=function(i,r){const n=i.getBoundingClientRect();return u(i,n,r)},a.touchPos=function(i,r){const n=i.getBoundingClientRect(),o=[];for(let s=0;s=0?0:r.button};class d extends i.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new i.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(i){if(this.loaded!==i&&(this.loaded=i,i)){for(const{ids:r,callback:n}of this.requestors)this._notify(r,n);this.requestors=[]}}getImage(i){return this.images[i]}addImage(i,r){this._validate(i,r)&&(this.images[i]=r)}_validate(r,n){let o=!0;return this._validateStretch(n.stretchX,n.data&&n.data.width)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "stretchX" value`))),o=!1),this._validateStretch(n.stretchY,n.data&&n.data.height)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "stretchY" value`))),o=!1),this._validateContent(n.content,n)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "content" value`))),o=!1),o}_validateStretch(i,r){if(!i)return!0;let n=0;for(const o of i){if(o[0]{this.ready=!0})}broadcast(r,n,o){i.asyncAll(this.actors,(i,o)=>{i.send(r,n,o)},o=o||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(i=>{i.remove()}),this.actors=[],this.workerPool.release(this.id)}}function S(r,n,o){return n*(i.EXTENT/(r.tileSize*Math.pow(2,o-r.tileID.overscaledZ)))}E.Actor=i.Actor;class I{constructor(i,r,n){this.context=i;const o=i.gl;this.buffer=o.createBuffer(),this.dynamicDraw=Boolean(n),this.context.unbindVAO(),i.bindElementBuffer.set(this.buffer),o.bufferData(o.ELEMENT_ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?o.DYNAMIC_DRAW:o.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(i){const r=this.context.gl;this.context.unbindVAO(),this.bind(),r.bufferSubData(r.ELEMENT_ARRAY_BUFFER,0,i.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const M={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class A{constructor(i,r,n,o){this.length=r.length,this.attributes=n,this.itemSize=r.bytesPerElement,this.dynamicDraw=o,this.context=i;const s=i.gl;this.buffer=s.createBuffer(),i.bindVertexBuffer.set(this.buffer),s.bufferData(s.ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?s.DYNAMIC_DRAW:s.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(i){const r=this.context.gl;this.bind(),r.bufferSubData(r.ARRAY_BUFFER,0,i.arrayBuffer)}enableAttributes(i,r){for(let n=0;no.pointCoordinate3D(i)),this.cameraGeometry=this.bufferedCameraGeometry(0)}static createFromScreenPoints(r,n){let o,s;if(r instanceof i.pointGeometry||"number"==typeof r[0]){const a=i.pointGeometry.convert(r);o=[i.pointGeometry.convert(r)],s=n.isPointAboveHorizon(a)}else{const l=i.pointGeometry.convert(r[0]),c=i.pointGeometry.convert(r[1]);o=[l,c],s=i.polygonizeBounds(l,c).every(i=>n.isPointAboveHorizon(i))}return new ep(o,n.getCameraPoint(),s,n)}isPointQuery(){return 1===this.screenBounds.length}bufferedScreenGeometry(r){return i.polygonizeBounds(this.screenBounds[0],1===this.screenBounds.length?this.screenBounds[0]:this.screenBounds[1],r)}bufferedCameraGeometry(r){const n=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new i.pointGeometry(1,1)):this.screenBounds[1],s=i.polygonizeBounds(n,o,0,!1);return this.cameraPoint.y>o.y&&(this.cameraPoint.x>n.x&&this.cameraPoint.x=o.x?s[2]=this.cameraPoint:this.cameraPoint.x<=n.x&&(s[3]=this.cameraPoint)),i.bufferConvexPolygon(s,r)}containsTile(r,n,o){var s;const a=r.queryPadding+1,l=r.tileID.wrap,c=o?this._bufferedCameraMercator(a,n).map(n=>i.getTilePoint(r.tileTransform,n,l)):this._bufferedScreenMercator(a,n).map(n=>i.getTilePoint(r.tileTransform,n,l)),h=this.screenGeometryMercator.map(n=>i.getTileVec3(r.tileTransform,n,l)),u=h.map(r=>new i.pointGeometry(r[0],r[1])),d=n.getFreeCameraOptions().position||new i.MercatorCoordinate(0,0,0),p=i.getTileVec3(r.tileTransform,d,l),f=h.map(r=>{const n=i.sub(r,r,p);return i.normalize(n,n),new i.Ray(p,n)}),m=S(r,1,n.zoom);if(i.polygonIntersectsBox(c,0,0,i.EXTENT,i.EXTENT))return{queryGeometry:this,tilespaceGeometry:u,tilespaceRays:f,bufferedTilespaceGeometry:c,bufferedTilespaceBounds:((s=i.getBounds(c)).min.x=i.clamp(s.min.x,0,i.EXTENT),s.min.y=i.clamp(s.min.y,0,i.EXTENT),s.max.x=i.clamp(s.max.x,0,i.EXTENT),s.max.y=i.clamp(s.max.y,0,i.EXTENT),s),tile:r,tileID:r.tileID,pixelToTileUnitsFactor:m}}_bufferedScreenMercator(i,r){const n=ef(i);if(this._screenRaycastCache[n])return this._screenRaycastCache[n];{const o=this.bufferedScreenGeometry(i).map(i=>r.pointCoordinate3D(i));return this._screenRaycastCache[n]=o,o}}_bufferedCameraMercator(i,r){const n=ef(i);if(this._cameraRaycastCache[n])return this._cameraRaycastCache[n];{const o=this.bufferedCameraGeometry(i).map(i=>r.pointCoordinate3D(i));return this._cameraRaycastCache[n]=o,o}}}function ef(i){return 100*i|0}function em(r,n,o){const s=function(s,a){if(s)return o(s);if(a){const l=i.pick(i.extend(a,r),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);a.vector_layers&&(l.vectorLayers=a.vector_layers,l.vectorLayerIds=l.vectorLayers.map(i=>i.id)),l.tiles=n.canonicalizeTileset(l,r.url),o(null,l)}};return r.url?i.getJSON(n.transformRequest(n.normalizeSourceURL(r.url),i.ResourceType.Source),s):i.exported.frame(()=>s(null,r))}class e_{constructor(r,n,o){this.bounds=i.LngLatBounds.convert(this.validateBounds(r)),this.minzoom=n||0,this.maxzoom=o||24}validateBounds(i){return Array.isArray(i)&&4===i.length?[Math.max(-180,i[0]),Math.max(-90,i[1]),Math.min(180,i[2]),Math.min(90,i[3])]:[-180,-90,180,90]}contains(r){const n=Math.pow(2,r.z),o=Math.floor(i.mercatorXfromLng(this.bounds.getWest())*n),s=Math.floor(i.mercatorYfromLat(this.bounds.getNorth())*n),a=Math.ceil(i.mercatorXfromLng(this.bounds.getEast())*n),l=Math.ceil(i.mercatorYfromLat(this.bounds.getSouth())*n);return r.x>=o&&r.x=s&&r.y{this._tileJSONRequest=null,this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(i.extend(this,n),n.bounds&&(this.tileBounds=new e_(n.bounds,this.minzoom,this.maxzoom)),i.postTurnstileEvent(n.tiles),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}onAdd(i){this.map=i,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return i.extend({},this._options)}hasTile(i){return!this.tileBounds||this.tileBounds.contains(i.canonical)}loadTile(r,n){const o=i.exported.devicePixelRatio>=2,s=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),o,this.tileSize);r.request=i.getImage(this.map._requestManager.transformRequest(s,i.ResourceType.Tile),(o,s,a,l)=>{if(delete r.request,r.aborted)r.state="unloaded",n(null);else if(o)r.state="errored",n(o);else if(s){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:a,expires:l});const c=this.map.painter.context,h=c.gl;r.texture=this.map.painter.getTileTexture(s.width),r.texture?r.texture.update(s,{useMipmap:!0}):(r.texture=new i.Texture(c,s,h.RGBA,{useMipmap:!0}),r.texture.bind(h.LINEAR,h.CLAMP_TO_EDGE),c.extTextureFilterAnisotropic&&h.texParameterf(h.TEXTURE_2D,c.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,c.extTextureFilterAnisotropicMax)),r.state="loaded",i.cacheEntryPossiblyAdded(this.dispatcher),n(null)}})}abortTile(i,r){i.request&&(i.request.cancel(),delete i.request),r()}unloadTile(i,r){i.texture&&this.map.painter.saveTileTexture(i.texture),r()}hasTransition(){return!1}}function ey(r,n,o,s,a,l,c,h){const u=[r,o,a,n,s,l,1,1,1],d=[c,h,1],p=i.adjoint([],u),[f,m,_]=i.transformMat3(d,d,i.transpose(p,p));return i.multiply(u,[f,0,0,0,m,0,0,0,_],u)}class ex extends i.Evented{constructor(i,r,n,o){super(),this.id=i,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(o),this.options=r}load(r,n){this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this.url=this.options.url,i.getImage(this.map._requestManager.transformRequest(this.url,i.ResourceType.Image),(o,s)=>{this._loaded=!0,o?this.fire(new i.ErrorEvent(o)):s&&(this.image=i.exported.getImageData(s),this.width=this.image.width,this.height=this.image.height,r&&(this.coordinates=r),n&&n(),this._finishLoading())})}loaded(){return this._loaded}updateImage(i){return this.image&&i.url&&(this.options.url=i.url,this.load(i.coordinates,()=>{this.texture=null})),this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(i){this.map=i,this.load()}setCoordinates(r){this.coordinates=r,delete this._boundsArray;const n=r.map(i.MercatorCoordinate.fromLngLat);return this.tileID=function(r){let n=1/0,o=1/0,s=-1/0,a=-1/0;for(const l of r)n=Math.min(n,l.x),o=Math.min(o,l.y),s=Math.max(s,l.x),a=Math.max(a,l.y);const c=Math.max(s-n,a-o),h=Math.max(0,Math.floor(-Math.log(c)/Math.LN2)),u=Math.pow(2,h);return new i.CanonicalTileID(h,Math.floor((n+s)/2*u),Math.floor((o+a)/2*u))}(n),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){delete this._boundsArray}_makeBoundsArray(){const r=i.tileTransform(this.tileID,this.map.transform.projection),[n,o,s,a]=this.coordinates.map(n=>{const o=r.projection.project(n[0],n[1]);return i.getTilePoint(r,o)._round()});return this.perspectiveTransform=function(r,n,o,s,a,l,c,h,u,d){const p=ey(0,0,r,0,0,n,r,n),f=ey(o,s,a,l,c,h,u,d);return i.multiply(f,i.adjoint(p,p),f),[f[6]/f[8]*r/i.EXTENT,f[7]/f[8]*n/i.EXTENT]}(this.width,this.height,n.x,n.y,o.x,o.y,a.x,a.y,s.x,s.y),this._boundsArray=new i.StructArrayLayout4i8,this._boundsArray.emplaceBack(n.x,n.y,0,0),this._boundsArray.emplaceBack(o.x,o.y,i.EXTENT,0),this._boundsArray.emplaceBack(a.x,a.y,0,i.EXTENT),this._boundsArray.emplaceBack(s.x,s.y,i.EXTENT,i.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this}prepare(){if(0===Object.keys(this.tiles).length||!this.image)return;const r=this.map.painter.context,n=r.gl;for(const o in this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new i.Texture(r,this.image,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE)),this.tiles){const s=this.tiles[o];"loaded"!==s.state&&(s.state="loaded",s.texture=this.texture)}}loadTile(i,r){this.tileID&&this.tileID.equals(i.tileID.canonical)?(this.tiles[String(i.tileID.wrap)]=i,i.buckets={},r(null)):(i.state="errored",r(null))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}const ev={vector:class extends i.Evented{constructor(r,n,o,s){if(super(),this.id=r,this.dispatcher=o,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,i.extend(this,i.pick(n,["url","scheme","tileSize","promoteId"])),this._options=i.extend({type:"vector"},n),this._collectResourceTiming=n.collectResourceTiming,512!==this.tileSize)throw Error("vector tile sources must have a tileSize of 512");this.setEventedParent(s),this._tileWorkers={},this._deduped=new i.DedupedRequest}load(){this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=em(this._options,this.map._requestManager,(r,n)=>{this._tileJSONRequest=null,this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(i.extend(this,n),n.bounds&&(this.tileBounds=new e_(n.bounds,this.minzoom,this.maxzoom)),i.postTurnstileEvent(n.tiles,this.map._requestManager._customAccessToken),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}hasTile(i){return!this.tileBounds||this.tileBounds.contains(i.canonical)}onAdd(i){this.map=i,this.load()}setSourceProperty(i){this._tileJSONRequest&&this._tileJSONRequest.cancel(),i();const r=this.map.style._getSourceCaches(this.id);for(const n of r)n.clearTiles();this.load()}setTiles(i){return this.setSourceProperty(()=>{this._options.tiles=i}),this}setUrl(i){return this.setSourceProperty(()=>{this.url=i,this._options.url=i}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return i.extend({},this._options)}loadTile(r,n){const o=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme)),s={request:this.map._requestManager.transformRequest(o,i.ResourceType.Tile),data:void 0,uid:r.uid,tileID:r.tileID,tileZoom:r.tileZoom,zoom:r.tileID.overscaledZ,tileSize:this.tileSize*r.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:i.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:r.isSymbolTile};if(s.request.collectResourceTiming=this._collectResourceTiming,r.actor&&"expired"!==r.state)"loading"===r.state?r.reloadCallback=n:r.request=r.actor.send("reloadTile",s,l.bind(this));else if(r.actor=this._tileWorkers[o]=this._tileWorkers[o]||this.dispatcher.getActor(),this.dispatcher.ready)r.request=r.actor.send("loadTile",s,l.bind(this),void 0,!0);else{const a=i.loadVectorTile.call({deduped:this._deduped},s,(i,n)=>{i||!n?l.call(this,i):(s.data={cacheControl:n.cacheControl,expires:n.expires,rawData:n.rawData.slice(0)},r.actor&&r.actor.send("loadTile",s,l.bind(this),void 0,!0))},!0);r.request={cancel:a}}function l(o,s){return delete r.request,r.aborted?n(null):o&&404!==o.status?n(o):(s&&s.resourceTiming&&(r.resourceTiming=s.resourceTiming),this.map._refreshExpiredTiles&&s&&r.setExpiryData(s),r.loadVectorData(s,this.map.painter),i.cacheEntryPossiblyAdded(this.dispatcher),n(null),void(r.reloadCallback&&(this.loadTile(r,r.reloadCallback),r.reloadCallback=null)))}}abortTile(i){i.request&&(i.request.cancel(),delete i.request),i.actor&&i.actor.send("abortTile",{uid:i.uid,type:this.type,source:this.id})}unloadTile(i){i.unloadVectorData(),i.actor&&i.actor.send("removeTile",{uid:i.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}},raster:eg,"raster-dem":class extends eg{constructor(r,n,o,s){super(r,n,o,s),this.type="raster-dem",this.maxzoom=22,this._options=i.extend({type:"raster-dem"},n),this.encoding=n.encoding||"mapbox"}loadTile(r,n){const o=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function s(i,o){i&&(r.state="errored",n(i)),o&&(r.dem=o,r.dem.onDeserialize(),r.needsHillshadePrepare=!0,r.needsDEMTextureUpload=!0,r.state="loaded",n(null))}r.request=i.getImage(this.map._requestManager.transformRequest(o,i.ResourceType.Tile),(function(o,a,l,c){if(delete r.request,r.aborted)r.state="unloaded",n(null);else if(o)r.state="errored",n(o);else if(a){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:l,expires:c});const h=i.window.ImageBitmap&&a instanceof i.window.ImageBitmap&&(null==rR&&(rR=i.window.OffscreenCanvas&&new i.window.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof i.window.createImageBitmap),rR),u=1-(a.width-i.prevPowerOfTwo(a.width))/2;u<1||r.neighboringTiles||(r.neighboringTiles=this._getNeighboringTiles(r.tileID));const d=h?a:i.exported.getImageData(a,u),p={uid:r.uid,coord:r.tileID,source:this.id,rawImageData:d,encoding:this.encoding,padding:u};r.actor&&"expired"!==r.state||(r.actor=this.dispatcher.getActor(),r.actor.send("loadDEMTile",p,s.bind(this),void 0,!0))}}).bind(this))}_getNeighboringTiles(r){const n=r.canonical,o=Math.pow(2,n.z),s=(n.x-1+o)%o,a=0===n.x?r.wrap-1:r.wrap,l=(n.x+1+o)%o,c=n.x+1===o?r.wrap+1:r.wrap,h={};return h[new i.OverscaledTileID(r.overscaledZ,a,n.z,s,n.y).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,c,n.z,l,n.y).key]={backfilled:!1},n.y>0&&(h[new i.OverscaledTileID(r.overscaledZ,a,n.z,s,n.y-1).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,r.wrap,n.z,n.x,n.y-1).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,c,n.z,l,n.y-1).key]={backfilled:!1}),n.y+1{if(this._loaded=!0,this._pendingLoad=null,r)this.fire(new i.ErrorEvent(r));else{const o={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&n&&n.resourceTiming&&n.resourceTiming[this.id]&&(o.resourceTiming=n.resourceTiming[this.id]),this.fire(new i.Event("data",o)),this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1)})}loaded(){return this._loaded}loadTile(r,n){const o=r.actor?"reloadTile":"loadTile";r.actor=this.actor,r.request=this.actor.send(o,{type:this.type,uid:r.uid,tileID:r.tileID,tileZoom:r.tileZoom,zoom:r.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:i.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(i,s)=>(delete r.request,r.unloadVectorData(),r.aborted?n(null):i?n(i):(r.loadVectorData(s,this.map.painter,"reloadTile"===o),n(null))),void 0,"loadTile"===o)}abortTile(i){i.request&&(i.request.cancel(),delete i.request),i.aborted=!0}unloadTile(i){i.unloadVectorData(),this.actor.send("removeTile",{uid:i.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return i.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends ex{constructor(i,r,n,o){super(i,r,n,o),this.roundZoom=!0,this.type="video",this.options=r}load(){this._loaded=!1;const r=this.options;for(const n of(this.urls=[],r.urls))this.urls.push(this.map._requestManager.transformRequest(n,i.ResourceType.Source).url);i.getVideo(this.urls,(r,n)=>{this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(this.video=n,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(r){if(this.video){const n=this.video.seekable;rn.end(0)?this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))):this.video.currentTime=r}}getVideo(){return this.video}onAdd(i){this.map||(this.map=i,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(0===Object.keys(this.tiles).length||this.video.readyState<2)return;const r=this.map.painter.context,n=r.gl;for(const o in this.texture?this.video.paused||(this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,this.video)):(this.texture=new i.Texture(r,this.video,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.tiles){const s=this.tiles[o];"loaded"!==s.state&&(s.state="loaded",s.texture=this.texture)}}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:ex,canvas:class extends ex{constructor(r,n,o,s){super(r,n,o,s),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some(i=>!Array.isArray(i)||2!==i.length||i.some(i=>"number"!=typeof i))||this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof i.window.HTMLCanvasElement||this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof i.window.HTMLCanvasElement?this.options.canvas:i.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new i.ErrorEvent(Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}getCanvas(){return this.canvas}onAdd(i){this.map=i,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let r=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,r=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,r=!0),this._hasInvalidDimensions()||0===Object.keys(this.tiles).length)return;const n=this.map.painter.context,o=n.gl;for(const s in this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=n.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(r||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new i.Texture(n,this.canvas,o.RGBA,{premultiply:!0}),this.tiles){const a=this.tiles[s];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const i of[this.canvas.width,this.canvas.height])if(isNaN(i)||i<=0)return!0;return!1}}},eb=function(r,n,o,s){const a=new ev[n.type](r,n,o,s);if(a.id!==r)throw Error(`Expected Source id to be ${r} instead of ${a.id}`);return i.bindAll(["load","abort","unload","serialize","prepare"],a),a};function ew(i,r){const n=i.tileID,o=r.tileID;return n.overscaledZ-o.overscaledZ||n.canonical.y-o.canonical.y||n.wrap-o.wrap||n.canonical.x-o.canonical.x}function eT(){return null!=rq.workerClass?new rq.workerClass:new i.window.Worker(rq.workerUrl)}const eE="mapboxgl_preloaded_worker_pool";class eS{constructor(){this.active={}}acquire(i){if(!this.workers)for(this.workers=[];this.workers.length{i.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[eE]}numActive(){return Object.keys(this.active).length}}function eI(){return rF||(rF=new eS),rF}function eM(r){r=r.slice();const n=Object.create(null);for(let o=0;o{i in n&&(o[i]=n[i])}),o}(r[s],n[r[s].ref]));return r}eS.workerCount=2;const eA={setStyle:"setStyle",addLayer:"addLayer",removeLayer:"removeLayer",setPaintProperty:"setPaintProperty",setLayoutProperty:"setLayoutProperty",setFilter:"setFilter",addSource:"addSource",removeSource:"removeSource",setGeoJSONSourceData:"setGeoJSONSourceData",setLayerZoomRange:"setLayerZoomRange",setLayerProperty:"setLayerProperty",setCenter:"setCenter",setZoom:"setZoom",setBearing:"setBearing",setPitch:"setPitch",setSprite:"setSprite",setGlyphs:"setGlyphs",setTransition:"setTransition",setLight:"setLight",setTerrain:"setTerrain",setFog:"setFog",setProjection:"setProjection"};function eC(i,r,n){n.push({command:eA.addSource,args:[i,r[i]]})}function ez(i,r,n){r.push({command:eA.removeSource,args:[i]}),n[i]=!0}function ek(i,r,n,o,a,l){let c;for(c in r=r||{},i=i||{})i.hasOwnProperty(c)&&(s(i[c],r[c])||n.push({command:l,args:[o,c,r[c],a]}));for(c in r)r.hasOwnProperty(c)&&!i.hasOwnProperty(c)&&(s(i[c],r[c])||n.push({command:l,args:[o,c,r[c],a]}))}function eP(i){return i.id}function eD(i,r){return i[r.id]=r,i}class eL{constructor(i,r){this.reset(i,r)}reset(i,r){this.points=i||[],this._distances=[0];for(let n=1;n0?(s-l)/c:0;return this.points[a].mult(1-h).add(this.points[n].mult(h))}}class eB{constructor(i,r,n){const o=this.boxCells=[],s=this.circleCells=[];this.xCellCount=Math.ceil(i/n),this.yCellCount=Math.ceil(r/n);for(let a=0;athis.width||o<0||r>this.height)return!s&&[];const l=[];if(i<=0&&r<=0&&this.width<=n&&this.height<=o){if(s)return!0;for(let c=0;c0:l}_queryCircle(i,r,n,o,s){const a=i-n,l=i+n,c=r-n,h=r+n;if(l<0||a>this.width||h<0||c>this.height)return!o&&[];const u=[];return this._forEachCell(a,c,l,h,this._queryCellCircle,u,{hitTest:o,circle:{x:i,y:r,radius:n},seenUids:{box:{},circle:{}}},s),o?u.length>0:u}query(i,r,n,o,s){return this._query(i,r,n,o,!1,s)}hitTest(i,r,n,o,s){return this._query(i,r,n,o,!0,s)}hitTestCircle(i,r,n,o){return this._queryCircle(i,r,n,!0,o)}_queryCell(i,r,n,o,s,a,l,c){const h=l.seenUids,u=this.boxCells[s];if(null!==u){const d=this.bboxes;for(const p of u)if(!h.box[p]){h.box[p]=!0;const f=4*p;if(i<=d[f+2]&&r<=d[f+3]&&n>=d[f+0]&&o>=d[f+1]&&(!c||c(this.boxKeys[p]))){if(l.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:d[f],y1:d[f+1],x2:d[f+2],y2:d[f+3]})}}}const m=this.circleCells[s];if(null!==m){const _=this.circles;for(const g of m)if(!h.circle[g]){h.circle[g]=!0;const y=3*g;if(this._circleAndRectCollide(_[y],_[y+1],_[y+2],i,r,n,o)&&(!c||c(this.circleKeys[g]))){if(l.hitTest)return a.push(!0),!0;{const x=_[y],v=_[y+1],b=_[y+2];a.push({key:this.circleKeys[g],x1:x-b,y1:v-b,x2:x+b,y2:v+b})}}}}}_queryCellCircle(i,r,n,o,s,a,l,c){const h=l.circle,u=l.seenUids,d=this.boxCells[s];if(null!==d){const p=this.bboxes;for(const f of d)if(!u.box[f]){u.box[f]=!0;const m=4*f;if(this._circleAndRectCollide(h.x,h.y,h.radius,p[m+0],p[m+1],p[m+2],p[m+3])&&(!c||c(this.boxKeys[f])))return a.push(!0),!0}}const _=this.circleCells[s];if(null!==_){const g=this.circles;for(const y of _)if(!u.circle[y]){u.circle[y]=!0;const x=3*y;if(this._circlesCollide(g[x],g[x+1],g[x+2],h.x,h.y,h.radius)&&(!c||c(this.circleKeys[y])))return a.push(!0),!0}}}_forEachCell(i,r,n,o,s,a,l,c){const h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(r),d=this._convertToXCellCoord(n),p=this._convertToYCellCoord(o);for(let f=h;f<=d;f++)for(let m=u;m<=p;m++)if(s.call(this,i,r,n,o,this.xCellCount*m+f,a,l,c))return}_convertToXCellCoord(i){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(i*this.xScale)))}_convertToYCellCoord(i){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(i*this.yScale)))}_circlesCollide(i,r,n,o,s,a){const l=o-i,c=s-r,h=n+a;return h*h>l*l+c*c}_circleAndRectCollide(i,r,n,o,s,a,l){const c=(a-o)/2,h=Math.abs(i-(o+c));if(h>c+n)return!1;const u=(l-s)/2,d=Math.abs(r-(s+u));if(d>u+n)return!1;if(h<=c||d<=u)return!0;const p=h-c,f=d-u;return p*p+f*f<=n*n}}const eR=Math.tan(85*Math.PI/180);function eF(r,n,s,a,l,c){let h=i.create();if(s){if("globe"===l.projection.name)h=i.calculateGlobeMatrix(l,l.worldSize/l._projectionScaler,[0,0]),i.multiply$1(h,h,i.globeDenormalizeECEF(i.globeTileBounds(n)));else{const u=o([],c);h[0]=u[0],h[1]=u[1],h[4]=u[2],h[5]=u[3]}a||i.rotateZ(h,h,l.angle)}else i.multiply$1(h,l.labelPlaneMatrix,r);return h}function eO(r,n,o,s,a,l){if(o){if("globe"===a.projection.name){const c=eF(r,n,o,s,a,l);return i.invert(c,c),i.multiply$1(c,r,c),c}{const h=i.clone(r),u=i.identity([]);return u[0]=l[0],u[1]=l[1],u[4]=l[2],u[5]=l[3],i.multiply$1(h,h,u),s||i.rotateZ(h,h,-a.angle),h}}return a.glCoordMatrix}function eU(r,n,o=0){const s=[r.x,r.y,o,1];o?i.transformMat4$1(s,s,n):eH(s,s,n);const a=s[3];return{point:new i.pointGeometry(s[0]/a,s[1]/a),signedDistanceFromCamera:a}}function eV(i,r){return Math.min(.5+i/r*.5,1.5)}function eN(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_){const g=c.glyphStartIndex+c.numGlyphs,y=c.lineStartIndex,x=c.lineStartIndex+c.lineLength,v=r.getoffsetX(c.glyphStartIndex),b=r.getoffsetX(g-1),w=eq(i*v,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);if(!w)return null;const T=eq(i*b,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);return T?{first:w,last:T}:null}function ej(r,n,o,s){return r.writingMode===i.WritingMode.horizontal&&Math.abs(o.y-n.y)>Math.abs(o.x-n.x)*s?{useVertical:!0}:r.writingMode===i.WritingMode.vertical?n.yeR}(n,o,s)?1===r.flipState?{needsFlipping:!0}:null:n.x>o.x?{needsFlipping:!0}:null}function eG(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){let v;const b=n/24,w=r.lineOffsetX*b,T=r.lineOffsetY*b;if(r.numGlyphs>1){const E=r.glyphStartIndex+r.numGlyphs,S=r.lineStartIndex,I=r.lineStartIndex+r.lineLength,M=eN(b,h,w,T,o,p,f,r,u,l,m,g,!1,y,x);if(!M)return{notEnoughRoom:!0};const A=eU(M.first.point,c).point,C=eU(M.last.point,c).point;if(s&&!o){const z=ej(r,A,C,_);if(r.flipState=z&&z.needsFlipping?1:2,z)return z}v=[M.first];for(let k=r.glyphStartIndex+1;k0?B.point:e$(f,L,P,1,a,void 0,y,x.canonical),_);if(r.flipState=R&&R.needsFlipping?1:2,R)return R}const F=eq(b*h.getoffsetX(r.glyphStartIndex),w,T,o,p,f,r.segment,r.lineStartIndex,r.lineStartIndex+r.lineLength,u,l,m,g,!1,!1,y,x);if(!F)return{notEnoughRoom:!0};v=[F]}for(const O of v)i.addDynamicAttributes(d,O.point,O.angle);return{}}function eZ(r,n,o,s,a){const l=s.projectTilePoint(r.x,r.y,n);if(!a)return eU(l,o,l.z);const c=a(r);return eU(new i.pointGeometry(l.x+c[0],l.y+c[1]),o,l.z+c[2])}function e$(i,r,n,o,s,a,l,c){const h=eZ(i.add(i.sub(r)._unit()),c,s,l,a).point,u=n.sub(h);return n.add(u._mult(o/u.mag()))}function eq(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){const v=s?r-n:r+n;let b=v>0?1:-1,w=0;s&&(b*=-1,w=Math.PI),b<0&&(w+=Math.PI);let T=b>0?h+c:h+c+1,E=a,S=a,I=0,M=0;const A=Math.abs(v),C=[],z=[];let k=l;const P=()=>{const r=T-b;return 0===I?l:new i.pointGeometry(d.getx(r),d.gety(r))},D=()=>e$(P(),k,S,A-I+1,p,m,y,x.canonical);for(;I+M<=A;){if((T+=b)=u)return null;if(S=E,C.push(E),_&&z.push(k||P()),void 0===(E=f[T])){k=new i.pointGeometry(d.getx(T),d.gety(T));const L=eZ(k,x.canonical,p,y,m);E=L.signedDistanceFromCamera>0?f[T]=L.point:D()}else k=null;I+=M,M=S.dist(E)}g&&m&&(k=k||new i.pointGeometry(d.getx(T),d.gety(T)),f[T]=E=void 0===f[T]?E:D(),M=S.dist(E));const B=(A-I)/M,R=E.sub(S),F=R.mult(B)._add(S);o&&F._add(R._unit()._perp()._mult(o*b));const O=w+Math.atan2(E.y-S.y,E.x-S.x);return C.push(F),_&&(k=k||new i.pointGeometry(d.getx(T),d.gety(T)),z.push(function(r,n,o){const s=1-o;return new i.pointGeometry(r.x*s+n.x*o,r.y*s+n.y*o)}(z.length>0?z[z.length-1]:k,k,B))),{point:F,angle:O,path:C,tilePath:z}}const eX=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function eW(i,r){for(let n=0;n[0,0,0],b=new i.pointGeometry(n.tileAnchorX,n.tileAnchorY),w=this.transform.projection.projectTilePoint(n.tileAnchorX,n.tileAnchorY,_.canonical),T=v(b),E=[w.x+T[0],w.y+T[1],w.z+T[2]],S=this.projectAndGetPerspectiveRatio(l,E[0],E[1],E[2],_),{perspectiveRatio:I}=S,M=(d?a/I:a*I)/i.ONE_EM,A=eU(new i.pointGeometry(E[0],E[1]),c,E[2]).point,C=S.signedDistanceFromCamera>0?eN(M,s,n.lineOffsetX*M,n.lineOffsetY*M,!1,A,b,n,o,c,{},y&&!d?v:null,d&&!!y,this.transform.projection,_):null;let z=!1,k=!1,P=!0;if(C&&!S.aboveHorizon){const D=.5*f*I+m,L=new i.pointGeometry(-100,-100),B=new i.pointGeometry(this.screenRightBoundary,this.screenBottomBoundary),R=new eL,F=C.first,O=C.last;let U=[];for(let V=F.path.length-1;V>=1;V--)U.push(F.path[V]);for(let N=1;N{const n=v(reU(i,h));U=G.some(i=>i.signedDistanceFromCamera<=0)?[]:G.map(i=>i.point)}let Z=[];if(U.length>0){const $=U[0].clone(),q=U[0].clone();for(let X=1;X=L.x&&q.x<=B.x&&$.y>=L.y&&q.y<=B.y?[U]:q.xB.x||q.yB.y?[]:i.clipLine([U],L.x,L.y,B.x,B.y)}for(const W of Z){R.reset(W,.25*D);let H=0;H=R.length<=.5*D?1:Math.ceil(R.paddedLength/j)+1;for(let K=0;K0){i.transformMat4$1(l,l,r);let h=!1;this.fogState&&a&&(h=function(r,n,o,s,a,l){const c=l.calculateFogTileMatrix(a),h=[n,o,s];return i.transformMat4(h,h,c),x(r,h,l.pitch,l._fov)}(this.fogState,n,o,s||0,a.toUnwrapped(),this.transform)>.9),c=l[2]>l[3]||h}else eH(l,l,r);return{point:new i.pointGeometry((l[0]/l[3]+1)/2*this.transform.width+100,(-l[1]/l[3]+1)/2*this.transform.height+100),perspectiveRatio:Math.min(.5+this.transform.cameraToCenterDistance/l[3]*.5,1.5),signedDistanceFromCamera:l[3],aboveHorizon:c}}isOffscreen(i,r,n,o){return n<100||i>=this.screenRightBoundary||o<100||r>this.screenBottomBoundary}isInsideGrid(i,r,n,o){return n>=0&&i=0&&ri.collisionGroupID===r}}return this.collisionGroups[i]}}function e3(r,n,o,s,a){const{horizontalAlign:l,verticalAlign:c}=i.getAnchorAlignment(r),h=i.evaluateVariableOffset(r,s);return new i.pointGeometry(-(l-.5)*n+h[0]*a,-(c-.5)*o+h[1]*a)}function e5(r,n,o,s,a){const l=new i.pointGeometry(r,n);return o&&l._rotate(s?a:-a),l}class e4{constructor(i,r,n,o,s){this.transform=i.clone(),this.collisionIndex=new eK(this.transform,s),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=r,this.retainedQueryData={},this.collisionGroups=new e2(n),this.collisionCircleArrays={},this.prevPlacement=o,o&&(o.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(r,n,o,s){const a=o.getBucket(n),l=o.latestFeatureIndex;if(!a||!l||n.id!==a.layerIds[0])return;const c=a.layers[0].layout,h=o.collisionBoxArray,u=Math.pow(2,this.transform.zoom-o.tileID.overscaledZ),d=o.tileSize/i.EXTENT,p=o.tileID.toUnwrapped(),f=this.transform.calculateProjMatrix(p),m="map"===c.get("text-pitch-alignment"),_="map"===c.get("text-rotation-alignment");n.compileFilter();const g=n.dynamicFilter(),y=n.dynamicFilterNeedsFeature(),x=this.transform.calculatePixelsToTileUnitsMatrix(o),v=eF(f,o.tileID.canonical,m,_,this.transform,x);let b=null;if(m){const w=eO(f,o.tileID.canonical,m,_,this.transform,x);b=i.multiply$1([],this.transform.labelPlaneMatrix,w)}let T=null;g&&o.latestFeatureIndex&&(T={unwrappedTileID:p,dynamicFilter:g,dynamicFilterNeedsFeature:y,featureIndex:o.latestFeatureIndex}),this.retainedQueryData[a.bucketInstanceId]=new e1(a.bucketInstanceId,l,a.sourceLayerIndex,a.index,o.tileID);const E={bucket:a,layout:c,posMatrix:f,textLabelPlaneMatrix:v,labelToScreenMatrix:b,clippingData:T,scale:u,textPixelRatio:d,holdingForFade:o.holdingForFade(),collisionBoxArray:h,partiallyEvaluatedTextSize:i.evaluateSizeForZoom(a.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:i.evaluateSizeForZoom(a.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(a.sourceID)};if(s)for(const S of a.sortKeyRanges){const{sortKey:I,symbolInstanceStart:M,symbolInstanceEnd:A}=S;r.push({sortKey:I,symbolInstanceStart:M,symbolInstanceEnd:A,parameters:E})}else r.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:E})}attemptAnchorPlacement(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){const v=[p.textOffset0,p.textOffset1],b=e3(i,n,o,v,s),w=this.collisionIndex.placeCollisionBox(s,r,e5(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate);if((!g||0!==this.collisionIndex.placeCollisionBox(m.getSymbolInstanceIconSize(x,this.transform.zoom,f),g,e5(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate).box.length)&&w.box.length>0){let T;return this.prevPlacement&&this.prevPlacement.variableOffsets[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID].text&&(T=this.prevPlacement.variableOffsets[p.crossTileID].anchor),this.variableOffsets[p.crossTileID]={textOffset:v,width:n,height:o,anchor:i,textScale:s,prevAnchor:T},this.markUsedJustification(m,i,p,_),m.allowVerticalPlacement&&(this.markUsedOrientation(m,_,p),this.placedOrientations[p.crossTileID]=_),{shift:b,placedGlyphBoxes:w}}}placeLayerBucketPart(r,n,o,s){const{bucket:a,layout:l,posMatrix:c,textLabelPlaneMatrix:h,labelToScreenMatrix:u,clippingData:d,textPixelRatio:p,holdingForFade:f,collisionBoxArray:m,partiallyEvaluatedTextSize:_,partiallyEvaluatedIconSize:g,collisionGroup:y}=r.parameters,x=l.get("text-optional"),v=l.get("icon-optional"),b=l.get("text-allow-overlap"),w=l.get("icon-allow-overlap"),T="map"===l.get("text-rotation-alignment"),E="map"===l.get("text-pitch-alignment"),S="none"!==l.get("icon-text-fit"),I="viewport-y"===l.get("symbol-z-order"),M=b&&(w||!a.hasIconData()||v),A=w&&(b||!a.hasTextData()||x);!a.collisionArrays&&m&&a.deserializeCollisionBoxes(m),o&&s&&a.updateCollisionDebugBuffers(this.transform.zoom,m);const C=(r,s,m)=>{if(d){const I={zoom:this.transform.zoom,pitch:this.transform.pitch};let C=null;if(d.dynamicFilterNeedsFeature){const z=this.retainedQueryData[a.bucketInstanceId];C=d.featureIndex.loadFeature({featureIndex:r.featureIndex,bucketIndex:z.bucketIndex,sourceLayerIndex:z.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,d.dynamicFilter)(I,C,this.retainedQueryData[a.bucketInstanceId].tileID.canonical,new i.pointGeometry(r.tileAnchorX,r.tileAnchorY),this.transform.calculateDistanceTileData(d.unwrappedTileID)))return this.placements[r.crossTileID]=new eQ(!1,!1,!1,!0),void(n[r.crossTileID]=!0)}if(n[r.crossTileID])return;if(f)return void(this.placements[r.crossTileID]=new eQ(!1,!1,!1));let k=!1,P=!1,D=!0,L=null,B={box:null,offscreen:null},R={box:null,offscreen:null},F=null,O=null,U=null,V=0,N=0,j=0;m.textFeatureIndex?V=m.textFeatureIndex:r.useRuntimeCollisionCircles&&(V=r.featureIndex),m.verticalTextFeatureIndex&&(N=m.verticalTextFeatureIndex);const G=i=>{i.tileID=this.retainedQueryData[a.bucketInstanceId].tileID,(this.transform.elevation||i.elevation)&&(i.elevation=this.transform.elevation?this.transform.elevation.getAtTileOffset(this.retainedQueryData[a.bucketInstanceId].tileID,i.tileAnchorX,i.tileAnchorY):0)},Z=m.textBox;if(Z){G(Z);const $=n=>{let o=i.WritingMode.horizontal;if(a.allowVerticalPlacement&&!n&&this.prevPlacement){const s=this.prevPlacement.placedOrientations[r.crossTileID];s&&(this.placedOrientations[r.crossTileID]=s,o=s,this.markUsedOrientation(a,o,r))}return o},q=(n,o)=>{if(a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&m.verticalTextBox){for(const s of a.writingModes)if(s===i.WritingMode.vertical?R=B=o():B=n(),B&&B.box&&B.box.length)break}else B=n()};if(l.get("text-variable-anchor")){let X=l.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[r.crossTileID]){const W=this.prevPlacement.variableOffsets[r.crossTileID];X.indexOf(W.anchor)>0&&(X=X.filter(i=>i!==W.anchor)).unshift(W.anchor)}const H=(i,n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),h=(i.x2-i.x1)*l+2*i.padding,u=(i.y2-i.y1)*l+2*i.padding,d=S&&!w?n:null;d&&G(d);let f={box:[],offscreen:!1};const m=b?2*X.length:X.length;for(let x=0;x=X.length,r,s,a,o,d,_,g);if(v&&(f=v.placedGlyphBoxes)&&f.box&&f.box.length){k=!0,L=v.shift;break}}return f};q(()=>H(Z,m.iconBox,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return n&&G(n),a.allowVerticalPlacement&&!(B&&B.box&&B.box.length)&&r.numVerticalGlyphVertices>0&&n?H(n,m.verticalIconBox,i.WritingMode.vertical):{box:null,offscreen:null}}),B&&(k=B.box,D=B.offscreen);const K=$(B&&B.box);if(!k&&this.prevPlacement){const Y=this.prevPlacement.variableOffsets[r.crossTileID];Y&&(this.variableOffsets[r.crossTileID]=Y,this.markUsedJustification(a,Y.anchor,r,K))}}else{const J=(n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),h=this.collisionIndex.placeCollisionBox(l,n,new i.pointGeometry(0,0),b,p,c,y.predicate);return h&&h.box&&h.box.length&&(this.markUsedOrientation(a,o,r),this.placedOrientations[r.crossTileID]=o),h};q(()=>J(Z,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&n?(G(n),J(n,i.WritingMode.vertical)):{box:null,offscreen:null}}),$(B&&B.box&&B.box.length)}}if(k=(F=B)&&F.box&&F.box.length>0,D=F&&F.offscreen,r.useRuntimeCollisionCircles){const Q=a.text.placedSymbolArray.get(r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex),ee=i.evaluateSizeForFeature(a.textSizeData,_,Q),et=l.get("text-padding");O=this.collisionIndex.placeCollisionCircles(b,Q,a.lineVertexArray,a.glyphOffsetArray,ee,c,h,u,o,E,y.predicate,r.collisionCircleDiameter*ee/i.ONE_EM,et,this.retainedQueryData[a.bucketInstanceId].tileID),k=b||O.circles.length>0&&!O.collisionDetected,D=D&&O.offscreen}if(m.iconFeatureIndex&&(j=m.iconFeatureIndex),m.iconBox){const ei=r=>{G(r);const n=S&&L?e5(L.x,L.y,T,E,this.transform.angle):new i.pointGeometry(0,0),o=a.getSymbolInstanceIconSize(g,this.transform.zoom,s);return this.collisionIndex.placeCollisionBox(o,r,n,w,p,c,y.predicate)};P=R&&R.box&&R.box.length&&m.verticalIconBox?(U=ei(m.verticalIconBox)).box.length>0:(U=ei(m.iconBox)).box.length>0,D=D&&U.offscreen}const er=x||0===r.numHorizontalGlyphVertices&&0===r.numVerticalGlyphVertices,en=v||0===r.numIconVertices;if(er||en?en?er||(P=P&&k):k=P&&k:P=k=P&&k,k&&F&&F.box&&this.collisionIndex.insertCollisionBox(F.box,l.get("text-ignore-placement"),a.bucketInstanceId,R&&R.box&&N?N:V,y.ID),P&&U&&this.collisionIndex.insertCollisionBox(U.box,l.get("icon-ignore-placement"),a.bucketInstanceId,j,y.ID),O&&(k&&this.collisionIndex.insertCollisionCircles(O.circles,l.get("text-ignore-placement"),a.bucketInstanceId,V,y.ID),o)){const eo=a.bucketInstanceId;let es=this.collisionCircleArrays[eo];void 0===es&&(es=this.collisionCircleArrays[eo]=new e0);for(let ea=0;ea=0;--k){const P=z[k];C(a.symbolInstances.get(P),P,a.collisionArrays[P])}}else for(let D=r.symbolInstanceStart;D=0&&(r.text.placedSymbolArray.get(c).crossTileID=a>=0&&c!==a?0:o.crossTileID)}markUsedOrientation(r,n,o){const s=n===i.WritingMode.horizontal||n===i.WritingMode.horizontalOnly?n:0,a=n===i.WritingMode.vertical?n:0,l=[o.leftJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.rightJustifiedTextSymbolIndex];for(const c of l)r.text.placedSymbolArray.get(c).placedOrientation=s;o.verticalPlacedTextSymbolIndex&&(r.text.placedSymbolArray.get(o.verticalPlacedTextSymbolIndex).placedOrientation=a)}commit(i){this.commitTime=i,this.zoomAtLastRecencyCheck=this.transform.zoom;const r=this.prevPlacement;let n=!1;this.prevZoomAdjustment=r?r.zoomAdjustment(this.transform.zoom):0;const o=r?r.symbolFadeChange(i):1,s=r?r.opacities:{},a=r?r.variableOffsets:{},l=r?r.placedOrientations:{};for(const c in this.placements){const h=this.placements[c],u=s[c];u?(this.opacities[c]=new eJ(u,o,h.text,h.icon,null,h.clipped),n=n||h.text!==u.text.placed||h.icon!==u.icon.placed):(this.opacities[c]=new eJ(null,o,h.text,h.icon,h.skipFade,h.clipped),n=n||h.text||h.icon)}for(const d in s){const p=s[d];if(!this.opacities[d]){const f=new eJ(p,o,!1,!1);f.isHidden()||(this.opacities[d]=f,n=n||p.text.placed||p.icon.placed)}}for(const m in a)this.variableOffsets[m]||!this.opacities[m]||this.opacities[m].isHidden()||(this.variableOffsets[m]=a[m]);for(const _ in l)this.placedOrientations[_]||!this.opacities[_]||this.opacities[_].isHidden()||(this.placedOrientations[_]=l[_]);n?this.lastPlacementChangeTime=i:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=r?r.lastPlacementChangeTime:i)}updateLayerOpacities(i,r){const n={};for(const o of r){const s=o.getBucket(i);s&&o.latestFeatureIndex&&i.id===s.layerIds[0]&&this.updateBucketOpacities(s,n,o.collisionBoxArray)}}updateBucketOpacities(r,n,o){r.hasTextData()&&r.text.opacityVertexArray.clear(),r.hasIconData()&&r.icon.opacityVertexArray.clear(),r.hasIconCollisionBoxData()&&r.iconCollisionBox.collisionVertexArray.clear(),r.hasTextCollisionBoxData()&&r.textCollisionBox.collisionVertexArray.clear();const s=r.layers[0].layout,a=!!r.layers[0].dynamicFilter(),l=new eJ(null,0,!1,!1,!0),c=s.get("text-allow-overlap"),h=s.get("icon-allow-overlap"),u=s.get("text-variable-anchor"),d="map"===s.get("text-rotation-alignment"),p="map"===s.get("text-pitch-alignment"),f="none"!==s.get("icon-text-fit"),m=new eJ(null,0,c&&(h||!r.hasIconData()||s.get("icon-optional")),h&&(c||!r.hasTextData()||s.get("text-optional")),!0);!r.collisionArrays&&o&&(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData())&&r.deserializeCollisionBoxes(o);const _=(i,r,n)=>{for(let o=0;o0||b>0,S=x.numIconVertices>0,I=this.placedOrientations[x.crossTileID],M=I===i.WritingMode.vertical,A=I===i.WritingMode.horizontal||I===i.WritingMode.horizontalOnly;if(!E&&!S||T.isHidden()||g++,E){const C=e8(T.text);_(r.text,v,M?e9:C),_(r.text,b,A?e9:C);const z=T.text.isHidden();[x.rightJustifiedTextSymbolIndex,x.centerJustifiedTextSymbolIndex,x.leftJustifiedTextSymbolIndex].forEach(i=>{i>=0&&(r.text.placedSymbolArray.get(i).hidden=z||M?1:0)}),x.verticalPlacedTextSymbolIndex>=0&&(r.text.placedSymbolArray.get(x.verticalPlacedTextSymbolIndex).hidden=z||A?1:0);const k=this.variableOffsets[x.crossTileID];k&&this.markUsedJustification(r,k.anchor,x,I);const P=this.placedOrientations[x.crossTileID];P&&(this.markUsedJustification(r,"left",x,P),this.markUsedOrientation(r,P,x))}if(S){const D=e8(T.icon);x.placedIconSymbolIndex>=0&&(_(r.icon,x.numIconVertices,M?e9:D),r.icon.placedSymbolArray.get(x.placedIconSymbolIndex).hidden=T.icon.isHidden()),x.verticalPlacedIconSymbolIndex>=0&&(_(r.icon,x.numVerticalIconVertices,A?e9:D),r.icon.placedSymbolArray.get(x.verticalPlacedIconSymbolIndex).hidden=T.icon.isHidden())}if(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData()){const L=r.collisionArrays[y];if(L){let B=new i.pointGeometry(0,0),R=!0;if(L.textBox||L.verticalTextBox){if(u){const F=this.variableOffsets[w];F?(B=e3(F.anchor,F.width,F.height,F.textOffset,F.textScale),d&&B._rotate(p?this.transform.angle:-this.transform.angle)):R=!1}a&&(R=!T.clipped),L.textBox&&e6(r.textCollisionBox.collisionVertexArray,T.text.placed,!R||M,B.x,B.y),L.verticalTextBox&&e6(r.textCollisionBox.collisionVertexArray,T.text.placed,!R||A,B.x,B.y)}const O=R&&Boolean(!A&&L.verticalIconBox);L.iconBox&&e6(r.iconCollisionBox.collisionVertexArray,T.icon.placed,O,f?B.x:0,f?B.y:0),L.verticalIconBox&&e6(r.iconCollisionBox.collisionVertexArray,T.icon.placed,!O,f?B.x:0,f?B.y:0)}}}if(r.fullyClipped=0===g,r.sortFeatures(this.transform.angle),this.retainedQueryData[r.bucketInstanceId]&&(this.retainedQueryData[r.bucketInstanceId].featureSortOrder=r.featureSortOrder),r.hasTextData()&&r.text.opacityVertexBuffer&&r.text.opacityVertexBuffer.updateData(r.text.opacityVertexArray),r.hasIconData()&&r.icon.opacityVertexBuffer&&r.icon.opacityVertexBuffer.updateData(r.icon.opacityVertexArray),r.hasIconCollisionBoxData()&&r.iconCollisionBox.collisionVertexBuffer&&r.iconCollisionBox.collisionVertexBuffer.updateData(r.iconCollisionBox.collisionVertexArray),r.hasTextCollisionBoxData()&&r.textCollisionBox.collisionVertexBuffer&&r.textCollisionBox.collisionVertexBuffer.updateData(r.textCollisionBox.collisionVertexArray),r.bucketInstanceId in this.collisionCircleArrays){const U=this.collisionCircleArrays[r.bucketInstanceId];r.placementInvProjMatrix=U.invProjMatrix,r.placementViewportMatrix=U.viewportMatrix,r.collisionCircleArray=U.circles,delete this.collisionCircleArrays[r.bucketInstanceId]}}symbolFadeChange(i){return 0===this.fadeDuration?1:(i-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(i){return Math.max(0,(this.transform.zoom-i)/1.5)}hasTransitions(i){return this.stale||i-this.lastPlacementChangeTimei}setStale(){this.stale=!0}}function e6(i,r,n,o,s){i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0)}function e8(i){if(0===i.opacity&&!i.placed)return 0;if(1===i.opacity&&i.placed)return 4294967295;const r=i.placed?1:0,n=Math.floor(127*i.opacity);return 33554432*n+16777216*r+131072*n+65536*r+512*n+256*r+2*n+r}const e9=0;class e7{constructor(i){this._sortAcrossTiles="viewport-y"!==i.layout.get("symbol-z-order")&&void 0!==i.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(i,r,n,o,s){const a=this._bucketParts;for(;this._currentTileIndexi.sortKey-r.sortKey));this._currentPartIndex{const r=i.exported.now()-s;return!this._forceFullPlacement&&r>2};for(;this._currentPlacementIndex>=0;){const l=n[r[this._currentPlacementIndex]],c=this.placement.collisionIndex.transform.zoom;if("symbol"===l.type&&(!l.minzoom||l.minzoom<=c)&&(!l.maxzoom||l.maxzoom>c)){if(this._inProgressLayer||(this._inProgressLayer=new e7(l)),this._inProgressLayer.continuePlacement(o[l.source],this.placement,this._showCollisionBoxes,l,a))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(i){return this.placement.commit(i),this.placement}}const tt=512/i.EXTENT/2;class ti{constructor(i,r,n){this.tileID=i,this.indexedSymbolInstances={},this.bucketInstanceId=n;for(let o=0;oi.overscaledZ)for(const c in l){const h=l[c];h.tileID.isChildOf(i)&&h.findMatches(r.symbolInstances,i,s)}else{const u=l[i.scaledTo(Number(a)).key];u&&u.findMatches(r.symbolInstances,i,s)}}for(let d=0;d{r[i]=!0}),this.layerIndexes)r[n]||delete this.layerIndexes[n]}}const ts=(r,n)=>i.emitValidationErrors(r,n&&n.filter(i=>"source.canvas"!==i.identifier)),ta=i.pick(eA,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),tl=i.pick(eA,["setCenter","setZoom","setBearing","setPitch"]),tc=function(){const r={},n=i.spec.$version;for(const o in i.spec.$root){const s=i.spec.$root[o];if(s.required){let a=null;null!=(a="version"===o?n:"array"===s.type?[]:{})&&(r[o]=a)}}return r}(),th={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class tu extends i.Evented{constructor(r,n={}){super(),this.map=r,this.dispatcher=new E(eI(),this),this.imageManager=new d,this.imageManager.setEventedParent(this),this.glyphManager=new i.GlyphManager(r._requestManager,n.localFontFamily?i.LocalGlyphMode.all:n.localIdeographFontFamily?i.LocalGlyphMode.ideographs:i.LocalGlyphMode.none,n.localFontFamily||n.localIdeographFontFamily),this.lineAtlas=new i.LineAtlas(256,512),this.crossTileSymbolIndex=new to,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this.zoomHistory=new i.ZoomHistory,this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",i.getReferrer());const o=this;this._rtlTextPluginCallback=tu.registerForPluginStateChange(r=>{o.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:r.pluginStatus,pluginURL:r.pluginURL},(r,n)=>{if(i.triggerPluginCompletionEvent(r),n&&n.every(i=>i))for(const s in o._sourceCaches){const a=o._sourceCaches[s],l=a.getSource().type;"vector"!==l&&"geojson"!==l||a.reload()}})}),this.on("data",i=>{if("source"!==i.dataType||"metadata"!==i.sourceDataType)return;const r=this.getSource(i.sourceId);if(r&&r.vectorLayerIds)for(const n in this._layers){const o=this._layers[n];o.source===r.id&&this._validateLayer(o)}})}loadURL(r,n={}){this.fire(new i.Event("dataloading",{dataType:"style"}));const o="boolean"==typeof n.validate?n.validate:!i.isMapboxURL(r);r=this.map._requestManager.normalizeStyleURL(r,n.accessToken);const s=this.map._requestManager.transformRequest(r,i.ResourceType.Style);this._request=i.getJSON(s,(r,n)=>{this._request=null,r?this.fire(new i.ErrorEvent(r)):n&&this._load(n,o)})}loadJSON(r,n={}){this.fire(new i.Event("dataloading",{dataType:"style"})),this._request=i.exported.frame(()=>{this._request=null,this._load(r,!1!==n.validate)})}loadEmpty(){this.fire(new i.Event("dataloading",{dataType:"style"})),this._load(tc,!1)}_updateLayerCount(i,r){const n=r?1:-1;i.is3D()&&(this._num3DLayers+=n),"circle"===i.type&&(this._numCircleLayers+=n),"symbol"===i.type&&(this._numSymbolLayers+=n)}_load(r,n){if(n&&ts(this,i.validateStyle(r)))return;for(const o in this._loaded=!0,this.stylesheet=r,this.updateProjection(),r.sources)this.addSource(o,r.sources[o],{validate:!1});this._changed=!1,r.sprite?this._loadSprite(r.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(r.glyphs);const s=eM(this.stylesheet.layers);for(let a of(this._order=s.map(i=>i.id),this._layers={},this._serializedLayers={},s))(a=i.createStyleLayer(a)).setEventedParent(this,{layer:{id:a.id}}),this._layers[a.id]=a,this._serializedLayers[a.id]=a.serialize(),this._updateLayerCount(a,!0);this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new m(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new i.Event("data",{dataType:"style"})),this.fire(new i.Event("style.load"))}terrainSetForDrapingOnly(){return this.terrain&&0===this.terrain.drapeRenderMode}setProjection(i){i?this.stylesheet.projection=i:delete this.stylesheet.projection,this.updateProjection()}updateProjection(){const i=this.map.transform.projection,r=this.map.transform.setProjection(this.map._runtimeProjection||(this.stylesheet?this.stylesheet.projection:void 0)),n=this.map.transform.projection;if(this._loaded&&(n.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null)),this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),r){if(n.isReprojectedInTileSpace||i.isReprojectedInTileSpace)for(const o in this.map.painter.clearBackgroundTiles(),this._sourceCaches)this._sourceCaches[o].clearTiles();else this._forceSymbolLayerUpdate();this.map._update(!0)}}_loadSprite(r){this._spriteRequest=function(r,n,o){let s,a,l;const c=i.exported.devicePixelRatio>1?"@2x":"";let h=i.getJSON(n.transformRequest(n.normalizeSpriteURL(r,c,".json"),i.ResourceType.SpriteJSON),(i,r)=>{h=null,l||(l=i,s=r,d())}),u=i.getImage(n.transformRequest(n.normalizeSpriteURL(r,c,".png"),i.ResourceType.SpriteImage),(i,r)=>{u=null,l||(l=i,a=r,d())});function d(){if(l)o(l);else if(s&&a){const r=i.exported.getImageData(a),n={};for(const c in s){const{width:h,height:u,x:d,y:p,sdf:f,pixelRatio:m,stretchX:_,stretchY:g,content:y}=s[c],x=new i.RGBAImage({width:h,height:u});i.RGBAImage.copy(r,x,{x:d,y:p},{x:0,y:0},{width:h,height:u}),n[c]={data:x,pixelRatio:m,sdf:f,stretchX:_,stretchY:g,content:y}}o(null,n)}}return{cancel(){h&&(h.cancel(),h=null),u&&(u.cancel(),u=null)}}}(r,this.map._requestManager,(r,n)=>{if(this._spriteRequest=null,r)this.fire(new i.ErrorEvent(r));else if(n)for(const o in n)this.imageManager.addImage(o,n[o]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new i.Event("data",{dataType:"style"}))})}_validateLayer(r){const n=this.getSource(r.source);if(!n)return;const o=r.sourceLayer;o&&("geojson"===n.type||n.vectorLayerIds&&-1===n.vectorLayerIds.indexOf(o))&&this.fire(new i.ErrorEvent(Error(`Source layer "${o}" does not exist on source "${n.id}" as specified by style layer "${r.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const i in this._sourceCaches)if(!this._sourceCaches[i].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(i){const r=[];for(const n of i){const o=this._layers[n];"custom"!==o.type&&r.push(o.serialize())}return r}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(const i in this._sourceCaches)if(this._sourceCaches[i].hasTransition())return!0;for(const r in this._layers)if(this._layers[r].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(i){return!!this.terrain&&th[i.type]}_checkLoaded(){if(!this._loaded)throw Error("Style is not done loading")}update(r){if(!this._loaded)return;const n=this._changed;if(this._changed){const o=Object.keys(this._updatedLayers),s=Object.keys(this._removedLayers);for(const a in(o.length||s.length)&&this._updateWorkerLayers(o,s),this._updatedSources){const l=this._updatedSources[a];"reload"===l?this._reloadSource(a):"clear"===l&&this._clearSource(a)}for(const c in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[c].updateTransitions(r);this.light.updateTransitions(r),this.fog&&this.fog.updateTransitions(r),this._resetUpdates()}const h={};for(const u in this._sourceCaches){const d=this._sourceCaches[u];h[u]=d.used,d.used=!1}for(const p of this._order){const f=this._layers[p];if(f.recalculate(r,this._availableImages),!f.isHidden(r.zoom)){const m=this._getLayerSourceCache(f);m&&(m.used=!0)}const _=this.map.painter;if(_){const g=f.getProgramIds();if(!g)continue;const y=f.getProgramConfiguration(r.zoom);for(const x of g)_.useProgram(x,y)}}for(const v in h){const b=this._sourceCaches[v];h[v]!==b.used&&b.getSource().fire(new i.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:b.getSource().id}))}this.light.recalculate(r),this.terrain&&this.terrain.recalculate(r),this.fog&&this.fog.recalculate(r),this.z=r.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),n&&this.fire(new i.Event("data",{dataType:"style"}))}_updateTilesForChangedImages(){const i=Object.keys(this._changedImages);if(i.length){for(const r in this._sourceCaches)this._sourceCaches[r].reloadTilesForDependencies(["icons","patterns"],i);this._changedImages={}}}_updateWorkerLayers(i,r){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(i),removedIds:r})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(r){if(this._checkLoaded(),ts(this,i.validateStyle(r)))return!1;(r=i.clone$1(r)).layers=eM(r.layers);const n=(function(i,r){if(!i)return[{command:eA.setStyle,args:[r]}];let n=[];try{if(!s(i.version,r.version))return[{command:eA.setStyle,args:[r]}];s(i.center,r.center)||n.push({command:eA.setCenter,args:[r.center]}),s(i.zoom,r.zoom)||n.push({command:eA.setZoom,args:[r.zoom]}),s(i.bearing,r.bearing)||n.push({command:eA.setBearing,args:[r.bearing]}),s(i.pitch,r.pitch)||n.push({command:eA.setPitch,args:[r.pitch]}),s(i.sprite,r.sprite)||n.push({command:eA.setSprite,args:[r.sprite]}),s(i.glyphs,r.glyphs)||n.push({command:eA.setGlyphs,args:[r.glyphs]}),s(i.transition,r.transition)||n.push({command:eA.setTransition,args:[r.transition]}),s(i.light,r.light)||n.push({command:eA.setLight,args:[r.light]}),s(i.fog,r.fog)||n.push({command:eA.setFog,args:[r.fog]}),s(i.projection,r.projection)||n.push({command:eA.setProjection,args:[r.projection]});const o={},a=[];!function(i,r,n,o){let a;for(a in r=r||{},i=i||{})i.hasOwnProperty(a)&&(r.hasOwnProperty(a)||ez(a,n,o));for(a in r){var l,c;r.hasOwnProperty(a)&&(i.hasOwnProperty(a)?s(i[a],r[a])||("geojson"===i[a].type&&"geojson"===r[a].type&&function(i,r,n){let o;for(o in i[n])if(i[n].hasOwnProperty(o)&&"data"!==o&&!s(i[n][o],r[n][o]))return!1;for(o in r[n])if(r[n].hasOwnProperty(o)&&"data"!==o&&!s(i[n][o],r[n][o]))return!1;return!0}(i,r,a)?n.push({command:eA.setGeoJSONSourceData,args:[a,r[a].data]}):(l=a,c=r,ez(l,n,o),eC(l,c,n))):eC(a,r,n))}}(i.sources,r.sources,a,o);const l=[];i.layers&&i.layers.forEach(i=>{o[i.source]?n.push({command:eA.removeLayer,args:[i.id]}):l.push(i)});let c=i.terrain;c&&o[c.source]&&(n.push({command:eA.setTerrain,args:[void 0]}),c=void 0),n=n.concat(a),s(c,r.terrain)||n.push({command:eA.setTerrain,args:[r.terrain]}),function(i,r,n){let o,a,l,c,h,u,d;r=r||[];const p=(i=i||[]).map(eP),f=r.map(eP),m=i.reduce(eD,{}),_=r.reduce(eD,{}),g=p.slice(),y=Object.create(null);for(o=0,a=0;o!(i.command in tl));if(0===n.length)return!1;const o=n.filter(i=>!(i.command in ta));if(o.length>0)throw Error(`Unimplemented: ${o.map(i=>i.command).join(", ")}.`);return n.forEach(i=>{"setTransition"!==i.command&&this[i.command].apply(this,i.args)}),this.stylesheet=r,this.updateProjection(),!0}addImage(r,n){if(this.getImage(r))return this.fire(new i.ErrorEvent(Error("An image with this name already exists.")));this.imageManager.addImage(r,n),this._afterImageUpdated(r)}updateImage(i,r){this.imageManager.updateImage(i,r)}getImage(i){return this.imageManager.getImage(i)}removeImage(r){if(!this.getImage(r))return this.fire(new i.ErrorEvent(Error("No image with this name exists.")));this.imageManager.removeImage(r),this._afterImageUpdated(r)}_afterImageUpdated(r){this._availableImages=this.imageManager.listImages(),this._changedImages[r]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new i.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(r,n,o={}){if(this._checkLoaded(),void 0!==this.getSource(r))throw Error("There is already a source with this ID");if(!n.type)throw Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(n.type)>=0&&this._validate(i.validateStyle.source,`sources.${r}`,n,null,o))return;this.map&&this.map._collectResourceTiming&&(n.collectResourceTiming=!0);const s=eb(r,n,this.dispatcher,this);s.setEventedParent(this,()=>({isSourceLoaded:this.loaded(),source:s.serialize(),sourceId:r}));const a=n=>{const o=(n?"symbol:":"other:")+r,a=this._sourceCaches[o]=new i.SourceCache(o,s,n);(n?this._symbolSourceCaches:this._otherSourceCaches)[r]=a,a.style=this,a.onAdd(this.map)};a(!1),"vector"!==n.type&&"geojson"!==n.type||a(!0),s.onAdd&&s.onAdd(this.map),this._changed=!0}removeSource(r){this._checkLoaded();const n=this.getSource(r);if(void 0===n)throw Error("There is no source with this ID");for(const o in this._layers)if(this._layers[o].source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while layer "${o}" is using it.`)));if(this.terrain&&this.terrain.get().source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while terrain is using it.`)));const s=this._getSourceCaches(r);for(const a of s)delete this._sourceCaches[a.id],delete this._updatedSources[a.id],a.fire(new i.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:a.getSource().id})),a.setEventedParent(null),a.clearTiles();delete this._otherSourceCaches[r],delete this._symbolSourceCaches[r],n.setEventedParent(null),n.onRemove&&n.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(i,r){this._checkLoaded(),this.getSource(i).setData(r),this._changed=!0}getSource(i){const r=this._getSourceCache(i);return r&&r.getSource()}addLayer(r,n,o={}){let s;this._checkLoaded();const a=r.id;if(this.getLayer(a))return void this.fire(new i.ErrorEvent(Error(`Layer with id "${a}" already exists on this map`)));if("custom"===r.type){if(ts(this,i.validateCustomStyleLayer(r)))return;s=i.createStyleLayer(r)}else{if("object"==typeof r.source&&(this.addSource(a,r.source),r=i.clone$1(r),r=i.extend(r,{source:a})),this._validate(i.validateStyle.layer,`layers.${a}`,r,{arrayIndex:-1},o))return;s=i.createStyleLayer(r),this._validateLayer(s),s.setEventedParent(this,{layer:{id:a}}),this._serializedLayers[s.id]=s.serialize(),this._updateLayerCount(s,!0)}const l=n?this._order.indexOf(n):this._order.length;if(n&&-1===l)return void this.fire(new i.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`)));this._order.splice(l,0,a),this._layerOrderChanged=!0,this._layers[a]=s;const c=this._getLayerSourceCache(s);if(this._removedLayers[a]&&s.source&&c&&"custom"!==s.type){const h=this._removedLayers[a];delete this._removedLayers[a],h.type!==s.type?this._updatedSources[s.source]="clear":(this._updatedSources[s.source]="reload",c.pause())}this._updateLayer(s),s.onAdd&&s.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(r,n){if(this._checkLoaded(),this._changed=!0,!this._layers[r])return void this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be moved.`)));if(r===n)return;const o=this._order.indexOf(r);this._order.splice(o,1);const s=n?this._order.indexOf(n):this._order.length;n&&-1===s?this.fire(new i.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`))):(this._order.splice(s,0,r),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(r){this._checkLoaded();const n=this._layers[r];if(!n)return void this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be removed.`)));n.setEventedParent(null),this._updateLayerCount(n,!1);const o=this._order.indexOf(r);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[r]=n,delete this._layers[r],delete this._serializedLayers[r],delete this._updatedLayers[r],delete this._updatedPaintProps[r],n.onRemove&&n.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(i){return this._layers[i]}hasLayer(i){return i in this._layers}hasLayerType(i){for(const r in this._layers)if(this._layers[r].type===i)return!0;return!1}setLayerZoomRange(r,n,o){this._checkLoaded();const s=this.getLayer(r);s?s.minzoom===n&&s.maxzoom===o||(null!=n&&(s.minzoom=n),null!=o&&(s.maxzoom=o),this._updateLayer(s)):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(r,n,o={}){this._checkLoaded();const a=this.getLayer(r);if(a){if(!s(a.filter,n))return null==n?(a.filter=void 0,void this._updateLayer(a)):void(this._validate(i.validateStyle.filter,`layers.${a.id}.filter`,n,{layerType:a.type},o)||(a.filter=i.clone$1(n),this._updateLayer(a)))}else this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be filtered.`)))}getFilter(r){return i.clone$1(this.getLayer(r).filter)}setLayoutProperty(r,n,o,a={}){this._checkLoaded();const l=this.getLayer(r);l?s(l.getLayoutProperty(n),o)||(l.setLayoutProperty(n,o,a),this._updateLayer(l)):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(r,n){const o=this.getLayer(r);if(o)return o.getLayoutProperty(n);this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style.`)))}setPaintProperty(r,n,o,a={}){this._checkLoaded();const l=this.getLayer(r);l?s(l.getPaintProperty(n),o)||(l.setPaintProperty(n,o,a)&&this._updateLayer(l),this._changed=!0,this._updatedPaintProps[r]=!0):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(i,r){return this.getLayer(i).getPaintProperty(r)}setFeatureState(r,n){this._checkLoaded();const o=r.source,s=r.sourceLayer,a=this.getSource(o);if(void 0===a)return void this.fire(new i.ErrorEvent(Error(`The source '${o}' does not exist in the map's style.`)));const l=a.type;if("geojson"===l&&s)return void this.fire(new i.ErrorEvent(Error("GeoJSON sources cannot have a sourceLayer parameter.")));if("vector"===l&&!s)return void this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));void 0===r.id&&this.fire(new i.ErrorEvent(Error("The feature id parameter must be provided.")));const c=this._getSourceCaches(o);for(const h of c)h.setFeatureState(s,r.id,n)}removeFeatureState(r,n){this._checkLoaded();const o=r.source,s=this.getSource(o);if(void 0===s)return void this.fire(new i.ErrorEvent(Error(`The source '${o}' does not exist in the map's style.`)));const a=s.type,l="vector"===a?r.sourceLayer:void 0;if("vector"===a&&!l)return void this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));if(n&&"string"!=typeof r.id&&"number"!=typeof r.id)return void this.fire(new i.ErrorEvent(Error("A feature id is required to remove its specific state property.")));const c=this._getSourceCaches(o);for(const h of c)h.removeFeatureState(l,r.id,n)}getFeatureState(r){this._checkLoaded();const n=r.source,o=r.sourceLayer,s=this.getSource(n);if(void 0!==s){if("vector"!==s.type||o)return void 0===r.id&&this.fire(new i.ErrorEvent(Error("The feature id parameter must be provided."))),this._getSourceCaches(n)[0].getFeatureState(o,r.id);this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new i.ErrorEvent(Error(`The source '${n}' does not exist in the map's style.`)))}getTransition(){return i.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const r={};for(const n in this._sourceCaches){const o=this._sourceCaches[n].getSource();r[o.id]||(r[o.id]=o.serialize())}return i.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.stylesheet.terrain,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:r,layers:this._serializeLayers(this._order)},i=>void 0!==i)}_updateLayer(i){this._updatedLayers[i.id]=!0;const r=this._getLayerSourceCache(i);i.source&&!this._updatedSources[i.source]&&r&&"raster"!==r.getSource().type&&(this._updatedSources[i.source]="reload",r.pause()),this._changed=!0,i.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(i){const r={},n=[];for(let o=this._order.length-1;o>=0;o--){const s=this._order[o];if("fill-extrusion"===this._layers[s].type)for(const a of(r[s]=o,i)){const l=a[s];if(l)for(const c of l)n.push(c)}}n.sort((i,r)=>r.intersectionZ-i.intersectionZ);const h=[];for(let u=this._order.length-1;u>=0;u--){const d=this._order[u];if("fill-extrusion"===this._layers[d].type)for(let p=n.length-1;p>=0;p--){const f=n[p].feature;if(r[f.layer.id]{const r=this.getLayer(i);return r&&r.is3D()}):this.has3DLayers(),u=ep.createFromScreenPoints(r,o);for(const d in this._sourceCaches){const p=this._sourceCaches[d].getSource().id;n.layers&&!s[p]||c.push(function(r,n,o,s,a,l,c,h=!1){const u=r.tilesIn(s,c,h);u.sort(ew);const d=[];for(const p of u)d.push({wrappedTileID:p.tile.tileID.wrapped().key,queryResults:p.tile.queryRenderedFeatures(n,o,r._state,p,a,l,function(r,n){const o=i.identity([]);return i.scale(o,o,[.5*r.width,-(.5*r.height),1]),i.translate(o,o,[1,-1,0]),i.multiply$1(o,o,r.calculateProjMatrix(n.toUnwrapped()))}(r.transform,p.tile.tileID),h)});const f=function(i){const r={},n={};for(const o of i){const s=o.queryResults,a=o.wrappedTileID,l=n[a]=n[a]||{};for(const c in s){const h=s[c],u=l[c]=l[c]||{},d=r[c]=r[c]||[];for(const p of h)u[p.featureIndex]||(u[p.featureIndex]=!0,d.push(p))}}return r}(d);for(const m in f)f[m].forEach(i=>{const n=i.feature,o=r.getFeatureState(n.layer["source-layer"],n.id);n.source=n.layer.source,n.layer["source-layer"]&&(n.sourceLayer=n.layer["source-layer"]),n.state=o});return f}(this._sourceCaches[d],this._layers,this._serializedLayers,u,n,o,h,!!this.map._showQueryGeometry))}return this.placement&&c.push(function(i,r,n,o,s,a,l){const c={},h=a.queryRenderedSymbols(o),u=[];for(const d of Object.keys(h).map(Number))u.push(l[d]);for(const p of(u.sort(ew),u)){const f=p.featureIndex.lookupSymbolFeatures(h[p.bucketInstanceId],r,p.bucketIndex,p.sourceLayerIndex,s.filter,s.layers,s.availableImages,i);for(const m in f){const _=c[m]=c[m]||[],g=f[m];for(const y of(g.sort((i,r)=>{const n=p.featureSortOrder;if(n){const o=n.indexOf(i.featureIndex);return n.indexOf(r.featureIndex)-o}return r.featureIndex-i.featureIndex}),g))_.push(y)}}for(const x in c)c[x].forEach(r=>{const o=r.feature,s=n(i[x]).getFeatureState(o.layer["source-layer"],o.id);o.source=o.layer.source,o.layer["source-layer"]&&(o.sourceLayer=o.layer["source-layer"]),o.state=s});return c}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),u.screenGeometry,n,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(c)}querySourceFeatures(r,n){n&&n.filter&&this._validate(i.validateStyle.filter,"querySourceFeatures.filter",n.filter,null,n);const o=this._getSourceCaches(r);let s=[];for(const a of o)s=s.concat(function(i,r){const n=i.getRenderableIds().map(r=>i.getTileByID(r)),o=[],s={};for(let a=0;a{for(const i of this.map._markers)i._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(r){if(this._checkLoaded(),!r)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const n=this.fog,o=n.get();for(const a in r)if(!s(r[a],o[a])){n.set(r),this.stylesheet.fog=r;const l={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};n.updateTransitions(l);break}}else this._createFog(r);this._markersNeedUpdate=!0}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const i=this._order.filter(i=>this.isLayerDraped(this._layers[i])),r=this._order.filter(i=>!this.isLayerDraped(this._layers[i]));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...i),this._drapedFirstOrder.push(...r)}_createTerrain(r,n){const o=this.terrain=new y(r,n);this.stylesheet.terrain=r,this.dispatcher.broadcast("enableTerrain",!0),this._force3DLayerUpdate();const s={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};o.updateTransitions(s)}_force3DLayerUpdate(){for(const i in this._layers){const r=this._layers[i];"fill-extrusion"===r.type&&this._updateLayer(r)}}_forceSymbolLayerUpdate(){for(const i in this._layers){const r=this._layers[i];"symbol"===r.type&&this._updateLayer(r)}}_validate(r,n,o,s,a={}){return(!a||!1!==a.validate)&&ts(this,r.call(i.validateStyle,i.extend({key:n,style:this.serialize(),value:o,styleSpec:i.spec},s)))}_remove(){for(const r in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),i.evented.off("pluginStateChange",this._rtlTextPluginCallback),this._layers)this._layers[r].setEventedParent(null);for(const n in this._sourceCaches)this._sourceCaches[n].clearTiles(),this._sourceCaches[n].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(i){const r=this._getSourceCaches(i);for(const n of r)n.clearTiles()}_reloadSource(i){const r=this._getSourceCaches(i);for(const n of r)n.resume(),n.reload()}_updateSources(i){for(const r in this._sourceCaches)this._sourceCaches[r].update(i)}_generateCollisionBoxes(){for(const i in this._sourceCaches){const r=this._sourceCaches[i];r.resume(),r.reload()}}_updatePlacement(r,n,o,s,a=!1){let l=!1,c=!1;const h={};for(const u of this._order){const d=this._layers[u];if("symbol"!==d.type)continue;if(!h[d.source]){const p=this._getLayerSourceCache(d);if(!p)continue;h[d.source]=p.getRenderableIds(!0).map(i=>p.getTileByID(i)).sort((i,r)=>r.tileID.overscaledZ-i.tileID.overscaledZ||(i.tileID.isLessThan(r.tileID)?-1:1))}const f=this.crossTileSymbolIndex.addLayer(d,h[d.source],r.center.lng,r.projection);l=l||f}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),a=a||this._layerOrderChanged||0===o,this._layerOrderChanged&&this.fire(new i.Event("neworder")),(a||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(i.exported.now(),r.zoom))&&(this.pauseablePlacement=new te(r,this._order,a,n,o,s,this.placement,this.fog&&r.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,h),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(i.exported.now()),c=!0),l&&this.pauseablePlacement.placement.setStale()),c||l)for(const m of this._order){const _=this._layers[m];"symbol"===_.type&&this.placement.updateLayerOpacities(_,h[_.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(i.exported.now())}_releaseSymbolFadeTiles(){for(const i in this._sourceCaches)this._sourceCaches[i].releaseSymbolFadeTiles()}getImages(i,r,n){this.imageManager.getImages(r.icons,n),this._updateTilesForChangedImages();const o=i=>{i&&i.setDependencies(r.tileID.key,r.type,r.icons)};o(this._otherSourceCaches[r.source]),o(this._symbolSourceCaches[r.source])}getGlyphs(i,r,n){this.glyphManager.getGlyphs(r.stacks,n)}getResource(r,n,o){return i.makeRequest(n,o)}_getSourceCache(i){return this._otherSourceCaches[i]}_getLayerSourceCache(i){return"symbol"===i.type?this._symbolSourceCaches[i.source]:this._otherSourceCaches[i.source]}_getSourceCaches(i){const r=[];return this._otherSourceCaches[i]&&r.push(this._otherSourceCaches[i]),this._symbolSourceCaches[i]&&r.push(this._symbolSourceCaches[i]),r}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}tu.getSourceType=function(i){return ev[i]},tu.setSourceType=function(i,r){ev[i]=r},tu.registerForPluginStateChange=i.registerForPluginStateChange;var td="\n#define EPSILON 0.0000001\n#define PI 3.141592653589793\n#define EXTENT 8192.0\n#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}\n#endif",tp="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}";let tf={},tm={};tf=ty("","\n#define ELEVATION_SCALE 7.0\n#define ELEVATION_OFFSET 450.0\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix(\nmix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;}\n#else\nvec3 elevationVector(vec2 pos) { return vec3(0,0,1); }\n#endif\n#ifdef TERRAIN\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nuniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev;\n#else\nuniform sampler2D u_dem;uniform sampler2D u_dem_prev;\n#endif\nuniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos));\n#ifdef TERRAIN_DEM_NEAREST_FILTER\nreturn u_exaggeration*tl;\n#endif\nfloat tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}float prevElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}\n#ifdef TERRAIN_VERTEX_MORPHING\nfloat elevation(vec2 apos) {float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);}\n#else\nfloat elevation(vec2 apos) {return currentElevation(apos);}\n#endif\nfloat unpack_depth(vec4 rgba_depth)\n{const vec4 bit_shift=vec4(1.0/(256.0*256.0*256.0),1.0/(256.0*256.0),1.0/256.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4(\nunpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy))\n);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nfloat tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a;\n#else\nvec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack);\n#endif\nreturn vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;vec4 bounds=vec4(d,vec2(1.0)-d);h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);}\n#else\nfloat elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; }\n#endif",!0),tm=ty("#ifdef FOG\nuniform float u_fog_temporal_offset;float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);}\n#endif","#ifdef FOG\nuniform mat4 u_fog_matrix;vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);}\n#endif",!0);const t_=ty("\nhighp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}\n#ifdef TERRAIN\nhighp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(256.0*256.0*256.0,256.0*256.0,256.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/256.0,1.0/256.0,1.0/256.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}\n#endif","\nfloat wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;}vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) {\n#if defined(PROJECTION_GLOBE_VIEW) && !defined(PROJECTED_POS_ON_VIEWPORT)\nfloat tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz;\n#else\nreturn vec3(0.0);\n#endif\n}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {\n#if defined(PROJECTION_GLOBE_VIEW) && !defined(PROJECTED_POS_ON_VIEWPORT)\nreturn mix(globe,mercator,t);\n#else\nreturn globe;\n#endif\n}\n#ifdef PROJECTION_GLOBE_VIEW\nmat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);}\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(\nunpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered.");var tg={background:ty("uniform vec4 u_color;uniform float u_opacity;void main() {vec4 out_color=u_color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),backgroundPattern:ty("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_mix);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),circle:ty("varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(\nantialiased_blur,0.0,extrude_length-radius/(radius+stroke_width)\n);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef FOG\nout_color=fog_apply_premultiplied(out_color,v_fog_pos);\n#endif\ngl_FragColor=out_color*(v_visibility*opacity_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","#define NUM_VISIBILITY_RINGS 2\n#define INV_SQRT2 0.70710678\n#define ELEVATION_BIAS 0.0001\n#define NUM_SAMPLES_PER_RING 16\nuniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;attribute float a_scale;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) {\n#if defined(TERRAIN)\nreturn elevation(pos)+ELEVATION_BIAS;\n#else\nreturn 0.0;\n#endif\n}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale);\n#ifdef PITCH_WITH_MAP\n#ifdef PROJECTION_GLOBE_VIEW\nreturn u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) );\n#else\nreturn u_matrix*( world_center+vec4(sample_offset,0,0) );\n#endif\n#else\nreturn projected_center+vec4(sample_offset,0,0);\n#endif\n}float get_sample_step() {\n#ifdef PITCH_WITH_MAP\nreturn 2.0*PI/float(NUM_SAMPLES_PER_RING);\n#else\nreturn PI/float(NUM_SAMPLES_PER_RING);\n#endif\n}void main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);\n#ifdef PROJECTION_GLOBE_VIEW\nvec2 scaled_extrude=extrude*a_scale;vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=scaled_extrude.x*surface_vectors[0]+scaled_extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);vec4 world_center=vec4(pos,1);\n#else \nmat3 surface_vectors=mat3(1.0);float height=circle_elevation(circle_center);vec4 world_center=vec4(circle_center,height,1);\n#endif\nvec4 projected_center=u_matrix*world_center;float view_scale=0.0;\n#ifdef PITCH_WITH_MAP\n#ifdef SCALE_WITH_MAP\nview_scale=1.0;\n#else\nview_scale=projected_center.w/u_camera_to_center_distance;\n#endif\n#else\n#ifdef SCALE_WITH_MAP\nview_scale=u_camera_to_center_distance;\n#else\nview_scale=projected_center.w;\n#endif\n#endif\n#if defined(SCALE_WITH_MAP) && defined(PROJECTION_GLOBE_VIEW)\nview_scale*=a_scale;\n#endif\ngl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0;\n#ifdef TERRAIN\nfloat step=get_sample_step();\n#ifdef PITCH_WITH_MAP\nfloat cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);vec4 occlusion_world_center=vec4(circle_center,cantilevered_height,1);vec4 occlusion_projected_center=u_matrix*occlusion_world_center;\n#else\nvec4 occlusion_world_center=world_center;vec4 occlusion_projected_center=projected_center;\n#endif\nfor(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING);\n#else\nvisibility=1.0;\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nvisibility=1.0;\n#endif\nv_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);\n#ifdef FOG\nv_fog_pos=fog_position(world_center.xyz);\n#endif\n}"),clippingMask:ty("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:ty("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef FOG\ngl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;attribute float a_scale;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5);\n#ifdef PROJECTION_GLOBE_VIEW\nextrude*=a_scale;vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#else\nvec3 pos=vec3(tilePos+extrude,elevation(tilePos));\n#endif\ngl_Position=u_matrix*vec4(pos,1);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),heatmapTexture:ty("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:ty("varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}","attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:ty("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(\nmix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:ty("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;\n#endif\nvarying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0;\n#ifdef PROJECTION_GLOBE_VIEW\ngl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1);\n#else\ngl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1);\n#endif\n}"),fill:ty("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\nvec4 out_color=color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutline:ty("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutlinePattern:ty("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=mix(color1,color2,u_fade);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillPattern:ty("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillExtrusion:ty("varying vec4 v_color;void main() {vec4 color=v_color;\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 pos_nx=floor(a_pos_normal_ed.xyz*0.5);mediump vec3 top_up_ny=a_pos_normal_ed.xyz-2.0*pos_nx;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;float ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;float h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 pos=vec3(pos_nx.xy,h);\n#else\nvec3 pos=vec3(pos_nx.xy,t > 0.0 ? height : base);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(pos.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.rgb+=clamp(color.rgb*directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_color*=u_opacity;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),fillExtrusionPattern:ty("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade);out_color=out_color*v_lighting;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 pos_nx=floor(a_pos_normal_ed.xyz*0.5);mediump vec3 top_up_ny=a_pos_normal_ed.xyz-2.0*pos_nx;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;float ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;float h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 p=vec3(pos_nx.xy,h);\n#else\nvec3 p=vec3(pos_nx.xy,z);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0\n? pos_nx.xy\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;\n#ifdef FOG\nv_fog_pos=fog_position(p);\n#endif\n}"),hillshadePrepare:ty("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nreturn texture2D(u_image,coord).a/4.0;\n#else\nvec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;\n#endif\n}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos);float f=getElevation(v_pos+vec2(epsilon.x,0));float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float h=getElevation(v_pos+vec2(0,epsilon.y));float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2(\n(c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c)\n)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(\nderiv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:ty("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef FOG\ngl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos));\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),line:ty("uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#ifdef RENDER_LINE_DASH\nuniform sampler2D u_dash_image;uniform float u_mix;uniform vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform sampler2D u_gradient_image;varying highp vec2 v_uv;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash_from\n#pragma mapbox: define lowp vec4 dash_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash_from\n#pragma mapbox: initialize lowp vec4 dash_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);\n#ifdef RENDER_LINE_DASH\nfloat sdfdist_a=texture2D(u_dash_image,v_tex_a).a;float sdfdist_b=texture2D(u_dash_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfwidth=min(dash_from.z*u_scale.y,dash_to.z*u_scale.z);float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/sdfwidth;alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);\n#endif\n#ifdef RENDER_LINE_GRADIENT\nvec4 out_color=texture2D(u_gradient_image,v_uv);\n#else\nvec4 out_color=color;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\n#ifdef RENDER_LINE_ALPHA_DISCARD\nif (alpha < u_alpha_discard_threshold) {discard;}\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define EXTRUDE_SCALE 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;\n#ifdef RENDER_LINE_GRADIENT\nattribute vec3 a_packed;\n#else\nattribute float a_linesofar;\n#endif\nuniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;\n#ifdef RENDER_LINE_DASH\nuniform vec2 u_texsize;uniform mediump vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform float u_image_height;varying highp vec2 v_uv;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash_from\n#pragma mapbox: define lowp vec4 dash_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash_from\n#pragma mapbox: initialize lowp vec4 dash_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nfloat a_uv_x=a_packed[0];float a_split_index=a_packed[1];float a_linesofar=a_packed[2];highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);\n#endif\n#ifdef RENDER_LINE_DASH\nfloat tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;float scaleA=dash_from.z==0.0 ? 0.0 : tileZoomRatio/(dash_from.z*fromScale);float scaleB=dash_to.z==0.0 ? 0.0 : tileZoomRatio/(dash_to.z*toScale);float heightA=dash_from.y;float heightB=dash_to.y;v_tex_a=vec2(a_linesofar*scaleA/floorwidth,(-normal.y*heightA+dash_from.x+0.5)/u_texsize.y);v_tex_b=vec2(a_linesofar*scaleB/floorwidth,(-normal.y*heightB+dash_to.x+0.5)/u_texsize.y);\n#endif\nv_width2=vec2(outset,inset);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),linePattern:ty("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),raster:ty("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(\ndot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);vec3 out_color=mix(u_high_vec,u_low_vec,rgb);\n#ifdef FOG\nout_color=fog_dither(fog_apply(out_color,v_fog_pos));\n#endif\ngl_FragColor=vec4(out_color*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),symbolIcon:ty("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0);\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}"),symbolSDF:ty("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_tile_id;uniform float u_zoom_transition;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset);\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float gamma_scale=gl_Position.w;float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nvec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}"),symbolTextAndIcon:ty("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale);\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}"),terrainRaster:ty("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\nvoid main() {vec4 color=texture2D(u_image0,v_pos0);\n#ifdef FOG\ncolor=fog_dither(fog_apply_from_vert(color,v_fog_opacity));\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\nconst float skirtOffset=24575.0;const float wireframeOffset=0.00015;void main() {v_pos0=a_texture_pos/8192.0;float skirt=float(a_pos.x >=skirtOffset);float elevation=elevation(a_texture_pos)-skirt*u_skirt_height;\n#ifdef TERRAIN_WIREFRAME\nelevation+=u_skirt_height*u_skirt_height*wireframeOffset;\n#endif\nvec2 decodedPos=a_pos-vec2(skirt*skirtOffset,0.0);gl_Position=u_matrix*vec4(decodedPos,elevation,1.0);\n#ifdef FOG\nv_fog_opacity=fog(fog_position(vec3(decodedPos,elevation)));\n#endif\n}"),terrainDepth:ty("#ifdef GL_ES\nprecision highp float;\n#endif\nvarying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying float v_depth;void main() {float elevation=elevation(a_texture_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:ty("\nvarying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep(\ncos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb;\n#ifdef FOG\nsky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color);\n#endif\nsky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",tp),skyboxGradient:ty("varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5));\n#ifdef FOG\ncolor.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a;\n#endif\ncolor*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",tp),skyboxCapture:ty("\nvarying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m;\n#ifdef GL_ES\nprecision highp float;\n#endif\n#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6)\n#define BETA_M vec3(21e-6,21e-6,21e-6)\n#define MIE_G 0.76\n#define DENSITY_HEIGHT_SCALE_R 8000.0\n#define DENSITY_HEIGHT_SCALE_M 1200.0\n#define PLANET_RADIUS 6360e3\n#define ATMOSPHERE_RADIUS 6420e3\n#define SAMPLE_STEPS 10\n#define DENSITY_STEPS 4\nfloat ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}","attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:ty("uniform sampler2D u_image0;varying vec2 v_pos0;void main() {gl_FragColor=texture2D(u_image0,v_pos0);\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_proj_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;attribute vec3 a_globe_pos;attribute vec2 a_merc_pos;attribute vec2 a_uv;varying vec2 v_pos0;const float wireframeOffset=1e3;void main() {v_pos0=a_uv;vec2 uv=a_uv*EXTENT;vec4 up_vector=vec4(elevationVector(uv),1.0);float height=elevation(uv);\n#ifdef TERRAIN_WIREFRAME\nheight+=wireframeOffset;\n#endif\nvec4 globe=u_globe_matrix*vec4(a_globe_pos+up_vector.xyz*height,1.0);vec4 mercator=vec4(0.0);if (u_zoom_transition > 0.0) {mercator=vec4(a_merc_pos,height,1.0);mercator.xy-=u_merc_center;mercator.x=wrap(mercator.x,-0.5,0.5);mercator=u_merc_matrix*mercator;}vec3 position=mix(globe.xyz,mercator.xyz,u_zoom_transition);gl_Position=u_proj_matrix*vec4(position,1.0);}"),globeAtmosphere:ty("uniform vec2 u_center;uniform float u_radius;uniform vec2 u_screen_size;uniform float u_opacity;uniform highp float u_fadeout_range;uniform vec3 u_start_color;uniform vec3 u_end_color;uniform float u_pixel_ratio;void main() {highp vec2 fragCoord=gl_FragCoord.xy/u_pixel_ratio;fragCoord.y=u_screen_size.y-fragCoord.y;float distFromCenter=length(fragCoord-u_center);float normDistFromCenter=length(fragCoord-u_center)/u_radius;if (normDistFromCenter < 1.0)\ndiscard;float t=clamp(1.0-sqrt(normDistFromCenter-1.0)/u_fadeout_range,0.0,1.0);vec3 color=mix(u_start_color,u_end_color,1.0-t);gl_FragColor=vec4(color*t*u_opacity,u_opacity);}","attribute vec3 a_pos;void main() {gl_Position=vec4(a_pos,1.0);}")};function ty(i,r,n){const o=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,s=/uniform (highp |mediump |lowp )?([\w]+) ([\w]+)([\s]*)([\w]*)/g,a=r.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),l=i.match(s),c=r.match(s),h=td.match(s);let u=c?c.concat(l):l;n||(tf.staticUniforms&&(u=tf.staticUniforms.concat(u)),tm.staticUniforms&&(u=tm.staticUniforms.concat(u))),u&&(u=u.concat(h));const d={};return{fragmentSource:i=i.replace(o,(i,r,n,o,s)=>(d[s]=!0,"define"===r?` #ifndef HAS_UNIFORM_u_${s} varying ${n} ${o} ${s}; #else diff --git a/crates/swc_ecma_minifier/tests/full/feedback-mapbox/785-e1932cc99ac3bb67/output.js b/crates/swc_ecma_minifier/tests/full/feedback-mapbox/785-e1932cc99ac3bb67/output.js index d236197904b..91c3d93c5c6 100644 --- a/crates/swc_ecma_minifier/tests/full/feedback-mapbox/785-e1932cc99ac3bb67/output.js +++ b/crates/swc_ecma_minifier/tests/full/feedback-mapbox/785-e1932cc99ac3bb67/output.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[785],{840:function(t,e,n){var r;!function(i,o,a,s){"use strict";var c,u=["","webkit","Moz","MS","ms","o"],l=o.createElement("div"),h=Math.round,p=Math.abs,f=Date.now;function d(t,e,n){return setTimeout(O(t,n),e)}function v(t,e,n){return!!Array.isArray(t)&&(g(t,n[e],n),!0)}function g(t,e,n){var r;if(t){if(t.forEach)t.forEach(e,n);else if(s!==t.length)for(r=0;r\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=i.console&&(i.console.warn||i.console.log);return o&&o.call(i.console,r,n),t.apply(this,arguments)}}c="function"!=typeof Object.assign?function(t){if(t===s||null===t)throw TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n-1}function T(t){return t.trim().split(/\s+/g)}function k(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;rk(i,a)&&r.push(t[o]),i[o]=a,o++}return n&&(r=e?r.sort(function(t,n){return t[e]>n[e]}):r.sort()),r}function C(t,e){for(var n,r,i=e[0].toUpperCase()+e.slice(1),o=0;o1&&!i.firstMultiple?i.firstMultiple=q(r):1===a&&(i.firstMultiple=!1),c=i.firstInput,l=(u=i.firstMultiple)?u.center:c.center,h=r.center=H(o),r.timeStamp=f(),r.deltaTime=r.timeStamp-c.timeStamp,r.angle=K(l,h),r.distance=X(l,h),d=i,g=(v=r).center,m=d.offsetDelta||{},b=d.prevDelta||{},y=d.prevInput||{},(1===v.eventType||4===y.eventType)&&(b=d.prevDelta={x:y.deltaX||0,y:y.deltaY||0},m=d.offsetDelta={x:g.x,y:g.y}),v.deltaX=b.x+(g.x-m.x),v.deltaY=b.y+(g.y-m.y),r.offsetDirection=Y(r.deltaX,r.deltaY),w=W(r.deltaTime,r.deltaX,r.deltaY),r.overallVelocityX=w.x,r.overallVelocityY=w.y,r.overallVelocity=p(w.x)>p(w.y)?w.x:w.y,r.scale=u?(O=u.pointers,X(o[0],o[1],B)/X(O[0],O[1],B)):1,r.rotation=u?(E=u.pointers,K(o[1],o[0],B)+K(E[1],E[0],B)):0,r.maxPointers=i.prevInput?r.pointers.length>i.prevInput.maxPointers?r.pointers.length:i.prevInput.maxPointers:r.pointers.length,function(t,e){var n,r,i,o,a=t.lastInterval||e,c=e.timeStamp-a.timeStamp;if(8!=e.eventType&&(c>25||s===a.velocity)){var u=e.deltaX-a.deltaX,l=e.deltaY-a.deltaY,h=W(c,u,l);r=h.x,i=h.y,n=p(h.x)>p(h.y)?h.x:h.y,o=Y(u,l),t.lastInterval=e}else n=a.velocity,r=a.velocityX,i=a.velocityY,o=a.direction;e.velocity=n,e.velocityX=r,e.velocityY=i,e.direction=o}(i,r),_=t.element,j(r.srcEvent.target,_)&&(_=r.srcEvent.target),r.target=_,t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function q(t){for(var e=[],n=0;n=p(e)?t<0?2:4:e<0?8:16}function X(t,e,n){n||(n=V);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function K(t,e,n){n||(n=V);var r=e[n[0]]-t[n[0]];return 180*Math.atan2(e[n[1]]-t[n[1]],r)/Math.PI}Z.prototype={handler:function(){},init:function(){this.evEl&&P(this.element,this.evEl,this.domHandler),this.evTarget&&P(this.target,this.evTarget,this.domHandler),this.evWin&&P(A(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&M(this.element,this.evEl,this.domHandler),this.evTarget&&M(this.target,this.evTarget,this.domHandler),this.evWin&&M(A(this.element),this.evWin,this.domHandler)}};var G={mousedown:1,mousemove:2,mouseup:4};function $(){this.evEl="mousedown",this.evWin="mousemove mouseup",this.pressed=!1,Z.apply(this,arguments)}w($,Z,{handler:function(t){var e=G[t.type];1&e&&0===t.button&&(this.pressed=!0),2&e&&1!==t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:F,srcEvent:t}))}});var J={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},Q={2:z,3:"pen",4:F,5:"kinect"},tt="pointerdown",te="pointermove pointerup pointercancel";function tn(){this.evEl=tt,this.evWin=te,Z.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}i.MSPointerEvent&&!i.PointerEvent&&(tt="MSPointerDown",te="MSPointerMove MSPointerUp MSPointerCancel"),w(tn,Z,{handler:function(t){var e=this.store,n=!1,r=J[t.type.toLowerCase().replace("ms","")],i=Q[t.pointerType]||t.pointerType,o=k(e,t.pointerId,"pointerId");1&r&&(0===t.button||i==z)?o<0&&(e.push(t),o=e.length-1):12&r&&(n=!0),!(o<0)&&(e[o]=t,this.callback(this.manager,r,{pointers:e,changedPointers:[t],pointerType:i,srcEvent:t}),n&&e.splice(o,1))}});var tr={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function ti(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,Z.apply(this,arguments)}function to(t,e){var n=x(t.touches),r=x(t.changedTouches);return 12&e&&(n=D(n.concat(r),"identifier",!0)),[n,r]}w(ti,Z,{handler:function(t){var e=tr[t.type];if(1===e&&(this.started=!0),this.started){var n=to.call(this,t,e);12&e&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:z,srcEvent:t})}}});var ta={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function ts(){this.evTarget="touchstart touchmove touchend touchcancel",this.targetIds={},Z.apply(this,arguments)}function tc(t,e){var n=x(t.touches),r=this.targetIds;if(3&e&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=x(t.changedTouches),s=[],c=this.target;if(o=n.filter(function(t){return j(t.target,c)}),1===e)for(i=0;i-1&&r.splice(t,1)},2500)}}function tp(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,r=0;r-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){var e=this,n=this.state;function r(n){e.manager.emit(n,t)}n<8&&r(e.options.event+tP(n)),r(e.options.event),t.additionalEvent&&r(t.additionalEvent),n>=8&&r(e.options.event+tP(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&i&e.direction},attrTest:function(t){return tS.prototype.attrTest.call(this,t)&&(2&this.state||!(2&this.state)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=tM(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),w(tk,tS,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[tb]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||2&this.state)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),w(tx,t_,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[tg]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distancee.time;if(this._input=t,r&&n&&(!(12&t.eventType)||i)){if(1&t.eventType)this.reset(),this._timer=d(function(){this.state=8,this.tryEmit()},e.time,this);else if(4&t.eventType)return 8}else this.reset();return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){8===this.state&&(t&&4&t.eventType?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=f(),this.manager.emit(this.options.event,this._input)))}}),w(tD,tS,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[tb]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||2&this.state)}}),w(tC,tS,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return tT.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return 30&n?e=t.overallVelocity:6&n?e=t.overallVelocityX:24&n&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&p(e)>this.options.velocity&&4&t.eventType},emit:function(t){var e=tM(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),w(tR,t_,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[tm]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance1)for(var n=1;nt.length)&&(e=t.length);for(var n=0,r=Array(e);nn?n:t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),s=new d(4),d!=Float32Array&&(s[0]=0,s[1]=0,s[2]=0,s[3]=0);const y=Math.log2||function(t){return Math.log(t)*Math.LOG2E};function w(t,e,n){var r=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],u=e[6],l=e[7],h=e[8],p=e[9],f=e[10],d=e[11],v=e[12],g=e[13],m=e[14],b=e[15],y=n[0],w=n[1],O=n[2],E=n[3];return t[0]=y*r+w*s+O*h+E*v,t[1]=y*i+w*c+O*p+E*g,t[2]=y*o+w*u+O*f+E*m,t[3]=y*a+w*l+O*d+E*b,y=n[4],w=n[5],O=n[6],E=n[7],t[4]=y*r+w*s+O*h+E*v,t[5]=y*i+w*c+O*p+E*g,t[6]=y*o+w*u+O*f+E*m,t[7]=y*a+w*l+O*d+E*b,y=n[8],w=n[9],O=n[10],E=n[11],t[8]=y*r+w*s+O*h+E*v,t[9]=y*i+w*c+O*p+E*g,t[10]=y*o+w*u+O*f+E*m,t[11]=y*a+w*l+O*d+E*b,y=n[12],w=n[13],O=n[14],E=n[15],t[12]=y*r+w*s+O*h+E*v,t[13]=y*i+w*c+O*p+E*g,t[14]=y*o+w*u+O*f+E*m,t[15]=y*a+w*l+O*d+E*b,t}function O(t,e,n){var r,i,o,a,s,c,u,l,h,p,f,d,v=n[0],g=n[1],m=n[2];return e===t?(t[12]=e[0]*v+e[4]*g+e[8]*m+e[12],t[13]=e[1]*v+e[5]*g+e[9]*m+e[13],t[14]=e[2]*v+e[6]*g+e[10]*m+e[14],t[15]=e[3]*v+e[7]*g+e[11]*m+e[15]):(r=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],u=e[6],l=e[7],h=e[8],p=e[9],f=e[10],d=e[11],t[0]=r,t[1]=i,t[2]=o,t[3]=a,t[4]=s,t[5]=c,t[6]=u,t[7]=l,t[8]=h,t[9]=p,t[10]=f,t[11]=d,t[12]=r*v+s*g+h*m+e[12],t[13]=i*v+c*g+p*m+e[13],t[14]=o*v+u*g+f*m+e[14],t[15]=a*v+l*g+d*m+e[15]),t}function E(t,e,n){var r=n[0],i=n[1],o=n[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*o,t[9]=e[9]*o,t[10]=e[10]*o,t[11]=e[11]*o,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function _(t,e){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],c=t[6],u=t[7],l=t[8],h=t[9],p=t[10],f=t[11],d=t[12],v=t[13],g=t[14],m=t[15],b=e[0],y=e[1],w=e[2],O=e[3],E=e[4],_=e[5],P=e[6],M=e[7],j=e[8],S=e[9],T=e[10],k=e[11],x=e[12],D=e[13],C=e[14],R=e[15];return Math.abs(n-b)<=1e-6*Math.max(1,Math.abs(n),Math.abs(b))&&Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(i-w)<=1e-6*Math.max(1,Math.abs(i),Math.abs(w))&&Math.abs(o-O)<=1e-6*Math.max(1,Math.abs(o),Math.abs(O))&&Math.abs(a-E)<=1e-6*Math.max(1,Math.abs(a),Math.abs(E))&&Math.abs(s-_)<=1e-6*Math.max(1,Math.abs(s),Math.abs(_))&&Math.abs(c-P)<=1e-6*Math.max(1,Math.abs(c),Math.abs(P))&&Math.abs(u-M)<=1e-6*Math.max(1,Math.abs(u),Math.abs(M))&&Math.abs(l-j)<=1e-6*Math.max(1,Math.abs(l),Math.abs(j))&&Math.abs(h-S)<=1e-6*Math.max(1,Math.abs(h),Math.abs(S))&&Math.abs(p-T)<=1e-6*Math.max(1,Math.abs(p),Math.abs(T))&&Math.abs(f-k)<=1e-6*Math.max(1,Math.abs(f),Math.abs(k))&&Math.abs(d-x)<=1e-6*Math.max(1,Math.abs(d),Math.abs(x))&&Math.abs(v-D)<=1e-6*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(g-C)<=1e-6*Math.max(1,Math.abs(g),Math.abs(C))&&Math.abs(m-R)<=1e-6*Math.max(1,Math.abs(m),Math.abs(R))}function P(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function M(t,e,n,r){var i=e[0],o=e[1];return t[0]=i+r*(n[0]-i),t[1]=o+r*(n[1]-o),t}function j(t,e){if(!t)throw Error(e||"@math.gl/web-mercator: assertion failed.")}c=new d(2),d!=Float32Array&&(c[0]=0,c[1]=0),u=new d(3),d!=Float32Array&&(u[0]=0,u[1]=0,u[2]=0);const S=Math.PI,T=S/4,k=S/180,x=180/S;function D(t){return Math.pow(2,t)}function C([t,e]){j(Number.isFinite(t)),j(Number.isFinite(e)&&e>=-90&&e<=90,"invalid latitude");const n=512*(S+Math.log(Math.tan(T+.5*(e*k))))/(2*S);return[512*(t*k+S)/(2*S),n]}function R([t,e]){const n=2*(Math.atan(Math.exp(e/512*(2*S)-S))-T);return[(t/512*(2*S)-S)*x,n*x]}function A(t){return 2*Math.atan(.5/t)*x}function I(t){return .5/Math.tan(.5*t*k)}function L(t,e,n=0){const[r,i,o]=t;if(j(Number.isFinite(r)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(o)){const a=g(e,[r,i,o,1]);return a}const s=g(e,[r,i,0,1]),c=g(e,[r,i,1,1]),u=s[2],l=c[2];return M([],s,c,u===l?0:((n||0)-u)/(l-u))}const N=Math.PI/180;function z(t,e,n){const{pixelUnprojectionMatrix:r}=t,i=g(r,[e,0,1,1]),o=g(r,[e,t.height,1,1]),a=n*t.distanceScales.unitsPerMeter[2],s=(a-i[2])/(o[2]-i[2]),c=M([],i,o,s),u=R(c);return u[2]=n,u}class F{constructor({width:t,height:e,latitude:n=0,longitude:r=0,zoom:i=0,pitch:o=0,bearing:a=0,altitude:s=null,fovy:c=null,position:u=null,nearZMultiplier:l=.02,farZMultiplier:h=1.01}={width:1,height:1}){t=t||1,e=e||1,null===c&&null===s?c=A(s=1.5):null===c?c=A(s):null===s&&(s=I(c));const p=D(i);s=Math.max(.75,s);const f=function({latitude:t,longitude:e,highPrecision:n=!1}){j(Number.isFinite(t)&&Number.isFinite(e));const r={},i=Math.cos(t*k),o=512/360,a=o/i,s=512/4003e4/i;if(r.unitsPerMeter=[s,s,s],r.metersPerUnit=[1/s,1/s,1/s],r.unitsPerDegree=[o,a,s],r.degreesPerUnit=[1/o,1/a,1/s],n){const c=k*Math.tan(t*k)/i,u=512/4003e4*c,l=u/a*s;r.unitsPerDegree2=[0,o*c/2,u],r.unitsPerMeter2=[l,0,l]}return r}({longitude:r,latitude:n}),d=C([r,n]);if(d[2]=0,u){var g,m,b;b=d,g=[],m=f.unitsPerMeter,g[0]=u[0]*m[0],g[1]=u[1]*m[1],g[2]=u[2]*m[2],b[0]=d[0]+g[0],b[1]=d[1]+g[1],b[2]=d[2]+g[2]}this.projectionMatrix=function({width:t,height:e,pitch:n,altitude:r,fovy:i,nearZMultiplier:o,farZMultiplier:a}){var s,c,u;const{fov:l,aspect:h,near:p,far:f}=function({width:t,height:e,fovy:n=A(1.5),altitude:r,pitch:i=0,nearZMultiplier:o=1,farZMultiplier:a=1}){void 0!==r&&(n=A(r));const s=.5*n*k,c=I(n),u=i*k,l=Math.sin(s)*c/Math.sin(Math.min(Math.max(Math.PI/2-u-s,.01),Math.PI-.01)),h=Math.sin(u)*l+c;return{fov:2*s,aspect:t/e,focalDistance:c,near:o,far:h*a}}({width:t,height:e,altitude:r,fovy:i,pitch:n,nearZMultiplier:o,farZMultiplier:a}),d=(s=[],u=1/Math.tan(l/2),s[0]=u/h,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=u,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[11]=-1,s[12]=0,s[13]=0,s[15]=0,null!=f&&f!==1/0?(c=1/(p-f),s[10]=(f+p)*c,s[14]=2*f*p*c):(s[10]=-1,s[14]=-2*p),s);return d}({width:t,height:e,pitch:o,fovy:c,nearZMultiplier:l,farZMultiplier:h}),this.viewMatrix=function({height:t,pitch:e,bearing:n,altitude:r,scale:i,center:o=null}){var a,s,c,u,l,h,p,f,d,g,m,b,y,w,_,P,M,j,S,T,x,D,C,R,A;const I=v();return O(I,I,[0,0,-r]),a=I,c=Math.sin(s=-e*k),u=Math.cos(s),l=I[4],h=I[5],p=I[6],f=I[7],d=I[8],g=I[9],m=I[10],b=I[11],I!==a&&(a[0]=I[0],a[1]=I[1],a[2]=I[2],a[3]=I[3],a[12]=I[12],a[13]=I[13],a[14]=I[14],a[15]=I[15]),a[4]=l*u+d*c,a[5]=h*u+g*c,a[6]=p*u+m*c,a[7]=f*u+b*c,a[8]=d*u-l*c,a[9]=g*u-h*c,a[10]=m*u-p*c,a[11]=b*u-f*c,y=I,_=Math.sin(w=n*k),P=Math.cos(w),M=I[0],j=I[1],S=I[2],T=I[3],x=I[4],D=I[5],C=I[6],R=I[7],I!==y&&(y[8]=I[8],y[9]=I[9],y[10]=I[10],y[11]=I[11],y[12]=I[12],y[13]=I[13],y[14]=I[14],y[15]=I[15]),y[0]=M*P+x*_,y[1]=j*P+D*_,y[2]=S*P+C*_,y[3]=T*P+R*_,y[4]=x*P-M*_,y[5]=D*P-j*_,y[6]=C*P-S*_,y[7]=R*P-T*_,E(I,I,[i/=t,i,i]),o&&O(I,I,((A=[])[0]=-o[0],A[1]=-o[1],A[2]=-o[2],A)),I}({height:e,scale:p,center:d,pitch:o,bearing:a,altitude:s}),this.width=t,this.height=e,this.scale=p,this.latitude=n,this.longitude=r,this.zoom=i,this.pitch=o,this.bearing=a,this.altitude=s,this.fovy=c,this.center=d,this.meterOffset=u||[0,0,0],this.distanceScales=f,this._initMatrices(),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),Object.freeze(this)}_initMatrices(){var t,e,n,r,i,o,a,s,c,u,l,h,p,f,d,g,m,b,y,_,P,M,j,S,T,k,x,D,C,R;const{width:A,height:I,projectionMatrix:L,viewMatrix:N}=this,z=v();w(z,z,L),w(z,z,N),this.viewProjectionMatrix=z;const F=v();E(F,F,[A/2,-I/2,1]),O(F,F,[1,-1,0]),w(F,F,z);const V=(t=v(),e=F[0],n=F[1],r=F[2],i=F[3],o=F[4],a=F[5],s=F[6],c=F[7],u=F[8],l=F[9],h=F[10],p=F[11],f=F[12],d=F[13],g=F[14],m=F[15],b=e*a-n*o,y=e*s-r*o,_=e*c-i*o,P=n*s-r*a,M=n*c-i*a,j=r*c-i*s,S=u*d-l*f,T=u*g-h*f,k=u*m-p*f,x=l*g-h*d,D=l*m-p*d,(R=b*(C=h*m-p*g)-y*D+_*x+P*k-M*T+j*S)?(R=1/R,t[0]=(a*C-s*D+c*x)*R,t[1]=(r*D-n*C-i*x)*R,t[2]=(d*j-g*M+m*P)*R,t[3]=(h*M-l*j-p*P)*R,t[4]=(s*k-o*C-c*T)*R,t[5]=(e*C-r*k+i*T)*R,t[6]=(g*_-f*j-m*y)*R,t[7]=(u*j-h*_+p*y)*R,t[8]=(o*D-a*k+c*S)*R,t[9]=(n*k-e*D-i*S)*R,t[10]=(f*M-d*_+m*b)*R,t[11]=(l*_-u*M-p*b)*R,t[12]=(a*T-o*x-s*S)*R,t[13]=(e*x-n*T+r*S)*R,t[14]=(d*y-f*P-g*b)*R,t[15]=(u*P-l*y+h*b)*R,t):null);if(!V)throw Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=F,this.pixelUnprojectionMatrix=V}equals(t){return t instanceof F&&t.width===this.width&&t.height===this.height&&_(t.projectionMatrix,this.projectionMatrix)&&_(t.viewMatrix,this.viewMatrix)}project(t,{topLeft:e=!0}={}){const n=this.projectPosition(t),r=function(t,e){const[n,r,i=0]=t;return j(Number.isFinite(n)&&Number.isFinite(r)&&Number.isFinite(i)),g(e,[n,r,i,1])}(n,this.pixelProjectionMatrix),[i,o]=r,a=e?o:this.height-o;return 2===t.length?[i,a]:[i,a,r[2]]}unproject(t,{topLeft:e=!0,targetZ:n}={}){const[r,i,o]=t,a=e?i:this.height-i,s=n&&n*this.distanceScales.unitsPerMeter[2],c=L([r,a,o],this.pixelUnprojectionMatrix,s),[u,l,h]=this.unprojectPosition(c);return Number.isFinite(o)?[u,l,h]:Number.isFinite(n)?[u,l,n]:[u,l]}projectPosition(t){const[e,n]=C(t),r=(t[2]||0)*this.distanceScales.unitsPerMeter[2];return[e,n,r]}unprojectPosition(t){const[e,n]=R(t),r=(t[2]||0)*this.distanceScales.metersPerUnit[2];return[e,n,r]}projectFlat(t){return C(t)}unprojectFlat(t){return R(t)}getMapCenterByLngLatPosition({lngLat:t,pos:e}){var n;const r=L(e,this.pixelUnprojectionMatrix),i=C(t),o=P([],i,((n=[])[0]=-r[0],n[1]=-r[1],n)),a=P([],this.center,o);return R(a)}getLocationAtPoint({lngLat:t,pos:e}){return this.getMapCenterByLngLatPosition({lngLat:t,pos:e})}fitBounds(t,e={}){const{width:n,height:r}=this,{longitude:i,latitude:o,zoom:a}=function({width:t,height:e,bounds:n,minExtent:r=0,maxZoom:i=24,padding:o=0,offset:a=[0,0]}){const[[s,c],[u,l]]=n;if(Number.isFinite(o)){const h=o;o={top:h,bottom:h,left:h,right:h}}else j(Number.isFinite(o.top)&&Number.isFinite(o.bottom)&&Number.isFinite(o.left)&&Number.isFinite(o.right));const p=C([s,b(l,-85.051129,85.051129)]),f=C([u,b(c,-85.051129,85.051129)]),d=[Math.max(Math.abs(f[0]-p[0]),r),Math.max(Math.abs(f[1]-p[1]),r)],v=[t-o.left-o.right-2*Math.abs(a[0]),e-o.top-o.bottom-2*Math.abs(a[1])];j(v[0]>0&&v[1]>0);const g=v[0]/d[0],m=v[1]/d[1],w=(o.right-o.left)/2/g,O=(o.bottom-o.top)/2/m,E=[(f[0]+p[0])/2+w,(f[1]+p[1])/2+O],_=R(E),P=Math.min(i,y(Math.abs(Math.min(g,m))));return j(Number.isFinite(P)),{longitude:_[0],latitude:_[1],zoom:P}}(Object.assign({width:n,height:r,bounds:t},e));return new F({width:n,height:r,longitude:i,latitude:o,zoom:a})}getBounds(t){const e=this.getBoundingRegion(t),n=Math.min(...e.map(t=>t[0])),r=Math.max(...e.map(t=>t[0])),i=Math.min(...e.map(t=>t[1])),o=Math.max(...e.map(t=>t[1]));return[[n,i],[r,o]]}getBoundingRegion(t={}){return function(t,e=0){let n,r;const{width:i,height:o,unproject:a}=t,s={targetZ:e},c=a([0,o],s),u=a([i,o],s),l=t.fovy?.5*t.fovy*N:Math.atan(.5/t.altitude),h=(90-t.pitch)*N;return l>h-.01?(n=z(t,0,e),r=z(t,i,e)):(n=a([0,0],s),r=a([i,0],s)),[c,u,r,n]}(this,t.z||0)}}const V=["longitude","latitude","zoom"],B={curve:1.414,speed:1.2};function Z(t,e,n){var r;n=Object.assign({},B,n);const i=n.curve,o=t.zoom,a=[t.longitude,t.latitude],s=D(o),c=e.zoom,u=[e.longitude,e.latitude],l=D(c-o),h=C(a),p=C(u),f=((r=[])[0]=p[0]-h[0],r[1]=p[1]-h[1],r),d=Math.max(t.width,t.height),v=d/l,g=Math.hypot(f[0],f[1])*s,m=Math.max(g,.01),b=i*i,y=(v*v-d*d+b*b*m*m)/(2*d*b*m),w=(v*v-d*d-b*b*m*m)/(2*v*b*m),O=Math.log(Math.sqrt(y*y+1)-y),E=Math.log(Math.sqrt(w*w+1)-w);return{startZoom:o,startCenterXY:h,uDelta:f,w0:d,u1:g,S:(E-O)/i,rho:i,rho2:b,r0:O,r1:E}}var U=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var n=-1;return t.some(function(t,r){return t[0]===e&&(n=r,!0)}),n}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var n=t(this.__entries__,e),r=this.__entries__[n];return r&&r[1]},e.prototype.set=function(e,n){var r=t(this.__entries__,e);~r?this.__entries__[r][1]=n:this.__entries__.push([e,n])},e.prototype.delete=function(e){var n=this.__entries__,r=t(n,e);~r&&n.splice(r,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var n=0,r=this.__entries__;n0},t.prototype.connect_=function(){q&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),X?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){q&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;Y.some(function(t){return!!~n.indexOf(t)})&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),G=function(t,e){for(var n=0,r=Object.keys(e);n0},t}(),ta="undefined"!=typeof WeakMap?new WeakMap:new U,ts=function t(e){if(!(this instanceof t))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var n=K.getInstance(),r=new to(e,n,this);ta.set(this,r)};["observe","unobserve","disconnect"].forEach(function(t){ts.prototype[t]=function(){var e;return(e=ta.get(this))[t].apply(e,arguments)}});var tc=void 0!==H.ResizeObserver?H.ResizeObserver:ts;function tu(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}function tl(t,e){for(var n=0;n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function tg(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1&&void 0!==arguments[1]?arguments[1]:"component";t.debug&&p.checkPropTypes(tw,t,"prop",e)}var t_=function(){function t(e){var n=this;if(tu(this,t),a(this,"props",tO),a(this,"width",0),a(this,"height",0),a(this,"_fireLoadEvent",function(){n.props.onLoad({type:"load",target:n._map})}),a(this,"_handleError",function(t){n.props.onError(t)}),!e.mapboxgl)throw Error("Mapbox not available");this.mapboxgl=e.mapboxgl,t.initialized||(t.initialized=!0,this._checkStyleSheet(this.mapboxgl.version)),this._initialize(e)}return th(t,[{key:"finalize",value:function(){return this._destroy(),this}},{key:"setProps",value:function(t){return this._update(this.props,t),this}},{key:"redraw",value:function(){var t=this._map;t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}},{key:"getMap",value:function(){return this._map}},{key:"_reuse",value:function(e){this._map=t.savedMap;var n=this._map.getContainer(),r=e.container;for(r.classList.add("mapboxgl-map");n.childNodes.length>0;)r.appendChild(n.childNodes[0]);this._map._container=r,t.savedMap=null,e.mapStyle&&this._map.setStyle(tb(e.mapStyle),{diff:!1}),this._map.isStyleLoaded()?this._fireLoadEvent():this._map.once("styledata",this._fireLoadEvent)}},{key:"_create",value:function(e){if(e.reuseMaps&&t.savedMap)this._reuse(e);else{if(e.gl){var n=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=n,e.gl}}var r={container:e.container,center:[0,0],zoom:8,pitch:0,bearing:0,maxZoom:24,style:tb(e.mapStyle),interactive:!1,trackResize:!1,attributionControl:e.attributionControl,preserveDrawingBuffer:e.preserveDrawingBuffer};e.transformRequest&&(r.transformRequest=e.transformRequest),this._map=new this.mapboxgl.Map(Object.assign({},r,e.mapOptions)),this._map.once("load",this._fireLoadEvent),this._map.on("error",this._handleError)}return this}},{key:"_destroy",value:function(){this._map&&(this.props.reuseMaps&&!t.savedMap?(t.savedMap=this._map,this._map.off("load",this._fireLoadEvent),this._map.off("error",this._handleError),this._map.off("styledata",this._fireLoadEvent)):this._map.remove(),this._map=null)}},{key:"_initialize",value:function(t){var e=this;tE(t=Object.assign({},tO,t),"Mapbox"),this.mapboxgl.accessToken=t.mapboxApiAccessToken||tO.mapboxApiAccessToken,this.mapboxgl.baseApiUrl=t.mapboxApiUrl,this._create(t);var n=t.container;Object.defineProperty(n,"offsetWidth",{configurable:!0,get:function(){return e.width}}),Object.defineProperty(n,"clientWidth",{configurable:!0,get:function(){return e.width}}),Object.defineProperty(n,"offsetHeight",{configurable:!0,get:function(){return e.height}}),Object.defineProperty(n,"clientHeight",{configurable:!0,get:function(){return e.height}});var r=this._map.getCanvas();r&&(r.style.outline="none"),this._updateMapViewport({},t),this._updateMapSize({},t),this.props=t}},{key:"_update",value:function(t,e){if(this._map){tE(e=Object.assign({},this.props,e),"Mapbox");var n=this._updateMapViewport(t,e),r=this._updateMapSize(t,e);this._updateMapStyle(t,e),!e.asyncRender&&(n||r)&&this.redraw(),this.props=e}}},{key:"_updateMapStyle",value:function(t,e){t.mapStyle!==e.mapStyle&&this._map.setStyle(tb(e.mapStyle),{diff:!e.preventStyleDiffing})}},{key:"_updateMapSize",value:function(t,e){var n=t.width!==e.width||t.height!==e.height;return n&&(this.width=e.width,this.height=e.height,this._map.resize()),n}},{key:"_updateMapViewport",value:function(t,e){var n=this._getViewState(t),r=this._getViewState(e),i=r.latitude!==n.latitude||r.longitude!==n.longitude||r.zoom!==n.zoom||r.pitch!==n.pitch||r.bearing!==n.bearing||r.altitude!==n.altitude;return i&&(this._map.jumpTo(this._viewStateToMapboxProps(r)),r.altitude!==n.altitude&&(this._map.transform.altitude=r.altitude)),i}},{key:"_getViewState",value:function(t){var e=t.viewState||t,n=e.longitude,r=e.latitude,i=e.zoom,o=e.pitch,a=e.bearing,s=e.altitude;return{longitude:n,latitude:r,zoom:i,pitch:void 0===o?0:o,bearing:void 0===a?0:a,altitude:void 0===s?1.5:s}}},{key:"_checkStyleSheet",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"0.47.0";if(void 0!==tp)try{var e=tp.createElement("div");if(e.className="mapboxgl-map",e.style.display="none",tp.body.appendChild(e),!("static"!==window.getComputedStyle(e).position)){var n=tp.createElement("link");n.setAttribute("rel","stylesheet"),n.setAttribute("type","text/css"),n.setAttribute("href","https://api.tiles.mapbox.com/mapbox-gl-js/v".concat(t,"/mapbox-gl.css")),tp.head.appendChild(n)}}catch(r){}}},{key:"_viewStateToMapboxProps",value:function(t){return{center:[t.longitude,t.latitude],zoom:t.zoom,bearing:t.bearing,pitch:t.pitch}}}]),t}();a(t_,"initialized",!1),a(t_,"propTypes",tw),a(t_,"defaultProps",tO),a(t_,"savedMap",null);var tP=n(6158),tM=n.n(tP);function tj(t){return Array.isArray(t)||ArrayBuffer.isView(t)}function tS(t,e,n){return Math.max(e,Math.min(n,t))}function tT(t,e,n){return tj(t)?t.map(function(t,r){return tT(t,e[r],n)}):n*e+(1-n)*t}function tk(t,e){if(!t)throw Error(e||"react-map-gl: assertion failed.")}function tx(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function tD(t){for(var e=1;e0,"`scale` must be a positive number");var i=this._state,o=i.startZoom,a=i.startZoomLngLat;Number.isFinite(o)||(o=this._viewportProps.zoom,a=this._unproject(n)||this._unproject(e)),tk(a,"`startZoomLngLat` prop is required for zoom behavior to calculate where to position the map.");var s=this._calculateNewZoom({scale:r,startZoom:o||0}),c=f(new F(Object.assign({},this._viewportProps,{zoom:s})).getMapCenterByLngLatPosition({lngLat:a,pos:e}),2),u=c[0],l=c[1];return this._getUpdatedMapState({zoom:s,longitude:u,latitude:l})}},{key:"zoomEnd",value:function(){return this._getUpdatedMapState({startZoomLngLat:null,startZoom:null})}},{key:"_getUpdatedMapState",value:function(e){return new t(Object.assign({},this._viewportProps,this._state,e))}},{key:"_applyConstraints",value:function(t){var e=t.maxZoom,n=t.minZoom,r=t.zoom;t.zoom=tS(r,n,e);var i=t.maxPitch,o=t.minPitch,a=t.pitch;return t.pitch=tS(a,o,i),Object.assign(t,function({width:t,height:e,longitude:n,latitude:r,zoom:i,pitch:o=0,bearing:a=0}){(n<-180||n>180)&&(n=m(n+180,360)-180),(a<-180||a>180)&&(a=m(a+180,360)-180);const s=y(e/512);if(i<=s)i=s,r=0;else{const c=e/2/Math.pow(2,i),u=R([0,c])[1];if(rl&&(r=l)}}return{width:t,height:e,longitude:n,latitude:r,zoom:i,pitch:o,bearing:a}}(t)),t}},{key:"_unproject",value:function(t){var e=new F(this._viewportProps);return t&&e.unproject(t)}},{key:"_calculateNewLngLat",value:function(t){var e=t.startPanLngLat,n=t.pos;return new F(this._viewportProps).getMapCenterByLngLatPosition({lngLat:e,pos:n})}},{key:"_calculateNewZoom",value:function(t){var e=t.scale,n=t.startZoom,r=this._viewportProps,i=r.maxZoom;return tS(n+Math.log2(e),r.minZoom,i)}},{key:"_calculateNewPitchAndBearing",value:function(t){var e=t.deltaScaleX,n=t.deltaScaleY,r=t.startBearing,i=t.startPitch;n=tS(n,-1,1);var o=this._viewportProps,a=o.minPitch,s=o.maxPitch,c=i;return n>0?c=i+n*(s-i):n<0&&(c=i-n*(a-i)),{pitch:c,bearing:r+180*e}}},{key:"_getRotationParams",value:function(t,e){var n=t[0]-e[0],r=t[1]-e[1],i=t[1],o=e[1],a=this._viewportProps,s=a.width,c=a.height,u=0;return r>0?Math.abs(c-o)>5&&(u=r/(o-c)*1.2):r<0&&o>5&&(u=1-i/o),{deltaScaleX:n/s,deltaScaleY:u=Math.min(1,Math.max(-1,u))}}}]),t}();function tI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function tL(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=c.current&&c.current.getMap();return n&&n.queryRenderedFeatures(t,e)}}},[]);var g=(0,h.useCallback)(function(t){var e=t.target;e===p.current&&e.scrollTo(0,0)},[]),m=v&&h.createElement(tz,{value:tZ(tZ({},d),{},{viewport:d.viewport||tq(tZ({map:v,props:t},a)),map:v,container:d.container||l.current})},h.createElement("div",{key:"map-overlays",className:"overlays",ref:p,style:tH,onScroll:g},t.children)),b=t.className,y=t.width,w=t.height,O=t.style,E=t.visibilityConstraints,_=Object.assign({position:"relative"},O,{width:y,height:w}),P=Object.assign({},tH,{visibility:t.visible&&function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:tC;for(var n in e){var r,i=n.slice(0,3),o=(r=n.slice(3))[0].toLowerCase()+r.slice(1);if("min"===i&&t[o]e[n])return!1}return!0}(t.viewState||t,E)?"inherit":"hidden"});return h.createElement("div",{key:"map-container",ref:l,style:_},h.createElement("div",{key:"map-mapbox",ref:u,style:P,className:b}),m,!r&&!t.disableTokenWarning&&h.createElement(tX,null))});function tG(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}(this.propNames||[]);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(!function t(e,n){if(e===n)return!0;if(tj(e)&&tj(n)){if(e.length!==n.length)return!1;for(var r=0;r=Math.abs(e-n)}(t[i],e[i]))return!1}}catch(o){r.e(o)}finally{r.f()}return!0}},{key:"initializeProps",value:function(t,e){return{start:t,end:e}}},{key:"interpolateProps",value:function(t,e,n){tk(!1,"interpolateProps is not implemented")}},{key:"getDuration",value:function(t,e){return e.transitionDuration}}]),t}();function tJ(t){if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function tQ(t,e){return(tQ=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function t0(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&tQ(t,e)}function t1(t){return(t1="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function t2(t,e){if(e&&("object"===t1(e)||"function"==typeof e))return e;if(void 0!==e)throw TypeError("Derived constructors may only return object or undefined");return tJ(t)}function t4(t){return(t4=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var t3={longitude:1,bearing:1};function t5(t){return Number.isFinite(t)||Array.isArray(t)}function t8(t,e,n){return t in t3&&Math.abs(n-e)>180&&(n=n<0?n+360:n-360),n}function t6(t,e){if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(i=function(t,e){if(t){if("string"==typeof t)return t7(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t7(t,e)}}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function t7(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function ei(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n0&&void 0!==arguments[0]?arguments[0]:{};return tu(this,r),a(tJ(t=n.call(this)),"propNames",t9),t.props=Object.assign({},en,e),t}th(r,[{key:"initializeProps",value:function(t,e){var n,r={},i={},o=t6(et);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=t[a],c=e[a];tk(t5(s)&&t5(c),"".concat(a," must be supplied for transition")),r[a]=s,i[a]=t8(a,s,c)}}catch(u){o.e(u)}finally{o.f()}var l,h=t6(ee);try{for(h.s();!(l=h.n()).done;){var p=l.value,f=t[p]||0,d=e[p]||0;r[p]=f,i[p]=t8(p,f,d)}}catch(v){h.e(v)}finally{h.f()}return{start:r,end:i}}},{key:"interpolateProps",value:function(t,e,n){var r,i=function(t,e,n,r={}){var i,o,a,s;const c={},{startZoom:u,startCenterXY:l,uDelta:h,w0:p,u1:f,S:d,rho:v,rho2:g,r0:m}=Z(t,e,r);if(f<.01){for(const b of V){const w=t[b],O=e[b];c[b]=(i=w,o=O,(a=n)*o+(1-a)*i)}return c}const E=n*d,_=Math.cosh(m)/Math.cosh(m+v*E),M=p*((Math.cosh(m)*Math.tanh(m+v*E)-Math.sinh(m))/g)/f,j=u+y(1/_),S=((s=[])[0]=h[0]*M,s[1]=h[1]*M,s);P(S,S,l);const T=R(S);return c.longitude=T[0],c.latitude=T[1],c.zoom=j,c}(t,e,n,this.props),o=t6(ee);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=tT(t[a],e[a],n)}}catch(s){o.e(s)}finally{o.f()}return i}},{key:"getDuration",value:function(t,e){var n=e.transitionDuration;return"auto"===n&&(n=function(t,e,n={}){let r;n=Object.assign({},B,n);const{screenSpeed:i,speed:o,maxDuration:a}=n,{S:s,rho:c}=Z(t,e,n),u=1e3*s;return r=Number.isFinite(i)?u/(i/c):u/o,Number.isFinite(a)&&r>a?0:r}(t,e,this.props)),n}}])}(t$);var eo=["longitude","latitude","zoom","bearing","pitch"],ea=function(t){t0(r,t);var e,n=(e=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}(),function(){var t,n=t4(r);if(e){var i=t4(this).constructor;t=Reflect.construct(n,arguments,i)}else t=n.apply(this,arguments);return t2(this,t)});function r(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return tu(this,r),t=n.call(this),Array.isArray(e)&&(e={transitionProps:e}),t.propNames=e.transitionProps||eo,e.around&&(t.around=e.around),t}return th(r,[{key:"initializeProps",value:function(t,e){var n={},r={};if(this.around){n.around=this.around;var i=new F(t).unproject(this.around);Object.assign(r,e,{around:new F(e).project(i),aroundLngLat:i})}var o,a=er(this.propNames);try{for(a.s();!(o=a.n()).done;){var s=o.value,c=t[s],u=e[s];tk(t5(c)&&t5(u),"".concat(s," must be supplied for transition")),n[s]=c,r[s]=t8(s,c,u)}}catch(l){a.e(l)}finally{a.f()}return{start:n,end:r}}},{key:"interpolateProps",value:function(t,e,n){var r,i={},o=er(this.propNames);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=tT(t[a],e[a],n)}}catch(s){o.e(s)}finally{o.f()}if(e.around){var c=f(new F(Object.assign({},e,i)).getMapCenterByLngLatPosition({lngLat:e.aroundLngLat,pos:tT(t.around,e.around,n)}),2),u=c[0],l=c[1];i.longitude=u,i.latitude=l}return i}}]),r}(t$),es=function(){},ec={BREAK:1,SNAP_TO_END:2,IGNORE:3,UPDATE:4},eu={transitionDuration:0,transitionEasing:function(t){return t},transitionInterpolator:new ea,transitionInterruption:ec.BREAK,onTransitionStart:es,onTransitionInterrupt:es,onTransitionEnd:es},el=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};tu(this,t),a(this,"_animationFrame",null),a(this,"_onTransitionFrame",function(){e._animationFrame=requestAnimationFrame(e._onTransitionFrame),e._updateViewport()}),this.props=null,this.onViewportChange=n.onViewportChange||es,this.onStateChange=n.onStateChange||es,this.time=n.getTime||Date.now}return th(t,[{key:"getViewportInTransition",value:function(){return this._animationFrame?this.state.propsInTransition:null}},{key:"processViewportChange",value:function(t){var e=this.props;if(this.props=t,!e||this._shouldIgnoreViewportChange(e,t))return!1;if(this._isTransitionEnabled(t)){var n=Object.assign({},e),r=Object.assign({},t);if(this._isTransitionInProgress()&&(e.onTransitionInterrupt(),this.state.interruption===ec.SNAP_TO_END?Object.assign(n,this.state.endProps):Object.assign(n,this.state.propsInTransition),this.state.interruption===ec.UPDATE)){var i,o,a=this.time(),s=(a-this.state.startTime)/this.state.duration;r.transitionDuration=this.state.duration-(a-this.state.startTime),r.transitionEasing=(o=(i=this.state.easing)(s),function(t){return 1/(1-o)*(i(t*(1-s)+s)-o)}),r.transitionInterpolator=n.transitionInterpolator}return r.onTransitionStart(),this._triggerTransition(n,r),!0}return this._isTransitionInProgress()&&(e.onTransitionInterrupt(),this._endTransition()),!1}},{key:"_isTransitionInProgress",value:function(){return Boolean(this._animationFrame)}},{key:"_isTransitionEnabled",value:function(t){var e=t.transitionDuration,n=t.transitionInterpolator;return(e>0||"auto"===e)&&Boolean(n)}},{key:"_isUpdateDueToCurrentTransition",value:function(t){return!!this.state.propsInTransition&&this.state.interpolator.arePropsEqual(t,this.state.propsInTransition)}},{key:"_shouldIgnoreViewportChange",value:function(t,e){return!t||(this._isTransitionInProgress()?this.state.interruption===ec.IGNORE||this._isUpdateDueToCurrentTransition(e):!this._isTransitionEnabled(e)||e.transitionInterpolator.arePropsEqual(t,e))}},{key:"_triggerTransition",value:function(t,e){tk(this._isTransitionEnabled(e)),this._animationFrame&&cancelAnimationFrame(this._animationFrame);var n=e.transitionInterpolator,r=n.getDuration?n.getDuration(t,e):e.transitionDuration;if(0!==r){var i=e.transitionInterpolator.initializeProps(t,e),o={inTransition:!0,isZooming:t.zoom!==e.zoom,isPanning:t.longitude!==e.longitude||t.latitude!==e.latitude,isRotating:t.bearing!==e.bearing||t.pitch!==e.pitch};this.state={duration:r,easing:e.transitionEasing,interpolator:e.transitionInterpolator,interruption:e.transitionInterruption,startTime:this.time(),startProps:i.start,endProps:i.end,animation:null,propsInTransition:{}},this._onTransitionFrame(),this.onStateChange(o)}}},{key:"_endTransition",value:function(){this._animationFrame&&(cancelAnimationFrame(this._animationFrame),this._animationFrame=null),this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1})}},{key:"_updateViewport",value:function(){var t=this.time(),e=this.state,n=e.startTime,r=e.duration,i=e.easing,o=e.interpolator,a=e.startProps,s=e.endProps,c=!1,u=(t-n)/r;u>=1&&(u=1,c=!0),u=i(u);var l=o.interpolateProps(a,s,u),h=new tA(Object.assign({},this.props,l));this.state.propsInTransition=h.getViewportProps(),this.onViewportChange(this.state.propsInTransition,this.props),c&&(this._endTransition(),this.props.onTransitionEnd())}}]),t}();a(el,"defaultProps",eu);var eh=n(840),ep=n.n(eh);const ef={mousedown:1,mousemove:2,mouseup:4};!function(t){const e=t.prototype.handler;t.prototype.handler=function(t){const n=this.store;t.button>0&&"pointerdown"===t.type&&!function(t,e){for(let n=0;ne.pointerId===t.pointerId)&&n.push(t),e.call(this,t)}}(ep().PointerEventInput),ep().MouseInput.prototype.handler=function(t){let e=ef[t.type];1&e&&t.button>=0&&(this.pressed=!0),2&e&&0===t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:"mouse",srcEvent:t}))};const ed=ep().Manager;var ev=ep();const eg=ev?[[ev.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[ev.Rotate,{enable:!1}],[ev.Pinch,{enable:!1}],[ev.Swipe,{enable:!1}],[ev.Pan,{threshold:0,enable:!1}],[ev.Press,{enable:!1}],[ev.Tap,{event:"doubletap",taps:2,enable:!1}],[ev.Tap,{event:"anytap",enable:!1}],[ev.Tap,{enable:!1}]]:null,em={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},eb={doubletap:["tap"]},ey={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},ew={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},eO={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},eE={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},e_="undefined"!=typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():"",eP="undefined"!=typeof window?window:n.g;void 0!==n.g?n.g:window;let eM=!1;try{const ej={get passive(){return eM=!0,!0}};eP.addEventListener("test",ej,ej),eP.removeEventListener("test",ej,ej)}catch(eS){}const eT=-1!==e_.indexOf("firefox"),{WHEEL_EVENTS:ek}=ew,ex="wheel";class eD{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.events=ek.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach(e=>t.addEventListener(e,this.handleEvent,!!eM&&{passive:!1}))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===ex&&(this.options.enable=e)}handleEvent(t){if(!this.options.enable)return;let e=t.deltaY;eP.WheelEvent&&(eT&&t.deltaMode===eP.WheelEvent.DOM_DELTA_PIXEL&&(e/=eP.devicePixelRatio),t.deltaMode===eP.WheelEvent.DOM_DELTA_LINE&&(e*=40));const n={x:t.clientX,y:t.clientY};0!==e&&e%4.000244140625==0&&(e=Math.floor(e/4.000244140625)),t.shiftKey&&e&&(e*=.25),this._onWheel(t,-e,n)}_onWheel(t,e,n){this.callback({type:ex,center:n,delta:e,srcEvent:t,pointerType:"mouse",target:t.target})}}const{MOUSE_EVENTS:eC}=ew,eR="pointermove",eA="pointerover",eI="pointerout",eL="pointerleave";class eN{constructor(t,e,n={}){this.element=t,this.callback=e,this.pressed=!1,this.options=Object.assign({enable:!0},n),this.enableMoveEvent=this.options.enable,this.enableLeaveEvent=this.options.enable,this.enableOutEvent=this.options.enable,this.enableOverEvent=this.options.enable,this.events=eC.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach(e=>t.addEventListener(e,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===eR&&(this.enableMoveEvent=e),t===eA&&(this.enableOverEvent=e),t===eI&&(this.enableOutEvent=e),t===eL&&(this.enableLeaveEvent=e)}handleEvent(t){this.handleOverEvent(t),this.handleOutEvent(t),this.handleLeaveEvent(t),this.handleMoveEvent(t)}handleOverEvent(t){this.enableOverEvent&&"mouseover"===t.type&&this.callback({type:eA,srcEvent:t,pointerType:"mouse",target:t.target})}handleOutEvent(t){this.enableOutEvent&&"mouseout"===t.type&&this.callback({type:eI,srcEvent:t,pointerType:"mouse",target:t.target})}handleLeaveEvent(t){this.enableLeaveEvent&&"mouseleave"===t.type&&this.callback({type:eL,srcEvent:t,pointerType:"mouse",target:t.target})}handleMoveEvent(t){if(this.enableMoveEvent)switch(t.type){case"mousedown":t.button>=0&&(this.pressed=!0);break;case"mousemove":0===t.which&&(this.pressed=!1),this.pressed||this.callback({type:eR,srcEvent:t,pointerType:"mouse",target:t.target});break;case"mouseup":this.pressed=!1}}}const{KEY_EVENTS:ez}=ew,eF="keydown",eV="keyup";class eB{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=ez.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),t.tabIndex=n.tabIndex||0,t.style.outline="none",this.events.forEach(e=>t.addEventListener(e,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===eF&&(this.enableDownEvent=e),t===eV&&(this.enableUpEvent=e)}handleEvent(t){const e=t.target||t.srcElement;("INPUT"!==e.tagName||"text"!==e.type)&&"TEXTAREA"!==e.tagName&&(this.enableDownEvent&&"keydown"===t.type&&this.callback({type:eF,srcEvent:t,key:t.key,target:t.target}),this.enableUpEvent&&"keyup"===t.type&&this.callback({type:eV,srcEvent:t,key:t.key,target:t.target}))}}const eZ="contextmenu";class eU{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.handleEvent=this.handleEvent.bind(this),t.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(t,e){t===eZ&&(this.options.enable=e)}handleEvent(t){this.options.enable&&this.callback({type:eZ,center:{x:t.clientX,y:t.clientY},srcEvent:t,pointerType:"mouse",target:t.target})}}const eq={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4},eH={srcElement:"root",priority:0};class eW{constructor(t){this.eventManager=t,this.handlers=[],this.handlersByElement=new Map,this.handleEvent=this.handleEvent.bind(this),this._active=!1}isEmpty(){return!this._active}add(t,e,n,r=!1,i=!1){const{handlers:o,handlersByElement:a}=this;n&&("object"!=typeof n||n.addEventListener)&&(n={srcElement:n}),n=n?Object.assign({},eH,n):eH;let s=a.get(n.srcElement);s||(s=[],a.set(n.srcElement,s));const c={type:t,handler:e,srcElement:n.srcElement,priority:n.priority};r&&(c.once=!0),i&&(c.passive=!0),o.push(c),this._active=this._active||!c.passive;let u=s.length-1;for(;u>=0&&!(s[u].priority>=c.priority);)u--;s.splice(u+1,0,c)}remove(t,e){const{handlers:n,handlersByElement:r}=this;for(let i=n.length-1;i>=0;i--){const o=n[i];if(o.type===t&&o.handler===e){n.splice(i,1);const a=r.get(o.srcElement);a.splice(a.indexOf(o),1),0===a.length&&r.delete(o.srcElement)}}this._active=n.some(t=>!t.passive)}handleEvent(t){if(this.isEmpty())return;const e=this._normalizeEvent(t);let n=t.srcEvent.target;for(;n&&n!==e.rootElement;){if(this._emit(e,n),e.handled)return;n=n.parentNode}this._emit(e,"root")}_emit(t,e){const n=this.handlersByElement.get(e);if(n){let r=!1;const i=()=>{t.handled=!0},o=()=>{t.handled=!0,r=!0},a=[];for(let s=0;s{const e=this.manager.get(t);e&&em[t].forEach(t=>{e.recognizeWith(t)})}),e.recognizerOptions){const i=this.manager.get(r);if(i){const o=e.recognizerOptions[r];delete o.enable,i.set(o)}}for(const[a,s]of(this.wheelInput=new eD(t,this._onOtherEvent,{enable:!1}),this.moveInput=new eN(t,this._onOtherEvent,{enable:!1}),this.keyInput=new eB(t,this._onOtherEvent,{enable:!1,tabIndex:e.tabIndex}),this.contextmenuInput=new eU(t,this._onOtherEvent,{enable:!1}),this.events))s.isEmpty()||(this._toggleRecognizer(s.recognizerName,!0),this.manager.on(a,s.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(t,e,n){this._addEventHandler(t,e,n,!1)}once(t,e,n){this._addEventHandler(t,e,n,!0)}watch(t,e,n){this._addEventHandler(t,e,n,!1,!0)}off(t,e){this._removeEventHandler(t,e)}_toggleRecognizer(t,e){const{manager:n}=this;if(!n)return;const r=n.get(t);if(r&&r.options.enable!==e){r.set({enable:e});const i=eb[t];i&&!this.options.recognizers&&i.forEach(i=>{const o=n.get(i);e?(o.requireFailure(t),r.dropRequireFailure(i)):o.dropRequireFailure(t)})}this.wheelInput.enableEventType(t,e),this.moveInput.enableEventType(t,e),this.keyInput.enableEventType(t,e),this.contextmenuInput.enableEventType(t,e)}_addEventHandler(t,e,n,r,i){if("string"!=typeof t){for(const o in n=e,t)this._addEventHandler(o,t[o],n,r,i);return}const{manager:a,events:s}=this,c=eE[t]||t;let u=s.get(c);!u&&(u=new eW(this),s.set(c,u),u.recognizerName=eO[c]||c,a&&a.on(c,u.handleEvent)),u.add(t,e,n,r,i),u.isEmpty()||this._toggleRecognizer(u.recognizerName,!0)}_removeEventHandler(t,e){if("string"!=typeof t){for(const n in t)this._removeEventHandler(n,t[n]);return}const{events:r}=this,i=eE[t]||t,o=r.get(i);if(o&&(o.remove(t,e),o.isEmpty())){const{recognizerName:a}=o;let s=!1;for(const c of r.values())if(c.recognizerName===a&&!c.isEmpty()){s=!0;break}s||this._toggleRecognizer(a,!1)}}_onBasicInput(t){const{srcEvent:e}=t,n=ey[e.type];n&&this.manager.emit(n,t)}_onOtherEvent(t){this.manager.emit(t.type,t)}}function eK(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function eG(t){for(var e=1;e0),a=o&&!this.state.isHovering,s=!o&&this.state.isHovering;(r||a)&&(t.features=e,r&&r(t)),a&&e9.call(this,"onMouseEnter",t),s&&e9.call(this,"onMouseLeave",t),(a||s)&&this.setState({isHovering:o})}}function nr(t){var e=this.props,n=e.onClick,r=e.onNativeClick,i=e.onDblClick,o=e.doubleClickZoom,a=[],s=i||o;switch(t.type){case"anyclick":a.push(r),s||a.push(n);break;case"click":s&&a.push(n)}(a=a.filter(Boolean)).length&&((t=e6.call(this,t)).features=e7.call(this,t.point),a.forEach(function(e){return e(t)}))}var ni=(0,h.forwardRef)(function(t,e){var n,a,s=(0,h.useContext)(tN),c=(0,h.useMemo)(function(){return t.controller||new e1},[]),u=(0,h.useMemo)(function(){return new eX(null,{touchAction:t.touchAction,recognizerOptions:t.eventRecognizerOptions})},[]),l=(0,h.useRef)(null),p=(0,h.useRef)(null),f=(0,h.useRef)({width:0,height:0,state:{isHovering:!1,isDragging:!1}}).current;f.props=t,f.map=p.current&&p.current.getMap(),f.setState=function(e){f.state=e4(e4({},f.state),e),l.current.style.cursor=t.getCursor(f.state)};var d=!0,v=function(t,e,r){if(d){n=[t,e,r];return}var i=f.props,o=i.onViewStateChange,a=i.onViewportChange;Object.defineProperty(t,"position",{get:function(){return[0,0,tV(f.map,t)]}}),o&&o({viewState:t,interactionState:e,oldViewState:r}),a&&a(t,e,r)};(0,h.useImperativeHandle)(e,function(){return{getMap:p.current&&p.current.getMap,queryRenderedFeatures:p.current&&p.current.queryRenderedFeatures}},[]);var g=(0,h.useMemo)(function(){return e4(e4({},s),{},{eventManager:u,container:s.container||l.current})},[s,l.current]);g.onViewportChange=v,g.viewport=s.viewport||tq(f),f.viewport=g.viewport;var m=function(t){var e=t.isDragging,n=void 0!==e&&e;if(n!==f.state.isDragging&&f.setState({isDragging:n}),d){a=t;return}var r=f.props.onInteractionStateChange;r&&r(t)},b=function(){f.width&&f.height&&c.setOptions(e4(e4(e4({},f.props),f.props.viewState),{},{isInteractive:Boolean(f.props.onViewStateChange||f.props.onViewportChange),onViewportChange:v,onStateChange:m,eventManager:u,width:f.width,height:f.height}))},y=function(t){var e=t.width,n=t.height;f.width=e,f.height=n,b(),f.props.onResize({width:e,height:n})};(0,h.useEffect)(function(){return u.setElement(l.current),u.on({pointerdown:nt.bind(f),pointermove:nn.bind(f),pointerup:ne.bind(f),pointerleave:e9.bind(f,"onMouseOut"),click:nr.bind(f),anyclick:nr.bind(f),dblclick:e9.bind(f,"onDblClick"),wheel:e9.bind(f,"onWheel"),contextmenu:e9.bind(f,"onContextMenu")}),function(){u.destroy()}},[]),tF(function(){if(n){var t;v.apply(void 0,function(t){if(Array.isArray(t))return i(t)}(t=n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||o(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}a&&m(a)}),b();var w=t.width,O=t.height,E=t.style,_=t.getCursor,P=(0,h.useMemo)(function(){return e4(e4({position:"relative"},E),{},{width:w,height:O,cursor:_(f.state)})},[E,w,O,_,f.state]);return n&&f._child||(f._child=h.createElement(tz,{value:g},h.createElement("div",{key:"event-canvas",ref:l,style:P},h.createElement(tK,r({},t,{width:"100%",height:"100%",style:null,onResize:y,ref:p}))))),d=!1,f._child});ni.supported=tK.supported,ni.propTypes=e3,ni.defaultProps=e8;var no=ni;p.string.isRequired,p.string,p.oneOf(["fill","line","symbol","circle","fill-extrusion","raster","background","heatmap","hillshade","sky"]).isRequired,p.string,p.string,p.string;var na={captureScroll:!1,captureDrag:!0,captureClick:!0,captureDoubleClick:!0,capturePointerMove:!1},ns={captureScroll:p.bool,captureDrag:p.bool,captureClick:p.bool,captureDoubleClick:p.bool,capturePointerMove:p.bool};function nc(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,h.useContext)(tN),n=(0,h.useRef)(null),r=(0,h.useRef)({props:t,state:{},context:e,containerRef:n}).current;return r.props=t,r.context=e,(0,h.useEffect)(function(){return function(t){var e=t.containerRef.current,n=t.context.eventManager;if(e&&n){var r={wheel:function(e){var n=t.props;n.captureScroll&&e.stopPropagation(),n.onScroll&&n.onScroll(e,t)},panstart:function(e){var n=t.props;n.captureDrag&&e.stopPropagation(),n.onDragStart&&n.onDragStart(e,t)},anyclick:function(e){var n=t.props;n.captureClick&&e.stopPropagation(),n.onNativeClick&&n.onNativeClick(e,t)},click:function(e){var n=t.props;n.captureClick&&e.stopPropagation(),n.onClick&&n.onClick(e,t)},dblclick:function(e){var n=t.props;n.captureDoubleClick&&e.stopPropagation(),n.onDoubleClick&&n.onDoubleClick(e,t)},pointermove:function(e){var n=t.props;n.capturePointerMove&&e.stopPropagation(),n.onPointerMove&&n.onPointerMove(e,t)}};return n.watch(r,e),function(){n.off(r)}}}(r)},[e.eventManager]),r}function nu(t){var e=t.instance,n=nc(t),r=n.context,i=n.containerRef;return e._context=r,e._containerRef=i,e._render()}var nl=function(t){t0(i,t);var e,n=(e=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}(),function(){var t,n=t4(i);if(e){var r=t4(this).constructor;t=Reflect.construct(n,arguments,r)}else t=n.apply(this,arguments);return t2(this,t)});function i(){var t;tu(this,i);for(var e=arguments.length,r=Array(e),o=0;o2&&void 0!==arguments[2]?arguments[2]:"x";if(null===t)return e;var r="x"===n?t.offsetWidth:t.offsetHeight;return ny(e/100*r)/r*100};function nO(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}var nE=Object.assign({},nf,{className:p.string,longitude:p.number.isRequired,latitude:p.number.isRequired,style:p.object}),n_=Object.assign({},nd,{className:""});function nP(t){var e,n,r,i,o,s,c,u=(n=(e=f((0,h.useState)(null),2))[0],r=e[1],o=(i=f((0,h.useState)(null),2))[0],s=i[1],(c=nc(np(np({},t),{},{onDragStart:nm}))).callbacks=t,c.state.dragPos=n,c.state.setDragPos=r,c.state.dragOffset=o,c.state.setDragOffset=s,(0,h.useEffect)(function(){return function(t){var e=t.context.eventManager;if(e&&t.state.dragPos){var n={panmove:function(e){return function(t,e){var n=e.props,r=e.callbacks,i=e.state,o=e.context;t.stopPropagation();var a=nv(t);i.setDragPos(a);var s=i.dragOffset;if(r.onDrag&&s){var c=Object.assign({},t);c.lngLat=ng(a,s,n,o),r.onDrag(c)}}(e,t)},panend:function(e){return function(t,e){var n=e.props,r=e.callbacks,i=e.state,o=e.context;t.stopPropagation();var a=i.dragPos,s=i.dragOffset;if(i.setDragPos(null),i.setDragOffset(null),r.onDragEnd&&a&&s){var c=Object.assign({},t);c.lngLat=ng(a,s,n,o),r.onDragEnd(c)}}(e,t)},pancancel:function(e){var n;return n=t.state,void(e.stopPropagation(),n.setDragPos(null),n.setDragOffset(null))}};return e.watch(n),function(){e.off(n)}}}(c)},[c.context.eventManager,Boolean(n)]),c),l=u.state,p=u.containerRef,d=t.children,v=t.className,g=t.draggable,m=t.style,b=l.dragPos,y=function(t){var e=t.props,n=t.state,r=t.context,i=e.longitude,o=e.latitude,a=e.offsetLeft,s=e.offsetTop,c=n.dragPos,u=n.dragOffset,l=r.viewport,h=r.map;if(c&&u)return[c[0]+u[0],c[1]+u[1]];var p=tV(h,{longitude:i,latitude:o}),d=f(l.project([i,o,p]),2),v=d[0],g=d[1];return[v+=a,g+=s]}(u),w=f(y,2),O=w[0],E=w[1],_="translate(".concat(ny(O),"px, ").concat(ny(E),"px)"),P=g?b?"grabbing":"grab":"auto",M=(0,h.useMemo)(function(){var t=function(t){for(var e=1;e0){var g=p,m=v;for(p=0;p<=1;p+=.5)d=(f=n-p*a)+a,(v=Math.max(0,u-f)+Math.max(0,d-i+u))0){var E=h,_=O;for(h=0;h<=1;h+=b)w=(y=e-h*o)+o,(O=Math.max(0,u-y)+Math.max(0,w-r+u))<_&&(_=O,E=h);h=E}return nj.find(function(t){var e=nM[t];return e.x===h&&e.y===p})||s}({x:r,y:i,anchor:o,padding:s,width:S.width,height:S.height,selfWidth:e.clientWidth,selfHeight:e.clientHeight}):o),z=(c=M.current,l=(u=f(L,3))[0],p=u[1],d=u[2],v=t.offsetLeft,g=t.offsetTop,m=t.sortByDepth,y=nw(c,-(100*(b=nM[N]).x)),w=nw(c,-(100*b.y),"y"),O={position:"absolute",transform:"\n translate(".concat(y,"%, ").concat(w,"%)\n translate(").concat(ny(l+v),"px, ").concat(ny(p+g),"px)\n "),display:void 0,zIndex:void 0},m&&(d>1||d<-1||l<0||l>S.width||p<0||p>S.height?O.display="none":O.zIndex=Math.floor((1-d)/2*1e5)),O),F=(0,h.useCallback)(function(t){_.props.onClose();var e=_.context.eventManager;e&&e.once("click",function(t){return t.stopPropagation()},t.target)},[]);return h.createElement("div",{className:"mapboxgl-popup mapboxgl-popup-anchor-".concat(N," ").concat(k),style:z,ref:M},h.createElement("div",{key:"tip",className:"mapboxgl-popup-tip",style:{borderWidth:C}}),h.createElement("div",{key:"content",ref:E,className:"mapboxgl-popup-content"},R&&h.createElement("button",{key:"close-button",className:"mapboxgl-popup-close-button",type:"button",onClick:F},"\xd7"),A))}function nx(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}nk.propTypes=nS,nk.defaultProps=nT,h.memo(nk);var nD=Object.assign({},ns,{toggleLabel:p.string,className:p.string,style:p.object,compact:p.bool,customAttribution:p.oneOfType([p.string,p.arrayOf(p.string)])}),nC=Object.assign({},na,{className:"",toggleLabel:"Toggle Attribution"});function nR(t){var e=nc(t),n=e.context,r=e.containerRef,i=(0,h.useRef)(null),o=f((0,h.useState)(!1),2),s=o[0],c=o[1];(0,h.useEffect)(function(){var e,o,a,s,c,u;return n.map&&(o={customAttribution:t.customAttribution},a=n.map,s=r.current,c=i.current,(u=new(tM()).AttributionControl(o))._map=a,u._container=s,u._innerContainer=c,u._updateAttributions(),u._updateEditLink(),a.on("styledata",u._updateData),a.on("sourcedata",u._updateData),e=u),function(){return e&&void(e._map.off("styledata",e._updateData),e._map.off("sourcedata",e._updateData))}},[n.map]);var u=void 0===t.compact?n.viewport.width<=640:t.compact;(0,h.useEffect)(function(){!u&&s&&c(!1)},[u]);var l=(0,h.useCallback)(function(){return c(function(t){return!t})},[]),p=(0,h.useMemo)(function(){return function(t){for(var e=1;ea)return 1}return 0}(o.map.version,"1.6.0")>=0?2:1:2},[o.map]),n=o.viewport.bearing,r={transform:"rotate(".concat(-n,"deg)")},2===e?h.createElement("span",{className:"mapboxgl-ctrl-icon","aria-hidden":"true",style:r}):h.createElement("span",{className:"mapboxgl-ctrl-compass-arrow",style:r})))))}function nG(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}nK.propTypes=nH,nK.defaultProps=nW,h.memo(nK);var n$=Object.assign({},ns,{className:p.string,style:p.object,maxWidth:p.number,unit:p.oneOf(["imperial","metric","nautical"])}),nJ=Object.assign({},na,{className:"",maxWidth:100,unit:"metric"});function nQ(t){var e=nc(t),n=e.context,r=e.containerRef,i=f((0,h.useState)(null),2),o=i[0],s=i[1];(0,h.useEffect)(function(){if(n.map){var t=new(tM()).ScaleControl;t._map=n.map,t._container=r.current,s(t)}},[n.map]),o&&(o.options=t,o._onMove());var c=(0,h.useMemo)(function(){return function(t){for(var e=1;e\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=i.console&&(i.console.warn||i.console.log);return o&&o.call(i.console,r,n),t.apply(this,arguments)}}c="function"!=typeof Object.assign?function(t){if(t===s||null===t)throw TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n-1}function T(t){return t.trim().split(/\s+/g)}function k(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;rk(i,a)&&r.push(t[o]),i[o]=a,o++}return n&&(r=e?r.sort(function(t,n){return t[e]>n[e]}):r.sort()),r}function C(t,e){for(var n,r,i=e[0].toUpperCase()+e.slice(1),o=0;o1&&!i.firstMultiple?i.firstMultiple=q(r):1===a&&(i.firstMultiple=!1),c=i.firstInput,l=(u=i.firstMultiple)?u.center:c.center,h=r.center=H(o),r.timeStamp=f(),r.deltaTime=r.timeStamp-c.timeStamp,r.angle=K(l,h),r.distance=X(l,h),d=i,g=(v=r).center,m=d.offsetDelta||{},b=d.prevDelta||{},y=d.prevInput||{},(1===v.eventType||4===y.eventType)&&(b=d.prevDelta={x:y.deltaX||0,y:y.deltaY||0},m=d.offsetDelta={x:g.x,y:g.y}),v.deltaX=b.x+(g.x-m.x),v.deltaY=b.y+(g.y-m.y),r.offsetDirection=Y(r.deltaX,r.deltaY),w=W(r.deltaTime,r.deltaX,r.deltaY),r.overallVelocityX=w.x,r.overallVelocityY=w.y,r.overallVelocity=p(w.x)>p(w.y)?w.x:w.y,r.scale=u?(O=u.pointers,X(o[0],o[1],B)/X(O[0],O[1],B)):1,r.rotation=u?(E=u.pointers,K(o[1],o[0],B)+K(E[1],E[0],B)):0,r.maxPointers=i.prevInput?r.pointers.length>i.prevInput.maxPointers?r.pointers.length:i.prevInput.maxPointers:r.pointers.length,function(t,e){var n,r,i,o,a=t.lastInterval||e,c=e.timeStamp-a.timeStamp;if(8!=e.eventType&&(c>25||s===a.velocity)){var u=e.deltaX-a.deltaX,l=e.deltaY-a.deltaY,h=W(c,u,l);r=h.x,i=h.y,n=p(h.x)>p(h.y)?h.x:h.y,o=Y(u,l),t.lastInterval=e}else n=a.velocity,r=a.velocityX,i=a.velocityY,o=a.direction;e.velocity=n,e.velocityX=r,e.velocityY=i,e.direction=o}(i,r),_=t.element,j(r.srcEvent.target,_)&&(_=r.srcEvent.target),r.target=_,t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function q(t){for(var e=[],n=0;n=p(e)?t<0?2:4:e<0?8:16}function X(t,e,n){n||(n=V);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function K(t,e,n){n||(n=V);var r=e[n[0]]-t[n[0]];return 180*Math.atan2(e[n[1]]-t[n[1]],r)/Math.PI}Z.prototype={handler:function(){},init:function(){this.evEl&&P(this.element,this.evEl,this.domHandler),this.evTarget&&P(this.target,this.evTarget,this.domHandler),this.evWin&&P(A(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&M(this.element,this.evEl,this.domHandler),this.evTarget&&M(this.target,this.evTarget,this.domHandler),this.evWin&&M(A(this.element),this.evWin,this.domHandler)}};var G={mousedown:1,mousemove:2,mouseup:4};function $(){this.evEl="mousedown",this.evWin="mousemove mouseup",this.pressed=!1,Z.apply(this,arguments)}w($,Z,{handler:function(t){var e=G[t.type];1&e&&0===t.button&&(this.pressed=!0),2&e&&1!==t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:F,srcEvent:t}))}});var J={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},Q={2:z,3:"pen",4:F,5:"kinect"},tt="pointerdown",te="pointermove pointerup pointercancel";function tn(){this.evEl=tt,this.evWin=te,Z.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}i.MSPointerEvent&&!i.PointerEvent&&(tt="MSPointerDown",te="MSPointerMove MSPointerUp MSPointerCancel"),w(tn,Z,{handler:function(t){var e=this.store,n=!1,r=J[t.type.toLowerCase().replace("ms","")],i=Q[t.pointerType]||t.pointerType,o=k(e,t.pointerId,"pointerId");1&r&&(0===t.button||i==z)?o<0&&(e.push(t),o=e.length-1):12&r&&(n=!0),!(o<0)&&(e[o]=t,this.callback(this.manager,r,{pointers:e,changedPointers:[t],pointerType:i,srcEvent:t}),n&&e.splice(o,1))}});var tr={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function ti(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,Z.apply(this,arguments)}function to(t,e){var n=x(t.touches),r=x(t.changedTouches);return 12&e&&(n=D(n.concat(r),"identifier",!0)),[n,r]}w(ti,Z,{handler:function(t){var e=tr[t.type];if(1===e&&(this.started=!0),this.started){var n=to.call(this,t,e);12&e&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:z,srcEvent:t})}}});var ta={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function ts(){this.evTarget="touchstart touchmove touchend touchcancel",this.targetIds={},Z.apply(this,arguments)}function tc(t,e){var n=x(t.touches),r=this.targetIds;if(3&e&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=x(t.changedTouches),s=[],c=this.target;if(o=n.filter(function(t){return j(t.target,c)}),1===e)for(i=0;i-1&&r.splice(t,1)},2500)}}function tp(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,r=0;r-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){var e=this,n=this.state;function r(n){e.manager.emit(n,t)}n<8&&r(e.options.event+tP(n)),r(e.options.event),t.additionalEvent&&r(t.additionalEvent),n>=8&&r(e.options.event+tP(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&i&e.direction},attrTest:function(t){return tS.prototype.attrTest.call(this,t)&&(2&this.state||!(2&this.state)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=tM(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),w(tk,tS,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[tb]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||2&this.state)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),w(tx,t_,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[tg]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distancee.time;if(this._input=t,r&&n&&(!(12&t.eventType)||i)){if(1&t.eventType)this.reset(),this._timer=d(function(){this.state=8,this.tryEmit()},e.time,this);else if(4&t.eventType)return 8}else this.reset();return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){8===this.state&&(t&&4&t.eventType?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=f(),this.manager.emit(this.options.event,this._input)))}}),w(tD,tS,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[tb]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||2&this.state)}}),w(tC,tS,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return tT.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return 30&n?e=t.overallVelocity:6&n?e=t.overallVelocityX:24&n&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&p(e)>this.options.velocity&&4&t.eventType},emit:function(t){var e=tM(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),w(tR,t_,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[tm]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance1)for(var n=1;nt.length)&&(e=t.length);for(var n=0,r=Array(e);nn?n:t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),s=new d(4),d!=Float32Array&&(s[0]=0,s[1]=0,s[2]=0,s[3]=0);const y=Math.log2||function(t){return Math.log(t)*Math.LOG2E};function w(t,e,n){var r=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],u=e[6],l=e[7],h=e[8],p=e[9],f=e[10],d=e[11],v=e[12],g=e[13],m=e[14],b=e[15],y=n[0],w=n[1],O=n[2],E=n[3];return t[0]=y*r+w*s+O*h+E*v,t[1]=y*i+w*c+O*p+E*g,t[2]=y*o+w*u+O*f+E*m,t[3]=y*a+w*l+O*d+E*b,y=n[4],w=n[5],O=n[6],E=n[7],t[4]=y*r+w*s+O*h+E*v,t[5]=y*i+w*c+O*p+E*g,t[6]=y*o+w*u+O*f+E*m,t[7]=y*a+w*l+O*d+E*b,y=n[8],w=n[9],O=n[10],E=n[11],t[8]=y*r+w*s+O*h+E*v,t[9]=y*i+w*c+O*p+E*g,t[10]=y*o+w*u+O*f+E*m,t[11]=y*a+w*l+O*d+E*b,y=n[12],w=n[13],O=n[14],E=n[15],t[12]=y*r+w*s+O*h+E*v,t[13]=y*i+w*c+O*p+E*g,t[14]=y*o+w*u+O*f+E*m,t[15]=y*a+w*l+O*d+E*b,t}function O(t,e,n){var r,i,o,a,s,c,u,l,h,p,f,d,v=n[0],g=n[1],m=n[2];return e===t?(t[12]=e[0]*v+e[4]*g+e[8]*m+e[12],t[13]=e[1]*v+e[5]*g+e[9]*m+e[13],t[14]=e[2]*v+e[6]*g+e[10]*m+e[14],t[15]=e[3]*v+e[7]*g+e[11]*m+e[15]):(r=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],u=e[6],l=e[7],h=e[8],p=e[9],f=e[10],d=e[11],t[0]=r,t[1]=i,t[2]=o,t[3]=a,t[4]=s,t[5]=c,t[6]=u,t[7]=l,t[8]=h,t[9]=p,t[10]=f,t[11]=d,t[12]=r*v+s*g+h*m+e[12],t[13]=i*v+c*g+p*m+e[13],t[14]=o*v+u*g+f*m+e[14],t[15]=a*v+l*g+d*m+e[15]),t}function E(t,e,n){var r=n[0],i=n[1],o=n[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*o,t[9]=e[9]*o,t[10]=e[10]*o,t[11]=e[11]*o,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function _(t,e){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],c=t[6],u=t[7],l=t[8],h=t[9],p=t[10],f=t[11],d=t[12],v=t[13],g=t[14],m=t[15],b=e[0],y=e[1],w=e[2],O=e[3],E=e[4],_=e[5],P=e[6],M=e[7],j=e[8],S=e[9],T=e[10],k=e[11],x=e[12],D=e[13],C=e[14],R=e[15];return Math.abs(n-b)<=1e-6*Math.max(1,Math.abs(n),Math.abs(b))&&Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(i-w)<=1e-6*Math.max(1,Math.abs(i),Math.abs(w))&&Math.abs(o-O)<=1e-6*Math.max(1,Math.abs(o),Math.abs(O))&&Math.abs(a-E)<=1e-6*Math.max(1,Math.abs(a),Math.abs(E))&&Math.abs(s-_)<=1e-6*Math.max(1,Math.abs(s),Math.abs(_))&&Math.abs(c-P)<=1e-6*Math.max(1,Math.abs(c),Math.abs(P))&&Math.abs(u-M)<=1e-6*Math.max(1,Math.abs(u),Math.abs(M))&&Math.abs(l-j)<=1e-6*Math.max(1,Math.abs(l),Math.abs(j))&&Math.abs(h-S)<=1e-6*Math.max(1,Math.abs(h),Math.abs(S))&&Math.abs(p-T)<=1e-6*Math.max(1,Math.abs(p),Math.abs(T))&&Math.abs(f-k)<=1e-6*Math.max(1,Math.abs(f),Math.abs(k))&&Math.abs(d-x)<=1e-6*Math.max(1,Math.abs(d),Math.abs(x))&&Math.abs(v-D)<=1e-6*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(g-C)<=1e-6*Math.max(1,Math.abs(g),Math.abs(C))&&Math.abs(m-R)<=1e-6*Math.max(1,Math.abs(m),Math.abs(R))}function P(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function M(t,e,n,r){var i=e[0],o=e[1];return t[0]=i+r*(n[0]-i),t[1]=o+r*(n[1]-o),t}function j(t,e){if(!t)throw Error(e||"@math.gl/web-mercator: assertion failed.")}c=new d(2),d!=Float32Array&&(c[0]=0,c[1]=0),u=new d(3),d!=Float32Array&&(u[0]=0,u[1]=0,u[2]=0);const S=Math.PI,T=S/4,k=S/180,x=180/S;function D(t){return Math.pow(2,t)}function C([t,e]){j(Number.isFinite(t)),j(Number.isFinite(e)&&e>=-90&&e<=90,"invalid latitude");const n=512*(S+Math.log(Math.tan(T+.5*(e*k))))/(2*S);return[512*(t*k+S)/(2*S),n]}function R([t,e]){const n=2*(Math.atan(Math.exp(e/512*(2*S)-S))-T);return[(t/512*(2*S)-S)*x,n*x]}function A(t){return 2*Math.atan(.5/t)*x}function I(t){return .5/Math.tan(.5*t*k)}function L(t,e,n=0){const[r,i,o]=t;if(j(Number.isFinite(r)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(o)){const a=g(e,[r,i,o,1]);return a}const s=g(e,[r,i,0,1]),c=g(e,[r,i,1,1]),u=s[2],l=c[2];return M([],s,c,u===l?0:((n||0)-u)/(l-u))}const N=Math.PI/180;function z(t,e,n){const{pixelUnprojectionMatrix:r}=t,i=g(r,[e,0,1,1]),o=g(r,[e,t.height,1,1]),a=n*t.distanceScales.unitsPerMeter[2],s=(a-i[2])/(o[2]-i[2]),c=M([],i,o,s),u=R(c);return u[2]=n,u}class F{constructor({width:t,height:e,latitude:n=0,longitude:r=0,zoom:i=0,pitch:o=0,bearing:a=0,altitude:s=null,fovy:c=null,position:u=null,nearZMultiplier:l=.02,farZMultiplier:h=1.01}={width:1,height:1}){t=t||1,e=e||1,null===c&&null===s?c=A(s=1.5):null===c?c=A(s):null===s&&(s=I(c));const p=D(i);s=Math.max(.75,s);const f=function({latitude:t,longitude:e,highPrecision:n=!1}){j(Number.isFinite(t)&&Number.isFinite(e));const r={},i=Math.cos(t*k),o=512/360,a=o/i,s=512/4003e4/i;if(r.unitsPerMeter=[s,s,s],r.metersPerUnit=[1/s,1/s,1/s],r.unitsPerDegree=[o,a,s],r.degreesPerUnit=[1/o,1/a,1/s],n){const c=k*Math.tan(t*k)/i,u=512/4003e4*c,l=u/a*s;r.unitsPerDegree2=[0,o*c/2,u],r.unitsPerMeter2=[l,0,l]}return r}({longitude:r,latitude:n}),d=C([r,n]);if(d[2]=0,u){var g,m,b;b=d,g=[],m=f.unitsPerMeter,g[0]=u[0]*m[0],g[1]=u[1]*m[1],g[2]=u[2]*m[2],b[0]=d[0]+g[0],b[1]=d[1]+g[1],b[2]=d[2]+g[2]}this.projectionMatrix=function({width:t,height:e,pitch:n,altitude:r,fovy:i,nearZMultiplier:o,farZMultiplier:a}){var s,c,u;const{fov:l,aspect:h,near:p,far:f}=function({width:t,height:e,fovy:n=A(1.5),altitude:r,pitch:i=0,nearZMultiplier:o=1,farZMultiplier:a=1}){void 0!==r&&(n=A(r));const s=.5*n*k,c=I(n),u=i*k,l=Math.sin(s)*c/Math.sin(Math.min(Math.max(Math.PI/2-u-s,.01),Math.PI-.01)),h=Math.sin(u)*l+c;return{fov:2*s,aspect:t/e,focalDistance:c,near:o,far:h*a}}({width:t,height:e,altitude:r,fovy:i,pitch:n,nearZMultiplier:o,farZMultiplier:a}),d=(s=[],u=1/Math.tan(l/2),s[0]=u/h,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=u,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[11]=-1,s[12]=0,s[13]=0,s[15]=0,null!=f&&f!==1/0?(c=1/(p-f),s[10]=(f+p)*c,s[14]=2*f*p*c):(s[10]=-1,s[14]=-2*p),s);return d}({width:t,height:e,pitch:o,fovy:c,nearZMultiplier:l,farZMultiplier:h}),this.viewMatrix=function({height:t,pitch:e,bearing:n,altitude:r,scale:i,center:o=null}){var a,s,c,u,l,h,p,f,d,g,m,b,y,w,_,P,M,j,S,T,x,D,C,R,A;const I=v();return O(I,I,[0,0,-r]),a=I,c=Math.sin(s=-e*k),u=Math.cos(s),l=I[4],h=I[5],p=I[6],f=I[7],d=I[8],g=I[9],m=I[10],b=I[11],I!==a&&(a[0]=I[0],a[1]=I[1],a[2]=I[2],a[3]=I[3],a[12]=I[12],a[13]=I[13],a[14]=I[14],a[15]=I[15]),a[4]=l*u+d*c,a[5]=h*u+g*c,a[6]=p*u+m*c,a[7]=f*u+b*c,a[8]=d*u-l*c,a[9]=g*u-h*c,a[10]=m*u-p*c,a[11]=b*u-f*c,y=I,_=Math.sin(w=n*k),P=Math.cos(w),M=I[0],j=I[1],S=I[2],T=I[3],x=I[4],D=I[5],C=I[6],R=I[7],I!==y&&(y[8]=I[8],y[9]=I[9],y[10]=I[10],y[11]=I[11],y[12]=I[12],y[13]=I[13],y[14]=I[14],y[15]=I[15]),y[0]=M*P+x*_,y[1]=j*P+D*_,y[2]=S*P+C*_,y[3]=T*P+R*_,y[4]=x*P-M*_,y[5]=D*P-j*_,y[6]=C*P-S*_,y[7]=R*P-T*_,E(I,I,[i/=t,i,i]),o&&O(I,I,((A=[])[0]=-o[0],A[1]=-o[1],A[2]=-o[2],A)),I}({height:e,scale:p,center:d,pitch:o,bearing:a,altitude:s}),this.width=t,this.height=e,this.scale=p,this.latitude=n,this.longitude=r,this.zoom=i,this.pitch=o,this.bearing=a,this.altitude=s,this.fovy=c,this.center=d,this.meterOffset=u||[0,0,0],this.distanceScales=f,this._initMatrices(),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),Object.freeze(this)}_initMatrices(){var t,e,n,r,i,o,a,s,c,u,l,h,p,f,d,g,m,b,y,_,P,M,j,S,T,k,x,D,C,R;const{width:A,height:I,projectionMatrix:L,viewMatrix:N}=this,z=v();w(z,z,L),w(z,z,N),this.viewProjectionMatrix=z;const F=v();E(F,F,[A/2,-I/2,1]),O(F,F,[1,-1,0]),w(F,F,z);const V=(t=v(),e=F[0],n=F[1],r=F[2],i=F[3],o=F[4],a=F[5],s=F[6],c=F[7],u=F[8],l=F[9],h=F[10],p=F[11],f=F[12],d=F[13],g=F[14],m=F[15],b=e*a-n*o,y=e*s-r*o,_=e*c-i*o,P=n*s-r*a,M=n*c-i*a,j=r*c-i*s,S=u*d-l*f,T=u*g-h*f,k=u*m-p*f,x=l*g-h*d,D=l*m-p*d,(R=b*(C=h*m-p*g)-y*D+_*x+P*k-M*T+j*S)?(R=1/R,t[0]=(a*C-s*D+c*x)*R,t[1]=(r*D-n*C-i*x)*R,t[2]=(d*j-g*M+m*P)*R,t[3]=(h*M-l*j-p*P)*R,t[4]=(s*k-o*C-c*T)*R,t[5]=(e*C-r*k+i*T)*R,t[6]=(g*_-f*j-m*y)*R,t[7]=(u*j-h*_+p*y)*R,t[8]=(o*D-a*k+c*S)*R,t[9]=(n*k-e*D-i*S)*R,t[10]=(f*M-d*_+m*b)*R,t[11]=(l*_-u*M-p*b)*R,t[12]=(a*T-o*x-s*S)*R,t[13]=(e*x-n*T+r*S)*R,t[14]=(d*y-f*P-g*b)*R,t[15]=(u*P-l*y+h*b)*R,t):null);if(!V)throw Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=F,this.pixelUnprojectionMatrix=V}equals(t){return t instanceof F&&t.width===this.width&&t.height===this.height&&_(t.projectionMatrix,this.projectionMatrix)&&_(t.viewMatrix,this.viewMatrix)}project(t,{topLeft:e=!0}={}){const n=this.projectPosition(t),r=function(t,e){const[n,r,i=0]=t;return j(Number.isFinite(n)&&Number.isFinite(r)&&Number.isFinite(i)),g(e,[n,r,i,1])}(n,this.pixelProjectionMatrix),[i,o]=r,a=e?o:this.height-o;return 2===t.length?[i,a]:[i,a,r[2]]}unproject(t,{topLeft:e=!0,targetZ:n}={}){const[r,i,o]=t,a=e?i:this.height-i,s=n&&n*this.distanceScales.unitsPerMeter[2],c=L([r,a,o],this.pixelUnprojectionMatrix,s),[u,l,h]=this.unprojectPosition(c);return Number.isFinite(o)?[u,l,h]:Number.isFinite(n)?[u,l,n]:[u,l]}projectPosition(t){const[e,n]=C(t),r=(t[2]||0)*this.distanceScales.unitsPerMeter[2];return[e,n,r]}unprojectPosition(t){const[e,n]=R(t),r=(t[2]||0)*this.distanceScales.metersPerUnit[2];return[e,n,r]}projectFlat(t){return C(t)}unprojectFlat(t){return R(t)}getMapCenterByLngLatPosition({lngLat:t,pos:e}){var n;const r=L(e,this.pixelUnprojectionMatrix),i=C(t),o=P([],i,((n=[])[0]=-r[0],n[1]=-r[1],n)),a=P([],this.center,o);return R(a)}getLocationAtPoint({lngLat:t,pos:e}){return this.getMapCenterByLngLatPosition({lngLat:t,pos:e})}fitBounds(t,e={}){const{width:n,height:r}=this,{longitude:i,latitude:o,zoom:a}=function({width:t,height:e,bounds:n,minExtent:r=0,maxZoom:i=24,padding:o=0,offset:a=[0,0]}){const[[s,c],[u,l]]=n;if(Number.isFinite(o)){const h=o;o={top:h,bottom:h,left:h,right:h}}else j(Number.isFinite(o.top)&&Number.isFinite(o.bottom)&&Number.isFinite(o.left)&&Number.isFinite(o.right));const p=C([s,b(l,-85.051129,85.051129)]),f=C([u,b(c,-85.051129,85.051129)]),d=[Math.max(Math.abs(f[0]-p[0]),r),Math.max(Math.abs(f[1]-p[1]),r)],v=[t-o.left-o.right-2*Math.abs(a[0]),e-o.top-o.bottom-2*Math.abs(a[1])];j(v[0]>0&&v[1]>0);const g=v[0]/d[0],m=v[1]/d[1],w=(o.right-o.left)/2/g,O=(o.bottom-o.top)/2/m,E=[(f[0]+p[0])/2+w,(f[1]+p[1])/2+O],_=R(E),P=Math.min(i,y(Math.abs(Math.min(g,m))));return j(Number.isFinite(P)),{longitude:_[0],latitude:_[1],zoom:P}}(Object.assign({width:n,height:r,bounds:t},e));return new F({width:n,height:r,longitude:i,latitude:o,zoom:a})}getBounds(t){const e=this.getBoundingRegion(t),n=Math.min(...e.map(t=>t[0])),r=Math.max(...e.map(t=>t[0])),i=Math.min(...e.map(t=>t[1])),o=Math.max(...e.map(t=>t[1]));return[[n,i],[r,o]]}getBoundingRegion(t={}){return function(t,e=0){let n,r;const{width:i,height:o,unproject:a}=t,s={targetZ:e},c=a([0,o],s),u=a([i,o],s),l=t.fovy?.5*t.fovy*N:Math.atan(.5/t.altitude),h=(90-t.pitch)*N;return l>h-.01?(n=z(t,0,e),r=z(t,i,e)):(n=a([0,0],s),r=a([i,0],s)),[c,u,r,n]}(this,t.z||0)}}const V=["longitude","latitude","zoom"],B={curve:1.414,speed:1.2};function Z(t,e,n){var r;n=Object.assign({},B,n);const i=n.curve,o=t.zoom,a=[t.longitude,t.latitude],s=D(o),c=e.zoom,u=[e.longitude,e.latitude],l=D(c-o),h=C(a),p=C(u),f=((r=[])[0]=p[0]-h[0],r[1]=p[1]-h[1],r),d=Math.max(t.width,t.height),v=d/l,g=Math.hypot(f[0],f[1])*s,m=Math.max(g,.01),b=i*i,y=(v*v-d*d+b*b*m*m)/(2*d*b*m),w=(v*v-d*d-b*b*m*m)/(2*v*b*m),O=Math.log(Math.sqrt(y*y+1)-y),E=Math.log(Math.sqrt(w*w+1)-w);return{startZoom:o,startCenterXY:h,uDelta:f,w0:d,u1:g,S:(E-O)/i,rho:i,rho2:b,r0:O,r1:E}}var U=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var n=-1;return t.some(function(t,r){return t[0]===e&&(n=r,!0)}),n}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var n=t(this.__entries__,e),r=this.__entries__[n];return r&&r[1]},e.prototype.set=function(e,n){var r=t(this.__entries__,e);~r?this.__entries__[r][1]=n:this.__entries__.push([e,n])},e.prototype.delete=function(e){var n=this.__entries__,r=t(n,e);~r&&n.splice(r,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var n=0,r=this.__entries__;n0},t.prototype.connect_=function(){q&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),X?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){q&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;Y.some(function(t){return!!~n.indexOf(t)})&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),G=function(t,e){for(var n=0,r=Object.keys(e);n0},t}(),ta="undefined"!=typeof WeakMap?new WeakMap:new U,ts=function t(e){if(!(this instanceof t))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var n=K.getInstance(),r=new to(e,n,this);ta.set(this,r)};["observe","unobserve","disconnect"].forEach(function(t){ts.prototype[t]=function(){var e;return(e=ta.get(this))[t].apply(e,arguments)}});var tc=void 0!==H.ResizeObserver?H.ResizeObserver:ts;function tu(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}function tl(t,e){for(var n=0;n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function tg(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1&&void 0!==arguments[1]?arguments[1]:"component";t.debug&&p.checkPropTypes(tw,t,"prop",e)}var t_=function(){function t(e){var n=this;if(tu(this,t),a(this,"props",tO),a(this,"width",0),a(this,"height",0),a(this,"_fireLoadEvent",function(){n.props.onLoad({type:"load",target:n._map})}),a(this,"_handleError",function(t){n.props.onError(t)}),!e.mapboxgl)throw Error("Mapbox not available");this.mapboxgl=e.mapboxgl,t.initialized||(t.initialized=!0,this._checkStyleSheet(this.mapboxgl.version)),this._initialize(e)}return th(t,[{key:"finalize",value:function(){return this._destroy(),this}},{key:"setProps",value:function(t){return this._update(this.props,t),this}},{key:"redraw",value:function(){var t=this._map;t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}},{key:"getMap",value:function(){return this._map}},{key:"_reuse",value:function(e){this._map=t.savedMap;var n=this._map.getContainer(),r=e.container;for(r.classList.add("mapboxgl-map");n.childNodes.length>0;)r.appendChild(n.childNodes[0]);this._map._container=r,t.savedMap=null,e.mapStyle&&this._map.setStyle(tb(e.mapStyle),{diff:!1}),this._map.isStyleLoaded()?this._fireLoadEvent():this._map.once("styledata",this._fireLoadEvent)}},{key:"_create",value:function(e){if(e.reuseMaps&&t.savedMap)this._reuse(e);else{if(e.gl){var n=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=n,e.gl}}var r={container:e.container,center:[0,0],zoom:8,pitch:0,bearing:0,maxZoom:24,style:tb(e.mapStyle),interactive:!1,trackResize:!1,attributionControl:e.attributionControl,preserveDrawingBuffer:e.preserveDrawingBuffer};e.transformRequest&&(r.transformRequest=e.transformRequest),this._map=new this.mapboxgl.Map(Object.assign({},r,e.mapOptions)),this._map.once("load",this._fireLoadEvent),this._map.on("error",this._handleError)}return this}},{key:"_destroy",value:function(){this._map&&(this.props.reuseMaps&&!t.savedMap?(t.savedMap=this._map,this._map.off("load",this._fireLoadEvent),this._map.off("error",this._handleError),this._map.off("styledata",this._fireLoadEvent)):this._map.remove(),this._map=null)}},{key:"_initialize",value:function(t){var e=this;tE(t=Object.assign({},tO,t),"Mapbox"),this.mapboxgl.accessToken=t.mapboxApiAccessToken||tO.mapboxApiAccessToken,this.mapboxgl.baseApiUrl=t.mapboxApiUrl,this._create(t);var n=t.container;Object.defineProperty(n,"offsetWidth",{configurable:!0,get:function(){return e.width}}),Object.defineProperty(n,"clientWidth",{configurable:!0,get:function(){return e.width}}),Object.defineProperty(n,"offsetHeight",{configurable:!0,get:function(){return e.height}}),Object.defineProperty(n,"clientHeight",{configurable:!0,get:function(){return e.height}});var r=this._map.getCanvas();r&&(r.style.outline="none"),this._updateMapViewport({},t),this._updateMapSize({},t),this.props=t}},{key:"_update",value:function(t,e){if(this._map){tE(e=Object.assign({},this.props,e),"Mapbox");var n=this._updateMapViewport(t,e),r=this._updateMapSize(t,e);this._updateMapStyle(t,e),!e.asyncRender&&(n||r)&&this.redraw(),this.props=e}}},{key:"_updateMapStyle",value:function(t,e){t.mapStyle!==e.mapStyle&&this._map.setStyle(tb(e.mapStyle),{diff:!e.preventStyleDiffing})}},{key:"_updateMapSize",value:function(t,e){var n=t.width!==e.width||t.height!==e.height;return n&&(this.width=e.width,this.height=e.height,this._map.resize()),n}},{key:"_updateMapViewport",value:function(t,e){var n=this._getViewState(t),r=this._getViewState(e),i=r.latitude!==n.latitude||r.longitude!==n.longitude||r.zoom!==n.zoom||r.pitch!==n.pitch||r.bearing!==n.bearing||r.altitude!==n.altitude;return i&&(this._map.jumpTo(this._viewStateToMapboxProps(r)),r.altitude!==n.altitude&&(this._map.transform.altitude=r.altitude)),i}},{key:"_getViewState",value:function(t){var e=t.viewState||t,n=e.longitude,r=e.latitude,i=e.zoom,o=e.pitch,a=e.bearing,s=e.altitude;return{longitude:n,latitude:r,zoom:i,pitch:void 0===o?0:o,bearing:void 0===a?0:a,altitude:void 0===s?1.5:s}}},{key:"_checkStyleSheet",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"0.47.0";if(void 0!==tp)try{var e=tp.createElement("div");if(e.className="mapboxgl-map",e.style.display="none",tp.body.appendChild(e),!("static"!==window.getComputedStyle(e).position)){var n=tp.createElement("link");n.setAttribute("rel","stylesheet"),n.setAttribute("type","text/css"),n.setAttribute("href","https://api.tiles.mapbox.com/mapbox-gl-js/v".concat(t,"/mapbox-gl.css")),tp.head.appendChild(n)}}catch(r){}}},{key:"_viewStateToMapboxProps",value:function(t){return{center:[t.longitude,t.latitude],zoom:t.zoom,bearing:t.bearing,pitch:t.pitch}}}]),t}();a(t_,"initialized",!1),a(t_,"propTypes",tw),a(t_,"defaultProps",tO),a(t_,"savedMap",null);var tP=n(6158),tM=n.n(tP);function tj(t){return Array.isArray(t)||ArrayBuffer.isView(t)}function tS(t,e,n){return Math.max(e,Math.min(n,t))}function tT(t,e,n){return tj(t)?t.map(function(t,r){return tT(t,e[r],n)}):n*e+(1-n)*t}function tk(t,e){if(!t)throw Error(e||"react-map-gl: assertion failed.")}function tx(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function tD(t){for(var e=1;e0,"`scale` must be a positive number");var i=this._state,o=i.startZoom,a=i.startZoomLngLat;Number.isFinite(o)||(o=this._viewportProps.zoom,a=this._unproject(n)||this._unproject(e)),tk(a,"`startZoomLngLat` prop is required for zoom behavior to calculate where to position the map.");var s=this._calculateNewZoom({scale:r,startZoom:o||0}),c=f(new F(Object.assign({},this._viewportProps,{zoom:s})).getMapCenterByLngLatPosition({lngLat:a,pos:e}),2),u=c[0],l=c[1];return this._getUpdatedMapState({zoom:s,longitude:u,latitude:l})}},{key:"zoomEnd",value:function(){return this._getUpdatedMapState({startZoomLngLat:null,startZoom:null})}},{key:"_getUpdatedMapState",value:function(e){return new t(Object.assign({},this._viewportProps,this._state,e))}},{key:"_applyConstraints",value:function(t){var e=t.maxZoom,n=t.minZoom,r=t.zoom;t.zoom=tS(r,n,e);var i=t.maxPitch,o=t.minPitch,a=t.pitch;return t.pitch=tS(a,o,i),Object.assign(t,function({width:t,height:e,longitude:n,latitude:r,zoom:i,pitch:o=0,bearing:a=0}){(n<-180||n>180)&&(n=m(n+180,360)-180),(a<-180||a>180)&&(a=m(a+180,360)-180);const s=y(e/512);if(i<=s)i=s,r=0;else{const c=e/2/Math.pow(2,i),u=R([0,c])[1];if(rl&&(r=l)}}return{width:t,height:e,longitude:n,latitude:r,zoom:i,pitch:o,bearing:a}}(t)),t}},{key:"_unproject",value:function(t){var e=new F(this._viewportProps);return t&&e.unproject(t)}},{key:"_calculateNewLngLat",value:function(t){var e=t.startPanLngLat,n=t.pos;return new F(this._viewportProps).getMapCenterByLngLatPosition({lngLat:e,pos:n})}},{key:"_calculateNewZoom",value:function(t){var e=t.scale,n=t.startZoom,r=this._viewportProps,i=r.maxZoom;return tS(n+Math.log2(e),r.minZoom,i)}},{key:"_calculateNewPitchAndBearing",value:function(t){var e=t.deltaScaleX,n=t.deltaScaleY,r=t.startBearing,i=t.startPitch;n=tS(n,-1,1);var o=this._viewportProps,a=o.minPitch,s=o.maxPitch,c=i;return n>0?c=i+n*(s-i):n<0&&(c=i-n*(a-i)),{pitch:c,bearing:r+180*e}}},{key:"_getRotationParams",value:function(t,e){var n=t[0]-e[0],r=t[1]-e[1],i=t[1],o=e[1],a=this._viewportProps,s=a.width,c=a.height,u=0;return r>0?Math.abs(c-o)>5&&(u=r/(o-c)*1.2):r<0&&o>5&&(u=1-i/o),{deltaScaleX:n/s,deltaScaleY:u=Math.min(1,Math.max(-1,u))}}}]),t}();function tI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function tL(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=c.current&&c.current.getMap();return n&&n.queryRenderedFeatures(t,e)}}},[]);var g=(0,h.useCallback)(function(t){var e=t.target;e===p.current&&e.scrollTo(0,0)},[]),m=v&&h.createElement(tz,{value:tZ(tZ({},d),{},{viewport:d.viewport||tq(tZ({map:v,props:t},a)),map:v,container:d.container||l.current})},h.createElement("div",{key:"map-overlays",className:"overlays",ref:p,style:tH,onScroll:g},t.children)),b=t.className,y=t.width,w=t.height,O=t.style,E=t.visibilityConstraints,_=Object.assign({position:"relative"},O,{width:y,height:w}),P=Object.assign({},tH,{visibility:t.visible&&function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:tC;for(var n in e){var r,i=n.slice(0,3),o=(r=n.slice(3))[0].toLowerCase()+r.slice(1);if("min"===i&&t[o]e[n])return!1}return!0}(t.viewState||t,E)?"inherit":"hidden"});return h.createElement("div",{key:"map-container",ref:l,style:_},h.createElement("div",{key:"map-mapbox",ref:u,style:P,className:b}),m,!r&&!t.disableTokenWarning&&h.createElement(tX,null))});function tG(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}(this.propNames||[]);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(!function t(e,n){if(e===n)return!0;if(tj(e)&&tj(n)){if(e.length!==n.length)return!1;for(var r=0;r=Math.abs(e-n)}(t[i],e[i]))return!1}}catch(o){r.e(o)}finally{r.f()}return!0}},{key:"initializeProps",value:function(t,e){return{start:t,end:e}}},{key:"interpolateProps",value:function(t,e,n){tk(!1,"interpolateProps is not implemented")}},{key:"getDuration",value:function(t,e){return e.transitionDuration}}]),t}();function tJ(t){if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function tQ(t,e){return(tQ=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function t0(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&tQ(t,e)}function t1(t){return(t1="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function t2(t,e){if(e&&("object"===t1(e)||"function"==typeof e))return e;if(void 0!==e)throw TypeError("Derived constructors may only return object or undefined");return tJ(t)}function t4(t){return(t4=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var t3={longitude:1,bearing:1};function t5(t){return Number.isFinite(t)||Array.isArray(t)}function t8(t,e,n){return t in t3&&Math.abs(n-e)>180&&(n=n<0?n+360:n-360),n}function t6(t,e){if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(i=function(t,e){if(t){if("string"==typeof t)return t7(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t7(t,e)}}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function t7(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function ei(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n0&&void 0!==arguments[0]?arguments[0]:{};return tu(this,r),a(tJ(t=n.call(this)),"propNames",t9),t.props=Object.assign({},en,e),t}th(r,[{key:"initializeProps",value:function(t,e){var n,r={},i={},o=t6(et);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=t[a],c=e[a];tk(t5(s)&&t5(c),"".concat(a," must be supplied for transition")),r[a]=s,i[a]=t8(a,s,c)}}catch(u){o.e(u)}finally{o.f()}var l,h=t6(ee);try{for(h.s();!(l=h.n()).done;){var p=l.value,f=t[p]||0,d=e[p]||0;r[p]=f,i[p]=t8(p,f,d)}}catch(v){h.e(v)}finally{h.f()}return{start:r,end:i}}},{key:"interpolateProps",value:function(t,e,n){var r,i=function(t,e,n,r={}){var i;const o={},{startZoom:a,startCenterXY:s,uDelta:c,w0:u,u1:l,S:h,rho:p,rho2:f,r0:d}=Z(t,e,r);if(l<.01){for(const v of V){const g=t[v],m=e[v];o[v]=n*m+(1-n)*g}return o}const b=n*h,w=Math.cosh(d)/Math.cosh(d+p*b),O=u*((Math.cosh(d)*Math.tanh(d+p*b)-Math.sinh(d))/f)/l,E=a+y(1/w),_=((i=[])[0]=c[0]*O,i[1]=c[1]*O,i);P(_,_,s);const M=R(_);return o.longitude=M[0],o.latitude=M[1],o.zoom=E,o}(t,e,n,this.props),o=t6(ee);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=tT(t[a],e[a],n)}}catch(s){o.e(s)}finally{o.f()}return i}},{key:"getDuration",value:function(t,e){var n=e.transitionDuration;return"auto"===n&&(n=function(t,e,n={}){let r;n=Object.assign({},B,n);const{screenSpeed:i,speed:o,maxDuration:a}=n,{S:s,rho:c}=Z(t,e,n),u=1e3*s;return r=Number.isFinite(i)?u/(i/c):u/o,Number.isFinite(a)&&r>a?0:r}(t,e,this.props)),n}}])}(t$);var eo=["longitude","latitude","zoom","bearing","pitch"],ea=function(t){t0(r,t);var e,n=(e=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}(),function(){var t,n=t4(r);if(e){var i=t4(this).constructor;t=Reflect.construct(n,arguments,i)}else t=n.apply(this,arguments);return t2(this,t)});function r(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return tu(this,r),t=n.call(this),Array.isArray(e)&&(e={transitionProps:e}),t.propNames=e.transitionProps||eo,e.around&&(t.around=e.around),t}return th(r,[{key:"initializeProps",value:function(t,e){var n={},r={};if(this.around){n.around=this.around;var i=new F(t).unproject(this.around);Object.assign(r,e,{around:new F(e).project(i),aroundLngLat:i})}var o,a=er(this.propNames);try{for(a.s();!(o=a.n()).done;){var s=o.value,c=t[s],u=e[s];tk(t5(c)&&t5(u),"".concat(s," must be supplied for transition")),n[s]=c,r[s]=t8(s,c,u)}}catch(l){a.e(l)}finally{a.f()}return{start:n,end:r}}},{key:"interpolateProps",value:function(t,e,n){var r,i={},o=er(this.propNames);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=tT(t[a],e[a],n)}}catch(s){o.e(s)}finally{o.f()}if(e.around){var c=f(new F(Object.assign({},e,i)).getMapCenterByLngLatPosition({lngLat:e.aroundLngLat,pos:tT(t.around,e.around,n)}),2),u=c[0],l=c[1];i.longitude=u,i.latitude=l}return i}}]),r}(t$),es=function(){},ec={BREAK:1,SNAP_TO_END:2,IGNORE:3,UPDATE:4},eu={transitionDuration:0,transitionEasing:function(t){return t},transitionInterpolator:new ea,transitionInterruption:ec.BREAK,onTransitionStart:es,onTransitionInterrupt:es,onTransitionEnd:es},el=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};tu(this,t),a(this,"_animationFrame",null),a(this,"_onTransitionFrame",function(){e._animationFrame=requestAnimationFrame(e._onTransitionFrame),e._updateViewport()}),this.props=null,this.onViewportChange=n.onViewportChange||es,this.onStateChange=n.onStateChange||es,this.time=n.getTime||Date.now}return th(t,[{key:"getViewportInTransition",value:function(){return this._animationFrame?this.state.propsInTransition:null}},{key:"processViewportChange",value:function(t){var e=this.props;if(this.props=t,!e||this._shouldIgnoreViewportChange(e,t))return!1;if(this._isTransitionEnabled(t)){var n=Object.assign({},e),r=Object.assign({},t);if(this._isTransitionInProgress()&&(e.onTransitionInterrupt(),this.state.interruption===ec.SNAP_TO_END?Object.assign(n,this.state.endProps):Object.assign(n,this.state.propsInTransition),this.state.interruption===ec.UPDATE)){var i,o,a=this.time(),s=(a-this.state.startTime)/this.state.duration;r.transitionDuration=this.state.duration-(a-this.state.startTime),r.transitionEasing=(o=(i=this.state.easing)(s),function(t){return 1/(1-o)*(i(t*(1-s)+s)-o)}),r.transitionInterpolator=n.transitionInterpolator}return r.onTransitionStart(),this._triggerTransition(n,r),!0}return this._isTransitionInProgress()&&(e.onTransitionInterrupt(),this._endTransition()),!1}},{key:"_isTransitionInProgress",value:function(){return Boolean(this._animationFrame)}},{key:"_isTransitionEnabled",value:function(t){var e=t.transitionDuration,n=t.transitionInterpolator;return(e>0||"auto"===e)&&Boolean(n)}},{key:"_isUpdateDueToCurrentTransition",value:function(t){return!!this.state.propsInTransition&&this.state.interpolator.arePropsEqual(t,this.state.propsInTransition)}},{key:"_shouldIgnoreViewportChange",value:function(t,e){return!t||(this._isTransitionInProgress()?this.state.interruption===ec.IGNORE||this._isUpdateDueToCurrentTransition(e):!this._isTransitionEnabled(e)||e.transitionInterpolator.arePropsEqual(t,e))}},{key:"_triggerTransition",value:function(t,e){tk(this._isTransitionEnabled(e)),this._animationFrame&&cancelAnimationFrame(this._animationFrame);var n=e.transitionInterpolator,r=n.getDuration?n.getDuration(t,e):e.transitionDuration;if(0!==r){var i=e.transitionInterpolator.initializeProps(t,e),o={inTransition:!0,isZooming:t.zoom!==e.zoom,isPanning:t.longitude!==e.longitude||t.latitude!==e.latitude,isRotating:t.bearing!==e.bearing||t.pitch!==e.pitch};this.state={duration:r,easing:e.transitionEasing,interpolator:e.transitionInterpolator,interruption:e.transitionInterruption,startTime:this.time(),startProps:i.start,endProps:i.end,animation:null,propsInTransition:{}},this._onTransitionFrame(),this.onStateChange(o)}}},{key:"_endTransition",value:function(){this._animationFrame&&(cancelAnimationFrame(this._animationFrame),this._animationFrame=null),this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1})}},{key:"_updateViewport",value:function(){var t=this.time(),e=this.state,n=e.startTime,r=e.duration,i=e.easing,o=e.interpolator,a=e.startProps,s=e.endProps,c=!1,u=(t-n)/r;u>=1&&(u=1,c=!0),u=i(u);var l=o.interpolateProps(a,s,u),h=new tA(Object.assign({},this.props,l));this.state.propsInTransition=h.getViewportProps(),this.onViewportChange(this.state.propsInTransition,this.props),c&&(this._endTransition(),this.props.onTransitionEnd())}}]),t}();a(el,"defaultProps",eu);var eh=n(840),ep=n.n(eh);const ef={mousedown:1,mousemove:2,mouseup:4};!function(t){const e=t.prototype.handler;t.prototype.handler=function(t){const n=this.store;t.button>0&&"pointerdown"===t.type&&!function(t,e){for(let n=0;ne.pointerId===t.pointerId)&&n.push(t),e.call(this,t)}}(ep().PointerEventInput),ep().MouseInput.prototype.handler=function(t){let e=ef[t.type];1&e&&t.button>=0&&(this.pressed=!0),2&e&&0===t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:"mouse",srcEvent:t}))};const ed=ep().Manager;var ev=ep();const eg=ev?[[ev.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[ev.Rotate,{enable:!1}],[ev.Pinch,{enable:!1}],[ev.Swipe,{enable:!1}],[ev.Pan,{threshold:0,enable:!1}],[ev.Press,{enable:!1}],[ev.Tap,{event:"doubletap",taps:2,enable:!1}],[ev.Tap,{event:"anytap",enable:!1}],[ev.Tap,{enable:!1}]]:null,em={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},eb={doubletap:["tap"]},ey={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},ew={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},eO={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},eE={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},e_="undefined"!=typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():"",eP="undefined"!=typeof window?window:n.g;void 0!==n.g?n.g:window;let eM=!1;try{const ej={get passive(){return eM=!0,!0}};eP.addEventListener("test",ej,ej),eP.removeEventListener("test",ej,ej)}catch(eS){}const eT=-1!==e_.indexOf("firefox"),{WHEEL_EVENTS:ek}=ew,ex="wheel";class eD{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.events=ek.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach(e=>t.addEventListener(e,this.handleEvent,!!eM&&{passive:!1}))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===ex&&(this.options.enable=e)}handleEvent(t){if(!this.options.enable)return;let e=t.deltaY;eP.WheelEvent&&(eT&&t.deltaMode===eP.WheelEvent.DOM_DELTA_PIXEL&&(e/=eP.devicePixelRatio),t.deltaMode===eP.WheelEvent.DOM_DELTA_LINE&&(e*=40));const n={x:t.clientX,y:t.clientY};0!==e&&e%4.000244140625==0&&(e=Math.floor(e/4.000244140625)),t.shiftKey&&e&&(e*=.25),this._onWheel(t,-e,n)}_onWheel(t,e,n){this.callback({type:ex,center:n,delta:e,srcEvent:t,pointerType:"mouse",target:t.target})}}const{MOUSE_EVENTS:eC}=ew,eR="pointermove",eA="pointerover",eI="pointerout",eL="pointerleave";class eN{constructor(t,e,n={}){this.element=t,this.callback=e,this.pressed=!1,this.options=Object.assign({enable:!0},n),this.enableMoveEvent=this.options.enable,this.enableLeaveEvent=this.options.enable,this.enableOutEvent=this.options.enable,this.enableOverEvent=this.options.enable,this.events=eC.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach(e=>t.addEventListener(e,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===eR&&(this.enableMoveEvent=e),t===eA&&(this.enableOverEvent=e),t===eI&&(this.enableOutEvent=e),t===eL&&(this.enableLeaveEvent=e)}handleEvent(t){this.handleOverEvent(t),this.handleOutEvent(t),this.handleLeaveEvent(t),this.handleMoveEvent(t)}handleOverEvent(t){this.enableOverEvent&&"mouseover"===t.type&&this.callback({type:eA,srcEvent:t,pointerType:"mouse",target:t.target})}handleOutEvent(t){this.enableOutEvent&&"mouseout"===t.type&&this.callback({type:eI,srcEvent:t,pointerType:"mouse",target:t.target})}handleLeaveEvent(t){this.enableLeaveEvent&&"mouseleave"===t.type&&this.callback({type:eL,srcEvent:t,pointerType:"mouse",target:t.target})}handleMoveEvent(t){if(this.enableMoveEvent)switch(t.type){case"mousedown":t.button>=0&&(this.pressed=!0);break;case"mousemove":0===t.which&&(this.pressed=!1),this.pressed||this.callback({type:eR,srcEvent:t,pointerType:"mouse",target:t.target});break;case"mouseup":this.pressed=!1}}}const{KEY_EVENTS:ez}=ew,eF="keydown",eV="keyup";class eB{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=ez.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),t.tabIndex=n.tabIndex||0,t.style.outline="none",this.events.forEach(e=>t.addEventListener(e,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===eF&&(this.enableDownEvent=e),t===eV&&(this.enableUpEvent=e)}handleEvent(t){const e=t.target||t.srcElement;("INPUT"!==e.tagName||"text"!==e.type)&&"TEXTAREA"!==e.tagName&&(this.enableDownEvent&&"keydown"===t.type&&this.callback({type:eF,srcEvent:t,key:t.key,target:t.target}),this.enableUpEvent&&"keyup"===t.type&&this.callback({type:eV,srcEvent:t,key:t.key,target:t.target}))}}const eZ="contextmenu";class eU{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.handleEvent=this.handleEvent.bind(this),t.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(t,e){t===eZ&&(this.options.enable=e)}handleEvent(t){this.options.enable&&this.callback({type:eZ,center:{x:t.clientX,y:t.clientY},srcEvent:t,pointerType:"mouse",target:t.target})}}const eq={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4},eH={srcElement:"root",priority:0};class eW{constructor(t){this.eventManager=t,this.handlers=[],this.handlersByElement=new Map,this.handleEvent=this.handleEvent.bind(this),this._active=!1}isEmpty(){return!this._active}add(t,e,n,r=!1,i=!1){const{handlers:o,handlersByElement:a}=this;n&&("object"!=typeof n||n.addEventListener)&&(n={srcElement:n}),n=n?Object.assign({},eH,n):eH;let s=a.get(n.srcElement);s||(s=[],a.set(n.srcElement,s));const c={type:t,handler:e,srcElement:n.srcElement,priority:n.priority};r&&(c.once=!0),i&&(c.passive=!0),o.push(c),this._active=this._active||!c.passive;let u=s.length-1;for(;u>=0&&!(s[u].priority>=c.priority);)u--;s.splice(u+1,0,c)}remove(t,e){const{handlers:n,handlersByElement:r}=this;for(let i=n.length-1;i>=0;i--){const o=n[i];if(o.type===t&&o.handler===e){n.splice(i,1);const a=r.get(o.srcElement);a.splice(a.indexOf(o),1),0===a.length&&r.delete(o.srcElement)}}this._active=n.some(t=>!t.passive)}handleEvent(t){if(this.isEmpty())return;const e=this._normalizeEvent(t);let n=t.srcEvent.target;for(;n&&n!==e.rootElement;){if(this._emit(e,n),e.handled)return;n=n.parentNode}this._emit(e,"root")}_emit(t,e){const n=this.handlersByElement.get(e);if(n){let r=!1;const i=()=>{t.handled=!0},o=()=>{t.handled=!0,r=!0},a=[];for(let s=0;s{const e=this.manager.get(t);e&&em[t].forEach(t=>{e.recognizeWith(t)})}),e.recognizerOptions){const i=this.manager.get(r);if(i){const o=e.recognizerOptions[r];delete o.enable,i.set(o)}}for(const[a,s]of(this.wheelInput=new eD(t,this._onOtherEvent,{enable:!1}),this.moveInput=new eN(t,this._onOtherEvent,{enable:!1}),this.keyInput=new eB(t,this._onOtherEvent,{enable:!1,tabIndex:e.tabIndex}),this.contextmenuInput=new eU(t,this._onOtherEvent,{enable:!1}),this.events))s.isEmpty()||(this._toggleRecognizer(s.recognizerName,!0),this.manager.on(a,s.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(t,e,n){this._addEventHandler(t,e,n,!1)}once(t,e,n){this._addEventHandler(t,e,n,!0)}watch(t,e,n){this._addEventHandler(t,e,n,!1,!0)}off(t,e){this._removeEventHandler(t,e)}_toggleRecognizer(t,e){const{manager:n}=this;if(!n)return;const r=n.get(t);if(r&&r.options.enable!==e){r.set({enable:e});const i=eb[t];i&&!this.options.recognizers&&i.forEach(i=>{const o=n.get(i);e?(o.requireFailure(t),r.dropRequireFailure(i)):o.dropRequireFailure(t)})}this.wheelInput.enableEventType(t,e),this.moveInput.enableEventType(t,e),this.keyInput.enableEventType(t,e),this.contextmenuInput.enableEventType(t,e)}_addEventHandler(t,e,n,r,i){if("string"!=typeof t){for(const o in n=e,t)this._addEventHandler(o,t[o],n,r,i);return}const{manager:a,events:s}=this,c=eE[t]||t;let u=s.get(c);!u&&(u=new eW(this),s.set(c,u),u.recognizerName=eO[c]||c,a&&a.on(c,u.handleEvent)),u.add(t,e,n,r,i),u.isEmpty()||this._toggleRecognizer(u.recognizerName,!0)}_removeEventHandler(t,e){if("string"!=typeof t){for(const n in t)this._removeEventHandler(n,t[n]);return}const{events:r}=this,i=eE[t]||t,o=r.get(i);if(o&&(o.remove(t,e),o.isEmpty())){const{recognizerName:a}=o;let s=!1;for(const c of r.values())if(c.recognizerName===a&&!c.isEmpty()){s=!0;break}s||this._toggleRecognizer(a,!1)}}_onBasicInput(t){const{srcEvent:e}=t,n=ey[e.type];n&&this.manager.emit(n,t)}_onOtherEvent(t){this.manager.emit(t.type,t)}}function eK(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function eG(t){for(var e=1;e0),a=o&&!this.state.isHovering,s=!o&&this.state.isHovering;(r||a)&&(t.features=e,r&&r(t)),a&&e9.call(this,"onMouseEnter",t),s&&e9.call(this,"onMouseLeave",t),(a||s)&&this.setState({isHovering:o})}}function nr(t){var e=this.props,n=e.onClick,r=e.onNativeClick,i=e.onDblClick,o=e.doubleClickZoom,a=[],s=i||o;switch(t.type){case"anyclick":a.push(r),s||a.push(n);break;case"click":s&&a.push(n)}(a=a.filter(Boolean)).length&&((t=e6.call(this,t)).features=e7.call(this,t.point),a.forEach(function(e){return e(t)}))}var ni=(0,h.forwardRef)(function(t,e){var n,a,s=(0,h.useContext)(tN),c=(0,h.useMemo)(function(){return t.controller||new e1},[]),u=(0,h.useMemo)(function(){return new eX(null,{touchAction:t.touchAction,recognizerOptions:t.eventRecognizerOptions})},[]),l=(0,h.useRef)(null),p=(0,h.useRef)(null),f=(0,h.useRef)({width:0,height:0,state:{isHovering:!1,isDragging:!1}}).current;f.props=t,f.map=p.current&&p.current.getMap(),f.setState=function(e){f.state=e4(e4({},f.state),e),l.current.style.cursor=t.getCursor(f.state)};var d=!0,v=function(t,e,r){if(d){n=[t,e,r];return}var i=f.props,o=i.onViewStateChange,a=i.onViewportChange;Object.defineProperty(t,"position",{get:function(){return[0,0,tV(f.map,t)]}}),o&&o({viewState:t,interactionState:e,oldViewState:r}),a&&a(t,e,r)};(0,h.useImperativeHandle)(e,function(){return{getMap:p.current&&p.current.getMap,queryRenderedFeatures:p.current&&p.current.queryRenderedFeatures}},[]);var g=(0,h.useMemo)(function(){return e4(e4({},s),{},{eventManager:u,container:s.container||l.current})},[s,l.current]);g.onViewportChange=v,g.viewport=s.viewport||tq(f),f.viewport=g.viewport;var m=function(t){var e=t.isDragging,n=void 0!==e&&e;if(n!==f.state.isDragging&&f.setState({isDragging:n}),d){a=t;return}var r=f.props.onInteractionStateChange;r&&r(t)},b=function(){f.width&&f.height&&c.setOptions(e4(e4(e4({},f.props),f.props.viewState),{},{isInteractive:Boolean(f.props.onViewStateChange||f.props.onViewportChange),onViewportChange:v,onStateChange:m,eventManager:u,width:f.width,height:f.height}))},y=function(t){var e=t.width,n=t.height;f.width=e,f.height=n,b(),f.props.onResize({width:e,height:n})};(0,h.useEffect)(function(){return u.setElement(l.current),u.on({pointerdown:nt.bind(f),pointermove:nn.bind(f),pointerup:ne.bind(f),pointerleave:e9.bind(f,"onMouseOut"),click:nr.bind(f),anyclick:nr.bind(f),dblclick:e9.bind(f,"onDblClick"),wheel:e9.bind(f,"onWheel"),contextmenu:e9.bind(f,"onContextMenu")}),function(){u.destroy()}},[]),tF(function(){if(n){var t;v.apply(void 0,function(t){if(Array.isArray(t))return i(t)}(t=n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||o(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}a&&m(a)}),b();var w=t.width,O=t.height,E=t.style,_=t.getCursor,P=(0,h.useMemo)(function(){return e4(e4({position:"relative"},E),{},{width:w,height:O,cursor:_(f.state)})},[E,w,O,_,f.state]);return n&&f._child||(f._child=h.createElement(tz,{value:g},h.createElement("div",{key:"event-canvas",ref:l,style:P},h.createElement(tK,r({},t,{width:"100%",height:"100%",style:null,onResize:y,ref:p}))))),d=!1,f._child});ni.supported=tK.supported,ni.propTypes=e3,ni.defaultProps=e8;var no=ni;p.string.isRequired,p.string,p.oneOf(["fill","line","symbol","circle","fill-extrusion","raster","background","heatmap","hillshade","sky"]).isRequired,p.string,p.string,p.string;var na={captureScroll:!1,captureDrag:!0,captureClick:!0,captureDoubleClick:!0,capturePointerMove:!1},ns={captureScroll:p.bool,captureDrag:p.bool,captureClick:p.bool,captureDoubleClick:p.bool,capturePointerMove:p.bool};function nc(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,h.useContext)(tN),n=(0,h.useRef)(null),r=(0,h.useRef)({props:t,state:{},context:e,containerRef:n}).current;return r.props=t,r.context=e,(0,h.useEffect)(function(){return function(t){var e=t.containerRef.current,n=t.context.eventManager;if(e&&n){var r={wheel:function(e){var n=t.props;n.captureScroll&&e.stopPropagation(),n.onScroll&&n.onScroll(e,t)},panstart:function(e){var n=t.props;n.captureDrag&&e.stopPropagation(),n.onDragStart&&n.onDragStart(e,t)},anyclick:function(e){var n=t.props;n.captureClick&&e.stopPropagation(),n.onNativeClick&&n.onNativeClick(e,t)},click:function(e){var n=t.props;n.captureClick&&e.stopPropagation(),n.onClick&&n.onClick(e,t)},dblclick:function(e){var n=t.props;n.captureDoubleClick&&e.stopPropagation(),n.onDoubleClick&&n.onDoubleClick(e,t)},pointermove:function(e){var n=t.props;n.capturePointerMove&&e.stopPropagation(),n.onPointerMove&&n.onPointerMove(e,t)}};return n.watch(r,e),function(){n.off(r)}}}(r)},[e.eventManager]),r}function nu(t){var e=t.instance,n=nc(t),r=n.context,i=n.containerRef;return e._context=r,e._containerRef=i,e._render()}var nl=function(t){t0(i,t);var e,n=(e=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}(),function(){var t,n=t4(i);if(e){var r=t4(this).constructor;t=Reflect.construct(n,arguments,r)}else t=n.apply(this,arguments);return t2(this,t)});function i(){var t;tu(this,i);for(var e=arguments.length,r=Array(e),o=0;o2&&void 0!==arguments[2]?arguments[2]:"x";if(null===t)return e;var r="x"===n?t.offsetWidth:t.offsetHeight;return ny(e/100*r)/r*100};function nO(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}var nE=Object.assign({},nf,{className:p.string,longitude:p.number.isRequired,latitude:p.number.isRequired,style:p.object}),n_=Object.assign({},nd,{className:""});function nP(t){var e,n,r,i,o,s,c,u=(n=(e=f((0,h.useState)(null),2))[0],r=e[1],o=(i=f((0,h.useState)(null),2))[0],s=i[1],(c=nc(np(np({},t),{},{onDragStart:nm}))).callbacks=t,c.state.dragPos=n,c.state.setDragPos=r,c.state.dragOffset=o,c.state.setDragOffset=s,(0,h.useEffect)(function(){return function(t){var e=t.context.eventManager;if(e&&t.state.dragPos){var n={panmove:function(e){return function(t,e){var n=e.props,r=e.callbacks,i=e.state,o=e.context;t.stopPropagation();var a=nv(t);i.setDragPos(a);var s=i.dragOffset;if(r.onDrag&&s){var c=Object.assign({},t);c.lngLat=ng(a,s,n,o),r.onDrag(c)}}(e,t)},panend:function(e){return function(t,e){var n=e.props,r=e.callbacks,i=e.state,o=e.context;t.stopPropagation();var a=i.dragPos,s=i.dragOffset;if(i.setDragPos(null),i.setDragOffset(null),r.onDragEnd&&a&&s){var c=Object.assign({},t);c.lngLat=ng(a,s,n,o),r.onDragEnd(c)}}(e,t)},pancancel:function(e){var n;return n=t.state,void(e.stopPropagation(),n.setDragPos(null),n.setDragOffset(null))}};return e.watch(n),function(){e.off(n)}}}(c)},[c.context.eventManager,Boolean(n)]),c),l=u.state,p=u.containerRef,d=t.children,v=t.className,g=t.draggable,m=t.style,b=l.dragPos,y=function(t){var e=t.props,n=t.state,r=t.context,i=e.longitude,o=e.latitude,a=e.offsetLeft,s=e.offsetTop,c=n.dragPos,u=n.dragOffset,l=r.viewport,h=r.map;if(c&&u)return[c[0]+u[0],c[1]+u[1]];var p=tV(h,{longitude:i,latitude:o}),d=f(l.project([i,o,p]),2),v=d[0],g=d[1];return[v+=a,g+=s]}(u),w=f(y,2),O=w[0],E=w[1],_="translate(".concat(ny(O),"px, ").concat(ny(E),"px)"),P=g?b?"grabbing":"grab":"auto",M=(0,h.useMemo)(function(){var t=function(t){for(var e=1;e0){var g=p,m=v;for(p=0;p<=1;p+=.5)d=(f=n-p*a)+a,(v=Math.max(0,u-f)+Math.max(0,d-i+u))0){var E=h,_=O;for(h=0;h<=1;h+=b)w=(y=e-h*o)+o,(O=Math.max(0,u-y)+Math.max(0,w-r+u))<_&&(_=O,E=h);h=E}return nj.find(function(t){var e=nM[t];return e.x===h&&e.y===p})||s}({x:r,y:i,anchor:o,padding:s,width:S.width,height:S.height,selfWidth:e.clientWidth,selfHeight:e.clientHeight}):o),z=(c=M.current,l=(u=f(L,3))[0],p=u[1],d=u[2],v=t.offsetLeft,g=t.offsetTop,m=t.sortByDepth,y=nw(c,-(100*(b=nM[N]).x)),w=nw(c,-(100*b.y),"y"),O={position:"absolute",transform:"\n translate(".concat(y,"%, ").concat(w,"%)\n translate(").concat(ny(l+v),"px, ").concat(ny(p+g),"px)\n "),display:void 0,zIndex:void 0},m&&(d>1||d<-1||l<0||l>S.width||p<0||p>S.height?O.display="none":O.zIndex=Math.floor((1-d)/2*1e5)),O),F=(0,h.useCallback)(function(t){_.props.onClose();var e=_.context.eventManager;e&&e.once("click",function(t){return t.stopPropagation()},t.target)},[]);return h.createElement("div",{className:"mapboxgl-popup mapboxgl-popup-anchor-".concat(N," ").concat(k),style:z,ref:M},h.createElement("div",{key:"tip",className:"mapboxgl-popup-tip",style:{borderWidth:C}}),h.createElement("div",{key:"content",ref:E,className:"mapboxgl-popup-content"},R&&h.createElement("button",{key:"close-button",className:"mapboxgl-popup-close-button",type:"button",onClick:F},"\xd7"),A))}function nx(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}nk.propTypes=nS,nk.defaultProps=nT,h.memo(nk);var nD=Object.assign({},ns,{toggleLabel:p.string,className:p.string,style:p.object,compact:p.bool,customAttribution:p.oneOfType([p.string,p.arrayOf(p.string)])}),nC=Object.assign({},na,{className:"",toggleLabel:"Toggle Attribution"});function nR(t){var e=nc(t),n=e.context,r=e.containerRef,i=(0,h.useRef)(null),o=f((0,h.useState)(!1),2),s=o[0],c=o[1];(0,h.useEffect)(function(){var e,o,a,s,c,u;return n.map&&(o={customAttribution:t.customAttribution},a=n.map,s=r.current,c=i.current,(u=new(tM()).AttributionControl(o))._map=a,u._container=s,u._innerContainer=c,u._updateAttributions(),u._updateEditLink(),a.on("styledata",u._updateData),a.on("sourcedata",u._updateData),e=u),function(){return e&&void(e._map.off("styledata",e._updateData),e._map.off("sourcedata",e._updateData))}},[n.map]);var u=void 0===t.compact?n.viewport.width<=640:t.compact;(0,h.useEffect)(function(){!u&&s&&c(!1)},[u]);var l=(0,h.useCallback)(function(){return c(function(t){return!t})},[]),p=(0,h.useMemo)(function(){return function(t){for(var e=1;ea)return 1}return 0}(o.map.version,"1.6.0")>=0?2:1:2},[o.map]),n=o.viewport.bearing,r={transform:"rotate(".concat(-n,"deg)")},2===e?h.createElement("span",{className:"mapboxgl-ctrl-icon","aria-hidden":"true",style:r}):h.createElement("span",{className:"mapboxgl-ctrl-compass-arrow",style:r})))))}function nG(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}nK.propTypes=nH,nK.defaultProps=nW,h.memo(nK);var n$=Object.assign({},ns,{className:p.string,style:p.object,maxWidth:p.number,unit:p.oneOf(["imperial","metric","nautical"])}),nJ=Object.assign({},na,{className:"",maxWidth:100,unit:"metric"});function nQ(t){var e=nc(t),n=e.context,r=e.containerRef,i=f((0,h.useState)(null),2),o=i[0],s=i[1];(0,h.useEffect)(function(){if(n.map){var t=new(tM()).ScaleControl;t._map=n.map,t._container=r.current,s(t)}},[n.map]),o&&(o.options=t,o._onMove());var c=(0,h.useMemo)(function(){return function(t){for(var e=1;et?n:t}function nm(n,t){return!rL(n,t)}function ny(n,t){return!rk(n,t)}function nC(n){this.b=new iR(n)}function nS(){this.b=(rJ(),uJ)}function nM(){this.b=(ik(),fn)}function nx(n,t){var e;nb(),e=o.b,n?function(n,t,e,r){var i=n.b[r];if(i)for(var o=0,u=i.length;o=t&&n.splice(0,t),n}function tC(n){return nY(n,15)?n:new n9(n)}function tS(){try{null.a()}catch(n){return n}}function tM(n){var t;return(t=new I).d=iZ+n,t.c=1,t}function tx(n,t){return nJ(n)?n.eQ(t):n===t}function tB(n,t){return n.l==t.l&&n.m==t.m&&n.h==t.h}function tA(n,t){return n.l!=t.l||n.m!=t.m||n.h!=t.h}function tN(n,t,e){return(iW=new x).l=n,iW.m=t,iW.h=e,iW}function tI(n,t){return nG(n)===nG(t)||null!=n&&tx(n,t)}function tE(n,t){throw new nf("Index: "+n+", Size: "+t)}function tR(n,t){if(!n)throw new z;this.f=t,tT(this,n)}function tO(n,t){if(!n)throw new z;this.f=t,tT(this,n)}function tD(n,t,e,r){e0.call(this,n,t,e),id(this,r)}function tk(n,t){e0.call(this,n,0,n.length),id(this,t)}function tL(n,t){e0.call(this,er(n),0,n.length),id(this,t)}function tU(n){nr.call(this,"String index out of range: "+n)}function tP(n,t){var e,r;return e=n.b,r=String.fromCharCode(t),e.b+=r,n}function tQ(n,t){rI(n.b,n.b,n.e,t.b,t.e),t3(n),n.c=-2}function tT(n,t){n.d=t,n.b=t.ab(),n.b<54&&(n.g=ra(eL(t)))}function tj(){tj=g,uh=[],ua=[],function(n,t,e){var r,i=0;for(var o in n)(r=n[o])&&(t[i]=o,e[i]=r,++i)}(new M,uh,ua)}function tF(){uI||(uI=!0,new j,new F,function(){if(ng(oD,iZ),u.bigdecimal.BigDecimal)var n=u.bigdecimal.BigDecimal;u.bigdecimal.BigDecimal=fw(function(){1==arguments.length&&null!=arguments[0]&&arguments[0].gC()==fF?this.__gwt_instance=arguments[0]:0==arguments.length&&(this.__gwt_instance=new nw,nl(this.__gwt_instance,this))});var t=u.bigdecimal.BigDecimal.prototype={};if(n)for(p in n)u.bigdecimal.BigDecimal[p]=n[p];u.bigdecimal.BigDecimal.ROUND_CEILING=2,u.bigdecimal.BigDecimal.ROUND_DOWN=1,u.bigdecimal.BigDecimal.ROUND_FLOOR=3,u.bigdecimal.BigDecimal.ROUND_HALF_DOWN=5,u.bigdecimal.BigDecimal.ROUND_HALF_EVEN=6,u.bigdecimal.BigDecimal.ROUND_HALF_UP=4,u.bigdecimal.BigDecimal.ROUND_UNNECESSARY=7,u.bigdecimal.BigDecimal.ROUND_UP=0,u.bigdecimal.BigDecimal.__init__=fw(function(n){var t=function(n){var t,e;if(iV(),(e=iP(n))==of)t=new nj(new nX(n[0].toString()));else if("BigInteger number"==e)t=new tR(new nX(n[0].toString()),n[1]);else if("BigInteger number MathContext"==e)t=new th(new nX(n[0].toString()),n[1],new iR(n[2].toString()));else if("BigInteger MathContext"==e)t=new tn(new nX(n[0].toString()),new iR(n[1].toString()));else if(e==oR)t=new n8(er(n[0].toString()));else if("array number number"==e)t=new e0(er(n[0].toString()),n[1],n[2]);else if("array number number MathContext"==e)t=new tD(er(n[0].toString()),n[1],n[2],new iR(n[3].toString()));else if("array MathContext"==e)t=new tk(er(n[0].toString()),new iR(n[1].toString()));else if(e==oH)t=new eg(n[0]);else if(e==o$)t=new ex(n[0],new iR(n[1].toString()));else if(e==oK)t=new X(n[0].toString());else if("string MathContext"==e)t=new tL(n[0].toString(),new iR(n[1].toString()));else throw new nr("Unknown call signature for obj = new java.math.BigDecimal: "+e);return new nF(t)}(n);return nU(t)}),t.abs_va=fw(function(n){return nU(this.__gwt_instance.s(n))}),t.add_va=fw(function(n){return nU(this.__gwt_instance.t(n))}),t.byteValueExact=fw(function(){return this.__gwt_instance.u()}),t.compareTo=fw(function(n){return this.__gwt_instance.v(n.__gwt_instance)}),t.divide_va=fw(function(n){return nU(this.__gwt_instance.y(n))}),t.divideToIntegralValue_va=fw(function(n){return nU(this.__gwt_instance.x(n))}),t.doubleValue=fw(function(){return this.__gwt_instance.z()}),t.equals=fw(function(n){return this.__gwt_instance.eQ(n)}),t.floatValue=fw(function(){return this.__gwt_instance.A()}),t.hashCode=fw(function(){return this.__gwt_instance.hC()}),t.intValue=fw(function(){return this.__gwt_instance.B()}),t.intValueExact=fw(function(){return this.__gwt_instance.C()}),t.max=fw(function(n){return nU(this.__gwt_instance.F(n.__gwt_instance))}),t.min=fw(function(n){return nU(this.__gwt_instance.G(n.__gwt_instance))}),t.movePointLeft=fw(function(n){return nU(this.__gwt_instance.H(n))}),t.movePointRight=fw(function(n){return nU(this.__gwt_instance.I(n))}),t.multiply_va=fw(function(n){return nU(this.__gwt_instance.J(n))}),t.negate_va=fw(function(n){return nU(this.__gwt_instance.K(n))}),t.plus_va=fw(function(n){return nU(this.__gwt_instance.L(n))}),t.pow_va=fw(function(n){return nU(this.__gwt_instance.M(n))}),t.precision=fw(function(){return this.__gwt_instance.q()}),t.remainder_va=fw(function(n){return nU(this.__gwt_instance.N(n))}),t.round=fw(function(n){return nU(this.__gwt_instance.O(n.__gwt_instance))}),t.scale=fw(function(){return this.__gwt_instance.P()}),t.scaleByPowerOfTen=fw(function(n){return nU(this.__gwt_instance.Q(n))}),t.setScale_va=fw(function(n){return nU(this.__gwt_instance.R(n))}),t.shortValueExact=fw(function(){return this.__gwt_instance.S()}),t.signum=fw(function(){return this.__gwt_instance.r()}),t.stripTrailingZeros=fw(function(){return nU(this.__gwt_instance.T())}),t.subtract_va=fw(function(n){return nU(this.__gwt_instance.U(n))}),t.toBigInteger=fw(function(){return nU(this.__gwt_instance.V())}),t.toBigIntegerExact=fw(function(){return nU(this.__gwt_instance.W())}),t.toEngineeringString=fw(function(){return this.__gwt_instance.X()}),t.toPlainString=fw(function(){return this.__gwt_instance.Y()}),t.toString=fw(function(){return this.__gwt_instance.tS()}),t.ulp=fw(function(){return nU(this.__gwt_instance.Z())}),t.unscaledValue=fw(function(){return nU(this.__gwt_instance.$())}),t.divideAndRemainder_va=fw(function(n){return nP(this.__gwt_instance.w(n))}),t.longValue=fw(function(){return this.__gwt_instance.E()}),t.longValueExact=fw(function(){return this.__gwt_instance.D()}),u.bigdecimal.BigDecimal.valueOf_va=fw(function(n){var t=function(n){var t,e;if(iV(),(e=iP(n))==oH)t=function(n){if(!isFinite(n)||isNaN(n))throw new nd(op);return new X(iZ+n)}(n[0]);else if(e==oH)t=t6(re(n[0]));else if(e==oV)t=eH(re(n[0]),n[1]);else throw new nr("Unknown call signature for bd = java.math.BigDecimal.valueOf: "+e);return new nF(t)}(n);return nU(t)}),u.bigdecimal.BigDecimal.log=fw(function(n){iV(),typeof console!==oW&&console.log&&console.log(n)}),u.bigdecimal.BigDecimal.logObj=fw(function(n){iV(),typeof console!==oW&&console.log&&typeof JSON!==oW&&JSON.stringify&&console.log("object: "+JSON.stringify(n))}),u.bigdecimal.BigDecimal.ONE=fw(function(){var n=(iV(),new nF(uC));return nU(n)}),u.bigdecimal.BigDecimal.TEN=fw(function(){var n=(iV(),new nF(uS));return nU(n)}),u.bigdecimal.BigDecimal.ZERO=fw(function(){var n=(iV(),new nF(uM));return nU(n)}),nx(fF,u.bigdecimal.BigDecimal)}())}function tH(n,t,e){var r;return(r=new I).d=n+t,r.c=4,r.b=e,r}function t$(n,t,e,r,i){var o;return t2(n,t,e,o=function(n,t){var e=Array(t);if(3==n)for(var r=0;r0)for(var i=[null,0,!1][n],r=0;rn)throw new tU(e)}(n.length,t,r),et(n,t,r)}function tq(n,t){return im(),t=n.c.c)throw new J;return t=n.c,r=e=n.b++,i=t.c,(r<0||r>=i)&&tE(r,i),t.b[e]}function tJ(n,t){return!!nY(t,1)&&String(n)==t}function tK(){nr.call(this,"Add not supported on this collection")}function tW(){this.b=[],this.f={},this.d=!1,this.c=null,this.e=0}function tZ(n,t){r4(),this.f=n,this.e=1,this.b=t2(fM,{6:1},-1,[t])}function tX(n,t){var e;return e=n.c,n.c=t,!n.d&&(n.d=!0,++n.e),e}function tY(n,t){var e,r;return e=n.b,r=String.fromCharCode.apply(null,t),e.b+=r,n}function t1(n,t,e,r){var i,o;return null==t&&(t=oF),i=n.b,o=t.substr(e,r-e),i.b+=o,n}function t0(n,t,e,r){var i;return rI(i=t$(fM,{6:1},-1,t,1),n,t,e,r),i}function t2(n,t,e,r){return tj(),function(n,t,e){tj();for(var r=0,i=t.length;r0&&0==n.b[--n.e];);0==n.b[n.e++]&&(n.f=0)}function t6(n){return rL(n,o0)&&nm(n,o5)?ud[nE(n)]:new el(n,0)}function t5(n,t){return 0==t||0==n.f?n:t>0?rt(n,t):r5(n,-t)}function t9(n,t){return 0==t||0==n.f?n:t>0?r5(n,t):rt(n,-t)}function t7(n){var t;return 0==n.f?-1:((t=eC(n))<<5)+ed(n.b[t])}function t8(n){var t;return 0!=(t=nE(n))?ed(t):ed(nE(r2(n,32)))+32}function en(n,t){var e;return 0==(e=eT(n,t)).length?(new _).o(t):ty(e,1)}function et(n,t,e){return n=n.slice(t,e),String.fromCharCode.apply(null,n)}function ee(n,t,e,r){var i;return iv(i=t$(fM,{6:1},-1,t+1,1),n,t,e,r),i}function er(n){var t,e;return t=t$(f2,{6:1},-1,e=n.length,1),function(n,t,e,r){var i;for(i=0;it.e&&(c=t,t=e,e=c),e.e<63)?(b=t,l=e,(_=(g=b.e)+(w=l.e),v=b.f!=l.f?-1:1,2==_)?(S=nE(y=iQ(tp(re(b.b[0]),ue),tp(re(l.b[0]),ue))),0==(C=nE(rV(y,32)))?new tZ(v,S):new tb(v,2,t2(fM,{6:1},-1,[S,C]))):(eY(b.b,g,l.b,w,d=t$(fM,{6:1},-1,_,1)),t3(m=new tb(v,_,d)),m)):(f=(-2&t.e)<<4,h=t.fb(f),a=e.fb(f),i=ip(t,h.eb(f)),o=ip(e,a.eb(f)),s=n(h,a),r=n(i,o),u=(u=iE(iE(u=n(ip(h,i),ip(o,a)),s),r)).eb(f),iE(iE(s=s.eb(f<<1),u),r))}(n,t))}function es(n,t){var e;if(t.f<=0)throw new ni(oh);return(e=rK(n,t)).f<0?iE(e,t):e}function eh(n){var t;t=new n1,n.d&&te(t,new ne(n)),function(n,t){var e=n.f;for(var r in e)if(58==r.charCodeAt(0)){var i=new nO(n,r.substring(1));t.Kb(i)}}(n,t),function(n,t){var e=n.b;for(var r in e){var i=parseInt(r,10);if(r==i)for(var o=e[i],u=0,f=o.length;u0?1:0:(n.d||(n.d=eV(n.g)),n.d).r()}function eM(n){return n.b<54?new ta(-n.g,n.f):new tO((n.d||(n.d=eV(n.g)),n.d).cb(),n.f)}function ex(n,t){if(!isFinite(n)||isNaN(n))throw new nd(op);iq(this,n.toPrecision(20)),id(this,t)}function eB(n,t){return isNaN(n)?isNaN(t)?0:1:isNaN(t)?-1:nt?1:0}function eA(n,t){return t<2||t>36||n<0||n>=t?0:n<10?48+n&65535:97+n-10&65535}function eN(n,t){var e,r;return t?((e=t[oI])||(e=new(r=t.gC(),eo(ea(n.b,r)))(t),t[oI]=e),e):null}function eI(n){var t,e;return 32==(e=rW(n.h))?32==(t=rW(n.m))?rW(n.l)+32:t+20-10:e-12}function eE(n){return tN(4194303&n,~~n>>22&4194303,n<0?1048575:0)}function eR(){eR=g,ub=tN(4194303,4194303,524287),ul=tN(0,0,524288),ug=re(1),re(2),uw=re(0)}function eO(n,t){iv(n.b,n.b,n.e,t.b,t.e),n.e=n_(nv(n.e,t.e)+1,n.b.length),t3(n),n.c=-2}function eD(n,t){var e;e=~~t>>5,n.e+=e+(rW(n.b[n.e-1])-(31&t)>=0?0:1),rE(n.b,n.b,e,31&t),t3(n),n.c=-2}function ek(n,t){var e,r;e=~~t>>5,n.e>>r:0,t3(n))}function eL(n){var t;return t=n.e>1?t_(r$(re(n.b[1]),32),tp(re(n.b[0]),ue)):tp(re(n.b[0]),ue),iQ(re(n.f),t)}function eU(n,t,e){var r;for(r=e-1;r>=0&&n[r]==t[r];--r);return r<0?0:nm(tp(re(n[r]),ue),tp(re(t[r]),ue))?-1:1}function eP(n,t,e){var r,i,o;for(i=0,r=0;i>>31;0!=r&&(n[e]=r)}function eQ(n,t,e,r){if(iK=t,n)try{fw(iN)()}catch(i){n(t)}else fw(iN)()}function eT(n,t){var e,r,i;for(e=0,r=(i=t&&t.stack?t.stack.split("\n"):[]).length;e>5==n.e-1&&n.b[n.e-1]==1<<(31&t))for(e=0;r&&e=0&&t=0?new el(o0,2147483647):new el(o0,-2147483648)}function eV(n){return(r4(),n<0)?-1!=n?new rl(-1,-n):uE:n<=10?uO[eb(n)]:new rl(1,n)}function eq(n){var t,e,r;return t=~n.l+1&4194303,e=~n.m+(0==t?1:0)&4194303,r=~n.h+(0==t&&0==e?1:0)&1048575,tN(t,e,r)}function eG(n){var t,e,r;t=~n.l+1&4194303,e=~n.m+(0==t?1:0)&4194303,r=~n.h+(0==t&&0==e?1:0)&1048575,n.l=t,n.m=e,n.h=r}function ez(n){var t,e,r;for(r=0,e=t$(fE,{6:1},13,n.length,0),t=n.length;r=0;--r)if(n[r]!=i[r]){e=0!=n[r]&&rk(tp(re(n[r]),ue),tp(re(i[r]),ue));break}}return u=new tb(1,o+1,n),e&&tQ(u,t),t3(u),u}(o,e)}function eZ(n,t){var e;return n===t||!!nY(t,17)&&(e=tG(t,17),n.f==e.f&&n.e==e.e&&function(n,t){var e;for(e=n.e-1;e>=0&&n.b[e]==t[e];--e);return e<0}(n,e.b))}function eX(n){var t,e;return 0==n.f?0:(t=n.e<<5,e=n.b[n.e-1],n.f<0&&eC(n)==n.e-1&&(e=~~(e-1)),t-=rW(e))}function eY(n,t,e,r,i){im(),0!=t&&0!=r&&(1==t?i[r]=rw(i,e,r,n[0]):1==r?i[t]=rw(i,n,t,e[0]):function(n,t,e,r,i){var o,u,f,c;if(nG(n)===nG(t)&&r==i){ig(n,r,e);return}for(f=0;f2147483647))return eb(n);throw new ni("Underflow")}function e4(n,t){if(rJ(),n<0)throw new nu("Digits < 0");if(!t)throw new nc("null RoundingMode");this.b=n,this.c=t}function e3(n){return(r4(),nm(n,o0))?tA(n,o1)?new rb(-1,eq(n)):uE:ny(n,o6)?uO[nE(n)]:new rb(1,n)}function e6(n){var t;return nm(n,o0)&&(n=tN(4194303&~n.l,4194303&~n.m,1048575&~n.h)),64-(0!=(t=nE(r2(n,32)))?rW(t):rW(nE(n))+32)}function e5(n,t){var e,r,i;return e=n.l+t.l,r=n.m+t.m+(~~e>>22),i=n.h+t.h+(~~r>>22),tN(4194303&e,4194303&r,1048575&i)}function e9(n,t){var e,r,i;return e=n.l-t.l,r=n.m-t.m+(~~e>>22),i=n.h-t.h+(~~r>>22),tN(4194303&e,4194303&r,1048575&i)}function e7(n,t){var e;if(e=t-1,n.f>0){for(;!n.gb(e);)--e;return t-1-e}for(;n.gb(e);)--e;return t-1-nv(e,n.bb())}function e8(n,t){var e;return n===t||!!nY(t,16)&&(e=tG(t,16)).f==n.f&&(n.b<54?e.g==n.g:n.d.eQ(e.d))}function rn(n,t,e){var r,i,o;for(o=o0,r=t-1;r>=0;--r)i=r8(e5(r$(o,32),tp(re(n[r]),ue)),e),o=re(nE(r2(i,32)));return nE(o)}function rt(n,t){var e,r,i,o;return e=~~t>>5,t&=31,rE(r=t$(fM,{6:1},-1,i=n.e+e+(0==t?0:1),1),n.b,e,t),t3(o=new tb(n.f,i,r)),o}function re(n){var t,e;return n>-129&&n<128?(t=n+128,null==uf&&(uf=t$(fQ,{6:1},2,256,0)),(e=uf[t])||(e=uf[t]=eE(n)),e):eE(n)}function rr(n){var t,e,r;return(r4(),n>5,t=31&n,(r=t$(fM,{6:1},-1,e+1,1))[e]=1<iX&&n[n.length-1]>iX?n:n.replace(/^(\s*)/,iZ).replace(/\s*$/,iZ)}function ru(n){return n-=~~n>>1&1431655765,n=(~~(n=(~~n>>2&858993459)+(858993459&n))>>4)+n&252645135,n+=~~n>>8,63&(n+=~~n>>16)}function rf(n,t,e){if(null!=e&&(n.qI>0&&!n$(e,n.qI)||n.qI<0&&(e.tM==g||nK(e,1))))throw new V;return n[t]=e}function rc(n,t){return n.f>t.f?1:n.ft.e?n.f:n.e=0;--o)u=eW(u,u,r,i),(e.b[~~o>>5]&1<<(31&o))!=0&&(u=eW(u,t,r,i));return u}(f,r,t,e,o):function(n,t,e,r,i){var o,u,f,c,s,h,a;for(s=t$(ci,{6:1},17,8,0),h=n,rf(s,0,t),a=eW(t,t,r,i),u=1;u<=7;++u)rf(s,u,eW(s[u-1],a,r,i));for(u=e.ab()-1;u>=0;--u)if((e.b[~~u>>5]&1<<(31&u))!=0){for(c=1,o=u,f=u-3>0?u-3:0;f<=u-1;++f)(e.b[~~f>>5]&1<<(31&f))!=0&&(f>1],h,r,i),u=o}else h=eW(h,h,r,i);return h}(f,r,t,e,o),eW(u,(r4(),uR),e,o)}function rp(n,t){var e,r,i,o,u;for(e=0,r=n.length;e36)throw new nd("Radix out of range");if(0==n.length)throw new nd("Zero length BigInteger");(function(n,t,e){var r,i,o,u,f,c,s,h,a,b,l,g,w,d;for(s=l=t.length,45==t.charCodeAt(0)?(a=-1,b=1,--l):(a=1,b=0),o=~~(l/(u=(iO(),uV)[e])),0!=(d=l%u)&&++o,c=t$(fM,{6:1},-1,o,1),r=u$[e-2],f=0,g=b+(0==d?u:d),w=b;wr)return 1;if(e=0&&n[i]==t[i];--i);return i<0?0:nm(tp(re(n[i]),ue),tp(re(t[i]),ue))?-1:1}function ry(n,t){var e,r,i;for(r=t$(fM,{6:1},-1,i=n.e,1),n_(eC(n),eC(t)),e=0;e999999999)throw new ni(o_);return e=n.f*t,0==n.b&&-1!=n.g?e$(e):new tR((n.d||(n.d=eV(n.g)),n.d).db(t),e2(e))}function rM(n,t){return t<2||t>36?-1:n>=48&&n<48+(t<10?t:10)?n-48:n>=97&&n=65&&n=0;--n)fl[n]=e,e*=.5;for(n=24,t=1;n>=0;--n)fb[n]=t,t*=.5}function rB(){rB=g,uT=t2(f2,{6:1},-1,[48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122])}function rA(n){var t;return 0!=n.c?n.c:n.b<54?(t=it(n.g),n.c=nE(tp(t,o1)),n.c=33*n.c+nE(tp(r2(t,32),o1)),n.c=17*n.c+eb(n.f),n.c):(n.c=17*n.d.hC()+eb(n.f),n.c)}function rN(n,t,e,r){var i,o,u,f,c;return o=(c=n/t)>0?Math.floor(c):Math.ceil(c),u=n%t,f=eB(n*t,0),0!=u&&(i=eB((u<=0?0-u:u)*2,t<=0?0-t:t),o+=is(1&eb(o),f*(5+i),r)),new ta(o,e)}function rI(n,t,e,r,i){var o,u;for(u=0,o=o0;ue;--i)n[i]|=~~t[i-e-1]>>>o,n[i-1]=t[i-e-1]<>5,n.e-=r,!rj(n.b,n.e,n.b,r,31&t)&&i<0){for(e=0;e>19,r=~~t.h>>19,0==e?0!=r||n.h>t.h||n.h==t.h&&n.m>t.m||n.h==t.h&&n.m==t.m&&n.l>t.l:!(0==r||n.h>19,r=~~t.h>>19,0==e?0!=r||n.h>t.h||n.h==t.h&&n.m>t.m||n.h==t.h&&n.m==t.m&&n.l>=t.l:!(0==r||n.h-140737488355328&&n<0x800000000000?0==n?0:((t=n<0)&&(n=-n),e=eb(nH(Math.log(n)/.6931471805599453)),(!t||n!=Math.pow(2,e))&&++e,e):e6(it(n))}function rQ(n,t){var e,r;return(e=n._(),r=t._(),0==e.r())?r:0==r.r()?e:(1==e.e||2==e.e&&e.b[1]>0)&&(1==r.e||2==r.e&&r.b[1]>0)?e3(rU(eL(e),eL(r))):function(n,t){var e,r,i;e=n.bb(),r=t.bb(),rD(n,e),rD(t,r),1==rc(n,t)&&(i=n,n=t,t=i);do{if(1==t.e||2==t.e&&t.b[1]>0){t=e3(rU(eL(n),eL(t)));break}if(t.e>1.2*n.e)0!=(t=rK(t,n)).r()&&rD(t,t.bb());else do tQ(t,n),rD(t,t.bb());while(rc(t,n)>=0)i=t,t=n,n=i}while(0!=i.f)return t.eb(e=r?eD(f,i):(rD(c,r-e0&&eD(f,i-r+e)),e+=i),0!=(i=e7(a,u))&&(eD(a,i),r>=e?eD(c,i):(rD(f,e-r0&&eD(c,i-e+r)),r+=i),s.r()==a.r()?e<=r?(rX(s,a),rX(f,c)):(rX(a,s),rX(c,f)):e<=r?(rZ(s,a),rZ(f,c)):(rZ(a,s),rZ(c,f)),0==a.r()||0==s.r())throw new ni(os);return ej(a,r)&&(f=c,a.r()!=s.r()&&(s=s.cb())),s.gb(u)&&(f=0>f.r()?f.cb():ip(t,f)),0>f.r()&&(f=iE(f,t)),f}(n,t);for(o=32*t.e,a=ev(t),u=nv((b=ev(n)).e,a.e),c=new tb(1,1,t$(fM,{6:1},-1,u+1,1)),(s=new tb(1,1,t$(fM,{6:1},-1,u+1,1))).b[0]=1,e=0,(r=a.bb())>(i=b.bb())?(rD(a,r),rD(b,i),eD(c,i),e+=r-i):(rD(a,r),rD(b,i),eD(s,r),e+=i-r),c.f=1;b.r()>0;){for(;rc(a,b)>0;)tQ(a,b),h=a.bb(),rD(a,h),eO(c,s),eD(s,h),e+=h;for(;0>=rc(a,b)&&(tQ(b,a),0!=b.r());)h=b.bb(),rD(b,h),eO(s,c),eD(c,h),e+=h}if(!(1==a.e&&1==a.b[0]))throw new ni(os);return rc(c,t)>=0&&tQ(c,t),c=ip(t,c),f=rg(t),e>o&&(c=eW(c,(r4(),uR),t,f),e-=o),c=eW(c,rr(o-e),t,f)}(es(n._(),t),t)).f)throw new ni(os);return n.f<0?ip(t,e):e}function rj(n,t,e,r,i){var o,u,f;for(u=0,o=!0;u>>i|e[u+r+1]<>>i,++u}return o}function rF(n,t){var e;return(e=n.f+t.f,0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)?e$(e):n.b+t.b<54?new ta(n.g*t.g,e2(e)):new tR(ec((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),e2(e))}function rH(n,t){var e;if(t<0)throw new ni("Negative exponent");if(0==t)return uR;if(1==t||n.eQ(uR)||n.eQ(uk))return n;if(!n.gb(0)){for(e=1;!n.gb(e);)++e;return ec(rr(e*t),n.fb(e).db(t))}return function(n,t){var e,r;for(im(),r4(),r=uR,e=n;t>1;t>>=1)(1&t)!=0&&(r=ec(r,e)),e=1==e.e?ec(e,e):new ri(ig(e.b,e.e,t$(fM,{6:1},-1,e.e<<1,1)));return ec(r,e)}(n,t)}function r$(n,t){var e,r,i;return(t&=63)<22?(e=n.l<>22-t,i=n.h<>22-t):t<44?(e=0,r=n.l<>44-t):(e=0,r=0,i=n.l<>>t,i=~~n.m>>t|e<<22-t,r=~~n.l>>t|n.m<<22-t):t<44?(o=0,i=~~e>>>t-22,r=~~n.m>>t-22|n.h<<44-t):(o=0,i=0,r=~~e>>>t-44),tN(4194303&r,4194303&i,1048575&o)}function rq(n){switch(ik(),n){case 2:return u6;case 1:return u5;case 3:return u9;case 5:return u7;case 6:return u8;case 4:return fn;case 7:return ft;case 0:return fe;default:throw new nu("Invalid rounding mode")}}function rG(n,t){var e,r,i;if(0==t)return(1&n.b[0])!=0;if(t<0)throw new ni(om);if((i=~~t>>5)>=n.e)return n.f<0;if(e=n.b[i],t=1<<(31&t),n.f<0){if(i<(r=eC(n)))return!1;e=r==i?-e:~e}return(e&t)!=0}function rz(n){var t,e;return n.e>0||(t=1,e=1,n.b<54?(n.b>=1&&(e=n.g),t+=Math.log(e<=0?0-e:e)*Math.LOG10E):(t+=(n.b-1)*.3010299956639812,0!=i_((n.d||(n.d=eV(n.g)),n.d),iA(t)).r()&&++t),n.e=eb(t)),n.e}function rJ(){rJ=g,uq=new e4(34,(ik(),u8)),uG=new e4(7,u8),uz=new e4(16,u8),uJ=new e4(0,fn),uK=t2(f2,{6:1},-1,[112,114,101,99,105,115,105,111,110,61]),uW=t2(f2,{6:1},-1,[114,111,117,110,100,105,110,103,77,111,100,101,61])}function rK(n,t){var e,r,i,o;if(0==t.f)throw new ni(oc);return((o=n.e)!=(e=t.e)?o>e?1:-1:eU(n.b,t.b,o))==-1?n:(r=t$(fM,{6:1},-1,e,1),1==e?r[0]=rn(n.b,o,t.b[0]):r=iH(null,o-e+1,n.b,o,t.b,e),t3(i=new tb(n.f,e,r)),i)}function rW(n){var t,e,r;return n<0?0:0==n?32:(e=16-(t=~~(r=-(~~n>>16))>>16&16),e+=t=~~(r=(n=~~n>>t)-256)>>16&8,n<<=t,e+=t=~~(r=n-4096)>>16&4,n<<=t,e+=t=~~(r=n-16384)>>16&2,n<<=t,e+2-(t=(r=~~n>>14)&~(~~r>>1)))}function rZ(n,t){if(0==n.f)iD(t.b,0,n.b,0,t.e);else{if(0==t.f)return;n.f==t.f?iv(n.b,n.b,n.e,t.b,t.e):rm(n.b,t.b,n.e,t.e)>0?rI(n.b,n.b,n.e,t.b,t.e):(io(n.b,n.b,n.e,t.b,t.e),n.f=-n.f)}n.e=nv(n.e,t.e)+1,t3(n),n.c=-2}function rX(n,t){var e;e=rc(n,t),0==n.f?(iD(t.b,0,n.b,0,t.e),n.f=-t.f):n.f!=t.f?(iv(n.b,n.b,n.e,t.b,t.e),n.f=e):rm(n.b,t.b,n.e,t.e)>0?rI(n.b,n.b,n.e,t.b,t.e):(io(n.b,n.b,n.e,t.b,t.e),n.f=-n.f),n.e=nv(n.e,t.e)+1,t3(n),n.c=-2}function rY(n,t,e){var r,i,o,u,f,c,s,h,a,b;if(e.f<=0)throw new ni(oh);return(r=n,(1==e.e&&1==e.b[0])|t.f>0&0==r.f)?uk:0==r.f&&0==t.f?uR:(t.f<0&&(r=rT(n,e),t=t.cb()),i=e.gb(0)?rd(r._(),t,e):(o=r._(),u=t,f=e.bb(),h=rd(o,u,c=e.fb(f)),a=function(n,t,e){var r,i,o,u,f;for(r4(),u=uR,i=ev(t),r=ev(n),n.gb(0)&&ek(i,e-1),ek(r,e),o=i.ab()-1;o>=0;--o)ek(f=ev(u),e),u=ec(u,f),(i.b[~~o>>5]&1<<(31&o))!=0&&ek(u=ec(u,r),e);return ek(u,e),u}(o,u,f),s=function(n,t){var e,r,i,o;for(e=1,(r=new ri(t$(fM,{6:1},-1,1<>5]&1<<(31&o))!=0&&(r.b[~~e>>5]|=1<<(31&e));return r}(c,f),ek(b=ec(ip(a,h),s),f),b.f<0&&(b=iE(b,rr(f))),iE(h,ec(c,b))),r.f<0&&t.gb(0)&&(i=es(ec(ip(e,uR),i),e)),i)}function r1(n,t){var e,r,i,o,u,f,c;if(i=eC(n),(r=eC(t))>=n.e)return r4(),uk;for(u=t$(fM,{6:1},-1,f=n.e,1),(e=i>r?i:r)==r&&(u[e]=-t.b[e]&n.b[e],++e),o=n_(t.e,n.e);e=t.e)for(;e0?t:0):t>=0?n.b<54?new ta(n.g,e2(t)):new tR((n.d||(n.d=eV(n.g)),n.d),e2(t)):-t>t,o=~~n.m>>t|e<<22-t,i=~~n.l>>t|n.m<<22-t):t<44?(u=r?1048575:0,o=~~e>>t-22,i=~~n.m>>t-22|e<<44-t):(u=r?1048575:0,o=r?4194303:0,i=~~e>>t-44),tN(4194303&i,4194303&o,1048575&u)}function r4(){var n;for(n=0,r4=g,uR=new tZ(1,1),uD=new tZ(1,10),uk=new tZ(0,0),uE=new tZ(-1,1),uO=t2(ci,{6:1},17,[uk,uR,new tZ(1,2),new tZ(1,3),new tZ(1,4),new tZ(1,5),new tZ(1,6),new tZ(1,7),new tZ(1,8),new tZ(1,9),uD]),uL=t$(ci,{6:1},17,32,0);n=t.e)return t;if(r>=n.e)return n;if(o=t$(fM,{6:1},-1,u=n_(n.e,t.e),1),r==i)o[i]=-(-n.b[i]|-t.b[i]),e=i;else{for(e=r;e>5,t&=31,r>=n.e)return n.f<0?(r4(),uE):(r4(),uk);if(rj(i=t$(fM,{6:1},-1,(o=n.e-r)+1,1),o,n.b,r,t),n.f<0){for(e=0;e0&&n.b[e]<<32-t!=0){for(e=0;e0?r=0)return n;return 0!=e?e>0?rR(n,t,e):rR(t,n,-e):nv(n.b,t.b)+1<54?new ta(n.g+t.g,n.f):new tO(iE((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),n.f)}function r8(n,t){var e,r,i,o,u;return r=tp(re(t),ue),rL(n,o0)?(o=iU(n,r,!1),u=tt(n,r)):(o=iU(e=rV(n,1),i=re(~~t>>>1),!1),u=e5(r$(u=tt(e,i),1),tp(n,o2)),(1&t)!=0&&(rk(o,u)?ny(e9(o,u),r)?(u=e5(u,e9(r,o)),o=e9(o,o2)):(u=e5(u,e9(r$(r,1),o)),o=e9(o,o4)):u=e9(u,o))),t_(r$(u,32),tp(o,ue))}function it(n){var t,e,r,i;return isNaN(n)?(eR(),uw):n<-0x8000000000000000?(eR(),ul):n>=0x7fffffffffffffff?(eR(),ub):(r=!1,n<0&&(r=!0,n=-n),e=0,n>=17592186044416&&(e=eb(n/17592186044416),n-=17592186044416*e),t=0,n>=4194304&&(t=eb(n/4194304),n-=4194304*t),i=tN(eb(n),t,e),r&&eG(i),i)}function ie(n){var t,e,r,i;if(0==n.l&&0==n.m&&0==n.h)return i4;if(524288==n.h&&0==n.m&&0==n.l)return"-9223372036854775808";if(~~n.h>>19!=0)return i0+ie(eq(n));for(e=n,r=iZ;!(0==e.l&&0==e.m&&0==e.h);){if(e=iU(e,re(1e9),!0),t=iZ+nE(uu),!(0==e.l&&0==e.m&&0==e.h))for(i=9-t.length;i>0;--i)t=i4+t;r=t+r}return r}function ir(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m,y,C,S,M,x;if(0==(i=t.f))throw new ni(oc);return(r=t.e,e=t.b,1==r)?(l=e[0],(S=n.b,M=n.e,x=n.f,1==M)?(d=iU(g=tp(re(S[0]),ue),w=tp(re(l),ue),!1),v=tt(g,w),x!=i&&(d=eq(d)),x<0&&(v=eq(v)),t2(ci,{6:1},17,[e3(d),e3(v)])):(_=t$(fM,{6:1},-1,M,1),m=t2(fM,{6:1},-1,[ib(_,S,M,l)]),y=new tb(x==i?1:-1,M,_),C=new tb(x,1,m),t3(y),t3(C),t2(ci,{6:1},17,[y,C]))):(h=n.b,((a=n.e)!=r?a>r?1:-1:eU(h,e,a))<0)?t2(ci,{6:1},17,[uk,n]):(b=n.f,f=iH(o=t$(fM,{6:1},-1,u=a-r+1,1),u,h,a,e,r),c=new tb(b==i?1:-1,u,o),s=new tb(b,r,f),t3(c),t3(s),t2(ci,{6:1},17,[c,s]))}function ii(n){var t;if(0==n.f||0==n.b&&-1!=n.g)return n.d||(n.d=eV(n.g)),n.d;if(n.f<0)return ec((n.d||(n.d=eV(n.g)),n.d),iA(-n.f));if(n.f>(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)||n.f>(n.d||(n.d=eV(n.g)),n.d).bb()||0!=(t=ir((n.d||(n.d=eV(n.g)),n.d),iA(n.f)))[1].r())throw new ni(oy);return t[0]}function io(n,t,e,r,i){var o,u;if(o=o0,e36)throw new nd("radix "+t+" out of range");for(e=(r=n.length)>0&&45==n.charCodeAt(0)?1:0;e2147483647)throw new nd(od+n+iY);return i}function ic(n){var t,e;if(0==n.f)return r4(),uE;if(eZ(n,(r4(),uE)))return uk;if(e=t$(fM,{6:1},-1,n.e+1,1),n.f>0){if(-1!=n.b[n.e-1])for(t=0;-1==n.b[t];++t);else{for(t=0;t0?0==t?0:t<0?-1:1:0;break;case 3:r=(0==t?0:t<0?-1:1)<0?0==t?0:t<0?-1:1:0;break;case 4:(t<0?-t:t)>=5&&(r=0==t?0:t<0?-1:1);break;case 5:(t<0?-t:t)>5&&(r=0==t?0:t<0?-1:1);break;case 6:(t<0?-t:t)+n>5&&(r=0==t?0:t<0?-1:1)}return r}function ih(n,t){var e,r,i,o,u,f,c,s,h;if(s=0==n.f?1:n.f,u=~~t>>5,e=31&t,f=t$(fM,{6:1},-1,c=nv(u+1,n.e)+1,1),r=1<=n.e)f[u]=r;else if(u>(i=eC(n)))f[u]^=r;else if(u=0||0==s.f||1==s.e&&1==s.b[0])if(!(1==(h=rY(s,f,n)).e&&1==h.b[0]||h.eQ(u))){for(i=1;i=0;--f)rL(h=t_(r$(s,32),tp(re(t[f]),ue)),o0)?(c=iU(h,o,!1),s=tt(h,o)):(c=iU(i=rV(h,1),u=re(~~r>>>1),!1),s=e5(r$(s=tt(i,u),1),tp(h,o2)),(1&r)!=0&&(rk(c,s)?ny(e9(c,s),o)?(s=e5(s,e9(o,c)),c=e9(c,o2)):(s=e5(s,e9(r$(o,1),c)),c=e9(c,o4)):s=e9(s,c))),n[f]=nE(tp(c,ue));return nE(s)}function il(n,t){var e,r,i,o,u,f,c;if(u=t$(fM,{6:1},-1,f=nv(n.e,t.e),1),i=eC(n),e=r=eC(t),i==r)u[r]=-n.b[r]^-t.b[r];else{for(u[r]=-t.b[r],o=n_(t.e,i),++e;et.g?1:0:(r=n.f-t.f,(e=(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)-(t.e>0?t.e:nH((t.b-1)*.3010299956639812)+1))>r+1)?i:e0&&(u=ec(u,iA(r))),rc(o,u))}function id(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d;if(o=t.b,!((n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)-o<0||0==o||(r=n.q()-o)<=0)){if(n.b<54){c=n,s=t,w=it(um[h=r]),g=e9(it(c.f),re(h)),l=iU(d=it(c.g),w,!1),tA(b=tt(d,w),o0)&&(a=tB(e9(r$(nm(b,o0)?eq(b):b,1),w),o0)?0:nm(e9(r$(nm(b,o0)?eq(b):b,1),w),o0)?-1:1,l=e5(l,re(is(1&nE(l),(tB(b,o0)?0:nm(b,o0)?-1:1)*(5+a),s.c))),tf(ra(nm(l,o0)?eq(l):l))>=s.b&&(l=nV(l,o6),g=e9(g,o2))),c.f=e2(ra(g)),c.e=s.b,c.g=ra(l),c.b=e6(l),c.d=null;return}f=iA(r),i=ir((n.d||(n.d=eV(n.g)),n.d),f),u=n.f-r,0!=i[1].r()&&(e=rc(eK(i[1]._()),f),0!=(e=is(i[0].gb(0)?1:0,i[1].r()*(5+e),t.c))&&rf(i,0,iE(i[0],e3(re(e)))),new nj(i[0]).q()>o&&(rf(i,0,i_(i[0],(r4(),uD))),--u)),n.f=e2(u),n.e=o,tT(n,i[0])}}function ip(n,t){var e,r,i,o,u,f,c,s,h,a;if(u=n.f,0==(c=t.f))return n;if(0==u)return t.cb();if((o=n.e)+(f=t.e)==2)return e=tp(re(n.b[0]),ue),r=tp(re(t.b[0]),ue),u<0&&(e=eq(e)),c<0&&(r=eq(r)),e3(e9(e,r));if(-1==(i=o!=f?o>f?1:-1:eU(n.b,t.b,o)))a=-c,h=u==c?t0(t.b,f,n.b,o):ee(t.b,f,n.b,o);else if(a=u,u==c){if(0==i)return r4(),uk;h=t0(n.b,o,t.b,f)}else h=ee(n.b,o,t.b,f);return t3(s=new tb(a,h.length,h)),s}function i_(n,t){var e,r,i,o,u,f,c,s,h;if(0==t.f)throw new ni(oc);return(i=t.f,1==t.e&&1==t.b[0])?t.f>0?n:n.cb():(s=n.f,(c=n.e)+(r=t.e)==2)?(h=nV(tp(re(n.b[0]),ue),tp(re(t.b[0]),ue)),s!=i&&(h=eq(h)),e3(h)):0==(e=c!=r?c>r?1:-1:eU(n.b,t.b,c))?s==i?uR:uE:-1==e?uk:(o=t$(fM,{6:1},-1,u=c-r+1,1),1==r?ib(o,n.b,c,t.b[0]):iH(o,u,n.b,c,t.b,r),t3(f=new tb(s==i?1:-1,u,o)),f)}function iv(n,t,e,r,i){var o,u;if(o=e5(tp(re(t[0]),ue),tp(re(r[0]),ue)),n[0]=nE(o),o=r2(o,32),e>=i){for(u=1;u0){if(i0?u=tq(u,eb(i)):i<0&&(o=tq(o,eb(-i))),iS(o,u,e,r)}function iC(n,t){var e,r,i,o,u,f,c;if(r=eC(t),(i=eC(n))>=t.e)return t;if(u=t$(fM,{6:1},-1,f=t.e,1),rt.ab()?(c=eL(s),o=eL(t),i=tB(e9(r$(nm(c,o0)?eq(c):c,1),nm(o,o0)?eq(o):o),o0)?0:nm(e9(r$(nm(c,o0)?eq(c):c,1),nm(o,o0)?eq(o):o),o0)?-1:1,i=is(f.gb(0)?1:0,h*(5+i),r)):(i=rc(eK(s._()),t._()),i=is(f.gb(0)?1:0,h*(5+i),r)),0!=i){if(54>f.ab())return eH(e5(eL(f),re(i)),e);f=iE(f,e3(re(i)))}return new tR(f,e)}function iM(n){var t,e,r,i,o,u;return null!=n.i?n.i:n.b<32?(n.i=function(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m;if(iO(),(u=nm(n,o0))&&(n=eq(n)),tB(n,o0))switch(t){case 0:return i4;case 1:return i6;case 2:return i5;case 3:return i9;case 4:return i7;case 5:return i8;case 6:return on;default:return s=new W,t<0?s.b.b+=oe:s.b.b+=ot,b=s.b,l=-2147483648==t?"2147483648":iZ+-t,b.b+=l,s.b.b}c=t$(f2,{6:1},-1,19,1),e=18,a=n;do f=a,a=nV(a,o6),c[--e]=65535&nE(e5(o7,e9(f,iQ(a,o6))));while(tA(a,o0))if(r=e9(e9(e9(o9,re(e)),re(t)),o2),0==t)return u&&(c[--e]=45),tV(c,e,18-e);if(t>0&&rL(r,oY)){if(rL(r,o0)){for(o=17,i=e+nE(r);o>=i;--o)c[o+1]=c[o];return c[++i]=46,u&&(c[--e]=45),tV(c,e,18-e+1)}for(o=2;nm(re(o),e5(eq(r),o2));++o)c[--e]=48;return c[--e]=46,c[--e]=48,u&&(c[--e]=45),tV(c,e,18-e)}return(h=e+1,s=new Z,u&&(s.b.b+=i0),18-h>=1)?(tP(s,c[e]),s.b.b+=i2,g=s.b,w=tV(c,e+1,18-e-1),g.b+=w):(d=s.b,_=tV(c,e,18-e),d.b+=_),s.b.b+=ow,rk(r,o0)&&(s.b.b+=i1),v=s.b,m=iZ+ie(r),v.b+=m,s.b.b}(it(n.g),eb(n.f)),n.i):(i=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f)?i:(t=0>(n.d||(n.d=eV(n.g)),n.d).r()?2:1,e=i.length,r=-n.f+e-t,u=(o=new W).b,u.b+=i,n.f>0&&r>=-6?r>=0?ti(o,e-eb(n.f),i2):(ts(o.b,t-1,t-1,i3),ti(o,t+1,tV(up,0,-eb(r)-1))):(e-t>=1&&(ts(o.b,t,t,i2),++e),ts(o.b,e,e,ow),r>0&&ti(o,++e,i1),ti(o,++e,iZ+ie(it(r)))),n.i=o.b.b,n.i)}function ix(n,t){var e,r,i,o,u,f;if(i=eC(n),o=eC(t),i>=t.e)return n;if(r=o>i?o:i,0==(e=o>i?-t.b[r]&~n.b[r]:o0){i[o]=u;break}i[o]=u.substring(0,c.index),u=u.substring(c.index+c[0].length,u.length),r.lastIndex=0,f==u&&(i[o]=u.substring(0,1),u=u.substring(1)),f=u,o++}if(0==e&&n.length>0){for(var s=i.length;s>0&&i[s-1]==iZ;)--s;s1e6)throw new ni("power of ten too big");if(n<=2147483647)return uZ[1].db(t).eb(t);for(i=r=uZ[1].db(2147483647),e=it(n-2147483647),t=eb(n%2147483647);rk(e,ut);)i=ec(i,r),e=e9(e,ut);for(i=(i=ec(i,uZ[1].db(t))).eb(2147483647),e=it(n-2147483647);rk(e,ut);)i=i.eb(2147483647),e=e9(e,ut);return i.eb(t)}function iN(){var n,t;c&&rO("com.iriscouch.gwtapp.client.BigDecimalApp"),n4(new K),n6(new j),n3(new F),tF(new H),c&&rO("com.google.gwt.user.client.UserAgentAsserter"),n=-1!=(t=r.userAgent.toLowerCase()).indexOf(oG)?oG:-1!=t.indexOf("webkit")||function(){if(-1!=t.indexOf("chromeframe"))return!0;if(typeof e.ActiveXObject!=oW)try{var n=new ActiveXObject("ChromeTab.ChromeFrame");if(n)return n.registerBhoIfNeeded(),!0}catch(r){}return!1}()?oJ:-1!=t.indexOf(oj)&&f.documentMode>=9?"ie9":-1!=t.indexOf(oj)&&f.documentMode>=8?"ie8":!function(){var n=/msie ([0-9]+)\.([0-9]+)/.exec(t);if(n&&3==n.length)return 1e3*parseInt(n[1])+parseInt(n[2])>=6e3}()?-1!=t.indexOf("gecko")?"gecko1_8":"unknown":"ie6",tJ(oJ,n)||u.alert("ERROR: Possible problem with your *.gwt.xml module file.\nThe compile time user.agent value (safari) does not match the runtime user.agent value ("+n+"). Expect more errors.\n"),c&&rO("com.google.gwt.user.client.DocumentModeAsserter"),function(){var n,t,e;for(e=0,t=f.compatMode,n=t2(fU,{6:1},1,[ob]);e>5,this.b=t$(fM,{6:1},-1,this.e,1);c=2147483648&&(r-=4294967296),r));this.b[this.e-1]>>>=31&-n,t3(this)}}function iE(n,t){var e,r,i,o,u,f,c,s,h,a,b,l;if(u=n.f,c=t.f,0==u)return t;if(0==c)return n;if((o=n.e)+(f=t.e)==2)return(e=tp(re(n.b[0]),ue),r=tp(re(t.b[0]),ue),u==c)?(l=nE(s=e5(e,r)),0==(b=nE(rV(s,32)))?new tZ(u,l):new tb(u,2,t2(fM,{6:1},-1,[l,b]))):e3(u<0?e9(r,e):e9(e,r));if(u==c)a=u,h=o>=f?ee(n.b,o,t.b,f):ee(t.b,f,n.b,o);else{if(0==(i=o!=f?o>f?1:-1:eU(n.b,t.b,o)))return r4(),uk;1==i?(a=u,h=t0(n.b,o,t.b,f)):(a=c,h=t0(t.b,f,n.b,o))}return t3(s=new tb(a,h.length,h)),s}function iR(n){var t,e,r,i;if(rJ(),null==n)throw new nc("null string");if((t=er(n)).length<27||t.length>45)throw new nu(oO);for(r=0;rfs.length)throw new q;if(o=null,i=null,67==r[0]?(i=u6,o=fr):68==r[0]?(i=u5,o=fi):70==r[0]?(i=u9,o=fo):72==r[0]?e>6&&(68==r[5]?(i=u7,o=fu):69==r[5]?(i=u8,o=ff):85==r[5]&&(i=fn,o=fc)):85==r[0]&&(80==r[1]?(i=fe,o=fh):78==r[1]&&(i=ft,o=fs)),i&&e==o.length){for(t=1;tl||r+i>s)throw new G;if(((1&a.c)==0||(4&a.c)!=0)&&b!=c){if(h=tG(n,11),o=tG(e,11),nG(n)===nG(e)&&tr;)rf(o,f,h[--t]);else for(f=r+i;rh.r()&&(s=s.cb()),c=e2(e+(o>u?o:u)),s=(i=o-u)>0?(im(),i>19!=0&&(t=eq(t),c=!0),u=((b=(h=t).l)&b-1)!=0||((l=h.m)&l-1)!=0||((a=h.h)&a-1)!=0||0==a&&0==l&&0==b?-1:0==a&&0==l&&0!=b?ed(b):0==a&&0!=l&&0==b?ed(l)+22:0!=a&&0==l&&0==b?ed(a)+44:-1,o=!1,i=!1,r=!1,524288==n.h&&0==n.m&&0==n.l){if(i=!0,o=!0,-1!=u)return f=r2(n,u),c&&eG(f),e&&(uu=tN(0,0,0)),f;n=nq((eR(),ub)),r=!0,c=!c}else~~n.h>>19!=0&&(o=!0,n=eq(n),r=!0,c=!c);return -1!=u?(g=n,w=c,d=o,_=r2(g,u),w&&eG(_),e&&(v=g,u<=22?(m=v.l&(1<=0&&(!(!((w=(b=n).h-u.h)<0)&&(l=b.l-u.l,!((w+=~~(g=b.m-u.m+(~~l>>22))>>22)<0)&&(b.l=4194303&l,b.m=4194303&g,b.h=1048575&w,1)))||(c<22?f.l|=1<>>1,u.m=~~h>>>1|(1&a)<<21,u.l=~~s>>>1|(1&h)<<21,--c;return e&&eG(f),o&&(r?(uu=eq(n),i&&(uu=e9(uu,(eR(),ug)))):uu=tN(n.l,n.m,n.h)),f}(r?n:tN(n.l,n.m,n.h),t,c,o,i,e):(e&&(uu=o?eq(n):tN(n.l,n.m,n.h)),tN(0,0,0))}function iP(n){var t=[];for(var e in n){var r=typeof n[e];r!=oq?t[t.length]=r:n[e]instanceof Array?t[t.length]=oR:u&&u.bigdecimal&&u.bigdecimal.BigInteger&&n[e]instanceof u.bigdecimal.BigInteger?t[t.length]=of:u&&u.bigdecimal&&u.bigdecimal.BigDecimal&&n[e]instanceof u.bigdecimal.BigDecimal?t[t.length]=oi:u&&u.bigdecimal&&u.bigdecimal.RoundingMode&&n[e]instanceof u.bigdecimal.RoundingMode?t[t.length]=oC:u&&u.bigdecimal&&u.bigdecimal.MathContext&&n[e]instanceof u.bigdecimal.MathContext?t[t.length]=ov:t[t.length]=oq}return t.join(iX)}function iQ(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m;return e=8191&n.l,r=~~n.l>>13|(15&n.m)<<9,i=~~n.m>>4&8191,o=~~n.m>>17|(255&n.h)<<5,u=~~(1048320&n.h)>>8,f=8191&t.l,c=~~t.l>>13|(15&t.m)<<9,s=~~t.m>>4&8191,h=~~t.m>>17|(255&t.h)<<5,a=~~(1048320&t.h)>>8,w=e*f,d=r*f,_=i*f,v=o*f,m=u*f,0!=c&&(d+=e*c,_+=r*c,v+=i*c,m+=o*c),0!=s&&(_+=e*s,v+=r*s,m+=i*s),0!=h&&(v+=e*h,m+=r*h),0!=a&&(m+=e*a),b=(4194303&w)+((511&d)<<13),l=(~~w>>22)+(~~d>>9)+((262143&_)<<4)+((31&v)<<17),g=(~~_>>18)+(~~v>>5)+((4095&m)<<8),l+=~~b>>22,b&=4194303,g+=~~l>>22,tN(b,l&=4194303,g&=1048575)}function iT(n,t,e){var r,i,o,u,f,c,s,h;if(h=ra(e5(re(e.b),o4))+(t.e>0?t.e:nH((t.b-1)*.3010299956639812)+1)-(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1),c=i=n.f-t.f,o=1,f=uA.length-1,s=t2(ci,{6:1},17,[(n.d||(n.d=eV(n.g)),n.d)]),0==e.b||0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)return iL(n,t);if(h>0&&(rf(s,0,ec((n.d||(n.d=eV(n.g)),n.d),iA(h))),c+=h),u=(s=ir(s[0],(t.d||(t.d=eV(t.g)),t.d)))[0],0!=s[1].r())r=rc(eK(s[1]),(t.d||(t.d=eV(t.g)),t.d)),u=iE(ec(u,(r4(),uD)),e3(re(s[0].r()*(5+r)))),++c;else for(;!u.gb(0);)if(0==(s=ir(u,uA[o]))[1].r()&&c-o>=i)c-=o,o=0)return n;return 0==e?nv(n.b,t.b)+1<54?new ta(n.g-t.g,n.f):new tO(ip((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),n.f):e>0?e0?t.e:nH((t.b-1)*.3010299956639812)+1)+o>(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)+1||0==n.b&&-1!=n.g)r4(),r=uk;else if(0==o)r=i_((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d));else if(o>0)u=iA(o),r=i_((n.d||(n.d=eV(n.g)),n.d),ec((t.d||(t.d=eV(t.g)),t.d),u)),r=ec(r,u);else{for(u=iA(-o),r=i_(ec((n.d||(n.d=eV(n.g)),n.d),u),(t.d||(t.d=eV(t.g)),t.d));!r.gb(0);)if(0==(f=ir(r,uA[e]))[1].r()&&c-e>=o)c-=e,e=0;){if(w[a]==c)s=-1;else if(s=nE(m=r8(e5(r$(tp(re(w[a]),ue),32),tp(re(w[a-1]),ue)),c)),v=nE(r2(m,32)),0!=s){_=!1,++s;do{if(--s,_)break;l=iQ(tp(re(s),ue),tp(re(d[o-2]),ue)),y=e5(r$(re(v),32),tp(re(w[a-2]),ue)),32>rW(nE(rV(g=e5(tp(re(v),ue),tp(re(c),ue)),32)))?_=!0:v=nE(g)}while(rk(tv(l,oZ),tv(y,oZ)))}if(0!=s&&0!=function(n,t,e,r,i){var o,u,f;for(f=0,o=o0,u=o0;f0)rf(b,0,i_((n.d||(n.d=eV(n.g)),n.d),ec((t.d||(t.d=eV(t.g)),t.d),iA(o)))),a=o<(h-l+1>0?h-l+1:0)?o:h-l+1>0?h-l+1:0,rf(b,0,ec(b[0],iA(a)));else if(u=-o<(h-i>0?h-i:0)?-o:h-i>0?h-i:0,b=ir(ec((n.d||(n.d=eV(n.g)),n.d),iA(u)),(t.d||(t.d=eV(t.g)),t.d)),a+=u,u=-a,0!=b[1].r()&&u>0&&(0==(r=new nj(b[1]).q()+u-t.q())&&(rf(b,1,i_(ec(b[1],iA(u)),(t.d||(t.d=eV(t.g)),t.d))),r=np(b[1].r())),r>0))throw new ni(og);if(0==b[0].r())return e$(o);for(w=b[0],g=(c=new nj(b[0])).q(),f=1;!w.gb(0);)if(0==(b=ir(w,uA[f]))[1].r()&&(g-f>=h||a-f>=o))g-=f,a-=f,fh)throw new ni(og);return c.f=e2(a),tT(c,w),c}function iz(){var n;for(n=0,iz=g,u0=t2(fM,{6:1},-1,[0,0,1854,1233,927,747,627,543,480,431,393,361,335,314,295,279,265,253,242,232,223,216,181,169,158,150,145,140,136,132,127,123,119,114,110,105,101,96,92,87,83,78,73,69,64,59,54,49,44,38,32,26,1]),u2=t$(ci,{6:1},17,(u4=t2(fM,{6:1},-1,[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021])).length,0);n=0;--c)w=function(n){var t,e,r;return rL(n,o0)?(e=nV(n,un),r=tt(n,un)):(e=nV(t=rV(n,1),o8),r=e5(r$(r=tt(t,o8),1),tp(n,o2))),t_(r$(r,32),tp(e,ue))}(e5(r$(y,32),tp(re(M[c]),ue))),M[c]=nE(w),y=re(nE(r2(w,32)));d=nE(y),g=e;do v[--e]=48+d%10&65535;while(0!=(d=~~(d/10))&&0!=e)for(f=0,r=9-g+e;f0;++f)v[--e]=48;for(h=x-1;0==M[h];--h)if(0==h)break n;x=h+1}for(;48==v[e];)++e}if(a=C<0,o=_-e-t-1,0==t)return a&&(v[--e]=45),tV(v,e,_-e);if(t>0&&o>=-6){if(o>=0){for(s=e+o,h=_-1;h>=s;--h)v[h+1]=v[h];return v[++s]=46,a&&(v[--e]=45),tV(v,e,_-e+1)}for(h=2;h<-o+1;++h)v[--e]=48;return v[--e]=46,v[--e]=48,a&&(v[--e]=45),tV(v,e,_-e)}return(S=e+1,m=new Z,a&&(m.b.b+=i0),_-S>=1)?(tP(m,v[e]),m.b.b+=i2,I=m.b,E=tV(v,e+1,_-e-1),I.b+=E):(R=m.b,O=tV(v,e,_-e),R.b+=O),m.b.b+=ow,o>0&&(m.b.b+=i1),D=m.b,k=iZ+o,D.b+=k,m.b.b}c&&c({moduleName:"gwtapp",sessionId:s,subSystem:"startup",evtGroup:"moduleStartup",millis:new Date().getTime(),type:"moduleEvalStart"});var iK,iW,iZ="",iX=" ",iY='"',i1="+",i0="-",i2=".",i4="0",i3="0.",i6="0.0",i5="0.00",i9="0.000",i7="0.0000",i8="0.00000",on="0.000000",ot="0E",oe="0E+",or=":",oi="BigDecimal",oo="BigDecimal MathContext",ou="BigDecimal;",of="BigInteger",oc="BigInteger divide by zero",os="BigInteger not invertible.",oh="BigInteger: modulus not positive",oa="BigInteger;",ob="CSS1Compat",ol="Division by zero",og="Division impossible",ow="E",od='For input string: "',op="Infinite or NaN",o_="Invalid Operation",ov="MathContext",om="Negative bit address",oy="Rounding necessary",oC="RoundingMode",oS="RoundingMode;",oM="String",ox="[Lcom.iriscouch.gwtapp.client.",oB="[Ljava.lang.",oA="[Ljava.math.",oN="\\.",oI="__gwtex_wrap",oE="anonymous",oR="array",oO="bad string format",oD="bigdecimal",ok="com.google.gwt.core.client.",oL="com.google.gwt.core.client.impl.",oU="com.iriscouch.gwtapp.client.",oP="java.lang.",oQ="java.math.",oT="java.util.",oj="msie",oF="null",oH="number",o$="number MathContext",oV="number number",oq="object",oG="opera",oz="org.timepedia.exporter.client.",oJ="safari",oK="string",oW="undefined",oZ={l:0,m:0,h:524288},oX={l:0,m:4193280,h:1048575},oY={l:4194298,m:4194303,h:1048575},o1={l:4194303,m:4194303,h:1048575},o0={l:0,m:0,h:0},o2={l:1,m:0,h:0},o4={l:2,m:0,h:0},o3={l:5,m:0,h:0},o6={l:10,m:0,h:0},o5={l:11,m:0,h:0},o9={l:18,m:0,h:0},o7={l:48,m:0,h:0},o8={l:877824,m:119,h:0},un={l:1755648,m:238,h:0},ut={l:4194303,m:511,h:0},ue={l:4194303,m:1023,h:0},ur={l:0,m:1024,h:0};(iW=h.prototype={}).eQ=function(n){return this===n},iW.gC=function(){return fd},iW.hC=function(){return nz(this)},iW.tS=function(){return this.gC().d+"@"+function(n){var t,e;if(t=t$(f2,{6:1},-1,8,1),rB(),e=7,n>=0)for(;n>15;)t[e--]=uT[15&n],n>>=4;else for(;e>0;)t[e--]=uT[15&n],n>>=4;return t[e]=uT[15&n],et(t,e,8)}(this.hC())},iW.toString=function(){return this.tS()},iW.tM=g,iW.cM={},(iW=a.prototype=new h).gC=function(){return f_},iW.j=function(){return this.f},iW.tS=function(){var n,t;return n=this.gC().d,null!=(t=this.j())?n+": "+t:n},iW.cM={6:1,15:1},iW.f=null,(iW=b.prototype=new a).gC=function(){return fv},iW.cM={6:1,15:1},(iW=nr.prototype=l.prototype=new b).gC=function(){return fm},iW.cM={6:1,12:1,15:1},(iW=n9.prototype=(function(){}).prototype=new l).gC=function(){return fy},iW.j=function(){var n,t,e,r,i;return null==this.d&&(this.e=null==(e=this.c)?oF:tc(e)?null==(r=eo(e))?null:r.name:nY(e,1)?oM:(nJ(e)?e.gC():fC).d,this.b=tc(n=this.c)?null==(i=eo(n))?null:i.message:n+iZ,this.d="("+this.e+"): "+this.b+(tc(t=this.c)?function(n){var t=iZ;try{for(var e in n)if("name"!=e&&"message"!=e&&"toString"!=e)try{t+="\n "+e+": "+n[e]}catch(r){}}catch(i){}return t}(eo(t)):iZ)),this.d},iW.cM={6:1,12:1,15:1},iW.b=null,iW.c=null,iW.d=null,iW.e=null,(iW=w.prototype=new h).gC=function(){return fS};var ui=0,uo=0;(iW=d.prototype=(function(){}).prototype=new w).gC=function(){return fA},iW.b=null,iW.c=null,(iW=_.prototype=v.prototype=new h).k=function(){for(var n={},t=[],e=arguments.callee.caller.caller;e;){var r,i,o=this.n(e.toString());t.push(o);var u=or+o,f=n[u];if(f){for(r=0,i=f.length;r0?i:oE},iW.gC=function(){return fN},iW.o=function(n){return[]},(iW=m.prototype=new v).k=function(){return ty(this.o(tS()),this.p())},iW.gC=function(){return fR},iW.o=function(n){return eT(this,n)},iW.p=function(){return 2},(iW=y.prototype=(function(){}).prototype=new m).k=function(){return ep(this)},iW.n=function(n){var t,e;return 0==n.length||(0==(e=ro(n)).indexOf("at ")&&(e=tu(e,3)),-1==(t=e.indexOf("["))&&(t=e.indexOf("(")),-1==t)?oE:(-1!=(t=(e=ro(e.substr(0,t-0))).indexOf("."))&&(e=tu(e,t+1)),e.length>0?e:oE)},iW.gC=function(){return fO},iW.o=function(n){return en(this,n)},iW.p=function(){return 3},(iW=C.prototype=new h).gC=function(){return fD},(iW=S.prototype=(function(){}).prototype=new C).gC=function(){return fk},iW.b=iZ,(iW=M.prototype=(function(){}).prototype=new h).gC=function(){return this.aC},iW.aC=null,iW.qI=0;var uu=null,uf=null;(iW=x.prototype=(function(){}).prototype=new h).gC=function(){return fP},iW.cM={2:1},(iW=B.prototype=new h).gC=function(){return fT},iW.cM={6:1,10:1};var uc=null;(iW=el.prototype=ta.prototype=tO.prototype=tL.prototype=X.prototype=ex.prototype=eg.prototype=tk.prototype=tD.prototype=e0.prototype=n8.prototype=tn.prototype=th.prototype=tR.prototype=nj.prototype=A.prototype=new B).eQ=function(n){return e8(this,n)},iW.gC=function(){return fj},iW.hC=function(){return rA(this)},iW.q=function(){return rz(this)},iW.r=function(){return eS(this)},iW.tS=function(){return iM(this)},iW.cM={6:1,8:1,10:1,16:1},iW.b=0,iW.c=0,iW.d=null,iW.e=0,iW.f=0,iW.g=0,iW.i=null;var us,uh,ua,ub,ul,ug,uw,ud,up,u_,uv,um,uy,uC,uS,uM,ux,uB=null,uA=null,uN=null;(iW=nF.prototype=nw.prototype=(function(){}).prototype=new A).s=function(n){var t,e,r;if((e=iP(n))==iZ)t=0>eS(this)?eM(this):this;else if(e==ov)t=0>(r=eu(this,new iR(n[0].toString()))).r()?eM(r):r;else throw new nr("Unknown call signature for interim = super.abs: "+e);return new nF(t)},iW.t=function(n){var t,e;if((e=iP(n))==oi)t=r7(this,new X(n[0].toString()));else if(e==oo)t=function(n,t,e){var r,i,o,u,f;if(r=n.f-t.f,0==t.b&&-1!=t.g||0==n.b&&-1!=n.g||0==e.b)return eu(r7(n,t),e);if((n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)0?t.e:nH((t.b-1)*.3010299956639812)+1)<-r-1))return eu(r7(n,t),e);i=n,u=t}return e.b>=(i.e>0?i.e:nH((i.b-1)*.3010299956639812)+1)?eu(r7(n,t),e):(f=(o=i.r())==u.r()?iE(r3((i.d||(i.d=eV(i.g)),i.d),10),e3(re(o))):iE(r3(f=ip((i.d||(i.d=eV(i.g)),i.d),e3(re(o))),10),e3(re(9*o))),eu(i=new tO(f,i.f+1),e))}(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.add: "+e);return new nF(t)},iW.u=function(){return~~(nE(ef(this,8))<<24)>>24},iW.v=function(n){return iw(this,n)},iW.w=function(n){var t,e,r,i;if((i=iP(n))==oi)e=em(this,new X(n[0].toString()));else if(i==oo)e=ey(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.divideAndRemainder: "+i);for(t=0,r=t$(fH,{6:1},3,e.length,0);t129?n*=1/0:n=ei(iM(this)),n},iW.gC=function(){return fF},iW.hC=function(){return rA(this)},iW.B=function(){return this.f<=-32||this.f>(this.e>0?this.e:nH((this.b-1)*.3010299956639812)+1)?0:nI(new n7(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eV(this.g)),this.d):this.f<0?ec((this.d||(this.d=eV(this.g)),this.d),iA(-this.f)):i_((this.d||(this.d=eV(this.g)),this.d),iA(this.f))))},iW.C=function(){return nE(ef(this,32))},iW.D=function(){return nE(ef(this,32))},iW.E=function(){return ei(iM(this))},iW.F=function(n){return new nF(iw(this,n)>=0?this:n)},iW.G=function(n){return new nF(0>=iw(this,n)?this:n)},iW.H=function(n){return new nF(r0(this,this.f+n))},iW.I=function(n){return new nF(r0(this,this.f-n))},iW.J=function(n){var t,e;if((e=iP(n))==oi)t=rF(this,new X(n[0].toString()));else if(e==oo)t=tm(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.multiply: "+e);return new nF(t)},iW.K=function(n){var t,e;if((e=iP(n))==iZ)t=eM(this);else if(e==ov)t=eM(eu(this,new iR(n[0].toString())));else throw new nr("Unknown call signature for interim = super.negate: "+e);return new nF(t)},iW.L=function(n){var t,e;if((e=iP(n))==iZ)t=this;else if(e==ov)t=eu(this,new iR(n[0].toString()));else throw new nr("Unknown call signature for interim = super.plus: "+e);return new nF(t)},iW.M=function(n){var t,e;if((e=iP(n))==oH)t=rS(this,n[0]);else if(e==o$)t=function(n,t,e){var r,i,o,u,f,c;if(o=t<0?-t:t,u=e.b,i=eb(tf(o))+1,f=e,0==t||0==n.b&&-1!=n.g&&t>0)return rS(n,t);if(o>999999999||0==u&&t<0||u>0&&i>u)throw new ni(o_);for(u>0&&(f=new e4(u+i+1,e.c)),r=eu(n,f),c=~~function(n){var t;if(n<0)return -2147483648;if(0==n)return 0;for(t=1073741824;(t&n)==0;t>>=1);return t}(o)>>1;c>0;)r=tm(r,r,f),(o&c)==c&&(r=tm(r,n,f)),c>>=1;return t<0&&(r=iT(uC,r,f)),id(r,e),r}(this,n[0],new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.pow: "+e);return new nF(t)},iW.q=function(){return rz(this)},iW.N=function(n){var t,e;if((e=iP(n))==oi)t=em(this,new X(n[0].toString()))[1];else if(e==oo)t=ey(this,new X(n[0].toString()),new iR(n[1].toString()))[1];else throw new nr("Unknown call signature for interim = super.remainder: "+e);return new nF(t)},iW.O=function(n){return new nF(eu(this,new iR(e_(n.b))))},iW.P=function(){return eb(this.f)},iW.Q=function(n){var t,e;return new nF((t=this,(e=t.f-n,t.b<54)?0==t.g?e$(e):new ta(t.g,e2(e)):new tR((t.d||(t.d=eV(t.g)),t.d),e2(e))))},iW.R=function(n){var t,e;if((e=iP(n))==oH)t=r9(this,n[0],(ik(),ft));else if(e==oV)t=r9(this,n[0],rq(n[1]));else if("number RoundingMode"==e)t=r9(this,n[0],td(n[1].toString()));else throw new nr("Unknown call signature for interim = super.setScale: "+e);return new nF(t)},iW.S=function(){return~~(nE(ef(this,16))<<16)>>16},iW.r=function(){return eS(this)},iW.T=function(){return new nF(function(n){var t,e,r,i,o;if(t=1,e=uA.length-1,r=n.f,0==n.b&&-1!=n.g)return new X(i4);for(n.d||(n.d=eV(n.g)),o=n.d;!o.gb(0);)if(0==(i=ir(o,uA[t]))[1].r())r-=t,t0?i.e:nH((i.b-1)*.3010299956639812)+1)0?r.e:nH((r.b-1)*.3010299956639812)+1)?(f=(c=eS(r))!=i.r()?iE(r3((r.d||(r.d=eV(r.g)),r.d),10),e3(re(c))):iE(r3(f=ip((r.d||(r.d=eV(r.g)),r.d),e3(re(c))),10),e3(re(9*c))),eu(new tO(f,r.f+1),o)):eu(ij(r,i),o);else throw new nr("Unknown call signature for interim = super.subtract: "+e);return new nF(t)},iW.V=function(){return new n7(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eV(this.g)),this.d):this.f<0?ec((this.d||(this.d=eV(this.g)),this.d),iA(-this.f)):i_((this.d||(this.d=eV(this.g)),this.d),iA(this.f)))},iW.W=function(){return new n7(ii(this))},iW.X=function(){return function(n){var t,e,r,i,o,u,f,c;if(u=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f)return u;if(t=0>(n.d||(n.d=eV(n.g)),n.d).r()?2:1,r=u.length,i=-n.f+r-t,c=new nZ(u),n.f>0&&i>=-6)i>=0?ti(c,r-eb(n.f),i2):(ts(c.b,t-1,t-1,i3),ti(c,t+1,tV(up,0,-eb(i)-1)));else{if(e=r-t,0!=(f=eb(i%3))&&(0==(n.d||(n.d=eV(n.g)),n.d).r()?i+=f=f<0?-f:3-f:(i-=f=f<0?f+3:f,t+=f),e<3))for(o=f-e;o>0;--o)ti(c,r++,i4);r-t>=1&&(ts(c.b,t,t,i2),++r),0!=i&&(ts(c.b,r,r,ow),i>0&&ti(c,++r,i1),ti(c,++r,iZ+ie(it(i))))}return c.b.b}(this)},iW.Y=function(){return function(n){var t,e,r,i;if(r=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f||0==n.b&&-1!=n.g&&n.f<0)return r;if(t=0>eS(n)?1:0,e=n.f,i=new Z(r.length+1+np(eb(n.f))),1==t&&(i.b.b+=i0),n.f>0){if((e-=r.length-t)>=0){for(i.b.b+=i3;e>up.length;e-=up.length)tY(i,up);tr(i,up,eb(e)),nL(i,tu(r,t))}else e=t-e,nL(i,to(r,t,eb(e))),i.b.b+=i2,nL(i,tu(r,eb(e)))}else{for(nL(i,tu(r,t));e<-up.length;e+=up.length)tY(i,up);tr(i,up,eb(-e))}return i.b.b}(this)},iW.tS=function(){return iM(this)},iW.Z=function(){return new nF(new ta(1,this.f))},iW.$=function(){return new n7((this.d||(this.d=eV(this.g)),this.d))},iW.cM={3:1,6:1,8:1,10:1,16:1,24:1},(iW=H.prototype=(function(){}).prototype=new h).gC=function(){return f$};var uI=!1;(iW=rl.prototype=rb.prototype=tb.prototype=ri.prototype=tZ.prototype=r_.prototype=nX.prototype=iI.prototype=N.prototype=new B)._=function(){return this.f<0?new tb(1,this.e,this.b):this},iW.ab=function(){return eX(this)},iW.eQ=function(n){return eZ(this,n)},iW.gC=function(){return fV},iW.bb=function(){return t7(this)},iW.hC=function(){return eF(this)},iW.cb=function(){return 0==this.f?this:new tb(-this.f,this.e,this.b)},iW.db=function(n){return rH(this,n)},iW.eb=function(n){return t5(this,n)},iW.fb=function(n){return t9(this,n)},iW.r=function(){return this.f},iW.gb=function(n){return rG(this,n)},iW.tS=function(){return iJ(this,0)},iW.cM={6:1,8:1,10:1,17:1},iW.b=null,iW.c=-2,iW.d=0,iW.e=0,iW.f=0;var uE,uR,uO,uD,uk,uL=null;(iW=n7.prototype=nQ.prototype=nT.prototype=(function(){}).prototype=new N)._=function(){return new n7(this.f<0?new tb(1,this.e,this.b):this)},iW.hb=function(n){return new n7(iE(this,n))},iW.ib=function(n){return new n7(0==n.f||0==this.f?(r4(),uk):eZ(n,(r4(),uE))?this:eZ(this,uE)?n:this.f>0?n.f>0?function(n,t){var e,r,i,o;if(i=n_(n.e,t.e),(e=nv(eC(n),eC(t)))>=i)return r4(),uk;for(r=t$(fM,{6:1},-1,i,1);e0?r1(n,this):this.e>n.e?ix(this,n):ix(n,this))},iW.jb=function(n){return new n7(0==n.f?this:0==this.f?(r4(),uk):eZ(this,(r4(),uE))?new n7(ic(n)):eZ(n,uE)?uk:this.f>0?n.f>0?function(n,t){var e,r,i,o;for(i=t$(fM,{6:1},-1,n.e,1),r=n_(n.e,t.e),e=eC(n);e=n.e)return n;for(o=t$(fM,{6:1},-1,u=n_(n.e,t.e),1),e=i;e0?function(n,t){var e,r,i,o,u,f,c;if(i=eC(n),o=eC(t),i>=t.e)return n;if(c=nv(n.e,t.e),r=i,o>i){for(f=t$(fM,{6:1},-1,c,1),u=n_(n.e,o);r=t.e)return r4(),uk;if(u=t$(fM,{6:1},-1,f=t.e,1),e=i,i0)for(;e34028234663852886e22?1/0:n<-34028234663852886e22?-1/0:n},iW.qb=function(n){return new n7(rQ(this,n))},iW.gC=function(){return fq},iW.bb=function(){return t7(this)},iW.hC=function(){return eF(this)},iW.B=function(){return nI(this)},iW.rb=function(n){return function(n,t){var e,r;if(iz(),t<=0||1==n.e&&2==n.b[0])return!0;if(!rG(n,0))return!1;if(1==n.e&&(-1024&n.b[0])==0)return function(n,t){var e,r,i,o;for(r=0,e=n.length-1;r<=e;)if((o=n[i=r+(~~(e-r)>>1)])t))return i;e=i-1}return-r-1}(u4,n.b[0])>=0;for(r=1;r>1)?r:1+(~~(t-1)>>1))}(new n7(this.f<0?new tb(1,this.e,this.b):this),n)},iW.sb=function(){return ei(iJ(this,0))},iW.tb=function(n){return new n7(1==rc(this,n)?this:n)},iW.ub=function(n){return new n7(-1==rc(this,n)?this:n)},iW.vb=function(n){return new n7(es(this,n))},iW.wb=function(n){return new n7(rT(this,n))},iW.xb=function(n,t){return new n7(rY(this,n,t))},iW.yb=function(n){return new n7(ec(this,n))},iW.cb=function(){return new n7(0==this.f?this:new tb(-this.f,this.e,this.b))},iW.zb=function(){return new n7(function(n){if(n.f<0)throw new ni("start < 0: "+n);return function(n){var t,e,r,i,o,u,f,c;if(iz(),o=t$(fM,{6:1},-1,u4.length,1),r=t$(fB,{6:1},-1,1024,2),1==n.e&&n.b[0]>=0&&n.b[0]=u4[e];++e);return u2[e]}for(f=new tb(1,n.e,t$(fM,{6:1},-1,n.e+1,1)),iD(n.b,0,f.b,0,n.e),rG(n,0)?t4(f,2):f.b[0]|=1,i=f.ab(),t=2;i0?n.f>0?this.e>n.e?ry(this,n):ry(n,this):iC(this,n):n.f>0?iC(n,this):eC(n)>eC(this)?r6(n,this):r6(this,n))},iW.db=function(n){return new n7(rH(this,n))},iW.Cb=function(n){return new n7(rK(this,n))},iW.Db=function(n){return new n7(rG(this,n)?this:ih(this,n))},iW.eb=function(n){return new n7(t5(this,n))},iW.fb=function(n){return new n7(t9(this,n))},iW.r=function(){return this.f},iW.Eb=function(n){return new n7(ip(this,n))},iW.gb=function(n){return rG(this,n)},iW.Fb=function(n){var t,e;if((e=iP(n))==iZ)t=iJ(this,0);else if(e==oH)t=function(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_;if(iO(),g=n.f,s=n.e,u=n.b,0==g)return i4;if(1==s)return _=tp(re(u[0]),ue),g<0&&(_=eq(_)),function(n,t){var e,r,i;if(10==t||t<2||t>36)return iZ+ie(n);if(e=t$(f2,{6:1},-1,65,1),rB(),r=64,i=re(t),rL(n,o0)){for(;rL(n,i);)e[r--]=uT[nE(tt(n,i))],n=iU(n,i,!1);e[r]=uT[nE(n)]}else{for(;ny(n,eq(i));)e[r--]=uT[nE(eq(tt(n,i)))],n=iU(n,i,!1);e[r--]=uT[nE(eq(n))],e[r]=45}return et(e,r,65)}(_,t);if(10==t||t<2||t>36)return iJ(n,0);if(l=t$(f2,{6:1},-1,b=eb(eX(new n7(n.f<0?new tb(1,n.e,n.b):n))/(Math.log(t)/Math.log(2))+(g<0?1:0))+1,1),i=b,16!=t)for(iD(u,0,w=t$(fM,{6:1},-1,s,1),0,s),d=s,r=uV[t],e=u$[t-2];;){a=ib(w,w,d,e),h=i;do l[--i]=eA(a%t,t);while(0!=(a=~~(a/t))&&0!=i)for(f=0,o=r-h+i;f0;++f)l[--i]=48;for(f=d-1;f>0&&0==w[f];--f);if(1==(d=f+1)&&0==w[0])break}else for(f=0;f0;++c)a=~~u[f]>>(c<<2)&15,l[--i]=eA(a,16);for(;48==l[i];)++i;return -1==g&&(l[--i]=45),tV(l,i,b-i)}(this,n[0]);else throw new nr("Unknown call signature for result = super.toString: "+e);return t},iW.Gb=function(n){return new n7(0==n.f?this:0==this.f?n:eZ(n,(r4(),uE))?new n7(ic(this)):eZ(this,uE)?new n7(ic(n)):this.f>0?n.f>0?this.e>n.e?rC(this,n):rC(n,this):i$(this,n):n.f>0?i$(n,this):eC(n)>eC(this)?il(n,this):il(this,n))},iW.cM={4:1,6:1,8:1,10:1,17:1,24:1},(iW=F.prototype=(function(){}).prototype=new h).gC=function(){return fz};var uU=!1;(iW=nC.prototype=nS.prototype=(function(){}).prototype=new h).gC=function(){return fJ},iW.Hb=function(){return this.b.b},iW.Ib=function(){return new nn(this.b.c)},iW.hC=function(){return nN(this.b)},iW.tS=function(){return e_(this.b)},iW.cM={24:1},iW.b=null,(iW=j.prototype=(function(){}).prototype=new h).gC=function(){return fK};var uP=!1;(iW=nn.prototype=nM.prototype=(function(){}).prototype=new h).gC=function(){return fW},iW.Jb=function(){return this.b.b},iW.tS=function(){return this.b.b},iW.cM={5:1,24:1},iW.b=null,(iW=K.prototype=(function(){}).prototype=new h).gC=function(){return fX};var uQ=!1;(iW=ni.prototype=(function(){}).prototype=new l).gC=function(){return fY},iW.cM={6:1,12:1,15:1},(iW=no.prototype=V.prototype=(function(){}).prototype=new l).gC=function(){return f0},iW.cM={6:1,12:1,15:1},(iW=I.prototype=(function(){}).prototype=new h).gC=function(){return f4},iW.tS=function(){return((2&this.c)!=0?"interface ":(1&this.c)!=0?iZ:"class ")+this.d},iW.b=null,iW.c=0,iW.d=null,(iW=$.prototype=(function(){}).prototype=new l).gC=function(){return f3},iW.cM={6:1,12:1,15:1},(iW=E.prototype=new h).eQ=function(n){return this===n},iW.gC=function(){return fp},iW.hC=function(){return nz(this)},iW.tS=function(){return this.b},iW.cM={6:1,8:1,9:1},iW.b=null,iW.c=0,(iW=nu.prototype=q.prototype=R.prototype=new l).gC=function(){return f6},iW.cM={6:1,12:1,15:1},(iW=nf.prototype=G.prototype=O.prototype=new l).gC=function(){return f1},iW.cM={6:1,12:1,15:1},(iW=nc.prototype=z.prototype=(function(){}).prototype=new l).gC=function(){return f5},iW.cM={6:1,12:1,15:1},(iW=nd.prototype=(function(){}).prototype=new R).gC=function(){return f9},iW.cM={6:1,12:1,15:1},(iW=tl.prototype=(function(){}).prototype=new h).gC=function(){return fI},iW.tS=function(){return this.b+i2+this.d+"(Unknown Source"+(this.c>=0?or+this.c:iZ)+")"},iW.cM={6:1,13:1},iW.b=null,iW.c=0,iW.d=null,(iW=String.prototype).eQ=function(n){return tJ(this,n)},iW.gC=function(){return fL},iW.hC=function(){var n,t;return n0(),null!=(t=uF[n=or+this])?t:(null==(t=uj[n])&&(t=function(n){var t,e,r,i;for(t=0,i=(r=n.length)-4,e=0;et?n:t}function nm(n,t){return!rL(n,t)}function ny(n,t){return!rk(n,t)}function nC(n){this.b=new iR(n)}function nS(){this.b=(rJ(),uJ)}function nM(){this.b=(ik(),fn)}function nx(n,t){var e;nb(),e=o.b,n?function(n,t,e,r){var i=n.b[r];if(i)for(var o=0,u=i.length;o=t&&n.splice(0,t),n}function tC(n){return nY(n,15)?n:new n9(n)}function tS(){try{null.a()}catch(n){return n}}function tM(n){var t;return(t=new I).d=iZ+n,t.c=1,t}function tx(n,t){return nJ(n)?n.eQ(t):n===t}function tB(n,t){return n.l==t.l&&n.m==t.m&&n.h==t.h}function tA(n,t){return n.l!=t.l||n.m!=t.m||n.h!=t.h}function tN(n,t,e){return(iW=new x).l=n,iW.m=t,iW.h=e,iW}function tI(n,t){return nG(n)===nG(t)||null!=n&&tx(n,t)}function tE(n,t){throw new nf("Index: "+n+", Size: "+t)}function tR(n,t){if(!n)throw new z;this.f=t,tT(this,n)}function tO(n,t){if(!n)throw new z;this.f=t,tT(this,n)}function tD(n,t,e,r){e0.call(this,n,t,e),id(this,r)}function tk(n,t){e0.call(this,n,0,n.length),id(this,t)}function tL(n,t){e0.call(this,er(n),0,n.length),id(this,t)}function tU(n){nr.call(this,"String index out of range: "+n)}function tP(n,t){var e,r;return e=n.b,r=String.fromCharCode(t),e.b+=r,n}function tQ(n,t){rI(n.b,n.b,n.e,t.b,t.e),t3(n),n.c=-2}function tT(n,t){n.d=t,n.b=t.ab(),n.b<54&&(n.g=ra(eL(t)))}function tj(){tj=g,uh=[],ua=[],function(n,t,e){var r,i=0;for(var o in n)(r=n[o])&&(t[i]=o,e[i]=r,++i)}(new M,uh,ua)}function tF(){uI||(uI=!0,new j,new F,function(){if(ng(oD,iZ),u.bigdecimal.BigDecimal)var n=u.bigdecimal.BigDecimal;u.bigdecimal.BigDecimal=fw(function(){1==arguments.length&&null!=arguments[0]&&arguments[0].gC()==fF?this.__gwt_instance=arguments[0]:0==arguments.length&&(this.__gwt_instance=new nw,nl(this.__gwt_instance,this))});var t=u.bigdecimal.BigDecimal.prototype={};if(n)for(p in n)u.bigdecimal.BigDecimal[p]=n[p];u.bigdecimal.BigDecimal.ROUND_CEILING=2,u.bigdecimal.BigDecimal.ROUND_DOWN=1,u.bigdecimal.BigDecimal.ROUND_FLOOR=3,u.bigdecimal.BigDecimal.ROUND_HALF_DOWN=5,u.bigdecimal.BigDecimal.ROUND_HALF_EVEN=6,u.bigdecimal.BigDecimal.ROUND_HALF_UP=4,u.bigdecimal.BigDecimal.ROUND_UNNECESSARY=7,u.bigdecimal.BigDecimal.ROUND_UP=0,u.bigdecimal.BigDecimal.__init__=fw(function(n){var t=function(n){var t,e;if(iV(),(e=iP(n))==of)t=new nj(new nX(n[0].toString()));else if("BigInteger number"==e)t=new tR(new nX(n[0].toString()),n[1]);else if("BigInteger number MathContext"==e)t=new th(new nX(n[0].toString()),n[1],new iR(n[2].toString()));else if("BigInteger MathContext"==e)t=new tn(new nX(n[0].toString()),new iR(n[1].toString()));else if(e==oR)t=new n8(er(n[0].toString()));else if("array number number"==e)t=new e0(er(n[0].toString()),n[1],n[2]);else if("array number number MathContext"==e)t=new tD(er(n[0].toString()),n[1],n[2],new iR(n[3].toString()));else if("array MathContext"==e)t=new tk(er(n[0].toString()),new iR(n[1].toString()));else if(e==oH)t=new eg(n[0]);else if(e==o$)t=new ex(n[0],new iR(n[1].toString()));else if(e==oK)t=new X(n[0].toString());else if("string MathContext"==e)t=new tL(n[0].toString(),new iR(n[1].toString()));else throw new nr("Unknown call signature for obj = new java.math.BigDecimal: "+e);return new nF(t)}(n);return nU(t)}),t.abs_va=fw(function(n){return nU(this.__gwt_instance.s(n))}),t.add_va=fw(function(n){return nU(this.__gwt_instance.t(n))}),t.byteValueExact=fw(function(){return this.__gwt_instance.u()}),t.compareTo=fw(function(n){return this.__gwt_instance.v(n.__gwt_instance)}),t.divide_va=fw(function(n){return nU(this.__gwt_instance.y(n))}),t.divideToIntegralValue_va=fw(function(n){return nU(this.__gwt_instance.x(n))}),t.doubleValue=fw(function(){return this.__gwt_instance.z()}),t.equals=fw(function(n){return this.__gwt_instance.eQ(n)}),t.floatValue=fw(function(){return this.__gwt_instance.A()}),t.hashCode=fw(function(){return this.__gwt_instance.hC()}),t.intValue=fw(function(){return this.__gwt_instance.B()}),t.intValueExact=fw(function(){return this.__gwt_instance.C()}),t.max=fw(function(n){return nU(this.__gwt_instance.F(n.__gwt_instance))}),t.min=fw(function(n){return nU(this.__gwt_instance.G(n.__gwt_instance))}),t.movePointLeft=fw(function(n){return nU(this.__gwt_instance.H(n))}),t.movePointRight=fw(function(n){return nU(this.__gwt_instance.I(n))}),t.multiply_va=fw(function(n){return nU(this.__gwt_instance.J(n))}),t.negate_va=fw(function(n){return nU(this.__gwt_instance.K(n))}),t.plus_va=fw(function(n){return nU(this.__gwt_instance.L(n))}),t.pow_va=fw(function(n){return nU(this.__gwt_instance.M(n))}),t.precision=fw(function(){return this.__gwt_instance.q()}),t.remainder_va=fw(function(n){return nU(this.__gwt_instance.N(n))}),t.round=fw(function(n){return nU(this.__gwt_instance.O(n.__gwt_instance))}),t.scale=fw(function(){return this.__gwt_instance.P()}),t.scaleByPowerOfTen=fw(function(n){return nU(this.__gwt_instance.Q(n))}),t.setScale_va=fw(function(n){return nU(this.__gwt_instance.R(n))}),t.shortValueExact=fw(function(){return this.__gwt_instance.S()}),t.signum=fw(function(){return this.__gwt_instance.r()}),t.stripTrailingZeros=fw(function(){return nU(this.__gwt_instance.T())}),t.subtract_va=fw(function(n){return nU(this.__gwt_instance.U(n))}),t.toBigInteger=fw(function(){return nU(this.__gwt_instance.V())}),t.toBigIntegerExact=fw(function(){return nU(this.__gwt_instance.W())}),t.toEngineeringString=fw(function(){return this.__gwt_instance.X()}),t.toPlainString=fw(function(){return this.__gwt_instance.Y()}),t.toString=fw(function(){return this.__gwt_instance.tS()}),t.ulp=fw(function(){return nU(this.__gwt_instance.Z())}),t.unscaledValue=fw(function(){return nU(this.__gwt_instance.$())}),t.divideAndRemainder_va=fw(function(n){return nP(this.__gwt_instance.w(n))}),t.longValue=fw(function(){return this.__gwt_instance.E()}),t.longValueExact=fw(function(){return this.__gwt_instance.D()}),u.bigdecimal.BigDecimal.valueOf_va=fw(function(n){var t=function(n){var t,e;if(iV(),(e=iP(n))==oH)t=function(n){if(!isFinite(n)||isNaN(n))throw new nd(op);return new X(iZ+n)}(n[0]);else if(e==oH)t=t6(re(n[0]));else if(e==oV)t=eH(re(n[0]),n[1]);else throw new nr("Unknown call signature for bd = java.math.BigDecimal.valueOf: "+e);return new nF(t)}(n);return nU(t)}),u.bigdecimal.BigDecimal.log=fw(function(n){iV(),typeof console!==oW&&console.log&&console.log(n)}),u.bigdecimal.BigDecimal.logObj=fw(function(n){iV(),typeof console!==oW&&console.log&&typeof JSON!==oW&&JSON.stringify&&console.log("object: "+JSON.stringify(n))}),u.bigdecimal.BigDecimal.ONE=fw(function(){var n=(iV(),new nF(uC));return nU(n)}),u.bigdecimal.BigDecimal.TEN=fw(function(){var n=(iV(),new nF(uS));return nU(n)}),u.bigdecimal.BigDecimal.ZERO=fw(function(){var n=(iV(),new nF(uM));return nU(n)}),nx(fF,u.bigdecimal.BigDecimal)}())}function tH(n,t,e){var r;return(r=new I).d=n+t,r.c=4,r.b=e,r}function t$(n,t,e,r,i){var o;return t2(n,t,e,o=function(n,t){var e=Array(t);if(3==n)for(var r=0;r0)for(var i=[null,0,!1][n],r=0;rn)throw new tU(e)}(n.length,t,r),et(n,t,r)}function tq(n,t){return im(),t=n.c.c)throw new J;return t=n.c,r=e=n.b++,i=t.c,(r<0||r>=i)&&tE(r,i),t.b[e]}function tJ(n,t){return!!nY(t,1)&&String(n)==t}function tK(){nr.call(this,"Add not supported on this collection")}function tW(){this.b=[],this.f={},this.d=!1,this.c=null,this.e=0}function tZ(n,t){r4(),this.f=n,this.e=1,this.b=t2(fM,{6:1},-1,[t])}function tX(n,t){var e;return e=n.c,n.c=t,!n.d&&(n.d=!0,++n.e),e}function tY(n,t){var e,r;return e=n.b,r=String.fromCharCode.apply(null,t),e.b+=r,n}function t1(n,t,e,r){var i,o;return null==t&&(t=oF),i=n.b,o=t.substr(e,r-e),i.b+=o,n}function t0(n,t,e,r){var i;return rI(i=t$(fM,{6:1},-1,t,1),n,t,e,r),i}function t2(n,t,e,r){return tj(),function(n,t,e){tj();for(var r=0,i=t.length;r0&&0==n.b[--n.e];);0==n.b[n.e++]&&(n.f=0)}function t6(n){return rL(n,o0)&&nm(n,o5)?ud[nE(n)]:new el(n,0)}function t5(n,t){return 0==t||0==n.f?n:t>0?rt(n,t):r5(n,-t)}function t9(n,t){return 0==t||0==n.f?n:t>0?r5(n,t):rt(n,-t)}function t7(n){var t;return 0==n.f?-1:((t=eC(n))<<5)+ed(n.b[t])}function t8(n){var t;return 0!=(t=nE(n))?ed(t):ed(nE(r2(n,32)))+32}function en(n,t){var e;return 0==(e=eT(n,t)).length?(new _).o(t):ty(e,1)}function et(n,t,e){return n=n.slice(t,e),String.fromCharCode.apply(null,n)}function ee(n,t,e,r){var i;return iv(i=t$(fM,{6:1},-1,t+1,1),n,t,e,r),i}function er(n){var t,e;return t=t$(f2,{6:1},-1,e=n.length,1),function(n,t,e,r){var i;for(i=0;it.e&&(c=t,t=e,e=c),e.e<63)?(b=t,l=e,(_=(g=b.e)+(w=l.e),v=b.f!=l.f?-1:1,2==_)?(S=nE(y=iQ(tp(re(b.b[0]),ue),tp(re(l.b[0]),ue))),0==(C=nE(rV(y,32)))?new tZ(v,S):new tb(v,2,t2(fM,{6:1},-1,[S,C]))):(eY(b.b,g,l.b,w,d=t$(fM,{6:1},-1,_,1)),t3(m=new tb(v,_,d)),m)):(f=(-2&t.e)<<4,h=t.fb(f),a=e.fb(f),i=ip(t,h.eb(f)),o=ip(e,a.eb(f)),s=n(h,a),r=n(i,o),u=(u=iE(iE(u=n(ip(h,i),ip(o,a)),s),r)).eb(f),iE(iE(s=s.eb(f<<1),u),r))}(n,t))}function es(n,t){var e;if(t.f<=0)throw new ni(oh);return(e=rK(n,t)).f<0?iE(e,t):e}function eh(n){var t;t=new n1,n.d&&te(t,new ne(n)),function(n,t){var e=n.f;for(var r in e)if(58==r.charCodeAt(0)){var i=new nO(n,r.substring(1));t.Kb(i)}}(n,t),function(n,t){var e=n.b;for(var r in e){var i=parseInt(r,10);if(r==i)for(var o=e[i],u=0,f=o.length;u0?1:0:(n.d||(n.d=eV(n.g)),n.d).r()}function eM(n){return n.b<54?new ta(-n.g,n.f):new tO((n.d||(n.d=eV(n.g)),n.d).cb(),n.f)}function ex(n,t){if(!isFinite(n)||isNaN(n))throw new nd(op);iq(this,n.toPrecision(20)),id(this,t)}function eB(n,t){return isNaN(n)?isNaN(t)?0:1:isNaN(t)?-1:nt?1:0}function eA(n,t){return t<2||t>36||n<0||n>=t?0:n<10?48+n&65535:97+n-10&65535}function eN(n,t){var e,r;return t?((e=t[oI])||(e=new(r=t.gC(),eo(ea(n.b,r)))(t),t[oI]=e),e):null}function eI(n){var t,e;return 32==(e=rW(n.h))?32==(t=rW(n.m))?rW(n.l)+32:t+20-10:e-12}function eE(n){return tN(4194303&n,~~n>>22&4194303,n<0?1048575:0)}function eR(){eR=g,ub=tN(4194303,4194303,524287),ul=tN(0,0,524288),ug=re(1),re(2),uw=re(0)}function eO(n,t){iv(n.b,n.b,n.e,t.b,t.e),n.e=n_(nv(n.e,t.e)+1,n.b.length),t3(n),n.c=-2}function eD(n,t){var e;e=~~t>>5,n.e+=e+(rW(n.b[n.e-1])-(31&t)>=0?0:1),rE(n.b,n.b,e,31&t),t3(n),n.c=-2}function ek(n,t){var e,r;e=~~t>>5,n.e>>r:0,t3(n))}function eL(n){var t;return t=n.e>1?t_(r$(re(n.b[1]),32),tp(re(n.b[0]),ue)):tp(re(n.b[0]),ue),iQ(re(n.f),t)}function eU(n,t,e){var r;for(r=e-1;r>=0&&n[r]==t[r];--r);return r<0?0:nm(tp(re(n[r]),ue),tp(re(t[r]),ue))?-1:1}function eP(n,t,e){var r,i,o;for(i=0,r=0;i>>31;0!=r&&(n[e]=r)}function eQ(n,t,e,r){if(iK=t,n)try{fw(iN)()}catch(i){n(t)}else fw(iN)()}function eT(n,t){var e,r,i;for(e=0,r=(i=t&&t.stack?t.stack.split("\n"):[]).length;e>5==n.e-1&&n.b[n.e-1]==1<<(31&t))for(e=0;r&&e=0&&t=0?new el(o0,2147483647):new el(o0,-2147483648)}function eV(n){return(r4(),n<0)?-1!=n?new rl(-1,-n):uE:n<=10?uO[eb(n)]:new rl(1,n)}function eq(n){var t,e,r;return t=~n.l+1&4194303,e=~n.m+(0==t?1:0)&4194303,r=~n.h+(0==t&&0==e?1:0)&1048575,tN(t,e,r)}function eG(n){var t,e,r;t=~n.l+1&4194303,e=~n.m+(0==t?1:0)&4194303,r=~n.h+(0==t&&0==e?1:0)&1048575,n.l=t,n.m=e,n.h=r}function ez(n){var t,e,r;for(r=0,e=t$(fE,{6:1},13,n.length,0),t=n.length;r=0;--r)if(n[r]!=i[r]){e=0!=n[r]&&rk(tp(re(n[r]),ue),tp(re(i[r]),ue));break}}return u=new tb(1,o+1,n),e&&tQ(u,t),t3(u),u}(o,e)}function eZ(n,t){var e;return n===t||!!nY(t,17)&&(e=tG(t,17),n.f==e.f&&n.e==e.e&&function(n,t){var e;for(e=n.e-1;e>=0&&n.b[e]==t[e];--e);return e<0}(n,e.b))}function eX(n){var t,e;return 0==n.f?0:(t=n.e<<5,e=n.b[n.e-1],n.f<0&&eC(n)==n.e-1&&(e=~~(e-1)),t-=rW(e))}function eY(n,t,e,r,i){im(),0!=t&&0!=r&&(1==t?i[r]=rw(i,e,r,n[0]):1==r?i[t]=rw(i,n,t,e[0]):function(n,t,e,r,i){var o,u,f,c;if(nG(n)===nG(t)&&r==i){ig(n,r,e);return}for(f=0;f2147483647))return eb(n);throw new ni("Underflow")}function e4(n,t){if(rJ(),n<0)throw new nu("Digits < 0");if(!t)throw new nc("null RoundingMode");this.b=n,this.c=t}function e3(n){return(r4(),nm(n,o0))?tA(n,o1)?new rb(-1,eq(n)):uE:ny(n,o6)?uO[nE(n)]:new rb(1,n)}function e6(n){var t;return nm(n,o0)&&(n=tN(4194303&~n.l,4194303&~n.m,1048575&~n.h)),64-(0!=(t=nE(r2(n,32)))?rW(t):rW(nE(n))+32)}function e5(n,t){var e,r,i;return e=n.l+t.l,r=n.m+t.m+(~~e>>22),i=n.h+t.h+(~~r>>22),tN(4194303&e,4194303&r,1048575&i)}function e9(n,t){var e,r,i;return e=n.l-t.l,r=n.m-t.m+(~~e>>22),i=n.h-t.h+(~~r>>22),tN(4194303&e,4194303&r,1048575&i)}function e7(n,t){var e;if(e=t-1,n.f>0){for(;!n.gb(e);)--e;return t-1-e}for(;n.gb(e);)--e;return t-1-nv(e,n.bb())}function e8(n,t){var e;return n===t||!!nY(t,16)&&(e=tG(t,16)).f==n.f&&(n.b<54?e.g==n.g:n.d.eQ(e.d))}function rn(n,t,e){var r,i,o;for(o=o0,r=t-1;r>=0;--r)i=r8(e5(r$(o,32),tp(re(n[r]),ue)),e),o=re(nE(r2(i,32)));return nE(o)}function rt(n,t){var e,r,i,o;return e=~~t>>5,t&=31,rE(r=t$(fM,{6:1},-1,i=n.e+e+(0==t?0:1),1),n.b,e,t),t3(o=new tb(n.f,i,r)),o}function re(n){var t,e;return n>-129&&n<128?(t=n+128,null==uf&&(uf=t$(fQ,{6:1},2,256,0)),(e=uf[t])||(e=uf[t]=eE(n)),e):eE(n)}function rr(n){var t,e,r;return(r4(),n>5,t=31&n,(r=t$(fM,{6:1},-1,e+1,1))[e]=1<iX&&n[n.length-1]>iX?n:n.replace(/^(\s*)/,iZ).replace(/\s*$/,iZ)}function ru(n){return n-=~~n>>1&1431655765,n=(~~(n=(~~n>>2&858993459)+(858993459&n))>>4)+n&252645135,n+=~~n>>8,63&(n+=~~n>>16)}function rf(n,t,e){if(null!=e&&(n.qI>0&&!n$(e,n.qI)||n.qI<0&&(e.tM==g||nK(e,1))))throw new V;return n[t]=e}function rc(n,t){return n.f>t.f?1:n.ft.e?n.f:n.e=0;--o)u=eW(u,u,r,i),(e.b[~~o>>5]&1<<(31&o))!=0&&(u=eW(u,t,r,i));return u}(f,r,t,e,o):function(n,t,e,r,i){var o,u,f,c,s,h,a;for(s=t$(ci,{6:1},17,8,0),h=n,rf(s,0,t),a=eW(t,t,r,i),u=1;u<=7;++u)rf(s,u,eW(s[u-1],a,r,i));for(u=e.ab()-1;u>=0;--u)if((e.b[~~u>>5]&1<<(31&u))!=0){for(c=1,o=u,f=u-3>0?u-3:0;f<=u-1;++f)(e.b[~~f>>5]&1<<(31&f))!=0&&(f>1],h,r,i),u=o}else h=eW(h,h,r,i);return h}(f,r,t,e,o),eW(u,(r4(),uR),e,o)}function rp(n,t){var e,r,i,o;for(e=0,r=n.length;e36)throw new nd("Radix out of range");if(0==n.length)throw new nd("Zero length BigInteger");(function(n,t,e){var r,i,o,u,f,c,s,h,a,b,l,g,w,d;for(s=l=t.length,45==t.charCodeAt(0)?(a=-1,b=1,--l):(a=1,b=0),o=~~(l/(u=(iO(),uV)[e])),0!=(d=l%u)&&++o,c=t$(fM,{6:1},-1,o,1),r=u$[e-2],f=0,g=b+(0==d?u:d),w=b;wr)return 1;if(e=0&&n[i]==t[i];--i);return i<0?0:nm(tp(re(n[i]),ue),tp(re(t[i]),ue))?-1:1}function ry(n,t){var e,r,i;for(r=t$(fM,{6:1},-1,i=n.e,1),n_(eC(n),eC(t)),e=0;e999999999)throw new ni(o_);return e=n.f*t,0==n.b&&-1!=n.g?e$(e):new tR((n.d||(n.d=eV(n.g)),n.d).db(t),e2(e))}function rM(n,t){return t<2||t>36?-1:n>=48&&n<48+(t<10?t:10)?n-48:n>=97&&n=65&&n=0;--n)fl[n]=e,e*=.5;for(n=24,t=1;n>=0;--n)fb[n]=t,t*=.5}function rB(){rB=g,uT=t2(f2,{6:1},-1,[48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122])}function rA(n){var t;return 0!=n.c?n.c:n.b<54?(t=it(n.g),n.c=nE(tp(t,o1)),n.c=33*n.c+nE(tp(r2(t,32),o1)),n.c=17*n.c+eb(n.f),n.c):(n.c=17*n.d.hC()+eb(n.f),n.c)}function rN(n,t,e,r){var i,o,u,f,c;return o=(c=n/t)>0?Math.floor(c):Math.ceil(c),u=n%t,f=eB(n*t,0),0!=u&&(i=eB((u<=0?0-u:u)*2,t<=0?0-t:t),o+=is(1&eb(o),f*(5+i),r)),new ta(o,e)}function rI(n,t,e,r,i){var o,u;for(u=0,o=o0;ue;--i)n[i]|=~~t[i-e-1]>>>o,n[i-1]=t[i-e-1]<>5,n.e-=r,!rj(n.b,n.e,n.b,r,31&t)&&i<0){for(e=0;e>19,r=~~t.h>>19,0==e?0!=r||n.h>t.h||n.h==t.h&&n.m>t.m||n.h==t.h&&n.m==t.m&&n.l>t.l:!(0==r||n.h>19,r=~~t.h>>19,0==e?0!=r||n.h>t.h||n.h==t.h&&n.m>t.m||n.h==t.h&&n.m==t.m&&n.l>=t.l:!(0==r||n.h-140737488355328&&n<0x800000000000?0==n?0:((t=n<0)&&(n=-n),e=eb(nH(Math.log(n)/.6931471805599453)),(!t||n!=Math.pow(2,e))&&++e,e):e6(it(n))}function rQ(n,t){var e,r;return(e=n._(),r=t._(),0==e.r())?r:0==r.r()?e:(1==e.e||2==e.e&&e.b[1]>0)&&(1==r.e||2==r.e&&r.b[1]>0)?e3(rU(eL(e),eL(r))):function(n,t){var e,r,i;e=n.bb(),r=t.bb(),rD(n,e),rD(t,r),1==rc(n,t)&&(i=n,n=t,t=i);do{if(1==t.e||2==t.e&&t.b[1]>0){t=e3(rU(eL(n),eL(t)));break}if(t.e>1.2*n.e)0!=(t=rK(t,n)).r()&&rD(t,t.bb());else do tQ(t,n),rD(t,t.bb());while(rc(t,n)>=0)i=t,t=n,n=i}while(0!=i.f)return t.eb(e=r?eD(f,i):(rD(c,r-e0&&eD(f,i-r+e)),e+=i),0!=(i=e7(a,u))&&(eD(a,i),r>=e?eD(c,i):(rD(f,e-r0&&eD(c,i-e+r)),r+=i),s.r()==a.r()?e<=r?(rX(s,a),rX(f,c)):(rX(a,s),rX(c,f)):e<=r?(rZ(s,a),rZ(f,c)):(rZ(a,s),rZ(c,f)),0==a.r()||0==s.r())throw new ni(os);return ej(a,r)&&(f=c,a.r()!=s.r()&&(s=s.cb())),s.gb(u)&&(f=0>f.r()?f.cb():ip(t,f)),0>f.r()&&(f=iE(f,t)),f}(n,t);for(o=32*t.e,a=ev(t),u=nv((b=ev(n)).e,a.e),c=new tb(1,1,t$(fM,{6:1},-1,u+1,1)),(s=new tb(1,1,t$(fM,{6:1},-1,u+1,1))).b[0]=1,e=0,(r=a.bb())>(i=b.bb())?(rD(a,r),rD(b,i),eD(c,i),e+=r-i):(rD(a,r),rD(b,i),eD(s,r),e+=i-r),c.f=1;b.r()>0;){for(;rc(a,b)>0;)tQ(a,b),h=a.bb(),rD(a,h),eO(c,s),eD(s,h),e+=h;for(;0>=rc(a,b)&&(tQ(b,a),0!=b.r());)h=b.bb(),rD(b,h),eO(s,c),eD(c,h),e+=h}if(!(1==a.e&&1==a.b[0]))throw new ni(os);return rc(c,t)>=0&&tQ(c,t),c=ip(t,c),f=rg(t),e>o&&(c=eW(c,(r4(),uR),t,f),e-=o),c=eW(c,rr(o-e),t,f)}(es(n._(),t),t)).f)throw new ni(os);return n.f<0?ip(t,e):e}function rj(n,t,e,r,i){var o,u,f;for(u=0,o=!0;u>>i|e[u+r+1]<>>i,++u}return o}function rF(n,t){var e;return(e=n.f+t.f,0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)?e$(e):n.b+t.b<54?new ta(n.g*t.g,e2(e)):new tR(ec((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),e2(e))}function rH(n,t){var e;if(t<0)throw new ni("Negative exponent");if(0==t)return uR;if(1==t||n.eQ(uR)||n.eQ(uk))return n;if(!n.gb(0)){for(e=1;!n.gb(e);)++e;return ec(rr(e*t),n.fb(e).db(t))}return function(n,t){var e,r;for(im(),r4(),r=uR,e=n;t>1;t>>=1)(1&t)!=0&&(r=ec(r,e)),e=1==e.e?ec(e,e):new ri(ig(e.b,e.e,t$(fM,{6:1},-1,e.e<<1,1)));return ec(r,e)}(n,t)}function r$(n,t){var e,r,i;return(t&=63)<22?(e=n.l<>22-t,i=n.h<>22-t):t<44?(e=0,r=n.l<>44-t):(e=0,r=0,i=n.l<>>t,i=~~n.m>>t|e<<22-t,r=~~n.l>>t|n.m<<22-t):t<44?(o=0,i=~~e>>>t-22,r=~~n.m>>t-22|n.h<<44-t):(o=0,i=0,r=~~e>>>t-44),tN(4194303&r,4194303&i,1048575&o)}function rq(n){switch(ik(),n){case 2:return u6;case 1:return u5;case 3:return u9;case 5:return u7;case 6:return u8;case 4:return fn;case 7:return ft;case 0:return fe;default:throw new nu("Invalid rounding mode")}}function rG(n,t){var e,r,i;if(0==t)return(1&n.b[0])!=0;if(t<0)throw new ni(om);if((i=~~t>>5)>=n.e)return n.f<0;if(e=n.b[i],t=1<<(31&t),n.f<0){if(i<(r=eC(n)))return!1;e=r==i?-e:~e}return(e&t)!=0}function rz(n){var t,e;return n.e>0||(t=1,e=1,n.b<54?(n.b>=1&&(e=n.g),t+=Math.log(e<=0?0-e:e)*Math.LOG10E):(t+=(n.b-1)*.3010299956639812,0!=i_((n.d||(n.d=eV(n.g)),n.d),iA(t)).r()&&++t),n.e=eb(t)),n.e}function rJ(){rJ=g,uq=new e4(34,(ik(),u8)),uG=new e4(7,u8),uz=new e4(16,u8),uJ=new e4(0,fn),uK=t2(f2,{6:1},-1,[112,114,101,99,105,115,105,111,110,61]),uW=t2(f2,{6:1},-1,[114,111,117,110,100,105,110,103,77,111,100,101,61])}function rK(n,t){var e,r,i,o;if(0==t.f)throw new ni(oc);return((o=n.e)!=(e=t.e)?o>e?1:-1:eU(n.b,t.b,o))==-1?n:(r=t$(fM,{6:1},-1,e,1),1==e?r[0]=rn(n.b,o,t.b[0]):r=iH(null,o-e+1,n.b,o,t.b,e),t3(i=new tb(n.f,e,r)),i)}function rW(n){var t,e,r;return n<0?0:0==n?32:(e=16-(t=~~(r=-(~~n>>16))>>16&16),e+=t=~~(r=(n=~~n>>t)-256)>>16&8,n<<=t,e+=t=~~(r=n-4096)>>16&4,n<<=t,e+=t=~~(r=n-16384)>>16&2,n<<=t,e+2-(t=(r=~~n>>14)&~(~~r>>1)))}function rZ(n,t){if(0==n.f)iD(t.b,0,n.b,0,t.e);else{if(0==t.f)return;n.f==t.f?iv(n.b,n.b,n.e,t.b,t.e):rm(n.b,t.b,n.e,t.e)>0?rI(n.b,n.b,n.e,t.b,t.e):(io(n.b,n.b,n.e,t.b,t.e),n.f=-n.f)}n.e=nv(n.e,t.e)+1,t3(n),n.c=-2}function rX(n,t){var e;e=rc(n,t),0==n.f?(iD(t.b,0,n.b,0,t.e),n.f=-t.f):n.f!=t.f?(iv(n.b,n.b,n.e,t.b,t.e),n.f=e):rm(n.b,t.b,n.e,t.e)>0?rI(n.b,n.b,n.e,t.b,t.e):(io(n.b,n.b,n.e,t.b,t.e),n.f=-n.f),n.e=nv(n.e,t.e)+1,t3(n),n.c=-2}function rY(n,t,e){var r,i,o,u,f,c,s,h,a,b;if(e.f<=0)throw new ni(oh);return(r=n,(1==e.e&&1==e.b[0])|t.f>0&0==r.f)?uk:0==r.f&&0==t.f?uR:(t.f<0&&(r=rT(n,e),t=t.cb()),i=e.gb(0)?rd(r._(),t,e):(o=r._(),u=t,f=e.bb(),h=rd(o,u,c=e.fb(f)),a=function(n,t,e){var r,i,o,u,f;for(r4(),u=uR,i=ev(t),r=ev(n),n.gb(0)&&ek(i,e-1),ek(r,e),o=i.ab()-1;o>=0;--o)ek(f=ev(u),e),u=ec(u,f),(i.b[~~o>>5]&1<<(31&o))!=0&&ek(u=ec(u,r),e);return ek(u,e),u}(o,u,f),s=function(n,t){var e,r,i,o;for(e=1,(r=new ri(t$(fM,{6:1},-1,1<>5]&1<<(31&o))!=0&&(r.b[~~e>>5]|=1<<(31&e));return r}(c,f),ek(b=ec(ip(a,h),s),f),b.f<0&&(b=iE(b,rr(f))),iE(h,ec(c,b))),r.f<0&&t.gb(0)&&(i=es(ec(ip(e,uR),i),e)),i)}function r1(n,t){var e,r,i,o,u,f,c;if(i=eC(n),(r=eC(t))>=n.e)return r4(),uk;for(u=t$(fM,{6:1},-1,f=n.e,1),(e=i>r?i:r)==r&&(u[e]=-t.b[e]&n.b[e],++e),o=n_(t.e,n.e);e=t.e)for(;e0?t:0):t>=0?n.b<54?new ta(n.g,e2(t)):new tR((n.d||(n.d=eV(n.g)),n.d),e2(t)):-t>t,o=~~n.m>>t|e<<22-t,i=~~n.l>>t|n.m<<22-t):t<44?(u=r?1048575:0,o=~~e>>t-22,i=~~n.m>>t-22|e<<44-t):(u=r?1048575:0,o=r?4194303:0,i=~~e>>t-44),tN(4194303&i,4194303&o,1048575&u)}function r4(){var n;for(n=0,r4=g,uR=new tZ(1,1),uD=new tZ(1,10),uk=new tZ(0,0),uE=new tZ(-1,1),uO=t2(ci,{6:1},17,[uk,uR,new tZ(1,2),new tZ(1,3),new tZ(1,4),new tZ(1,5),new tZ(1,6),new tZ(1,7),new tZ(1,8),new tZ(1,9),uD]),uL=t$(ci,{6:1},17,32,0);n=t.e)return t;if(r>=n.e)return n;if(o=t$(fM,{6:1},-1,u=n_(n.e,t.e),1),r==i)o[i]=-(-n.b[i]|-t.b[i]),e=i;else{for(e=r;e>5,t&=31,r>=n.e)return n.f<0?(r4(),uE):(r4(),uk);if(rj(i=t$(fM,{6:1},-1,(o=n.e-r)+1,1),o,n.b,r,t),n.f<0){for(e=0;e0&&n.b[e]<<32-t!=0){for(e=0;e0?r=0)return n;return 0!=e?e>0?rR(n,t,e):rR(t,n,-e):nv(n.b,t.b)+1<54?new ta(n.g+t.g,n.f):new tO(iE((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),n.f)}function r8(n,t){var e,r,i,o,u;return r=tp(re(t),ue),rL(n,o0)?(o=iU(n,r,!1),u=tt(n,r)):(o=iU(e=rV(n,1),i=re(~~t>>>1),!1),u=e5(r$(u=tt(e,i),1),tp(n,o2)),(1&t)!=0&&(rk(o,u)?ny(e9(o,u),r)?(u=e5(u,e9(r,o)),o=e9(o,o2)):(u=e5(u,e9(r$(r,1),o)),o=e9(o,o4)):u=e9(u,o))),t_(r$(u,32),tp(o,ue))}function it(n){var t,e,r,i;return isNaN(n)?(eR(),uw):n<-0x8000000000000000?(eR(),ul):n>=0x7fffffffffffffff?(eR(),ub):(r=!1,n<0&&(r=!0,n=-n),e=0,n>=17592186044416&&(e=eb(n/17592186044416),n-=17592186044416*e),t=0,n>=4194304&&(t=eb(n/4194304),n-=4194304*t),i=tN(eb(n),t,e),r&&eG(i),i)}function ie(n){var t,e,r,i;if(0==n.l&&0==n.m&&0==n.h)return i4;if(524288==n.h&&0==n.m&&0==n.l)return"-9223372036854775808";if(~~n.h>>19!=0)return i0+ie(eq(n));for(e=n,r=iZ;!(0==e.l&&0==e.m&&0==e.h);){if(e=iU(e,re(1e9),!0),t=iZ+nE(uu),!(0==e.l&&0==e.m&&0==e.h))for(i=9-t.length;i>0;--i)t=i4+t;r=t+r}return r}function ir(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m,y,C,S,M,x;if(0==(i=t.f))throw new ni(oc);return(r=t.e,e=t.b,1==r)?(l=e[0],(S=n.b,M=n.e,x=n.f,1==M)?(d=iU(g=tp(re(S[0]),ue),w=tp(re(l),ue),!1),v=tt(g,w),x!=i&&(d=eq(d)),x<0&&(v=eq(v)),t2(ci,{6:1},17,[e3(d),e3(v)])):(_=t$(fM,{6:1},-1,M,1),m=t2(fM,{6:1},-1,[ib(_,S,M,l)]),y=new tb(x==i?1:-1,M,_),C=new tb(x,1,m),t3(y),t3(C),t2(ci,{6:1},17,[y,C]))):(h=n.b,((a=n.e)!=r?a>r?1:-1:eU(h,e,a))<0)?t2(ci,{6:1},17,[uk,n]):(b=n.f,f=iH(o=t$(fM,{6:1},-1,u=a-r+1,1),u,h,a,e,r),c=new tb(b==i?1:-1,u,o),s=new tb(b,r,f),t3(c),t3(s),t2(ci,{6:1},17,[c,s]))}function ii(n){var t;if(0==n.f||0==n.b&&-1!=n.g)return n.d||(n.d=eV(n.g)),n.d;if(n.f<0)return ec((n.d||(n.d=eV(n.g)),n.d),iA(-n.f));if(n.f>(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)||n.f>(n.d||(n.d=eV(n.g)),n.d).bb()||0!=(t=ir((n.d||(n.d=eV(n.g)),n.d),iA(n.f)))[1].r())throw new ni(oy);return t[0]}function io(n,t,e,r,i){var o,u;if(o=o0,e36)throw new nd("radix "+t+" out of range");for(e=(r=n.length)>0&&45==n.charCodeAt(0)?1:0;e2147483647)throw new nd(od+n+iY);return i}function ic(n){var t,e;if(0==n.f)return r4(),uE;if(eZ(n,(r4(),uE)))return uk;if(e=t$(fM,{6:1},-1,n.e+1,1),n.f>0){if(-1!=n.b[n.e-1])for(t=0;-1==n.b[t];++t);else{for(t=0;t0?0==t?0:t<0?-1:1:0;break;case 3:r=(0==t?0:t<0?-1:1)<0?0==t?0:t<0?-1:1:0;break;case 4:(t<0?-t:t)>=5&&(r=0==t?0:t<0?-1:1);break;case 5:(t<0?-t:t)>5&&(r=0==t?0:t<0?-1:1);break;case 6:(t<0?-t:t)+n>5&&(r=0==t?0:t<0?-1:1)}return r}function ih(n,t){var e,r,i,o,u,f,c,s,h;if(s=0==n.f?1:n.f,u=~~t>>5,e=31&t,f=t$(fM,{6:1},-1,c=nv(u+1,n.e)+1,1),r=1<=n.e)f[u]=r;else if(u>(i=eC(n)))f[u]^=r;else if(u=0||0==s.f||1==s.e&&1==s.b[0])if(!(1==(h=rY(s,f,n)).e&&1==h.b[0]||h.eQ(u))){for(i=1;i=0;--f)rL(h=t_(r$(s,32),tp(re(t[f]),ue)),o0)?(c=iU(h,o,!1),s=tt(h,o)):(c=iU(i=rV(h,1),u=re(~~r>>>1),!1),s=e5(r$(s=tt(i,u),1),tp(h,o2)),(1&r)!=0&&(rk(c,s)?ny(e9(c,s),o)?(s=e5(s,e9(o,c)),c=e9(c,o2)):(s=e5(s,e9(r$(o,1),c)),c=e9(c,o4)):s=e9(s,c))),n[f]=nE(tp(c,ue));return nE(s)}function il(n,t){var e,r,i,o,u,f,c;if(u=t$(fM,{6:1},-1,f=nv(n.e,t.e),1),i=eC(n),e=r=eC(t),i==r)u[r]=-n.b[r]^-t.b[r];else{for(u[r]=-t.b[r],o=n_(t.e,i),++e;et.g?1:0:(r=n.f-t.f,(e=(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)-(t.e>0?t.e:nH((t.b-1)*.3010299956639812)+1))>r+1)?i:e0&&(u=ec(u,iA(r))),rc(o,u))}function id(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g;if(o=t.b,!((n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)-o<0||0==o||(r=n.q()-o)<=0)){if(n.b<54){c=n,l=it(um[r]),b=e9(it(c.f),re(r)),a=iU(g=it(c.g),l,!1),tA(h=tt(g,l),o0)&&(s=tB(e9(r$(nm(h,o0)?eq(h):h,1),l),o0)?0:nm(e9(r$(nm(h,o0)?eq(h):h,1),l),o0)?-1:1,a=e5(a,re(is(1&nE(a),(tB(h,o0)?0:nm(h,o0)?-1:1)*(5+s),t.c))),tf(ra(nm(a,o0)?eq(a):a))>=t.b&&(a=nV(a,o6),b=e9(b,o2))),c.f=e2(ra(b)),c.e=t.b,c.g=ra(a),c.b=e6(a),c.d=null;return}f=iA(r),i=ir((n.d||(n.d=eV(n.g)),n.d),f),u=n.f-r,0!=i[1].r()&&(e=rc(eK(i[1]._()),f),0!=(e=is(i[0].gb(0)?1:0,i[1].r()*(5+e),t.c))&&rf(i,0,iE(i[0],e3(re(e)))),new nj(i[0]).q()>o&&(rf(i,0,i_(i[0],(r4(),uD))),--u)),n.f=e2(u),n.e=o,tT(n,i[0])}}function ip(n,t){var e,r,i,o,u,f,c,s,h,a;if(u=n.f,0==(c=t.f))return n;if(0==u)return t.cb();if((o=n.e)+(f=t.e)==2)return e=tp(re(n.b[0]),ue),r=tp(re(t.b[0]),ue),u<0&&(e=eq(e)),c<0&&(r=eq(r)),e3(e9(e,r));if(-1==(i=o!=f?o>f?1:-1:eU(n.b,t.b,o)))a=-c,h=u==c?t0(t.b,f,n.b,o):ee(t.b,f,n.b,o);else if(a=u,u==c){if(0==i)return r4(),uk;h=t0(n.b,o,t.b,f)}else h=ee(n.b,o,t.b,f);return t3(s=new tb(a,h.length,h)),s}function i_(n,t){var e,r,i,o,u,f,c,s,h;if(0==t.f)throw new ni(oc);return(i=t.f,1==t.e&&1==t.b[0])?t.f>0?n:n.cb():(s=n.f,(c=n.e)+(r=t.e)==2)?(h=nV(tp(re(n.b[0]),ue),tp(re(t.b[0]),ue)),s!=i&&(h=eq(h)),e3(h)):0==(e=c!=r?c>r?1:-1:eU(n.b,t.b,c))?s==i?uR:uE:-1==e?uk:(o=t$(fM,{6:1},-1,u=c-r+1,1),1==r?ib(o,n.b,c,t.b[0]):iH(o,u,n.b,c,t.b,r),t3(f=new tb(s==i?1:-1,u,o)),f)}function iv(n,t,e,r,i){var o,u;if(o=e5(tp(re(t[0]),ue),tp(re(r[0]),ue)),n[0]=nE(o),o=r2(o,32),e>=i){for(u=1;u0){if(i0?u=tq(u,eb(i)):i<0&&(o=tq(o,eb(-i))),iS(o,u,e,r)}function iC(n,t){var e,r,i,o,u,f,c;if(r=eC(t),(i=eC(n))>=t.e)return t;if(u=t$(fM,{6:1},-1,f=t.e,1),rt.ab()?(c=eL(s),o=eL(t),i=tB(e9(r$(nm(c,o0)?eq(c):c,1),nm(o,o0)?eq(o):o),o0)?0:nm(e9(r$(nm(c,o0)?eq(c):c,1),nm(o,o0)?eq(o):o),o0)?-1:1,i=is(f.gb(0)?1:0,h*(5+i),r)):(i=rc(eK(s._()),t._()),i=is(f.gb(0)?1:0,h*(5+i),r)),0!=i){if(54>f.ab())return eH(e5(eL(f),re(i)),e);f=iE(f,e3(re(i)))}return new tR(f,e)}function iM(n){var t,e,r,i,o,u;return null!=n.i?n.i:n.b<32?(n.i=function(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m;if(iO(),(u=nm(n,o0))&&(n=eq(n)),tB(n,o0))switch(t){case 0:return i4;case 1:return i6;case 2:return i5;case 3:return i9;case 4:return i7;case 5:return i8;case 6:return on;default:return s=new W,t<0?s.b.b+=oe:s.b.b+=ot,b=s.b,l=-2147483648==t?"2147483648":iZ+-t,b.b+=l,s.b.b}c=t$(f2,{6:1},-1,19,1),e=18,a=n;do f=a,a=nV(a,o6),c[--e]=65535&nE(e5(o7,e9(f,iQ(a,o6))));while(tA(a,o0))if(r=e9(e9(e9(o9,re(e)),re(t)),o2),0==t)return u&&(c[--e]=45),tV(c,e,18-e);if(t>0&&rL(r,oY)){if(rL(r,o0)){for(o=17,i=e+nE(r);o>=i;--o)c[o+1]=c[o];return c[++i]=46,u&&(c[--e]=45),tV(c,e,18-e+1)}for(o=2;nm(re(o),e5(eq(r),o2));++o)c[--e]=48;return c[--e]=46,c[--e]=48,u&&(c[--e]=45),tV(c,e,18-e)}return(h=e+1,s=new Z,u&&(s.b.b+=i0),18-h>=1)?(tP(s,c[e]),s.b.b+=i2,g=s.b,w=tV(c,e+1,18-e-1),g.b+=w):(d=s.b,_=tV(c,e,18-e),d.b+=_),s.b.b+=ow,rk(r,o0)&&(s.b.b+=i1),v=s.b,m=iZ+ie(r),v.b+=m,s.b.b}(it(n.g),eb(n.f)),n.i):(i=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f)?i:(t=0>(n.d||(n.d=eV(n.g)),n.d).r()?2:1,e=i.length,r=-n.f+e-t,u=(o=new W).b,u.b+=i,n.f>0&&r>=-6?r>=0?ti(o,e-eb(n.f),i2):(ts(o.b,t-1,t-1,i3),ti(o,t+1,tV(up,0,-eb(r)-1))):(e-t>=1&&(ts(o.b,t,t,i2),++e),ts(o.b,e,e,ow),r>0&&ti(o,++e,i1),ti(o,++e,iZ+ie(it(r)))),n.i=o.b.b,n.i)}function ix(n,t){var e,r,i,o,u,f;if(i=eC(n),o=eC(t),i>=t.e)return n;if(r=o>i?o:i,0==(e=o>i?-t.b[r]&~n.b[r]:o0){i[o]=u;break}i[o]=u.substring(0,c.index),u=u.substring(c.index+c[0].length,u.length),r.lastIndex=0,f==u&&(i[o]=u.substring(0,1),u=u.substring(1)),f=u,o++}if(0==e&&n.length>0){for(var s=i.length;s>0&&i[s-1]==iZ;)--s;s1e6)throw new ni("power of ten too big");if(n<=2147483647)return uZ[1].db(t).eb(t);for(i=r=uZ[1].db(2147483647),e=it(n-2147483647),t=eb(n%2147483647);rk(e,ut);)i=ec(i,r),e=e9(e,ut);for(i=(i=ec(i,uZ[1].db(t))).eb(2147483647),e=it(n-2147483647);rk(e,ut);)i=i.eb(2147483647),e=e9(e,ut);return i.eb(t)}function iN(){var n,t;c&&rO("com.iriscouch.gwtapp.client.BigDecimalApp"),n4(new K),n6(new j),n3(new F),tF(new H),c&&rO("com.google.gwt.user.client.UserAgentAsserter"),n=-1!=(t=r.userAgent.toLowerCase()).indexOf(oG)?oG:-1!=t.indexOf("webkit")||function(){if(-1!=t.indexOf("chromeframe"))return!0;if(typeof e.ActiveXObject!=oW)try{var n=new ActiveXObject("ChromeTab.ChromeFrame");if(n)return n.registerBhoIfNeeded(),!0}catch(r){}return!1}()?oJ:-1!=t.indexOf(oj)&&f.documentMode>=9?"ie9":-1!=t.indexOf(oj)&&f.documentMode>=8?"ie8":!function(){var n=/msie ([0-9]+)\.([0-9]+)/.exec(t);if(n&&3==n.length)return 1e3*parseInt(n[1])+parseInt(n[2])>=6e3}()?-1!=t.indexOf("gecko")?"gecko1_8":"unknown":"ie6",tJ(oJ,n)||u.alert("ERROR: Possible problem with your *.gwt.xml module file.\nThe compile time user.agent value (safari) does not match the runtime user.agent value ("+n+"). Expect more errors.\n"),c&&rO("com.google.gwt.user.client.DocumentModeAsserter"),function(){var n,t,e;for(e=0,t=f.compatMode,n=t2(fU,{6:1},1,[ob]);e>5,this.b=t$(fM,{6:1},-1,this.e,1);u=2147483648&&(r-=4294967296),r));this.b[this.e-1]>>>=31&-n,t3(this)}}function iE(n,t){var e,r,i,o,u,f,c,s,h,a,b,l;if(u=n.f,c=t.f,0==u)return t;if(0==c)return n;if((o=n.e)+(f=t.e)==2)return(e=tp(re(n.b[0]),ue),r=tp(re(t.b[0]),ue),u==c)?(l=nE(s=e5(e,r)),0==(b=nE(rV(s,32)))?new tZ(u,l):new tb(u,2,t2(fM,{6:1},-1,[l,b]))):e3(u<0?e9(r,e):e9(e,r));if(u==c)a=u,h=o>=f?ee(n.b,o,t.b,f):ee(t.b,f,n.b,o);else{if(0==(i=o!=f?o>f?1:-1:eU(n.b,t.b,o)))return r4(),uk;1==i?(a=u,h=t0(n.b,o,t.b,f)):(a=c,h=t0(t.b,f,n.b,o))}return t3(s=new tb(a,h.length,h)),s}function iR(n){var t,e,r,i;if(rJ(),null==n)throw new nc("null string");if((t=er(n)).length<27||t.length>45)throw new nu(oO);for(r=0;rfs.length)throw new q;if(o=null,i=null,67==r[0]?(i=u6,o=fr):68==r[0]?(i=u5,o=fi):70==r[0]?(i=u9,o=fo):72==r[0]?e>6&&(68==r[5]?(i=u7,o=fu):69==r[5]?(i=u8,o=ff):85==r[5]&&(i=fn,o=fc)):85==r[0]&&(80==r[1]?(i=fe,o=fh):78==r[1]&&(i=ft,o=fs)),i&&e==o.length){for(t=1;tl||r+i>s)throw new G;if(((1&a.c)==0||(4&a.c)!=0)&&b!=c){if(h=tG(n,11),o=tG(e,11),nG(n)===nG(e)&&tr;)rf(o,f,h[--t]);else for(f=r+i;rh.r()&&(s=s.cb()),c=e2(e+(o>u?o:u)),s=(i=o-u)>0?(im(),i>19!=0&&(t=eq(t),c=!0),u=((b=(h=t).l)&b-1)!=0||((l=h.m)&l-1)!=0||((a=h.h)&a-1)!=0||0==a&&0==l&&0==b?-1:0==a&&0==l&&0!=b?ed(b):0==a&&0!=l&&0==b?ed(l)+22:0!=a&&0==l&&0==b?ed(a)+44:-1,o=!1,i=!1,r=!1,524288==n.h&&0==n.m&&0==n.l){if(i=!0,o=!0,-1!=u)return f=r2(n,u),c&&eG(f),e&&(uu=tN(0,0,0)),f;n=nq((eR(),ub)),r=!0,c=!c}else~~n.h>>19!=0&&(o=!0,n=eq(n),r=!0,c=!c);return -1!=u?(g=n,w=c,d=o,_=r2(g,u),w&&eG(_),e&&(v=g,u<=22?(m=v.l&(1<=0&&((w=(b=n).h-u.h)<0||(l=b.l-u.l,(w+=~~(g=b.m-u.m+(~~l>>22))>>22)<0||(b.l=4194303&l,b.m=4194303&g,b.h=1048575&w,0))||(c<22?f.l|=1<>>1,u.m=~~h>>>1|(1&a)<<21,u.l=~~s>>>1|(1&h)<<21,--c;return e&&eG(f),o&&(r?(uu=eq(n),i&&(uu=e9(uu,(eR(),ug)))):uu=tN(n.l,n.m,n.h)),f}(r?n:tN(n.l,n.m,n.h),t,c,o,i,e):(e&&(uu=o?eq(n):tN(n.l,n.m,n.h)),tN(0,0,0))}function iP(n){var t=[];for(var e in n){var r=typeof n[e];r!=oq?t[t.length]=r:n[e]instanceof Array?t[t.length]=oR:u&&u.bigdecimal&&u.bigdecimal.BigInteger&&n[e]instanceof u.bigdecimal.BigInteger?t[t.length]=of:u&&u.bigdecimal&&u.bigdecimal.BigDecimal&&n[e]instanceof u.bigdecimal.BigDecimal?t[t.length]=oi:u&&u.bigdecimal&&u.bigdecimal.RoundingMode&&n[e]instanceof u.bigdecimal.RoundingMode?t[t.length]=oC:u&&u.bigdecimal&&u.bigdecimal.MathContext&&n[e]instanceof u.bigdecimal.MathContext?t[t.length]=ov:t[t.length]=oq}return t.join(iX)}function iQ(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m;return e=8191&n.l,r=~~n.l>>13|(15&n.m)<<9,i=~~n.m>>4&8191,o=~~n.m>>17|(255&n.h)<<5,u=~~(1048320&n.h)>>8,f=8191&t.l,c=~~t.l>>13|(15&t.m)<<9,s=~~t.m>>4&8191,h=~~t.m>>17|(255&t.h)<<5,a=~~(1048320&t.h)>>8,w=e*f,d=r*f,_=i*f,v=o*f,m=u*f,0!=c&&(d+=e*c,_+=r*c,v+=i*c,m+=o*c),0!=s&&(_+=e*s,v+=r*s,m+=i*s),0!=h&&(v+=e*h,m+=r*h),0!=a&&(m+=e*a),b=(4194303&w)+((511&d)<<13),l=(~~w>>22)+(~~d>>9)+((262143&_)<<4)+((31&v)<<17),g=(~~_>>18)+(~~v>>5)+((4095&m)<<8),l+=~~b>>22,b&=4194303,g+=~~l>>22,tN(b,l&=4194303,g&=1048575)}function iT(n,t,e){var r,i,o,u,f,c,s,h;if(h=ra(e5(re(e.b),o4))+(t.e>0?t.e:nH((t.b-1)*.3010299956639812)+1)-(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1),c=i=n.f-t.f,o=1,f=uA.length-1,s=t2(ci,{6:1},17,[(n.d||(n.d=eV(n.g)),n.d)]),0==e.b||0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)return iL(n,t);if(h>0&&(rf(s,0,ec((n.d||(n.d=eV(n.g)),n.d),iA(h))),c+=h),u=(s=ir(s[0],(t.d||(t.d=eV(t.g)),t.d)))[0],0!=s[1].r())r=rc(eK(s[1]),(t.d||(t.d=eV(t.g)),t.d)),u=iE(ec(u,(r4(),uD)),e3(re(s[0].r()*(5+r)))),++c;else for(;!u.gb(0);)if(0==(s=ir(u,uA[o]))[1].r()&&c-o>=i)c-=o,o=0)return n;return 0==e?nv(n.b,t.b)+1<54?new ta(n.g-t.g,n.f):new tO(ip((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),n.f):e>0?e0?t.e:nH((t.b-1)*.3010299956639812)+1)+o>(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)+1||0==n.b&&-1!=n.g)r4(),r=uk;else if(0==o)r=i_((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d));else if(o>0)u=iA(o),r=i_((n.d||(n.d=eV(n.g)),n.d),ec((t.d||(t.d=eV(t.g)),t.d),u)),r=ec(r,u);else{for(u=iA(-o),r=i_(ec((n.d||(n.d=eV(n.g)),n.d),u),(t.d||(t.d=eV(t.g)),t.d));!r.gb(0);)if(0==(f=ir(r,uA[e]))[1].r()&&c-e>=o)c-=e,e=0;){if(w[a]==c)s=-1;else if(s=nE(m=r8(e5(r$(tp(re(w[a]),ue),32),tp(re(w[a-1]),ue)),c)),v=nE(r2(m,32)),0!=s){_=!1,++s;do{if(--s,_)break;l=iQ(tp(re(s),ue),tp(re(d[o-2]),ue)),y=e5(r$(re(v),32),tp(re(w[a-2]),ue)),32>rW(nE(rV(g=e5(tp(re(v),ue),tp(re(c),ue)),32)))?_=!0:v=nE(g)}while(rk(tv(l,oZ),tv(y,oZ)))}if(0!=s&&0!=function(n,t,e,r,i){var o,u,f;for(f=0,o=o0,u=o0;f0)rf(b,0,i_((n.d||(n.d=eV(n.g)),n.d),ec((t.d||(t.d=eV(t.g)),t.d),iA(o)))),a=o<(h-l+1>0?h-l+1:0)?o:h-l+1>0?h-l+1:0,rf(b,0,ec(b[0],iA(a)));else if(u=-o<(h-i>0?h-i:0)?-o:h-i>0?h-i:0,b=ir(ec((n.d||(n.d=eV(n.g)),n.d),iA(u)),(t.d||(t.d=eV(t.g)),t.d)),a+=u,u=-a,0!=b[1].r()&&u>0&&(0==(r=new nj(b[1]).q()+u-t.q())&&(rf(b,1,i_(ec(b[1],iA(u)),(t.d||(t.d=eV(t.g)),t.d))),r=np(b[1].r())),r>0))throw new ni(og);if(0==b[0].r())return e$(o);for(w=b[0],g=(c=new nj(b[0])).q(),f=1;!w.gb(0);)if(0==(b=ir(w,uA[f]))[1].r()&&(g-f>=h||a-f>=o))g-=f,a-=f,fh)throw new ni(og);return c.f=e2(a),tT(c,w),c}function iz(){var n;for(n=0,iz=g,u0=t2(fM,{6:1},-1,[0,0,1854,1233,927,747,627,543,480,431,393,361,335,314,295,279,265,253,242,232,223,216,181,169,158,150,145,140,136,132,127,123,119,114,110,105,101,96,92,87,83,78,73,69,64,59,54,49,44,38,32,26,1]),u2=t$(ci,{6:1},17,(u4=t2(fM,{6:1},-1,[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021])).length,0);n=0;--c)w=function(n){var t,e,r;return rL(n,o0)?(e=nV(n,un),r=tt(n,un)):(e=nV(t=rV(n,1),o8),r=e5(r$(r=tt(t,o8),1),tp(n,o2))),t_(r$(r,32),tp(e,ue))}(e5(r$(y,32),tp(re(M[c]),ue))),M[c]=nE(w),y=re(nE(r2(w,32)));d=nE(y),g=e;do v[--e]=48+d%10&65535;while(0!=(d=~~(d/10))&&0!=e)for(f=0,r=9-g+e;f0;++f)v[--e]=48;for(h=x-1;0==M[h];--h)if(0==h)break n;x=h+1}for(;48==v[e];)++e}if(a=C<0,o=_-e-t-1,0==t)return a&&(v[--e]=45),tV(v,e,_-e);if(t>0&&o>=-6){if(o>=0){for(s=e+o,h=_-1;h>=s;--h)v[h+1]=v[h];return v[++s]=46,a&&(v[--e]=45),tV(v,e,_-e+1)}for(h=2;h<-o+1;++h)v[--e]=48;return v[--e]=46,v[--e]=48,a&&(v[--e]=45),tV(v,e,_-e)}return(S=e+1,m=new Z,a&&(m.b.b+=i0),_-S>=1)?(tP(m,v[e]),m.b.b+=i2,I=m.b,E=tV(v,e+1,_-e-1),I.b+=E):(R=m.b,O=tV(v,e,_-e),R.b+=O),m.b.b+=ow,o>0&&(m.b.b+=i1),D=m.b,k=iZ+o,D.b+=k,m.b.b}c&&c({moduleName:"gwtapp",sessionId:s,subSystem:"startup",evtGroup:"moduleStartup",millis:new Date().getTime(),type:"moduleEvalStart"});var iK,iW,iZ="",iX=" ",iY='"',i1="+",i0="-",i2=".",i4="0",i3="0.",i6="0.0",i5="0.00",i9="0.000",i7="0.0000",i8="0.00000",on="0.000000",ot="0E",oe="0E+",or=":",oi="BigDecimal",oo="BigDecimal MathContext",ou="BigDecimal;",of="BigInteger",oc="BigInteger divide by zero",os="BigInteger not invertible.",oh="BigInteger: modulus not positive",oa="BigInteger;",ob="CSS1Compat",ol="Division by zero",og="Division impossible",ow="E",od='For input string: "',op="Infinite or NaN",o_="Invalid Operation",ov="MathContext",om="Negative bit address",oy="Rounding necessary",oC="RoundingMode",oS="RoundingMode;",oM="String",ox="[Lcom.iriscouch.gwtapp.client.",oB="[Ljava.lang.",oA="[Ljava.math.",oN="\\.",oI="__gwtex_wrap",oE="anonymous",oR="array",oO="bad string format",oD="bigdecimal",ok="com.google.gwt.core.client.",oL="com.google.gwt.core.client.impl.",oU="com.iriscouch.gwtapp.client.",oP="java.lang.",oQ="java.math.",oT="java.util.",oj="msie",oF="null",oH="number",o$="number MathContext",oV="number number",oq="object",oG="opera",oz="org.timepedia.exporter.client.",oJ="safari",oK="string",oW="undefined",oZ={l:0,m:0,h:524288},oX={l:0,m:4193280,h:1048575},oY={l:4194298,m:4194303,h:1048575},o1={l:4194303,m:4194303,h:1048575},o0={l:0,m:0,h:0},o2={l:1,m:0,h:0},o4={l:2,m:0,h:0},o3={l:5,m:0,h:0},o6={l:10,m:0,h:0},o5={l:11,m:0,h:0},o9={l:18,m:0,h:0},o7={l:48,m:0,h:0},o8={l:877824,m:119,h:0},un={l:1755648,m:238,h:0},ut={l:4194303,m:511,h:0},ue={l:4194303,m:1023,h:0},ur={l:0,m:1024,h:0};(iW=h.prototype={}).eQ=function(n){return this===n},iW.gC=function(){return fd},iW.hC=function(){return nz(this)},iW.tS=function(){return this.gC().d+"@"+function(n){var t,e;if(t=t$(f2,{6:1},-1,8,1),rB(),e=7,n>=0)for(;n>15;)t[e--]=uT[15&n],n>>=4;else for(;e>0;)t[e--]=uT[15&n],n>>=4;return t[e]=uT[15&n],et(t,e,8)}(this.hC())},iW.toString=function(){return this.tS()},iW.tM=g,iW.cM={},(iW=a.prototype=new h).gC=function(){return f_},iW.j=function(){return this.f},iW.tS=function(){var n,t;return n=this.gC().d,null!=(t=this.j())?n+": "+t:n},iW.cM={6:1,15:1},iW.f=null,(iW=b.prototype=new a).gC=function(){return fv},iW.cM={6:1,15:1},(iW=nr.prototype=l.prototype=new b).gC=function(){return fm},iW.cM={6:1,12:1,15:1},(iW=n9.prototype=(function(){}).prototype=new l).gC=function(){return fy},iW.j=function(){var n,t,e,r,i;return null==this.d&&(this.e=null==(e=this.c)?oF:tc(e)?null==(r=eo(e))?null:r.name:nY(e,1)?oM:(nJ(e)?e.gC():fC).d,this.b=tc(n=this.c)?null==(i=eo(n))?null:i.message:n+iZ,this.d="("+this.e+"): "+this.b+(tc(t=this.c)?function(n){var t=iZ;try{for(var e in n)if("name"!=e&&"message"!=e&&"toString"!=e)try{t+="\n "+e+": "+n[e]}catch(r){}}catch(i){}return t}(eo(t)):iZ)),this.d},iW.cM={6:1,12:1,15:1},iW.b=null,iW.c=null,iW.d=null,iW.e=null,(iW=w.prototype=new h).gC=function(){return fS};var ui=0,uo=0;(iW=d.prototype=(function(){}).prototype=new w).gC=function(){return fA},iW.b=null,iW.c=null,(iW=_.prototype=v.prototype=new h).k=function(){for(var n={},t=[],e=arguments.callee.caller.caller;e;){var r,i,o=this.n(e.toString());t.push(o);var u=or+o,f=n[u];if(f){for(r=0,i=f.length;r0?i:oE},iW.gC=function(){return fN},iW.o=function(n){return[]},(iW=m.prototype=new v).k=function(){return ty(this.o(tS()),this.p())},iW.gC=function(){return fR},iW.o=function(n){return eT(this,n)},iW.p=function(){return 2},(iW=y.prototype=(function(){}).prototype=new m).k=function(){return ep(this)},iW.n=function(n){var t,e;return 0==n.length||(0==(e=ro(n)).indexOf("at ")&&(e=tu(e,3)),-1==(t=e.indexOf("["))&&(t=e.indexOf("(")),-1==t)?oE:(-1!=(t=(e=ro(e.substr(0,t-0))).indexOf("."))&&(e=tu(e,t+1)),e.length>0?e:oE)},iW.gC=function(){return fO},iW.o=function(n){return en(this,n)},iW.p=function(){return 3},(iW=C.prototype=new h).gC=function(){return fD},(iW=S.prototype=(function(){}).prototype=new C).gC=function(){return fk},iW.b=iZ,(iW=M.prototype=(function(){}).prototype=new h).gC=function(){return this.aC},iW.aC=null,iW.qI=0;var uu=null,uf=null;(iW=x.prototype=(function(){}).prototype=new h).gC=function(){return fP},iW.cM={2:1},(iW=B.prototype=new h).gC=function(){return fT},iW.cM={6:1,10:1};var uc=null;(iW=el.prototype=ta.prototype=tO.prototype=tL.prototype=X.prototype=ex.prototype=eg.prototype=tk.prototype=tD.prototype=e0.prototype=n8.prototype=tn.prototype=th.prototype=tR.prototype=nj.prototype=A.prototype=new B).eQ=function(n){return e8(this,n)},iW.gC=function(){return fj},iW.hC=function(){return rA(this)},iW.q=function(){return rz(this)},iW.r=function(){return eS(this)},iW.tS=function(){return iM(this)},iW.cM={6:1,8:1,10:1,16:1},iW.b=0,iW.c=0,iW.d=null,iW.e=0,iW.f=0,iW.g=0,iW.i=null;var us,uh,ua,ub,ul,ug,uw,ud,up,u_,uv,um,uy,uC,uS,uM,ux,uB=null,uA=null,uN=null;(iW=nF.prototype=nw.prototype=(function(){}).prototype=new A).s=function(n){var t,e,r;if((e=iP(n))==iZ)t=0>eS(this)?eM(this):this;else if(e==ov)t=0>(r=eu(this,new iR(n[0].toString()))).r()?eM(r):r;else throw new nr("Unknown call signature for interim = super.abs: "+e);return new nF(t)},iW.t=function(n){var t,e;if((e=iP(n))==oi)t=r7(this,new X(n[0].toString()));else if(e==oo)t=function(n,t,e){var r,i,o,u,f;if(r=n.f-t.f,0==t.b&&-1!=t.g||0==n.b&&-1!=n.g||0==e.b)return eu(r7(n,t),e);if((n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)0?t.e:nH((t.b-1)*.3010299956639812)+1)<-r-1))return eu(r7(n,t),e);i=n,u=t}return e.b>=(i.e>0?i.e:nH((i.b-1)*.3010299956639812)+1)?eu(r7(n,t),e):(f=(o=i.r())==u.r()?iE(r3((i.d||(i.d=eV(i.g)),i.d),10),e3(re(o))):iE(r3(f=ip((i.d||(i.d=eV(i.g)),i.d),e3(re(o))),10),e3(re(9*o))),eu(i=new tO(f,i.f+1),e))}(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.add: "+e);return new nF(t)},iW.u=function(){return~~(nE(ef(this,8))<<24)>>24},iW.v=function(n){return iw(this,n)},iW.w=function(n){var t,e,r,i;if((i=iP(n))==oi)e=em(this,new X(n[0].toString()));else if(i==oo)e=ey(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.divideAndRemainder: "+i);for(t=0,r=t$(fH,{6:1},3,e.length,0);t129?n*=1/0:n=ei(iM(this)),n},iW.gC=function(){return fF},iW.hC=function(){return rA(this)},iW.B=function(){return this.f<=-32||this.f>(this.e>0?this.e:nH((this.b-1)*.3010299956639812)+1)?0:nI(new n7(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eV(this.g)),this.d):this.f<0?ec((this.d||(this.d=eV(this.g)),this.d),iA(-this.f)):i_((this.d||(this.d=eV(this.g)),this.d),iA(this.f))))},iW.C=function(){return nE(ef(this,32))},iW.D=function(){return nE(ef(this,32))},iW.E=function(){return ei(iM(this))},iW.F=function(n){return new nF(iw(this,n)>=0?this:n)},iW.G=function(n){return new nF(0>=iw(this,n)?this:n)},iW.H=function(n){return new nF(r0(this,this.f+n))},iW.I=function(n){return new nF(r0(this,this.f-n))},iW.J=function(n){var t,e;if((e=iP(n))==oi)t=rF(this,new X(n[0].toString()));else if(e==oo)t=tm(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.multiply: "+e);return new nF(t)},iW.K=function(n){var t,e;if((e=iP(n))==iZ)t=eM(this);else if(e==ov)t=eM(eu(this,new iR(n[0].toString())));else throw new nr("Unknown call signature for interim = super.negate: "+e);return new nF(t)},iW.L=function(n){var t,e;if((e=iP(n))==iZ)t=this;else if(e==ov)t=eu(this,new iR(n[0].toString()));else throw new nr("Unknown call signature for interim = super.plus: "+e);return new nF(t)},iW.M=function(n){var t,e;if((e=iP(n))==oH)t=rS(this,n[0]);else if(e==o$)t=function(n,t,e){var r,i,o,u,f,c;if(o=t<0?-t:t,u=e.b,i=eb(tf(o))+1,f=e,0==t||0==n.b&&-1!=n.g&&t>0)return rS(n,t);if(o>999999999||0==u&&t<0||u>0&&i>u)throw new ni(o_);for(u>0&&(f=new e4(u+i+1,e.c)),r=eu(n,f),c=~~function(n){var t;if(n<0)return -2147483648;if(0==n)return 0;for(t=1073741824;(t&n)==0;t>>=1);return t}(o)>>1;c>0;)r=tm(r,r,f),(o&c)==c&&(r=tm(r,n,f)),c>>=1;return t<0&&(r=iT(uC,r,f)),id(r,e),r}(this,n[0],new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.pow: "+e);return new nF(t)},iW.q=function(){return rz(this)},iW.N=function(n){var t,e;if((e=iP(n))==oi)t=em(this,new X(n[0].toString()))[1];else if(e==oo)t=ey(this,new X(n[0].toString()),new iR(n[1].toString()))[1];else throw new nr("Unknown call signature for interim = super.remainder: "+e);return new nF(t)},iW.O=function(n){return new nF(eu(this,new iR(e_(n.b))))},iW.P=function(){return eb(this.f)},iW.Q=function(n){var t,e;return new nF((t=this,(e=t.f-n,t.b<54)?0==t.g?e$(e):new ta(t.g,e2(e)):new tR((t.d||(t.d=eV(t.g)),t.d),e2(e))))},iW.R=function(n){var t,e;if((e=iP(n))==oH)t=r9(this,n[0],(ik(),ft));else if(e==oV)t=r9(this,n[0],rq(n[1]));else if("number RoundingMode"==e)t=r9(this,n[0],td(n[1].toString()));else throw new nr("Unknown call signature for interim = super.setScale: "+e);return new nF(t)},iW.S=function(){return~~(nE(ef(this,16))<<16)>>16},iW.r=function(){return eS(this)},iW.T=function(){return new nF(function(n){var t,e,r,i,o;if(t=1,e=uA.length-1,r=n.f,0==n.b&&-1!=n.g)return new X(i4);for(n.d||(n.d=eV(n.g)),o=n.d;!o.gb(0);)if(0==(i=ir(o,uA[t]))[1].r())r-=t,t0?i.e:nH((i.b-1)*.3010299956639812)+1)0?r.e:nH((r.b-1)*.3010299956639812)+1)?(f=(c=eS(r))!=i.r()?iE(r3((r.d||(r.d=eV(r.g)),r.d),10),e3(re(c))):iE(r3(f=ip((r.d||(r.d=eV(r.g)),r.d),e3(re(c))),10),e3(re(9*c))),eu(new tO(f,r.f+1),o)):eu(ij(r,i),o);else throw new nr("Unknown call signature for interim = super.subtract: "+e);return new nF(t)},iW.V=function(){return new n7(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eV(this.g)),this.d):this.f<0?ec((this.d||(this.d=eV(this.g)),this.d),iA(-this.f)):i_((this.d||(this.d=eV(this.g)),this.d),iA(this.f)))},iW.W=function(){return new n7(ii(this))},iW.X=function(){return function(n){var t,e,r,i,o,u,f,c;if(u=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f)return u;if(t=0>(n.d||(n.d=eV(n.g)),n.d).r()?2:1,r=u.length,i=-n.f+r-t,c=new nZ(u),n.f>0&&i>=-6)i>=0?ti(c,r-eb(n.f),i2):(ts(c.b,t-1,t-1,i3),ti(c,t+1,tV(up,0,-eb(i)-1)));else{if(e=r-t,0!=(f=eb(i%3))&&(0==(n.d||(n.d=eV(n.g)),n.d).r()?i+=f=f<0?-f:3-f:(i-=f=f<0?f+3:f,t+=f),e<3))for(o=f-e;o>0;--o)ti(c,r++,i4);r-t>=1&&(ts(c.b,t,t,i2),++r),0!=i&&(ts(c.b,r,r,ow),i>0&&ti(c,++r,i1),ti(c,++r,iZ+ie(it(i))))}return c.b.b}(this)},iW.Y=function(){return function(n){var t,e,r,i;if(r=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f||0==n.b&&-1!=n.g&&n.f<0)return r;if(t=0>eS(n)?1:0,e=n.f,i=new Z(r.length+1+np(eb(n.f))),1==t&&(i.b.b+=i0),n.f>0){if((e-=r.length-t)>=0){for(i.b.b+=i3;e>up.length;e-=up.length)tY(i,up);tr(i,up,eb(e)),nL(i,tu(r,t))}else e=t-e,nL(i,to(r,t,eb(e))),i.b.b+=i2,nL(i,tu(r,eb(e)))}else{for(nL(i,tu(r,t));e<-up.length;e+=up.length)tY(i,up);tr(i,up,eb(-e))}return i.b.b}(this)},iW.tS=function(){return iM(this)},iW.Z=function(){return new nF(new ta(1,this.f))},iW.$=function(){return new n7((this.d||(this.d=eV(this.g)),this.d))},iW.cM={3:1,6:1,8:1,10:1,16:1,24:1},(iW=H.prototype=(function(){}).prototype=new h).gC=function(){return f$};var uI=!1;(iW=rl.prototype=rb.prototype=tb.prototype=ri.prototype=tZ.prototype=r_.prototype=nX.prototype=iI.prototype=N.prototype=new B)._=function(){return this.f<0?new tb(1,this.e,this.b):this},iW.ab=function(){return eX(this)},iW.eQ=function(n){return eZ(this,n)},iW.gC=function(){return fV},iW.bb=function(){return t7(this)},iW.hC=function(){return eF(this)},iW.cb=function(){return 0==this.f?this:new tb(-this.f,this.e,this.b)},iW.db=function(n){return rH(this,n)},iW.eb=function(n){return t5(this,n)},iW.fb=function(n){return t9(this,n)},iW.r=function(){return this.f},iW.gb=function(n){return rG(this,n)},iW.tS=function(){return iJ(this,0)},iW.cM={6:1,8:1,10:1,17:1},iW.b=null,iW.c=-2,iW.d=0,iW.e=0,iW.f=0;var uE,uR,uO,uD,uk,uL=null;(iW=n7.prototype=nQ.prototype=nT.prototype=(function(){}).prototype=new N)._=function(){return new n7(this.f<0?new tb(1,this.e,this.b):this)},iW.hb=function(n){return new n7(iE(this,n))},iW.ib=function(n){return new n7(0==n.f||0==this.f?(r4(),uk):eZ(n,(r4(),uE))?this:eZ(this,uE)?n:this.f>0?n.f>0?function(n,t){var e,r,i,o;if(i=n_(n.e,t.e),(e=nv(eC(n),eC(t)))>=i)return r4(),uk;for(r=t$(fM,{6:1},-1,i,1);e0?r1(n,this):this.e>n.e?ix(this,n):ix(n,this))},iW.jb=function(n){return new n7(0==n.f?this:0==this.f?(r4(),uk):eZ(this,(r4(),uE))?new n7(ic(n)):eZ(n,uE)?uk:this.f>0?n.f>0?function(n,t){var e,r,i,o;for(i=t$(fM,{6:1},-1,n.e,1),r=n_(n.e,t.e),e=eC(n);e=n.e)return n;for(o=t$(fM,{6:1},-1,u=n_(n.e,t.e),1),e=i;e0?function(n,t){var e,r,i,o,u,f,c;if(i=eC(n),o=eC(t),i>=t.e)return n;if(c=nv(n.e,t.e),r=i,o>i){for(f=t$(fM,{6:1},-1,c,1),u=n_(n.e,o);r=t.e)return r4(),uk;if(u=t$(fM,{6:1},-1,f=t.e,1),e=i,i0)for(;e34028234663852886e22?1/0:n<-34028234663852886e22?-1/0:n},iW.qb=function(n){return new n7(rQ(this,n))},iW.gC=function(){return fq},iW.bb=function(){return t7(this)},iW.hC=function(){return eF(this)},iW.B=function(){return nI(this)},iW.rb=function(n){return function(n,t){var e,r;if(iz(),t<=0||1==n.e&&2==n.b[0])return!0;if(!rG(n,0))return!1;if(1==n.e&&(-1024&n.b[0])==0)return function(n,t){var e,r,i,o;for(r=0,e=n.length-1;r<=e;)if((o=n[i=r+(~~(e-r)>>1)])t))return i;e=i-1}return-r-1}(u4,n.b[0])>=0;for(r=1;r>1)?r:1+(~~(t-1)>>1))}(new n7(this.f<0?new tb(1,this.e,this.b):this),n)},iW.sb=function(){return ei(iJ(this,0))},iW.tb=function(n){return new n7(1==rc(this,n)?this:n)},iW.ub=function(n){return new n7(-1==rc(this,n)?this:n)},iW.vb=function(n){return new n7(es(this,n))},iW.wb=function(n){return new n7(rT(this,n))},iW.xb=function(n,t){return new n7(rY(this,n,t))},iW.yb=function(n){return new n7(ec(this,n))},iW.cb=function(){return new n7(0==this.f?this:new tb(-this.f,this.e,this.b))},iW.zb=function(){return new n7(function(n){if(n.f<0)throw new ni("start < 0: "+n);return function(n){var t,e,r,i,o,u,f,c;if(iz(),o=t$(fM,{6:1},-1,u4.length,1),r=t$(fB,{6:1},-1,1024,2),1==n.e&&n.b[0]>=0&&n.b[0]=u4[e];++e);return u2[e]}for(f=new tb(1,n.e,t$(fM,{6:1},-1,n.e+1,1)),iD(n.b,0,f.b,0,n.e),rG(n,0)?t4(f,2):f.b[0]|=1,i=f.ab(),t=2;i0?n.f>0?this.e>n.e?ry(this,n):ry(n,this):iC(this,n):n.f>0?iC(n,this):eC(n)>eC(this)?r6(n,this):r6(this,n))},iW.db=function(n){return new n7(rH(this,n))},iW.Cb=function(n){return new n7(rK(this,n))},iW.Db=function(n){return new n7(rG(this,n)?this:ih(this,n))},iW.eb=function(n){return new n7(t5(this,n))},iW.fb=function(n){return new n7(t9(this,n))},iW.r=function(){return this.f},iW.Eb=function(n){return new n7(ip(this,n))},iW.gb=function(n){return rG(this,n)},iW.Fb=function(n){var t,e;if((e=iP(n))==iZ)t=iJ(this,0);else if(e==oH)t=function(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_;if(iO(),g=n.f,s=n.e,u=n.b,0==g)return i4;if(1==s)return _=tp(re(u[0]),ue),g<0&&(_=eq(_)),function(n,t){var e,r,i;if(10==t||t<2||t>36)return iZ+ie(n);if(e=t$(f2,{6:1},-1,65,1),rB(),r=64,i=re(t),rL(n,o0)){for(;rL(n,i);)e[r--]=uT[nE(tt(n,i))],n=iU(n,i,!1);e[r]=uT[nE(n)]}else{for(;ny(n,eq(i));)e[r--]=uT[nE(eq(tt(n,i)))],n=iU(n,i,!1);e[r--]=uT[nE(eq(n))],e[r]=45}return et(e,r,65)}(_,t);if(10==t||t<2||t>36)return iJ(n,0);if(l=t$(f2,{6:1},-1,b=eb(eX(new n7(n.f<0?new tb(1,n.e,n.b):n))/(Math.log(t)/Math.log(2))+(g<0?1:0))+1,1),i=b,16!=t)for(iD(u,0,w=t$(fM,{6:1},-1,s,1),0,s),d=s,r=uV[t],e=u$[t-2];;){a=ib(w,w,d,e),h=i;do l[--i]=eA(a%t,t);while(0!=(a=~~(a/t))&&0!=i)for(f=0,o=r-h+i;f0;++f)l[--i]=48;for(f=d-1;f>0&&0==w[f];--f);if(1==(d=f+1)&&0==w[0])break}else for(f=0;f0;++c)a=~~u[f]>>(c<<2)&15,l[--i]=eA(a,16);for(;48==l[i];)++i;return -1==g&&(l[--i]=45),tV(l,i,b-i)}(this,n[0]);else throw new nr("Unknown call signature for result = super.toString: "+e);return t},iW.Gb=function(n){return new n7(0==n.f?this:0==this.f?n:eZ(n,(r4(),uE))?new n7(ic(this)):eZ(this,uE)?new n7(ic(n)):this.f>0?n.f>0?this.e>n.e?rC(this,n):rC(n,this):i$(this,n):n.f>0?i$(n,this):eC(n)>eC(this)?il(n,this):il(this,n))},iW.cM={4:1,6:1,8:1,10:1,17:1,24:1},(iW=F.prototype=(function(){}).prototype=new h).gC=function(){return fz};var uU=!1;(iW=nC.prototype=nS.prototype=(function(){}).prototype=new h).gC=function(){return fJ},iW.Hb=function(){return this.b.b},iW.Ib=function(){return new nn(this.b.c)},iW.hC=function(){return nN(this.b)},iW.tS=function(){return e_(this.b)},iW.cM={24:1},iW.b=null,(iW=j.prototype=(function(){}).prototype=new h).gC=function(){return fK};var uP=!1;(iW=nn.prototype=nM.prototype=(function(){}).prototype=new h).gC=function(){return fW},iW.Jb=function(){return this.b.b},iW.tS=function(){return this.b.b},iW.cM={5:1,24:1},iW.b=null,(iW=K.prototype=(function(){}).prototype=new h).gC=function(){return fX};var uQ=!1;(iW=ni.prototype=(function(){}).prototype=new l).gC=function(){return fY},iW.cM={6:1,12:1,15:1},(iW=no.prototype=V.prototype=(function(){}).prototype=new l).gC=function(){return f0},iW.cM={6:1,12:1,15:1},(iW=I.prototype=(function(){}).prototype=new h).gC=function(){return f4},iW.tS=function(){return((2&this.c)!=0?"interface ":(1&this.c)!=0?iZ:"class ")+this.d},iW.b=null,iW.c=0,iW.d=null,(iW=$.prototype=(function(){}).prototype=new l).gC=function(){return f3},iW.cM={6:1,12:1,15:1},(iW=E.prototype=new h).eQ=function(n){return this===n},iW.gC=function(){return fp},iW.hC=function(){return nz(this)},iW.tS=function(){return this.b},iW.cM={6:1,8:1,9:1},iW.b=null,iW.c=0,(iW=nu.prototype=q.prototype=R.prototype=new l).gC=function(){return f6},iW.cM={6:1,12:1,15:1},(iW=nf.prototype=G.prototype=O.prototype=new l).gC=function(){return f1},iW.cM={6:1,12:1,15:1},(iW=nc.prototype=z.prototype=(function(){}).prototype=new l).gC=function(){return f5},iW.cM={6:1,12:1,15:1},(iW=nd.prototype=(function(){}).prototype=new R).gC=function(){return f9},iW.cM={6:1,12:1,15:1},(iW=tl.prototype=(function(){}).prototype=new h).gC=function(){return fI},iW.tS=function(){return this.b+i2+this.d+"(Unknown Source"+(this.c>=0?or+this.c:iZ)+")"},iW.cM={6:1,13:1},iW.b=null,iW.c=0,iW.d=null,(iW=String.prototype).eQ=function(n){return tJ(this,n)},iW.gC=function(){return fL},iW.hC=function(){var n,t;return n0(),null!=(t=uF[n=or+this])?t:(null==(t=uj[n])&&(t=function(n){var t,e,r,i;for(t=0,i=(r=n.length)-4,e=0;e 0, byElement = elementMatchers.length > 0, superMatcher = function(seed, context, xml, results, expandContext) { + cached = compilerCache(selector, (matcherCachedRuns = 0, bySet = setMatchers1.length > 0, byElement = elementMatchers1.length > 0, superMatcher = function(seed, context, xml, results, expandContext) { var elem, j, matcher, setMatched = [], matchedCount = 0, i = "0", unmatched = seed && [], outermost = null != expandContext, contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG("*", expandContext && context.parentNode || context), dirrunsUnique = dirruns += null == contextBackup ? 1 : Math.random() || 0.1; for(outermost && (outermostContext = context !== document && context, cachedruns = matcherCachedRuns); null != (elem = elems[i]); i++){ if (byElement && elem) { - for(j = 0; matcher = elementMatchers[j++];)if (matcher(elem, context, xml)) { + for(j = 0; matcher = elementMatchers1[j++];)if (matcher(elem, context, xml)) { results.push(elem); break; } @@ -1676,12 +1676,12 @@ bySet && ((elem = !matcher && elem) && matchedCount--, seed && unmatched.push(elem)); } if (matchedCount += i, bySet && i !== matchedCount) { - for(j = 0; matcher = setMatchers[j++];)matcher(unmatched, setMatched, context, xml); + for(j = 0; matcher = setMatchers1[j++];)matcher(unmatched, setMatched, context, xml); if (seed) { if (matchedCount > 0) for(; i--;)unmatched[i] || setMatched[i] || (setMatched[i] = pop.call(results)); setMatched = condense(setMatched); } - push.apply(results, setMatched), outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1 && Sizzle.uniqueSort(results); + push.apply(results, setMatched), outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers1.length > 1 && Sizzle.uniqueSort(results); } return outermost && (dirruns = dirrunsUnique, outermostContext = contextBackup), unmatched; }, bySet ? markFunction(superMatcher) : superMatcher)); diff --git a/crates/swc_ecma_minifier/tests/projects/output/jquery.mobile-1.4.2.js b/crates/swc_ecma_minifier/tests/projects/output/jquery.mobile-1.4.2.js index b2540f8bc77..abb1d9c7212 100644 --- a/crates/swc_ecma_minifier/tests/projects/output/jquery.mobile-1.4.2.js +++ b/crates/swc_ecma_minifier/tests/projects/output/jquery.mobile-1.4.2.js @@ -241,7 +241,7 @@ }, haveParents: function(elements, attr) { if (!$1.mobile.ignoreContentEnabled) return elements; - var e, $element, excluded, i, c, count = elements.length, $newSet = $1(); + var e, $element, excluded, i, count = elements.length, $newSet = $1(); for(i = 0; i < count; i++){ for($element = elements.eq(i), excluded = !1, e = elements[i]; e;){ if ("false" === (e.getAttribute ? e.getAttribute("data-" + $1.mobile.ns + attr) : "")) { @@ -1189,7 +1189,7 @@ }, handler = function() { (diff = (curr = new Date().getTime()) - lastCall) >= 250 ? (lastCall = curr, jQuery(this).trigger("throttledresize")) : (heldCall && clearTimeout(heldCall), heldCall = setTimeout(handler, 250 - diff)); }, lastCall = 0, function($, window) { - var get_orientation, last_orientation, initial_orientation_is_landscape, initial_orientation_is_default, ww, wh, landscape_threshold, win = $(window), event_name = "orientationchange", portrait_map = { + var get_orientation, last_orientation, initial_orientation_is_landscape, initial_orientation_is_default, ww, wh, win = $(window), event_name = "orientationchange", portrait_map = { 0: !0, 180: !0 }; @@ -1827,8 +1827,8 @@ week: !1 }, $21.mobile.page.prototype.options.degradeInputs = $21.mobile.degradeInputs, $21.mobile.degradeInputsWithin = function(target) { (target = $21(target)).find("input").not($21.mobile.page.prototype.keepNativeSelector()).each(function() { - var html, hasType, findstr, repstr, element = $21(this), type = this.getAttribute("type"), optType = $21.mobile.degradeInputs[type] || "text"; - $21.mobile.degradeInputs[type] && (findstr = (hasType = (html = $21("
").html(element.clone()).html()).indexOf(" type=") > -1) ? /\s+type=["']?\w+['"]?/ : /\/?>/, repstr = ' type="' + optType + '" data-' + $21.mobile.ns + 'type="' + type + '"' + (hasType ? "" : ">"), element.replaceWith(html.replace(findstr, repstr))); + var html, hasType, repstr, element = $21(this), type = this.getAttribute("type"), optType = $21.mobile.degradeInputs[type] || "text"; + $21.mobile.degradeInputs[type] && (hasType = (html = $21("
").html(element.clone()).html()).indexOf(" type=") > -1, repstr = ' type="' + optType + '" data-' + $21.mobile.ns + 'type="' + type + '"' + (hasType ? "" : ">"), element.replaceWith(html.replace(hasType ? /\s+type=["']?\w+['"]?/ : /\/?>/, repstr))); }); }, function($, window, undefined) { $.widget("mobile.page", $.mobile.page, { @@ -2141,7 +2141,7 @@ _beforeListviewRefresh: $.noop, _afterListviewRefresh: $.noop, refresh: function(create) { - var buttonClass, pos, numli, item, itemClass, itemTheme, itemIcon, icon, a, isDivider, startCount, newStartCount, value, last, splittheme, splitThemeClass, spliticon, altButtonClass, dividerTheme, li, o = this.options, $list = this.element, ol = !!$.nodeName($list[0], "ol"), start = $list.attr("start"), itemClassDict = {}, countBubbles = $list.find(".ui-li-count"), countTheme = getAttr($list[0], "counttheme") || this.options.countTheme, countThemeClass = countTheme ? "ui-body-" + countTheme : "ui-body-inherit"; + var buttonClass, pos, numli, item, itemClass, itemTheme, itemIcon, icon, a, isDivider, startCount, newStartCount, value, last, splittheme, splitThemeClass, altButtonClass, dividerTheme, li, o = this.options, $list = this.element, ol = !!$.nodeName($list[0], "ol"), start = $list.attr("start"), itemClassDict = {}, countBubbles = $list.find(".ui-li-count"), countTheme = getAttr($list[0], "counttheme") || this.options.countTheme, countThemeClass = countTheme ? "ui-body-" + countTheme : "ui-body-inherit"; for(o.theme && $list.addClass("ui-group-theme-" + o.theme), ol && (start || 0 === start) && (startCount = parseInt(start, 10) - 1, $list.css("counter-reset", "listnumbering " + startCount)), this._beforeListviewRefresh(), li = this._getChildrenByTagName($list[0], "li", "LI"), pos = 0, numli = li.length; pos < numli; pos++)item = li.eq(pos), itemClass = "", (create || 0 > item[0].className.search(/\bui-li-static\b|\bui-li-divider\b/)) && (a = this._getChildrenByTagName(item[0], "a", "A"), isDivider = "list-divider" === getAttr(item[0], "role"), value = item.attr("value"), itemTheme = getAttr(item[0], "theme"), a.length && 0 > a[0].className.search(/\bui-btn\b/) && !isDivider ? (icon = !1 !== (itemIcon = getAttr(item[0], "icon")) && (itemIcon || o.icon), a.removeClass("ui-link"), buttonClass = "ui-btn", itemTheme && (buttonClass += " ui-btn-" + itemTheme), a.length > 1 ? (itemClass = "ui-li-has-alt", splitThemeClass = (splittheme = getAttr((last = a.last())[0], "theme") || o.splitTheme || getAttr(item[0], "theme", !0)) ? " ui-btn-" + splittheme : "", altButtonClass = "ui-btn ui-btn-icon-notext ui-icon-" + (getAttr(last[0], "icon") || getAttr(item[0], "icon") || o.splitIcon) + splitThemeClass, last.attr("title", $.trim(last.getEncodedText())).addClass(altButtonClass).empty()) : icon && (buttonClass += " ui-btn-icon-right ui-icon-" + icon), a.first().addClass(buttonClass)) : isDivider ? (itemClass = "ui-li-divider ui-bar-" + (getAttr(item[0], "theme") || o.dividerTheme || o.theme || "inherit"), item.attr("role", "heading")) : a.length <= 0 && (itemClass = "ui-li-static ui-body-" + (itemTheme || "inherit")), ol && value && (newStartCount = parseInt(value, 10) - 1, item.css("counter-reset", "listnumbering " + newStartCount))), itemClassDict[itemClass] || (itemClassDict[itemClass] = []), itemClassDict[itemClass].push(item[0]); for(itemClass in itemClassDict)$(itemClassDict[itemClass]).addClass(itemClass); countBubbles.each(function() { @@ -2555,14 +2555,14 @@ this.refresh(undefined, !1, !0); }, refresh: function(val, isfromControl, preventInputUpdate) { - var bg, left, width, data, tol, pxStep, percent, control, isInput, optionElements, min, max, step, newval, valModStep, alignValue, percentPerStep, handlePercent, aPercent, bPercent, valueChanged, self = this, parentTheme = $.mobile.getAttribute(this.element[0], "theme"), theme = this.options.theme || parentTheme, trackTheme = this.options.trackTheme || parentTheme, cornerClass = this.options.corners ? " ui-corner-all" : "", miniClass = this.options.mini ? " ui-mini" : ""; + var bg, left, width, data, pxStep, percent, control, isInput, optionElements, min, max, step, newval, valModStep, alignValue, percentPerStep, handlePercent, aPercent, bPercent, valueChanged, self = this, parentTheme = $.mobile.getAttribute(this.element[0], "theme"), theme = this.options.theme || parentTheme, trackTheme = this.options.trackTheme || parentTheme, cornerClass = this.options.corners ? " ui-corner-all" : "", miniClass = this.options.mini ? " ui-mini" : ""; if (self.slider[0].className = [ this.isToggleSwitch ? "ui-slider ui-slider-switch ui-slider-track ui-shadow-inset" : "ui-slider-track ui-shadow-inset", trackTheme ? " ui-bar-" + trackTheme : " ui-bar-inherit", cornerClass, miniClass ].join(""), (this.options.disabled || this.element.prop("disabled")) && this.disable(), this.value = this._value(), this.options.highlight && !this.isToggleSwitch && 0 === this.slider.find(".ui-slider-bg").length && (this.valuebg = ((bg = document1.createElement("div")).className = "ui-slider-bg " + $.mobile.activeBtnClass, $(bg).prependTo(self.slider))), this.handle.addClass("ui-btn" + (theme ? " ui-btn-" + theme : "") + " ui-shadow"), control = this.element, optionElements = (isInput = !this.isToggleSwitch) ? [] : control.find("option"), min = isInput ? parseFloat(control.attr("min")) : 0, max = isInput ? parseFloat(control.attr("max")) : optionElements.length - 1, step = isInput && parseFloat(control.attr("step")) > 0 ? parseFloat(control.attr("step")) : 1, "object" == typeof val) { - if (data = val, tol = 8, left = this.slider.offset().left, pxStep = (width = this.slider.width()) / ((max - min) / step), !this.dragging || data.pageX < left - tol || data.pageX > left + width + tol) return; + if (data = val, left = this.slider.offset().left, pxStep = (width = this.slider.width()) / ((max - min) / step), !this.dragging || data.pageX < left - 8 || data.pageX > left + width + 8) return; percent = pxStep > 1 ? (data.pageX - left) / width * 100 : Math.round((data.pageX - left) / width * 100); } else null == val && (val = isInput ? parseFloat(control.val() || 0) : control[0].selectedIndex), percent = (parseFloat(val) - min) / (max - min) * 100; if (!isNaN(percent) && (valModStep = ((newval = percent / 100 * (max - min) + min) - min) % step, alignValue = newval - valModStep, 2 * Math.abs(valModStep) >= step && (alignValue += valModStep > 0 ? step : -step), percentPerStep = 100 / ((max - min) / step), newval = parseFloat(alignValue.toFixed(5)), void 0 === pxStep && (pxStep = width / ((max - min) / step)), pxStep > 1 && isInput && (percent = (newval - min) * percentPerStep * (1 / step)), percent < 0 && (percent = 0), percent > 100 && (percent = 100), newval < min && (newval = min), newval > max && (newval = max), this.handle.css("left", percent + "%"), this.handle[0].setAttribute("aria-valuenow", isInput ? newval : optionElements.eq(newval).attr("value")), this.handle[0].setAttribute("aria-valuetext", isInput ? newval : optionElements.eq(newval).getEncodedText()), this.handle[0].setAttribute("title", isInput ? newval : optionElements.eq(newval).getEncodedText()), this.valuebg && this.valuebg.css("width", percent + "%"), this._labels && (handlePercent = this.handle.width() / this.slider.width() * 100, aPercent = percent && handlePercent + (100 - handlePercent) * percent / 100, bPercent = 100 === percent ? 0 : Math.min(handlePercent + 100 - aPercent, 100), this._labels.each(function() { @@ -2913,7 +2913,7 @@ this._prepareHeightUpdate(this.options.keyupTimeoutBuffer); }, _updateHeight: function() { - var paddingBottom, paddingHeight, scrollHeight, clientHeight, height, scrollTop = this.window.scrollTop(); + var scrollHeight, clientHeight, height, scrollTop = this.window.scrollTop(); this.keyupTimeout = 0, "onpage" in this.element[0] || this.element.css({ height: 0, "min-height": 0, @@ -4136,7 +4136,7 @@ this[this._open ? "close" : "open"](); }, _destroy: function() { - var otherPanels, o = this.options, multiplePanels = $("body > :mobile-panel").length + $.mobile.activePage.find(":mobile-panel").length > 1; + var o = this.options, multiplePanels = $("body > :mobile-panel").length + $.mobile.activePage.find(":mobile-panel").length > 1; "overlay" !== o.display && (0 === $("body > :mobile-panel").add($.mobile.activePage.find(":mobile-panel")).not(".ui-panel-display-overlay").not(this.element).length && this._wrapper.children().unwrap(), this._open && (this._fixedToolbars().removeClass(o.classes.pageContentPrefix + "-open"), $.support.cssTransform3d && o.animate && this._fixedToolbars().removeClass(o.classes.animate), this._page().parent().removeClass(o.classes.pageContainer), o.theme && this._page().parent().removeClass(o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme))), multiplePanels || this.document.off("panelopen panelclose"), this._open && this._page().jqmRemoveData("panel"), this._panelInner.children().unwrap(), this.element.removeClass([ this._getPanelClasses(), o.classes.panelOpen, @@ -4310,7 +4310,7 @@ return 0 === items.length && (items = elem.children()), items; }, _filterItems: function(val) { - var idx, callback, length, dst, show = [], hide = [], opts = this.options, filterItems = this._getFilterableItems(); + var idx, callback, length, show = [], hide = [], opts = this.options, filterItems = this._getFilterableItems(); if (null != val) for(idx = 0, callback = opts.filterCallback || defaultFilterCallback, length = filterItems.length; idx < length; idx++)(callback.call(filterItems[idx], idx, val) ? hide : show).push(filterItems[idx]); 0 === hide.length ? filterItems[opts.filterReveal ? "addClass" : "removeClass"]("ui-screen-hidden") : ($(hide).addClass("ui-screen-hidden"), $(show).removeClass("ui-screen-hidden")), this._refreshChildWidget(), this._trigger("filter", null, { items: filterItems @@ -4702,7 +4702,7 @@ }); }(jQuery), function($, window) { $.mobile.iosorientationfixEnabled = !0; - var zoom, evt, x, y, z, aig, ua = navigator.userAgent; + var zoom, x, y, z, aig, ua = navigator.userAgent; if (!(/iPhone|iPad|iPod/.test(navigator.platform) && /OS [1-5]_[0-9_]* like Mac OS X/i.test(ua) && ua.indexOf("AppleWebKit") > -1)) { $.mobile.iosorientationfixEnabled = !1; return; diff --git a/crates/swc_ecma_minifier/tests/projects/output/react-17.0.1.js b/crates/swc_ecma_minifier/tests/projects/output/react-17.0.1.js index 093bd674eea..573f5561d2d 100644 --- a/crates/swc_ecma_minifier/tests/projects/output/react-17.0.1.js +++ b/crates/swc_ecma_minifier/tests/projects/output/react-17.0.1.js @@ -218,14 +218,14 @@ } if (key || ref) { var props1, displayName, warnAboutAccessingKey, props2, displayName1, warnAboutAccessingRef, displayName2 = "function" == typeof type ? type.displayName || type.name || "Unknown" : type; - key && (props1 = props, displayName = displayName2, (warnAboutAccessingKey = function() { - specialPropKeyWarningShown || (specialPropKeyWarningShown = !0, error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName)); - }).isReactWarning = !0, Object.defineProperty(props1, "key", { + key && ((warnAboutAccessingKey = function() { + specialPropKeyWarningShown || (specialPropKeyWarningShown = !0, error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName2)); + }).isReactWarning = !0, Object.defineProperty(props, "key", { get: warnAboutAccessingKey, configurable: !0 - })), ref && (props2 = props, displayName1 = displayName2, (warnAboutAccessingRef = function() { - specialPropRefWarningShown || (specialPropRefWarningShown = !0, error("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName1)); - }).isReactWarning = !0, Object.defineProperty(props2, "ref", { + })), ref && ((warnAboutAccessingRef = function() { + specialPropRefWarningShown || (specialPropRefWarningShown = !0, error("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName2)); + }).isReactWarning = !0, Object.defineProperty(props, "ref", { get: warnAboutAccessingRef, configurable: !0 })); diff --git a/crates/swc_ecma_minifier/tests/projects/output/react-dom-17.0.2.js b/crates/swc_ecma_minifier/tests/projects/output/react-dom-17.0.2.js index 99f3badbfc2..eb6fa80c35e 100644 --- a/crates/swc_ecma_minifier/tests/projects/output/react-dom-17.0.2.js +++ b/crates/swc_ecma_minifier/tests/projects/output/react-dom-17.0.2.js @@ -3158,12 +3158,12 @@ } return listenerWrapper.bind(null, domEventName, eventSystemFlags, targetContainer); }(targetContainer, domEventName, eventSystemFlags), isPassiveListener = void 0; - passiveBrowserEventsSupported && ("touchstart" === domEventName || "touchmove" === domEventName || "wheel" === domEventName) && (isPassiveListener = !0), isCapturePhaseListener ? void 0 !== isPassiveListener ? (target = targetContainer, eventType = domEventName, listener = listener4, passive = isPassiveListener, target.addEventListener(eventType, listener, { + passiveBrowserEventsSupported && ("touchstart" === domEventName || "touchmove" === domEventName || "wheel" === domEventName) && (isPassiveListener = !0), isCapturePhaseListener ? void 0 !== isPassiveListener ? (passive = isPassiveListener, targetContainer.addEventListener(domEventName, listener4, { capture: !0, passive: passive - })) : (target1 = targetContainer, eventType1 = domEventName, listener1 = listener4, target1.addEventListener(eventType1, listener1, !0)) : void 0 !== isPassiveListener ? (target2 = targetContainer, eventType2 = domEventName, listener2 = listener4, passive1 = isPassiveListener, target2.addEventListener(eventType2, listener2, { + })) : targetContainer.addEventListener(domEventName, listener4, !0) : void 0 !== isPassiveListener ? (passive1 = isPassiveListener, targetContainer.addEventListener(domEventName, listener4, { passive: passive1 - })) : (target3 = targetContainer, eventType3 = domEventName, listener3 = listener4, target3.addEventListener(eventType3, listener3, !1)); + })) : targetContainer.addEventListener(domEventName, listener4, !1); } function isMatchingRootContainer(grandContainer, targetContainer) { return grandContainer === targetContainer || 8 === grandContainer.nodeType && grandContainer.parentNode === targetContainer; @@ -3352,7 +3352,7 @@ } })(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags), function(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) { var node, state, elem, nodeName, elem1, nodeName1, getTargetInstFunc, handleEventFunc, targetNode = targetInst ? getNodeFromInstance(targetInst) : window; - if ("select" === (nodeName = targetNode.nodeName && targetNode.nodeName.toLowerCase()) || "input" === nodeName && "file" === targetNode.type ? getTargetInstFunc = getTargetInstForChangeEvent : isTextInputElement(targetNode) ? isInputEventSupported ? getTargetInstFunc = getTargetInstForInputOrChangeEvent : (getTargetInstFunc = getTargetInstForInputEventPolyfill, handleEventFunc = handleEventsForInputEventPolyfill) : (nodeName1 = (elem1 = targetNode).nodeName) && "input" === nodeName1.toLowerCase() && ("checkbox" === elem1.type || "radio" === elem1.type) && (getTargetInstFunc = getTargetInstForClickEvent), getTargetInstFunc) { + if ("select" === (nodeName = targetNode.nodeName && targetNode.nodeName.toLowerCase()) || "input" === nodeName && "file" === targetNode.type ? getTargetInstFunc = getTargetInstForChangeEvent : isTextInputElement(targetNode) ? isInputEventSupported ? getTargetInstFunc = getTargetInstForInputOrChangeEvent : (getTargetInstFunc = getTargetInstForInputEventPolyfill, handleEventFunc = handleEventsForInputEventPolyfill) : (nodeName1 = targetNode.nodeName) && "input" === nodeName1.toLowerCase() && ("checkbox" === targetNode.type || "radio" === targetNode.type) && (getTargetInstFunc = getTargetInstForClickEvent), getTargetInstFunc) { var inst = getTargetInstFunc(domEventName, targetInst); if (inst) { createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, nativeEventTarget); @@ -4244,11 +4244,11 @@ } function scheduleWorkOnParentPath(parent, renderLanes) { for(var node = parent; null !== node;){ - var a, a1, a2, alternate = node.alternate; + var alternate = node.alternate; if (isSubsetOfLanes(node.childLanes, renderLanes)) { if (null === alternate || isSubsetOfLanes(alternate.childLanes, renderLanes)) break; - alternate.childLanes = (a = alternate.childLanes) | renderLanes; - } else node.childLanes = (a1 = node.childLanes) | renderLanes, null !== alternate && (alternate.childLanes = (a2 = alternate.childLanes) | renderLanes); + alternate.childLanes = alternate.childLanes | renderLanes; + } else node.childLanes = node.childLanes | renderLanes, null !== alternate && (alternate.childLanes = alternate.childLanes | renderLanes); node = node.return; } } @@ -4600,7 +4600,7 @@ } 1 & workInProgress.mode && ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance2), ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance2), processUpdateQueue(workInProgress, newProps, instance2, renderLanes), instance2.state = workInProgress.memoizedState; var getDerivedStateFromProps = ctor.getDerivedStateFromProps; - "function" == typeof getDerivedStateFromProps && (applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps), instance2.state = workInProgress.memoizedState), "function" != typeof ctor.getDerivedStateFromProps && "function" != typeof instance2.getSnapshotBeforeUpdate && ("function" == typeof instance2.UNSAFE_componentWillMount || "function" == typeof instance2.componentWillMount) && (workInProgress2 = workInProgress, oldState = (instance1 = instance2).state, "function" == typeof instance1.componentWillMount && instance1.componentWillMount(), "function" == typeof instance1.UNSAFE_componentWillMount && instance1.UNSAFE_componentWillMount(), oldState !== instance1.state && (error("%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.", getComponentName(workInProgress2.type) || "Component"), classComponentUpdater.enqueueReplaceState(instance1, instance1.state, null)), processUpdateQueue(workInProgress, newProps, instance2, renderLanes), instance2.state = workInProgress.memoizedState), "function" == typeof instance2.componentDidMount && (workInProgress.flags |= 4); + "function" == typeof getDerivedStateFromProps && (applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps), instance2.state = workInProgress.memoizedState), "function" != typeof ctor.getDerivedStateFromProps && "function" != typeof instance2.getSnapshotBeforeUpdate && ("function" == typeof instance2.UNSAFE_componentWillMount || "function" == typeof instance2.componentWillMount) && (oldState = instance2.state, "function" == typeof instance2.componentWillMount && instance2.componentWillMount(), "function" == typeof instance2.UNSAFE_componentWillMount && instance2.UNSAFE_componentWillMount(), oldState !== instance2.state && (error("%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.", getComponentName(workInProgress.type) || "Component"), classComponentUpdater.enqueueReplaceState(instance2, instance2.state, null)), processUpdateQueue(workInProgress, newProps, instance2, renderLanes), instance2.state = workInProgress.memoizedState), "function" == typeof instance2.componentDidMount && (workInProgress.flags |= 4); } var warnForMissingKey = function(child, returnFiber) {}; didWarnAboutMaps = !1, didWarnAboutGenerators = !1, didWarnAboutStringRefs = {}, ownerHasKeyUseWarning = {}, ownerHasFunctionTypeWarning = {}, warnForMissingKey = function(child, returnFiber) { @@ -6200,7 +6200,7 @@ return updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes); } function updateOffscreenComponent(current, workInProgress, renderLanes) { - var nextBaseLanes, a, a1, _subtreeRenderLanes, nextProps = workInProgress.pendingProps, nextChildren = nextProps.children, prevState = null !== current ? current.memoizedState : null; + var nextBaseLanes, _subtreeRenderLanes, nextProps = workInProgress.pendingProps, nextChildren = nextProps.children, prevState = null !== current ? current.memoizedState : null; if ("hidden" === nextProps.mode || "unstable-defer-without-hiding" === nextProps.mode) { if ((4 & workInProgress.mode) == 0) workInProgress.memoizedState = { baseLanes: 0 @@ -6209,13 +6209,13 @@ baseLanes: 0 }, pushRenderLanes(workInProgress, null !== prevState ? prevState.baseLanes : renderLanes); else { - nextBaseLanes = null !== prevState ? (a = prevState.baseLanes) | renderLanes : renderLanes, markSpawnedWork(1073741824), workInProgress.lanes = workInProgress.childLanes = 1073741824; + nextBaseLanes = null !== prevState ? prevState.baseLanes | renderLanes : renderLanes, markSpawnedWork(1073741824), workInProgress.lanes = workInProgress.childLanes = 1073741824; var _nextState = { baseLanes: nextBaseLanes }; return workInProgress.memoizedState = _nextState, pushRenderLanes(workInProgress, nextBaseLanes), null; } - } else null !== prevState ? (_subtreeRenderLanes = (a1 = prevState.baseLanes) | renderLanes, workInProgress.memoizedState = null) : _subtreeRenderLanes = renderLanes, pushRenderLanes(workInProgress, _subtreeRenderLanes); + } else null !== prevState ? (_subtreeRenderLanes = prevState.baseLanes | renderLanes, workInProgress.memoizedState = null) : _subtreeRenderLanes = renderLanes, pushRenderLanes(workInProgress, _subtreeRenderLanes); return reconcileChildren(current, workInProgress, nextChildren, renderLanes), workInProgress.child; } function markRef(current, workInProgress) { @@ -6298,7 +6298,7 @@ } isRendering = !1; } - return (workInProgress.flags |= 1, null !== current && didCaptureError) ? (current1 = current, workInProgress1 = workInProgress, nextChildren = nextChildren1, renderLanes1 = renderLanes, workInProgress1.child = reconcileChildFibers(workInProgress1, current1.child, null, renderLanes1), workInProgress1.child = reconcileChildFibers(workInProgress1, null, nextChildren, renderLanes1)) : reconcileChildren(current, workInProgress, nextChildren1, renderLanes), workInProgress.memoizedState = instance.state, hasContext && invalidateContextProvider(workInProgress, Component, !0), workInProgress.child; + return (workInProgress.flags |= 1, null !== current && didCaptureError) ? (workInProgress1 = workInProgress, nextChildren = nextChildren1, workInProgress1.child = reconcileChildFibers(workInProgress1, current.child, null, renderLanes), workInProgress1.child = reconcileChildFibers(workInProgress1, null, nextChildren, renderLanes)) : reconcileChildren(current, workInProgress, nextChildren1, renderLanes), workInProgress.memoizedState = instance.state, hasContext && invalidateContextProvider(workInProgress, Component, !0), workInProgress.child; } function pushHostRootContext(workInProgress) { var root = workInProgress.stateNode; @@ -6398,13 +6398,13 @@ (primaryChildFragment = workInProgress.child).childLanes = 0, primaryChildFragment.pendingProps = primaryChildProps, 8 & workInProgress.mode && (primaryChildFragment.actualDuration = 0, primaryChildFragment.actualStartTime = -1, primaryChildFragment.selfBaseDuration = currentPrimaryChildFragment.selfBaseDuration, primaryChildFragment.treeBaseDuration = currentPrimaryChildFragment.treeBaseDuration); var progressedLastEffect = primaryChildFragment.lastEffect; null !== progressedLastEffect ? (workInProgress.firstEffect = primaryChildFragment.firstEffect, workInProgress.lastEffect = progressedLastEffect, progressedLastEffect.nextEffect = null) : workInProgress.firstEffect = workInProgress.lastEffect = null; - } else primaryChildFragment = createWorkInProgress(current1 = currentPrimaryChildFragment, primaryChildProps); + } else primaryChildFragment = createWorkInProgress(currentPrimaryChildFragment, primaryChildProps); return null !== currentFallbackChildFragment ? fallbackChildFragment = createWorkInProgress(currentFallbackChildFragment, fallbackChildren) : (fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null), fallbackChildFragment.flags |= 2), fallbackChildFragment.return = workInProgress, primaryChildFragment.return = workInProgress, primaryChildFragment.sibling = fallbackChildFragment, workInProgress.child = primaryChildFragment, fallbackChildFragment; } function scheduleWorkOnFiber(fiber, renderLanes) { fiber.lanes = fiber.lanes | renderLanes; - var a, alternate = fiber.alternate; - null !== alternate && (alternate.lanes = (a = alternate.lanes) | renderLanes), scheduleWorkOnParentPath(fiber.return, renderLanes); + var alternate = fiber.alternate; + null !== alternate && (alternate.lanes = alternate.lanes | renderLanes), scheduleWorkOnParentPath(fiber.return, renderLanes); } function validateSuspenseListNestedChild(childSlot, index) { var isArray = Array.isArray(childSlot), isIterable = !isArray && "function" == typeof getIteratorFn(childSlot); @@ -6720,12 +6720,12 @@ for(var dependency = list.firstContext; null !== dependency;){ if (dependency.context === context && (dependency.observedBits & changedBits) != 0) { if (1 === fiber.tag) { - var a, update = createUpdate(-1, pickArbitraryLane(renderLanes)); + var update = createUpdate(-1, pickArbitraryLane(renderLanes)); update.tag = 2, enqueueUpdate(fiber, update); } fiber.lanes = fiber.lanes | renderLanes; var alternate = fiber.alternate; - null !== alternate && (alternate.lanes = (a = alternate.lanes) | renderLanes), scheduleWorkOnParentPath(fiber.return, renderLanes), list.lanes = list.lanes | renderLanes; + null !== alternate && (alternate.lanes = alternate.lanes | renderLanes), scheduleWorkOnParentPath(fiber.return, renderLanes), list.lanes = list.lanes | renderLanes; break; } dependency = dependency.next; @@ -7075,7 +7075,7 @@ return shouldUpdate; })(workInProgress) && markUpdate(workInProgress); else { - workInProgress.stateNode = (text = newProps, rootContainerInstance4 = _rootContainerInstance, hostContext3 = _currentHostContext, internalInstanceHandle1 = workInProgress, validateDOMNesting(null, text, hostContext3.ancestorInfo), hostInst2 = internalInstanceHandle1, (node4 = (text1 = text, textNode = getOwnerDocumentFromRootContainer(rootContainerInstance4).createTextNode(text1)))[internalInstanceKey] = hostInst2, textNode); + workInProgress.stateNode = (validateDOMNesting(null, newProps, _currentHostContext.ancestorInfo), hostInst2 = workInProgress, (node4 = textNode = getOwnerDocumentFromRootContainer(_rootContainerInstance).createTextNode(newProps))[internalInstanceKey] = hostInst2, textNode); } } return null; @@ -7381,7 +7381,7 @@ var firstEffect = lastEffect.next, effect = firstEffect; do { var current1, _effect2 = effect, destroy = _effect2.destroy, tag = _effect2.tag; - void 0 !== destroy && ((4 & tag) != 0 ? enqueuePendingPassiveHookEffectUnmount(current, effect) : (current1 = current, invokeGuardedCallback(null, destroy, null), hasError && captureCommitPhaseError(current1, clearCaughtError()))), effect = effect.next; + void 0 !== destroy && ((4 & tag) != 0 ? enqueuePendingPassiveHookEffectUnmount(current, effect) : (invokeGuardedCallback(null, destroy, null), hasError && captureCommitPhaseError(current, clearCaughtError()))), effect = effect.next; }while (effect !== firstEffect) } } @@ -7389,7 +7389,7 @@ case 1: safelyDetachRef(current); var current2, instance = current.stateNode; - "function" == typeof instance.componentWillUnmount && (invokeGuardedCallback(null, callComponentWillUnmountWithTimer, null, current2 = current, instance), hasError && captureCommitPhaseError(current2, clearCaughtError())); + "function" == typeof instance.componentWillUnmount && (invokeGuardedCallback(null, callComponentWillUnmountWithTimer, null, current, instance), hasError && captureCommitPhaseError(current, clearCaughtError())); return; case 5: safelyDetachRef(current); @@ -7447,7 +7447,7 @@ var tag = node.tag, isHost = 5 === tag || 6 === tag; if (isHost) { var container, child, beforeChild, container1, child1, parentNode, reactRootContainer, stateNode = isHost ? node.stateNode : node.stateNode.instance; - before ? (container = parent, child = stateNode, beforeChild = before, 8 === container.nodeType ? container.parentNode.insertBefore(child, beforeChild) : container.insertBefore(child, beforeChild)) : (container1 = parent, child1 = stateNode, 8 === container1.nodeType ? (parentNode = container1.parentNode).insertBefore(child1, container1) : (parentNode = container1).appendChild(child1), (null === (reactRootContainer = container1._reactRootContainer) || void 0 === reactRootContainer) && null === parentNode.onclick && trapClickOnNonInteractiveElement(parentNode)); + before ? 8 === parent.nodeType ? parent.parentNode.insertBefore(stateNode, before) : parent.insertBefore(stateNode, before) : (8 === parent.nodeType ? (parentNode = parent.parentNode).insertBefore(stateNode, parent) : (parentNode = parent).appendChild(stateNode), (null === (reactRootContainer = parent._reactRootContainer) || void 0 === reactRootContainer) && null === parentNode.onclick && trapClickOnNonInteractiveElement(parentNode)); } else if (4 === tag) ; else { var child2 = node.child; @@ -7558,7 +7558,7 @@ if (null != instance) { var node, props, domElement, updatePayload, type, oldProps, newProps, newProps1 = finishedWork.memoizedProps, oldProps1 = null !== current ? current.memoizedProps : newProps1, type1 = finishedWork.type, updatePayload1 = finishedWork.updateQueue; if (finishedWork.updateQueue = null, null !== updatePayload1) { - domElement = instance, updatePayload = updatePayload1, type = type1, oldProps = oldProps1, node = domElement, props = newProps = newProps1, node[internalPropsKey] = props, function(domElement, updatePayload, tag, lastRawProps, nextRawProps) { + node = instance, props = newProps1, node[internalPropsKey] = props, function(domElement, updatePayload, tag, lastRawProps, nextRawProps) { "input" === tag && "radio" === nextRawProps.type && null != nextRawProps.name && updateChecked(domElement, nextRawProps); var element, props, node, wasMultiple, value, wasCustomComponentTag = isCustomComponent(tag, lastRawProps); switch(function(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) { @@ -7576,7 +7576,7 @@ case "select": wasMultiple = (node = domElement)._wrapperState.wasMultiple, node._wrapperState.wasMultiple = !!nextRawProps.multiple, null != (value = nextRawProps.value) ? updateOptions(node, !!nextRawProps.multiple, value, !1) : !!nextRawProps.multiple !== wasMultiple && (null != nextRawProps.defaultValue ? updateOptions(node, !!nextRawProps.multiple, nextRawProps.defaultValue, !0) : updateOptions(node, !!nextRawProps.multiple, nextRawProps.multiple ? [] : "", !1)); } - }(domElement, updatePayload, type, oldProps, newProps); + }(instance, updatePayload1, type1, oldProps1, newProps1); } } return; @@ -7667,7 +7667,7 @@ didWarnAboutUpdateInRender || (error("Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."), didWarnAboutUpdateInRender = !0); } }(fiber); - var a, root = markUpdateLaneFromFiberToRoot(fiber, lane); + var root = markUpdateLaneFromFiberToRoot(fiber, lane); if (null === root) return function(fiber) { var tag = fiber.tag; if ((3 === tag || 1 === tag || 0 === tag || 11 === tag || 14 === tag || 15 === tag || 22 === tag) && (8192 & fiber.flags) == 0) { @@ -7689,7 +7689,7 @@ } } }(fiber), null; - markRootUpdated(root, lane, eventTime), root === workInProgressRoot && (workInProgressRootUpdatedLanes = (a = workInProgressRootUpdatedLanes) | lane, 4 === workInProgressRootExitStatus && markRootSuspended$1(root, workInProgressRootRenderLanes)); + markRootUpdated(root, lane, eventTime), root === workInProgressRoot && (workInProgressRootUpdatedLanes = workInProgressRootUpdatedLanes | lane, 4 === workInProgressRootExitStatus && markRootSuspended$1(root, workInProgressRootRenderLanes)); var priorityLevel = getCurrentPriorityLevel(); 1 === lane ? (8 & executionContext) != 0 && (48 & executionContext) == 0 ? (schedulePendingInteractions(root, lane), performSyncWorkOnRoot(root)) : (ensureRootIsScheduled(root, eventTime), schedulePendingInteractions(root, lane), 0 === executionContext && (resetRenderTimer(), flushSyncCallbackQueue())) : ((4 & executionContext) != 0 && (98 === priorityLevel || 99 === priorityLevel) && (null === rootsWithPendingDiscreteUpdates ? rootsWithPendingDiscreteUpdates = new Set([ root @@ -7697,9 +7697,9 @@ } function markUpdateLaneFromFiberToRoot(sourceFiber, lane) { sourceFiber.lanes = sourceFiber.lanes | lane; - var a, a1, a2, alternate = sourceFiber.alternate; - null !== alternate && (alternate.lanes = (a = alternate.lanes) | lane), null === alternate && (1026 & sourceFiber.flags) != 0 && warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber); - for(var node = sourceFiber, parent = sourceFiber.return; null !== parent;)(parent.childLanes = (a1 = parent.childLanes) | lane, null !== (alternate = parent.alternate)) ? alternate.childLanes = (a2 = alternate.childLanes) | lane : (1026 & parent.flags) != 0 && warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber), node = parent, parent = parent.return; + var alternate = sourceFiber.alternate; + null !== alternate && (alternate.lanes = alternate.lanes | lane), null === alternate && (1026 & sourceFiber.flags) != 0 && warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber); + for(var node = sourceFiber, parent = sourceFiber.return; null !== parent;)(parent.childLanes = parent.childLanes | lane, null !== (alternate = parent.alternate)) ? alternate.childLanes = alternate.childLanes | lane : (1026 & parent.flags) != 0 && warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber), node = parent, parent = parent.return; return 3 === node.tag ? node.stateNode : null; } function ensureRootIsScheduled(root, currentTime) { @@ -8028,13 +8028,13 @@ if (24 !== completedWork.tag && 23 !== completedWork.tag || null === completedWork.memoizedState || (1073741824 & subtreeRenderLanes) != 0 || (4 & completedWork.mode) == 0) { var newChildLanes = 0; if ((8 & completedWork.mode) != 0) { - for(var a, a1, actualDuration = completedWork.actualDuration, treeBaseDuration = completedWork.selfBaseDuration, shouldBubbleActualDurations = null === completedWork.alternate || completedWork.child !== completedWork.alternate.child, child = completedWork.child; null !== child;)newChildLanes = (a1 = newChildLanes) | ((a = child.lanes) | child.childLanes), shouldBubbleActualDurations && (actualDuration += child.actualDuration), treeBaseDuration += child.treeBaseDuration, child = child.sibling; + for(var actualDuration = completedWork.actualDuration, treeBaseDuration = completedWork.selfBaseDuration, shouldBubbleActualDurations = null === completedWork.alternate || completedWork.child !== completedWork.alternate.child, child = completedWork.child; null !== child;)newChildLanes = newChildLanes | (child.lanes | child.childLanes), shouldBubbleActualDurations && (actualDuration += child.actualDuration), treeBaseDuration += child.treeBaseDuration, child = child.sibling; if (13 === completedWork.tag && null !== completedWork.memoizedState) { var primaryChildFragment = completedWork.child; null !== primaryChildFragment && (treeBaseDuration -= primaryChildFragment.treeBaseDuration); } completedWork.actualDuration = actualDuration, completedWork.treeBaseDuration = treeBaseDuration; - } else for(var a2, a3, _child = completedWork.child; null !== _child;)newChildLanes = (a3 = newChildLanes) | ((a2 = _child.lanes) | _child.childLanes), _child = _child.sibling; + } else for(var _child = completedWork.child; null !== _child;)newChildLanes = newChildLanes | (_child.lanes | _child.childLanes), _child = _child.sibling; completedWork.childLanes = newChildLanes; } })(completedWork), null !== returnFiber && (2048 & returnFiber.flags) == 0 && (null === returnFiber.firstEffect && (returnFiber.firstEffect = completedWork.firstEffect), null !== completedWork.lastEffect && (null !== returnFiber.lastEffect && (returnFiber.lastEffect.nextEffect = completedWork.firstEffect), returnFiber.lastEffect = completedWork.lastEffect), completedWork.flags > 1 && (null !== returnFiber.lastEffect ? returnFiber.lastEffect.nextEffect = completedWork : returnFiber.firstEffect = completedWork, returnFiber.lastEffect = completedWork)); @@ -8523,10 +8523,10 @@ } } function pingSuspendedRoot(root, wakeable, pingedLanes) { - var a, pingCache = root.pingCache; + var pingCache = root.pingCache; null !== pingCache && pingCache.delete(wakeable); var eventTime = requestEventTime(); - markRootPinged(root, pingedLanes), workInProgressRoot === root && isSubsetOfLanes(workInProgressRootRenderLanes, pingedLanes) && (4 === workInProgressRootExitStatus || 3 === workInProgressRootExitStatus && includesOnlyRetries(workInProgressRootRenderLanes) && now() - globalMostRecentFallbackTime < 500 ? prepareFreshStack(root, 0) : workInProgressRootPingedLanes = (a = workInProgressRootPingedLanes) | pingedLanes), ensureRootIsScheduled(root, eventTime), schedulePendingInteractions(root, pingedLanes); + markRootPinged(root, pingedLanes), workInProgressRoot === root && isSubsetOfLanes(workInProgressRootRenderLanes, pingedLanes) && (4 === workInProgressRootExitStatus || 3 === workInProgressRootExitStatus && includesOnlyRetries(workInProgressRootRenderLanes) && now() - globalMostRecentFallbackTime < 500 ? prepareFreshStack(root, 0) : workInProgressRootPingedLanes = workInProgressRootPingedLanes | pingedLanes), ensureRootIsScheduled(root, eventTime), schedulePendingInteractions(root, pingedLanes); } function resolveRetryWakeable(boundaryFiber, wakeable) { var retryCache, boundaryFiber1, retryLane, eventTime, root, lane, mode; @@ -8946,7 +8946,7 @@ } }(container, element); var fiber, current$1 = container.current, eventTime = requestEventTime(); - "undefined" != typeof jest && (fiber = current$1, !1 === didWarnAboutUnmockedScheduler && void 0 === unstable_flushAllWithoutAsserting && (2 & fiber.mode || 4 & fiber.mode) && (didWarnAboutUnmockedScheduler = !0, error("In Concurrent or Sync modes, the \"scheduler\" module needs to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: \njest.mock('scheduler', () => require('scheduler/unstable_mock'));\n\nFor more info, visit https://reactjs.org/link/mock-scheduler")), warnIfNotScopedWithMatchingAct(current$1)); + "undefined" != typeof jest && (!1 === didWarnAboutUnmockedScheduler && void 0 === unstable_flushAllWithoutAsserting && (2 & current$1.mode || 4 & current$1.mode) && (didWarnAboutUnmockedScheduler = !0, error("In Concurrent or Sync modes, the \"scheduler\" module needs to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: \njest.mock('scheduler', () => require('scheduler/unstable_mock'));\n\nFor more info, visit https://reactjs.org/link/mock-scheduler")), warnIfNotScopedWithMatchingAct(current$1)); var lane = requestUpdateLane(current$1), context = function(parentComponent) { if (!parentComponent) return emptyContextObject; var fiber = get(parentComponent), parentContext = function(fiber) { @@ -8981,7 +8981,7 @@ } function markRetryLaneImpl(fiber, retryLane) { var a, b, suspenseState = fiber.memoizedState; - null !== suspenseState && null !== suspenseState.dehydrated && (suspenseState.retryLane = (a = suspenseState.retryLane, b = retryLane, 0 !== a && a < b ? a : b)); + null !== suspenseState && null !== suspenseState.dehydrated && (suspenseState.retryLane = 0 !== (a = suspenseState.retryLane) && a < retryLane ? a : retryLane); } function markRetryLaneIfNotHydrated(fiber, retryLane) { markRetryLaneImpl(fiber, retryLane); diff --git a/crates/swc_ecma_minifier/tests/projects/output/yui-3.12.0.js b/crates/swc_ecma_minifier/tests/projects/output/yui-3.12.0.js index 516bc52724e..f1769c499d0 100644 --- a/crates/swc_ecma_minifier/tests/projects/output/yui-3.12.0.js +++ b/crates/swc_ecma_minifier/tests/projects/output/yui-3.12.0.js @@ -137,7 +137,7 @@ var YUI = function() { return this; }, _attach: function(r, moot) { - var i, name, mod, details, req, use, after, j, loader, def, go, mods = YUI.Env.mods, aliases = YUI.Env.aliases, Y = this, cache = YUI.Env._renderedMods, loader = Y.Env._loader, done = Y.Env._attached, len = r.length, c = []; + var i, name, mod, details, req, use, after, j, loader, def, mods = YUI.Env.mods, aliases = YUI.Env.aliases, Y = this, cache = YUI.Env._renderedMods, loader = Y.Env._loader, done = Y.Env._attached, len = r.length, c = []; for(i = 0; i < len; i++)if (mod = mods[name = r[i]], c.push(name), loader && loader.conditions[name]) for(j in loader.conditions[name])loader.conditions[name].hasOwnProperty(j) && (def = loader.conditions[name][j]) && (def.ua && Y.UA[def.ua] || def.test && def.test(Y)) && c.push(def.name); for(i = 0, len = (r = c).length; i < len; i++)if (!done[r[i]]) { if (mod = mods[name = r[i]], aliases && aliases[name] && !mod) { @@ -1439,7 +1439,7 @@ var YUI = function() { name: name, fullpath: o }); - var subs, i, l, t, sup, s, smod, plugins, plug, j, langs, packName, supName, flatSup, flatLang, lang, ret, overrides, skinname, when, g, p, trigger, conditions = this.conditions; + var subs, i, l, t, sup, s, smod, plugins, plug, j, langs, packName, supName, flatSup, flatLang, lang, overrides, skinname, when, g, p, trigger, conditions = this.conditions; if (this.moduleInfo[name] && this.moduleInfo[name].temp && (o = Y.merge(this.moduleInfo[name], o)), o.name = name, !o || !o.name) return null; if (!o.type && (o.type = "js", (p = o.path || o.fullpath) && this.REGEX_CSS.test(p) && (o.type = "css")), o.path || o.fullpath || (o.path = _path(name, name, o.type)), o.supersedes = o.supersedes || o.use, o.ext = "ext" in o ? o.ext : !this._internal, subs = o.submodules, this.moduleInfo[name] = o, o.requires = o.requires || [], this.requires) for(i = 0; i < this.requires.length; i++)o.requires.push(this.requires[i]); if (o.group && this.groups && this.groups[o.group] && (g = this.groups[o.group]).requires) for(i = 0; i < g.requires.length; i++)o.requires.push(g.requires[i]); @@ -1492,7 +1492,7 @@ var YUI = function() { getRequires: function(mod) { if (!mod) return NO_REQUIREMENTS; if (mod._parsed) return mod.expanded || NO_REQUIREMENTS; - var i, m, j, add, packName, lang, cond, d, go, def, r, old_mod, o, skinmod, skindef, skinpar, skinname, hash, reparse, testresults = this.testresults, name = mod.name, adddef = ON_PAGE[name] && ON_PAGE[name].details, intl = mod.lang || mod.intl, info = this.moduleInfo, ftests = Y.Features && Y.Features.tests.load; + var i, m, j, add, packName, lang, cond, d, def, r, old_mod, o, skinmod, skindef, skinpar, skinname, hash, reparse, testresults = this.testresults, name = mod.name, adddef = ON_PAGE[name] && ON_PAGE[name].details, intl = mod.lang || mod.intl, info = this.moduleInfo, ftests = Y.Features && Y.Features.tests.load; if (mod.temp && adddef && (old_mod = mod, (mod = this.addModule(adddef, name)).group = old_mod.group, mod.pkg = old_mod.pkg, delete mod.expanded), reparse = !((!this.lang || mod.langCache === this.lang) && mod.skinCache === this.skin.defaultSkin), mod.expanded && !reparse) return mod.expanded; for(d = [], hash = {}, r = this.filterRequires(mod.requires), mod.lang && (d.unshift("intl"), r.unshift("intl"), intl = !0), o = this.filterRequires(mod.optional), mod._parsed = !0, mod.langCache = this.lang, mod.skinCache = this.skin.defaultSkin, i = 0; i < r.length; i++)if (!hash[r[i]] && (d.push(r[i]), hash[r[i]] = !0, m = this.getModule(r[i]))) for(j = 0, add = this.getRequires(m), intl = intl || m.expanded_map && (INTL in m.expanded_map); j < add.length; j++)d.push(add[j]); if (r = this.filterRequires(mod.supersedes)) { @@ -1530,7 +1530,7 @@ var YUI = function() { (o || type || this.dirty) && (o && this._config(o), this._init || this._setup(), this._explode(), this.allowRollup ? this._rollup() : this._explodeRollups(), this._reduce(), this._sort()); }, _addLangPack: function(lang, m, packName) { - var packPath, conf, name = m.name; + var conf, name = m.name; return !this.moduleInfo[packName] && (conf = { path: _path(m.pkg || name, packName, "js", !0), intl: !0, diff --git a/crates/swc_ecma_minifier/tests/single-pass/8/input.js b/crates/swc_ecma_minifier/tests/single-pass/8/input.js new file mode 100644 index 00000000000..f625e0e24c1 --- /dev/null +++ b/crates/swc_ecma_minifier/tests/single-pass/8/input.js @@ -0,0 +1,5 @@ +export function MultiPoint(point) { + for (var point1, i = 0; i < 10; i++) { + return (point1 = point), 0 === distance(point1); + } +} diff --git a/crates/swc_ecma_minifier/tests/single-pass/8/output.js b/crates/swc_ecma_minifier/tests/single-pass/8/output.js new file mode 100644 index 00000000000..54a467e16f5 --- /dev/null +++ b/crates/swc_ecma_minifier/tests/single-pass/8/output.js @@ -0,0 +1,3 @@ +export function MultiPoint(point) { + for(var point1, i = 0; i < 10; i++)return 0 === distance(point); +}