/**
 * crisp-client
 * @version v2.7.0 370c9ed
 * @author Crisp IM SAS
 * @date 3/24/2022
 */
(function() {
    try {
        var x = {},
            r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            };
        x.Library = (H.prototype.t = function() {
            try {
                this.i()
            } catch (t) {}
        }, H.prototype.i = function() {
            try {
                this.dom.fn.extend({
                    safe_css_text: function(s, c) {
                        if (s) return "object" === (void 0 === s ? "undefined" : r(s)) || c ? (this.each(function(t) {
                            var i = {};
                            "object" === (void 0 === s ? "undefined" : r(s)) ? i = s: i[s] = c;
                            var n, e = "";
                            for (n in i) i.hasOwnProperty(n) && (e += n + ": " + i[n] + " !important;");
                            t.style.cssText = e
                        }), this) : this[0].style.cssText;
                        this.each(function(t) {
                            t.style.cssText = ""
                        })
                    }
                })
            } catch (t) {}
        }, new H), x.Polyfill = (J.prototype.reset = function() {
            try {
                this.n()
            } catch (t) {}
        }, J.prototype.schedule_warn_incompatible = function() {
            var t = this,
                i = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
            try {
                null !== this.s && clearTimeout(this.s), this.s = setTimeout(function() {
                    !(t.s = null) !== x.Pipeline.a && t.o()
                }, !0 === i ? 0 : this.h)
            } catch (t) {}
        }, J.prototype.u = function() {
            try {
                this.l()
            } catch (t) {}
        }, J.prototype.l = function() {
            try {
                Function.prototype.d = function(t) {
                    var i, n = void 0,
                        e = void 0,
                        s = void 0;
                    if ("function" != typeof this) throw new TypeError("Function.prototype.__crisp_bind - not callable");
                    return n = Array.prototype.slice.call(arguments, 1), s = function() {}, i = function() {
                        return e.apply(this instanceof s ? this : t, n.concat(Array.prototype.slice.call(arguments)))
                    }, (e = this).prototype && (s.prototype = this.prototype), i.prototype = new s, i
                }
            } catch (t) {}
        }, J.prototype.o = function() {
            try {
                var t = window;
                if (t && t.console && "function" == typeof t.console.warn && "function" == typeof Function.prototype.toString) {
                    for (var i, n, e, s = [
                            [null, t, ["eval", "escape", "unescape", "decodeURI", "encodeURI", "decodeURIComponent", "encodeURIComponent", "setTimeout", "clearTimeout", "setInterval", "clearInterval", "parseInt", "parseFloat", "RTCPeerConnection", "MutationObserver", "XMLHttpRequest", "AudioContext", "WebSocket"]],
                            [null, t, ["Array", "Object", "String", "Date", "Function", "RegExp", "Event", "Error"]],
                            ["Array.prototype", t.Array.prototype, ["push", "pop", "indexOf", "includes", "sort", "splice", "slice", "shift", "unshift", "map", "forEach"]],
                            ["Object", t.Object, ["keys", "values"]],
                            ["Object.prototype", t.Object.prototype, ["hasOwnProperty"]],
                            ["String", t.String, ["fromCharCode"]],
                            ["String.prototype", t.String.prototype, ["indexOf", "charAt", "charCodeAt", "trim", "toLowerCase", "toUpperCase", "slice", "replace", "match"]],
                            ["Math", t.Math, ["random", "round", "floor", "ceil", "abs"]],
                            ["Date", t.Date, ["now"]],
                            ["Date.prototype", t.Date.prototype, ["getTime", "toISOString"]],
                            ["Function.prototype", t.Function.prototype, ["bind", "apply", "call"]],
                            ["RegExp.prototype", t.RegExp.prototype, ["test", "exec"]],
                            ["Event.prototype", t.Event.prototype, ["preventDefault", "stopPropagation"]],
                            ["document", t.document, ["createElement", "addEventListener", "removeEventListener"]],
                            ["JSON", t.JSON, ["stringify", "parse"]],
                            ["localStorage", t.localStorage, ["setItem", "getItem", "removeItem"]],
                            ["sessionStorage", t.sessionStorage, ["setItem", "getItem", "removeItem"]]
                        ], c = [], a = 0; a < s.length; a++)
                        if (void 0 === (n = (i = s[a])[1])) c.push(i[0] || "[root]");
                        else
                            for (var r = i[2] || [], o = 0; o < r.length; o++) void 0 === (e = n[r[o]]) || this.v.test("" + e) || (null !== i[0] ? c.push(i[0] + "." + r[o]) : c.push(r[o]));
                    0 < c.length && console.warn('[WARNING] Crisp found shims of native JavaScript methods. This can alter the chatbox behavior and break things. Make sure not to override listed functions to ensure your chatbox works as expected. You may be looking for other JavaScript libraries in use on this page.\n\nYou can disable this warning by adding: $crisp.push(["safe", true]) to your page JavaScript.\n\nMethods to check:', c)
                }
            } catch (t) {}
        }, J.prototype.n = function() {
            try {
                this.s = null
            } catch (t) {}
        }, new J), r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        } : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }, x.Utility = (P.prototype.reset = function() {
            try {
                this.n()
            } catch (t) {}
        }, P.prototype.get_or_fallback = function(t, i) {
            var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null,
                e = t;
            try {
                e = null !== n ? (void 0 === t ? "undefined" : r(t)) !== n ? i : t : t || i
            } catch (t) {} finally {
                return e
            }
        }, P.prototype.lower_string_first = function(t) {
            var i = t;
            try {
                t && (i = "" + t.charAt(0).toLowerCase() + t.slice(1))
            } catch (t) {} finally {
                return i
            }
        }, P.prototype.pad_number = function(t) {
            var i, n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "00",
                e = n;
            try {
                0 <= t && (i = n.length - Math.ceil((t + 1) / 10), e = t ? n.substr(0, i) + t : n)
            } catch (t) {} finally {
                return e
            }
        }, P.prototype.filter_link_safe = function(t) {
            var i = "#";
            try {
                t && !1 === this._.test(t) && (i = t)
            } catch (t) {} finally {
                return i
            }
        }, P.prototype.filter_image_url_resize = function(t, i, n) {
            var e = "";
            try {
                e = t.substring(0, x.Base.g.length) === x.Base.g ? t : x.Base.g + "/process/resize/?url=" + encodeURIComponent(t) + "&width=" + i + "&height=" + n
            } catch (t) {} finally {
                return e
            }
        }, P.prototype.to_hashcode = function(t) {
            var i = 0;
            try {
                if (0 < t.length)
                    for (var n = 0; n < t.length; n++) i = (i << 5) - i + t.charCodeAt(n), i &= i
            } catch (t) {} finally {
                return i
            }
        }, P.prototype.is_empty = function(t) {
            var i = !0;
            try {
                0 < this.keys(t).length && (i = !1)
            } catch (t) {} finally {
                return i
            }
        }, P.prototype.is_equal = function(t, i) {
            var n = !0;
            try {
                var e, s = -1,
                    c = void 0;
                if ((void 0 === t ? "undefined" : r(t)) !== (void 0 === i ? "undefined" : r(i))) n = !1;
                else if (t && "object" === (void 0 === t ? "undefined" : r(t)) && i && "object" === (void 0 === i ? "undefined" : r(i)))
                    for (t instanceof Array || i instanceof Array ? (c = this.union(t, i), t.length === c.length && i.length === c.length || (n = !1)) : c = this.union(this.keys(t), this.keys(i)); ++s < c.length && !0 === n;) e = c[s], n = this.is_equal(t[e], i[e]);
                else n = t === i && !0
            } catch (t) {} finally {
                return n
            }
        }, P.prototype.keys = function(t) {
            var i = [];
            try {
                "object" === (void 0 === t ? "undefined" : r(t)) && t && (i = Object.keys(t))
            } catch (t) {} finally {
                return i
            }
        }, P.prototype.clone = function(t) {
            var i = void 0;
            try {
                var n, e = void 0,
                    i = Array.isArray(t) ? [] : {};
                for (e in t) n = t[e], i[e] = "object" === (void 0 === n ? "undefined" : r(n)) ? this.clone(n) : n
            } catch (t) {} finally {
                return i
            }
        }, P.prototype.intersect = function(t, i) {
            var n = [];
            try {
                for (var e = 0; e < t.length; e++) - 1 !== i.indexOf(t[e]) && n.push(t[e])
            } catch (t) {} finally {
                return n
            }
        }, P.prototype.union = function(t, i) {
            var n = [];
            try {
                for (var e = 0; e < t.length; e++) - 1 === n.indexOf(t[e]) && n.push(t[e]);
                for (var s = 0; s < i.length; s++) - 1 === n.indexOf(i[s]) && n.push(i[s])
            } catch (t) {} finally {
                return n
            }
        }, P.prototype.extract = function(t, i) {
            var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "",
                e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : 1,
                s = i || n || "";
            try {
                var c = (i || "").trim().match(t),
                    s = c && c[e] ? c[e] : n || ""
            } catch (t) {} finally {
                return s
            }
        }, P.prototype.compare_rule = function(t, i) {
            var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : ".",
                e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : ".",
                s = !1;
            try {
                s = -1 !== (i = !0 === this.w.test(i) ? (i = i.replace(this.w, this.b)).replace(this.k, "") : i).indexOf("*") ? (i = (i = (i = (i = i.replace(this.F, this.j)).replace(this.q, this.z)).replace(this.C, e + "*")).replace(this.S, n + "*"), new RegExp("^" + i + "$").test(t) && !0) : t === i && !0
            } catch (t) {} finally {
                return s
            }
        }, P.prototype.compare_rules = function(t, i, n) {
            var e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : ".",
                s = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : ".",
                c = !1,
                a = !1,
                r = !1;
            try {
                if (0 < i.length) {
                    for (var o = 0; o < i.length && !0 !== a;) a = this.compare_rule(t, i[o], e, s), o++;
                    !1 === a && (c = !0)
                }
                if (!1 === a && 0 < n.length) {
                    for (var h = 0; h < n.length && !0 !== r;) r = this.compare_rule(t, n[h], e, s), h++;
                    c = r
                }
            } catch (t) {} finally {
                return c
            }
        }, P.prototype.normalize_url_path = function(t, i) {
            var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "",
                e = "";
            try {
                i ? 1 < i.length && "/" !== i[i.length - 1] && "*" !== i[i.length - 1] && (i += "/") : i = "/", e = "" + n + t + i
            } catch (t) {} finally {
                return e
            }
        }, P.prototype.compare_page_rules = function(t, i) {
            var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null,
                e = !1;
            try {
                if (0 < i.length) {
                    var s, c = [],
                        a = [],
                        r = [];
                    null === n && (n = x.Base.A);
                    for (var o = 0; o < i.length; o++) {
                        var h = (i[o] || "").trim();
                        h && ((s = (h = !1 === this.I.test(h) ? this.normalize_url_path(n, h) : h).match(this.I)) ? c.push(this.normalize_url_path(s[2], s[3], s[1])) : c.push("" + n + h))
                    }
                    for (var u = t.match(this.I), l = u ? this.normalize_url_path(u[2], u[3], u[1]) : null, f = 0; f < c.length; f++)(!0 === this.w.test(c[f]) ? a : r).push(c[f]);
                    !0 === this.compare_rules(l, a, r, "[^/]", ".") && (e = !0)
                }
            } catch (t) {} finally {
                return e
            }
        }, P.prototype.play_media = function(t) {
            try {
                var i = t.play();
                void 0 !== i && "function" == typeof i.catch && i.catch(function(t) {})
            } catch (t) {}
        }, P.prototype.acquire_channel_url_regex = function(t, i) {
            var n, e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "",
                s = null;
            try {
                x.Base.D.channels[t] && ((s = (this.B[t] || {})[i]) || (n = x.Chat.Interface.U("helpdesk"), s = new RegExp("^" + x.Library.crisp.web.Parse.escape_regex(n) + e + "$"), this.B[t] = this.B[t] || {}, this.B[t][i] = s))
            } catch (t) {} finally {
                return s
            }
        }, P.prototype.set_timeout = function(t) {
            var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0,
                n = null;
            try {
                if (!x.Library.crisp.client.Schedule) throw new Error("Could not set timeout after " + i + "ms, as the schedule wrapper is not yet available");
                n = x.Library.crisp.client.Schedule.set_timeout(t, i)
            } catch (t) {} finally {
                return n
            }
        }, P.prototype.clear_timeout = function(t) {
            try {
                if (!x.Library.crisp.client.Schedule) throw new Error("Could not clear timeout #" + t + ", as the schedule wrapper is not yet available");
                x.Library.crisp.client.Schedule.clear_timeout(t)
            } catch (t) {}
        }, P.prototype.set_interval = function(t) {
            var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0,
                n = null;
            try {
                if (!x.Library.crisp.client.Schedule) throw new Error("Could not set interval every " + i + "ms, as the schedule wrapper is not yet available");
                n = x.Library.crisp.client.Schedule.set_interval(t, i)
            } catch (t) {} finally {
                return n
            }
        }, P.prototype.clear_interval = function(t) {
            try {
                if (!x.Library.crisp.client.Schedule) throw new Error("Could not clear interval #" + t + ", as the schedule wrapper is not yet available");
                x.Library.crisp.client.Schedule.clear_interval(t)
            } catch (t) {}
        }, P.prototype.add_event_listener = function(t, i, n, e) {
            var s = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : {};
            try {
                if (!x.Library.crisp.client.Listener) throw new Error("Could not add event listener '" + n + "' to '" + i + "' instance, as the listener wrapper is not yet available");
                x.Library.crisp.client.Listener.add_event(t, i, n, e, s)
            } catch (t) {}
        }, P.prototype.remove_event_listener = function(t, i, n) {
            try {
                if (!x.Library.crisp.client.Listener) throw new Error("Could not remove event listener '" + n + "' from '" + i + "' instance, as the listener wrapper is not yet available");
                x.Library.crisp.client.Listener.remove_event(t, i, n)
            } catch (t) {}
        }, P.prototype.reset_instance_children = function(t) {
            var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;
            try {
                var n, e = null !== i ? i : t,
                    s = [];
                for (n in t) {
                    var c = t[n];
                    c !== e && c && "object" === (void 0 === c ? "undefined" : r(c)) && "function" == typeof c.reset && c.reset(s)
                }
                for (; 0 < s.length;) s.shift()()
            } catch (t) {}
        }, P.prototype.n = function() {
            try {
                this.B = {}
            } catch (t) {}
        }, new P), x.Feature = (L.prototype.reset = function() {
            try {
                this.n()
            } catch (t) {}
        }, L.prototype.has_screen_touch = function() {
            try {
                return this.R
            } catch (t) {}
        }, L.prototype.has_css_animations = function() {
            try {
                return this.M
            } catch (t) {}
        }, L.prototype.has_html_audio = function() {
            try {
                return null !== this.N && !0
            } catch (t) {}
        }, L.prototype.html_audio_format = function() {
            try {
                return this.N
            } catch (t) {}
        }, L.prototype.O = function(t) {
            var i = !1;
            try {
                i = !!(t in window)
            } catch (t) {} finally {
                return i
            }
        }, L.prototype.T = function(t) {
            var i = !1;
            try {
                var n = document.documentElement.style,
                    e = ["Khtml", "Ms", "O", "Moz", "Webkit"],
                    s = e.length;
                if (t in n) i = !0;
                else
                    for (t = t.replace(/^[a-z]/, function(t) {
                            return t.toUpperCase()
                        }); s--;)
                        if (e[s] + t in n) {
                            i = !0;
                            break
                        }
            } catch (t) {} finally {
                return i
            }
        }, L.prototype.L = function() {
            var i = this;
            try {
                this.R = (this.O("ontouchstart") || 0 < navigator.maxTouchPoints) && !0, window.addEventListener("touchstart", function t() {
                    i.R = !0, window.removeEventListener("touchstart", t)
                }, !1)
            } catch (t) {}
        }, L.prototype.P = function() {
            var t = null;
            try {
                var i = document.createElement("audio"),
                    n = !(!i.canPlayType || !i.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/, "")),
                    e = !(!i.canPlayType || !i.canPlayType('audio/mp4; codecs="mp4a.40.2"').replace(/no/, "")),
                    s = !(!i.canPlayType || !i.canPlayType("audio/mpeg;").replace(/no/, ""));
                1 == n ? t = "oga" : 1 == e ? t = "m4a" : 1 == s && (t = "mp3")
            } catch (t) {} finally {
                return t
            }
        }, L.prototype.n = function() {
            try {
                this.M = this.T("animation"), this.N = this.P(), this.L()
            } catch (t) {}
        }, new L), r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        } : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }, x.Action = (T.prototype.reset = function() {
            try {
                void 0 === x.Base.J.__spool.pending_actions && (x.Base.J.__spool.pending_actions = [])
            } catch (t) {}
        }, T.prototype.do_chat_open = function() {
            !0 === x.Chat.H ? x.Chat.Interface.W() : x.Minimized.Interface.G()
        }, T.prototype.do_chat_close = function() {
            !0 === x.Chat.H && x.Chat.Interface.V()
        }, T.prototype.do_chat_toggle = function() {
            !0 === this.is_chat_closed() ? this.do_chat_open() : this.do_chat_close()
        }, T.prototype.do_chat_show = function() {
            !0 === this.is_chat_hidden() && null !== x.Base.K && (x.Base.K.safe_css_text("display", "block"), x.Chat.Interface.X())
        }, T.prototype.do_chat_hide = function() {
            !0 === this.is_chat_visible() && null !== x.Base.K && x.Base.K.safe_css_text("display", "none")
        }, T.prototype.do_helpdesk_search = function() {
            if (!0 !== x.Chat.Interface.Y()) throw new Error("Helpdesk search is unavailable");
            this.do_chat_show()
        }, T.prototype.do_helpdesk_article_open = function(t, i) {
            if ("string" != typeof t || !t) throw new Error("Invalid article locale");
            if ("string" != typeof i || !i) throw new Error("Invalid article slug");
            if (!0 !== x.Chat.Interface.Z(t, i)) throw new Error("Helpdesk article is unavailable");
            this.do_chat_show()
        }, T.prototype.do_helpdesk_query = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "";
            x.Base.Q(function() {
                x.Library.crisp.client.Helpdesk.get_article_search(t, x.Locale.code())
            })
        }, T.prototype.do_message_send = function(n, e) {
            var s = this;
            x.Base.Q(function() {
                var t = s.tt(n, e);
                if (null !== t.type && null !== t.content) {
                    var i = !0 === x.Chat.Message.it() ? s.nt : 0;
                    switch (t.type) {
                        case "text":
                            x.Library.crisp.client.Message.send_text_message(t.content, i);
                            break;
                        case "file":
                            x.Library.crisp.client.Message.send_file_message(t.content.name, t.content.url, t.content.type, i);
                            break;
                        case "animation":
                            x.Library.crisp.client.Message.send_animation_message(t.content.url, t.content.type, i);
                            break;
                        case "audio":
                            x.Library.crisp.client.Message.send_audio_message(t.content.url, t.content.type, t.content.duration, i);
                            break;
                        case "picker":
                            x.Library.crisp.client.Message.send_picker_message(t.content.id, t.content.text, t.content.choices, i);
                            break;
                        case "field":
                            x.Library.crisp.client.Message.send_field_message(t.content.id, t.content.text, t.content.explain, i)
                    }
                    x.Chat.et()
                }
            })
        }, T.prototype.do_message_show = function(i, n) {
            var e = this,
                s = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null,
                c = 3 < arguments.length && void 0 !== arguments[3] && arguments[3];
            x.Base.Q(function() {
                var t = e.tt(i, n);
                null !== t.type && null !== t.content && x.Chat.Message.st(t.type, t.content, s, c)
            })
        }, T.prototype.do_message_read = function() {
            !0 === x.Chat.H && x.Library.crisp.client.Message.mark_messages_as_read()
        }, T.prototype.do_message_thread_start = function(t) {
            if ("string" != typeof t || !t) throw new Error("Invalid message thread start text");
            if (!0 !== x.Chat.H) throw new Error("Chat must be active for message thread to start");
            x.Base.Q(function() {
                x.Library.crisp.client.Message.send_message_thread("start", t)
            })
        }, T.prototype.do_message_thread_end = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "";
            if (t && ("string" != typeof t || !t)) throw new Error("Invalid message thread end text");
            if (!0 !== x.Chat.H) throw new Error("Chat must be active for message thread to end");
            x.Base.Q(function() {
                x.Library.crisp.client.Message.send_message_thread("end", t || "")
            })
        }, T.prototype.do_session_reset = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
            x.Base.ct(!1, !0), x.Library.crisp.client.Session.reset(), !1 === t ? (x.Base.at(), x.Base.reset(), x.Base.rt()) : document.location.reload(!1)
        }, T.prototype.do_trigger_run = function(t) {
            if (!0 !== x.Trigger.ot(t)) throw new Error("Trigger does not exist")
        }, T.prototype.is_chat_opened = function() {
            return !(!0 !== x.Chat.Interface.ht || !0 !== x.Chat.H)
        }, T.prototype.is_chat_closed = function() {
            return !1 === this.is_chat_opened() && !0
        }, T.prototype.is_chat_visible = function() {
            return !1 === this.is_chat_hidden() && !0
        }, T.prototype.is_chat_hidden = function() {
            return (null === x.Base.K || "none" === x.Base.K.css("display")) && !0
        }, T.prototype.is_chat_small = function() {
            return !1 === x.Base.ut() && !0
        }, T.prototype.is_chat_large = function() {
            return !1 === this.is_chat_small() && !0
        }, T.prototype.is_session_ongoing = function() {
            return (!0 === x.Chat.Message.lt || !0 === x.Chat.Message.ft) && !0
        }, T.prototype.is_website_available = function() {
            return x.Availability.dt && !0
        }, T.prototype.get_chat_unread_count = function() {
            return x.Chat.Notification.pt || 0
        }, T.prototype.get_message_text = function() {
            return !0 === x.Chat.H && x.Chat.Selector.get("form_textarea_message").val() || ""
        }, T.prototype.get_session_identifier = function() {
            return x.Broker.vt || null
        }, T.prototype.get_session_data = function() {
            return x.Library.crisp.client.Session.get_data(0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null) || null
        }, T.prototype.get_user_email = function() {
            return x.Library.crisp.client.Session.get_email() || null
        }, T.prototype.get_user_phone = function() {
            return x.Library.crisp.client.Session.get_phone() || null
        }, T.prototype.get_user_nickname = function() {
            return x.Library.crisp.client.Session.get_nickname() || null
        }, T.prototype.get_user_avatar = function() {
            return x.Library.crisp.client.Session.get_avatar() || null
        }, T.prototype.get_user_company = function() {
            var t = x.Library.crisp.client.Session.get_company() || null;
            return ((t || {}).employment || {}).title && (t.employment = [t.employment.title, t.employment.role]), ((t || {}).geolocation || {}).country && (t.geolocation = [t.geolocation.country, t.geolocation.city || null]), t
        }, T.prototype.set_message_text = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null;
            if ("string" != typeof t) throw new Error("Invalid message text");
            var i = x.Chat.Selector.get("form_textarea_message");
            i && !0 !== i.is(":disabled") && (i.val(t), i.trigger("keypress"))
        }, T.prototype.set_session_data = function(c, a) {
            x.Base.Q(function() {
                for (var t, i = c instanceof Array && c[0] instanceof Array ? c : [
                        [c, a]
                    ], n = {}, e = 0; e < i.length; e++) {
                    var s = i[e][1];
                    s && "string" == typeof s && ("false" === s ? s = !1 : "true" === s ? s = !0 : !1 === isNaN(s) && (s = Number(s))), n[i[e][0]] = s
                }
                if (!0 !== x.Validate.is_data(n)) throw new Error("Invalid data");
                for (t in x.Library.crisp.client.Session.set_data(n), n) x.Trigger.yt("user_data", {
                    key: t,
                    value: n[t]
                })
            }, !0)
        }, T.prototype.set_session_segments = function(t) {
            var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
            x.Base.Q(function() {
                if (!t || !0 !== x.Validate.are_segments(t)) throw new Error("Invalid segments value");
                x.Library.crisp.client.Session.set_segments(t, i)
            }, !0)
        }, T.prototype.set_session_event = function(n) {
            var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null,
                s = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
            x.Base.Q(function() {
                var t = n instanceof Array && n[0] instanceof Array ? n : [
                    [n, e, s]
                ];
                if (!0 !== x.Validate.are_events(t)) throw new Error("Invalid event text or data");
                x.Library.crisp.client.Session.send_event(t);
                for (var i = 0; i < t.length; i++) x.Trigger.yt("user_event", {
                    text: t[i][0]
                })
            }, !0)
        }, T.prototype.set_user_email = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null,
                i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;
            if (!t || !0 !== x.Validate.is_email(t)) throw new Error("Invalid email");
            if (null !== i && !0 !== this.mt.test(i)) throw new Error("Invalid verify signature (should be lowercase HMAC-SHA256)");
            x.Library.crisp.client.Session.set_email(t, !1, i), this._t(), this.gt("user:email:changed", t)
        }, T.prototype.set_user_phone = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null;
            if (!(t = "number" == typeof t ? "" + t : t) || !0 !== x.Validate.is_phone(t)) throw new Error("Invalid phone");
            x.Library.crisp.client.Session.set_phone(t), this._t(), this.gt("user:phone:changed", t)
        }, T.prototype.set_user_nickname = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null;
            if ("string" != typeof t || !t) throw new Error("Invalid nickname");
            x.Library.crisp.client.Session.set_nickname(t), this.gt("user:nickname:changed", t)
        }, T.prototype.set_user_avatar = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null;
            if (!t || !0 !== x.Validate.is_avatar(t)) throw new Error("Invalid avatar");
            x.Library.crisp.client.Session.set_avatar(t), this.gt("user:avatar:changed", t)
        }, T.prototype.set_user_company = function(t) {
            var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
            if (!t) throw new Error("Invalid company name");
            var n = {
                name: t
            };
            if (i.url) {
                if ("string" != typeof i.url) throw new Error("Invalid URL");
                n.url = i.url
            }
            if (i.description) {
                if ("string" != typeof i.description) throw new Error("Invalid description");
                n.description = i.description
            }
            if ((i.employment || [])[0]) {
                if ("string" != typeof i.employment[0] || "string" != typeof i.employment[1]) throw new Error("Invalid employment");
                n.employment = {
                    title: i.employment[0],
                    role: i.employment[1]
                }
            }
            if ((i.geolocation || [])[0]) {
                if ("string" != typeof i.geolocation[0] || i.geolocation[1] && "string" != typeof i.geolocation[1]) throw new Error("Invalid geolocation");
                n.geolocation = {
                    country: i.geolocation[0],
                    city: i.geolocation[1] || null
                }
            }
            x.Library.crisp.client.Session.set_company(n)
        }, T.prototype.config_availability_tooltip = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
            x.Base.wt("availability_tooltip", t), !0 === t && !0 !== x.Base.ut() && x.Minimized.Interface.bt()
        }, T.prototype.config_hide_vacation = function() {
            x.Base.wt("hide_vacation", 0 < arguments.length && void 0 !== arguments[0] && arguments[0])
        }, T.prototype.config_hide_on_away = function() {
            x.Base.wt("hide_on_away", 0 < arguments.length && void 0 !== arguments[0] && arguments[0])
        }, T.prototype.config_hide_on_mobile = function() {
            x.Base.wt("hide_on_mobile", 0 < arguments.length && void 0 !== arguments[0] && arguments[0])
        }, T.prototype.config_position_reverse = function() {
            x.Base.wt("position_reverse", 0 < arguments.length && void 0 !== arguments[0] && arguments[0])
        }, T.prototype.config_sound_mute = function() {
            x.Sound.mute(0 < arguments.length && void 0 !== arguments[0] && arguments[0])
        }, T.prototype.config_color_theme = function() {
            x.Base.kt({
                color: {
                    theme: 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null
                }
            })
        }, T.prototype.config_container_index = function() {
            x.Base.kt({
                other: {
                    container_index: 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null
                }
            })
        }, T.prototype.config_show_operator_count = function() {
            x.Base.kt({
                other: {
                    show_operator_count: !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0]
                }
            })
        }, T.prototype.xt = function(t, i) {
            if ("function" != typeof i) throw new Error("Handler must be a function");
            this.Ft[t] = i
        }, T.prototype.jt = function(t) {
            void 0 !== this.Ft[t] && delete this.Ft[t]
        }, T.prototype.gt = function(t) {
            var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [];
            if (-1 === this.qt.indexOf(t)) throw new Error("Event namespace not recognized: " + t);
            if ("function" == typeof this.Ft[t]) try {
                this.Ft[t].apply(window, i instanceof Array ? i : void 0 !== i ? [i] : [])
            } catch (t) {}
        }, T.prototype.zt = function() {
            try {
                var t = x.Base.J.__spool.pending_actions;
                if (delete x.Base.J.__spool.pending_actions, t && 0 < t.length)
                    for (var i = 0; i < t.length; i++) try {
                        x.Pipeline.push(t[i])
                    } catch (t) {}
            } catch (t) {}
        }, T.prototype._t = function() {
            !0 === x.Chat.H && (!0 === x.Chat.Message.lt && x.Chat.Alert.Et("wait_reply", "show"), x.Chat.Alert.Et("warn_reply", "hide"), x.Chat.Alert.Et("email_invalid", "hide"), x.Chat.Intent.Et("identity", !1))
        }, T.prototype.tt = function(t, i) {
            var n = {
                type: null,
                content: null
            };
            switch (t) {
                case "text":
                    if ("string" != typeof i || !i) throw new Error("Invalid text message");
                    n.type = "text", n.content = i;
                    break;
                case "file":
                    if ("object" !== (void 0 === i ? "undefined" : r(i)) || !i.name || !i.url || !i.type) throw new Error("Invalid file message");
                    n.type = "file", n.content = {
                        name: i.name,
                        url: i.url,
                        type: i.type
                    };
                    break;
                case "animation":
                    if ("object" !== (void 0 === i ? "undefined" : r(i)) || !i.url || !i.type) throw new Error("Invalid animation message");
                    n.type = "animation", n.content = {
                        url: i.url,
                        type: i.type
                    };
                    break;
                case "audio":
                    if ("object" !== (void 0 === i ? "undefined" : r(i)) || !i.url || !i.type || !i.duration) throw new Error("Invalid audio message");
                    n.type = "audio", n.content = {
                        url: i.url,
                        type: i.type,
                        duration: i.duration
                    };
                    break;
                case "picker":
                    if ("object" !== (void 0 === i ? "undefined" : r(i)) || !i.id || !i.text || 0 === (i.choices || []).length) throw new Error("Invalid picker message");
                    n.type = "picker", n.content = {
                        id: i.id,
                        text: i.text,
                        choices: i.choices
                    };
                    break;
                case "field":
                    if ("object" !== (void 0 === i ? "undefined" : r(i)) || !i.id || !i.text || !i.explain) throw new Error("Invalid field message");
                    n.type = "field", n.content = {
                        id: i.id,
                        text: i.text,
                        explain: i.explain
                    }
            }
            return n
        }, new T), x.Pipeline = ($.prototype.reset = function() {
            try {
                this.n()
            } catch (t) {}
        }, $.prototype.push = function(t) {
            void 0 !== ((window.$crisp || {}).__spool || {}).pending_actions ? window.$crisp.__spool.pending_actions.push(t) : t[0] && void 0 !== t[1] && -1 !== this.Ct.indexOf(t[0]) && "function" == typeof this[t[0]] && this[t[0]](t[1], t[2] || [])
        }, $.prototype.get = function(t) {
            return this.St("get", t, this.At(1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : []))
        }, $.prototype.set = function(t) {
            return this.St("set", t, this.At(1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : []))
        }, $.prototype.is = function(t) {
            return this.St("is", t)
        }, $.prototype.do = function(t) {
            return this.St("do", t, this.At(1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : []))
        }, $.prototype.on = function(t, i) {
            return this.It("on", t, [t, i])
        }, $.prototype.off = function(t) {
            return this.It("off", t, [t])
        }, $.prototype.config = function(t) {
            return this.St("config", t, this.At(1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : []))
        }, $.prototype.safe = function() {
            var t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
            if ("boolean" != typeof t) throw new Error("Safe mode value must be 'true' or 'false'.");
            this.a = t
        }, $.prototype.help = function() {
            var t, i = [];
            for (t in x.Action) {
                var n = t.split("_");
                1 < n.length && -1 !== this.Ct.indexOf(n[0]) && "function" == typeof x.Action[t] && i.push("$crisp." + n[0] + "('" + n.slice(1).join(":") + "')")
            }
            for (var e = 0; e < this.Dt.length; e++)
                for (var s = 0; s < x.Action.qt.length; s++) i.push("$crisp." + this.Dt[e] + "('" + x.Action.qt[s] + "')");
            return i
        }, $.prototype.At = function(t) {
            return t ? t instanceof Array ? t : [t] : []
        }, $.prototype.St = function(t, i) {
            var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [];
            try {
                var e = t + "_" + (i || "").replace(/:/g, "_");
                if ("function" == typeof x.Action[e]) return x.Action[e].apply(x.Action, n);
                this.Bt(i)
            } catch (t) {
                if (!0 !== this.a) throw t
            }
        }, $.prototype.It = function(t, i) {
            var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [];
            try {
                var e = x.Action.Ut[t];
                if ("function" != typeof e) throw new Error("No such event method for action: " + t);
                if (-1 !== x.Action.qt.indexOf(i)) return e.apply(x.Action, n);
                this.Bt(i)
            } catch (t) {
                if (!0 !== this.a) throw t
            }
        }, $.prototype.Bt = function(t) {
            throw new Error("No such namespace: " + t + " - Call $crisp.help() for a list of available actions.")
        }, $.prototype.n = function() {
            try {
                this.a = !1
            } catch (t) {}
        }, new $), x.Validate = (O.prototype.is_email = function(t) {
            var i = !1;
            try {
                t.match(this.Rt) && (i = !0)
            } catch (t) {} finally {
                return i
            }
        }, O.prototype.is_phone = function(t) {
            var i = !1;
            try {
                t.match(this.Mt) && (i = !0)
            } catch (t) {} finally {
                return i
            }
        }, O.prototype.is_avatar = function(t) {
            var i = !1;
            try {
                t.match(this.Nt) && (i = !0)
            } catch (t) {} finally {
                return i
            }
        }, O.prototype.is_data = function(t) {
            var i = !1;
            try {
                if (t instanceof Object)
                    for (var n in i = 0 < x.Utility.keys(t).length && !0, t) {
                        var e = t[n];
                        ("string" != typeof n || !0 !== this.Ot.test(n) || "string" != typeof e && "boolean" != typeof e && "number" != typeof e) && (i = !1)
                    }
            } catch (t) {} finally {
                return i
            }
        }, O.prototype.are_events = function(t) {
            var i = !1;
            try {
                if (t instanceof Array)
                    for (var i = 0 < t.length && !0, n = 0; n < t.length; n++) "string" == typeof t[n][0] && t[n][0] && (!1 !== x.Utility.is_empty(t[n][1]) || !1 !== this.is_data(t[n][1])) || (i = !1)
            } catch (t) {} finally {
                return i
            }
        }, O.prototype.are_segments = function(t) {
            var i = !1;
            try {
                if (t instanceof Array)
                    for (var i = !0, n = [], e = 0; e < t.length; e++) {
                        var s = (t[e] || "").trim();
                        if (!s || s.length > this.$t || -1 !== n.indexOf(s)) {
                            i = !1;
                            break
                        }
                        n.push(s)
                    }
            } catch (t) {} finally {
                return i
            }
        }, new O), x.Date = (N.prototype.timestamp_to_iso = function(t) {
            try {
                return new Date(t).toISOString()
            } catch (t) {}
        }, N.prototype.iso_to_timestamp = function(t) {
            try {
                return new Date(t).getTime()
            } catch (t) {}
        }, N.prototype.timestamp_to_properties = function(t) {
            var i, n, e, s = {
                day: "none",
                month: "none",
                year: "none",
                title: null
            };
            try {
                0 < t && (i = new Date(t), n = x.Locale.text("days", this.Tt[i.getDay()]), e = x.Locale.text("months", this.Lt[i.getMonth()]), s.day = "" + i.getDate(), s.month = "" + (i.getMonth() + 1), s.year = "" + i.getFullYear(), s.title = n + ", " + i.getDate() + " " + e, (new Date).getYear() !== i.getYear() && (s.title += " (" + s.year + ")"))
            } catch (t) {} finally {
                return s
            }
        }, N.prototype.seconds_in_timestamp = function(t) {
            var i = 0;
            try {
                if (isNaN(t)) throw new Error("Timestamp is not a number");
                i = Math.floor(parseInt(t, 10) / this.Pt)
            } catch (t) {} finally {
                return i
            }
        }, N.prototype.timestamp = function() {
            try {
                return (new Date).getTime()
            } catch (t) {}
        }, N.prototype.difference = function(t, i) {
            var n = -1;
            try {
                n = this.iso_to_timestamp(t) - this.iso_to_timestamp(i)
            } catch (t) {} finally {
                return n
            }
        }, N.prototype.equal = function(t, i) {
            var n = !1;
            try {
                n = 0 === this.difference(t, i) && !0
            } catch (t) {} finally {
                return n
            }
        }, N.prototype.format_time = function(t) {
            var i, n, e, s = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
                c = "0:00";
            try {
                0 <= t && (t = Math.round(t), i = Math.floor(t / this.Jt), n = Math.floor(t % this.Jt / this.Ht), e = t % this.Ht % this.Jt, c = 0 < i || !0 === s ? i + ":" + x.Utility.pad_number(n, "00") + ":" + x.Utility.pad_number(e, "00") : n + ":" + x.Utility.pad_number(e, "00"))
            } catch (t) {} finally {
                return c
            }
        }, N.prototype.format_date = function(t) {
            var i = null;
            try {
                var n = new Date,
                    e = new Date(t),
                    s = n.getTime() - e.getTime(),
                    c = this.Wt(s);
                if (c.type || (c.type = "far_away", c.data = {
                        date_full: e.toLocaleDateString()
                    }), !(i = x.Library.dom(x.Template.render("date_" + c.type, c.data)).text())) throw new Error("Empty parsed date for ISO string: " + t)
            } catch (t) {} finally {
                return i
            }
        }, N.prototype.format_duration = function(t) {
            var i = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1],
                n = null;
            try {
                var e = this.Wt(t, i);
                if (e.type || (e.type = "days"), !(n = x.Library.dom(x.Template.render("duration_" + e.type, e.data)).text())) throw new Error("Empty parsed duration for duration: " + t)
            } catch (t) {} finally {
                return n
            }
        }, N.prototype.digest = function() {
            var s = this;
            try {
                null !== x.Base.K && x.Base.K.find('[data-date-iso][data-date-watch="true"]').each(function(t, i, n) {
                    var e = n.eq(i),
                        n = e.attr("data-date-iso"),
                        i = e.attr("data-date-format"),
                        n = s.format_date(n);
                    i && (n = x.Library.crisp.web.Parse.replace(i, [x.Utility.lower_string_first(n)])), e.text(n)
                })
            } catch (t) {}
        }, N.prototype.watch = function() {
            var t = this;
            try {
                x.Utility.set_timeout(function() {
                    try {
                        t.digest(), t.watch()
                    } catch (t) {}
                }, this.Gt * this.Pt)
            } catch (t) {}
        }, N.prototype.Wt = function(t) {
            var i = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1],
                n = {};
            try {
                var e = Math.round(t / this.Pt);
                e < 10 && !0 === i ? n.type = "now" : e < this.Ht ? n.type = "seconds" : e < this.Jt ? (n.type = "minutes", n.data = {
                    minutes: Math.floor(e / this.Ht)
                }) : e < this.Vt && (n.type = "hours", n.data = {
                    hours: Math.floor(e / this.Jt)
                })
            } catch (t) {} finally {
                return n
            }
        }, new N), x.Theme = (M.prototype.colors = function(t) {
            var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
                n = {};
            try {
                var e, s = !0 !== i ? x.Plugin.get_customization("color", "chatbox") : {},
                    c = this.Kt[t] || this.Kt[this.Xt];
                for (e in this.Yt(s, c), s) n[e] = {
                    hex: s[e],
                    rgba: this.Zt.d(this, s[e])
                }
            } catch (t) {} finally {
                return n
            }
        }, M.prototype.Yt = function(t, i) {
            try {
                for (var n in i) t[n] || (t[n] = i[n])
            } catch (t) {}
        }, M.prototype.Zt = function(t) {
            var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 1,
                n = "rgba(0, 0, 0, 1)";
            try {
                var e = [0, 0, 0],
                    s = t.match(this.Qt);
                s && (e[0] = parseInt(s[1], this.ti), e[1] = parseInt(s[2], this.ti), e[2] = parseInt(s[3], this.ti)), n = "rgba(" + e[0] + ", " + e[1] + ", " + e[2] + ", " + i + ")"
            } catch (t) {} finally {
                return n
            }
        }, new M), x.Plugin = (R.prototype.get_triggers = function() {
            var t = {};
            try {
                t = ((x.Base.D.plugins["urn:crisp.im:triggers:0"] || {}).settings || {}).triggers || {}
            } catch (t) {} finally {
                return t
            }
        }, R.prototype.get_customization = function(t, i) {
            var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null,
                e = null;
            try {
                e = (((x.Base.D.plugins["urn:crisp.im:customization:0"] || {}).settings || {})[t] || {})[i] || {}, n && (e = e[n] || null)
            } catch (t) {} finally {
                return e
            }
        }, new R), x.Sound = (U.prototype.reset = function() {
            try {
                this.stop(), this.n()
            } catch (t) {}
        }, U.prototype.allow = function() {
            var t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
            try {
                this.ii = t
            } catch (t) {}
        }, U.prototype.mute = function() {
            var t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
            try {
                this.ni = t
            } catch (t) {}
        }, U.prototype.initialize = function(t) {
            try {
                if (!1 === this.ii) return;
                this.ei[t] = this.ei[t] || {};
                for (var i = this.si[t], n = 0; n < i.length; n++) void 0 === this.ei[t][i[n]] && this.ci(t, i[n])
            } catch (t) {}
        }, U.prototype.start = function(n, e) {
            var s = this,
                c = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
                a = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : 50;
            try {
                if (!1 === this.ii) return;
                if (!0 === x.Feature.has_html_audio() && !0 === this.ai(n)) {
                    var t = this.si[n];
                    if (void 0 === t) throw new Error("Subset does not exist: " + n);
                    if (-1 === t.indexOf(e)) throw new Error("Sound does not exist: " + e + " in subset " + n);
                    this.stop(), this.ci(n, e, function(t) {
                        var i;
                        null !== s.ri && ("suspended" === s.ri.state && s.ri.resume(), (i = s.ri.createGain()).gain.setValueAtTime(a / 100, 0), i.connect(s.ri.destination), s.oi = s.ri.createBufferSource(), s.oi.buffer = t, s.oi.loop = c, s.oi.connect(i), s.oi.start(), s.hi = n, s.ui = e)
                    }, function(t) {})
                }
            } catch (t) {}
        }, U.prototype.stop = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null,
                i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;
            try {
                null === this.oi || null !== t && t !== this.hi || null !== i && i !== this.ui || (this.oi.stop(), this.oi = null, this.hi = null, this.ui = null)
            } catch (t) {}
        }, U.prototype.ci = function(i, n) {
            var t, e, s = this,
                c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : function() {},
                a = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : function() {};
            try {
                this.ei[i] = this.ei[i] || {}, this.li[i] = this.li[i] || {}, void 0 === this.li[i][n] ? (this.li[i][n] = {
                    success: [c],
                    error: [a]
                }, void 0 !== this.ei[i][n] ? this.fi("success", i, n, this.ei[i][n]) : (t = this.di(i, n)) && ((e = new XMLHttpRequest).open("GET", t, !0), e.responseType = "arraybuffer", e.onload = function() {
                    null === s.ri && (s.ri = s.pi()), null !== s.ri ? s.ri.decodeAudioData(e.response, function(t) {
                        s.ei[i][n] = t, s.fi("success", i, n, t)
                    }, function(t) {
                        s.fi("error", i, n, t)
                    }) : s.fi("error", i, n)
                }, e.onerror = function(t) {
                    s.fi("error", i, n, t)
                }, e.send())) : (this.li[i][n].success.push(c), this.li[i][n].error.push(a))
            } catch (t) {}
        }, U.prototype.fi = function(t, i, n) {
            var e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null,
                s = (this.li[i] || {})[n];
            if (void 0 !== s) {
                for (var c = 0; c < s[t].length; c++) s[t][c](e);
                delete this.li[i][n]
            }
        }, U.prototype.di = function(t, i) {
            var n = null;
            try {
                var e = x.Feature.html_audio_format();
                null !== e && (n = x.Base.vi + "/static/sounds/" + t + "/" + i + "." + e + "?" + x.Base.yi)
            } catch (t) {} finally {
                return n
            }
        }, U.prototype.pi = function() {
            var t = null;
            try {
                try {
                    !0 === x.Event.mi && ("function" == typeof AudioContext ? t = new AudioContext : "function" == typeof webkitAudioContext && (t = new webkitAudioContext))
                } catch (t) {}
            } catch (t) {} finally {
                return t
            }
        }, U.prototype.ai = function(t) {
            var i = !0;
            try {
                var n = !this.ni && !0,
                    e = "call" === t || !0 !== x.Library.crisp.client.Call.is_ongoing(),
                    i = n && e && !0
            } catch (t) {} finally {
                return i
            }
        }, U.prototype.n = function() {
            try {
                this.ii = !0, this.ni = !1, this.ri = null, this.oi = null, this.hi = null, this.ui = null, this.ei = {}, this.li = {}
            } catch (t) {}
        }, new U), r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        } : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }, x.Locale = (B.prototype.reset = function() {
            try {
                this.n()
            } catch (t) {}
        }, B.prototype.detect = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [],
                i = this._i;
            try {
                var n = void 0,
                    e = void 0,
                    s = [];
                for (t.length && (this.gi = x.Utility.intersect(t, this.wi), 0 < this.gi.length && -1 === this.gi.indexOf(i) && (i = this._i = this.gi[0])), n = 0; n < x.Base.bi.length; n++)(e = x.Base.bi[n]) && (s.push(e.toLowerCase()), -1 !== e.indexOf("-") && (e = e.split("-")[0]) && s.push(e.toLowerCase()));
                for (n = 0; n < s.length; n++)
                    if (-1 !== this.gi.indexOf(s[n])) {
                        i = s[n];
                        break
                    }
            } catch (t) {} finally {
                return i
            }
        }, B.prototype.load = function(t, i) {
            var n = this;
            try {
                var e = t; - 1 === this.gi.indexOf(t) && (e = this._i), null !== this.ki && this.ki.xi.locale_code !== t && (this.ki = null), null === this.ki ? x.Base.Fi("locale", "locales/" + e + ".js", function(t) {
                    try {
                        n.ji(e, t, i)
                    } catch (t) {}
                }) : "function" == typeof i && i()
            } catch (t) {}
        }, B.prototype.name = function() {
            var t = null;
            try {
                if (null === this.ki) throw new Error("Cannot get locale name, locale data not loaded");
                t = this.ki.xi.locale_name
            } catch (t) {} finally {
                return t
            }
        }, B.prototype.code = function() {
            var t = null;
            try {
                if (null === this.ki) throw new Error("Cannot get locale code, locale data not loaded");
                t = this.ki.xi.locale_code
            } catch (t) {} finally {
                return t
            }
        }, B.prototype.direction = function() {
            var t = null;
            try {
                if (null === this.ki) throw new Error("Cannot get locale direction, locale data not loaded");
                t = this.ki.xi.locale_direction, -1 === this.qi.indexOf(t) && (t = this.zi)
            } catch (t) {} finally {
                return t
            }
        }, B.prototype.text = function(t, i) {
            var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [],
                e = null;
            try {
                var s = void 0,
                    c = void 0;
                if ("object" === (void 0 === i ? "undefined" : r(i)) ? (s = i[0], c = i[1]) : s = c = i, null === this.ki) throw new Error("Cannot get locale text, locale data not loaded");
                if (void 0 === this.ki.Ei[t]) throw new Error("Locale text group not found: " + t);
                if (void 0 === this.ki.Ei[t][c]) throw new Error("Locale text namespace not found in group: " + c + " in " + t);
                e = x.Plugin.get_customization("text", t, s) || this.ki.Ei[t][c], e = x.Library.crisp.web.Parse.replace(e, n), e = this.Ci(e)
            } catch (t) {} finally {
                return e
            }
        }, B.prototype.ji = function(t, i, n) {
            try {
                if (null !== this.ki) throw new Error("Locale has already been loaded (double requested handled?)");
                if ("object" !== (void 0 === i ? "undefined" : r(i))) throw new Error("Did not receive a proper locale data file");
                if (i.xi.locale_code !== t) throw new Error("Received a mismatching locale code, expected: " + t);
                this.ki = i, "function" == typeof n && n()
            } catch (t) {} finally {
                return null
            }
        }, B.prototype.Ci = function(i) {
            var n = null;
            try {
                try {
                    n = decodeURIComponent(escape(i))
                } catch (t) {
                    n = i
                }
            } catch (t) {} finally {
                return n
            }
        }, B.prototype.n = function() {
            try {
                this.ki = null
            } catch (t) {}
        }, new B), x.Avatar = (D.prototype.url = function(t, i, n) {
            var e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null,
                s = "";
            try {
                s = e ? e.substring(0, x.Base.g.length) === x.Base.g ? e : x.Base.g + "/process/thumbnail/?url=" + encodeURIComponent(e) + "&width=" + t + "&height=" + t + "&" + x.Base.D.website.buster : x.Base.g + "/avatar/" + i + "/" + (n || "default") + "/" + t + "/?" + x.Base.D.website.buster
            } catch (t) {} finally {
                return s
            }
        }, D.prototype.active_operators = function(t, i) {
            var n = [];
            try {
                var e = i.website.active_operators;
                if (0 < e.length)
                    for (var s = 0; s < e.length; s++) s < this.Si && n.push({
                        type: "operator",
                        identifier: e[s].user_id,
                        avatar: e[s].avatar,
                        name: x.Library.crisp.web.Name.parse_first_name(e[s].nickname)
                    });
                else n.push({
                    type: "website",
                    identifier: t,
                    name: i.website.name
                })
            } catch (t) {} finally {
                return n
            }
        }, D.prototype.count_other_operators = function(t) {
            var i = 0;
            try {
                var n = (t.website.active_operators || []).length || 0;
                t.website.count_operators > n && (i = Math.min(this.Ai, t.website.count_operators - n))
            } catch (t) {} finally {
                return i
            }
        }, new D), r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        } : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }, x.Template = (I.prototype.render = function(t) {
            var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},
                n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {},
                e = "";
            try {
                if ("function" != typeof x.Library.jade.client[t]) throw new Error("No such template: " + t);
                if ("object" !== (void 0 === i ? "undefined" : r(i))) throw new Error("Object argument is not an object");
                if (i._e = x.Locale.text.d(x.Locale), i._f = x.Library.crisp.web.Parse.format.d(x.Library.crisp.web.Parse), i._n = x.Library.crisp.web.Name.parse_first_name.d(x.Library.crisp.web.Name), i._a = x.Avatar.url.d(x.Avatar), !1 === x.Utility.is_empty(n))
                    for (var s in n) void 0 === i[s] && (i[s] = n[s]);
                e = x.Library.jade.client[t](i).trim()
            } catch (t) {} finally {
                return e
            }
        }, new I), x.Broker = (A.prototype.init = function(t, i, n, e, s, c, a, r, o, h, u, l, f, d) {
            var p = !(14 < arguments.length && void 0 !== arguments[14]) || arguments[14];
            try {
                x.Library.crisp.client.init({
                    environment: t,
                    url_relay_client: i,
                    url_relay_stream: n,
                    url_go: e,
                    website_domain: s,
                    website_id: c,
                    token_id: a,
                    cookie_expire: r,
                    cookie_domain: o,
                    useragent: h,
                    timezone: u,
                    capabilities: l,
                    locales: f,
                    runtime_configuration: d,
                    connect_socket: p,
                    platform_name: "crisp-client",
                    platform_signature_key: "25/2z/2h/3e/33/34/2g/20/2i/1v/2t/24/24/3c/2s/22"
                }), this.Ii = x.Library.crisp.client.event, x.Base.Di(), this.Bi(), this.Ui(), this.Ri(), this.Mi(), this.Ni(), this.Oi(), this.$i(), this.Ti(), this.Li(), this.Pi(), this.Ji(), this.Hi(), this.Wi(), this.Gi(), this.Vi(), this.Ki(), this.Xi(), this.Yi(), this.Zi(), this.Qi(), this.tn(), this.in(), this.nn(), this.en(), this.sn(), this.cn(), this.an(), this.rn(), this.hn(), this.un(), this.ln(), this.dn(), this.pn(), this.vn(), this.yn(), this.mn(), this.gn(), this.wn(), this.bn(), this.kn(), this.xn(), this.Fn(), this.jn(), this.qn(), this.zn(), this.En(), this.Cn(), this.Sn(), this.An()
            } catch (t) {}
        }, A.prototype.reset = function() {
            try {
                this.n()
            } catch (t) {}
        }, A.prototype.Bi = function() {
            var n = this;
            try {
                this.Ii.subscribe("socket:state", function(t, i) {
                    !0 !== x.Chat.H || i.connected === n.In && i.failed_reconnect === n.Dn || (n.In = i.connected || !1, n.Dn = i.failed_reconnect || !1, x.Chat.Interface.Bn(n.In, n.Dn), !0 === n.In && x.Event.check_activity_autokill())
                })
            } catch (t) {}
        }, A.prototype.Ui = function() {
            var n = this;
            try {
                this.Ii.subscribe("session:created", function(t, i) {
                    i.error ? "invalid_website_id" === i.error && x.Base.run_error() : i.session_id && (n.Un = !0)
                })
            } catch (t) {}
        }, A.prototype.Ri = function() {
            var n = this;
            try {
                this.Ii.subscribe("session:joined", function(t, i) {
                    i.error ? "invalid_session" === i.error && ++n.Rn <= n.Mn && x.Library.crisp.client.Session.reset(function() {
                        x.Library.crisp.client.Session.create()
                    }, function() {}) : (n.vt = i.session_id || null, n.Nn = i.session_hash || null, !1 === i.socket && !0 !== i.initiated && x.Base.ct(!0), !0 === n.On ? (n.On = !1, x.Base.$n(i, function(t, i, n) {
                        !0 !== n && (x.Base.spawn_client(t), x.Library.crisp.client.Website.get_users_available())
                    })) : !0 === x.Chat.H && x.Chat.Message.Tn())
                })
            } catch (t) {}
        }, A.prototype.Mi = function() {
            var e = this;
            try {
                this.Ii.subscribe("session:state", function(t, i) {
                    if (1 === e.Ln && (e.Ln++, e.Pn = !0), !1 === x.Chat.H) {
                        if (null !== e.Jn.master) {
                            e.Jn.master(x.Utility.is_empty(i) ? null : i);
                            for (var n = 0; n < e.Jn.actions.length; n++) e.Jn.actions[n]();
                            e.Jn.master = null, e.Jn.actions = []
                        } else x.Utility.is_empty(i) ? (x.Minimized.init(!0, e.Un), x.Library.crisp.client.Session.get_request_initiate()) : x.Chat.init(i);
                        x.Base.Hn()
                    } else !0 === x.Chat.H && x.Chat.State.receive(i);
                    e.Wn()
                })
            } catch (t) {}
        }, A.prototype.Ni = function() {
            try {
                this.Ii.subscribe("session:error", function(t, i) {
                    "email:invalid_format" === i.type && x.Chat.Alert.Et({
                        warn_reply: "hide",
                        wait_reply: "hide",
                        email_invalid: "show"
                    })
                })
            } catch (t) {}
        }, A.prototype.Oi = function() {
            try {
                this.Ii.subscribe("session:request:initiate", function(t, i) {})
            } catch (t) {}
        }, A.prototype.$i = function() {
            try {
                this.Ii.subscribe("session:request:purge", function(t, i) {
                    x.Action.do_session_reset()
                })
            } catch (t) {}
        }, A.prototype.Ti = function() {
            var n = this;
            try {
                this.Ii.subscribe("website:users:available", function(t, i) {
                    x.Availability.receive(i.available, i.changed), 0 === n.Ln ? (n.Ln++, x.Library.crisp.client.Session.get_state()) : x.Availability.apply()
                })
            } catch (t) {}
        }, A.prototype.Li = function() {
            var n = this;
            try {
                this.Ii.subscribe("message:received", function(t, i) {
                    n.Gn(i)
                })
            } catch (t) {}
        }, A.prototype.Pi = function() {
            var n = this;
            try {
                this.Ii.subscribe("message:received:local", function(t, i) {
                    n.Gn(i)
                })
            } catch (t) {}
        }, A.prototype.Ji = function() {
            try {
                this.Ii.subscribe("message:send", function(t, i) {
                    !0 === x.Chat.H && x.Chat.Message.sent(i)
                })
            } catch (t) {}
        }, A.prototype.Hi = function() {
            try {
                this.Ii.subscribe("message:sent", function(t, i) {
                    !0 === x.Chat.H && x.Chat.Message.sent_acknowledgement(i), x.Action.gt("message:sent", i)
                })
            } catch (t) {}
        }, A.prototype.Gi = function() {
            try {
                this.Ii.subscribe("message:compose:send", function(t, i) {
                    x.Action.gt("message:compose:sent", i)
                })
            } catch (t) {}
        }, A.prototype.Vi = function() {
            try {
                this.Ii.subscribe("message:acknowledge:pending", function(t, i) {})
            } catch (t) {}
        }, A.prototype.Ki = function() {
            try {
                this.Ii.subscribe("message:acknowledge:read:send", function(t, i) {
                    x.Chat.Message.Vn(i)
                })
            } catch (t) {}
        }, A.prototype.Xi = function() {
            try {
                this.Ii.subscribe("message:acknowledge:read:received", function(t, i) {})
            } catch (t) {}
        }, A.prototype.Yi = function() {
            try {
                this.Ii.subscribe("message:thread", function(t, i) {})
            } catch (t) {}
        }, A.prototype.Wi = function() {
            try {
                this.Ii.subscribe("message:compose:received", function(t, i) {
                    if (!0 === x.Chat.H && !0 !== x.Base.D.chat.operator_privacy) switch (i.type) {
                        case "start":
                            x.Chat.Message.Kn(i.timestamp);
                            break;
                        case "stop":
                            x.Chat.Message.Xn()
                    }
                    x.Action.gt("message:compose:received", i)
                })
            } catch (t) {}
        }, A.prototype.Zi = function() {
            try {
                this.Ii.subscribe("history:message:received", function(t, i) {
                    !0 === x.Chat.H && x.Chat.Message.received_from_history(i)
                })
            } catch (t) {}
        }, A.prototype.Qi = function() {
            try {
                this.Ii.subscribe("history:message:sent", function(t, i) {
                    !0 === x.Chat.H && x.Chat.Message.sent_from_history(i)
                })
            } catch (t) {}
        }, A.prototype.tn = function() {
            try {
                this.Ii.subscribe("call:request:initiate", function(t, i) {
                    x.Library.crisp.client.Call.init({
                        ice: x.Base.Yn,
                        call_id: i.call_id,
                        mode: i.mode,
                        has_support: i.has_support
                    }, function() {
                        x.Call.ring(i)
                    }, function() {})
                })
            } catch (t) {}
        }, A.prototype.in = function() {
            try {
                this.Ii.subscribe("call:action:stopped", function(t, i) {
                    x.Call.stop(i)
                })
            } catch (t) {}
        }, A.prototype.nn = function() {
            try {
                this.Ii.subscribe("call:peer:local:error", function(t, i) {
                    x.Call.error("peer_local")
                })
            } catch (t) {}
        }, A.prototype.en = function() {
            try {
                this.Ii.subscribe("call:peer:remote:error", function(t, i) {
                    x.Call.error("peer_remote")
                })
            } catch (t) {}
        }, A.prototype.sn = function() {
            try {
                this.Ii.subscribe("call:media:local:success", function(t, i) {
                    x.Call.success("media_local")
                })
            } catch (t) {}
        }, A.prototype.cn = function() {
            try {
                this.Ii.subscribe("call:media:local:error", function(t, i) {
                    x.Call.error("media_local")
                })
            } catch (t) {}
        }, A.prototype.an = function() {
            try {
                this.Ii.subscribe("call:media:remote:success", function(t, i) {
                    x.Call.success("media_remote")
                })
            } catch (t) {}
        }, A.prototype.rn = function() {
            try {
                this.Ii.subscribe("call:track:local:started", function(t, i) {
                    x.Call.toggle_media_status(i.media, !0)
                })
            } catch (t) {}
        }, A.prototype.hn = function() {
            try {
                this.Ii.subscribe("call:track:local:ended", function(t, i) {
                    x.Call.toggle_media_status(i.media, !1)
                })
            } catch (t) {}
        }, A.prototype.un = function() {
            var n = this;
            try {
                this.Ii.subscribe("browsing:request:initiate", function(t, i) {
                    n.Zn.push(function() {
                        x.Base.Fi("browsing", "browsing.js", function(t) {
                            try {
                                x.Library.crisp.client.Browsing.init({
                                    resume: i.resume || !1,
                                    deps: {
                                        tree_mirror: t.TreeMirrorClient
                                    }
                                }, function() {}, function() {})
                            } catch (t) {}
                        })
                    }), n.Wn()
                })
            } catch (t) {}
        }, A.prototype.ln = function() {
            try {
                this.Ii.subscribe("browsing:assist:started", function(t, i) {
                    x.Browsing.Assist.start()
                })
            } catch (t) {}
        }, A.prototype.dn = function() {
            try {
                this.Ii.subscribe("browsing:assist:stopped", function(t, i) {
                    x.Browsing.Assist.stop()
                })
            } catch (t) {}
        }, A.prototype.pn = function() {
            try {
                this.Ii.subscribe("browsing:assist:mouse", function(t, i) {
                    x.Browsing.Assist.Qn(i)
                })
            } catch (t) {}
        }, A.prototype.vn = function() {
            try {
                this.Ii.subscribe("browsing:assist:scroll", function(t, i) {
                    x.Browsing.Assist.te(i)
                })
            } catch (t) {}
        }, A.prototype.yn = function() {
            try {
                this.Ii.subscribe("browsing:assist:click", function(t, i) {
                    x.Browsing.Assist.ie(i)
                })
            } catch (t) {}
        }, A.prototype.mn = function() {
            var n = this;
            try {
                this.Ii.subscribe("bucket:url:upload:generate", function(t, i) {
                    n.ne.bucket_url_upload_generate = i.id
                })
            } catch (t) {}
        }, A.prototype.gn = function() {
            var c = this;
            try {
                this.Ii.subscribe("bucket:url:upload:generated", function(t, i) {
                    var n, e, s;
                    c.ne.bucket_url_upload_generate === i.id && "preparing" === x.Chat.Selector.get("form_button_attach").attr("data-state") && (n = x.Chat.Selector.get("form_message"), e = (i.url || {}).signed || "", s = (i.url || {}).resource || "", i = (i.policy || {}).size_limit || 0, e && s ? (n.attr("data-action", e), n.attr("data-resource", s), n.attr("data-size-limit", i)) : (n.removeAttr("data-action"), n.removeAttr("data-resource"), n.removeAttr("data-size-limit")), n.trigger("event:attach"))
                })
            } catch (t) {}
        }, A.prototype.wn = function() {
            var n = this;
            try {
                this.Ii.subscribe("media:animation:list", function(t, i) {
                    n.ne.media_animation_list = i.id
                })
            } catch (t) {}
        }, A.prototype.bn = function() {
            var n = this;
            try {
                this.Ii.subscribe("media:animation:listed", function(t, i) {
                    n.ne.media_animation_list === i.id && x.Chat.Picker.ee(i.results)
                })
            } catch (t) {}
        }, A.prototype.kn = function() {
            var n = this;
            try {
                this.Ii.subscribe("helpdesk:article:search", function(t, i) {
                    n.ne.helpdesk_article_search = i.id
                })
            } catch (t) {}
        }, A.prototype.xn = function() {
            var r = this;
            try {
                this.Ii.subscribe("helpdesk:article:searched", function(t, i) {
                    if (r.ne.helpdesk_article_search === i.id) {
                        var n = !(!i.search.query && 0 === i.results.length);
                        x.Chat.Interface.se(i.results, i.search, n);
                        var e = x.Chat.Interface.U("helpdesk");
                        if (e) {
                            for (var s, c = [], a = 0; a < i.results.length; a++) s = i.results[a], c.push({
                                title: s.title,
                                url: "" + e + s.locale + "/article/" + s.slug + "/"
                            });
                            x.Action.gt("helpdesk:queried", {
                                query: i.search.query,
                                results: c
                            })
                        }
                    }
                })
            } catch (t) {}
        }, A.prototype.Fn = function() {
            var n = this;
            try {
                this.Ii.subscribe("helpdesk:article:suggest", function(t, i) {
                    n.ne.helpdesk_article_suggest = i.id
                })
            } catch (t) {}
        }, A.prototype.jn = function() {
            var n = this;
            try {
                this.Ii.subscribe("helpdesk:article:suggested", function(t, i) {
                    n.ne.helpdesk_article_suggest === i.id && x.Chat.Interface.ce(i.results)
                })
            } catch (t) {}
        }, A.prototype.qn = function() {
            try {
                this.Ii.subscribe("helpdesk:article:report", function(t, i) {})
            } catch (t) {}
        }, A.prototype.zn = function() {
            try {
                this.Ii.subscribe("storage:sync:update", function(t, i) {})
            } catch (t) {}
        }, A.prototype.En = function() {
            try {
                this.Ii.subscribe("storage:sync:updated", function(t, i) {})
            } catch (t) {}
        }, A.prototype.Cn = function() {
            try {
                this.Ii.subscribe("trigger:fired", function(t, i) {})
            } catch (t) {}
        }, A.prototype.Sn = function() {
            try {
                this.Ii.subscribe("issue:report", function(t, i) {})
            } catch (t) {}
        }, A.prototype.An = function() {
            try {
                this.Ii.subscribe("window:history", function(t, i) {
                    x.Base.ae = i.page_url, x.Base.re = i.page_domain, i = x.Base.oe(), null !== x.Base.K && (x.Base.K.attr("data-blocked", !0 === i ? "true" : "false"), !0 === x.Chat.H && !1 === i && x.Chat.Interface.X()), x.Trigger.he()
                })
            } catch (t) {}
        }, A.prototype.Gn = function(t) {
            try {
                x.Chat.ue();
                var i = "network" === t.origin && !0;
                x.Chat.Message.received(t, i, i, !0, !1), x.Action.gt("message:received", t)
            } catch (t) {}
        }, A.prototype.Wn = function() {
            try {
                if (!0 === this.Pn)
                    for (; 0 < this.Zn.length;) this.Zn.shift()()
            } catch (t) {}
        }, A.prototype.n = function() {
            try {
                this.vt = null, this.Nn = null, this.In = !0, this.ne = {}, this.Jn = {
                    master: null,
                    actions: []
                }, this.Ii = null, this.Un = !1, this.On = !0, this.Dn = !1, this.Ln = 0, this.Pn = !1, this.Zn = [], this.Rn = 0
            } catch (t) {}
        }, new A), x.Availability = (S.prototype.init = function() {}, S.prototype.reset = function() {
            try {
                this.n()
            } catch (t) {}
        }, S.prototype.receive = function() {
            var t, i, n = 0 < arguments.length && void 0 !== arguments[0] && arguments[0],
                e = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
            try {
                this.dt = n, !0 === e && (t = x.Date.timestamp(), x.Base.D.website.last_available = t, (i = x.Chat.Selector.get("header_status_type_away")) && i.attr("data-date-iso", x.Date.timestamp_to_iso(t)), x.Date.digest()), x.Action.gt("website:availability:changed", this.dt)
            } catch (t) {}
        }, S.prototype.apply = function() {
            try {
                var t = !0 === this.dt ? "online" : "away";
                null !== x.Base.K && (x.Base.K.attr("data-availability", t), !1 === this.le && "online" == t && (this.le = !0, x.Base.K.attr("data-was-availability-online", "true")))
            } catch (t) {}
        }, S.prototype.n = function() {
            try {
                this.dt = !1, this.le = !1
            } catch (t) {}
        }, new S), x.Event = (C.prototype.init = function(t) {
            try {
                this.fe()
            } catch (t) {}
        }, C.prototype.reset = function() {
            try {
                this.n()
            } catch (t) {}
        }, C.prototype.trigger_interacted = function() {
            var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
            try {
                this.mi = !0, this.de(), !0 === t && this.pe()
            } catch (t) {}
        }, C.prototype.check_activity_autokill = function() {
            try {
                null === this.ve && this.ye(), null === this.me && this.ge()
            } catch (t) {}
        }, C.prototype.fe = function() {
            try {
                this.we(), this.be(), this.ke()
            } catch (t) {}
        }, C.prototype.we = function() {
            try {
                x.Utility.add_event_listener(this.ns, "window", "resize", function() {
                    try {
                        !0 === x.Chat.H ? x.Chat.Interface.X() : x.Base.xe()
                    } catch (t) {}
                })
            } catch (t) {}
        }, C.prototype.be = function() {
            try {
                this.de(), x.Utility.add_event_listener(this.ns, "window", "click", this.Fe.d(this), this.je), x.Utility.add_event_listener(this.ns, "window", "touchend", this.Fe.d(this), this.je), x.Utility.add_event_listener(this.ns, "window", "touchmove", this.Fe.d(this), this.je), x.Utility.add_event_listener(this.ns, "window", "keydown", this.Fe.d(this), this.je), x.Utility.add_event_listener(this.ns, "window", "mousemove", this.de.d(this), this.je), x.Utility.add_event_listener(this.ns, "window", "focus", this.de.d(this), this.je), x.Utility.add_event_listener(this.ns, "window", "blur", this.de.d(this), this.je)
            } catch (t) {}
        }, C.prototype.ke = function() {
            try {
                this.pe()
            } catch (t) {}
        }, C.prototype.Fe = function() {
            try {
                this.trigger_interacted()
            } catch (t) {}
        }, C.prototype.de = function() {
            var t = this;
            try {
                null !== this.ve && x.Utility.clear_timeout(this.ve), this.ve = x.Utility.set_timeout(function() {
                    t.ve = null, t.ye()
                }, this.qe), !0 === this.ze && !1 === this.Ee && x.Library.crisp.client.socket.connect(), this.ze = !1, x.Library.crisp.client.Session.mark_active()
            } catch (t) {}
        }, C.prototype.ye = function() {
            try {
                !0 === x.Library.crisp.client.socket.connected && (this.ze = !0, x.Library.crisp.client.socket.disconnect())
            } catch (t) {}
        }, C.prototype.pe = function() {
            var t = this;
            try {
                null !== this.me && x.Utility.clear_timeout(this.me), this.me = x.Utility.set_timeout(function() {
                    t.me = null, t.ge()
                }, this.Ce), !0 === this.Ee && x.Library.crisp.client.socket.connect(), this.Ee = !1
            } catch (t) {}
        }, C.prototype.ge = function() {
            try {
                !0 !== x.Library.crisp.client.socket.connected && !0 !== this.ze || (this.Ee = !0) === x.Library.crisp.client.socket.connected && x.Library.crisp.client.socket.disconnect()
            } catch (t) {}
        }, C.prototype.n = function() {
            try {
                this.mi = !1, this.ze = !1, this.Ee = !1, this.ve = null, this.me = null
            } catch (t) {}
        }, new C);
        var p = function(t, i) {
            if (Array.isArray(t)) return t;
            if (Symbol.iterator in Object(t)) return function(t, i) {
                var n = [],
                    e = !0,
                    s = !1,
                    c = void 0;
                try {
                    for (var a, r = t[Symbol.iterator](); !(e = (a = r.next()).done) && (n.push(a.value), !i || n.length !== i); e = !0);
                } catch (t) {
                    s = !0, c = t
                } finally {
                    try {
                        !e && r.return && r.return()
                    } finally {
                        if (s) throw c
                    }
                }
                return n
            }(t, i);
            throw new TypeError("Invalid attempt to destructure non-iterable instance")
        };

        function h(t, i, n) {
            return i in t ? Object.defineProperty(t, i, {
                value: n,
                enumerable: !0,
                configurable: !0,
                writable: !0
            }) : t[i] = n, t
        }
        if (x.Trigger = (E.prototype.init = function(t) {
                try {
                    this.Se = t, this.Ae()
                } catch (t) {}
            }, E.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, E.prototype.ot = function(t) {
                var i = !1;
                try {
                    var n = (this.Se || {})[t];
                    n && !0 === n.enabled && (this.Ct(t, n), i = !0)
                } catch (t) {} finally {
                    return i
                }
            }, E.prototype.yt = function(t, i) {
                try {
                    for (var n = this.Ie[t] || [], e = 0; e < n.length; e++) n[e](i)
                } catch (t) {}
            }, E.prototype.De = function(t) {
                try {
                    -1 === x.Trigger.Be.indexOf(t) && x.Trigger.Be.push(t), x.Library.crisp.client.Storage.set_stamp_local(this.Ue, [x.Base.Re, "status", t], this.Me)
                } catch (t) {}
            }, E.prototype.he = function() {
                try {
                    var t, i, n, e;
                    for (e in this.Se)
                        if (!0 === (t = this.Se[e]).enabled && (i = t.events))
                            for (var s in i) "page" === s && !0 === (n = i[s]).enabled && this.Ne(e, t, i, n.settings || {})
                } catch (t) {}
            }, E.prototype.Ae = function() {
                try {
                    var t, i, n, e, s = void 0,
                        c = !1;
                    for (e in this.Se)
                        if (!0 === (t = this.Se[e]).enabled && (i = t.events))
                            for (var a in i) !0 === (n = i[a]).enabled && "function" == typeof(s = this.Oe[a]) && (s.d(this)(e, t, i, n.settings || {}), c = !0);
                    !0 === c && this.$e()
                } catch (t) {}
            }, E.prototype.Ct = function(s, c) {
                var t, a = this;
                try {
                    !0 === this.Te(c) && !1 === this.Le(s) && ((t = x.Utility.clone(this.Be)).push(s), this.Pe(function() {
                        x.Chat.State.propagate("trigger", t, !1, function(t) {
                            if (!0 === t && !0 === a.Te(c) && c.actions) {
                                var i, n, e = void 0;
                                for (n in c.actions) !0 === (i = c.actions[n]).enabled && "function" == typeof(e = a.Je[n]) && (e.d(a)(s, c, i.settings || {}), x.Library.crisp.client.Trigger.fired(s, c.name))
                            }
                        })
                    }))
                } catch (t) {}
            }, E.prototype.Pe = function(t) {
                var i = this;
                try {
                    x.Base.Q(function() {
                        !0 !== i.He && (i.He = !0, x.Chat.ue()), t()
                    })
                } catch (t) {}
            }, E.prototype.Te = function(t) {
                var i = !1;
                try {
                    if (i = !1 === x.Base.We(), !0 === this.Ge(t, "if_website_online") && (i = !0 === x.Action.is_website_available() && i), !0 === this.Ge(t, "if_first_visit") && (i = "1" === x.Library.crisp.client.Storage.get_stamp_local(this.Ue, this.Ve("count")) && i), !0 === this.Ge(t, "if_trigger_sole") && (i = !0 !== x.Chat.Message.Ke && i), !0 === this.Ge(t, "if_countries")) {
                        var n = !1,
                            e = (t.behaviors.if_countries || {}).settings;
                        if (e)
                            for (var s in e) s === x.Base.D.chat.country && (n = !0);
                        i = !0 === n && i
                    }!1 === x.Base.ut() && !1 === this.Xe(t, "desktop") && (i = !1), !0 === x.Base.ut() && !1 === this.Xe(t, "mobile") && (i = !1)
                } catch (t) {} finally {
                    return i
                }
            }, E.prototype.Ye = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0],
                    i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},
                    n = 100;
                try {
                    !0 === t && i.after && 0 < i.after && (n = i.after * this.Pt)
                } catch (t) {} finally {
                    return n
                }
            }, E.prototype.Ze = function(t, i, n, e) {
                try {
                    if (e.after && 0 < e.after) {
                        var s, c = !1;
                        for (s in n)
                            if ("delay" !== s && !0 === n[s].enabled) {
                                c = !0;
                                break
                            }!1 === c && this.Qe(t, i, {
                            enabled: !0,
                            settings: e
                        })
                    }
                } catch (t) {}
            }, E.prototype.ts = function(i, n, e, t) {
                var s = this;
                try {
                    for (var c = !0, a = 0; a < this.es.length; a++) {
                        var r = this.es[a];
                        if (!0 === (e[r] || {}).enabled && !1 === (c = this.ss[r].d(this)(e))) break
                    }!0 === c && (x.Utility.add_event_listener(this.ns, "window", "mouseout", function(t) {
                        try {
                            !0 === s.cs && !t.relatedTarget && !t.toElement && t.clientY <= s.as && (s.cs = !1, null === s.rs && (s.rs = s.Qe(i, n, e.delay)))
                        } catch (t) {}
                    }), x.Utility.add_event_listener(this.ns, "window", "mouseover", function() {
                        try {
                            !0 !== s.cs && (s.cs = !0, null !== s.rs && (x.Utility.clear_timeout(s.rs), s.rs = null))
                        } catch (t) {}
                    }))
                } catch (t) {}
            }, E.prototype.os = function(a, r, o, h) {
                var u = this;
                try {
                    h.ids && 0 < h.ids.length && x.Utility.add_event_listener(this.ns, "document", "click", function(t) {
                        try {
                            if (t && t.target && "a" === (t.target.nodeName || "").toLowerCase())
                                for (var i = 0; i < h.ids.length; i++) {
                                    var n = document.getElementById(h.ids[i]),
                                        e = "function" == typeof document.querySelectorAll ? document.querySelectorAll(h.ids[i]) : null,
                                        s = !1;
                                    if (e && 0 < e.length)
                                        for (var c = 0; c < e.length; c++)
                                            if (e[c] === t.target) {
                                                s = !0;
                                                break
                                            }
                                    if (n === t.target || !0 === s) {
                                        u.Qe(a, r, o.delay);
                                        break
                                    }
                                }
                        } catch (t) {}
                    })
                } catch (t) {}
            }, E.prototype.Ne = function(t, i, n, e) {
                try {
                    !0 !== (n.leave || {}).enabled && !0 === this.hs(n) && this.Qe(t, i, n.delay)
                } catch (t) {}
            }, E.prototype.us = function(t, i, n, e) {
                try {
                    !0 !== (n.leave || {}).enabled && !0 === this.ls(n) && this.Qe(t, i, n.delay)
                } catch (t) {}
            }, E.prototype.ds = function(i, n, e, s) {
                var c = this;
                try {
                    s.points && 0 < x.Utility.keys(s.points).length && this.ps("user_data", function(t) {
                        t.key && t.value && s.points[t.key] === t.value && c.Qe(i, n, e.delay)
                    })
                } catch (t) {}
            }, E.prototype.vs = function(i, n, e, s) {
                var c = this;
                try {
                    s.texts && 0 < s.texts.length && this.ps("user_event", function(t) {
                        -1 !== s.texts.indexOf(t.text) && c.Qe(i, n, e.delay)
                    })
                } catch (t) {}
            }, E.prototype.ys = function(t, i, n) {
                var e, s, c;
                try {
                    !n || (e = (n[x.Locale.code()] || n.default || "").trim()) && (s = x.Utility.to_hashcode("trigger/" + t), !(c = !1) === this.Ge(i, "show_as_website") && (c = !0), x.Action.do_message_show("text", e, s, c))
                } catch (t) {}
            }, E.prototype._s = function(t, i, n) {
                try {
                    x.Action.do_chat_open()
                } catch (t) {}
            }, E.prototype.gs = function(t, i, n) {
                try {
                    x.Sound.start("events", "chat-message-receive")
                } catch (t) {}
            }, E.prototype.hs = function(t) {
                var i = !1;
                try {
                    var n = (t.page || {}).settings;
                    n && n.urls && 0 < n.urls.length && (i = x.Utility.compare_page_rules(x.Base.ae, n.urls))
                } catch (t) {} finally {
                    return i
                }
            }, E.prototype.ls = function(t) {
                var i = !1;
                try {
                    var n = (t.url_parameter || {}).settings || {};
                    if (0 < x.Utility.keys(n.parameters || {}).length) {
                        for (var e, s = document.location.search || "", c = s.slice(s.indexOf("?") + 1).split("&"), a = {}, r = 0; r < c.length; r++) {
                            var o = c[r].split("="),
                                h = p(o, 2),
                                u = h[0],
                                l = h[1];
                            u && (a[u.toLowerCase()] = decodeURIComponent(l || "").toLowerCase())
                        }
                        for (e in n.parameters) {
                            var f = e.toLowerCase(),
                                d = n.parameters[f].toLowerCase() + "";
                            if (a[f] === d) {
                                i = !0;
                                break
                            }
                        }
                    }
                } catch (t) {} finally {
                    return i
                }
            }, E.prototype.Qe = function(t, i) {
                var n = this,
                    e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {},
                    s = null;
                try {
                    s = x.Utility.set_timeout(function() {
                        n.Ct(t, i)
                    }, this.Ye((e || {}).enabled, (e || {}).settings))
                } catch (t) {} finally {
                    return s
                }
            }, E.prototype.ps = function(t, i) {
                try {
                    this.Ie[t] = this.Ie[t] || [], this.Ie[t].push(i)
                } catch (t) {}
            }, E.prototype.Ge = function(t, i) {
                var n = !1;
                try {
                    !0 === ((t.behaviors || {})[i] || {}).enabled && (n = !0)
                } catch (t) {} finally {
                    return n
                }
            }, E.prototype.Le = function(t) {
                var i = !1;
                try {
                    1 != (i = -1 !== this.Be.indexOf(t) && !0) && (i = x.Library.crisp.client.Storage.get_stamp_local(this.Ue, [x.Base.Re, "status", t]) === this.Me && !0)
                } catch (t) {} finally {
                    return i
                }
            }, E.prototype.Xe = function(t, i) {
                var n = !0;
                try {
                    !1 === ((t.platforms || {})[i] || {}).enabled && (n = !1)
                } catch (t) {} finally {
                    return n
                }
            }, E.prototype.$e = function() {
                try {
                    var t = this.Ve("last"),
                        i = this.Ve("count"),
                        n = parseInt(x.Library.crisp.client.Storage.get_stamp_local(this.Ue, t) || "0", 10),
                        e = parseInt(x.Library.crisp.client.Storage.get_stamp_local(this.Ue, i) || "0", 10),
                        s = x.Date.timestamp();
                    (isNaN(n) || isNaN(e) || e <= 0 || s - n >= this.bs) && (e += 1, n = s, x.Library.crisp.client.Storage.set_stamp_local(this.Ue, i, "" + e)), x.Library.crisp.client.Storage.set_stamp_local(this.Ue, t, "" + s)
                } catch (t) {}
            }, E.prototype.Ve = function(t) {
                var i = [];
                try {
                    i = [x.Base.Re, "visit", t]
                } catch (t) {} finally {
                    return i
                }
            }, E.prototype.n = function() {
                try {
                    this.Be = [], this.Se = null, this.He = !1, this.cs = !1, this.rs = null, this.as = 10, this.Ie = {}
                } catch (t) {}
            }, new E), r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }, x.Base = (z.prototype.init = function() {
                var i = this,
                    t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
                try {
                    !1 === this.H && (this.H = !0, this.J = t.dollar_crisp || null, this.ks = t.project_name || null, this.xs = t.url_relay_client || null, this.Fs = t.url_relay_stream || null, this.js = t.url_website || null, this.qs = t.url_go || null, this.g = t.url_image || null, this.zs = t.url_game || null, this.vi = t.url_assets || null, this.Yn = t.rtc_ice || null, this.Es = t.client_environment || null, this.yi = t.client_revision || null, this.A = t.website_domain || null, this.Re = t.website_id || null, this.Cs = t.token_id || null, this.Ss = t.cookie_expire || null, this.As = t.cookie_domain || null, this.ae = t.page_url || null, this.re = t.page_domain || null, this.Is = t.browser_useragent || null, this.Ds = t.browser_timezone || null, this.Bs = t.browser_capabilities || null, this.bi = t.browser_locales || null, this.Us = t.ready_trigger || null, this.Rs = t.reset_handler || null, this.Ms = t.runtime_configuration || {}, x.Polyfill.schedule_warn_incompatible(!1), this.Ns(function(t) {
                        i.Os = t.socket, i.$s = t.buster || 1, !0 === (t = !1 == (t = -1 === document.cookie.indexOf(i.Ts(!0)) && !1 !== i.Os && !0) && !0 === i.Ms.lock_maximized || t) ? i.Ls() : i.Ps(), x.Event.init()
                    }, function(t) {
                        "invalid_website_id" === t && i.run_error()
                    }))
                } catch (t) {}
            }, z.prototype.reset = function() {
                try {
                    var t = this.Rs;
                    x.Utility.reset_instance_children(x, this), this.n(), this.Js(), this.Rs = t
                } catch (t) {}
            }, z.prototype.spawn_client = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    this.Hs(), this.D = t, x.Library.crisp.web.init({
                        template: x.Template,
                        config: {
                            url: {
                                crisp_image: this.g
                            },
                            runtime: this.Ms
                        }
                    }), !0 !== i && (x.Library.crisp.client.Config.set_ignore_privacy(this.D.chat.ignore_privacy), x.Library.crisp.client.Config.set_visitor_compose(this.D.chat.visitor_compose)), x.Trigger.init(x.Plugin.get_triggers());
                    var n = this.oe();
                    this.Ws = x.Library.dom(x.Template.render("client", {
                        lang: x.Locale.code(),
                        direction: x.Locale.direction(),
                        blocked: n || !1,
                        lock_maximized: this.Ms.lock_maximized || !1,
                        last_operator_face: !0 === this.D.chat.last_operator_face && 0 < this.D.website.active_operators.length,
                        availability_tooltip: this.D.chat.availability_tooltip,
                        hide_vacation: this.D.chat.hide_vacation,
                        hide_on_away: this.D.chat.hide_on_away,
                        hide_on_mobile: this.D.chat.hide_on_mobile,
                        position_reverse: this.D.chat.position_reverse,
                        full_view: this.ut(),
                        small_view: this.Gs(),
                        large_view: this.Vs()
                    })), this.Ks = this.Ws.find(".cc-l3zb"), this.K = this.Ws.find(".cc-kv6t"), this.kt(), this.Xs()
                } catch (t) {}
            }, z.prototype.run_error = function() {
                var t = this;
                try {
                    x.Locale.load(x.Broker.Ys.chat.locale, function() {
                        t.spawn_client(x.Broker.Ys, !0), x.Minimized.init(!0, !1, !0)
                    })
                } catch (t) {}
            }, z.prototype.xe = function() {
                try {
                    null !== this.K && (this.K.attr("data-full-view", !0 === this.ut() ? "true" : "false"), this.K.attr("data-small-view", !0 === this.Gs() ? "true" : "false"), this.K.attr("data-large-view", !0 === this.Vs() ? "true" : "false"))
                } catch (t) {}
            }, z.prototype.ut = function() {
                try {
                    return !0 === this.Ms.lock_full_view || window.innerHeight < window.innerWidth && window.innerHeight < this.Zs || window.innerWidth < this.Zs
                } catch (t) {}
            }, z.prototype.Vs = function() {
                try {
                    return window.innerHeight < window.innerWidth && window.innerHeight >= this.Qs || window.innerWidth < window.innerHeight && window.innerWidth >= this.Qs
                } catch (t) {}
            }, z.prototype.Gs = function() {
                try {
                    return window.innerHeight < window.innerWidth && window.innerHeight < this.tc || window.innerWidth < window.innerHeight && window.innerWidth < this.tc
                } catch (t) {}
            }, z.prototype.We = function() {
                try {
                    if (!0 !== this.Ms.lock_maximized && (!0 !== x.Chat.Message.Ke || !0 === this.ic())) {
                        if (!0 === this.nc()) return !0;
                        if (!0 === this.D.chat.hide_vacation) return !0;
                        if (!0 === this.D.chat.hide_on_away && !1 === x.Availability.le && !0 !== x.Availability.dt) return !0;
                        if (!0 === this.D.chat.hide_on_mobile && !0 === this.Gs()) return !0
                    }
                    return !1
                } catch (t) {}
            }, z.prototype.nc = function() {
                try {
                    return (!0 === this.ec || !0 === this.sc) && !0
                } catch (t) {}
            }, z.prototype.ic = function() {
                try {
                    return 0 < x.Chat.Message.cc && x.Date.timestamp() - x.Chat.Message.cc >= this.ac
                } catch (t) {}
            }, z.prototype.oe = function() {
                try {
                    var t = x.Locale.code();
                    return this.ec = !(!(0 < this.D.chat.allowed_pages.length) || x.Utility.compare_page_rules(this.ae, this.D.chat.allowed_pages)) || x.Utility.compare_page_rules(this.ae, this.D.chat.blocked_pages) && !0, this.sc = -1 !== this.D.chat.blocked_locales.indexOf(t), this.nc() || !1
                } catch (t) {}
            }, z.prototype.Hn = function() {
                try {
                    if ("function" == typeof this.Us) try {
                        this.Us(), this.Us = null
                    } catch (t) {}
                    x.Action.zt(), x.Action.gt("session:loaded", x.Broker.vt), x.Polyfill.schedule_warn_incompatible(!0)
                } catch (t) {}
            }, z.prototype.ct = function() {
                var t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0],
                    i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    var n = this.Ts(t),
                        e = void 0,
                        e = !0 === i ? new Date(0) : new Date((new Date).getTime() + (!0 === t ? this.rc : this.oc));
                    document.cookie = n + "; expires=" + e.toUTCString() + "; path=/; samesite=lax;"
                } catch (t) {}
            }, z.prototype.wt = function(t) {
                var i, n = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    r((this.D.chat || {})[t]) === (void 0 === n ? "undefined" : r(n)) && (this.D.chat[t] = n, null !== this.K && (i = t.replace(this.hc, "-"), this.K.attr("data-" + i, !0 === n ? "true" : "false")))
                } catch (t) {}
            }, z.prototype.kt = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
                try {
                    var i, n = this.uc;
                    for (i in t)
                        if (t.hasOwnProperty(i)) {
                            n[i] = n[i] || {};
                            var e = t[i];
                            if (null !== e)
                                for (var s in e) e.hasOwnProperty(s) && (n[i][s] = e[s])
                        }
                    this.Ks.empty(), this.Ks.append(x.Library.dom(x.Template.render("style_color", {
                        colors: x.Theme.colors(n.color.theme || this.D.chat.theme, !!n.color.theme)
                    }))), this.Ks.append(x.Library.dom(x.Template.render("style_other", {
                        container_index: ("number" == typeof n.other.container_index ? n : this.lc).other.container_index,
                        show_operator_count: ("boolean" == typeof n.other.show_operator_count ? n : this.lc).other.show_operator_count
                    })));
                    var c = x.Plugin.get_customization("position", "chatbox");
                    x.Utility.is_empty(c) || this.Ks.append(x.Library.dom(x.Template.render("style_position", {
                        position: c
                    })))
                } catch (t) {}
            }, z.prototype.Fi = function(t, i, n) {
                var e = this,
                    s = 3 < arguments.length && void 0 !== arguments[3] && arguments[3],
                    c = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : null;
                try {
                    var a, r = t + "_handler",
                        o = document.createElement("script");
                    o.type = "text/javascript", o.async = 1, !0 === s ? (a = i + "?callback=" + encodeURIComponent("window.$crisp.__spool." + r), c && (a += "&" + encodeURIComponent(c)), o.src = a) : o.src = [this.vi + "/static/javascripts/" + i, "?" + this.yi].join(""), this.J.__spool[r] = function(t) {
                        o.parentNode.removeChild(o), delete e.J.__spool[r], "function" == typeof n && n(t)
                    };
                    var h = document.getElementsByTagName("head");
                    h && h[0] && h[0].appendChild(o)
                } catch (t) {}
            }, z.prototype.$n = function(e, s) {
                var c = this,
                    t = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
                try {
                    this.Fi("website", [this.vi + "/settings/website/", encodeURIComponent(this.Re) + "/"].join(""), function(t) {
                        var i = !(t && !t.error);
                        (t = t || {}).settings = t.settings || {};
                        var n = {
                            website: {
                                name: t.website || "",
                                domain: x.Utility.extract(c.fc, t.domain, c.A, 1),
                                mailer: t.mailer || "",
                                buster: e.buster || 1,
                                count_operators: e.count_operators || 0,
                                active_operators: e.active_operators || t.operators || [],
                                response_metrics: e.response_metrics || {},
                                last_available: e.last_available || x.Date.timestamp(),
                                status: e.status || null,
                                trial: t.trial || !1
                            },
                            channels: t.channels || {},
                            plugins: t.plugins || {},
                            chat: {
                                country: x.Utility.get_or_fallback((e.context || {}).country, null),
                                locale: x.Locale.detect(t.settings.locale ? [t.settings.locale] : []),
                                theme: x.Utility.get_or_fallback(t.settings.color_theme, "default"),
                                allowed_pages: x.Utility.get_or_fallback(t.settings.allowed_pages, []),
                                blocked_pages: x.Utility.get_or_fallback(t.settings.blocked_pages, []),
                                blocked_locales: x.Utility.get_or_fallback(t.settings.blocked_locales, []),
                                tile: x.Utility.get_or_fallback(t.settings.tile, "default", "string"),
                                last_operator_face: x.Utility.get_or_fallback(t.settings.last_operator_face, !1, "boolean"),
                                ongoing_operator_face: x.Utility.get_or_fallback(t.settings.ongoing_operator_face, !0, "boolean"),
                                activity_metrics: x.Utility.get_or_fallback(t.settings.activity_metrics, !0, "boolean"),
                                operator_privacy: x.Utility.get_or_fallback(t.settings.operator_privacy, !1, "boolean"),
                                availability_tooltip: x.Utility.get_or_fallback(t.settings.availability_tooltip, !0, "boolean"),
                                hide_vacation: x.Utility.get_or_fallback(t.settings.hide_vacation, !1, "boolean"),
                                hide_on_away: x.Utility.get_or_fallback(t.settings.hide_on_away, !1, "boolean"),
                                hide_on_mobile: x.Utility.get_or_fallback(t.settings.hide_on_mobile, !1, "boolean"),
                                position_reverse: x.Utility.get_or_fallback(t.settings.position_reverse, !1, "boolean"),
                                email_visitors: x.Utility.get_or_fallback(t.settings.email_visitors, !0, "boolean"),
                                phone_visitors: x.Utility.get_or_fallback(t.settings.phone_visitors, !0, "boolean"),
                                force_identify: x.Utility.get_or_fallback(t.settings.force_identify, !1, "boolean"),
                                ignore_privacy: x.Utility.get_or_fallback(t.settings.ignore_privacy, !1, "boolean"),
                                visitor_compose: x.Utility.get_or_fallback(t.settings.visitor_compose, !0, "boolean"),
                                file_transfer: x.Utility.get_or_fallback(t.settings.file_transfer, !0, "boolean"),
                                helpdesk_link: x.Utility.get_or_fallback(t.settings.helpdesk_link, !0, "boolean"),
                                status_health_dead: x.Utility.get_or_fallback(t.settings.status_health_dead, !0, "boolean"),
                                wait_game: x.Utility.get_or_fallback(t.settings.wait_game, !1, "boolean"),
                                theme_text: x.Utility.get_or_fallback(t.settings.text_theme, "default"),
                                theme_welcome: x.Utility.get_or_fallback(t.settings.welcome_message, "default")
                            }
                        };
                        x.Locale.load(n.chat.locale, function() {
                            s(n, t, i)
                        })
                    }, !0, t || e.buster)
                } catch (t) {}
            }, z.prototype.Q = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                !0 === x.Library.crisp.client.socket.connected ? t() : !1 !== this.Os && (x.Broker.Jn.actions.push(t), null === x.Broker.Jn.master && (x.Broker.Jn.master = function() {
                    !0 === i && x.Minimized.init(!0, !1, !1, !1)
                }), x.Library.crisp.client.socket.connect())
            }, z.prototype.Di = function() {
                var s = this;
                try {
                    "production" === this.Es && (x.Library.crisp.client.Issue.configure({
                        project: this.ks,
                        revision: this.yi,
                        environment: this.Es,
                        useragent: this.Is,
                        page: this.ae
                    }), x.Library.logger.set_log_sink(function(t, i, n) {
                        var e;
                        "error" === t && ("object" === r((s.J || {}).__spool) && (s.J.__spool.error_last = {
                            ns: i,
                            value: n
                        }), (e = x.Date.timestamp()) - s.dc >= s.pc && (s.dc = e, x.Library.crisp.client.Issue.report(t, i, n)))
                    }))
                } catch (t) {}
            }, z.prototype.at = function() {
                try {
                    "MutationObserver" in window && (this.vc("html"), this.vc("body")), x.Library.crisp.client.socket.disconnect(), this.Hs()
                } catch (t) {}
            }, z.prototype.rt = function() {
                try {
                    "function" == typeof this.Rs && this.Rs()
                } catch (t) {}
            }, z.prototype.Ns = function(n, e) {
                var s = this;
                try {
                    var t = new Date,
                        i = t.getFullYear() + "-" + t.getMonth() + "-" + t.getDate() + "-" + t.getHours() + "-" + t.getMinutes();
                    this.Fi("website", [this.vi + "/settings/website/", encodeURIComponent(this.Re) + "/prelude/"].join(""), function(t) {
                        var i = t && t.error ? t.error : null;
                        i ? e(i) : n(t || s.yc)
                    }, !0, i)
                } catch (t) {}
            }, z.prototype.Xs = function() {
                try {
                    this.mc(), "MutationObserver" in window && (this._c(document.documentElement), this.gc(document.body))
                } catch (t) {}
            }, z.prototype.mc = function() {
                try {
                    var t = x.Library.dom("body") || [];
                    0 < t.length && t.append(this.Ws)
                } catch (t) {}
            }, z.prototype.Hs = function() {
                try {
                    null !== this.Ws && (this.Ws.remove(), this.Ws = null)
                } catch (t) {}
            }, z.prototype.Ls = function() {
                try {
                    this.wc(!0)
                } catch (t) {}
            }, z.prototype.Ps = function() {
                var e = this;
                try {
                    this.wc(!1), this.$n({}, function(t, i, n) {
                        !0 !== n && x.Availability.receive(i.online || !1, !1), e.spawn_client(t), x.Minimized.init(!1, !1, n), e.Hn()
                    }, this.$s)
                } catch (t) {}
            }, z.prototype.wc = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                try {
                    x.Broker.init(this.Es, this.xs, this.Fs, this.qs, this.A, this.Re, this.Cs, this.Ss, this.As, this.Is, this.Ds, this.Bs, this.bi, this.Ms, t)
                } catch (t) {}
            }, z.prototype._c = function(t) {
                var c = this;
                try {
                    this.vc("html"), this.bc.html = new MutationObserver(function(t) {
                        for (var i = 0; i < (t || []).length; i++) {
                            var n = t[i];
                            if ("childList" === n.type && n.addedNodes)
                                for (var e = 0; e < n.addedNodes.length; e++) {
                                    var s = n.addedNodes[e];
                                    if ("body" === (s.tagName || "").toLowerCase()) {
                                        c.gc(s), c.kc();
                                        break
                                    }
                                }
                        }
                    }), this.bc.html.observe(t, this.xc)
                } catch (t) {}
            }, z.prototype.gc = function(t) {
                var s = this;
                try {
                    this.vc("body"), this.bc.body = new MutationObserver(function(t) {
                        for (var i = 0; i < (t || []).length; i++) {
                            var n = t[i];
                            if ("childList" === n.type && n.removedNodes)
                                for (var e = 0; e < n.removedNodes.length; e++)
                                    if (n.removedNodes[e] === s.Ws[0]) {
                                        s.kc();
                                        break
                                    }
                        }
                    }), this.bc.body.observe(t, this.xc)
                } catch (t) {}
            }, z.prototype.vc = function(t) {
                try {
                    var i = this.bc[t];
                    void 0 !== i && (i.disconnect(), delete this.bc[t])
                } catch (t) {}
            }, z.prototype.kc = function() {
                var t = this;
                try {
                    null === this.Fc && (this.Fc = x.Utility.set_timeout(function() {
                        t.Fc = null, t.mc()
                    }, this.jc))
                } catch (t) {}
            }, z.prototype.Ts = function() {
                var t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0],
                    i = null;
                try {
                    i = encodeURIComponent("crisp-client/socket/" + this.Re) + "=" + encodeURIComponent(!0 === t ? "0" : "1")
                } catch (t) {} finally {
                    return i
                }
            }, z.prototype.Js = function() {
                try {
                    this.Ws = null, this.Ks = null, this.K = null
                } catch (t) {}
            }, z.prototype.n = function() {
                try {
                    this.H = !1, this.D = {}, this.J = null, this.ks = null, this.xs = null, this.Fs = null, this.js = null, this.qs = null, this.g = null, this.zs = null, this.vi = null, this.Yn = null, this.Es = null, this.yi = null, this.A = null, this.Re = null, this.Cs = null, this.Ss = null, this.As = null, this.ae = null, this.re = null, this.Is = null, this.Ds = null, this.Bs = null, this.bi = null, this.$s = 1, this.Os = !0, this.ec = !1, this.sc = !1, this.Us = null, this.Rs = null, this.Ms = {}, this.dc = 0, this.Fc = null, this.uc = {
                        color: {},
                        other: {}
                    }, this.bc = {}
                } catch (t) {}
            }, new z), x.Minimized = (q.prototype.init = function() {
                var t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0],
                    i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
                    n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
                    e = !(3 < arguments.length && void 0 !== arguments[3]) || arguments[3];
                try {
                    this.qc(n), this.zc(i, n, t, e), this.H = !0
                } catch (t) {}
            }, q.prototype.reset = function() {
                try {
                    x.Utility.reset_instance_children(x.Minimized), this.n()
                } catch (t) {}
            }, q.prototype.qc = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                try {
                    for (var i = void 0, n = [x.Minimized.Interface, x.Minimized.Selector, x.Minimized.Event], i = 0; i < n.length; i++) n[i].init(t)
                } catch (t) {}
            }, q.prototype.zc = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0],
                    i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
                    n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
                    e = !(3 < arguments.length && void 0 !== arguments[3]) || arguments[3];
                try {
                    !0 !== i ? x.Minimized.Interface.Ec(t, n, e) : x.Minimized.Interface.Cc(t, e), !0 === x.Base.Ms.lock_maximized && x.Minimized.Interface.G()
                } catch (t) {}
            }, q.prototype.n = function() {
                try {
                    this.H = !1
                } catch (t) {}
            }, new q), x.Minimized.Event = (j.prototype.init = function() {}, j.prototype.Sc = function(t) {
                try {
                    x.Minimized.Selector.Ac.on("click", function(t) {
                        try {
                            var i, n = t.target ? x.Library.dom(t.target) : null,
                                e = n ? n.attr("data-pop") : null;
                            !n || e || (i = n.parents("[data-pop]")) && i[0] && (e = i.attr("data-pop") || null), e ? "spotlight" === e && x.Action.do_helpdesk_search() : n && n.is(".cc-g0ak") ? x.Minimized.Interface.Ic() : x.Minimized.Interface.G()
                        } catch (t) {} finally {
                            return !1
                        }
                    }), x.Minimized.Selector.Ac[0].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, new j), x.Minimized.Interface = (F.prototype.init = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                try {
                    this.zc(t)
                } catch (t) {}
            }, F.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, F.prototype.Ec = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0],
                    n = this,
                    e = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
                    i = !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2];
                try {
                    var s = !1,
                        c = {
                            conceal_general_entice: !1,
                            helpdesk: {
                                url: null
                            }
                        };
                    !0 === x.Base.D.chat.availability_tooltip && (c.conceal_general_entice = x.Library.crisp.client.Storage.get_stamp_local(this.Dc, [x.Base.Re, "general_entice", "conceal"]) === this.Bc && !0), !0 === x.Base.D.chat.helpdesk_link && x.Base.D.channels.helpdesk && x.Base.re !== x.Base.D.channels.helpdesk && !0 === x.Library.crisp.client.socket.connected && (c.helpdesk.url = x.Chat.Interface.U("helpdesk")), this.Uc("minimized_authorized", !0, t, i, c), this.G = function() {
                        var i;
                        !1 === s && (!(s = !0) === e ? (n.Rc(!0), x.Event.trigger_interacted(!0), i = x.Utility.set_timeout(function() {
                            x.Broker.vt || (alert(x.Locale.text("chat", "minimized_connect_alert_failure")), x.Library.crisp.client.socket.disconnect(), n.Rc(!1), x.Action.do_chat_hide())
                        }, n.Mc), x.Broker.Jn.master = function(t) {
                            x.Utility.clear_timeout(i), x.Chat.init(t)
                        }, x.Library.crisp.client.socket.connect()) : x.Chat.init())
                    }, x.Availability.apply(), x.Minimized.Event.Sc()
                } catch (t) {}
            }, F.prototype.Cc = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0],
                    i = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1];
                try {
                    this.Uc("minimized_unauthorized", !1, t, i), this.G = function() {}, x.Minimized.Event.Sc()
                } catch (t) {}
            }, F.prototype.bt = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null;
                try {
                    var i = null !== t ? t : x.Minimized.Selector.Nc.find([".cc-1bue", '[data-id="general_entice"]'].join(""));
                    i && i.safe_css_text("display", "block")
                } catch (t) {}
            }, F.prototype.Ic = function() {
                try {
                    var t = x.Minimized.Selector.Nc.find([".cc-1bue", '[data-id="general_entice"]'].join(""));
                    t && t.attr("data-is-concealed", "true"), x.Library.crisp.client.Storage.set_stamp_local(this.Dc, [x.Base.Re, "general_entice", "conceal"], this.Bc)
                } catch (t) {}
            }, F.prototype.Uc = function(t) {
                var i = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1],
                    n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
                    e = this,
                    s = !(3 < arguments.length && void 0 !== arguments[3]) || arguments[3],
                    c = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : {};
                try {
                    var a, r, o = x.Base.D,
                        h = {
                            configuration: o,
                            methods: {
                                active_operators: x.Avatar.active_operators.d(x.Avatar)
                            },
                            website: {
                                id: x.Base.Re
                            }
                        };
                    for (a in c) h[a] = c[a];
                    x.Minimized.Selector.Oc = x.Library.dom(x.Template.render(t, h)), x.Base.K.empty(), x.Base.K.append(x.Minimized.Selector.Oc), x.Minimized.Selector.$c(), !0 === i && (r = !0 !== x.Base.ut() && !0 === o.chat.availability_tooltip ? x.Minimized.Selector.Nc.find([".cc-1bue", '[data-id="general_entice"]'].join("")) : null, !0 === s && x.Feature.has_css_animations() ? (!0 === n && (x.Minimized.Selector.Ac.addClass("cc-9axk"), x.Utility.set_timeout(function() {
                        x.Minimized.Selector.Ac.removeClass("cc-9axk")
                    }, this.Tc)), null !== r && x.Utility.set_timeout(function() {
                        e.bt(r);
                        var t = !0 === n ? "cc-z74s" : "cc-phpq";
                        r.addClass(t), x.Utility.set_timeout(function() {
                            r.removeClass(t)
                        }, e.Lc)
                    }, this.Pt * (!0 === n ? this.Pc : this.Jc))) : null !== r && this.bt(r))
                } catch (t) {}
            }, F.prototype.Rc = function() {
                var t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
                try {
                    var i = !0 === t ? "none" : "block",
                        n = !0 === t ? "block" : "none";
                    x.Minimized.Selector.Ac.find(".cc-15mo").safe_css_text("display", i), x.Minimized.Selector.Ac.find(".cc-1yxw").safe_css_text("display", n)
                } catch (t) {}
            }, F.prototype.zc = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                try {
                    !0 !== t && x.Library.crisp.client.Message.get_message_history()
                } catch (t) {}
            }, F.prototype.n = function() {
                try {
                    this.G = function() {}
                } catch (t) {}
            }, new F), x.Minimized.Selector = (k.prototype.init = function() {}, k.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, k.prototype.$c = function() {
                try {
                    this.Hc(), this.Wc()
                } catch (t) {}
            }, k.prototype.Hc = function() {
                try {
                    this.Ac = this.Oc.find(".cc-unoo")
                } catch (t) {}
            }, k.prototype.Wc = function() {
                try {
                    this.Nc = this.Ac.find(".cc-1c9v")
                } catch (t) {}
            }, k.prototype.n = function() {
                try {
                    this.Oc = null, this.Ac = null, this.Nc = null
                } catch (t) {}
            }, new k), x.Chat = (b.prototype.init = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null;
                try {
                    this.qc(), null !== t && x.Chat.State.Gc(t), null === t && x.Action.gt("chat:initiated"), this.zc(), x.Base.ct(!1), this.H = !0
                } catch (t) {}
            }, b.prototype.reset = function() {
                try {
                    x.Utility.reset_instance_children(x.Chat), this.n()
                } catch (t) {}
            }, b.prototype.ue = function() {
                try {
                    this.Vc(!1)
                } catch (t) {}
            }, b.prototype.et = function() {
                try {
                    this.Vc(!0)
                } catch (t) {}
            }, b.prototype.Vc = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                try {
                    !0 !== this.H && (this.init({
                        maximized: t
                    }), x.Chat.State.propagate("maximized", t, !0))
                } catch (t) {}
            }, b.prototype.qc = function() {
                try {
                    for (var t = void 0, i = [x.Chat.Alert, x.Chat.Intent, x.Chat.Field, x.Chat.Interface, x.Chat.Message, x.Chat.Misc, x.Chat.Notification, x.Chat.Scroll, x.Chat.State, x.Chat.Selector, x.Chat.Event, x.Chat.Viewport], t = 0; t < i.length; t++) i[t].init()
                } catch (t) {}
            }, b.prototype.zc = function() {
                try {
                    x.Chat.Interface.Kc(), x.Chat.Field.Xc(), x.Availability.apply(), x.Library.crisp.client.Socket.get_state(), x.Sound.initialize("events"), x.Chat.Message.Gc(), x.Date.watch()
                } catch (t) {}
            }, b.prototype.n = function() {
                try {
                    this.H = !1
                } catch (t) {}
            }, new b), r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }, x.Chat.Alert = (w.prototype.init = function() {}, w.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, w.prototype.Et = function(t, i) {
                try {
                    var n, e = void 0,
                        s = void 0,
                        c = void 0;
                    "object" === (void 0 === t ? "undefined" : r(t)) ? e = t: (e = {})[t] = i;
                    var a = x.Utility.clone(this.Yc);
                    for (s in e) e.hasOwnProperty(s) && (n = e[s], c = !1, void 0 !== this.Yc[s] && this.Yc[s] === n && (c = !0), !1 === (c = "lock" === this.Yc[s] && "unlock" !== n || c) && (a[s] = n));
                    x.Chat.State.propagate("alert", a)
                } catch (t) {}
            }, w.prototype.Zc = function(t) {
                var i = !1;
                try {
                    i = ("show" === this.Yc[t] || "unlock" === this.Yc[t]) && !0
                } catch (t) {} finally {
                    return i
                }
            }, w.prototype.Qc = function(t, i) {
                try {
                    var n = this.ta[i];
                    "function" == typeof n && n.d(this)(t)
                } catch (t) {}
            }, w.prototype.ia = function(t) {
                try {
                    this.na(t)
                } catch (t) {}
            }, w.prototype.ea = function(t) {
                try {
                    this.na(t)
                } catch (t) {}
            }, w.prototype.na = function(t) {
                try {
                    "show" === t ? x.Chat.Message.sa() : x.Chat.Message.aa()
                } catch (t) {}
            }, w.prototype.n = function() {
                try {
                    this.Yc = {}
                } catch (t) {}
            }, new w), x.Chat.Intent = (g.prototype.init = function() {}, g.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, g.prototype.Et = function(t) {
                var i, n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "default",
                    e = 2 < arguments.length && void 0 !== arguments[2] && arguments[2];
                try {
                    if (-1 === this.ra.indexOf(t)) throw new Error("Unknown intent: " + t);
                    !0 !== e && !1 === this.Yc[t] || (i = x.Utility.clone(this.Yc), n || !1 === n ? i[t] = n : delete i[t], x.Chat.State.propagate("intent", i))
                } catch (t) {}
            }, g.prototype.oa = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null;
                try {
                    for (var i, n = void 0, n = 0; n < this.ra.length; n++) i = this.ra[n], (t || this.Yc)[i] || this.ha(i, null)
                } catch (t) {}
            }, g.prototype.ha = function(t) {
                var i, n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "default",
                    e = !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2];
                try {
                    -1 === this.ra.indexOf(t) || "function" == typeof(i = this.ua[t]) && i.d(this)(n, e)
                } catch (t) {}
            }, g.prototype.la = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "default",
                    i = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1];
                try {
                    t ? "default" === t ? x.Chat.Message.fa(i) : x.Chat.Message.da(t, i) : x.Chat.Message.pa()
                } catch (t) {}
            }, g.prototype.va = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "default",
                    i = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1];
                try {
                    t ? x.Chat.Message.ya(i) : x.Chat.Message.ma()
                } catch (t) {}
            }, g.prototype.n = function() {
                try {
                    this.Yc = {}
                } catch (t) {}
            }, new g), x.Chat.Picker = (_.prototype.init = function() {}, _.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, _.prototype.ga = function() {
                var t = !1;
                try {
                    t = null !== this.wa && !0
                } catch (t) {} finally {
                    return t
                }
            }, _.prototype.ha = function(t) {
                try {
                    var i, n = x.Chat.Selector.get("pickers").find([".cc-5ftt", '[data-type="' + t + '"]'].join(""));
                    0 < n.length && (i = this.ga(), this.ba(), x.Chat.Selector.get("pickers").attr("data-has-animation", !1 === i ? "true" : "false"), this.ka(t, n), x.Chat.Field.Xc())
                } catch (t) {}
            }, _.prototype.ba = function() {
                try {
                    (this.xa = null) !== this.wa && (x.Chat.Selector.get("pickers_inner_one").safe_css_text("display", "none"), x.Chat.Selector.get("content").removeAttr("data-has-picker-" + this.wa), x.Chat.Selector.get("pickers_selector_one").removeClass("cc-1ada"), x.Chat.Selector.get("pickers_selector_one").addClass("cc-183m"), x.Library.dom([".cc-dnqb", '[data-removable="true"]'].join("")).remove(), this.wa = null)
                } catch (t) {}
            }, _.prototype.Fa = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "";
                try {
                    if (null !== x.Chat.Event.ja && (x.Utility.clear_timeout(x.Chat.Event.ja), x.Chat.Event.ja = null), this.xa !== t) {
                        this.xa = t;
                        var i = x.Chat.Selector.get("pickers_gif").find(".cc-yb0h"),
                            n = x.Chat.Selector.get("pickers_gif").find(".cc-1ydc"),
                            e = x.Template.render("chat_picker_gif_item");
                        i.empty(), n.safe_css_text("display", "none"), i.safe_css_text("display", "block"), x.Chat.Selector.get("pickers_gif").attr("data-has-search", t ? "true" : "false"), x.Chat.Selector.get("pickers_search_input").val() !== t && x.Chat.Selector.get("pickers_search_input").val(t || "");
                        for (var s = 0; s < this.qa; s++) i.append(e);
                        x.Chat.Event.za(i), x.Library.crisp.client.Media.get_animation_list(t)
                    }
                } catch (t) {}
            }, _.prototype.ee = function() {
                var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
                try {
                    var t = x.Chat.Selector.get("pickers_gif").find(".cc-dnqb"),
                        s = 0;
                    t && 0 < t.length && (t.each(function(t, i, n) {
                        n = n.eq(i), e[i] && e[i].type && e[i].url ? (n.attr("data-type", e[i].type), n.attr("data-url", e[i].url), n.safe_css_text("background-image", "url('" + x.Base.g + "/process/original/?url=" + encodeURIComponent(e[i].url) + "')"), n.removeAttr("data-loading"), s++) : n.remove()
                    }), 0 === s && (x.Chat.Selector.get("pickers_gif").find(".cc-yb0h").safe_css_text("display", "none"), x.Chat.Selector.get("pickers_gif").find(".cc-1ydc").safe_css_text("display", "block")))
                } catch (t) {}
            }, _.prototype.ka = function(t, i) {
                try {
                    i.safe_css_text("display", "block"), x.Chat.Selector.get("content").attr("data-has-picker-" + t, "true");
                    var n = x.Chat.Selector.get("pickers").find([".cc-mxq4", '[data-type="' + t + '"]'].join(""));
                    n.removeClass("cc-183m"), n.addClass("cc-1ada"), this.wa = t;
                    var e = this.Ea[t];
                    "function" == typeof e && e.d(this)()
                } catch (t) {}
            }, _.prototype.Ca = function() {
                try {
                    this.Fa()
                } catch (t) {}
            }, _.prototype.n = function() {
                try {
                    this.wa = null, this.xa = null
                } catch (t) {}
            }, new _), x.Chat.Event = (m.prototype.init = function() {}, m.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, m.prototype.$c = function() {
                try {
                    this.Sa(), this.Aa(), this.Ia(), this.Da(), this.Ba(), this.Ua(), this.Ra(), this.Ma(), this.Na(), this.Oa(), this.$a(), this.Ta(), this.La(), this.Pa(), this.Ja(), this.Ha(), this.Wa(), this.Ga()
                } catch (t) {}
            }, m.prototype.Va = function(t) {
                var e, i;
                try {
                    x.Base.D.channels.helpdesk && x.Base.re !== x.Base.D.channels.helpdesk && !0 !== x.Feature.has_screen_touch() && (null === (e = x.Utility.acquire_channel_url_regex("helpdesk", "article", "([^/]+)/article/([^/]+)/.*")) || 0 < (i = t.find("a[href]") || []).length && i.each(function(t) {
                        var i, n = t.getAttribute("href");
                        !n || (i = n.match(e)) && i[1] && i[2] && (t.onclick = function() {
                            return x.Action.do_helpdesk_article_open(i[1], i[2]), !1
                        })
                    }))
                } catch (t) {}
            }, m.prototype.Ka = function(t) {
                try {
                    var i = t.find('.cc-djxv[data-target="helpdesk"]') || [];
                    0 < i.length && i.each(function(t) {
                        t.onclick = function() {
                            return x.Event.trigger_interacted(!0), x.Action.do_helpdesk_search(), !1
                        }
                    })
                } catch (t) {}
            }, m.prototype.Xa = function(t) {
                try {
                    var i = t.find('.cc-djxv[data-type="embed"], .cc-1fry') || [];
                    if (0 < i.length) {
                        i.on("click", function(t) {
                            try {
                                var i = t.target ? x.Library.dom(t.target) : [];
                                0 < (i = i.is("a[href]") ? i : i.parents("a[href]")).length && x.Chat.Interface.Ya("embed", i.attr("href"))
                            } catch (t) {} finally {
                                return !1
                            }
                        }), this.Za(i);
                        for (var n = 0; n < i.length; n++) i[n].onclick = function() {
                            return !1
                        }
                    }
                } catch (t) {}
            }, m.prototype.Qa = function(t) {
                try {
                    var i = t.find(".cc-17m8") || [];
                    0 < i.length && (i.on("click", function() {
                        try {
                            x.Chat.Interface.Ya(i.attr("data-action"), i.attr("href"), i.attr("data-name"), t.attr("data-fingerprint"))
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(i), i[0].onclick = function() {
                        return !1
                    })
                } catch (t) {}
            }, m.prototype.tr = function(t, n) {
                try {
                    var i, e = !1,
                        s = t.find(".cc-1qf4") || [],
                        c = t.find(".cc-784v") || [],
                        a = t.find(".cc-u2t4") || [],
                        r = t.find(".cc-cccw") || [],
                        o = t.find(".cc-1ep3") || [];
                    0 < r.length && (i = r.find("source") || [], 0 < s.length && (r[0].addEventListener("play", function() {
                        s.attr("data-state", "loading")
                    }), r[0].addEventListener("pause", function() {
                        s.attr("data-state", "paused")
                    }), r[0].addEventListener("canplay", function() {
                        s.attr("data-state", "playing")
                    }), r[0].addEventListener("stalled", function() {
                        s.attr("data-state", "none")
                    })), 0 < i.length && i.each(function(t) {
                        t.addEventListener("error", function() {
                            r[0].paused || r[0].pause(), e = !0, alert(x.Locale.text("chat", "chat_message_audio_play_error"))
                        })
                    }), 0 < o.length && 0 < a.length && r[0].addEventListener("timeupdate", function(t) {
                        var i;
                        t.target && (t = 0 === (i = (i = Math.ceil(t.target.currentTime / t.target.duration * 100)) < 100 ? i : 0) ? n.content.duration || 0 : Math.floor(t.target.currentTime), a.text(x.Date.format_time(t)), o.safe_css_text("width", i + "%"))
                    })), 0 < c.length && (c.on("click", function() {
                        try {
                            0 < r.length && (r[0].paused ? (!0 === e && (r[0].load(), e = !1), x.Utility.play_media(r[0])) : r[0].pause())
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(c), c[0].onclick = function() {
                        return !1
                    })
                } catch (t) {}
            }, m.prototype.ir = function(r, o, h) {
                try {
                    var t = r.find(".cc-1u43") || [];
                    if (0 < t.length) {
                        t.on("click", function(t) {
                            try {
                                if (t.stopPropagation(), "from" === o) {
                                    var i = t.target ? x.Library.dom(t.target) : null;
                                    if (i) {
                                        for (var n = i.attr("data-value"), e = !1, s = null, c = 0; c < h.content.choices.length; c++) {
                                            var a = h.content.choices[c];
                                            a.value === n ? !0 !== a.selected && (e = a.selected = !0, s = a.handler) : a.selected = !1
                                        }!0 === e && ("function" == typeof s ? s(r) : x.Library.crisp.client.Message.update_message(h.fingerprint, h.content))
                                    }
                                }
                            } catch (t) {} finally {
                                return !1
                            }
                        }), this.Za(t);
                        for (var i = 0; i < t.length; i++) t[i].onclick = function() {
                            return !1
                        }
                    }
                } catch (t) {}
            }, m.prototype.nr = function(t, i) {
                try {
                    var n, e = t.find(".cc-hp1x") || [],
                        s = t.find(".cc-1t9k") || [],
                        c = t.find(".cc-fosr") || [];
                    if (0 < e.length && 0 < s.length && (n = function() {
                            var t = s.val().trim();
                            t && (i.content.value = t, "function" == typeof i.content.handler ? i.content.handler(t) : x.Library.crisp.client.Message.update_message(i.fingerprint, i.content))
                        }, e.on("submit", function() {
                            try {
                                n()
                            } catch (t) {} finally {
                                return !1
                            }
                        }), c.on("click", function(t) {
                            try {
                                t.stopPropagation(), n()
                            } catch (t) {} finally {
                                return !1
                            }
                        }), this.Za(c), e[0].onsubmit = function() {
                            return !1
                        }, c[0].onclick = function() {
                            return !1
                        }), i.content.previous) {
                        var a = t.find(".cc-2t7n") || [];
                        if (0 < a.length) {
                            a.on("click", function(t) {
                                try {
                                    t.stopPropagation(), x.Chat.Intent.Et(i.content.previous)
                                } catch (t) {} finally {
                                    return !1
                                }
                            }), this.Za(a);
                            for (var r = 0; r < a.length; r++) a[r].onclick = function() {
                                return !1
                            }
                        }
                    }
                } catch (t) {}
            }, m.prototype.er = function(i, n) {
                try {
                    var t = i.find(".cc-pus6");
                    t.on("click", function(t) {
                        try {
                            t.stopPropagation(), !0 === x.Chat.Message.sr() && (x.Chat.Message.cr(i), x.Action.do_message_send(n.type, n.content))
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(t), t[0].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, m.prototype.ar = function(t) {
                try {
                    var i = t.find(".cc-1h0y"),
                        n = t.find(".cc-1shm");
                    i.on("load", function() {
                        try {
                            t.attr("data-loaded", "true")
                        } catch (t) {}
                    }), n.on("click", function() {
                        try {
                            x.Chat.Game.stop()
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(n), n[0].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, m.prototype.rr = function(i) {
                try {
                    function e() {
                        i.remove(), x.Chat.Field.Xc()
                    }
                    i.find(".cc-q2us").on("load", function(t) {
                        try {
                            i.attr("data-state", "loaded")
                        } catch (t) {}
                    }), i.on("keydown", function(t) {
                        try {
                            27 === t.keyCode && e()
                        } catch (t) {}
                    }), i[0].onclick = function(t) {
                        var i = !0;
                        try {
                            var n = t.target ? x.Library.dom(t.target) : null;
                            n && (n.is(".cc-k0ox") || n.is(".cc-ikw0") || n.is(".cc-12ru") || n.is(".cc-1o7o")) && (i = !1, e())
                        } catch (t) {} finally {
                            return i
                        }
                    }, this.Za(i)
                } catch (t) {}
            }, m.prototype.or = function(n) {
                var e = this;
                try {
                    function s() {
                        o(), n.remove(), x.Chat.Interface.hr = null, x.Chat.Field.Xc()
                    }
                    var c = "",
                        a = null,
                        r = n.find(".cc-tdrg"),
                        o = function() {
                            null !== a && (x.Utility.clear_timeout(a), a = null), null !== x.Chat.Interface.ur && (x.Utility.clear_timeout(x.Chat.Interface.ur), x.Chat.Interface.ur = null)
                        };
                    r.on("keyup", function(t) {
                        try {
                            var i = (t.target.value || "").trim();
                            i !== c && (o(), i ? (n.attr("data-state", "loading"), a = x.Utility.set_timeout(function() {
                                var t;
                                a = null, c = i, x.Action.do_helpdesk_query(i), !i || (t = i.substring(i.lastIndexOf(" ") + 1).trim()) && t.length >= e.lr && x.Library.crisp.client.Helpdesk.get_article_suggest(t, x.Locale.code())
                            }, e.fr)) : (delete x.Broker.ne.helpdesk_article_search, delete x.Broker.ne.helpdesk_article_suggest, c = "", x.Chat.Interface.se([], {}, !1), x.Chat.Interface.ce([])))
                        } catch (t) {}
                    }), n[0].onkeydown = function(t) {
                        var i = !0;
                        try {
                            switch (t.keyCode) {
                                case 27:
                                    s(), i = !1;
                                    break;
                                case 13:
                                    x.Chat.Interface.dr(n), i = !1;
                                    break;
                                case 38:
                                    x.Chat.Interface.pr(n, -1), i = !1;
                                    break;
                                case 40:
                                    x.Chat.Interface.pr(n, 1), i = !1;
                                    break;
                                case 9:
                                    x.Chat.Interface.vr(n, r), i = !1;
                                    break;
                                default:
                                    !0 !== t.shiftKey && !0 !== t.metaKey && !0 !== t.ctrlKey && !0 !== t.altKey && x.Chat.Interface.ce([])
                            }
                        } catch (t) {} finally {
                            return i
                        }
                    }, n[0].onclick = function(t) {
                        var i = !0;
                        try {
                            var n = t.target ? x.Library.dom(t.target) : null;
                            n && (n.is(".cc-1qlo") || n.is(".cc-1pql") || n.is(".cc-1o4r") ? (i = !1, s()) : !1 === n.is("a") && r[0].focus())
                        } catch (t) {} finally {
                            return i
                        }
                    }, this.Za(n.find(".cc-1o4r"))
                } catch (t) {}
            }, m.prototype.yr = function(n) {
                try {
                    function e(t) {
                        0 !== t && (i[0].scrollTop += t)
                    }
                    var i = n.find(".cc-1u0c"),
                        t = i.find(".cc-1h5e"),
                        s = 0;
                    i.on("wheel", function(t) {
                        try {
                            e(t.deltaY || 0)
                        } catch (t) {}
                    }), i.on("touchstart", function(t) {
                        try {
                            s = ((t.touches || [])[0] || {}).pageY || 0
                        } catch (t) {}
                    }), i.on("touchmove", function(t) {
                        try {
                            var i = ((t.touches || [])[0] || {}).pageY || 0;
                            e(s - i), s = i
                        } catch (t) {}
                    }), t.on("mouseenter", function(t) {
                        try {
                            x.Chat.Interface.mr(n, t.target, !0)
                        } catch (t) {}
                    }), t.on("mouseleave", function(t) {
                        try {
                            x.Chat.Interface.mr(n, t.target, !1)
                        } catch (t) {}
                    }), t.on("click", function(t) {
                        try {
                            var i;
                            !0 !== x.Feature.has_screen_touch() && (t.preventDefault(), 0 < (i = x.Library.dom(t.target).parents(".cc-7rhc") || []).length && (x.Action.do_helpdesk_article_open(i.attr("data-locale"), i.attr("data-slug")), n.remove(), x.Chat.Interface.hr = null))
                        } catch (t) {} finally {
                            return !1
                        }
                    }), i[0].onscroll = function(t) {
                        t.preventDefault(), t.stopPropagation()
                    }, i[0].ontouchmove = function(t) {
                        t.stopPropagation()
                    }
                } catch (t) {}
            }, m.prototype._r = function(t, i) {
                var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
                try {
                    function s() {
                        i.remove(), x.Chat.Field.Xc()
                    }

                    function c(t) {
                        !(t = n[t]) || 0 < (t = x.Chat.Selector.get("flow_messages").find([".cc-b3wa", '[data-fingerprint="' + t + '"]'].join("")) || []).length && 0 < (t = t.find(".cc-17m8") || []).length && t[0].click()
                    }
                    var e = i.find(".cc-z6hh");
                    i.on("keydown", function(t) {
                        try {
                            switch (t.keyCode) {
                                case 27:
                                    s();
                                    break;
                                case 37:
                                    c("previous");
                                    break;
                                case 39:
                                    c("next")
                            }
                        } catch (t) {}
                    }), e.on("video" === t ? "loadeddata" : "load", function() {
                        try {
                            i.attr("data-state", "loaded")
                        } catch (t) {}
                    }), i[0].onclick = function(t) {
                        var i = !1;
                        try {
                            var n = null,
                                e = t.target ? x.Library.dom(t.target) : null;
                            switch (n = e && e.is(".cc-12xv") ? e.attr("data-action") : n) {
                                case "download":
                                    i = !0;
                                    break;
                                case "next":
                                case "previous":
                                    c(n);
                                    break;
                                default:
                                    e && e.is("video, iframe") || s()
                            }
                        } catch (t) {} finally {
                            return i
                        }
                    }, this.Za(i)
                } catch (t) {}
            }, m.prototype.za = function(t) {
                try {
                    var i = t.find(".cc-dnqb") || [];
                    if (0 < i.length) {
                        i.on("click", function(t) {
                            try {
                                var i, n, e;
                                t.stopPropagation(), !0 !== x.Chat.Message.sr() || (i = t.target ? x.Library.dom(t.target) : null) && (n = i.attr("data-type"), (e = i.attr("data-url")) && n && (x.Action.do_message_send("animation", {
                                    type: n,
                                    url: e
                                }), x.Chat.Picker.ba()))
                            } catch (t) {} finally {
                                return !1
                            }
                        }), this.Za(i);
                        for (var n = 0; n < i.length; n++) i[n].onclick = function() {
                            return !1
                        }
                    }
                } catch (t) {}
            }, m.prototype.Sa = function() {
                try {
                    x.Chat.Selector.gr.find(".cc-qqzz").on("click", function(t) {
                        try {
                            var i = t.target ? x.Library.dom(t.target) : null;
                            i && !i.is(".cc-1lut") && 0 === i.parents(".cc-1lut").length && x.Chat.Field.Xc()
                        } catch (t) {}
                    })
                } catch (t) {}
            }, m.prototype.Aa = function() {
                try {
                    x.Chat.Selector.gr.on("keydown", function(t) {
                        try {
                            27 === t.keyCode && x.Action.do_chat_close()
                        } catch (t) {}
                    }), x.Chat.Selector.get("header").on("click", function() {
                        try {
                            x.Action.do_chat_close()
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(x.Chat.Selector.get("header")), x.Chat.Selector.get("header")[0].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, m.prototype.Ia = function() {
                try {
                    x.Chat.Selector.Ac.on("click", function(t) {
                        try {
                            var i = t.target ? x.Library.dom(t.target) : null;
                            i && i.is(".cc-6uue") ? x.Action.do_message_read() : x.Action.do_chat_toggle()
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(x.Chat.Selector.Ac), x.Chat.Selector.Ac[0].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, m.prototype.Da = function() {
                var n = this;
                try {
                    var e = null;
                    x.Chat.Selector.get("flow").on("scroll", function() {
                        try {
                            var t = x.Chat.Selector.get("flow")[0].scrollTop;
                            (Math.abs(t - (x.Chat.Scroll.wr || 0)) >= n.br || null !== e) && (x.Chat.Scroll.wr = t, i = x.Chat.Scroll.wr, null !== e && x.Utility.clear_timeout(e), e = x.Utility.set_timeout(function() {
                                e = null, x.Chat.State.propagate("scroll", i)
                            }, n.kr)), x.Chat.Notification.xr()
                        } catch (t) {}
                        var i
                    }), x.Chat.Selector.get("alerts_new_messages").on("click", function() {
                        try {
                            x.Chat.Scroll.Fr()
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(x.Chat.Selector.get("alerts_new_messages")), x.Chat.Selector.get("alerts_new_messages")[0].onclick = function() {
                        return !1
                    }, x.Chat.Selector.get("flow")[0].onscroll = function(t) {
                        t.preventDefault(), t.stopPropagation()
                    }, x.Chat.Selector.get("flow")[0].ontouchmove = function(t) {
                        t.stopPropagation()
                    }
                } catch (t) {}
            }, m.prototype.Ba = function() {
                try {
                    var t = x.Chat.Selector.get("header_channel"),
                        i = t.filter('[data-channel="spotlight"]') || [];
                    t.on("click", function(t) {
                        try {
                            t.stopPropagation();
                            var i = t.target ? x.Library.dom(t.target) : null;
                            i && i.is([".cc-1qlt", '[data-channel="spotlight"]'].join("")) && (x.Event.trigger_interacted(!0), x.Action.do_helpdesk_search())
                        } catch (t) {}
                    }), i[0] && (i[0].onclick = function() {
                        return !1
                    })
                } catch (t) {}
            }, m.prototype.Ua = function() {
                try {
                    var t = x.Chat.Selector.get("pickers_selector_one");
                    x.Chat.Selector.get("pickers").on("click", function(t) {
                        try {
                            var i = t.target ? x.Library.dom(t.target) : null;
                            i && 0 === i.parents(".cc-1tha").length && x.Chat.Picker.ba()
                        } catch (t) {}
                    }), t.on("click", function(t) {
                        try {
                            var i, n = t.target ? x.Library.dom(t.target) : null;
                            n && ((i = n.attr("data-type")) ? x.Chat.Picker.ha(i) : x.Chat.Picker.ba())
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(t);
                    for (var i = 0; i < t.length; i++) t[i].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, m.prototype.Ra = function() {
                try {
                    var t = x.Chat.Selector.get("pickers_smiley").find(".cc-dnqb");
                    x.Chat.Selector.get("form_button_smiley").on("click", function() {
                        try {
                            !1 === x.Chat.Picker.ga() ? (x.Event.trigger_interacted(!0), x.Chat.Picker.ha("smiley")) : x.Chat.Picker.ba()
                        } catch (t) {}
                    }), t.on("click", function(t) {
                        try {
                            var i, n, e, s, c = t.target ? x.Library.dom(t.target) : null,
                                a = c ? c.attr("data-value") : null;
                            a && (s = void 0, n = x.Chat.Selector.get("form_textarea_message"), e = n[0].selectionStart, (s = x.Action.get_message_text()) && (0 < e && " " !== s[e - 1] && (a = " " + a), e < s.length && " " !== s[e] && (a += " ")), i = s.substr(0, e) + a + s.substr(e), x.Action.set_message_text(i), n.trigger("keyup"), x.Utility.set_timeout(function() {
                                e += a.length, n[0].selectionStart = n[0].selectionEnd = e
                            }, 0)), x.Chat.Picker.ba(), x.Chat.Field.Xc()
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(t);
                    for (var i = 0; i < t.length; i++) t[i].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, m.prototype.Ma = function() {
                var t = this;
                try {
                    var i = x.Chat.Selector.get("pickers_gif").find(".cc-1k8e") || [];
                    x.Chat.Selector.get("pickers_search_input").on("keyup", function() {
                        try {
                            null !== t.ja && x.Utility.clear_timeout(t.ja), t.ja = x.Utility.set_timeout(function() {
                                var t = x.Chat.Selector.get("pickers_search_input").val().trim();
                                x.Chat.Picker.Fa(t)
                            }, t.jr)
                        } catch (t) {}
                    }), 0 < i.length && (i.on("click", function() {
                        try {
                            x.Chat.Picker.Fa()
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(i), i[0].onclick = function() {
                        return !1
                    })
                } catch (t) {}
            }, m.prototype.Na = function() {
                try {
                    x.Chat.Selector.get("alerts_warn_reply").on("click", function() {
                        try {
                            !0 === x.Base.D.chat.phone_visitors && !0 !== x.Base.D.chat.email_visitors ? x.Chat.Intent.Et("identity", "phone") : x.Chat.Intent.Et("identity", "email")
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(x.Chat.Selector.get("alerts_warn_reply")), x.Chat.Selector.get("alerts_warn_reply")[0].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, m.prototype.Oa = function() {
                try {
                    x.Chat.Selector.get("alerts_email_invalid").on("click", function() {
                        try {
                            x.Chat.Intent.Et("identity", "email", !0)
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(x.Chat.Selector.get("alerts_email_invalid")), x.Chat.Selector.get("alerts_email_invalid")[0].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, m.prototype.$a = function() {
                try {
                    function i() {
                        x.Event.trigger_interacted(!0), x.Chat.Message.send()
                    }
                    var t = x.Chat.Selector.get("form_textarea_message");
                    t.on("keydown", function(t) {
                        try {
                            if (13 === t.keyCode && !t.shiftKey) return i(), !1;
                            if (70 === t.keyCode && t.ctrlKey && x.Base.D.channels.helpdesk && x.Base.re !== x.Base.D.channels.helpdesk) return x.Action.do_helpdesk_search(), !1;
                            x.Event.trigger_interacted()
                        } catch (t) {}
                    }), x.Chat.Selector.get("form_button_send").on("click", function() {
                        try {
                            i()
                        } catch (t) {} finally {
                            return !1
                        }
                    }), this.Za(x.Chat.Selector.get("form_button_send")), t[0].onkeydown = function(t) {
                        if (t.stopPropagation(), 13 === t.keyCode && !t.shiftKey) return !1
                    }, x.Chat.Selector.get("form_message")[0].onsubmit = function() {
                        return !1
                    }, x.Chat.Selector.get("form_button_send")[0].onclick = function() {
                        return !1
                    }
                } catch (t) {}
            }, m.prototype.Ta = function() {
                var c = this;
                try {
                    function i(t) {
                        try {
                            var i, n, e, s;
                            _textarea_val = "", null !== t && 13 === t.keyCode && !t.shiftKey || (_textarea_val = x.Action.get_message_text(), o(), _textarea_val ? (i = 8.5 * _textarea_val.length / x.Chat.Interface.qr, i += (_textarea_val.match(c.zr) || []).length, ((n = Math.ceil(i)) - i < c.Er || n !== a) && (a = i = n, e = x.Chat.Interface.Cr - x.Chat.Interface.Sr + x.Chat.Interface.Sr * i, s = x.Chat.Interface.Sr * (i - 1), x.Chat.Selector.get("form_textarea_message").attr("rows", r + (i - 1)), e < x.Chat.Interface.Ar + x.Chat.Interface.Cr - c.Ir && (x.Chat.Field.Dr(s), x.Chat.Selector.get("form_container").safe_css_text("height", e + "px"))), x.Chat.Selector.get("form_container").attr("data-has-value", "true")) : (x.Chat.Selector.get("form_container").safe_css_text(null), x.Chat.Selector.get("form_container").attr("data-has-value", "false"), x.Chat.Selector.get("form_textarea_message").attr("rows", r), x.Chat.Field.Dr(0))), x.Library.crisp.client.Message.send_message_compose(_textarea_val ? "start" : "stop", _textarea_val || null)
                        } catch (t) {}
                    }
                    var a = 1,
                        t = null,
                        r = parseInt(x.Chat.Selector.get("form_textarea_message").attr("rows"), 10),
                        o = function() {
                            null !== t && x.Utility.clear_timeout(t), t = x.Utility.set_timeout(function() {
                                x.Chat.State.propagate("textarea", x.Action.get_message_text())
                            }, c.Br)
                        };
                    x.Chat.Selector.get("form_textarea_message").on("keypress", function(t) {
                        try {
                            i(t)
                        } catch (t) {}
                    }), x.Chat.Selector.get("form_textarea_message").on("keyup", function(t) {
                        try {
                            i(t)
                        } catch (t) {}
                    }), x.Chat.Selector.get("form_textarea_message").on("paste", function() {
                        try {
                            x.Utility.set_timeout(function() {
                                i(null)
                            }, 0)
                        } catch (t) {}
                    })
                } catch (t) {}
            }, m.prototype.La = function() {
                var i, n = this;
                try {
                    !0 === x.Base.D.chat.file_transfer && (i = function(t) {
                        t.preventDefault(), t.stopPropagation()
                    }, x.Chat.Selector.get("content").on("dragover", function(t) {
                        i(t), x.Chat.Selector.get("content").attr("data-has-drop-zone", "true")
                    }), x.Chat.Selector.get("drop_over").on("dragleave", function(t) {
                        i(t), x.Chat.Selector.get("content").removeAttr("data-has-drop-zone")
                    }), x.Chat.Selector.get("drop_over").on("drop", function(t) {
                        return i(t), x.Chat.Selector.get("content").removeAttr("data-has-drop-zone"), t.dataTransfer && t.dataTransfer.files && 0 < t.dataTransfer.files.length && n.Ur(t.dataTransfer.files), !1
                    }))
                } catch (t) {}
            }, m.prototype.Pa = function() {
                var c = this;
                try {
                    !0 === x.Base.D.chat.file_transfer && x.Chat.Selector.get("form_textarea_message").on("paste", function(t) {
                        try {
                            var i = (t.clipboardData || t.originalEvent.clipboardData || {}).items || [];
                            if (0 < i.length) {
                                for (var n, e = [], s = 0; s < i.length; s++) "file" !== i[s].kind || (n = i[s].getAsFile()) && n.type && -1 !== n.type.indexOf("image/") && e.push(n);
                                0 < e.length && (t.preventDefault(), !0 === confirm(x.Locale.text("chat", "chat_form_attach_confirm_upload")) && c.Ur(e))
                            }
                        } catch (t) {}
                    })
                } catch (t) {}
            }, m.prototype.Ja = function() {
                var o = this;
                try {
                    !0 === x.Base.D.chat.file_transfer && x.Chat.Selector.get("form_message").on("event:attach", function() {
                        try {
                            function t() {
                                0 < o.Rr.length && s && x.Utility.set_timeout(function() {
                                    x.Action.do_message_send("file", {
                                        url: s,
                                        name: o.Rr[0].name || o.Mr,
                                        type: o.Rr[0].type || o.Nr
                                    }), c()
                                }, o.Or)
                            }

                            function i() {
                                0 < o.Rr.length && alert(x.Locale.text("chat", "chat_form_attach_alert_error")), c()
                            }

                            function n(t) {
                                x.Chat.Selector.get("form_button_attach").attr("data-state", "uploading")
                            }
                            var e = void 0,
                                s = void 0,
                                c = function() {
                                    e && (e.removeEventListener("progress", n, !1), e.removeEventListener("error", i, !1), e.removeEventListener("abort", i, !1), e.removeEventListener("load", t, !1)), x.Chat.Selector.get("form_input_attach")[0].value = null, x.Chat.Selector.get("form_button_attach").attr("data-state", "none"), o.Rr.shift(), 0 < o.Rr.length && o.Ur(o.Rr)
                                },
                                a = x.Chat.Selector.get("form_message").attr("data-action"),
                                s = x.Chat.Selector.get("form_message").attr("data-resource"),
                                r = parseInt(x.Chat.Selector.get("form_message").attr("data-size-limit"), 10);
                            if (!o.Rr[0]) return void c();
                            if (!a || !s) return alert(x.Locale.text("chat", "chat_form_attach_alert_quota")), void c();
                            if (o.Rr[0].size >= r) return alert(x.Locale.text("chat", "chat_form_attach_alert_size")), void c();
                            (e = new XMLHttpRequest).file = o.Rr[0], e.addEventListener("progress", n, !1), e.addEventListener("error", i, !1), e.addEventListener("abort", i, !1), e.addEventListener("load", t, !1), e.open("PUT", a, !0), e.setRequestHeader("Content-Disposition", "attachment"), e.send(o.Rr[0])
                        } catch (t) {} finally {
                            return !1
                        }
                    })
                } catch (t) {}
            }, m.prototype.Ha = function() {
                var i = this;
                try {
                    !0 === x.Base.D.chat.file_transfer && x.Chat.Selector.get("form_input_attach").on("change", function(t) {
                        return !!(t.target.files && 0 < t.target.files.length) && (x.Event.trigger_interacted(!0), i.Ur(t.target.files))
                    })
                } catch (t) {}
            }, m.prototype.Wa = function() {
                try {
                    x.Utility.add_event_listener(this.ns, "document", "wheel", function(t) {
                        try {
                            var i, n, e = t.target ? x.Library.dom(t.target) : null;
                            e && "number" == typeof t.wheelDelta && !0 === x.Action.is_chat_opened() && (0 < e.parents(".crisp-client").length || e.is(".crisp-client")) && ((i = x.Chat.Selector.get("flow")) && i[0] && (0 < e.parents(".cc-1v5j").length || e.is(".cc-1v5j")) && (n = i[0].scrollTop - t.wheelDelta, i[0].scrollTop = 0 <= n ? n : 0), t.stopPropagation(), t.preventDefault(), t.returnValue = !1)
                        } catch (t) {}
                    }, {
                        passive: !1
                    })
                } catch (t) {}
            }, m.prototype.Ga = function() {
                try {
                    x.Utility.add_event_listener(this.ns, "window", "beforeunload", function(t) {
                        var i, n = null;
                        if (!0 === x.Library.crisp.client.Message.is_sending_messages() && (n = x.Locale.text("chat", "chat_message_send_abort_warn")), !0 === x.Base.D.chat.file_transfer && (i = x.Chat.Selector.get("form_button_attach").attr("data-state"), -1 !== ["preparing", "uploading"].indexOf(i) && (n = x.Locale.text("chat", "chat_form_attach_abort_warn"))), n = !0 === x.Library.crisp.client.Call.is_ongoing() ? x.Locale.text("call", "call_abort_warn") : n) return t.returnValue = n
                    })
                } catch (t) {}
            }, m.prototype.Za = function(t) {
                try {
                    t.on("touchstart", function(t) {
                        try {
                            t.preventDefault()
                        } catch (t) {}
                    }), t.on("touchend", function(t) {
                        try {
                            t.preventDefault(), t.target && "function" == typeof t.target.click && t.target.click()
                        } catch (t) {}
                    })
                } catch (t) {}
            }, m.prototype.Ur = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
                try {
                    if (!0 === x.Chat.Message.sr()) {
                        var i = x.Chat.Selector.get("form_button_attach").attr("data-state");
                        if (0 < t.length && "none" === i) {
                            this.Rr = [];
                            for (var n = 0; n < t.length; n++) this.Rr.push(t[n]);
                            x.Chat.Selector.get("form_button_attach").attr("data-state", "preparing"), x.Library.crisp.client.Bucket.get_url_upload(t[0].name || this.Mr, t[0].type || this.Nr)
                        }
                    }
                } catch (t) {} finally {
                    return !1
                }
            }, m.prototype.n = function() {
                try {
                    this.Rr = [], this.ja = null
                } catch (t) {}
            }, new m), x.Chat.Field = (y.prototype.init = function() {}, y.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, y.prototype.Xc = function() {
                var t, i, n, e = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                try {
                    !0 !== e && x.Feature.has_screen_touch() || !x.Chat.Interface.$r() || (t = x.Chat.Selector.get("flow_messages")) && (n = null, (n = 0 < (i = t.find(".cc-1t9k")).length ? i : !0 === x.Chat.Picker.ga() ? x.Chat.Selector.get("pickers_search_input") : x.Chat.Selector.get("form_textarea_message")) && 0 < n.length && n[0].focus())
                } catch (t) {}
            }, y.prototype.Tr = function() {
                try {
                    for (var t = x.Base.K.find("input"), i = 0; i < t.length; i++) t[i].blur()
                } catch (t) {}
            }, y.prototype.Dr = function(t) {
                try {
                    x.Chat.Selector.gr.find([".cc-1pvj", ".cc-1mtf", ".cc-1tha"].join(", ")).safe_css_text("margin-bottom", t + "px")
                } catch (t) {}
            }, y.prototype.n = function() {
                try {
                    this.Lr = ""
                } catch (t) {}
            }, new y), x.Chat.Game = (v.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, v.prototype.start = function() {
                try {
                    null === this.Pr && (this.Pr = x.Library.dom(x.Template.render("chat_game", {
                        environment: {
                            url: {
                                crisp_game: x.Base.zs
                            }
                        }
                    })), x.Chat.Event.ar(this.Pr), x.Chat.Selector.gr.append(this.Pr))
                } catch (t) {}
            }, v.prototype.stop = function() {
                try {
                    null !== this.Pr && (this.Pr.remove(), this.Pr = null)
                } catch (t) {}
            }, v.prototype.n = function() {
                try {
                    this.Pr = null
                } catch (t) {}
            }, new v), x.Chat.Interface = (d.prototype.init = function() {
                try {
                    this.Jr()
                } catch (t) {}
            }, d.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, d.prototype.Hr = function() {
                var e = this,
                    t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "pane",
                    i = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1];
                try {
                    function n(t) {
                        var i = "close" === t ? "maximize" : "minimize",
                            n = "close" === t ? "minimize" : "maximize";
                        null !== e.Wr && x.Utility.clear_timeout(e.Wr), x.Chat.Selector.Ac && (x.Chat.Selector.Ac.removeClass(e.Gr.minimized[i]), x.Chat.Selector.Ac.addClass(e.Gr.minimized[n])), x.Chat.Selector.Vr && (x.Chat.Selector.Vr.removeClass(e.Gr.shade[i]), x.Chat.Selector.Vr.addClass(e.Gr.shade[n])), x.Chat.Selector.gr && (x.Chat.Selector.gr.removeClass(e.Gr.chat[i]), x.Chat.Selector.gr.addClass(e.Gr.chat[n])), e.Wr = x.Utility.set_timeout(function() {
                            c(t)
                        }, e.Kr)
                    }
                    var s = "chat" === t ? "true" : "false",
                        c = function(t) {
                            var i = !(t && "close" !== t);
                            1 == !(t && "open" !== t) && (x.Chat.Selector.Ac && (x.Chat.Selector.Ac.attr("data-maximized", "true"), x.Chat.Selector.Ac.removeClass(e.Gr.minimized.maximize)), x.Chat.Selector.Vr && x.Chat.Selector.Vr.removeClass(e.Gr.shade.maximize), x.Chat.Selector.gr && x.Chat.Selector.gr.removeClass(e.Gr.chat.maximize)), 1 == i && (x.Chat.Selector.Vr && x.Chat.Selector.Vr.attr("data-visible", "false"), x.Chat.Selector.gr && x.Chat.Selector.gr.attr("data-visible", "false"), x.Chat.Selector.Ac && x.Chat.Selector.Ac.removeClass(e.Gr.minimized.minimize), x.Chat.Selector.Vr && x.Chat.Selector.Vr.removeClass(e.Gr.shade.minimize), x.Chat.Selector.gr && x.Chat.Selector.gr.removeClass(e.Gr.chat.minimize))
                        };
                    this.ht = "pane" !== t, this.Xr(), this.Yr("true" == s), !0 === i && x.Feature.has_css_animations() ? "pane" === t ? (x.Chat.Selector.Ac && x.Chat.Selector.Ac.attr("data-maximized", s), n("close")) : (x.Chat.Selector.Vr && x.Chat.Selector.Vr.attr("data-visible", s), x.Chat.Selector.gr && x.Chat.Selector.gr.attr("data-visible", s), n("open")) : (c(), x.Chat.Selector.Vr && x.Chat.Selector.Vr.attr("data-visible", s), x.Chat.Selector.gr && x.Chat.Selector.gr.attr("data-visible", s), x.Chat.Selector.Ac && x.Chat.Selector.Ac.attr("data-maximized", s))
                } catch (t) {}
            }, d.prototype.Bn = function() {
                var n = this,
                    e = 0 < arguments.length && void 0 !== arguments[0] && arguments[0],
                    s = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    null !== this.Zr && x.Utility.clear_timeout(this.Zr), this.Zr = x.Utility.set_timeout(function() {
                        n.Zr = null, !1 === e ? x.Chat.Selector.get("content").attr("data-has-offline", "true") : x.Chat.Selector.get("content").removeAttr("data-has-offline");
                        var t, i = {
                            failed: s,
                            inactive: x.Event.ze || x.Event.Ee || !1
                        };
                        for (t in i) !0 === i[t] ? x.Chat.Selector.get("offline").attr("data-reconnect-" + t, "true") : x.Chat.Selector.get("offline").removeAttr("data-reconnect-" + t)
                    }, !0 === e ? 0 : this.Qr)
                } catch (t) {}
            }, d.prototype.V = function() {
                try {
                    !0 !== x.Base.Ms.lock_maximized && x.Chat.State.propagate("maximized", !1)
                } catch (t) {}
            }, d.prototype.W = function() {
                try {
                    x.Chat.State.propagate("maximized", !0, !1, function() {
                        x.Chat.Scroll.Fr()
                    })
                } catch (t) {}
            }, d.prototype.$r = function() {
                var t = !0;
                try {
                    t = this.ht
                } catch (t) {} finally {
                    return t
                }
            }, d.prototype.Kc = function() {
                try {
                    var t = x.Base.D || {},
                        i = t.website || {};
                    x.Chat.Selector.Oc = x.Library.dom(x.Template.render("chat", {
                        activity: {
                            metrics: i.response_metrics && i.response_metrics.mean && i.response_metrics.mean >= this.no && i.response_metrics.mean < this.eo ? {
                                format: x.Utility.lower_string_first(x.Date.format_duration(i.response_metrics.mean, !1)),
                                raw: i.response_metrics.mean
                            } : null,
                            last: i.last_available && 0 < i.last_available ? {
                                format: x.Utility.lower_string_first(x.Date.format_date(x.Date.timestamp_to_iso(i.last_available))),
                                raw: x.Date.timestamp_to_iso(i.last_available)
                            } : null
                        },
                        configuration: t,
                        environment: {
                            smileys: this.so,
                            url: {
                                crisp_web: x.Base.js
                            }
                        },
                        methods: {
                            active_operators: x.Avatar.active_operators.d(x.Avatar),
                            count_other_operators: x.Avatar.count_other_operators.d(x.Avatar),
                            generate_channel_link: this.U.d(this)
                        },
                        website: {
                            id: x.Base.Re,
                            domain: x.Base.D.website.domain,
                            name: x.Base.D.website.name
                        },
                        chatbox: {
                            blocked: x.Base.nc(),
                            runtime: x.Base.Ms,
                            helpdesk: {
                                search: x.Base.D.chat.helpdesk_link && x.Base.D.channels.helpdesk && x.Base.re !== x.Base.D.channels.helpdesk && !0
                            }
                        },
                        status: {
                            url: this.U("status")
                        }
                    })), x.Base.K.empty(), x.Base.K.append(x.Chat.Selector.Oc), x.Chat.Selector.$c(), x.Chat.Event.$c(), this.X(!0), this.co(), x.Chat.State.ao(["intent"])
                } catch (t) {}
            }, d.prototype.U = function(t) {
                var i = "";
                try {
                    var n = x.Base.D.channels[t] || null;
                    switch (t) {
                        case "email":
                            var e, s, c = x.Broker.Nn;
                            c ? (e = x.Base.D.website.name, s = "s." + c + ".i@" + x.Base.D.website.mailer, i = "mailto:", e && (i += '"' + encodeURI(e) + '"'), i += "<" + encodeURI(s) + ">") : n && (i = "mailto:" + n);
                            break;
                        case "phone":
                            n && (i = "tel:" + n);
                            break;
                        case "messenger":
                            n && (i = "https://m.me/" + encodeURI(n));
                            break;
                        case "telegram":
                            n && (i = "https://telegram.me/" + encodeURI(n));
                            break;
                        case "twitter":
                            n && (i = "https://twitter.com/" + encodeURI(n));
                            break;
                        case "helpdesk":
                        case "status":
                            n && (i = ("production" === x.Base.Es ? "https" : "http") + "://" + n + "/")
                    }
                } catch (t) {} finally {
                    return i
                }
            }, d.prototype.X = function() {
                var t, i, n, e, s, c = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                try {
                    !0 === x.Action.is_chat_visible() && (!0 === x.Base.Vs() ? (this.ro = this.oo, this.ho = this.uo) : !0 === x.Base.Gs() ? (this.ro = this.lo, this.ho = this.fo) : (this.ro = this.po, this.ho = this.vo), x.Base.xe(), !0 === x.Base.ut() && (this.ro = window.innerHeight, this.ho = window.innerWidth, this.ro -= x.Chat.Selector.get("header").height()), !0 !== x.Chat.H && !0 !== c || (t = "rtl" === x.Locale.direction() ? "right" : "left", i = "rtl" === x.Locale.direction() ? "left" : "right", n = parseInt(x.Chat.Selector.get("form_textarea_message").css(t).replace("px", ""), 10), e = parseInt(x.Chat.Selector.get("form_act").css(i).replace("px", ""), 10), s = this.ho - this.yo - n - e - x.Chat.Selector.get("form_act")[0].offsetWidth, x.Chat.Selector.gr.safe_css_text("width", this.ho + "px"), x.Chat.Selector.get("content").safe_css_text("height", this.ro + "px"), x.Chat.Selector.get("form_textarea_message").safe_css_text("width", s + "px"), this.Ar = x.Chat.Selector.get("flow").height(), this.qr = x.Chat.Selector.get("form_textarea_message").width(), 0 === this.Cr && (this.Cr = x.Chat.Selector.get("form_container").height()), 0 === this.Sr && (this.Sr = parseInt(x.Chat.Selector.get("form_textarea_message").css("line-height").replace("px", ""), 10)), x.Chat.Scroll.mo = this.Ar, x.Base.ut() && !0 === this.$r() ? x.Chat.Viewport._o() : x.Chat.Viewport.go(), x.Chat.Selector.get("form_textarea_message").trigger("keyup")), x.Sound.allow(!x.Base.ut() || !x.Feature.has_screen_touch()))
                } catch (t) {}
            }, d.prototype.wo = function() {
                try {
                    return this.bo && this.$r() && !0
                } catch (t) {}
            }, d.prototype.Z = function(t, i) {
                var n = !1;
                try {
                    var e, s, c = this.U("helpdesk");
                    c && (n = !0, e = x.Base.K.find(".cc-k0ox"), s = x.Library.dom(x.Template.render("article", {
                        frame: {
                            url: "" + c + t + "/article/" + i
                        }
                    })), x.Chat.Event.rr(s), 0 === e.length ? x.Base.K.append(s) : e[0].parentNode.replaceChild(s[0], e[0]), x.Utility.set_timeout(function() {
                        s[0].focus()
                    }, this.ko))
                } catch (t) {} finally {
                    return n
                }
            }, d.prototype.Y = function() {
                var i = this,
                    t = !1;
                try {
                    var n = this.U("helpdesk");
                    n && (t = !0, null === this.hr && (this.hr = x.Library.dom(x.Template.render("spotlight", {
                        url: n
                    })), x.Chat.Event.or(this.hr), x.Base.K.append(this.hr), x.Action.do_helpdesk_query(""), x.Utility.set_timeout(function() {
                        var t = i.hr.find(".cc-tdrg");
                        t && t[0] && t[0].focus()
                    }, this.xo)))
                } catch (t) {} finally {
                    return t
                }
            }, d.prototype.Ya = function(t, i) {
                var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null,
                    e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
                try {
                    var s = x.Base.K.find(".cc-1nn0"),
                        c = x.Chat.Message.Fo(-1 !== this.jo.indexOf(t) ? e : null),
                        a = x.Library.dom(x.Template.render("magnify", {
                            type: t,
                            source: i,
                            name: n,
                            fingerprints: c
                        }));
                    x.Chat.Event._r(t, a, c), 0 === s.length ? x.Base.K.append(a) : s[0].parentNode.replaceChild(a[0], s[0]), x.Utility.set_timeout(function() {
                        a[0].focus()
                    }, this.qo)
                } catch (t) {}
            }, d.prototype.vr = function(t, i) {
                try {
                    var n = (t.find(".cc-4wnb").text() || "").trim();
                    n && (i.val("" + (i.val() || "") + n), this.ce([]))
                } catch (t) {}
            }, d.prototype.dr = function(t) {
                try {
                    var i = t.find(".cc-1h5e[data-active='true']");
                    i && 0 < i.length && i[0].click()
                } catch (t) {}
            }, d.prototype.pr = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 1;
                try {
                    var n = t.find(".cc-1h5e") || [];
                    if (0 < n.length) {
                        for (var e = -1, s = 0; s < n.length; s++)
                            if ("true" === x.Library.dom(n[s]).attr("data-active")) {
                                e = s;
                                break
                            }(e += i) < 0 ? e = n.length - 1 : e >= n.length && (e = 0), -1 < e && this.mr(t, n[e], !0)
                    }
                } catch (t) {}
            }, d.prototype.mr = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null,
                    n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2];
                try {
                    t.find(".cc-1h5e").attr("data-active", "false"), null !== i && x.Library.dom(i).attr("data-active", !0 === n ? "true" : "false")
                } catch (t) {}
            }, d.prototype.se = function() {
                var t, i, n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [],
                    e = this,
                    s = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},
                    c = !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2];
                try {
                    null !== this.hr && ((t = this.hr.find(".cc-1u0c")) && t.remove(), !0 === c && (i = x.Library.dom(x.Template.render("spotlight_results", {
                        base_url: this.U("helpdesk"),
                        results: n,
                        has_active: !x.Feature.has_screen_touch() && !0
                    })), this.hr.find(".cc-16io").prepend(i), x.Chat.Event.yr(this.hr)), null !== this.ur && x.Utility.clear_timeout(this.ur), s.query && (this.ur = x.Utility.set_timeout(function() {
                        e.ur = null;
                        var t = (s.query || "").trim(),
                            i = s.locale || null;
                        (i = n[0] && n[0].locale ? n[0].locale : i) && t && x.Library.crisp.client.Helpdesk.report_article_search(i, t)
                    }, this.zo)), this.hr.attr("data-state", "loaded"), this.hr.attr("data-has-results", !0 === c ? "true" : "false"))
                } catch (t) {}
            }, d.prototype.ce = function() {
                var t, i, n, e, s, c, a, r, o = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
                try {
                    null !== this.hr && (t = this.hr.find(".cc-4wnb"), i = (o[0] || "").toLowerCase(), e = n = null, !i || (s = (e = this.hr.find(".cc-tdrg").val() || "").substring(e.lastIndexOf(" ") + 1).trim().toLowerCase()) && s.length < i.length && i.substring(0, s.length) === s && (n = i.substring(s.length)), n && e ? ((a = this.hr.find(".cc-16kz")).text(e), t.text(n), r = "rtl" === x.Locale.direction() ? "right" : "left", t.safe_css_text((h(c = {}, r, a[0].offsetWidth + "px"), h(c, "display", "block"), c))) : (t.safe_css_text("display", "none"), t.empty()))
                } catch (t) {}
            }, d.prototype.Yr = function() {
                var t = this,
                    i = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                try {
                    null !== this.Eo && (x.Utility.clear_timeout(this.Eo), this.Eo = null), !0 === x.Base.ut() && window.scroll && (!0 === i ? !0 === x.Base.ut() && (this.Eo = x.Utility.set_timeout(function() {
                        !(t.Eo = null) === t.$r() && (-1 === t.Co && (t.Co = window.scrollY), window.scroll(window.scrollX, document.body.scrollHeight))
                    }, this.So)) : -1 < this.Co && (window.scroll(window.scrollX, this.Co), this.Co = -1))
                } catch (t) {}
            }, d.prototype.Xr = function() {
                try {
                    var t = this.wo();
                    x.Library.crisp.client.Message.set_messages_in_view(t)
                } catch (t) {}
            }, d.prototype.Jr = function() {
                var t = this;
                try {
                    this.bo = (!window.hasFocus || window.hasFocus()) && !0, x.Utility.add_event_listener(this.ns, "window", "focus", function() {
                        t.bo = !0, t.Xr()
                    }, {
                        capture: !1
                    }), x.Utility.add_event_listener(this.ns, "window", "blur", function() {
                        t.bo = !1, t.Xr()
                    }, {
                        capture: !1
                    })
                } catch (t) {}
            }, d.prototype.co = function() {
                try {
                    this.ht = !1, x.Chat.Selector.Vr.attr("data-visible", "false"), x.Chat.Selector.gr.attr("data-visible", "false")
                } catch (t) {}
            }, d.prototype.n = function() {
                try {
                    this.ht = !0, this.Ar = 0, this.Cr = 0, this.qr = 0, this.Sr = 0, this.Ao = 40, this.hr = null, this.ur = null, this.Zr = null, this.Wr = null, this.ho = 0, this.ro = 0, this.Co = -1, this.Eo = null, this.bo = !0
                } catch (t) {}
            }, new d), p = function(t, i) {
                if (Array.isArray(t)) return t;
                if (Symbol.iterator in Object(t)) return function(t, i) {
                    var n = [],
                        e = !0,
                        s = !1,
                        c = void 0;
                    try {
                        for (var a, r = t[Symbol.iterator](); !(e = (a = r.next()).done) && (n.push(a.value), !i || n.length !== i); e = !0);
                    } catch (t) {
                        s = !0, c = t
                    } finally {
                        try {
                            !e && r.return && r.return()
                        } finally {
                            if (s) throw c
                        }
                    }
                    return n
                }(t, i);
                throw new TypeError("Invalid attempt to destructure non-iterable instance")
            }, x.Chat.Message = (f.prototype.init = function() {
                try {
                    this.Io()
                } catch (t) {}
            }, f.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, f.prototype.send = function() {
                var t;
                try {
                    !0 !== this.sr() || (t = (t = x.Action.get_message_text()).trim()) && (x.Action.do_message_send("text", t), x.Action.set_message_text(""), x.Chat.Selector.get("form_textarea_message").trigger("keyup"))
                } catch (t) {}
            }, f.prototype.received = function(t) {
                var i = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1],
                    n = !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2],
                    e = !(3 < arguments.length && void 0 !== arguments[3]) || arguments[3],
                    s = 4 < arguments.length && void 0 !== arguments[4] && arguments[4];
                try {
                    var c = this.ka("from", t),
                        a = p(c, 2),
                        r = a[0],
                        o = a[1];
                    !0 === i && !1 === x.Chat.Interface.wo() && x.Sound.start("events", "chat-message-receive"), !0 === e && x.Chat.Scroll.Do("from"), !0 === n && !1 === o && this.Bo(r), t.user && -1 === this.Uo.indexOf(t.user.source) && x.Chat.Misc.Ro(t.user), !1 === s && x.Chat.Game.stop(), this.Mo && 0 < t.timestamp && this.Mo < t.timestamp && this.Xn()
                } catch (t) {}
            }, f.prototype.sent = function(t) {
                var i = this;
                try {
                    var n, e, s, c, a = this.ka("to", t),
                        r = p(a, 2),
                        o = r[0],
                        h = r[1];
                    x.Chat.Scroll.Do("to"), !1 === h && this.Bo(o), this.No(t.fingerprint), x.Chat.Event.er(o, t), x.Chat.Intent.Yc.identity || !1 === x.Chat.Intent.Yc.identity || (n = x.Action.get_user_email(), e = x.Action.get_user_phone(), s = x.Base.D.chat.email_visitors, c = x.Base.D.chat.phone_visitors, (n || !0 !== s) && (e || !0 !== c) || n || e ? x.Chat.Alert.Et("wait_reply", "show") : (null !== this.Oo && x.Utility.clear_timeout(this.Oo), this.Oo = x.Utility.set_timeout(function() {
                        i.Oo = null;
                        var t = "default";
                        !1 === (s && c) && (!0 === s ? t = "email" : !0 === c && (t = "phone")), x.Chat.Intent.Et("identity", t), x.Chat.Alert.Et("warn_reply", "show")
                    }, this.$o)))
                } catch (t) {}
            }, f.prototype.sent_acknowledgement = function(t) {
                try {
                    var i = this.To.indexOf(t.fingerprint); - 1 !== i && this.To.splice(i, 1), this.ka("to", t), this.Lo(), x.Chat.Scroll.Do("to")
                } catch (t) {}
            }, f.prototype.received_from_history = function(t) {
                try {
                    this.ka("from", t), t.index.current === t.index.total && this.Po()
                } catch (t) {}
            }, f.prototype.sent_from_history = function(t) {
                try {
                    this.ka("to", t), !0 === t.read && this.Jo.push(t.fingerprint), t.index.current === t.index.total && this.Po()
                } catch (t) {}
            }, f.prototype.Ho = function() {
                try {
                    var t = x.Locale.text("theme_welcome", ["default_chat", x.Base.D.chat.theme_welcome + "_chat"], [x.Base.D.website.name]),
                        i = {
                            website: x.Base.D.channels.helpdesk,
                            url: null
                        };
                    i.website && !0 === x.Base.D.chat.helpdesk_link && x.Base.re !== i.website && (i.url = x.Chat.Interface.U("helpdesk")), this.Wo("welcome", "default", "text", t, !1, !1, i.website && i.url ? [{
                        variant: "helpdesk",
                        url: i.url,
                        website: i.website,
                        title: x.Locale.text("chat", "chat_welcome_helpdesk")
                    }] : [])
                } catch (t) {}
            }, f.prototype.fa = function() {
                var t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
                try {
                    for (var i = "**" + x.Locale.text("chat", "chat_message_text_identity_main") + "**\n_" + x.Locale.text("chat", "chat_message_text_identity_ask") + "_", n = [], e = 0; e < this.Go.length; e++) {
                        var s = this.Go[e];
                        !0 === x.Base.D.chat[s + "_visitors"] && n.push({
                            value: s,
                            selected: !1,
                            label: x.Locale.text("chat", "chat_message_text_identity_pick_" + s),
                            handler: function(t) {
                                return function() {
                                    x.Chat.Intent.Et("identity", t)
                                }
                            }(s)
                        })
                    }
                    0 < n.length && this.Wo("identity", "default", "picker", {
                        id: "ask-identity",
                        text: i,
                        choices: n
                    }, t, t)
                } catch (t) {}
            }, f.prototype.pa = function() {
                try {
                    this.Vo("identity")
                } catch (t) {}
            }, f.prototype.da = function(i) {
                var t, n, e = this,
                    s = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1];
                try {
                    -1 !== this.Go.indexOf(i) && (t = "chat_message_text_identity_ask_" + i, n = "chat_message_text_identity_ask_field_" + i, this.Wo("identity", i, "field", {
                        id: "identity-" + i,
                        text: "_" + x.Locale.text("chat", t) + "_",
                        explain: x.Locale.text("chat", n),
                        previous: "identity",
                        handler: function(t) {
                            try {
                                x.Action["set_user_" + i](t)
                            } catch (t) {}
                            x.Utility.set_timeout(function() {
                                x.Chat.Field.Xc()
                            }, e.Ko)
                        }
                    }, s, s))
                } catch (t) {}
            }, f.prototype.ya = function() {
                var t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
                try {
                    var i = "**" + x.Locale.text("chat", "chat_message_text_game_main") + "**\n_" + x.Locale.text("chat", "chat_message_text_game_ask") + "_";
                    this.Wo("game", "default", "picker", {
                        id: "ask-game",
                        text: i,
                        choices: [{
                            value: "play",
                            selected: !1,
                            label: x.Locale.text("chat", "chat_message_text_game_pick_yes"),
                            handler: function(t) {
                                x.Chat.Game.start(), x.Chat.Intent.Et("game", !1)
                            }
                        }, {
                            value: "ignore",
                            selected: !1,
                            label: x.Locale.text("chat", "chat_message_text_game_pick_no"),
                            handler: function(t) {
                                x.Chat.Intent.Et("game", !1)
                            }
                        }]
                    }, t, t)
                } catch (t) {}
            }, f.prototype.ma = function() {
                try {
                    this.Vo("game")
                } catch (t) {}
            }, f.prototype.Kn = function(t) {
                try {
                    var i = (x.Chat.Selector.gr ? x.Chat.Selector.gr.find(".cc-1deq") : null) || [];
                    this.Mo = t, 0 === i.length && (i = x.Library.dom(x.Template.render("chat_bubble_composing")), x.Chat.Selector.get("flow_events").append(i), x.Chat.Scroll.Do(null), this.Xo())
                } catch (t) {}
            }, f.prototype.Xn = function() {
                try {
                    var t = x.Chat.Selector.gr ? x.Chat.Selector.gr.find(".cc-1deq") : null;
                    this.Mo = null, t && 0 < t.length && t.remove()
                } catch (t) {}
            }, f.prototype.Vn = function(t) {
                try {
                    if (!0 !== x.Base.D.chat.operator_privacy) {
                        var i = null;
                        if (0 < t.length)
                            for (var n = x.Chat.Selector.get("flow_messages").find(".cc-b3wa"), e = n.length - 1; 0 <= e; e--) {
                                var s = n[e].getAttribute("data-fingerprint");
                                if (s && (isNaN(s) || (s = parseInt(s, 10)), -1 !== t.indexOf(s))) {
                                    i = s;
                                    break
                                }
                            } else {
                                var c = x.Chat.Selector.get("flow_messages").find('.cc-b3wa[data-from="visitor"]');
                                0 < c.length && (i = c.last().attr("data-fingerprint") || null)
                            }
                        null !== i && (x.Chat.Selector.get("flow_messages").find(".cc-k5zk").safe_css_text("display", "none"), x.Chat.Selector.get("flow_messages").find([".cc-b3wa", '[data-fingerprint="' + i + '"]'].join("")).find(".cc-k5zk").safe_css_text("display", "inline-block"))
                    }
                } catch (t) {}
            }, f.prototype.it = function() {
                var t = !1;
                try {
                    for (var i = [], n = x.Library.crisp.client.Message.get_cached_messages(), e = n.length - 1; 0 <= e && "local" === (n[e].user || {}).source; e--) i.push(n[e]);
                    for (var s = 0; s < i.length; s++) {
                        var c = i[s]; - 1 === this.Yo.indexOf(c.fingerprint) && (this.Yo.push(c.fingerprint), x.Library.crisp.client.Message.receive_message_mirror(c.type, this.Zo, c.content, c.fingerprint), t = !0)
                    }
                } catch (t) {} finally {
                    return t
                }
            }, f.prototype.st = function(t, i) {
                var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null,
                    e = 3 < arguments.length && void 0 !== arguments[3] && arguments[3];
                try {
                    var s = x.Base.D.website.active_operators || [],
                        c = {
                            source: "local"
                        };
                    s[0] && !0 !== e ? (c.user_id = s[0].user_id, c.nickname = s[0].nickname, s[0].avatar && (c.avatar = s[0].avatar)) : (c.type = "website", c.user_id = x.Base.Re, c.nickname = x.Base.D.website.name), x.Library.crisp.client.Message.receive_message_local(t, i, c, n)
                } catch (t) {}
            }, f.prototype.cr = function(t) {
                try {
                    var i, n = t.parents(".cc-w6n9");
                    (1 === n.find(".cc-b3wa").length ? 1 === (i = t.parents(".cc-7bf0")).find(".cc-w6n9").length ? i : n : t).remove()
                } catch (t) {}
            }, f.prototype.Gc = function() {
                try {
                    x.Chat.Message.Ho(), this.Tn()
                } catch (t) {}
            }, f.prototype.Tn = function() {
                try {
                    x.Library.crisp.client.Message.get_message_compose(), x.Library.crisp.client.Message.get_unread_messages(), x.Library.crisp.client.Message.get_message_history(), 0 === x.Library.crisp.client.Message.count_message_history() && this.Po()
                } catch (t) {}
            }, f.prototype.Fo = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null,
                    i = {
                        previous: null,
                        next: null
                    };
                try {
                    if (null !== t && !isNaN(t))
                        for (var n = parseInt(t, 10), e = x.Library.crisp.client.Message.get_cached_messages(), s = 0; s < e.length; s++)
                            if (e[s].fingerprint === n) {
                                if (0 < s)
                                    for (var c = s - 1; 0 <= c; c--) {
                                        var a = e[c];
                                        if (!0 === this.Qo(a)) {
                                            i.previous = a.fingerprint;
                                            break
                                        }
                                    }
                                if (s < e.length - 1)
                                    for (var r = s + 1; r < e.length; r++) {
                                        var o = e[r];
                                        if (!0 === this.Qo(o)) {
                                            i.next = o.fingerprint;
                                            break
                                        }
                                    }
                                break
                            }
                } catch (t) {} finally {
                    return i
                }
            }, f.prototype.sr = function() {
                var t = !0;
                try {
                    !0 !== x.Broker.In && (t = !1, x.Library.crisp.client.socket.connect())
                } catch (t) {} finally {
                    return t
                }
            }, f.prototype.sa = function() {
                try {
                    !0 === x.Base.D.chat.force_identify && (x.Chat.Selector.get("form_container").attr("data-is-locked", "true"), x.Chat.Selector.get("form_textarea_message").attr("disabled", !0))
                } catch (t) {}
            }, f.prototype.aa = function() {
                try {
                    var t = x.Chat.Selector.get("form_container");
                    "true" !== t.attr("data-retain-lock") && (t.removeAttr("data-is-locked"), x.Chat.Selector.get("form_textarea_message").removeAttr("disabled"))
                } catch (t) {}
            }, f.prototype.Xo = function() {
                var t = this;
                try {
                    this.Mo && (x.Date.timestamp() - this.Mo >= this.th ? this.Xn() : x.Utility.set_timeout(function() {
                        t.Xo()
                    }, this.ih))
                } catch (t) {}
            }, f.prototype.nh = function(t, i, n, e, s, c, a) {
                var r = this,
                    o = null,
                    h = !1;
                try {
                    var u = "from" === i ? "operator" : "visitor",
                        l = "operator" == u ? n.avatar || n.user_id : "session",
                        f = "",
                        d = "";
                    0 < s && (f = x.Date.timestamp_to_iso(s), d = x.Date.format_date(f));
                    var o = x.Library.dom(x.Template.render("chat_message_" + t, {
                            from: u,
                            user: n,
                            content: e,
                            date_iso: f,
                            date_formatted: d,
                            fingerprint: c,
                            metas: a,
                            configuration: x.Base.D,
                            format_context: {
                                methods: {
                                    filter_link_safe: x.Utility.filter_link_safe.d(x.Utility)
                                }
                            },
                            environment: {
                                types: {
                                    file_preview: this.eh
                                },
                                url: {
                                    crisp_image: x.Base.g
                                }
                            },
                            methods: {
                                image_url_resize: function(t) {
                                    return x.Utility.filter_image_url_resize(t, r.sh, r.ch)
                                }
                            }
                        })),
                        p = x.Chat.Selector.get("flow_messages").find([".cc-b3wa", '[data-fingerprint="' + c + '"]'].join(""));
                    if (0 === p.length) {
                        var v = x.Date.timestamp_to_properties(s),
                            y = x.Chat.Selector.get("flow_messages").children().last();
                        (!(0 < y.filter(".cc-7bf0").length) || "none" !== v.day && y.attr("data-day") !== v.day || "none" !== v.month && y.attr("data-month") !== v.month || "none" !== v.year && y.attr("data-year") !== v.year) && (y = x.Library.dom(x.Template.render("chat_bubble_thread", v)), x.Chat.Selector.get("flow_messages").append(y));
                        var m = y.find(".cc-12zj"),
                            _ = m.children().last();
                        0 < _.filter(".cc-w6n9").length && _.attr("data-from") === u && _.attr("data-user-marker") === l || (_ = x.Library.dom(x.Template.render("chat_bubble_group", {
                            from: u,
                            user_marker: l
                        })), m.append(_)), _.append(o), _.append(x.Template.render("clear")), x.Chat.Selector.Ao = o.height()
                    } else {
                        for (var g = 0; g < this.ah.length; g++) {
                            var w = this.ah[g],
                                b = p.find(w),
                                k = o.find(w);
                            k[0] && b[0] && b[0].parentNode.replaceChild(k[0], b[0])
                        }
                        p.attr("data-type", t), o = p, h = !0
                    }
                    this.rh(u, n, s)
                } catch (t) {} finally {
                    return [o, h]
                }
            }, f.prototype.rh = function(t, i, n) {
                try {
                    var e = "local" !== i.source && -1 === this.Uo.indexOf(i.source) && !0;
                    "operator" === t && (this.Mo && 0 < n && n > this.Mo && this.Xn(), 0 < n && 1 == e && (x.Chat.Alert.Et("wait_reply", "lock"), x.Chat.Intent.Et("game", !1))), 0 < n && (this.Ke = !0, this.cc = n, 1 == e && ("operator" === t ? this.ft = !0 : this.lt = !0), this.oh()), !1 === this.hh && "local" === i.source && (this.hh = !0, x.Base.K.attr("data-has-local-messages", "true"))
                } catch (t) {}
            }, f.prototype.oh = function() {
                try {
                    var t, i = !0 === this.Ke && !0 !== x.Base.ic();
                    this.uh !== i && (this.uh = i, x.Base.K.attr("data-is-activity-ongoing", !0 === this.uh ? "true" : "false"), "input" !== (t = ((document.activeElement || {}).tagName || "").toLowerCase()) && "textarea" !== t && x.Chat.Interface.X())
                } catch (t) {}
            }, f.prototype.Bo = function(t) {
                try {
                    x.Feature.has_css_animations() && (t.addClass("cc-18lb"), x.Utility.set_timeout(function() {
                        t.removeClass("cc-18lb")
                    }, this.lh))
                } catch (t) {}
            }, f.prototype.ka = function(t, i) {
                var n = null,
                    e = !1;
                try {
                    var s = !1,
                        c = {},
                        a = null;
                    switch (i.type) {
                        case "text":
                            i.content && (s = !0, c = {
                                preview: i.preview
                            }, a = function() {
                                x.Chat.Event.Xa(n)
                            });
                            break;
                        case "file":
                            i.content && i.content.url && (s = !0, a = function() {
                                x.Chat.Event.Qa(n)
                            });
                            break;
                        case "animation":
                            i.content && i.content.url && (s = !0);
                            break;
                        case "audio":
                            i.content && i.content.url && i.content.duration && (s = !0, c = {
                                duration: x.Date.format_time(i.content.duration)
                            }, a = function() {
                                x.Chat.Event.tr(n, i)
                            });
                            break;
                        case "picker":
                            i.content && i.content.id && i.content.text && 0 < (i.content.choices || []).length && (s = !0, c = {
                                has_selected: this.fh(i.content)
                            }, a = function() {
                                x.Chat.Event.ir(n, t, i)
                            });
                            break;
                        case "field":
                            i.content && i.content.id && i.content.text && i.content.explain && (s = !0, a = function() {
                                x.Chat.Event.nr(n, i), x.Chat.Field.Xc(!0)
                            });
                            break;
                        default:
                            throw new Error("Got an unsupported message (with type: " + i.type + ")")
                    }
                    if (!0 !== s) throw new Error("Got an invalid " + type + " message, dropping it");
                    "to" === t && "participant" === (i.user || {}).type && (c.participant = !0), !0 === i.edited && (c.edited = !0), !0 === i.translated && (c.translated = !0);
                    var r = this.nh(i.type, t, i.user || {}, i.content, i.timestamp, i.fingerprint, c),
                        o = p(r, 2),
                        n = o[0],
                        e = o[1];
                    x.Chat.Event.Va(n), "welcome" === (i.user || {}).source && "helpdesk" === ((i.preview || [])[0] || {}).variant && x.Chat.Event.Ka(n), "function" == typeof a && a()
                } catch (t) {} finally {
                    return [n, e]
                }
            }, f.prototype.Po = function() {
                try {
                    0 < this.Jo.length && (this.Vn(this.Jo, !0), this.Jo = []), x.Chat.State.dh("intent"), x.Chat.State.dh("scroll"), this.Lo(!0)
                } catch (t) {}
            }, f.prototype.Io = function() {
                try {
                    x.Library.crisp.client.Message.set_unread_messages_callback(function(t, i, n) {
                        x.Utility.set_timeout(function() {
                            x.Chat.Notification.ph(t, i, n)
                        }, 0)
                    })
                } catch (t) {}
            }, f.prototype.No = function(n) {
                var e = this;
                try {
                    this.To.push(n), x.Utility.set_timeout(function() {
                        try {
                            var t, i = e.To.indexOf(n); - 1 === i || ((t = x.Chat.Selector.get("flow_messages").find([".cc-b3wa", '[data-fingerprint="' + n + '"]'].join(""))).find(".cc-1did").safe_css_text("display", "none"), t.find(".cc-pus6").safe_css_text("display", "block")), e.To.splice(i, 1)
                        } catch (t) {}
                    }, this.vh)
                } catch (t) {}
            }, f.prototype.Lo = function() {
                var t = this,
                    i = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                try {
                    x.Chat.Intent.Yc.game || !1 === x.Chat.Intent.Yc.game || !0 !== this.lt || !0 === this.ft || null === this.yh && (this.yh = x.Utility.set_timeout(function() {
                        try {
                            !(t.yh = null) !== t.ft && !0 === x.Base.D.chat.wait_game && x.Chat.Intent.Et("game")
                        } catch (t) {}
                    }, !0 === i ? this.mh : this._h))
                } catch (t) {}
            }, f.prototype.fh = function(t) {
                var i = !1;
                try {
                    for (var n = 0; n < t.choices.length; n++)
                        if (!0 === t.choices[n].selected) {
                            i = !0;
                            break
                        }
                } catch (t) {} finally {
                    return i
                }
            }, f.prototype.Wo = function(t, i, n, e) {
                var s = 4 < arguments.length && void 0 !== arguments[4] && arguments[4],
                    c = !(5 < arguments.length && void 0 !== arguments[5]) || arguments[5],
                    a = 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : [];
                try {
                    if (-1 === this.Uo.indexOf(t)) throw new Error("Source " + t + " not allowed");
                    this.gh[t] !== i && (this.gh[t] = i, this.received({
                        type: n,
                        timestamp: 0,
                        content: e,
                        fingerprint: "$" + t,
                        preview: a,
                        user: {
                            source: t,
                            type: "website",
                            user_id: x.Base.Re,
                            nickname: x.Base.D.website.name
                        }
                    }, !1, s, c, !0))
                } catch (t) {}
            }, f.prototype.Vo = function(t) {
                var i;
                try {
                    if (-1 === this.Uo.indexOf(t)) throw new Error("Source " + t + " not allowed");
                    this.gh[t] && (delete this.gh[t], (i = x.Chat.Selector.get("flow_messages").find([".cc-b3wa", '[data-fingerprint="$' + t + '"]'].join(""))) && 1 === i.length && this.cr(i))
                } catch (t) {}
            }, f.prototype.Qo = function(t) {
                var i = !1;
                try {
                    var n = (t.content || {}).type,
                        i = "file" === t.type && (-1 !== this.eh.image.indexOf(n) || -1 !== this.eh.video.indexOf(n)) && !0
                } catch (t) {} finally {
                    return i
                }
            }, f.prototype.n = function() {
                try {
                    this.Ke = !1, this.ft = !1, this.lt = !1, this.cc = 0, this.hh = !1, this.uh = !1, this.To = [], this.Jo = [], this.Yo = [], this.Oo = null, this.yh = null, this.Mo = null, this.gh = {}
                } catch (t) {}
            }, new f), x.Chat.Misc = (l.prototype.init = function() {}, l.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, l.prototype.Ro = function(t) {
                try {
                    x.Utility.is_equal(t, this.wh) || x.Chat.State.propagate("operator", t)
                } catch (t) {}
            }, l.prototype.n = function() {
                try {
                    this.wh = {}
                } catch (t) {}
            }, new l), x.Chat.Notification = (u.prototype.init = function() {}, u.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, u.prototype.ph = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0,
                    i = this,
                    n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [],
                    e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [];
                try {
                    var s, c, a = "cc-z74s";
                    0 < (this.pt = t) ? (x.Chat.Selector.get("pane_unread").text(t), s = "none" === x.Chat.Selector.get("tooltips_new_messages").css("display") && !0, c = this.bh(t, n, e, s), null === this.kh && (this.kh = document.title), this.kh && !0 !== x.Base.We() && (document.title = "💬" + t + " - " + this.kh), 1 == s && (x.Feature.has_css_animations() ? (null !== this.xh && x.Utility.clear_timeout(this.xh), this.xh = x.Utility.set_timeout(function() {
                        i.xh = null, x.Chat.Selector.get("tooltips_new_messages").safe_css_text("display", "block"), x.Chat.Selector.get("tooltips_new_messages").addClass(a), 0 < c.length && (x.Chat.Selector.Vr.attr("data-visible-subtle", "true"), !0 === x.Action.is_chat_closed() && x.Chat.Selector.Vr.addClass(x.Chat.Interface.Gr.shade.maximize)), x.Utility.set_timeout(function() {
                            x.Chat.Selector.Vr.removeClass(x.Chat.Interface.Gr.shade.maximize), x.Chat.Selector.get("tooltips_new_messages").removeClass(a)
                        }, i.Fh)
                    }, this.jh * this.Pt)) : (x.Chat.Selector.get("tooltips_new_messages").safe_css_text("display", "block"), 0 < c.length && x.Chat.Selector.Vr.attr("data-visible-subtle", "true")), x.Chat.Selector.get("pane_unread").safe_css_text("display", "block"))) : (null !== this.xh && x.Utility.clear_timeout(this.xh), x.Chat.Selector.get("tooltips_new_messages").removeClass(a), x.Chat.Selector.get("tooltips_new_messages").safe_css_text("display", "none"), x.Chat.Selector.get("pane_unread").safe_css_text("display", "none"), x.Chat.Selector.Vr.attr("data-visible-subtle", "false"), x.Chat.Selector.get("tooltips_extended_actions").safe_css_text("display", "none"), x.Chat.Selector.get("tooltips_extended_preview").empty(), this.kh && (document.title = this.kh))
                } catch (t) {}
            }, u.prototype.xr = function() {
                try {
                    var t = x.Chat.Selector.get("flow")[0].scrollTop,
                        i = x.Chat.Selector.get("flow")[0].scrollHeight;
                    x.Chat.Selector.get("flow")[0].clientHeight + t >= i - x.Chat.Interface.Ao && x.Chat.Alert.Et("new_messages", "hide")
                } catch (t) {}
            }, u.prototype.bh = function(t, i, n, e) {
                var s = [];
                try {
                    var c = null,
                        a = !1,
                        r = [];
                    x.Chat.Selector.get("tooltips_extended_actions").safe_css_text("display", "none"), x.Chat.Selector.get("tooltips_extended_preview").empty();
                    for (var o = n.length - 1; 0 <= o && !(-1 !== i.indexOf(n[o].fingerprint) && (s.unshift(n[o]), s.length >= this.qh)); o--);
                    for (var h = 0; h < s.length; h++) {
                        var u = x.Library.dom(x.Template.render("chat_preview_message", {
                            type: s[h].type,
                            from: s[h].from,
                            content: s[h].content,
                            user: s[h].user || {},
                            format_context: {
                                methods: {
                                    filter_link_safe: x.Utility.filter_link_safe.d(x.Utility)
                                }
                            },
                            environment: {
                                url: {
                                    crisp_image: x.Base.g
                                }
                            }
                        }));
                        0 < u.length && (a = !0, u.appendTo(x.Chat.Selector.get("tooltips_extended_preview")), null === (c = h === s.length - 1 && null === c ? s[h].fingerprint : c) && null !== this.zh || r.push(u))
                    }
                    if (!0 === a && x.Chat.Selector.get("tooltips_extended_actions").safe_css_text("display", "inline-block"), null !== c && (this.zh = c), x.Feature.has_css_animations() && 0 < r.length) {
                        for (var l = 0; l < r.length; l++) r[l].addClass("cc-1peb");
                        x.Utility.set_timeout(function() {
                            for (var t = 0; t < r.length; t++) r[t].removeClass("cc-1peb")
                        }, (!0 === e ? this.jh * this.Pt : 0) + this.Eh)
                    }
                } catch (t) {} finally {
                    return s
                }
            }, u.prototype.n = function() {
                try {
                    this.pt = 0, this.Pt = 1e3, this.jh = .1, this.xh = null, this.zh = null, this.kh = null, this.Fh = 500, this.Eh = 1e3
                } catch (t) {}
            }, new u), x.Chat.Scroll = (o.prototype.init = function() {}, o.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, o.prototype.Fr = function() {
                var t, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null;
                try {
                    null === i && (i = (t = x.Chat.Selector.get("flow")[0]).scrollHeight - t.clientHeight), x.Chat.State.propagate("scroll", i), x.Chat.Notification.xr()
                } catch (t) {}
            }, o.prototype.Do = function() {
                var t, i, n, e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "to",
                    s = !1;
                try {
                    !0 === x.Chat.Interface.$r() && (t = x.Chat.Selector.get("flow")[0].scrollTop, i = x.Chat.Selector.get("flow")[0].scrollHeight, n = x.Chat.Selector.get("flow")[0].clientHeight, (!t || n + t >= i - this.mo) && (s = !0, this.Fr()), !1 === s && "from" === e && !1 === x.Chat.Alert.Zc("warn_reply") && !1 === x.Chat.Alert.Zc("email_invalid") && !1 === x.Chat.Alert.Zc("wait_reply") && x.Chat.Alert.Et("new_messages", "show"))
                } catch (t) {} finally {
                    return s
                }
            }, o.prototype.n = function() {
                try {
                    this.mo = 0, this.wr = 0
                } catch (t) {}
            }, new o), x.Chat.Selector = (a.prototype.init = function() {}, a.prototype.reset = function() {
                try {
                    this.n(), this.Js()
                } catch (t) {}
            }, a.prototype.get = function(t) {
                var i = null;
                try {
                    if (void 0 !== this.Ch[t]) i = this.Ch[t];
                    else {
                        if (void 0 === this.Sh[t]) throw new Error("Selector with namespace " + t + " not found");
                        if (this.Oc) {
                            if (0 === (i = this.Oc.find("." + this.Sh[t])).length) throw new Error("Could not select the element with namespace: " + t);
                            this.Ch[t] = i
                        }
                    }
                } catch (t) {} finally {
                    return i
                }
            }, a.prototype.$c = function() {
                try {
                    this.Ah(), this.Hc()
                } catch (t) {}
            }, a.prototype.Ah = function() {
                try {
                    this.Ih = x.Library.dom('head meta[name="viewport"]')
                } catch (t) {}
            }, a.prototype.Hc = function() {
                try {
                    this.Vr = this.Oc.find(".cc-yqwh"), this.gr = this.Oc.find(".cc-ge4v"), this.Ac = this.Oc.find(".cc-unoo")
                } catch (t) {}
            }, a.prototype.Js = function() {
                try {
                    this.Ih = null, this.Oc = null, this.Vr = null, this.gr = null, this.Ac = null
                } catch (t) {}
            }, a.prototype.n = function() {
                try {
                    this.Ch = {}
                } catch (t) {}
            }, new a), x.Chat.State = (c.prototype.init = function() {}, c.prototype.reset = function(t) {
                var i = this;
                try {
                    this.n(), t.push(function() {
                        i.Dh()
                    })
                } catch (t) {}
            }, c.prototype.receive = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    var n = void 0,
                        e = void 0,
                        s = [];
                    for (n in t) t.hasOwnProperty(n) && (x.Utility.is_equal(t[n], this.Bh[n]) || (s.push(n), this.Bh[n] = t[n], !1 === i && void 0 !== this.Uh[n] && delete this.Uh[n]));
                    for (e = 0; e < s.length; e++) n = s[e], this.Rh[n].d(this)(this.Bh[n])
                } catch (t) {}
            }, c.prototype.propagate = function(t, i) {
                var n, e = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
                    s = this,
                    c = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : function() {},
                    a = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : function() {};
                try {
                    !0 !== e && x.Utility.is_equal(this.Bh[t], i) ? "function" == typeof c && c(!1) : (this.Uh[t] = i, null !== this.Mh && (x.Utility.clear_timeout(this.Mh), this.Mh = null), (n = x.Utility.clone(this.Bh))[t] = i, this.receive(n, !0), this.Mh = x.Utility.set_timeout(function() {
                        var t;
                        x.Utility.is_empty(s.Uh) ? "function" == typeof c && c(!1) : (t = x.Utility.clone(s.Uh), s.Uh = {}, s.Mh = null, x.Library.crisp.client.Session.set_state(t, function(t) {
                            t ? "function" == typeof a && a() : "function" == typeof c && c(!0)
                        }))
                    }, this.Nh))
                } catch (t) {}
            }, c.prototype.Gc = function(t) {
                try {
                    for (var i in !0 === x.Base.ut() && (t.maximized = !1), this.Oh) void 0 === t[i] && (t[i] = this.Oh[i]);
                    this.$h = !0, this.Bh = t, this.Th = x.Utility.keys(this.Bh)
                } catch (t) {}
            }, c.prototype.dh = function(t) {
                try {
                    this.Lh(t, this.Oh[t])
                } catch (t) {}
            }, c.prototype.ao = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
                try {
                    var i = void 0;
                    for (i in this.Oh) this.Oh.hasOwnProperty(i) && this.Lh(i, this.Oh[i], -1 !== t.indexOf(i))
                } catch (t) {}
            }, c.prototype.Lh = function(t, i) {
                var n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2];
                try {
                    if ("function" != typeof this.Rh[t]) throw new Error("No such state handler: " + t);
                    void 0 === this.Bh[t] && (this.Bh[t] = i), this.Rh[t].d(this)(this.Bh[t], n)
                } catch (t) {}
            }, c.prototype.Ph = function(t) {
                var i = !1;
                try {
                    var n = this.Th.indexOf(t); - 1 !== n && (this.Th.splice(n, 1), i = !0)
                } catch (t) {} finally {
                    return i
                }
            }, c.prototype.Jh = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    if (!1 === i && (this.Ph("trigger"), t && 0 < t.length))
                        for (var n = 0; n < t.length; n++) x.Trigger.De(t[n])
                } catch (t) {}
            }, c.prototype.Hh = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    if (!1 === i) {
                        this.Ph("alert");
                        var n, e, s, c = void 0,
                            a = void 0,
                            r = void 0,
                            o = void 0,
                            h = [
                                ["show", "unlock"],
                                ["unlock", "show"],
                                ["hide", "lock"],
                                ["lock", "hide"],
                                ["lock", "show"]
                            ];
                        for (a in t)
                            if (t.hasOwnProperty(a)) {
                                if (n = t[a], e = x.Chat.Alert.Yc[a], r = x.Chat.Selector.get("alerts").find([".cc-sel9", '[data-type="' + a + '"]'].join("")), c = !1, e === n) c = !0;
                                else if ("unlock" !== n && "lock" === e) c = !0;
                                else
                                    for (o = 0; o < h.length; o++) e === (s = h[o])[0] && n === s[1] && (c = !0);
                                if (0 < r.length && !1 === c) {
                                    if ("show" === n || "unlock" === n) x.Chat.Selector.get("alerts_one").safe_css_text("display", "none"), r.safe_css_text("display", "inline-block"), x.Chat.Selector.get("content").attr("data-has-alert-" + a, "true"), x.Chat.Alert.Qc("show", a);
                                    else {
                                        if ("hide" !== n && "lock" !== n) throw new Error("Unknown action: " + n);
                                        r.safe_css_text("display", "none"), x.Chat.Selector.get("content").removeAttr("data-has-alert-" + a), x.Chat.Alert.Qc("hide", a)
                                    }
                                    x.Chat.Alert.Yc[a] = n, x.Chat.Field.Xc()
                                } else x.Chat.Alert.Yc[a] = n
                            }
                    }
                } catch (t) {}
            }, c.prototype.Wh = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    if (x.Chat.Intent.Yc = t, !1 === i) {
                        var n = this.Ph("intent"),
                            e = void 0;
                        for (e in t) x.Chat.Intent.ha(e, t[e], !n);
                        x.Chat.Intent.oa(t)
                    }
                } catch (t) {}
            }, c.prototype.Gh = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    if (!1 === i) {
                        this.Ph("operator");
                        var n = void 0,
                            e = void 0,
                            s = void 0,
                            c = void 0,
                            a = void 0,
                            r = void 0;
                        if (x.Chat.Misc.wh = t || {}, x.Utility.is_empty(x.Chat.Misc.wh) ? (n = "initial", s = "website", c = x.Base.Re) : (n = "ongoing", s = t.type || "operator", c = t.user_id, a = t.avatar, e = "website" === t.type ? t.nickname : x.Library.crisp.web.Name.parse_first_name(t.nickname)), r = a || c ? x.Avatar.url(this.Vh, s, c, a) : r) {
                            if ("ongoing" === n) {
                                for (var o = x.Chat.Selector.get("header_avatar").first().siblings() || [], h = x.Chat.Selector.get("header_avatar").find(".cc-1wwd"), u = 0; u < o.length; u++) x.Library.dom(o[u]).remove();
                                h && (h.attr("data-has-name", e ? "true" : "false"), h.find(".cc-1ybw").text(e || "")), x.Chat.Selector.get("header_operator").text(e || ""), x.Chat.Selector.get("header_avatar_resource").safe_css_text("background-image", "url('" + r + "')"), x.Chat.Selector.get("header").attr("data-with-website-name", e === x.Base.D.website.name ? "false" : "true"), !0 === x.Base.D.chat.ongoing_operator_face && (x.Chat.Selector.get("pane_avatar_resource").safe_css_text("background-image", "url('" + r + "')"), x.Chat.Selector.get("pane_icon").attr("data-is-ongoing", "true"))
                            }
                            x.Chat.Selector.gr && x.Chat.Selector.gr.attr("data-chat-status", n)
                        }
                    }
                } catch (t) {}
            }, c.prototype.Kh = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    !1 === i && !1 === this.Ph("scroll") && (x.Chat.Scroll.wr = t, x.Chat.Selector.get("flow")[0].scrollTop = x.Chat.Scroll.wr)
                } catch (t) {}
            }, c.prototype.Xh = function(t) {
                var i, n = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    !1 === n && (i = !0 !== this.Ph("maximized") && !0, !1 === (t = !0 === x.Base.Ms.lock_maximized || t) ? (x.Chat.Interface.Hr("pane", i), x.Chat.Field.Tr(), x.Chat.Viewport.go(), x.Chat.Picker.ba(), x.Action.gt("chat:closed")) : (x.Chat.Interface.Hr("chat", i), x.Chat.Field.Xc(), x.Chat.Viewport._o(), x.Chat.Notification.xr(), x.Action.gt("chat:opened")))
                } catch (t) {}
            }, c.prototype.Yh = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    !1 === i && (this.Ph("textarea"), x.Action.set_message_text(t))
                } catch (t) {}
            }, c.prototype.Dh = function() {
                try {
                    this.Oh = {
                        trigger: x.Trigger.Be,
                        alert: x.Chat.Alert.Yc,
                        intent: x.Chat.Intent.Yc,
                        operator: x.Chat.Misc.wh,
                        scroll: x.Chat.Scroll.wr,
                        maximized: x.Chat.Interface.ht,
                        textarea: x.Chat.Field.Lr
                    }
                } catch (t) {}
            }, c.prototype.n = function() {
                try {
                    this.$h = !1, this.Bh = {}, this.Uh = {}, this.Th = [], this.Mh = null
                } catch (t) {}
            }, new c), x.Chat.Viewport = (s.prototype.init = function() {}, s.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, s.prototype._o = function() {
                var t, i;
                try {
                    !0 === x.Base.ut() ? (!1 === this.Zh && (null === this.Qh && (this.Qh = this.tu()), (t = x.Utility.clone(this.Qh)).width = "device-width", t["initial-scale"] = "1", t["maximum-scale"] = "1", t["user-scalable"] = "0", i = this.iu(t), null !== x.Chat.Selector.Ih && 0 < x.Chat.Selector.Ih.length ? x.Chat.Selector.Ih.attr("content", i) : (x.Chat.Selector.Ih = x.Library.dom(x.Template.render("viewport", {
                        content: i
                    })), x.Library.dom("head").append(x.Chat.Selector.Ih))), this.Zh = !0) : this.Zh = !1
                } catch (t) {}
            }, s.prototype.go = function() {
                var t;
                try {
                    !0 === this.Zh && (null !== x.Chat.Selector.Ih && 0 < x.Chat.Selector.Ih.length && ((t = this.iu(this.Qh)) ? x.Chat.Selector.Ih.attr("content", t) : (x.Chat.Selector.Ih.remove(), x.Chat.Selector.Ih = null)), this.Zh = !1)
                } catch (t) {}
            }, s.prototype.tu = function() {
                var t = {};
                try {
                    if (t = {}, 0 < x.Chat.Selector.Ih.length) {
                        var i = x.Chat.Selector.Ih.attr("content");
                        if (i = (i = i.trim()).replace(this.nu, ","))
                            for (var n, e, s = void 0, c = void 0, a = void 0, r = -1 !== i.indexOf(",") ? i.split(",") : [i], s = 0; s < r.length; s++) - 1 !== (c = r[s]).indexOf("=") && (n = (a = c.split("="))[0].trim(), e = a[1].trim(), n && e && (t[n] = e))
                    }
                } catch (t) {} finally {
                    return t
                }
            }, s.prototype.iu = function(t) {
                var i = "";
                try {
                    var n = void 0,
                        e = [];
                    for (n in t) t.hasOwnProperty(n) && e.push([n, t[n]].join("="));
                    i = e.join(", ")
                } catch (t) {} finally {
                    return i
                }
            }, s.prototype.n = function() {
                try {
                    this.Zh = !1, this.Qh = null
                } catch (t) {}
            }, new s), x.Browsing = (e.prototype.reset = function() {
                try {
                    x.Utility.reset_instance_children(x.Browsing), this.Js()
                } catch (t) {}
            }, e.prototype.Js = function() {
                try {
                    this.eu = null, this.su = null
                } catch (t) {}
            }, new e), x.Browsing.Assist = (n.prototype.reset = function() {
                try {
                    this.stop(), this.Js(), this.n()
                } catch (t) {}
            }, n.prototype.start = function() {
                try {
                    null === x.Browsing.su && (x.Browsing.su = this.cu, x.Browsing.eu = x.Library.dom(x.Template.render("browsing_assist", {
                        configuration: x.Base.D
                    })), this.au = x.Browsing.eu.find(".cc-lvhc"), x.Base.K.append(x.Browsing.eu))
                } catch (t) {}
            }, n.prototype.stop = function() {
                try {
                    x.Browsing.su === this.cu && (x.Browsing.su = null, x.Browsing.eu.remove(), x.Browsing.eu = null, this.au = null)
                } catch (t) {}
            }, n.prototype.Qn = function(t) {
                try {
                    x.Browsing.su === this.cu && null !== this.au && t.mouse && this.au.safe_css_text({
                        display: "inline-block",
                        left: t.mouse.x + "px",
                        top: t.mouse.y + "px"
                    })
                } catch (t) {}
            }, n.prototype.te = function(t) {
                var i = this;
                try {
                    if (x.Browsing.su === this.cu && t.scroll && window.scroll) {
                        null !== this.ru && x.Utility.clear_interval(this.ru);
                        var n, e = {
                                x: window.scrollX,
                                y: window.scrollY
                            },
                            s = {
                                x: 0,
                                y: 0
                            };
                        for (n in s) s.hasOwnProperty(n) && (s[n] = (t.scroll[n] - e[n]) / this.ou);
                        var c = 0,
                            a = this.hu / this.ou;
                        0 < a && (0 !== s.x || 0 !== s.y) && (x.Library.crisp.client.Browsing.toggle_ignore_scroll_event(!0), this.ru = x.Utility.set_interval(function() {
                            e.x += s.x, e.y += s.y, window.scroll(e.x, e.y), ++c >= i.ou && (x.Utility.clear_interval(i.ru), (i.ru = null) !== i.uu && x.Utility.clear_timeout(i.uu), i.uu = x.Utility.set_timeout(function() {
                                i.uu = null, x.Library.crisp.client.Browsing.toggle_ignore_scroll_event(!1)
                            }, i.lu))
                        }, a))
                    }
                } catch (t) {}
            }, n.prototype.ie = function(t) {
                var i, n, e, s, c = this;
                try {
                    x.Browsing.su === this.cu && (null !== this.au && (this.au.attr("data-is-clicking", "true"), null !== this.fu && x.Utility.clear_timeout(this.fu), this.fu = x.Utility.set_timeout(function() {
                        c.fu = null, c.au.removeAttr("data-is-clicking")
                    }, this.du)), t.click && (i = t.click.x - this.pu, n = t.click.y, i < 0 && (i = 0), e = document.elementFromPoint(i, n), (s = document.createEvent("MouseEvent")).initMouseEvent("click", !0, !0, window, null, t.click.x, t.click.y, 0, 0, !1, !1, !1, !1, 0, null), s.vu = !0, e && e.dispatchEvent(s)))
                } catch (t) {}
            }, n.prototype.Js = function() {
                try {
                    this.au = null
                } catch (t) {}
            }, n.prototype.n = function() {
                try {
                    this.ru = null, this.uu = null, this.fu = null
                } catch (t) {}
            }, new n), x.Call = (i.prototype.reset = function() {
                try {
                    this.n()
                } catch (t) {}
            }, i.prototype.ring = function(t) {
                try {
                    this.yu(), x.Sound.initialize("call"), this.mu(t.user), this._u = t.mode, this.gu = x.Library.dom(x.Template.render("call_ring", {
                        configuration: x.Base.D,
                        mode: this._u,
                        user: this.wu
                    })), this.bu(), x.Base.K.append(this.gu), x.Sound.start("call", "call-ring", !0)
                } catch (t) {}
            }, i.prototype.screen = function() {
                try {
                    this.yu(), this.gu = x.Library.dom(x.Template.render("call_screen", {
                        configuration: x.Base.D,
                        mode: this._u,
                        user: this.wu,
                        features: {
                            screensharing: x.Library.crisp.client.Call.has_support_screensharing()
                        }
                    })), this.ku(), this.xu("connecting"), x.Base.K.append(this.gu)
                } catch (t) {}
            }, i.prototype.stop = function() {
                try {
                    this.yu(), x.Sound.start("call", "call-hangup")
                } catch (t) {}
            }, i.prototype.success = function(t) {
                try {
                    switch (t) {
                        case "media_remote":
                            this.Fu();
                            break;
                        case "media_local":
                            this.ju()
                    }
                } catch (t) {}
            }, i.prototype.error = function(t) {
                try {
                    this.yu(), x.Sound.start("call", "call-hangup")
                } catch (t) {}
            }, i.prototype.toggle_media_status = function(t) {
                var i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
                try {
                    var n, e = this.gu.find('.cc-1qzq[data-type="' + t + '"]') || [],
                        s = this.gu.find('.cc-10o9[data-type="' + t + '"]') || [],
                        c = !1 === i ? "inline-block" : "none";
                    0 < e.length && e.attr("data-state", !0 === i ? "true" : "false"), 0 < s.length && s.safe_css_text("display", c), "audio" !== t || 0 < (n = this.gu.find(".cc-fi91") || []).length && n.safe_css_text("display", c)
                } catch (t) {}
            }, i.prototype.yu = function() {
                try {
                    null !== this.gu && (this.gu.remove(), this.gu = null, this.qu = null, this.zu = !1, this.Eu(), x.Sound.stop("call", "call-ring"))
                } catch (t) {}
            }, i.prototype.ju = function() {
                try {
                    this.Cu("local")
                } catch (t) {}
            }, i.prototype.Fu = function() {
                var t;
                try {
                    !0 === this.Cu("remote") && (this.xu("ongoing"), 0 < (t = this.gu.find(".cc-1tpr") || []).length && (!0 === this.Su("remote") ? t.safe_css_text("display", "none") : t.safe_css_text("display", "block")), x.Sound.start("call", "call-established"))
                } catch (t) {}
            }, i.prototype.Cu = function(t) {
                var i = this.gu.find('.cc-r1gp[data-type="' + t + '"]') || [],
                    n = x.Library.crisp.client.Call.get_stream(t);
                if (0 < i.length && null !== n && 0 < (t = i.find("video") || []).length) {
                    var e = t[0];
                    return e.srcObject = n, e.onloadeddata = function() {
                        var t = e.videoWidth < e.videoHeight ? "contain" : null;
                        null !== t && i.attr("data-aspect", t)
                    }, !0
                }
                return !1
            }, i.prototype.mu = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
                try {
                    this.wu = {
                        user_id: t.user_id || x.Base.Re,
                        nickname: t.nickname || x.Base.D.website.name,
                        type: t.user_id ? "operator" : "website"
                    }
                } catch (t) {}
            }, i.prototype.xu = function(t) {
                try {
                    var i = this.gu.find(".cc-ulj3") || [],
                        n = this.gu.find([".cc-ulj3", '[data-state="' + t + '"]'].join("")) || [],
                        e = this.gu.find(".cc-1qzq[data-state]") || [];
                    0 < i.length && 0 < n.length && (i.safe_css_text("display", "none"), n.safe_css_text("display", "inline-block")), 0 < e.length && e.safe_css_text("display", "ongoing" === t ? "inline-block" : "none"), "ongoing" === t && this.Au()
                } catch (t) {}
            }, i.prototype.Iu = function() {
                var t, i;
                try {
                    "minimized" === this.qu || !0 !== this.Su("remote") || (t = (this.gu.find('.cc-r1gp[data-type="remote"] video') || [])[0]) && (i = null, "function" == typeof(i = !1 === this.zu ? t.requestFullscreen || t.msRequestFullscreen || t.mozRequestFullScreen || t.webkitRequestFullScreen || null : t.exitFullscreen || t.msExitFullscreen || t.mozExitFullScreen || t.webkitExitFullScreen || null) && i.d(t)())
                } catch (t) {}
            }, i.prototype.Du = function() {
                var t;
                try {
                    !0 === this.Su("remote") && (t = this.gu.find('.cc-r1gp[data-type="remote"]') || [], !0 === this.zu ? t.attr("data-aspect", "contain") : t.removeAttr("data-aspect"))
                } catch (t) {}
            }, i.prototype.Au = function() {
                var t, i = this;
                try {
                    this.Eu(), null === this.Bu && (t = this.gu.find(".cc-x7ly") || [], this.Uu = 0, this.Bu = x.Utility.set_interval(function() {
                        i.Uu++, 0 < t.length && t.text(x.Date.format_time(i.Uu, !0))
                    }, this.Pt))
                } catch (t) {}
            }, i.prototype.Eu = function() {
                try {
                    null !== this.Bu && (x.Utility.clear_interval(this.Bu), this.Bu = null)
                } catch (t) {}
            }, i.prototype.bu = function() {
                try {
                    var t = this.gu.find(".cc-ekfv") || [];
                    if (0 < t.length) {
                        t.on("click", function(t) {
                            try {
                                var i, n = t.target ? x.Library.dom(t.target) : [];
                                0 < n.length && 0 < (i = n.parents(".cc-ui2y") || []).length && ("accept" === i.attr("data-action") ? (x.Library.crisp.client.Call.accept(), x.Call.screen()) : x.Library.crisp.client.Call.decline())
                            } catch (t) {} finally {
                                return !1
                            }
                        });
                        for (var i = 0; i < t.length; i++) t[i].onclick = function() {
                            return !1
                        }
                    }
                } catch (t) {}
            }, i.prototype.ku = function() {
                var a = this;
                try {
                    var r, o, h, u, i, s, n, e, t = this.gu.find(".cc-1qzq") || [],
                        c = this.gu.find('.cc-r1gp[data-type="remote"] video') || [],
                        l = this.gu.find(".cc-1j41") || [];
                    if (0 < t.length) {
                        t.on("click", function(t) {
                            try {
                                var i = t.target ? x.Library.dom(t.target) : [];
                                if (0 < i.length) switch (i.attr("data-type")) {
                                    case "video":
                                        x.Library.crisp.client.Call.toggle_video();
                                        break;
                                    case "audio":
                                        x.Library.crisp.client.Call.toggle_audio();
                                        break;
                                    case "screensharing":
                                        x.Library.crisp.client.Call.toggle_screensharing();
                                        break;
                                    case "hangup":
                                        x.Library.crisp.client.Call.stop();
                                        break;
                                    case "toggle":
                                        a.qu = "minimized" === a.qu ? "maximized" : "minimized", l.attr("data-mode", a.qu), l.safe_css_text(null)
                                }
                            } catch (t) {} finally {
                                return !1
                            }
                        });
                        for (var f = 0; f < t.length; f++) t[f].onclick = function() {
                            return !1
                        }
                    }
                    0 < c.length && (c.on("dblclick", function() {
                        try {
                            a.Iu()
                        } catch (t) {} finally {
                            return !1
                        }
                    }), c.on("fullscreenchange", function() {
                        try {
                            a.zu = !!document.fullscreenElement, a.Du()
                        } catch (t) {} finally {
                            return !1
                        }
                    })), 0 < l.length && (u = h = o = r = void 0, i = function(t, i, n, e) {
                        r = l.prop("offsetLeft"), o = l.prop("offsetTop"), h = t.clientX, u = t.clientY, x.Utility.add_event_listener(a.ns, "document", i, s), x.Utility.add_event_listener(a.ns, "document", n, e)
                    }, s = function(t) {
                        t.preventDefault(), t.stopPropagation();
                        var i = (t.touches || [])[0] ? t.touches[0] : t,
                            n = o + (i.clientY - u),
                            e = r + (i.clientX - h),
                            s = a.Ru,
                            c = a.Ru,
                            t = window.innerWidth - l[0].clientWidth - a.Ru,
                            i = window.innerHeight - l[0].clientHeight - a.Ru;
                        return e < s ? e = s : t < e && (e = t), n < c ? n = c : i < n && (n = i), l.safe_css_text({
                            top: n + "px",
                            left: e + "px"
                        }), !1
                    }, n = function() {
                        x.Utility.remove_event_listener(a.ns, "document", "mousemove"), x.Utility.remove_event_listener(a.ns, "document", "mouseup")
                    }, e = function() {
                        x.Utility.remove_event_listener(a.ns, "document", "touchmove"), x.Utility.remove_event_listener(a.ns, "document", "touchend")
                    }, l[0].addEventListener("mousedown", function(t) {
                        "minimized" === a.qu && i(t, "mousemove", "mouseup", n)
                    }), l[0].addEventListener("touchstart", function(t) {
                        "minimized" !== a.qu || null !== (t = (t.touches || [])[0] || null) && i(t, "touchmove", "touchend", e)
                    }))
                } catch (t) {}
            }, i.prototype.Su = function(t) {
                return null !== (t = x.Library.crisp.client.Call.get_stream(t)) && 0 < t.getVideoTracks().length
            }, i.prototype.n = function() {
                try {
                    this.gu = null, this.qu = null, this._u = null, this.Uu = 0, this.Bu = null, this.zu = !1, this.wu = {}
                } catch (t) {}
            }, new i), _dollar_crisp = {
                push: x.Pipeline.push.d(x.Pipeline),
                get: x.Pipeline.get.d(x.Pipeline),
                set: x.Pipeline.set.d(x.Pipeline),
                is: x.Pipeline.is.d(x.Pipeline),
                on: x.Pipeline.on.d(x.Pipeline),
                off: x.Pipeline.off.d(x.Pipeline),
                do: x.Pipeline.do.d(x.Pipeline),
                config: x.Pipeline.config.d(x.Pipeline),
                safe: x.Pipeline.safe.d(x.Pipeline),
                help: x.Pipeline.help.d(x.Pipeline)
            }, Object.defineProperty(_dollar_crisp, "__init", {
                enumerable: !1,
                value: x.Base.init.d(x.Base)
            }), Object.defineProperty(_dollar_crisp, "__spool", {
                enumerable: !1,
                value: {}
            }), Object.defineProperty(_dollar_crisp, "__debug", {
                enumerable: !1,
                value: x
            }), _dollar_crisp.__spool.pending_actions = [], "object" == typeof window.$crisp && 0 < window.$crisp.length)
            for (var t = 0; t < window.$crisp.length; t++) _dollar_crisp.__spool.pending_actions.push(window.$crisp[t]);
        window.$crisp = _dollar_crisp
    } catch (t) {}

    function i() {
        try {
            this.ns = "CrispCall", this.Ru = 6, this.Pt = 1e3, this.n()
        } catch (t) {}
    }

    function n() {
        try {
            this.ns = "CrispBrowsingAssist", this.cu = "assist", this.hu = 500, this.lu = 750, this.ou = 100, this.pu = 5, this.du = 600, this.Js(), this.n()
        } catch (t) {}
    }

    function e() {
        try {
            this.ns = "CrispBrowsing", this.Js()
        } catch (t) {}
    }

    function s() {
        try {
            this.ns = "CrispChatViewport", this.nu = /;/g, this.n()
        } catch (t) {}
    }

    function c() {
        try {
            this.ns = "CrispChatState", this.Nh = 250, this.Vh = 240, this.Rh = {
                trigger: this.Jh,
                alert: this.Hh,
                intent: this.Wh,
                operator: this.Gh,
                scroll: this.Kh,
                maximized: this.Xh,
                textarea: this.Yh
            }, this.Dh(), this.n()
        } catch (t) {}
    }

    function a() {
        try {
            this.ns = "CrispChatSelector", this.Sh = {
                pane_icon: "cc-15mo",
                pane_avatar_resource: "cc-1dx3",
                pane_unread: "cc-12u5",
                header: "cc-x32x",
                header_avatar: "cc-furf",
                header_avatar_resource: "cc-1do6",
                header_operator: "cc-txwe",
                header_status_type_away: "cc-12fb",
                header_channel: "cc-1qlt",
                drop_over: "cc-1hl5",
                content: "cc-qqzz",
                flow: "cc-1v5j",
                flow_messages: "cc-3lvj",
                flow_events: "cc-192e",
                pickers: "cc-1tha",
                pickers_selector_one: "cc-mxq4",
                pickers_inner_one: "cc-5ftt",
                pickers_search_input: "cc-19m8",
                pickers_smiley: ["cc-5ftt", '[data-type="smiley"]'].join(""),
                pickers_gif: ["cc-5ftt", '[data-type="gif"]'].join(""),
                offline: "cc-41gl",
                alerts: "cc-14ou",
                alerts_one: "cc-sel9",
                alerts_new_messages: ["cc-sel9", '[data-type="new_messages"]'].join(""),
                alerts_warn_reply: ["cc-sel9", '[data-type="warn_reply"]'].join(""),
                alerts_email_invalid: ["cc-sel9", '[data-type="email_invalid"]'].join(""),
                form_container: "cc-g7iw",
                form_message: "cc-1uz4",
                form_act: "cc-1cxr",
                form_button_send: "cc-br7s",
                form_button_smiley: ["cc-1y2e", '[data-type="smiley"]'].join(""),
                form_button_attach: ["cc-1y2e", '[data-type="file"]'].join(""),
                form_textarea_message: "cc-pjpe",
                form_input_attach: "cc-do6v",
                tooltips_new_messages: ["cc-1bue", '[data-id="new_messages"]'].join(""),
                tooltips_new_messages_text: ["cc-1div", '[data-for-id="new_messages"]'].join(""),
                tooltips_extended_actions: "cc-86w0",
                tooltips_extended_preview: "cc-2zuy"
            }, this.Js(), this.n()
        } catch (t) {}
    }

    function o() {
        try {
            this.ns = "CrispChatScroll", this.n()
        } catch (t) {}
    }

    function u() {
        try {
            this.ns = "CrispChatNotification", this.qh = 5, this.n()
        } catch (t) {}
    }

    function l() {
        try {
            this.ns = "CrispChatMisc", this.n()
        } catch (t) {}
    }

    function f() {
        try {
            this.ns = "CrispChatMessage", this.$o = 1500, this.Ko = 500, this.vh = 3e4, this._h = 6e4, this.mh = 3e4, this.lh = 400, this.ih = 5e3, this.th = 12e4, this.sh = 600, this.ch = 600, this.Zo = "urn:crisp.im:triggers:0", this.Uo = ["welcome", "identity", "game"], this.Go = ["email", "phone"], this.eh = {
                image: ["image/jpg", "image/jpeg", "image/png", "image/gif"],
                video: ["video/mp4", "video/webm"]
            }, this.ah = [".cc-xtol", ".cc-1kje"], this.n()
        } catch (t) {}
    }

    function d() {
        try {
            this.ns = "CrispChatInterface", this.fo = 320, this.lo = 380, this.vo = 360, this.po = 460, this.uo = 400, this.oo = 580, this.yo = 8, this.Kr = 500, this.ko = 250, this.xo = 100, this.qo = 250, this.zo = 1e3, this.Qr = 1e3, this.no = 1e3, this.eo = 216e5, this.So = 500, this.so = {
                "small-smile": ":)",
                "big-smile": ":D",
                blushing: ":$",
                confused: "x)",
                cool: "8)",
                crying: ":'(",
                embarrased: ":/",
                heart: "<3",
                laughing: ":'D",
                sad: ":(",
                angry: ":@",
                sick: ":S",
                "thumbs-up": "+1",
                surprised: ":o",
                tongue: ":P",
                winking: ";)"
            }, this.jo = ["image", "video"], this.Gr = {
                minimized: {
                    minimize: "cc-b9vr",
                    maximize: "cc-14qm"
                },
                shade: {
                    minimize: "cc-m8rr",
                    maximize: "cc-1pmi"
                },
                chat: {
                    minimize: "cc-z8ln",
                    maximize: "cc-12h3"
                }
            }, this.n()
        } catch (t) {}
    }

    function v() {
        try {
            this.ns = "CrispChatGame", this.n()
        } catch (t) {}
    }

    function y() {
        try {
            this.ns = "CrispChatField", this.n()
        } catch (t) {}
    }

    function m() {
        try {
            this.ns = "CrispChatEvent", this.Ir = 120, this.kr = 1e3, this.br = 10, this.jr = 500, this.fr = 100, this.lr = 2, this.Br = 1e3, this.Er = .2, this.Mr = "File", this.Nr = "application/octet-stream", this.Or = 2e3, this.zr = /\n/g, this.n()
        } catch (t) {}
    }

    function _() {
        try {
            this.ns = "CrispChatPicker", this.qa = 10, this.Ea = {
                gif: this.Ca
            }, this.n()
        } catch (t) {}
    }

    function g() {
        try {
            this.ns = "CrispChatIntent", this.ra = ["identity", "game"], this.ua = {
                identity: this.la,
                game: this.va
            }, this.n()
        } catch (t) {}
    }

    function w() {
        try {
            this.ns = "CrispChatAlert", this.ta = {
                warn_reply: this.ia,
                email_invalid: this.ea
            }, this.n()
        } catch (t) {}
    }

    function b() {
        try {
            this.ns = "CrispChat", this.n()
        } catch (t) {}
    }

    function k() {
        try {
            this.ns = "CrispMinimizedSelector", this.n()
        } catch (t) {}
    }

    function F() {
        try {
            this.ns = "CrispMinimizedInterface", this.Pt = 1e3, this.Jc = .25, this.Pc = 2, this.Tc = 1e3, this.Lc = 500, this.Mc = 12e3, this.Dc = "minimized", this.Bc = "1", this.n()
        } catch (t) {}
    }

    function j() {
        try {
            this.ns = "CrispMinimizedEvent"
        } catch (t) {}
    }

    function q() {
        try {
            this.ns = "CrispMinimized", this.n()
        } catch (t) {}
    }

    function z() {
        try {
            this.ns = "CrispBase", this.Zs = 560, this.tc = 620, this.Qs = 740, this.ac = 6e5, this.rc = 6e5, this.oc = 1728e5, this.jc = 1e3, this.pc = 1e4, this.hc = /_/g, this.yc = {
                socket: !0,
                buster: 1
            }, this.lc = {
                other: {
                    container_index: 1e6,
                    show_operator_count: !0
                }
            }, this.xc = {
                childList: !0,
                attributes: !1,
                subtree: !1,
                characterData: !1
            }, this.fc = /^(?:https?:[\/]*)?([^\/]+)(?:\/.*)?$/i, this.Js(), this.n()
        } catch (t) {}
    }

    function E() {
        try {
            this.ns = "CrispTrigger", this.Pt = 1e3, this.bs = 18e5, this.Ue = "trigger", this.Me = "1", this.es = ["page", "url_parameter"], this.Oe = {
                delay: this.Ze,
                leave: this.ts,
                link: this.os,
                page: this.Ne,
                url_parameter: this.us,
                user_data: this.ds,
                user_event: this.vs
            }, this.Je = {
                message: this.ys,
                open: this._s,
                sound: this.gs
            }, this.ss = {
                page: this.hs,
                url_parameter: this.ls
            }, this.n()
        } catch (t) {}
    }

    function C() {
        try {
            this.ns = "CrispEvent", this.qe = 6e5, this.Ce = 36e5, this.je = {
                capture: !1
            }, this.n()
        } catch (t) {}
    }

    function S() {
        try {
            this.ns = "CrispAvailability", this.n()
        } catch (t) {}
    }

    function A() {
        try {
            this.ns = "CrispBroker", this.Mn = 1, this.Ys = {
                chat: {
                    country: null,
                    locale: "en",
                    theme: "default",
                    theme_text: "default",
                    theme_welcome: "default",
                    tile: "default",
                    allowed_pages: [],
                    blocked_pages: [],
                    blocked_locales: [],
                    last_operator_face: !1,
                    ongoing_operator_face: !0,
                    activity_metrics: !0,
                    operator_privacy: !1,
                    availability_tooltip: !1,
                    hide_vacation: !1,
                    hide_on_away: !1,
                    hide_on_mobile: !1,
                    position_reverse: !1,
                    email_visitors: !0,
                    phone_visitors: !1,
                    force_identify: !1,
                    ignore_privacy: !1,
                    visitor_compose: !0,
                    file_transfer: !0,
                    helpdesk_link: !0,
                    status_health_dead: !0,
                    wait_game: !0
                },
                website: {
                    name: "",
                    domain: "",
                    mailer: "",
                    buster: 1,
                    count_operators: 0,
                    active_operators: [],
                    response_metrics: {},
                    last_available: x.Date.timestamp(),
                    status: null,
                    trial: !1
                },
                channels: {},
                plugins: {}
            }, this.n()
        } catch (t) {}
    }

    function I() {
        try {
            this.ns = "CrispTemplate"
        } catch (t) {}
    }

    function D() {
        try {
            this.ns = "CrispAvatar", this.Si = 3, this.Ai = 99
        } catch (t) {}
    }

    function B() {
        try {
            this.ns = "CrispLocale", this._i = "en", this.zi = "ltr", this.wi = ["af", "ar-ae", "ar-sa", "ar-ye", "ar", "az", "bg", "bn", "ca", "cs", "da", "de", "el", "en", "eo", "es", "et", "eu", "fa", "fi", "fo", "fr", "gu", "he", "hi", "hr", "hu", "hy", "id", "is", "it", "ja", "ka", "ko", "lt", "lv", "ml", "mn", "ms", "nl-be", "nl", "no", "pl", "ps", "pt-br", "pt", "ro", "ru", "sk", "sl", "sr-cyrl-cs", "sr", "sv", "ta", "th", "tr", "uk", "vi", "zh-hk", "zh-tw", "zh"], this.gi = this.wi, this.qi = ["ltr", "rtl"], this.n()
        } catch (t) {}
    }

    function U() {
        try {
            this.ns = "CrispSound", this.Mu = 200, this.si = {
                events: ["chat-message-receive"],
                call: ["call-established", "call-hangup", "call-ring"]
            }, this.n()
        } catch (t) {}
    }

    function R() {
        try {
            this.ns = "CrispPlugin"
        } catch (t) {}
    }

    function M() {
        try {
            this.ns = "CrispTheme", this.ti = 16, this.Xt = "default", this.Kt = {
                default: {
                    10: "#F5F8FB",
                    20: "#EFF5FE",
                    100: "#E2EEFF",
                    200: "#6E9BDE",
                    500: "#1972F5",
                    600: "#055EE1",
                    700: "#0057D7",
                    800: "#004FC3",
                    900: "#004AB5",
                    reverse: "#FFFFFF"
                },
                red: {
                    10: "#F9F9F9",
                    20: "#F9F3F3",
                    100: "#FFE5E4",
                    200: "#F8796F",
                    500: "#E61D0F",
                    600: "#CC1B0E",
                    700: "#C5170A",
                    800: "#B31A0E",
                    900: "#93150B",
                    reverse: "#FFFFFF"
                },
                pink: {
                    10: "#F9F9F9",
                    20: "#F7F2F2",
                    100: "#FFE0EB",
                    200: "#F26C9A",
                    500: "#F01D65",
                    600: "#DB165A",
                    700: "#CE1454",
                    800: "#B3124A",
                    900: "#A0073C",
                    reverse: "#FFFFFF"
                },
                purple: {
                    10: "#F9F9F9",
                    20: "#F8F3FA",
                    100: "#FADDFF",
                    200: "#CA60DC",
                    500: "#B521CF",
                    600: "#9B19B2",
                    700: "#9614AE",
                    800: "#7D0B91",
                    900: "#6B0A7C",
                    reverse: "#FFFFFF"
                },
                deep_purple: {
                    10: "#F9F9F9",
                    20: "#F6F5FA",
                    100: "#EDE2FF",
                    200: "#936DD6",
                    500: "#682AD5",
                    600: "#581FBB",
                    700: "#5019B0",
                    800: "#42178D",
                    900: "#310B74",
                    reverse: "#FFFFFF"
                },
                indigo: {
                    10: "#F9F9F9",
                    20: "#F5F5FB",
                    100: "#DDE2FF",
                    200: "#5D73EA",
                    500: "#2943D1",
                    600: "#1732C4",
                    700: "#112BB9",
                    800: "#061FA7",
                    900: "#001797",
                    reverse: "#FFFFFF"
                },
                blue: {
                    10: "#F5F8FB",
                    20: "#EFF5FE",
                    100: "#E2EEFF",
                    200: "#6E9BDE",
                    500: "#1972F5",
                    600: "#055EE1",
                    700: "#0057D7",
                    800: "#004FC3",
                    900: "#004AB5",
                    reverse: "#FFFFFF"
                },
                light_blue: {
                    10: "#F9F9F9",
                    20: "#EFF5F7",
                    100: "#DCF0F9",
                    200: "#4CA4CC",
                    500: "#009FDE",
                    600: "#008CCB",
                    700: "#0088C5",
                    800: "#0070A3",
                    900: "#00618E",
                    reverse: "#FFFFFF"
                },
                cyan: {
                    10: "#F9F9F9",
                    20: "#F1F7F7",
                    100: "#DBF7F9",
                    200: "#4EA4AF",
                    500: "#00A3B4",
                    600: "#00909E",
                    700: "#008997",
                    800: "#007685",
                    900: "#005965",
                    reverse: "#FFFFFF"
                },
                teal: {
                    10: "#F9F9F9",
                    20: "#E7F4F4",
                    100: "#D6EEE9",
                    200: "#44B1A7",
                    500: "#00947C",
                    600: "#00816C",
                    700: "#007B66",
                    800: "#006057",
                    900: "#005049",
                    reverse: "#FFFFFF"
                },
                green: {
                    10: "#F9F9F9",
                    20: "#EDF5ED",
                    100: "#D6F3D7",
                    200: "#5BB05E",
                    500: "#28A52D",
                    600: "#1A941F",
                    700: "#148919",
                    800: "#086E0C",
                    900: "#005C03",
                    reverse: "#FFFFFF"
                },
                light_green: {
                    10: "#F9F9F9",
                    20: "#F0F7F0",
                    100: "#DFF6C6",
                    200: "#6FB204",
                    500: "#6EB700",
                    600: "#64A500",
                    700: "#5E9C00",
                    800: "#426C00",
                    900: "#395E00",
                    reverse: "#FFFFFF"
                },
                amber: {
                    10: "#F9F9F9",
                    20: "#F6F4ED",
                    100: "#FFF0C1",
                    200: "#C5A135",
                    500: "#E1AE00",
                    600: "#CD9E00",
                    700: "#C49700",
                    800: "#B28900",
                    900: "#A37E00",
                    reverse: "#FFFFFF"
                },
                orange: {
                    10: "#F9F9F9",
                    20: "#F5F5EF",
                    100: "#FFECCF",
                    200: "#EE9743",
                    500: "#EC7500",
                    600: "#DB6C00",
                    700: "#D06701",
                    800: "#B85C01",
                    900: "#A45100",
                    reverse: "#FFFFFF"
                },
                deep_orange: {
                    10: "#F9F9F9",
                    20: "#FDF5F5",
                    100: "#FFE8E0",
                    200: "#DA7859",
                    500: "#E45300",
                    600: "#CD4A00",
                    700: "#C24702",
                    800: "#963700",
                    900: "#752B00",
                    reverse: "#FFFFFF"
                },
                brown: {
                    10: "#F9F9F9",
                    20: "#F7F1EF",
                    100: "#F2EAE7",
                    200: "#AF7864",
                    500: "#924B32",
                    600: "#864027",
                    700: "#803C24",
                    800: "#702E17",
                    900: "#61240E",
                    reverse: "#FFFFFF"
                },
                grey: {
                    10: "#F9F9F9",
                    20: "#F4F4F4",
                    100: "#E5E5E5",
                    200: "#7D7D7D",
                    500: "#7A7A7A",
                    600: "#6B6B6B",
                    700: "#646464",
                    800: "#4C4C4C",
                    900: "#3E3E3E",
                    reverse: "#FFFFFF"
                },
                blue_grey: {
                    10: "#F9F9F9",
                    20: "#F2F7F8",
                    100: "#DCEDF6",
                    200: "#638EA3",
                    500: "#457991",
                    600: "#396D84",
                    700: "#33657D",
                    800: "#25556D",
                    900: "#1C4D66",
                    reverse: "#FFFFFF"
                },
                black: {
                    10: "#F9F9F9",
                    20: "#F2F2F2",
                    100: "#E9E9E9",
                    200: "#818181",
                    500: "#2A2A2A",
                    600: "#3A3A3A",
                    700: "#3F3F3F",
                    800: "#515151",
                    900: "#5B5B5B",
                    reverse: "#FFFFFF"
                }
            }, this.Qt = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i
        } catch (t) {}
    }

    function N() {
        try {
            this.ns = "CrispDate", this.Gt = 15, this.Tt = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"], this.Lt = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"], this.Pt = 1e3, this.Nu = 60, this.Ou = 24, this.Ht = 60, this.Jt = this.Nu * this.Ht, this.Vt = this.Ou * this.Jt
        } catch (t) {}
    }

    function O() {
        try {
            this.ns = "CrispValidate", this.$t = 80, this.Rt = /^(([^\s@]+)@([^\s@]+)\.([^\s@]+))$/, this.Mt = new RegExp(["^(?:(?:\\(?(?:00|\\+)([1-4]\\d\\d|[1-9]\\d?)\\)?)?", "[\\-\\.\\ \\\\\\/]?)?((?:\\(?\\d{1,}\\)?[\\-\\.\\ \\\\\\/]?){0,})", "(?:[\\-\\.\\ \\\\\\/]?(?:#|ext\\.?|extension|x)[\\-\\.\\ \\\\/]?", "(\\d+))?$"].join(""), "i"), this.Nt = /^https?:\/\/(.+)$/, this.Ot = /^([A-Za-z0-9_\\-]{1,50})$/
        } catch (t) {}
    }

    function $() {
        try {
            this.ns = "CrispPipeline", this.Ct = ["get", "set", "is", "do", "on", "off", "config", "safe", "help"], this.Dt = ["on", "off"], this.n()
        } catch (t) {}
    }

    function T() {
        try {
            this.ns = "CrispAction", this.qt = ["session:loaded", "chat:initiated", "chat:opened", "chat:closed", "message:sent", "message:received", "message:compose:sent", "message:compose:received", "user:email:changed", "user:phone:changed", "user:nickname:changed", "user:avatar:changed", "website:availability:changed", "helpdesk:queried"], this.Ut = {
                on: this.xt,
                off: this.jt
            }, this.nt = 500, this.mt = /^([a-f0-9]{64})$/, this.Ft = {}
        } catch (t) {}
    }

    function L() {
        try {
            this.ns = "CrispFeature", this.n()
        } catch (t) {}
    }

    function P() {
        try {
            this.ns = "CrispUtility", this.z = "[match:single]", this.j = "[match:double]", this.b = "[match:negate]", this.q = /([\*]{1})/g, this.F = /([\*]{2})/g, this.w = /^([\!]{1})/, this.S = /(\[match:single\])/g, this.C = /(\[match:double\])/g, this.k = /(\[match:negate\])/g, this.I = new RegExp(["^(\\!)?", "(?:https?:[\\/]*)?", "(?:www\\.)?([^\\/]+)([^#?]*)?", "(?:[\\/]+)?", "(?:[#?].*)?"].join(""), "i"), this._ = /^(?:\s*)(?:(?:javascript|vbscript):)/i, this.n()
        } catch (t) {}
    }

    function J() {
        try {
            this.ns = "CrispPolyfill", this.h = 2e4, this.v = /\{\s*\[native code\]\s*\}$/, this.n(), this.u()
        } catch (t) {}
    }

    function H() {
        var t, i, n, e, s, c;
        try {
            this.ns = "CrispLibrary";
            var a = {},
                g = x;
            a.Console = ((c = {}).$u = "production", c.Tu = "development" == c.$u, c.Lu = void 0 !== window.console, c.Pu = c.Tu && c.Lu, c.Ju = function(t, i, n) {}, c.warn = function(t, i) {
                c.Pu && console.warn(t, i), c.Ju("warn", t, i)
            }, c.error = function(t, i) {
                c.Pu && console.error(t, i), c.Ju("error", t, i)
            }, c.info = function(t, i) {
                c.Pu && console.info(t, i), c.Ju("info", t, i)
            }, c.log = function(t, i) {
                c.Pu && console.log(t, i), c.Ju("log", t, i)
            }, c.debug = function(t, i) {
                c.Pu && (void 0 !== console.debug ? console.debug(t, i) : console.log(t, i)), c.Ju("debug", t, i)
            }, c.set_log_sink = function(t) {
                if ("function" != typeof t) throw new Error("Invalid function");
                c.Ju = t
            }, c), e = function() {
                return function e(s, c, a) {
                    function r(i, t) {
                        if (!c[i]) {
                            if (!s[i]) {
                                var n = "function" == typeof require && require;
                                if (!t && n) return n(i, !0);
                                if (o) return o(i, !0);
                                throw (n = new Error("Cannot find module '" + i + "'")).code = "MODULE_NOT_FOUND", n
                            }
                            n = c[i] = {
                                exports: {}
                            }, s[i][0].call(n.exports, function(t) {
                                return r(s[i][1][t] || t)
                            }, n, n.exports, e, s, c, a)
                        }
                        return c[i].exports
                    }
                    for (var o = "function" == typeof require && require, t = 0; t < a.length; t++) r(a[t]);
                    return r
                }({
                    1: [function(r, t, o) {
                        "use strict";

                        function h(t) {
                            return null != t && "" !== t
                        }

                        function u(i) {
                            return (Array.isArray(i) ? i.map(u) : i && "object" == typeof i ? Object.keys(i).filter(function(t) {
                                return i[t]
                            }) : [i]).filter(h).join(" ")
                        }
                        o.merge = function t(i, n) {
                            if (1 === arguments.length) {
                                for (var e = i[0], s = 1; s < i.length; s++) e = t(e, i[s]);
                                return e
                            }
                            var c, a = i.class,
                                r = n.class;
                            for (c in (a || r) && (a = a || [], r = r || [], Array.isArray(a) || (a = [a]), Array.isArray(r) || (r = [r]), i.class = a.concat(r).filter(h)), n) "class" != c && (i[c] = n[c]);
                            return i
                        }, o.joinClasses = u, o.cls = function(t, i) {
                            for (var n = [], e = 0; e < t.length; e++) i && i[e] ? n.push(o.escape(u([t[e]]))) : n.push(u(t[e]));
                            var s = u(n);
                            return s.length ? ' class="' + s + '"' : ""
                        }, o.style = function(i) {
                            return i && "object" == typeof i ? Object.keys(i).map(function(t) {
                                return t + ":" + i[t]
                            }).join(";") : i
                        }, o.attr = function(t, i, n, e) {
                            return "boolean" == typeof(i = "style" === t ? o.style(i) : i) || null == i ? i ? " " + (e ? t : t + '="' + t + '"') : "" : 0 == t.indexOf("data") && "string" != typeof i ? " " + t + "='" + JSON.stringify(i).replace(/'/g, "&apos;") + "'" : n ? " " + t + '="' + o.escape(i) + '"' : " " + t + '="' + i + '"'
                        }, o.attrs = function(t, i) {
                            var n = [],
                                e = Object.keys(t);
                            if (e.length)
                                for (var s = 0; s < e.length; ++s) {
                                    var c = e[s],
                                        a = t[c];
                                    "class" == c ? (a = u(a)) && n.push(" " + c + '="' + a + '"') : n.push(o.attr(c, a, !1, i))
                                }
                            return n.join("")
                        }, o.escape = function(t) {
                            var i = String(t).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
                            return i === "" + t ? t : i
                        }, o.rethrow = function i(n, t, e, s) {
                            if (!(n instanceof Error)) throw n;
                            if (!("undefined" == typeof window && t || s)) throw n.message += " on line " + e, n;
                            try {
                                s = s || r("fs").readFileSync(t, "utf8")
                            } catch (t) {
                                i(n, null, e)
                            }
                            var c = s.split("\n"),
                                a = Math.max(e - 3, 0),
                                s = Math.min(c.length, e + 3),
                                s = c.slice(a, s).map(function(t, i) {
                                    return ((i = i + a + 1) == e ? "  > " : "    ") + i + "| " + t
                                }).join("\n");
                            throw n.path = t, n.message = (t || "Jade") + ":" + e + "\n" + s + "\n\n" + n.message, n
                        }
                    }, {
                        fs: 2
                    }],
                    2: [function(t, i, n) {}, {}]
                }, {}, [1])(1)
            }, "object" == typeof __crisp_void_exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof __crisp_void_define && define.amd ? define([], e) : (void 0 !== a ? s = a : "undefined" != typeof global ? s = global : "undefined" != typeof self && (s = self), s.jade = e()), i = a, n = function() {
                var c = document,
                    e = window,
                    i = Array.prototype,
                    a = i.slice,
                    n = i.filter,
                    r = /^#[\w-]*$/,
                    o = /^\.[\w-]*$/,
                    h = /^[\w-]*$/;

                function u(t, i) {
                    return new u.fn.init(t, i)
                }
                var t = u.fn = u.prototype = {
                    cash: !0,
                    length: 0
                };
                t.init = function(t, i) {
                    var n, e, s = [];
                    if (!t) return this;
                    if (this.length = 1, "string" != typeof t) return t.cash ? t : (this[0] = t, this);
                    if ("<" === t.charAt(0) && ">" === t.charAt(t.length - 1) && 3 <= t.length) s = u.parseHTML(t);
                    else {
                        if (n = r.test(t), e = t.slice(1), !i && n) return this[0] = c.getElementById(e), this;
                        i = u(i)[0] || c, s = a.call(h.test(e) ? o.test(t) ? c.getElementsByClassName(e) : c.getElementsByTagName(t) : i.querySelectorAll(t))
                    }
                    return this.length = 0, u.merge(this, s), this
                }, t.init.prototype = t, u.each = function(t, i) {
                    for (var n = t.length, e = 0; e < n; e++) i.call(t[e], t[e], e, t)
                }, u.extend = t.extend = function(t, i) {
                    for (var n in i || (i = t, t = this), i) i.hasOwnProperty(n) && (t[n] = i[n]);
                    return t
                }, u.matches = function(t, i) {
                    return (t.matches || t.matchesSelector || t.msMatchesSelector || t.mozMatchesSelector || t.webkitMatchesSelector || t.oMatchesSelector).call(t, i)
                }, u.merge = function(t, i) {
                    for (var n = +i.length, e = t.length, s = 0; s < n; e++, s++) t[e] = i[s];
                    return t.length = e, t
                }, u.parseHTML = function(t) {
                    var i, n, e = /^<(\w+)\s*\/?>(?:<\/\1>|)$/.exec(t);
                    return e ? [c.createElement(e[1])] : (i = i || c.createDocumentFragment(), (n = n || i.appendChild(c.createElement("div"))).innerHTML = t, a.call((e = n).childNodes))
                }, u.unique = function(t) {
                    return u.merge(u(), a.call(t).filter(function(t, i, n) {
                        return n.indexOf(t) === i
                    }))
                };
                var s = /\S+/g;

                function l(t, i) {
                    return parseInt(e.getComputedStyle(t[0], null)[i], 10)
                }
                t.extend({
                    addClass: function(t) {
                        var i, n = t.match(s);
                        return this.each(function(t) {
                            if (i = n.length, t.classList)
                                for (; i--;) t.classList.add(n[i]);
                            else
                                for (; i--;) - 1 === (" " + t.className + " ").indexOf(" " + n[i] + " ") && (t.className += " " + n[i])
                        }), this
                    },
                    attr: function(i, n) {
                        return n ? (this.each(function(t) {
                            return t.setAttribute(i, n)
                        }), this) : this[0].getAttribute(i)
                    },
                    hasClass: function(t) {
                        return this[0].classList ? this[0].classList.contains(t) : -1 !== this[0].className.indexOf(t)
                    },
                    prop: function(t) {
                        return this[0][t]
                    },
                    removeAttr: function(i) {
                        return this.each(function(t) {
                            return t.removeAttribute(i)
                        }), this
                    },
                    removeClass: function(t) {
                        var i, n, e = t.match(s);
                        return this.each(function(t) {
                            if (i = e.length, t.classList)
                                for (; i--;) t.classList.remove(e[i]);
                            else {
                                for (n = " " + t.className + " "; i--;) n = n.replace(" " + e[i] + " ", " ");
                                t.className = n.trim()
                            }
                        }), this
                    }
                }), t.extend({
                    add: function() {
                        for (var t = a.call(this), i = 0, n = arguments.length; i < n; i++) t = t.concat(a.call(u(arguments[i])));
                        return u.unique(t)
                    },
                    each: function(t) {
                        u.each(this, t)
                    },
                    eq: function(t) {
                        return u(this[t])
                    },
                    filter: function(i) {
                        return "string" == typeof i ? n.call(this, function(t) {
                            return u.matches(t, i)
                        }) : n.call(this, i)
                    },
                    first: function() {
                        return u(this[0])
                    },
                    get: function(t) {
                        return this[t]
                    },
                    index: function(t) {
                        return (t ? a.call(u(t).children()) : a.call(u(this[0]).parent().children())).indexOf(this[0])
                    },
                    last: function() {
                        return u(this[this.length - 1])
                    }
                }), t.extend({
                    css: function(n, i) {
                        if ("object" != typeof n) return i ? (this.each(function(t) {
                            return t.style[n] = i
                        }), this) : e.getComputedStyle(this[0], null)[n];
                        this.each(function(t) {
                            for (var i in n) n.hasOwnProperty(i) && (t.style[i] = n[i])
                        })
                    }
                }), t.extend({
                    data: function(i, n) {
                        return n ? (this.each(function(t) {
                            t.dataset ? t.dataset[i] = n : u(t).attr("data-" + i, n)
                        }), this) : this[0].dataset ? this[0].dataset[i] : u(this[0]).attr("data-" + i)
                    },
                    removeData: function(i) {
                        return this.each(function(t) {
                            t.dataset ? delete t.dataset[i] : u(t).removeAttr("data-" + i)
                        }), this
                    }
                }), t.extend({
                    height: function() {
                        return this[0].getBoundingClientRect().height
                    },
                    innerWidth: function() {
                        return this[0].clientWidth
                    },
                    innerHeight: function() {
                        return this[0].clientHeight
                    },
                    outerWidth: function(t) {
                        return !0 === t ? this[0].offsetWidth + (l(this, "margin-left") || l(this, "marginLeft") || 0) + (l(this, "margin-right") || l(this, "marginRight") || 0) : this[0].offsetWidth
                    },
                    outerHeight: function(t) {
                        return !0 === t ? this[0].offsetHeight + (l(this, "margin-top") || l(this, "marginTop") || 0) + (l(this, "margin-bottom") || l(this, "marginBottom") || 0) : this[0].offsetHeight
                    },
                    width: function() {
                        return this[0].getBoundingClientRect().width
                    }
                });
                var f = {};

                function d(t, i, n) {
                    var e = u(t).data("cshid") || s() + s(!0) + s(!0) + s();

                    function s(t) {
                        var i = (Math.random().toString(16) + "000000000").substr(2, 8);
                        return t ? "-" + i.substr(0, 4) + "-" + i.substr(4, 4) : i
                    }
                    u(t).data("cshid", e), e in f || (f[e] = {}), i in f[e] || (f[e][i] = []), f[e][i].push(n)
                }
                t.extend({
                    off: function(n, e) {
                        return this.each(function(t) {
                            if (e) t.removeEventListener(n, e);
                            else
                                for (var i in f[u(t).data("cshid")][n]) t.removeEventListener(n, f[u(t).data("cshid")][n][i])
                        }), this
                    },
                    on: function(i, e, s) {
                        return "function" == typeof e ? (s = e, this.each(function(t) {
                            d(u(t), i, s), t.addEventListener(i, s)
                        })) : this.each(function(n) {
                            function t(t) {
                                var i = t.target;
                                if (u.matches(i, e)) s.call(i);
                                else {
                                    for (; !u.matches(i, e);) {
                                        if (i === n) return !1;
                                        i = i.parentNode
                                    }
                                    i && s.call(i)
                                }
                            }
                            d(u(n), i, t), n.addEventListener(i, t)
                        }), this
                    },
                    ready: function(t) {
                        this[0].addEventListener("DOMContentLoaded", t)
                    },
                    trigger: function(t) {
                        var i = c.createEvent("HTMLEvents");
                        return i.initEvent(t, !0, !1), this.each(function(t) {
                            return t.dispatchEvent(i)
                        }), this
                    }
                });
                var p = encodeURIComponent;
                return t.extend({
                    serialize: function() {
                        for (var t, i, n = this[0], e = "", s = n.elements.length - 1; 0 <= s; s--)
                            if ((t = n.elements[s]).name && "file" !== t.type && "reset" !== t.type)
                                if ("select-multiple" === t.type)
                                    for (i = n.elements[s].options.length - 1; 0 <= i; i--) t.options[i].selected && (e += "&" + t.name + "=" + p(t.options[i].value).replace(/%20/g, "+"));
                                else "submit" !== t.type && "button" !== t.type && (e += "&" + t.name + "=" + p(t.value).replace(/%20/g, "+"));
                        return e.substr(1)
                    },
                    val: function(i) {
                        return void 0 === i ? this[0].value : (this.each(function(t) {
                            return t.value = i
                        }), this)
                    }
                }), t.extend({
                    append: function(t) {
                        return this[0].appendChild(u(t)[0]), this
                    },
                    appendTo: function(t) {
                        return u(t)[0].appendChild(this[0]), this
                    },
                    clone: function() {
                        return u(this[0].cloneNode(!0))
                    },
                    empty: function() {
                        return this.each(function(t) {
                            return t.innerHTML = ""
                        }), this
                    },
                    html: function(t) {
                        var i;
                        return "undefined" === t ? this[0].innerHTML : (i = "object" == typeof t ? u(t)[0].outerHTML : t, this.each(function(t) {
                            return t.innerHTML = "" + i
                        }), this)
                    },
                    insertAfter: function(t) {
                        return u(t)[0].insertAdjacentHTML("afterend", this[0].outerHTML), this
                    },
                    insertBefore: function(t) {
                        return u(t)[0].insertAdjacentHTML("beforebegin", this[0].outerHTML), this
                    },
                    prepend: function(t) {
                        return u(this)[0].insertAdjacentHTML("afterBegin", u(t)[0].outerHTML), this
                    },
                    prependTo: function(t) {
                        return u(t)[0].insertAdjacentHTML("afterBegin", this[0].outerHTML), this
                    },
                    remove: function() {
                        this.each(function(t) {
                            return t.parentNode.removeChild(t)
                        })
                    },
                    text: function(i) {
                        return i ? (this.each(function(t) {
                            return t.textContent = i
                        }), this) : this[0].textContent
                    }
                }), t.extend({
                    children: function(i) {
                        return i ? u(this[0].children).filter(function(t) {
                            return u.matches(t, i)
                        }) : u.fn.extend(this[0].children, u.fn)
                    },
                    closest: function(t) {
                        return !t || u.matches(this[0], t) ? this : this.parent().closest(t)
                    },
                    is: function(t) {
                        return !!t && (t.cash ? this[0] === t[0] : "string" == typeof t && u.matches(this[0], t))
                    },
                    find: function(t) {
                        return u.fn.extend(this[0].querySelectorAll(t), u.fn)
                    },
                    has: function(i) {
                        return n.call(this, function(t) {
                            return 0 !== u(t).find(i).length
                        })
                    },
                    next: function() {
                        return u(this[0].nextElementSibling)
                    },
                    not: function(i) {
                        return n.call(this, function(t) {
                            return !u.matches(t, i)
                        })
                    },
                    parent: function() {
                        var t = i.map.call(this, function(t) {
                            return t.parentElement || c.body.parentNode
                        });
                        return u.unique(t)
                    },
                    parents: function(i) {
                        var n, e = [],
                            s = 0;
                        return this.each(function(t) {
                            for (n = t; n !== c.body.parentNode;) n = n.parentElement, i && !u.matches(n, i) || (e[s] = n, s++)
                        }), u.unique(e)
                    },
                    prev: function() {
                        return u(this[0].previousElementSibling)
                    },
                    siblings: function() {
                        var t = this.parent().children(),
                            i = this[0];
                        return n.call(t, function(t) {
                            return t !== i
                        })
                    }
                }), u
            }, "function" == typeof __crisp_void_define && define.amd ? define(n) : "undefined" != typeof __crisp_void_exports ? module.exports = n() : i.cash = i.$ = n(), t = a, l.prototype.init = function(t) {
                var i = (n.prototype.code = function(t) {
                    return this.parent.template.render("smiley", {
                        name: t,
                        size: 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "small"
                    })
                }, n.prototype.parse = function(t) {
                    var i, n, e = void 0,
                        s = void 0,
                        c = t;
                    for (e in this.Hu)
                        if (this.Hu.hasOwnProperty(e))
                            for (i = this.Hu[e]; null !== (n = c.match(i));) s = "small", c === n[2] && (s = "large"), n = this.code(e, s), c = c.replace(i, "$1" + n + "$3");
                    return c
                }, n.prototype.count = function(t) {
                    var i = 0,
                        n = void 0,
                        e = void 0,
                        s = t;
                    for (n in this.Hu)
                        if (this.Hu.hasOwnProperty(n))
                            for (e = this.Hu[n]; !0 === e.test(s);) i++, s = s.replace(e, "$1[]$3");
                    return i
                }, n.prototype.name = function(t) {
                    var i, n = void 0,
                        e = null;
                    for (n in this.Hu)
                        if (this.Hu.hasOwnProperty(n) && (i = this.Hu[n], t.match(i))) {
                            e = n;
                            break
                        }
                    return e
                }, n.prototype.Wu = function() {
                    var t = void 0;
                    for (t in this.Hu = {}, this.Gu) this.Hu[t] = new RegExp("(^|\\s|\\()" + this.Gu[t] + "($|\\s|\\))", "i")
                }, n);

                function n(t) {
                    this.parent = t, this.smiley_map = {
                        angry: ":@",
                        blushing: ":$",
                        confused: "x)",
                        cool: "8)",
                        crying: ":'(",
                        embarrased: ":/",
                        heart: "<3",
                        laughing: ":'D",
                        sad: ":(",
                        sick: ":S",
                        "small-smile": ":)",
                        "big-smile": ":D",
                        "thumbs-up": "+1",
                        surprised: ":o",
                        tongue: ":P",
                        winking: ";)"
                    }, this.Gu = {
                        angry: "((?:=|:)(?:-)?@)",
                        blushing: "((?:=|:)(?:-)?\\$)",
                        cool: "(8(?:-)?\\))",
                        confused: "(x(?:-)?\\))",
                        crying: "((?:=|:)'(?:-)?\\()",
                        embarrased: "((?:=|:)(?:-)?\\/)",
                        heart: "(&lt;3)",
                        laughing: "((?:=|:)(?:-)?'D)",
                        sad: "((?:=|:)(?:-)?(?:\\(|\\|))",
                        sick: "((?:=|:)(?:-)?S)",
                        "small-smile": "((?:=|:)(?:-)?\\))",
                        "big-smile": "((?:=|:)(?:-)?D)",
                        "thumbs-up": "(\\+1)",
                        surprised: "((?:=|:)(?:-)?o)",
                        tongue: "((?:=|:)(?:-)?P)",
                        winking: "(;(?:-)?\\))"
                    }, this.Wu()
                }
                var e = (s.prototype.format = function(t) {
                    for (var i, n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [], s = void 0, c = t, s = 0; s < this.Vu.length; s++) i = this.Vu[s], -1 === e.indexOf(i) && (c = this.Ku[i].bind(this)(c, n));
                    return c
                }, s.prototype.replace = function(t) {
                    for (var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [], n = void 0, e = t, n = 0; n < i.length; n++) e = e.replace("%" + (n + 1) + "s", i[n]);
                    return e
                }, s.prototype.attribute = function(t) {
                    return this.Xu(t, {}, this.Yu)
                }, s.prototype.html = function(t) {
                    return this.Xu(t, {}, !0 === (1 < arguments.length && void 0 !== arguments[1] && arguments[1]) ? this.Zu : this.Qu)
                }, s.prototype.escape_regex = function(t) {
                    return t.replace(this.tl, "\\$&")
                }, s.prototype.Xu = function(t) {
                    var i, n = void 0,
                        e = t,
                        s = (2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null) || this.Qu;
                    for (n in s) s.hasOwnProperty(n) && (i = s[n], e = e.replace(i, n));
                    return e
                }, s.prototype.il = function(t) {
                    return t.replace(/\n(\s+)?\n(\s+)?\n/g, "\n\n")
                }, s.prototype.nl = function(t) {
                    var i = this.parent.template.render("new_line", {}, 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {});
                    return t.trim().replace(/\n/g, i)
                }, s.prototype.el = function(t) {
                    var s = this,
                        c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
                    return t.replace(this.sl.email, function(t, i, n, e) {
                        return "" + i + s.parent.template.render("link_email", {
                            email: n,
                            no_external_link: s.parent.config.runtime.no_external_link || !1
                        }, c) + e
                    })
                }, s.prototype.cl = function(t) {
                    var s = this,
                        c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
                    return t.replace(this.sl.phone, function(t, i, n, e) {
                        return "" + i + s.parent.template.render("link_phone", {
                            phone: n,
                            no_external_link: s.parent.config.runtime.no_external_link || !1
                        }, c) + e
                    })
                }, s.prototype.al = function(t) {
                    var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
                    t = "\n" + t + "\n";
                    for (var n = 0; n < this.rl.length; n++) t = t.replace(this.rl[n][1], this.ol(this.rl[n], i));
                    return t = t.trim()
                }, s.prototype.hl = function(t) {
                    var s = this,
                        c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
                    return t.replace(this.sl.domain, function(t, i, n, e) {
                        return "" + i + s.parent.template.render("link_domain", {
                            domain_value: n,
                            domain_name: n,
                            no_external_link: s.parent.config.runtime.no_external_link || !1
                        }, c) + e
                    })
                }, s.prototype.ul = function(t) {
                    var s = this,
                        c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
                    return t.replace(this.sl.uri, function(t, i, n, e) {
                        return "" + i + s.parent.template.render("link_uri", {
                            uri_value: n,
                            uri_name: n,
                            no_external_link: s.parent.config.runtime.no_external_link || !1
                        }, c) + e
                    })
                }, s.prototype.ll = function(t) {
                    return this.parent.Smileys.parse(t)
                }, s.prototype.ol = function(a) {
                    var r = this,
                        o = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
                    return function(t, i, n, e, s) {
                        var c = {
                                type: null,
                                value: null,
                                url_crisp_image: r.parent.config.url.crisp_image,
                                no_external_link: r.parent.config.runtime.no_external_link || !1
                            },
                            i = ("string" == typeof i ? i : null) || "",
                            s = ("string" == typeof s ? s : null) || "";
                        return c.type = n, c.value = e, -1 !== r.fl.indexOf(a[0]) && "string" == typeof c.value && (c.value = c.value.trim()), -1 !== r.dl.indexOf(a[0]) && "string" == typeof c.value && (c.value = r.pl(c.value)), "" + i + r.parent.template.render("markdown_" + a[0], c, o) + s
                    }
                }, s.prototype.pl = function(t) {
                    return (t = this.Xu(t, {}, this.vl)).replace(this.yl, function(t) {
                        return "&#" + t.charCodeAt(0) + ";"
                    })
                }, s.prototype.ml = function(t) {
                    var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "gi",
                        n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
                    return new RegExp("" + (n.prefix || "") + t + (n.suffix || ""), i)
                }, s.prototype._l = function() {
                    this.sl = {
                        email: this.ml("([\\w\\._-]+@[\\w\\.\\/_-]+)", "gi", this.gl.links),
                        phone: this.ml("(\\+[0-9]{1,3}[ \\(\\)\\-0-9]{7,20})", "gi", this.gl.links),
                        domain: this.ml(["((?:[^<>\\(\\)\\s,@]+)(?:\\.(?:", this.wl.map(this.escape_regex.bind(this)).join("|"), ")))"].join(""), "gim", this.gl.links),
                        uri: this.ml("((?:https?|ftps?|file):(?:[^<>\\(\\)\\s,]+))", "gim", this.gl.links)
                    }
                }, s.prototype.bl = function() {
                    this.rl = [
                        ["code_block", this.ml("(`{2,3})((?:\\n+)?(?:(?!\\2).(?:\\n+)?)*)(?:\\2)", "gi", {
                            prefix: "(\\s|<[^<>]+\\/>|^)",
                            suffix: "(\\s|\\.|,|:|$)"
                        })],
                        ["code_inline", this.ml("(`{1})([^`]*)(?:\\2)", "gim", {
                            prefix: "(\\s|<[^<>]+\\/>|\\(|^)",
                            suffix: "(\\s|\\.|,|:|\\)|<\\/[^<>]+>|$)"
                        })],
                        ["title", this.ml("(#{1})(?:[\\s]+)([^#].*)", "gim", this.gl.markdown_simple)],
                        ["title", this.ml("(#{2})(?:[\\s]+)([^#].*)", "gim", this.gl.markdown_simple)],
                        ["title", this.ml("(#{3})(?:[\\s]+)([^#].*)", "gim", this.gl.markdown_simple)],
                        ["title", this.ml("(#{4})(?:[\\s]+)([^#].*)", "gim", this.gl.markdown_simple)],
                        ["title", this.ml("(#{5})(?:[\\s]+)([^#].*)", "gim", this.gl.markdown_simple)],
                        ["title", this.ml("(#{6})(?:[\\s]+)([^#].*)", "gim", this.gl.markdown_simple)],
                        ["link_image", this.ml("\\[!\\[(?:[^\\[]*)\\]\\(([^\\)]+)\\)\\]\\(([^\\)]+)\\)", "gim", this.gl.markdown_includes)],
                        ["image", this.ml("!\\[([^\\[]*)\\]\\(([^\\)]+)\\)", "gim", this.gl.markdown_includes)],
                        ["link_text", this.ml("\\[([^\\[]+)\\]\\(([^\\)]+)\\)", "gim", {
                            prefix: "(\\s|<[^<>]+\\/>|<[^a][^<>]*>|\\(|^)",
                            suffix: "(\\s|.|,|:|<[^<>]+\\/>|</[^a][^<>]*>|\\)|$)"
                        })],
                        ["youtube", this.ml("\\$\\{youtube\\}\\[([^\\[]*)\\]\\(([^\\)]+)\\)", "gim", this.gl.markdown_includes)],
                        ["vimeo", this.ml("\\$\\{vimeo\\}\\[([^\\[]*)\\]\\(([^\\)]+)\\)", "gim", this.gl.markdown_includes)],
                        ["dailymotion", this.ml("\\$\\{dailymotion\\}\\[([^\\[]*)\\]\\(([^\\)]+)\\)", "gim", this.gl.markdown_includes)],
                        ["frame", this.ml("\\$\\{frame\\}\\[([^\\[]*)\\]\\(([^\\)]+)\\)", "gim", this.gl.markdown_includes)],
                        ["bold", this.ml("(\\*\\*)(.*?)(?:\\2)", "gim", this.gl.markdown_formatting)],
                        ["underline", this.ml("(__)(.*?)(?:\\2)", "gim", this.gl.markdown_formatting)],
                        ["italic", this.ml("(\\*|_)(.*?)(?:\\2)", "gim", this.gl.markdown_formatting)],
                        ["delete", this.ml("(\\~\\~)(.*?)(?:\\2)", "gim", this.gl.markdown_formatting)],
                        ["highlight", this.ml("(\\+\\+)(.*?)(?:\\2)", "gim", this.gl.markdown_formatting)],
                        ["list", this.ml("(\\*)(?:[\\s]+)", "gim", this.gl.markdown_list)],
                        ["list", this.ml("(?:([\\d]{1,2})\\.)(?:[\\s]+)", "gim", this.gl.markdown_list)],
                        ["blockquote", this.ml("(&gt;|\\>)(?:[\\s]+)(.*)", "gim", this.gl.markdown_simple)],
                        ["emphasis", this.ml("(\\|{1})(?:[\\s]+)([^\\|].*)", "gim", this.gl.markdown_simple)],
                        ["emphasis", this.ml("(\\|{2})(?:[\\s]+)([^\\|].*)", "gim", this.gl.markdown_simple)],
                        ["emphasis", this.ml("(\\|{3})(?:[\\s]+)([^\\|].*)", "gim", this.gl.markdown_simple)],
                        ["interpolate", this.ml('(?:\\{\\{\\s*)([^\\{\\}\\|\\s]+)(?:\\s*\\|\\s*(?:(?:&quot;)|")([^&"]*)(?:(?:&quot;)|"))?(?:\\s*\\}\\})', "gim", {
                            prefix: "(\\s|\\(|^)",
                            suffix: ""
                        })],
                        ["line", this.ml("(-{3,})", "gim", {
                            prefix: "(^)(\\s+)?",
                            suffix: "(\\s|$)"
                        })],
                        ["color", this.ml("\\$\\{color\\}\\[(#[0-9A-Fa-f]{6})\\]\\(([^\\)]+)\\)", "gim", this.gl.markdown_includes)]
                    ]
                }, s);

                function s(t) {
                    this.parent = t, this.wl = ["com", "net", "org", "info", "biz", "mobi", "chat", "email", "help", "watch", "name", "pro", "aero", "asia", "cat", "coop", "edu", "gov", "int", "jobs", "mil", "museum", "post", "tel", "travel", "xxx", "xyz", "top", "site", "online", "club", "shop", "work", "app", "live", "store", "space", "website", "tech", "life", "dev", "blog", "cloud", "page", "link", "design", "group", "company", "agency", "network", "media", "immo", "ac", "ad", "ae", "af", "ag", "ai", "al", "am", "an", "ao", "aq", "ar", "as", "at", "au", "aw", "ax", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bl", "bm", "bn", "bo", "bq", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "cr", "cu", "cv", "cw", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "eu", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gb", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gs", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mf", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pw", "py", "qa", "re", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "ss", "st", "su", "sv", "sx", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tp", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "uk", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "ye", "yt", "za", "zm", "zw"], this.Zu = {
                        "&": /&amp;/g,
                        "<": /&lt;/g,
                        ">": /&gt;/g,
                        '"': /&quot;/g
                    }, this.Qu = {
                        "&amp;": /&/g,
                        "&lt;": /</g,
                        "&gt;": />/g,
                        "&quot;": /"/g
                    }, this.Yu = {
                        "\\\\": /\\/g,
                        "\\t": /\t/g,
                        "\\n": /\n/g,
                        "\\u00A0": /\u00A0/g
                    }, this.vl = {
                        "<": /&lt;/g,
                        ">": /&gt;/g
                    }, this.tl = /[-\/\\^$*+?.()|[\]{}]/g, this.yl = /([\#$\*\_\-+![\]\(\)`~><\.|{}])/g, this.gl = {
                        links: {
                            prefix: "(\\s|<[^<>]+\\/>|<[^a][^<>]*>|\\(|^)",
                            suffix: "(,|\\s|<[^<>]+\\/>|</[^a][^<>]*>|\\)|$)"
                        },
                        markdown_simple: {
                            prefix: "(^)",
                            suffix: "($)"
                        },
                        markdown_includes: {
                            prefix: "(\\s|<[^<>]+\\/>|<[^<>]+>|\\(|^)",
                            suffix: "(\\s|.|,|:|<[^<>]+\\/>|\\)|$)"
                        },
                        markdown_formatting: {
                            prefix: "(\\s|<[^<>]+\\/>|\\(|^)",
                            suffix: ""
                        },
                        markdown_list: {
                            prefix: "(^\\s*)",
                            suffix: "(.*?)($)"
                        }
                    }, this.fl = ["title", "list", "code_block", "code_inline", "blockquote", "emphasis"], this.dl = ["code_block", "code_inline"], this.Vu = ["escape", "consecutive_lines", "markdown", "links_uri", "links_domain", "emails", "phones", "smileys", "new_lines"], this.Ku = {
                        escape: this.Xu,
                        consecutive_lines: this.il,
                        new_lines: this.nl,
                        emails: this.el,
                        phones: this.cl,
                        markdown: this.al,
                        links_domain: this.hl,
                        links_uri: this.ul,
                        smileys: this.ll
                    }, this._l(), this.bl()
                }
                var c = (a.prototype.parse_first_name = function(t) {
                    return this.tu(t, 1)
                }, a.prototype.parse_last_name = function(t) {
                    return this.tu(t, 3)
                }, a.prototype.tu = function(t, i) {
                    var n = (t || "").trim();
                    return !n || (t = n.match(this.kl)) && t[i] && (n = t[i].trim()), n
                }, a);

                function a(t) {
                    this.parent = t, this.kl = /^(\S+)((?:\s+)(.+))?$/
                }
                this.xl(t), this.Smileys = new i(this), this.Parse = new e(this), this.Name = new c(this)
            }, l.prototype.xl = function(t) {
                t && t.template && (this.template = t.template), t && t.config && (this.config = t.config)
            }, t.CrispLibraryWeb = new l;
            var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                    return typeof t
                } : function(t) {
                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                },
                o = a;
            u.prototype.init = function(t) {
                var r = {},
                    i = (n.prototype.set_ignore_privacy = function() {
                        this.Fl = 0 < arguments.length && void 0 !== arguments[0] && arguments[0]
                    }, n.prototype.set_visitor_compose = function() {
                        this.jl = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0]
                    }, n.prototype.reset = function() {
                        this.n()
                    }, n.prototype.n = function() {
                        this.Fl = !1, this.jl = !0
                    }, n);

                function n(t) {
                    this.parent = t, this.n()
                }
                var e = (s.prototype.set_timeout = function(t) {
                    var i = this,
                        n = setTimeout(function() {
                            delete i.ql[n], t()
                        }, 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0);
                    return this.ql[n] = n
                }, s.prototype.clear_timeout = function(t) {
                    t in this.ql && (clearTimeout(this.ql[t]), delete this.ql[t])
                }, s.prototype.set_interval = function(t) {
                    var i = setInterval(t, 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0);
                    return this.zl[i] = i
                }, s.prototype.clear_interval = function(t) {
                    t in this.zl && (clearInterval(this.zl[t]), delete this.zl[t])
                }, s.prototype.reset = function() {
                    for (var t in this.ql) this.clear_timeout(t);
                    for (var i in this.zl) this.clear_interval(i);
                    this.n()
                }, s.prototype.n = function() {
                    this.ql = {}, this.zl = {}
                }, s);

                function s(t) {
                    this.parent = t, this.n()
                }
                var c = (a.prototype.add_event = function(t, i, n, e) {
                    var s = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : {},
                        c = this.El(t, i, n);
                    if (c in this.Cl) throw new Error("Event listener is already registered for '" + n + "' event on '" + i + "' instance, cannot re-register");
                    window[i].addEventListener(n, e, s), this.Cl[c] = [e, s]
                }, a.prototype.remove_event = function(t, i, n) {
                    var e = this.El(t, i, n);
                    e in this.Cl && (t = this.Cl[e], window[i].removeEventListener(n, t[0], t[1]), delete this.Cl[e])
                }, a.prototype.apply_patch = function(t, i, n, e, s) {
                    if ((t = this.El(t, i, n)) in this.Sl) throw new Error("Patch is already registered for '" + n + "' method on '" + i + "' instance, cannot re-register");
                    var c = e[n];
                    "function" == typeof c && (e[n] = function() {
                        var t = c.apply(e, arguments);
                        return s(arguments), t
                    }, this.Sl[t] = [e, c])
                }, a.prototype.revoke_patch = function(t, i, n) {
                    (t = this.El(t, i, n)) in this.Sl && ((i = this.Sl[t])[0][n] = i[1], delete this.Sl[t])
                }, a.prototype.reset = function() {
                    for (var t in this.Cl) null !== (t = this.Al(t)) && this.remove_event(t[0], t[1], t[2]);
                    for (var i in this.Sl) null !== (i = this.Al(i)) && this.revoke_patch(i[0], i[1], i[2]);
                    this.n()
                }, a.prototype.El = function(t, i, n) {
                    return t + ":" + i + ":" + n
                }, a.prototype.Al = function(t) {
                    return 3 === (t = t.split(":")).length ? t : null
                }, a.prototype.n = function() {
                    this.Cl = {}, this.Sl = {}
                }, a);

                function a(t) {
                    this.parent = t, this.n()
                }
                var o = (h.prototype.get_state = function() {
                    this.Il(this.parent.socket.connected || !1)
                }, h.prototype.Dl = function() {
                    var t = this;
                    this.parent.socket.on("connect", function() {
                        t.Il(!0)
                    }), this.parent.socket.on("disconnect", function() {
                        t.Il(!1)
                    }), this.parent.socket.on("reconnect_failed", function() {
                        t.Il(!1, !0)
                    })
                }, h.prototype.Il = function() {
                    this.parent.event.publish("socket:state", {
                        connected: !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0],
                        failed_reconnect: 1 < arguments.length && void 0 !== arguments[1] && arguments[1]
                    })
                }, h);

                function h(t) {
                    this.parent = t, this.Dl()
                }
                var u = (l.prototype.n = function() {
                    this.Bl = !1, this.Ul = null, this.Cl = [], this.Rl = {}, this.Ml = null, this.Nl = null, this.Ol = null, this.$l = null
                }, l.prototype.bind_to = function(t, i, n) {
                    var e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null,
                        s = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : null;
                    this.Ul = t, this.Cl = i, this.Rl = n, this.Ml = e, this.Nl = s, !0 !== this.Bl ? this.parent.stream.connect() : this.Tl()
                }, l.prototype.unbind_from = function() {
                    this.Ll(), this.parent.stream.disconnect()
                }, l.prototype.reset = function() {
                    this.n()
                }, l.prototype.Dl = function() {
                    var t = this;
                    this.parent.stream.on("connect", function() {
                        t.Bl = !0, t.Tl()
                    }), this.parent.stream.on("disconnect", function() {
                        t.Bl = !1, t.Pl()
                    }), this.parent.stream.on("socket:bound", function() {
                        t.Jl()
                    })
                }, l.prototype.Tl = function() {
                    var t;
                    this.Ol !== this.Ul || this.$l !== this.Cl ? (this.Ol = this.Ul, this.$l = this.Cl, t = [], this.Ol && t.push(this.Ol), this.parent.stream.emit("socket:bind", {
                        ray: "client",
                        events: this.$l,
                        rooms: t,
                        context: this.Rl
                    })) : this.Jl()
                }, l.prototype.Pl = function() {
                    null !== this.Nl && this.Nl(), this.Ll(), this.Ol = null, this.$l = null
                }, l.prototype.Jl = function() {
                    null !== this.Ml && this.Ml(), this.Ll()
                }, l.prototype.Ll = function() {
                    this.Ul = null, this.Cl = [], this.Rl = {}, this.Ml = null, this.Nl = null
                }, l);

                function l(t) {
                    this.parent = t, this.n(), this.Dl()
                }
                var f = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                        return typeof t
                    } : function(t) {
                        return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                    },
                    d = (p.prototype.update = function(t, i) {
                        var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : function() {},
                            e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : function() {},
                            s = {
                                ray: this.Hl(t),
                                type: t,
                                data: i
                            };
                        this.Wl.push(s.ray), this.Gl[s.ray] = {
                            success: n,
                            error: e
                        }, this.parent.socket.emit("storage:sync:update", s), this.parent.event.publish("storage:sync:update", s)
                    }, p.prototype.get_stamp_local = function(t) {
                        var i = this.Vl(t, 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : []);
                        return "object" === f(window.localStorage) && window.localStorage.getItem(i) || ""
                    }, p.prototype.set_stamp_local = function(t) {
                        var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [],
                            n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "",
                            i = this.Vl(t, i);
                        return "object" === f(window.localStorage) && (window.localStorage.setItem(i, n), !0)
                    }, p.prototype.is_syncing_storage = function() {
                        return 0 < this.Wl.length && !0
                    }, p.prototype.reset = function() {
                        this.n()
                    }, p.prototype.Vl = function(t) {
                        var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [],
                            n = this.Kl + "/" + t;
                        return 0 < i.length && (n += "/" + i.join("/")), n
                    }, p.prototype.n = function() {
                        this.Xl = 1, this.Yl = 0, this.Gl = {}, this.Wl = []
                    }, p.prototype.Dl = function() {
                        this.parent.socket.on("storage:sync:updated", this.Zl.d(this))
                    }, p.prototype.Zl = function(t) {
                        var i;
                        "object" === f(this.Gl[t.ray]) && (t.error ? this.Gl[t.ray].error() : this.Gl[t.ray].success(), delete this.Gl[t.ray], -1 !== (i = this.Wl.indexOf(t.ray)) && this.Wl.splice(i, 1)), this.parent.event.publish("storage:sync:updated", t)
                    }, p.prototype.Hl = function(t) {
                        return t + "/" + Math.floor(Math.random() * this.Ql) + "/" + this.Yl++
                    }, p);

                function p(t) {
                    this.parent = t, this.Ql = 1e5, this.Kl = "crisp-client", this.n(), this.Dl()
                }
                var v = (y.prototype.update_message = function(t, i) {
                    this.parent.socket.emit("message:update", i = {
                        fingerprint: t,
                        content: i
                    }), this.tf(i, "local")
                }, y.prototype.send_raw_message = function(t) {
                    var i, n = this,
                        e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0; - 1 === this.if.indexOf(t.fingerprint) && this.if.push(t.fingerprint), this.parent.platform_name && this.parent.platform_signature_key && (_signature_data = [this.parent.Session.vt, t.fingerprint, t.type], (i = this.parent.sha256.hmac.create(this.parent.platform_signature_key.split("/").map(function(t) {
                        return String.fromCharCode(parseInt(t, 36))
                    }).join(""))).update("[" + _signature_data.join("|") + "]"), t.signature = this.parent.platform_name + ":" + i.hex()), this.parent.event.publish("message:send", t), this.parent.Schedule.set_timeout(function() {
                        n.parent.socket.emit("message:send", t)
                    }, e)
                }, y.prototype.send_text_message = function(t) {
                    var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0;
                    this.send_raw_message({
                        type: "text",
                        origin: "chat",
                        content: t,
                        timestamp: (new Date).getTime(),
                        fingerprint: this.nf()
                    }, i)
                }, y.prototype.send_file_message = function(t, i, n) {
                    var e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : 0;
                    this.send_raw_message({
                        type: "file",
                        origin: "chat",
                        content: {
                            name: t,
                            url: i,
                            type: n
                        },
                        timestamp: (new Date).getTime(),
                        fingerprint: this.nf()
                    }, e)
                }, y.prototype.send_animation_message = function(t, i) {
                    var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 0;
                    this.send_raw_message({
                        type: "animation",
                        origin: "chat",
                        content: {
                            url: t,
                            type: i
                        },
                        timestamp: (new Date).getTime(),
                        fingerprint: this.nf()
                    }, n)
                }, y.prototype.send_audio_message = function(t, i, n) {
                    var e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : 0;
                    this.send_raw_message({
                        type: "audio",
                        origin: "chat",
                        content: {
                            url: t,
                            type: i,
                            duration: n
                        },
                        timestamp: (new Date).getTime(),
                        fingerprint: this.nf()
                    }, e)
                }, y.prototype.send_picker_message = function(t, i, n) {
                    var e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : 0;
                    this.send_raw_message({
                        type: "picker",
                        origin: "chat",
                        content: {
                            id: t,
                            text: i,
                            choices: n
                        },
                        timestamp: (new Date).getTime(),
                        fingerprint: this.nf()
                    }, e)
                }, y.prototype.send_field_message = function(t, i, n) {
                    var e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : 0;
                    this.send_raw_message({
                        type: "field",
                        origin: "chat",
                        content: {
                            id: t,
                            text: i,
                            explain: n
                        },
                        timestamp: (new Date).getTime(),
                        fingerprint: this.nf()
                    }, e)
                }, y.prototype.send_message_compose = function(t) {
                    var i = this,
                        n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;
                    (!0 !== this.parent.Config.Fl && "1" === (navigator || {}).doNotTrack || !1 === this.parent.Config.jl) && (n = null);
                    var n = this.ef(n),
                        e = t !== this.sf.local.type && !0;
                    (1 == e || n !== (this.sf.local.excerpt || null) || "start" === this.sf.local.type && this.cf && (new Date).getTime() - this.cf >= this.af) && (this.cf = (new Date).getTime(), this.sf.local = {
                        type: t
                    }, n && (this.sf.local.excerpt = n), 1 == e && null !== this.rf && (this.parent.Schedule.clear_timeout(this.rf), this.rf = null), null === this.rf && (this.rf = this.parent.Schedule.set_timeout(function() {
                        i.rf = null, i.parent.socket.emit("message:compose:send", i.sf.local), i.parent.event.publish("message:compose:send", i.sf.local)
                    }, 1 == e ? 0 : this.hf)))
                }, y.prototype.send_message_thread = function(t) {
                    var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "",
                        n = {
                            type: t
                        };
                    i && (n.text = i), this.parent.socket.emit("message:thread", n), this.parent.event.publish("message:thread", n)
                }, y.prototype.receive_message_local = function(t, i, n) {
                    var e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null,
                        e = {
                            from: "operator",
                            type: t,
                            origin: "local",
                            timestamp: (new Date).getTime(),
                            content: i,
                            fingerprint: null !== e ? e : this.nf(),
                            user: n
                        };
                    this.parent.socket.emit("message:received:local", e), this.uf(e)
                }, y.prototype.receive_message_mirror = function(t, i, n, e) {
                    e = {
                        from: "operator",
                        type: t,
                        origin: i,
                        timestamp: (new Date).getTime(),
                        content: n,
                        fingerprint: e
                    }, this.parent.socket.emit("message:received:mirror", e)
                }, y.prototype.get_message_compose = function() {
                    this.parent.event.publish("message:compose:received", this.sf.remote)
                }, y.prototype.get_cached_messages = function() {
                    return this.lf
                }, y.prototype.count_message_history = function() {
                    return this.lf.length
                }, y.prototype.count_message_history_diff = function() {
                    return this.ff.length
                }, y.prototype.get_message_history = function() {
                    for (var t = 0; t < this.lf.length; t++) {
                        var i = this.lf[t];
                        i.origin = "history", i.index = {
                            current: t + 1,
                            total: this.lf.length
                        }, i.is_me ? this.parent.event.publish("history:message:sent", i) : this.parent.event.publish("history:message:received", i)
                    }
                    for (var n = 0; n < this.ff.length; n++) this.df(this.ff[n], "diff");
                    this.ff = []
                }, y.prototype.is_sending_messages = function() {
                    return 0 < this.if.length && !0
                }, y.prototype.mark_messages_as_read = function() {
                    !0 === this.pf(void 0, void 0, !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0]) && this.vf()
                }, y.prototype.set_messages_in_view = function(t) {
                    this.yf = t, this.mark_messages_as_read(!1)
                }, y.prototype.get_unread_messages = function() {
                    this.mf = -1, this.gf()
                }, y.prototype.set_unread_messages_callback = function(t) {
                    this.wf = t
                }, y.prototype.reset = function() {
                    this.n()
                }, y.prototype.bf = function(t) {
                    this.kf(t)
                }, y.prototype.xf = function(t) {
                    t && (this.sf.remote = t)
                }, y.prototype.Ff = function(t) {
                    if (t) {
                        this.jf(t);
                        for (var i = 0; i < t.length; i++) this.ff.push(t[i]);
                        this.gf()
                    }
                }, y.prototype.kf = function(t) {
                    this.lf = t = t || [], this.qf = [], this.jf(this.lf);
                    for (var i = 0; i < this.lf.length; i++) {
                        var n = this.lf[i];
                        this.qf.push(n.fingerprint), t[i].is_me || n.read || this.zf.push(n.fingerprint)
                    }
                    this.gf()
                }, y.prototype.n = function() {
                    this.lf = [], this.qf = [], this.ff = [], this.zf = [], this.if = [], this.Ef = [], this.rf = null, this.yf = !1, this.wf = function() {}, this.mf = -1, this.cf = 0, this.sf = {
                        local: {
                            type: "stop"
                        },
                        remote: {
                            type: "stop"
                        }
                    }
                }, y.prototype.Dl = function() {
                    this.parent.socket.on("message:updated", this.tf.d(this)), this.parent.socket.on("message:sent", this.Cf.d(this)), this.parent.socket.on("message:received", this.Gn.d(this)), this.parent.socket.on("message:received:local", this.uf.d(this)), this.parent.socket.on("message:compose:received", this.Sf.d(this)), this.parent.socket.on("message:acknowledge:read:send", this.Af.d(this)), this.parent.socket.on("message:acknowledge:read:received", this.If.d(this)), this.parent.socket.on("message:acknowledge:pending", this.Df.d(this))
                }, y.prototype.ef = function(t) {
                    var i = null;
                    return null === t || (t = t.match(this.Bf)) && (i = (t[1] || "").trim()), i
                }, y.prototype.Uf = function(t) {
                    this.parent.socket.emit("message:acknowledge:pending", {
                        origin: "chat",
                        fingerprints: t
                    }), this.parent.socket.emit("message:acknowledge:delivered", {
                        origin: "chat",
                        fingerprints: t
                    })
                }, y.prototype.Rf = function(t) {
                    this.parent.socket.emit("message:acknowledge:read:received", {
                        origin: "chat",
                        fingerprints: t
                    })
                }, y.prototype.Mf = function(t, i) {
                    var n = !1;
                    !1 === i && (this.zf = [], this.gf());
                    for (var e = 0; e < this.lf.length; e++) {
                        var s = this.lf[e];
                        !0 === s.read || 0 !== t.length && -1 === t.indexOf(s.fingerprint) || i === (!0 === s.is_me) && (n = s.read = !0, this.Nf(s))
                    }
                    return n
                }, y.prototype.pf = function() {
                    var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [],
                        i = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
                        n = i || !1;
                    return !1 === i && (!0 === (2 < arguments.length && void 0 !== arguments[2] && arguments[2]) || !0 === this.yf) && 0 < this.zf.length && (this.Rf(this.zf), n = !0), !0 === n && this.Mf(t, i)
                }, y.prototype.vf = function(t, i) {
                    if (0 < this.Ef.length) {
                        for (var n = [], e = 0; e < this.lf.length; e++) {
                            var s = this.lf[e]; - 1 !== this.Ef.indexOf(s.fingerprint) && (delete s.index, n.push(s))
                        }
                        this.Ef = [], this.parent.Storage.update("message", n, t, i)
                    } else "function" == typeof t && t()
                }, y.prototype.Of = function(t, i, n) {
                    null === this.$f(t.fingerprint) ? (this.qf.push(t.fingerprint), this.lf.push(t), this.pf(), this.Nf(t), this.vf(i, n)) : "function" == typeof i && i()
                }, y.prototype.$f = function(t) {
                    return 0 <= (t = this.qf.indexOf(t)) && this.lf[t] || null
                }, y.prototype.Nf = function(t) {
                    -1 === this.Ef.indexOf(t.fingerprint) && this.Ef.push(t.fingerprint)
                }, y.prototype.jf = function(t) {
                    t.sort(function(t, i) {
                        return t.timestamp < i.timestamp ? -1 : t.timestamp > i.timestamp ? 1 : 0
                    })
                }, y.prototype.nf = function() {
                    var t = "" + (new Date).getTime() + Math.ceil(100 * Math.random());
                    return t.length < 15 && (t += new Array(15 - t.length + 1).join("0")), parseInt(t, 10)
                }, y.prototype.df = function(t, i) {
                    t.is_me ? this.Cf(t, i) : this.Gn(t, i)
                }, y.prototype.gf = function() {
                    var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [],
                        i = this.zf.length;
                    i !== this.mf && (this.mf = i, "function" == typeof this.wf && this.wf(i, this.zf, [].concat(this.lf, t)))
                }, y.prototype.tf = function(t) {
                    var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "network",
                        n = this.$f(t.fingerprint);
                    null !== n && (n.content = t.content, n.edited = !0, this.df(n, "update"), "local" !== i && (this.Nf(n), this.vf()))
                }, y.prototype.Cf = function(t) {
                    var i = this,
                        n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "network",
                        e = this.if.indexOf(t.fingerprint); - 1 !== e && this.if.splice(e, 1);
                    var s = t.origin;
                    t.origin = n, t.index = {
                        current: 1,
                        total: 1
                    }, this.Of(t, function() {
                        "chat" === s || "network" !== n && "diff" !== n || i.Uf([t.fingerprint]), i.parent.event.publish("message:sent", t)
                    }), 1 === this.count_message_history() && this.parent.Session.Tf()
                }, y.prototype.Gn = function(t) {
                    var i = this,
                        n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "network",
                        e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "message:received";
                    t.origin = n, t.index = {
                        current: 1,
                        total: 1
                    }, "update" !== n && (this.zf.push(t.fingerprint), this.gf([t])), this.Of(t, function() {
                        "network" !== n && "diff" !== n || i.Uf([t.fingerprint]), i.parent.event.publish(e, t)
                    })
                }, y.prototype.uf = function(t) {
                    this.Gn(t, "local", "message:received:local")
                }, y.prototype.Sf = function(t) {
                    this.sf.remote = t, this.parent.event.publish("message:compose:received", t)
                }, y.prototype.Af = function(t) {
                    !0 === this.pf(t.fingerprints, !0) && this.vf(), this.parent.event.publish("message:acknowledge:read:send", t.fingerprints)
                }, y.prototype.If = function(t) {
                    for (var i = 0; i < t.fingerprints.length; i++) {
                        var n = this.zf.indexOf(t.fingerprints[i]); - 1 !== n && this.zf.splice(n, 1)
                    }
                    this.gf()
                }, y.prototype.Df = function(t) {
                    this.parent.event.publish("message:acknowledge:pending", t.fingerprints)
                }, y);

                function y(t) {
                    this.parent = t, this.af = 6e4, this.hf = 6e3, this.Bf = new RegExp(["(^(?:\\S+(?:(?:\\s+|\\?|\\!|\\.|\\(|\\)|:|;)|(?:[\\u4e00-\\u9fff])|(?:[\\u0e00-\\u0e7f])))+).*$"].join(""), "i"), this.n(), this.Dl()
                }
                var f = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                        return typeof t
                    } : function(t) {
                        return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                    },
                    m = (_.prototype.save = function() {
                        var t = {
                                domain: this.Lf(),
                                expires: this.Pf()
                            },
                            i = this.Jf();
                        t.sameSite = i.policy, !0 === i.secure && (t.secure = !0), this.parent.cookie.set(this.Hf(), this.vt, t), this.parent.token_id && this.parent.cookie.set(this.Hf(this.parent.token_id), this.vt, t), this.parent.event.publish("session:saved", this.vt)
                    }, _.prototype.storage_session_retrieve = function(t) {
                        this.Wf(t.state), this.parent.Message.bf(t.message)
                    }, _.prototype.sync_session_diff = function(t) {
                        this.parent.Message.xf(t.compose), this.parent.Message.Ff(t.messages)
                    }, _.prototype.sync_user_data = function(t) {
                        for (var i = 0; i < this.Gf.length; i++) {
                            var n = this.Gf[i];
                            this.Vf[n] && this.Vf[n] !== t[n] ? this["set_" + n](this.Vf[n], !0, this.Kf[n]) : this.Vf[n] = t[n] || null
                        }
                        this.Xf(t.segments || [], this.Vf.segments), this.Yf(t.data || {}, this.Vf.data)
                    }, _.prototype.send_device = function() {
                        var t = this.Zf();
                        null !== t && this.parent.socket.emit("session:device", t)
                    }, _.prototype.send_event = function() {
                        for (var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [], i = {
                                events: []
                            }, n = 0; n < t.length; n++) {
                            var e = t[n],
                                s = {
                                    text: e[0]
                                };
                            null !== e[1] && (s.data = e[1]), null !== e[2] && (s.color = e[2]), i.events.push(s)
                        }
                        0 < i.events.length && this.parent.socket.emit("session:event", i)
                    }, _.prototype.get_request_initiate = function(t) {
                        Object.keys && 0 === Object.keys(this.Qf).length && 0 < this.parent.Message.count_message_history_diff() && this.td({}), "function" == typeof t && t()
                    }, _.prototype.get_state = function(t) {
                        this.handle_state(this.Qf, t)
                    }, _.prototype.handle_state = function(t, i) {
                        this.Qf = t, this.parent.event.publish("session:state", this.Qf), "function" == typeof i && i()
                    }, _.prototype.set_state = function(t, i) {
                        for (var n in t) this.Qf[n] = t[n];
                        this.parent.Storage.update("state", t), this.sync_state(t, i)
                    }, _.prototype.sync_state = function(t, i) {
                        this.parent.socket.emit("session:state", t), "function" == typeof i && i()
                    }, _.prototype.create = function() {
                        var t = {
                            website_id: this.parent.website_id,
                            website_domain: this.parent.website_domain,
                            useragent: this.parent.device.useragent || "",
                            timezone: this.parent.device.timezone || 0,
                            capabilities: this.parent.device.capabilities || [],
                            locales: this.parent.device.locales || []
                        };
                        this.parent.token_id && (t.token_id = this.parent.token_id), this.parent.socket.emit("session:create", t)
                    }, _.prototype.get_email = function() {
                        return this.Vf.email
                    }, _.prototype.set_email = function(t) {
                        var i, n = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
                            e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null,
                            s = {};
                        null !== e && ("string" === (i = void 0 === e ? "undefined" : f(e)) ? s.verify = e : "object" === i && (s = e)), !0 === this.nd("email", t, n, s) && this.Tf()
                    }, _.prototype.get_phone = function() {
                        return this.Vf.phone
                    }, _.prototype.set_phone = function(t) {
                        this.nd("phone", t, 1 < arguments.length && void 0 !== arguments[1] && arguments[1])
                    }, _.prototype.get_nickname = function() {
                        return this.Vf.nickname
                    }, _.prototype.set_nickname = function(t) {
                        this.nd("nickname", t, 1 < arguments.length && void 0 !== arguments[1] && arguments[1])
                    }, _.prototype.get_avatar = function() {
                        return this.Vf.avatar
                    }, _.prototype.set_avatar = function(t) {
                        this.nd("avatar", t, 1 < arguments.length && void 0 !== arguments[1] && arguments[1])
                    }, _.prototype.get_company = function() {
                        return this.Vf.company
                    }, _.prototype.set_company = function(t) {
                        this.nd("company", t, 1 < arguments.length && void 0 !== arguments[1] && arguments[1])
                    }, _.prototype.get_data = function() {
                        var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null;
                        return null === t ? this.Vf.data : this.Vf.data[t] || null
                    }, _.prototype.set_data = function(t) {
                        this.Yf(this.Vf.data || {}, t)
                    }, _.prototype.set_segments = function(t) {
                        this.Xf(this.Vf.segments || [], t, 1 < arguments.length && void 0 !== arguments[1] && arguments[1])
                    }, _.prototype.mark_active = function() {
                        var t = (new Date).getTime();
                        t - Math.min(this.ed || t, this.sd || t) >= this.cd && this.ad(!0), this.ed = t
                    }, _.prototype.acquire_saved = function() {
                        var t = this.rd(),
                            i = null,
                            n = (location.search || "").match(this.od),
                            e = (document.referrer || "").match(this.hd);
                        return n && n[2] && n[2] !== t.current && (i = n[2] || null), e = (i = e && e[1] === this.parent.url_go && e[3] !== t.current ? e[3] || null : i) || t.current, i = null, {
                            session_id: e,
                            merge: i = t.previous && t.current !== t.previous && t.current === e ? t.previous : i
                        }
                    }, _.prototype.restore = function() {
                        var t = this.acquire_saved();
                        this.ud(t.session_id, t.merge)
                    }, _.prototype.join = function() {
                        var t, i = {
                            session_id: this.vt,
                            expire: this.ld,
                            storage: !0,
                            sync: 0 < arguments.length && void 0 !== arguments[0] && arguments[0],
                            useragent: this.parent.device.useragent || "",
                            timezone: this.parent.device.timezone || 0,
                            capabilities: this.parent.device.capabilities || [],
                            locales: this.parent.device.locales || []
                        };
                        this.fd || null !== (t = this.Zf()) && (i.device = t), null !== this.dd && (i.merge = {
                            session_id: this.dd
                        }), this.parent.socket.emit("session:join", i)
                    }, _.prototype.reset = function(t, i) {
                        var n = null;
                        try {
                            for (var e in this.parent) {
                                var s = this.parent[e];
                                s !== this && s && "object" === (void 0 === s ? "undefined" : f(s)) && "function" == typeof s.reset && s.reset()
                            }
                            this.pd()
                        } catch (t) {
                            n = t
                        }
                        n ? "function" == typeof i && i(n) : "function" == typeof t && t()
                    }, _.prototype.Tf = function() {
                        var t = this;
                        this.Vf.email && (this.vd && this.parent.Schedule.clear_timeout(this.vd), this.vd = this.parent.Schedule.set_timeout(function() {
                            t.vd = null, t.ad(!0)
                        }, this.yd))
                    }, _.prototype.n = function() {
                        this.vt = null, this.dd = null, this.fd = !1, this.ed = 0, this.sd = (new Date).getTime(), this.md = null, this.vd = null, this._d = null, this.gd = null, this.Vf = {}, this.Kf = {}, this.Qf = {}
                    }, _.prototype.Dl = function() {
                        var t = this;
                        this.parent.socket.on("session:created", this.wd.d(this)), this.parent.socket.on("session:joined", this.bd.d(this)), this.parent.socket.on("session:state", this.kd.d(this)), this.parent.socket.on("session:error", this.xd.d(this)), this.parent.socket.on("session:request:initiate", this.td.d(this)), this.parent.socket.on("session:request:purge", this.Fd.d(this)), this.parent.socket.on("connect", function() {
                            t.fd ? t.join(!0) : t.restore()
                        })
                    }, _.prototype.wd = function(t) {
                        var i;
                        t.error ? this.parent.event.publish("session:created", {
                            error: t.error
                        }) : (i = !!this.parent.token_id, this.vt = t.session_id, this.save(), this.join(i), this.parent.event.publish("session:created", {
                            session_id: this.vt
                        }))
                    }, _.prototype.bd = function(t) {
                        t.error ? this.parent.event.publish("session:joined", {
                            error: t.error
                        }) : (this.fd || (this.fd = !0), this.parent.Website.set_users_available(t.users_available), this.storage_session_retrieve(t.storage || {}), this.sync_session_diff(t.sync || {}), this.sync_user_data(t), this.parent.Browsing.restore_browsing_state(), this.parent.event.publish("session:joined", t), this.jd(t.last_active))
                    }, _.prototype.kd = function(t) {
                        this.handle_state(t)
                    }, _.prototype.xd = function(t) {
                        "email:invalid_format" === t.type && (delete this.Vf.email, delete this.Kf.email), this.parent.event.publish("session:error", t)
                    }, _.prototype.td = function(t) {
                        this.parent.event.publish("session:request:initiate", t)
                    }, _.prototype.Fd = function(t) {
                        this.parent.event.publish("session:request:purge", t)
                    }, _.prototype.pd = function() {
                        this.n();
                        var t = {
                            domain: this.Lf()
                        };
                        this.parent.cookie.expire(this.Hf(), t), this.parent.token_id && this.parent.cookie.expire(this.Hf(this.parent.token_id), t)
                    }, _.prototype.rd = function() {
                        var t = {
                            previous: null,
                            current: null
                        };
                        return this.parent.token_id ? (this.parent.runtime_configuration && !0 === this.parent.runtime_configuration.session_merge && (t.previous = this.parent.cookie.get(this.Hf()) || null), t.current = this.parent.cookie.get(this.Hf(this.parent.token_id)) || null) : t.current = this.parent.cookie.get(this.Hf()) || null, t
                    }, _.prototype.ud = function(t) {
                        var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;
                        null !== i && (this.dd = i), t ? (this.vt = t, this.save(), this.join(!0)) : this.create()
                    }, _.prototype.Wf = function(t) {
                        this.Qf = t || {}
                    }, _.prototype.jd = function() {
                        this.ed = (0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0) || (new Date).getTime(), this.ad()
                    }, _.prototype.ad = function() {
                        var t = this,
                            i = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                        this.md && this.parent.Schedule.clear_timeout(this.md), this.md = this.parent.Schedule.set_timeout(function() {
                            t.md = null, t.sd = (new Date).getTime(), t.parent.socket.emit("session:heartbeat", {
                                last_active: t.ed || 0,
                                availability: {
                                    type: "online",
                                    time: {
                                        for: t.ld
                                    }
                                }
                            }), t.ad()
                        }, !0 === i ? 0 : this.qd)
                    }, _.prototype.Zf = function() {
                        var t = document.location.href || "";
                        if (this._d !== t) {
                            this._d = t;
                            var i = (new Date).getTime();
                            if (i - (this.gd || 0) >= this.zd) {
                                this.gd = i;
                                var n = document.title || "";
                                if (n.length > this.Ed && (n = n.substring(0, this.Ed - this.Cd.length), n += this.Cd), !0 === this.Sd.test(t) && ("?" !== (i = (t = t.replace(this.Sd, "$1$3"))[t.length - 1]) && "&" !== i || (t = t.substr(0, t.length - 1))), (t = t.length > this.Ad ? t.split("?")[0] || "" : t) && n && t.length <= this.Ad) return t = {
                                    page_url: t,
                                    page_title: n
                                }, (n = (document.referrer || "").split("?")[0] || "") && n.length <= this.Ad && (t.page_referrer = n), t
                            }
                        }
                        return null
                    }, _.prototype.Hf = function() {
                        var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null,
                            i = [this.parent.website_id];
                        return t && i.push(t), this.parent.Storage.Vl("session", i)
                    }, _.prototype.Pf = function() {
                        return "number" == typeof this.parent.cookie_expire && 0 < this.parent.cookie_expire ? this.parent.cookie_expire : this.Id
                    }, _.prototype.Lf = function() {
                        return "string" == typeof this.parent.cookie_domain && this.parent.cookie_domain ? this.parent.cookie_domain : this.Dd()
                    }, _.prototype.Jf = function() {
                        return !0 === this.parent.runtime_configuration.cross_origin_cookies && "https:" === document.location.protocol ? {
                            policy: "none",
                            secure: !0
                        } : {
                            policy: "lax"
                        }
                    }, _.prototype.Dd = function() {
                        var t = document.domain,
                            i = t,
                            n = this.Jf(),
                            e = "samesite=" + n.policy + ";" + (!0 === n.secure ? "secure;" : "");
                        try {
                            for (var s = 0, c = i.split("."), a = this.parent.Storage.Vl("domain-detect", ["" + (new Date).getTime()]); s < c.length - 1 && -1 === document.cookie.indexOf(a + "=" + a);) i = c.slice(-1 - ++s).join("."), document.cookie = a + "=" + a + ";domain=" + i + ";" + e;
                            document.cookie = a + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=" + i + ";" + e
                        } catch (t) {} finally {
                            return i || t
                        }
                    }, _.prototype.nd = function(t, i) {
                        var n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
                            e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : {},
                            s = !1;
                        if (!0 === n ? s = !0 : i instanceof Object ? !1 === this.Bd(this.Vf[t], i) && (s = !0) : this.Vf[t] !== i && (s = !0), !0 !== s || (this.Vf[t] = i, this.Kf[t] = e, !0 !== this.fd)) return !1;
                        var c, a = {};
                        for (c in a[t] = i, e) a[c] = e[c];
                        return this.parent.socket.emit("session:set_" + t, a), !0
                    }, _.prototype.Xf = function(t) {
                        for (var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [], n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], e = [], s = 0; s < i.length; s++) {
                            var c = (i[s] || "").trim().toLowerCase();
                            c && -1 === t.indexOf(c) && e.push(c)
                        }
                        var a = void 0;
                        !0 === n ? 0 < e.length || t.length !== i.length ? (a = [].concat(i), this.Vf.segments = a) : a = [] : this.Vf.segments = t.concat(a = e), 0 < a.length && !0 === this.fd && (a = {
                            segments: a
                        }, !0 === n && (a.overwrite = !0), this.parent.socket.emit("session:set_segments", a))
                    }, _.prototype.Yf = function(t) {
                        var i, n, e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},
                            s = !1,
                            c = {};
                        for (i in e) t[i] !== e[i] && (s = !0, c[i] = e[i]);
                        for (n in this.Vf.data = t, c) this.Vf.data[n] = c[n];
                        !0 === s && !0 === this.fd && this.parent.socket.emit("session:set_data", {
                            data: c
                        })
                    }, _.prototype.Bd = function(t, i) {
                        if (t instanceof Object && i instanceof Object) {
                            var n, e, s = {};
                            for (n in t) s[n] = !0;
                            for (e in i) s[e] = !0;
                            var c, a = !0;
                            for (c in s)
                                if (!1 === this.Bd(t[c], i[c])) {
                                    a = !1;
                                    break
                                }
                            return a
                        }
                        return t === i && !0
                    }, _);

                function _(t) {
                    this.parent = t, this.hd = new RegExp("^(https?\\:\\/\\/[^/]+)\\/chat\\/resume\\/\\?target_url=(.+)&session_id=(.+)$"), this.od = /^\?.*(crisp_sid=([^&=]+)).*$/, this.Sd = /(\?.*)(crisp_sid=[^&=]+&?)(.*)$/, this.cd = 9e4, this.yd = 5e3, this.zd = 3e3, this.Ad = 240, this.Ed = 80, this.Cd = "...", this.qd = 24e4, this.ld = 3e5, this.Id = 15768e3, this.Gf = ["email", "phone", "nickname", "avatar", "company"], this.parent.disable_autoload || (this.n(), this.Dl())
                }
                var g = (w.prototype.get_users_available = function() {
                    this.Ud(!1)
                }, w.prototype.set_users_available = function(t) {
                    this.Rd = t
                }, w.prototype.reset = function() {
                    this.n()
                }, w.prototype.n = function() {
                    this.Rd = !1
                }, w.prototype.Dl = function() {
                    this.parent.socket.on("website:users:available", this.Md.d(this))
                }, w.prototype.Md = function(t) {
                    "boolean" == typeof t && (this.set_users_available(t), this.Ud(!0))
                }, w.prototype.Ud = function() {
                    this.parent.event.publish("website:users:available", {
                        available: this.Rd,
                        changed: 0 < arguments.length && void 0 !== arguments[0] && arguments[0]
                    })
                }, w);

                function w(t) {
                    this.parent = t, this.n(), this.Dl()
                }
                var b = (k.prototype.get_url_upload = function(t, i) {
                    i = {
                        id: "" + (new Date).getTime(),
                        from: "visitor",
                        file: {
                            name: t,
                            type: i
                        }
                    }, this.parent.socket.emit("bucket:url:upload:generate", i), this.parent.event.publish("bucket:url:upload:generate", i)
                }, k.prototype.Dl = function() {
                    this.parent.socket.on("bucket:url:upload:generated", this.Nd.d(this))
                }, k.prototype.Nd = function(t) {
                    this.parent.event.publish("bucket:url:upload:generated", t)
                }, k);

                function k(t) {
                    this.parent = t, this.Dl()
                }
                var x = (F.prototype.get_animation_list = function() {
                    var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null,
                        i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 1,
                        i = {
                            id: (new Date).getTime(),
                            from: "visitor",
                            list: {
                                page: i
                            }
                        };
                    t && (i.list.query = t), this.parent.socket.emit("media:animation:list", i), this.parent.event.publish("media:animation:list", i)
                }, F.prototype.Dl = function() {
                    this.parent.socket.on("media:animation:listed", this.Od.d(this))
                }, F.prototype.Od = function(t) {
                    this.parent.event.publish("media:animation:listed", t)
                }, F);

                function F(t) {
                    this.parent = t, this.Dl()
                }

                function j(t, i, n) {
                    return i in t ? Object.defineProperty(t, i, {
                        value: n,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : t[i] = n, t
                }
                var q = (z.prototype.get_article_search = function(t) {
                    var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;
                    return this.$d("search", this.Td, "query", this.Ld.d(this), t, i)
                }, z.prototype.get_article_suggest = function(t) {
                    var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;
                    return this.$d("suggest", this.Pd, "part", this.Jd.d(this), t, i)
                }, z.prototype.report_article_search = function(t) {
                    var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "";
                    (i = (i || "").trim()) && (this.parent.socket.emit("helpdesk:article:report", i = {
                        report: {
                            locale: t,
                            query: i
                        }
                    }), this.parent.event.publish("helpdesk:article:report", i))
                }, z.prototype.reset = function() {
                    this.n()
                }, z.prototype.n = function() {
                    this.Td = {}, this.Pd = {}
                }, z.prototype.Dl = function() {
                    this.parent.socket.on("helpdesk:article:searched", this.Ld.d(this)), this.parent.socket.on("helpdesk:article:suggested", this.Jd.d(this))
                }, z.prototype.Ld = function(t) {
                    return this.Hd("search", this.Td, "query", t)
                }, z.prototype.Jd = function(t) {
                    return this.Hd("suggest", this.Pd, "part", t)
                }, z.prototype.$d = function(t, i, n, e, s) {
                    var c = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : null,
                        a = (i[c || "default"] || {})[s],
                        r = "helpdesk:article:" + t,
                        o = j({
                            id: (new Date).getTime(),
                            from: "visitor"
                        }, t, j({
                            locale: c
                        }, n, s));
                    this.parent.event.publish(r, o), a ? this.parent.Schedule.set_timeout(function() {
                        e(j({
                            id: o.id,
                            results: a
                        }, t, j({
                            locale: c
                        }, n, s)))
                    }, this.Wd) : this.parent.socket.emit(r, o)
                }, z.prototype.Hd = function(t, i, n, e) {
                    var s;
                    e[t] && "string" == typeof e[t][n] && (i[s = e[t].locale || "default"] = i[s] || {}, i[s][e[t][n]] = e.results), this.parent.event.publish("helpdesk:article:" + t + "ed", e)
                }, z);

                function z(t) {
                    this.parent = t, this.Wd = 100, this.n(), this.Dl()
                }
                f = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                    return typeof t
                } : function(t) {
                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                };
                var E = (C.prototype.init = function(t, i, n) {
                    var e = this;
                    this.parent.Stream.bind_to(null, this.Gd, {
                        session_id: this.parent.Session.vt
                    }, function() {
                        -1 === (e.parent.device.capabilities || []).indexOf("browsing") || !0 !== e.parent.Config.Fl && "1" === (navigator || {}).doNotTrack ? (e.parent.stream.emit("client:browsing:request:decline", {}), e.Vd()) : (e.Kd = t.deps.tree_mirror || null, (e.Xd = !0) === t.resume ? (e.parent.stream.emit("client:browsing:resume", {
                            browsing_id: e.Yd
                        }), e.ad(!0), !0 === e.Zd && e.Qd(!0)) : (e.ad(!0), e.parent.stream.emit("client:browsing:request:accept", {
                            useragent: navigator.userAgent
                        }))), "function" == typeof i && i()
                    }, function() {
                        "function" == typeof n && n()
                    })
                }, C.prototype.restore_browsing_state = function() {
                    this.Yd && (!1 === this.t0() ? this.i0({
                        resume: !0
                    }) : this.Vd())
                }, C.prototype.toggle_ignore_scroll_event = function() {
                    this.n0 = 0 < arguments.length && void 0 !== arguments[0] && arguments[0]
                }, C.prototype.reset = function() {
                    !0 === this.Zd && this.Vd(), this.n(), this.e0()
                }, C.prototype.n = function() {
                    if (this.parent.Schedule.clear_interval(this.s0), this.parent.Schedule.clear_interval(this.c0), this.parent.Schedule.clear_interval(this.a0), this.parent.Schedule.clear_interval(this.r0), "object" === f(this.o0))
                        for (var t in this.o0) this.parent.Schedule.clear_timeout(this.o0[t]);
                    if ("object" === f(this.u0))
                        for (var i in this.u0) this.parent.Schedule.clear_timeout(this.u0[i].dead_timeout);
                    (this.l0 || {}).defer_event && this.parent.Schedule.clear_timeout(this.l0.defer_event), this.Xd = !1, this.Yd = null, this.Zd = !1, this.sd = null, this.s0 = null, this.c0 = null, this.a0 = null, this.r0 = null, this.n0 = !1, this.f0 = null, this.Kd = null, this.d0 = null, this.o0 = {}, this.p0 = [], this.u0 = {
                        assist: {
                            ongoing: !1,
                            last_heartbeat: null,
                            dead_timeout: null
                        }
                    }, this.v0 = {
                        x: 0,
                        y: 0,
                        last_x: 0,
                        last_y: 0
                    }, this.y0 = {
                        x: 0,
                        y: 0,
                        last_x: 0,
                        last_y: 0
                    }, this.l0 = {
                        last_call: (new Date).getTime(),
                        defer_event: null
                    }
                }, C.prototype.Hf = function() {
                    return this.parent.Storage.Vl("browsing", [this.parent.website_id])
                }, C.prototype.Dl = function() {
                    this.parent.socket.on("browsing:request:initiate", this.i0.d(this)), this.parent.stream.on("client:browsing:request:initiated", this.m0.d(this)), this.parent.stream.on("client:browsing:action:start", this._0.d(this)), this.parent.stream.on("client:browsing:action:stop", this.g0.d(this)), this.parent.stream.on("client:browsing:action:heartbeat", this.w0.d(this)), this.parent.stream.on("client:browsing:assist:start", this.b0.d(this)), this.parent.stream.on("client:browsing:assist:stop", this.k0.d(this)), this.parent.stream.on("client:browsing:assist:heartbeat", this.x0.d(this)), this.parent.stream.on("client:browsing:assist:mouse", this.F0.d(this)), this.parent.stream.on("client:browsing:assist:scroll", this.j0.d(this)), this.parent.stream.on("client:browsing:assist:click", this.q0.d(this))
                }, C.prototype.z0 = function() {
                    var t;
                    "object" !== f(window.sessionStorage) || (t = window.sessionStorage.getItem(this.Hf())) && (t = JSON.parse(t), this.Yd = t.browsing_id || null, this.Zd = t.is_playing || !1, this.sd = t.last_heartbeat || null)
                }, C.prototype.i0 = function(t) {
                    !0 === this.Xd && !0 !== t.resume || (!0 !== t.resume && this.Vd(), this.parent.event.publish("browsing:request:initiate", t || {}))
                }, C.prototype.m0 = function(t) {
                    !0 === this.Xd && (this.Yd = t.browsing_id, this.sd = (new Date).getTime(), this.E0())
                }, C.prototype._0 = function() {
                    !0 === this.Xd && this.Yd && this.Qd()
                }, C.prototype.g0 = function() {
                    !0 === this.Xd && this.Yd && this.Vd()
                }, C.prototype.w0 = function() {
                    !0 === this.Xd && this.Yd && (this.sd = (new Date).getTime(), this.E0())
                }, C.prototype.b0 = function() {
                    !0 === this.Xd && this.Yd && !0 === this.C0("assist") && this.parent.event.publish("browsing:assist:started", {})
                }, C.prototype.k0 = function() {
                    !0 === this.Xd && this.Yd && !0 === this.S0("assist") && this.parent.event.publish("browsing:assist:stopped", {})
                }, C.prototype.x0 = function() {
                    !0 === this.Xd && this.Yd && this.A0("assist")
                }, C.prototype.F0 = function(t) {
                    !0 === this.Xd && this.Yd && !0 === this.u0.assist.ongoing && this.parent.event.publish("browsing:assist:mouse", t)
                }, C.prototype.j0 = function(t) {
                    !0 === this.Xd && this.Yd && !0 === this.u0.assist.ongoing && this.parent.event.publish("browsing:assist:scroll", t)
                }, C.prototype.q0 = function(t) {
                    !0 === this.Xd && this.Yd && !0 === this.u0.assist.ongoing && this.parent.event.publish("browsing:assist:click", t)
                }, C.prototype.E0 = function() {
                    "object" === f(window.sessionStorage) && JSON && "function" == typeof JSON.stringify && window.sessionStorage.setItem(this.Hf(), JSON.stringify({
                        browsing_id: this.Yd,
                        is_playing: this.Zd,
                        last_heartbeat: this.sd
                    }))
                }, C.prototype.e0 = function() {
                    "object" === f(window.sessionStorage) && "object" === f(window.sessionStorage) && window.sessionStorage.removeItem(this.Hf())
                }, C.prototype.Qd = function() {
                    var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                    this.Zd = !0, this.sd = (new Date).getTime(), this.E0(), this.I0(), this.D0(!0), this.B0(!0), this.U0(!0), !0 !== t && this.parent.stream.emit("client:browsing:action:started", {})
                }, C.prototype.Vd = function() {
                    var t = this.Zd;
                    this.d0 && this.d0.disconnect(), this.n(), this.E0(), !0 === t && this.parent.stream.emit("client:browsing:action:stopped", {}), this.parent.Stream.unbind_from()
                }, C.prototype.I0 = function() {
                    var s = this;
                    if (this.R0(), this.M0(), this.N0(), this.d0) return this.O0(this.f0);
                    this.d0 = new this.Kd(document, {
                        initialize: function(t, i) {
                            s.f0 = {
                                f: "initialize",
                                args: [t, i]
                            }, s.O0(s.f0)
                        },
                        applyChanged: function(t, i, n, e) {
                            s.p0.push({
                                f: "applyChanged",
                                args: [t, i, n, e]
                            })
                        }
                    })
                }, C.prototype.O0 = function(t) {
                    t.f && t.args && "function" == typeof JSON.stringify && this.parent.stream.emit("client:browsing:stream:mirror", {
                        f: t.f,
                        args: JSON.stringify(t.args)
                    })
                }, C.prototype.M0 = function() {
                    this.parent.stream.emit("client:browsing:stream:tab", {
                        title: document.title,
                        url: document.location.href,
                        width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
                        height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
                    })
                }, C.prototype.R0 = function() {
                    this.parent.stream.emit("client:browsing:stream:mouse", {
                        x: this.v0.x,
                        y: this.v0.y
                    })
                }, C.prototype.N0 = function() {
                    this.parent.stream.emit("client:browsing:stream:scroll", {
                        x: this.y0.x,
                        y: this.y0.y
                    })
                }, C.prototype.$0 = function() {
                    this.parent.stream.emit("client:browsing:stream:click", {})
                }, C.prototype.C0 = function(t) {
                    var i = !0 !== this.u0[t].ongoing && !0;
                    return this.u0[t].ongoing = !0, this.A0(t), this.parent.stream.emit("client:browsing:" + t + ":started", {}), i
                }, C.prototype.S0 = function(t) {
                    return !0 === this.u0[t].ongoing && (this.A0(t, !1), this.u0[t].ongoing = !1, this.parent.stream.emit("client:browsing:" + t + ":stopped", {}), !0)
                }, C.prototype.A0 = function(t) {
                    var i = this,
                        n = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1];
                    !0 === this.u0[t].ongoing && (null !== this.u0[t].dead_timeout && (this.parent.Schedule.clear_timeout(this.u0[t].dead_timeout), this.u0[t].dead_timeout = null), !0 === n ? (this.u0[t].last_heartbeat = (new Date).getTime(), this.u0[t].dead_timeout = this.parent.Schedule.set_timeout(function() {
                        i.S0(t)
                    }, this.T0)) : this.u0[t].last_heartbeat = null)
                }, C.prototype.L0 = function() {
                    var i = this;
                    this.parent.Listener.add_event("browsing", "document", "mousemove", function(t) {
                        i.v0.last_x = t.pageX, i.v0.last_y = t.pageY
                    })
                }, C.prototype.P0 = function() {
                    var n = this;
                    this.parent.Listener.add_event("browsing", "window", "resize", function() {
                        null !== n.l0.defer_event && n.parent.Schedule.clear_timeout(n.l0.defer_event), n.l0.defer_event = n.parent.Schedule.set_timeout(function() {
                            n.l0.defer_event = null;
                            var t = n.l0.last_call,
                                i = (new Date).getTime();
                            n.l0.last_call = i, t && i > t + n.J0 && !0 === n.Zd && n.M0()
                        }, n.H0)
                    })
                }, C.prototype.W0 = function() {
                    var i = this;
                    this.parent.Listener.add_event("browsing", "window", "scroll", function() {
                        var t;
                        !0 !== i.n0 && (t = document.documentElement, i.y0.last_x = (window.pageXOffset || t.scrollLeft) - (t.clientLeft || 0), i.y0.last_y = (window.pageYOffset || t.scrollTop) - (t.clientTop || 0))
                    })
                }, C.prototype.G0 = function() {
                    var i = this;
                    this.parent.Listener.add_event("browsing", "window", "click", function(t) {
                        !0 !== i.Zd || t.vu || i.V0("click", function() {
                            i.$0(), i.R0()
                        })
                    })
                }, C.prototype.t0 = function() {
                    return null === this.sd || null !== this.sd && (new Date).getTime() - this.sd >= this.K0
                }, C.prototype.ad = function() {
                    var t = this,
                        i = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
                    null !== this.s0 && this.parent.Schedule.clear_interval(this.s0), !0 === i && (this.s0 = this.parent.Schedule.set_interval(function() {
                        t.parent.stream.emit("client:browsing:heartbeat", {}), !0 === t.t0() && t.Vd()
                    }, this.X0))
                }, C.prototype.D0 = function() {
                    var t = this,
                        i = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
                    null !== this.a0 && (this.parent.Schedule.clear_interval(this.a0), this.a0 = null), !0 === i && (this.a0 = this.parent.Schedule.set_interval(function() {
                        t.v0.last_x === t.v0.x && t.v0.last_y === t.v0.y || !0 !== t.Zd || (t.v0.x = t.v0.last_x, t.v0.y = t.v0.last_y, t.R0())
                    }, this.J0))
                }, C.prototype.B0 = function() {
                    var t = this,
                        i = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
                    null !== this.r0 && (this.parent.Schedule.clear_interval(this.r0), this.r0 = null), !0 === i && (this.r0 = this.parent.Schedule.set_interval(function() {
                        t.y0.last_x === t.y0.x && t.y0.last_y === t.y0.y || !0 !== t.Zd || (t.y0.x = t.y0.last_x, t.y0.y = t.y0.last_y, t.R0(), t.N0())
                    }, this.J0))
                }, C.prototype.U0 = function() {
                    var i = this,
                        t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
                    null !== this.c0 && this.parent.Schedule.clear_interval(this.c0), !0 === t && (this.c0 = this.parent.Schedule.set_interval(function() {
                        for (var t = 0; t < i.p0.length && !(t >= i.Y0); t++) i.O0(i.p0[t]);
                        i.p0.splice(0, i.Y0)
                    }, this.Z0))
                }, C.prototype.V0 = function(t, i) {
                    var n = this;
                    void 0 === this.o0[t] && (this.o0[t] = this.parent.Schedule.set_timeout(function() {
                        delete n.o0[t], i()
                    }, this.Q0))
                }, C);

                function C(t) {
                    this.parent = t, this.X0 = 1e4, this.K0 = 45e3, this.T0 = 45e3, this.H0 = 1e3, this.J0 = 1e3, this.Q0 = 500, this.Z0 = 1e3, this.Y0 = 10, this.Gd = ["browsing:action:start", "browsing:action:stop", "browsing:action:heartbeat", "browsing:assist:start", "browsing:assist:stop", "browsing:assist:heartbeat", "browsing:assist:mouse", "browsing:assist:scroll", "browsing:assist:click"], this.n(), this.Dl(), this.z0(), this.L0(), this.P0(), this.W0(), this.G0()
                }
                f = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                    return typeof t
                } : function(t) {
                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                };
                var S = (A.prototype.init = function(t, i, n) {
                    var e = this;
                    this.parent.Stream.bind_to(null, this.Gd, {
                        session_id: this.parent.Session.vt
                    }, function() {
                        e._u = t.mode || null, e.tp = t.ice || [], !0 === t.has_support ? (e.parent.stream.emit("client:call:request:initiated", {
                            call_id: t.call_id
                        }), e.ad(!0)) : e.parent.stream.emit("client:call:request:decline", {}), "function" == typeof i && i()
                    }, function() {
                        "function" == typeof n && n()
                    })
                }, A.prototype.accept = function() {
                    !0 === this.Xd && (this.ip = !0, this.parent.stream.emit("client:call:request:accept", {}))
                }, A.prototype.decline = function() {
                    !0 === this.Xd && (this.parent.stream.emit("client:call:request:decline", {}), this.Vd())
                }, A.prototype.stop = function() {
                    !0 === this.Xd && (this.parent.stream.emit("client:call:action:stopped", {}), this.Vd())
                }, A.prototype.toggle_audio = function() {
                    return this.np("audio", "getAudioTracks")
                }, A.prototype.toggle_video = function() {
                    return this.np("video", "getVideoTracks")
                }, A.prototype.toggle_screensharing = function() {
                    return !0 === this.Xd && null !== this.ep.local && (!1 === this.sp ? this.cp() : this.ap()), this.sp
                }, A.prototype.is_ongoing = function() {
                    return !0 === this.Xd && null !== this.rp && !0
                }, A.prototype.has_support_screensharing = function() {
                    return !(!navigator.mediaDevices || "function" != typeof navigator.mediaDevices.getDisplayMedia)
                }, A.prototype.get_stream = function(t) {
                    return this.ep[t] || null
                }, A.prototype.reset = function() {
                    !0 === this.Xd && this.Vd(), this.n()
                }, A.prototype.n = function() {
                    this.Xd = !1, this.sp = !1, this.ip = !1, this.op = !1, this.Yd = null, this.rp = null, this.s0 = null, this.hp = null, this._u = null, this.tp = [], this.ep = {
                        local: null,
                        remote: null
                    }, this.up = {
                        video: null
                    }
                }, A.prototype.Dl = function() {
                    this.parent.socket.on("call:request:initiate", this.i0.d(this)), this.parent.stream.on("client:call:request:accepted", this.lp.d(this)), this.parent.stream.on("client:call:request:declined", this.fp.d(this)), this.parent.stream.on("client:call:action:stopped", this.dp.d(this)), this.parent.stream.on("client:call:signaling:sdp", this.pp.d(this)), this.parent.stream.on("client:call:signaling:candidate", this.vp.d(this))
                }, A.prototype.i0 = function(t) {
                    !0 !== this.Xd && (t.has_support = -1 !== (this.parent.device.capabilities || []).indexOf("call"), this.Xd = !0, this.parent.event.publish("call:request:initiate", t))
                }, A.prototype.lp = function() {
                    !0 === this.Xd && !0 !== this.ip && this.Vd()
                }, A.prototype.fp = function() {
                    !0 === this.Xd && this.Vd()
                }, A.prototype.dp = function() {
                    !0 === this.Xd && this.Vd()
                }, A.prototype.pp = function(t) {
                    var i = this;
                    !0 === this.Xd && (this.yp(), "operator" === t.from && this.rp.setRemoteDescription(new RTCSessionDescription(t.sdp)).then(function() {
                        return i.parent.event.publish("call:peer:remote:success", {}), null === i.ep.local ? i.mp() : "offer" === t.sdp.type ? i._p("answer") : Promise.resolve()
                    }).catch(function() {
                        i.parent.event.publish("call:peer:remote:error", {})
                    }))
                }, A.prototype.vp = function(t) {
                    !0 === this.Xd && (this.yp(), "operator" === t.from && "object" === f(t.candidate) && null !== t.candidate && this.rp.addIceCandidate(new RTCIceCandidate({
                        sdpMLineIndex: t.candidate.sdpMLineIndex,
                        candidate: t.candidate.candidate
                    })).catch(function() {}))
                }, A.prototype.yp = function() {
                    var n = this;
                    null === this.rp && (this.rp = new RTCPeerConnection({
                        iceServers: this.tp
                    }), this.rp.onicecandidate = function(t) {
                        t && t.candidate && n.parent.stream.emit("client:call:signaling:candidate", {
                            from: "user",
                            candidate: t.candidate
                        })
                    }, this.rp.ontrack = function(t) {
                        t = t.streams[0], n.ep.remote = t, n.parent.event.publish("call:media:remote:success", {}), t.onremovetrack = function() {
                            n.parent.event.publish("call:media:remote:success", {})
                        }
                    }, this.rp.oniceconnectionstatechange = function(t) {
                        var i = n.rp;
                        null !== i && "failed" !== i.iceConnectionState && "closed" !== i.iceConnectionState || n.gp(), null !== i && "disconnected" === i.iceConnectionState && (n.hp = n.parent.Schedule.set_timeout(function() {
                            (n.hp = null) !== n.rp && "connected" === i.iceConnectionState || n.gp()
                        }, n.wp)), null !== i && "connected" === i.iceConnectionState && !0 !== n.op && n.parent.Schedule.set_timeout(function() {
                            n.mp(!0)
                        }, n.bp)
                    }, this.rp.onnegotiationneeded = function() {
                        n._p("offer")
                    }, this.rp.onclose = function() {
                        n.gp()
                    })
                }, A.prototype.mp = function() {
                    function i(t) {
                        n.parent.event.publish("call:peer:local:error", {})
                    }
                    var n = this,
                        e = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
                    this.kp(function(t) {
                        navigator.mediaDevices.getUserMedia({
                            audio: !0,
                            video: "video" === n._u && !0 === t.video
                        }).then(function(t) {
                            return n.ep.local = t, n.parent.event.publish("call:media:local:success", {
                                retried: e || !1
                            }), !0 === e && (n.op = !0), n.xp(t, e)
                        }).catch(i)
                    }, i)
                }, A.prototype.xp = function(t) {
                    var i = this,
                        n = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
                        e = t.getTracks();
                    !0 === n && this.rp.getSenders().forEach(function(t) {
                        t.track && t.track.stop(), i.rp.removeTrack(t)
                    });
                    for (var s = 0; s < e.length; s++) this.rp.addTrack(e[s], t);
                    !0 !== n && this._p("answer")
                }, A.prototype.kp = function(n, e) {
                    var s = {
                        audio: !1,
                        video: !1
                    };
                    navigator.mediaDevices && navigator.mediaDevices.enumerateDevices ? navigator.mediaDevices.enumerateDevices().then(function(t) {
                        for (var i = 0; i < t.length; i++) switch (t[i].kind) {
                            case "audioinput":
                                s.audio = !0;
                                break;
                            case "videoinput":
                                s.video = !0
                        }!0 !== s.audio ? e() : n(s)
                    }).catch(e) : n(s)
                }, A.prototype._p = function() {
                    var i = this,
                        n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "offer",
                        e = void 0;
                    return Promise.resolve().then(function() {
                        var t = {
                            OfferToReceiveAudio: !0,
                            OfferToReceiveVideo: !0
                        };
                        return "answer" === n ? i.rp.createAnswer(t) : i.rp.createOffer(t)
                    }).then(function(t) {
                        return e = t, i.rp.setLocalDescription(e)
                    }).then(function() {
                        return i.parent.stream.emit("client:call:signaling:sdp", {
                            from: "user",
                            sdp: e
                        }), i.parent.event.publish("call:peer:local:success", {}), Promise.resolve()
                    }).catch(function() {
                        return i.parent.event.publish("call:peer:local:error", {}), Promise.resolve()
                    })
                }, A.prototype.Vd = function() {
                    this.gp()
                }, A.prototype.gp = function() {
                    if (null !== this.rp) {
                        for (var t = this.rp.getSenders(), i = 0; i < t.length; i++) null !== t[i].track && t[i].track.stop();
                        null !== this.up.video && this.up.video.stop(), this.rp.close(), this.rp = null
                    }
                    null !== this.hp && (this.parent.Schedule.clear_timeout(this.hp), this.hp = null), this.parent.Stream.unbind_from(), this.Xd = !1, this.sp = !1, this.ip = !1, this.op = !1, this._u = null, this.tp = [], this.ep.local = null, this.ep.remote = null, this.up.video = null, this.ad(!1), this.parent.event.publish("call:action:stopped", {})
                }, A.prototype.np = function(t, i) {
                    var n = !1;
                    if (!0 === this.Xd && null !== this.ep.local) {
                        for (var e = !1, s = this.ep.local[i](), c = 0; c < s.length; c++) e = !0, n = !s[c].enabled, s[c].enabled = n;
                        !0 === e && this.parent.event.publish("call:track:local:" + (!0 === n ? "started" : "ended"), {
                            media: t
                        })
                    }
                    return n
                }, A.prototype.cp = function() {
                    var s = this;
                    !0 === this.has_support_screensharing() && (this.sp = !0, navigator.mediaDevices.getDisplayMedia({
                        video: !0
                    }).then(function(t) {
                        for (var t = t.getTracks()[0], i = s.rp.getSenders(), n = null, e = 0; e < i.length; e++)
                            if (i[e].track && "video" === i[e].track.kind) {
                                n = i[e];
                                break
                            }
                        null !== n ? (s.up.video = n.track, n.replaceTrack(t)) : n = s.rp.addTrack(t, s.ep.local), t.onended = function() {
                            null !== s.rp && (s.Fp(n), s.parent.event.publish("call:track:local:ended", {
                                media: "screensharing"
                            }))
                        }, s.parent.event.publish("call:track:local:started", {
                            media: "screensharing"
                        })
                    }).catch(function(t) {
                        s.sp = !1
                    }))
                }, A.prototype.ap = function() {
                    for (var t = this.rp.getSenders(), i = null, n = 0; n < t.length; n++)
                        if (t[n].track && "video" === t[n].track.kind) {
                            i = t[n];
                            break
                        }
                    null !== i && (i.track.stop(), i.track.dispatchEvent(new Event("ended")))
                }, A.prototype.Fp = function(t) {
                    null !== this.up.video ? (t.replaceTrack(this.up.video), this.up.video = null) : this.rp.removeTrack(t), this.sp = !1
                }, A.prototype.ad = function() {
                    var t = this,
                        i = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];
                    null !== this.s0 && this.parent.Schedule.clear_interval(this.s0), !0 === i && (this.s0 = this.parent.Schedule.set_interval(function() {
                        t.parent.stream.emit("client:call:heartbeat", {})
                    }, this.X0))
                }, A);

                function A(t) {
                    this.parent = t, this.X0 = 1e4, this.wp = 5e3, this.bp = 200, this.Gd = ["call:request:initiate", "call:request:accepted", "call:request:declined", "call:action:stopped", "call:signaling:sdp", "call:signaling:candidate"], this.n(), this.Dl()
                }
                var I = (D.prototype.fired = function(t, i) {
                    this.parent.socket.emit("trigger:fired", i = {
                        identifier: t,
                        name: i
                    }), this.parent.event.publish("trigger:fired", i)
                }, D);

                function D(t) {
                    this.parent = t
                }
                f = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                    return typeof t
                } : function(t) {
                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                };
                var B, U, R = (M.prototype.configure = function(t) {
                    this.jp = t.project, this.qp = t.revision, this.zp = t.environment, this.Ep = t.useragent, this.Cp = t.page
                }, M.prototype.report = function(t, i, n) {
                    if (!(this.jp && this.qp && this.zp && this.Ep && this.Cp)) throw new Error("Missing a configuration parameter. Did you call configure() before?");
                    "object" === (void 0 === n ? "undefined" : f(n)) && n instanceof Error && (n = {
                        fileName: n.fileName,
                        lineNumber: n.lineNumber,
                        columnNumber: n.columnNumber,
                        message: n.message,
                        stack: n.stack
                    }), n = {
                        project: this.jp,
                        revision: this.qp,
                        environment: this.zp,
                        useragent: this.Ep,
                        page: this.Cp,
                        level: t,
                        namespace: i,
                        traceback: n
                    }, this.parent.socket.emit("issue:report", n), this.parent.event.publish("issue:report", n)
                }, M.prototype.n = function() {
                    this.jp = null, this.qp = null, this.zp = null, this.Ep = null, this.Cp = null
                }, M);

                function M(t) {
                    this.parent = t, this.n()
                }
                B = r, U = function() {
                        return e = [function(t, i, n) {
                            function e(t, i) {
                                "object" === (void 0 === t ? "undefined" : c(t)) && (i = t, t = void 0), i = i || {};
                                var n = a(t),
                                    e = n.source,
                                    s = n.id,
                                    t = n.path,
                                    t = o[s] && t in o[s].nsps,
                                    s = i.forceNew || i["force new connection"] || !1 === i.multiplex || t ? r(e, i) : (o[s] || (o[s] = r(e, i)), o[s]);
                                return n.query && !i.query && (i.query = n.query), s.socket(n.path, i)
                            }
                            var c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                                    return typeof t
                                } : function(t) {
                                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                                },
                                a = n(1),
                                s = n(4),
                                r = n(9);
                            n(3)("socket.io-client"), t.exports = i = e;
                            var o = i.managers = {};
                            i.protocol = s.protocol, i.connect = e, i.Manager = n(9), i.Socket = n(28)
                        }, function(t, i, n) {
                            var e = n(2);
                            n(3)("socket.io-client:url"), t.exports = function(t, i) {
                                var n = t;
                                return i = i || "undefined" != typeof location && location, "string" == typeof(t = null == t ? i.protocol + "//" + i.host : t) && ("/" === t.charAt(0) && (t = "/" === t.charAt(1) ? i.protocol + t : i.host + t), /^(https?|wss?):\/\//.test(t) || (t = void 0 !== i ? i.protocol + "//" + t : "https://" + t), n = e(t)), n.port || (/^(http|ws)$/.test(n.protocol) ? n.port = "80" : /^(http|ws)s$/.test(n.protocol) && (n.port = "443")), n.path = n.path || "/", t = -1 !== n.host.indexOf(":") ? "[" + n.host + "]" : n.host, n.id = n.protocol + "://" + t + ":" + n.port, n.href = n.protocol + "://" + t + (i && i.port === n.port ? "" : ":" + n.port), n
                            }
                        }, function(t, i) {
                            var r = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
                                o = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];
                            t.exports = function(t) {
                                var i = t,
                                    n = t.indexOf("["),
                                    e = t.indexOf("]"); - 1 != n && -1 != e && (t = t.substring(0, n) + t.substring(n, e).replace(/:/g, ";") + t.substring(e, t.length));
                                for (var s = r.exec(t || ""), c = {}, a = 14; a--;) c[o[a]] = s[a] || "";
                                return -1 != n && -1 != e && (c.source = i, c.host = c.host.substring(1, c.host.length - 1).replace(/;/g, ":"), c.authority = c.authority.replace("[", "").replace("]", "").replace(/;/g, ":"), c.ipv6uri = !0), c
                            }
                        }, function(t, i) {
                            t.exports = function() {
                                return function() {}
                            }
                        }, function(t, a, i) {
                            function n() {}

                            function e(t) {
                                var i = "" + t.type;
                                if (a.BINARY_EVENT !== t.type && a.BINARY_ACK !== t.type || (i += t.attachments + "-"), t.nsp && "/" !== t.nsp && (i += t.nsp + ","), null != t.id && (i += t.id), null != t.data) {
                                    if (!1 === (t = function(t) {
                                            try {
                                                return JSON.stringify(t)
                                            } catch (t) {
                                                return !1
                                            }
                                        }(t.data))) return f;
                                    i += t
                                }
                                return i
                            }

                            function s() {
                                this.reconstructor = null
                            }

                            function c(t) {
                                this.reconPack = t, this.buffers = []
                            }

                            function r(t) {
                                return {
                                    type: a.ERROR,
                                    data: "parser error: " + t
                                }
                            }
                            var o = (i(3)("socket.io-parser"), i(5)),
                                h = i(6),
                                u = i(7),
                                l = i(8);
                            a.protocol = 4, a.types = ["CONNECT", "DISCONNECT", "EVENT", "ACK", "ERROR", "BINARY_EVENT", "BINARY_ACK"], a.CONNECT = 0, a.DISCONNECT = 1, a.EVENT = 2, a.ACK = 3, a.ERROR = 4, a.BINARY_EVENT = 5, a.BINARY_ACK = 6, a.Encoder = n, a.Decoder = s;
                            var f = a.ERROR + '"encode error"';
                            n.prototype.encode = function(t, i) {
                                var n;
                                a.BINARY_EVENT === t.type || a.BINARY_ACK === t.type ? (n = i, h.removeBlobs(t, function(t) {
                                    var i = h.deconstructPacket(t),
                                        t = e(i.packet);
                                    (i = i.buffers).unshift(t), n(i)
                                })) : i([e(t)])
                            }, o(s.prototype), s.prototype.add = function(t) {
                                var i;
                                if ("string" == typeof t) i = function(t) {
                                    var i = 0,
                                        n = {
                                            type: Number(t.charAt(0))
                                        };
                                    if (null == a.types[n.type]) return r("unknown packet type " + n.type);
                                    if (a.BINARY_EVENT === n.type || a.BINARY_ACK === n.type) {
                                        for (var e = "";
                                            "-" !== t.charAt(++i) && (e += t.charAt(i), i != t.length););
                                        if (e != Number(e) || "-" !== t.charAt(i)) throw new Error("Illegal attachments");
                                        n.attachments = Number(e)
                                    }
                                    if ("/" === t.charAt(i + 1))
                                        for (n.nsp = ""; ++i && "," !== (s = t.charAt(i)) && (n.nsp += s, i !== t.length););
                                    else n.nsp = "/";
                                    var s, c = t.charAt(i + 1);
                                    if ("" !== c && Number(c) == c) {
                                        for (n.id = ""; ++i;) {
                                            if (null == (s = t.charAt(i)) || Number(s) != s) {
                                                --i;
                                                break
                                            }
                                            if (n.id += t.charAt(i), i === t.length) break
                                        }
                                        n.id = Number(n.id)
                                    }
                                    if (t.charAt(++i)) {
                                        if (!1 === (c = function(t) {
                                                try {
                                                    return JSON.parse(t)
                                                } catch (t) {
                                                    return !1
                                                }
                                            }(t.substr(i))) || n.type !== a.ERROR && !u(c)) return r("invalid payload");
                                        n.data = c
                                    }
                                    return n
                                }(t), a.BINARY_EVENT === i.type || a.BINARY_ACK === i.type ? (this.reconstructor = new c(i), 0 === this.reconstructor.reconPack.attachments && this.emit("decoded", i)) : this.emit("decoded", i);
                                else {
                                    if (!l(t) && !t.base64) throw new Error("Unknown type: " + t);
                                    if (!this.reconstructor) throw new Error("got binary data when not reconstructing a packet");
                                    (i = this.reconstructor.takeBinaryData(t)) && (this.reconstructor = null, this.emit("decoded", i))
                                }
                            }, s.prototype.destroy = function() {
                                this.reconstructor && this.reconstructor.finishedReconstruction()
                            }, c.prototype.takeBinaryData = function(t) {
                                return this.buffers.push(t), this.buffers.length !== this.reconPack.attachments ? null : (t = h.reconstructPacket(this.reconPack, this.buffers), this.finishedReconstruction(), t)
                            }, c.prototype.finishedReconstruction = function() {
                                this.reconPack = null, this.buffers = []
                            }
                        }, function(t, i, n) {
                            function e(t) {
                                if (t) return function(t) {
                                    for (var i in e.prototype) t[i] = e.prototype[i];
                                    return t
                                }(t)
                            }(t.exports = e).prototype.on = e.prototype.addEventListener = function(t, i) {
                                return this.Sp = this.Sp || {}, (this.Sp["$" + t] = this.Sp["$" + t] || []).push(i), this
                            }, e.prototype.once = function(t, i) {
                                function n() {
                                    this.off(t, n), i.apply(this, arguments)
                                }
                                return n.fn = i, this.on(t, n), this
                            }, e.prototype.off = e.prototype.removeListener = e.prototype.removeAllListeners = e.prototype.removeEventListener = function(t, i) {
                                if (this.Sp = this.Sp || {}, 0 == arguments.length) return this.Sp = {}, this;
                                var n = this.Sp["$" + t];
                                if (!n) return this;
                                if (1 == arguments.length) return delete this.Sp["$" + t], this;
                                for (var e, s = 0; s < n.length; s++)
                                    if ((e = n[s]) === i || e.fn === i) {
                                        n.splice(s, 1);
                                        break
                                    }
                                return this
                            }, e.prototype.emit = function(t) {
                                this.Sp = this.Sp || {};
                                var i = [].slice.call(arguments, 1),
                                    n = this.Sp["$" + t];
                                if (n)
                                    for (var e = 0, s = (n = n.slice(0)).length; e < s; ++e) n[e].apply(this, i);
                                return this
                            }, e.prototype.listeners = function(t) {
                                return this.Sp = this.Sp || {}, this.Sp["$" + t] || []
                            }, e.prototype.hasListeners = function(t) {
                                return !!this.listeners(t).length
                            }
                        }, function(t, i, n) {
                            var u = n(7),
                                l = n(8),
                                n = Object.prototype.toString,
                                f = "function" == typeof Blob || "undefined" != typeof Blob && "[object BlobConstructor]" === n.call(Blob),
                                d = "function" == typeof File || "undefined" != typeof File && "[object FileConstructor]" === n.call(File);
                            i.deconstructPacket = function(t) {
                                var i = [],
                                    n = t.data;
                                return t.data = function t(i, n) {
                                    if (!i) return i;
                                    if (l(i)) {
                                        var e = {
                                            Ap: !0,
                                            num: n.length
                                        };
                                        return n.push(i), e
                                    }
                                    if (u(i)) {
                                        for (var s = new Array(i.length), c = 0; c < i.length; c++) s[c] = t(i[c], n);
                                        return s
                                    }
                                    if ("object" != typeof i || i instanceof Date) return i;
                                    var a, s = {};
                                    for (a in i) s[a] = t(i[a], n);
                                    return s
                                }(n, i), t.attachments = i.length, {
                                    packet: t,
                                    buffers: i
                                }
                            }, i.reconstructPacket = function(t, i) {
                                return t.data = function t(i, n) {
                                    if (!i) return i;
                                    if (i && i.Ap) return n[i.num];
                                    if (u(i))
                                        for (var e = 0; e < i.length; e++) i[e] = t(i[e], n);
                                    else if ("object" == typeof i)
                                        for (var s in i) i[s] = t(i[s], n);
                                    return i
                                }(t.data, i), t.attachments = void 0, t
                            }, i.removeBlobs = function(t, r) {
                                var o = 0,
                                    h = t;
                                (function t(i, n, e) {
                                    if (!i) return i;
                                    if (f && i instanceof Blob || d && i instanceof File) {
                                        o++;
                                        var s = new FileReader;
                                        s.onload = function() {
                                            e ? e[n] = this.result : h = this.result, --o || r(h)
                                        }, s.readAsArrayBuffer(i)
                                    } else if (u(i))
                                        for (var c = 0; c < i.length; c++) t(i[c], c, i);
                                    else if ("object" == typeof i && !l(i))
                                        for (var a in i) t(i[a], a, i)
                                })(h), o || r(h)
                            }
                        }, function(t, i) {
                            var n = {}.toString;
                            t.exports = Array.isArray || function(t) {
                                return "[object Array]" == n.call(t)
                            }
                        }, function(t, i) {
                            t.exports = function(t) {
                                return n && Buffer.isBuffer(t) || e && (t instanceof ArrayBuffer || s(t))
                            };
                            var n = "function" == typeof Buffer && "function" == typeof Buffer.isBuffer,
                                e = "function" == typeof ArrayBuffer,
                                s = function(t) {
                                    return "function" == typeof ArrayBuffer.isView ? ArrayBuffer.isView(t) : t.buffer instanceof ArrayBuffer
                                }
                        }, function(t, i, n) {
                            function e(t, i) {
                                if (!(this instanceof e)) return new e(t, i);
                                t && "object" === (void 0 === t ? "undefined" : s(t)) && (i = t, t = void 0), (i = i || {}).path = i.path || "/socket.io", this.nsps = {}, this.subs = [], this.opts = i, this.reconnection(!1 !== i.reconnection), this.reconnectionAttempts(i.reconnectionAttempts || 1 / 0), this.reconnectionDelay(i.reconnectionDelay || 1e3), this.reconnectionDelayMax(i.reconnectionDelayMax || 5e3), this.randomizationFactor(i.randomizationFactor || .5), this.backoff = new f({
                                    min: this.reconnectionDelay(),
                                    max: this.reconnectionDelayMax(),
                                    jitter: this.randomizationFactor()
                                }), this.timeout(null == i.timeout ? 2e4 : i.timeout), this.readyState = "closed", this.uri = t, this.connecting = [], this.lastPing = null, this.encoding = !1, this.packetBuffer = [], t = i.parser || r, this.encoder = new t.Encoder, this.decoder = new t.Decoder, this.autoConnect = !1 !== i.autoConnect, this.autoConnect && this.open()
                            }
                            var s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                                    return typeof t
                                } : function(t) {
                                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                                },
                                o = n(10),
                                c = n(28),
                                a = n(5),
                                r = n(4),
                                h = n(30),
                                u = n(31),
                                l = (n(3)("socket.io-client:manager"), n(27)),
                                f = n(32),
                                d = Object.prototype.hasOwnProperty;
                            (t.exports = e).prototype.emitAll = function() {
                                for (var t in this.emit.apply(this, arguments), this.nsps) d.call(this.nsps, t) && this.nsps[t].emit.apply(this.nsps[t], arguments)
                            }, e.prototype.updateSocketIds = function() {
                                for (var t in this.nsps) d.call(this.nsps, t) && (this.nsps[t].id = this.generateId(t))
                            }, e.prototype.generateId = function(t) {
                                return ("/" === t ? "" : t + "#") + this.engine.id
                            }, a(e.prototype), e.prototype.reconnection = function(t) {
                                return arguments.length ? (this.Ip = !!t, this) : this.Ip
                            }, e.prototype.reconnectionAttempts = function(t) {
                                return arguments.length ? (this._reconnectionAttempts = t, this) : this._reconnectionAttempts
                            }, e.prototype.reconnectionDelay = function(t) {
                                return arguments.length ? (this._reconnectionDelay = t, this.backoff && this.backoff.setMin(t), this) : this._reconnectionDelay
                            }, e.prototype.randomizationFactor = function(t) {
                                return arguments.length ? (this._randomizationFactor = t, this.backoff && this.backoff.setJitter(t), this) : this._randomizationFactor
                            }, e.prototype.reconnectionDelayMax = function(t) {
                                return arguments.length ? (this._reconnectionDelayMax = t, this.backoff && this.backoff.setMax(t), this) : this._reconnectionDelayMax
                            }, e.prototype.timeout = function(t) {
                                return arguments.length ? (this.Dp = t, this) : this.Dp
                            }, e.prototype.maybeReconnectOnOpen = function() {
                                !this.reconnecting && this.Ip && 0 === this.backoff.attempts && this.reconnect()
                            }, e.prototype.open = e.prototype.connect = function(n, t) {
                                if (~this.readyState.indexOf("open")) return this;
                                this.engine = o(this.uri, this.opts);
                                var i = this.engine,
                                    e = this;
                                this.readyState = "opening", this.skipReconnect = !1;
                                var s, c, a = h(i, "open", function() {
                                        e.onopen(), n && n()
                                    }),
                                    r = h(i, "error", function(t) {
                                        var i;
                                        e.cleanup(), e.readyState = "closed", e.emitAll("connect_error", t), n ? ((i = new Error("Connection error")).data = t, n(i)) : e.maybeReconnectOnOpen()
                                    });
                                return !1 !== this.Dp && (s = this.Dp, c = setTimeout(function() {
                                    a.destroy(), i.close(), i.emit("error", "timeout"), e.emitAll("connect_timeout", s)
                                }, s), this.subs.push({
                                    destroy: function() {
                                        clearTimeout(c)
                                    }
                                })), this.subs.push(a), this.subs.push(r), this
                            }, e.prototype.onopen = function() {
                                this.cleanup(), this.readyState = "open", this.emit("open");
                                var t = this.engine;
                                this.subs.push(h(t, "data", u(this, "ondata"))), this.subs.push(h(t, "ping", u(this, "onping"))), this.subs.push(h(t, "pong", u(this, "onpong"))), this.subs.push(h(t, "error", u(this, "onerror"))), this.subs.push(h(t, "close", u(this, "onclose"))), this.subs.push(h(this.decoder, "decoded", u(this, "ondecoded")))
                            }, e.prototype.onping = function() {
                                this.lastPing = new Date, this.emitAll("ping")
                            }, e.prototype.onpong = function() {
                                this.emitAll("pong", new Date - this.lastPing)
                            }, e.prototype.ondata = function(t) {
                                this.decoder.add(t)
                            }, e.prototype.ondecoded = function(t) {
                                this.emit("packet", t)
                            }, e.prototype.onerror = function(t) {
                                this.emitAll("error", t)
                            }, e.prototype.socket = function(t, i) {
                                function n() {
                                    ~l(e.connecting, s) || e.connecting.push(s)
                                }
                                var e, s = this.nsps[t];
                                return s || (s = new c(this, t, i), this.nsps[t] = s, e = this, s.on("connecting", n), s.on("connect", function() {
                                    s.id = e.generateId(t)
                                }), this.autoConnect && n()), s
                            }, e.prototype.destroy = function(t) {
                                ~(t = l(this.connecting, t)) && this.connecting.splice(t, 1), this.connecting.length || this.close()
                            }, e.prototype.packet = function(n) {
                                var e = this;
                                n.query && 0 === n.type && (n.nsp += "?" + n.query), e.encoding ? e.packetBuffer.push(n) : (e.encoding = !0, this.encoder.encode(n, function(t) {
                                    for (var i = 0; i < t.length; i++) e.engine.write(t[i], n.options);
                                    e.encoding = !1, e.processPacketQueue()
                                }))
                            }, e.prototype.processPacketQueue = function() {
                                var t;
                                0 < this.packetBuffer.length && !this.encoding && (t = this.packetBuffer.shift(), this.packet(t))
                            }, e.prototype.cleanup = function() {
                                for (var t = this.subs.length, i = 0; i < t; i++) this.subs.shift().destroy();
                                this.packetBuffer = [], this.encoding = !1, this.lastPing = null, this.decoder.destroy()
                            }, e.prototype.close = e.prototype.disconnect = function() {
                                this.skipReconnect = !0, this.reconnecting = !1, "opening" === this.readyState && this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.engine && this.engine.close()
                            }, e.prototype.onclose = function(t) {
                                this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.emit("close", t), this.Ip && !this.skipReconnect && this.reconnect()
                            }, e.prototype.reconnect = function() {
                                if (this.reconnecting || this.skipReconnect) return this;
                                var t, i, n = this;
                                this.backoff.attempts >= this._reconnectionAttempts ? (this.backoff.reset(), this.emitAll("reconnect_failed"), this.reconnecting = !1) : (t = this.backoff.duration(), this.reconnecting = !0, i = setTimeout(function() {
                                    n.skipReconnect || (n.emitAll("reconnect_attempt", n.backoff.attempts), n.emitAll("reconnecting", n.backoff.attempts), n.skipReconnect || n.open(function(t) {
                                        t ? (n.reconnecting = !1, n.reconnect(), n.emitAll("reconnect_error", t.data)) : n.onreconnect()
                                    }))
                                }, t), this.subs.push({
                                    destroy: function() {
                                        clearTimeout(i)
                                    }
                                }))
                            }, e.prototype.onreconnect = function() {
                                var t = this.backoff.attempts;
                                this.reconnecting = !1, this.backoff.reset(), this.updateSocketIds(), this.emitAll("reconnect", t)
                            }
                        }, function(t, i, n) {
                            t.exports = n(11), t.exports.parser = n(15)
                        }, function(t, i, n) {
                            function l(t, i) {
                                return this instanceof l ? (i = i || {}, t && "object" == typeof t && (i = t, t = null), t ? (t = r(t), i.hostname = t.host, i.secure = "https" === t.protocol || "wss" === t.protocol, i.port = t.port, t.query && (i.query = t.query)) : i.host && (i.hostname = r(i.host).host), this.secure = null != i.secure ? i.secure : "undefined" != typeof location && "https:" === location.protocol, i.hostname && !i.port && (i.port = this.secure ? "443" : "80"), this.agent = i.agent || !1, this.hostname = i.hostname || ("undefined" != typeof location ? location.hostname : "localhost"), this.port = i.port || ("undefined" != typeof location && location.port ? location.port : this.secure ? 443 : 80), this.query = i.query || {}, "string" == typeof this.query && (this.query = o.decode(this.query)), this.upgrade = !1 !== i.upgrade, this.path = (i.path || "/engine.io").replace(/\/$/, "") + "/", this.forceJSONP = !!i.forceJSONP, this.jsonp = !1 !== i.jsonp, this.forceBase64 = !!i.forceBase64, this.enablesXDR = !!i.enablesXDR, this.withCredentials = !1 !== i.withCredentials, this.timestampParam = i.timestampParam || "t", this.timestampRequests = i.timestampRequests, this.transports = i.transports || ["websocket"], this.transportOptions = i.transportOptions || {}, this.readyState = "", this.writeBuffer = [], this.prevBufferLen = 0, this.policyPort = i.policyPort || 843, this.rememberUpgrade = i.rememberUpgrade || !1, this.binaryType = null, this.onlyBinaryUpgrades = i.onlyBinaryUpgrades, this.perMessageDeflate = !1 !== i.perMessageDeflate && (i.perMessageDeflate || {}), !0 === this.perMessageDeflate && (this.perMessageDeflate = {}), this.perMessageDeflate && null == this.perMessageDeflate.threshold && (this.perMessageDeflate.threshold = 1024), this.pfx = i.pfx || null, this.key = i.key || null, this.passphrase = i.passphrase || null, this.cert = i.cert || null, this.ca = i.ca || null, this.ciphers = i.ciphers || null, this.rejectUnauthorized = void 0 === i.rejectUnauthorized || i.rejectUnauthorized, this.forceNode = !!i.forceNode, this.isReactNative = "undefined" != typeof navigator && "string" == typeof navigator.product && "reactnative" === navigator.product.toLowerCase(), "undefined" != typeof self && !this.isReactNative || (i.extraHeaders && 0 < Object.keys(i.extraHeaders).length && (this.extraHeaders = i.extraHeaders), i.localAddress && (this.localAddress = i.localAddress)), this.id = null, this.upgrades = null, this.pingInterval = null, this.pingTimeout = null, this.pingIntervalTimer = null, this.pingTimeoutTimer = null, void this.open()) : new l(t, i)
                            }
                            var e = n(12),
                                s = n(5),
                                c = (n(3)("engine.io-client:socket"), n(27)),
                                a = n(15),
                                r = n(2),
                                o = n(23);
                            (t.exports = l).priorWebsocketSuccess = !1, s(l.prototype), l.protocol = a.protocol, (l.Socket = l).Transport = n(14), l.transports = n(12), l.parser = n(15), l.prototype.createTransport = function(t) {
                                var i = function(t) {
                                    var i, n = {};
                                    for (i in t) t.hasOwnProperty(i) && (n[i] = t[i]);
                                    return n
                                }(this.query);
                                i.EIO = a.protocol, i.transport = t;
                                var n = this.transportOptions[t] || {};
                                return this.id && (i.sid = this.id), new e[t]({
                                    query: i,
                                    socket: this,
                                    agent: n.agent || this.agent,
                                    hostname: n.hostname || this.hostname,
                                    port: n.port || this.port,
                                    secure: n.secure || this.secure,
                                    path: n.path || this.path,
                                    forceJSONP: n.forceJSONP || this.forceJSONP,
                                    jsonp: n.jsonp || this.jsonp,
                                    forceBase64: n.forceBase64 || this.forceBase64,
                                    enablesXDR: n.enablesXDR || this.enablesXDR,
                                    withCredentials: n.withCredentials || this.withCredentials,
                                    timestampRequests: n.timestampRequests || this.timestampRequests,
                                    timestampParam: n.timestampParam || this.timestampParam,
                                    policyPort: n.policyPort || this.policyPort,
                                    pfx: n.pfx || this.pfx,
                                    key: n.key || this.key,
                                    passphrase: n.passphrase || this.passphrase,
                                    cert: n.cert || this.cert,
                                    ca: n.ca || this.ca,
                                    ciphers: n.ciphers || this.ciphers,
                                    rejectUnauthorized: n.rejectUnauthorized || this.rejectUnauthorized,
                                    perMessageDeflate: n.perMessageDeflate || this.perMessageDeflate,
                                    extraHeaders: n.extraHeaders || this.extraHeaders,
                                    forceNode: n.forceNode || this.forceNode,
                                    localAddress: n.localAddress || this.localAddress,
                                    requestTimeout: n.requestTimeout || this.requestTimeout,
                                    protocols: n.protocols || void 0,
                                    isReactNative: this.isReactNative
                                })
                            }, l.prototype.open = function() {
                                var t;
                                if (this.rememberUpgrade && l.priorWebsocketSuccess && -1 !== this.transports.indexOf("websocket")) t = "websocket";
                                else {
                                    if (0 === this.transports.length) {
                                        var i = this;
                                        return void setTimeout(function() {
                                            i.emit("error", "No transports available")
                                        }, 0)
                                    }
                                    t = this.transports[0]
                                }
                                this.readyState = "opening";
                                try {
                                    t = this.createTransport(t)
                                } catch (t) {
                                    return this.transports.shift(), void this.open()
                                }
                                t.open(), this.setTransport(t)
                            }, l.prototype.setTransport = function(t) {
                                var i = this;
                                this.transport && this.transport.removeAllListeners(), (this.transport = t).on("drain", function() {
                                    i.onDrain()
                                }).on("packet", function(t) {
                                    i.onPacket(t)
                                }).on("error", function(t) {
                                    i.onError(t)
                                }).on("close", function() {
                                    i.onClose("transport close")
                                })
                            }, l.prototype.probe = function(t) {
                                function i() {
                                    var t;
                                    u.onlyBinaryUpgrades && (t = !this.supportsBinary && u.transport.supportsBinary, h = h || t), h || (o.send([{
                                        type: "ping",
                                        data: "probe"
                                    }]), o.once("packet", function(t) {
                                        h || ("pong" === t.type && "probe" === t.data ? (u.upgrading = !0, u.emit("upgrading", o), o && (l.priorWebsocketSuccess = "websocket" === o.name, u.transport.pause(function() {
                                            h || "closed" !== u.readyState && (r(), u.setTransport(o), o.send([{
                                                type: "upgrade"
                                            }]), u.emit("upgrade", o), o = null, u.upgrading = !1, u.flush())
                                        }))) : ((t = new Error("probe error")).transport = o.name, u.emit("upgradeError", t)))
                                    }))
                                }

                                function n() {
                                    h || (h = !0, r(), o.close(), o = null)
                                }

                                function e(t) {
                                    (t = new Error("probe error: " + t)).transport = o.name, n(), u.emit("upgradeError", t)
                                }

                                function s() {
                                    e("transport closed")
                                }

                                function c() {
                                    e("socket closed")
                                }

                                function a(t) {
                                    o && t.name !== o.name && n()
                                }

                                function r() {
                                    o.removeListener("open", i), o.removeListener("error", e), o.removeListener("close", s), u.removeListener("close", c), u.removeListener("upgrading", a)
                                }
                                var o = this.createTransport(t, {
                                        probe: 1
                                    }),
                                    h = !1,
                                    u = this;
                                l.priorWebsocketSuccess = !1, o.once("open", i), o.once("error", e), o.once("close", s), this.once("close", c), this.once("upgrading", a), o.open()
                            }, l.prototype.onOpen = function() {
                                if (this.readyState = "open", l.priorWebsocketSuccess = "websocket" === this.transport.name, this.emit("open"), this.flush(), "open" === this.readyState && this.upgrade && this.transport.pause)
                                    for (var t = 0, i = this.upgrades.length; t < i; t++) this.probe(this.upgrades[t])
                            }, l.prototype.onPacket = function(t) {
                                if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) switch (this.emit("packet", t), this.emit("heartbeat"), t.type) {
                                    case "open":
                                        this.onHandshake(JSON.parse(t.data));
                                        break;
                                    case "pong":
                                        this.setPing(), this.emit("pong");
                                        break;
                                    case "error":
                                        var i = new Error("server error");
                                        i.code = t.data, this.onError(i);
                                        break;
                                    case "message":
                                        this.emit("data", t.data), this.emit("message", t.data)
                                }
                            }, l.prototype.onHandshake = function(t) {
                                this.emit("handshake", t), this.id = t.sid, this.transport.query.sid = t.sid, this.upgrades = this.filterUpgrades(t.upgrades), this.pingInterval = t.pingInterval, this.pingTimeout = t.pingTimeout, this.onOpen(), "closed" !== this.readyState && (this.setPing(), this.removeListener("heartbeat", this.onHeartbeat), this.on("heartbeat", this.onHeartbeat))
                            }, l.prototype.onHeartbeat = function(t) {
                                clearTimeout(this.pingTimeoutTimer);
                                var i = this;
                                i.pingTimeoutTimer = setTimeout(function() {
                                    "closed" !== i.readyState && i.onClose("ping timeout")
                                }, t || i.pingInterval + i.pingTimeout)
                            }, l.prototype.setPing = function() {
                                var t = this;
                                clearTimeout(t.pingIntervalTimer), t.pingIntervalTimer = setTimeout(function() {
                                    t.ping(), t.onHeartbeat(t.pingTimeout)
                                }, t.pingInterval)
                            }, l.prototype.ping = function() {
                                var t = this;
                                this.sendPacket("ping", function() {
                                    t.emit("ping")
                                })
                            }, l.prototype.onDrain = function() {
                                this.writeBuffer.splice(0, this.prevBufferLen), (this.prevBufferLen = 0) === this.writeBuffer.length ? this.emit("drain") : this.flush()
                            }, l.prototype.flush = function() {
                                "closed" !== this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length && (this.transport.send(this.writeBuffer), this.prevBufferLen = this.writeBuffer.length, this.emit("flush"))
                            }, l.prototype.write = l.prototype.send = function(t, i, n) {
                                return this.sendPacket("message", t, i, n), this
                            }, l.prototype.sendPacket = function(t, i, n, e) {
                                "function" == typeof i && (e = i, i = void 0), "function" == typeof n && (e = n, n = null), "closing" !== this.readyState && "closed" !== this.readyState && ((n = n || {}).compress = !1 !== n.compress, this.emit("packetCreate", n = {
                                    type: t,
                                    data: i,
                                    options: n
                                }), this.writeBuffer.push(n), e && this.once("flush", e), this.flush())
                            }, l.prototype.close = function() {
                                function t() {
                                    e.onClose("forced close"), e.transport.close()
                                }

                                function i() {
                                    e.removeListener("upgrade", i), e.removeListener("upgradeError", i), t()
                                }

                                function n() {
                                    e.once("upgrade", i), e.once("upgradeError", i)
                                }
                                var e;
                                return "opening" !== this.readyState && "open" !== this.readyState || (this.readyState = "closing", (e = this).writeBuffer.length ? this.once("drain", function() {
                                    (this.upgrading ? n : t)()
                                }) : (this.upgrading ? n : t)()), this
                            }, l.prototype.onError = function(t) {
                                l.priorWebsocketSuccess = !1, this.emit("error", t), this.onClose("transport error", t)
                            }, l.prototype.onClose = function(t, i) {
                                "opening" !== this.readyState && "open" !== this.readyState && "closing" !== this.readyState || (clearTimeout(this.pingIntervalTimer), clearTimeout(this.pingTimeoutTimer), this.transport.removeAllListeners("close"), this.transport.close(), this.transport.removeAllListeners(), this.readyState = "closed", this.id = null, this.emit("close", t, i), this.writeBuffer = [], this.prevBufferLen = 0)
                            }, l.prototype.filterUpgrades = function(t) {
                                for (var i = [], n = 0, e = t.length; n < e; n++) ~c(this.transports, t[n]) && i.push(t[n]);
                                return i
                            }
                        }, function(t, i, n) {
                            n = n(13), i.websocket = n
                        }, function(t, i, n) {
                            function e(t) {
                                t && t.forceBase64 && (this.supportsBinary = !1), this.perMessageDeflate = t.perMessageDeflate, this.usingBrowserWebSocket = s && !t.forceNode, this.protocols = t.protocols, this.usingBrowserWebSocket || (l = c), a.call(this, t)
                            }
                            var s, c, a = n(14),
                                r = n(15),
                                o = n(23),
                                h = n(24),
                                u = n(25);
                            if (n(3)("engine.io-client:websocket"), "undefined" != typeof WebSocket ? s = WebSocket : "undefined" != typeof self && (s = self.WebSocket || self.MozWebSocket), "undefined" == typeof window) try {
                                c = n(26)
                            } catch (t) {}
                            var l = s || c;
                            h(t.exports = e, a), e.prototype.name = "websocket", e.prototype.supportsBinary = !0, e.prototype.doOpen = function() {
                                if (this.check()) {
                                    var t = this.uri(),
                                        i = this.protocols,
                                        n = {
                                            agent: this.agent,
                                            perMessageDeflate: this.perMessageDeflate
                                        };
                                    n.pfx = this.pfx, n.key = this.key, n.passphrase = this.passphrase, n.cert = this.cert, n.ca = this.ca, n.ciphers = this.ciphers, n.rejectUnauthorized = this.rejectUnauthorized, this.extraHeaders && (n.headers = this.extraHeaders), this.localAddress && (n.localAddress = this.localAddress);
                                    try {
                                        this.ws = this.usingBrowserWebSocket && !this.isReactNative ? i ? new l(t, i) : new l(t) : new l(t, i, n)
                                    } catch (t) {
                                        return this.emit("error", t)
                                    }
                                    void 0 === this.ws.binaryType && (this.supportsBinary = !1), this.ws.supports && this.ws.supports.binary ? (this.supportsBinary = !0, this.ws.binaryType = "nodebuffer") : this.ws.binaryType = "arraybuffer", this.addEventListeners()
                                }
                            }, e.prototype.addEventListeners = function() {
                                var i = this;
                                this.ws.onopen = function() {
                                    i.onOpen()
                                }, this.ws.onclose = function() {
                                    i.onClose()
                                }, this.ws.onmessage = function(t) {
                                    i.onData(t.data)
                                }, this.ws.onerror = function(t) {
                                    i.onError("websocket error", t)
                                }
                            }, e.prototype.write = function(t) {
                                var e = this;
                                this.writable = !1;
                                for (var s = t.length, i = 0, n = s; i < n; i++) ! function(n) {
                                    r.encodePacket(n, e.supportsBinary, function(t) {
                                        var i;
                                        e.usingBrowserWebSocket || (i = {}, n.options && (i.compress = n.options.compress), !e.perMessageDeflate || ("string" == typeof t ? Buffer.byteLength(t) : t.length) < e.perMessageDeflate.threshold && (i.compress = !1));
                                        try {
                                            e.usingBrowserWebSocket ? e.ws.send(t) : e.ws.send(t, i)
                                        } catch (t) {}--s || (e.emit("flush"), setTimeout(function() {
                                            e.writable = !0, e.emit("drain")
                                        }, 0))
                                    })
                                }(t[i])
                            }, e.prototype.onClose = function() {
                                a.prototype.onClose.call(this)
                            }, e.prototype.doClose = function() {
                                void 0 !== this.ws && this.ws.close()
                            }, e.prototype.uri = function() {
                                var t = this.query || {},
                                    i = this.secure ? "wss" : "ws",
                                    n = "";
                                return this.port && ("wss" == i && 443 !== Number(this.port) || "ws" == i && 80 !== Number(this.port)) && (n = ":" + this.port), this.timestampRequests && (t[this.timestampParam] = u()), this.supportsBinary || (t.b64 = 1), (t = o.encode(t)).length && (t = "?" + t), i + "://" + (-1 !== this.hostname.indexOf(":") ? "[" + this.hostname + "]" : this.hostname) + n + this.path + t
                            }, e.prototype.check = function() {
                                return !(!l || "Bp" in l && this.name === e.prototype.name)
                            }
                        }, function(t, i, n) {
                            function e(t) {
                                this.path = t.path, this.hostname = t.hostname, this.port = t.port, this.secure = t.secure, this.query = t.query, this.timestampParam = t.timestampParam, this.timestampRequests = t.timestampRequests, this.readyState = "", this.agent = t.agent || !1, this.socket = t.socket, this.enablesXDR = t.enablesXDR, this.withCredentials = t.withCredentials, this.pfx = t.pfx, this.key = t.key, this.passphrase = t.passphrase, this.cert = t.cert, this.ca = t.ca, this.ciphers = t.ciphers, this.rejectUnauthorized = t.rejectUnauthorized, this.forceNode = t.forceNode, this.isReactNative = t.isReactNative, this.extraHeaders = t.extraHeaders, this.localAddress = t.localAddress
                            }
                            var s = n(15);
                            n(5)((t.exports = e).prototype), e.prototype.onError = function(t, i) {
                                return (t = new Error(t)).type = "TransportError", t.description = i, this.emit("error", t), this
                            }, e.prototype.open = function() {
                                return "closed" !== this.readyState && "" !== this.readyState || (this.readyState = "opening", this.doOpen()), this
                            }, e.prototype.close = function() {
                                return "opening" !== this.readyState && "open" !== this.readyState || (this.doClose(), this.onClose()), this
                            }, e.prototype.send = function(t) {
                                if ("open" !== this.readyState) throw new Error("Transport not open");
                                this.write(t)
                            }, e.prototype.onOpen = function() {
                                this.readyState = "open", this.writable = !0, this.emit("open")
                            }, e.prototype.onData = function(t) {
                                t = s.decodePacket(t, this.socket.binaryType), this.onPacket(t)
                            }, e.prototype.onPacket = function(t) {
                                this.emit("packet", t)
                            }, e.prototype.onClose = function() {
                                this.readyState = "closed", this.emit("close")
                            }
                        }, function(t, f, i) {
                            function c(t, i, n) {
                                for (var s = new Array(t.length), e = r(t.length, n), c = 0; c < t.length; c++)(function(n, t, e) {
                                    i(t, function(t, i) {
                                        s[n] = i, e(t, s)
                                    })
                                })(c, t[c], e)
                            }
                            var e, n = i(16),
                                a = i(17),
                                d = i(18),
                                r = i(19),
                                o = i(20);
                            "undefined" != typeof ArrayBuffer && (e = i(21));
                            var s = "undefined" != typeof navigator && /Android/i.test(navigator.userAgent),
                                h = "undefined" != typeof navigator && /PhantomJS/i.test(navigator.userAgent),
                                u = s || h;
                            f.protocol = 3;
                            var l = f.packets = {
                                    open: 0,
                                    close: 1,
                                    ping: 2,
                                    pong: 3,
                                    message: 4,
                                    upgrade: 5,
                                    noop: 6
                                },
                                p = n(l),
                                v = {
                                    type: "error",
                                    data: "parser error"
                                },
                                y = i(22);
                            f.encodePacket = function(t, a, i, n) {
                                "function" == typeof a && (n = a, a = !1), "function" == typeof i && (n = i, i = null);
                                var e, s, c, r = void 0 === t.data ? void 0 : t.data.buffer || t.data;
                                return "undefined" != typeof ArrayBuffer && r instanceof ArrayBuffer ? function(t, i, n) {
                                    if (!a) return f.encodeBase64Packet(t, n);
                                    var i = t.data,
                                        e = new Uint8Array(i),
                                        s = new Uint8Array(1 + i.byteLength);
                                    s[0] = l[t.type];
                                    for (var c = 0; c < e.length; c++) s[c + 1] = e[c];
                                    return n(s.buffer)
                                }(t, 0, n) : void 0 !== y && r instanceof y ? (e = t, c = n, (s = a) ? u ? function(t, i, n) {
                                    if (!i) return f.encodeBase64Packet(t, n);
                                    var e = new FileReader;
                                    return e.onload = function() {
                                        f.encodePacket({
                                            type: t.type,
                                            data: e.result
                                        }, i, !0, n)
                                    }, e.readAsArrayBuffer(t.data)
                                }(e, s, c) : ((s = new Uint8Array(1))[0] = l[e.type], c(new y([s.buffer, e.data]))) : f.encodeBase64Packet(e, c)) : r && r.base64 ? n("b" + f.packets[t.type] + t.data.data) : (r = l[t.type], void 0 !== t.data && (r += i ? o.encode(String(t.data), {
                                    strict: !1
                                }) : String(t.data)), n("" + r))
                            }, f.encodeBase64Packet = function(i, n) {
                                var e, s = "b" + f.packets[i.type];
                                if (void 0 !== y && i.data instanceof y) {
                                    var c = new FileReader;
                                    return c.onload = function() {
                                        var t = c.result.split(",")[1];
                                        n(s + t)
                                    }, c.readAsDataURL(i.data)
                                }
                                try {
                                    e = String.fromCharCode.apply(null, new Uint8Array(i.data))
                                } catch (t) {
                                    for (var a = new Uint8Array(i.data), r = new Array(a.length), o = 0; o < a.length; o++) r[o] = a[o];
                                    e = String.fromCharCode.apply(null, r)
                                }
                                return s += btoa(e), n(s)
                            }, f.decodePacket = function(t, i, n) {
                                if (void 0 === t) return v;
                                if ("string" != typeof t) return e = new Uint8Array(t)[0], t = d(t, 1), y && "blob" === i && (t = new y([t])), {
                                    type: p[e],
                                    data: t
                                };
                                if ("b" === t.charAt(0)) return f.decodeBase64Packet(t.substr(1), i);
                                if (n && !1 === (t = function(t) {
                                        try {
                                            t = o.decode(t, {
                                                strict: !1
                                            })
                                        } catch (t) {
                                            return !1
                                        }
                                        return t
                                    }(t))) return v;
                                var e = t.charAt(0);
                                return Number(e) == e && p[e] ? 1 < t.length ? {
                                    type: p[e],
                                    data: t.substring(1)
                                } : {
                                    type: p[e]
                                } : v
                            }, f.decodeBase64Packet = function(t, i) {
                                var n = p[t.charAt(0)];
                                return e ? (t = e.decode(t.substr(1)), {
                                    type: n,
                                    data: t = "blob" === i && y ? new y([t]) : t
                                }) : {
                                    type: n,
                                    data: {
                                        base64: !0,
                                        data: t.substr(1)
                                    }
                                }
                            }, f.encodePayload = function(t, n, e) {
                                "function" == typeof n && (e = n, n = null);
                                var s = a(t);
                                return n && s ? y && !u ? f.encodePayloadAsBlob(t, e) : f.encodePayloadAsArrayBuffer(t, e) : t.length ? void c(t, function(t, i) {
                                    f.encodePacket(t, !!s && n, !1, function(t) {
                                        i(null, t.length + ":" + t)
                                    })
                                }, function(t, i) {
                                    return e(i.join(""))
                                }) : e("0:")
                            }, f.decodePayload = function(t, i, n) {
                                if ("string" != typeof t) return f.decodePayloadAsBinary(t, i, n);
                                if ("function" == typeof i && (n = i, i = null), "" === t) return n(v, 0, 1);
                                for (var e, s, c = "", a = 0, r = t.length; a < r; a++) {
                                    var o = t.charAt(a);
                                    if (":" === o) {
                                        if ("" === c || c != (e = Number(c))) return n(v, 0, 1);
                                        if (c != (s = t.substr(a + 1, e)).length) return n(v, 0, 1);
                                        if (s.length) {
                                            if (s = f.decodePacket(s, i, !1), v.type === s.type && v.data === s.data) return n(v, 0, 1);
                                            if (!1 === n(s, a + e, r)) return
                                        }
                                        a += e, c = ""
                                    } else c += o
                                }
                                return "" !== c ? n(v, 0, 1) : void 0
                            }, f.encodePayloadAsArrayBuffer = function(t, e) {
                                return t.length ? void c(t, function(t, i) {
                                    f.encodePacket(t, !0, !0, function(t) {
                                        return i(null, t)
                                    })
                                }, function(t, i) {
                                    var n = i.reduce(function(t, i) {
                                            return t + (i = "string" == typeof i ? i.length : i.byteLength).toString().length + i + 2
                                        }, 0),
                                        a = new Uint8Array(n),
                                        r = 0;
                                    return i.forEach(function(t) {
                                        var i = "string" == typeof t,
                                            n = t;
                                        if (i) {
                                            for (var e = new Uint8Array(t.length), s = 0; s < t.length; s++) e[s] = t.charCodeAt(s);
                                            n = e.buffer
                                        }
                                        a[r++] = i ? 0 : 1;
                                        for (var c = n.byteLength.toString(), s = 0; s < c.length; s++) a[r++] = parseInt(c[s]);
                                        for (a[r++] = 255, e = new Uint8Array(n), s = 0; s < e.length; s++) a[r++] = e[s]
                                    }), e(a.buffer)
                                }) : e(new ArrayBuffer(0))
                            }, f.encodePayloadAsBlob = function(t, n) {
                                c(t, function(t, a) {
                                    f.encodePacket(t, !0, !0, function(t) {
                                        var i = new Uint8Array(1);
                                        if (i[0] = 1, "string" == typeof t) {
                                            for (var n = new Uint8Array(t.length), e = 0; e < t.length; e++) n[e] = t.charCodeAt(e);
                                            t = n.buffer, i[0] = 0
                                        }
                                        for (var s = (t instanceof ArrayBuffer ? t.byteLength : t.size).toString(), c = new Uint8Array(s.length + 1), e = 0; e < s.length; e++) c[e] = parseInt(s[e]);
                                        c[s.length] = 255, y && (i = new y([i.buffer, c.buffer, t]), a(null, i))
                                    })
                                }, function(t, i) {
                                    return n(new y(i))
                                })
                            }, f.decodePayloadAsBinary = function(t, n, e) {
                                "function" == typeof n && (e = n, n = null);
                                for (var i = t, s = []; 0 < i.byteLength;) {
                                    for (var c = new Uint8Array(i), a = 0 === c[0], r = "", o = 1; 255 !== c[o]; o++) {
                                        if (310 < r.length) return e(v, 0, 1);
                                        r += c[o]
                                    }
                                    var i = d(i, 2 + r.length),
                                        r = parseInt(r),
                                        h = d(i, 0, r);
                                    if (a) try {
                                        h = String.fromCharCode.apply(null, new Uint8Array(h))
                                    } catch (t) {
                                        for (var u = new Uint8Array(h), h = "", o = 0; o < u.length; o++) h += String.fromCharCode(u[o])
                                    }
                                    s.push(h), i = d(i, r)
                                }
                                var l = s.length;
                                s.forEach(function(t, i) {
                                    e(f.decodePacket(t, n, !0), i, l)
                                })
                            }
                        }, function(t, i) {
                            t.exports = Object.keys || function(t) {
                                var i, n = [],
                                    e = Object.prototype.hasOwnProperty;
                                for (i in t) e.call(t, i) && n.push(i);
                                return n
                            }
                        }, function(i, t, n) {
                            (function(c) {
                                var a = n(7),
                                    t = Object.prototype.toString,
                                    r = "function" == typeof c.Blob || "[object BlobConstructor]" === t.call(c.Blob),
                                    o = "function" == typeof c.File || "[object FileConstructor]" === t.call(c.File);
                                i.exports = function t(i) {
                                    if (!i || "object" != typeof i) return !1;
                                    if (a(i)) {
                                        for (var n = 0, e = i.length; n < e; n++)
                                            if (t(i[n])) return !0;
                                        return !1
                                    }
                                    if ("function" == typeof c.Buffer && c.Buffer.isBuffer && c.Buffer.isBuffer(i) || "function" == typeof c.ArrayBuffer && i instanceof ArrayBuffer || r && i instanceof Blob || o && i instanceof File) return !0;
                                    if (i.toJSON && "function" == typeof i.toJSON && 1 === arguments.length) return t(i.toJSON(), !0);
                                    for (var s in i)
                                        if (Object.prototype.hasOwnProperty.call(i, s) && t(i[s])) return !0;
                                    return !1
                                }
                            }).call(t, function() {
                                return this
                            }())
                        }, function(t, i) {
                            t.exports = function(t, i, n) {
                                var e = t.byteLength;
                                if (i = i || 0, n = n || e, t.slice) return t.slice(i, n);
                                if (i < 0 && (i += e), n < 0 && (n += e), e < n && (n = e), e <= i || n <= i || 0 === e) return new ArrayBuffer(0);
                                for (var s = new Uint8Array(t), c = new Uint8Array(n - i), a = i, r = 0; a < n; a++, r++) c[r] = s[a];
                                return c.buffer
                            }
                        }, function(t, i) {
                            function a() {}
                            t.exports = function(t, n, e) {
                                function s(t, i) {
                                    if (s.count <= 0) throw new Error("after called too many times");
                                    --s.count, t ? (c = !0, n(t), n = e) : 0 !== s.count || c || n(null, i)
                                }
                                var c = !1;
                                return e = e || a, 0 === (s.count = t) ? n() : s
                            }
                        }, function(t, i) {
                            function r(t) {
                                for (var i, n, e = [], s = 0, c = t.length; s < c;) 55296 <= (i = t.charCodeAt(s++)) && i <= 56319 && s < c ? 56320 == (64512 & (n = t.charCodeAt(s++))) ? e.push(((1023 & i) << 10) + (1023 & n) + 65536) : (e.push(i), s--) : e.push(i);
                                return e
                            }

                            function o(t, i) {
                                if (!(55296 <= t && t <= 57343)) return 1;
                                if (i) throw Error("Lone surrogate U+" + t.toString(16).toUpperCase() + " is not a scalar value")
                            }

                            function h(t, i) {
                                return f(t >> i & 63 | 128)
                            }

                            function c() {
                                if (u <= l) throw Error("Invalid byte index");
                                var t = 255 & a[l];
                                if (l++, 128 == (192 & t)) return 63 & t;
                                throw Error("Invalid continuation byte")
                            }
                            var a, u, l, f = String.fromCharCode;
                            t.exports = {
                                version: "2.1.2",
                                encode: function(t, i) {
                                    for (var n = !1 !== (i = i || {}).strict, e = r(t), s = e.length, c = -1, a = ""; ++c < s;) a += function(t, i) {
                                        if (0 == (4294967168 & t)) return f(t);
                                        var n = "";
                                        return 0 == (4294965248 & t) ? n = f(t >> 6 & 31 | 192) : 0 == (4294901760 & t) ? (o(t, i) || (t = 65533), n = f(t >> 12 & 15 | 224), n += h(t, 6)) : 0 == (4292870144 & t) && (n = f(t >> 18 & 7 | 240), n += h(t, 12), n += h(t, 6)), n + f(63 & t | 128)
                                    }(e[c], n);
                                    return a
                                },
                                decode: function(t, i) {
                                    var n = !1 !== (i = i || {}).strict;
                                    a = r(t), u = a.length, l = 0;
                                    for (var e, s = []; !1 !== (e = function(t) {
                                            var i, n;
                                            if (u < l) throw Error("Invalid byte index");
                                            if (l == u) return !1;
                                            if (i = 255 & a[l], l++, 0 == (128 & i)) return i;
                                            if (192 == (224 & i)) {
                                                if (128 <= (n = (31 & i) << 6 | c())) return n;
                                                throw Error("Invalid continuation byte")
                                            }
                                            if (224 == (240 & i)) {
                                                if (2048 <= (n = (15 & i) << 12 | c() << 6 | c())) return o(n, t) ? n : 65533;
                                                throw Error("Invalid continuation byte")
                                            }
                                            if (240 == (248 & i) && 65536 <= (n = (7 & i) << 18 | c() << 12 | c() << 6 | c()) && n <= 1114111) return n;
                                            throw Error("Invalid UTF-8 detected")
                                        }(n));) s.push(e);
                                    return function(t) {
                                        for (var i, n = t.length, e = -1, s = ""; ++e < n;) 65535 < (i = t[e]) && (s += f((i -= 65536) >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), s += f(i);
                                        return s
                                    }(s)
                                }
                            }
                        }, function(t, i) {
                            var u = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
                            i.encode = function(t) {
                                for (var i = new Uint8Array(t), n = i.length, e = "", s = 0; s < n; s += 3) e += u[i[s] >> 2], e += u[(3 & i[s]) << 4 | i[s + 1] >> 4], e += u[(15 & i[s + 1]) << 2 | i[s + 2] >> 6], e += u[63 & i[s + 2]];
                                return n % 3 == 2 ? e = e.substring(0, e.length - 1) + "=" : n % 3 == 1 && (e = e.substring(0, e.length - 2) + "=="), e
                            }, i.decode = function(t) {
                                var i, n, e, s, c = .75 * t.length,
                                    a = t.length,
                                    r = 0;
                                "=" === t[t.length - 1] && (c--, "=" === t[t.length - 2] && c--);
                                for (var c = new ArrayBuffer(c), o = new Uint8Array(c), h = 0; h < a; h += 4) i = u.indexOf(t[h]), n = u.indexOf(t[h + 1]), e = u.indexOf(t[h + 2]), s = u.indexOf(t[h + 3]), o[r++] = i << 2 | n >> 4, o[r++] = (15 & n) << 4 | e >> 2, o[r++] = (3 & e) << 6 | 63 & s;
                                return c
                            }
                        }, function(t, i) {
                            function e(t) {
                                return t.map(function(t) {
                                    if (t.buffer instanceof ArrayBuffer) {
                                        var i, n = t.buffer;
                                        return t.byteLength !== n.byteLength && ((i = new Uint8Array(t.byteLength)).set(new Uint8Array(n, t.byteOffset, t.byteLength)), n = i.buffer), n
                                    }
                                    return t
                                })
                            }

                            function n(t, i) {
                                i = i || {};
                                var n = new c;
                                return e(t).forEach(function(t) {
                                    n.append(t)
                                }), i.type ? n.getBlob(i.type) : n.getBlob()
                            }

                            function s(t, i) {
                                return new Blob(e(t), i || {})
                            }
                            var c = void 0 !== c ? c : "undefined" != typeof WebKitBlobBuilder ? WebKitBlobBuilder : "undefined" != typeof MSBlobBuilder ? MSBlobBuilder : "undefined" != typeof MozBlobBuilder && MozBlobBuilder,
                                a = function() {
                                    try {
                                        return 2 === new Blob(["hi"]).size
                                    } catch (t) {
                                        return !1
                                    }
                                }(),
                                r = a && function() {
                                    try {
                                        return 2 === new Blob([new Uint8Array([1, 2])]).size
                                    } catch (t) {
                                        return !1
                                    }
                                }(),
                                o = c && c.prototype.append && c.prototype.getBlob;
                            "undefined" != typeof Blob && (n.prototype = Blob.prototype, s.prototype = Blob.prototype), t.exports = a ? r ? Blob : s : o ? n : void 0
                        }, function(t, i) {
                            i.encode = function(t) {
                                var i, n = "";
                                for (i in t) t.hasOwnProperty(i) && (n.length && (n += "&"), n += encodeURIComponent(i) + "=" + encodeURIComponent(t[i]));
                                return n
                            }, i.decode = function(t) {
                                for (var i = {}, n = t.split("&"), e = 0, s = n.length; e < s; e++) {
                                    var c = n[e].split("=");
                                    i[decodeURIComponent(c[0])] = decodeURIComponent(c[1])
                                }
                                return i
                            }
                        }, function(t, i) {
                            t.exports = function(t, i) {
                                function n() {}
                                n.prototype = i.prototype, t.prototype = new n, t.prototype.constructor = t
                            }
                        }, function(t, i) {
                            function n(t) {
                                for (var i = ""; i = c[t % a] + i, 0 < (t = Math.floor(t / a)););
                                return i
                            }

                            function e() {
                                var t = n(+new Date);
                                return t !== s ? (o = 0, s = t) : t + "." + n(o++)
                            }
                            for (var s, c = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""), a = 64, r = {}, o = 0, h = 0; h < a; h++) r[c[h]] = h;
                            e.encode = n, e.decode = function(t) {
                                var i = 0;
                                for (h = 0; h < t.length; h++) i = i * a + r[t.charAt(h)];
                                return i
                            }, t.exports = e
                        }, function(t, i) {
                            t.exports = function() {
                                throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")
                            }
                        }, function(t, i) {
                            var e = [].indexOf;
                            t.exports = function(t, i) {
                                if (e) return t.indexOf(i);
                                for (var n = 0; n < t.length; ++n)
                                    if (t[n] === i) return n;
                                return -1
                            }
                        }, function(t, i, n) {
                            function e(t, i, n) {
                                this.io = t, this.nsp = i, (this.json = this).ids = 0, this.acks = {}, this.receiveBuffer = [], this.sendBuffer = [], this.connected = !1, this.disconnected = !0, this.flags = {}, n && n.query && (this.query = n.query), this.io.autoConnect && this.open()
                            }
                            var s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                                    return typeof t
                                } : function(t) {
                                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                                },
                                c = n(4),
                                a = n(5),
                                r = n(29),
                                o = n(30),
                                h = n(31),
                                u = (n(3)("socket.io-client:socket"), n(23)),
                                l = n(17);
                            t.exports = e;
                            var f = {
                                    connect: 1,
                                    connect_error: 1,
                                    connect_timeout: 1,
                                    connecting: 1,
                                    disconnect: 1,
                                    error: 1,
                                    reconnect: 1,
                                    reconnect_attempt: 1,
                                    reconnect_failed: 1,
                                    reconnect_error: 1,
                                    reconnecting: 1,
                                    ping: 1,
                                    pong: 1
                                },
                                d = a.prototype.emit;
                            a(e.prototype), e.prototype.subEvents = function() {
                                var t;
                                this.subs || (t = this.io, this.subs = [o(t, "open", h(this, "onopen")), o(t, "packet", h(this, "onpacket")), o(t, "close", h(this, "onclose"))])
                            }, e.prototype.open = e.prototype.connect = function() {
                                return this.connected || (this.subEvents(), this.io.open(), "open" === this.io.readyState && this.onopen(), this.emit("connecting")), this
                            }, e.prototype.send = function() {
                                var t = r(arguments);
                                return t.unshift("message"), this.emit.apply(this, t), this
                            }, e.prototype.emit = function(t) {
                                if (f.hasOwnProperty(t)) return d.apply(this, arguments), this;
                                var i = r(arguments),
                                    n = {
                                        type: (void 0 !== this.flags.binary ? this.flags.binary : l(i)) ? c.BINARY_EVENT : c.EVENT,
                                        data: i,
                                        options: {}
                                    };
                                return n.options.compress = !this.flags || !1 !== this.flags.compress, "function" == typeof i[i.length - 1] && (this.acks[this.ids] = i.pop(), n.id = this.ids++), this.connected ? this.packet(n) : this.sendBuffer.push(n), this.flags = {}, this
                            }, e.prototype.packet = function(t) {
                                t.nsp = this.nsp, this.io.packet(t)
                            }, e.prototype.onopen = function() {
                                var t;
                                "/" !== this.nsp && (this.query ? (t = "object" === s(this.query) ? u.encode(this.query) : this.query, this.packet({
                                    type: c.CONNECT,
                                    query: t
                                })) : this.packet({
                                    type: c.CONNECT
                                }))
                            }, e.prototype.onclose = function(t) {
                                this.connected = !1, this.disconnected = !0, delete this.id, this.emit("disconnect", t)
                            }, e.prototype.onpacket = function(t) {
                                var i = t.nsp === this.nsp,
                                    n = t.type === c.ERROR && "/" === t.nsp;
                                if (i || n) switch (t.type) {
                                    case c.CONNECT:
                                        this.onconnect();
                                        break;
                                    case c.EVENT:
                                    case c.BINARY_EVENT:
                                        this.onevent(t);
                                        break;
                                    case c.ACK:
                                    case c.BINARY_ACK:
                                        this.onack(t);
                                        break;
                                    case c.DISCONNECT:
                                        this.ondisconnect();
                                        break;
                                    case c.ERROR:
                                        this.emit("error", t.data)
                                }
                            }, e.prototype.onevent = function(t) {
                                var i = t.data || [];
                                null != t.id && i.push(this.ack(t.id)), this.connected ? d.apply(this, i) : this.receiveBuffer.push(i)
                            }, e.prototype.ack = function(i) {
                                var n = this,
                                    e = !1;
                                return function() {
                                    var t;
                                    e || (e = !0, t = r(arguments), n.packet({
                                        type: l(t) ? c.BINARY_ACK : c.ACK,
                                        id: i,
                                        data: t
                                    }))
                                }
                            }, e.prototype.onack = function(t) {
                                var i = this.acks[t.id];
                                "function" == typeof i && (i.apply(this, t.data), delete this.acks[t.id])
                            }, e.prototype.onconnect = function() {
                                this.connected = !0, this.disconnected = !1, this.emit("connect"), this.emitBuffered()
                            }, e.prototype.emitBuffered = function() {
                                for (var t = 0; t < this.receiveBuffer.length; t++) d.apply(this, this.receiveBuffer[t]);
                                for (this.receiveBuffer = [], t = 0; t < this.sendBuffer.length; t++) this.packet(this.sendBuffer[t]);
                                this.sendBuffer = []
                            }, e.prototype.ondisconnect = function() {
                                this.destroy(), this.onclose("io server disconnect")
                            }, e.prototype.destroy = function() {
                                if (this.subs) {
                                    for (var t = 0; t < this.subs.length; t++) this.subs[t].destroy();
                                    this.subs = null
                                }
                                this.io.destroy(this)
                            }, e.prototype.close = e.prototype.disconnect = function() {
                                return this.connected && this.packet({
                                    type: c.DISCONNECT
                                }), this.destroy(), this.connected && this.onclose("io client disconnect"), this
                            }, e.prototype.compress = function(t) {
                                return this.flags.compress = t, this
                            }, e.prototype.binary = function(t) {
                                return this.flags.binary = t, this
                            }
                        }, function(t, i) {
                            t.exports = function(t, i) {
                                for (var n = [], e = (i = i || 0) || 0; e < t.length; e++) n[e - i] = t[e];
                                return n
                            }
                        }, function(t, i) {
                            t.exports = function(t, i, n) {
                                return t.on(i, n), {
                                    destroy: function() {
                                        t.removeListener(i, n)
                                    }
                                }
                            }
                        }, function(t, i) {
                            var e = [].slice;
                            t.exports = function(t, i) {
                                if ("function" != typeof(i = "string" == typeof i ? t[i] : i)) throw new Error("bind() requires a function");
                                var n = e.call(arguments, 2);
                                return function() {
                                    return i.apply(t, n.concat(e.call(arguments)))
                                }
                            }
                        }, function(t, i) {
                            function n(t) {
                                this.ms = (t = t || {}).min || 100, this.max = t.max || 1e4, this.factor = t.factor || 2, this.jitter = 0 < t.jitter && t.jitter <= 1 ? t.jitter : 0, this.attempts = 0
                            }(t.exports = n).prototype.duration = function() {
                                var t, i, n = this.ms * Math.pow(this.factor, this.attempts++);
                                return this.jitter && (t = Math.random(), i = Math.floor(t * this.jitter * n), n = 0 == (1 & Math.floor(10 * t)) ? n - i : n + i), 0 | Math.min(n, this.max)
                            }, n.prototype.reset = function() {
                                this.attempts = 0
                            }, n.prototype.setMin = function(t) {
                                this.ms = t
                            }, n.prototype.setMax = function(t) {
                                this.max = t
                            }, n.prototype.setJitter = function(t) {
                                this.jitter = t
                            }
                        }], s = {}, n.m = e, n.c = s, n.p = "", n(0);

                        function n(t) {
                            if (s[t]) return s[t].exports;
                            var i = s[t] = {
                                exports: {},
                                id: t,
                                loaded: !1
                            };
                            return e[t].call(i.exports, i, i.exports, n), i.loaded = !0, i.exports
                        }
                        var e, s
                    }, "object" == typeof __crisp_void_exports && "object" == typeof module ? module.exports = U() : "function" == typeof __crisp_void_define && define.amd ? define([], U) : "object" == typeof __crisp_void_exports ? exports.io = U() : B.io = U(),
                    function(t, i) {
                        "use strict";
                        "function" == typeof __crisp_void_define && define.amd ? define(["exports"], i) : "object" == typeof __crisp_void_exports ? i(exports) : i(t.PubSub = {})
                    }("object" == typeof r ? r : this, function(n) {
                        "use strict";
                        var o = {},
                            e = -1;

                        function r(t) {
                            for (var i in t)
                                if (t.hasOwnProperty(i)) return !0;
                            return !1
                        }

                        function h(t, i, n) {
                            try {
                                t(i, n)
                            } catch (t) {
                                setTimeout((e = t, function() {
                                    throw e
                                }), 0)
                            }
                            var e
                        }

                        function u(t, i, n) {
                            t(i, n)
                        }

                        function l(t, i, n, e) {
                            var s, c = o[i],
                                a = e ? u : h;
                            if (o.hasOwnProperty(i))
                                for (s in c) c.hasOwnProperty(s) && a(c[s], t, n)
                        }

                        function s(t, i, n, e) {
                            var s, c, a, e = (c = i, a = e, function() {
                                var t = String(s),
                                    i = t.lastIndexOf(".");
                                for (l(s, s, c, a); - 1 !== i;) i = (t = t.substr(0, i)).lastIndexOf("."), l(s, t, c, a)
                            });
                            return !! function(t) {
                                for (var i = String(s), n = Boolean(o.hasOwnProperty(i) && r(o[i])), e = i.lastIndexOf("."); !n && -1 !== e;) e = (i = i.substr(0, e)).lastIndexOf("."), n = Boolean(o.hasOwnProperty(i) && r(o[i]));
                                return n
                            }(s = t) && (!0 === n ? e() : setTimeout(e, 0), !0)
                        }
                        n.publish = function(t, i) {
                            return s(t, i, !1, n.immediateExceptions)
                        }, n.publishSync = function(t, i) {
                            return s(t, i, !0, n.immediateExceptions)
                        }, n.subscribe = function(t, i) {
                            if ("function" != typeof i) return !1;
                            o.hasOwnProperty(t) || (o[t] = {});
                            var n = "uid_" + String(++e);
                            return o[t][n] = i, n
                        }, n.clearAllSubscriptions = function() {
                            o = {}
                        }, n.clearSubscriptions = function(t) {
                            for (var i in o) o.hasOwnProperty(i) && 0 === i.indexOf(t) && delete o[i]
                        }, n.unsubscribe = function(t) {
                            var i, n, e, s = "string" == typeof t && o.hasOwnProperty(t),
                                c = !s && "string" == typeof t,
                                a = "function" == typeof t,
                                r = !1;
                            if (!s) {
                                for (i in o)
                                    if (o.hasOwnProperty(i)) {
                                        if (n = o[i], c && n[t]) {
                                            delete n[t], r = t;
                                            break
                                        }
                                        if (a)
                                            for (e in n) n.hasOwnProperty(e) && n[e] === t && (delete n[e], r = !0)
                                    }
                                return r
                            }
                            delete o[t]
                        }
                    }),
                    function(t, a) {
                        "use strict";

                        function i(t) {
                            function c(t, i, n) {
                                return 1 === arguments.length ? c.get(t) : c.set(t, i, n)
                            }
                            return c.Up = t.document, c._cacheKeyPrefix = "cookey.", c._maxExpireDate = new Date("Fri, 31 Dec 9999 23:59:59 UTC"), c.defaults = {
                                path: "/",
                                secure: !1,
                                sameSite: a
                            }, c.get = function(t) {
                                return c._cachedDocumentCookie !== c.Up.cookie && c._renewCache(), (t = c.Rp[c._cacheKeyPrefix + t]) === a ? a : decodeURIComponent(t)
                            }, c.set = function(t, i, n) {
                                return (n = c._getExtendedOptions(n)).expires = c._getExpiresDate(i === a ? -1 : n.expires), c.Up.cookie = c._generateCookieString(t, i, n), c
                            }, c.expire = function(t, i) {
                                return c.set(t, a, i)
                            }, c._getExtendedOptions = function(t) {
                                return {
                                    path: t && t.path || c.defaults.path,
                                    domain: t && t.domain || c.defaults.domain,
                                    expires: t && t.expires || c.defaults.expires,
                                    secure: (t && t.secure !== a ? t : c.defaults).secure,
                                    sameSite: t && t.sameSite || c.defaults.sameSite
                                }
                            }, c._isValidDate = function(t) {
                                return "[object Date]" === Object.prototype.toString.call(t) && !isNaN(t.getTime())
                            }, c._getExpiresDate = function(t, i) {
                                if (i = i || new Date, "number" == typeof t ? t = t === 1 / 0 ? c._maxExpireDate : new Date(i.getTime() + 1e3 * t) : "string" == typeof t && (t = new Date(t)), t && !c._isValidDate(t)) throw new Error("Invalid expires");
                                return t
                            }, c._generateSameSiteString = function(t) {
                                switch (t && t.sameSite || c.defaults.sameSite) {
                                    case a:
                                        return "";
                                    case "None":
                                    case "none":
                                        return ";sameSite=None";
                                    case "Lax":
                                    case "lax":
                                        return ";sameSite=Lax";
                                    case "Strict":
                                    case "strict":
                                        return ";sameSite=Strict";
                                    default:
                                        throw new TypeError("Invalid sameSite")
                                }
                            }, c._generateCookieString = function(t, i, n) {
                                return i = (t = (t = t.replace(/[^#$&+\^`|]/g, encodeURIComponent)).replace(/\(/g, "%28").replace(/\)/g, "%29")) + "=" + (i + "").replace(/[^!#$&-+\--:<-\[\]-~]/g, encodeURIComponent), i += (n = n || {}).path ? ";path=" + n.path : "", i += n.domain ? ";domain=" + n.domain : "", i += n.expires ? ";expires=" + n.expires.toUTCString() : "", (i += n.secure ? ";secure" : "") + c._generateSameSiteString(n)
                            }, c._getCacheFromString = function(t) {
                                for (var i = {}, n = t ? t.split("; ") : [], e = 0; e < n.length; e++) {
                                    var s = c._getKeyValuePairFromCookieString(n[e]);
                                    i[c._cacheKeyPrefix + s.key] === a && (i[c._cacheKeyPrefix + s.key] = s.value)
                                }
                                return i
                            }, c._getKeyValuePairFromCookieString = function(t) {
                                var i, n = (n = t.indexOf("=")) < 0 ? t.length : n,
                                    e = t.substr(0, n);
                                try {
                                    i = decodeURIComponent(e)
                                } catch (t) {}
                                return {
                                    key: i,
                                    value: t.substr(n + 1)
                                }
                            }, c._renewCache = function() {
                                c.Rp = c._getCacheFromString(c.Up.cookie), c._cachedDocumentCookie = c.Up.cookie
                            }, c
                        }
                        t.Cookies = t && "object" == typeof t.document ? i(t) : i
                    }(r),
                    function() {
                        "use strict";
                        var t = r,
                            l = "invalid",
                            f = "undefined" != typeof ArrayBuffer,
                            o = "0123456789abcdef".split(""),
                            n = [-2147483648, 8388608, 32768, 128],
                            h = [24, 16, 8, 0],
                            y = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298],
                            i = [];

                        function d(t) {
                            t ? (i[0] = i[16] = i[1] = i[2] = i[3] = i[4] = i[5] = i[6] = i[7] = i[8] = i[9] = i[10] = i[11] = i[12] = i[13] = i[14] = i[15] = 0, this.blocks = i) : this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], this.h0 = 1779033703, this.h1 = 3144134277, this.h2 = 1013904242, this.h3 = 2773480762, this.h4 = 1359893119, this.h5 = 2600822924, this.h6 = 528734635, this.h7 = 1541459225, this.block = this.start = this.bytes = this.hBytes = 0, this.finalized = this.hashed = !1, this.first = !0
                        }

                        function e(t, i) {
                            var n = typeof t;
                            if ("string" == n) {
                                for (var e, s = [], c = t.length, a = 0, r = 0; r < c; ++r)(e = t.charCodeAt(r)) < 128 ? s[a++] = e : (e < 2048 ? s[a++] = 192 | e >> 6 : (e < 55296 || 57344 <= e ? s[a++] = 224 | e >> 12 : (e = 65536 + ((1023 & e) << 10 | 1023 & t.charCodeAt(++r)), s[a++] = 240 | e >> 18, s[a++] = 128 | e >> 12 & 63), s[a++] = 128 | e >> 6 & 63), s[a++] = 128 | 63 & e);
                                t = s
                            } else {
                                if ("object" != n) throw new Error(l);
                                if (null === t) throw new Error(l);
                                if (f && t.constructor === ArrayBuffer) t = new Uint8Array(t);
                                else if (!(Array.isArray(t) || f && ArrayBuffer.isView(t))) throw new Error(l)
                            }
                            64 < t.length && (t = new d(!0).update(t).digest());
                            for (var o = [], h = [], r = 0; r < 64; ++r) {
                                var u = t[r] || 0;
                                o[r] = 92 ^ u, h[r] = 54 ^ u
                            }
                            d.call(this, i), this.update(h), this.oKeyPad = o, this.inner = !0, this.memory = i
                        }
                        Array.isArray || (Array.isArray = function(t) {
                            return "[object Array]" === Object.prototype.toString.call(t)
                        }), f && !ArrayBuffer.isView && (ArrayBuffer.isView = function(t) {
                            return "object" == typeof t && t.buffer && t.buffer.constructor === ArrayBuffer
                        }), d.prototype.update = function(t) {
                            if (!this.finalized) {
                                var i, n = typeof t;
                                if ("string" != n) {
                                    if ("object" != n) throw new Error(l);
                                    if (null === t) throw new Error(l);
                                    if (f && t.constructor === ArrayBuffer) t = new Uint8Array(t);
                                    else if (!(Array.isArray(t) || f && ArrayBuffer.isView(t))) throw new Error(l);
                                    i = !0
                                }
                                for (var e, s, c = 0, a = t.length, r = this.blocks; c < a;) {
                                    if (this.hashed && (this.hashed = !1, r[0] = this.block, r[16] = r[1] = r[2] = r[3] = r[4] = r[5] = r[6] = r[7] = r[8] = r[9] = r[10] = r[11] = r[12] = r[13] = r[14] = r[15] = 0), i)
                                        for (s = this.start; c < a && s < 64; ++c) r[s >> 2] |= t[c] << h[3 & s++];
                                    else
                                        for (s = this.start; c < a && s < 64; ++c)(e = t.charCodeAt(c)) < 128 ? r[s >> 2] |= e << h[3 & s++] : (e < 2048 ? r[s >> 2] |= (192 | e >> 6) << h[3 & s++] : (e < 55296 || 57344 <= e ? r[s >> 2] |= (224 | e >> 12) << h[3 & s++] : (e = 65536 + ((1023 & e) << 10 | 1023 & t.charCodeAt(++c)), r[s >> 2] |= (240 | e >> 18) << h[3 & s++], r[s >> 2] |= (128 | e >> 12 & 63) << h[3 & s++]), r[s >> 2] |= (128 | e >> 6 & 63) << h[3 & s++]), r[s >> 2] |= (128 | 63 & e) << h[3 & s++]);
                                    this.lastByteIndex = s, this.bytes += s - this.start, 64 <= s ? (this.block = r[16], this.start = s - 64, this.hash(), this.hashed = !0) : this.start = s
                                }
                                return 4294967295 < this.bytes && (this.hBytes += this.bytes / 4294967296 << 0, this.bytes = this.bytes % 4294967296), this
                            }
                        }, d.prototype.finalize = function() {
                            var t, i;
                            this.finalized || (this.finalized = !0, t = this.blocks, i = this.lastByteIndex, t[16] = this.block, t[i >> 2] |= n[3 & i], this.block = t[16], 56 <= i && (this.hashed || this.hash(), t[0] = this.block, t[16] = t[1] = t[2] = t[3] = t[4] = t[5] = t[6] = t[7] = t[8] = t[9] = t[10] = t[11] = t[12] = t[13] = t[14] = t[15] = 0), t[14] = this.hBytes << 3 | this.bytes >>> 29, t[15] = this.bytes << 3, this.hash())
                        }, d.prototype.hash = function() {
                            for (var t, i, n, e, s, c, a = this.h0, r = this.h1, o = this.h2, h = this.h3, u = this.h4, l = this.h5, f = this.h6, d = this.h7, p = this.blocks, v = 16; v < 64; ++v) t = ((i = p[v - 15]) >>> 7 | i << 25) ^ (i >>> 18 | i << 14) ^ i >>> 3, i = p[v - 2], p[v] = p[v - 16] + t + p[v - 7] + ((i >>> 17 | i << 15) ^ (i >>> 19 | i << 13) ^ i >>> 10) << 0;
                            for (c = r & o, v = 0; v < 64; v += 4) this.first ? (d = (i = p[0] - 210244248) - 1521486534 << 0, h = i + 143694565 << 0, this.first = !(n = 704751109)) : (d = h + (i = d + ((u >>> 6 | u << 26) ^ (u >>> 11 | u << 21) ^ (u >>> 25 | u << 7)) + (u & l ^ ~u & f) + y[v] + p[v]) << 0, h = i + ((t = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10)) + ((n = a & r) ^ a & o ^ c)) << 0), f = o + (i = f + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + (d & u ^ ~d & l) + y[v + 1] + p[v + 1]) << 0, o = i + ((t = (h >>> 2 | h << 30) ^ (h >>> 13 | h << 19) ^ (h >>> 22 | h << 10)) + ((e = h & a) ^ h & r ^ n)) << 0, l = r + (i = l + ((f >>> 6 | f << 26) ^ (f >>> 11 | f << 21) ^ (f >>> 25 | f << 7)) + (f & d ^ ~f & u) + y[v + 2] + p[v + 2]) << 0, r = i + ((t = (o >>> 2 | o << 30) ^ (o >>> 13 | o << 19) ^ (o >>> 22 | o << 10)) + ((s = o & h) ^ o & a ^ e)) << 0, u = a + (i = u + ((l >>> 6 | l << 26) ^ (l >>> 11 | l << 21) ^ (l >>> 25 | l << 7)) + (l & f ^ ~l & d) + y[v + 3] + p[v + 3]) << 0, a = i + ((t = (r >>> 2 | r << 30) ^ (r >>> 13 | r << 19) ^ (r >>> 22 | r << 10)) + ((c = r & o) ^ r & h ^ s)) << 0;
                            this.h0 = this.h0 + a << 0, this.h1 = this.h1 + r << 0, this.h2 = this.h2 + o << 0, this.h3 = this.h3 + h << 0, this.h4 = this.h4 + u << 0, this.h5 = this.h5 + l << 0, this.h6 = this.h6 + f << 0, this.h7 = this.h7 + d << 0
                        }, d.prototype.toString = d.prototype.hex = function() {
                            this.finalize();
                            var t = this.h0,
                                i = this.h1,
                                n = this.h2,
                                e = this.h3,
                                s = this.h4,
                                c = this.h5,
                                a = this.h6,
                                r = this.h7;
                            return o[t >> 28 & 15] + o[t >> 24 & 15] + o[t >> 20 & 15] + o[t >> 16 & 15] + o[t >> 12 & 15] + o[t >> 8 & 15] + o[t >> 4 & 15] + o[15 & t] + o[i >> 28 & 15] + o[i >> 24 & 15] + o[i >> 20 & 15] + o[i >> 16 & 15] + o[i >> 12 & 15] + o[i >> 8 & 15] + o[i >> 4 & 15] + o[15 & i] + o[n >> 28 & 15] + o[n >> 24 & 15] + o[n >> 20 & 15] + o[n >> 16 & 15] + o[n >> 12 & 15] + o[n >> 8 & 15] + o[n >> 4 & 15] + o[15 & n] + o[e >> 28 & 15] + o[e >> 24 & 15] + o[e >> 20 & 15] + o[e >> 16 & 15] + o[e >> 12 & 15] + o[e >> 8 & 15] + o[e >> 4 & 15] + o[15 & e] + o[s >> 28 & 15] + o[s >> 24 & 15] + o[s >> 20 & 15] + o[s >> 16 & 15] + o[s >> 12 & 15] + o[s >> 8 & 15] + o[s >> 4 & 15] + o[15 & s] + o[c >> 28 & 15] + o[c >> 24 & 15] + o[c >> 20 & 15] + o[c >> 16 & 15] + o[c >> 12 & 15] + o[c >> 8 & 15] + o[c >> 4 & 15] + o[15 & c] + o[a >> 28 & 15] + o[a >> 24 & 15] + o[a >> 20 & 15] + o[a >> 16 & 15] + o[a >> 12 & 15] + o[a >> 8 & 15] + o[a >> 4 & 15] + o[15 & a] + o[r >> 28 & 15] + o[r >> 24 & 15] + o[r >> 20 & 15] + o[r >> 16 & 15] + o[r >> 12 & 15] + o[r >> 8 & 15] + o[r >> 4 & 15] + o[15 & r]
                        }, d.prototype.digest = function() {
                            this.finalize();
                            var t = this.h0,
                                i = this.h1,
                                n = this.h2,
                                e = this.h3,
                                s = this.h4,
                                c = this.h5,
                                a = this.h6,
                                r = this.h7;
                            return [t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, 255 & t, i >> 24 & 255, i >> 16 & 255, i >> 8 & 255, 255 & i, n >> 24 & 255, n >> 16 & 255, n >> 8 & 255, 255 & n, e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e, s >> 24 & 255, s >> 16 & 255, s >> 8 & 255, 255 & s, c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, 255 & c, a >> 24 & 255, a >> 16 & 255, a >> 8 & 255, 255 & a, r >> 24 & 255, r >> 16 & 255, r >> 8 & 255, 255 & r]
                        }, (e.prototype = new d).finalize = function() {
                            var t;
                            d.prototype.finalize.call(this), this.inner && (this.inner = !1, t = this.digest(), d.call(this, this.memory), this.update(this.oKeyPad), this.update(t), d.prototype.finalize.call(this))
                        };
                        var s = (c.create = function() {
                            return new d
                        }, c.update = function(t) {
                            return c.create().update(t)
                        }, c);

                        function c(t) {
                            return new d(!0).update(t).hex()
                        }

                        function a(t, i) {
                            return new e(t, !0).update(i).hex()
                        }(s.sha256 = s).sha256.hmac = (a.create = function(t) {
                            return new e(t)
                        }, a.update = function(t, i) {
                            return a.create(t).update(i)
                        }, a), t.sha256 = s.sha256
                    }(), this.Mp(), this.xl(t), this.Np(t, r), this.Config = new i(this), this.Schedule = new e(this), this.Listener = new c(this), this.Socket = new o(this), this.Stream = new u(this), this.Storage = new d(this), this.Browsing = new E(this), this.Call = new S(this), this.Message = new v(this), this.Session = new m(this), this.Website = new g(this), this.Bucket = new b(this), this.Media = new x(this), this.Helpdesk = new q(this), this.Trigger = new I(this), this.Issue = new R(this), this.Cl(), !0 === t.connect_socket && this.socket.connect()
            }, u.prototype.Mp = function() {
                this.n()
            }, u.prototype.n = function() {
                delete this.environment, delete this.disable_autoload, delete this.url_go, delete this.website_domain, delete this.website_id, delete this.token_id, delete this.cookie_expire, delete this.cookie_domain, delete this.platform_name, delete this.platform_signature_key, delete this.runtime_configuration, delete this.device
            }, u.prototype.xl = function(t) {
                t && t.environment && (this.environment = t.environment || "development"), t && t.disable_autoload && (this.disable_autoload = t.disable_autoload), t && t.url_go && (this.url_go = t.url_go), t && t.website_domain && (this.website_domain = t.website_domain), t && t.website_id && (this.website_id = t.website_id), t && t.token_id && (this.token_id = t.token_id), t && t.cookie_expire && (this.cookie_expire = t.cookie_expire), t && t.cookie_domain && (this.cookie_domain = t.cookie_domain), t && t.platform_name && (this.platform_name = t.platform_name), t && t.platform_signature_key && (this.platform_signature_key = t.platform_signature_key), t && t.runtime_configuration && (this.runtime_configuration = t.runtime_configuration), this.device = {}, t && t.useragent && (this.device.useragent = t.useragent), t && t.timezone && (this.device.timezone = t.timezone), t && t.capabilities && (this.device.capabilities = t.capabilities), t && t.locales && (this.device.locales = t.locales)
            }, u.prototype.Np = function(t, i) {
                var n = ["websocket"];
                this.event = i.PubSub, this.socket = i.io(t.url_relay_client, {
                    path: t.website_id ? "/" + t.website_id + "/" : "/",
                    transports: n,
                    autoConnect: !1,
                    timeout: 25e3,
                    reconnectionDelay: 15e3,
                    reconnectionDelayMax: 6e4,
                    reconnectionAttempts: 5,
                    randomizationFactor: .5
                }), this.stream = i.io(t.url_relay_stream, {
                    path: "/",
                    transports: n,
                    reconnection: !1,
                    autoConnect: !1
                }), this.cookie = i.Cookies(window), this.sha256 = i.sha256
            }, u.prototype.Cl = function() {
                var t = this;
                this.Listener.add_event("index", "window", "unload", function() {
                    !0 === t.socket.connected && t.socket.disconnect(), !0 === t.stream.connected && t.stream.disconnect()
                }), this.Listener.add_event("index", "window", "popstate", function() {
                    t.Op()
                }), "object" === r(window.history) && (this.Listener.apply_patch("index", "window.history", "pushState", window.history, function() {
                    t.Op()
                }), this.Listener.apply_patch("index", "window.history", "replaceState", window.history, function() {
                    t.Op()
                }))
            }, u.prototype.Op = function() {
                this.Session.send_device(), this.event.publish("window:history", {
                    page_url: document.location.href,
                    page_domain: document.location.hostname
                })
            }, o.CrispLibraryClient = new u;
            var h = {
                client: function(t) {
                    var d = [],
                        t = t || {};
                    return function(t, i, n, e, s, c, a, r, o, h, u, l, f) {
                        d.push('<div class="crisp-client"><div class="cc-l3zb"></div><div id="crisp-chatbox"' + g.Library.jade.runtime.attr("lang", "" + r, !0, !1) + g.Library.jade.runtime.attr("dir", "" + n, !0, !1) + ' translate="no"' + g.Library.jade.runtime.attr("data-blocked", "" + i, !0, !1) + g.Library.jade.runtime.attr("data-lock-maximized", "" + u, !0, !1) + g.Library.jade.runtime.attr("data-last-operator-face", "" + h, !0, !1) + g.Library.jade.runtime.attr("data-availability-tooltip", "" + t, !0, !1) + g.Library.jade.runtime.attr("data-hide-vacation", "" + a, !0, !1) + g.Library.jade.runtime.attr("data-hide-on-away", "" + s, !0, !1) + g.Library.jade.runtime.attr("data-hide-on-mobile", "" + c, !0, !1) + g.Library.jade.runtime.attr("data-position-reverse", "" + l, !0, !1) + g.Library.jade.runtime.attr("data-full-view", "" + e, !0, !1) + g.Library.jade.runtime.attr("data-small-view", "" + f, !0, !1) + g.Library.jade.runtime.attr("data-large-view", "" + o, !0, !1) + ' data-availability="none" data-is-activity-ongoing="false" data-was-availability-online="false" data-has-local-messages="false" class="cc-kv6t"></div></div>')
                    }.call(this, "availability_tooltip" in t ? t.availability_tooltip : "undefined" != typeof availability_tooltip ? availability_tooltip : void 0, "blocked" in t ? t.blocked : "undefined" != typeof blocked ? blocked : void 0, "direction" in t ? t.direction : "undefined" != typeof direction ? direction : void 0, "full_view" in t ? t.full_view : "undefined" != typeof full_view ? full_view : void 0, "hide_on_away" in t ? t.hide_on_away : "undefined" != typeof hide_on_away ? hide_on_away : void 0, "hide_on_mobile" in t ? t.hide_on_mobile : "undefined" != typeof hide_on_mobile ? hide_on_mobile : void 0, "hide_vacation" in t ? t.hide_vacation : "undefined" != typeof hide_vacation ? hide_vacation : void 0, "lang" in t ? t.lang : "undefined" != typeof lang ? lang : void 0, "large_view" in t ? t.large_view : "undefined" != typeof large_view ? large_view : void 0, "last_operator_face" in t ? t.last_operator_face : "undefined" != typeof last_operator_face ? last_operator_face : void 0, "lock_maximized" in t ? t.lock_maximized : "undefined" != typeof lock_maximized ? lock_maximized : void 0, "position_reverse" in t ? t.position_reverse : "undefined" != typeof position_reverse ? position_reverse : void 0, "small_view" in t ? t.small_view : "undefined" != typeof small_view ? small_view : void 0), d.join("")
                },
                viewport: function(t) {
                    var i = [],
                        t = t || {};
                    return function(t) {
                        i.push('<meta name="viewport"' + g.Library.jade.runtime.attr("content", "" + t, !0, !1) + "/>")
                    }.call(this, "content" in t ? t.content : "undefined" != typeof content ? content : void 0), i.join("")
                },
                clear: function(t) {
                    var i = [];
                    return i.push('<span class="cc-iuse"></span>'), i.join("")
                },
                style_color: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<div class="cc-lcor"><style type="text/css">.crisp-client .cc-kv6t .cc-6zjc,\n.crisp-client .cc-kv6t .cc-1mk2:hover {\n  color: ' + g.Library.jade.runtime.escape(null == (i = t.reverse.hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-jq4y,\n.crisp-client .cc-kv6t .cc-5lan:hover {\n  color: " + g.Library.jade.runtime.escape(null == (i = t[500].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-k5w4 {\n  background-color: " + g.Library.jade.runtime.escape(null == (i = t.reverse.hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-5ekd {\n  background-color: " + g.Library.jade.runtime.escape(null == (i = t[900].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-16jc {\n  background-color: " + g.Library.jade.runtime.escape(null == (i = t[600].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-1ada,\n.crisp-client .cc-kv6t .cc-ew5j:before,\n.crisp-client .cc-kv6t .cc-ew5j:after {\n  background-color: " + g.Library.jade.runtime.escape(null == (i = t[500].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-y5jx {\n  background-color: " + g.Library.jade.runtime.escape(null == (i = t[20].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-y6ot,\n.crisp-client .cc-kv6t .cc-183m:hover {\n  background-color: " + g.Library.jade.runtime.escape(null == (i = t[10].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-1ybb {\n  background-image: linear-gradient(125deg, " + g.Library.jade.runtime.escape(null == (i = t[500].hex) ? "" : i) + " -10%, " + g.Library.jade.runtime.escape(null == (i = t[900].hex) ? "" : i) + " 100%) !important;\n}\n\n.crisp-client .cc-kv6t .cc-ofgq,\n.crisp-client .cc-kv6t .cc-fg2d:hover {\n  border-color: " + g.Library.jade.runtime.escape(null == (i = t.reverse.hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-2ydi {\n  border-color: " + g.Library.jade.runtime.escape(null == (i = t[900].rgba(.175)) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-1aev,\n.crisp-client .cc-kv6t .cc-2hzo:hover,\n.crisp-client .cc-kv6t .cc-18sf:before,\n.crisp-client .cc-kv6t .cc-18sf:after {\n  border-color: " + g.Library.jade.runtime.escape(null == (i = t[500].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-1nph {\n  border-color: " + g.Library.jade.runtime.escape(null == (i = t[500].rgba(.15)) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-1o96 {\n  border-top-color: " + g.Library.jade.runtime.escape(null == (i = t[500].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-ve3u,\n.crisp-client .cc-kv6t .cc-1nmg:hover {\n  border-color: " + g.Library.jade.runtime.escape(null == (i = t[20].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-clw4::placeholder {\n  color: " + g.Library.jade.runtime.escape(null == (i = t[200].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-2n8m::placeholder {\n  color: " + g.Library.jade.runtime.escape(null == (i = t[200].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-3x4f,\n.crisp-client .cc-kv6t .cc-1afs:hover,\n.crisp-client .cc-kv6t .cc-3x4f:hover,\n.crisp-client .cc-kv6t .cc-1afs:active,\n.crisp-client .cc-kv6t .cc-3x4f:active,\n.crisp-client .cc-kv6t .cc-1c1d:hover .cc-1f87,\n.crisp-client .cc-kv6t .cc-1c1d .cc-1f87:active {\n  background: " + g.Library.jade.runtime.escape(null == (i = t[900].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-4xbu,\n.crisp-client .cc-kv6t .cc-caj5:hover {\n  background: " + g.Library.jade.runtime.escape(null == (i = t[700].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-4xbu:hover,\n.crisp-client .cc-kv6t .cc-caj5:active {\n  background: " + g.Library.jade.runtime.escape(null == (i = t[800].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-4xbu:active {\n  background: " + g.Library.jade.runtime.escape(null == (i = t[900].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-g73w:hover .cc-199t {\n  background: " + g.Library.jade.runtime.escape(null == (i = t[700].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-g73w .cc-199t:active {\n  background: " + g.Library.jade.runtime.escape(null == (i = t[800].hex) ? "" : i) + ' !important;\n}\n\n.crisp-client .cc-kv6t .cc-vuur,\n.crisp-client .cc-kv6t .cc-7rgf[data-active="true"] {\n  background: ' + g.Library.jade.runtime.escape(null == (i = t[500].hex) ? "" : i) + ' !important;\n}\n\n.crisp-client .cc-kv6t .cc-vuur:hover,\n.crisp-client .cc-kv6t .cc-7rgf[data-active="true"]:active {\n  background: ' + g.Library.jade.runtime.escape(null == (i = t[600].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-vuur:active {\n  background: " + g.Library.jade.runtime.escape(null == (i = t[700].hex) ? "" : i) + " !important;\n}\n\n.crisp-client .cc-kv6t .cc-1gmp::selection,\n.crisp-client .cc-kv6t .cc-1gmp *::selection {\n  color: #191919 !important;\n  background-color: " + g.Library.jade.runtime.escape(null == (i = t[100].hex) ? "" : i) + " !important;\n}</style></div>")
                    }.call(this, "colors" in t ? t.colors : "undefined" != typeof colors ? colors : void 0), n.join("")
                },
                style_other: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push('<div class="cc-1kny"><style type="text/css">.crisp-client .cc-kv6t {\n  z-index: ' + g.Library.jade.runtime.escape(null == (n = t) ? "" : n) + ";\n}\n</style>"), !1 === i && e.push('<style type="text/css">.crisp-client .cc-kv6t .cc-1xry .cc-ge4v .cc-bdff .cc-x32x .cc-1j74 .cc-ujtk {\n  display: none !important;\n}</style>'), e.push("</div>")
                    }.call(this, "container_index" in t ? t.container_index : "undefined" != typeof container_index ? container_index : void 0, "show_operator_count" in t ? t.show_operator_count : "undefined" != typeof show_operator_count ? show_operator_count : void 0), e.join("")
                },
                style_position: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<div class="cc-1wmh">'), t.default_button_horizontal && n.push('<style type="text/css">.crisp-client .cc-kv6t[data-full-view="false"][data-position-reverse="false"] .cc-1xry .cc-unoo,\n.crisp-client .cc-kv6t[data-full-view="false"][data-position-reverse="false"] .cc-1xry .cc-ge4v {\n  margin-right: ' + g.Library.jade.runtime.escape(null == (i = t.default_button_horizontal) ? "" : i) + 'px !important;\n}\n\n.crisp-client .cc-kv6t[data-full-view="false"][data-position-reverse="false"] .cc-1xry .cc-unoo .cc-1c9v .cc-1bue {\n  margin-right: ' + g.Library.jade.runtime.escape(null == (i = t.default_button_horizontal) ? "" : i) + 'px !important;\n}\n\n.crisp-client .cc-kv6t[data-full-view="false"][data-position-reverse="true"] .cc-1xry .cc-unoo,\n.crisp-client .cc-kv6t[data-full-view="false"][data-position-reverse="true"] .cc-1xry .cc-ge4v {\n  margin-left: ' + g.Library.jade.runtime.escape(null == (i = t.default_button_horizontal) ? "" : i) + 'px !important;\n}\n\n.crisp-client .cc-kv6t[data-full-view="false"][data-position-reverse="true"] .cc-1xry .cc-unoo .cc-1c9v .cc-1bue {\n  margin-left: ' + g.Library.jade.runtime.escape(null == (i = t.default_button_horizontal) ? "" : i) + "px !important;\n}\n</style>"), t.default_button_vertical && n.push('<style type="text/css">.crisp-client .cc-kv6t[data-full-view="false"] .cc-1xry .cc-unoo,\n.crisp-client .cc-kv6t[data-full-view="false"] .cc-1xry .cc-ge4v {\n  margin-bottom: ' + g.Library.jade.runtime.escape(null == (i = t.default_button_vertical) ? "" : i) + 'px !important;\n}\n\n.crisp-client .cc-kv6t[data-full-view="false"] .cc-1xry .cc-unoo .cc-1c9v .cc-1bue {\n  margin-bottom: ' + g.Library.jade.runtime.escape(null == (i = t.default_button_vertical) ? "" : i) + "px !important;\n}\n</style>"), t.mobile_button_horizontal && n.push('<style type="text/css">.crisp-client .cc-kv6t[data-full-view="true"][data-position-reverse="false"] .cc-1xry .cc-unoo {\n  margin-right: ' + g.Library.jade.runtime.escape(null == (i = t.mobile_button_horizontal) ? "" : i) + 'px !important;\n}\n\n.crisp-client .cc-kv6t[data-full-view="true"][data-position-reverse="false"] .cc-1xry .cc-unoo .cc-1c9v .cc-1bue {\n  margin-right: ' + g.Library.jade.runtime.escape(null == (i = t.mobile_button_horizontal) ? "" : i) + 'px !important;\n}\n\n.crisp-client .cc-kv6t[data-full-view="true"][data-position-reverse="true"] .cc-1xry .cc-unoo {\n  margin-left: ' + g.Library.jade.runtime.escape(null == (i = t.mobile_button_horizontal) ? "" : i) + 'px !important;\n}\n\n.crisp-client .cc-kv6t[data-full-view="true"][data-position-reverse="true"] .cc-1xry .cc-unoo .cc-1c9v .cc-1bue {\n  margin-left: ' + g.Library.jade.runtime.escape(null == (i = t.mobile_button_horizontal) ? "" : i) + "px !important;\n}\n</style>"), t.mobile_button_vertical && n.push('<style type="text/css">.crisp-client .cc-kv6t[data-full-view="true"] .cc-1xry .cc-unoo {\n  margin-bottom: ' + g.Library.jade.runtime.escape(null == (i = t.mobile_button_vertical) ? "" : i) + 'px !important;\n}\n\n.crisp-client .cc-kv6t[data-full-view="true"] .cc-1xry .cc-unoo .cc-1c9v .cc-1bue {\n  margin-bottom: ' + g.Library.jade.runtime.escape(null == (i = t.mobile_button_vertical) ? "" : i) + "px !important;\n}</style>"), n.push("</div>")
                    }.call(this, "position" in t ? t.position : "undefined" != typeof position ? position : void 0), n.join("")
                },
                new_line: function(t) {
                    var i = [];
                    return i.push('<br class="cc-1yy7"/>'), i.join("")
                },
                link_phone: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push("<a" + g.Library.jade.runtime.attr("href", "tel:" + t, !1, !1) + ' class="cc-w8bm cc-kbw4">' + (null == (i = t) ? "" : i) + "</a>")
                    }.call(this, "phone" in t ? t.phone : "undefined" != typeof phone ? phone : void 0), n.join("")
                },
                link_email: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push("<a" + g.Library.jade.runtime.attr("href", "mailto:" + t, !1, !1) + ' class="cc-w8bm cc-1tbt">' + (null == (i = t) ? "" : i) + "</a>")
                    }.call(this, "email" in t ? t.email : "undefined" != typeof email ? email : void 0), n.join("")
                },
                link_uri: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push("<a" + g.Library.jade.runtime.attr("href", "" + i, !1, !1) + ' rel="noopener noreferrer" target="_blank" class="cc-w8bm cc-tn3x">' + (null == (n = t) ? "" : n) + "</a>")
                    }.call(this, "uri_name" in t ? t.uri_name : "undefined" != typeof uri_name ? uri_name : void 0, "uri_value" in t ? t.uri_value : "undefined" != typeof uri_value ? uri_value : void 0), e.join("")
                },
                link_domain: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push("<a" + g.Library.jade.runtime.attr("href", "http://" + i + "/", !1, !1) + ' rel="noopener noreferrer" target="_blank" class="cc-w8bm cc-1vy9">' + (null == (n = t) ? "" : n) + "</a>")
                    }.call(this, "domain_name" in t ? t.domain_name : "undefined" != typeof domain_name ? domain_name : void 0, "domain_value" in t ? t.domain_value : "undefined" != typeof domain_value ? domain_value : void 0), e.join("")
                },
                markdown_blockquote: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span class="cc-rxbq cc-i0y3">' + (null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), n.join("")
                },
                markdown_color: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push("<span" + g.Library.jade.runtime.attr("style", "color: " + t + " !important;", !0, !1) + ' class="cc-rxbq cc-ffl9">' + (null == (n = i) ? "" : n) + "</span>")
                    }.call(this, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), e.join("")
                },
                markdown_bold: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span class="cc-rxbq cc-1a3u cc-151q">' + (null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), n.join("")
                },
                markdown_code_inline: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span class="cc-rxbq cc-1pni cc-15fv cc-y5jx">' + (null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), n.join("")
                },
                markdown_code_block: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span class="cc-rxbq cc-1pni cc-1yj2 cc-y5jx">' + (null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), n.join("")
                },
                markdown_delete: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span class="cc-rxbq cc-xs0r">' + (null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), n.join("")
                },
                markdown_highlight: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span class="cc-rxbq cc-12z0">' + (null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), n.join("")
                },
                markdown_emphasis: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span class="cc-rxbq cc-9ky1 cc-151q">' + (null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), n.join("")
                },
                markdown_image: function(t) {
                    var s = [],
                        t = t || {};
                    return function(t, i, n, e) {
                        s.push(""), e = t(e), s.push('<span class="cc-rxbq cc-1nuy"><img' + g.Library.jade.runtime.attr("src", n + "/process/original/?url=" + e, !1, !1) + g.Library.jade.runtime.attr("alt", "" + i, !1, !1) + "/></span>")
                    }.call(this, "encodeURIComponent" in t ? t.encodeURIComponent : "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "url_crisp_image" in t ? t.url_crisp_image : "undefined" != typeof url_crisp_image ? url_crisp_image : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), s.join("")
                },
                markdown_interpolate: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push('<span class="cc-rxbq cc-lpfn">{{ ' + g.Library.jade.runtime.escape(null == (n = t) ? "" : n) + g.Library.jade.runtime.escape(null == (n = i ? ' | "' + i + '"' : "") ? "" : n) + " }}</span>")
                    }.call(this, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), e.join("")
                },
                markdown_italic: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span class="cc-rxbq cc-1afx">' + (null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), n.join("")
                },
                markdown_line: function(t) {
                    var i = [];
                    return i.push('<span class="cc-rxbq cc-11yu"></span>'), i.join("")
                },
                markdown_link_text: function(t) {
                    var e, s = [],
                        t = t || {};
                    return function(t, i, n) {
                        s.push("<a" + g.Library.jade.runtime.attr("href", "" + t.filter_link_safe(n), !1, !1) + ' rel="noopener noreferrer" target="_blank" class="cc-rxbq cc-hsr1 cc-1c7q">' + (null == (e = i) ? "" : e) + "</a>")
                    }.call(this, "methods" in t ? t.methods : "undefined" != typeof methods ? methods : void 0, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), s.join("")
                },
                markdown_link_image: function(t) {
                    var c = [],
                        t = t || {};
                    return function(t, i, n, e, s) {
                        c.push(""), n = t(n), c.push("<a" + g.Library.jade.runtime.attr("href", "" + i.filter_link_safe(s), !1, !1) + ' rel="noopener noreferrer" target="_blank" class="cc-rxbq cc-hsr1 cc-1kr8"><span class="cc-rxbq cc-1nuy"><img' + g.Library.jade.runtime.attr("src", e + "/process/original/?url=" + n, !1, !1) + ' alt=""/></span></a>')
                    }.call(this, "encodeURIComponent" in t ? t.encodeURIComponent : "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0, "methods" in t ? t.methods : "undefined" != typeof methods ? methods : void 0, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "url_crisp_image" in t ? t.url_crisp_image : "undefined" != typeof url_crisp_image ? url_crisp_image : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), c.join("")
                },
                markdown_list: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push("<span" + g.Library.jade.runtime.attr("data-type", "" + t, !1, !1) + ' class="cc-rxbq cc-u7eq">' + (null == (n = i) ? "" : n) + "</span>")
                    }.call(this, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), e.join("")
                },
                markdown_title: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push("<span" + g.Library.jade.runtime.attr("data-type", "" + t, !1, !1) + ' class="cc-rxbq cc-1gez cc-151q">' + (null == (n = i) ? "" : n) + "</span>")
                    }.call(this, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), e.join("")
                },
                markdown_underline: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span class="cc-rxbq cc-dp0e">' + (null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), n.join("")
                },
                markdown_youtube: function(t) {
                    var c = [],
                        t = t || {};
                    return function(t, i, n, e) {
                        c.push("");
                        var s = "https://www.youtube.com/embed/" + t(e) + "?autoplay=1&rel=0",
                            e = t("https://img.youtube.com/vi/" + t(e) + "/hqdefault.jpg");
                        c.push("<a" + g.Library.jade.runtime.attr("href", s, !0, !1) + ' rel="noopener noreferrer" target="_blank" class="cc-rxbq cc-1fry cc-cep7"><span class="cc-d4zh cc-xxo7 cc-94yb cc-1c2b"><img' + g.Library.jade.runtime.attr("src", n + "/process/resize/?url=" + e + "&width=960&height=960", !0, !1) + g.Library.jade.runtime.attr("alt", "" + i, !0, !1) + "/></span></a>")
                    }.call(this, "encodeURIComponent" in t ? t.encodeURIComponent : "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "url_crisp_image" in t ? t.url_crisp_image : "undefined" != typeof url_crisp_image ? url_crisp_image : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), c.join("")
                },
                markdown_vimeo: function(t) {
                    var e, s = [],
                        t = t || {};
                    return function(t, i, n) {
                        s.push(""), n = "https://vimeo.com/" + t(n) + "?autoplay=1", s.push("<a" + g.Library.jade.runtime.attr("href", n, !1, !1) + ' rel="noopener noreferrer" target="_blank" class="cc-w8bm cc-tn3x">' + (null == (e = i || n) ? "" : e) + "</a>")
                    }.call(this, "encodeURIComponent" in t ? t.encodeURIComponent : "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), s.join("")
                },
                markdown_dailymotion: function(t) {
                    var c = [],
                        t = t || {};
                    return function(t, i, n, e) {
                        c.push("");
                        var s = "https://www.dailymotion.com/embed/video/" + t(e),
                            e = t("https://www.dailymotion.com/thumbnail/video/" + t(e));
                        c.push("<a" + g.Library.jade.runtime.attr("href", s, !0, !1) + ' rel="noopener noreferrer" target="_blank" class="cc-rxbq cc-1fry cc-1taz"><span class="cc-d4zh cc-168u cc-94yb cc-1c2b"><img' + g.Library.jade.runtime.attr("src", n + "/process/resize/?url=" + e + "&width=320&height=240", !0, !1) + g.Library.jade.runtime.attr("alt", "" + i, !0, !1) + "/></span></a>")
                    }.call(this, "encodeURIComponent" in t ? t.encodeURIComponent : "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "url_crisp_image" in t ? t.url_crisp_image : "undefined" != typeof url_crisp_image ? url_crisp_image : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), c.join("")
                },
                markdown_frame: function(t) {
                    var e, s = [],
                        t = t || {};
                    return function(t, i, n) {
                        s.push("<a" + g.Library.jade.runtime.attr("href", "" + t.filter_link_safe(n), !1, !1) + ' rel="noopener noreferrer" target="_blank" class="cc-w8bm cc-tn3x">' + (null == (e = i || n) ? "" : e) + "</a>")
                    }.call(this, "methods" in t ? t.methods : "undefined" != typeof methods ? methods : void 0, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "value" in t ? t.value : "undefined" != typeof value ? value : void 0), s.join("")
                },
                smiley: function(t) {
                    var n = [],
                        t = t || {};
                    return function(t, i) {
                        n.push("<span" + g.Library.jade.runtime.attr("data-size", i, !0, !1) + g.Library.jade.runtime.attr("data-name", t, !0, !1) + ' class="cc-tkf1"></span>')
                    }.call(this, "name" in t ? t.name : "undefined" != typeof name ? name : void 0, "size" in t ? t.size : "undefined" != typeof size ? size : void 0), n.join("")
                },
                magnify: function(t) {
                    var s = [],
                        t = t || {};
                    return function(t, i, n, e) {
                        switch (s.push('<div tabindex="0"' + g.Library.jade.runtime.attr("data-type", "" + e, !0, !1) + ' data-state="loading" class="cc-1nn0"><span class="cc-a87x cc-1eqr"></span>'), e) {
                            case "image":
                                s.push("<img" + g.Library.jade.runtime.attr("src", "" + n, !0, !1) + ' alt="" class="cc-z6hh"/>');
                                break;
                            case "video":
                                s.push("<video" + g.Library.jade.runtime.attr("src", "" + n, !0, !1) + ' autoplay="autoplay" controls="controls" class="cc-z6hh"></video>');
                                break;
                            default:
                                s.push('<iframe type="text/html"' + g.Library.jade.runtime.attr("src", "" + n, !0, !1) + ' frameborder="0" sandbox="allow-popups allow-same-origin allow-scripts" class="cc-z6hh"></iframe>')
                        }
                        s.push('<div class="cc-1sfm"><div class="cc-5gev">'), t.previous && s.push('<a data-action="previous" role="button" class="cc-12xv"></a>'), "image" !== e && "video" !== e || s.push('<a data-action="download"' + g.Library.jade.runtime.attr("href", "" + n, !0, !1) + g.Library.jade.runtime.attr("download", "" + (i || n), !0, !1) + ' rel="noopener noreferrer" target="_blank" class="cc-12xv"></a>'), s.push('<a data-action="close" role="button" class="cc-12xv"></a>'), t.next && s.push('<a data-action="next" role="button" class="cc-12xv"></a>'), s.push("</div></div></div>")
                    }.call(this, "fingerprints" in t ? t.fingerprints : "undefined" != typeof fingerprints ? fingerprints : void 0, "name" in t ? t.name : "undefined" != typeof name ? name : void 0, "source" in t ? t.source : "undefined" != typeof source ? source : void 0, "type" in t ? t.type : "undefined" != typeof type ? type : void 0), s.join("")
                },
                article: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push('<div tabindex="0" data-state="loading" class="cc-k0ox"><span class="cc-ikw0 cc-1eqr"></span><div class="cc-12ru"><div class="cc-4k0k"><div class="cc-1ov4"><a role="button" class="cc-1o7o cc-151q">' + g.Library.jade.runtime.escape(null == (n = t("article", "controls_close")) ? "" : n) + "</a><a" + g.Library.jade.runtime.attr("href", i.url + "/", !0, !1) + ' target="_blank" rel="noopener noreferrer" class="cc-16od cc-1ada cc-151q">' + g.Library.jade.runtime.escape(null == (n = t("article", "controls_view")) ? "" : n) + '</a></div><div class="cc-1btj cc-y6ot"><iframe type="text/html"' + g.Library.jade.runtime.attr("src", i.url + "/reader/", !0, !1) + ' frameborder="0" class="cc-q2us"></iframe></div></div></div></div>')
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "frame" in t ? t.frame : "undefined" != typeof frame ? frame : void 0), e.join("")
                },
                spotlight: function(t) {
                    var e, s = [],
                        t = t || {};
                    return function(t, i) {
                        s.push('<div tabindex="0" data-state="loaded" data-has-results="false" class="cc-1qlo"><div class="cc-1pql"><div class="cc-16yo"><form action="#" method="post" class="cc-1ipv">');
                        var n = t("spotlight", "search_form_field");
                        s.push('<span class="cc-1282 cc-1ada"><span class="cc-12t6 cc-1eqr"></span></span><input type="text" name="spotlight_query"' + g.Library.jade.runtime.attr("placeholder", "" + n, !0, !1) + ' autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" maxlength="100" class="cc-tdrg cc-clw4 cc-1lut cc-kgeu"/><span class="cc-4wnb cc-kgeu"></span><span class="cc-16kz cc-kgeu"></span></form><div class="cc-16io">'), i && s.push('<ul class="cc-1fvn"><li data-type="close" class="cc-mn2r"><a role="button" class="cc-4obg cc-1o4r cc-151q">' + g.Library.jade.runtime.escape(null == (e = t("spotlight", "action_close")) ? "" : e) + '</a></li><li data-type="open" class="cc-mn2r cc-jq4y"><a' + g.Library.jade.runtime.attr("href", "" + i, !0, !1) + ' target="_blank" rel="noopener noreferrer" class="cc-4obg cc-151q">' + g.Library.jade.runtime.escape(null == (e = t("spotlight", "action_open")) ? "" : e) + "</a></li></ul>"), s.push("</div></div></div></div>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "url" in t ? t.url : "undefined" != typeof url ? url : void 0), s.join("")
                },
                spotlight_results: function(t) {
                    var o, h = [],
                        t = t || {};
                    return function(s, c, a, r, t) {
                        h.push('<div class="cc-1u0c">'), 0 < r.length ? (h.push('<ul class="cc-6716">'), function() {
                            var t = r;
                            if ("number" == typeof t.length)
                                for (var i = 0, n = t.length; i < n; i++) {
                                    var e = t[i];
                                    h.push("<li" + g.Library.jade.runtime.attr("data-locale", "" + e.locale, !0, !1) + g.Library.jade.runtime.attr("data-slug", "" + e.slug, !0, !1) + ' class="cc-7rhc"><a' + g.Library.jade.runtime.attr("href", "" + c + e.locale + "/article/" + e.slug + "/", !0, !1) + ' target="_blank" rel="noopener noreferrer"' + g.Library.jade.runtime.attr("data-active", !0 === a && 0 === i ? "true" : "false", !0, !1) + ' class="cc-1h5e cc-7rgf"><span class="cc-bdl5 cc-151q">' + g.Library.jade.runtime.escape(null == (o = e.title) ? "" : o) + '</span><span class="cc-1kt8 cc-kgeu">' + g.Library.jade.runtime.escape(null == (o = s("spotlight", "result_view")) ? "" : o) + "</span></a></li>")
                                } else
                                    for (i in n = 0, t) n++, e = t[i], h.push("<li" + g.Library.jade.runtime.attr("data-locale", "" + e.locale, !0, !1) + g.Library.jade.runtime.attr("data-slug", "" + e.slug, !0, !1) + ' class="cc-7rhc"><a' + g.Library.jade.runtime.attr("href", "" + c + e.locale + "/article/" + e.slug + "/", !0, !1) + ' target="_blank" rel="noopener noreferrer"' + g.Library.jade.runtime.attr("data-active", !0 === a && 0 === i ? "true" : "false", !0, !1) + ' class="cc-1h5e cc-7rgf"><span class="cc-bdl5 cc-151q">' + g.Library.jade.runtime.escape(null == (o = e.title) ? "" : o) + '</span><span class="cc-1kt8 cc-kgeu">' + g.Library.jade.runtime.escape(null == (o = s("spotlight", "result_view")) ? "" : o) + "</span></a></li>")
                        }.call(this), h.push("</ul>")) : h.push('<span class="cc-8qof cc-151q">' + g.Library.jade.runtime.escape(null == (o = s("spotlight", "result_empty")) ? "" : o) + "</span>"), h.push("</div>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "base_url" in t ? t.base_url : "undefined" != typeof base_url ? base_url : void 0, "has_active" in t ? t.has_active : "undefined" != typeof has_active ? has_active : void 0, "results" in t ? t.results : "undefined" != typeof results ? results : void 0, "undefined" in t ? t.undefined : void 0), h.join("")
                },
                date_now: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span data-type="now" class="cc-1ho2">' + g.Library.jade.runtime.escape(null == (i = t("date", "now")) ? "" : i) + "</span>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0), n.join("")
                },
                date_seconds: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span data-type="seconds" class="cc-1ho2">' + g.Library.jade.runtime.escape(null == (i = t("date", "second")) ? "" : i) + "</span>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0), n.join("")
                },
                date_minutes: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push('<span data-type="minutes" class="cc-1ho2">'), 1 === i ? e.push(g.Library.jade.runtime.escape(null == (n = t("date", "minute_singular")) ? "" : n)) : e.push(g.Library.jade.runtime.escape(null == (n = t("date", "minute_plural", [i])) ? "" : n)), e.push("</span>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "minutes" in t ? t.minutes : "undefined" != typeof minutes ? minutes : void 0), e.join("")
                },
                date_hours: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push('<span data-type="hours" class="cc-1ho2">'), 1 === i ? e.push(g.Library.jade.runtime.escape(null == (n = t("date", "hour_singular")) ? "" : n)) : e.push(g.Library.jade.runtime.escape(null == (n = t("date", "hour_plural", [i])) ? "" : n)), e.push("</span>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "hours" in t ? t.hours : "undefined" != typeof hours ? hours : void 0), e.join("")
                },
                date_far_away: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span data-type="far_away" class="cc-1ho2">' + g.Library.jade.runtime.escape(null == (i = t) ? "" : i) + "</span>")
                    }.call(this, "date_full" in t ? t.date_full : "undefined" != typeof date_full ? date_full : void 0), n.join("")
                },
                duration_now: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span data-type="now" class="cc-blao">' + g.Library.jade.runtime.escape(null == (i = t("duration", "now")) ? "" : i) + "</span>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0), n.join("")
                },
                duration_seconds: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span data-type="seconds" class="cc-blao">' + g.Library.jade.runtime.escape(null == (i = t("duration", "second")) ? "" : i) + "</span>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0), n.join("")
                },
                duration_minutes: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push('<span data-type="minutes" class="cc-blao">'), 1 === i ? e.push(g.Library.jade.runtime.escape(null == (n = t("duration", "minute_singular")) ? "" : n)) : e.push(g.Library.jade.runtime.escape(null == (n = t("duration", "minute_plural", [i])) ? "" : n)), e.push("</span>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "minutes" in t ? t.minutes : "undefined" != typeof minutes ? minutes : void 0), e.join("")
                },
                duration_hours: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push('<span data-type="hours" class="cc-blao">'), 1 === i ? e.push(g.Library.jade.runtime.escape(null == (n = t("duration", "hour_singular")) ? "" : n)) : e.push(g.Library.jade.runtime.escape(null == (n = t("duration", "hour_plural", [i])) ? "" : n)), e.push("</span>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "hours" in t ? t.hours : "undefined" != typeof hours ? hours : void 0), e.join("")
                },
                duration_days: function(t) {
                    var i, n = [],
                        t = t || {};
                    return function(t) {
                        n.push('<span data-type="days" class="cc-blao">' + g.Library.jade.runtime.escape(null == (i = t("duration", "days")) ? "" : i) + "</span>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0), n.join("")
                },
                chat: function(t) {
                    var y, m = [],
                        _ = {},
                        t = t || {};
                    return function(t, c, a, i, n, e, s, r, o, h, u, l) {
                        m.push(""), m.push(""), _["text-space"] = y = function() {
                            this && this.block, this && this.attributes, m.push("<span> </span>")
                        }, m.push('<div class="cc-1xry cc-1gmp"><div data-visible="true" data-chat-status="none" class="cc-ge4v"><div class="cc-bdff">');
                        var f = e.chat.tile && "default" !== e.chat.tile && !0;
                        m.push("<div" + g.Library.jade.runtime.attr("data-tile", e.chat.tile || null, !0, !1) + ' data-with-website-name="true"' + g.Library.jade.runtime.cls(["cc-x32x", "cc-1ada", !0 === f ? "cc-1c1d cc-1ybb" : "cc-g73w"], [null, null, !0]) + '><span class="cc-1j74">');
                        var d = o.active_operators(l.id, e),
                            p = o.count_other_operators(e);
                        (function() {
                            var t = d;
                            if ("number" == typeof t.length)
                                for (var i = 0, n = t.length; i < n; i++) {
                                    var e = t[i],
                                        s = c(240, e.type, e.identifier, e.avatar);
                                    m.push('<span class="cc-furf cc-he6y cc-1xll"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + s + "') !important;", !0, !1) + ' class="cc-1do6 cc-wsm4"></span><span' + g.Library.jade.runtime.attr("data-has-name", e.name ? "true" : "false", !0, !1) + ' class="cc-1wwd cc-1tzl cc-1ntm cc-1wsx"><span class="cc-1ybw cc-h1yx cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = e.name) ? "" : y) + "</span></span></span>")
                                } else
                                    for (i in n = 0, t) n++, e = t[i], s = c(240, e.type, e.identifier, e.avatar), m.push('<span class="cc-furf cc-he6y cc-1xll"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + s + "') !important;", !0, !1) + ' class="cc-1do6 cc-wsm4"></span><span' + g.Library.jade.runtime.attr("data-has-name", e.name ? "true" : "false", !0, !1) + ' class="cc-1wwd cc-1tzl cc-1ntm cc-1wsx"><span class="cc-1ybw cc-h1yx cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = e.name) ? "" : y) + "</span></span></span>")
                        }).call(this), 0 < p && m.push("<span" + g.Library.jade.runtime.cls(["cc-ujtk", "cc-151q", !0 === f ? "cc-5ekd" : "cc-16jc"], [null, null, !0]) + ">" + g.Library.jade.runtime.escape(null == (y = p) ? "" : y) + "+</span>"), m.push('<span class="cc-iuse"></span></span><span class="cc-1k9z"><span class="cc-2dnw cc-6zjc cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("theme_text", ["default_chat", e.chat.theme_text + "_chat"])) ? "" : y) + '</span><span class="cc-1wea cc-6zjc cc-151q"><span data-type="operator_name" class="cc-155a cc-txwe cc-6zjc"></span><span data-type="website_from" class="cc-155a cc-6zjc">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_header_ongoing_from")) ? "" : y) + '</span><span data-type="website_name" class="cc-155a cc-6zjc">' + g.Library.jade.runtime.escape(null == (y = e.website.name) ? "" : y) + '</span><span class="cc-iuse"></span></span><span class="cc-h139"><span data-id="online" class="cc-1k4b cc-6zjc">'), p = !0 === e.chat.activity_metrics && i.metrics && !0, m.push('<span data-type="default"' + g.Library.jade.runtime.attr("data-duration", !0 === p ? i.metrics.raw : null, !0, !1) + ' class="cc-2r1p cc-6zjc cc-kgeu">'), !0 === p ? m.push(g.Library.jade.runtime.escape(null == (y = a("chat", "chat_header_ongoing_status_metrics", [i.metrics.format])) ? "" : y)) : m.push(g.Library.jade.runtime.escape(null == (y = a("chat", "chat_header_ongoing_status_online")) ? "" : y)), m.push('</span><span data-type="ongoing" class="cc-2r1p cc-6zjc cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_header_ongoing_status_online")) ? "" : y) + '</span></span><span data-id="away" class="cc-1k4b cc-6zjc">'), p = !0 === e.chat.activity_metrics && i.last && !0, m.push('<span data-type="default"' + g.Library.jade.runtime.attr("data-date-iso", !0 === p ? i.last.raw : null, !0, !1) + g.Library.jade.runtime.attr("data-date-format", !0 === p ? a("chat", "chat_header_ongoing_status_last") : null, !0, !1) + g.Library.jade.runtime.attr("data-date-watch", !0 === p ? "true" : null, !0, !1) + ' class="cc-2r1p cc-12fb cc-6zjc cc-kgeu">'), !0 === p ? m.push(g.Library.jade.runtime.escape(null == (y = a("chat", "chat_header_ongoing_status_last", [i.last.format])) ? "" : y)) : m.push(g.Library.jade.runtime.escape(null == (y = a("chat", "chat_header_ongoing_status_away")) ? "" : y)), m.push('</span><span data-type="ongoing" class="cc-2r1p cc-6zjc cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_header_ongoing_status_away")) ? "" : y) + '</span></span><span class="cc-iuse"></span></span><span class="cc-cqnw">');
                        var v = [
                            ["email", a("chat", "chat_header_ongoing_channel_continue_email")],
                            ["phone", a("chat", "chat_header_ongoing_channel_continue_phone")],
                            ["messenger", "Messenger"],
                            ["telegram", "Telegram"],
                            ["twitter", "Twitter"]
                        ];
                        !0 === n.helpdesk.search && m.push('<a data-channel="spotlight" role="button" class="cc-1qlt cc-3x4f cc-1xll"><span class="cc-1tzl cc-68z9 cc-sc6q"><span class="cc-h1yx cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_welcome_helpdesk")) ? "" : y) + "</span></span></a>"),
                            function() {
                                var t = v;
                                if ("number" == typeof t.length)
                                    for (var i = 0, n = t.length; i < n; i++) {
                                        var e = t[i],
                                            s = o.generate_channel_link(e[0]),
                                            c = -1 !== ["email", "phone"].indexOf(e[0]) ? "_parent" : "_blank";
                                        s && c && m.push("<a" + g.Library.jade.runtime.attr("data-channel", "" + e[0], !0, !1) + g.Library.jade.runtime.attr("href", "" + s, !0, !1) + g.Library.jade.runtime.attr("target", "" + c, !0, !1) + ' rel="noopener noreferrer"' + g.Library.jade.runtime.cls(["cc-1qlt", "cc-1xll", !0 === f ? "cc-3x4f" : "cc-4xbu"], [null, null, !0]) + '><span class="cc-1tzl cc-68z9 cc-sc6q"><span class="cc-h1yx cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_header_ongoing_channel_continue", [e[1]])) ? "" : y) + "</span></span></a>")
                                    } else
                                        for (i in n = 0, t) n++, s = o.generate_channel_link((e = t[i])[0]), c = -1 !== ["email", "phone"].indexOf(e[0]) ? "_parent" : "_blank", s && c && m.push("<a" + g.Library.jade.runtime.attr("data-channel", "" + e[0], !0, !1) + g.Library.jade.runtime.attr("href", "" + s, !0, !1) + g.Library.jade.runtime.attr("target", "" + c, !0, !1) + ' rel="noopener noreferrer"' + g.Library.jade.runtime.cls(["cc-1qlt", "cc-1xll", !0 === f ? "cc-3x4f" : "cc-4xbu"], [null, null, !0]) + '><span class="cc-1tzl cc-68z9 cc-sc6q"><span class="cc-h1yx cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_header_ongoing_channel_continue", [e[1]])) ? "" : y) + "</span></span></a>")
                            }.call(this), m.push('<span class="cc-iuse"></span></span></span><span' + g.Library.jade.runtime.cls(["cc-wdhl", !0 === f ? "cc-1f87" : "cc-199t"], [null, !0]) + '><span class="cc-1asz"></span></span></div><span class="cc-uryd"></span></div><div' + g.Library.jade.runtime.attr("data-has-health", h.url && !0 === e.chat.status_health_dead && e.website.status && "dead" === e.website.status.health && 18e4 <= t.now() - e.website.status.since ? "true" : "false", !0, !1) + ' data-has-offline="false" class="cc-qqzz"><div' + g.Library.jade.runtime.attr("data-refer-hide-space", "urn:crisp.im:debranding:0" in e.plugins && !0 !== e.website.trial ? "true" : "false", !0, !1) + ' class="cc-5b24">'), t = !0 !== n.runtime.lock_maximized && (!0 === e.chat.hide_vacation || !0 === n.blocked), m.push('<div class="cc-41gl cc-1vnk cc-2ydi"><div class="cc-15u8"><span class="cc-18rr cc-ic7l"></span><span class="cc-1mjm"><span class="cc-qn0f cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_offline_main")) ? "" : y) + '</span><span class="cc-vks0 cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_offline_inactive")) ? "" : y) + '</span><span class="cc-10sl cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_offline_fail")) ? "" : y) + '</span><span class="cc-1ji5 cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_offline_label_frozen")) ? "" : y) + '</span><span class="cc-1eac cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_offline_label_resume")) ? "" : y) + "</span></span></div></div>"), h.url && (m.push('<div class="cc-1c6m cc-1vnk cc-2ydi"><div class="cc-138l"><span class="cc-7s5d cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_health_main")) ? "" : y) + '</span><span class="cc-s6qy cc-kgeu"><a' + g.Library.jade.runtime.attr("href", "" + h.url, !0, !1) + ' target="_blank" rel="noopener noreferrer" class="cc-1qlv cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_health_label_link")) ? "" : y) + "</a>"), _["text-space"](), m.push(g.Library.jade.runtime.escape(null == (y = a("chat", "chat_health_label_updates")) ? "" : y) + "</span></div></div>")), m.push('<div class="cc-1pvj cc-y6ot"><div class="cc-1v5j"><div class="cc-3lvj"></div><div class="cc-192e"></div></div></div>'), !0 === e.chat.file_transfer && m.push('<div class="cc-2uua"><div class="cc-1hl5"></div><div class="cc-1b7n cc-1aev"><div class="cc-16re"><div class="cc-1toe cc-1ada"></div><div class="cc-1ehq cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_form_attach_tooltip")) ? "" : y) + "</div></div></div></div>"), m.push('<div data-has-animation="true" class="cc-1tha"><div class="cc-batn cc-ve3u"><div class="cc-h39l"><a role="button" data-type="smiley" class="cc-mxq4 cc-183m cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_pickers_selector_smileys")) ? "" : y) + '</a><a role="button" data-type="gif" class="cc-mxq4 cc-183m cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_pickers_selector_gifs")) ? "" : y) + '</a></div><div class="cc-vcjp"><div data-type="smiley" class="cc-5ftt"><span class="cc-yb0h">'),
                            function() {
                                var t = r.smileys;
                                if ("number" == typeof t.length)
                                    for (var i = 0, n = t.length; i < n; i++) {
                                        var e = t[i];
                                        m.push('<span data-size="large"' + g.Library.jade.runtime.attr("data-name", i, !0, !1) + g.Library.jade.runtime.attr("data-value", e, !0, !1) + ' class="cc-dnqb cc-tkf1"></span>')
                                    } else
                                        for (i in n = 0, t) n++, e = t[i], m.push('<span data-size="large"' + g.Library.jade.runtime.attr("data-name", i, !0, !1) + g.Library.jade.runtime.attr("data-value", e, !0, !1) + ' class="cc-dnqb cc-tkf1"></span>')
                            }.call(this), m.push('</span></div><div data-type="gif" data-has-search="false" class="cc-5ftt"><span class="cc-r00v"><span data-action="search" class="cc-z5zp">'), n = a("chat", "chat_pickers_gif_search"), m.push('<a role="button" class="cc-1k8e"></a><input type="text" name="gif_search"' + g.Library.jade.runtime.attr("placeholder", "" + n, !0, !1) + ' maxlength="25" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" class="cc-19m8 cc-1lut cc-kgeu"/></span></span><span class="cc-yb0h"></span><span class="cc-1ydc"><span data-notice="no_results" class="cc-bj9g cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_pickers_gif_no_results")) ? "" : y) + '</span></span></div></div></div></div><div class="cc-14ou"><a role="button" data-type="new_messages" class="cc-sel9"><span class="cc-1mtf"><span class="cc-tez9"></span><span class="cc-1691 cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_alerts_new_messages")) ? "" : y) + '</span></span></a><a role="button" data-type="warn_reply" class="cc-sel9"><div class="cc-1mtf"><span class="cc-1691 cc-151q">'), h = "email_default", !0 === e.chat.phone_visitors && !0 !== e.chat.email_visitors ? h = !0 === e.chat.force_identify ? "phone_force" : "phone_default" : !0 === e.chat.force_identify && (h = "email_force"), m.push(g.Library.jade.runtime.escape(null == (y = a("chat", "chat_alerts_warn_reply_" + h)) ? "" : y) + '</span></div></a><a role="button" data-type="email_invalid" class="cc-sel9"><div class="cc-1mtf"><span class="cc-1691 cc-151q">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_alerts_email_invalid")) ? "" : y) + '</span></div></a><div data-type="wait_reply" class="cc-sel9"><div class="cc-1mtf"><span class="cc-1691 cc-151q"><span data-id="online" class="cc-ripp">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_alerts_wait_reply_online")) ? "" : y) + '</span><span data-id="away" class="cc-ripp">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_alerts_wait_reply_away")) ? "" : y) + '</span></span></div></div></div><div data-has-value="false"' + g.Library.jade.runtime.attr("data-is-locked", 1 == t ? "true" : "false", !0, !1) + g.Library.jade.runtime.attr("data-retain-lock", 1 == t ? "true" : "false", !0, !1) + ' class="cc-g7iw cc-2ydi"><form name="form_message" action="#" method="post" class="cc-1uz4">'), n = a("chat", "chat_form_field_message"), h = a("chat", "chat_form_field_disabled"), m.push('<textarea name="message"' + g.Library.jade.runtime.attr("placeholder", "" + (1 == t ? h : n), !0, !1) + ' cols="20" rows="1" dir="auto" autocapitalize="off" autocomplete="off"' + g.Library.jade.runtime.attr("disabled", 1 == t ? "" : null, !0, !1) + ' data-has-selection-range="data-has-selection-range" class="cc-pjpe cc-1lut cc-2n8m cc-kgeu"></textarea></form><div class="cc-1cxr"><div class="cc-t0eq"><div data-type="smiley" data-state="none" class="cc-1y2e"><span class="cc-1926 cc-1xll"><span class="cc-1tzl cc-68z9 cc-1wsx"><span class="cc-h1yx cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_form_smiley_tooltip")) ? "" : y) + '</span></span><span data-variant="inactive" class="cc-1oxy cc-11vl cc-1aev"><span class="cc-7ebe"><span class="cc-nqfv cc-8kb8 cc-ew5j"></span><span class="cc-kpmf cc-8kb8 cc-18sf"></span></span></span><span data-variant="active" class="cc-1oxy cc-11vl cc-1ada cc-1aev"><span class="cc-7ebe"><span class="cc-nqfv cc-8kb8 cc-1ada"></span><span class="cc-kpmf cc-8kb8 cc-ew5j"></span></span></span></span></div>'), !0 === e.chat.file_transfer && m.push('<div data-type="file" data-state="none" class="cc-1y2e"><span class="cc-1926 cc-1xll"><span class="cc-1tzl cc-68z9 cc-1wsx"><span class="cc-h1yx cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "chat_form_attach_tooltip")) ? "" : y) + '</span></span><input type="file" name="attach_file" title="" multiple="multiple" class="cc-do6v"/><span class="cc-1oxy cc-1e7d cc-1aev cc-8kb8 cc-ew5j"></span><span class="cc-1wj3"><span class="cc-1uc7 cc-1nph cc-1o96"></span></span></span></div>'), m.push('<span class="cc-13gu"><span class="cc-br7s cc-vuur"><span class="cc-hf7r"></span></span></span><span class="cc-iuse"></span></div><span class="cc-iuse"></span></div></div>'), "urn:crisp.im:debranding:0" in e.plugins && !0 !== e.website.trial || (m.push('<div class="cc-19cg cc-ve3u"><div class="cc-z2iy">'), t = s(l.domain), l = s(l.name), m.push("<a" + g.Library.jade.runtime.attr("href", r.url.crisp_web + "/livechat/?ref=chatbox&domain=" + t + "&name=" + l, !0, !1) + ' target="_blank" rel="noopener noreferrer" class="cc-13dp"><span class="cc-3f6y cc-kgeu">We run on</span><span class="cc-1204"></span><span class="cc-3f6y cc-37qh cc-151q">Crisp</span><span class="cc-iuse"></span></a><span class="cc-iuse"></span></div><span class="cc-iuse"></span></div>')), m.push('</div></div></div><a data-visible="false" data-is-failure="false" role="button" class="cc-unoo"><span class="cc-1c9v"><span data-id="new_messages" class="cc-1bue"><span class="cc-t81c"><span class="cc-86w0"><span class="cc-6uue cc-hy0f"></span></span><span class="cc-2zuy"></span></span><span class="cc-1bcp"><span class="cc-1s28"><span data-for-id="new_messages" class="cc-1div cc-kgeu">' + g.Library.jade.runtime.escape(null == (y = a("chat", "minimized_tooltip_message_compose")) ? "" : y) + '<span class="cc-1hs9"><span class="cc-1q5i"><span data-variant="inactive" class="cc-1oxy cc-11vl"><span class="cc-7ebe"><span class="cc-nqfv"></span><span class="cc-kpmf"></span></span></span><span class="cc-1oxy cc-1e7d"></span></span></span></span><span class="cc-iuse"></span></span></span></span></span><span class="cc-7doi cc-1ada"><span data-id="chat_opened" class="cc-1iv2"><span data-is-ongoing="false" class="cc-15mo">'), !0 === e.chat.last_operator_face && 0 < e.website.active_operators.length ? (e = e.website.active_operators[0], e = c(240, "operator", e.user_id, e.avatar), m.push('<span class="cc-10ml cc-he6y"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + e + "') !important;", !0, !1) + ' class="cc-1dx3 cc-wsm4"></span></span>')) : m.push('<span class="cc-10ml cc-he6y"><span class="cc-1dx3 cc-wsm4"></span></span>'), m.push('<span class="cc-1j7n"></span><span class="cc-12u5 cc-151q">0</span></span></span></span></a><span data-visible="false" data-visible-subtle="false" class="cc-yqwh"><span class="cc-je17"></span></span></div>')
                    }.call(this, "Date" in t ? t.Date : "undefined" != typeof Date ? Date : void 0, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "activity" in t ? t.activity : "undefined" != typeof activity ? activity : void 0, "chatbox" in t ? t.chatbox : "undefined" != typeof chatbox ? chatbox : void 0, "configuration" in t ? t.configuration : "undefined" != typeof configuration ? configuration : void 0, "encodeURIComponent" in t ? t.encodeURIComponent : "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0, "environment" in t ? t.environment : "undefined" != typeof environment ? environment : void 0, "methods" in t ? t.methods : "undefined" != typeof methods ? methods : void 0, "status" in t ? t.status : "undefined" != typeof status ? status : void 0, "undefined" in t ? t.undefined : void 0, "website" in t ? t.website : "undefined" != typeof website ? website : void 0), m.join("")
                },
                minimized_authorized: function(t) {
                    var h, u = [],
                        t = t || {};
                    return function(t, s, i, c, a, n, e, r) {
                        u.push(""), u.push('<div class="cc-1xry cc-1gmp"><a data-maximized="false"' + g.Library.jade.runtime.attr("data-is-failure", "false", !0, !1) + ' role="button" class="cc-unoo"><span class="cc-1c9v">'), u.push('<span data-id="general_entice"' + g.Library.jade.runtime.attr("data-with-helpdesk", a && a.url ? "true" : "false", !0, !1) + g.Library.jade.runtime.attr("data-is-concealed", !0 === i ? "true" : "false", !0, !1) + ' class="cc-1bue"><span class="cc-1bcp"><span class="cc-1s28 cc-kgeu">');
                        var o, r = n.active_operators(r.id, c);
                        u.push('<span class="cc-tkyh"><span class="cc-1t9t"><span class="cc-g0ak cc-hy0f"></span><span' + g.Library.jade.runtime.attr("data-has-avatar", 0 < r.length ? "true" : "false", !0, !1) + ' class="cc-xc93"><span class="cc-17df"><span class="cc-od26 cc-151q">' + g.Library.jade.runtime.escape(null == (h = s("theme_text", ["default_chat", c.chat.theme_text + "_chat"])) ? "" : h) + '</span><span data-id="online" class="cc-1rau cc-kgeu">' + g.Library.jade.runtime.escape(null == (h = s("minimized", "tooltip_entice_status_online")) ? "" : h) + '</span><span data-id="away" class="cc-1rau cc-kgeu">' + g.Library.jade.runtime.escape(null == (h = s("minimized", "tooltip_entice_status_away")) ? "" : h) + "</span></span>"), 0 < r.length && (o = t(240, (o = r[0]).type, o.identifier, o.avatar), u.push('<span class="cc-56dg"><span class="cc-8exe cc-he6y"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + o + "') !important;", !0, !1) + ' class="cc-1h5w cc-wsm4"></span></span></span>')), u.push("</span></span></span>"),
                            function() {
                                var t = ["online", "away"];
                                if ("number" == typeof t.length)
                                    for (var i = 0, n = t.length; i < n; i++) {
                                        var e = t[i];
                                        u.push("<span" + g.Library.jade.runtime.attr("data-when", "" + e, !0, !1) + ' class="cc-rzi5">'), "away" === e && a && a.url ? u.push('<span data-pop="spotlight" class="cc-1yk0 cc-183m"><span class="cc-1viy"><span class="cc-16up cc-jq4y cc-151q">' + g.Library.jade.runtime.escape(null == (h = s("minimized", "tooltip_entice_split_helpdesk")) ? "" : h) + '</span></span></span><span class="cc-1yk0 cc-183m"><span class="cc-1viy"><span class="cc-16up cc-151q">' + g.Library.jade.runtime.escape(null == (h = s("minimized", "tooltip_entice_split_chat")) ? "" : h) + "</span></span></span>") : u.push('<span class="cc-1yk0 cc-183m"><span class="cc-1viy"><span class="cc-16up cc-jq4y cc-151q">' + g.Library.jade.runtime.escape(null == (h = s("minimized", "tooltip_entice_full_chat", [c.website.name])) ? "" : h) + "</span></span></span>"), u.push("</span>")
                                    } else
                                        for (i in n = 0, t) n++, u.push("<span" + g.Library.jade.runtime.attr("data-when", "" + (e = t[i]), !0, !1) + ' class="cc-rzi5">'), "away" === e && a && a.url ? u.push('<span data-pop="spotlight" class="cc-1yk0 cc-183m"><span class="cc-1viy"><span class="cc-16up cc-jq4y cc-151q">' + g.Library.jade.runtime.escape(null == (h = s("minimized", "tooltip_entice_split_helpdesk")) ? "" : h) + '</span></span></span><span class="cc-1yk0 cc-183m"><span class="cc-1viy"><span class="cc-16up cc-151q">' + g.Library.jade.runtime.escape(null == (h = s("minimized", "tooltip_entice_split_chat")) ? "" : h) + "</span></span></span>") : u.push('<span class="cc-1yk0 cc-183m"><span class="cc-1viy"><span class="cc-16up cc-jq4y cc-151q">' + g.Library.jade.runtime.escape(null == (h = s("minimized", "tooltip_entice_full_chat", [c.website.name])) ? "" : h) + "</span></span></span>"), u.push("</span>")
                            }.call(this), u.push("</span></span></span>"), u.push("</span>"), u.push('<span class="cc-7doi cc-1ada"><span data-id="chat_closed" class="cc-1iv2"><span class="cc-1yxw"><span class="cc-16qx cc-1eqr"></span></span><span data-is-ongoing="false" class="cc-15mo">'), !0 === c.chat.last_operator_face && 0 < c.website.active_operators.length && (o = t(240, "operator", (t = c.website.active_operators[0]).user_id, t.avatar), u.push('<span class="cc-10ml cc-he6y"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + o + "') !important;", !0, !1) + ' class="cc-1dx3 cc-wsm4"></span></span>')), u.push("</span></span></span>"), u.push("</a></div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "conceal_general_entice" in t ? t.conceal_general_entice : "undefined" != typeof conceal_general_entice ? conceal_general_entice : void 0, "configuration" in t ? t.configuration : "undefined" != typeof configuration ? configuration : void 0, "helpdesk" in t ? t.helpdesk : "undefined" != typeof helpdesk ? helpdesk : void 0, "methods" in t ? t.methods : "undefined" != typeof methods ? methods : void 0, "undefined" in t ? t.undefined : void 0, "website" in t ? t.website : "undefined" != typeof website ? website : void 0), u.join("")
                },
                minimized_unauthorized: function(t) {
                    var c, a = [],
                        t = t || {};
                    return function(t, i, n, e, s) {
                        a.push(""), a.push('<div class="cc-1xry cc-1gmp"><a data-maximized="false"' + g.Library.jade.runtime.attr("data-is-failure", "true", !0, !1) + ' role="button" class="cc-unoo"><span class="cc-1c9v">'), a.push('<span data-id="failure_notice" class="cc-1bue"><span class="cc-1bcp"><span class="cc-1s28 cc-151q">' + g.Library.jade.runtime.escape(null == (c = i("minimized", "unauthorized_pane")) ? "" : c) + "</span></span></span>"), a.push("</span>"), a.push('<span class="cc-7doi cc-1uwh"><span data-id="in_failure" class="cc-1iv2"><span data-is-ongoing="false" class="cc-15mo"></span></span></span>'), a.push("</a></div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "conceal_general_entice" in t ? t.conceal_general_entice : "undefined" != typeof conceal_general_entice ? conceal_general_entice : void 0, "configuration" in t ? t.configuration : "undefined" != typeof configuration ? configuration : void 0, "helpdesk" in t ? t.helpdesk : "undefined" != typeof helpdesk ? helpdesk : void 0), a.join("")
                },
                chat_preview_message: function(t) {
                    var f, d = [],
                        t = t || {};
                    return function(t, i, n, e, s, c, a, r, o, h, u) {
                        if (d.push(""), "text" === h || "file" === h || "animation" === h || "audio" === h || "picker" === h || "field" === h) {
                            switch (d.push('<span class="cc-1mdn"><span class="cc-2244">'), o = t(240, u.type || o, u.user_id, u.avatar), d.push('<span class="cc-j5l1 cc-he6y"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + o + "') !important;", !0, !1) + ' class="cc-1nza cc-wsm4"></span></span><span class="cc-1oup"><span class="cc-12sh"></span><span class="cc-1f2m"><span class="cc-7pex cc-kgeu">' + g.Library.jade.runtime.escape(null == (f = i("chat", "minimized_tooltip_message_from")) ? "" : f) + '</span><span class="cc-14a1 cc-151q">'), "website" === u.type ? d.push("" + g.Library.jade.runtime.escape(null == (f = u.nickname) ? "" : f)) : d.push("" + g.Library.jade.runtime.escape(null == (f = e(u.nickname)) ? "" : f)), d.push('</span><span class="cc-iuse"></span></span><span class="cc-raz0 cc-kgeu">'), h) {
                                case "text":
                                    d.push(null == (f = n(s, r)) ? "" : f);
                                    break;
                                case "file":
                                case "animation":
                                    switch (s.type) {
                                        case "image/jpg":
                                        case "image/jpeg":
                                        case "image/png":
                                        case "image/gif":
                                            var l = c(s.url);
                                            "animation" === h || "image/gif" === s.type ? d.push("<span" + g.Library.jade.runtime.attr("style", "background-image: url('" + a.url.crisp_image + "/process/original/?url=" + l + "') !important;", !0, !1) + ' class="cc-14ob"></span>') : d.push("<span" + g.Library.jade.runtime.attr("style", "background-image: url('" + a.url.crisp_image + "/process/resize/?url=" + l + "&width=180&height=180') !important;", !0, !1) + ' class="cc-14ob"></span>');
                                            break;
                                        default:
                                            "animation" === h ? d.push("🎉") : (d.push("📦"), s.name && d.push(" " + g.Library.jade.runtime.escape(null == (f = s.name) ? "" : f)))
                                    }
                                    break;
                                case "audio":
                                    d.push("🎧");
                                    break;
                                case "picker":
                                case "field":
                                    d.push(null == (f = n(s.text, r)) ? "" : f)
                            }
                            d.push('</span></span></span><span class="cc-iuse"></span></span>')
                        }
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "_f" in t ? t._f : "undefined" != typeof _f ? _f : void 0, "_n" in t ? t._n : "undefined" != typeof _n ? _n : void 0, "content" in t ? t.content : "undefined" != typeof content ? content : void 0, "encodeURIComponent" in t ? t.encodeURIComponent : "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0, "environment" in t ? t.environment : "undefined" != typeof environment ? environment : void 0, "format_context" in t ? t.format_context : "undefined" != typeof format_context ? format_context : void 0, "from" in t ? t.from : "undefined" != typeof from ? from : void 0, "type" in t ? t.type : "undefined" != typeof type ? type : void 0, "user" in t ? t.user : "undefined" != typeof user ? user : void 0), d.join("")
                },
                chat_message_text: function(t) {
                    var p, v = [],
                        y = {},
                        t = t || {};
                    return function(t, i, n, e, s, c, a, r, o, h, u, l, f, d) {
                        v.push(""), v.push(""), y["text-space"] = p = function() {
                            this && this.block, this && this.attributes, v.push("<span> </span>")
                        }, v.push("<div" + g.Library.jade.runtime.attr("data-from", "" + h, !0, !1) + g.Library.jade.runtime.attr("data-date-iso", "" + a, !0, !1) + g.Library.jade.runtime.attr("data-fingerprint", "" + r, !0, !1) + g.Library.jade.runtime.attr("data-type", "text", !0, !1) + g.Library.jade.runtime.attr("data-is-preview", "" + !1, !0, !1) + ' class="cc-b3wa">'), "operator" === h && (t = t(240, d.type || h, d.user_id, d.avatar), v.push('<span class="cc-1s5n cc-he6y cc-1xll"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-1jl7 cc-wsm4"></span>'), d.nickname && (v.push('<span class="cc-1tzl cc-1ntm cc-1wsx"><span class="cc-h1yx cc-kgeu">'), "website" === d.type ? v.push("" + g.Library.jade.runtime.escape(null == (p = d.nickname) ? "" : p)) : v.push("" + g.Library.jade.runtime.escape(null == (p = e(d.nickname)) ? "" : p)), v.push("</span></span>")), v.push("</span>")), v.push('<span class="cc-xfpr cc-1xll"><span' + g.Library.jade.runtime.cls(["cc-1yfu", "cc-1lut", "operator" === h ? "cc-1ada" : ""], [null, null, !0]) + "><span" + g.Library.jade.runtime.cls(["cc-xtol", "cc-kgeu", "operator" === h ? "cc-6zjc" : ""], [null, null, !0]) + ">" + (null == (p = n(s, o)) ? "" : p)), u.preview && function() {
                            var t, i, n = u.preview;
                            if ("number" == typeof n.length)
                                for (var e = 0, s = n.length; e < s; e++) {
                                    var c = n[e];
                                    v.push("<span" + g.Library.jade.runtime.attr("data-variant", "" + (c.variant || "none"), !0, !1) + ' class="cc-1kz7">'), c.preview && c.preview.embed && c.preview.image ? (t = l.image_url_resize(c.preview.image), v.push("<a" + g.Library.jade.runtime.attr("href", "" + c.preview.embed, !0, !1) + ' rel="noopener noreferrer" target="_blank" data-type="embed"' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-djxv cc-94yb cc-1c2b"><span class="cc-18zh"></span></a>')) : (c.preview && c.preview.image && (t = l.image_url_resize(c.preview.image), v.push("<a" + g.Library.jade.runtime.attr("href", "" + c.url, !0, !1) + ' rel="noopener noreferrer" target="_blank" data-type="image"' + g.Library.jade.runtime.attr("data-target", "" + (c.variant || "none"), !0, !1) + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-djxv"></a>')), v.push("<a" + g.Library.jade.runtime.attr("href", "" + c.url, !0, !1) + ' rel="noopener noreferrer" target="_blank" data-type="link"' + g.Library.jade.runtime.attr("data-target", "" + (c.variant || "none"), !0, !1) + g.Library.jade.runtime.cls(["cc-djxv", "cc-151q", "operator" === h ? "cc-k5w4" : ""], [null, null, !0]) + ">"), i = c.title || c.website || c.url, v.push(g.Library.jade.runtime.escape(null == (p = i) ? "" : p) + "</a>")), v.push("</span>")
                                } else
                                    for (e in s = 0, n) s++, c = n[e], v.push("<span" + g.Library.jade.runtime.attr("data-variant", "" + (c.variant || "none"), !0, !1) + ' class="cc-1kz7">'), c.preview && c.preview.embed && c.preview.image ? (t = l.image_url_resize(c.preview.image), v.push("<a" + g.Library.jade.runtime.attr("href", "" + c.preview.embed, !0, !1) + ' rel="noopener noreferrer" target="_blank" data-type="embed"' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-djxv cc-94yb cc-1c2b"><span class="cc-18zh"></span></a>')) : (c.preview && c.preview.image && (t = l.image_url_resize(c.preview.image), v.push("<a" + g.Library.jade.runtime.attr("href", "" + c.url, !0, !1) + ' rel="noopener noreferrer" target="_blank" data-type="image"' + g.Library.jade.runtime.attr("data-target", "" + (c.variant || "none"), !0, !1) + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-djxv"></a>')), v.push("<a" + g.Library.jade.runtime.attr("href", "" + c.url, !0, !1) + ' rel="noopener noreferrer" target="_blank" data-type="link"' + g.Library.jade.runtime.attr("data-target", "" + (c.variant || "none"), !0, !1) + g.Library.jade.runtime.cls(["cc-djxv", "cc-151q", "operator" === h ? "cc-k5w4" : ""], [null, null, !0]) + ">"), i = c.title || c.website || c.url, v.push(g.Library.jade.runtime.escape(null == (p = i) ? "" : p) + "</a>")), v.push("</span>")
                        }.call(this), v.push('</span><span class="cc-iuse"></span></span>'), c && (v.push('<span class="cc-iqjx cc-1tzl cc-68z9 cc-sc6q"><span class="cc-h1yx cc-kgeu"><span' + g.Library.jade.runtime.attr("data-date-iso", "" + a, !0, !1) + ' data-date-watch="true" class="cc-1k3j">' + g.Library.jade.runtime.escape(null == (p = c) ? "" : p) + '</span><span class="cc-1kje">'), !0 !== u.participant && !0 !== u.edited && !0 !== u.translated || (v.push('<span class="cc-66kp">('), !0 === u.participant && (v.push(g.Library.jade.runtime.escape(null == (p = i("chat", "chat_message_tag_participant")) ? "" : p)), !0 !== u.edited && !0 !== u.translated || (v.push(","), y["text-space"]())), !0 === u.edited && (v.push(g.Library.jade.runtime.escape(null == (p = i("chat", "chat_message_tag_edited")) ? "" : p)), !0 === u.translated && (v.push(","), y["text-space"]())), !0 === u.translated && v.push(g.Library.jade.runtime.escape(null == (p = i("chat", "chat_message_tag_translated")) ? "" : p)), v.push(")</span>")), v.push("</span></span></span>")), v.push('<span class="cc-iuse"></span></span><span class="cc-iuse"></span>'), "visitor" === h && v.push('<span class="cc-1did"><span class="cc-k5zk"><span class="cc-crgu"></span><span class="cc-1u5t cc-kgeu">' + g.Library.jade.runtime.escape(null == (p = i("chat", "chat_message_info_read")) ? "" : p) + '</span><span class="cc-iuse"></span></span><span class="cc-iuse"></span></span><a role="button" class="cc-pus6"><span class="cc-fnu6 cc-151q">' + g.Library.jade.runtime.escape(null == (p = i("chat", "chat_message_error_retry")) ? "" : p) + '</span><span class="cc-1pp5 cc-ic7l"></span><span class="cc-iuse"></span></a><span class="cc-iuse"></span>'), v.push("</div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "_f" in t ? t._f : "undefined" != typeof _f ? _f : void 0, "_n" in t ? t._n : "undefined" != typeof _n ? _n : void 0, "content" in t ? t.content : "undefined" != typeof content ? content : void 0, "date_formatted" in t ? t.date_formatted : "undefined" != typeof date_formatted ? date_formatted : void 0, "date_iso" in t ? t.date_iso : "undefined" != typeof date_iso ? date_iso : void 0, "fingerprint" in t ? t.fingerprint : "undefined" != typeof fingerprint ? fingerprint : void 0, "format_context" in t ? t.format_context : "undefined" != typeof format_context ? format_context : void 0, "from" in t ? t.from : "undefined" != typeof from ? from : void 0, "metas" in t ? t.metas : "undefined" != typeof metas ? metas : void 0, "methods" in t ? t.methods : "undefined" != typeof methods ? methods : void 0, "undefined" in t ? t.undefined : void 0, "user" in t ? t.user : "undefined" != typeof user ? user : void 0), v.join("")
                },
                chat_message_file: function(t) {
                    var d, p = [],
                        v = {},
                        t = t || {};
                    return function(t, i, n, e, s, c, a, r, o, h, u, l, f) {
                        p.push(""), p.push(""), v["text-space"] = d = function() {
                            this && this.block, this && this.attributes, p.push("<span> </span>")
                        }, p.push("<div" + g.Library.jade.runtime.attr("data-from", "" + h, !0, !1) + g.Library.jade.runtime.attr("data-date-iso", "" + c, !0, !1) + g.Library.jade.runtime.attr("data-fingerprint", "" + o, !0, !1) + g.Library.jade.runtime.attr("data-type", "file", !0, !1) + g.Library.jade.runtime.attr("data-is-preview", "" + u, !0, !1) + ' class="cc-b3wa">'), "operator" === h && (t = t(240, f.type || h, f.user_id, f.avatar), p.push('<span class="cc-1s5n cc-he6y cc-1xll"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-1jl7 cc-wsm4"></span>'), f.nickname && (p.push('<span class="cc-1tzl cc-1ntm cc-1wsx"><span class="cc-h1yx cc-kgeu">'), "website" === f.type ? p.push("" + g.Library.jade.runtime.escape(null == (d = f.nickname) ? "" : d)) : p.push("" + g.Library.jade.runtime.escape(null == (d = n(f.nickname)) ? "" : d)), p.push("</span></span>")), p.push("</span>")), p.push('<span class="cc-xfpr cc-1xll"><span' + g.Library.jade.runtime.cls(["cc-1yfu", "cc-1lut", "operator" === h ? "cc-1ada" : ""], [null, null, !0]) + "><span" + g.Library.jade.runtime.cls(["cc-xtol", "cc-kgeu", "operator" === h ? "cc-6zjc" : ""], [null, null, !0]) + '><span class="cc-1epp"><span class="cc-q81n cc-kgeu">'), e.name ? p.push("" + g.Library.jade.runtime.escape(null == (d = e.name) ? "" : d)) : p.push(g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_file_name")) ? "" : d)), p.push("</span>"), -1 !== r.types.file_preview.image.indexOf(e.type) ? (p.push("<a" + g.Library.jade.runtime.attr("href", "" + e.url, !0, !1) + ' data-action="image"' + g.Library.jade.runtime.attr("data-name", "" + e.name, !0, !1) + ' rel="noopener noreferrer" class="cc-nn4g cc-17m8">'), a = a(e.url), "image/gif" === e.type ? p.push("<span" + g.Library.jade.runtime.attr("style", "background-image: url('" + r.url.crisp_image + "/process/original/?url=" + a + "') !important;", !0, !1) + ' class="cc-fqnb"></span>') : p.push("<span" + g.Library.jade.runtime.attr("style", "background-image: url('" + r.url.crisp_image + "/process/resize/?url=" + a + "&width=600&height=600') !important;", !0, !1) + ' class="cc-fqnb"></span>'), p.push("</a>")) : -1 !== r.types.file_preview.video.indexOf(e.type) ? p.push("<a" + g.Library.jade.runtime.attr("href", "" + e.url, !0, !1) + ' data-action="video"' + g.Library.jade.runtime.attr("data-name", "" + e.name, !0, !1) + ' rel="noopener noreferrer"' + g.Library.jade.runtime.cls(["cc-1mhl", "cc-17m8", "operator" === h ? "cc-k5w4" : ""], [null, null, !0]) + '><span class="cc-32av cc-151q">' + g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_file_video")) ? "" : d) + "</span></a>") : p.push("<a" + g.Library.jade.runtime.attr("href", "" + e.url, !0, !1) + g.Library.jade.runtime.attr("download", "text/html" === e.type ? null : "" + (e.name || e.url), !0, !1) + ' data-action="download" rel="noopener noreferrer" target="_blank"' + g.Library.jade.runtime.cls(["cc-1mhl", "operator" === h ? "cc-k5w4" : ""], [null, !0]) + '><span class="cc-32av cc-151q">' + g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_file_download")) ? "" : d) + "</span></a>"), p.push('</span></span><span class="cc-iuse"></span></span>'), s && (p.push('<span class="cc-iqjx cc-1tzl cc-68z9 cc-sc6q"><span class="cc-h1yx cc-kgeu"><span' + g.Library.jade.runtime.attr("data-date-iso", "" + c, !0, !1) + ' data-date-watch="true" class="cc-1k3j">' + g.Library.jade.runtime.escape(null == (d = s) ? "" : d) + '</span><span class="cc-1kje">'), !0 !== l.participant && !0 !== l.edited && !0 !== l.translated || (p.push('<span class="cc-66kp">('), !0 === l.participant && (p.push(g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_tag_participant")) ? "" : d)), !0 !== l.edited && !0 !== l.translated || (p.push(","), v["text-space"]())), !0 === l.edited && (p.push(g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_tag_edited")) ? "" : d)), !0 === l.translated && (p.push(","), v["text-space"]())), !0 === l.translated && p.push(g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_tag_translated")) ? "" : d)), p.push(")</span>")), p.push("</span></span></span>")), p.push('<span class="cc-iuse"></span></span><span class="cc-iuse"></span>'), "visitor" === h && p.push('<span class="cc-1did"><span class="cc-k5zk"><span class="cc-crgu"></span><span class="cc-1u5t cc-kgeu">' + g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_info_read")) ? "" : d) + '</span><span class="cc-iuse"></span></span><span class="cc-iuse"></span></span><a role="button" class="cc-pus6"><span class="cc-fnu6 cc-151q">' + g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_error_retry")) ? "" : d) + '</span><span class="cc-1pp5 cc-ic7l"></span><span class="cc-iuse"></span></a><span class="cc-iuse"></span>'), p.push("</div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "_n" in t ? t._n : "undefined" != typeof _n ? _n : void 0, "content" in t ? t.content : "undefined" != typeof content ? content : void 0, "date_formatted" in t ? t.date_formatted : "undefined" != typeof date_formatted ? date_formatted : void 0, "date_iso" in t ? t.date_iso : "undefined" != typeof date_iso ? date_iso : void 0, "encodeURIComponent" in t ? t.encodeURIComponent : "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0, "environment" in t ? t.environment : "undefined" != typeof environment ? environment : void 0, "fingerprint" in t ? t.fingerprint : "undefined" != typeof fingerprint ? fingerprint : void 0, "from" in t ? t.from : "undefined" != typeof from ? from : void 0, "message_is_preview" in t ? t.message_is_preview : "undefined" != typeof message_is_preview ? message_is_preview : void 0, "metas" in t ? t.metas : "undefined" != typeof metas ? metas : void 0, "user" in t ? t.user : "undefined" != typeof user ? user : void 0), p.join("")
                },
                chat_message_animation: function(t) {
                    var f, d = [],
                        p = {},
                        t = t || {};
                    return function(t, i, n, e, s, c, a, r, o, h, u, l) {
                        d.push(""), d.push(""), p["text-space"] = f = function() {
                            this && this.block, this && this.attributes, d.push("<span> </span>")
                        }, d.push("<div" + g.Library.jade.runtime.attr("data-from", "" + h, !0, !1) + g.Library.jade.runtime.attr("data-date-iso", "" + c, !0, !1) + g.Library.jade.runtime.attr("data-fingerprint", "" + o, !0, !1) + g.Library.jade.runtime.attr("data-type", "animation", !0, !1) + g.Library.jade.runtime.attr("data-is-preview", "" + !0, !0, !1) + ' class="cc-b3wa">'), "operator" === h && (t = t(240, l.type || h, l.user_id, l.avatar), d.push('<span class="cc-1s5n cc-he6y cc-1xll"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-1jl7 cc-wsm4"></span>'), l.nickname && (d.push('<span class="cc-1tzl cc-1ntm cc-1wsx"><span class="cc-h1yx cc-kgeu">'), "website" === l.type ? d.push("" + g.Library.jade.runtime.escape(null == (f = l.nickname) ? "" : f)) : d.push("" + g.Library.jade.runtime.escape(null == (f = n(l.nickname)) ? "" : f)), d.push("</span></span>")), d.push("</span>")), d.push('<span class="cc-xfpr cc-1xll"><span' + g.Library.jade.runtime.cls(["cc-1yfu", "cc-1lut", "operator" === h ? "cc-1ada" : ""], [null, null, !0]) + "><span" + g.Library.jade.runtime.cls(["cc-xtol", "cc-kgeu", "operator" === h ? "cc-6zjc" : ""], [null, null, !0]) + ">"), l = e.url.match(/^(?:https?:)?(?:\/\/)?([^\/\?]+)/)[1], e = a(e.url), d.push("<span" + g.Library.jade.runtime.attr("data-source", l || null, !0, !1) + ' class="cc-wrpn"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + r.url.crisp_image + "/process/original/?url=" + e + "') !important;", !0, !1) + ' class="cc-1rh5"><span class="cc-nl2z"><span class="cc-1pbj"></span></span></span></span></span><span class="cc-iuse"></span></span>'), s && (d.push('<span class="cc-iqjx cc-1tzl cc-68z9 cc-sc6q"><span class="cc-h1yx cc-kgeu"><span' + g.Library.jade.runtime.attr("data-date-iso", "" + c, !0, !1) + ' data-date-watch="true" class="cc-1k3j">' + g.Library.jade.runtime.escape(null == (f = s) ? "" : f) + '</span><span class="cc-1kje">'), !0 !== u.participant && !0 !== u.edited && !0 !== u.translated || (d.push('<span class="cc-66kp">('), !0 === u.participant && (d.push(g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_tag_participant")) ? "" : f)), !0 !== u.edited && !0 !== u.translated || (d.push(","), p["text-space"]())), !0 === u.edited && (d.push(g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_tag_edited")) ? "" : f)), !0 === u.translated && (d.push(","), p["text-space"]())), !0 === u.translated && d.push(g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_tag_translated")) ? "" : f)), d.push(")</span>")), d.push("</span></span></span>")), d.push('<span class="cc-iuse"></span></span><span class="cc-iuse"></span>'), "visitor" === h && d.push('<span class="cc-1did"><span class="cc-k5zk"><span class="cc-crgu"></span><span class="cc-1u5t cc-kgeu">' + g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_info_read")) ? "" : f) + '</span><span class="cc-iuse"></span></span><span class="cc-iuse"></span></span><a role="button" class="cc-pus6"><span class="cc-fnu6 cc-151q">' + g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_error_retry")) ? "" : f) + '</span><span class="cc-1pp5 cc-ic7l"></span><span class="cc-iuse"></span></a><span class="cc-iuse"></span>'), d.push("</div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "_n" in t ? t._n : "undefined" != typeof _n ? _n : void 0, "content" in t ? t.content : "undefined" != typeof content ? content : void 0, "date_formatted" in t ? t.date_formatted : "undefined" != typeof date_formatted ? date_formatted : void 0, "date_iso" in t ? t.date_iso : "undefined" != typeof date_iso ? date_iso : void 0, "encodeURIComponent" in t ? t.encodeURIComponent : "undefined" != typeof encodeURIComponent ? encodeURIComponent : void 0, "environment" in t ? t.environment : "undefined" != typeof environment ? environment : void 0, "fingerprint" in t ? t.fingerprint : "undefined" != typeof fingerprint ? fingerprint : void 0, "from" in t ? t.from : "undefined" != typeof from ? from : void 0, "metas" in t ? t.metas : "undefined" != typeof metas ? metas : void 0, "user" in t ? t.user : "undefined" != typeof user ? user : void 0), d.join("")
                },
                chat_message_audio: function(t) {
                    var u, l = [],
                        f = {},
                        t = t || {};
                    return function(t, i, n, e, s, c, a, r, o, h) {
                        l.push(""), l.push(""), f["text-space"] = u = function() {
                            this && this.block, this && this.attributes, l.push("<span> </span>")
                        }, l.push("<div" + g.Library.jade.runtime.attr("data-from", "" + r, !0, !1) + g.Library.jade.runtime.attr("data-date-iso", "" + c, !0, !1) + g.Library.jade.runtime.attr("data-fingerprint", "" + a, !0, !1) + g.Library.jade.runtime.attr("data-type", "audio", !0, !1) + g.Library.jade.runtime.attr("data-is-preview", "" + !1, !0, !1) + ' class="cc-b3wa">'), "operator" === r && (t = t(240, h.type || r, h.user_id, h.avatar), l.push('<span class="cc-1s5n cc-he6y cc-1xll"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-1jl7 cc-wsm4"></span>'), h.nickname && (l.push('<span class="cc-1tzl cc-1ntm cc-1wsx"><span class="cc-h1yx cc-kgeu">'), "website" === h.type ? l.push("" + g.Library.jade.runtime.escape(null == (u = h.nickname) ? "" : u)) : l.push("" + g.Library.jade.runtime.escape(null == (u = n(h.nickname)) ? "" : u)), l.push("</span></span>")), l.push("</span>")), l.push('<span class="cc-xfpr cc-1xll"><span' + g.Library.jade.runtime.cls(["cc-1yfu", "cc-1lut", "operator" === r ? "cc-1ada" : ""], [null, null, !0]) + "><span" + g.Library.jade.runtime.cls(["cc-xtol", "cc-kgeu", "operator" === r ? "cc-6zjc" : ""], [null, null, !0]) + '><span data-state="none" class="cc-1qf4"><span class="cc-uxhm"><a role="button"' + g.Library.jade.runtime.cls(["cc-784v", "operator" === r ? "cc-caj5" : ""], [null, !0]) + '></a><span class="cc-8dhr"></span><span class="cc-u2t4 cc-kgeu">' + g.Library.jade.runtime.escape(null == (u = o.duration) ? "" : u) + '</span><span class="cc-iuse"></span></span><span' + g.Library.jade.runtime.cls(["cc-1ep3", "operator" === r ? "cc-16jc" : ""], [null, !0]) + '></span><audio preload="none" class="cc-cccw"><source' + g.Library.jade.runtime.attr("src", "" + e.url, !0, !1) + g.Library.jade.runtime.attr("type", "" + e.type, !0, !1) + '/></audio></span></span><span class="cc-iuse"></span></span>'), s && (l.push('<span class="cc-iqjx cc-1tzl cc-68z9 cc-sc6q"><span class="cc-h1yx cc-kgeu"><span' + g.Library.jade.runtime.attr("data-date-iso", "" + c, !0, !1) + ' data-date-watch="true" class="cc-1k3j">' + g.Library.jade.runtime.escape(null == (u = s) ? "" : u) + '</span><span class="cc-1kje">'), !0 !== o.participant && !0 !== o.edited && !0 !== o.translated || (l.push('<span class="cc-66kp">('), !0 === o.participant && (l.push(g.Library.jade.runtime.escape(null == (u = i("chat", "chat_message_tag_participant")) ? "" : u)), !0 !== o.edited && !0 !== o.translated || (l.push(","), f["text-space"]())), !0 === o.edited && (l.push(g.Library.jade.runtime.escape(null == (u = i("chat", "chat_message_tag_edited")) ? "" : u)), !0 === o.translated && (l.push(","), f["text-space"]())), !0 === o.translated && l.push(g.Library.jade.runtime.escape(null == (u = i("chat", "chat_message_tag_translated")) ? "" : u)), l.push(")</span>")), l.push("</span></span></span>")), l.push('<span class="cc-iuse"></span></span><span class="cc-iuse"></span>'), "visitor" === r && l.push('<span class="cc-1did"><span class="cc-k5zk"><span class="cc-crgu"></span><span class="cc-1u5t cc-kgeu">' + g.Library.jade.runtime.escape(null == (u = i("chat", "chat_message_info_read")) ? "" : u) + '</span><span class="cc-iuse"></span></span><span class="cc-iuse"></span></span><a role="button" class="cc-pus6"><span class="cc-fnu6 cc-151q">' + g.Library.jade.runtime.escape(null == (u = i("chat", "chat_message_error_retry")) ? "" : u) + '</span><span class="cc-1pp5 cc-ic7l"></span><span class="cc-iuse"></span></a><span class="cc-iuse"></span>'), l.push("</div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "_n" in t ? t._n : "undefined" != typeof _n ? _n : void 0, "content" in t ? t.content : "undefined" != typeof content ? content : void 0, "date_formatted" in t ? t.date_formatted : "undefined" != typeof date_formatted ? date_formatted : void 0, "date_iso" in t ? t.date_iso : "undefined" != typeof date_iso ? date_iso : void 0, "fingerprint" in t ? t.fingerprint : "undefined" != typeof fingerprint ? fingerprint : void 0, "from" in t ? t.from : "undefined" != typeof from ? from : void 0, "metas" in t ? t.metas : "undefined" != typeof metas ? metas : void 0, "user" in t ? t.user : "undefined" != typeof user ? user : void 0), l.join("")
                },
                chat_message_picker: function(t) {
                    var d, p = [],
                        v = {},
                        t = t || {};
                    return function(t, i, n, e, s, c, a, r, o, h, u, l, f) {
                        p.push(""), p.push(""), v["text-space"] = d = function() {
                                this && this.block, this && this.attributes, p.push("<span> </span>")
                            }, p.push("<div" + g.Library.jade.runtime.attr("data-from", "" + h, !0, !1) + g.Library.jade.runtime.attr("data-date-iso", "" + a, !0, !1) + g.Library.jade.runtime.attr("data-fingerprint", "" + r, !0, !1) + g.Library.jade.runtime.attr("data-type", "picker", !0, !1) + g.Library.jade.runtime.attr("data-is-preview", "" + !1, !0, !1) + ' class="cc-b3wa">'), "operator" === h && (t = t(240, f.type || h, f.user_id, f.avatar), p.push('<span class="cc-1s5n cc-he6y cc-1xll"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-1jl7 cc-wsm4"></span>'), f.nickname && (p.push('<span class="cc-1tzl cc-1ntm cc-1wsx"><span class="cc-h1yx cc-kgeu">'), "website" === f.type ? p.push("" + g.Library.jade.runtime.escape(null == (d = f.nickname) ? "" : d)) : p.push("" + g.Library.jade.runtime.escape(null == (d = e(f.nickname)) ? "" : d)), p.push("</span></span>")), p.push("</span>")), p.push('<span class="cc-xfpr cc-1xll"><span' + g.Library.jade.runtime.cls(["cc-1yfu", "cc-1lut", "operator" === h ? "cc-1ada" : ""], [null, null, !0]) + "><span" + g.Library.jade.runtime.cls(["cc-xtol", "cc-kgeu", "operator" === h ? "cc-6zjc" : ""], [null, null, !0]) + ">" + (null == (d = n(s.text, o)) ? "" : d) + "<span" + g.Library.jade.runtime.attr("data-has-selected", !0 === u.has_selected ? "true" : "false", !0, !1) + g.Library.jade.runtime.attr("data-choices-count", "" + s.choices.length, !0, !1) + ' class="cc-1mx4">'),
                            function() {
                                var t = s.choices;
                                if ("number" == typeof t.length)
                                    for (var i = 0, n = t.length; i < n; i++) {
                                        var e = t[i];
                                        p.push('<a role="button"' + g.Library.jade.runtime.attr("data-value", "" + e.value, !0, !1) + g.Library.jade.runtime.attr("data-selected", !0 === e.selected ? "true" : "false", !0, !1) + g.Library.jade.runtime.cls(["cc-1u43", !0 !== u.has_selected || !0 === e.selected ? "cc-151q" : "cc-kgeu"], [null, !0]) + ">" + g.Library.jade.runtime.escape(null == (d = e.label) ? "" : d) + "</a>")
                                    } else
                                        for (i in n = 0, t) n++, e = t[i], p.push('<a role="button"' + g.Library.jade.runtime.attr("data-value", "" + e.value, !0, !1) + g.Library.jade.runtime.attr("data-selected", !0 === e.selected ? "true" : "false", !0, !1) + g.Library.jade.runtime.cls(["cc-1u43", !0 !== u.has_selected || !0 === e.selected ? "cc-151q" : "cc-kgeu"], [null, !0]) + ">" + g.Library.jade.runtime.escape(null == (d = e.label) ? "" : d) + "</a>")
                            }.call(this), p.push('</span></span><span class="cc-iuse"></span></span>'), c && (p.push('<span class="cc-iqjx cc-1tzl cc-68z9 cc-sc6q"><span class="cc-h1yx cc-kgeu"><span' + g.Library.jade.runtime.attr("data-date-iso", "" + a, !0, !1) + ' data-date-watch="true" class="cc-1k3j">' + g.Library.jade.runtime.escape(null == (d = c) ? "" : d) + '</span><span class="cc-1kje">'), !0 !== u.participant && !0 !== u.edited && !0 !== u.translated || (p.push('<span class="cc-66kp">('), !0 === u.participant && (p.push(g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_tag_participant")) ? "" : d)), !0 !== u.edited && !0 !== u.translated || (p.push(","), v["text-space"]())), !0 === u.edited && (p.push(g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_tag_edited")) ? "" : d)), !0 === u.translated && (p.push(","), v["text-space"]())), !0 === u.translated && p.push(g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_tag_translated")) ? "" : d)), p.push(")</span>")), p.push("</span></span></span>")), p.push('<span class="cc-iuse"></span></span><span class="cc-iuse"></span>'), "visitor" === h && p.push('<span class="cc-1did"><span class="cc-k5zk"><span class="cc-crgu"></span><span class="cc-1u5t cc-kgeu">' + g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_info_read")) ? "" : d) + '</span><span class="cc-iuse"></span></span><span class="cc-iuse"></span></span><a role="button" class="cc-pus6"><span class="cc-fnu6 cc-151q">' + g.Library.jade.runtime.escape(null == (d = i("chat", "chat_message_error_retry")) ? "" : d) + '</span><span class="cc-1pp5 cc-ic7l"></span><span class="cc-iuse"></span></a><span class="cc-iuse"></span>'), p.push("</div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "_f" in t ? t._f : "undefined" != typeof _f ? _f : void 0, "_n" in t ? t._n : "undefined" != typeof _n ? _n : void 0, "content" in t ? t.content : "undefined" != typeof content ? content : void 0, "date_formatted" in t ? t.date_formatted : "undefined" != typeof date_formatted ? date_formatted : void 0, "date_iso" in t ? t.date_iso : "undefined" != typeof date_iso ? date_iso : void 0, "fingerprint" in t ? t.fingerprint : "undefined" != typeof fingerprint ? fingerprint : void 0, "format_context" in t ? t.format_context : "undefined" != typeof format_context ? format_context : void 0, "from" in t ? t.from : "undefined" != typeof from ? from : void 0, "metas" in t ? t.metas : "undefined" != typeof metas ? metas : void 0, "undefined" in t ? t.undefined : void 0, "user" in t ? t.user : "undefined" != typeof user ? user : void 0), p.join("")
                },
                chat_message_field: function(t) {
                    var f, d = [],
                        p = {},
                        t = t || {};
                    return function(t, i, n, e, s, c, a, r, o, h, u, l) {
                        d.push(""), d.push(""), p["text-space"] = f = function() {
                            this && this.block, this && this.attributes, d.push("<span> </span>")
                        }, d.push("<div" + g.Library.jade.runtime.attr("data-from", "" + h, !0, !1) + g.Library.jade.runtime.attr("data-date-iso", "" + a, !0, !1) + g.Library.jade.runtime.attr("data-fingerprint", "" + r, !0, !1) + g.Library.jade.runtime.attr("data-type", "field", !0, !1) + g.Library.jade.runtime.attr("data-is-preview", "" + !1, !0, !1) + ' class="cc-b3wa">'), "operator" === h && (t = t(240, l.type || h, l.user_id, l.avatar), d.push('<span class="cc-1s5n cc-he6y cc-1xll"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-1jl7 cc-wsm4"></span>'), l.nickname && (d.push('<span class="cc-1tzl cc-1ntm cc-1wsx"><span class="cc-h1yx cc-kgeu">'), "website" === l.type ? d.push("" + g.Library.jade.runtime.escape(null == (f = l.nickname) ? "" : f)) : d.push("" + g.Library.jade.runtime.escape(null == (f = e(l.nickname)) ? "" : f)), d.push("</span></span>")), d.push("</span>")), d.push('<span class="cc-xfpr cc-1xll"><span' + g.Library.jade.runtime.cls(["cc-1yfu", "cc-1lut", "operator" === h ? "cc-1ada" : ""], [null, null, !0]) + "><span" + g.Library.jade.runtime.cls(["cc-xtol", "cc-kgeu", "operator" === h ? "cc-6zjc" : ""], [null, null, !0]) + "><span" + g.Library.jade.runtime.attr("data-has-value", s.value ? "true" : "false", !0, !1) + ' class="cc-1lj6 cc-143v">'), s.previous && "operator" === h && d.push('<a role="button" class="cc-2t7n cc-4xbu"></a>'), d.push(null == (f = n(s.text, o)) ? "" : f), s.value || "operator" !== h ? d.push("<span" + g.Library.jade.runtime.cls(["cc-vzs4", s.value ? "cc-151q" : "cc-kgeu"], [null, !0]) + ">" + g.Library.jade.runtime.escape(null == (f = s.value || s.explain) ? "" : f) + "</span>") : d.push('<form action="#" method="post" class="cc-hp1x"><input type="text"' + g.Library.jade.runtime.attr("name", "message_field_" + s.id, !0, !1) + g.Library.jade.runtime.attr("placeholder", "" + s.explain, !0, !1) + ' autocapitalize="off" autocorrect="off" spellcheck="false" class="cc-1t9k cc-clw4 cc-kgeu"/><a role="button" class="cc-fosr cc-4xbu cc-151q">' + g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_text_identity_ask_field_submit")) ? "" : f) + "</a></form>"), d.push('</span></span><span class="cc-iuse"></span></span>'), c && (d.push('<span class="cc-iqjx cc-1tzl cc-68z9 cc-sc6q"><span class="cc-h1yx cc-kgeu"><span' + g.Library.jade.runtime.attr("data-date-iso", "" + a, !0, !1) + ' data-date-watch="true" class="cc-1k3j">' + g.Library.jade.runtime.escape(null == (f = c) ? "" : f) + '</span><span class="cc-1kje">'), !0 !== u.participant && !0 !== u.edited && !0 !== u.translated || (d.push('<span class="cc-66kp">('), !0 === u.participant && (d.push(g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_tag_participant")) ? "" : f)), !0 !== u.edited && !0 !== u.translated || (d.push(","), p["text-space"]())), !0 === u.edited && (d.push(g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_tag_edited")) ? "" : f)), !0 === u.translated && (d.push(","), p["text-space"]())), !0 === u.translated && d.push(g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_tag_translated")) ? "" : f)), d.push(")</span>")), d.push("</span></span></span>")), d.push('<span class="cc-iuse"></span></span><span class="cc-iuse"></span>'), "visitor" === h && d.push('<span class="cc-1did"><span class="cc-k5zk"><span class="cc-crgu"></span><span class="cc-1u5t cc-kgeu">' + g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_info_read")) ? "" : f) + '</span><span class="cc-iuse"></span></span><span class="cc-iuse"></span></span><a role="button" class="cc-pus6"><span class="cc-fnu6 cc-151q">' + g.Library.jade.runtime.escape(null == (f = i("chat", "chat_message_error_retry")) ? "" : f) + '</span><span class="cc-1pp5 cc-ic7l"></span><span class="cc-iuse"></span></a><span class="cc-iuse"></span>'), d.push("</div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "_f" in t ? t._f : "undefined" != typeof _f ? _f : void 0, "_n" in t ? t._n : "undefined" != typeof _n ? _n : void 0, "content" in t ? t.content : "undefined" != typeof content ? content : void 0, "date_formatted" in t ? t.date_formatted : "undefined" != typeof date_formatted ? date_formatted : void 0, "date_iso" in t ? t.date_iso : "undefined" != typeof date_iso ? date_iso : void 0, "fingerprint" in t ? t.fingerprint : "undefined" != typeof fingerprint ? fingerprint : void 0, "format_context" in t ? t.format_context : "undefined" != typeof format_context ? format_context : void 0, "from" in t ? t.from : "undefined" != typeof from ? from : void 0, "metas" in t ? t.metas : "undefined" != typeof metas ? metas : void 0, "user" in t ? t.user : "undefined" != typeof user ? user : void 0), d.join("")
                },
                chat_bubble_composing: function(t) {
                    var e = [],
                        t = t || {};
                    return function(t) {
                        e.push('<div class="cc-1deq"><span class="cc-1ro5 cc-1ada">'),
                            function() {
                                var t = [1, 2, 3];
                                if ("number" == typeof t.length)
                                    for (var i = 0, n = t.length; i < n; i++) e.push('<span class="cc-1ssv cc-k5w4"></span>');
                                else
                                    for (i in n = 0, t) n++, e.push('<span class="cc-1ssv cc-k5w4"></span>')
                            }.call(this), e.push('</span><span class="cc-iuse"></span></div>')
                    }.call(this, "undefined" in t ? t.undefined : void 0), e.join("")
                },
                chat_bubble_thread: function(t) {
                    var s, c = [],
                        t = t || {};
                    return function(t, i, n, e) {
                        c.push("<div" + g.Library.jade.runtime.attr("data-day", "" + t, !0, !1) + g.Library.jade.runtime.attr("data-month", "" + i, !0, !1) + g.Library.jade.runtime.attr("data-year", "" + e, !0, !1) + ' class="cc-7bf0">'), n && c.push('<div class="cc-1pll"><span class="cc-1p79 cc-151q">' + g.Library.jade.runtime.escape(null == (s = n) ? "" : s) + "</span></div>"), c.push('<div class="cc-12zj"></div></div>')
                    }.call(this, "day" in t ? t.day : "undefined" != typeof day ? day : void 0, "month" in t ? t.month : "undefined" != typeof month ? month : void 0, "title" in t ? t.title : "undefined" != typeof title ? title : void 0, "year" in t ? t.year : "undefined" != typeof year ? year : void 0), c.join("")
                },
                chat_bubble_group: function(t) {
                    var n = [],
                        t = t || {};
                    return function(t, i) {
                        n.push("<div" + g.Library.jade.runtime.attr("data-from", "" + t, !0, !1) + g.Library.jade.runtime.attr("data-user-marker", "" + i, !0, !1) + ' class="cc-w6n9 wp-exclude-emoji"></div>')
                    }.call(this, "from" in t ? t.from : "undefined" != typeof from ? from : void 0, "user_marker" in t ? t.user_marker : "undefined" != typeof user_marker ? user_marker : void 0), n.join("")
                },
                chat_picker_gif_item: function(t) {
                    var i = [];
                    return i.push('<span data-removable="true" data-loading="true" class="cc-dnqb cc-ofgq cc-2hzo"></span>'), i.join("")
                },
                chat_game: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push('<div data-loaded="false" class="cc-6mrt"><span class="cc-w0in"><a role="button" class="cc-1shm cc-151q">' + g.Library.jade.runtime.escape(null == (n = t("chat", "chat_game_controls_stop")) ? "" : n) + '</a></span><iframe type="text/html"' + g.Library.jade.runtime.attr("src", i.url.crisp_game + "/", !0, !1) + ' frameborder="0" class="cc-1h0y"></iframe><span class="cc-8f7k cc-1ada"><span class="cc-104h cc-1eqr"></span></span></div>')
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "environment" in t ? t.environment : "undefined" != typeof environment ? environment : void 0), e.join("")
                },
                browsing_assist: function(t) {
                    var n, e = [],
                        t = t || {};
                    return function(t, i) {
                        e.push('<div class="cc-9f6h"><div class="cc-r0ql"><span class="cc-lvhc cc-1xll cc-y69k"><span class="cc-lr8p"></span><span class="cc-1fiq"></span><span class="cc-1tzl cc-t8b6 cc-sc6q"><span class="cc-h1yx cc-kgeu">' + g.Library.jade.runtime.escape(null == (n = t("browsing", "assist_mouse_tooltip", [i.website.name])) ? "" : n) + "</span></span></span></div></div>")
                    }.call(this, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "configuration" in t ? t.configuration : "undefined" != typeof configuration ? configuration : void 0), e.join("")
                },
                call_ring: function(t) {
                    var r, o = [],
                        t = t || {};
                    return function(t, i, n, e, s, c) {
                        o.push('<div data-browsing-ignore="true" class="cc-1iv0"><div class="cc-1j7a"><div class="cc-ll62 cc-he6y">'), t = t(240, c.type, c.user_id), o.push("<span" + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-1smo cc-wsm4"></span></div><div class="cc-1ba8"><div class="cc-1o9s cc-kgeu">' + g.Library.jade.runtime.escape(null == (r = i("call", "ring_title_website", [n.website.name])) ? "" : r) + '</div><div class="cc-1wln cc-151q">' + g.Library.jade.runtime.escape(null == (r = i("call", "ring_title_label", [c.nickname])) ? "" : r) + '</div></div><ul class="cc-15jz">');
                        var a = [
                            ["decline", i("call", "ring_actions_decline"), null],
                            ["accept", i("call", "ring_actions_accept"), e]
                        ];
                        (function() {
                            var t = a;
                            if ("number" == typeof t.length)
                                for (var i = 0, n = t.length; i < n; i++) {
                                    var e = t[i];
                                    o.push("<li" + g.Library.jade.runtime.attr("data-action", "" + e[0], !0, !1) + g.Library.jade.runtime.attr("data-mode", e[2] || null, !0, !1) + ' class="cc-ui2y"><a role="button" class="cc-ekfv"></a><span class="cc-1ans cc-151q">' + g.Library.jade.runtime.escape(null == (r = e[1]) ? "" : r) + "</span></li>")
                                } else
                                    for (i in n = 0, t) n++, o.push("<li" + g.Library.jade.runtime.attr("data-action", "" + (e = t[i])[0], !0, !1) + g.Library.jade.runtime.attr("data-mode", e[2] || null, !0, !1) + ' class="cc-ui2y"><a role="button" class="cc-ekfv"></a><span class="cc-1ans cc-151q">' + g.Library.jade.runtime.escape(null == (r = e[1]) ? "" : r) + "</span></li>")
                        }).call(this), o.push("</ul></div></div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "configuration" in t ? t.configuration : "undefined" != typeof configuration ? configuration : void 0, "mode" in t ? t.mode : "undefined" != typeof mode ? mode : void 0, "undefined" in t ? t.undefined : void 0, "user" in t ? t.user : "undefined" != typeof user ? user : void 0), o.join("")
                },
                call_screen: function(t) {
                    var h, u = [],
                        t = t || {};
                    return function(t, s, i, n, e, c) {
                        u.push('<div data-browsing-ignore="true" class="cc-1iv0"><div tabindex="0" data-mode="maximized" class="cc-1j41">'), t = t(240, c.type, c.user_id), u.push('<div class="cc-3jjj"><div data-type="remote" class="cc-r1gp">'), "audio" === n && u.push('<span class="cc-1tpr cc-he6y"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-1wt9 cc-wsm4"></span></span>'), u.push('<video alt="" autoplay="autoplay" playsinline="playsinline" class="cc-19cv"></video></div><ul class="cc-jtwe">');
                        var a = ["audio"];
                        "video" === n && a.push("video"),
                            function() {
                                var t = a;
                                if ("number" == typeof t.length)
                                    for (var i = 0, n = t.length; i < n; i++) {
                                        var e = t[i];
                                        u.push("<li" + g.Library.jade.runtime.attr("data-type", "" + e, !0, !1) + ' class="cc-10o9 cc-kgeu">' + g.Library.jade.runtime.escape(null == (h = s("call", "screen_label_" + e + "_muted")) ? "" : h) + "</li>")
                                    } else
                                        for (i in n = 0, t) n++, e = t[i], u.push("<li" + g.Library.jade.runtime.attr("data-type", "" + e, !0, !1) + ' class="cc-10o9 cc-kgeu">' + g.Library.jade.runtime.escape(null == (h = s("call", "screen_label_" + e + "_muted")) ? "" : h) + "</li>")
                            }.call(this), u.push('</ul><div class="cc-hin6"><div class="cc-1s4f"><span class="cc-1nrx cc-he6y"><span' + g.Library.jade.runtime.attr("style", "background-image: url('" + t + "') !important;", !0, !1) + ' class="cc-bg8a cc-wsm4"></span></span><div class="cc-117p"><span class="cc-1vsh"><span class="cc-yaq8 cc-151q">' + g.Library.jade.runtime.escape(null == (h = c.nickname) ? "" : h) + '</span></span><span class="cc-gu0k">');
                        var r = ["connecting", "ongoing"];
                        (function() {
                            var t = r;
                            if ("number" == typeof t.length)
                                for (var i = 0, n = t.length; i < n; i++) {
                                    var e = t[i];
                                    u.push("<span" + g.Library.jade.runtime.attr("data-state", "" + e, !0, !1) + ' class="cc-ulj3 cc-kgeu">' + g.Library.jade.runtime.escape(null == (h = s("call", "screen_status_" + e)) ? "" : h) + "</span>")
                                } else
                                    for (i in n = 0, t) n++, u.push("<span" + g.Library.jade.runtime.attr("data-state", "" + (e = t[i]), !0, !1) + ' class="cc-ulj3 cc-kgeu">' + g.Library.jade.runtime.escape(null == (h = s("call", "screen_status_" + e)) ? "" : h) + "</span>")
                        }).call(this), u.push('<span class="cc-j34c"></span><span class="cc-x7ly cc-kgeu">0:00:00</span></span></div></div><div class="cc-uefb">');
                        var o = [
                            ["audio", !0, !1, !0],
                            ["hangup", !1, !0, !0],
                            ["toggle", !1, !0, !0],
                            ["screensharing", !1, !0, i.screensharing]
                        ];
                        "video" === n && o.unshift(["video", !0, !1, !0]),
                            function() {
                                var t = o;
                                if ("number" == typeof t.length)
                                    for (var i = 0, n = t.length; i < n; i++) {
                                        var e = t[i];
                                        u.push('<a role="button"' + g.Library.jade.runtime.attr("data-type", "" + e[0], !0, !1) + g.Library.jade.runtime.attr("data-state", !0 === e[1] ? "true" : null, !0, !1) + g.Library.jade.runtime.attr("data-visible", !0 === e[2] ? "true" : "false", !0, !1) + g.Library.jade.runtime.attr("data-unsupported", !1 === e[3] ? "true" : null, !0, !1) + ' class="cc-1qzq"></a>')
                                    } else
                                        for (i in n = 0, t) n++, e = t[i], u.push('<a role="button"' + g.Library.jade.runtime.attr("data-type", "" + e[0], !0, !1) + g.Library.jade.runtime.attr("data-state", !0 === e[1] ? "true" : null, !0, !1) + g.Library.jade.runtime.attr("data-visible", !0 === e[2] ? "true" : "false", !0, !1) + g.Library.jade.runtime.attr("data-unsupported", !1 === e[3] ? "true" : null, !0, !1) + ' class="cc-1qzq"></a>')
                            }.call(this), u.push("</div></div>"), "video" === n && u.push('<div data-type="local" class="cc-r1gp"><video alt="" autoplay="autoplay" playsinline="playsinline" muted="muted"></video><span class="cc-fi91"><span class="cc-qely"></span></span></div>'), u.push("</div></div></div>")
                    }.call(this, "_a" in t ? t._a : "undefined" != typeof _a ? _a : void 0, "_e" in t ? t._e : "undefined" != typeof _e ? _e : void 0, "features" in t ? t.features : "undefined" != typeof features ? features : void 0, "mode" in t ? t.mode : "undefined" != typeof mode ? mode : void 0, "undefined" in t ? t.undefined : void 0, "user" in t ? t.user : "undefined" != typeof user ? user : void 0), u.join("")
                }
            };
            this.logger = a.Console, this.dom = a.cash, this.crisp = {
                web: a.CrispLibraryWeb,
                client: a.CrispLibraryClient
            }, this.jade = {
                runtime: a.jade,
                client: h
            }, this.t()
        } catch (t) {}

        function u() {}

        function l() {}
    }
})();