{"version":3,"sources":["jsdelivr-header.js","/gh/88lin/picx-images-hosting@master/cdn/chat/chat4.js"],"names":[],"mappings":"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","file":"/gh/88lin/picx-images-hosting@master/cdn/chat/chat4.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /gh/88lin/picx-images-hosting@master/cdn/chat/chat4.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","! function o(a, s, c) {\n    function l(e, t) {\n        if (!s[e]) {\n            if (!a[e]) { var n = \"function\" == typeof require && require; if (!t && n) return n(e, !0); if (u) return u(e, !0); var r = new Error(\"Cannot find module '\" + e + \"'\"); throw r.code = \"MODULE_NOT_FOUND\", r }\n            var i = s[e] = { exports: {} };\n            a[e][0].call(i.exports, function (t) { return l(a[e][1][t] || t) }, i, i.exports, o, a, s, c)\n        }\n        return s[e].exports\n    }\n    for (var u = \"function\" == typeof require && require, t = 0; t < c.length; t++) l(c[t]);\n    return l\n}({\n    0: [function () {\n        \"use strict\";\n        var _createClass = function () {\n            function defineProperties(target, props) {\n                for (var i = 0; i < props.length; i++) {\n                    var descriptor = props[i];\n                    descriptor.enumerable = descriptor.enumerable || false;\n                    descriptor.configurable = true;\n                    if (\"value\" in descriptor) descriptor.writable = true;\n                    Object.defineProperty(target, descriptor.key, descriptor);\n                }\n            }\n            return function (Constructor, protoProps, staticProps) {\n                if (protoProps) defineProperties(Constructor.prototype, protoProps);\n                if (staticProps) defineProperties(Constructor, staticProps);\n                return Constructor;\n            };\n        }();\n        function _classCallCheck(instance, Constructor) {\n            if (!(instance instanceof Constructor)) {\n                throw new TypeError(\"Cannot call a class as a function\");\n            }\n        }\n        (function () {\n            var OwO = function () {\n                function OwO(option) {\n                    var _this = this;\n                    _classCallCheck(this, OwO);\n                    var defaultOption = {\n                        logo: 'OwO表情',\n                        container: document.getElementsByClassName('OwO')[0],\n                        target: document.getElementsByTagName('textarea')[0],\n                        position: 'up',\n                        width: '100%',\n                        maxHeight: '235px',\n                        api: 'js/owo.json'\n                    };\n                    for (var defaultKey in defaultOption) {\n                        if (defaultOption.hasOwnProperty(defaultKey) && !option.hasOwnProperty(defaultKey)) {\n                            option[defaultKey] = defaultOption[defaultKey];\n                        }\n                    }\n                    this.container = option.container;\n                    this.target = option.target;\n                    if (option.position === 'up') {\n                        this.container.classList.add('OwO-up');\n                    }\n                    var xhr = new XMLHttpRequest();\n                    xhr.onreadystatechange = function () {\n                        if (xhr.readyState === 4) {\n                            if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                                _this.odata = JSON.parse(xhr.responseText);\n                                Object.keys(_this.odata).forEach(function (key) {\n                                    if (key === \"颜文字\" || key.indexOf(\"小黄豆\") !== -1) {\n                                        delete _this.odata[key];\n                                    }\n                                });\n                                _this.init(option);\n                            } else {\n                                console.log('OwO data request was unsuccessful: ' + xhr.status);\n                            }\n                        }\n                    };\n                    xhr.open('get', option.api, true);\n                    xhr.send(null);\n                }\n                _createClass(OwO, [{\n                    key: 'init',\n                    value: function init(option) {\n                        var _this2 = this;\n                        this.area = option.target;\n                        this.packages = Object.keys(this.odata);\n                        var html = '\\n <div class=\"OwO-logo sb\">' + option.logo + '</div>\\n <div class=\"OwO-body\" style=\"width: ' + option.width + '\">';\n                        var ctSmojiBigPreviewRem = 5;\n                        for (var i = 0; i < this.packages.length; i++) {\n                            html += '\\n <ul class=\"OwO-items OwO-' + this.odata[this.packages[i]].name + ' OwO-items-' + this.odata[this.packages[i]].type + (this.odata[this.packages[i]].container[0] && this.odata[this.packages[i]].container[0].big === true ? ' OwO-items-big' : '') + '\" style=\"max-height: ' + (parseInt(option.maxHeight) - 53 + 'px') + ';\">';\n                            var opackage = this.odata[this.packages[i]].container;\n                            for (var _i = 0; _i < opackage.length; _i++) {\n                                if (this.odata[this.packages[i]].type === 'smoji') {\n                                    html += '\\n <li class=\"OwO-item\" title=\"' + opackage[_i].text + '\" data-input=\"' + this.odata[this.packages[i]].name + \"/\" + opackage[_i].icon + '\">' + '<img data-original=\"' + 'https://s3-cdn.zsh.moe/smoji/' + this.odata[this.packages[i]].name + \"/\" + opackage[_i].icon + '.webp\" src=\"\" icon=\"' + opackage[_i].text + '\"' + (opackage[_i].big ? ' style=\"height:var(--ct-smoji-big-preview,' + ctSmojiBigPreviewRem + 'rem);min-height:var(--ct-smoji-big-preview,' + ctSmojiBigPreviewRem + 'rem);width:auto;\"' : '') + ' referrerpolicy=\"no-referrer\"></li>';\n                                } else if (this.odata[this.packages[i]].type === 'image-zl') {\n                                    html += '\\n <li class=\"OwO-item\" title=\"' + opackage[_i].text + '\" data-input=\"' + this.odata[this.packages[i]].name + \"/\" + opackage[_i].icon + '\">' + '<img data-original=\"' + 'https://emoticons.z-l.top/' + this.odata[this.packages[i]].name + \"/\" + opackage[_i].icon + '.png\" src=\"\" icon=\"' + opackage[_i].text + '\" referrerpolicy=\"no-referrer\"></li>';\n                                } else if (this.odata[this.packages[i]].type === 'image') {\n                                    html += '\\n <li class=\"OwO-item\" title=\"' + opackage[_i].text + '\" data-input=\"' + opackage[_i].text + '\">' + '<img data-original=\"' + 'https://cdn.jsdmirror.com/gh/btwoa/Fluent-Emoji-3D/' + opackage[_i].text + '.gif\" src=\"\" icon=\"' + opackage[_i].text + '\" referrerpolicy=\"no-referrer\"></li>';\n                                } else if (this.odata[this.packages[i]].type === 'cat') {\n                                    html += '\\n <li class=\"OwO-item\" title=\"' + opackage[_i].text + '\" data-input=\"' + this.odata[this.packages[i]].name + opackage[_i].icon + '\">' + '<img data-original=\"' + 'https://npm.elemecdn.com/blobcat@1.0.0' + \"/\" + opackage[_i].icon + '.png\" src=\"\" icon=\"' + opackage[_i].text + '\" referrerpolicy=\"no-referrer\"></li>';\n                                } else if (this.odata[this.packages[i]].type === 'bb_') {\n                                    html += '\\n <li class=\"OwO-item\" title=\"' + opackage[_i].text + '\" data-input=\"' + this.odata[this.packages[i]].name + opackage[_i].icon + '\">' + '<img data-original=\"' + 'https://unpkg.com/@waline/emojis@1.1.0/bilibili/bb_' + opackage[_i].icon + '.png\" src=\"\" icon=\"' + opackage[_i].text + '\" referrerpolicy=\"no-referrer\"></li>';\n                                } else if (this.odata[this.packages[i]].type === 'tuzki') {\n                                    html += '\\n <li class=\"OwO-item\" title=\"' + opackage[_i].text + '\" data-input=\"' + this.odata[this.packages[i]].name + opackage[_i].icon + '\">' + '<img data-original=\"' + 'https://tools.kalvinbg.cn/static/image/emotion/tuzki/' + opackage[_i].icon + '.gif\" src=\"\" icon=\"' + opackage[_i].text + '\" style=\"min-height:4rem\" referrerpolicy=\"no-referrer\"></li>';\n                                } else {\n                                    html += '\\n <li class=\"OwO-item\" title=\"' + opackage[_i].text + '\">' + opackage[_i].icon + '</li>';\n                                }\n                            }\n                            html += '\\n </ul>';\n                        }\n                        html += '\\n <div class=\"OwO-bar\">\\n <ul class=\"OwO-packages\">';\n                        for (var _i2 = 0; _i2 < this.packages.length; _i2++) {\n                            html += '\\n <li><span>' + this.packages[_i2] + '</span></li>';\n                        }\n                        html += '\\n </ul>\\n </div>\\n </div>\\n ';\n                        this.container.innerHTML = html;\n                        this.logo = this.container.getElementsByClassName('OwO-logo')[0];\n                        this.logo.addEventListener('click', function () {\n                            _this2.toggle();\n                        });\n                        this.container.getElementsByClassName('OwO-body')[0].addEventListener('click', function (e) {\n                            var target = null;\n                            if (e.target.classList.contains('OwO-item')) {\n                                target = e.target;\n                            } else if (e.target.parentNode.classList.contains('OwO-item')) {\n                                target = e.target.parentNode;\n                            }\n                            if (target) {\n                                var startPos = _this2.area.selectionStart;\n                                var endPos = _this2.area.selectionEnd;\n                                var areaValue = _this2.area.value;\n                                var insertContent;\n                                if (target.dataset.hasOwnProperty(\"input\")) {\n                                    insertContent = \"【\" + target.dataset.input + \"】\";\n                                } else {\n                                    insertContent = target.innerHTML;\n                                }\n                                _this2.area.value = areaValue.slice(0, startPos) + insertContent + areaValue.slice(endPos);\n                                _this2.area.selectionStart = startPos + insertContent.length;\n                                _this2.area.selectionEnd = startPos + insertContent.length;\n                                _this2.area.focus();\n                                _this2.toggle();\n                            }\n                        });\n                        this.packagesEle = this.container.getElementsByClassName('OwO-packages')[0];\n                        (function (ctBar) {\n                            if (ctBar) {\n                                ctBar.addEventListener('wheel', function (ctEvt) {\n                                    if (ctEvt.ctrlKey) return;\n                                    var ctMax = ctBar.scrollWidth - ctBar.clientWidth;\n                                    if (ctMax <= 0) return;\n                                    if (Math.abs(ctEvt.deltaX) > Math.abs(ctEvt.deltaY)) return;\n                                    var ctStep = ctEvt.deltaY;\n                                    if (ctEvt.deltaMode === 1) ctStep = ctStep * 16;\n                                    else if (ctEvt.deltaMode === 2) ctStep = ctStep * ctBar.clientWidth;\n                                    if (!ctStep) return;\n                                    ctEvt.preventDefault();\n                                    ctBar.scrollLeft = Math.max(0, Math.min(ctMax, ctBar.scrollLeft + ctStep));\n                                }, { passive: false });\n                            }\n                        })(this.packagesEle);\n                        var _loop = function _loop(_i3) {\n                            (function (index) {\n                                _this2.packagesEle.children[_i3].addEventListener('click', function () {\n                                    _this2.tab(index);\n                                });\n                            })(_i3);\n                        };\n                        for (var _i3 = 0; _i3 < this.packagesEle.children.length; _i3++) {\n                            _loop(_i3);\n                        }\n                        this.tab(0);\n                    }\n                }, {\n                    key: 'toggle',\n                    value: function toggle() {\n                        if (this.container.classList.contains('OwO-open')) {\n                            this.container.classList.remove('OwO-open');\n                        } else {\n                            this.container.classList.add('OwO-open');\n                        }\n                        try {\n                            $(\"img\").lazyload({\n                                effect: \"fadeIn\"\n                            });\n                        } catch (e) {\n                            if (this.container.classList.contains(\"OwO-open\")) {\n                                var a = this.container.querySelectorAll(\".OwO-items.OwO-items-show>li img\");\n                                [].forEach.call(a, function (a) {\n                                    var b = a.dataset.original;\n                                    b && (a.src = b, a.removeAttribute(\"data-src\"));\n                                });\n                            }\n                        }\n                    }\n                }, {\n                    key: 'tab',\n                    value: function tab(index) {\n                        var itemsShow = this.container.getElementsByClassName('OwO-items-show')[0];\n                        if (itemsShow) {\n                            itemsShow.classList.remove('OwO-items-show');\n                        }\n                        this.container.getElementsByClassName('OwO-items')[index].classList.add('OwO-items-show');\n                        var packageActive = this.container.getElementsByClassName('OwO-package-active')[0];\n                        if (packageActive) {\n                            packageActive.classList.remove('OwO-package-active');\n                        }\n                        this.packagesEle.getElementsByTagName('li')[index].classList.add('OwO-package-active');\n                        try {\n                            $(\"img\").lazyload({\n                                effect: \"fadeIn\"\n                            });\n                        } catch (e) {\n                            if (this.container.classList.contains(\"OwO-open\")) {\n                                var a = this.container.querySelectorAll(\".OwO-items.OwO-items-show>li img\");\n                                [].forEach.call(a, function (a) {\n                                    var b = a.dataset.original;\n                                    b && (a.src = b, a.removeAttribute(\"data-original\"));\n                                });\n                            }\n                        }\n                    }\n                }]);\n                return OwO;\n            }();\n            if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n                module.exports = OwO;\n            } else {\n                window.OwO = OwO;\n            }\n        })();\n    }()],\n    1: [function (t, n, e) {\n        ! function (t, e) { \"use strict\"; \"object\" == typeof n && \"object\" == typeof n.exports ? n.exports = t.document ? e(t, !0) : function (t) { if (!t.document) throw new Error(\"jQuery requires a window with a document\"); return e(t) } : e(t) }(\"undefined\" != typeof window ? window : this, function (h, t) {\n            \"use strict\";\n            var e = [],\n                m = h.document,\n                r = Object.getPrototypeOf,\n                s = e.slice,\n                g = e.concat,\n                c = e.push,\n                i = e.indexOf,\n                n = {},\n                o = n.toString,\n                v = n.hasOwnProperty,\n                a = v.toString,\n                l = a.call(Object),\n                y = {};\n            function b(t, e) {\n                var n = (e = e || m).createElement(\"script\");\n                n.text = t, e.head.appendChild(n).parentNode.removeChild(n)\n            }\n            function u(t, e) { return e.toUpperCase() }\n            var d = \"3.0.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector,-deprecated\",\n                w = function (t, e) { return new w.fn.init(t, e) },\n                f = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n                p = /^-ms-/,\n                x = /-([a-z])/g;\n            function C(t) {\n                var e = !!t && \"length\" in t && t.length,\n                    n = w.type(t);\n                return \"function\" !== n && !w.isWindow(t) && (\"array\" === n || 0 === e || \"number\" == typeof e && 0 < e && e - 1 in t)\n            }\n            w.fn = w.prototype = {\n                jquery: d,\n                constructor: w,\n                length: 0,\n                toArray: function () { return s.call(this) },\n                get: function (t) { return null != t ? t < 0 ? this[t + this.length] : this[t] : s.call(this) },\n                pushStack: function (t) { var e = w.merge(this.constructor(), t); return e.prevObject = this, e },\n                each: function (t) { return w.each(this, t) },\n                map: function (n) { return this.pushStack(w.map(this, function (t, e) { return n.call(t, e, t) })) },\n                slice: function () { return this.pushStack(s.apply(this, arguments)) },\n                first: function () { return this.eq(0) },\n                last: function () { return this.eq(-1) },\n                eq: function (t) {\n                    var e = this.length,\n                        n = +t + (t < 0 ? e : 0);\n                    return this.pushStack(0 <= n && n < e ? [this[n]] : [])\n                },\n                end: function () { return this.prevObject || this.constructor() },\n                push: c,\n                sort: e.sort,\n                splice: e.splice\n            }, w.extend = w.fn.extend = function () {\n                var t, e, n, r, i, o, a = arguments[0] || {},\n                    s = 1,\n                    c = arguments.length,\n                    l = !1;\n                for (\"boolean\" == typeof a && (l = a, a = arguments[s] || {}, s++), \"object\" == typeof a || w.isFunction(a) || (a = {}), s === c && (a = this, s--); s < c; s++)\n                    if (null != (t = arguments[s]))\n                        for (e in t) n = a[e], a !== (r = t[e]) && (l && r && (w.isPlainObject(r) || (i = w.isArray(r))) ? (o = i ? (i = !1, n && w.isArray(n) ? n : []) : n && w.isPlainObject(n) ? n : {}, a[e] = w.extend(l, o, r)) : void 0 !== r && (a[e] = r));\n                return a\n            }, w.extend({\n                expando: \"jQuery\" + (d + Math.random()).replace(/\\D/g, \"\"),\n                isReady: !0,\n                error: function (t) { throw new Error(t) },\n                noop: function () { },\n                isFunction: function (t) { return \"function\" === w.type(t) },\n                isArray: Array.isArray,\n                isWindow: function (t) { return null != t && t === t.window },\n                isNumeric: function (t) { var e = w.type(t); return (\"number\" === e || \"string\" === e) && !isNaN(t - parseFloat(t)) },\n                isPlainObject: function (t) { var e, n; return !(!t || \"[object Object]\" !== o.call(t)) && (!(e = r(t)) || \"function\" == typeof (n = v.call(e, \"constructor\") && e.constructor) && a.call(n) === l) },\n                isEmptyObject: function (t) { var e; for (e in t) return !1; return !0 },\n                type: function (t) { return null == t ? t + \"\" : \"object\" == typeof t || \"function\" == typeof t ? n[o.call(t)] || \"object\" : typeof t },\n                globalEval: function (t) { b(t) },\n                camelCase: function (t) { return t.replace(p, \"ms-\").replace(x, u) },\n                nodeName: function (t, e) { return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase() },\n                each: function (t, e) {\n                    var n, r = 0;\n                    if (C(t))\n                        for (n = t.length; r < n && !1 !== e.call(t[r], r, t[r]); r++);\n                    else\n                        for (r in t)\n                            if (!1 === e.call(t[r], r, t[r])) break; return t\n                },\n                trim: function (t) { return null == t ? \"\" : (t + \"\").replace(f, \"\") },\n                makeArray: function (t, e) { var n = e || []; return null != t && (C(Object(t)) ? w.merge(n, \"string\" == typeof t ? [t] : t) : c.call(n, t)), n },\n                inArray: function (t, e, n) { return null == e ? -1 : i.call(e, t, n) },\n                merge: function (t, e) { for (var n = +e.length, r = 0, i = t.length; r < n; r++) t[i++] = e[r]; return t.length = i, t },\n                grep: function (t, e, n) { for (var r = [], i = 0, o = t.length, a = !n; i < o; i++) !e(t[i], i) != a && r.push(t[i]); return r },\n                map: function (t, e, n) {\n                    var r, i, o = 0,\n                        a = [];\n                    if (C(t))\n                        for (r = t.length; o < r; o++) null != (i = e(t[o], o, n)) && a.push(i);\n                    else\n                        for (o in t) null != (i = e(t[o], o, n)) && a.push(i);\n                    return g.apply([], a)\n                },\n                guid: 1,\n                proxy: function (t, e) { var n, r, i; if (\"string\" == typeof e && (n = t[e], e = t, t = n), w.isFunction(t)) return r = s.call(arguments, 2), (i = function () { return t.apply(e || this, r.concat(s.call(arguments))) }).guid = t.guid = t.guid || w.guid++, i },\n                now: Date.now,\n                support: y\n            }), \"function\" == typeof Symbol && (w.fn[Symbol.iterator] = e[Symbol.iterator]), w.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (t, e) { n[\"[object \" + e + \"]\"] = e.toLowerCase() });\n            var k = function (n) {\n                function d(t, e, n) { var r = \"0x\" + e - 65536; return r != r || n ? e : r < 0 ? String.fromCharCode(65536 + r) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) }\n                function i() { C() }\n                var t, p, w, o, a, h, f, m, x, c, l, C, k, s, T, g, u, v, y, E = \"sizzle\" + 1 * new Date,\n                    b = n.document,\n                    N = 0,\n                    r = 0,\n                    S = at(),\n                    D = at(),\n                    A = at(),\n                    L = function (t, e) { return t === e && (l = !0), 0 },\n                    j = {}.hasOwnProperty,\n                    e = [],\n                    _ = e.pop,\n                    q = e.push,\n                    O = e.push,\n                    F = e.slice,\n                    P = function (t, e) {\n                        for (var n = 0, r = t.length; n < r; n++)\n                            if (t[n] === e) return n;\n                        return -1\n                    },\n                    H = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n                    z = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n                    I = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n                    R = \"\\\\[\" + z + \"*(\" + I + \")(?:\" + z + \"*([*^$|!~]?=)\" + z + \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + I + \"))|)\" + z + \"*\\\\]\",\n                    W = \":(\" + I + \")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + R + \")*)|.*)\\\\)|)\",\n                    B = new RegExp(z + \"+\", \"g\"),\n                    M = new RegExp(\"^\" + z + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + z + \"+$\", \"g\"),\n                    $ = new RegExp(\"^\" + z + \"*,\" + z + \"*\"),\n                    U = new RegExp(\"^\" + z + \"*([>+~]|\" + z + \")\" + z + \"*\"),\n                    V = new RegExp(\"=\" + z + \"*([^\\\\]'\\\"]*?)\" + z + \"*\\\\]\", \"g\"),\n                    X = new RegExp(W),\n                    Q = new RegExp(\"^\" + I + \"$\"),\n                    Y = { ID: new RegExp(\"^#(\" + I + \")\"), CLASS: new RegExp(\"^\\\\.(\" + I + \")\"), TAG: new RegExp(\"^(\" + I + \"|[*])\"), ATTR: new RegExp(\"^\" + R), PSEUDO: new RegExp(\"^\" + W), CHILD: new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + z + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + z + \"*(?:([+-]|)\" + z + \"*(\\\\d+)|))\" + z + \"*\\\\)|)\", \"i\"), bool: new RegExp(\"^(?:\" + H + \")$\", \"i\"), needsContext: new RegExp(\"^\" + z + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + z + \"*((?:-\\\\d)?\\\\d*)\" + z + \"*\\\\)|)(?=[^-]|$)\", \"i\") },\n                    G = /^(?:input|select|textarea|button)$/i,\n                    J = /^h\\d$/i,\n                    K = /^[^{]+\\{\\s*\\[native \\w/,\n                    Z = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n                    tt = /[+~]/,\n                    et = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + z + \"?|(\" + z + \")|.)\", \"ig\"),\n                    nt = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g,\n                    rt = function (t, e) { return e ? \"\\0\" === t ? \"�\" : t.slice(0, -1) + \"\\\\\" + t.charCodeAt(t.length - 1).toString(16) + \" \" : \"\\\\\" + t },\n                    it = yt(function (t) { return !0 === t.disabled }, { dir: \"parentNode\", next: \"legend\" });\n                try { O.apply(e = F.call(b.childNodes), b.childNodes), e[b.childNodes.length].nodeType } catch (t) {\n                    O = {\n                        apply: e.length ? function (t, e) { q.apply(t, F.call(e)) } : function (t, e) {\n                            for (var n = t.length, r = 0; t[n++] = e[r++];);\n                            t.length = n - 1\n                        }\n                    }\n                }\n                function ot(t, e, n, r) {\n                    var i, o, a, s, c, l, u, d = e && e.ownerDocument,\n                        f = e ? e.nodeType : 9;\n                    if (n = n || [], \"string\" != typeof t || !t || 1 !== f && 9 !== f && 11 !== f) return n;\n                    if (!r && ((e ? e.ownerDocument || e : b) !== k && C(e), e = e || k, T)) {\n                        if (11 !== f && (c = Z.exec(t)))\n                            if (i = c[1]) { if (9 === f) { if (!(a = e.getElementById(i))) return n; if (a.id === i) return n.push(a), n } else if (d && (a = d.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n } else { if (c[2]) return O.apply(n, e.getElementsByTagName(t)), n; if ((i = c[3]) && p.getElementsByClassName && e.getElementsByClassName) return O.apply(n, e.getElementsByClassName(i)), n }\n                        if (p.qsa && !A[t + \" \"] && (!g || !g.test(t))) {\n                            if (1 !== f) d = e, u = t;\n                            else if (\"object\" !== e.nodeName.toLowerCase()) {\n                                for ((s = e.getAttribute(\"id\")) ? s = s.replace(nt, rt) : e.setAttribute(\"id\", s = E), o = (l = h(t)).length; o--;) l[o] = \"#\" + s + \" \" + vt(l[o]);\n                                u = l.join(\",\"), d = tt.test(t) && mt(e.parentNode) || e\n                            }\n                            if (u) try { return O.apply(n, d.querySelectorAll(u)), n } catch (t) { } finally { s === E && e.removeAttribute(\"id\") }\n                        }\n                    }\n                    return m(t.replace(M, \"$1\"), e, n, r)\n                }\n                function at() { var r = []; return function t(e, n) { return r.push(e + \" \") > w.cacheLength && delete t[r.shift()], t[e + \" \"] = n } }\n                function st(t) { return t[E] = !0, t }\n                function ct(t) { var e = k.createElement(\"fieldset\"); try { return !!t(e) } catch (t) { return !1 } finally { e.parentNode && e.parentNode.removeChild(e), e = null } }\n                function lt(t, e) { for (var n = t.split(\"|\"), r = n.length; r--;) w.attrHandle[n[r]] = e }\n                function ut(t, e) {\n                    var n = e && t,\n                        r = n && 1 === t.nodeType && 1 === e.nodeType && t.sourceIndex - e.sourceIndex;\n                    if (r) return r;\n                    if (n)\n                        for (; n = n.nextSibling;)\n                            if (n === e) return -1;\n                    return t ? 1 : -1\n                }\n                function dt(e) { return function (t) { return \"input\" === t.nodeName.toLowerCase() && t.type === e } }\n                function ft(n) { return function (t) { var e = t.nodeName.toLowerCase(); return (\"input\" === e || \"button\" === e) && t.type === n } }\n                function pt(e) { return function (t) { return \"label\" in t && t.disabled === e || \"form\" in t && t.disabled === e || \"form\" in t && !1 === t.disabled && (t.isDisabled === e || t.isDisabled !== !e && (\"label\" in t || !it(t)) !== e) } }\n                function ht(a) { return st(function (o) { return o = +o, st(function (t, e) { for (var n, r = a([], t.length, o), i = r.length; i--;) t[n = r[i]] && (t[n] = !(e[n] = t[n])) }) }) }\n                function mt(t) { return t && void 0 !== t.getElementsByTagName && t }\n                for (t in p = ot.support = {}, a = ot.isXML = function (t) { var e = t && (t.ownerDocument || t).documentElement; return !!e && \"HTML\" !== e.nodeName }, C = ot.setDocument = function (t) {\n                    var e, n, r = t ? t.ownerDocument || t : b;\n                    return r !== k && 9 === r.nodeType && r.documentElement && (s = (k = r).documentElement, T = !a(k), b !== k && (n = k.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener(\"unload\", i, !1) : n.attachEvent && n.attachEvent(\"onunload\", i)), p.attributes = ct(function (t) { return t.className = \"i\", !t.getAttribute(\"className\") }), p.getElementsByTagName = ct(function (t) { return t.appendChild(k.createComment(\"\")), !t.getElementsByTagName(\"*\").length }), p.getElementsByClassName = K.test(k.getElementsByClassName), p.getById = ct(function (t) { return s.appendChild(t).id = E, !k.getElementsByName || !k.getElementsByName(E).length }), p.getById ? (w.find.ID = function (t, e) { if (void 0 !== e.getElementById && T) { var n = e.getElementById(t); return n ? [n] : [] } }, w.filter.ID = function (t) { var e = t.replace(et, d); return function (t) { return t.getAttribute(\"id\") === e } }) : (delete w.find.ID, w.filter.ID = function (t) { var n = t.replace(et, d); return function (t) { var e = void 0 !== t.getAttributeNode && t.getAttributeNode(\"id\"); return e && e.value === n } }), w.find.TAG = p.getElementsByTagName ? function (t, e) { return void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t) : p.qsa ? e.querySelectorAll(t) : void 0 } : function (t, e) {\n                        var n, r = [],\n                            i = 0,\n                            o = e.getElementsByTagName(t);\n                        if (\"*\" !== t) return o;\n                        for (; n = o[i++];) 1 === n.nodeType && r.push(n);\n                        return r\n                    }, w.find.CLASS = p.getElementsByClassName && function (t, e) { if (void 0 !== e.getElementsByClassName && T) return e.getElementsByClassName(t) }, u = [], g = [], (p.qsa = K.test(k.querySelectorAll)) && (ct(function (t) { s.appendChild(t).innerHTML = \"<a id='\" + E + \"'></a><select id='\" + E + \"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\", t.querySelectorAll(\"[msallowcapture^='']\").length && g.push(\"[*^$]=\" + z + \"*(?:''|\\\"\\\")\"), t.querySelectorAll(\"[selected]\").length || g.push(\"\\\\[\" + z + \"*(?:value|\" + H + \")\"), t.querySelectorAll(\"[id~=\" + E + \"-]\").length || g.push(\"~=\"), t.querySelectorAll(\":checked\").length || g.push(\":checked\"), t.querySelectorAll(\"a#\" + E + \"+*\").length || g.push(\".#.+[+~]\") }), ct(function (t) {\n                        t.innerHTML = \"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";\n                        var e = k.createElement(\"input\");\n                        e.setAttribute(\"type\", \"hidden\"), t.appendChild(e).setAttribute(\"name\", \"D\"), t.querySelectorAll(\"[name=d]\").length && g.push(\"name\" + z + \"*[*^$|!~]?=\"), 2 !== t.querySelectorAll(\":enabled\").length && g.push(\":enabled\", \":disabled\"), s.appendChild(t).disabled = !0, 2 !== t.querySelectorAll(\":disabled\").length && g.push(\":enabled\", \":disabled\"), t.querySelectorAll(\"*,:x\"), g.push(\",.*:\")\n                    })), (p.matchesSelector = K.test(v = s.matches || s.webkitMatchesSelector || s.mozMatchesSelector || s.oMatchesSelector || s.msMatchesSelector)) && ct(function (t) { p.disconnectedMatch = v.call(t, \"*\"), v.call(t, \"[s!='']:x\"), u.push(\"!=\", W) }), g = g.length && new RegExp(g.join(\"|\")), u = u.length && new RegExp(u.join(\"|\")), e = K.test(s.compareDocumentPosition), y = e || K.test(s.contains) ? function (t, e) {\n                        var n = 9 === t.nodeType ? t.documentElement : t,\n                            r = e && e.parentNode;\n                        return t === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(r)))\n                    } : function (t, e) {\n                        if (e)\n                            for (; e = e.parentNode;)\n                                if (e === t) return !0;\n                        return !1\n                    }, L = e ? function (t, e) { if (t === e) return l = !0, 0; var n = !t.compareDocumentPosition - !e.compareDocumentPosition; return n || (1 & (n = (t.ownerDocument || t) === (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1) || !p.sortDetached && e.compareDocumentPosition(t) === n ? t === k || t.ownerDocument === b && y(b, t) ? -1 : e === k || e.ownerDocument === b && y(b, e) ? 1 : c ? P(c, t) - P(c, e) : 0 : 4 & n ? -1 : 1) } : function (t, e) {\n                        if (t === e) return l = !0, 0;\n                        var n, r = 0,\n                            i = t.parentNode,\n                            o = e.parentNode,\n                            a = [t],\n                            s = [e];\n                        if (!i || !o) return t === k ? -1 : e === k ? 1 : i ? -1 : o ? 1 : c ? P(c, t) - P(c, e) : 0;\n                        if (i === o) return ut(t, e);\n                        for (n = t; n = n.parentNode;) a.unshift(n);\n                        for (n = e; n = n.parentNode;) s.unshift(n);\n                        for (; a[r] === s[r];) r++;\n                        return r ? ut(a[r], s[r]) : a[r] === b ? -1 : s[r] === b ? 1 : 0\n                    }), k\n                }, ot.matches = function (t, e) { return ot(t, null, null, e) }, ot.matchesSelector = function (t, e) {\n                    if ((t.ownerDocument || t) !== k && C(t), e = e.replace(V, \"='$1']\"), p.matchesSelector && T && !A[e + \" \"] && (!u || !u.test(e)) && (!g || !g.test(e))) try { var n = v.call(t, e); if (n || p.disconnectedMatch || t.document && 11 !== t.document.nodeType) return n } catch (t) { }\n                    return 0 < ot(e, k, null, [t]).length\n                }, ot.contains = function (t, e) { return (t.ownerDocument || t) !== k && C(t), y(t, e) }, ot.attr = function (t, e) {\n                    (t.ownerDocument || t) !== k && C(t);\n                    var n = w.attrHandle[e.toLowerCase()],\n                        r = n && j.call(w.attrHandle, e.toLowerCase()) ? n(t, e, !T) : void 0;\n                    return void 0 !== r ? r : p.attributes || !T ? t.getAttribute(e) : (r = t.getAttributeNode(e)) && r.specified ? r.value : null\n                }, ot.escape = function (t) { return (t + \"\").replace(nt, rt) }, ot.error = function (t) { throw new Error(\"Syntax error, unrecognized expression: \" + t) }, ot.uniqueSort = function (t) {\n                    var e, n = [],\n                        r = 0,\n                        i = 0;\n                    if (l = !p.detectDuplicates, c = !p.sortStable && t.slice(0), t.sort(L), l) { for (; e = t[i++];) e === t[i] && (r = n.push(i)); for (; r--;) t.splice(n[r], 1) }\n                    return c = null, t\n                }, o = ot.getText = function (t) {\n                    var e, n = \"\",\n                        r = 0,\n                        i = t.nodeType;\n                    if (i) { if (1 === i || 9 === i || 11 === i) { if (\"string\" == typeof t.textContent) return t.textContent; for (t = t.firstChild; t; t = t.nextSibling) n += o(t) } else if (3 === i || 4 === i) return t.nodeValue } else\n                        for (; e = t[r++];) n += o(e);\n                    return n\n                }, (w = ot.selectors = {\n                    cacheLength: 50,\n                    createPseudo: st,\n                    match: Y,\n                    attrHandle: {},\n                    find: {},\n                    relative: { \">\": { dir: \"parentNode\", first: !0 }, \" \": { dir: \"parentNode\" }, \"+\": { dir: \"previousSibling\", first: !0 }, \"~\": { dir: \"previousSibling\" } },\n                    preFilter: { ATTR: function (t) { return t[1] = t[1].replace(et, d), t[3] = (t[3] || t[4] || t[5] || \"\").replace(et, d), \"~=\" === t[2] && (t[3] = \" \" + t[3] + \" \"), t.slice(0, 4) }, CHILD: function (t) { return t[1] = t[1].toLowerCase(), \"nth\" === t[1].slice(0, 3) ? (t[3] || ot.error(t[0]), t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * (\"even\" === t[3] || \"odd\" === t[3])), t[5] = +(t[7] + t[8] || \"odd\" === t[3])) : t[3] && ot.error(t[0]), t }, PSEUDO: function (t) { var e, n = !t[6] && t[2]; return Y.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || \"\" : n && X.test(n) && (e = h(n, !0)) && (e = n.indexOf(\")\", n.length - e) - n.length) && (t[0] = t[0].slice(0, e), t[2] = n.slice(0, e)), t.slice(0, 3)) } },\n                    filter: {\n                        TAG: function (t) { var e = t.replace(et, d).toLowerCase(); return \"*\" === t ? function () { return !0 } : function (t) { return t.nodeName && t.nodeName.toLowerCase() === e } },\n                        CLASS: function (t) { var e = S[t + \" \"]; return e || (e = new RegExp(\"(^|\" + z + \")\" + t + \"(\" + z + \"|$)\")) && S(t, function (t) { return e.test(\"string\" == typeof t.className && t.className || void 0 !== t.getAttribute && t.getAttribute(\"class\") || \"\") }) },\n                        ATTR: function (n, r, i) { return function (t) { var e = ot.attr(t, n); return null == e ? \"!=\" === r : !r || (e += \"\", \"=\" === r ? e === i : \"!=\" === r ? e !== i : \"^=\" === r ? i && 0 === e.indexOf(i) : \"*=\" === r ? i && -1 < e.indexOf(i) : \"$=\" === r ? i && e.slice(-i.length) === i : \"~=\" === r ? -1 < (\" \" + e.replace(B, \" \") + \" \").indexOf(i) : \"|=\" === r && (e === i || e.slice(0, i.length + 1) === i + \"-\")) } },\n                        CHILD: function (h, t, e, m, g) {\n                            var v = \"nth\" !== h.slice(0, 3),\n                                y = \"last\" !== h.slice(-4),\n                                b = \"of-type\" === t;\n                            return 1 === m && 0 === g ? function (t) { return !!t.parentNode } : function (t, e, n) {\n                                var r, i, o, a, s, c, l = v != y ? \"nextSibling\" : \"previousSibling\",\n                                    u = t.parentNode,\n                                    d = b && t.nodeName.toLowerCase(),\n                                    f = !n && !b,\n                                    p = !1;\n                                if (u) {\n                                    if (v) {\n                                        for (; l;) {\n                                            for (a = t; a = a[l];)\n                                                if (b ? a.nodeName.toLowerCase() === d : 1 === a.nodeType) return !1;\n                                            c = l = \"only\" === h && !c && \"nextSibling\"\n                                        }\n                                        return !0\n                                    }\n                                    if (c = [y ? u.firstChild : u.lastChild], y && f) {\n                                        for (p = (s = (r = (i = (o = (a = u)[E] || (a[E] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === N && r[1]) && r[2], a = s && u.childNodes[s]; a = ++s && a && a[l] || (p = s = 0) || c.pop();)\n                                            if (1 === a.nodeType && ++p && a === t) { i[h] = [N, s, p]; break }\n                                    } else if (f && (p = s = (r = (i = (o = (a = t)[E] || (a[E] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === N && r[1]), !1 === p)\n                                        for (;\n                                            (a = ++s && a && a[l] || (p = s = 0) || c.pop()) && ((b ? a.nodeName.toLowerCase() !== d : 1 !== a.nodeType) || !++p || (f && ((i = (o = a[E] || (a[E] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [N, p]), a !== t)););\n                                    return (p -= g) === m || p % m == 0 && 0 <= p / m\n                                }\n                            }\n                        },\n                        PSEUDO: function (t, o) { var e, a = w.pseudos[t] || w.setFilters[t.toLowerCase()] || ot.error(\"unsupported pseudo: \" + t); return a[E] ? a(o) : 1 < a.length ? (e = [t, t, \"\", o], w.setFilters.hasOwnProperty(t.toLowerCase()) ? st(function (t, e) { for (var n, r = a(t, o), i = r.length; i--;) t[n = P(t, r[i])] = !(e[n] = r[i]) }) : function (t) { return a(t, 0, e) }) : a }\n                    },\n                    pseudos: {\n                        not: st(function (t) {\n                            var r = [],\n                                i = [],\n                                s = f(t.replace(M, \"$1\"));\n                            return s[E] ? st(function (t, e, n, r) { for (var i, o = s(t, null, r, []), a = t.length; a--;)(i = o[a]) && (t[a] = !(e[a] = i)) }) : function (t, e, n) { return r[0] = t, s(r, null, n, i), r[0] = null, !i.pop() }\n                        }),\n                        has: st(function (e) { return function (t) { return 0 < ot(e, t).length } }),\n                        contains: st(function (e) {\n                            return e = e.replace(et, d),\n                                function (t) { return -1 < (t.textContent || t.innerText || o(t)).indexOf(e) }\n                        }),\n                        lang: st(function (n) {\n                            return Q.test(n || \"\") || ot.error(\"unsupported lang: \" + n), n = n.replace(et, d).toLowerCase(),\n                                function (t) {\n                                    var e;\n                                    do { if (e = T ? t.lang : t.getAttribute(\"xml:lang\") || t.getAttribute(\"lang\")) return (e = e.toLowerCase()) === n || 0 === e.indexOf(n + \"-\") } while ((t = t.parentNode) && 1 === t.nodeType);\n                                    return !1\n                                }\n                        }),\n                        target: function (t) { var e = n.location && n.location.hash; return e && e.slice(1) === t.id },\n                        root: function (t) { return t === s },\n                        focus: function (t) { return t === k.activeElement && (!k.hasFocus || k.hasFocus()) && !!(t.type || t.href || ~t.tabIndex) },\n                        enabled: pt(!1),\n                        disabled: pt(!0),\n                        checked: function (t) { var e = t.nodeName.toLowerCase(); return \"input\" === e && !!t.checked || \"option\" === e && !!t.selected },\n                        selected: function (t) { return t.parentNode && t.parentNode.selectedIndex, !0 === t.selected },\n                        empty: function (t) {\n                            for (t = t.firstChild; t; t = t.nextSibling)\n                                if (t.nodeType < 6) return !1;\n                            return !0\n                        },\n                        parent: function (t) { return !w.pseudos.empty(t) },\n                        header: function (t) { return J.test(t.nodeName) },\n                        input: function (t) { return G.test(t.nodeName) },\n                        button: function (t) { var e = t.nodeName.toLowerCase(); return \"input\" === e && \"button\" === t.type || \"button\" === e },\n                        text: function (t) { var e; return \"input\" === t.nodeName.toLowerCase() && \"text\" === t.type && (null == (e = t.getAttribute(\"type\")) || \"text\" === e.toLowerCase()) },\n                        first: ht(function () { return [0] }),\n                        last: ht(function (t, e) { return [e - 1] }),\n                        eq: ht(function (t, e, n) { return [n < 0 ? n + e : n] }),\n                        even: ht(function (t, e) { for (var n = 0; n < e; n += 2) t.push(n); return t }),\n                        odd: ht(function (t, e) { for (var n = 1; n < e; n += 2) t.push(n); return t }),\n                        lt: ht(function (t, e, n) { for (var r = n < 0 ? n + e : n; 0 <= --r;) t.push(r); return t }),\n                        gt: ht(function (t, e, n) { for (var r = n < 0 ? n + e : n; ++r < e;) t.push(r); return t })\n                    }\n                }).pseudos.nth = w.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) w.pseudos[t] = dt(t);\n                for (t in { submit: !0, reset: !0 }) w.pseudos[t] = ft(t);\n                function gt() { }\n                function vt(t) { for (var e = 0, n = t.length, r = \"\"; e < n; e++) r += t[e].value; return r }\n                function yt(s, t, e) {\n                    var c = t.dir,\n                        l = t.next,\n                        u = l || c,\n                        d = e && \"parentNode\" === u,\n                        f = r++;\n                    return t.first ? function (t, e, n) {\n                        for (; t = t[c];)\n                            if (1 === t.nodeType || d) return s(t, e, n)\n                    } : function (t, e, n) {\n                        var r, i, o, a = [N, f];\n                        if (n) {\n                            for (; t = t[c];)\n                                if ((1 === t.nodeType || d) && s(t, e, n)) return !0\n                        } else\n                            for (; t = t[c];)\n                                if (1 === t.nodeType || d)\n                                    if (i = (o = t[E] || (t[E] = {}))[t.uniqueID] || (o[t.uniqueID] = {}), l && l === t.nodeName.toLowerCase()) t = t[c] || t;\n                                    else { if ((r = i[u]) && r[0] === N && r[1] === f) return a[2] = r[2]; if ((i[u] = a)[2] = s(t, e, n)) return !0 }\n                    }\n                }\n                function bt(i) {\n                    return 1 < i.length ? function (t, e, n) {\n                        for (var r = i.length; r--;)\n                            if (!i[r](t, e, n)) return !1;\n                        return !0\n                    } : i[0]\n                }\n                function wt(t, e, n, r, i) { for (var o, a = [], s = 0, c = t.length, l = null != e; s < c; s++)(o = t[s]) && (n && !n(o, r, i) || (a.push(o), l && e.push(s))); return a }\n                function xt(p, h, m, g, v, t) {\n                    return g && !g[E] && (g = xt(g)), v && !v[E] && (v = xt(v, t)), st(function (t, e, n, r) {\n                        var i, o, a, s = [],\n                            c = [],\n                            l = e.length,\n                            u = t || function (t, e, n) { for (var r = 0, i = e.length; r < i; r++) ot(t, e[r], n); return n }(h || \"*\", n.nodeType ? [n] : n, []),\n                            d = !p || !t && h ? u : wt(u, s, p, n, r),\n                            f = m ? v || (t ? p : l || g) ? [] : e : d;\n                        if (m && m(d, f, n, r), g)\n                            for (i = wt(f, c), g(i, [], n, r), o = i.length; o--;)(a = i[o]) && (f[c[o]] = !(d[c[o]] = a));\n                        if (t) {\n                            if (v || p) {\n                                if (v) {\n                                    for (i = [], o = f.length; o--;)(a = f[o]) && i.push(d[o] = a);\n                                    v(null, f = [], i, r)\n                                }\n                                for (o = f.length; o--;)(a = f[o]) && -1 < (i = v ? P(t, a) : s[o]) && (t[i] = !(e[i] = a))\n                            }\n                        } else f = wt(f === e ? f.splice(l, f.length) : f), v ? v(null, e, f, r) : O.apply(e, f)\n                    })\n                }\n                function Ct(t) {\n                    for (var i, e, n, r = t.length, o = w.relative[t[0].type], a = o || w.relative[\" \"], s = o ? 1 : 0, c = yt(function (t) { return t === i }, a, !0), l = yt(function (t) { return -1 < P(i, t) }, a, !0), u = [function (t, e, n) { var r = !o && (n || e !== x) || ((i = e).nodeType ? c(t, e, n) : l(t, e, n)); return i = null, r }]; s < r; s++)\n                        if (e = w.relative[t[s].type]) u = [yt(bt(u), e)];\n                        else {\n                            if ((e = w.filter[t[s].type].apply(null, t[s].matches))[E]) { for (n = ++s; n < r && !w.relative[t[n].type]; n++); return xt(1 < s && bt(u), 1 < s && vt(t.slice(0, s - 1).concat({ value: \" \" === t[s - 2].type ? \"*\" : \"\" })).replace(M, \"$1\"), e, s < n && Ct(t.slice(s, n)), n < r && Ct(t = t.slice(n)), n < r && vt(t)) }\n                            u.push(e)\n                        }\n                    return bt(u)\n                }\n                return gt.prototype = w.filters = w.pseudos, w.setFilters = new gt, h = ot.tokenize = function (t, e) { var n, r, i, o, a, s, c, l = D[t + \" \"]; if (l) return e ? 0 : l.slice(0); for (a = t, s = [], c = w.preFilter; a;) { for (o in n && !(r = $.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = U.exec(a)) && (n = r.shift(), i.push({ value: n, type: r[0].replace(M, \" \") }), a = a.slice(n.length)), w.filter) !(r = Y[o].exec(a)) || c[o] && !(r = c[o](r)) || (n = r.shift(), i.push({ value: n, type: o, matches: r }), a = a.slice(n.length)); if (!n) break } return e ? a.length : a ? ot.error(t) : D(t, s).slice(0) }, f = ot.compile = function (t, e) {\n                    var n, r = [],\n                        i = [],\n                        o = A[t + \" \"];\n                    if (!o) {\n                        for (n = (e = e || h(t)).length; n--;)(o = Ct(e[n]))[E] ? r.push(o) : i.push(o);\n                        (o = A(t, function (g, v) {\n                            function t(t, e, n, r, i) {\n                                var o, a, s, c = 0,\n                                    l = \"0\",\n                                    u = t && [],\n                                    d = [],\n                                    f = x,\n                                    p = t || b && w.find.TAG(\"*\", i),\n                                    h = N += null == f ? 1 : Math.random() || .1,\n                                    m = p.length;\n                                for (i && (x = e === k || e || i); l !== m && null != (o = p[l]); l++) {\n                                    if (b && o) {\n                                        for (a = 0, e || o.ownerDocument === k || (C(o), n = !T); s = g[a++];)\n                                            if (s(o, e || k, n)) { r.push(o); break }\n                                        i && (N = h)\n                                    }\n                                    y && ((o = !s && o) && c--, t && u.push(o))\n                                }\n                                if (c += l, y && l !== c) {\n                                    for (a = 0; s = v[a++];) s(u, d, e, n);\n                                    if (t) {\n                                        if (0 < c)\n                                            for (; l--;) u[l] || d[l] || (d[l] = _.call(r));\n                                        d = wt(d)\n                                    }\n                                    O.apply(r, d), i && !t && 0 < d.length && 1 < c + v.length && ot.uniqueSort(r)\n                                }\n                                return i && (N = h, x = f), u\n                            }\n                            var y = 0 < v.length,\n                                b = 0 < g.length;\n                            return y ? st(t) : t\n                        }(i, r))).selector = t\n                    }\n                    return o\n                }, m = ot.select = function (t, e, n, r) {\n                    var i, o, a, s, c, l = \"function\" == typeof t && t,\n                        u = !r && h(t = l.selector || t);\n                    if (n = n || [], 1 === u.length) {\n                        if (2 < (o = u[0] = u[0].slice(0)).length && \"ID\" === (a = o[0]).type && p.getById && 9 === e.nodeType && T && w.relative[o[1].type]) {\n                            if (!(e = (w.find.ID(a.matches[0].replace(et, d), e) || [])[0])) return n;\n                            l && (e = e.parentNode), t = t.slice(o.shift().value.length)\n                        }\n                        for (i = Y.needsContext.test(t) ? 0 : o.length; i-- && (a = o[i], !w.relative[s = a.type]);)\n                            if ((c = w.find[s]) && (r = c(a.matches[0].replace(et, d), tt.test(o[0].type) && mt(e.parentNode) || e))) { if (o.splice(i, 1), !(t = r.length && vt(o))) return O.apply(n, r), n; break }\n                    }\n                    return (l || f(t, u))(r, e, !T, n, !e || tt.test(t) && mt(e.parentNode) || e), n\n                }, p.sortStable = E.split(\"\").sort(L).join(\"\") === E, p.detectDuplicates = !!l, C(), p.sortDetached = ct(function (t) { return 1 & t.compareDocumentPosition(k.createElement(\"fieldset\")) }), ct(function (t) { return t.innerHTML = \"<a href='#'></a>\", \"#\" === t.firstChild.getAttribute(\"href\") }) || lt(\"type|href|height|width\", function (t, e, n) { if (!n) return t.getAttribute(e, \"type\" === e.toLowerCase() ? 1 : 2) }), p.attributes && ct(function (t) { return t.innerHTML = \"<input/>\", t.firstChild.setAttribute(\"value\", \"\"), \"\" === t.firstChild.getAttribute(\"value\") }) || lt(\"value\", function (t, e, n) { if (!n && \"input\" === t.nodeName.toLowerCase()) return t.defaultValue }), ct(function (t) { return null == t.getAttribute(\"disabled\") }) || lt(H, function (t, e, n) { var r; if (!n) return !0 === t[e] ? e.toLowerCase() : (r = t.getAttributeNode(e)) && r.specified ? r.value : null }), ot\n            }(h);\n            w.find = k, w.expr = k.selectors, w.expr[\":\"] = w.expr.pseudos, w.uniqueSort = w.unique = k.uniqueSort, w.text = k.getText, w.isXMLDoc = k.isXML, w.contains = k.contains, w.escapeSelector = k.escape;\n            function T(t, e, n) {\n                for (var r = [], i = void 0 !== n;\n                    (t = t[e]) && 9 !== t.nodeType;)\n                    if (1 === t.nodeType) {\n                        if (i && w(t).is(n)) break;\n                        r.push(t)\n                    }\n                return r\n            }\n            function E(t, e) { for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t); return n }\n            var N = w.expr.match.needsContext,\n                S = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i,\n                D = /^.[^:#\\[\\.,]*$/;\n            function A(t, n, r) {\n                if (w.isFunction(n)) return w.grep(t, function (t, e) { return !!n.call(t, e, t) !== r });\n                if (n.nodeType) return w.grep(t, function (t) { return t === n !== r });\n                if (\"string\" == typeof n) {\n                    if (D.test(n)) return w.filter(n, t, r);\n                    n = w.filter(n, t)\n                }\n                return w.grep(t, function (t) { return -1 < i.call(n, t) !== r && 1 === t.nodeType })\n            }\n            w.filter = function (t, e, n) { var r = e[0]; return n && (t = \":not(\" + t + \")\"), 1 === e.length && 1 === r.nodeType ? w.find.matchesSelector(r, t) ? [r] : [] : w.find.matches(t, w.grep(e, function (t) { return 1 === t.nodeType })) }, w.fn.extend({\n                find: function (t) {\n                    var e, n, r = this.length,\n                        i = this;\n                    if (\"string\" != typeof t) return this.pushStack(w(t).filter(function () {\n                        for (e = 0; e < r; e++)\n                            if (w.contains(i[e], this)) return !0\n                    }));\n                    for (n = this.pushStack([]), e = 0; e < r; e++) w.find(t, i[e], n);\n                    return 1 < r ? w.uniqueSort(n) : n\n                },\n                filter: function (t) { return this.pushStack(A(this, t || [], !1)) },\n                not: function (t) { return this.pushStack(A(this, t || [], !0)) },\n                is: function (t) { return !!A(this, \"string\" == typeof t && N.test(t) ? w(t) : t || [], !1).length }\n            });\n            var L, j = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;\n            (w.fn.init = function (t, e, n) {\n                var r, i;\n                if (!t) return this;\n                if (n = n || L, \"string\" != typeof t) return t.nodeType ? (this[0] = t, this.length = 1, this) : w.isFunction(t) ? void 0 !== n.ready ? n.ready(t) : t(w) : w.makeArray(t, this);\n                if (!(r = \"<\" === t[0] && \">\" === t[t.length - 1] && 3 <= t.length ? [null, t, null] : j.exec(t)) || !r[1] && e) return !e || e.jquery ? (e || n).find(t) : this.constructor(e).find(t);\n                if (r[1]) {\n                    if (e = e instanceof w ? e[0] : e, w.merge(this, w.parseHTML(r[1], e && e.nodeType ? e.ownerDocument || e : m, !0)), S.test(r[1]) && w.isPlainObject(e))\n                        for (r in e) w.isFunction(this[r]) ? this[r](e[r]) : this.attr(r, e[r]);\n                    return this\n                }\n                return (i = m.getElementById(r[2])) && (this[0] = i, this.length = 1), this\n            }).prototype = w.fn, L = w(m);\n            var _ = /^(?:parents|prev(?:Until|All))/,\n                q = { children: !0, contents: !0, next: !0, prev: !0 };\n            function O(t, e) {\n                for (;\n                    (t = t[e]) && 1 !== t.nodeType;);\n                return t\n            }\n            w.fn.extend({\n                has: function (t) {\n                    var e = w(t, this),\n                        n = e.length;\n                    return this.filter(function () {\n                        for (var t = 0; t < n; t++)\n                            if (w.contains(this, e[t])) return !0\n                    })\n                },\n                closest: function (t, e) {\n                    var n, r = 0,\n                        i = this.length,\n                        o = [],\n                        a = \"string\" != typeof t && w(t);\n                    if (!N.test(t))\n                        for (; r < i; r++)\n                            for (n = this[r]; n && n !== e; n = n.parentNode)\n                                if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && w.find.matchesSelector(n, t))) { o.push(n); break }\n                    return this.pushStack(1 < o.length ? w.uniqueSort(o) : o)\n                },\n                index: function (t) { return t ? \"string\" == typeof t ? i.call(w(t), this[0]) : i.call(this, t.jquery ? t[0] : t) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 },\n                add: function (t, e) { return this.pushStack(w.uniqueSort(w.merge(this.get(), w(t, e)))) },\n                addBack: function (t) { return this.add(null == t ? this.prevObject : this.prevObject.filter(t)) }\n            }), w.each({ parent: function (t) { var e = t.parentNode; return e && 11 !== e.nodeType ? e : null }, parents: function (t) { return T(t, \"parentNode\") }, parentsUntil: function (t, e, n) { return T(t, \"parentNode\", n) }, next: function (t) { return O(t, \"nextSibling\") }, prev: function (t) { return O(t, \"previousSibling\") }, nextAll: function (t) { return T(t, \"nextSibling\") }, prevAll: function (t) { return T(t, \"previousSibling\") }, nextUntil: function (t, e, n) { return T(t, \"nextSibling\", n) }, prevUntil: function (t, e, n) { return T(t, \"previousSibling\", n) }, siblings: function (t) { return E((t.parentNode || {}).firstChild, t) }, children: function (t) { return E(t.firstChild) }, contents: function (t) { return t.contentDocument || w.merge([], t.childNodes) } }, function (r, i) { w.fn[r] = function (t, e) { var n = w.map(this, i, t); return \"Until\" !== r.slice(-5) && (e = t), e && \"string\" == typeof e && (n = w.filter(e, n)), 1 < this.length && (q[r] || w.uniqueSort(n), _.test(r) && n.reverse()), this.pushStack(n) } });\n            var F = /\\S+/g;\n            function P(t) { return t }\n            function H(t) { throw t }\n            function z(t, e, n) { var r; try { t && w.isFunction(r = t.promise) ? r.call(t).done(e).fail(n) : t && w.isFunction(r = t.then) ? r.call(t, e, n) : e.call(void 0, t) } catch (t) { n.call(void 0, t) } }\n            w.Callbacks = function (r) {\n                r = \"string\" == typeof r ? function (t) { var n = {}; return w.each(t.match(F) || [], function (t, e) { n[e] = !0 }), n }(r) : w.extend({}, r);\n                function n() {\n                    for (o = r.once, e = i = !0; s.length; c = -1)\n                        for (t = s.shift(); ++c < a.length;) !1 === a[c].apply(t[0], t[1]) && r.stopOnFalse && (c = a.length, t = !1);\n                    r.memory || (t = !1), i = !1, o && (a = t ? [] : \"\")\n                }\n                var i, t, e, o, a = [],\n                    s = [],\n                    c = -1,\n                    l = { add: function () { return a && (t && !i && (c = a.length - 1, s.push(t)), function n(t) { w.each(t, function (t, e) { w.isFunction(e) ? r.unique && l.has(e) || a.push(e) : e && e.length && \"string\" !== w.type(e) && n(e) }) }(arguments), t && !i && n()), this }, remove: function () { return w.each(arguments, function (t, e) { for (var n; - 1 < (n = w.inArray(e, a, n));) a.splice(n, 1), n <= c && c-- }), this }, has: function (t) { return t ? -1 < w.inArray(t, a) : 0 < a.length }, empty: function () { return a = a && [], this }, disable: function () { return o = s = [], a = t = \"\", this }, disabled: function () { return !a }, lock: function () { return o = s = [], t || i || (a = t = \"\"), this }, locked: function () { return !!o }, fireWith: function (t, e) { return o || (e = [t, (e = e || []).slice ? e.slice() : e], s.push(e), i || n()), this }, fire: function () { return l.fireWith(this, arguments), this }, fired: function () { return !!e } };\n                return l\n            }, w.extend({\n                Deferred: function (t) {\n                    var o = [\n                        [\"notify\", \"progress\", w.Callbacks(\"memory\"), w.Callbacks(\"memory\"), 2],\n                        [\"resolve\", \"done\", w.Callbacks(\"once memory\"), w.Callbacks(\"once memory\"), 0, \"resolved\"],\n                        [\"reject\", \"fail\", w.Callbacks(\"once memory\"), w.Callbacks(\"once memory\"), 1, \"rejected\"]\n                    ],\n                        i = \"pending\",\n                        a = {\n                            state: function () { return i },\n                            always: function () { return s.done(arguments).fail(arguments), this },\n                            catch: function (t) { return a.then(null, t) },\n                            pipe: function () {\n                                var i = arguments;\n                                return w.Deferred(function (r) {\n                                    w.each(o, function (t, e) {\n                                        var n = w.isFunction(i[e[4]]) && i[e[4]];\n                                        s[e[1]](function () {\n                                            var t = n && n.apply(this, arguments);\n                                            t && w.isFunction(t.promise) ? t.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[e[0] + \"With\"](this, n ? [t] : arguments)\n                                        })\n                                    }), i = null\n                                }).promise()\n                            },\n                            then: function (e, n, r) {\n                                var c = 0;\n                                function l(i, o, a, s) {\n                                    return function () {\n                                        function t() {\n                                            var t, e;\n                                            if (!(i < c)) {\n                                                if ((t = a.apply(n, r)) === o.promise()) throw new TypeError(\"Thenable self-resolution\");\n                                                e = t && (\"object\" == typeof t || \"function\" == typeof t) && t.then, w.isFunction(e) ? s ? e.call(t, l(c, o, P, s), l(c, o, H, s)) : (c++, e.call(t, l(c, o, P, s), l(c, o, H, s), l(c, o, P, o.notifyWith))) : (a !== P && (n = void 0, r = [t]), (s || o.resolveWith)(n, r))\n                                            }\n                                        }\n                                        var n = this,\n                                            r = arguments,\n                                            e = s ? t : function () { try { t() } catch (t) { w.Deferred.exceptionHook && w.Deferred.exceptionHook(t, e.stackTrace), c <= i + 1 && (a !== H && (n = void 0, r = [t]), o.rejectWith(n, r)) } };\n                                        i ? e() : (w.Deferred.getStackHook && (e.stackTrace = w.Deferred.getStackHook()), h.setTimeout(e))\n                                    }\n                                }\n                                return w.Deferred(function (t) { o[0][3].add(l(0, t, w.isFunction(r) ? r : P, t.notifyWith)), o[1][3].add(l(0, t, w.isFunction(e) ? e : P)), o[2][3].add(l(0, t, w.isFunction(n) ? n : H)) }).promise()\n                            },\n                            promise: function (t) { return null != t ? w.extend(t, a) : a }\n                        },\n                        s = {};\n                    return w.each(o, function (t, e) {\n                        var n = e[2],\n                            r = e[5];\n                        a[e[1]] = n.add, r && n.add(function () { i = r }, o[3 - t][2].disable, o[0][2].lock), n.add(e[3].fire), s[e[0]] = function () { return s[e[0] + \"With\"](this === s ? void 0 : this, arguments), this }, s[e[0] + \"With\"] = n.fireWith\n                    }), a.promise(s), t && t.call(s, s), s\n                },\n                when: function (t) {\n                    function e(e) { return function (t) { i[e] = this, o[e] = 1 < arguments.length ? s.call(arguments) : t, --n || a.resolveWith(i, o) } }\n                    var n = arguments.length,\n                        r = n,\n                        i = Array(r),\n                        o = s.call(arguments),\n                        a = w.Deferred();\n                    if (n <= 1 && (z(t, a.done(e(r)).resolve, a.reject), \"pending\" === a.state() || w.isFunction(o[r] && o[r].then))) return a.then();\n                    for (; r--;) z(o[r], e(r), a.reject);\n                    return a.promise()\n                }\n            });\n            var I = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n            w.Deferred.exceptionHook = function (t, e) { h.console && h.console.warn && t && I.test(t.name) && h.console.warn(\"jQuery.Deferred exception: \" + t.message, t.stack, e) };\n            var R = w.Deferred();\n            function W() { m.removeEventListener(\"DOMContentLoaded\", W), h.removeEventListener(\"load\", W), w.ready() }\n            w.fn.ready = function (t) { return R.then(t), this }, w.extend({\n                isReady: !1,\n                readyWait: 1,\n                holdReady: function (t) { t ? w.readyWait++ : w.ready(!0) },\n                ready: function (t) {\n                    (!0 === t ? --w.readyWait : w.isReady) || (w.isReady = !0) !== t && 0 < --w.readyWait || R.resolveWith(m, [w])\n                }\n            }), w.ready.then = R.then, \"complete\" === m.readyState || \"loading\" !== m.readyState && !m.documentElement.doScroll ? h.setTimeout(w.ready) : (m.addEventListener(\"DOMContentLoaded\", W), h.addEventListener(\"load\", W));\n            function B(t) { return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType }\n            var M = function (t, e, n, r, i, o, a) {\n                var s = 0,\n                    c = t.length,\n                    l = null == n;\n                if (\"object\" === w.type(n))\n                    for (s in i = !0, n) M(t, e, s, n[s], !0, o, a);\n                else if (void 0 !== r && (i = !0, w.isFunction(r) || (a = !0), l && (e = a ? (e.call(t, r), null) : (l = e, function (t, e, n) { return l.call(w(t), n) })), e))\n                    for (; s < c; s++) e(t[s], n, a ? r : r.call(t[s], s, e(t[s], n)));\n                return i ? t : l ? e.call(t) : c ? e(t[0], n) : o\n            };\n            function $() { this.expando = w.expando + $.uid++ }\n            $.uid = 1, $.prototype = {\n                cache: function (t) { var e = t[this.expando]; return e || (e = {}, B(t) && (t.nodeType ? t[this.expando] = e : Object.defineProperty(t, this.expando, { value: e, configurable: !0 }))), e },\n                set: function (t, e, n) {\n                    var r, i = this.cache(t);\n                    if (\"string\" == typeof e) i[w.camelCase(e)] = n;\n                    else\n                        for (r in e) i[w.camelCase(r)] = e[r];\n                    return i\n                },\n                get: function (t, e) { return void 0 === e ? this.cache(t) : t[this.expando] && t[this.expando][w.camelCase(e)] },\n                access: function (t, e, n) { return void 0 === e || e && \"string\" == typeof e && void 0 === n ? this.get(t, e) : (this.set(t, e, n), void 0 !== n ? n : e) },\n                remove: function (t, e) {\n                    var n, r = t[this.expando];\n                    if (void 0 !== r) {\n                        if (void 0 !== e) { n = (e = w.isArray(e) ? e.map(w.camelCase) : (e = w.camelCase(e)) in r ? [e] : e.match(F) || []).length; for (; n--;) delete r[e[n]] }\n                        void 0 !== e && !w.isEmptyObject(r) || (t.nodeType ? t[this.expando] = void 0 : delete t[this.expando])\n                    }\n                },\n                hasData: function (t) { var e = t[this.expando]; return void 0 !== e && !w.isEmptyObject(e) }\n            };\n            var U = new $,\n                V = new $,\n                X = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n                Q = /[A-Z]/g;\n            function Y(t, e, n) {\n                var r;\n                if (void 0 === n && 1 === t.nodeType)\n                    if (r = \"data-\" + e.replace(Q, \"-$&\").toLowerCase(), \"string\" == typeof (n = t.getAttribute(r))) {\n                        try { n = \"true\" === n || \"false\" !== n && (\"null\" === n ? null : +n + \"\" === n ? +n : X.test(n) ? JSON.parse(n) : n) } catch (t) { }\n                        V.set(t, e, n)\n                    } else n = void 0;\n                return n\n            }\n            w.extend({ hasData: function (t) { return V.hasData(t) || U.hasData(t) }, data: function (t, e, n) { return V.access(t, e, n) }, removeData: function (t, e) { V.remove(t, e) }, _data: function (t, e, n) { return U.access(t, e, n) }, _removeData: function (t, e) { U.remove(t, e) } }), w.fn.extend({\n                data: function (n, t) {\n                    var e, r, i, o = this[0],\n                        a = o && o.attributes;\n                    if (void 0 !== n) return \"object\" == typeof n ? this.each(function () { V.set(this, n) }) : M(this, function (t) {\n                        var e;\n                        if (o && void 0 === t) return void 0 !== (e = V.get(o, n)) ? e : void 0 !== (e = Y(o, n)) ? e : void 0;\n                        this.each(function () { V.set(this, n, t) })\n                    }, null, t, 1 < arguments.length, null, !0);\n                    if (this.length && (i = V.get(o), 1 === o.nodeType && !U.get(o, \"hasDataAttrs\"))) {\n                        for (e = a.length; e--;) a[e] && 0 === (r = a[e].name).indexOf(\"data-\") && (r = w.camelCase(r.slice(5)), Y(o, r, i[r]));\n                        U.set(o, \"hasDataAttrs\", !0)\n                    }\n                    return i\n                },\n                removeData: function (t) { return this.each(function () { V.remove(this, t) }) }\n            }), w.extend({\n                queue: function (t, e, n) { var r; if (t) return e = (e || \"fx\") + \"queue\", r = U.get(t, e), n && (!r || w.isArray(n) ? r = U.access(t, e, w.makeArray(n)) : r.push(n)), r || [] },\n                dequeue: function (t, e) {\n                    e = e || \"fx\";\n                    var n = w.queue(t, e),\n                        r = n.length,\n                        i = n.shift(),\n                        o = w._queueHooks(t, e);\n                    \"inprogress\" === i && (i = n.shift(), r--), i && (\"fx\" === e && n.unshift(\"inprogress\"), delete o.stop, i.call(t, function () { w.dequeue(t, e) }, o)), !r && o && o.empty.fire()\n                },\n                _queueHooks: function (t, e) { var n = e + \"queueHooks\"; return U.get(t, n) || U.access(t, n, { empty: w.Callbacks(\"once memory\").add(function () { U.remove(t, [e + \"queue\", n]) }) }) }\n            }), w.fn.extend({\n                queue: function (e, n) {\n                    var t = 2;\n                    return \"string\" != typeof e && (n = e, e = \"fx\", t--), arguments.length < t ? w.queue(this[0], e) : void 0 === n ? this : this.each(function () {\n                        var t = w.queue(this, e, n);\n                        w._queueHooks(this, e), \"fx\" === e && \"inprogress\" !== t[0] && w.dequeue(this, e)\n                    })\n                },\n                dequeue: function (t) { return this.each(function () { w.dequeue(this, t) }) },\n                clearQueue: function (t) { return this.queue(t || \"fx\", []) },\n                promise: function (t, e) {\n                    function n() { --i || o.resolveWith(a, [a]) }\n                    var r, i = 1,\n                        o = w.Deferred(),\n                        a = this,\n                        s = this.length;\n                    for (\"string\" != typeof t && (e = t, t = void 0), t = t || \"fx\"; s--;)(r = U.get(a[s], t + \"queueHooks\")) && r.empty && (i++, r.empty.add(n));\n                    return n(), o.promise(e)\n                }\n            });\n            function G(t, e) { return \"none\" === (t = e || t).style.display || \"\" === t.style.display && w.contains(t.ownerDocument, t) && \"none\" === w.css(t, \"display\") }\n            function J(t, e, n, r) { var i, o, a = {}; for (o in e) a[o] = t.style[o], t.style[o] = e[o]; for (o in i = n.apply(t, r || []), e) t.style[o] = a[o]; return i }\n            var K = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,\n                Z = new RegExp(\"^(?:([+-])=|)(\" + K + \")([a-z%]*)$\", \"i\"),\n                tt = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n            var et = {};\n            function nt(t, e) { for (var n, r, i, o, a, s, c, l = [], u = 0, d = t.length; u < d; u++)(r = t[u]).style && (n = r.style.display, e ? (\"none\" === n && (l[u] = U.get(r, \"display\") || null, l[u] || (r.style.display = \"\")), \"\" === r.style.display && G(r) && (l[u] = (c = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (c = et[s]) || (o = a.body.appendChild(a.createElement(s)), c = w.css(o, \"display\"), o.parentNode.removeChild(o), \"none\" === c && (c = \"block\"), et[s] = c)))) : \"none\" !== n && (l[u] = \"none\", U.set(r, \"display\", n))); for (u = 0; u < d; u++) null != l[u] && (t[u].style.display = l[u]); return t }\n            w.fn.extend({ show: function () { return nt(this, !0) }, hide: function () { return nt(this) }, toggle: function (t) { return \"boolean\" == typeof t ? t ? this.show() : this.hide() : this.each(function () { G(this) ? w(this).show() : w(this).hide() }) } });\n            var rt = /^(?:checkbox|radio)$/i,\n                it = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i,\n                ot = /^$|\\/(?:java|ecma)script/i,\n                at = { option: [1, \"<select multiple='multiple'>\", \"</select>\"], thead: [1, \"<table>\", \"</table>\"], col: [2, \"<table><colgroup>\", \"</colgroup></table>\"], tr: [2, \"<table><tbody>\", \"</tbody></table>\"], td: [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"], _default: [0, \"\", \"\"] };\n            function st(t, e) { var n = void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e || \"*\") : void 0 !== t.querySelectorAll ? t.querySelectorAll(e || \"*\") : []; return void 0 === e || e && w.nodeName(t, e) ? w.merge([t], n) : n }\n            function ct(t, e) { for (var n = 0, r = t.length; n < r; n++) U.set(t[n], \"globalEval\", !e || U.get(e[n], \"globalEval\")) }\n            at.optgroup = at.option, at.tbody = at.tfoot = at.colgroup = at.caption = at.thead, at.th = at.td;\n            var lt, ut, dt = /<|&#?\\w+;/;\n            function ft(t, e, n, r, i) {\n                for (var o, a, s, c, l, u, d = e.createDocumentFragment(), f = [], p = 0, h = t.length; p < h; p++)\n                    if ((o = t[p]) || 0 === o)\n                        if (\"object\" === w.type(o)) w.merge(f, o.nodeType ? [o] : o);\n                        else if (dt.test(o)) {\n                            for (a = a || d.appendChild(e.createElement(\"div\")), s = (it.exec(o) || [\"\", \"\"])[1].toLowerCase(), c = at[s] || at._default, a.innerHTML = c[1] + w.htmlPrefilter(o) + c[2], u = c[0]; u--;) a = a.lastChild;\n                            w.merge(f, a.childNodes), (a = d.firstChild).textContent = \"\"\n                        } else f.push(e.createTextNode(o));\n                for (d.textContent = \"\", p = 0; o = f[p++];)\n                    if (r && -1 < w.inArray(o, r)) i && i.push(o);\n                    else if (l = w.contains(o.ownerDocument, o), a = st(d.appendChild(o), \"script\"), l && ct(a), n)\n                        for (u = 0; o = a[u++];) ot.test(o.type || \"\") && n.push(o);\n                return d\n            }\n            lt = m.createDocumentFragment().appendChild(m.createElement(\"div\")), (ut = m.createElement(\"input\")).setAttribute(\"type\", \"radio\"), ut.setAttribute(\"checked\", \"checked\"), ut.setAttribute(\"name\", \"t\"), lt.appendChild(ut), y.checkClone = lt.cloneNode(!0).cloneNode(!0).lastChild.checked, lt.innerHTML = \"<textarea>x</textarea>\", y.noCloneChecked = !!lt.cloneNode(!0).lastChild.defaultValue;\n            var pt = m.documentElement,\n                ht = /^key/,\n                mt = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n                gt = /^([^.]*)(?:\\.(.+)|)/;\n            function vt() { return !0 }\n            function yt() { return !1 }\n            function bt() { try { return m.activeElement } catch (t) { } }\n            function wt(t, e, n, r, i, o) {\n                var a, s;\n                if (\"object\" == typeof e) { for (s in \"string\" != typeof n && (r = r || n, n = void 0), e) wt(t, s, n, r, e[s], o); return t }\n                if (null == r && null == i ? (i = n, r = n = void 0) : null == i && (\"string\" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = yt;\n                else if (!i) return t;\n                return 1 === o && (a = i, (i = function (t) { return w().off(t), a.apply(this, arguments) }).guid = a.guid || (a.guid = w.guid++)), t.each(function () { w.event.add(this, e, i, r, n) })\n            }\n            w.event = {\n                global: {},\n                add: function (e, t, n, r, i) {\n                    var o, a, s, c, l, u, d, f, p, h, m, g = U.get(e);\n                    if (g)\n                        for (n.handler && (n = (o = n).handler, i = o.selector), i && w.find.matchesSelector(pt, i), n.guid || (n.guid = w.guid++), (c = g.events) || (c = g.events = {}), (a = g.handle) || (a = g.handle = function (t) { return void 0 !== w && w.event.triggered !== t.type ? w.event.dispatch.apply(e, arguments) : void 0 }), l = (t = (t || \"\").match(F) || [\"\"]).length; l--;) p = m = (s = gt.exec(t[l]) || [])[1], h = (s[2] || \"\").split(\".\").sort(), p && (d = w.event.special[p] || {}, p = (i ? d.delegateType : d.bindType) || p, d = w.event.special[p] || {}, u = w.extend({ type: p, origType: m, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && w.expr.match.needsContext.test(i), namespace: h.join(\".\") }, o), (f = c[p]) || ((f = c[p] = []).delegateCount = 0, d.setup && !1 !== d.setup.call(e, r, h, a) || e.addEventListener && e.addEventListener(p, a)), d.add && (d.add.call(e, u), u.handler.guid || (u.handler.guid = n.guid)), i ? f.splice(f.delegateCount++, 0, u) : f.push(u), w.event.global[p] = !0)\n                },\n                remove: function (t, e, n, r, i) {\n                    var o, a, s, c, l, u, d, f, p, h, m, g = U.hasData(t) && U.get(t);\n                    if (g && (c = g.events)) {\n                        for (l = (e = (e || \"\").match(F) || [\"\"]).length; l--;)\n                            if (p = m = (s = gt.exec(e[l]) || [])[1], h = (s[2] || \"\").split(\".\").sort(), p) {\n                                for (d = w.event.special[p] || {}, f = c[p = (r ? d.delegateType : d.bindType) || p] || [], s = s[2] && new RegExp(\"(^|\\\\.)\" + h.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"), a = o = f.length; o--;) u = f[o], !i && m !== u.origType || n && n.guid !== u.guid || s && !s.test(u.namespace) || r && r !== u.selector && (\"**\" !== r || !u.selector) || (f.splice(o, 1), u.selector && f.delegateCount--, d.remove && d.remove.call(t, u));\n                                a && !f.length && (d.teardown && !1 !== d.teardown.call(t, h, g.handle) || w.removeEvent(t, p, g.handle), delete c[p])\n                            } else\n                                for (p in c) w.event.remove(t, p + e[l], n, r, !0);\n                        w.isEmptyObject(c) && U.remove(t, \"handle events\")\n                    }\n                },\n                dispatch: function (t) {\n                    var e, n, r, i, o, a, s = w.event.fix(t),\n                        c = new Array(arguments.length),\n                        l = (U.get(this, \"events\") || {})[s.type] || [],\n                        u = w.event.special[s.type] || {};\n                    for (c[0] = s, e = 1; e < arguments.length; e++) c[e] = arguments[e];\n                    if (s.delegateTarget = this, !u.preDispatch || !1 !== u.preDispatch.call(this, s)) {\n                        for (a = w.event.handlers.call(this, s, l), e = 0;\n                            (i = a[e++]) && !s.isPropagationStopped();)\n                            for (s.currentTarget = i.elem, n = 0;\n                                (o = i.handlers[n++]) && !s.isImmediatePropagationStopped();) s.rnamespace && !s.rnamespace.test(o.namespace) || (s.handleObj = o, s.data = o.data, void 0 !== (r = ((w.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, c)) && !1 === (s.result = r) && (s.preventDefault(), s.stopPropagation()));\n                        return u.postDispatch && u.postDispatch.call(this, s), s.result\n                    }\n                },\n                handlers: function (t, e) {\n                    var n, r, i, o, a = [],\n                        s = e.delegateCount,\n                        c = t.target;\n                    if (s && c.nodeType && (\"click\" !== t.type || isNaN(t.button) || t.button < 1))\n                        for (; c !== this; c = c.parentNode || this)\n                            if (1 === c.nodeType && (!0 !== c.disabled || \"click\" !== t.type)) {\n                                for (r = [], n = 0; n < s; n++) void 0 === r[i = (o = e[n]).selector + \" \"] && (r[i] = o.needsContext ? -1 < w(i, this).index(c) : w.find(i, this, null, [c]).length), r[i] && r.push(o);\n                                r.length && a.push({ elem: c, handlers: r })\n                            }\n                    return s < e.length && a.push({ elem: this, handlers: e.slice(s) }), a\n                },\n                addProp: function (e, t) { Object.defineProperty(w.Event.prototype, e, { enumerable: !0, configurable: !0, get: w.isFunction(t) ? function () { if (this.originalEvent) return t(this.originalEvent) } : function () { if (this.originalEvent) return this.originalEvent[e] }, set: function (t) { Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) } }) },\n                fix: function (t) { return t[w.expando] ? t : new w.Event(t) },\n                special: { load: { noBubble: !0 }, focus: { trigger: function () { if (this !== bt() && this.focus) return this.focus(), !1 }, delegateType: \"focusin\" }, blur: { trigger: function () { if (this === bt() && this.blur) return this.blur(), !1 }, delegateType: \"focusout\" }, click: { trigger: function () { if (\"checkbox\" === this.type && this.click && w.nodeName(this, \"input\")) return this.click(), !1 }, _default: function (t) { return w.nodeName(t.target, \"a\") } }, beforeunload: { postDispatch: function (t) { void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result) } } }\n            }, w.removeEvent = function (t, e, n) { t.removeEventListener && t.removeEventListener(e, n) }, w.Event = function (t, e) {\n                if (!(this instanceof w.Event)) return new w.Event(t, e);\n                t && t.type ? (this.originalEvent = t, this.type = t.type, this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && !1 === t.returnValue ? vt : yt, this.target = t.target && 3 === t.target.nodeType ? t.target.parentNode : t.target, this.currentTarget = t.currentTarget, this.relatedTarget = t.relatedTarget) : this.type = t, e && w.extend(this, e), this.timeStamp = t && t.timeStamp || w.now(), this[w.expando] = !0\n            }, w.Event.prototype = {\n                constructor: w.Event,\n                isDefaultPrevented: yt,\n                isPropagationStopped: yt,\n                isImmediatePropagationStopped: yt,\n                isSimulated: !1,\n                preventDefault: function () {\n                    var t = this.originalEvent;\n                    this.isDefaultPrevented = vt, t && !this.isSimulated && t.preventDefault()\n                },\n                stopPropagation: function () {\n                    var t = this.originalEvent;\n                    this.isPropagationStopped = vt, t && !this.isSimulated && t.stopPropagation()\n                },\n                stopImmediatePropagation: function () {\n                    var t = this.originalEvent;\n                    this.isImmediatePropagationStopped = vt, t && !this.isSimulated && t.stopImmediatePropagation(), this.stopPropagation()\n                }\n            }, w.each({ altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, char: !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: function (t) { var e = t.button; return null == t.which && ht.test(t.type) ? null != t.charCode ? t.charCode : t.keyCode : !t.which && void 0 !== e && mt.test(t.type) ? 1 & e ? 1 : 2 & e ? 3 : 4 & e ? 2 : 0 : t.which } }, w.event.addProp), w.each({ mouseenter: \"mouseover\", mouseleave: \"mouseout\", pointerenter: \"pointerover\", pointerleave: \"pointerout\" }, function (t, i) {\n                w.event.special[t] = {\n                    delegateType: i,\n                    bindType: i,\n                    handle: function (t) {\n                        var e, n = t.relatedTarget,\n                            r = t.handleObj;\n                        return n && (n === this || w.contains(this, n)) || (t.type = r.origType, e = r.handler.apply(this, arguments), t.type = i), e\n                    }\n                }\n            }), w.fn.extend({ on: function (t, e, n, r) { return wt(this, t, e, n, r) }, one: function (t, e, n, r) { return wt(this, t, e, n, r, 1) }, off: function (t, e, n) { var r, i; if (t && t.preventDefault && t.handleObj) return r = t.handleObj, w(t.delegateTarget).off(r.namespace ? r.origType + \".\" + r.namespace : r.origType, r.selector, r.handler), this; if (\"object\" != typeof t) return !1 !== e && \"function\" != typeof e || (n = e, e = void 0), !1 === n && (n = yt), this.each(function () { w.event.remove(this, t, n, e) }); for (i in t) this.off(i, e, t[i]); return this } });\n            var xt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n                Ct = /<script|<style|<link/i,\n                kt = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n                Tt = /^true\\/(.*)/,\n                Et = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n            function Nt(t, e) { return w.nodeName(t, \"table\") && w.nodeName(11 !== e.nodeType ? e : e.firstChild, \"tr\") && t.getElementsByTagName(\"tbody\")[0] || t }\n            function St(t) { return t.type = (null !== t.getAttribute(\"type\")) + \"/\" + t.type, t }\n            function Dt(t) { var e = Tt.exec(t.type); return e ? t.type = e[1] : t.removeAttribute(\"type\"), t }\n            function At(t, e) {\n                var n, r, i, o, a, s, c, l;\n                if (1 === e.nodeType) {\n                    if (U.hasData(t) && (o = U.access(t), a = U.set(e, o), l = o.events))\n                        for (i in delete a.handle, a.events = {}, l)\n                            for (n = 0, r = l[i].length; n < r; n++) w.event.add(e, i, l[i][n]);\n                    V.hasData(t) && (s = V.access(t), c = w.extend({}, s), V.set(e, c))\n                }\n            }\n            function Lt(n, r, i, o) {\n                r = g.apply([], r);\n                var t, e, a, s, c, l, u = 0,\n                    d = n.length,\n                    f = d - 1,\n                    p = r[0],\n                    h = w.isFunction(p);\n                if (h || 1 < d && \"string\" == typeof p && !y.checkClone && kt.test(p)) return n.each(function (t) {\n                    var e = n.eq(t);\n                    h && (r[0] = p.call(this, t, e.html())), Lt(e, r, i, o)\n                });\n                if (d && (e = (t = ft(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === t.childNodes.length && (t = e), e || o)) {\n                    for (s = (a = w.map(st(t, \"script\"), St)).length; u < d; u++) c = t, u !== f && (c = w.clone(c, !0, !0), s && w.merge(a, st(c, \"script\"))), i.call(n[u], c, u);\n                    if (s)\n                        for (l = a[a.length - 1].ownerDocument, w.map(a, Dt), u = 0; u < s; u++) c = a[u], ot.test(c.type || \"\") && !U.access(c, \"globalEval\") && w.contains(l, c) && (c.src ? w._evalUrl && w._evalUrl(c.src) : b(c.textContent.replace(Et, \"\"), l))\n                }\n                return n\n            }\n            function jt(t, e, n) { for (var r, i = e ? w.filter(e, t) : t, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || w.cleanData(st(r)), r.parentNode && (n && w.contains(r.ownerDocument, r) && ct(st(r, \"script\")), r.parentNode.removeChild(r)); return t }\n            w.extend({\n                htmlPrefilter: function (t) { return t },\n                clone: function (t, e, n) {\n                    var r, i, o, a, s, c, l, u = t.cloneNode(!0),\n                        d = w.contains(t.ownerDocument, t);\n                    if (!(y.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || w.isXMLDoc(t)))\n                        for (a = st(u), r = 0, i = (o = st(t)).length; r < i; r++) s = o[r], c = a[r], void 0, \"input\" === (l = c.nodeName.toLowerCase()) && rt.test(s.type) ? c.checked = s.checked : \"input\" !== l && \"textarea\" !== l || (c.defaultValue = s.defaultValue);\n                    if (e)\n                        if (n)\n                            for (o = o || st(t), a = a || st(u), r = 0, i = o.length; r < i; r++) At(o[r], a[r]);\n                        else At(t, u);\n                    return 0 < (a = st(u, \"script\")).length && ct(a, !d && st(t, \"script\")), u\n                },\n                cleanData: function (t) {\n                    for (var e, n, r, i = w.event.special, o = 0; void 0 !== (n = t[o]); o++)\n                        if (B(n)) {\n                            if (e = n[U.expando]) {\n                                if (e.events)\n                                    for (r in e.events) i[r] ? w.event.remove(n, r) : w.removeEvent(n, r, e.handle);\n                                n[U.expando] = void 0\n                            }\n                            n[V.expando] && (n[V.expando] = void 0)\n                        }\n                }\n            }), w.fn.extend({\n                detach: function (t) { return jt(this, t, !0) },\n                remove: function (t) { return jt(this, t) },\n                text: function (t) { return M(this, function (t) { return void 0 === t ? w.text(this) : this.empty().each(function () { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = t) }) }, null, t, arguments.length) },\n                append: function () { return Lt(this, arguments, function (t) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Nt(this, t).appendChild(t) }) },\n                prepend: function () {\n                    return Lt(this, arguments, function (t) {\n                        if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {\n                            var e = Nt(this, t);\n                            e.insertBefore(t, e.firstChild)\n                        }\n                    })\n                },\n                before: function () { return Lt(this, arguments, function (t) { this.parentNode && this.parentNode.insertBefore(t, this) }) },\n                after: function () { return Lt(this, arguments, function (t) { this.parentNode && this.parentNode.insertBefore(t, this.nextSibling) }) },\n                empty: function () { for (var t, e = 0; null != (t = this[e]); e++) 1 === t.nodeType && (w.cleanData(st(t, !1)), t.textContent = \"\"); return this },\n                clone: function (t, e) { return t = null != t && t, e = null == e ? t : e, this.map(function () { return w.clone(this, t, e) }) },\n                html: function (t) {\n                    return M(this, function (t) {\n                        var e = this[0] || {},\n                            n = 0,\n                            r = this.length;\n                        if (void 0 === t && 1 === e.nodeType) return e.innerHTML;\n                        if (\"string\" == typeof t && !Ct.test(t) && !at[(it.exec(t) || [\"\", \"\"])[1].toLowerCase()]) {\n                            t = w.htmlPrefilter(t);\n                            try {\n                                for (; n < r; n++) 1 === (e = this[n] || {}).nodeType && (w.cleanData(st(e, !1)), e.innerHTML = t);\n                                e = 0\n                            } catch (t) { }\n                        }\n                        e && this.empty().append(t)\n                    }, null, t, arguments.length)\n                },\n                replaceWith: function () {\n                    var n = [];\n                    return Lt(this, arguments, function (t) {\n                        var e = this.parentNode;\n                        w.inArray(this, n) < 0 && (w.cleanData(st(this)), e && e.replaceChild(t, this))\n                    }, n)\n                }\n            }), w.each({ appendTo: \"append\", prependTo: \"prepend\", insertBefore: \"before\", insertAfter: \"after\", replaceAll: \"replaceWith\" }, function (t, a) { w.fn[t] = function (t) { for (var e, n = [], r = w(t), i = r.length - 1, o = 0; o <= i; o++) e = o === i ? this : this.clone(!0), w(r[o])[a](e), c.apply(n, e.get()); return this.pushStack(n) } });\n            var _t, qt, Ot, Ft, Pt, Ht, zt = /^margin/,\n                It = new RegExp(\"^(\" + K + \")(?!px)[a-z%]+$\", \"i\"),\n                Rt = function (t) { var e = t.ownerDocument.defaultView; return e && e.opener || (e = h), e.getComputedStyle(t) };\n            function Wt() {\n                if (Ht) {\n                    Ht.style.cssText = \"box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%\", Ht.innerHTML = \"\", pt.appendChild(Pt);\n                    var t = h.getComputedStyle(Ht);\n                    _t = \"1%\" !== t.top, Ft = \"2px\" === t.marginLeft, qt = \"4px\" === t.width, Ht.style.marginRight = \"50%\", Ot = \"4px\" === t.marginRight, pt.removeChild(Pt), Ht = null\n                }\n            }\n            function Bt(t, e, n) { var r, i, o, a, s = t.style; return (n = n || Rt(t)) && (\"\" !== (a = n.getPropertyValue(e) || n[e]) || w.contains(t.ownerDocument, t) || (a = w.style(t, e)), !y.pixelMarginRight() && It.test(a) && zt.test(e) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + \"\" : a }\n            function Mt(t, e) {\n                return {\n                    get: function () {\n                        if (!t()) return (this.get = e).apply(this, arguments);\n                        delete this.get\n                    }\n                }\n            }\n            Pt = m.createElement(\"div\"), (Ht = m.createElement(\"div\")).style && (Ht.style.backgroundClip = \"content-box\", Ht.cloneNode(!0).style.backgroundClip = \"\", y.clearCloneStyle = \"content-box\" === Ht.style.backgroundClip, Pt.style.cssText = \"border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute\", Pt.appendChild(Ht), w.extend(y, { pixelPosition: function () { return Wt(), _t }, boxSizingReliable: function () { return Wt(), qt }, pixelMarginRight: function () { return Wt(), Ot }, reliableMarginLeft: function () { return Wt(), Ft } }));\n            var $t, Ut, Vt = /^(none|table(?!-c[ea]).+)/,\n                Xt = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n                Qt = { letterSpacing: \"0\", fontWeight: \"400\" },\n                Yt = [\"Webkit\", \"Moz\", \"ms\"],\n                Gt = m.createElement(\"div\").style;\n            function Jt(t) {\n                if (t in Gt) return t;\n                for (var e = t[0].toUpperCase() + t.slice(1), n = Yt.length; n--;)\n                    if ((t = Yt[n] + e) in Gt) return t\n            }\n            function Kt(t, e, n) { var r = Z.exec(e); return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || \"px\") : e }\n            function Zt(t, e, n, r, i) { for (var o = n === (r ? \"border\" : \"content\") ? 4 : \"width\" === e ? 1 : 0, a = 0; o < 4; o += 2) \"margin\" === n && (a += w.css(t, n + tt[o], !0, i)), r ? (\"content\" === n && (a -= w.css(t, \"padding\" + tt[o], !0, i)), \"margin\" !== n && (a -= w.css(t, \"border\" + tt[o] + \"Width\", !0, i))) : (a += w.css(t, \"padding\" + tt[o], !0, i), \"padding\" !== n && (a += w.css(t, \"border\" + tt[o] + \"Width\", !0, i))); return a }\n            function te(t, e, n) {\n                var r, i = !0,\n                    o = Rt(t),\n                    a = \"border-box\" === w.css(t, \"boxSizing\", !1, o);\n                if (t.getClientRects().length && (r = t.getBoundingClientRect()[e]), r <= 0 || null == r) {\n                    if (((r = Bt(t, e, o)) < 0 || null == r) && (r = t.style[e]), It.test(r)) return r;\n                    i = a && (y.boxSizingReliable() || r === t.style[e]), r = parseFloat(r) || 0\n                }\n                return r + Zt(t, e, n || (a ? \"border\" : \"content\"), i, o) + \"px\"\n            }\n            w.extend({\n                cssHooks: { opacity: { get: function (t, e) { if (e) { var n = Bt(t, \"opacity\"); return \"\" === n ? \"1\" : n } } } },\n                cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 },\n                cssProps: { float: \"cssFloat\" },\n                style: function (t, e, n, r) {\n                    if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {\n                        var i, o, a, s = w.camelCase(e),\n                            c = t.style;\n                        if (e = w.cssProps[s] || (w.cssProps[s] = Jt(s) || s), a = w.cssHooks[e] || w.cssHooks[s], void 0 === n) return a && \"get\" in a && void 0 !== (i = a.get(t, !1, r)) ? i : c[e];\n                        \"string\" === (o = typeof n) && (i = Z.exec(n)) && i[1] && (n = function (t, e, n, r) {\n                            var i, o = 1,\n                                a = 20,\n                                s = r ? function () { return r.cur() } : function () { return w.css(t, e, \"\") },\n                                c = s(),\n                                l = n && n[3] || (w.cssNumber[e] ? \"\" : \"px\"),\n                                u = (w.cssNumber[e] || \"px\" !== l && +c) && Z.exec(w.css(t, e));\n                            if (u && u[3] !== l)\n                                for (l = l || u[3], n = n || [], u = +c || 1; u /= o = o || \".5\", w.style(t, e, u + l), o !== (o = s() / c) && 1 !== o && --a;);\n                            return n && (u = +u || +c || 0, i = n[1] ? u + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = u, r.end = i)), i\n                        }(t, e, i), o = \"number\"), null != n && n == n && (\"number\" === o && (n += i && i[3] || (w.cssNumber[s] ? \"\" : \"px\")), y.clearCloneStyle || \"\" !== n || 0 !== e.indexOf(\"background\") || (c[e] = \"inherit\"), a && \"set\" in a && void 0 === (n = a.set(t, n, r)) || (c[e] = n))\n                    }\n                },\n                css: function (t, e, n, r) { var i, o, a, s = w.camelCase(e); return e = w.cssProps[s] || (w.cssProps[s] = Jt(s) || s), (a = w.cssHooks[e] || w.cssHooks[s]) && \"get\" in a && (i = a.get(t, !0, n)), void 0 === i && (i = Bt(t, e, r)), \"normal\" === i && e in Qt && (i = Qt[e]), \"\" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i }\n            }), w.each([\"height\", \"width\"], function (t, a) {\n                w.cssHooks[a] = {\n                    get: function (t, e, n) { if (e) return !Vt.test(w.css(t, \"display\")) || t.getClientRects().length && t.getBoundingClientRect().width ? te(t, a, n) : J(t, Xt, function () { return te(t, a, n) }) },\n                    set: function (t, e, n) {\n                        var r, i = n && Rt(t),\n                            o = n && Zt(t, a, n, \"border-box\" === w.css(t, \"boxSizing\", !1, i), i);\n                        return o && (r = Z.exec(e)) && \"px\" !== (r[3] || \"px\") && (t.style[a] = e, e = w.css(t, a)), Kt(0, e, o)\n                    }\n                }\n            }), w.cssHooks.marginLeft = Mt(y.reliableMarginLeft, function (t, e) { if (e) return (parseFloat(Bt(t, \"marginLeft\")) || t.getBoundingClientRect().left - J(t, { marginLeft: 0 }, function () { return t.getBoundingClientRect().left })) + \"px\" }), w.each({ margin: \"\", padding: \"\", border: \"Width\" }, function (i, o) { w.cssHooks[i + o] = { expand: function (t) { for (var e = 0, n = {}, r = \"string\" == typeof t ? t.split(\" \") : [t]; e < 4; e++) n[i + tt[e] + o] = r[e] || r[e - 2] || r[0]; return n } }, zt.test(i) || (w.cssHooks[i + o].set = Kt) }), w.fn.extend({\n                css: function (t, e) {\n                    return M(this, function (t, e, n) {\n                        var r, i, o = {},\n                            a = 0;\n                        if (w.isArray(e)) { for (r = Rt(t), i = e.length; a < i; a++) o[e[a]] = w.css(t, e[a], !1, r); return o }\n                        return void 0 !== n ? w.style(t, e, n) : w.css(t, e)\n                    }, t, e, 1 < arguments.length)\n                }\n            }), w.fn.delay = function (r, t) {\n                return r = w.fx && w.fx.speeds[r] || r, t = t || \"fx\", this.queue(t, function (t, e) {\n                    var n = h.setTimeout(t, r);\n                    e.stop = function () { h.clearTimeout(n) }\n                })\n            }, $t = m.createElement(\"input\"), Ut = m.createElement(\"select\").appendChild(m.createElement(\"option\")), $t.type = \"checkbox\", y.checkOn = \"\" !== $t.value, y.optSelected = Ut.selected, ($t = m.createElement(\"input\")).value = \"t\", $t.type = \"radio\", y.radioValue = \"t\" === $t.value;\n            var ee, ne = w.expr.attrHandle;\n            w.fn.extend({ attr: function (t, e) { return M(this, w.attr, t, e, 1 < arguments.length) }, removeAttr: function (t) { return this.each(function () { w.removeAttr(this, t) }) } }), w.extend({\n                attr: function (t, e, n) { var r, i, o = t.nodeType; if (3 !== o && 8 !== o && 2 !== o) return void 0 === t.getAttribute ? w.prop(t, e, n) : (1 === o && w.isXMLDoc(t) || (i = w.attrHooks[e.toLowerCase()] || (w.expr.match.bool.test(e) ? ee : void 0)), void 0 !== n ? null === n ? void w.removeAttr(t, e) : i && \"set\" in i && void 0 !== (r = i.set(t, n, e)) ? r : (t.setAttribute(e, n + \"\"), n) : i && \"get\" in i && null !== (r = i.get(t, e)) ? r : null == (r = w.find.attr(t, e)) ? void 0 : r) },\n                attrHooks: { type: { set: function (t, e) { if (!y.radioValue && \"radio\" === e && w.nodeName(t, \"input\")) { var n = t.value; return t.setAttribute(\"type\", e), n && (t.value = n), e } } } },\n                removeAttr: function (t, e) {\n                    var n, r = 0,\n                        i = e && e.match(F);\n                    if (i && 1 === t.nodeType)\n                        for (; n = i[r++];) t.removeAttribute(n)\n                }\n            }), ee = { set: function (t, e, n) { return !1 === e ? w.removeAttr(t, n) : t.setAttribute(n, n), n } }, w.each(w.expr.match.bool.source.match(/\\w+/g), function (t, e) {\n                var a = ne[e] || w.find.attr;\n                ne[e] = function (t, e, n) { var r, i, o = e.toLowerCase(); return n || (i = ne[o], ne[o] = r, r = null != a(t, e, n) ? o : null, ne[o] = i), r }\n            });\n            var re = /^(?:input|select|textarea|button)$/i,\n                ie = /^(?:a|area)$/i;\n            w.fn.extend({ prop: function (t, e) { return M(this, w.prop, t, e, 1 < arguments.length) }, removeProp: function (t) { return this.each(function () { delete this[w.propFix[t] || t] }) } }), w.extend({ prop: function (t, e, n) { var r, i, o = t.nodeType; if (3 !== o && 8 !== o && 2 !== o) return 1 === o && w.isXMLDoc(t) || (e = w.propFix[e] || e, i = w.propHooks[e]), void 0 !== n ? i && \"set\" in i && void 0 !== (r = i.set(t, n, e)) ? r : t[e] = n : i && \"get\" in i && null !== (r = i.get(t, e)) ? r : t[e] }, propHooks: { tabIndex: { get: function (t) { var e = w.find.attr(t, \"tabindex\"); return e ? parseInt(e, 10) : re.test(t.nodeName) || ie.test(t.nodeName) && t.href ? 0 : -1 } } }, propFix: { for: \"htmlFor\", class: \"className\" } }), y.optSelected || (w.propHooks.selected = {\n                get: function (t) { var e = t.parentNode; return e && e.parentNode && e.parentNode.selectedIndex, null },\n                set: function (t) {\n                    var e = t.parentNode;\n                    e && (e.selectedIndex, e.parentNode && e.parentNode.selectedIndex)\n                }\n            }), w.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () { w.propFix[this.toLowerCase()] = this });\n            var oe = /[\\t\\r\\n\\f]/g;\n            function ae(t) { return t.getAttribute && t.getAttribute(\"class\") || \"\" }\n            w.fn.extend({\n                addClass: function (e) {\n                    var t, n, r, i, o, a, s, c = 0;\n                    if (w.isFunction(e)) return this.each(function (t) { w(this).addClass(e.call(this, t, ae(this))) });\n                    if (\"string\" == typeof e && e)\n                        for (t = e.match(F) || []; n = this[c++];)\n                            if (i = ae(n), r = 1 === n.nodeType && (\" \" + i + \" \").replace(oe, \" \")) {\n                                for (a = 0; o = t[a++];) r.indexOf(\" \" + o + \" \") < 0 && (r += o + \" \");\n                                i !== (s = w.trim(r)) && n.setAttribute(\"class\", s)\n                            }\n                    return this\n                },\n                removeClass: function (e) {\n                    var t, n, r, i, o, a, s, c = 0;\n                    if (w.isFunction(e)) return this.each(function (t) { w(this).removeClass(e.call(this, t, ae(this))) });\n                    if (!arguments.length) return this.attr(\"class\", \"\");\n                    if (\"string\" == typeof e && e)\n                        for (t = e.match(F) || []; n = this[c++];)\n                            if (i = ae(n), r = 1 === n.nodeType && (\" \" + i + \" \").replace(oe, \" \")) {\n                                for (a = 0; o = t[a++];)\n                                    for (; - 1 < r.indexOf(\" \" + o + \" \");) r = r.replace(\" \" + o + \" \", \" \");\n                                i !== (s = w.trim(r)) && n.setAttribute(\"class\", s)\n                            }\n                    return this\n                },\n                toggleClass: function (i, e) {\n                    var o = typeof i;\n                    return \"boolean\" == typeof e && \"string\" == o ? e ? this.addClass(i) : this.removeClass(i) : w.isFunction(i) ? this.each(function (t) { w(this).toggleClass(i.call(this, t, ae(this), e), e) }) : this.each(function () {\n                        var t, e, n, r;\n                        if (\"string\" == o)\n                            for (e = 0, n = w(this), r = i.match(F) || []; t = r[e++];) n.hasClass(t) ? n.removeClass(t) : n.addClass(t);\n                        else void 0 !== i && \"boolean\" != o || ((t = ae(this)) && U.set(this, \"__className__\", t), this.setAttribute && this.setAttribute(\"class\", t || !1 === i ? \"\" : U.get(this, \"__className__\") || \"\"))\n                    })\n                },\n                hasClass: function (t) {\n                    var e, n, r = 0;\n                    for (e = \" \" + t + \" \"; n = this[r++];)\n                        if (1 === n.nodeType && -1 < (\" \" + ae(n) + \" \").replace(oe, \" \").indexOf(e)) return !0;\n                    return !1\n                }\n            });\n            var se = /\\r/g,\n                ce = /[\\x20\\t\\r\\n\\f]+/g;\n            w.fn.extend({\n                val: function (n) {\n                    var r, t, i, e = this[0];\n                    return arguments.length ? (i = w.isFunction(n), this.each(function (t) {\n                        var e;\n                        1 === this.nodeType && (null == (e = i ? n.call(this, t, w(this).val()) : n) ? e = \"\" : \"number\" == typeof e ? e += \"\" : w.isArray(e) && (e = w.map(e, function (t) { return null == t ? \"\" : t + \"\" })), (r = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && \"set\" in r && void 0 !== r.set(this, e, \"value\") || (this.value = e))\n                    })) : e ? (r = w.valHooks[e.type] || w.valHooks[e.nodeName.toLowerCase()]) && \"get\" in r && void 0 !== (t = r.get(e, \"value\")) ? t : \"string\" == typeof (t = e.value) ? t.replace(se, \"\") : null == t ? \"\" : t : void 0\n                }\n            }), w.extend({\n                valHooks: {\n                    option: { get: function (t) { var e = w.find.attr(t, \"value\"); return null != e ? e : w.trim(w.text(t)).replace(ce, \" \") } },\n                    select: {\n                        get: function (t) {\n                            for (var e, n, r = t.options, i = t.selectedIndex, o = \"select-one\" === t.type, a = o ? null : [], s = o ? i + 1 : r.length, c = i < 0 ? s : o ? i : 0; c < s; c++)\n                                if (((n = r[c]).selected || c === i) && !n.disabled && (!n.parentNode.disabled || !w.nodeName(n.parentNode, \"optgroup\"))) {\n                                    if (e = w(n).val(), o) return e;\n                                    a.push(e)\n                                }\n                            return a\n                        },\n                        set: function (t, e) { for (var n, r, i = t.options, o = w.makeArray(e), a = i.length; a--;)((r = i[a]).selected = -1 < w.inArray(w.valHooks.option.get(r), o)) && (n = !0); return n || (t.selectedIndex = -1), o }\n                    }\n                }\n            }), w.each([\"radio\", \"checkbox\"], function () { w.valHooks[this] = { set: function (t, e) { if (w.isArray(e)) return t.checked = -1 < w.inArray(w(t).val(), e) } }, y.checkOn || (w.valHooks[this].get = function (t) { return null === t.getAttribute(\"value\") ? \"on\" : t.value }) });\n            var le = /^(?:focusinfocus|focusoutblur)$/;\n            w.extend(w.event, {\n                trigger: function (t, e, n, r) {\n                    var i, o, a, s, c, l, u, d = [n || m],\n                        f = v.call(t, \"type\") ? t.type : t,\n                        p = v.call(t, \"namespace\") ? t.namespace.split(\".\") : [];\n                    if (o = a = n = n || m, 3 !== n.nodeType && 8 !== n.nodeType && !le.test(f + w.event.triggered) && (-1 < f.indexOf(\".\") && (f = (p = f.split(\".\")).shift(), p.sort()), c = f.indexOf(\":\") < 0 && \"on\" + f, (t = t[w.expando] ? t : new w.Event(f, \"object\" == typeof t && t)).isTrigger = r ? 2 : 3, t.namespace = p.join(\".\"), t.rnamespace = t.namespace ? new RegExp(\"(^|\\\\.)\" + p.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null, t.result = void 0, t.target || (t.target = n), e = null == e ? [t] : w.makeArray(e, [t]), u = w.event.special[f] || {}, r || !u.trigger || !1 !== u.trigger.apply(n, e))) {\n                        if (!r && !u.noBubble && !w.isWindow(n)) {\n                            for (s = u.delegateType || f, le.test(s + f) || (o = o.parentNode); o; o = o.parentNode) d.push(o), a = o;\n                            a === (n.ownerDocument || m) && d.push(a.defaultView || a.parentWindow || h)\n                        }\n                        for (i = 0;\n                            (o = d[i++]) && !t.isPropagationStopped();) t.type = 1 < i ? s : u.bindType || f, (l = (U.get(o, \"events\") || {})[t.type] && U.get(o, \"handle\")) && l.apply(o, e), (l = c && o[c]) && l.apply && B(o) && (t.result = l.apply(o, e), !1 === t.result && t.preventDefault());\n                        return t.type = f, r || t.isDefaultPrevented() || u._default && !1 !== u._default.apply(d.pop(), e) || !B(n) || c && w.isFunction(n[f]) && !w.isWindow(n) && ((a = n[c]) && (n[c] = null), n[w.event.triggered = f](), w.event.triggered = void 0, a && (n[c] = a)), t.result\n                    }\n                },\n                simulate: function (t, e, n) {\n                    var r = w.extend(new w.Event, n, { type: t, isSimulated: !0 });\n                    w.event.trigger(r, null, e)\n                }\n            }), w.fn.extend({ trigger: function (t, e) { return this.each(function () { w.event.trigger(t, e, this) }) }, triggerHandler: function (t, e) { var n = this[0]; if (n) return w.event.trigger(t, e, n, !0) } }), w.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"), function (t, n) { w.fn[n] = function (t, e) { return 0 < arguments.length ? this.on(n, null, t, e) : this.trigger(n) } }), w.fn.extend({ hover: function (t, e) { return this.mouseenter(t).mouseleave(e || t) } }), y.focusin = \"onfocusin\" in h, y.focusin || w.each({ focus: \"focusin\", blur: \"focusout\" }, function (n, r) {\n                function i(t) { w.event.simulate(r, t.target, w.event.fix(t)) }\n                w.event.special[r] = {\n                    setup: function () {\n                        var t = this.ownerDocument || this,\n                            e = U.access(t, r);\n                        e || t.addEventListener(n, i, !0), U.access(t, r, (e || 0) + 1)\n                    },\n                    teardown: function () {\n                        var t = this.ownerDocument || this,\n                            e = U.access(t, r) - 1;\n                        e ? U.access(t, r, e) : (t.removeEventListener(n, i, !0), U.remove(t, r))\n                    }\n                }\n            });\n            var ue, de = /\\[\\]$/,\n                fe = /\\r?\\n/g,\n                pe = /^(?:submit|button|image|reset|file)$/i,\n                he = /^(?:input|select|textarea|keygen)/i;\n            function me(n, t, r, i) {\n                var e;\n                if (w.isArray(t)) w.each(t, function (t, e) { r || de.test(n) ? i(n, e) : me(n + \"[\" + (\"object\" == typeof e && null != e ? t : \"\") + \"]\", e, r, i) });\n                else if (r || \"object\" !== w.type(t)) i(n, t);\n                else\n                    for (e in t) me(n + \"[\" + e + \"]\", t[e], r, i)\n            }\n            function ge(t) { return w.isWindow(t) ? t : 9 === t.nodeType && t.defaultView }\n            w.param = function (t, e) {\n                function n(t, e) {\n                    var n = w.isFunction(e) ? e() : e;\n                    i[i.length] = encodeURIComponent(t) + \"=\" + encodeURIComponent(null == n ? \"\" : n)\n                }\n                var r, i = [];\n                if (w.isArray(t) || t.jquery && !w.isPlainObject(t)) w.each(t, function () { n(this.name, this.value) });\n                else\n                    for (r in t) me(r, t[r], e, n);\n                return i.join(\"&\")\n            }, w.fn.extend({ serialize: function () { return w.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { var t = w.prop(this, \"elements\"); return t ? w.makeArray(t) : this }).filter(function () { var t = this.type; return this.name && !w(this).is(\":disabled\") && he.test(this.nodeName) && !pe.test(t) && (this.checked || !rt.test(t)) }).map(function (t, e) { var n = w(this).val(); return null == n ? null : w.isArray(n) ? w.map(n, function (t) { return { name: e.name, value: t.replace(fe, \"\\r\\n\") } }) : { name: e.name, value: n.replace(fe, \"\\r\\n\") } }).get() } }), w.fn.extend({\n                wrapAll: function (t) { var e; return this[0] && (w.isFunction(t) && (t = t.call(this[0])), e = w(t, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && e.insertBefore(this[0]), e.map(function () { for (var t = this; t.firstElementChild;) t = t.firstElementChild; return t }).append(this)), this },\n                wrapInner: function (n) {\n                    return w.isFunction(n) ? this.each(function (t) { w(this).wrapInner(n.call(this, t)) }) : this.each(function () {\n                        var t = w(this),\n                            e = t.contents();\n                        e.length ? e.wrapAll(n) : t.append(n)\n                    })\n                },\n                wrap: function (e) { var n = w.isFunction(e); return this.each(function (t) { w(this).wrapAll(n ? e.call(this, t) : e) }) },\n                unwrap: function (t) { return this.parent(t).not(\"body\").each(function () { w(this).replaceWith(this.childNodes) }), this }\n            }), w.expr.pseudos.hidden = function (t) { return !w.expr.pseudos.visible(t) }, w.expr.pseudos.visible = function (t) { return !!(t.offsetWidth || t.offsetHeight || t.getClientRects().length) }, y.createHTMLDocument = ((ue = m.implementation.createHTMLDocument(\"\").body).innerHTML = \"<form></form><form></form>\", 2 === ue.childNodes.length), w.parseHTML = function (t, e, n) { return \"string\" != typeof t ? [] : (\"boolean\" == typeof e && (n = e, e = !1), e || (y.createHTMLDocument ? ((r = (e = m.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href = m.location.href, e.head.appendChild(r)) : e = m), o = !n && [], (i = S.exec(t)) ? [e.createElement(i[1])] : (i = ft([t], e, o), o && o.length && w(o).remove(), w.merge([], i.childNodes))); var r, i, o }, w.offset = {\n                setOffset: function (t, e, n) {\n                    var r, i, o, a, s, c, l = w.css(t, \"position\"),\n                        u = w(t),\n                        d = {};\n                    \"static\" === l && (t.style.position = \"relative\"), s = u.offset(), o = w.css(t, \"top\"), c = w.css(t, \"left\"), i = (\"absolute\" === l || \"fixed\" === l) && -1 < (o + c).indexOf(\"auto\") ? (a = (r = u.position()).top, r.left) : (a = parseFloat(o) || 0, parseFloat(c) || 0), w.isFunction(e) && (e = e.call(t, n, w.extend({}, s))), null != e.top && (d.top = e.top - s.top + a), null != e.left && (d.left = e.left - s.left + i), \"using\" in e ? e.using.call(t, d) : u.css(d)\n                }\n            }, w.fn.extend({\n                offset: function (e) { if (arguments.length) return void 0 === e ? this : this.each(function (t) { w.offset.setOffset(this, e, t) }); var t, n, r, i, o = this[0]; return o ? o.getClientRects().length ? (r = o.getBoundingClientRect()).width || r.height ? (n = ge(i = o.ownerDocument), t = i.documentElement, { top: r.top + n.pageYOffset - t.clientTop, left: r.left + n.pageXOffset - t.clientLeft }) : r : { top: 0, left: 0 } : void 0 },\n                position: function () {\n                    if (this[0]) {\n                        var t, e, n = this[0],\n                            r = { top: 0, left: 0 };\n                        return \"fixed\" === w.css(n, \"position\") ? e = n.getBoundingClientRect() : (t = this.offsetParent(), e = this.offset(), w.nodeName(t[0], \"html\") || (r = t.offset()), r = { top: r.top + w.css(t[0], \"borderTopWidth\", !0), left: r.left + w.css(t[0], \"borderLeftWidth\", !0) }), { top: e.top - r.top - w.css(n, \"marginTop\", !0), left: e.left - r.left - w.css(n, \"marginLeft\", !0) }\n                    }\n                },\n                offsetParent: function () { return this.map(function () { for (var t = this.offsetParent; t && \"static\" === w.css(t, \"position\");) t = t.offsetParent; return t || pt }) }\n            }), w.each({ scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function (e, i) {\n                var o = \"pageYOffset\" === i;\n                w.fn[e] = function (t) {\n                    return M(this, function (t, e, n) {\n                        var r = ge(t);\n                        if (void 0 === n) return r ? r[i] : t[e];\n                        r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : t[e] = n\n                    }, e, t, arguments.length)\n                }\n            }), w.each([\"top\", \"left\"], function (t, n) { w.cssHooks[n] = Mt(y.pixelPosition, function (t, e) { if (e) return e = Bt(t, n), It.test(e) ? w(t).position()[n] + \"px\" : e }) }), w.each({ Height: \"height\", Width: \"width\" }, function (a, s) {\n                w.each({ padding: \"inner\" + a, content: s, \"\": \"outer\" + a }, function (r, o) {\n                    w.fn[o] = function (t, e) {\n                        var n = arguments.length && (r || \"boolean\" != typeof t),\n                            i = r || (!0 === t || !0 === e ? \"margin\" : \"border\");\n                        return M(this, function (t, e, n) { var r; return w.isWindow(t) ? 0 === o.indexOf(\"outer\") ? t[\"inner\" + a] : t.document.documentElement[\"client\" + a] : 9 === t.nodeType ? (r = t.documentElement, Math.max(t.body[\"scroll\" + a], r[\"scroll\" + a], t.body[\"offset\" + a], r[\"offset\" + a], r[\"client\" + a])) : void 0 === n ? w.css(t, e, i) : w.style(t, e, n, i) }, s, n ? t : void 0, n)\n                    }\n                })\n            }), \"function\" == typeof define && define.amd && define(\"jquery\", [], function () { return w });\n            var ve = h.jQuery,\n                ye = h.$;\n            return w.noConflict = function (t) { return h.$ === w && (h.$ = ye), t && h.jQuery === w && (h.jQuery = ve), w }, t || (h.jQuery = h.$ = w), w\n        })\n    }, {}],\n    2: [function (M, t, e) {\n        \"use strict\";\n        ! function () {\n            if (-1 === document.domain.indexOf(\".\")) return location.href = \"#\";\n            if (window._hasCtrmInjected) return document.querySelector(\".ctrm-title\").click();\n            window._hasCtrmInjected = !0;\n            var i = void 0,\n                n = void 0,\n                r = void 0,\n                e = void 0,\n                o = !0,\n                a = void 0,\n                s = void 0,\n                c = void 0,\n                l = [],\n                u = !1,\n                d = void 0,\n                t = \"wss://topurl.cn:9001\",\n                f = (i = window.jQuery ? window.jQuery : M(\"jQuery-slim\"))(M(\"./dom.js\"));\n            if (!window.jQuery) window.jQuery = i;\n            if (!window.$) window.$ = i;\n            i(document.body).append(f), loadDeferredScripts(f), _();\n            var p, h, m = i(\"#ctrm_\"),\n                g = m.find(\".ctrm-title\"),\n                v = m.find(\".ctrm-title-url\"),\n                y = (m.find(\".ctrm-panel\"), m.find(\".ctrm-bottom\")),\n                b = m.find(\".ctrm-dialog\"),\n                w = m.find(\".ctrm-textarea textarea\"),\n                x = m.find(\".ctrm-emit\"),\n                C = m.find(\".ctrm-online-wrap\"),\n                k = m.find(\".ctrm-domain-wrap\"),\n                T = m.find(\".ctrm-domain-show\"),\n                E = m.find(\".ctrm-title-countwrap\"),\n                N = m.find(\".ctrm-title-count\"),\n                S = m.find(\".ctrm-title-close\"),\n                D = m.find(\".ctrm-title-reconn\"),\n                L = \"Gtuundefined\";\n            function j() { setTimeout(function () { m.hasClass(\"ctrm-close\") || document.activeElement !== w.get(0) && S.click() }, 1) }\n            function escapeHtml(t) {\n                return null == t ? \"\" : String(t)\n                    .replace(/&/g, \"&amp;\")\n                    .replace(/</g, \"&lt;\")\n                    .replace(/>/g, \"&gt;\")\n                    .replace(/\"/g, \"&quot;\")\n                    .replace(/'/g, \"&#39;\");\n            }\n            function ctrmToast(msg, type) {\n                var el = document.createElement(\"div\");\n                el.className = \"ctrm-toast\";\n                el.setAttribute(\"role\", \"status\");\n                el.textContent = msg;\n                el.style.cssText = \"position:fixed;left:50%;bottom:88px;transform:translateX(-50%);\" +\n                    \"max-width:78vw;padding:8px 16px;border-radius:16px;font-size:14px;line-height:1.4;\" +\n                    \"color:#fff;z-index:100000;pointer-events:none;white-space:pre-wrap;text-align:center;\" +\n                    \"box-shadow:0 4px 18px rgba(47,36,41,.16);background:\" +\n                    (\"error\" === type ? \"#b8362b\" : \"success\" === type ? \"#2f7a4f\" : \"var(--cx-brand-ink)\");\n                document.body.appendChild(el);\n                setTimeout(function () { el.parentNode && el.parentNode.removeChild(el) }, 2600)\n            }\n            window.__ctrmToast = ctrmToast;\n            function injectStyleOnce(id, css) {\n                if (document.getElementById(id)) return;\n                var el = document.createElement(\"style\");\n                el.id = id;\n                el.textContent = css;\n                document.head.appendChild(el)\n            }\n            var ctrmUidSeq = 0;\n            function ctrmUid(prefix) {\n                return (prefix || \"ctrm\") + \"-\" + Date.now().toString(36) + \"-\" + (++ctrmUidSeq)\n            }\n            var CTRM_VOICE_CSS = `\n.ctrm-voice-bubble {\n  display: flex;\n  align-items: center;\n  background: #fdf8f9;\n  border-radius: 18px;\n  box-shadow: inset 0 0 0 1px rgba(47,36,41,.10);\n  padding: 6px 16px 6px 10px;\n  min-height: 38px;\n  margin: 6px 0;\n  font-size: 15px;\n  position: relative;\n  gap: 10px;\n  cursor: pointer;\n  transition: background 0.2s;\n}\n.ctrm-voice-bubble.playing { background: var(--cx-tint); }\n.ctrm-voice-play {\n  background: var(--cx-brand);\n  border: none;\n  border-radius: 50%;\n  width: 32px;\n  height: 32px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  transition: background 0.2s;\n  padding: 0;\n}\n.ctrm-voice-bubble.playing .ctrm-voice-play { background: var(--cx-brand-deep); }\n.ctrm-voice-play .icon-play { display: block; }\n.ctrm-voice-play .icon-pause { display: none; }\n.ctrm-voice-bubble.playing .icon-play { display: none; }\n.ctrm-voice-bubble.playing .icon-pause { display: block; }\n.ctrm-voice-progress {\n  flex: 1;\n  height: 4px;\n  background: rgba(47,36,41,.12);\n  border-radius: 2px;\n  margin: 0 8px;\n  position: relative;\n  min-width: 60px;\n  max-width: 120px;\n}\n.ctrm-voice-bar {\n  background: var(--cx-brand);\n  height: 100%;\n  border-radius: 2px;\n  width: 0;\n  transition: width 0.2s;\n}\n.ctrm-voice-time {\n  color: var(--cx-ink-3);\n  font-size: 13px;\n  min-width: 36px;\n  text-align: right;\n}\n`;\n            var CTRM_PLAYING_CSS = `\n@keyframes blink {\n    0% { opacity: 1; }\n    50% { opacity: 0.5; }\n    100% { opacity: 1; }\n}\nimg.playing {\n    animation: blink 0.5s infinite;\n}\n`;\n            var CTRM_FANCYBOX_OPTS = {\n                caption: function (instance, item) { return i(this).find(\"img\").attr(\"alt\") },\n                loop: !0,\n                animationEffect: \"fade\",\n                buttons: [\"zoom\", \"share\", \"slideShow\", \"fullScreen\", \"close\"],\n                wheel: { scrollZoom: !0 },\n                thumbs: { autoStart: !0, axis: \"y\" },\n                fullScreen: { autoStart: !1 },\n                slideShow: { playOnStart: !0 },\n                protect: !0,\n                keyboard: { Escape: \"close\", ArrowLeft: \"prev\", ArrowRight: \"next\" },\n                touch: { vertical: !0, momentum: !0 },\n                lang: \"zh\",\n                i18n: {\n                    zh: {\n                        CLOSE: \"关闭\", NEXT: \"下一张\", PREV: \"上一张\",\n                        ERROR: \"无法加载内容。请稍后再试。\",\n                        PLAY_START: \"开始幻灯片播放\", PLAY_STOP: \"停止幻灯片播放\",\n                        FULL_SCREEN: \"全屏\", THUMBS: \"缩略图\",\n                        DOWNLOAD: \"下载\", SHARE: \"分享\", ZOOM: \"缩放\"\n                    }\n                }\n            };\n            function ctrmBindFancybox(scope) {\n                if (!i.fn || !i.fn.fancybox) return;\n                (scope ? scope.find('[data-fancybox=\"gallery\"]') : i('[data-fancybox=\"gallery\"]'))\n                    .fancybox(CTRM_FANCYBOX_OPTS)\n            }\n            function ctrmWhenFancyboxReady() {\n                var tries = 0,\n                    timer = setInterval(function () {\n                        if (i.fn && i.fn.fancybox) { clearInterval(timer), ctrmBindFancybox(null) }\n                        else if (60 < ++tries) { clearInterval(timer), console.warn(\"[ctrm] fancybox 未就绪，图片灯箱不可用\") }\n                    }, 200)\n            }\n            function ctrmVoiceLabel(sec) {\n                var mm = Math.floor(sec / 60),\n                    ss = Math.floor(sec % 60);\n                return (mm < 10 ? \"0\" : \"\") + mm + \":\" + (ss < 10 ? \"0\" : \"\") + ss\n            }\n            function ctrmPlayVoice(bubble, audio) {\n                var p = audio.play();\n                if (!p || !p.then) return bubble.classList.add(\"playing\"), void (window._voicePlaying = audio);\n                p.then(function () {\n                    bubble.classList.add(\"playing\"), window._voicePlaying = audio\n                }).catch(function (err) {\n                    bubble.classList.remove(\"playing\"),\n                        ctrmToast(\"无法播放语音：\" + (err && err.message || err), \"error\")\n                })\n            }\n            function ctrmToggleVoice(bubble, audio) {\n                var bar = bubble.querySelector(\".ctrm-voice-bar\"),\n                    label = bubble.querySelector(\".ctrm-voice-time\");\n                audio.volume = 1, audio.muted = !1;\n                if (window._voicePlaying && window._voicePlaying !== audio) {\n                    var prev = window._voicePlaying.closest(\".ctrm-voice-bubble\");\n                    window._voicePlaying.pause(), prev && prev.classList.remove(\"playing\"), window._voicePlaying = null\n                }\n                if (!audio.paused) return audio.pause(), bubble.classList.remove(\"playing\"), void (window._voicePlaying = null);\n                audio.ontimeupdate = function () {\n                    audio.duration && isFinite(audio.duration) && (\n                        bar && (bar.style.width = audio.currentTime / audio.duration * 100 + \"%\"),\n                        label && (label.textContent = ctrmVoiceLabel(Math.max(0, audio.duration - audio.currentTime)))\n                    )\n                };\n                audio.onended = function () {\n                    bubble.classList.remove(\"playing\"), bar && (bar.style.width = \"100%\"), window._voicePlaying = null\n                };\n                audio.onloadedmetadata = function () {\n                    isFinite(audio.duration) && label && (label.textContent = ctrmVoiceLabel(audio.duration))\n                };\n                if (audio.readyState < 2) return audio.load(), void (audio.oncanplay = function () {\n                    audio.oncanplay = null, ctrmPlayVoice(bubble, audio)\n                });\n                ctrmPlayVoice(bubble, audio)\n            }\n            function ctrmBindVoicePlayback() {\n                document.addEventListener(\"click\", function (ev) {\n                    var playBtn = ev.target && ev.target.closest && ev.target.closest(\".ctrm-voice-play\");\n                    if (!playBtn) return;\n                    var bubble = playBtn.closest(\".ctrm-voice-bubble\");\n                    if (!bubble) return;\n                    ev.preventDefault(), ev.stopPropagation();\n                    var audio = bubble.querySelector(\"audio\");\n                    audio ? ctrmToggleVoice(bubble, audio) : console.warn(\"[ctrm] 语音气泡里没有 audio 元素\")\n                })\n            }\n            function ctrmInitOnce() {\n                injectStyleOnce(\"ctrm-voice-bubble-style\", CTRM_VOICE_CSS);\n                injectStyleOnce(\"ctrm-playing-anim-style\", CTRM_PLAYING_CSS);\n                ctrmBindVoicePlayback();\n                b.on(\"click\", \".ctrm-dialog-sender\", function () {\n                    var item = this.parentNode;\n                    if (item && -1 < item.className.indexOf(\"ctrm-me\")) return;\n                    w.val(\"@\" + this.innerText + \" \"), w.get(0).focus()\n                });\n                ctrmWhenFancyboxReady()\n            }\n            function loadDeferredScripts(nodes) {\n                nodes.filter(\"script[src]\").each(function () {\n                    var old = this,\n                        fresh = document.createElement(\"script\");\n                    for (var idx = 0; idx < old.attributes.length; idx++) {\n                        fresh.setAttribute(old.attributes[idx].name, old.attributes[idx].value);\n                    }\n                    fresh.onerror = function () { console.warn(\"[ctrm] 外部脚本加载失败: \" + fresh.src) };\n                    old.parentNode && old.parentNode.replaceChild(fresh, old);\n                })\n            }\n            var reconnectTimer = null,\n                reconnectDelay = 2e3,\n                heartbeatTimer = null,\n                offlineNoticed = !1,\n                stalledTicks = 0,\n                unloading = !1;\n            var lastRecvAt = 0;\n            function ctrmSendUpdate() {\n                try {\n                    n && 1 === n.readyState &&\n                        n.send(JSON.stringify({ type: \"update\", data: { domainFrom: location.hostname }, char: L }))\n                } catch (err) { }\n            }\n            function ctrmSendHello() {\n                2e4 < Date.now() - lastRecvAt && ctrmSendUpdate()\n            }\n            function ctrmScheduleReconnect() {\n                if (unloading || reconnectTimer) return;\n                var wait = Math.min(reconnectDelay, 3e4);\n                reconnectDelay = Math.min(2 * reconnectDelay, 3e4),\n                    reconnectTimer = setTimeout(function () { reconnectTimer = null, _() }, wait + Math.floor(4e3 * Math.random()))\n            }\n            function ctrmReconnectNow(reason) {\n                if (unloading) return;\n                console.warn(\"[ctrm] 立即重连：\" + reason),\n                    reconnectDelay = 2e3, stalledTicks = 0,\n                    clearTimeout(reconnectTimer), reconnectTimer = null, _()\n            }\n            function _() {\n                clearTimeout(reconnectTimer), reconnectTimer = null;\n                if (n) try { n.onopen = n.onmessage = n.onclose = n.onerror = null, n.close() } catch (err) { }\n                var sock = n = new WebSocket(t);\n                sock.onopen = function () {\n                    if (sock !== n) return;\n                    reconnectDelay = 2e3, offlineNoticed = !1;\n                    lastRecvAt = Date.now(), ctrmSendUpdate();\n                    clearInterval(heartbeatTimer), heartbeatTimer = setInterval(ctrmSendHello, 25e3);\n                    clearInterval(a), a = setInterval(q, 15e3)\n                };\n                sock.onerror = function () { sock === n && console.warn(\"[ctrm] WebSocket 出错，等 onclose 后重连\") };\n                sock.onclose = function () { sock === n && (z(), ctrmScheduleReconnect()) };\n                sock.onmessage = function (ev) {\n                    sock === n && function (t) {\n                        lastRecvAt = Date.now();\n                        var e;\n                        try { e = JSON.parse(t.data) } catch (err) { return void console.warn(\"[ctrm] 收到无法解析的帧\", t.data) }\n                        var n = e.type,\n                            r = e.data;\n                        switch (n) {\n                                case \"identity\":\n                                    if (r.id === s && !ctrmPendingInHistory(r.history)) break;\n                                    s = r.id, c = r.name,\n                                        ctrmFlushPending(r.history),\n                                        function (t) {\n                                            if (!t || 0 === t.length) return;\n                                            b.find(\".ctrm-dialog-item\").remove();\n                                            t.forEach(function (t) { H(t, !0) })\n                                        }(r.history),\n                                        function t(e) {\n                                            e ? l = e : e = l || [];\n                                            k.empty();\n                                            if (!e || 0 === e.length) return;\n                                            e.sort(function (t, e) { return e.times - t.times });\n                                            u || (e = e.slice(0, 3));\n                                            e.forEach(function (t, e) {\n                                                var r = escapeHtml(t.domainFrom),\n                                                    n = i('<a class=\"ctrm-domain-item\" target=\"_blank\" rel=\"noopener\" href=\"http://' + r + '?source=' + escapeHtml(location.hostname) + '\">' + r + \"</a>\");\n                                                k.append(n)\n                                            });\n                                            if (!u && 3 < l.length) {\n                                                var n = i('<a class=\"ctrm-domain-item\" href=\"javascript:void(0);\">更多...</a>');\n                                                n.click(function () { u = !0, t() }), k.append(n)\n                                            }\n                                        }(r.billboard);\n                                    break;\n                                case \"memberList\":\n                                    O(r);\n                                    break;\n                                case \"chat\":\n                                    r && String(r.id) === String(s) && ctrmResolvePending(r.msg);\n                                    H(r);\n                                    break;\n                                case \"ack\":\n                                    ctrmConfirmOldestPending(), w.val(\"\")\n                            }\n                        }(ev)\n                };\n            }\n            function q() {\n                if (!n) return;\n                if (1 !== n.readyState) return z(), void ctrmScheduleReconnect();\n                if (0 < n.bufferedAmount) {\n                    if (10 <= ++stalledTicks) return stalledTicks = 0, z(), void ctrmReconnectNow(\"发送缓冲 150s 不清零，连接已半开\")\n                } else stalledTicks = 0\n            }\n            var onlineSig = null,\n                onlineBound = !1;\n            function O(t) {\n                F(d = t);\n                var sig = d.length + \"|\",\n                    k = 0;\n                for (; k < d.length; k++) sig += d[k].name + \"\\u0001\" + d[k].color + (d[k].isSelf ? \"*\" : \"\") + \"\\u0002\";\n                if (sig !== onlineSig) {\n                    onlineSig = sig;\n                    var html = \"\";\n                    for (k = 0; k < d.length; k++)\n                        html += '<div class=\"ctrm-online-item\" style=\"background-color: ' + d[k].color +\n                            (d[k].isSelf ? ';font-weight:bold' : '') + '\">' + escapeHtml(d[k].name) + \"</div>\";\n                    C.html(html), N.text(d.length)\n                }\n                if (!onlineBound) {\n                    onlineBound = !0;\n                    C.on(\"click\", \".ctrm-online-item\", function () { w.val(\"@\" + this.innerText + \" \"), w.get(0).focus() })\n                }\n                E.show()\n            }\n            function F(t) {\n                function e(t) { var e = +t.toString().slice(-4, -1); return \"rgba(\" + 11 * e % 256 + \", \" + 7 * e % 256 + \", \" + 5 * e % 256 + \", 0.3)\" }\n                t.id ? (t.color = e(t.id), t.isSelf = t.id === s) : t.forEach(function (t) { t.color = e(t.id), t.isSelf = t.id === s })\n            }\n            function P(t, e) {\n                var n = new Date(t),\n                    r = void 0;\n                return (r = \"hours\" === e ? \"\" + n.getHours() : \"\" + n.getMinutes()) === r[0] && (r = \"0\" + r), r\n            }\n            var CTRM_MSG_KEEP = 300,\n                CTRM_MSG_TRIM_AT = 350,\n                CTRM_MSG_HARD_CAP = 600;\n            function ctrmDetachVoices(scope) {\n                var srcs = [];\n                scope.find(\"audio\").each(function () {\n                    if (window._voicePlaying === this) {\n                        try { this.pause() } catch (err) { }\n                        window._voicePlaying = null\n                    }\n                    var src = this.getAttribute(\"src\");\n                    src && 0 === src.indexOf(\"blob:\") && srcs.push(src)\n                });\n                return srcs\n            }\n            function ctrmReleaseVoiceBlobs(srcs) {\n                var map = window._myVoiceBlobs;\n                if (!map || !srcs.length) return;\n                srcs.forEach(function (src) {\n                    if (b.find('audio[src=\"' + src + '\"]').length) return;\n                    Object.keys(map).forEach(function (k) { map[k] === src && delete map[k] });\n                    try { URL.revokeObjectURL(src) } catch (err) { }\n                })\n            }\n            function ctrmTrimHistory() {\n                var el = b && b[0];\n                if (!el || el.children.length <= CTRM_MSG_TRIM_AT) return;\n                var items = b.children(\".ctrm-dialog-item\"),\n                    drop = items.length - CTRM_MSG_KEEP;\n                if (0 >= drop) return;\n                if (!o && items.length <= CTRM_MSG_HARD_CAP) return;\n                var dropped = items.slice(0, drop),\n                    scrollBefore = el.scrollTop,\n                    heightBefore = el.scrollHeight,\n                    blobs = ctrmDetachVoices(dropped);\n                dropped.remove();\n                ctrmReleaseVoiceBlobs(blobs);\n                o || (el.scrollTop = Math.max(0, scrollBefore - (heightBefore - el.scrollHeight)))\n            }\n            function H(t, quiet) {\n                F(t);\n                t.msg = escapeHtml(t.msg);\n                t.name = escapeHtml(t.name);\n                var selfName = escapeHtml(c);\n                t.msg = t.msg.replace(\n                    /\\[url=([^\\]]+)\\](?:\\[img\\][^\\]]*\\[\\/img\\]) ?\\[\\/url\\]|(https?:\\/\\/[^\\s<>\"]*\\.(?:png|jpg|jpeg|gif|webp|svg|bmp|apng|ico|tiff|avif|heic|tga|jxr))|(https?:\\/\\/[^\\s<>\"]*\\.tutu\\.to\\/[^\\s<>\"]*\\/[^\"\\s]+)/gi,\n                    '<a data-fancybox=\"gallery\" data-src=\"$1$2$3\"><img src=\"$1$2$3\" alt=\"$1$2$3\" style=\"max-width: 100%;\" referrerpolicy=\"no-referrer\"></a>'\n                );\n                t.msg = t.msg.replace(\"@\" + selfName, '<span class=\"ctrm-b\">@' + selfName + \"</span>\");\n                t.msg = t.msg.replace(/我们还是说点其他的吧！|我们换个话题吧|这真是个好问题，让我想一想再告诉你吧/, '我是笨蛋机器人小尬,不是聪明的ChatGpt也不是机智的豆包,你的提问太难了');\n                t.msg = t.msg.replace(/违禁词汇/, '不可以说脏话哦，小尬会截图告诉警察叔叔的。');\n                t.msg = t.msg.replace(/一个中国|台湾/, '<a data-fancybox=\"gallery\" data-src=\"https://pic1.zhimg.com/v2-e93e8719fc6cbdb6dd9cbdb501e68fd8_720w.jpg\"><img src=\"https://pic1.zhimg.com/v2-e93e8719fc6cbdb6dd9cbdb501e68fd8_720w.jpg\" alt=\"祖国统一势不可挡\" style=\"max-width: 100%;\" referrerpolicy=\"no-referrer\"></a>');\n                t.msg = t.msg.replace(\"龙哥威武\", '<img src=\"https://api.cenguigui.cn/api/jp/?msg=龙哥我爱你\" alt=\"Image\" style=\"max-width: 100%;\" referrerpolicy=\"no-referrer\">');\n                t.msg = t.msg.replace(\"摸鱼\", '<a data-fancybox=\"gallery\" data-src=\"https://api.vvhan.com/api/moyu\"><img src=\"https://api.vvhan.com/api/moyu\" alt=\"🐟\" style=\"max-width: 10rem;\" referrerpolicy=\"no-referrer\"></a>');\n                t.msg = t.msg.replace(/\\/?jp (.+)/, '<img src=\"https://api.cenguigui.cn/api/jp/?msg=$1\" alt=\"Image\" style=\"max-width: 100%;\" referrerpolicy=\"no-referrer\">');\n                t.msg = t.msg.replace(/(https?:\\/\\/[^\\s<>\"]*\\.(?:mp4|avi|m3u8))/gi, function (match, url, offset, whole) {\n                    if (/\\[语音消息 \\d{2}:\\d{2}\\]\\s*$/.test(whole.slice(0, offset))) return match;\n                    return '<iframe src=\"https://www.yemu.xyz/?url=' + url + '\" id=\"player\" width=\"100%\" scrolling=\"no\" allowfullscreen=\"true\" allowtransparency=\"true\" marginheight=\"0\" marginwidth=\"0\" frameborder=\"0\"></iframe><a href=\"https://www.yemu.xyz/?url=' + url + '\" target=\"_blank\">点我试试,</a>仅供学习使用<img src=\"https://npm.elemecdn.com/blobcat@1.0.0/ablobcatheart.png\" alt=\"Image\" style=\"max-width: 2rem;\" referrerpolicy=\"no-referrer\">'\n                });\n                t.msg = t.msg.replace(/(https:\\/\\/music\\.163\\.com\\/#\\/song\\?id=(\\d+))/g,\n                    '<iframe frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" width=\"calc(100% + 20px)\" style=\"width: calc(100% + 20px); margin-left: -10px\" height=\"86\" src=\"//music.163.com/outchain/player?type=2&id=$2&auto=0&height=66\"></iframe>')\n                    .replace(/(https:\\/\\/music\\.163\\.com\\/#\\/playlist\\?id=(\\d+))/g,\n                        '<div style=\"font-family: -apple-system, BlinkMacSystemFont, \\'Segoe UI\\', Roboto, \\'Helvetica Neue\\', Arial, sans-serif; background-color: #ffffff; border-radius: 14px; padding: 18px; margin: 15px 0; box-shadow: 0 1px 4px rgba(47,36,41,.05), inset 0 0 0 1px rgba(47,36,41,.10); display: flex; flex-direction: column; align-items: center;\">' +\n                        '<p style=\"margin: 0; color: var(--cx-ink-2); font-size: 14px; font-weight: 500; text-align: center;\"><b>该链接为歌曲列表，点击播放即可</b></p><p style=\"margin: 0; color: var(--cx-ink-3); font-size: 12px; font-weight: 500; text-align: center;\">这里不显示歌曲列表，只会按照歌曲顺序依次播放</p>' +\n                        '<iframe frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" width=\"calc(100% + 20px)\" style=\"width: calc(100% + 20px); margin-left: -10px; margin-top: 15px;\" height=\"86\" src=\"//music.163.com/outchain/player?type=0&id=$2&auto=0&height=66\"></iframe>' +\n                        '<a class=\"ctrm-163-btn\" href=\"$1\" target=\"_blank\" style=\"display: inline-block;padding: 6px 14px;margin-top: 15px;border: none;border-radius: 999px;background-color: var(--cx-brand);color: white;text-align: center;text-decoration: none;font-weight: bold;transition: background-color 0.3s;font-size: 14px;\">跳转到网易云音乐列表</a> <a><img style=\"position:absolute;bottom: -9px;right: 0px;width: 66%;pointer-events:none;z-index:999;\" src=\"https://cdn.h5ds.com/space/files/600972551685382144/20240307/689876818574024704.webp\" alt=\"Image\" referrerpolicy=\"no-referrer\"></a>' +\n                        '</div>');\n                var ctSmojiFallbackBig = /^(eveonecat-static|mochadandan|popo|shuitunlulu|xiaohuangtun|xiaokumao|xiaoxiongchong|yantuanzi|yier-bubu|yuexinmiao)$/;\n                var ctSmojiFallbackSmall = /^(daimaobatiao|douyin-current|douyin-limited|xiaohongshu)$/;\n                var ctSmojiSize = function (ctPkg, ctIcon) {\n                    try {\n                        var ctInst = window.OwO_demo;\n                        if (ctInst && ctInst.odata && ctInst.packages) {\n                            for (var ctI = 0; ctI < ctInst.packages.length; ctI++) {\n                                var ctPack = ctInst.odata[ctInst.packages[ctI]];\n                                if (ctPack && ctPack.type === 'smoji' && ctPack.name === ctPkg) {\n                                    var ctItems = ctPack.container || [];\n                                    for (var ctJ = 0; ctJ < ctItems.length; ctJ++) {\n                                        if (ctItems[ctJ] && ctItems[ctJ].icon === ctIcon) return ctItems[ctJ].big === true;\n                                    }\n                                    return ctItems.length ? ctItems[0].big === true : false;\n                                }\n                            }\n                        }\n                    } catch (ctErr) {}\n                    if (ctSmojiFallbackBig.test(ctPkg)) return true;\n                    if (ctSmojiFallbackSmall.test(ctPkg)) return false;\n                    return null;\n                };\n                t.msg = t.msg.replace(/【(.*?)】/g, function (match, p1) {\n                    var ctSep = p1.indexOf('/');\n                    var ctBig = ctSep > 0 ? ctSmojiSize(p1.slice(0, ctSep), p1.slice(ctSep + 1)) : null;\n                    if (ctBig !== null) {\n                        return `<a><img src=\"https://s3-cdn.zsh.moe/smoji/${p1}.webp\" alt=\"${p1}\" style=\"max-width: ${ctBig ? '8rem' : '3rem'};\"></a>`;\n                    } else if (p1.includes('blob') || p1.includes('comfy')) {\n                        return `<a><img src=\"https://npm.elemecdn.com/blobcat@1.0.0/${p1}.png\" alt=\"${p1}\" style=\"max-width: 3rem;\"></a>`;\n                    } else if (p1.includes('bb_')) {\n                        return `<a><img src=\"https://unpkg.com/@waline/emojis@1.1.0/bilibili/${p1}.png\" alt=\"${p1}\" style=\"max-width: 3rem;\"></a>`;\n                    } else if (p1.includes('tuzki')) {\n                        return `<a data-fancybox=\\\"gallery\\\" data-src=\\\"https://tools.kalvinbg.cn/static/image/emotion/${p1}.gif\\\"><img src=\\\"https://tools.kalvinbg.cn/static/image/emotion/${p1}.gif\\\" alt=\\\"${p1}\\\" style=\\\"max-width: 4rem;\\\"></a>`;\n                    } else if (p1.includes('long') || p1.includes('iq')) {\n                        return `<a><img src=\"https://emoticons.z-l.top/${p1}.png\" alt=\"${p1}\" style=\"max-width: 3rem;\"></a>`;\n                    }\n                    else {\n                        return `<a><img src=\"https://cdn.jsdmirror.com/gh/btwoa/Fluent-Emoji-3D/${p1}.gif\" alt=\"${p1}\" style=\"max-width: 3rem;\"></a>`;\n                    }\n                });\n                t.msg = t.msg.replace(/\\/?v:([^<]*)?(?:<a[^>]*>[^<]*<\\/a>)?/, function (match, $1) {\n                    const uid = ctrmUid(\"tts\");\n                    const audioId = `audio-${uid}`;\n                    const buttonId = `play-button-${uid}`;\n                    const textId = `transcribe-text-${uid}`;\n                    const imgId = `img-${uid}`;\n                    const barId = `audio-bar-${uid}`;\n                    const transcribeId = `transcribe-button-${uid}`;\n                    const html = `\n    <a class=\"ctrm-tts-pill\" style=\"display: inline-flex; align-items: center; text-decoration: none; color: inherit; border: 1px solid var(--cx-line); border-radius: 999px; padding: 4px 8px; background-color: #fff; transition: background-color 0.3s, border-color 0.3s; cursor: pointer;\">\n        <img id=\"${imgId}\" src=\"//dh.z-l.top/js/语音.svg\" alt=\"audio icon\" style=\"width: 24px; height: 24px; margin-right: 8px;\">\n        <audio id=\"${audioId}\" preload=\"metadata\" style=\"display: none;\">\n            <source src=\"https://dict.youdao.com/dictvoice?audio=${$1}&le=zh\" type=\"audio/mp3\">\n        </audio>\n        <span id=\"${buttonId}\" style=\"margin-left: 8px; font-size: 0.9rem; color: var(--cx-ink-2);\">加载中...</span>\n        <button id=\"${transcribeId}\" style=\"margin-left: 8px; border: none; background: transparent; cursor: pointer;\">\n            <img src=\"//dh.z-l.top/js/语音转文字.svg\" alt=\"转文字\" style=\"width: 24px; height: 24px;\">\n        </button>\n    </a>\n    <div id=\"${textId}\" style=\"display: none; margin-top: 8px; font-size: 0.9rem; color: var(--cx-ink);\"></div>\n    <div style=\"background: rgba(47,36,41,.12); height: 4px; border-radius: 2px; margin-top: 4px; width: 100%;\">\n        <div id=\"${barId}\" style=\"background: var(--cx-brand); height: 100%; border-radius: 2px; width: 0;\"></div>\n    </div>\n    `;\n                    setTimeout(() => {\n                        const button = document.getElementById(buttonId);\n                        const audio = document.getElementById(audioId);\n                        const imgElement = document.getElementById(imgId);\n                        const audioBar = document.getElementById(barId);\n                        const transcribeButton = document.getElementById(transcribeId);\n                        const textElement = document.getElementById(textId);\n                        if (!button || !audio || !imgElement || !audioBar || !transcribeButton || !textElement) return;\n                        audio.addEventListener('loadedmetadata', () => {\n                            const duration = formatTime(audio.duration);\n                            button.textContent = duration;\n                        });\n                        audio.addEventListener('timeupdate', () => {\n                            const remainingTime = audio.duration - audio.currentTime;\n                            button.textContent = formatTime(remainingTime);\n                            const lengthPercentage = (audio.currentTime / audio.duration) * 100;\n                            audioBar.style.width = `${lengthPercentage}%`;\n                        });\n                        audio.addEventListener('ended', () => {\n                            button.textContent = formatTime(audio.duration);\n                            audioBar.style.width = '100%';\n                            imgElement.classList.remove('playing');\n                        });\n                        button.parentElement.addEventListener('click', () => {\n                            if (audio.paused) {\n                                audio.play();\n                                imgElement.classList.add('playing');\n                            } else {\n                                audio.pause();\n                                imgElement.classList.remove('playing');\n                            }\n                        });\n                        transcribeButton.addEventListener('click', (e) => {\n                            e.stopPropagation();\n                            if (textElement.style.display === 'none') {\n                                textElement.style.display = 'block';\n                                textElement.textContent = '';\n                                typeWriter(textElement, $1);\n                            } else {\n                                textElement.style.display = 'none';\n                                textElement.textContent = '';\n                            }\n                        });\n                    }, 0);\n                    return html;\n                });\n                function typeWriter(element, text, i = 0) {\n                    if (i < text.length) {\n                        element.textContent += text.charAt(i);\n                        i++;\n                        setTimeout(() => typeWriter(element, text, i), 100);\n                    }\n                }\n                function formatTime(seconds) {\n                    const minutes = Math.floor(seconds / 60);\n                    const secs = Math.floor(seconds % 60);\n                    return `${String(minutes).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;\n                }\n                t.msg = t.msg.replace(/(https?:\\/\\/[^\\s<>\"]+)(?![^<>]*>.*<\\/a>)/g, function (match, url) {\n                    const currentHostname = window.location.hostname;\n                    let hostname, origin;\n                    try {\n                        const u = new URL(url);\n                        hostname = u.hostname;\n                        origin = u.origin;\n                    } catch (e) {\n                        return match;\n                    }\n                    const blacklist = ['dict.youdao.com', 'npm.elemecdn.com', 'api.cenguigui.cn', 't.tutu.to', 'img.z-l.top', 'imgdd.com', 'tucdn.wpon.cn', 'share-text.org'];\n                    if (blacklist.includes(hostname)) {\n                        return match;\n                    }\n                    const isSameDomain = hostname === currentHostname;\n                    const safeDomains = ['http://localhost:3000', 'bilibili.com', '88lin.github.io', '*.88lin.eu.org', 'jasnode.github.io'];\n                    const isSafeDomain = safeDomains.some(domain => {\n                        const regex = new RegExp(`(?:^|\\\\.)${domain.replace('.', '\\\\.')}$`);\n                        return regex.test(hostname);\n                    });\n                    var faviconUrl = origin + '/favicon.ico';\n                    var faviconRest = origin + '/favicon.png|' + origin + '/favicon.svg|' + origin + '/apple-touch-icon.png';\n                    const tooltipMessage = isSameDomain\n                        ? '<div class=\"tag-link-tips\" style=\"border-bottom: 1px solid rgba(47,122,79,.4); padding-bottom: 4px; font-size: .7rem; color: #2f7a4f; font-weight: 400; pointer-events: none;\">站内链接，可放心访问</div>'\n                        : isSafeDomain\n                            ? '<div class=\"tag-link-tips\" style=\"border-bottom: 1px solid rgba(47,122,79,.4); padding-bottom: 4px; font-size: .7rem; color: #2f7a4f; font-weight: 400; pointer-events: none;\">链接域名在白名单中，可放心访问<img src=\"https://cdn.jsdmirror.com/gh/btwoa/Fluent-Emoji-3D/%E6%8B%89%E7%82%AE%E5%BD%A9%E5%B8%A6.gif\" icon=\"反手食指向左指\" style=\"height: 1.5rem; display: inline;\"></div>'\n                            : '<div class=\"tag-link-tips\" style=\"border-bottom: 1px solid var(--cx-hairline); padding-bottom: 4px; font-size: .6rem; color: var(--cx-ink-2); font-weight: 400; pointer-events: none;\">引用站外地址，不保证链接的可用性和安全性</div>';\n                    const linkCard = '<a class=\"tag-Link\" target=\"_blank\" href=\"' + url + '\" rel=\"external nofollow\" title=\"即将进入' + hostname + '\" style=\"background: #fff; border-radius: 12px !important; display: flex; border: 1px solid rgba(47,36,41,.10); box-shadow: 0 1px 4px rgba(47,36,41,.05); flex-direction: column; padding: .3rem 0.9rem .6rem; border-width: 1px !important;\">' +\n                        tooltipMessage +\n                        '<div class=\"tag-link-bottom\" style=\"display: flex; margin-top: .5rem; align-items: center; justify-content: space-around; pointer-events: none;\">' +\n                        '<div class=\"tag-link-left\" style=\"width: 30px; min-width: 30px; height: 30px; background-size: cover !important; border-radius: 999px; background: rgba(242,118,155,.16); pointer-events: none; display: flex;\">' +\n                        '<img loading=\"lazy\" referrerpolicy=\"no-referrer\" data-ic=\"' + faviconRest + '\" onerror=\"var l=this.dataset.ic?this.dataset.ic.split(\\'|\\'):[];this.dataset.ic=l.slice(1).join(\\'|\\');if(!l.length)this.onerror=null;this.src=l[0]||\\'https://go.88lin.eu.org/favicon.svg\\'\" style=\"padding: 0; margin: auto; font-size: 24px; width: 30px; border-radius: 999px; color: darkred;\" src=\"' + faviconUrl + '\" alt=\"Favicon\" class=\"tag-link-favicon\">' +\n                        '</div>' +\n                        '<div class=\"tag-link-right\" style=\"margin-left: 1rem; pointer-events: none;width: calc(100% - 5.5rem);\">' +\n                        '<div class=\"siteDesc\" style=\"font-size: 0.9rem; line-height: 1.2; font-weight: 700; pointer-events: none; color: var(--cx-ink); word-break: break-all; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;\">' + hostname + '</div>' +\n                        '<div style=\"font-size: .7rem; color: var(--cx-ink-3); font-weight: 400; margin-top: 8px; pointer-events: none; line-height: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\">' + url + '</div>' +\n                        '</div>' +\n                        '<i class=\"icon-arrow-right-s-line\" style=\"margin-left: auto; filter: opacity(0.5); font-size: 1.5rem; padding-left: .5rem; pointer-events: none;\">🔗</i>' +\n                        '</div>' +\n                        '</a>';\n                    return linkCard;\n                });\n                t.msg = t.msg.replace(/\\[语音消息 (\\d{2}:\\d{2})\\]\\s*(https?:\\/\\/[^\\s<>\"]+\\.(?:webm|mp4|m4a|ogg|mp3|wav))/g, function (_, duration, url) {\n                    var uid = ctrmUid(\"voice\");\n                    var localSrc = '';\n                    if (window._myVoiceBlobs && window._myVoiceBlobs[url] && t.id === s) {\n                        localSrc = window._myVoiceBlobs[url];\n                    }\n                    return `\n    <div class=\"ctrm-voice-bubble\" id=\"${uid}\">\n      <button class=\"ctrm-voice-play\" type=\"button\" title=\"播放/暂停\">\n        <svg class=\"icon-play\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\"><polygon points=\"6,4 20,12 6,20\" fill=\"#fff\"/></svg>\n        <svg class=\"icon-pause\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" style=\"display:none;\"><rect x=\"6\" y=\"4\" width=\"4\" height=\"16\" fill=\"#fff\"/><rect x=\"14\" y=\"4\" width=\"4\" height=\"16\" fill=\"#fff\"/></svg>\n      </button>\n      <div class=\"ctrm-voice-progress\"><div class=\"ctrm-voice-bar\"></div></div>\n      <span class=\"ctrm-voice-time\">${duration}</span>\n      <audio preload=\"metadata\" style=\"display:none;\" src=\"${localSrc || url}\"></audio>\n    </div>`;\n                });\n                var e = (\n                    '\\n\\t\\t\\t\\t<div class=\"ctrm-dialog-item\">\\n\\t\\t\\t\\t\\t<div class=\"ctrm-dialog-sender\">\\n\\t\\t\\t\\t\\t\\t<span>' +\n                    t.name +\n                    '</span>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t<div class=\"ctrm-clearfix\">\\n\\t\\t\\t\\t\\t\\t<div class=\"ctrm-dialog-bubble ctrm-break\" style=\"background-color: ' +\n                    t.color +\n                    '\">\\n\\t\\t\\t\\t\\t\\t\\t' +\n                    t.msg +\n                    '\\n\\t\\t\\t\\t\\t\\t\\t<div class=\"ctrm-dialog-time\">\\n\\t\\t\\t\\t\\t\\t\\t\\t' +\n                    P(t.time, \"hours\") +\n                    \":\" +\n                    P(t.time, \"minutes\") +\n                    \"\\n\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\"\n                )\n                    .replace(/\\t/g, \"\")\n                    .replace(/\\n/g, \"\");\n                var n = i(e);\n                if (s === t.id) {\n                    n.addClass(\"ctrm-me\");\n                    var r = n.find(\".ctrm-dialog-sender span\").text();\n                    n.find(\".ctrm-dialog-sender span\").text(r + \"（我）\");\n                }\n                b.append(n);\n                ctrmTrimHistory();\n                ctrmBindFancybox(n);\n                I();\n                function showNewMessageHalo() {\n                    if (quiet || !m.hasClass(\"ctrm-close\")) return;\n                    var root = m[0];\n                    clearTimeout(root.cxHaloTimer);\n                    m.removeClass(\"ctrm-ding\");\n                    void root.offsetWidth;\n                    g.addClass(\"glow\");\n                    m.addClass(\"ctrm-ding\");\n                    root.cxHaloTimer = setTimeout(function () {\n                        m.removeClass(\"ctrm-ding\");\n                        g.removeClass(\"glow\");\n                    }, 950);\n                }\n                showNewMessageHalo();\n                return n;\n            }\n            function z() {\n                clearInterval(heartbeatTimer), heartbeatTimer = null, O([]);\n                if (e || offlineNoticed || unloading) return;\n                offlineNoticed = !0,\n                    H({ time: Date.now(), id: 111111111211, name: \"SYSTEM\", msg: \"连接已断开，正在自动重连…（也可点 '😜' 立即重连）\" }, !0)\n            }\n            function I() { o && b.scrollTop(9999999) }\n            var chatThrottleUntil = 0;\n            var pendingSends = [],\n                settledSends = [];\n            function ctrmSettleSend(rec) {\n                clearTimeout(rec.timer), clearTimeout(rec.soft);\n                var k = pendingSends.indexOf(rec);\n                0 <= k && pendingSends.splice(k, 1);\n                rec.settledAt = Date.now();\n                settledSends.push(rec);\n                settledSends = settledSends.filter(function (x) { return 18e4 > Date.now() - x.settledAt })\n            }\n            function ctrmConfirmOldestPending() {\n                pendingSends.length && ctrmSettleSend(pendingSends[0])\n            }\n            function ctrmPendingInHistory(history) {\n                var h = history || [];\n                return pendingSends.some(function (rec) {\n                    return h.some(function (x) { return x && String(x.msg == null ? \"\" : x.msg).trim() === rec.msg })\n                })\n            }\n            function ctrmResolvePending(msg) {\n                var raw = String(msg == null ? \"\" : msg).trim();\n                var lists = [pendingSends, settledSends];\n                for (var i = 0; i < lists.length; i++) {\n                    for (var k = 0; k < lists[i].length; k++) {\n                        var rec = lists[i][k];\n                        if (rec.msg !== raw) continue;\n                        var live = rec.node[0] && rec.node[0].isConnected;\n                        clearTimeout(rec.timer), clearTimeout(rec.soft), rec.node.remove(), lists[i].splice(k, 1);\n                        if (live) return;\n                        k--;\n                    }\n                }\n            }\n            function ctrmFlushPending(history) {\n                var h = history || [];\n                settledSends = [];\n                if (!pendingSends.length) return;\n                var keep = [];\n                pendingSends.forEach(function (rec) {\n                    clearTimeout(rec.timer), clearTimeout(rec.soft);\n                    var arrived = h.some(function (x) { return x && String(x.msg == null ? \"\" : x.msg).trim() === rec.msg });\n                    if (arrived) return void rec.node.remove();\n                    rec.node.removeClass(\"ctrm-pending\").addClass(\"ctrm-unconfirmed\");\n                    w.val() || w.val(rec.msg);\n                    ctrmToast(\"重连后记录里没有你刚发的那条，内容已放回输入框\", \"error\");\n                    rec.settledAt = Date.now(), keep.push(rec)\n                });\n                pendingSends = [], settledSends = keep\n            }\n            function ctrmEchoLocal(msg) {\n                if (!s) return;\n                var node = H({ id: s, name: c, msg: msg, time: Date.now() }, !0);\n                if (!node) return;\n                node.addClass(\"ctrm-pending\");\n                var rec = { msg: msg, node: node, timer: null, soft: null, settledAt: 0 };\n                var softAt = 8e3;\n                function softCheck() {\n                    if (0 > pendingSends.indexOf(rec)) return;\n                    if (n && 1 === n.readyState && 0 === n.bufferedAmount)\n                        return node.removeClass(\"ctrm-pending\"), void ctrmSettleSend(rec);\n                    softAt += 4e3;\n                    6e4 > softAt && (rec.soft = setTimeout(softCheck, 4e3))\n                }\n                rec.soft = setTimeout(softCheck, softAt);\n                rec.timer = setTimeout(function () {\n                    if (0 > pendingSends.indexOf(rec)) return;\n                    node.removeClass(\"ctrm-pending\").addClass(\"ctrm-unconfirmed\");\n                    w.val() || w.val(rec.msg);\n                    ctrmSettleSend(rec);\n                    ctrmToast(\"这条 90 秒没等到服务器确认，内容已放回输入框\", \"error\")\n                }, 9e4);\n                pendingSends.push(rec)\n            }\n            function R() {\n                var t = w.val().slice(0, 700).trim(); \n                if (0 === t.length) return void ctrmToast(\"你好像什么也没有输入呢\");\n                if (!n || 1 !== n.readyState)\n                    return void ctrmToast(\"还没连上服务器，这条没发出去；重连后再点一次发送\", \"error\");\n                if (r) {\n                    var left = Math.max(1, Math.ceil((chatThrottleUntil - Date.now()) / 1e3));\n                    return void ctrmToast(\"发得太快了，还要等 \" + left + \" 秒；内容已保留，稍后再点发送\", \"error\")\n                }\n                var e = { type: \"chat\", data: { msg: t }, char: L };\n                r = !0, chatThrottleUntil = Date.now() + 5e3,\n                    n.send(JSON.stringify(e)),\n                    setTimeout(function () { r = !1 }, 5e3);\n                ctrmEchoLocal(t), w.val(\"\")\n            }\n            function W() {\n                e || (e = !0, reconnectDelay = 2e3, offlineNoticed = !1,\n                    clearTimeout(reconnectTimer), reconnectTimer = null,\n                    _(), b.find(\".ctrm-dialog-item\").remove(), w.val(\"\"),\n                    setTimeout(function () { e = !1 }, 2e3))\n            }\n            function B() {\n                var t = window.innerWidth;\n                t / window.innerHeight <= 1.2 ? m.addClass(\"ctrm-mobile\") : m.removeClass(\"ctrm-mobile\"), t <= 1210 || m.hasClass(\"ctrm-mobile\") ? v.hide() : m.hasClass(\"ctrm-mobile\") || v.show(), b.scrollTop(9999999)\n            }\n            function foldToBall(animate) {\n                if (m.hasClass(\"ctrm-close\") || m.hasClass(\"ctrm-folding\")) return;\n                S.hide(), D.hide(), v.hide(), E.show();\n                if (!animate) return void m.addClass(\"ctrm-close\");\n                m.addClass(\"ctrm-folding\");\n                setTimeout(function () {\n                    m.removeClass(\"ctrm-folding\").addClass(\"ctrm-close ctrm-popin\");\n                    setTimeout(function () { m.removeClass(\"ctrm-popin\") }, 320);\n                }, 190);\n            }\n            window.addEventListener(\"pagehide\", function () {\n                unloading = !0, clearTimeout(reconnectTimer), reconnectTimer = null,\n                    clearInterval(heartbeatTimer), clearInterval(a);\n                try { n && n.close() } catch (err) { }\n            });\n            window.addEventListener(\"pageshow\", function (ev) {\n                unloading = !1;\n                (ev && ev.persisted || !n || 2 === n.readyState || 3 === n.readyState) && ctrmReconnectNow(\"页面恢复\")\n            });\n            document.addEventListener(\"visibilitychange\", function () {\n                if (document.hidden || unloading) return;\n                n && 1 === n.readyState ? ctrmSendUpdate() : ctrmReconnectNow(\"回到前台\")\n            });\n            window.addEventListener(\"online\", function () { ctrmReconnectNow(\"网络恢复\") });\n            window.addEventListener(\"offline\", function () { z() });\n            ctrmInitOnce();\n            var ctrmComposing = !1,\n                ctrmComposeEndAt = 0;\n            w.on(\"compositionstart\", function () { ctrmComposing = !0 });\n            w.on(\"compositionend\", function () { ctrmComposing = !1, ctrmComposeEndAt = Date.now() });\n            function ctrmIsEnterSend(t) {\n                if (13 !== t.keyCode && \"Enter\" !== t.key) return !1;\n                var native = t.originalEvent || t;\n                if (ctrmComposing || native.isComposing || 229 === t.keyCode) return !1;\n                return !(80 > Date.now() - ctrmComposeEndAt)\n            }\n            document.body.addEventListener(\"click\", j), window.addEventListener(\"popstate\", j), m.on(\"click\", function (t) { return t.stopPropagation() }), m.on(\"touchstart\", function (t) { return t.stopPropagation() }), m.on(\"touchend\", function (t) { return t.stopPropagation() }), m.on(\"touchmove\", function (t) { return t.stopPropagation() }), S.click(function (t) { foldToBall(!0), t.stopPropagation() }), g.click(function () { m.hasClass(\"ctrm-close\") && (m.removeClass(\"ctrm-close\"), S.show(), D.show(), E.show(), B()) }), D.click(W), x.click(R), w.on(\"keydown\", function (t) {\n                ctrmIsEnterSend(t) && (t.preventDefault(), R())\n            }), b.on(\"scroll\", function () {\n                var t = b[0],\n                    e = t.clientHeight,\n                    n = t.scrollTop,\n                    r = t.scrollHeight;\n                o = e + n < .9 * r ? (y.show(), !1) : (y.hide(), !0)\n            }), y.click(function () { y.hide(), o = !0, I() }), T.click(function () { m.find(\".ctrm-domain-filter\").hide() }), B(), p = document.querySelector(\"script[src*=z-l]\"),\n                h = !(p && null !== p.getAttribute(\"open\")),\n                (m.hasClass(\"ctrm-mobile\") || h) && foldToBall(!1), m.show(), window.addEventListener(\"resize\", B)\n        }()\n    }, { \"./dom.js\": 3, \"jQuery-slim\": 1 }],\n    3: [function (t, e, n) {\n        \"use strict\";\n        var r = `\n<script async src=\"https://cdn.h5ds.com/space/files/600972551685382144/20250608/856129445817171968.js\" data-url=\"https://tutu.to/upload\" data-auto-insert=\"direct-links\"></script>\n<link rel=\"stylesheet\" href=\"https://cdn.h5ds.com/space/files/600972551685382144/20250722/871856997280043008.css\">\n<link rel=\"stylesheet\" href=\"https://cdnjs.snrat.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css\" />\n<script src=\"https://cdnjs.snrat.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js\"></script>\n<script>\nvar OwO_demo = new OwO({\n    logo: '<svg fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.182 15.182a4.5 4.5 0 0 1-6.364 0M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0zM9.75 9.75c0 .414-.168.75-.375.75S9 10.164 9 9.75 9.168 9 9.375 9s.375.336.375.75zm-.375 0h.008v.015h-.008V9.75zm5.625 0c0 .414-.168.75-.375.75s-.375-.336-.375-.75.168-.75.375-.75.375.336.375.75zm-.375 0h.008v.015h-.008V9.75z\"/></svg>表情包',\n    container: document.getElementsByClassName('OwO')[0],\n    target: document.getElementsByClassName('OwO-textarea')[0],\n    api: 'https://cdn.jsdmirror.com/gh/88lin/picx-images-hosting@master/cdn/chat/owo-smoji.json',\n    position: 'up',\n    width: '100%',\n    maxHeight: '250px'\n});\n</script>\n<style>\n.ctrm-voice-container {\n    position: relative;\n    display:table;\n}\n.ctrm-voice-btn {\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: background .2s ease, color .2s ease, border-color .2s ease;\n}\n.ctrm-voice-btn:hover {\n    background: var(--cx-tint);\n}\n.recommend-tag:before {\n    border: 1px solid var(--cx-brand);\n    border-radius: 12px;\n    box-sizing: border-box;\n    content: \"\";\n    height: 200%;\n    left: 0;\n    pointer-events: none;\n    position: absolute;\n    top: 0;\n    transform: scale(.5);\n    transform-origin: 0 0;\n    width: 200%;\n}\n.recommend-tag{\n    color: var(--cx-brand-ink);\n    border-radius: 6px;\n    padding: 0 4px;\n    position: relative;\n    font-size: 10px;\n    font-weight: 600;\n    line-height: 16px;\n}\n#ctrm_ .ctrm-voice-btn.recording,\n#ctrm_ .ctrm-voice-btn.recording:hover {\n    background: var(--cx-brand-ink);\n    border-color: var(--cx-brand-ink);\n    color: #fff;\n}\n#ctrm_ .ctrm-voice-btn.recording svg,\n#ctrm_ .ctrm-voice-btn.recording:hover svg { stroke: #fff; }\n#ctrm_ .ctrm-voice-btn.recording .recommend-tag { display: none; }\n.ctrm-voice-timer {\n    color: var(--cx-warm);\n    font-variant-numeric: tabular-nums;\n}\n.ctrm-voice-recording-indicator {\n    position: absolute;\n    gap:8px;\n    top: -40px;\n    left: 50%;\n    transform: translateX(-50%);\n    background: rgba(42, 42, 51, .92);\n    color: white;\n    padding: 5px 10px;\n    border-radius: var(--cx-pill);\n    font-size: 12px;\n    white-space: nowrap;\n    align-items: center;\n    z-index: 1;\n}\n.ctrm-voice-wave {\n    display: inline-block;\n    width: 20px;\n    height: 20px;\n    background: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><circle cx=\"20\" cy=\"50\" r=\"10\" fill=\"white\"><animate attributeName=\"r\" values=\"10;20;10\" dur=\"1s\" repeatCount=\"indefinite\"/></circle><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"white\"><animate attributeName=\"r\" values=\"10;20;10\" dur=\"1s\" begin=\"0.2s\" repeatCount=\"indefinite\"/></circle><circle cx=\"80\" cy=\"50\" r=\"10\" fill=\"white\"><animate attributeName=\"r\" values=\"10;20;10\" dur=\"1s\" begin=\"0.4s\" repeatCount=\"indefinite\"/></circle></svg>') no-repeat center;\n    background-size: contain;\n}\n</style>\n<style>\n:root {\n    --cx-brand: #f2769b;\n    --cx-brand-deep: #e05a84;\n    --cx-brand-ink: #c23b6e;\n    --cx-warm: #e8a94f;\n    --cx-ink: #2f2429;\n    --cx-ink-2: #5f4f56;\n    --cx-ink-3: #7f6e75;\n    --cx-hairline: rgba(47, 36, 41, .10);\n    --cx-line: rgba(47, 36, 41, .16);\n    --cx-tint: rgba(242, 118, 155, .09);\n    --cx-tint-2: rgba(242, 118, 155, .16);\n    --cx-shadow: 0 1px 4px rgba(47, 36, 41, .05);\n    --cx-shadow-pop: 0 4px 18px rgba(47, 36, 41, .10);\n    --cx-pill: 999px;\n}\n#ctrm_ { color: var(--cx-ink); }\n#ctrm_ .ctrm-container { border-top-right-radius: 2vw; }\n#ctrm_ .ctrm-title {\n    background: linear-gradient(90deg, #ffdee9, #b5fffc) !important;\n    box-shadow: inset 0 -1px 0 var(--cx-hairline);\n}\n#ctrm_ .ctrm-title.glow { background: #fbe6c4 !important; }\n#ctrm_ .ctrm-title-span { font-weight: 600; }\n#ctrm_ .ctrm-title-span strong { font-weight: 600; }\n#ctrm_ .ctrm-title-countwrap { margin-left: .35em; color: var(--cx-ink-2); font-weight: 600; }\n#ctrm_ .ctrm-title-count { color: var(--cx-brand-ink); }\n#ctrm_.ctrm-mobile .ctrm-title-span { height: 4.6vw; line-height: 4.6vw; }\n#ctrm_.ctrm-mobile .ctrm-title-span img { width: auto; height: 1em; }\n#ctrm_ .ctrm-title-close,\n#ctrm_ .ctrm-title-reconn {\n    background: #fff;\n    border-color: var(--cx-line);\n    color: var(--cx-brand-ink);\n    transition: background .18s, border-color .18s;\n}\n#ctrm_ .ctrm-title-close:hover,\n#ctrm_ .ctrm-title-reconn:hover { background: var(--cx-tint); border-color: var(--cx-brand); }\n#ctrm_.ctrm-close {\n    --cx-ball: clamp(42px, 3.2vw, 58px);\n    position: fixed;\n    bottom: clamp(14px, 1.1vw, 22px);\n    right: clamp(14px, 1.1vw, 22px);\n    transition: none;\n    --cx-orb-ring: var(--cx-orb-b-mid);\n    --cx-orb-bg-start: rgb(236, 133, 255);\n    --cx-orb-bg-end: rgb(49, 138, 255);\n    --cx-orb-sh1: rgba(166, 35, 248, 0);\n    --cx-orb-sh2: rgba(121, 19, 255, 0.5);\n    --cx-orb-sh3: rgba(255, 255, 255, 0.9);\n    --cx-orb-sh4: rgb(253, 164, 250);\n    --cx-orb-a-start: rgb(133, 210, 255);\n    --cx-orb-a-end: rgba(115, 49, 255, 0);\n    --cx-orb-b-start: rgb(254, 245, 254);\n    --cx-orb-b-mid: rgb(253, 109, 255);\n    --cx-orb-b-end: rgba(203, 56, 255, 0);\n    --cx-orb-c-start: rgba(254, 254, 254, 0);\n    --cx-orb-c-mid: rgba(254, 111, 255, 0);\n    --cx-orb-c-end: #7006fe;\n    --cx-orb-d-start: rgba(254, 254, 254, 0);\n    --cx-orb-d-mid: rgba(142, 111, 255, 0);\n    --cx-orb-d-end: #00eeff;\n    --cx-orb-rot: 2s;\n    --cx-orb-hue: 2s;\n    --cx-orb-hue-deg: 120deg;\n    --cx-orb-main-hue: none;\n    --cx-orb-shine-a: 0.9;\n    --cx-orb-shine-b: 0.3;\n    --cx-orb-glow: 1;\n}\n#ctrm_.ctrm-close .ctrm-container {\n    position: relative;\n    width: var(--cx-ball);\n    height: var(--cx-ball);\n    max-height: none;\n    transition: none;\n    overflow: visible;\n}\n#ctrm_.ctrm-close .ctrm-panel,\n#ctrm_.ctrm-close .ctrm-online { display: none; }\n#ctrm_.ctrm-close .ctrm-title-close,\n#ctrm_.ctrm-close .ctrm-title-reconn { display: none; }\n#ctrm_.ctrm-close .ctrm-title-span img { display: none; }\n#ctrm_.ctrm-close .ctrm-title {\n    position: relative;\n    width: 100%;\n    height: 100%;\n    border-radius: 50%;\n    background-color: transparent !important;\n    background-image: radial-gradient(circle at 50% 30%, var(--cx-orb-bg-start) 0, var(--cx-orb-bg-end) 70%) !important;\n    box-shadow:\n        var(--cx-orb-sh1) 0 calc(var(--cx-ball) * .049 * var(--cx-orb-glow)) calc(var(--cx-ball) * .073 * var(--cx-orb-glow)) 0,\n        var(--cx-orb-sh2) 0 calc(var(--cx-ball) * .061 * var(--cx-orb-glow)) calc(var(--cx-ball) * .122 * var(--cx-orb-glow)) 0,\n        var(--cx-orb-sh3) 0 0 calc(var(--cx-ball) * .012) 0 inset,\n        var(--cx-orb-sh4) 0 calc(var(--cx-ball) * .012) calc(var(--cx-ball) * .085) 0 inset;\n    isolation: isolate;\n    animation: var(--cx-orb-main-hue);\n    transition: transform .18s;\n}\n#ctrm_.ctrm-close .ctrm-title:hover { transform: scale(1.06); }\n#ctrm_.ctrm-close .ctrm-title.glow {\n    background-color: transparent !important;\n    background-image: radial-gradient(circle at 50% 30%, var(--cx-orb-bg-start) 0, var(--cx-orb-bg-end) 70%) !important;\n}\n#ctrm_.ctrm-close.ctrm-ding .ctrm-container::after {\n    content: \"\";\n    position: absolute;\n    top: -12%;\n    right: -12%;\n    bottom: -12%;\n    left: -12%;\n    z-index: -1;\n    border-radius: 50%;\n    background: radial-gradient(circle, var(--cx-orb-ring) 42%, transparent 76%);\n    pointer-events: none;\n    animation: cxOrbHalo .9s ease-out both;\n}\n#ctrm_.ctrm-close .ctrm-title::before {\n    content: \"\";\n    position: absolute;\n    left: 0; top: 0;\n    width: 87.8%; height: 87.8%;\n    border-radius: 50%;\n    background-image: radial-gradient(circle at 50% 90%, var(--cx-orb-a-start) 0, var(--cx-orb-a-end) 70%);\n    transform-style: preserve-3d;\n    animation: cxOrbSpin var(--cx-orb-rot) linear infinite,\n               cxOrbHue var(--cx-orb-hue) linear infinite;\n}\n#ctrm_.ctrm-close .ctrm-title::after {\n    content: \"\";\n    position: absolute;\n    left: 10%; top: 5%;\n    width: 87.8%; height: 87.8%;\n    border-radius: 50%;\n    background-image: radial-gradient(circle at 33% 12%, var(--cx-orb-b-start) 0, var(--cx-orb-b-mid) 26%, var(--cx-orb-b-end) 63%);\n    mix-blend-mode: soft-light;\n    transform-style: preserve-3d;\n    animation: cxOrbSpin calc(var(--cx-orb-rot) * 1.5) linear infinite,\n               cxOrbHue calc(var(--cx-orb-hue) * 1.5) linear infinite;\n}\n#ctrm_.ctrm-close .ctrm-title-span {\n    position: absolute;\n    display: block;\n    left: 6.1%; top: 6.1%;\n    right: auto; bottom: auto;\n    margin: 0;\n    width: 87.8%; height: 87.8%;\n    border-radius: 50%;\n    box-shadow: inset 0 calc(var(--cx-ball) * -.012) calc(var(--cx-ball) * .073) calc(var(--cx-ball) * .012) rgba(255, 255, 255, .4),\n                inset 0 calc(var(--cx-ball) * .037) calc(var(--cx-ball) * .049) 0 rgba(255, 255, 255, .4);\n    font-size: 0;\n    line-height: 0;\n}\n#ctrm_.ctrm-close .ctrm-title-span > span:first-child {\n    position: absolute;\n    left: 0; top: 0;\n    width: 100%; height: 100%;\n}\n#ctrm_.ctrm-close .ctrm-title-span > span:first-child::before,\n#ctrm_.ctrm-close .ctrm-title-span > span:first-child::after {\n    content: \"\";\n    position: absolute;\n    left: -1.25%; top: -1.25%;\n    width: 100%; height: 100%;\n    border-radius: 50%;\n    transform-style: preserve-3d;\n}\n#ctrm_.ctrm-close .ctrm-title-span > span:first-child::before {\n    background-image: radial-gradient(circle at 31% 12%, var(--cx-orb-c-start) 0, var(--cx-orb-c-mid) 31%, var(--cx-orb-c-end) 77%);\n    mix-blend-mode: color-dodge;\n    opacity: .65;\n    animation: cxOrbSpin calc(var(--cx-orb-rot) * 2) linear infinite,\n               cxOrbHue calc(var(--cx-orb-hue) * 2) linear infinite;\n}\n#ctrm_.ctrm-close .ctrm-title-span > span:first-child::after {\n    background-image: radial-gradient(circle at 12% 80%, var(--cx-orb-d-start) 0, var(--cx-orb-d-mid) 31%, var(--cx-orb-d-end) 77%);\n    mix-blend-mode: color;\n    opacity: .55;\n    animation: cxOrbSpin calc(var(--cx-orb-rot) * 2.5) linear infinite,\n               cxOrbHue calc(var(--cx-orb-hue) * 2.5) linear infinite;\n}\n#ctrm_.ctrm-close .ctrm-title-span strong {\n    display: block;\n    position: absolute;\n    left: -6.94%; top: -6.94%;\n    width: 113.9%; height: 113.9%;\n    border-radius: 50%;\n    overflow: hidden;\n}\n#ctrm_.ctrm-close .ctrm-title-span strong::before,\n#ctrm_.ctrm-close .ctrm-title-span strong::after {\n    content: \"\";\n    position: absolute;\n    left: 0; top: 0;\n    width: 100%; height: 100%;\n    border-radius: 50%;\n    background-image: radial-gradient(ellipse 26% 52% at 44% 40%, rgba(255, 255, 255, .8) 0, rgba(255, 255, 255, .45) 34%, rgba(255, 255, 255, 0) 72%);\n    filter: blur(calc(var(--cx-ball) * .183));\n}\n#ctrm_.ctrm-close .ctrm-title-span strong::before {\n    mix-blend-mode: hard-light;\n    opacity: var(--cx-orb-shine-a);\n    transform: scale(.4);\n    animation: cxOrbShineA 3.5s linear infinite;\n}\n#ctrm_.ctrm-close .ctrm-title-span strong::after {\n    left: 15%;\n    mix-blend-mode: plus-lighter;\n    opacity: var(--cx-orb-shine-b);\n    transform: scale(.6);\n    animation: cxOrbShineB 5s ease-in-out infinite;\n}\n#ctrm_.ctrm-close .ctrm-title-countwrap {\n    position: absolute;\n    top: calc(var(--cx-ball) * -.101);\n    right: calc(var(--cx-ball) * -.101);\n    min-width: calc(var(--cx-ball) * .4);\n    height: calc(var(--cx-ball) * .4);\n    line-height: calc(var(--cx-ball) * .4);\n    padding: 0 calc(var(--cx-ball) * .07);\n    box-sizing: border-box;\n    border-radius: var(--cx-pill);\n    background: #fff;\n    color: var(--cx-brand-ink);\n    font-weight: 700;\n    text-align: center;\n    box-shadow: 0 1px 4px rgba(47, 36, 41, .16);\n}\n#ctrm_.ctrm-close .ctrm-title-count { font-size: calc(var(--cx-ball) * .24); }\n#ctrm_.ctrm-close.ctrm-mobile {\n    --cx-ball: clamp(48px, 13vw, 64px);\n    bottom: clamp(14px, 3.5vw, 24px);\n    right: clamp(14px, 3.5vw, 24px);\n}\n#ctrm_.ctrm-close.ctrm-mobile .ctrm-container {\n    width: var(--cx-ball);\n    height: var(--cx-ball);\n}\n@media (prefers-reduced-motion: reduce) {\n    #ctrm_.ctrm-close .ctrm-title,\n    #ctrm_.ctrm-close .ctrm-title::before,\n    #ctrm_.ctrm-close .ctrm-title::after,\n    #ctrm_.ctrm-close .ctrm-title-span > span:first-child::before,\n    #ctrm_.ctrm-close .ctrm-title-span > span:first-child::after,\n    #ctrm_.ctrm-close .ctrm-title-span strong::before,\n    #ctrm_.ctrm-close .ctrm-title-span strong::after { animation: none; }\n    #ctrm_.ctrm-close.ctrm-ding .ctrm-container::after { content: none; }\n}\n@keyframes cxOrbSpin { 0% { transform: rotate3d(1, 1, 1, 0deg) } 100% { transform: rotate3d(1, 1, 1, 1turn) } }\n@keyframes cxOrbHue { 0% { filter: hue-rotate(0deg) } 50% { filter: hue-rotate(var(--cx-orb-hue-deg)) } 100% { filter: hue-rotate(0deg) } }\n@keyframes cxOrbShineA { 0% { transform: scale(.4) } 50% { transform: scale(.1) } 100% { transform: scale(.4) } }\n@keyframes cxOrbShineB { 0% { transform: scale(.6) } 50% { transform: scale(.1) } 100% { transform: scale(.6) } }\n@keyframes cxOrbHalo { 0% { transform: scale(.9); opacity: 0 } 18% { opacity: .7 } 100% { transform: scale(1.5); opacity: 0 } }\n#ctrm_.ctrm-folding .ctrm-container {\n    transform-origin: calc(100% - 22px) calc(100% - 22px);\n    animation: cxFoldOut .19s cubic-bezier(.4, 0, 1, 1) both;\n}\n#ctrm_.ctrm-close.ctrm-popin .ctrm-title {\n    animation: cxOrbPop .32s cubic-bezier(.34, 1.5, .64, 1) both, var(--cx-orb-main-hue);\n}\n@keyframes cxFoldOut { 0% { transform: scale(1); opacity: 1 } 100% { transform: scale(.32); opacity: 0 } }\n@keyframes cxOrbPop { 0% { transform: scale(.35); opacity: 0 } 55% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(1); opacity: 1 } }\n@media (prefers-reduced-motion: reduce) {\n    #ctrm_.ctrm-folding .ctrm-container,\n    #ctrm_.ctrm-close.ctrm-popin .ctrm-title { animation: none; }\n}\n#ctrm_ .ctrm-dialog { scrollbar-width: thin; scrollbar-color: var(--cx-line) transparent; }\n#ctrm_ .ctrm-dialog::-webkit-scrollbar { width: 6px; }\n#ctrm_ .ctrm-dialog::-webkit-scrollbar-track { background: transparent; }\n#ctrm_ .ctrm-dialog::-webkit-scrollbar-thumb { background: var(--cx-line); border-radius: var(--cx-pill); }\n#ctrm_ .ctrm-dialog-item .ctrm-dialog-sender { color: var(--cx-ink-2); }\n#ctrm_ .ctrm-dialog-item .ctrm-dialog-time { color: var(--cx-ink-3); }\n#ctrm_ .ctrm-dialog-item.ctrm-pending, #ctrm_ .ctrm-dialog-item.ctrm-unconfirmed { opacity: .55; }\n#ctrm_ .ctrm-dialog-item.ctrm-pending .ctrm-dialog-time::after { content: \" · 发送中\"; }\n#ctrm_ .ctrm-dialog-item.ctrm-unconfirmed .ctrm-dialog-time::after { content: \" · 未确认\"; color: #b8362b; }\n#ctrm_ .ctrm-dialog-item .ctrm-dialog-bubble { border-radius: 14px 14px 14px 4px; }\n#ctrm_ .ctrm-dialog-item.ctrm-me .ctrm-dialog-bubble { border-radius: 14px 14px 4px 14px; }\n#ctrm_.ctrm-mobile .ctrm-dialog-item .ctrm-dialog-bubble { border-radius: 10px 10px 10px 3px; }\n#ctrm_.ctrm-mobile .ctrm-dialog-item.ctrm-me .ctrm-dialog-bubble { border-radius: 10px 10px 3px 10px; }\n#ctrm_ .ctrm-dialog-item .ctrm-b {\n    background: var(--cx-brand-ink);\n    color: #fff;\n    font-weight: 500;\n    border-radius: var(--cx-pill);\n    padding: .08em .5em;\n    white-space: nowrap;\n}\n#ctrm_ .ctrm-dialog-item a[data-fancybox] img { border-radius: 10px; }\n#ctrm_ .ctrm-dialog-item iframe { border-radius: 10px; }\n#ctrm_ .ctrm-bottom {\n    width: 2.2vw;\n    height: 2.2vw;\n    line-height: 2.2vw;\n    font-size: 1.3vw;\n    background: var(--cx-brand);\n    color: #fff;\n    border-radius: 50%;\n    transition: background .18s;\n    bottom: calc(25% + 35px);\n}\n#ctrm_ .ctrm-bottom:hover { background: var(--cx-brand-deep); }\n#ctrm_.ctrm-mobile .ctrm-bottom {\n    width: 6vw;\n    height: 6vw;\n    line-height: 6vw;\n    font-size: 3.5vw;\n    transform: none;\n}\n#ctrm_ .sb {\n    border-radius: var(--cx-pill);\n    background: #fff;\n    border-color: var(--cx-line);\n    color: var(--cx-ink-2);\n    transition: background .18s, border-color .18s, color .18s;\n}\n#ctrm_ .sb:hover { background: var(--cx-tint); border-color: var(--cx-brand); color: var(--cx-brand-ink); }\n#ctrm_ .OwO.OwO-open .OwO-logo { background: var(--cx-tint); border-color: var(--cx-brand); color: var(--cx-brand-ink); }\n#ctrm_ #file svg { color: var(--cx-brand-ink); }\n#ctrm_ .ThirdPartyImageHost svg { color: var(--cx-brand); }\n#ctrm_ #cfbed svg { color: var(--cx-warm); }\n@media (max-width: 1439px) {\n    #ctrm_ .ctrm-panel .sb { font-size: 0; gap: 0; }\n}\n#ctrm_.ctrm-mobile .ctrm-panel .sb { font-size: 0; gap: 0; }\n#ctrm_ .ctrm-dialog { height: calc(75% - 27px); }\n#ctrm_ .OwO .OwO-body {\n    border-color: var(--cx-hairline);\n    border-radius: 10px;\n    box-shadow: var(--cx-shadow-pop);\n    box-sizing: border-box;\n}\n#ctrm_ .OwO.OwO-up .OwO-body { border-radius: 10px 10px 10px 2px; }\n#ctrm_ .OwO .OwO-body .OwO-items.OwO-items-show {\n    display: flex;\n    flex-wrap: wrap;\n    align-content: flex-start;\n    gap: 4px;\n    padding: 8px;\n    overflow-x: hidden;\n    overflow-y: auto;\n    scrollbar-width: none;\n    -ms-overflow-style: none;\n}\n#ctrm_ .OwO .OwO-body .OwO-items::-webkit-scrollbar { width: 0; height: 0; }\n#ctrm_ .OwO .OwO-body .OwO-items .OwO-item {\n    margin: 0;\n    padding: 3px;\n    background: transparent;\n    border-radius: 6px;\n}\n#ctrm_ .OwO .OwO-body .OwO-items .OwO-item:hover { background: var(--cx-tint); box-shadow: none; -webkit-animation: none; animation: none; }\n#ctrm_ .OwO .OwO-body .OwO-items { max-height: 168px !important; }\n#ctrm_ .OwO .OwO-body .OwO-items.OwO-items-big { max-height: 254px !important; }\n#ctrm_ { --ct-smoji-big-preview: 5rem; }\n#ctrm_.ctrm-mobile { --ct-smoji-big-preview: 4rem; }\n#ctrm_.ctrm-mobile .OwO .OwO-body .OwO-items.OwO-items-big { max-height: 168px !important; }\n#ctrm_ .OwO .OwO-body .OwO-bar {\n    background: #fff;\n    border-top-color: var(--cx-hairline);\n    border-radius: 0 0 10px 10px;\n    color: var(--cx-ink-2);\n}\n#ctrm_ .OwO .OwO-body .OwO-bar .OwO-packages { padding: 0 4px; scrollbar-width: none; -ms-overflow-style: none; }\n#ctrm_ .OwO .OwO-body .OwO-bar .OwO-packages::-webkit-scrollbar { width: 0; height: 0; }\n#ctrm_ .OwO .OwO-body .OwO-bar .OwO-packages li { border-radius: 6px; }\n#ctrm_ .OwO .OwO-body .OwO-bar .OwO-packages li:hover { background: var(--cx-tint); }\n#ctrm_ .OwO .OwO-body .OwO-bar .OwO-packages .OwO-package-active { background: var(--cx-tint-2); color: var(--cx-brand-ink); }\n#ctrm_ .ctrm-textarea textarea {\n    border: 2px dashed rgba(242, 118, 155, .45);\n    color: var(--cx-ink);\n}\n#ctrm_ .ctrm-textarea textarea:hover { border-color: rgba(242, 118, 155, .7); }\n#ctrm_ .ctrm-textarea textarea:focus { border-color: var(--cx-brand); }\n#ctrm_ .ctrm-textarea textarea::placeholder { color: var(--cx-ink-3); }\n#ctrm_ .ctrm-textarea textarea::-webkit-input-placeholder { color: var(--cx-ink-3); }\n#ctrm_ .ctrm-emit {\n    background: var(--cx-brand);\n    color: #fff;\n    border-radius: var(--cx-pill);\n    transition: background .18s;\n}\n#ctrm_ .ctrm-emit:hover { background: var(--cx-brand-deep); }\n#ctrm_.ctrm-mobile .ctrm-emit { border-radius: var(--cx-pill); }\n#ctrm_ .ctrm-online-item {\n    border-radius: var(--cx-pill);\n    color: var(--cx-ink);\n}\n#ctrm_ .ctrm-online-wrap { box-sizing: border-box; }\n#ctrm_.ctrm-mobile .ctrm-online-item { border-radius: var(--cx-pill); }\n#ctrm_ .ctrm-domain-title { color: var(--cx-ink-2); }\n#ctrm_ .ctrm-domain-item {\n    color: var(--cx-brand-ink);\n    border-radius: var(--cx-pill);\n    transition: background .16s;\n}\n#ctrm_ .ctrm-domain-item:hover { background: var(--cx-tint); }\n.tag-Link { transition: border-color .18s, box-shadow .18s; }\n.tag-Link:hover { border-color: var(--cx-brand) !important; }\n.ctrm-tts-pill:hover { background-color: var(--cx-tint) !important; border-color: var(--cx-brand) !important; }\n.ctrm-163-btn:hover { background: var(--cx-brand-deep) !important; }\n.img-host-dropdown [data-img-host] { color: var(--cx-ink); border-radius: 8px; transition: background .16s, color .16s; }\n.img-host-dropdown [data-img-host]:hover { background: var(--cx-tint); color: var(--cx-brand-ink); }\n</style>\n<div id=\"ctrm_\" style=\"z-index:10002!important;display:none;\" class=\" \" >\n    <div class=\"ctrm-container\">\n        <div class=\"ctrm-title\">\n            <span class=\"ctrm-title-span\">\n                <span>茉灵智库 の</span>\n                <strong style=\"color:var(--cx-brand-ink);\">匿名</strong>聊天室\n                <img width=\"19px\" src=\"https://img.z-l.top/file/dh/heart.gif\" alt=\"\">\n                <span class=\"ctrm-title-countwrap\" style=\"display: none;\">(在线<span class=\"ctrm-title-count\">0</span>人)</span>\n            </span>\n            <div class=\"ctrm-title-close\" title=\"下拉\">▼</div>\n            <div class=\"ctrm-title-reconn\" title=\"点我刷新\">😜</div>\n        </div>\n        <div class=\"ctrm-panel\">\n            <div class=\"ctrm-bottom\" style=\"display: none;\">⇩</div>\n            <div class=\"ctrm-dialog\"></div>\n            <button class=\"sb\" id=\"file\" title=\"选择文件\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M9.035 15.956a1.29 1.29 0 0 0 1.821-.004l6.911-6.911a3.15 3.15 0 0 0 0-4.457l-.034-.034a3.15 3.15 0 0 0-4.456 0l-7.235 7.234a5.031 5.031 0 0 0 7.115 7.115l6.577-6.577a1.035 1.035 0 0 1 1.463 1.464l-6.576 6.577A7.1 7.1 0 0 1 4.579 10.32l7.235-7.234a5.22 5.22 0 0 1 7.382 0l.034.034a5.22 5.22 0 0 1 0 7.383l-6.91 6.91a3.36 3.36 0 0 1-4.741.012l-.006-.005-.012-.011a3.346 3.346 0 0 1 0-4.732L12.76 7.48a1.035 1.035 0 0 1 1.464 1.463l-5.198 5.198a1.277 1.277 0 0 0 0 1.805z\" clip-rule=\"evenodd\"/></svg></button>\n             <button data-chevereto-pup-trigger data-target=\"#editor\" class=\"sb ThirdPartyImageHost\" title=\"选择第三方图床上传\"><svg class=\"flex-shrink-0 size-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 15.75l5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5zm10.5-11.25h.008v.008h-.008V8.25zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0z\"/></svg>图床上传</button>\n              <div class=\"img-host-dropdown\" style=\"display:none;position:fixed;background:#fff;border:1px solid var(--cx-hairline);border-radius:12px;padding:4px;box-shadow:var(--cx-shadow-pop);z-index:9999;text-align:center;box-sizing:border-box;\">\n                 <div data-img-host=\"tutu\" style=\"padding:6px 8px;cursor:pointer;font-size:13px;white-space:nowrap;\">tutu.to</div>\n                 <div data-img-host=\"imgdd\" style=\"padding:6px 8px;cursor:pointer;font-size:13px;white-space:nowrap;\">imgdd</div>\n                 <div data-img-host=\"tucdn\" style=\"padding:6px 8px;cursor:pointer;font-size:13px;white-space:nowrap;\">tucdn</div>\n                 <div data-img-host=\"share-text\" style=\"padding:6px 8px;cursor:pointer;font-size:13px;white-space:nowrap;\">share</div>\n             </div>\n            <button  class=\"sb\" id=\"cfbed\" title=\"上传图片\"><svg fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M19.11 9.827c.26 0 .451-.192.488-.445.23-1.406.43-2.127.865-2.575.433-.447 1.131-.654 2.49-.89a.503.503 0 0 0 .446-.502.5.5 0 0 0-.447-.503c-1.358-.237-2.056-.445-2.49-.892-.433-.447-.634-1.168-.864-2.571-.037-.256-.227-.449-.488-.449-.257 0-.45.193-.49.447-.23 1.405-.432 2.126-.865 2.573s-1.13.655-2.486.892a.5.5 0 0 0-.451.503c0 .273.203.47.447.503 1.36.235 2.057.438 2.49.882.433.445.635 1.167.864 2.583.04.252.235.444.491.444M3.853 3.207h9.058v1.961H3.853v9.867l1.488-1.327a2.8 2.8 0 0 1 3.704-.037l1.011.867 3.428-2.886a2.8 2.8 0 0 1 3.621-.001l2.957 2.483v-2.346h1.907v7.601c0 1.084-.854 1.962-1.907 1.962H3.852c-1.052 0-1.906-.878-1.906-1.962V5.17c0-1.084.854-1.962 1.907-1.962m16.209 13.46l-4.163-3.497a.93.93 0 0 0-1.207 0l-4.038 3.399a.93.93 0 0 1-1.214-.006l-1.615-1.385a.933.933 0 0 0-1.235.012l-2.737 2.44v1.76h16.209zm-9.535-7.625c0 1.084-.854 1.962-1.907 1.962s-1.907-.878-1.907-1.962c0-1.083.854-1.961 1.907-1.961s1.907.878 1.907 1.961\" clip-rule=\"evenodd\"/></svg>上传图片</button>\n            <div class=\"OwO\"></div>\n<div class=\"ctrm-voice-container\">\n    <button class=\"sb ctrm-voice-btn\" id=\"ctrm-voice-btn\" title=\"点击录音\">\n        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n            <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"></path>\n            <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path>\n            <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\n            <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>\n        </svg>\n        <div class=\"recommend-tag\">新</div>\n    </button>\n    <div class=\"ctrm-voice-recording-indicator\" style=\"display: none;\">\n        <div class=\"ctrm-voice-wave\"></div>\n        <span>正在录音</span>\n        <span class=\"ctrm-voice-timer\">00:00</span>\n    </div>\n</div>\n            <div class=\"ctrm-textarea\">\n                <textarea id=\"editor\" placeholder=\"拖拽或Ctrl+V至此可发图片...\" maxlength=\"700\" class=\"OwO-textarea\" contenteditable></textarea>\n                <div id=\"sendMessageButton\" class=\"ctrm-emit\">发送</div>\n                <div class=\"image-preview-overlay\" style=\"display: none;\"><img src=\"\" alt=\"preview\"></div>\n            </div>\n        </div>\n        <div class=\"ctrm-online\">\n            <div class=\"ctrm-online-wrap\"></div>\n            <div class=\"ctrm-domain\">\n                <div class=\"ctrm-domain-title\">本周尬聊网站排行</div>\n                <div class=\"ctrm-domain-wrap\"></div>\n                <div class=\"ctrm-domain-filter\">\n                    ~<br>\n                    <span class=\"ctrm-domain-show\">_</span>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>    \n`;\n        e.exports = r;\n    }, {}]\n}, {}, [2]);\n(function () {\n    if (window.imageUploaderInitialized) return;\n    window.imageUploaderInitialized = true;\n    function GM_xmlhttpRequest(details) {\n        const xhr = new XMLHttpRequest();\n        xhr.open(details.method, details.url, true);\n        xhr.onload = () => details.onload?.(xhr);\n        xhr.onerror = () => details.onerror?.(xhr);\n        xhr.send(details.data);\n    }\n    function GM_addStyle(css) {\n        const style = document.createElement(\"style\");\n        style.textContent = css;\n        document.head.appendChild(style);\n    }\n    const CONFIG = {\n        AUTH_CODE: \"z-l.top\",\n        SERVER_URL: \"https://img.z-l.top\",\n        UPLOAD_PARAMS: {\n            serverCompress: true,\n            uploadChannel: \"telegram\",\n            autoRetry: true,\n            uploadNameType: \"short\",\n            returnFormat: \"full\",\n            uploadFolder: \"dh\",\n        },\n        NOTIFICATION_DURATION: 3000,\n        ENABLE_MANUAL_UPLOAD: true,\n        UPLOAD_TRIGGER_SELECTOR: \"#cfbed\",\n        MARKDOWN_TEMPLATE: \"{url}\", \n        AUTO_COPY_URL: true,\n        ALLOWED_HOSTS: ['http://localhost:3000', 'bilibili.com', '88lin.github.io', '*.88lin.eu.org', 'jasnode.github.io'],\n        MAX_FILE_SIZE: 5 * 1024 * 1024,\n    };\n    const currentHost = location.hostname;\n    const isAllowed = CONFIG.ALLOWED_HOSTS.some(host => {\n        if (host === \"*\") return true;\n        if (host.startsWith(\"*.\")) return currentHost.endsWith(host.slice(1));\n        return currentHost === host;\n    });\n    GM_addStyle(`\n        .ctrm-textarea {\n            position: relative;\n            box-sizing: border-box;\n        }\n        .ctrm-textarea::after {\n            content: '释放上传图片';\n            position: absolute;\n            top: 0px;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: rgba(242,118,155,0);\n            color: #fff;\n            font-size: 16px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            pointer-events: none;\n            z-index: 9;\n            border: 2px dashed rgba(242,118,155,0);\n            border-radius: 0.5rem;\n            opacity: 0;\n            transition: opacity 0.3s ease, background 0.3s ease, border-color 0.3s ease;\n            box-sizing: border-box;\n        }\n        .ctrm-textarea.dragover::after {\n            background: rgba(194,59,110,0.55);\n            border-color: rgba(255,255,255,0.85);\n            opacity: 1;\n            backdrop-filter: blur(1px);\n        }\n        .upload-warning {\n            position: fixed;\n            top: 10px;\n            right: 10px;\n            padding: 16px;\n            background-color: #b8362b;\n            color: white;\n            border-radius: 14px;\n            box-shadow: 0 4px 18px rgba(47,36,41,.16);\n            z-index: 10000;\n            font-size: 14px;\n            display: none;\n        }\n        .upload-warning a {\n            color: #fff;\n            text-decoration: underline;\n        }\n        .image-preview-overlay {\n          z-index: 10;\n          position: absolute;\n          top: -92px;\n          left: 6px;\n          border-radius: 10px;\n          box-shadow: 0 4px 18px rgba(47,36,41,.10);\n          pointer-events: none;\n          transition: opacity 0.3s ease;\n        }\n        .image-preview-overlay img {\n          height: 60px;\n          width: auto;\n          border-radius: 10px;\n          border: 1px solid rgba(242,118,155,.5);\n        }\n    `);\n    const preview = document.querySelector(\".image-preview-overlay img\");\n    function showNotification(msg, type = \"info\") {\n        const el = document.createElement(\"div\");\n        el.textContent = msg;\n        el.style = `position:fixed;top:10px;right:10px;padding:8px 16px;\n        background:${type === \"error\" ? \"#b8362b\" : type === \"success\" ? \"#2f7a4f\" : \"var(--cx-brand-ink)\"};\n        color:white;border-radius:16px;box-shadow:0 4px 18px rgba(47,36,41,.16);z-index:10000;font-size:14px`;\n        document.body.appendChild(el);\n        setTimeout(() => el.remove(), CONFIG.NOTIFICATION_DURATION);\n    }\n    function checkFileSize(file) {\n        if (file.size > CONFIG.MAX_FILE_SIZE) {\n            showNotification(`文件过大，最大 ${Math.round(CONFIG.MAX_FILE_SIZE / 1024 / 1024)}MB`, \"error\");\n            return false;\n        }\n        return true;\n    }\n    function insertRawUrl(url, element, filename = \"\") {\n        if (!element || typeof element.value !== \"string\") {\n            showNotification(\"插入失败，未找到输入框\", \"error\");\n            return;\n        }\n        const tpl = CONFIG.MARKDOWN_TEMPLATE\n            .replace(\"{url}\", url)\n            .replace(\"{filename}\", filename.replace(/\\.[^/.]+$/, \"\"));\n        const start = typeof element.selectionStart === \"number\" ? element.selectionStart : element.value.length;\n        const end = typeof element.selectionEnd === \"number\" ? element.selectionEnd : element.value.length;\n        const text = element.value;\n        element.value = text.substring(0, start) + tpl + text.substring(end);\n        element.selectionStart = element.selectionEnd = start + tpl.length;\n        element.focus();\n        if (CONFIG.AUTO_COPY_URL && navigator.clipboard) {\n            navigator.clipboard.writeText(url).then(() => {\n                showNotification(\"链接已复制到剪贴板\", \"success\");\n            }).catch(() => {\n                showNotification(\"复制失败\", \"error\");\n            });\n        }\n    }\n    function showImagePreview(file) {\n        const reader = new FileReader();\n        reader.onload = function (e) {\n            preview.src = e.target.result;\n            const overlay = document.querySelector(\".image-preview-overlay\");\n            overlay.style.display = \"block\";\n        };\n        reader.readAsDataURL(file);\n    }\n    function hideImagePreview() {\n        const overlay = document.querySelector(\".image-preview-overlay\");\n        overlay.style.display = \"none\";\n    }\n    async function uploadImage(blob, targetElement) {\n        if (!isAllowed) {\n            showNotification(`当前域名 ${currentHost} 不在白名单`, \"error\");\n            return;\n        }\n        showImagePreview(blob);\n        const filename = `image-${Date.now()}`;\n        const formData = new FormData();\n        formData.append(\"file\", blob, filename);\n        const query = new URLSearchParams({\n            authCode: CONFIG.AUTH_CODE,\n            ...CONFIG.UPLOAD_PARAMS,\n        }).toString();\n        GM_xmlhttpRequest({\n            method: \"POST\",\n            url: `${CONFIG.SERVER_URL}/upload?${query}`,\n            data: formData,\n            onload: (res) => {\n                hideImagePreview();\n                try {\n                    const json = JSON.parse(res.responseText);\n                    const imageUrl = json?.[0]?.src;\n                    if (imageUrl) {\n                        showNotification(\"上传成功\", \"success\");\n                        insertRawUrl(imageUrl, targetElement, filename);\n                    } else {\n                        showNotification(\"上传成功但未返回链接\", \"error\");\n                    }\n                } catch (e) {\n                    showNotification(\"解析响应失败：\" + e.message, \"error\");\n                }\n            },\n            onerror: () => {\n                hideImagePreview();\n                showNotification(\"上传失败（网络错误）\", \"error\");\n            },\n        });\n    }\n    const dropContainer = document.querySelector(\".ctrm-textarea\");\n    const dropTarget = dropContainer?.querySelector(\"textarea\");\n    if (dropContainer && dropTarget) {\n        [\"dragenter\", \"dragover\"].forEach(evt =>\n            dropContainer.addEventListener(evt, (e) => {\n                e.preventDefault();\n                dropContainer.classList.add(\"dragover\");\n            })\n        );\n        [\"dragleave\", \"drop\"].forEach(evt =>\n            dropContainer.addEventListener(evt, (e) => {\n                e.preventDefault();\n                dropContainer.classList.remove(\"dragover\");\n            })\n        );\n        dropContainer.addEventListener(\"drop\", async (event) => {\n            const file = event.dataTransfer.files?.[0];\n            if (!file || !file.type.startsWith(\"image/\")) return;\n            if (!checkFileSize(file)) return;\n            showNotification(\"正在上传...\", \"info\");\n            await uploadImage(file, dropTarget);\n        });\n        dropContainer.addEventListener(\"paste\", async (event) => {\n            const items = event.clipboardData.items;\n            for (let item of items) {\n                if (item.type.startsWith(\"image/\")) {\n                    event.preventDefault();\n                    const blob = item.getAsFile();\n                    if (!checkFileSize(blob)) return;\n                    showNotification(\"正在上传...\", \"info\");\n                    await uploadImage(blob, dropTarget);\n                    break;\n                }\n            }\n        });\n    }\n    const uploadBtn = CONFIG.ENABLE_MANUAL_UPLOAD ? document.querySelector(CONFIG.UPLOAD_TRIGGER_SELECTOR) : null;\n    if (uploadBtn) {\n        const input = document.createElement(\"input\");\n        input.type = \"file\";\n        input.accept = \"image/*\";\n        input.style.display = \"none\";\n        document.body.appendChild(input);\n        input.addEventListener(\"change\", async () => {\n            const file = input.files?.[0];\n            if (!file) return;\n            const textTarget = document.querySelector(\".ctrm-textarea textarea\");\n            if (!textTarget || !checkFileSize(file)) return;\n            showNotification(\"正在上传...\", \"info\");\n            await uploadImage(file, textTarget);\n            input.value = \"\";\n        });\n        uploadBtn.addEventListener(\"click\", () => {\n            const chatBox = document.getElementById(\"ctrm_\");\n            if (chatBox) {\n                chatBox.dispatchEvent(new MouseEvent(\"click\", { bubbles: true }));\n            }\n            input.click();\n        });\n    }\n})();\nwindow.uploadToTelegram = function (file) {\n    return new Promise((resolve, reject) => {\n        const CONFIG = {\n            AUTH_CODE: \"z-l.top\",\n            SERVER_URL: \"https://img.z-l.top\",\n            UPLOAD_PARAMS: {\n                serverCompress: true,\n                uploadChannel: \"telegram\",\n                autoRetry: true,\n                uploadNameType: \"short\",\n                returnFormat: \"full\",\n                uploadFolder: \"dh\",\n            },\n            ALLOWED_HOSTS: ['http://localhost:3000', 'bilibili.com', '88lin.github.io', '*.88lin.eu.org', 'jasnode.github.io'],\n            MAX_FILE_SIZE: 5 * 1024 * 1024,\n        };\n        const currentHost = location.hostname;\n        const isAllowed = CONFIG.ALLOWED_HOSTS.some(host => {\n            if (host === \"*\") return true;\n            if (host.startsWith(\"*.\")) return currentHost.endsWith(host.slice(1));\n            return currentHost === host;\n        });\n        if (!isAllowed) {\n            reject(new Error(\"当前域名不在白名单\"));\n            return;\n        }\n        if (file.size > CONFIG.MAX_FILE_SIZE) {\n            reject(new Error(\"文件过大\"));\n            return;\n        }\n        const filename = `image-${Date.now()}`;\n        const formData = new FormData();\n        formData.append(\"file\", file, filename);\n        const query = new URLSearchParams({\n            authCode: CONFIG.AUTH_CODE,\n            ...CONFIG.UPLOAD_PARAMS,\n        }).toString();\n        const xhr = new XMLHttpRequest();\n        xhr.open(\"POST\", `${CONFIG.SERVER_URL}/upload?${query}`, true);\n        xhr.onload = function () {\n            try {\n                const json = JSON.parse(xhr.responseText);\n                const imageUrl = json?.[0]?.src;\n                if (imageUrl) {\n                    resolve(imageUrl);\n                } else {\n                    reject(new Error(\"上传成功但未返回链接\"));\n                }\n            } catch (e) {\n                reject(new Error(\"解析响应失败：\" + e.message));\n            }\n        };\n        xhr.onerror = function () {\n            reject(new Error(\"上传失败（网络错误）\"));\n        };\n        xhr.send(formData);\n    });\n};\n(function () {\n    const HOSTS = {\n        \"tutu\":       \"https://tutu.to/upload\",\n        \"imgdd\":      \"https://imgdd.com\",\n        \"tucdn\":      \"https://tucdn.wpon.cn\",\n        \"share-text\": \"https://share-text.org/zh/image-to-url\",\n    };\n    const pupBtn = document.querySelector(\"[data-chevereto-pup-trigger]\");\n    const dropdown = document.querySelector(\".img-host-dropdown\");\n    if (!pupBtn || !dropdown) return;\n    let hoverTimer = null;\n    let openedAt = 0;\n    let allowPup = false;\n    function show() {\n        const rect = pupBtn.getBoundingClientRect();\n        dropdown.style.display = \"block\";\n        dropdown.style.minWidth = rect.width + \"px\";\n        const w = dropdown.offsetWidth;\n        dropdown.style.left = Math.min(Math.max(4, rect.left + rect.width / 2 - w / 2), window.innerWidth - w - 4) + \"px\";\n        dropdown.style.bottom = (window.innerHeight - rect.top + 4) + \"px\";\n        openedAt = Date.now();\n    }\n    function hide() { dropdown.style.display = \"none\"; }\n    window.addEventListener(\"click\", function (e) {\n        if (!e.target || !e.target.closest) return;\n        if (e.target.closest(\"[data-chevereto-pup-trigger]\")) {\n            if (allowPup) return;\n            e.preventDefault();\n            e.stopPropagation();\n            if (dropdown.style.display === \"block\" && Date.now() - openedAt > 400) hide();\n            else show();\n        } else if (!e.target.closest(\".img-host-dropdown\")) {\n            hide();\n        }\n    }, true);\n    pupBtn.addEventListener(\"mouseenter\", () => { clearTimeout(hoverTimer); show(); });\n    pupBtn.addEventListener(\"mouseleave\", () => { hoverTimer = setTimeout(hide, 200); });\n    dropdown.addEventListener(\"mouseenter\", () => clearTimeout(hoverTimer));\n    dropdown.addEventListener(\"mouseleave\", () => { hoverTimer = setTimeout(hide, 200); });\n    dropdown.querySelectorAll(\"[data-img-host]\").forEach(item => {\n        item.addEventListener(\"click\", () => {\n            hide();\n            const hostKey = item.getAttribute(\"data-img-host\");\n            const url = HOSTS[hostKey];\n            if (!url) return;\n            if (hostKey === \"tutu\") {\n                allowPup = true;\n                pupBtn.click();\n                allowPup = false;\n            } else {\n                window.open(url, \"_blank\", \"width=720,height=690\");\n            }\n        });\n    });\n})();\n(function () {\n    if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {\n        console.warn('浏览器不支持语音功能');\n        return;\n    }\n    const VOICE_CONFIG = {\n        MAX_RECORD_TIME: 30000,\n        MIN_RECORD_TIME: 1000,\n        UPLOAD_FOLDER: \"v\"\n    };\n    let mediaRecorder = null;\n    let audioChunks = [];\n    let startTime = null;\n    let timerInterval = null;\n    let voiceAutoSendLock = false;\n    let recordedMime = 'audio/webm';\n    let recordedExt = 'webm';\n    const VOICE_MIME_CANDIDATES = [\n        ['audio/webm;codecs=opus', 'webm'],\n        ['audio/webm', 'webm'],\n        ['audio/mp4;codecs=mp4a.40.2', 'mp4'],\n        ['audio/mp4', 'mp4'],\n        ['audio/ogg;codecs=opus', 'ogg'],\n        ['audio/ogg', 'ogg']\n    ];\n    function pickVoiceMime() {\n        if (typeof MediaRecorder === 'undefined' || !MediaRecorder.isTypeSupported) return null;\n        for (const [mime, ext] of VOICE_MIME_CANDIDATES) {\n            if (MediaRecorder.isTypeSupported(mime)) return { mime, ext };\n        }\n        return null;\n    }\n    function extFromMime(mime) {\n        if (!mime) return 'webm';\n        if (mime.indexOf('mp4') !== -1 || mime.indexOf('aac') !== -1 || mime.indexOf('m4a') !== -1) return 'mp4';\n        if (mime.indexOf('ogg') !== -1) return 'ogg';\n        if (mime.indexOf('wav') !== -1) return 'wav';\n        if (mime.indexOf('mpeg') !== -1) return 'mp3';\n        return 'webm';\n    }\n    function revokeVoiceUrl(url) {\n        if (!url) return;\n        try { URL.revokeObjectURL(url) } catch (err) { }\n    }\n    function dropPendingVoiceBlob() {\n        if (window._lastVoiceBlobUrl) {\n            const inUse = window._myVoiceBlobs && Object.keys(window._myVoiceBlobs)\n                .some(function (k) { return window._myVoiceBlobs[k] === window._lastVoiceBlobUrl });\n            if (!inUse) revokeVoiceUrl(window._lastVoiceBlobUrl);\n        }\n        window._lastVoiceBlob = null;\n        window._lastVoiceBlobUrl = null;\n    }\n    function voiceToast(msg, type) {\n        window.__ctrmToast ? window.__ctrmToast(msg, type) : alert(msg);\n    }\n    let audioBlob = null;\n    let state = 'idle'; \n    let reviewPanel = null;\n    const voiceBtn = document.getElementById('ctrm-voice-btn');\n    const timerDisplay = document.querySelector('.ctrm-voice-recording-indicator .ctrm-voice-timer');\n    const recordingIndicator = document.querySelector('.ctrm-voice-recording-indicator');\n    if (!voiceBtn || !recordingIndicator) {\n        console.warn('[ctrm] 未找到录音按钮，语音功能未启用');\n        return;\n    }\n    function alignRecordingIndicator() {\n        if (recordingIndicator.style.display === 'none') return;\n        const rect = voiceBtn.getBoundingClientRect();\n        recordingIndicator.style.position = 'fixed';\n        recordingIndicator.style.left = (rect.left + rect.width / 2) + 'px';\n        recordingIndicator.style.top = (rect.top - recordingIndicator.offsetHeight - 12) + 'px';\n        recordingIndicator.style.transform = 'translateX(-50%)';\n        recordingIndicator.style.zIndex = '9999';\n    }\n    window.addEventListener('resize', alignRecordingIndicator);\n    window.addEventListener('scroll', alignRecordingIndicator);\n    voiceBtn.addEventListener('click', async function () {\n        if (state === 'idle') {\n            await startRecording();\n        } else if (state === 'recording') {\n            await stopRecording();\n        }\n    });\n    async function startRecording() {\n        if (state !== 'idle') return;\n        try {\n            const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n            const picked = pickVoiceMime();\n            mediaRecorder = picked ? new MediaRecorder(stream, { mimeType: picked.mime }) : new MediaRecorder(stream);\n            recordedMime = mediaRecorder.mimeType || (picked && picked.mime) || 'audio/webm';\n            recordedExt = extFromMime(recordedMime);\n            audioChunks = [];\n            mediaRecorder.ondataavailable = (event) => {\n                if (event.data.size > 0) {\n                    audioChunks.push(event.data);\n                }\n            };\n            mediaRecorder.onstop = onRecordingStop;\n            mediaRecorder.start();\n            voiceBtn.classList.add('recording');\n            recordingIndicator.style.display = 'flex';\n            alignRecordingIndicator();\n            if (timerDisplay) timerDisplay.textContent = '00:00';\n            startTime = Date.now();\n            timerInterval = setInterval(() => {\n                const elapsed = Date.now() - startTime;\n                if (timerDisplay) timerDisplay.textContent = formatTime(elapsed);\n                if (elapsed >= VOICE_CONFIG.MAX_RECORD_TIME) {\n                    stopRecording();\n                }\n            }, 100);\n            state = 'recording';\n        } catch (err) {\n            console.error('录音错误:', err);\n            if (err.name === 'NotAllowedError') {\n                voiceToast('请允许麦克风权限', 'error');\n            } else if (err.name === 'NotFoundError') {\n                voiceToast('未找到麦克风设备', 'error');\n            } else {\n                voiceToast('无法开始录音：' + (err && (err.message || err.name) || err), 'error');\n            }\n        }\n    }\n    async function stopRecording() {\n        if (state !== 'recording') return;\n        if (mediaRecorder && mediaRecorder.state === 'recording') {\n            mediaRecorder.stop();\n            mediaRecorder.stream.getTracks().forEach(track => track.stop());\n        }\n        if (timerInterval) {\n            clearInterval(timerInterval);\n            timerInterval = null;\n        }\n        voiceBtn.classList.remove('recording');\n        recordingIndicator.style.display = 'none';\n        if (timerDisplay) timerDisplay.textContent = '00:00';\n        state = 'review';\n    }\n    function onRecordingStop() {\n        const durationMs = Date.now() - startTime;\n        audioBlob = new Blob(audioChunks, { type: recordedMime });\n        if (durationMs < VOICE_CONFIG.MIN_RECORD_TIME || audioBlob.size === 0) {\n            voiceToast('录音内容过短或失败，请重试', 'error');\n            state = 'idle';\n            return;\n        }\n        dropPendingVoiceBlob();\n        window._lastVoiceBlob = audioBlob;\n        window._lastVoiceBlobUrl = URL.createObjectURL(audioBlob);\n        showReviewPanel(durationMs);\n    }\n    function showReviewPanel(durationMs) {\n        if (reviewPanel) reviewPanel.remove();\n        reviewPanel = document.createElement('div');\n        reviewPanel.className = 'ctrm-voice-review-panel';\n        reviewPanel.innerHTML = `\n            <audio class=\"ctrm-voice-review-audio\" src=\"${window._lastVoiceBlobUrl}\" controls style=\"vertical-align:middle;width:180px;display:none;\"></audio>\n            <button class=\"ctrm-voice-review-btn play\">试听</button>\n            <button class=\"ctrm-voice-review-btn delete\">删除</button>\n            <button class=\"ctrm-voice-review-btn send\">发送</button>\n        `;\n        voiceBtn.parentNode.insertBefore(reviewPanel, voiceBtn.nextSibling);\n        const audio = reviewPanel.querySelector('.ctrm-voice-review-audio');\n        const playBtn = reviewPanel.querySelector('.ctrm-voice-review-btn.play');\n        playBtn.onclick = function () {\n            if (audio.paused) {\n                audio.play();\n                playBtn.textContent = '暂停';\n            } else {\n                audio.pause();\n                playBtn.textContent = '试听';\n            }\n        };\n        audio.onended = () => { playBtn.textContent = '试听'; };\n        reviewPanel.querySelector('.ctrm-voice-review-btn.delete').onclick = function () {\n            audio.pause();\n            audio.removeAttribute('src');\n            dropPendingVoiceBlob();\n            reviewPanel.remove();\n            reviewPanel = null;\n            state = 'idle';\n        };\n        const sendBtn = reviewPanel.querySelector('.ctrm-voice-review-btn.send');\n        sendBtn.onclick = async function () {\n            sendBtn.disabled = true;\n            sendBtn.innerHTML = '发送中...<span class=\"ctrm-send-loading\"></span>';\n            sendBtn.classList.add('sending');\n            if (!document.getElementById('ctrm-voice-send-style')) {\n                const style = document.createElement('style');\n                style.id = 'ctrm-voice-send-style';\n                style.innerHTML = `\n                .ctrm-voice-review-btn.sending {\n                    position: relative;\n                    color: #fff;\n                    background: #2f7a4f;\n                    border-color: #2f7a4f;\n                    padding-right: 8px !important;\n                }\n                .ctrm-send-loading {\n                    display: inline-block;\n                    width: 16px;\n                    height: 16px;\n                    vertical-align: middle;\n                    margin-left: 6px;\n                    border: 2px solid rgba(255,255,255,.45);\n                    border-radius: 50%;\n                    border-top: 2px solid #fff;\n                    animation: ctrm-spin 0.7s linear infinite;\n                    box-sizing: border-box;\n                }\n                @keyframes ctrm-spin {\n                    0% { transform: rotate(0deg);}\n                    100% { transform: rotate(360deg);}\n                }\n                `;\n                document.head.appendChild(style);\n            }\n            await uploadAndSendVoice(window._lastVoiceBlob, durationMs);\n            sendBtn.disabled = false;\n            sendBtn.innerHTML = '发送';\n            sendBtn.classList.remove('sending');\n            reviewPanel.remove();\n            reviewPanel = null;\n            state = 'idle';\n        };\n    }\n    (function () {\n        if (document.getElementById('ctrm-voice-review-style')) return;\n        var style = document.createElement('style');\n        style.id = 'ctrm-voice-review-style';\n        style.innerHTML = `\n        .ctrm-voice-review-panel {\n            position: absolute;\n            top: -40px;\n            left: 50%;\n            transform: translateX(-50%);\n            background: rgba(47, 36, 41, 0.92);\n            color: white;\n            padding: 5px 10px;\n            border-radius: 999px;\n            font-size: 12px;\n            white-space: nowrap;\n            z-index: 1;\n            flex-direction: row;\n            flex-wrap: wrap;\n        }\n        .ctrm-voice-review-btn {\n            color: var(--cx-ink-2);\n            background: #fff; border: 1px solid rgba(47,36,41,.16); border-radius: 999px; padding: 3px 12px; cursor: pointer; font-size: 13px; transition: background 0.2s, border-color 0.2s, color 0.2s;\n        }\n        .ctrm-voice-review-btn:hover { background: rgba(242,118,155,.12); border-color: #f2769b; color: #c23b6e; }\n        .ctrm-voice-review-btn.delete { color: #b8362b; border-color: rgba(184,54,43,.45); }\n        .ctrm-voice-review-btn.delete:hover { background: rgba(184,54,43,.10); border-color: #b8362b; color: #b8362b; }\n        .ctrm-voice-review-btn.send { color: #fff; background: #2f7a4f; border-color: #2f7a4f; }\n        .ctrm-voice-review-btn.send:hover { color: #fff; background: #26643f; border-color: #26643f; }\n        .ctrm-voice-review-btn:disabled { cursor: default; }\n        .ctrm-voice-review-btn.send:disabled:hover { background: #2f7a4f; border-color: #2f7a4f; }\n        `;\n        document.head.appendChild(style);\n    })();\n    function formatTime(ms) {\n        const seconds = Math.floor(ms / 1000);\n        const minutes = Math.floor(seconds / 60);\n        const displaySeconds = seconds % 60;\n        return `${minutes.toString().padStart(2, '0')}:${displaySeconds.toString().padStart(2, '0')}`;\n    }\n    async function uploadAndSendVoice(blob, durationMs) {\n        console.log('uploadAndSendVoice blob:', blob, typeof blob, blob && blob.size);\n        if (voiceAutoSendLock) return void voiceToast('上一条语音还在发送中，请稍候再试', 'error');\n        voiceAutoSendLock = true;\n        const filename = `voice-${Date.now()}.${recordedExt}`;\n        const formData = new FormData();\n        formData.append('file', blob, filename);\n        const query = new URLSearchParams({\n            authCode: 'z-l.top',\n            serverCompress: true,\n            uploadChannel: 'telegram',\n            autoRetry: true,\n            uploadNameType: 'short',\n            returnFormat: 'full',\n            uploadFolder: VOICE_CONFIG.UPLOAD_FOLDER\n        }).toString();\n        try {\n            const response = await fetch(`https://img.z-l.top/upload?${query}`, {\n                method: 'POST',\n                body: formData\n            });\n            const text = await response.text();\n            console.log('upload response text:', text);\n            let result;\n            try {\n                result = JSON.parse(text);\n            } catch (e) {\n                throw new Error('服务器返回内容不是合法JSON: ' + text);\n            }\n            if (result[0]?.src) {\n                const voiceUrl = result[0].src;\n                if (!window._myVoiceBlobs || typeof window._myVoiceBlobs !== 'object') window._myVoiceBlobs = {};\n                if (window._lastVoiceBlobUrl) {\n                    if (window._myVoiceBlobs[voiceUrl] && window._myVoiceBlobs[voiceUrl] !== window._lastVoiceBlobUrl) {\n                        revokeVoiceUrl(window._myVoiceBlobs[voiceUrl]);\n                    }\n                    window._myVoiceBlobs[voiceUrl] = window._lastVoiceBlobUrl;\n                    window._lastVoiceBlob = null;\n                    window._lastVoiceBlobUrl = null;\n                }\n                const message = `[语音消息 ${formatTime(durationMs)}] ${voiceUrl}`;\n                const chatInput = document.querySelector('.ctrm-textarea textarea');\n                const emitBtn = document.querySelector('.ctrm-emit');\n                if (chatInput && emitBtn) {\n                    chatInput.value = message;\n                    emitBtn.click();\n                } else {\n                    voiceToast('找不到聊天输入框，语音没能发出；链接已复制到控制台\\n' + voiceUrl, 'error');\n                    console.warn('[ctrm] 语音已上传但无法发送:', voiceUrl);\n                }\n            } else {\n                voiceToast('语音上传失败', 'error');\n                dropPendingVoiceBlob();\n            }\n        } catch (error) {\n            console.error('上传错误:', error);\n            voiceToast('语音上传失败，请检查网络\\n' + (error && error.message ? error.message : ''), 'error');\n            dropPendingVoiceBlob();\n        } finally {\n            setTimeout(() => voiceAutoSendLock = false, 1000);\n        }\n    }\n})();\nfunction preloadAllVoiceAudios() {\n    document.querySelectorAll('.ctrm-voice-bubble audio').forEach(audio => {\n        if (!audio._preloadTried) {\n            audio._preloadTried = true;\n            if (audio.src) {\n                audio.load();\n                audio.onerror = function () {\n                    const bubble = audio.closest('.ctrm-voice-bubble');\n                    if (bubble && !bubble.querySelector('.ctrm-voice-error')) {\n                        const err = document.createElement('span');\n                        err.className = 'ctrm-voice-error';\n                        err.textContent = '语音加载失败';\n                        err.style.color = '#b8362b';\n                        err.style.marginLeft = '8px';\n                        bubble.appendChild(err);\n                    }\n                };\n            }\n        }\n    });\n}\nsetTimeout(preloadAllVoiceAudios, 300);\n"]}