"use strict"; var widgetDynamicCode = (() => { var __getOwnPropNames = Object.getOwnPropertyNames; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; // dist/features/fingerprint/fp.script.js var require_fp_script = __commonJS({ "dist/features/fingerprint/fp.script.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var PhiladelphiaJS = function(n) { "use strict"; var e = function() { return e = Object.assign || function(n2) { for (var e2, t2 = 1, r2 = arguments.length; t2 < r2; t2++) for (var o2 in e2 = arguments[t2]) Object.prototype.hasOwnProperty.call(e2, o2) && (n2[o2] = e2[o2]); return n2; }, e.apply(this, arguments); }; function t(n2, e2, t2, r2) { return new (t2 || (t2 = Promise))(function(o2, i2) { function a2(n3) { try { u2(r2.next(n3)); } catch (n4) { i2(n4); } } function c2(n3) { try { u2(r2.throw(n3)); } catch (n4) { i2(n4); } } function u2(n3) { var e3; n3.done ? o2(n3.value) : (e3 = n3.value, e3 instanceof t2 ? e3 : new t2(function(n4) { n4(e3); })).then(a2, c2); } u2((r2 = r2.apply(n2, e2 || [])).next()); }); } function r(n2, e2) { var t2, r2, o2, i2, a2 = { label: 0, sent: function() { if (1 & o2[0]) throw o2[1]; return o2[1]; }, trys: [], ops: [] }; return i2 = { next: c2(0), throw: c2(1), return: c2(2) }, "function" == typeof Symbol && (i2[Symbol.iterator] = function() { return this; }), i2; function c2(c3) { return function(u2) { return function(c4) { if (t2) throw new TypeError("Generator is already executing."); for (; i2 && (i2 = 0, c4[0] && (a2 = 0)), a2; ) try { if (t2 = 1, r2 && (o2 = 2 & c4[0] ? r2.return : c4[0] ? r2.throw || ((o2 = r2.return) && o2.call(r2), 0) : r2.next) && !(o2 = o2.call(r2, c4[1])).done) return o2; switch (r2 = 0, o2 && (c4 = [2 & c4[0], o2.value]), c4[0]) { case 0: case 1: o2 = c4; break; case 4: return a2.label++, { value: c4[1], done: false }; case 5: a2.label++, r2 = c4[1], c4 = [0]; continue; case 7: c4 = a2.ops.pop(), a2.trys.pop(); continue; default: if (!(o2 = a2.trys, (o2 = o2.length > 0 && o2[o2.length - 1]) || 6 !== c4[0] && 2 !== c4[0])) { a2 = 0; continue; } if (3 === c4[0] && (!o2 || c4[1] > o2[0] && c4[1] < o2[3])) { a2.label = c4[1]; break; } if (6 === c4[0] && a2.label < o2[1]) { a2.label = o2[1], o2 = c4; break; } if (o2 && a2.label < o2[2]) { a2.label = o2[2], a2.ops.push(c4); break; } o2[2] && a2.ops.pop(), a2.trys.pop(); continue; } c4 = e2.call(n2, a2); } catch (n3) { c4 = [6, n3], r2 = 0; } finally { t2 = o2 = 0; } if (5 & c4[0]) throw c4[1]; return { value: c4[0] ? c4[1] : void 0, done: true }; }([c3, u2]); }; } } function o(n2, e2, t2) { if (t2 || 2 === arguments.length) for (var r2, o2 = 0, i2 = e2.length; o2 < i2; o2++) !r2 && o2 in e2 || (r2 || (r2 = Array.prototype.slice.call(e2, 0, o2)), r2[o2] = e2[o2]); return n2.concat(r2 || Array.prototype.slice.call(e2)); } var i = "4.6.1"; function a(n2, e2) { return new Promise(function(t2) { return setTimeout(t2, n2, e2); }); } function c(n2) { return !!n2 && "function" == typeof n2.then; } function u(n2, e2) { try { var t2 = n2(); c(t2) ? t2.then(function(n3) { return e2(true, n3); }, function(n3) { return e2(false, n3); }) : e2(true, t2); } catch (n3) { e2(false, n3); } } function l(n2, e2, o2) { return void 0 === o2 && (o2 = 16), t(this, void 0, void 0, function() { var t2, i2, a2, c2; return r(this, function(r2) { switch (r2.label) { case 0: t2 = Array(n2.length), i2 = Date.now(), a2 = 0, r2.label = 1; case 1: return a2 < n2.length ? (t2[a2] = e2(n2[a2], a2), (c2 = Date.now()) >= i2 + o2 ? (i2 = c2, [4, new Promise(function(n3) { var e3 = new MessageChannel(); e3.port1.onmessage = function() { return n3(); }, e3.port2.postMessage(null); })]) : [3, 3]) : [3, 4]; case 2: r2.sent(), r2.label = 3; case 3: return ++a2, [3, 1]; case 4: return [2, t2]; } }); }); } function s(n2) { return n2.then(void 0, function() { }), n2; } function d(n2) { return parseInt(n2); } function f(n2) { return parseFloat(n2); } function m(n2, e2) { return "number" == typeof n2 && isNaN(n2) ? e2 : n2; } function v(n2) { return n2.reduce(function(n3, e2) { return n3 + (e2 ? 1 : 0); }, 0); } function h(n2, e2) { var t2 = n2[0] >>> 16, r2 = 65535 & n2[0], o2 = n2[1] >>> 16, i2 = 65535 & n2[1], a2 = e2[0] >>> 16, c2 = 65535 & e2[0], u2 = e2[1] >>> 16, l2 = 0, s2 = 0, d2 = 0, f2 = 0; d2 += (f2 += i2 + (65535 & e2[1])) >>> 16, f2 &= 65535, s2 += (d2 += o2 + u2) >>> 16, d2 &= 65535, l2 += (s2 += r2 + c2) >>> 16, s2 &= 65535, l2 += t2 + a2, l2 &= 65535, n2[0] = l2 << 16 | s2, n2[1] = d2 << 16 | f2; } function p(n2, e2) { var t2 = n2[0] >>> 16, r2 = 65535 & n2[0], o2 = n2[1] >>> 16, i2 = 65535 & n2[1], a2 = e2[0] >>> 16, c2 = 65535 & e2[0], u2 = e2[1] >>> 16, l2 = 65535 & e2[1], s2 = 0, d2 = 0, f2 = 0, m2 = 0; f2 += (m2 += i2 * l2) >>> 16, m2 &= 65535, d2 += (f2 += o2 * l2) >>> 16, f2 &= 65535, d2 += (f2 += i2 * u2) >>> 16, f2 &= 65535, s2 += (d2 += r2 * l2) >>> 16, d2 &= 65535, s2 += (d2 += o2 * u2) >>> 16, d2 &= 65535, s2 += (d2 += i2 * c2) >>> 16, d2 &= 65535, s2 += t2 * l2 + r2 * u2 + o2 * c2 + i2 * a2, s2 &= 65535, n2[0] = s2 << 16 | d2, n2[1] = f2 << 16 | m2; } function b(n2, e2) { var t2 = n2[0]; 32 === (e2 %= 64) ? (n2[0] = n2[1], n2[1] = t2) : e2 < 32 ? (n2[0] = t2 << e2 | n2[1] >>> 32 - e2, n2[1] = n2[1] << e2 | t2 >>> 32 - e2) : (e2 -= 32, n2[0] = n2[1] << e2 | t2 >>> 32 - e2, n2[1] = t2 << e2 | n2[1] >>> 32 - e2); } function y(n2, e2) { 0 !== (e2 %= 64) && (e2 < 32 ? (n2[0] = n2[1] >>> 32 - e2, n2[1] = n2[1] << e2) : (n2[0] = n2[1] << e2 - 32, n2[1] = 0)); } function g(n2, e2) { n2[0] ^= e2[0], n2[1] ^= e2[1]; } var w = [4283543511, 3981806797], L = [3301882366, 444984403]; function k(n2) { var e2 = [0, n2[0] >>> 1]; g(n2, e2), p(n2, w), e2[1] = n2[0] >>> 1, g(n2, e2), p(n2, L), e2[1] = n2[0] >>> 1, g(n2, e2); } var V = [2277735313, 289559509], S = [1291169091, 658871167], W = [0, 5], Z = [0, 1390208809], x = [0, 944331445]; function R(n2, e2) { var t2 = function(n3) { for (var e3 = new Uint8Array(n3.length), t3 = 0; t3 < n3.length; t3++) { var r3 = n3.charCodeAt(t3); if (r3 > 127) return new TextEncoder().encode(n3); e3[t3] = r3; } return e3; }(n2); e2 = e2 || 0; var r2, o2 = [0, t2.length], i2 = o2[1] % 16, a2 = o2[1] - i2, c2 = [0, e2], u2 = [0, e2], l2 = [0, 0], s2 = [0, 0]; for (r2 = 0; r2 < a2; r2 += 16) l2[0] = t2[r2 + 4] | t2[r2 + 5] << 8 | t2[r2 + 6] << 16 | t2[r2 + 7] << 24, l2[1] = t2[r2] | t2[r2 + 1] << 8 | t2[r2 + 2] << 16 | t2[r2 + 3] << 24, s2[0] = t2[r2 + 12] | t2[r2 + 13] << 8 | t2[r2 + 14] << 16 | t2[r2 + 15] << 24, s2[1] = t2[r2 + 8] | t2[r2 + 9] << 8 | t2[r2 + 10] << 16 | t2[r2 + 11] << 24, p(l2, V), b(l2, 31), p(l2, S), g(c2, l2), b(c2, 27), h(c2, u2), p(c2, W), h(c2, Z), p(s2, S), b(s2, 33), p(s2, V), g(u2, s2), b(u2, 31), h(u2, c2), p(u2, W), h(u2, x); l2[0] = 0, l2[1] = 0, s2[0] = 0, s2[1] = 0; var d2 = [0, 0]; switch (i2) { case 15: d2[1] = t2[r2 + 14], y(d2, 48), g(s2, d2); case 14: d2[1] = t2[r2 + 13], y(d2, 40), g(s2, d2); case 13: d2[1] = t2[r2 + 12], y(d2, 32), g(s2, d2); case 12: d2[1] = t2[r2 + 11], y(d2, 24), g(s2, d2); case 11: d2[1] = t2[r2 + 10], y(d2, 16), g(s2, d2); case 10: d2[1] = t2[r2 + 9], y(d2, 8), g(s2, d2); case 9: d2[1] = t2[r2 + 8], g(s2, d2), p(s2, S), b(s2, 33), p(s2, V), g(u2, s2); case 8: d2[1] = t2[r2 + 7], y(d2, 56), g(l2, d2); case 7: d2[1] = t2[r2 + 6], y(d2, 48), g(l2, d2); case 6: d2[1] = t2[r2 + 5], y(d2, 40), g(l2, d2); case 5: d2[1] = t2[r2 + 4], y(d2, 32), g(l2, d2); case 4: d2[1] = t2[r2 + 3], y(d2, 24), g(l2, d2); case 3: d2[1] = t2[r2 + 2], y(d2, 16), g(l2, d2); case 2: d2[1] = t2[r2 + 1], y(d2, 8), g(l2, d2); case 1: d2[1] = t2[r2], g(l2, d2), p(l2, V), b(l2, 31), p(l2, S), g(c2, l2); } return g(c2, o2), g(u2, o2), h(c2, u2), h(u2, c2), k(c2), k(u2), h(c2, u2), h(u2, c2), ("00000000" + (c2[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (c2[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (u2[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (u2[1] >>> 0).toString(16)).slice(-8); } function M(n2) { return "function" != typeof n2; } function F(n2, e2, o2, i2) { var a2 = Object.keys(n2).filter(function(n3) { return !function(n4, e3) { for (var t2 = 0, r2 = n4.length; t2 < r2; ++t2) if (n4[t2] === e3) return true; return false; }(o2, n3); }), c2 = s(l(a2, function(t2) { return function(n3, e3) { var t3 = s(new Promise(function(t4) { var r2 = Date.now(); u(n3.bind(null, e3), function() { for (var n4 = [], e4 = 0; e4 < arguments.length; e4++) n4[e4] = arguments[e4]; var o3 = Date.now() - r2; if (!n4[0]) return t4(function() { return { error: n4[1], duration: o3 }; }); var i3 = n4[1]; if (M(i3)) return t4(function() { return { value: i3, duration: o3 }; }); t4(function() { return new Promise(function(n5) { var e5 = Date.now(); u(i3, function() { for (var t5 = [], r3 = 0; r3 < arguments.length; r3++) t5[r3] = arguments[r3]; var i4 = o3 + Date.now() - e5; if (!t5[0]) return n5({ error: t5[1], duration: i4 }); n5({ value: t5[1], duration: i4 }); }); }); }); }); })); return function() { return t3.then(function(n4) { return n4(); }); }; }(n2[t2], e2); }, i2)); return function() { return t(this, void 0, void 0, function() { var n3, e3, t2, o3; return r(this, function(r2) { switch (r2.label) { case 0: return [4, c2]; case 1: return [4, l(r2.sent(), function(n4) { return s(n4()); }, i2)]; case 2: return n3 = r2.sent(), [4, Promise.all(n3)]; case 3: for (e3 = r2.sent(), t2 = {}, o3 = 0; o3 < a2.length; ++o3) t2[a2[o3]] = e3[o3]; return [2, t2]; } }); }); }; } function G() { var n2 = window, e2 = navigator; return v(["MSCSSMatrix" in n2, "msSetImmediate" in n2, "msIndexedDB" in n2, "msMaxTouchPoints" in e2, "msPointerEnabled" in e2]) >= 4; } function I() { var n2 = window, e2 = navigator; return v(["msWriteProfilerMark" in n2, "MSStream" in n2, "msLaunchUri" in e2, "msSaveBlob" in e2]) >= 3 && !G(); } function Y() { var n2 = window, e2 = navigator; return v(["webkitPersistentStorage" in e2, "webkitTemporaryStorage" in e2, 0 === (e2.vendor || "").indexOf("Google"), "webkitResolveLocalFileSystemURL" in n2, "BatteryManager" in n2, "webkitMediaStream" in n2, "webkitSpeechGrammar" in n2]) >= 5; } function C() { var n2 = window; return v(["ApplePayError" in n2, "CSSPrimitiveValue" in n2, "Counter" in n2, 0 === navigator.vendor.indexOf("Apple"), "RGBColor" in n2, "WebKitMediaKeys" in n2]) >= 4; } function X() { var n2 = window, e2 = n2.HTMLElement, t2 = n2.Document; return v(["safari" in n2, !("ongestureend" in n2), !("TouchEvent" in n2), !("orientation" in n2), e2 && !("autocapitalize" in e2.prototype), t2 && "pointerLockElement" in t2.prototype]) >= 4; } function j() { var n2, e2 = window; return n2 = e2.print, /^function\s.*?\{\s*\[native code]\s*}$/.test(String(n2)) && "[object WebPageNamespace]" === String(e2.browser); } function P() { var n2, e2, t2 = window; return v(["buildID" in navigator, "MozAppearance" in (null !== (e2 = null === (n2 = document.documentElement) || void 0 === n2 ? void 0 : n2.style) && void 0 !== e2 ? e2 : {}), "onmozfullscreenchange" in t2, "mozInnerScreenX" in t2, "CSSMozDocumentRule" in t2, "CanvasCaptureMediaStream" in t2]) >= 4; } function E() { var n2 = window, e2 = navigator, t2 = n2.CSS, r2 = n2.HTMLButtonElement; return v([!("getStorageUpdates" in e2), r2 && "popover" in r2.prototype, "CSSCounterStyleRule" in n2, t2.supports("font-size-adjust: ex-height 0.5"), t2.supports("text-transform: full-width")]) >= 4; } function H() { var n2 = document; return n2.fullscreenElement || n2.msFullscreenElement || n2.mozFullScreenElement || n2.webkitFullscreenElement || null; } function A() { var n2 = Y(), e2 = P(), t2 = window, r2 = navigator, o2 = "connection"; return n2 ? v([!("SharedWorker" in t2), r2[o2] && "ontypechange" in r2[o2], !("sinkId" in new Audio())]) >= 2 : !!e2 && v(["onorientationchange" in t2, "orientation" in t2, /android/i.test(r2.appVersion)]) >= 2; } function N() { var n2 = navigator, e2 = window, t2 = Audio.prototype, r2 = e2.visualViewport; return v(["srLatency" in t2, "srChannelCount" in t2, "devicePosture" in n2, r2 && "segments" in r2, "getTextInformation" in Image.prototype]) >= 3; } function J() { var n2 = window, e2 = n2.OfflineAudioContext || n2.webkitOfflineAudioContext; if (!e2) return -2; if (C() && !X() && !function() { var n3 = window; return v(["DOMRectList" in n3, "RTCPeerConnectionIceEvent" in n3, "SVGGeometryElement" in n3, "ontransitioncancel" in n3]) >= 3; }()) return -1; var t2 = new e2(1, 5e3, 44100), r2 = t2.createOscillator(); r2.type = "triangle", r2.frequency.value = 1e4; var o2 = t2.createDynamicsCompressor(); o2.threshold.value = -50, o2.knee.value = 40, o2.ratio.value = 12, o2.attack.value = 0, o2.release.value = 0.25, r2.connect(o2), o2.connect(t2.destination), r2.start(0); var i2 = function(n3) { var e3 = 3, t3 = 500, r3 = 500, o3 = 5e3, i3 = function() { }, a3 = new Promise(function(a4, u3) { var l3 = false, d2 = 0, f2 = 0; n3.oncomplete = function(n4) { return a4(n4.renderedBuffer); }; var m2 = function() { setTimeout(function() { return u3(T("timeout")); }, Math.min(r3, f2 + o3 - Date.now())); }, v2 = function() { try { var r4 = n3.startRendering(); switch (c(r4) && s(r4), n3.state) { case "running": f2 = Date.now(), l3 && m2(); break; case "suspended": document.hidden || d2++, l3 && d2 >= e3 ? u3(T("suspended")) : setTimeout(v2, t3); } } catch (n4) { u3(n4); } }; v2(), i3 = function() { l3 || (l3 = true, f2 > 0 && m2()); }; }); return [a3, i3]; }(t2), a2 = i2[0], u2 = i2[1], l2 = s(a2.then(function(n3) { return function(n4) { for (var e3 = 0, t3 = 0; t3 < n4.length; ++t3) e3 += Math.abs(n4[t3]); return e3; }(n3.getChannelData(0).subarray(4500)); }, function(n3) { if ("timeout" === n3.name || "suspended" === n3.name) return -3; throw n3; })); return function() { return u2(), l2; }; } function T(n2) { var e2 = new Error(n2); return e2.name = n2, e2; } function D(n2, e2, o2) { var i2, c2, u2; return void 0 === o2 && (o2 = 50), t(this, void 0, void 0, function() { var t2, l2; return r(this, function(r2) { switch (r2.label) { case 0: t2 = document, r2.label = 1; case 1: return t2.body ? [3, 3] : [4, a(o2)]; case 2: return r2.sent(), [3, 1]; case 3: l2 = t2.createElement("iframe"), r2.label = 4; case 4: return r2.trys.push([4, , 10, 11]), [4, new Promise(function(n3, r3) { var o3 = false, i3 = function() { o3 = true, n3(); }; l2.onload = i3, l2.onerror = function(n4) { o3 = true, r3(n4); }; var a2 = l2.style; a2.setProperty("display", "block", "important"), a2.position = "absolute", a2.top = "0", a2.left = "0", a2.visibility = "hidden", e2 && "srcdoc" in l2 ? l2.srcdoc = e2 : l2.src = "about:blank", t2.body.appendChild(l2); var c3 = function() { var n4, e3; o3 || ("complete" === (null === (e3 = null === (n4 = l2.contentWindow) || void 0 === n4 ? void 0 : n4.document) || void 0 === e3 ? void 0 : e3.readyState) ? i3() : setTimeout(c3, 10)); }; c3(); })]; case 5: r2.sent(), r2.label = 6; case 6: return (null === (c2 = null === (i2 = l2.contentWindow) || void 0 === i2 ? void 0 : i2.document) || void 0 === c2 ? void 0 : c2.body) ? [3, 8] : [4, a(o2)]; case 7: return r2.sent(), [3, 6]; case 8: return [4, n2(l2, l2.contentWindow)]; case 9: return [2, r2.sent()]; case 10: return null === (u2 = l2.parentNode) || void 0 === u2 || u2.removeChild(l2), [7]; case 11: return [2]; } }); }); } function _(n2) { for (var e2 = function(n3) { for (var e3, t3, r3 = "Unexpected syntax '".concat(n3, "'"), o3 = /^\s*([a-z-]*)(.*)$/i.exec(n3), i3 = o3[1] || void 0, a3 = {}, c3 = /([.:#][\w-]+|\[.+?\])/gi, u3 = function(n4, e4) { a3[n4] = a3[n4] || [], a3[n4].push(e4); }; ; ) { var l2 = c3.exec(o3[2]); if (!l2) break; var s2 = l2[0]; switch (s2[0]) { case ".": u3("class", s2.slice(1)); break; case "#": u3("id", s2.slice(1)); break; case "[": var d2 = /^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(s2); if (!d2) throw new Error(r3); u3(d2[1], null !== (t3 = null !== (e3 = d2[4]) && void 0 !== e3 ? e3 : d2[5]) && void 0 !== t3 ? t3 : ""); break; default: throw new Error(r3); } } return [i3, a3]; }(n2), t2 = e2[0], r2 = e2[1], o2 = document.createElement(null != t2 ? t2 : "div"), i2 = 0, a2 = Object.keys(r2); i2 < a2.length; i2++) { var c2 = a2[i2], u2 = r2[c2].join(" "); "style" === c2 ? z(o2.style, u2) : o2.setAttribute(c2, u2); } return o2; } function z(n2, e2) { for (var t2 = 0, r2 = e2.split(";"); t2 < r2.length; t2++) { var o2 = r2[t2], i2 = /^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(o2); if (i2) { var a2 = i2[1], c2 = i2[2], u2 = i2[4]; n2.setProperty(a2, c2, u2 || ""); } } } var B = ["monospace", "sans-serif", "serif"], O = ["sans-serif-thin", "ARNO PRO", "Agency FB", "Arabic Typesetting", "Arial Unicode MS", "AvantGarde Bk BT", "BankGothic Md BT", "Batang", "Bitstream Vera Sans Mono", "Calibri", "Century", "Century Gothic", "Clarendon", "EUROSTILE", "Franklin Gothic", "Futura Bk BT", "Futura Md BT", "GOTHAM", "Gill Sans", "HELV", "Haettenschweiler", "Helvetica Neue", "Humanst521 BT", "Leelawadee", "Letter Gothic", "Levenim MT", "Lucida Bright", "Lucida Sans", "Menlo", "MS Mincho", "MS Outlook", "MS Reference Specialty", "MS UI Gothic", "MT Extra", "MYRIAD PRO", "Marlett", "Meiryo UI", "Microsoft Uighur", "Minion Pro", "Monotype Corsiva", "PMingLiU", "Pristina", "SCRIPTINA", "Segoe UI Light", "Serifa", "SimHei", "Small Fonts", "Staccato222 BT", "TRAJAN PRO", "Univers CE 55 Medium", "Vrinda", "ZWAdobeF"]; function U(n2) { var e2, t2, r2, o2 = false, i2 = function() { var n3 = document.createElement("canvas"); return n3.width = 1, n3.height = 1, [n3, n3.getContext("2d")]; }(), a2 = i2[0], c2 = i2[1]; return !function(n3, e3) { return !(!e3 || !n3.toDataURL); }(a2, c2) ? t2 = r2 = "unsupported" : (o2 = function(n3) { return n3.rect(0, 0, 10, 10), n3.rect(2, 2, 6, 6), !n3.isPointInPath(5, 5, "evenodd"); }(c2), n2 ? t2 = r2 = "skipped" : (e2 = function(n3, e3) { !function(n4, e4) { n4.width = 240, n4.height = 60, e4.textBaseline = "alphabetic", e4.fillStyle = "#f60", e4.fillRect(100, 1, 62, 20), e4.fillStyle = "#069", e4.font = '11pt "Times New Roman"'; var t4 = "Cwm fjordbank gly ".concat(String.fromCharCode(55357, 56835)); e4.fillText(t4, 2, 15), e4.fillStyle = "rgba(102, 204, 0, 0.2)", e4.font = "18pt Arial", e4.fillText(t4, 4, 45); }(n3, e3); var t3 = Q(n3), r3 = Q(n3); if (t3 !== r3) return ["unstable", "unstable"]; !function(n4, e4) { n4.width = 122, n4.height = 110, e4.globalCompositeOperation = "multiply"; for (var t4 = 0, r4 = [["#f2f", 40, 40], ["#2ff", 80, 40], ["#ff2", 60, 80]]; t4 < r4.length; t4++) { var o4 = r4[t4], i3 = o4[0], a3 = o4[1], c3 = o4[2]; e4.fillStyle = i3, e4.beginPath(), e4.arc(a3, c3, 40, 0, 2 * Math.PI, true), e4.closePath(), e4.fill(); } e4.fillStyle = "#f9c", e4.arc(60, 60, 60, 0, 2 * Math.PI, true), e4.arc(60, 60, 20, 0, 2 * Math.PI, true), e4.fill("evenodd"); }(n3, e3); var o3 = Q(n3); return [o3, t3]; }(a2, c2), t2 = e2[0], r2 = e2[1])), { winding: o2, geometry: t2, text: r2 }; } function Q(n2) { return n2.toDataURL(); } function K() { var n2 = screen, e2 = function(n3) { return m(d(n3), null); }, t2 = [e2(n2.width), e2(n2.height)]; return t2.sort().reverse(), t2; } var q, $, nn = 2500; function en() { var n2 = this; return function() { if (void 0 === $) { var n3 = function() { var e2 = tn(); rn(e2) ? $ = setTimeout(n3, nn) : (q = e2, $ = void 0); }; n3(); } }(), function() { return t(n2, void 0, void 0, function() { var n3; return r(this, function(e2) { switch (e2.label) { case 0: return rn(n3 = tn()) ? q ? [2, o([], q, true)] : H() ? [4, (t2 = document, (t2.exitFullscreen || t2.msExitFullscreen || t2.mozCancelFullScreen || t2.webkitExitFullscreen).call(t2))] : [3, 2] : [3, 2]; case 1: e2.sent(), n3 = tn(), e2.label = 2; case 2: return rn(n3) || (q = n3), [2, n3]; } var t2; }); }); }; } function tn() { var n2 = screen; return [m(f(n2.availTop), null), m(f(n2.width) - f(n2.availWidth) - m(f(n2.availLeft), 0), null), m(f(n2.height) - f(n2.availHeight) - m(f(n2.availTop), 0), null), m(f(n2.availLeft), null)]; } function rn(n2) { for (var e2 = 0; e2 < 4; ++e2) if (n2[e2]) return false; return true; } function on(n2) { var e2; return t(this, void 0, void 0, function() { var t2, o2, i2, c2, u2, l2, s2; return r(this, function(r2) { switch (r2.label) { case 0: for (t2 = document, o2 = t2.createElement("div"), i2 = new Array(n2.length), c2 = {}, an(o2), s2 = 0; s2 < n2.length; ++s2) "DIALOG" === (u2 = _(n2[s2])).tagName && u2.show(), an(l2 = t2.createElement("div")), l2.appendChild(u2), o2.appendChild(l2), i2[s2] = u2; r2.label = 1; case 1: return t2.body ? [3, 3] : [4, a(50)]; case 2: return r2.sent(), [3, 1]; case 3: t2.body.appendChild(o2); try { for (s2 = 0; s2 < n2.length; ++s2) i2[s2].offsetParent || (c2[n2[s2]] = true); } finally { null === (e2 = o2.parentNode) || void 0 === e2 || e2.removeChild(o2); } return [2, c2]; } }); }); } function an(n2) { n2.style.setProperty("visibility", "hidden", "important"), n2.style.setProperty("display", "block", "important"); } function cn(n2) { return matchMedia("(inverted-colors: ".concat(n2, ")")).matches; } function un(n2) { return matchMedia("(forced-colors: ".concat(n2, ")")).matches; } function ln(n2) { return matchMedia("(prefers-contrast: ".concat(n2, ")")).matches; } function sn(n2) { return matchMedia("(prefers-reduced-motion: ".concat(n2, ")")).matches; } function dn(n2) { return matchMedia("(prefers-reduced-transparency: ".concat(n2, ")")).matches; } function fn(n2) { return matchMedia("(dynamic-range: ".concat(n2, ")")).matches; } var mn = Math, vn = function() { return 0; }; var hn = { default: [], apple: [{ font: "-apple-system-body" }], serif: [{ fontFamily: "serif" }], sans: [{ fontFamily: "sans-serif" }], mono: [{ fontFamily: "monospace" }], min: [{ fontSize: "1px" }], system: [{ fontFamily: "system-ui" }] }; var pn = function() { for (var n2 = window; ; ) { var e2 = n2.parent; if (!e2 || e2 === n2) return false; try { if (e2.location.origin !== n2.location.origin) return true; } catch (n3) { if (n3 instanceof Error && "SecurityError" === n3.name) return true; throw n3; } n2 = e2; } }; var bn = /* @__PURE__ */ new Set([10752, 2849, 2884, 2885, 2886, 2928, 2929, 2930, 2931, 2932, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2978, 3024, 3042, 3088, 3089, 3106, 3107, 32773, 32777, 32777, 32823, 32824, 32936, 32937, 32938, 32939, 32968, 32969, 32970, 32971, 3317, 33170, 3333, 3379, 3386, 33901, 33902, 34016, 34024, 34076, 3408, 3410, 3411, 3412, 3413, 3414, 3415, 34467, 34816, 34817, 34818, 34819, 34877, 34921, 34930, 35660, 35661, 35724, 35738, 35739, 36003, 36004, 36005, 36347, 36348, 36349, 37440, 37441, 37443, 7936, 7937, 7938]), yn = /* @__PURE__ */ new Set([34047, 35723, 36063, 34852, 34853, 34854, 34229, 36392, 36795, 38449]), gn = ["FRAGMENT_SHADER", "VERTEX_SHADER"], wn = ["LOW_FLOAT", "MEDIUM_FLOAT", "HIGH_FLOAT", "LOW_INT", "MEDIUM_INT", "HIGH_INT"], Ln = "WEBGL_debug_renderer_info"; function kn(n2) { if (n2.webgl) return n2.webgl.context; var e2, t2 = document.createElement("canvas"); t2.addEventListener("webglCreateContextError", function() { return e2 = void 0; }); for (var r2 = 0, o2 = ["webgl", "experimental-webgl"]; r2 < o2.length; r2++) { var i2 = o2[r2]; try { e2 = t2.getContext(i2); } catch (n3) { } if (e2) break; } return n2.webgl = { context: e2 }, e2; } function Vn(n2, e2, t2) { var r2 = n2.getShaderPrecisionFormat(n2[e2], n2[t2]); return r2 ? [r2.rangeMin, r2.rangeMax, r2.precision] : []; } function Sn(n2) { return Object.keys(n2.__proto__).filter(Wn); } function Wn(n2) { return "string" == typeof n2 && !n2.match(/[^A-Z0-9_x]/); } function Zn() { return P(); } function xn(n2) { return "function" == typeof n2.getParameter; } var Rn = { fonts: function() { var n2 = this; return D(function(e2, o2) { var i2 = o2.document; return t(n2, void 0, void 0, function() { var n3, e3, t2, o3, a2, c2, u2, l2, s2, d2, f2; return r(this, function(r2) { for ((n3 = i2.body).style.fontSize = "48px", (e3 = i2.createElement("div")).style.setProperty("visibility", "hidden", "important"), t2 = {}, o3 = {}, a2 = function(n4) { var t3 = i2.createElement("span"), r3 = t3.style; return r3.position = "absolute", r3.top = "0", r3.left = "0", r3.fontFamily = n4, t3.textContent = "mmMwWLliI0O&1", e3.appendChild(t3), t3; }, c2 = function(n4, e4) { return a2("'".concat(n4, "',").concat(e4)); }, u2 = function() { for (var n4 = {}, e4 = function(e5) { n4[e5] = B.map(function(n5) { return c2(e5, n5); }); }, t3 = 0, r3 = O; t3 < r3.length; t3++) { e4(r3[t3]); } return n4; }, l2 = function(n4) { return B.some(function(e4, r3) { return n4[r3].offsetWidth !== t2[e4] || n4[r3].offsetHeight !== o3[e4]; }); }, s2 = function() { return B.map(a2); }(), d2 = u2(), n3.appendChild(e3), f2 = 0; f2 < B.length; f2++) t2[B[f2]] = s2[f2].offsetWidth, o3[B[f2]] = s2[f2].offsetHeight; return [2, O.filter(function(n4) { return l2(d2[n4]); })]; }); }); }); }, domBlockers: function(n2) { var e2 = (void 0 === n2 ? {} : n2).debug; return t(this, void 0, void 0, function() { var n3, t2, o2, i2, a2; return r(this, function(r2) { switch (r2.label) { case 0: return C() || A() ? (c2 = atob, n3 = { abpIndo: ["#Iklan-Melayang", "#Kolom-Iklan-728", "#SidebarIklan-wrapper", '[title="ALIENBOLA" i]', c2("I0JveC1CYW5uZXItYWRz")], abpvn: [".quangcao", "#mobileCatfish", c2("LmNsb3NlLWFkcw=="), '[id^="bn_bottom_fixed_"]', "#pmadv"], adBlockFinland: [".mainostila", c2("LnNwb25zb3JpdA=="), ".ylamainos", c2("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"), c2("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")], adBlockPersian: ["#navbar_notice_50", ".kadr", 'TABLE[width="140px"]', "#divAgahi", c2("YVtocmVmXj0iaHR0cDovL2cxLnYuZndtcm0ubmV0L2FkLyJd")], adBlockWarningRemoval: ["#adblock-honeypot", ".adblocker-root", ".wp_adblock_detect", c2("LmhlYWRlci1ibG9ja2VkLWFk"), c2("I2FkX2Jsb2NrZXI=")], adGuardAnnoyances: [".hs-sosyal", "#cookieconsentdiv", 'div[class^="app_gdpr"]', ".as-oil", '[data-cypress="soft-push-notification-modal"]'], adGuardBase: [".BetterJsPopOverlay", c2("I2FkXzMwMFgyNTA="), c2("I2Jhbm5lcmZsb2F0MjI="), c2("I2NhbXBhaWduLWJhbm5lcg=="), c2("I0FkLUNvbnRlbnQ=")], adGuardChinese: [c2("LlppX2FkX2FfSA=="), c2("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"), "#widget-quan", c2("YVtocmVmKj0iLzg0OTkyMDIwLnh5eiJd"), c2("YVtocmVmKj0iLjE5NTZobC5jb20vIl0=")], adGuardFrench: ["#pavePub", c2("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"), ".mobile_adhesion", ".widgetadv", c2("LmFkc19iYW4=")], adGuardGerman: ['aside[data-portal-id="leaderboard"]'], adGuardJapanese: ["#kauli_yad_1", c2("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="), c2("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="), c2("LmFkZ29vZ2xl"), c2("Ll9faXNib29zdFJldHVybkFk")], adGuardMobile: [c2("YW1wLWF1dG8tYWRz"), c2("LmFtcF9hZA=="), 'amp-embed[type="24smi"]', "#mgid_iframe1", c2("I2FkX2ludmlld19hcmVh")], adGuardRussian: [c2("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="), c2("LnJlY2xhbWE="), 'div[id^="smi2adblock"]', c2("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"), "#psyduckpockeball"], adGuardSocial: [c2("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="), c2("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="), ".etsy-tweet", "#inlineShare", ".popup-social"], adGuardSpanishPortuguese: ["#barraPublicidade", "#Publicidade", "#publiEspecial", "#queTooltip", ".cnt-publi"], adGuardTrackingProtection: ["#qoo-counter", c2("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="), c2("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="), c2("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="), "#top100counter"], adGuardTurkish: ["#backkapat", c2("I3Jla2xhbWk="), c2("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="), c2("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"), c2("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")], bulgarian: [c2("dGQjZnJlZW5ldF90YWJsZV9hZHM="), "#ea_intext_div", ".lapni-pop-over", "#xenium_hot_offers"], easyList: [".yb-floorad", c2("LndpZGdldF9wb19hZHNfd2lkZ2V0"), c2("LnRyYWZmaWNqdW5reS1hZA=="), ".textad_headline", c2("LnNwb25zb3JlZC10ZXh0LWxpbmtz")], easyListChina: [c2("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="), c2("LmZyb250cGFnZUFkdk0="), "#taotaole", "#aafoot.top_box", ".cfa_popup"], easyListCookie: [".ezmob-footer", ".cc-CookieWarning", "[data-cookie-number]", c2("LmF3LWNvb2tpZS1iYW5uZXI="), ".sygnal24-gdpr-modal-wrap"], easyListCzechSlovak: ["#onlajny-stickers", c2("I3Jla2xhbW5pLWJveA=="), c2("LnJla2xhbWEtbWVnYWJvYXJk"), ".sklik", c2("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")], easyListDutch: [c2("I2FkdmVydGVudGll"), c2("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="), ".adstekst", c2("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="), "#semilo-lrectangle"], easyListGermany: ["#SSpotIMPopSlider", c2("LnNwb25zb3JsaW5rZ3J1ZW4="), c2("I3dlcmJ1bmdza3k="), c2("I3Jla2xhbWUtcmVjaHRzLW1pdHRl"), c2("YVtocmVmXj0iaHR0cHM6Ly9iZDc0Mi5jb20vIl0=")], easyListItaly: [c2("LmJveF9hZHZfYW5udW5jaQ=="), ".sb-box-pubbliredazionale", c2("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"), c2("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"), c2("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")], easyListLithuania: [c2("LnJla2xhbW9zX3RhcnBhcw=="), c2("LnJla2xhbW9zX251b3JvZG9z"), c2("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"), c2("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"), c2("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")], estonian: [c2("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")], fanboyAnnoyances: ["#ac-lre-player", ".navigate-to-top", "#subscribe_popup", ".newsletter_holder", "#back-top"], fanboyAntiFacebook: [".util-bar-module-firefly-visible"], fanboyEnhancedTrackers: [".open.pushModal", "#issuem-leaky-paywall-articles-zero-remaining-nag", "#sovrn_container", 'div[class$="-hide"][zoompage-fontsize][style="display: block;"]', ".BlockNag__Card"], fanboySocial: ["#FollowUs", "#meteored_share", "#social_follow", ".article-sharer", ".community__social-desc"], frellwitSwedish: [c2("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="), c2("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="), "article.category-samarbete", c2("ZGl2LmhvbGlkQWRz"), "ul.adsmodern"], greekAdBlock: [c2("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"), c2("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="), c2("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"), "DIV.agores300", "TABLE.advright"], hungarian: ["#cemp_doboz", ".optimonk-iframe-container", c2("LmFkX19tYWlu"), c2("W2NsYXNzKj0iR29vZ2xlQWRzIl0="), "#hirdetesek_box"], iDontCareAboutCookies: ['.alert-info[data-block-track*="CookieNotice"]', ".ModuleTemplateCookieIndicator", ".o--cookies--container", "#cookies-policy-sticky", "#stickyCookieBar"], icelandicAbp: [c2("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")], latvian: [c2("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="), c2("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")], listKr: [c2("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="), c2("I2xpdmVyZUFkV3JhcHBlcg=="), c2("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="), c2("aW5zLmZhc3R2aWV3LWFk"), ".revenue_unit_item.dable"], listeAr: [c2("LmdlbWluaUxCMUFk"), ".right-and-left-sponsers", c2("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="), c2("YVtocmVmKj0iYm9vcmFxLm9yZyJd"), c2("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")], listeFr: [c2("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="), c2("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="), c2("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="), ".site-pub-interstitiel", 'div[id^="crt-"][data-criteo-id]'], officialPolish: ["#ceneo-placeholder-ceneo-12", c2("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"), c2("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="), c2("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="), c2("ZGl2I3NrYXBpZWNfYWQ=")], ro: [c2("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"), c2("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"), c2("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="), c2("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd"), 'a[href^="/url/"]'], ruAd: [c2("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"), c2("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="), c2("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="), "#pgeldiz", ".yandex-rtb-block"], thaiAds: ["a[href*=macau-uta-popup]", c2("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="), c2("LmFkczMwMHM="), ".bumq", ".img-kosana"], webAnnoyancesUltralist: ["#mod-social-share-2", "#social-tools", c2("LmN0cGwtZnVsbGJhbm5lcg=="), ".zergnet-recommend", ".yt.btn-link.btn-md.btn"] }, t2 = Object.keys(n3), [4, on((a2 = []).concat.apply(a2, t2.map(function(e3) { return n3[e3]; })))]) : [2, void 0]; case 1: return o2 = r2.sent(), e2 && function(n4, e3) { for (var t3 = "DOM blockers debug:\n```", r3 = 0, o3 = Object.keys(n4); r3 < o3.length; r3++) { var i3 = o3[r3]; t3 += "\n".concat(i3, ":"); for (var a3 = 0, c3 = n4[i3]; a3 < c3.length; a3++) { var u2 = c3[a3]; t3 += "\n ".concat(e3[u2] ? "\u{1F6AB}" : "\u27A1\uFE0F", " ").concat(u2); } } console.log("".concat(t3, "\n```")); }(n3, o2), (i2 = t2.filter(function(e3) { var t3 = n3[e3]; return v(t3.map(function(n4) { return o2[n4]; })) > 0.6 * t3.length; })).sort(), [2, i2]; } var c2; }); }); }, fontPreferences: function() { return function(n2, e2) { void 0 === e2 && (e2 = 4e3); return D(function(t2, r2) { var i2 = r2.document, a2 = i2.body, c2 = a2.style; c2.width = "".concat(e2, "px"), c2.webkitTextSizeAdjust = c2.textSizeAdjust = "none", Y() ? a2.style.zoom = "".concat(1 / r2.devicePixelRatio) : C() && (a2.style.zoom = "reset"); var u2 = i2.createElement("div"); return u2.textContent = o([], Array(e2 / 20 | 0), true).map(function() { return "word"; }).join(" "), a2.appendChild(u2), n2(i2, a2); }, ''); }(function(n2, e2) { for (var t2 = {}, r2 = {}, o2 = 0, i2 = Object.keys(hn); o2 < i2.length; o2++) { var a2 = i2[o2], c2 = hn[a2], u2 = c2[0], l2 = void 0 === u2 ? {} : u2, s2 = c2[1], d2 = void 0 === s2 ? "mmMwWLliI0fiflO&1" : s2, f2 = n2.createElement("span"); f2.textContent = d2, f2.style.whiteSpace = "nowrap"; for (var m2 = 0, v2 = Object.keys(l2); m2 < v2.length; m2++) { var h2 = v2[m2], p2 = l2[h2]; void 0 !== p2 && (f2.style[h2] = p2); } t2[a2] = f2, e2.append(n2.createElement("br"), f2); } for (var b2 = 0, y2 = Object.keys(hn); b2 < y2.length; b2++) { r2[a2 = y2[b2]] = t2[a2].getBoundingClientRect().width; } return r2; }); }, audio: function() { return C() && E() && j() || Y() && N() && (n2 = window, e2 = n2.URLPattern, v(["union" in Set.prototype, "Iterator" in n2, e2 && "hasRegExpGroups" in e2.prototype, "RGB8" in WebGLRenderingContext.prototype]) >= 3) ? -4 : J(); var n2, e2; }, screenFrame: function() { var n2 = this; if (C() && E() && j()) return function() { return Promise.resolve(void 0); }; var e2 = en(); return function() { return t(n2, void 0, void 0, function() { var n3, t2; return r(this, function(r2) { switch (r2.label) { case 0: return [4, e2()]; case 1: return n3 = r2.sent(), [2, [(t2 = function(n4) { return null === n4 ? null : function(n5, e3) { if (void 0 === e3 && (e3 = 1), Math.abs(e3) >= 1) return Math.round(n5 / e3) * e3; var t3 = 1 / e3; return Math.round(n5 * t3) / t3; }(n4, 10); })(n3[0]), t2(n3[1]), t2(n3[2]), t2(n3[3])]]; } }); }); }; }, canvas: function() { return U(C() && E() && j()); }, osCpu: function() { return navigator.oscpu; }, languages: function() { var n2, e2 = navigator, t2 = [], r2 = e2.language || e2.userLanguage || e2.browserLanguage || e2.systemLanguage; if (void 0 !== r2 && t2.push([r2]), Array.isArray(e2.languages)) Y() && v([!("MediaSettingsRange" in (n2 = window)), "RTCEncodedAudioFrame" in n2, "" + n2.Intl == "[object Intl]", "" + n2.Reflect == "[object Reflect]"]) >= 3 || t2.push(e2.languages); else if ("string" == typeof e2.languages) { var o2 = e2.languages; o2 && t2.push(o2.split(",")); } return t2; }, colorDepth: function() { return window.screen.colorDepth; }, deviceMemory: function() { return m(f(navigator.deviceMemory), void 0); }, screenResolution: function() { if (!(C() && E() && j())) return K(); }, hardwareConcurrency: function() { return m(d(navigator.hardwareConcurrency), void 0); }, timezone: function() { var n2, e2 = null === (n2 = window.Intl) || void 0 === n2 ? void 0 : n2.DateTimeFormat; if (e2) { var t2 = new e2().resolvedOptions().timeZone; if (t2) return t2; } var r2, o2 = (r2 = (/* @__PURE__ */ new Date()).getFullYear(), -Math.max(f(new Date(r2, 0, 1).getTimezoneOffset()), f(new Date(r2, 6, 1).getTimezoneOffset()))); return "UTC".concat(o2 >= 0 ? "+" : "").concat(o2); }, sessionStorage: function() { try { return !!window.sessionStorage; } catch (n2) { return true; } }, localStorage: function() { try { return !!window.localStorage; } catch (n2) { return true; } }, indexedDB: function() { if (!G() && !I()) try { return !!window.indexedDB; } catch (n2) { return true; } }, openDatabase: function() { return !!window.openDatabase; }, cpuClass: function() { return navigator.cpuClass; }, platform: function() { var n2 = navigator.platform; return "MacIntel" === n2 && C() && !X() ? function() { if ("iPad" === navigator.platform) return true; var n3 = screen, e2 = n3.width / n3.height; return v(["MediaSource" in window, !!Element.prototype.webkitRequestFullscreen, e2 > 0.65 && e2 < 1.53]) >= 2; }() ? "iPad" : "iPhone" : n2; }, plugins: function() { var n2 = navigator.plugins; if (n2) { for (var e2 = [], t2 = 0; t2 < n2.length; ++t2) { var r2 = n2[t2]; if (r2) { for (var o2 = [], i2 = 0; i2 < r2.length; ++i2) { var a2 = r2[i2]; o2.push({ type: a2.type, suffixes: a2.suffixes }); } e2.push({ name: r2.name, description: r2.description, mimeTypes: o2 }); } } return e2; } }, touchSupport: function() { var n2, e2 = navigator, t2 = 0; void 0 !== e2.maxTouchPoints ? t2 = d(e2.maxTouchPoints) : void 0 !== e2.msMaxTouchPoints && (t2 = e2.msMaxTouchPoints); try { document.createEvent("TouchEvent"), n2 = true; } catch (e3) { n2 = false; } return { maxTouchPoints: t2, touchEvent: n2, touchStart: "ontouchstart" in window }; }, vendor: function() { return navigator.vendor || ""; }, vendorFlavors: function() { for (var n2 = [], e2 = 0, t2 = ["chrome", "safari", "__crWeb", "__gCrWeb", "yandex", "__yb", "__ybro", "__firefox__", "__edgeTrackingPreventionStatistics", "webkit", "oprt", "samsungAr", "ucweb", "UCShellJava", "puffinDevice"]; e2 < t2.length; e2++) { var r2 = t2[e2], o2 = window[r2]; o2 && "object" == typeof o2 && n2.push(r2); } return n2.sort(); }, colorGamut: function() { for (var n2 = 0, e2 = ["rec2020", "p3", "srgb"]; n2 < e2.length; n2++) { var t2 = e2[n2]; if (matchMedia("(color-gamut: ".concat(t2, ")")).matches) return t2; } }, invertedColors: function() { return !!cn("inverted") || !cn("none") && void 0; }, forcedColors: function() { return !!un("active") || !un("none") && void 0; }, monochrome: function() { if (matchMedia("(min-monochrome: 0)").matches) { for (var n2 = 0; n2 <= 100; ++n2) if (matchMedia("(max-monochrome: ".concat(n2, ")")).matches) return n2; throw new Error("Too high value"); } }, contrast: function() { return ln("no-preference") ? 0 : ln("high") || ln("more") ? 1 : ln("low") || ln("less") ? -1 : ln("forced") ? 10 : void 0; }, reducedMotion: function() { return !!sn("reduce") || !sn("no-preference") && void 0; }, reducedTransparency: function() { return !!dn("reduce") || !dn("no-preference") && void 0; }, hdr: function() { return !!fn("high") || !fn("standard") && void 0; }, math: function() { var n2, e2 = mn.acos || vn, t2 = mn.acosh || vn, r2 = mn.asin || vn, o2 = mn.asinh || vn, i2 = mn.atanh || vn, a2 = mn.atan || vn, c2 = mn.sin || vn, u2 = mn.sinh || vn, l2 = mn.cos || vn, s2 = mn.cosh || vn, d2 = mn.tan || vn, f2 = mn.tanh || vn, m2 = mn.exp || vn, v2 = mn.expm1 || vn, h2 = mn.log1p || vn; return { acos: e2(0.12312423423423424), acosh: t2(1e308), acoshPf: (n2 = 1e154, mn.log(n2 + mn.sqrt(n2 * n2 - 1))), asin: r2(0.12312423423423424), asinh: o2(1), asinhPf: function(n3) { return mn.log(n3 + mn.sqrt(n3 * n3 + 1)); }(1), atanh: i2(0.5), atanhPf: function(n3) { return mn.log((1 + n3) / (1 - n3)) / 2; }(0.5), atan: a2(0.5), sin: c2(-1e300), sinh: u2(1), sinhPf: function(n3) { return mn.exp(n3) - 1 / mn.exp(n3) / 2; }(1), cos: l2(10.000000000123), cosh: s2(1), coshPf: function(n3) { return (mn.exp(n3) + 1 / mn.exp(n3)) / 2; }(1), tan: d2(-1e300), tanh: f2(1), tanhPf: function(n3) { return (mn.exp(2 * n3) - 1) / (mn.exp(2 * n3) + 1); }(1), exp: m2(1), expm1: v2(1), expm1Pf: function(n3) { return mn.exp(n3) - 1; }(1), log1p: h2(10), log1pPf: function(n3) { return mn.log(1 + n3); }(10), powPI: function(n3) { return mn.pow(mn.PI, n3); }(-100) }; }, pdfViewerEnabled: function() { return navigator.pdfViewerEnabled; }, architecture: function() { var n2 = new Float32Array(1), e2 = new Uint8Array(n2.buffer); return n2[0] = 1 / 0, n2[0] = n2[0] - n2[0], e2[3]; }, applePay: function() { var n2 = window.ApplePaySession; if ("function" != typeof (null == n2 ? void 0 : n2.canMakePayments)) return -1; if (pn()) return -3; try { return n2.canMakePayments() ? 1 : 0; } catch (n3) { return function(n4) { if (n4 instanceof Error && "InvalidAccessError" === n4.name && /\bfrom\b.*\binsecure\b/i.test(n4.message)) return -2; throw n4; }(n3); } }, privateClickMeasurement: function() { var n2, e2 = document.createElement("a"), t2 = null !== (n2 = e2.attributionSourceId) && void 0 !== n2 ? n2 : e2.attributionsourceid; return void 0 === t2 ? void 0 : String(t2); }, audioBaseLatency: function() { var n2; return A() || C() ? window.AudioContext && null !== (n2 = new AudioContext().baseLatency) && void 0 !== n2 ? n2 : -1 : -2; }, dateTimeLocale: function() { if (!window.Intl) return -1; var n2 = window.Intl.DateTimeFormat; if (!n2) return -2; var e2 = n2().resolvedOptions().locale; return e2 || "" === e2 ? e2 : -3; }, webGlBasics: function(n2) { var e2, t2, r2, o2, i2, a2, c2 = kn(n2.cache); if (!c2) return -1; if (!xn(c2)) return -2; var u2 = Zn() ? null : c2.getExtension(Ln); return { version: (null === (e2 = c2.getParameter(c2.VERSION)) || void 0 === e2 ? void 0 : e2.toString()) || "", vendor: (null === (t2 = c2.getParameter(c2.VENDOR)) || void 0 === t2 ? void 0 : t2.toString()) || "", vendorUnmasked: u2 ? null === (r2 = c2.getParameter(u2.UNMASKED_VENDOR_WEBGL)) || void 0 === r2 ? void 0 : r2.toString() : "", renderer: (null === (o2 = c2.getParameter(c2.RENDERER)) || void 0 === o2 ? void 0 : o2.toString()) || "", rendererUnmasked: u2 ? null === (i2 = c2.getParameter(u2.UNMASKED_RENDERER_WEBGL)) || void 0 === i2 ? void 0 : i2.toString() : "", shadingLanguageVersion: (null === (a2 = c2.getParameter(c2.SHADING_LANGUAGE_VERSION)) || void 0 === a2 ? void 0 : a2.toString()) || "" }; }, webGlExtensions: function(n2) { var e2 = kn(n2.cache); if (!e2) return -1; if (!xn(e2)) return -2; var t2 = e2.getSupportedExtensions(), r2 = e2.getContextAttributes(), o2 = [], i2 = [], a2 = [], c2 = [], u2 = []; if (r2) for (var l2 = 0, s2 = Object.keys(r2); l2 < s2.length; l2++) { var d2 = s2[l2]; i2.push("".concat(d2, "=").concat(r2[d2])); } for (var f2 = 0, m2 = Sn(e2); f2 < m2.length; f2++) { var v2 = e2[L2 = m2[f2]]; a2.push("".concat(L2, "=").concat(v2).concat(bn.has(v2) ? "=".concat(e2.getParameter(v2)) : "")); } if (t2) for (var h2 = 0, p2 = t2; h2 < p2.length; h2++) { var b2 = p2[h2]; if (!(b2 === Ln && Zn() || "WEBGL_polygon_mode" === b2 && (Y() || C()))) { var y2 = e2.getExtension(b2); if (y2) for (var g2 = 0, w2 = Sn(y2); g2 < w2.length; g2++) { var L2; v2 = y2[L2 = w2[g2]]; c2.push("".concat(L2, "=").concat(v2).concat(yn.has(v2) ? "=".concat(e2.getParameter(v2)) : "")); } else o2.push(b2); } } for (var k2 = 0, V2 = gn; k2 < V2.length; k2++) for (var S2 = V2[k2], W2 = 0, Z2 = wn; W2 < Z2.length; W2++) { var x2 = Z2[W2], R2 = Vn(e2, S2, x2); u2.push("".concat(S2, ".").concat(x2, "=").concat(R2.join(","))); } return c2.sort(), a2.sort(), { contextAttributes: i2, parameters: a2, shaderPrecisions: u2, extensions: t2, extensionParameters: c2, unsupportedExtensions: o2 }; } }; function Mn(n2) { return JSON.stringify(n2, function(n3, t2) { return t2 instanceof Error ? e({ name: (r2 = t2).name, message: r2.message, stack: null === (o2 = r2.stack) || void 0 === o2 ? void 0 : o2.split("\n") }, r2) : t2; var r2, o2; }, 2); } function Fn(n2) { return R(function(n3) { for (var e2 = "", t2 = 0, r2 = Object.keys(n3).sort(); t2 < r2.length; t2++) { var o2 = r2[t2], i2 = n3[o2], a2 = "error" in i2 ? "error" : JSON.stringify(i2.value); e2 += "".concat(e2 ? "|" : "").concat(o2.replace(/([:|\\])/g, "\\$1"), ":").concat(a2); } return e2; }(n2)); } function Gn(n2) { return void 0 === n2 && (n2 = 50), function(n3, e2) { void 0 === e2 && (e2 = 1 / 0); var t2 = window.requestIdleCallback; return t2 ? new Promise(function(n4) { return t2.call(window, function() { return n4(); }, { timeout: e2 }); }) : a(Math.min(n3, e2)); }(n2, 2 * n2); } function In(n2, e2) { var o2 = Date.now(); return { get: function(a2) { return t(this, void 0, void 0, function() { var t2, c2, u2; return r(this, function(r2) { switch (r2.label) { case 0: return t2 = Date.now(), [4, n2()]; case 1: return c2 = r2.sent(), u2 = /* @__PURE__ */ function(n3) { var e3; return { get visitorId() { return void 0 === e3 && (e3 = Fn(this.components)), e3; }, set visitorId(n4) { e3 = n4; }, components: n3, version: i }; }(c2), (e2 || (null == a2 ? void 0 : a2.debug)) && console.log("Copy the text below to get the debug data:\n\n```\nversion: ".concat(u2.version, "\nuserAgent: ").concat(navigator.userAgent, "\ntimeBetweenLoadAndGet: ").concat(t2 - o2, "\nvisitorId: ").concat(u2.visitorId, "\ncomponents: ").concat(Mn(c2), "\n```")), [2, u2]; } }); }); } }; } function Yn(n2) { return void 0 === n2 && (n2 = {}), t(this, void 0, void 0, function() { var e2, t2, o2; return r(this, function(r2) { switch (r2.label) { case 0: return e2 = n2.delayFallback, t2 = n2.debug, [4, Gn(e2)]; case 1: return r2.sent(), o2 = function(n3) { return F(Rn, n3, []); }({ cache: {}, debug: t2 }), [2, In(o2, t2)]; } }); }); } var Cn = { load: Yn, hashComponents: Fn, componentsToDebugString: Mn }, Xn = R; return n.componentsToDebugString = Mn, n.default = Cn, n.getFullscreenElement = H, n.getUnstableAudioFingerprint = J, n.getUnstableCanvasFingerprint = U, n.getUnstableScreenFrame = en, n.getUnstableScreenResolution = K, n.getWebGLContext = kn, n.hashComponents = Fn, n.isAndroid = A, n.isChromium = Y, n.isDesktopWebKit = X, n.isEdgeHTML = I, n.isGecko = P, n.isSamsungInternet = N, n.isTrident = G, n.isWebKit = C, n.load = Yn, n.loadSources = F, n.murmurX64Hash128 = Xn, n.prepareForSources = Gn, n.sources = Rn, n.transformSource = function(n2, e2) { var t2 = function(n3) { return M(n3) ? e2(n3) : function() { var t3 = n3(); return c(t3) ? t3.then(e2) : e2(t3); }; }; return function(e3) { var r2 = n2(e3); return c(r2) ? r2.then(t2) : t2(r2); }; }, n.withIframe = D, Object.defineProperty(n, "__esModule", { value: true }), n; }({}); exports.default = PhiladelphiaJS; } }); // node_modules/mustache/mustache.js var require_mustache = __commonJS({ "node_modules/mustache/mustache.js"(exports, module) { (function(global, factory) { typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = global || self, global.Mustache = factory()); })(exports, function() { "use strict"; var objectToString = Object.prototype.toString; var isArray = Array.isArray || function isArrayPolyfill(object) { return objectToString.call(object) === "[object Array]"; }; function isFunction(object) { return typeof object === "function"; } function typeStr(obj) { return isArray(obj) ? "array" : typeof obj; } function escapeRegExp(string) { return string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); } function hasProperty(obj, propName) { return obj != null && typeof obj === "object" && propName in obj; } function primitiveHasOwnProperty(primitive, propName) { return primitive != null && typeof primitive !== "object" && primitive.hasOwnProperty && primitive.hasOwnProperty(propName); } var regExpTest = RegExp.prototype.test; function testRegExp(re, string) { return regExpTest.call(re, string); } var nonSpaceRe = /\S/; function isWhitespace(string) { return !testRegExp(nonSpaceRe, string); } var entityMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'", "/": "/", "`": "`", "=": "=" }; function escapeHtml(string) { return String(string).replace(/[&<>"'`=\/]/g, function fromEntityMap(s) { return entityMap[s]; }); } var whiteRe = /\s*/; var spaceRe = /\s+/; var equalsRe = /\s*=/; var curlyRe = /\s*\}/; var tagRe = /#|\^|\/|>|\{|&|=|!/; function parseTemplate(template, tags) { if (!template) return []; var lineHasNonSpace = false; var sections = []; var tokens = []; var spaces = []; var hasTag = false; var nonSpace = false; var indentation = ""; var tagIndex = 0; function stripSpace() { if (hasTag && !nonSpace) { while (spaces.length) delete tokens[spaces.pop()]; } else { spaces = []; } hasTag = false; nonSpace = false; } var openingTagRe, closingTagRe, closingCurlyRe; function compileTags(tagsToCompile) { if (typeof tagsToCompile === "string") tagsToCompile = tagsToCompile.split(spaceRe, 2); if (!isArray(tagsToCompile) || tagsToCompile.length !== 2) throw new Error("Invalid tags: " + tagsToCompile); openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + "\\s*"); closingTagRe = new RegExp("\\s*" + escapeRegExp(tagsToCompile[1])); closingCurlyRe = new RegExp("\\s*" + escapeRegExp("}" + tagsToCompile[1])); } compileTags(tags || mustache.tags); var scanner = new Scanner(template); var start, type, value, chr, token, openSection; while (!scanner.eos()) { start = scanner.pos; value = scanner.scanUntil(openingTagRe); if (value) { for (var i = 0, valueLength = value.length; i < valueLength; ++i) { chr = value.charAt(i); if (isWhitespace(chr)) { spaces.push(tokens.length); indentation += chr; } else { nonSpace = true; lineHasNonSpace = true; indentation += " "; } tokens.push(["text", chr, start, start + 1]); start += 1; if (chr === "\n") { stripSpace(); indentation = ""; tagIndex = 0; lineHasNonSpace = false; } } } if (!scanner.scan(openingTagRe)) break; hasTag = true; type = scanner.scan(tagRe) || "name"; scanner.scan(whiteRe); if (type === "=") { value = scanner.scanUntil(equalsRe); scanner.scan(equalsRe); scanner.scanUntil(closingTagRe); } else if (type === "{") { value = scanner.scanUntil(closingCurlyRe); scanner.scan(curlyRe); scanner.scanUntil(closingTagRe); type = "&"; } else { value = scanner.scanUntil(closingTagRe); } if (!scanner.scan(closingTagRe)) throw new Error("Unclosed tag at " + scanner.pos); if (type == ">") { token = [type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace]; } else { token = [type, value, start, scanner.pos]; } tagIndex++; tokens.push(token); if (type === "#" || type === "^") { sections.push(token); } else if (type === "/") { openSection = sections.pop(); if (!openSection) throw new Error('Unopened section "' + value + '" at ' + start); if (openSection[1] !== value) throw new Error('Unclosed section "' + openSection[1] + '" at ' + start); } else if (type === "name" || type === "{" || type === "&") { nonSpace = true; } else if (type === "=") { compileTags(value); } } stripSpace(); openSection = sections.pop(); if (openSection) throw new Error('Unclosed section "' + openSection[1] + '" at ' + scanner.pos); return nestTokens(squashTokens(tokens)); } function squashTokens(tokens) { var squashedTokens = []; var token, lastToken; for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) { token = tokens[i]; if (token) { if (token[0] === "text" && lastToken && lastToken[0] === "text") { lastToken[1] += token[1]; lastToken[3] = token[3]; } else { squashedTokens.push(token); lastToken = token; } } } return squashedTokens; } function nestTokens(tokens) { var nestedTokens = []; var collector = nestedTokens; var sections = []; var token, section; for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) { token = tokens[i]; switch (token[0]) { case "#": case "^": collector.push(token); sections.push(token); collector = token[4] = []; break; case "/": section = sections.pop(); section[5] = token[2]; collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens; break; default: collector.push(token); } } return nestedTokens; } function Scanner(string) { this.string = string; this.tail = string; this.pos = 0; } Scanner.prototype.eos = function eos() { return this.tail === ""; }; Scanner.prototype.scan = function scan(re) { var match = this.tail.match(re); if (!match || match.index !== 0) return ""; var string = match[0]; this.tail = this.tail.substring(string.length); this.pos += string.length; return string; }; Scanner.prototype.scanUntil = function scanUntil(re) { var index = this.tail.search(re), match; switch (index) { case -1: match = this.tail; this.tail = ""; break; case 0: match = ""; break; default: match = this.tail.substring(0, index); this.tail = this.tail.substring(index); } this.pos += match.length; return match; }; function Context(view, parentContext) { this.view = view; this.cache = { ".": this.view }; this.parent = parentContext; } Context.prototype.push = function push(view) { return new Context(view, this); }; Context.prototype.lookup = function lookup(name) { var cache = this.cache; var value; if (cache.hasOwnProperty(name)) { value = cache[name]; } else { var context = this, intermediateValue, names, index, lookupHit = false; while (context) { if (name.indexOf(".") > 0) { intermediateValue = context.view; names = name.split("."); index = 0; while (intermediateValue != null && index < names.length) { if (index === names.length - 1) lookupHit = hasProperty(intermediateValue, names[index]) || primitiveHasOwnProperty(intermediateValue, names[index]); intermediateValue = intermediateValue[names[index++]]; } } else { intermediateValue = context.view[name]; lookupHit = hasProperty(context.view, name); } if (lookupHit) { value = intermediateValue; break; } context = context.parent; } cache[name] = value; } if (isFunction(value)) value = value.call(this.view); return value; }; function Writer() { this.templateCache = { _cache: {}, set: function set(key, value) { this._cache[key] = value; }, get: function get(key) { return this._cache[key]; }, clear: function clear() { this._cache = {}; } }; } Writer.prototype.clearCache = function clearCache() { if (typeof this.templateCache !== "undefined") { this.templateCache.clear(); } }; Writer.prototype.parse = function parse(template, tags) { var cache = this.templateCache; var cacheKey = template + ":" + (tags || mustache.tags).join(":"); var isCacheEnabled = typeof cache !== "undefined"; var tokens = isCacheEnabled ? cache.get(cacheKey) : void 0; if (tokens == void 0) { tokens = parseTemplate(template, tags); isCacheEnabled && cache.set(cacheKey, tokens); } return tokens; }; Writer.prototype.render = function render(template, view, partials, config) { var tags = this.getConfigTags(config); var tokens = this.parse(template, tags); var context = view instanceof Context ? view : new Context(view, void 0); return this.renderTokens(tokens, context, partials, template, config); }; Writer.prototype.renderTokens = function renderTokens(tokens, context, partials, originalTemplate, config) { var buffer = ""; var token, symbol, value; for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) { value = void 0; token = tokens[i]; symbol = token[0]; if (symbol === "#") value = this.renderSection(token, context, partials, originalTemplate, config); else if (symbol === "^") value = this.renderInverted(token, context, partials, originalTemplate, config); else if (symbol === ">") value = this.renderPartial(token, context, partials, config); else if (symbol === "&") value = this.unescapedValue(token, context); else if (symbol === "name") value = this.escapedValue(token, context, config); else if (symbol === "text") value = this.rawValue(token); if (value !== void 0) buffer += value; } return buffer; }; Writer.prototype.renderSection = function renderSection(token, context, partials, originalTemplate, config) { var self2 = this; var buffer = ""; var value = context.lookup(token[1]); function subRender(template) { return self2.render(template, context, partials, config); } if (!value) return; if (isArray(value)) { for (var j = 0, valueLength = value.length; j < valueLength; ++j) { buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config); } } else if (typeof value === "object" || typeof value === "string" || typeof value === "number") { buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config); } else if (isFunction(value)) { if (typeof originalTemplate !== "string") throw new Error("Cannot use higher-order sections without the original template"); value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender); if (value != null) buffer += value; } else { buffer += this.renderTokens(token[4], context, partials, originalTemplate, config); } return buffer; }; Writer.prototype.renderInverted = function renderInverted(token, context, partials, originalTemplate, config) { var value = context.lookup(token[1]); if (!value || isArray(value) && value.length === 0) return this.renderTokens(token[4], context, partials, originalTemplate, config); }; Writer.prototype.indentPartial = function indentPartial(partial, indentation, lineHasNonSpace) { var filteredIndentation = indentation.replace(/[^ \t]/g, ""); var partialByNl = partial.split("\n"); for (var i = 0; i < partialByNl.length; i++) { if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) { partialByNl[i] = filteredIndentation + partialByNl[i]; } } return partialByNl.join("\n"); }; Writer.prototype.renderPartial = function renderPartial(token, context, partials, config) { if (!partials) return; var tags = this.getConfigTags(config); var value = isFunction(partials) ? partials(token[1]) : partials[token[1]]; if (value != null) { var lineHasNonSpace = token[6]; var tagIndex = token[5]; var indentation = token[4]; var indentedValue = value; if (tagIndex == 0 && indentation) { indentedValue = this.indentPartial(value, indentation, lineHasNonSpace); } var tokens = this.parse(indentedValue, tags); return this.renderTokens(tokens, context, partials, indentedValue, config); } }; Writer.prototype.unescapedValue = function unescapedValue(token, context) { var value = context.lookup(token[1]); if (value != null) return value; }; Writer.prototype.escapedValue = function escapedValue(token, context, config) { var escape = this.getConfigEscape(config) || mustache.escape; var value = context.lookup(token[1]); if (value != null) return typeof value === "number" && escape === mustache.escape ? String(value) : escape(value); }; Writer.prototype.rawValue = function rawValue(token) { return token[1]; }; Writer.prototype.getConfigTags = function getConfigTags(config) { if (isArray(config)) { return config; } else if (config && typeof config === "object") { return config.tags; } else { return void 0; } }; Writer.prototype.getConfigEscape = function getConfigEscape(config) { if (config && typeof config === "object" && !isArray(config)) { return config.escape; } else { return void 0; } }; var mustache = { name: "mustache.js", version: "4.2.0", tags: ["{{", "}}"], clearCache: void 0, escape: void 0, parse: void 0, render: void 0, Scanner: void 0, Context: void 0, Writer: void 0, /** * Allows a user to override the default caching strategy, by providing an * object with set, get and clear methods. This can also be used to disable * the cache by setting it to the literal `undefined`. */ set templateCache(cache) { defaultWriter.templateCache = cache; }, /** * Gets the default or overridden caching object from the default writer. */ get templateCache() { return defaultWriter.templateCache; } }; var defaultWriter = new Writer(); mustache.clearCache = function clearCache() { return defaultWriter.clearCache(); }; mustache.parse = function parse(template, tags) { return defaultWriter.parse(template, tags); }; mustache.render = function render(template, view, partials, config) { if (typeof template !== "string") { throw new TypeError('Invalid template! Template should be a "string" but "' + typeStr(template) + '" was given as the first argument for mustache#render(template, view, partials)'); } return defaultWriter.render(template, view, partials, config); }; mustache.escape = escapeHtml; mustache.Scanner = Scanner; mustache.Context = Context; mustache.Writer = Writer; return mustache; }); } }); // dist/features/widget/widget.panel.code.js var require_widget_panel_code = __commonJS({ "dist/features/widget/widget.panel.code.js"(exports) { "use strict"; var __importDefault = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.load = load; var mustache_1 = __importDefault(require_mustache()); async function load(traceId, fingerprint, geo, blueprint, config) { appendStyles(config); await appendWidget(blueprint, config); appendScript(traceId, fingerprint, geo, blueprint, config); } function appendStyles(config) { let styles = config.styles; const styleEl = document.createElement("style"); styleEl.textContent = styles; document.head.appendChild(styleEl); const customColor = config.color ?? "#000000"; const lighterColor = calculateLighterColor(customColor, 20); document.documentElement.style.setProperty("--partner-widget-primary-color", customColor); document.documentElement.style.setProperty("--partner-widget-primary-color-light", lighterColor); const customPosition = config.position ?? "bottom-left"; if (customPosition === "bottom-right") { document.documentElement.style.setProperty("--partner-widget-left", "auto"); document.documentElement.style.setProperty("--partner-widget-right", "20px"); document.documentElement.style.setProperty("--partner-widget-button-left", "auto"); document.documentElement.style.setProperty("--partner-widget-button-right", "0"); } } function appendScript(traceId, fingerprint, geo, blueprint, config) { const template = ` function trackPartnerClick(linkData) { console.log('Tracking partner click {{apiUrl}}', linkData); // Resolve objects before stringify const geo = {{{geoJson}}}; const components = {{{componentsJson}}}; fetch('{{{apiUrl}}}' + '/public/traces/widgets', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ traceId: '{{traceId}}', fingerprint: { fingerprintId: '{{fingerprintId}}', components: components }, widgetKey: linkData.widgetKey, sourceWidgetKey: '{{{sourceWidgetKey}}}', geo: geo }), }); return true; }; function toggleWindow() { const window = document.querySelector('.partner-widget-window'); const button = document.querySelector('.partner-widget-button'); if (window.style.display === 'block') { button.style.display = 'flex'; window.style.display = 'none'; } else { button.style.display = 'none'; window.style.display = 'block'; } }; function handleOutsideClick(event) { const container = document.querySelector('.partner-widget-container'); const window = document.querySelector('.partner-widget-window'); const button = document.querySelector('.partner-widget-button'); // Check if the click was outside the container if (container && !container.contains(event.target)) { // Only close if the window is currently open if (window && window.style.display === 'block') { button.style.display = 'flex'; window.style.display = 'none'; } } } // Immediately set up the event listeners (function setupEventListeners() { // Add click event to close button const closeButton = document.querySelector('.partner-widget-close'); if (closeButton) { closeButton.addEventListener('click', function() { toggleWindow(); }); } // Add click event listener to the document for outside clicks document.addEventListener('click', handleOutsideClick); })(); `; const element = document.createElement("script"); element.textContent = mustache_1.default.render(template, { apiUrl: config.apiUrl, traceId, fingerprintId: fingerprint.fingerprintId, sourceWidgetKey: blueprint.widgetKey, componentsJson: JSON.stringify(fingerprint.components), geoJson: geo ? JSON.stringify(geo) : void 0 }); document.head.appendChild(element); } async function appendWidget(blueprint, config) { const template = `
Nasi partnerzy
Nasi partnerzy
\xD7
{{#hasLinks}} {{/hasLinks}} {{^hasLinks}}

Nie Znaleziono Partner\xF3w

Obecnie nie ma partner\xF3w do wy\u015Bwietlenia. Partnerzy mog\u0105 pojawi\u0107 si\u0119 tutaj po nawi\u0105zaniu wsp\xF3\u0142pracy.

Sprawd\u017A ponownie wkr\xF3tce
{{/hasLinks}}
`; const response = await fetch(`${config.apiUrl}/public/partners?widgetKey=${blueprint.widgetKey}`, { method: "GET", headers: { "Content-Type": "application/json" } }); const partnersResponse = await response.json(); const links = partnersResponse.partners.map((link) => ({ ...link, hasImage: !!link.imageUrl, hasDescription: !!link.description, hasPromoMessage: !!link.promoMessage, jsonString: JSON.stringify(link).replace(/"/g, """) })); const container = document.createElement("div"); container.innerHTML = mustache_1.default.render(template, { links, hasLinks: links.length > 0 }); document.body.appendChild(container); } function calculateLighterColor(mainColor, lightenPercent = 20) { mainColor = mainColor.replace("#", ""); const r = parseInt(mainColor.substring(0, 2), 16); const g = parseInt(mainColor.substring(2, 4), 16); const b = parseInt(mainColor.substring(4, 6), 16); const lightenFactor = (100 + lightenPercent) / 100; const lighterR = Math.min(Math.floor(r * lightenFactor), 255); const lighterG = Math.min(Math.floor(g * lightenFactor), 255); const lighterB = Math.min(Math.floor(b * lightenFactor), 255); const lighterHex = "#" + lighterR.toString(16).padStart(2, "0") + lighterG.toString(16).padStart(2, "0") + lighterB.toString(16).padStart(2, "0"); return lighterHex; } } }); // dist/features/widget/widget.code.js var require_widget_code = __commonJS({ "dist/features/widget/widget.code.js"(exports) { var __importDefault = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.load = load; var fp_script_1 = __importDefault(require_fp_script()); var widget_panel_code_1 = require_widget_panel_code(); async function load(blueprint, config) { const traceId = crypto.randomUUID(); const fingerprint = await calculateFingerprint(); const geolocationData = await fetchGeolocationData(); const visitTrace = { traceId, fingerprint: { fingerprintId: fingerprint.fingerprintId, components: fingerprint.components }, widgetKey: blueprint.widgetKey, page: { domain: window.location.origin, path: window.location.pathname, search: window.location.search, referer: document.referrer }, geo: geolocationData || void 0 }; await sendVisitTrace(config.apiUrl, visitTrace); if (blueprint.showWidgetPanel) { await (0, widget_panel_code_1.load)(traceId, fingerprint, geolocationData, blueprint, config); } } async function calculateFingerprint() { const fp = await fp_script_1.default.load({ debug: false }); const result = await fp.get(); const jsonComponents = JSON.stringify(result.components); const components = JSON.parse(jsonComponents); return { fingerprintId: result.visitorId, components: removeField(components, "duration") }; } async function sendVisitTrace(apiUrl, trace) { try { await fetch(apiUrl + "/public/traces/visits", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(trace) }); } catch (error) { console.error("Failed to send trace:", error); } } async function fetchGeolocationData() { const TIMEOUT_MS = 500; try { const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), TIMEOUT_MS); const response = await fetch("https://api.ipgeolocation.io/ipgeo?apiKey=309b81dc18734773a1860a41f90e4723", { signal: controller.signal }); clearTimeout(timeoutId); const data = await response.json(); return data && { ip: data.ip, city: data.city, postal: data.zipcode, region: data.state_prov, country: data.country_name, latitude: parseFloat(data.latitude), longitude: parseFloat(data.longitude), timezone: data.time_zone?.name, currentTime: data.time_zone?.current_time, isp: data.isp }; } catch (error) { return null; } } function removeField(obj, fieldToRemove) { if (Array.isArray(obj)) { return obj.map((item) => removeField(item, fieldToRemove)); } else if (typeof obj === "object" && obj !== null) { return Object.fromEntries(Object.entries(obj).filter(([key]) => key !== fieldToRemove).map(([key, value]) => [key, removeField(value, fieldToRemove)])); } return obj; } } }); return require_widget_code(); })(); /*! Bundled license information: mustache/mustache.js: (*! * mustache.js - Logic-less {{mustache}} templates with JavaScript * http://github.com/janl/mustache.js *) */ if (!window.__widgetLoaded_449d04dc8f372e8318c74dec02e99000) { widgetDynamicCode.load( {"widgetKey":"000d5f62-11c5-408d-a464-77c570fdd6da","showWidgetPanel":true}, {"apiUrl":"https://philadelphia-backend.onrender.com/api","styles":".partner-widget-container {\n position: fixed;\n bottom: 20px;\n left: var(--partner-widget-left, 20px);\n right: var(--partner-widget-right, auto);\n width: 320px;\n z-index: 10000;\n box-sizing: border-box;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n}\n\n/* Button styles */\n.partner-widget-button {\n position: absolute;\n left: var(--partner-widget-button-left, 0);\n right: var(--partner-widget-button-right, auto);\n bottom: 0;\n background: linear-gradient(90deg, var(--partner-widget-primary-color-light, #000000), var(--partner-widget-primary-color, #000000));\n color: white;\n border: none;\n border-radius: 10px;\n padding: 10px 15px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n display: flex;\n align-items: center;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transition: all 0.3s ease;\n z-index: 9998;\n}\n\n.partner-widget-button:hover {\n box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);\n transform: translateY(-2px);\n}\n\n.partner-widget-button:active {\n transform: translateY(1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.partner-widget-button svg {\n margin-right: 8px;\n}\n\n.partner-widget-icon {\n width: 24px;\n height: 24px;\n fill: white;\n}\n\n/* Widget positioning (bottom left) */\n.partner-widget-window {\n display: none;\n position: fixed;\n left: var(--partner-widget-left, 20px);\n right: var(--partner-widget-right, auto);\n bottom: 20px;\n width: 410px;\n background-color: white;\n border-radius: 12px;\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n z-index: 9999;\n transition: all 0.3s ease;\n}\n\n/* Widget header */\n.partner-widget-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px 20px;\n background: linear-gradient(90deg, var(--partner-widget-primary-color-light, #000000), var(--partner-widget-primary-color, #000000));\n color: white;\n}\n\n.partner-widget-title {\n font-weight: 600;\n font-size: 16px;\n}\n\n.partner-widget-close {\n cursor: pointer;\n font-size: 20px;\n font-weight: bold;\n line-height: 1;\n}\n\n/* Widget content */\n.partner-widget-content {\n padding: 10px;\n}\n\n/* Partner grid */\n.partner-grid {\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 10px;\n}\n\n/* Partner card */\n.partner-card {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n position: relative;\n padding: 12px;\n}\n\n.partner-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);\n}\n\n/* Horizontal layout with left-aligned image */\n.partner-card-content {\n display: flex;\n align-items: center;\n}\n\n.partner-logo {\n width: 60px;\n height: 60px;\n min-width: 40px;\n border-radius: 50%;\n background-color: #f5f7fa;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n border: 1px solid #ecf0f1;\n margin-right: 12px;\n}\n\n.partner-logo img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n}\n\n.partner-logo img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.partner-info {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.partner-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.partner-promo-badge {\n background-color: #dcfce7;\n color: #166534;\n font-size: 12px;\n font-weight: 500;\n padding: 4px 8px;\n border-radius: 9999px;\n}\n\n.partner-name {\n font-weight: 600;\n font-size: 16px;\n}\n\n.partner-description {\n font-size: 12px;\n /* color: #7f8c8d; */\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n /* margin-bottom: 5px; */\n}\n\n.partner-visits {\n display: flex;\n align-items: center;\n font-size: 12px;\n color: #64748b;\n}\n\n.eye-icon {\n width: 14px;\n height: 14px;\n margin-right: 4px;\n}\n","color":"#6B7280","position":"bottom-left"} ); window.__widgetLoaded_449d04dc8f372e8318c74dec02e99000 = true; }