(self.webpackChunktradingview = self.webpackChunktradingview || []).push([
    [47258], {
        296774: e => {
            e.exports = {}
        },
        764250: (e, t, n) => {
            "use strict";
            n.d(t, {
                ActionGroup: () => o
            });
            class r {
                constructor(e, t) {
                    this._group = e;
                    const {
                        hotkey: n,
                        handler: r,
                        desc: o,
                        isDisabled: s,
                        element: i = null,
                        isRepeatAccepted: a = !1
                    } = t;
                    this.hotkey = n, this.handler = r, this.desc = o, this.element = i, this.isRepeatAccepted = a, this.isDisabled = s ? "function" == typeof s ? s : () => !0 : () => !1
                }
                destroy() {
                    this._group && (this._group.remove(this), this._group = null)
                }
            }
            class o {
                constructor(e, t) {
                    this._actions = new Map, this._manager = e, this.modal = !(!t || !t.modal), t && (this.desc = t.desc), t && t.isDisabled ? "function" == typeof t.isDisabled ? this.isDisabled = t.isDisabled : this.isDisabled = () => !0 : this.isDisabled = () => !1, this._manager.registerGroup(this)
                }
                add(e) {
                    let t = this._actions.get(e.hotkey);
                    t || (t = [], this._actions.set(e.hotkey, t));
                    const n = new r(this, e);
                    return t.push(n), n
                }
                remove(e) {
                    const t = this._actions.get(e.hotkey);
                    if (!t) return;
                    const n = t.findIndex((t => t === e));
                    n >= 0 && (1 === t.length ? this._actions.delete(e.hotkey) : t.splice(n, 1))
                }
                handleHotkey(e, t) {
                    const n = this._actions.get(e);
                    if (!n) return !1;
                    for (const r of n)
                        if ((!r.element || t.target && r.element.contains(t.target)) && !r.isDisabled(t)) return t.repeat && !r.isRepeatAccepted || (r.handler(t), this._callMatchedHotkeyHandler(e)), t.preventDefault(), !0;
                    return !1
                }
                promote() {
                    this._manager.promoteGroup(this)
                }
                destroy() {
                    for (const [, e] of this._actions)
                        for (const t of e) t.destroy();
                    this._actions.clear(), this._manager.unregisterGroup(this)
                }
                static setMatchedHotkeyHandler(e) {
                    o._matchedHotkeyHandler = e
                }
                _callMatchedHotkeyHandler(e) {
                    o._matchedHotkeyHandler && o._matchedHotkeyHandler(e)
                }
            }
        },
        163586: (e, t, n) => {
            "use strict";
            n.d(t, {
                ActionManager: () => c
            });
            var r = n(91679),
                o = n(591800),
                s = n(607423);
            class i {
                constructor(e, t) {
                    this.modifiers = e, this.code = t
                }
                altOrOptionCode() {
                    return "AltLeft" === this.code || "AltRight" === this.code
                }
                controlOrMetaCode() {
                    return o.isMacKeyboard ? "MetaLeft" === this.code || "MetaRight" === this.code || "OSLeft" === this.code || "OSRight" === this.code : "ControlLeft" === this.code || "ControlRight" === this.code
                }
            }
            class a extends r.WatchedValue {
                setValue(e, t) {
                    const n = this.value();
                    (t || void 0 === n || n.code !== e.code || n.modifiers !== e.modifiers) && super.setValue(e)
                }
            }
            class c {
                constructor() {
                    this._groups = [], this._pressedKeys = new r.WatchedValue(0), this._keyboardPressedKeysState = new a(new i(0)), this._keyDownListener = e => {
                        if (e.defaultPrevented) return;
                        const t = (0, o.hashFromEvent)(e);
                        if (this._pressedKeys.setValue(t), this._keyboardPressedKeysState.setValue(new i((0, o.modifiersFromEvent)(e), e.code)), !(0, s.isNativeUIInteraction)(t, e.target))
                            for (let n = this._groups.length; n-- > 0;) {
                                const r = this._groups[n];
                                if (!r.isDisabled()) {
                                    if (r.handleHotkey(t, e)) return;
                                    if (r.modal) return
                                }
                            }
                    }, this._keyUpListener = e => {
                        const t = (0, o.hashFromEvent)(e);
                        this._pressedKeys.setValue(t), this._keyboardPressedKeysState.setValue(new i((0, o.modifiersFromEvent)(e), ""))
                    }, this._blurEvent = () => {
                        this._pressedKeys.setValue(0), this._keyboardPressedKeysState.setValue(new i(0, ""))
                    }, this._mouseEvent = e => {
                        var t;
                        const n = (0,
                                o.modifiersFromEvent)(e),
                            r = 255 & (null !== (t = this._pressedKeys.value()) && void 0 !== t ? t : 0);
                        this._pressedKeys.setValue(n | r)
                    }
                }
                listen(e) {
                    e.addEventListener("keydown", this._keyDownListener), e.addEventListener("keyup", this._keyUpListener), e.addEventListener("blur", this._blurEvent), e.addEventListener("mousemove", this._mouseEvent)
                }
                unlisten(e) {
                    e.removeEventListener("keydown", this._keyDownListener), e.removeEventListener("keyup", this._keyUpListener), e.removeEventListener("blur", this._blurEvent), e.removeEventListener("mousemove", this._mouseEvent)
                }
                registerGroup(e) {
                    this._groups.push(e)
                }
                unregisterGroup(e) {
                    for (let t = this._groups.length; t--;) this._groups[t] === e && this._groups.splice(t, 1)
                }
                promoteGroup(e) {
                    let t = this._groups.length - 1;
                    for (let n = this._groups.length; n--;) {
                        if (this._groups[n] === e) return void(n !== t && (this._groups.splice(n, 1), this._groups.splice(t, 0, e)));
                        this._groups[n].modal && (t = n - 1)
                    }
                }
                pressedKeys() {
                    return this._pressedKeys.readonly()
                }
                keyboardPressedKeysState() {
                    return this._keyboardPressedKeysState.readonly()
                }
            }
        },
        129592: (e, t, n) => {
            "use strict";
            n.d(t, {
                createGroup: () => i,
                registerWindow: () => a
            });
            var r = n(163586),
                o = n(764250);
            n(591800);
            const s = new r.ActionManager;
            s.pressedKeys(), s.keyboardPressedKeysState();

            function i(e) {
                return new o.ActionGroup(s, e)
            }

            function a(e) {
                s.listen(e)
            }
        },
        591800: (e, t, n) => {
            "use strict";
            n.d(t, {
                Modifiers: () => s,
                hashFromEvent: () => a,
                humanReadableHash: () => d,
                isMacKeyboard: () => o,
                modifiersFromEvent: () => i
            });
            var r = n(167175);
            const o = r.isMac || r.isIOS;
            var s;

            function i(e) {
                let t = 0;
                return e.shiftKey && (t += 1024), e.altKey && (t += 512), e.ctrlKey && (t += 256), e.metaKey && (t += 2048), t
            }

            function a(e) {
                return i(e) | e.keyCode
            }! function(e) {
                e[e.None = 0] = "None", e[e.Alt = 512] = "Alt", e[e.Shift = 1024] = "Shift", e[e.Mod = o ? 2048 : 256] = "Mod", e[e.Control = 256] = "Control", e[e.Meta = 2048] = "Meta"
            }(s || (s = {}));
            const c = {
                    9: "⇥",
                    13: "↵",
                    27: "Esc",
                    8: o ? "⌫" : "Backspace",
                    32: "Space",
                    35: "End",
                    36: "Home",
                    37: "←",
                    38: "↑",
                    39: "→",
                    40: "↓",
                    45: "Ins",
                    46: "Del",
                    188: ",",
                    191: "/"
                },
                l = {
                    9: "Tab",
                    13: "Enter",
                    27: "Esc",
                    8: "Backspace",
                    32: "Space",
                    35: "End",
                    36: "Home",
                    37: "ArrowLeft",
                    38: "ArrowUp",
                    39: "ArrowRight",
                    40: "ArrowDown",
                    45: "Ins",
                    46: "Del",
                    188: ",",
                    191: "/"
                };
            for (let e = 1; e <= 16; e++) c[e + 111] = `F${e}`, l[e + 111] = `F${e}`;

            function d(e) {
                let t = function(e, t = !o) {
                    let n = "";
                    return 256 & e && (n += u(o ? "^" : "Ctrl", t)), 512 & e && (n += u(o ? "⌥" : "Alt", t)), 1024 & e && (n += u(o ? "⇧" : "Shift", t)), 2048 & e && (n += u(o ? "⌘" : "Win", t)), n
                }(e);
                const n = 255 & e;
                return t += n in c ? c[n] : String.fromCharCode(n), t
            }

            function u(e, t) {
                return `${e}${t?" + ":o?" ":""}`
            }
        },
        167175: (e, t, n) => {
            "use strict";
            n.d(t, {
                isAndroid: () => m,
                isAnyMobile: () => v,
                isBlackBerry: () => p,
                isChrome: () => a,
                isEdge: () => l,
                isFF: () => c,
                isIOS: () => f,
                isIPad: () => w,
                isLinux: () => h,
                isMac: () => u,
                isOperaMini: () => y,
                isSafari: () => d,
                isWindows: () => g,
                mobiletouch: () => s,
                touch: () => i
            });
            const r = "undefined" != typeof window && "undefined" != typeof navigator,
                o = r && "ontouchstart" in window,
                s = r && o && "onorientationchange" in window,
                i = r && (o || !!navigator.maxTouchPoints),
                a = r && window.chrome && window.chrome.runtime,
                c = r && window.navigator.userAgent.toLowerCase().indexOf("firefox") > -1,
                l = r && /\sEdge\/\d\d\b/.test(navigator.userAgent),
                d = r && Boolean(navigator.vendor) && navigator.vendor.indexOf("Apple") > -1 && -1 === navigator.userAgent.indexOf("CriOS") && -1 === navigator.userAgent.indexOf("FxiOS"),
                u = r && /mac/i.test(navigator.platform),
                g = r && /Win32|Win64/i.test(navigator.platform),
                h = r && /Linux/i.test(navigator.platform),
                m = r && /Android/i.test(navigator.userAgent),
                p = r && /BlackBerry/i.test(navigator.userAgent),
                f = r && /iPhone|iPad|iPod/.test(navigator.platform),
                y = r && /Opera Mini/i.test(navigator.userAgent),
                w = r && ("MacIntel" === navigator.platform && navigator.maxTouchPoints >= 1 || /iPad/.test(navigator.platform)),
                v = m || p || f || y
        },
        195619: (e, t, n) => {
            "use strict";
            n.d(t, {
                t: () => r
            });
            const r = n.i18next
        },
        842060: (e, t, n) => {
            "use strict";
            n.d(t, {
                getStyleClasses: () => i,
                isCircleLogoWithUrlProps: () => a
            });
            var r = n(497754),
                o = n(456057),
                s = n.n(o);

            function i(e, t) {
                return r(s()["tv-circle-logo"], s()[`tv-circle-logo--${e}`], t)
            }

            function a(e) {
                return "logoUrl" in e && null !== e.logoUrl && void 0 !== e.logoUrl && 0 !== e.logoUrl.length
            }
        },
        650401: (e, t, n) => {
            "use strict";
            n.d(t, {
                getWidgetSheriffActions: () => l
            });
            var r = n(702598),
                o = n(338619),
                s = n(952598);
            const i = window.WIDGET_SHERIFF_HOST || "https://widget-sheriff.xstaging-widget.tv",
                a = (0, o.getLogger)("WidgetSheriff.Widget");
            let c = null;
            async function l() {
                return null === c && (c = await async function() {
                    const e = function() {
                        if (document.location.ancestorOrigins && document.location.ancestorOrigins.length) return document.location.ancestorOrigins[document.location.ancestorOrigins.length - 1];
                        try {
                            return new URL(document.referrer).origin
                        } catch (e) {
                            return document.location.origin || null
                        }
                    }();
                    if (null === e) return a.logWarn("ancestorOrigin is undefined"), Promise.resolve([]);
                    const t = new URL("/sheriff/api/v1/rules/search", i);
                    t.searchParams.append("origin", e);
                    return (await (0, r.fetch)(t.toJSON()).then((e => {
                        if (!e.ok) throw new Error("Guard request error occured");
                        return 204 === e.status ? Promise.resolve({
                            actions: []
                        }) : e.json()
                    })).catch((e => (a.logWarn(e.message), Promise.resolve({
                        actions: []
                    }))))).actions.filter((e => s.widgetSheriffActions.has(e)))
                }()), Promise.resolve(c)
            }
        },
        714921: (e, t, n) => {
            "use strict";
            n.d(t, {
                createEmbedWidgetWrapper: () => c
            });
            n(296774);
            var r = n(650151),
                o = n(650401),
                s = n(351079);
            var i = n(952598);
            async function a(e, t, a, c, l = {}) {
                var d, u;
                const g = l.isSheriffDisabled ? [] : await (0, o.getWidgetSheriffActions)(),
                    h = g.includes(i.KnownAction.LargeTradeLogo),
                    m = function(e) {
                        return ["crypto-coins-heatmap", "forex-cross-rates", "market-overview", "symbol-overview", "market-quotes", "stock-heatmap", "screener", "forex-heat-map", "crypto-mkt-screener", "events", "hotlists"].includes(e)
                    }(t),
                    p = h && m ? "large_trade" : void 0,
                    f = await async function(e, t, r, o) {
                        if ("lentaru" === e) {
                            const {
                                getLentaCopyrightData: e
                            } = await Promise.all([n.e(83035), n.e(1523)]).then(n.bind(n, 466672));
                            return e()
                        }
                        if ("cmoneycomtw" === e) {
                            const {
                                getCmoneycomtwCopyrightData: e
                            } = await Promise.all([n.e(25558), n.e(18867), n.e(42091)]).then(n.bind(n, 20922));
                            return e(t, r)
                        }
                        if ("new" === o) {
                            const {
                                getTradingViewCopyrightData: e
                            } = await Promise.all([n.e(30641), n.e(36228)]).then(n.bind(n, 703094));
                            return e(t, r)
                        }
                        if ("with_border" === o) {
                            const {
                                getTradingViewCopyrightData: e
                            } = await Promise.all([n.e(24328), n.e(37753)]).then(n.bind(n, 513316));
                            return e(t, r)
                        }
                        if ("large_trade" === o) {
                            const {
                                getTradingViewCopyrightData: e
                            } = await Promise.all([n.e(19545), n.e(47259)]).then(n.bind(n, 203515));
                            return e(t, r)
                        } {
                            const {
                                getTradingViewCopyrightData: e
                            } = await Promise.all([n.e(25558), n.e(47243)]).then(n.bind(n, 88136));
                            return e(t, r)
                        }
                    }(l.customer, l.locale, function(e, t) {
                        return e && e.utm_campaign && (e.utm_campaign += `-${t}`), e
                    }(c, "logo"), p),
                    y = null !== (u = null != p ? p : null === (d = l.copyrightOptions) || void 0 === d ? void 0 : d.mode) && void 0 !== u ? u : "small_old";
                (0, r.ensureNotNull)(e).appendChild((0, s.createCopyrightLabel)({
                    sheriffOptions: g,
                    snapToEdge: a,
                    ...l.copyrightOptions,
                    ...f,
                    mode: y
                }))
            }

            function c(e, t, n, o = {}) {
                if (null === e.parentElement) return console.warn("Can not wrap 'elWidgetContainer' because it has no parentElement"), e;
                let s = null,
                    i = document.querySelector(".js-embed-widget-body");
                const c = null !== i;
                if (c) {
                    i = (0, r.ensureNotNull)(i), s = (0, r.ensureNotNull)(i.parentElement);
                    let e = document.querySelector(".js-embed-widget-head");
                    null === e && (e = document.createElement("div"), e.classList.add("tv-embed-widget-wrapper__header"), e.classList.add("js-embed-widget-head"), s.insertBefore(e, i))
                } else s = document.createElement("div"), s.classList.add("tv-embed-widget-wrapper"), s.innerHTML = '<div class="tv-embed-widget-wrapper__header js-embed-widget-head"></div><div class="tv-embed-widget-wrapper__body js-embed-widget-body"></div>', i = s.querySelector(".js-embed-widget-body");
                if (o.overflowAuto && i.classList.add("tv-embed-widget-wrapper__body--overflow_auto"), o.showBorderOnTransparent && i.classList.add("tv-embed-widget-wrapper__body--border-on-transparent"), !o.isWhiteLabel) {
                    a(i, t, !document.documentElement.classList.contains("is-transparent") || Boolean(o.showBorderOnTransparent), n, o)
                }
                return c || (e.parentElement.insertBefore(s, e), i.appendChild(e)), e
            }
        },
        251954: (e, t, n) => {
            "use strict";
            n.d(t, {
                emit: () => l,
                subscribe: () => c,
                unsubscribe: () => a
            });
            var r = n(942634);
            const o = {},
                s = [],
                i = {};

            function a(e, t, n) {
                o[e].unsubscribe(n, t)
            }

            function c(e, t, n, s) {
                o.hasOwnProperty(e) || (o[e] = new r.Delegate), i[e] ? t.call(n) : o[e].subscribe(n, t, s)
            }

            function l(e, ...t) {
                const n = [e].concat(t);
                s.forEach((e => {
                    e.apply(null, n)
                })), o.hasOwnProperty(e) && o[e].fire.apply(o[e], t)
            }
        },
        799786: (e, t, n) => {
            "use strict";
            n.d(t, {
                createGroup: () => r.createGroup
            });
            var r = n(129592),
                o = n(764250),
                s = n(591800),
                i = n(345848);
            (0, r.registerWindow)(window), o.ActionGroup.setMatchedHotkeyHandler((e => {
                (0, i.trackEvent)("Keyboard Shortcuts", (0, s.humanReadableHash)(e))
            }))
        },
        588948: (e, t, n) => {
            "use strict";
            n.d(t, {
                getInitData: () => o
            });
            n(650151);
            (0, n(338619).getLogger)("Common.InitData");
            const r = window.initData || {};

            function o() {
                return r
            }
        },
        314802: (e, t, n) => {
            "use strict";
            n.d(t, {
                isOnMobileAppPage: () => o
            });
            var r = n(181706);

            function o(e, t = !1) {
                const {
                    searchParams: n
                } = new URL(String(location));
                let o = "true" === n.get("mobileapp_new"),
                    s = "true" === n.get("mobileapp");
                if (!t) {
                    const e = r.get("tv_app") || "";
                    o || (o = ["android", "android_nps"].includes(e)), s || (s = "ios" === e)
                }
                return !("new" !== e && "any" !== e || !o) || !("new" === e || !s)
            }
        },
        439563: (e, t, n) => {
            "use strict";
            async function r() {
                const e = (await Promise.all([n.e(6242), n.e(19247), n.e(36683)]).then(n.bind(n, 469449))).getTrackerInstance();
                return e || null
            }
            n.d(t, {
                getEmbedWidgetTracker: () => r
            })
        },
        995683: (e, t, n) => {
            "use strict";

            function r(e, t, n = {}) {
                return Object.assign({}, e, function(e, t, n = {}) {
                    const r = Object.assign({}, t);
                    for (const o of Object.keys(t)) {
                        const s = n[o] || o;
                        s in e && (r[o] = [e[s], t[o]].join(" "))
                    }
                    return r
                }(e, t, n))
            }
            n.d(t, {
                mergeThemes: () => r
            })
        },
        692558: (e, t, n) => {
            "use strict";
            n.d(t, {
                LOGLEVEL: () => s,
                getLogHistory: () => _,
                getLogLevel: () => f,
                getLogger: () => L,
                getRawLogHistory: () => v,
                isHighRateEnabled: () => y,
                loggingOff: () => S,
                loggingOn: () => O,
                serializeLogHistoryEntry: () => b,
                setLogLevel: () => w
            });
            const r = "undefined" != typeof window ? window : {};
            let o = !1;
            try {
                localStorage.getItem(""), o = !0
            } catch (e) {}
            var s;
            ! function(e) {
                e[e.ERROR = 1] = "ERROR", e[e.WARNING = 2] = "WARNING", e[e.INFO = 3] = "INFO", e[e.NORMAL = 4] = "NORMAL", e[e.DEBUG = 5] = "DEBUG"
            }(s || (s = {}));
            let i = 0;
            const a = "tv.logger.loglevel",
                c = "tv.logger.logHighRate",
                l = [];
            let d = null,
                u = null,
                g = null,
                h = NaN,
                m = s.WARNING,
                p = !1;

            function f() {
                return m
            }

            function y() {
                return p
            }

            function w(e) {
                e = Math.max(s.ERROR, Math.min(s.DEBUG, e)), m = e, R()
            }

            function v(e, t) {
                let n = l.reduce(((e, t) => e.concat(t)), []);
                return n.sort(((e, t) => e.id - t.id)), void 0 !== t && (n = n.filter((e => e.subSystemId === t))), "number" == typeof e && (n = n.slice(-e)), n
            }

            function b(e) {
                return new Date(e.timestamp).toISOString() + ":" + e.subSystemId + ":" + e.message.replace(/"/g, "'")
            }
            const _ = r.lget = (e, t) => function(e, t) {
                let n, r = 0,
                    o = 0;
                for (n = e.length - 1; n >= 1 && (r += 8 * (1 + encodeURIComponent(e[n]).length), !(n - 1 > 0 && (o = 8 * (1 + encodeURIComponent(e[n - 1]).length), r + o > t))); n--);
                return e.slice(n)
            }(v(e, t).map(b), 75497472);

            function E(e, t, n, r) {
                if (t === u && r.id === g) return;
                const o = new Date;
                if (e <= s.NORMAL && function(e, t, n, r, o) {
                        "function" == typeof structuredClone && (t = structuredClone(t));
                        const s = {
                            id: i,
                            message: t,
                            subSystemId: r,
                            timestamp: Number(e)
                        };
                        i += 1, n.push(s), void 0 !== o && n.length > o && n.splice(0, 1)
                    }(o, t, n, r.id, r.maxCount), e <= m && (!r.highRate || y()) && (!d || r.id.match(d))) {
                    const n = o.toISOString() + ":" + r.id + ":" + t;
                    switch (e) {
                        case s.DEBUG:
                            console.debug(n);
                            break;
                        case s.INFO:
                        case s.NORMAL:
                            r.color ? console.log("%c" + n, "color: " + r.color) : console.log(n);
                            break;
                        case s.WARNING:
                            console.warn(n);
                            break;
                        case s.ERROR:
                            console.error(n)
                    }
                    u = t, g = r.id, h && clearTimeout(h), h = setTimeout((() => {
                        u = null, g = null, h = NaN
                    }), 1e3)
                }
            }

            function L(e, t = {}) {
                const n = [];
                l.push(n);
                const r = Object.assign(t, {
                    id: e
                });

                function o(e) {
                    return t => E(e, String(t), n, r)
                }
                return {
                    logDebug: o(s.DEBUG),
                    logError: o(s.ERROR),
                    logInfo: o(s.INFO),
                    logNormal: o(s.NORMAL),
                    logWarn: o(s.WARNING)
                }
            }
            const k = L("logger"),
                O = r.lon = (e, t) => {
                    w(s.DEBUG), k.logNormal("Debug logging enabled"), p = Boolean(e), d = t || null, R()
                },
                S = r.loff = () => {
                    w(s.INFO), k.logInfo("Debug logging disabled")
                };

            function R() {
                try {
                    o && (localStorage.setItem(c, String(p)),
                        localStorage.setItem(a, String(m)))
                } catch (e) {
                    k.logWarn(`Cannot save logger state (level: ${m}, high-rate: ${p}) to localStorage: ${e.message}`)
                }
            }! function() {
                p = !!o && "true" === localStorage.getItem(c);
                let e = parseInt(o && localStorage.getItem(a) || "");
                Number.isNaN(e) && (e = s.WARNING), w(e), k.logNormal(`Init with settings - level: ${m}, high-rate: ${p}`)
            }(), r.performance && r.performance.now ? k.logNormal(`Sync logger and perf times, now is ${r.performance.now()}`) : k.logWarn("Perf time is not available")
        },
        566953: (e, t, n) => {
            n(778785).setClasses();
            var r = n(411963).whenDocumentReady,
                o = n(282616).handleTVLinksClick;
            r((() => {
                o()
            }))
        },
        702598: (e, t, n) => {
            "use strict";
            n.d(t, {
                fetch: () => o
            });
            const r = (0, n(338619).getLogger)("Fetch");

            function o(e, t, n = {}) {
                {
                    const {
                        logOnErrorStatus: o = !0,
                        logBodyOnError: s = !1
                    } = n;
                    t = t || {},
                        function(e) {
                            return new URL(e, document.baseURI).origin === location.origin
                        }(e) && (t.headers ? t.headers instanceof Headers || (t.headers = new Headers(t.headers)) : t.headers = new Headers, window.locale && t.headers.set("X-Language", window.locale), t.headers.set("X-Requested-With", "XMLHttpRequest")), void 0 === t.credentials && (t.credentials = "same-origin");
                    const i = window.fetch(e, t);
                    return i.then((n => {
                        if (!n.ok && o) {
                            let o = "";
                            t.method && (o += `${t.method.toUpperCase()} `), o += e, o += `. Status ${n.status}`, n.statusText && (o += `. ${n.statusText}`), n.headers.via && (o += `. Via: ${n.headers.via}`), s && "string" == typeof t.body && (o += `. Body: ${t.body.slice(0,1024)}`), r.logError(o)
                        }
                        return n
                    }), (n => {
                        if (n && "AbortError" === n.name) return;
                        let o = "";
                        t.method && (o += `${t.method.toUpperCase()} `), o += e, navigator.onLine ? o += `. ${n}` : o += ". User is offline.", r.logError(o)
                    })), i
                }
            }
        },
        226057: (e, t, n) => {
            "use strict";

            function r(e) {
                const t = [];
                for (const n in e) e.hasOwnProperty(n) && null != e[n] && t.push({
                    key: n,
                    pair: encodeURIComponent(n) + "=" + encodeURIComponent(e[n])
                });
                return t.sort(((e, t) => e.key > t.key ? 1 : e.key < t.key ? -1 : 0)).map((e => e.pair)).join("&")
            }
            n.d(t, {
                createUrlParams: () => r
            })
        },
        248213: (e, t, n) => {
            "use strict";
            n.d(t, {
                buildUtmQueryString: () => a,
                filterUtmInfo: () => i
            });
            var r = n(226057),
                o = n(433524);
            const s = ["utm_source", "utm_medium", "utm_campaign"];

            function i(e) {
                const t = {};
                return s.forEach((n => {
                    const r = e[n];
                    "string" == typeof r && "" !== r && (t[n] = (0, o.htmlEscape)(r))
                })), t
            }

            function a(e, t = !1) {
                const n = (0, r.createUrlParams)(e);
                return n && t ? "?" + n : n
            }
        },
        411963: (e, t, n) => {
            "use strict";

            function r(e, t = !1) {
                "loading" !== document.readyState ? t ? setTimeout((() => e()), 1) : e() : document.addEventListener("DOMContentLoaded", (() => e()))
            }
            n.d(t, {
                whenDocumentReady: () => r
            });
            new Promise((e => {
                r(e)
            }))
        }
    }
]);