// 5.0.0-preview-4-build.3 (TBD) !function () { "use strict"; var x = function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t] }, j = function (n, r) { return function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; return n(r.apply(null, e)) } }, q = function (e) { return function () { return e } }, $ = function (e) { return e }; function m(r) { for (var o = [], e = 1; e < arguments.length; e++)o[e - 1] = arguments[e]; return function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; var n = o.concat(e); return r.apply(null, n) } } var e, t, n, r, o, i, a, u, s, c, l, f, d, g, p, h, v, b = q(!1), y = q(!0), C = b, w = y, N = function () { return E }, E = (r = { fold: function (e, t) { return e() }, is: C, isSome: C, isNone: w, getOr: n = function (e) { return e }, getOrThunk: t = function (e) { return e() }, getOrDie: function (e) { throw new Error(e || "error: getOrDie called on none.") }, getOrNull: function () { return null }, getOrUndefined: function () { return undefined }, or: n, orThunk: t, map: N, ap: N, each: function () { }, bind: N, flatten: N, exists: C, forall: w, filter: N, equals: e = function (e) { return e.isNone() }, equals_: e, toArray: function () { return [] }, toString: q("none()") }, Object.freeze && Object.freeze(r), r), S = function (n) { var e = function () { return n }, t = function () { return o }, r = function (e) { return e(n) }, o = { fold: function (e, t) { return t(n) }, is: function (e) { return n === e }, isSome: w, isNone: C, getOr: e, getOrThunk: e, getOrDie: e, getOrNull: e, getOrUndefined: e, or: t, orThunk: t, map: function (e) { return S(e(n)) }, ap: function (e) { return e.fold(N, function (e) { return S(e(n)) }) }, each: function (e) { e(n) }, bind: r, flatten: e, exists: r, forall: r, filter: function (e) { return e(n) ? o : E }, equals: function (e) { return e.is(n) }, equals_: function (e, t) { return e.fold(C, function (e) { return t(n, e) }) }, toArray: function () { return [n] }, toString: function () { return "some(" + n + ")" } }; return o }, A = { some: S, none: N, from: function (e) { return null === e || e === undefined ? E : S(e) } }, T = function (t) { return function (e) { return function (e) { if (null === e)return "null"; var t = typeof e; return "object" === t && Array.prototype.isPrototypeOf(e) ? "array" : "object" === t && String.prototype.isPrototypeOf(e) ? "string" : t }(e) === t } }, k = T("string"), R = T("object"), D = T("array"), B = T("null"), _ = T("boolean"), O = T("function"), P = T("number"), L = (o = Array.prototype.indexOf) === undefined ? function (e, t) { return H(e, t) } : function (e, t) { return o.call(e, t) }, I = function (e, t) { return -1 < L(e, t) }, W = function (e, t) { for (var n = e.length, r = new Array(n), o = 0; o < n; o++) { var i = e[o]; r[o] = t(i, o, e) } return r }, M = function (e, t) { for (var n = 0, r = e.length; n < r; n++)t(e[n], n, e) }, K = function (e, t) { for (var n = [], r = [], o = 0, i = e.length; o < i; o++) { var a = e[o]; (t(a, o, e) ? n : r).push(a) } return {pass: n, fail: r} }, F = function (e, t) { for (var n = [], r = 0, o = e.length; r < o; r++) { var i = e[r]; t(i, r, e) && n.push(i) } return n }, U = function (e, t, n) { return M(e, function (e) { n = t(n, e) }), n }, z = function (e, t) { for (var n = 0, r = e.length; n < r; n++) { var o = e[n]; if (t(o, n, e))return A.some(o) } return A.none() }, V = function (e, t) { for (var n = 0, r = e.length; n < r; n++)if (t(e[n], n, e))return A.some(n); return A.none() }, H = function (e, t) { for (var n = 0, r = e.length; n < r; ++n)if (e[n] === t)return n; return -1 }, X = Array.prototype.push, Y = function (e, t) { return function (e) { for (var t = [], n = 0, r = e.length; n < r; ++n) { if (!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item " + n + " was not an array, input: " + e); X.apply(t, e[n]) } return t }(W(e, t)) }, G = function (e, t) { for (var n = 0, r = e.length; n < r; ++n)if (!0 !== t(e[n], n, e))return !1; return !0 }, J = Array.prototype.slice, Q = function (e, t) { return F(e, function (e) { return !I(t, e) }) }, Z = function (e) { return 0 === e.length ? A.none() : A.some(e[0]) }, ee = function (e) { return 0 === e.length ? A.none() : A.some(e[e.length - 1]) }, te = O(Array.from) ? Array.from : function (e) { return J.call(e) }, ne = "undefined" != typeof window ? window : Function("return this;")(), re = function (e, t) { return function (e, t) { for (var n = t !== undefined && null !== t ? t : ne, r = 0; r < e.length && n !== undefined && null !== n; ++r)n = n[e[r]]; return n }(e.split("."), t) }, oe = { getOrDie: function (e, t) { var n = re(e, t); if (n === undefined || null === n)throw e + " not available on this browser"; return n } }, ie = function () { return oe.getOrDie("URL") }, ae = { createObjectURL: function (e) { return ie().createObjectURL(e) }, revokeObjectURL: function (e) { ie().revokeObjectURL(e) } }, ue = navigator, se = ue.userAgent, ce = function (e) { return "matchMedia"in window && matchMedia(e).matches }; d = /Android/.test(se), a = (a = !(i = /WebKit/.test(se)) && /MSIE/gi.test(se) && /Explorer/gi.test(ue.appName)) && /MSIE (\w+)\./.exec(se)[1], u = -1 !== se.indexOf("Trident/") && (-1 !== se.indexOf("rv:") || -1 !== ue.appName.indexOf("Netscape")) && 11, s = -1 !== se.indexOf("Edge/") && !a && !u && 12, a = a || u || s, c = !i && !u && /Gecko/.test(se), l = -1 !== se.indexOf("Mac"), f = /(iPad|iPhone)/.test(se), g = "FormData"in window && "FileReader"in window && "URL"in window && !!ae.createObjectURL, p = ce("only screen and (max-device-width: 480px)") && (d || f), h = ce("only screen and (min-width: 800px)") && (d || f), v = -1 !== se.indexOf("Windows Phone"), s && (i = !1); var le, fe = { opera: !1, webkit: i, ie: a, gecko: c, mac: l, iOS: f, android: d, contentEditable: !f || g || 534 <= parseInt(se.match(/AppleWebKit\/(\d*)/)[1], 10), transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", caretAfter: 8 !== a, range: window.getSelection && "Range"in window, documentMode: a && !s ? document.documentMode || 7 : 10, fileApi: g, ceFalse: !1 === a || 8 < a, cacheSuffix: null, container: null, overrideViewPort: null, experimentalShadowDom: !1, canHaveCSP: !1 === a || 11 < a, desktop: !p && !h, windowsPhone: v }, de = window.Promise ? window.Promise : function () { function r(e, t) { return function () { e.apply(t, arguments) } } var e = Array.isArray || function (e) { return "[object Array]" === Object.prototype.toString.call(e) }, i = function (e) { if ("object" != typeof this)throw new TypeError("Promises must be constructed via new"); if ("function" != typeof e)throw new TypeError("not a function"); this._state = null, this._value = null, this._deferreds = [], l(e, r(o, this), r(u, this)) }, t = i.immediateFn || "function" == typeof setImmediate && setImmediate || function (e) { setTimeout(e, 1) }; function a(r) { var o = this; null !== this._state ? t(function () { var e = o._state ? r.onFulfilled : r.onRejected; if (null !== e) { var t; try { t = e(o._value) } catch (n) { return void r.reject(n) } r.resolve(t) } else(o._state ? r.resolve : r.reject)(o._value) }) : this._deferreds.push(r) } function o(e) { try { if (e === this)throw new TypeError("A promise cannot be resolved with itself."); if (e && ("object" == typeof e || "function" == typeof e)) { var t = e.then; if ("function" == typeof t)return void l(r(t, e), r(o, this), r(u, this)) } this._state = !0, this._value = e, s.call(this) } catch (n) { u.call(this, n) } } function u(e) { this._state = !1, this._value = e, s.call(this) } function s() { for (var e = 0, t = this._deferreds.length; e < t; e++)a.call(this, this._deferreds[e]); this._deferreds = null } function c(e, t, n, r) { this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.resolve = n, this.reject = r } function l(e, t, n) { var r = !1; try { e(function (e) { r || (r = !0, t(e)) }, function (e) { r || (r = !0, n(e)) }) } catch (o) { if (r)return; r = !0, n(o) } } return i.prototype["catch"] = function (e) { return this.then(null, e) }, i.prototype.then = function (n, r) { var o = this; return new i(function (e, t) { a.call(o, new c(n, r, e, t)) }) }, i.all = function () { var s = Array.prototype.slice.call(1 === arguments.length && e(arguments[0]) ? arguments[0] : arguments); return new i(function (o, i) { if (0 === s.length)return o([]); var a = s.length; function u(t, e) { try { if (e && ("object" == typeof e || "function" == typeof e)) { var n = e.then; if ("function" == typeof n)return void n.call(e, function (e) { u(t, e) }, i) } s[t] = e, 0 == --a && o(s) } catch (r) { i(r) } } for (var e = 0; e < s.length; e++)u(e, s[e]) }) }, i.resolve = function (t) { return t && "object" == typeof t && t.constructor === i ? t : new i(function (e) { e(t) }) }, i.reject = function (n) { return new i(function (e, t) { t(n) }) }, i.race = function (o) { return new i(function (e, t) { for (var n = 0, r = o.length; n < r; n++)o[n].then(e, t) }) }, i }(), me = function (e, t) { return "number" != typeof t && (t = 0), setTimeout(e, t) }, ge = function (e, t) { return "number" != typeof t && (t = 1), setInterval(e, t) }, pe = function (t, n) { var r, e; return (e = function () { var e = arguments; clearTimeout(r), r = me(function () { t.apply(this, e) }, n) }).stop = function () { clearTimeout(r) }, e }, he = { requestAnimationFrame: function (e, t) { le ? le.then(e) : le = new de(function (e) { t || (t = document.body), function (e, t) { var n, r = window.requestAnimationFrame, o = ["ms", "moz", "webkit"]; for (n = 0; n < o.length && !r; n++)r = window[o[n] + "RequestAnimationFrame"]; r || (r = function (e) { window.setTimeout(e, 0) }), r(e, t) }(e, t) }).then(e) }, setTimeout: me, setInterval: ge, setEditorTimeout: function (e, t, n) { return me(function () { e.removed || t() }, n) }, setEditorInterval: function (e, t, n) { var r; return r = ge(function () { e.removed ? clearInterval(r) : t() }, n) }, debounce: pe, throttle: pe, clearInterval: function (e) { return clearInterval(e) }, clearTimeout: function (e) { return clearTimeout(e) } }, ve = /^(?:mouse|contextmenu)|click/, be = { keyLocation: 1, layerX: 1, layerY: 1, returnValue: 1, webkitMovementX: 1, webkitMovementY: 1, keyIdentifier: 1 }, ye = function () { return !1 }, Ce = function () { return !0 }, xe = function (e, t, n, r) { e.addEventListener ? e.addEventListener(t, n, r || !1) : e.attachEvent && e.attachEvent("on" + t, n) }, we = function (e, t, n, r) { e.removeEventListener ? e.removeEventListener(t, n, r || !1) : e.detachEvent && e.detachEvent("on" + t, n) }, Ne = function (e, t) { var n, r, o = t || {}; for (n in e)be[n] || (o[n] = e[n]); if (o.target || (o.target = o.srcElement || document), fe.experimentalShadowDom && (o.target = function (e, t) { if (e.composedPath) { var n = e.composedPath(); if (n && 0 < n.length)return n[0] } return t }(e, o.target)), e && ve.test(e.type) && e.pageX === undefined && e.clientX !== undefined) { var i = o.target.ownerDocument || document, a = i.documentElement, u = i.body; o.pageX = e.clientX + (a && a.scrollLeft || u && u.scrollLeft || 0) - (a && a.clientLeft || u && u.clientLeft || 0), o.pageY = e.clientY + (a && a.scrollTop || u && u.scrollTop || 0) - (a && a.clientTop || u && u.clientTop || 0) } return o.preventDefault = function () { o.isDefaultPrevented = Ce, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1) }, o.stopPropagation = function () { o.isPropagationStopped = Ce, e && (e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0) }, !(o.stopImmediatePropagation = function () { o.isImmediatePropagationStopped = Ce, o.stopPropagation() }) == ((r = o).isDefaultPrevented === Ce || r.isDefaultPrevented === ye) && (o.isDefaultPrevented = ye, o.isPropagationStopped = ye, o.isImmediatePropagationStopped = ye), "undefined" == typeof o.metaKey && (o.metaKey = !1), o }, Ee = function (e, t, n) { var r = e.document, o = {type: "ready"}; if (n.domLoaded)t(o); else { var i = function () { return "complete" === r.readyState || "interactive" === r.readyState && r.body }, a = function () { n.domLoaded || (n.domLoaded = !0, t(o)) }, u = function () { i() && (we(r, "readystatechange", u), a()) }, s = function () { try { r.documentElement.doScroll("left") } catch (e) { return void he.setTimeout(s) } a() }; !r.addEventListener || fe.ie && fe.ie < 11 ? (xe(r, "readystatechange", u), r.documentElement.doScroll && e.self === e.top && s()) : i() ? a() : xe(e, "DOMContentLoaded", a), xe(e, "load", a) } }, Se = function () { var m, g, p, h, v, b = this, y = {}; g = "mce-data-" + (+new Date).toString(32), h = "onmouseenter"in document.documentElement, p = "onfocusin"in document.documentElement, v = { mouseenter: "mouseover", mouseleave: "mouseout" }, m = 1, b.domLoaded = !1, b.events = y; var C = function (e, t) { var n, r, o, i, a = y[t]; if (n = a && a[e.type])for (r = 0, o = n.length; r < o; r++)if ((i = n[r]) && !1 === i.func.call(i.scope, e) && e.preventDefault(), e.isImmediatePropagationStopped())return }; b.bind = function (e, t, n, r) { var o, i, a, u, s, c, l, f = window, d = function (e) { C(Ne(e || f.event), o) }; if (e && 3 !== e.nodeType && 8 !== e.nodeType) { for (e[g] ? o = e[g] : (o = m++, e[g] = o, y[o] = {}), r = r || e, a = (t = t.split(" ")).length; a--;)c = d, s = l = !1, "DOMContentLoaded" === (u = t[a]) && (u = "ready"), b.domLoaded && "ready" === u && "complete" === e.readyState ? n.call(r, Ne({type: u})) : (h || (s = v[u]) && (c = function (e) { var t, n; if (t = e.currentTarget, (n = e.relatedTarget) && t.contains)n = t.contains(n); else for (; n && n !== t;)n = n.parentNode; n || ((e = Ne(e || f.event)).type = "mouseout" === e.type ? "mouseleave" : "mouseenter", e.target = t, C(e, o)) }), p || "focusin" !== u && "focusout" !== u || (l = !0, s = "focusin" === u ? "focus" : "blur", c = function (e) { (e = Ne(e || f.event)).type = "focus" === e.type ? "focusin" : "focusout", C(e, o) }), (i = y[o][u]) ? "ready" === u && b.domLoaded ? n({type: u}) : i.push({ func: n, scope: r }) : (y[o][u] = i = [{ func: n, scope: r }], i.fakeName = s, i.capture = l, i.nativeHandler = c, "ready" === u ? Ee(e, c, b) : xe(e, s || u, c, l))); return e = i = 0, n } }, b.unbind = function (e, t, n) { var r, o, i, a, u, s; if (!e || 3 === e.nodeType || 8 === e.nodeType)return b; if (r = e[g]) { if (s = y[r], t) { for (i = (t = t.split(" ")).length; i--;)if (o = s[u = t[i]]) { if (n)for (a = o.length; a--;)if (o[a].func === n) { var c = o.nativeHandler, l = o.fakeName, f = o.capture; (o = o.slice(0, a).concat(o.slice(a + 1))).nativeHandler = c, o.fakeName = l, o.capture = f, s[u] = o } n && 0 !== o.length || (delete s[u], we(e, o.fakeName || u, o.nativeHandler, o.capture)) } } else { for (u in s)o = s[u], we(e, o.fakeName || u, o.nativeHandler, o.capture); s = {} } for (u in s)return b; delete y[r]; try { delete e[g] } catch (d) { e[g] = null } } return b }, b.fire = function (e, t, n) { var r; if (!e || 3 === e.nodeType || 8 === e.nodeType)return b; for ((n = Ne(null, n)).type = t, n.target = e; (r = e[g]) && C(n, r), (e = e.parentNode || e.ownerDocument || e.defaultView || e.parentWindow) && !n.isPropagationStopped();); return b }, b.clean = function (e) { var t, n, r = b.unbind; if (!e || 3 === e.nodeType || 8 === e.nodeType)return b; if (e[g] && r(e), e.getElementsByTagName || (e = e.document), e && e.getElementsByTagName)for (r(e), t = (n = e.getElementsByTagName("*")).length; t--;)(e = n[t])[g] && r(e); return b }, b.destroy = function () { y = {} }, b.cancel = function (e) { return e && (e.preventDefault(), e.stopImmediatePropagation()), !1 } }; Se.Event = new Se, Se.Event.bind(window, "ready", function () { }); var Te, ke, Ae, Re, De, Be, _e, Oe, Pe, Le, Ie, Me, Fe, Ue, ze, Ve, He, je, qe = "sizzle" + -new Date, $e = window.document, We = 0, Ke = 0, Xe = Tt(), Ye = Tt(), Ge = Tt(), Je = function (e, t) { return e === t && (Ie = !0), 0 }, Qe = typeof undefined, Ze = {}.hasOwnProperty, et = [], tt = et.pop, nt = et.push, rt = et.push, ot = et.slice, it = et.indexOf || function (e) { for (var t = 0, n = this.length; t < n; t++)if (this[t] === e)return t; return -1 }, at = "[\\x20\\t\\r\\n\\f]", ut = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", st = "\\[" + at + "*(" + ut + ")(?:" + at + "*([*^$|!~]?=)" + at + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + ut + "))|)" + at + "*\\]", ct = ":(" + ut + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + st + ")*)|.*)\\)|)", lt = new RegExp("^" + at + "+|((?:^|[^\\\\])(?:\\\\.)*)" + at + "+$", "g"), ft = new RegExp("^" + at + "*," + at + "*"), dt = new RegExp("^" + at + "*([>+~]|" + at + ")" + at + "*"), mt = new RegExp("=" + at + "*([^\\]'\"]*?)" + at + "*\\]", "g"), gt = new RegExp(ct), pt = new RegExp("^" + ut + "$"), ht = { ID: new RegExp("^#(" + ut + ")"), CLASS: new RegExp("^\\.(" + ut + ")"), TAG: new RegExp("^(" + ut + "|[*])"), ATTR: new RegExp("^" + st), PSEUDO: new RegExp("^" + ct), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + at + "*(even|odd|(([+-]|)(\\d*)n|)" + at + "*(?:([+-]|)" + at + "*(\\d+)|))" + at + "*\\)|)", "i"), bool: new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i"), needsContext: new RegExp("^" + at + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + at + "*((?:-\\d)?\\d*)" + at + "*\\)|)(?=[^-]|$)", "i") }, vt = /^(?:input|select|textarea|button)$/i, bt = /^h\d$/i, yt = /^[^{]+\{\s*\[native \w/, Ct = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, xt = /[+~]/, wt = /'|\\/g, Nt = new RegExp("\\\\([\\da-f]{1,6}" + at + "?|(" + at + ")|.)", "ig"), Et = function (e, t, n) { var r = "0x" + t - 65536; return r != r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) }; try { rt.apply(et = ot.call($e.childNodes), $e.childNodes), et[$e.childNodes.length].nodeType } catch (CN) { rt = { apply: et.length ? function (e, t) { nt.apply(e, ot.call(t)) } : function (e, t) { for (var n = e.length, r = 0; e[n++] = t[r++];); e.length = n - 1 } } } var St = function (e, t, n, r) { var o, i, a, u, s, c, l, f, d, m; if ((t ? t.ownerDocument || t : $e) !== Fe && Me(t), n = n || [], !e || "string" != typeof e)return n; if (1 !== (u = (t = t || Fe).nodeType) && 9 !== u)return []; if (ze && !r) { if (o = Ct.exec(e))if (a = o[1]) { if (9 === u) { if (!(i = t.getElementById(a)) || !i.parentNode)return n; if (i.id === a)return n.push(i), n } else if (t.ownerDocument && (i = t.ownerDocument.getElementById(a)) && je(t, i) && i.id === a)return n.push(i), n } else { if (o[2])return rt.apply(n, t.getElementsByTagName(e)), n; if ((a = o[3]) && ke.getElementsByClassName)return rt.apply(n, t.getElementsByClassName(a)), n } if (ke.qsa && (!Ve || !Ve.test(e))) { if (f = l = qe, d = t, m = 9 === u && e, 1 === u && "object" !== t.nodeName.toLowerCase()) { for (c = Be(e), (l = t.getAttribute("id")) ? f = l.replace(wt, "\\$&") : t.setAttribute("id", f), f = "[id='" + f + "'] ", s = c.length; s--;)c[s] = f + Pt(c[s]); d = xt.test(e) && _t(t.parentNode) || t, m = c.join(",") } if (m)try { return rt.apply(n, d.querySelectorAll(m)), n } catch (g) { } finally { l || t.removeAttribute("id") } } } return Oe(e.replace(lt, "$1"), t, n, r) }; function Tt() { var n = []; return function r(e, t) { return n.push(e + " ") > Ae.cacheLength && delete r[n.shift()], r[e + " "] = t } } function kt(e) { return e[qe] = !0, e } function At(e, t) { var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || 1 << 31) - (~e.sourceIndex || 1 << 31); if (r)return r; if (n)for (; n = n.nextSibling;)if (n === t)return -1; return e ? 1 : -1 } function Rt(t) { return function (e) { return "input" === e.nodeName.toLowerCase() && e.type === t } } function Dt(n) { return function (e) { var t = e.nodeName.toLowerCase(); return ("input" === t || "button" === t) && e.type === n } } function Bt(a) { return kt(function (i) { return i = +i, kt(function (e, t) { for (var n, r = a([], e.length, i), o = r.length; o--;)e[n = r[o]] && (e[n] = !(t[n] = e[n])) }) }) } function _t(e) { return e && typeof e.getElementsByTagName !== Qe && e } for (Te in ke = St.support = {}, De = St.isXML = function (e) { var t = e && (e.ownerDocument || e).documentElement; return !!t && "HTML" !== t.nodeName }, Me = St.setDocument = function (e) { var t, s = e ? e.ownerDocument || e : $e, n = s.defaultView; return s !== Fe && 9 === s.nodeType && s.documentElement ? (Ue = (Fe = s).documentElement, ze = !De(s), n && n !== function r(e) { try { return e.top } catch (t) { } return null }(n) && (n.addEventListener ? n.addEventListener("unload", function () { Me() }, !1) : n.attachEvent && n.attachEvent("onunload", function () { Me() })), ke.attributes = !0, ke.getElementsByTagName = !0, ke.getElementsByClassName = yt.test(s.getElementsByClassName), ke.getById = !0, Ae.find.ID = function (e, t) { if (typeof t.getElementById !== Qe && ze) { var n = t.getElementById(e); return n && n.parentNode ? [n] : [] } }, Ae.filter.ID = function (e) { var t = e.replace(Nt, Et); return function (e) { return e.getAttribute("id") === t } }, Ae.find.TAG = ke.getElementsByTagName ? function (e, t) { if (typeof t.getElementsByTagName !== Qe)return t.getElementsByTagName(e) } : function (e, t) { var n, r = [], o = 0, i = t.getElementsByTagName(e); if ("*" !== e)return i; for (; n = i[o++];)1 === n.nodeType && r.push(n); return r }, Ae.find.CLASS = ke.getElementsByClassName && function (e, t) { if (ze)return t.getElementsByClassName(e) }, He = [], Ve = [], ke.disconnectedMatch = !0, Ve = Ve.length && new RegExp(Ve.join("|")), He = He.length && new RegExp(He.join("|")), t = yt.test(Ue.compareDocumentPosition), je = t || yt.test(Ue.contains) ? function (e, t) { var n = 9 === e.nodeType ? e.documentElement : e, r = t && t.parentNode; return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))) } : function (e, t) { if (t)for (; t = t.parentNode;)if (t === e)return !0; return !1 }, Je = t ? function (e, t) { if (e === t)return Ie = !0, 0; var n = !e.compareDocumentPosition - !t.compareDocumentPosition; return n || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !ke.sortDetached && t.compareDocumentPosition(e) === n ? e === s || e.ownerDocument === $e && je($e, e) ? -1 : t === s || t.ownerDocument === $e && je($e, t) ? 1 : Le ? it.call(Le, e) - it.call(Le, t) : 0 : 4 & n ? -1 : 1) } : function (e, t) { if (e === t)return Ie = !0, 0; var n, r = 0, o = e.parentNode, i = t.parentNode, a = [e], u = [t]; if (!o || !i)return e === s ? -1 : t === s ? 1 : o ? -1 : i ? 1 : Le ? it.call(Le, e) - it.call(Le, t) : 0; if (o === i)return At(e, t); for (n = e; n = n.parentNode;)a.unshift(n); for (n = t; n = n.parentNode;)u.unshift(n); for (; a[r] === u[r];)r++; return r ? At(a[r], u[r]) : a[r] === $e ? -1 : u[r] === $e ? 1 : 0 }, s) : Fe }, St.matches = function (e, t) { return St(e, null, null, t) }, St.matchesSelector = function (e, t) { if ((e.ownerDocument || e) !== Fe && Me(e), t = t.replace(mt, "='$1']"), ke.matchesSelector && ze && (!He || !He.test(t)) && (!Ve || !Ve.test(t)))try { var n = (void 0).call(e, t); if (n || ke.disconnectedMatch || e.document && 11 !== e.document.nodeType)return n } catch (CN) { } return 0 < St(t, Fe, null, [e]).length }, St.contains = function (e, t) { return (e.ownerDocument || e) !== Fe && Me(e), je(e, t) }, St.attr = function (e, t) { (e.ownerDocument || e) !== Fe && Me(e); var n = Ae.attrHandle[t.toLowerCase()], r = n && Ze.call(Ae.attrHandle, t.toLowerCase()) ? n(e, t, !ze) : undefined; return r !== undefined ? r : ke.attributes || !ze ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null }, St.error = function (e) { throw new Error("Syntax error, unrecognized expression: " + e) }, St.uniqueSort = function (e) { var t, n = [], r = 0, o = 0; if (Ie = !ke.detectDuplicates, Le = !ke.sortStable && e.slice(0), e.sort(Je), Ie) { for (; t = e[o++];)t === e[o] && (r = n.push(o)); for (; r--;)e.splice(n[r], 1) } return Le = null, e }, Re = St.getText = function (e) { var t, n = "", r = 0, o = e.nodeType; if (o) { if (1 === o || 9 === o || 11 === o) { if ("string" == typeof e.textContent)return e.textContent; for (e = e.firstChild; e; e = e.nextSibling)n += Re(e) } else if (3 === o || 4 === o)return e.nodeValue } else for (; t = e[r++];)n += Re(t); return n }, (Ae = St.selectors = { cacheLength: 50, createPseudo: kt, match: ht, attrHandle: {}, find: {}, relative: { ">": {dir: "parentNode", first: !0}, " ": {dir: "parentNode"}, "+": {dir: "previousSibling", first: !0}, "~": {dir: "previousSibling"} }, preFilter: { ATTR: function (e) { return e[1] = e[1].replace(Nt, Et), e[3] = (e[3] || e[4] || e[5] || "").replace(Nt, Et), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) }, CHILD: function (e) { return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || St.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && St.error(e[0]), e }, PSEUDO: function (e) { var t, n = !e[6] && e[2]; return ht.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && gt.test(n) && (t = Be(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) } }, filter: { TAG: function (e) { var t = e.replace(Nt, Et).toLowerCase(); return "*" === e ? function () { return !0 } : function (e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function (e) { var t = Xe[e + " "]; return t || (t = new RegExp("(^|" + at + ")" + e + "(" + at + "|$)")) && Xe(e, function (e) { return t.test("string" == typeof e.className && e.className || typeof e.getAttribute !== Qe && e.getAttribute("class") || "") }) }, ATTR: function (n, r, o) { return function (e) { var t = St.attr(e, n); return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === o : "!=" === r ? t !== o : "^=" === r ? o && 0 === t.indexOf(o) : "*=" === r ? o && -1 < t.indexOf(o) : "$=" === r ? o && t.slice(-o.length) === o : "~=" === r ? -1 < (" " + t + " ").indexOf(o) : "|=" === r && (t === o || t.slice(0, o.length + 1) === o + "-")) } }, CHILD: function (m, e, t, g, p) { var h = "nth" !== m.slice(0, 3), v = "last" !== m.slice(-4), b = "of-type" === e; return 1 === g && 0 === p ? function (e) { return !!e.parentNode } : function (e, t, n) { var r, o, i, a, u, s, c = h !== v ? "nextSibling" : "previousSibling", l = e.parentNode, f = b && e.nodeName.toLowerCase(), d = !n && !b; if (l) { if (h) { for (; c;) { for (i = e; i = i[c];)if (b ? i.nodeName.toLowerCase() === f : 1 === i.nodeType)return !1; s = c = "only" === m && !s && "nextSibling" } return !0 } if (s = [v ? l.firstChild : l.lastChild], v && d) { for (u = (r = (o = l[qe] || (l[qe] = {}))[m] || [])[0] === We && r[1], a = r[0] === We && r[2], i = u && l.childNodes[u]; i = ++u && i && i[c] || (a = u = 0) || s.pop();)if (1 === i.nodeType && ++a && i === e) { o[m] = [We, u, a]; break } } else if (d && (r = (e[qe] || (e[qe] = {}))[m]) && r[0] === We)a = r[1]; else for (; (i = ++u && i && i[c] || (a = u = 0) || s.pop()) && ((b ? i.nodeName.toLowerCase() !== f : 1 !== i.nodeType) || !++a || (d && ((i[qe] || (i[qe] = {}))[m] = [We, a]), i !== e));); return (a -= p) === g || a % g == 0 && 0 <= a / g } } }, PSEUDO: function (e, i) { var t, a = Ae.pseudos[e] || Ae.setFilters[e.toLowerCase()] || St.error("unsupported pseudo: " + e); return a[qe] ? a(i) : 1 < a.length ? (t = [e, e, "", i], Ae.setFilters.hasOwnProperty(e.toLowerCase()) ? kt(function (e, t) { for (var n, r = a(e, i), o = r.length; o--;)e[n = it.call(e, r[o])] = !(t[n] = r[o]) }) : function (e) { return a(e, 0, t) }) : a } }, pseudos: { not: kt(function (e) { var r = [], o = [], u = _e(e.replace(lt, "$1")); return u[qe] ? kt(function (e, t, n, r) { for (var o, i = u(e, null, r, []), a = e.length; a--;)(o = i[a]) && (e[a] = !(t[a] = o)) }) : function (e, t, n) { return r[0] = e, u(r, null, n, o), !o.pop() } }), has: kt(function (t) { return function (e) { return 0 < St(t, e).length } }), contains: kt(function (t) { return t = t.replace(Nt, Et), function (e) { return -1 < (e.textContent || e.innerText || Re(e)).indexOf(t) } }), lang: kt(function (n) { return pt.test(n || "") || St.error("unsupported lang: " + n), n = n.replace(Nt, Et).toLowerCase(), function (e) { var t; do { if (t = ze ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang"))return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-") } while ((e = e.parentNode) && 1 === e.nodeType); return !1 } }), target: function (e) { var t = window.location && window.location.hash; return t && t.slice(1) === e.id }, root: function (e) { return e === Ue }, focus: function (e) { return e === Fe.activeElement && (!Fe.hasFocus || Fe.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) }, enabled: function (e) { return !1 === e.disabled }, disabled: function (e) { return !0 === e.disabled }, checked: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && !!e.checked || "option" === t && !!e.selected }, selected: function (e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected }, empty: function (e) { for (e = e.firstChild; e; e = e.nextSibling)if (e.nodeType < 6)return !1; return !0 }, parent: function (e) { return !Ae.pseudos.empty(e) }, header: function (e) { return bt.test(e.nodeName) }, input: function (e) { return vt.test(e.nodeName) }, button: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && "button" === e.type || "button" === t }, text: function (e) { var t; return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) }, first: Bt(function () { return [0] }), last: Bt(function (e, t) { return [t - 1] }), eq: Bt(function (e, t, n) { return [n < 0 ? n + t : n] }), even: Bt(function (e, t) { for (var n = 0; n < t; n += 2)e.push(n); return e }), odd: Bt(function (e, t) { for (var n = 1; n < t; n += 2)e.push(n); return e }), lt: Bt(function (e, t, n) { for (var r = n < 0 ? n + t : n; 0 <= --r;)e.push(r); return e }), gt: Bt(function (e, t, n) { for (var r = n < 0 ? n + t : n; ++r < t;)e.push(r); return e }) } }).pseudos.nth = Ae.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })Ae.pseudos[Te] = Rt(Te); for (Te in{submit: !0, reset: !0})Ae.pseudos[Te] = Dt(Te); function Ot() { } function Pt(e) { for (var t = 0, n = e.length, r = ""; t < n; t++)r += e[t].value; return r } function Lt(a, e, t) { var u = e.dir, s = t && "parentNode" === u, c = Ke++; return e.first ? function (e, t, n) { for (; e = e[u];)if (1 === e.nodeType || s)return a(e, t, n) } : function (e, t, n) { var r, o, i = [We, c]; if (n) { for (; e = e[u];)if ((1 === e.nodeType || s) && a(e, t, n))return !0 } else for (; e = e[u];)if (1 === e.nodeType || s) { if ((r = (o = e[qe] || (e[qe] = {}))[u]) && r[0] === We && r[1] === c)return i[2] = r[2]; if ((o[u] = i)[2] = a(e, t, n))return !0 } } } function It(o) { return 1 < o.length ? function (e, t, n) { for (var r = o.length; r--;)if (!o[r](e, t, n))return !1; return !0 } : o[0] } function Mt(e, t, n, r, o) { for (var i, a = [], u = 0, s = e.length, c = null != t; u < s; u++)(i = e[u]) && (n && !n(i, r, o) || (a.push(i), c && t.push(u))); return a } function Ft(g, p, h, v, b, e) { return v && !v[qe] && (v = Ft(v)), b && !b[qe] && (b = Ft(b, e)), kt(function (e, t, n, r) { var o, i, a, u = [], s = [], c = t.length, l = e || function m(e, t, n) { for (var r = 0, o = t.length; r < o; r++)St(e, t[r], n); return n }(p || "*", n.nodeType ? [n] : n, []), f = !g || !e && p ? l : Mt(l, u, g, n, r), d = h ? b || (e ? g : c || v) ? [] : t : f; if (h && h(f, d, n, r), v)for (o = Mt(d, s), v(o, [], n, r), i = o.length; i--;)(a = o[i]) && (d[s[i]] = !(f[s[i]] = a)); if (e) { if (b || g) { if (b) { for (o = [], i = d.length; i--;)(a = d[i]) && o.push(f[i] = a); b(null, d = [], o, r) } for (i = d.length; i--;)(a = d[i]) && -1 < (o = b ? it.call(e, a) : u[i]) && (e[o] = !(t[o] = a)) } } else d = Mt(d === t ? d.splice(c, d.length) : d), b ? b(null, t, d, r) : rt.apply(t, d) }) } function Ut(e) { for (var r, t, n, o = e.length, i = Ae.relative[e[0].type], a = i || Ae.relative[" "], u = i ? 1 : 0, s = Lt(function (e) { return e === r }, a, !0), c = Lt(function (e) { return -1 < it.call(r, e) }, a, !0), l = [function (e, t, n) { return !i && (n || t !== Pe) || ((r = t).nodeType ? s(e, t, n) : c(e, t, n)) }]; u < o; u++)if (t = Ae.relative[e[u].type])l = [Lt(It(l), t)]; else { if ((t = Ae.filter[e[u].type].apply(null, e[u].matches))[qe]) { for (n = ++u; n < o && !Ae.relative[e[n].type]; n++); return Ft(1 < u && It(l), 1 < u && Pt(e.slice(0, u - 1).concat({value: " " === e[u - 2].type ? "*" : ""})).replace(lt, "$1"), t, u < n && Ut(e.slice(u, n)), n < o && Ut(e = e.slice(n)), n < o && Pt(e)) } l.push(t) } return It(l) } Ot.prototype = Ae.filters = Ae.pseudos, Ae.setFilters = new Ot, Be = St.tokenize = function (e, t) { var n, r, o, i, a, u, s, c = Ye[e + " "]; if (c)return t ? 0 : c.slice(0); for (a = e, u = [], s = Ae.preFilter; a;) { for (i in n && !(r = ft.exec(a)) || (r && (a = a.slice(r[0].length) || a), u.push(o = [])), n = !1, (r = dt.exec(a)) && (n = r.shift(), o.push({ value: n, type: r[0].replace(lt, " ") }), a = a.slice(n.length)), Ae.filter)!(r = ht[i].exec(a)) || s[i] && !(r = s[i](r)) || (n = r.shift(), o.push({ value: n, type: i, matches: r }), a = a.slice(n.length)); if (!n)break } return t ? a.length : a ? St.error(e) : Ye(e, u).slice(0) }, _e = St.compile = function (e, t) { var n, r = [], o = [], i = Ge[e + " "]; if (!i) { for (t || (t = Be(e)), n = t.length; n--;)(i = Ut(t[n]))[qe] ? r.push(i) : o.push(i); (i = Ge(e, function a(h, v) { var b = 0 < v.length, y = 0 < h.length, e = function (e, t, n, r, o) { var i, a, u, s = 0, c = "0", l = e && [], f = [], d = Pe, m = e || y && Ae.find.TAG("*", o), g = We += null == d ? 1 : Math.random() || .1, p = m.length; for (o && (Pe = t !== Fe && t); c !== p && null != (i = m[c]); c++) { if (y && i) { for (a = 0; u = h[a++];)if (u(i, t, n)) { r.push(i); break } o && (We = g) } b && ((i = !u && i) && s--, e && l.push(i)) } if (s += c, b && c !== s) { for (a = 0; u = v[a++];)u(l, f, t, n); if (e) { if (0 < s)for (; c--;)l[c] || f[c] || (f[c] = tt.call(r)); f = Mt(f) } rt.apply(r, f), o && !e && 0 < f.length && 1 < s + v.length && St.uniqueSort(r) } return o && (We = g, Pe = d), l }; return b ? kt(e) : e }(o, r))).selector = e } return i }, Oe = St.select = function (e, t, n, r) { var o, i, a, u, s, c = "function" == typeof e && e, l = !r && Be(e = c.selector || e); if (n = n || [], 1 === l.length) { if (2 < (i = l[0] = l[0].slice(0)).length && "ID" === (a = i[0]).type && ke.getById && 9 === t.nodeType && ze && Ae.relative[i[1].type]) { if (!(t = (Ae.find.ID(a.matches[0].replace(Nt, Et), t) || [])[0]))return n; c && (t = t.parentNode), e = e.slice(i.shift().value.length) } for (o = ht.needsContext.test(e) ? 0 : i.length; o-- && (a = i[o], !Ae.relative[u = a.type]);)if ((s = Ae.find[u]) && (r = s(a.matches[0].replace(Nt, Et), xt.test(i[0].type) && _t(t.parentNode) || t))) { if (i.splice(o, 1), !(e = r.length && Pt(i)))return rt.apply(n, r), n; break } } return (c || _e(e, l))(r, t, !ze, n, xt.test(e) && _t(t.parentNode) || t), n }, ke.sortStable = qe.split("").sort(Je).join("") === qe, ke.detectDuplicates = !!Ie, Me(), ke.sortDetached = !0; var zt = Array.isArray, Vt = function (e, t, n) { var r, o; if (!e)return 0; if (n = n || e, e.length !== undefined) { for (r = 0, o = e.length; r < o; r++)if (!1 === t.call(n, e[r], r, e))return 0 } else for (r in e)if (e.hasOwnProperty(r) && !1 === t.call(n, e[r], r, e))return 0; return 1 }, Ht = function (e, t, n) { var r, o; for (r = 0, o = e.length; r < o; r++)if (t.call(n, e[r], r, e))return r; return -1 }, jt = { isArray: zt, toArray: function (e) { var t, n, r = e; if (!zt(e))for (r = [], t = 0, n = e.length; t < n; t++)r[t] = e[t]; return r }, each: Vt, map: function (n, r) { var o = []; return Vt(n, function (e, t) { o.push(r(e, t, n)) }), o }, filter: function (n, r) { var o = []; return Vt(n, function (e, t) { r && !r(e, t, n) || o.push(e) }), o }, indexOf: function (e, t) { var n, r; if (e)for (n = 0, r = e.length; n < r; n++)if (e[n] === t)return n; return -1 }, reduce: function (e, t, n, r) { var o = 0; for (arguments.length < 3 && (n = e[0]); o < e.length; o++)n = t.call(r, n, e[o], o); return n }, findIndex: Ht, find: function (e, t, n) { var r = Ht(e, t, n); return -1 !== r ? e[r] : undefined }, last: function (e) { return e[e.length - 1] } }, qt = /^\s*|\s*$/g, $t = function (e) { return null === e || e === undefined ? "" : ("" + e).replace(qt, "") }, Wt = function (e, t) { return t ? !("array" !== t || !jt.isArray(e)) || typeof e === t : e !== undefined }, Kt = function (e, n, r, o) { o = o || this, e && (r && (e = e[r]), jt.each(e, function (e, t) { if (!1 === n.call(o, e, t, r))return !1; Kt(e, n, r, o) })) }, Xt = { trim: $t, isArray: jt.isArray, is: Wt, toArray: jt.toArray, makeMap: function (e, t, n) { var r; for (t = t || ",", "string" == typeof(e = e || []) && (e = e.split(t)), n = n || {}, r = e.length; r--;)n[e[r]] = {}; return n }, each: jt.each, map: jt.map, grep: jt.filter, inArray: jt.indexOf, hasOwn: function (e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, extend: function (e, t) { for (var n, r, o, i = [], a = 2; a < arguments.length; a++)i[a - 2] = arguments[a]; var u, s = arguments; for (n = 1, r = s.length; n < r; n++)for (o in t = s[n])t.hasOwnProperty(o) && (u = t[o]) !== undefined && (e[o] = u); return e }, create: function (e, t, n) { var r, o, i, a, u, s = this, c = 0; if (e = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(e), i = e[3].match(/(^|\.)(\w+)$/i)[2], !(o = s.createNS(e[3].replace(/\.\w+$/, ""), n))[i]) { if ("static" === e[2])return o[i] = t, void(this.onCreate && this.onCreate(e[2], e[3], o[i])); t[i] || (t[i] = function () { }, c = 1), o[i] = t[i], s.extend(o[i].prototype, t), e[5] && (r = s.resolve(e[5]).prototype, a = e[5].match(/\.(\w+)$/i)[1], u = o[i], o[i] = c ? function () { return r[a].apply(this, arguments) } : function () { return this.parent = r[a], u.apply(this, arguments) }, o[i].prototype[i] = o[i], s.each(r, function (e, t) { o[i].prototype[t] = r[t] }), s.each(t, function (e, t) { r[t] ? o[i].prototype[t] = function () { return this.parent = r[t], e.apply(this, arguments) } : t !== i && (o[i].prototype[t] = e) })), s.each(t["static"], function (e, t) { o[i][t] = e }) } }, walk: Kt, createNS: function (e, t) { var n, r; for (t = t || window, e = e.split("."), n = 0; n < e.length; n++)t[r = e[n]] || (t[r] = {}), t = t[r]; return t }, resolve: function (e, t) { var n, r; for (t = t || window, n = 0, r = (e = e.split(".")).length; n < r && (t = t[e[n]]); n++); return t }, explode: function (e, t) { return !e || Wt(e, "array") ? e : jt.map(e.split(t || ","), $t) }, _addCacheSuffix: function (e) { var t = fe.cacheSuffix; return t && (e += (-1 === e.indexOf("?") ? "?" : "&") + t), e } }, Yt = document, Gt = Array.prototype.push, Jt = Array.prototype.slice, Qt = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, Zt = Se.Event, en = Xt.makeMap("children,contents,next,prev"), tn = function (e) { return void 0 !== e }, nn = function (e) { return "string" == typeof e }, rn = function (e, t) { var n, r, o; for (o = (t = t || Yt).createElement("div"), n = t.createDocumentFragment(), o.innerHTML = e; r = o.firstChild;)n.appendChild(r); return n }, on = function (e, t, n, r) { var o; if (nn(t))t = rn(t, yn(e[0])); else if (t.length && !t.nodeType) { if (t = gn.makeArray(t), r)for (o = t.length - 1; 0 <= o; o--)on(e, t[o], n, r); else for (o = 0; o < t.length; o++)on(e, t[o], n, r); return e } if (t.nodeType)for (o = e.length; o--;)n.call(e[o], t); return e }, an = function (e, t) { return e && t && -1 !== (" " + e.className + " ").indexOf(" " + t + " ") }, un = function (e, t, n) { var r, o; return t = gn(t)[0], e.each(function () { var e = this; n && r === e.parentNode || (r = e.parentNode, o = t.cloneNode(!1), e.parentNode.insertBefore(o, e)), o.appendChild(e) }), e }, sn = Xt.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom", " "), cn = Xt.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected", " "), ln = { "for": "htmlFor", "class": "className", readonly: "readOnly" }, fn = {"float": "cssFloat"}, dn = {}, mn = {}, gn = function (e, t) { return new gn.fn.init(e, t) }, pn = /^\s*|\s*$/g, hn = function (e) { return null === e || e === undefined ? "" : ("" + e).replace(pn, "") }, vn = function (e, t) { var n, r, o, i; if (e)if ((n = e.length) === undefined) { for (r in e)if (e.hasOwnProperty(r) && (i = e[r], !1 === t.call(i, r, i)))break } else for (o = 0; o < n && (i = e[o], !1 !== t.call(i, o, i)); o++); return e }, bn = function (e, n) { var r = []; return vn(e, function (e, t) { n(t, e) && r.push(t) }), r }, yn = function (e) { return e ? 9 === e.nodeType ? e : e.ownerDocument : Yt }; gn.fn = gn.prototype = { constructor: gn, selector: "", context: null, length: 0, init: function (e, t) { var n, r, o = this; if (!e)return o; if (e.nodeType)return o.context = o[0] = e, o.length = 1, o; if (t && t.nodeType)o.context = t; else { if (t)return gn(e).attr(t); o.context = t = document } if (nn(e)) { if (!(n = "<" === (o.selector = e).charAt(0) && ">" === e.charAt(e.length - 1) && 3 <= e.length ? [null, e, null] : Qt.exec(e)))return gn(t).find(e); if (n[1])for (r = rn(e, yn(t)).firstChild; r;)Gt.call(o, r), r = r.nextSibling; else { if (!(r = yn(t).getElementById(n[2])))return o; if (r.id !== n[2])return o.find(e); o.length = 1, o[0] = r } } else this.add(e, !1); return o }, toArray: function () { return Xt.toArray(this) }, add: function (e, t) { var n, r, o = this; if (nn(e))return o.add(gn(e)); if (!1 !== t)for (n = gn.unique(o.toArray().concat(gn.makeArray(e))), o.length = n.length, r = 0; r < n.length; r++)o[r] = n[r]; else Gt.apply(o, gn.makeArray(e)); return o }, attr: function (t, n) { var e, r = this; if ("object" == typeof t)vn(t, function (e, t) { r.attr(e, t) }); else { if (!tn(n)) { if (r[0] && 1 === r[0].nodeType) { if ((e = dn[t]) && e.get)return e.get(r[0], t); if (cn[t])return r.prop(t) ? t : undefined; null === (n = r[0].getAttribute(t, 2)) && (n = undefined) } return n } this.each(function () { var e; if (1 === this.nodeType) { if ((e = dn[t]) && e.set)return void e.set(this, n); null === n ? this.removeAttribute(t, 2) : this.setAttribute(t, n, 2) } }) } return r }, removeAttr: function (e) { return this.attr(e, null) }, prop: function (e, t) { var n = this; if ("object" == typeof(e = ln[e] || e))vn(e, function (e, t) { n.prop(e, t) }); else { if (!tn(t))return n[0] && n[0].nodeType && e in n[0] ? n[0][e] : t; this.each(function () { 1 === this.nodeType && (this[e] = t) }) } return n }, css: function (n, r) { var e, o, i = this, t = function (e) { return e.replace(/-(\D)/g, function (e, t) { return t.toUpperCase() }) }, a = function (e) { return e.replace(/[A-Z]/g, function (e) { return "-" + e }) }; if ("object" == typeof n)vn(n, function (e, t) { i.css(e, t) }); else if (tn(r))n = t(n), "number" != typeof r || sn[n] || (r = r.toString() + "px"), i.each(function () { var e = this.style; if ((o = mn[n]) && o.set)o.set(this, r); else { try { this.style[fn[n] || n] = r } catch (t) { } null !== r && "" !== r || (e.removeProperty ? e.removeProperty(a(n)) : e.removeAttribute(n)) } }); else { if (e = i[0], (o = mn[n]) && o.get)return o.get(e); if (!e.ownerDocument.defaultView)return e.currentStyle ? e.currentStyle[t(n)] : ""; try { return e.ownerDocument.defaultView.getComputedStyle(e, null).getPropertyValue(a(n)) } catch (u) { return undefined } } return i }, remove: function () { for (var e, t = this.length; t--;)e = this[t], Zt.clean(e), e.parentNode && e.parentNode.removeChild(e); return this }, empty: function () { for (var e, t = this.length; t--;)for (e = this[t]; e.firstChild;)e.removeChild(e.firstChild); return this }, html: function (e) { var t, n = this; if (tn(e)) { t = n.length; try { for (; t--;)n[t].innerHTML = e } catch (r) { gn(n[t]).empty().append(e) } return n } return n[0] ? n[0].innerHTML : "" }, text: function (e) { var t, n = this; if (tn(e)) { for (t = n.length; t--;)"innerText"in n[t] ? n[t].innerText = e : n[0].textContent = e; return n } return n[0] ? n[0].innerText || n[0].textContent : "" }, append: function () { return on(this, arguments, function (e) { (1 === this.nodeType || this.host && 1 === this.host.nodeType) && this.appendChild(e) }) }, prepend: function () { return on(this, arguments, function (e) { (1 === this.nodeType || this.host && 1 === this.host.nodeType) && this.insertBefore(e, this.firstChild) }, !0) }, before: function () { return this[0] && this[0].parentNode ? on(this, arguments, function (e) { this.parentNode.insertBefore(e, this) }) : this }, after: function () { return this[0] && this[0].parentNode ? on(this, arguments, function (e) { this.parentNode.insertBefore(e, this.nextSibling) }, !0) : this }, appendTo: function (e) { return gn(e).append(this), this }, prependTo: function (e) { return gn(e).prepend(this), this }, replaceWith: function (e) { return this.before(e).remove() }, wrap: function (e) { return un(this, e) }, wrapAll: function (e) { return un(this, e, !0) }, wrapInner: function (e) { return this.each(function () { gn(this).contents().wrapAll(e) }), this }, unwrap: function () { return this.parent().each(function () { gn(this).replaceWith(this.childNodes) }) }, clone: function () { var e = []; return this.each(function () { e.push(this.cloneNode(!0)) }), gn(e) }, addClass: function (e) { return this.toggleClass(e, !0) }, removeClass: function (e) { return this.toggleClass(e, !1) }, toggleClass: function (o, i) { var e = this; return "string" != typeof o || (-1 !== o.indexOf(" ") ? vn(o.split(" "), function () { e.toggleClass(this, i) }) : e.each(function (e, t) { var n, r; (r = an(t, o)) !== i && (n = t.className, r ? t.className = hn((" " + n + " ").replace(" " + o + " ", " ")) : t.className += n ? " " + o : o) })), e }, hasClass: function (e) { return an(this[0], e) }, each: function (e) { return vn(this, e) }, on: function (e, t) { return this.each(function () { Zt.bind(this, e, t) }) }, off: function (e, t) { return this.each(function () { Zt.unbind(this, e, t) }) }, trigger: function (e) { return this.each(function () { "object" == typeof e ? Zt.fire(this, e.type, e) : Zt.fire(this, e) }) }, show: function () { return this.css("display", "") }, hide: function () { return this.css("display", "none") }, slice: function () { return new gn(Jt.apply(this, arguments)) }, eq: function (e) { return -1 === e ? this.slice(e) : this.slice(e, +e + 1) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, find: function (e) { var t, n, r = []; for (t = 0, n = this.length; t < n; t++)gn.find(e, this[t], r); return gn(r) }, filter: function (n) { return gn("function" == typeof n ? bn(this.toArray(), function (e, t) { return n(t, e) }) : gn.filter(n, this.toArray())) }, closest: function (n) { var r = []; return n instanceof gn && (n = n[0]), this.each(function (e, t) { for (; t;) { if ("string" == typeof n && gn(t).is(n)) { r.push(t); break } if (t === n) { r.push(t); break } t = t.parentNode } }), gn(r) }, offset: function (e) { var t, n, r, o, i = 0, a = 0; return e ? this.css(e) : ((t = this[0]) && (r = (n = t.ownerDocument).documentElement, t.getBoundingClientRect && (i = (o = t.getBoundingClientRect()).left + (r.scrollLeft || n.body.scrollLeft) - r.clientLeft, a = o.top + (r.scrollTop || n.body.scrollTop) - r.clientTop)), { left: i, top: a }) }, push: Gt, sort: [].sort, splice: [].splice }, Xt.extend(gn, { extend: Xt.extend, makeArray: function (e) { return (t = e) && t === t.window || e.nodeType ? [e] : Xt.toArray(e); var t }, inArray: function (e, t) { var n; if (t.indexOf)return t.indexOf(e); for (n = t.length; n--;)if (t[n] === e)return n; return -1 }, isArray: Xt.isArray, each: vn, trim: hn, grep: bn, find: St, expr: St.selectors, unique: St.uniqueSort, text: St.getText, contains: St.contains, filter: function (e, t, n) { var r = t.length; for (n && (e = ":not(" + e + ")"); r--;)1 !== t[r].nodeType && t.splice(r, 1); return t = 1 === t.length ? gn.find.matchesSelector(t[0], e) ? [t[0]] : [] : gn.find.matches(e, t) } }); var Cn = function (e, t, n) { var r = [], o = e[t]; for ("string" != typeof n && n instanceof gn && (n = n[0]); o && 9 !== o.nodeType;) { if (n !== undefined) { if (o === n)break; if ("string" == typeof n && gn(o).is(n))break } 1 === o.nodeType && r.push(o), o = o[t] } return r }, xn = function (e, t, n, r) { var o = []; for (r instanceof gn && (r = r[0]); e; e = e[t])if (!n || e.nodeType === n) { if (r !== undefined) { if (e === r)break; if ("string" == typeof r && gn(e).is(r))break } o.push(e) } return o }, wn = function (e, t, n) { for (e = e[t]; e; e = e[t])if (e.nodeType === n)return e; return null }; vn({ parent: function (e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function (e) { return Cn(e, "parentNode") }, next: function (e) { return wn(e, "nextSibling", 1) }, prev: function (e) { return wn(e, "previousSibling", 1) }, children: function (e) { return xn(e.firstChild, "nextSibling", 1) }, contents: function (e) { return Xt.toArray(("iframe" === e.nodeName ? e.contentDocument || e.contentWindow.document : e).childNodes) } }, function (e, r) { gn.fn[e] = function (t) { var n = []; return this.each(function () { var e = r.call(n, this, t, n); e && (gn.isArray(e) ? n.push.apply(n, e) : n.push(e)) }), 1 < this.length && (en[e] || (n = gn.unique(n)), 0 === e.indexOf("parents") && (n = n.reverse())), n = gn(n), t ? n.filter(t) : n } }), vn({ parentsUntil: function (e, t) { return Cn(e, "parentNode", t) }, nextUntil: function (e, t) { return xn(e, "nextSibling", 1, t).slice(1) }, prevUntil: function (e, t) { return xn(e, "previousSibling", 1, t).slice(1) } }, function (r, o) { gn.fn[r] = function (t, e) { var n = []; return this.each(function () { var e = o.call(n, this, t, n); e && (gn.isArray(e) ? n.push.apply(n, e) : n.push(e)) }), 1 < this.length && (n = gn.unique(n), 0 !== r.indexOf("parents") && "prevUntil" !== r || (n = n.reverse())), n = gn(n), e ? n.filter(e) : n } }), gn.fn.is = function (e) { return !!e && 0 < this.filter(e).length }, gn.fn.init.prototype = gn.fn, gn.overrideDefaults = function (n) { var r, o = function (e, t) { return r = r || n(), 0 === arguments.length && (e = r.element), t || (t = r.context), new o.fn.init(e, t) }; return gn.extend(o, this), o }; var Nn = function (n, r, e) { vn(e, function (e, t) { n[e] = n[e] || {}, n[e][r] = t }) }; fe.ie && fe.ie < 8 && (Nn(dn, "get", { maxlength: function (e) { var t = e.maxLength; return 2147483647 === t ? undefined : t }, size: function (e) { var t = e.size; return 20 === t ? undefined : t }, "class": function (e) { return e.className }, style: function (e) { var t = e.style.cssText; return 0 === t.length ? undefined : t } }), Nn(dn, "set", { "class": function (e, t) { e.className = t }, style: function (e, t) { e.style.cssText = t } })), fe.ie && fe.ie < 9 && (fn["float"] = "styleFloat", Nn(mn, "set", { opacity: function (e, t) { var n = e.style; null === t || "" === t ? n.removeAttribute("filter") : (n.zoom = 1, n.filter = "alpha(opacity=" + 100 * t + ")") } })), gn.attrHooks = dn, gn.cssHooks = mn; var En, Sn, Tn, kn = function (e, t) { var n = function (e, t) { for (var n = 0; n < e.length; n++) { var r = e[n]; if (r.test(t))return r } return undefined }(e, t); if (!n)return {major: 0, minor: 0}; var r = function (e) { return Number(t.replace(n, "$" + e)) }; return Rn(r(1), r(2)) }, An = function () { return Rn(0, 0) }, Rn = function (e, t) { return {major: e, minor: t} }, Dn = { nu: Rn, detect: function (e, t) { var n = String(t).toLowerCase(); return 0 === e.length ? An() : kn(e, n) }, unknown: An }, Bn = "Firefox", _n = function (e, t) { return function () { return t === e } }, On = function (e) { var t = e.current; return { current: t, version: e.version, isEdge: _n("Edge", t), isChrome: _n("Chrome", t), isIE: _n("IE", t), isOpera: _n("Opera", t), isFirefox: _n(Bn, t), isSafari: _n("Safari", t) } }, Pn = { unknown: function () { return On({current: undefined, version: Dn.unknown()}) }, nu: On, edge: q("Edge"), chrome: q("Chrome"), ie: q("IE"), opera: q("Opera"), firefox: q(Bn), safari: q("Safari") }, Ln = "Windows", In = "Android", Mn = "Solaris", Fn = "FreeBSD", Un = function (e, t) { return function () { return t === e } }, zn = function (e) { var t = e.current; return { current: t, version: e.version, isWindows: Un(Ln, t), isiOS: Un("iOS", t), isAndroid: Un(In, t), isOSX: Un("OSX", t), isLinux: Un("Linux", t), isSolaris: Un(Mn, t), isFreeBSD: Un(Fn, t) } }, Vn = { unknown: function () { return zn({current: undefined, version: Dn.unknown()}) }, nu: zn, windows: q(Ln), ios: q("iOS"), android: q(In), linux: q("Linux"), osx: q("OSX"), solaris: q(Mn), freebsd: q(Fn) }, Hn = function (e, t) { var n = String(t).toLowerCase(); return z(e, function (e) { return e.search(n) }) }, jn = function (e, n) { return Hn(e, n).map(function (e) { var t = Dn.detect(e.versionRegexes, n); return {current: e.name, version: t} }) }, qn = function (e, n) { return Hn(e, n).map(function (e) { var t = Dn.detect(e.versionRegexes, n); return {current: e.name, version: t} }) }, $n = function (e, t) { return -1 !== e.indexOf(t) }, Wn = function (e) { return e.replace(/^\s+|\s+$/g, "") }, Kn = function (e) { return e.replace(/\s+$/g, "") }, Xn = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, Yn = function (t) { return function (e) { return $n(e, t) } }, Gn = [{ name: "Edge", versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: function (e) { return $n(e, "edge/") && $n(e, "chrome") && $n(e, "safari") && $n(e, "applewebkit") } }, { name: "Chrome", versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, Xn], search: function (e) { return $n(e, "chrome") && !$n(e, "chromeframe") } }, { name: "IE", versionRegexes: [/.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/], search: function (e) { return $n(e, "msie") || $n(e, "trident") } }, {name: "Opera", versionRegexes: [Xn, /.*?opera\/([0-9]+)\.([0-9]+).*/], search: Yn("opera")}, { name: "Firefox", versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], search: Yn("firefox") }, { name: "Safari", versionRegexes: [Xn, /.*?cpu os ([0-9]+)_([0-9]+).*/], search: function (e) { return ($n(e, "safari") || $n(e, "mobile/")) && $n(e, "applewebkit") } }], Jn = [{ name: "Windows", search: Yn("win"), versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] }, { name: "iOS", search: function (e) { return $n(e, "iphone") || $n(e, "ipad") }, versionRegexes: [/.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/] }, {name: "Android", search: Yn("android"), versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/]}, { name: "OSX", search: Yn("os x"), versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/] }, {name: "Linux", search: Yn("linux"), versionRegexes: []}, { name: "Solaris", search: Yn("sunos"), versionRegexes: [] }, {name: "FreeBSD", search: Yn("freebsd"), versionRegexes: []}], Qn = { browsers: q(Gn), oses: q(Jn) }, Zn = function (e) { var t, n, r, o, i, a, u, s, c, l, f, d = Qn.browsers(), m = Qn.oses(), g = jn(d, e).fold(Pn.unknown, Pn.nu), p = qn(m, e).fold(Vn.unknown, Vn.nu); return { browser: g, os: p, deviceType: (n = g, r = e, o = (t = p).isiOS() && !0 === /ipad/i.test(r), i = t.isiOS() && !o, a = t.isAndroid() && 3 === t.version.major, u = t.isAndroid() && 4 === t.version.major, s = o || a || u && !0 === /mobile/i.test(r), c = t.isiOS() || t.isAndroid(), l = c && !s, f = n.isSafari() && t.isiOS() && !1 === /safari/i.test(r), { isiPad: q(o), isiPhone: q(i), isTablet: q(s), isPhone: q(l), isTouch: q(c), isAndroid: t.isAndroid, isiOS: t.isiOS, isWebView: q(f) }) } }, er = { detect: (En = function () { var e = navigator.userAgent; return Zn(e) }, Tn = !1, function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; return Tn || (Tn = !0, Sn = En.apply(null, e)), Sn }) }, tr = function (e) { if (null === e || e === undefined)throw new Error("Node cannot be null or undefined"); return {dom: q(e)} }, nr = { fromHtml: function (e, t) { var n = (t || document).createElement("div"); if (n.innerHTML = e, !n.hasChildNodes() || 1 < n.childNodes.length)throw console.error("HTML does not have a single root node", e), "HTML must have a single root node"; return tr(n.childNodes[0]) }, fromTag: function (e, t) { var n = (t || document).createElement(e); return tr(n) }, fromText: function (e, t) { var n = (t || document).createTextNode(e); return tr(n) }, fromDom: tr, fromPoint: function (e, t, n) { var r = e.dom(); return A.from(r.elementFromPoint(t, n)).map(tr) } }, rr = (Node.ATTRIBUTE_NODE, Node.CDATA_SECTION_NODE, Node.COMMENT_NODE, Node.DOCUMENT_NODE), or = (Node.DOCUMENT_TYPE_NODE, Node.DOCUMENT_FRAGMENT_NODE, Node.ELEMENT_NODE), ir = Node.TEXT_NODE, ar = (Node.PROCESSING_INSTRUCTION_NODE, Node.ENTITY_REFERENCE_NODE, Node.ENTITY_NODE, Node.NOTATION_NODE, function (e) { return e.dom().nodeName.toLowerCase() }), ur = function (t) { return function (e) { return e.dom().nodeType === t } }, sr = ur(or), cr = ur(ir), lr = Object.keys, fr = Object.hasOwnProperty, dr = function (e, t) { for (var n = lr(e), r = 0, o = n.length; r < o; r++) { var i = n[r]; t(e[i], i, e) } }, mr = function (r, o) { var i = {}; return dr(r, function (e, t) { var n = o(e, t, r); i[n.k] = n.v }), i }, gr = function (e, t) { return pr(e, t) ? A.some(e[t]) : A.none() }, pr = function (e, t) { return fr.call(e, t) }, hr = function (e, t, n) { if (!(k(n) || _(n) || P(n)))throw console.error("Invalid call to Attr.set. Key ", t, ":: Value ", n, ":: Element ", e), new Error("Attribute value was not simple"); e.setAttribute(t, n + "") }, vr = function (e, t, n) { hr(e.dom(), t, n) }, br = function (e, t) { var n = e.dom(); dr(t, function (e, t) { hr(n, t, e) }) }, yr = function (e, t) { var n = e.dom().getAttribute(t); return null === n ? undefined : n }, Cr = function (e, t) { e.dom().removeAttribute(t) }, xr = function (e, t) { var n, r, o = e.dom(), i = window.getComputedStyle(o).getPropertyValue(t), a = "" !== i || (r = cr(n = e) ? n.dom().parentNode : n.dom()) !== undefined && null !== r && r.ownerDocument.body.contains(r) ? i : wr(o, t); return null === a ? undefined : a }, wr = function (e, t) { return e.style !== undefined ? e.style.getPropertyValue(t) : "" }, Nr = function () { for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e]; return function () { for (var n = [], e = 0; e < arguments.length; e++)n[e] = arguments[e]; if (t.length !== n.length)throw new Error('Wrong number of arguments to struct. Expected "[' + t.length + ']", got ' + n.length + " arguments"); var r = {}; return M(t, function (e, t) { r[e] = q(n[t]) }), r } }, Er = function (e, t) { for (var n = [], r = function (e) { return n.push(e), t(e) }, o = t(e); (o = o.bind(r)).isSome();); return n }, Sr = function () { return oe.getOrDie("Node") }, Tr = function (e, t, n) { return 0 != (e.compareDocumentPosition(t) & n) }, kr = function (e, t) { return Tr(e, t, Sr().DOCUMENT_POSITION_CONTAINED_BY) }, Ar = or, Rr = rr, Dr = function (e, t) { var n = e.dom(); if (n.nodeType !== Ar)return !1; if (n.matches !== undefined)return n.matches(t); if (n.msMatchesSelector !== undefined)return n.msMatchesSelector(t); if (n.webkitMatchesSelector !== undefined)return n.webkitMatchesSelector(t); if (n.mozMatchesSelector !== undefined)return n.mozMatchesSelector(t); throw new Error("Browser lacks native selectors") }, Br = function (e) { return e.nodeType !== Ar && e.nodeType !== Rr || 0 === e.childElementCount }, _r = function (e, t) { return e.dom() === t.dom() }, Or = er.detect().browser.isIE() ? function (e, t) { return kr(e.dom(), t.dom()) } : function (e, t) { var n = e.dom(), r = t.dom(); return n !== r && n.contains(r) }, Pr = function (e) { return nr.fromDom(e.dom().ownerDocument) }, Lr = function (e) { var t = e.dom(); return A.from(t.parentNode).map(nr.fromDom) }, Ir = function (e) { var t = e.dom(); return A.from(t.previousSibling).map(nr.fromDom) }, Mr = function (e) { var t = e.dom(); return A.from(t.nextSibling).map(nr.fromDom) }, Fr = function (e) { return t = Er(e, Ir), (n = J.call(t, 0)).reverse(), n; var t, n }, Ur = function (e) { var t = e.dom(); return W(t.childNodes, nr.fromDom) }, zr = function (e, t) { var n = e.dom().childNodes; return A.from(n[t]).map(nr.fromDom) }, Vr = function (e) { return zr(e, e.dom().childNodes.length - 1) }, Hr = (Nr("element", "offset"), er.detect().browser), jr = function (e) { return z(e, sr) }, qr = function (e) { return Hr.isFirefox() && "table" === ar(e) ? jr(Ur(e)).filter(function (e) { return "caption" === ar(e) }).bind(function (o) { return jr((e = o, Er(e, Mr))).map(function (e) { var t = e.dom().offsetTop, n = o.dom().offsetTop, r = o.dom().offsetHeight; return t <= n ? -r : 0 }); var e }).getOr(0) : 0 }, $r = { getPos: function (e, t, n) { var r, o, i = 0, a = 0, u = e.ownerDocument; if (n = n || e, t) { if (n === e && t.getBoundingClientRect && "static" === xr(nr.fromDom(e), "position"))return { x: i = (o = t.getBoundingClientRect()).left + (u.documentElement.scrollLeft || e.scrollLeft) - u.documentElement.clientLeft, y: a = o.top + (u.documentElement.scrollTop || e.scrollTop) - u.documentElement.clientTop }; for (r = t; r && r !== n && r.nodeType;)i += r.offsetLeft || 0, a += r.offsetTop || 0, r = r.offsetParent; for (r = t.parentNode; r && r !== n && r.nodeType;)i -= r.scrollLeft || 0, a -= r.scrollTop || 0, r = r.parentNode; a += qr(nr.fromDom(t)) } return {x: i, y: a} } }, Wr = function (e) { var n = A.none(), t = [], r = function (e) { o() ? a(e) : t.push(e) }, o = function () { return n.isSome() }, i = function (e) { M(e, a) }, a = function (t) { n.each(function (e) { setTimeout(function () { t(e) }, 0) }) }; return e(function (e) { n = A.some(e), i(t), t = [] }), { get: r, map: function (n) { return Wr(function (t) { r(function (e) { t(n(e)) }) }) }, isReady: o } }, Kr = { nu: Wr, pure: function (t) { return Wr(function (e) { e(t) }) } }, Xr = function (t) { var e = function (e) { var r; t((r = e, function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; var n = this; setTimeout(function () { r.apply(n, e) }, 0) })) }, n = function () { return Kr.nu(e) }; return { map: function (r) { return Xr(function (n) { e(function (e) { var t = r(e); n(t) }) }) }, bind: function (n) { return Xr(function (t) { e(function (e) { n(e).get(t) }) }) }, anonBind: function (n) { return Xr(function (t) { e(function (e) { n.get(t) }) }) }, toLazy: n, toCached: function () { var t = null; return Xr(function (e) { null === t && (t = n()), t.get(e) }) }, get: e } }, Yr = { nu: Xr, pure: function (t) { return Xr(function (e) { e(t) }) } }, Gr = function (a, e) { return e(function (r) { var o = [], i = 0; 0 === a.length ? r([]) : M(a, function (e, t) { var n; e.get((n = t, function (e) { o[n] = e, ++i >= a.length && r(o) })) }) }) }, Jr = function (e) { return Gr(e, Yr.nu) }, Qr = function (n) { return { is: function (e) { return n === e }, isValue: y, isError: b, getOr: q(n), getOrThunk: q(n), getOrDie: q(n), or: function (e) { return Qr(n) }, orThunk: function (e) { return Qr(n) }, fold: function (e, t) { return t(n) }, map: function (e) { return Qr(e(n)) }, each: function (e) { e(n) }, bind: function (e) { return e(n) }, exists: function (e) { return e(n) }, forall: function (e) { return e(n) }, toOption: function () { return A.some(n) } } }, Zr = function (n) { return { is: b, isValue: b, isError: y, getOr: $, getOrThunk: function (e) { return e() }, getOrDie: function () { return e = String(n), function () { throw new Error(e) }(); var e }, or: function (e) { return e }, orThunk: function (e) { return e() }, fold: function (e, t) { return e(n) }, map: function (e) { return Zr(n) }, each: x, bind: function (e) { return Zr(n) }, exists: b, forall: y, toOption: A.none } }, eo = {value: Qr, error: Zr}; function to(e, u) { var t = e, n = function (e, t, n, r) { var o, i; if (e) { if (!r && e[t])return e[t]; if (e !== u) { if (o = e[n])return o; for (i = e.parentNode; i && i !== u; i = i.parentNode)if (o = i[n])return o } } }; this.current = function () { return t }, this.next = function (e) { return t = n(t, "firstChild", "nextSibling", e) }, this.prev = function (e) { return t = n(t, "lastChild", "previousSibling", e) }, this.prev2 = function (e) { return t = function (e, t, n, r) { var o, i, a; if (e) { if (o = e[n], u && o === u)return; if (o) { if (!r)for (a = o[t]; a; a = a[t])if (!a[t])return a; return o } if ((i = e.parentNode) && i !== u)return i } }(t, "lastChild", "previousSibling", e) } } var no, ro, oo, io = function (t) { var n; return function (e) { return (n = n || function (e, t) { for (var n = {}, r = 0, o = e.length; r < o; r++) { var i = e[r]; n[String(i)] = t(i, r) } return n }(t, q(!0))).hasOwnProperty(ar(e)) } }, ao = io(["h1", "h2", "h3", "h4", "h5", "h6"]), uo = io(["article", "aside", "details", "div", "dt", "figcaption", "footer", "form", "fieldset", "header", "hgroup", "html", "main", "nav", "section", "summary", "body", "p", "dl", "multicol", "dd", "figure", "address", "center", "blockquote", "h1", "h2", "h3", "h4", "h5", "h6", "listing", "xmp", "pre", "plaintext", "menu", "dir", "ul", "ol", "li", "hr", "table", "tbody", "thead", "tfoot", "th", "tr", "td", "caption"]), so = function (e) { return sr(e) && !uo(e) }, co = function (e) { return sr(e) && "br" === ar(e) }, lo = io(["h1", "h2", "h3", "h4", "h5", "h6", "p", "div", "address", "pre", "form", "blockquote", "center", "dir", "fieldset", "header", "footer", "article", "section", "hgroup", "aside", "nav", "figure"]), fo = io(["ul", "ol", "dl"]), mo = io(["li", "dd", "dt"]), go = io(["area", "base", "basefont", "br", "col", "frame", "hr", "img", "input", "isindex", "link", "meta", "param", "embed", "source", "wbr", "track"]), po = io(["thead", "tbody", "tfoot"]), ho = io(["td", "th"]), vo = io(["pre", "script", "textarea", "style"]), bo = function (t) { return function (e) { return !!e && e.nodeType === t } }, yo = bo(1), Co = function (e) { var r = e.toLowerCase().split(" "); return function (e) { var t, n; if (e && e.nodeType)for (n = e.nodeName.toLowerCase(), t = 0; t < r.length; t++)if (n === r[t])return !0; return !1 } }, xo = function (t) { return function (e) { if (yo(e)) { if (e.contentEditable === t)return !0; if (e.getAttribute("data-mce-contenteditable") === t)return !0 } return !1 } }, wo = bo(3), No = bo(8), Eo = bo(9), So = Co("br"), To = xo("true"), ko = xo("false"), Ao = { isText: wo, isElement: yo, isComment: No, isDocument: Eo, isBr: So, isContentEditableTrue: To, isContentEditableFalse: ko, matchNodeNames: Co, hasPropValue: function (t, n) { return function (e) { return yo(e) && e[t] === n } }, hasAttribute: function (t, e) { return function (e) { return yo(e) && e.hasAttribute(t) } }, hasAttributeValue: function (t, n) { return function (e) { return yo(e) && e.getAttribute(t) === n } }, matchStyleValues: function (r, e) { var o = e.toLowerCase().split(" "); return function (e) { var t; if (yo(e))for (t = 0; t < o.length; t++) { var n = e.ownerDocument.defaultView.getComputedStyle(e, null); if ((n ? n.getPropertyValue(r) : null) === o[t])return !0 } return !1 } }, isBogus: function (e) { return yo(e) && e.hasAttribute("data-mce-bogus") }, isBogusAll: function (e) { return yo(e) && "all" === e.getAttribute("data-mce-bogus") }, isTable: function (e) { return yo(e) && "TABLE" === e.tagName } }, Ro = function (e) { return e && "SPAN" === e.tagName && "bookmark" === e.getAttribute("data-mce-type") }, Do = function (e, t) { var n, r = t.childNodes; if (!Ao.isElement(t) || !Ro(t)) { for (n = r.length - 1; 0 <= n; n--)Do(e, r[n]); if (!1 === Ao.isDocument(t)) { if (Ao.isText(t) && 0 < t.nodeValue.length) { var o = Xt.trim(t.nodeValue).length; if (e.isBlock(t.parentNode) || 0 < o)return; if (0 === o && (a = (i = t).previousSibling && "SPAN" === i.previousSibling.nodeName, u = i.nextSibling && "SPAN" === i.nextSibling.nodeName, a && u))return } else if (Ao.isElement(t) && (1 === (r = t.childNodes).length && Ro(r[0]) && t.parentNode.insertBefore(r[0], t), r.length || go(nr.fromDom(t))))return; e.remove(t) } var i, a, u; return t } }, Bo = {trimNode: Do}, _o = Xt.makeMap, Oo = /[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, Po = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, Lo = /[<>&\"\']/g, Io = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi, Mo = { 128: "\u20ac", 130: "\u201a", 131: "\u0192", 132: "\u201e", 133: "\u2026", 134: "\u2020", 135: "\u2021", 136: "\u02c6", 137: "\u2030", 138: "\u0160", 139: "\u2039", 140: "\u0152", 142: "\u017d", 145: "\u2018", 146: "\u2019", 147: "\u201c", 148: "\u201d", 149: "\u2022", 150: "\u2013", 151: "\u2014", 152: "\u02dc", 153: "\u2122", 154: "\u0161", 155: "\u203a", 156: "\u0153", 158: "\u017e", 159: "\u0178" }; ro = {'"': """, "'": "'", "<": "<", ">": ">", "&": "&", "`": "`"}, oo = { "<": "<", ">": ">", "&": "&", """: '"', "'": "'" }; var Fo = function (e, t) { var n, r, o, i = {}; if (e) { for (e = e.split(","), t = t || 10, n = 0; n < e.length; n += 2)r = String.fromCharCode(parseInt(e[n], t)), ro[r] || (o = "&" + e[n + 1] + ";", i[r] = o, i[o] = r); return i } }; no = Fo("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro", 32); var Uo = function (e, t) { return e.replace(t ? Oo : Po, function (e) { return ro[e] || e }) }, zo = function (e, t) { return e.replace(t ? Oo : Po, function (e) { return 1 < e.length ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : ro[e] || "&#" + e.charCodeAt(0) + ";" }) }, Vo = function (e, t, n) { return n = n || no, e.replace(t ? Oo : Po, function (e) { return ro[e] || n[e] || e }) }, Ho = { encodeRaw: Uo, encodeAllRaw: function (e) { return ("" + e).replace(Lo, function (e) { return ro[e] || e }) }, encodeNumeric: zo, encodeNamed: Vo, getEncodeFunc: function (e, t) { var n = Fo(t) || no, r = _o(e.replace(/\+/g, ",")); return r.named && r.numeric ? function (e, t) { return e.replace(t ? Oo : Po, function (e) { return ro[e] !== undefined ? ro[e] : n[e] !== undefined ? n[e] : 1 < e.length ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : "&#" + e.charCodeAt(0) + ";" }) } : r.named ? t ? function (e, t) { return Vo(e, t, n) } : Vo : r.numeric ? zo : Uo }, decode: function (e) { return e.replace(Io, function (e, t) { return t ? 65535 < (t = "x" === t.charAt(0).toLowerCase() ? parseInt(t.substr(1), 16) : parseInt(t, 10)) ? (t -= 65536, String.fromCharCode(55296 + (t >> 10), 56320 + (1023 & t))) : Mo[t] || String.fromCharCode(t) : oo[e] || no[e] || (n = e, (r = nr.fromTag("div").dom()).innerHTML = n, r.textContent || r.innerText || n); var n, r }) } }, jo = {}, qo = {}, $o = Xt.makeMap, Wo = Xt.each, Ko = Xt.extend, Xo = Xt.explode, Yo = Xt.inArray, Go = function (e, t) { return (e = Xt.trim(e)) ? e.split(t || " ") : [] }, Jo = function (e) { var u, t, n, r, o, i, s = {}, a = function (e, t, n) { var r, o, i, a = function (e, t) { var n, r, o = {}; for (n = 0, r = e.length; n < r; n++)o[e[n]] = t || {}; return o }; for (t = t || "", "string" == typeof(n = n || []) && (n = Go(n)), r = (e = Go(e)).length; r--;)i = { attributes: a(o = Go([u, t].join(" "))), attributesOrder: o, children: a(n, qo) }, s[e[r]] = i }, c = function (e, t) { var n, r, o, i; for (n = (e = Go(e)).length, t = Go(t); n--;)for (r = s[e[n]], o = 0, i = t.length; o < i; o++)r.attributes[t[o]] = {}, r.attributesOrder.push(t[o]) }; return jo[e] ? jo[e] : (u = "id accesskey class dir lang style tabindex title role", t = "address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul", n = "a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment", "html4" !== e && (u += " contenteditable contextmenu draggable dropzone hidden spellcheck translate", t += " article aside details dialog figure main header footer hgroup section nav", n += " audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"), "html5-strict" !== e && (u += " xml:lang", n = [n, i = "acronym applet basefont big font strike tt"].join(" "), Wo(Go(i), function (e) { a(e, "", n) }), t = [t, o = "center dir isindex noframes"].join(" "), r = [t, n].join(" "), Wo(Go(o), function (e) { a(e, "", r) })), r = r || [t, n].join(" "), a("html", "manifest", "head body"), a("head", "", "base command link meta noscript script style title"), a("title hr noscript br"), a("base", "href target"), a("link", "href rel media hreflang type sizes hreflang"), a("meta", "name http-equiv content charset"), a("style", "media type scoped"), a("script", "src async defer type charset"), a("body", "onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload", r), a("address dt dd div caption", "", r), a("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn", "", n), a("blockquote", "cite", r), a("ol", "reversed start type", "li"), a("ul", "", "li"), a("li", "value", r), a("dl", "", "dt dd"), a("a", "href target rel media hreflang type", n), a("q", "cite", n), a("ins del", "cite datetime", r), a("img", "src sizes srcset alt usemap ismap width height"), a("iframe", "src name width height", r), a("embed", "src type width height"), a("object", "data type typemustmatch name usemap form width height", [r, "param"].join(" ")), a("param", "name value"), a("map", "name", [r, "area"].join(" ")), a("area", "alt coords shape href target rel media hreflang type"), a("table", "border", "caption colgroup thead tfoot tbody tr" + ("html4" === e ? " col" : "")), a("colgroup", "span", "col"), a("col", "span"), a("tbody thead tfoot", "", "tr"), a("tr", "", "td th"), a("td", "colspan rowspan headers", r), a("th", "colspan rowspan headers scope abbr", r), a("form", "accept-charset action autocomplete enctype method name novalidate target", r), a("fieldset", "disabled form name", [r, "legend"].join(" ")), a("label", "form for", n), a("input", "accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"), a("button", "disabled form formaction formenctype formmethod formnovalidate formtarget name type value", "html4" === e ? r : n), a("select", "disabled form multiple name required size", "option optgroup"), a("optgroup", "disabled label", "option"), a("option", "disabled label selected value"), a("textarea", "cols dirname disabled form maxlength name readonly required rows wrap"), a("menu", "type label", [r, "li"].join(" ")), a("noscript", "", r), "html4" !== e && (a("wbr"), a("ruby", "", [n, "rt rp"].join(" ")), a("figcaption", "", r), a("mark rt rp summary bdi", "", n), a("canvas", "width height", r), a("video", "src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered", [r, "track source"].join(" ")), a("audio", "src crossorigin preload autoplay mediagroup loop muted controls buffered volume", [r, "track source"].join(" ")), a("picture", "", "img source"), a("source", "src srcset type media sizes"), a("track", "kind src srclang label default"), a("datalist", "", [n, "option"].join(" ")), a("article section nav aside main header footer", "", r), a("hgroup", "", "h1 h2 h3 h4 h5 h6"), a("figure", "", [r, "figcaption"].join(" ")), a("time", "datetime", n), a("dialog", "open", r), a("command", "type label icon disabled checked radiogroup command"), a("output", "for form name", n), a("progress", "value max", n), a("meter", "value min max low high optimum", n), a("details", "open", [r, "summary"].join(" ")), a("keygen", "autofocus challenge disabled form keytype name")), "html5-strict" !== e && (c("script", "language xml:space"), c("style", "xml:space"), c("object", "declare classid code codebase codetype archive standby align border hspace vspace"), c("embed", "align name hspace vspace"), c("param", "valuetype type"), c("a", "charset name rev shape coords"), c("br", "clear"), c("applet", "codebase archive code object alt name width height align hspace vspace"), c("img", "name longdesc align border hspace vspace"), c("iframe", "longdesc frameborder marginwidth marginheight scrolling align"), c("font basefont", "size color face"), c("input", "usemap align"), c("select", "onchange"), c("textarea"), c("h1 h2 h3 h4 h5 h6 div p legend caption", "align"), c("ul", "type compact"), c("li", "type"), c("ol dl menu dir", "compact"), c("pre", "width xml:space"), c("hr", "align noshade size width"), c("isindex", "prompt"), c("table", "summary width frame rules cellspacing cellpadding align bgcolor"), c("col", "width align char charoff valign"), c("colgroup", "width align char charoff valign"), c("thead", "align char charoff valign"), c("tr", "align char charoff valign bgcolor"), c("th", "axis align char charoff valign nowrap bgcolor width height"), c("form", "accept"), c("td", "abbr axis scope align char charoff valign nowrap bgcolor width height"), c("tfoot", "align char charoff valign"), c("tbody", "align char charoff valign"), c("area", "nohref"), c("body", "background bgcolor text link vlink alink")), "html4" !== e && (c("input button select textarea", "autofocus"), c("input textarea", "placeholder"), c("a", "download"), c("link script img", "crossorigin"), c("iframe", "sandbox seamless allowfullscreen")), Wo(Go("a form meter progress dfn"), function (e) { s[e] && delete s[e].children[e] }), delete s.caption.children.table, delete s.script, jo[e] = s) }, Qo = function (e, n) { var r; return e && (r = {}, "string" == typeof e && (e = {"*": e}), Wo(e, function (e, t) { r[t] = r[t.toUpperCase()] = "map" === n ? $o(e, /[, ]/) : Xo(e, /[, ]/) })), r }; function Zo(i) { var e, t, n, r, o, a, u, s, c, l, f, d, m, N = {}, g = {}, E = [], p = {}, h = {}, v = function (e, t, n) { var r = i[e]; return r ? r = $o(r, /[, ]/, $o(r.toUpperCase(), /[, ]/)) : (r = jo[e]) || (r = $o(t, " ", $o(t.toUpperCase(), " ")), r = Ko(r, n), jo[e] = r), r }; n = Jo((i = i || {}).schema), !1 === i.verify_html && (i.valid_elements = "*[*]"), e = Qo(i.valid_styles), t = Qo(i.invalid_styles, "map"), s = Qo(i.valid_classes, "map"), r = v("whitespace_elements", "pre script noscript style textarea video audio iframe object code"), o = v("self_closing_elements", "colgroup dd dt li option p td tfoot th thead tr"), a = v("short_ended_elements", "area base basefont br col frame hr img input isindex link meta param embed source wbr track"), u = v("boolean_attributes", "checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"), l = v("non_empty_elements", "td th iframe video audio object script pre code", a), f = v("move_caret_before_on_enter_elements", "table", l), d = v("text_block_elements", "h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside main nav figure"), c = v("block_elements", "hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption details summary", d), m = v("text_inline_elements", "span strong b em i font strike u var cite dfn code mark q sup sub samp"), Wo((i.special || "script noscript noframes noembed title style textarea xmp").split(" "), function (e) { h[e] = new RegExp("]*>", "gi") }); var S = function (e) { return new RegExp("^" + e.replace(/([?+*])/g, ".$1") + "$") }, b = function (e) { var t, n, r, o, i, a, u, s, c, l, f, d, m, g, p, h, v, b, y, C = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/, x = /^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/, w = /[*?+]/; if (e)for (e = Go(e, ","), N["@"] && (h = N["@"].attributes, v = N["@"].attributesOrder), t = 0, n = e.length; t < n; t++)if (i = C.exec(e[t])) { if (g = i[1], c = i[2], p = i[3], s = i[5], a = { attributes: d = {}, attributesOrder: m = [] }, "#" === g && (a.paddEmpty = !0), "-" === g && (a.removeEmpty = !0), "!" === i[4] && (a.removeEmptyAttrs = !0), h) { for (b in h)d[b] = h[b]; m.push.apply(m, v) } if (s)for (r = 0, o = (s = Go(s, "|")).length; r < o; r++)if (i = x.exec(s[r])) { if (u = {}, f = i[1], l = i[2].replace(/[\\:]:/g, ":"), g = i[3], y = i[4], "!" === f && (a.attributesRequired = a.attributesRequired || [], a.attributesRequired.push(l), u.required = !0), "-" === f) { delete d[l], m.splice(Yo(m, l), 1); continue } g && ("=" === g && (a.attributesDefault = a.attributesDefault || [], a.attributesDefault.push({ name: l, value: y }), u.defaultValue = y), ":" === g && (a.attributesForced = a.attributesForced || [], a.attributesForced.push({ name: l, value: y }), u.forcedValue = y), "<" === g && (u.validValues = $o(y, "?"))), w.test(l) ? (a.attributePatterns = a.attributePatterns || [], u.pattern = S(l), a.attributePatterns.push(u)) : (d[l] || m.push(l), d[l] = u) } h || "@" !== c || (h = d, v = m), p && (a.outputName = c, N[p] = a), w.test(c) ? (a.pattern = S(c), E.push(a)) : N[c] = a } }, y = function (e) { N = {}, E = [], b(e), Wo(n, function (e, t) { g[t] = e.children }) }, C = function (e) { var a = /^(~)?(.+)$/; e && (jo.text_block_elements = jo.block_elements = null, Wo(Go(e, ","), function (e) { var t = a.exec(e), n = "~" === t[1], r = n ? "span" : "div", o = t[2]; if (g[o] = g[r], p[o] = r, n || (c[o.toUpperCase()] = {}, c[o] = {}), !N[o]) { var i = N[r]; delete(i = Ko({}, i)).removeEmptyAttrs, delete i.removeEmpty, N[o] = i } Wo(g, function (e, t) { e[r] && (g[t] = e = Ko({}, g[t]), e[o] = e[r]) }) })) }, x = function (e) { var o = /^([+\-]?)(\w+)\[([^\]]+)\]$/; jo[i.schema] = null, e && Wo(Go(e, ","), function (e) { var t, n, r = o.exec(e); r && (n = r[1], t = n ? g[r[2]] : g[r[2]] = {"#comment": {}}, t = g[r[2]], Wo(Go(r[3], "|"), function (e) { "-" === n ? delete t[e] : t[e] = {} })) }) }, w = function (e) { var t, n = N[e]; if (n)return n; for (t = E.length; t--;)if ((n = E[t]).pattern.test(e))return n }; return i.valid_elements ? y(i.valid_elements) : (Wo(n, function (e, t) { N[t] = {attributes: e.attributes, attributesOrder: e.attributesOrder}, g[t] = e.children }), "html5" !== i.schema && Wo(Go("strong/b em/i"), function (e) { e = Go(e, "/"), N[e[1]].outputName = e[0] }), Wo(Go("ol ul sub sup blockquote span font a table tbody tr strong em b i"), function (e) { N[e] && (N[e].removeEmpty = !0) }), Wo(Go("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"), function (e) { N[e].paddEmpty = !0 }), Wo(Go("span"), function (e) { N[e].removeEmptyAttrs = !0 })), C(i.custom_elements), x(i.valid_children), b(i.extended_valid_elements), x("+ol[ul|ol],+ul[ul|ol]"), Wo({ dd: "dl", dt: "dl", li: "ul ol", td: "tr", th: "tr", tr: "tbody thead tfoot", tbody: "table", thead: "table", tfoot: "table", legend: "fieldset", area: "map", param: "video audio object" }, function (e, t) { N[t] && (N[t].parentsRequired = Go(e)) }), i.invalid_elements && Wo(Xo(i.invalid_elements), function (e) { N[e] && delete N[e] }), w("span") || b("span[!data-mce-type|*]"), { children: g, elements: N, getValidStyles: function () { return e }, getValidClasses: function () { return s }, getBlockElements: function () { return c }, getInvalidStyles: function () { return t }, getShortEndedElements: function () { return a }, getTextBlockElements: function () { return d }, getTextInlineElements: function () { return m }, getBoolAttrs: function () { return u }, getElementRule: w, getSelfClosingElements: function () { return o }, getNonEmptyElements: function () { return l }, getMoveCaretBeforeOnEnterElements: function () { return f }, getWhiteSpaceElements: function () { return r }, getSpecialElements: function () { return h }, isValidChild: function (e, t) { var n = g[e.toLowerCase()]; return !(!n || !n[t.toLowerCase()]) }, isValid: function (e, t) { var n, r, o = w(e); if (o) { if (!t)return !0; if (o.attributes[t])return !0; if (n = o.attributePatterns)for (r = n.length; r--;)if (n[r].pattern.test(e))return !0 } return !1 }, getCustomElements: function () { return p }, addValidElements: b, setValidElements: y, addCustomElements: C, addValidChildren: x } } var ei = function (e, t, n, r) { var o = function (e) { return 1 < (e = parseInt(e, 10).toString(16)).length ? e : "0" + e }; return "#" + o(t) + o(n) + o(r) }; function ti(y, e) { var C, t, c, l, x = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi, w = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi, N = /\s*([^:]+):\s*([^;]+);?/g, E = /\s+$/, S = {}, T = "\ufeff"; for (y = y || {}, e && (c = e.getValidStyles(), l = e.getInvalidStyles()), t = ("\\\" \\' \\; \\: ; : " + T).split(" "), C = 0; C < t.length; C++)S[t[C]] = T + C, S[T + C] = t[C]; return { toHex: function (e) { return e.replace(x, ei) }, parse: function (e) { var t, n, r, o, i, a, u, s, c = {}, l = y.url_converter, f = y.url_converter_scope || this, d = function (e, t, n) { var r, o, i, a; if ((r = c[e + "-top" + t]) && (o = c[e + "-right" + t]) && (i = c[e + "-bottom" + t]) && (a = c[e + "-left" + t])) { var u = [r, o, i, a]; for (C = u.length - 1; C-- && u[C] === u[C + 1];); -1 < C && n || (c[e + t] = -1 === C ? u[0] : u.join(" "), delete c[e + "-top" + t], delete c[e + "-right" + t], delete c[e + "-bottom" + t], delete c[e + "-left" + t]) } }, m = function (e) { var t, n = c[e]; if (n) { for (t = (n = n.split(" ")).length; t--;)if (n[t] !== n[0])return !1; return c[e] = n[0], !0 } }, g = function (e) { return o = !0, S[e] }, p = function (e, t) { return o && (e = e.replace(/\uFEFF[0-9]/g, function (e) { return S[e] })), t || (e = e.replace(/\\([\'\";:])/g, "$1")), e }, h = function (e) { return String.fromCharCode(parseInt(e.slice(1), 16)) }, v = function (e) { return e.replace(/\\[0-9a-f]+/gi, h) }, b = function (e, t, n, r, o, i) { if (o = o || i)return "'" + (o = p(o)).replace(/\'/g, "\\'") + "'"; if (t = p(t || n || r), !y.allow_script_urls) { var a = t.replace(/[\s\r\n]+/g, ""); if (/(java|vb)script:/i.test(a))return ""; if (!y.allow_svg_data_urls && /^data:image\/svg/i.test(a))return "" } return l && (t = l.call(f, t, "style")), "url('" + t.replace(/\'/g, "\\'") + "')" }; if (e) { for (e = (e = e.replace(/[\u0000-\u001F]/g, "")).replace(/\\[\"\';:\uFEFF]/g, g).replace(/\"[^\"]+\"|\'[^\']+\'/g, function (e) { return e.replace(/[;:]/g, g) }); t = N.exec(e);)if (N.lastIndex = t.index + t[0].length, n = t[1].replace(E, "").toLowerCase(), r = t[2].replace(E, ""), n && r) { if (n = v(n), r = v(r), -1 !== n.indexOf(T) || -1 !== n.indexOf('"'))continue; if (!y.allow_script_urls && ("behavior" === n || /expression\s*\(|\/\*|\*\//.test(r)))continue; "font-weight" === n && "700" === r ? r = "bold" : "color" !== n && "background-color" !== n || (r = r.toLowerCase()), r = (r = r.replace(x, ei)).replace(w, b), c[n] = o ? p(r, !0) : r } d("border", "", !0), d("border", "-width"), d("border", "-color"), d("border", "-style"), d("padding", ""), d("margin", ""), i = "border", u = "border-style", s = "border-color", m(a = "border-width") && m(u) && m(s) && (c[i] = c[a] + " " + c[u] + " " + c[s], delete c[a], delete c[u], delete c[s]), "medium none" === c.border && delete c.border, "none" === c["border-image"] && delete c["border-image"] } return c }, serialize: function (i, e) { var t, n, r, o, a, u = "", s = function (e) { var t, n, r, o; if (t = c[e])for (n = 0, r = t.length; n < r; n++)e = t[n], (o = i[e]) && (u += (0 < u.length ? " " : "") + e + ": " + o + ";") }; if (e && c)s("*"), s(e); else for (t in i)!(n = i[t]) || l && (r = t, o = e, a = void 0, (a = l["*"]) && a[r] || (a = l[o]) && a[r]) || (u += (0 < u.length ? " " : "") + t + ": " + n + ";"); return u } } } var ni, ri = Xt.each, oi = Xt.grep, ii = fe.ie, ai = /^([a-z0-9],?)+$/i, ui = /^[ \t\r\n]*$/, si = function (n, r, o) { var e = {}, i = r.keep_values, t = { set: function (e, t, n) { r.url_converter && (t = r.url_converter.call(r.url_converter_scope || o(), t, n, e[0])), e.attr("data-mce-" + n, t).attr(n, t) }, get: function (e, t) { return e.attr("data-mce-" + t) || e.attr(t) } }; return e = { style: { set: function (e, t) { null === t || "object" != typeof t ? (i && e.attr("data-mce-style", t), e.attr("style", t)) : e.css(t) }, get: function (e) { var t = e.attr("data-mce-style") || e.attr("style"); return t = n.serialize(n.parse(t), e[0].nodeName) } } }, i && (e.href = e.src = t), e }, ci = function (e, t) { var n = t.attr("style"), r = e.serialize(e.parse(n), t[0].nodeName); r || (r = null), t.attr("data-mce-style", r) }, li = function (e, t) { var n, r, o = 0; if (e)for (n = e.nodeType, e = e.previousSibling; e; e = e.previousSibling)r = e.nodeType, (!t || 3 !== r || r !== n && e.nodeValue.length) && (o++, n = r); return o }; function fi(a, u) { var s, c = this; void 0 === u && (u = {}); var r = {}, i = window, o = {}, t = 0, e = function H(m, g) { void 0 === g && (g = {}); var p, h = 0, v = {}; p = g.maxLoadTime || 5e3; var b = function (e) { m.getElementsByTagName("head")[0].appendChild(e) }, n = function (e, t, n) { var o, r, i, a, u = function () { for (var e = a.passed, t = e.length; t--;)e[t](); a.status = 2, a.passed = [], a.failed = [] }, s = function () { for (var e = a.failed, t = e.length; t--;)e[t](); a.status = 3, a.passed = [], a.failed = [] }, c = function (e, t) { e() || ((new Date).getTime() - i < p ? he.setTimeout(t) : s()) }, l = function () { c(function () { for (var e, t, n = m.styleSheets, r = n.length; r--;)if ((t = (e = n[r]).ownerNode ? e.ownerNode : e.owningElement) && t.id === o.id)return u(), !0 }, l) }, f = function () { c(function () { try { var e = r.sheet.cssRules; return u(), !!e } catch (t) { } }, f) }; if (e = Xt._addCacheSuffix(e), v[e] ? a = v[e] : (a = { passed: [], failed: [] }, v[e] = a), t && a.passed.push(t), n && a.failed.push(n), 1 !== a.status)if (2 !== a.status)if (3 !== a.status) { if (a.status = 1, (o = m.createElement("link")).rel = "stylesheet", o.type = "text/css", o.id = "u" + h++, o.async = !1, o.defer = !1, i = (new Date).getTime(), g.contentCssCors && (o.crossOrigin = "anonymous"), "onload"in o && !((d = navigator.userAgent.match(/WebKit\/(\d*)/)) && parseInt(d[1], 10) < 536))o.onload = l, o.onerror = s; else { if (0 < navigator.userAgent.indexOf("Firefox"))return (r = m.createElement("style")).textContent = '@import "' + e + '"', f(), void b(r); l() } var d; b(o), o.href = e } else s(); else u() }, t = function (t) { return Yr.nu(function (e) { n(t, j(e, q(eo.value(t))), j(e, q(eo.error(t)))) }) }, o = function (e) { return e.fold($, $) }; return { load: n, loadAll: function (e, n, r) { Jr(W(e, t)).get(function (e) { var t = K(e, function (e) { return e.isValue() }); 0 < t.fail.length ? r(t.fail.map(o)) : n(t.pass.map(o)) }) } } }(a, {contentCssCors: u.contentCssCors}), l = [], f = u.schema ? u.schema : Zo({}), d = ti({ url_converter: u.url_converter, url_converter_scope: u.url_converter_scope }, u.schema), m = u.ownEvents ? new Se(u.proxy) : Se.Event, n = f.getBlockElements(), g = gn.overrideDefaults(function () { return {context: a, element: V.getRoot()} }), p = function (e) { if (e && a && "string" == typeof e) { var t = a.getElementById(e); return t && t.id !== e ? a.getElementsByName(e)[1] : t } return e }, h = function (e) { return "string" == typeof e && (e = p(e)), g(e) }, v = function (e, t, n) { var r, o, i = h(e); return i.length && (o = (r = s[t]) && r.get ? r.get(i, t) : i.attr(t)), void 0 === o && (o = n || ""), o }, b = function (e) { var t = p(e); return t ? t.attributes : [] }, y = function (e, t, n) { var r, o; "" === n && (n = null); var i = h(e); r = i.attr(t), i.length && ((o = s[t]) && o.set ? o.set(i, n, t) : i.attr(t, n), r !== n && u.onSetAttrib && u.onSetAttrib({ attrElm: i, attrName: t, attrValue: n })) }, C = function () { return u.root_element || a.body }, x = function (e, t) { return $r.getPos(a.body, p(e), t) }, w = function (e, t, n) { var r = h(e); return n ? r.css(t) : ("float" === (t = t.replace(/-(\D)/g, function (e, t) { return t.toUpperCase() })) && (t = fe.ie && fe.ie < 12 ? "styleFloat" : "cssFloat"), r[0] && r[0].style ? r[0].style[t] : undefined) }, N = function (e) { var t, n; return e = p(e), t = w(e, "width"), n = w(e, "height"), -1 === t.indexOf("px") && (t = 0), -1 === n.indexOf("px") && (n = 0), { w: parseInt(t, 10) || e.offsetWidth || e.clientWidth, h: parseInt(n, 10) || e.offsetHeight || e.clientHeight } }, E = function (e, t) { var n; if (!e)return !1; if (!Array.isArray(e)) { if ("*" === t)return 1 === e.nodeType; if (ai.test(t)) { var r = t.toLowerCase().split(/,/), o = e.nodeName.toLowerCase(); for (n = r.length - 1; 0 <= n; n--)if (r[n] === o)return !0; return !1 } if (e.nodeType && 1 !== e.nodeType)return !1 } var i = Array.isArray(e) ? e : [e]; return 0 < St(t, i[0].ownerDocument || i[0], null, i).length }, S = function (e, t, n, r) { var o, i = [], a = p(e); for (r = r === undefined, n = n || ("BODY" !== C().nodeName ? C().parentNode : null), Xt.is(t, "string") && (t = "*" === (o = t) ? function (e) { return 1 === e.nodeType } : function (e) { return E(e, o) }); a && a !== n && a.nodeType && 9 !== a.nodeType;) { if (!t || "function" == typeof t && t(a)) { if (!r)return [a]; i.push(a) } a = a.parentNode } return r ? i : null }, T = function (e, t, n) { var r = t; if (e)for ("string" == typeof t && (r = function (e) { return E(e, t) }), e = e[n]; e; e = e[n])if ("function" == typeof r && r(e))return e; return null }, k = function (e, n, r) { var o, t = "string" == typeof e ? p(e) : e; if (!t)return !1; if (Xt.isArray(t) && (t.length || 0 === t.length))return o = [], ri(t, function (e, t) { e && ("string" == typeof e && (e = p(e)), o.push(n.call(r, e, t))) }), o; var i = r || c; return n.call(i, t) }, A = function (e, t) { h(e).each(function (e, n) { ri(t, function (e, t) { y(n, t, e) }) }) }, R = function (e, r) { var t = h(e); ii ? t.each(function (e, t) { if (!1 !== t.canHaveHTML) { for (; t.firstChild;)t.removeChild(t.firstChild); try { t.innerHTML = "
" + r, t.removeChild(t.firstChild) } catch (n) { gn("
").html("
" + r).contents().slice(1).appendTo(t) } return r } }) : t.html(r) }, D = function (e, n, r, o, i) { return k(e, function (e) { var t = "string" == typeof n ? a.createElement(n) : n; return A(t, r), o && ("string" != typeof o && o.nodeType ? t.appendChild(o) : "string" == typeof o && R(t, o)), i ? t : e.appendChild(t) }) }, B = function (e, t, n) { return D(a.createElement(e), e, t, n, !0) }, _ = Ho.decode, O = Ho.encodeAllRaw, P = function (e, t) { var n = h(e); return t ? n.each(function () { for (var e; e = this.firstChild;)3 === e.nodeType && 0 === e.data.length ? this.removeChild(e) : this.parentNode.insertBefore(e, this) }).remove() : n.remove(), 1 < n.length ? n.toArray() : n[0] }, L = function (e, t, n) { h(e).toggleClass(t, n).each(function () { "" === this.className && gn(this).attr("class", null) }) }, I = function (t, e, n) { return k(e, function (e) { return Xt.is(e, "array") && (t = t.cloneNode(!0)), n && ri(oi(e.childNodes), function (e) { t.appendChild(e) }), e.parentNode.replaceChild(t, e) }) }, M = function () { return a.createRange() }, F = function (e, t, n, r) { if (Xt.isArray(e)) { for (var o = e.length; o--;)e[o] = F(e[o], t, n, r); return e } return !u.collect || e !== a && e !== i || l.push([e, t, n, r]), m.bind(e, t, n, r || V) }, U = function (e, t, n) { var r; if (Xt.isArray(e)) { for (r = e.length; r--;)e[r] = U(e[r], t, n); return e } if (l && (e === a || e === i))for (r = l.length; r--;) { var o = l[r]; e !== o[0] || t && t !== o[1] || n && n !== o[2] || m.unbind(o[0], o[1], o[2]) } return m.unbind(e, t, n) }, z = function (e) { if (e && Ao.isElement(e)) { var t = e.getAttribute("data-mce-contenteditable"); return t && "inherit" !== t ? t : "inherit" !== e.contentEditable ? e.contentEditable : null } return null }, V = { doc: a, settings: u, win: i, files: o, stdMode: !0, boxModel: !0, styleSheetLoader: e, boundEvents: l, styles: d, schema: f, events: m, isBlock: function (e) { if ("string" == typeof e)return !!n[e]; if (e) { var t = e.nodeType; if (t)return !(1 !== t || !n[e.nodeName]) } return !1 }, $: g, $$: h, root: null, clone: function (t, e) { if (!ii || 1 !== t.nodeType || e)return t.cloneNode(e); if (e)return null; var n = a.createElement(t.nodeName); return ri(b(t), function (e) { y(n, e.nodeName, v(t, e.nodeName)) }), n }, getRoot: C, getViewPort: function (e) { var t = e || i, n = t.document, r = n.documentElement; return { x: t.pageXOffset || r.scrollLeft, y: t.pageYOffset || r.scrollTop, w: t.innerWidth || r.clientWidth, h: t.innerHeight || r.clientHeight } }, getRect: function (e) { var t, n; return e = p(e), t = x(e), n = N(e), {x: t.x, y: t.y, w: n.w, h: n.h} }, getSize: N, getParent: function (e, t, n) { var r = S(e, t, n, !1); return r && 0 < r.length ? r[0] : null }, getParents: S, get: p, getNext: function (e, t) { return T(e, t, "nextSibling") }, getPrev: function (e, t) { return T(e, t, "previousSibling") }, select: function (e, t) { return St(e, p(t) || u.root_element || a, []) }, is: E, add: D, create: B, createHTML: function (e, t, n) { var r, o = ""; for (r in o += "<" + e, t)t.hasOwnProperty(r) && null !== t[r] && "undefined" != typeof t[r] && (o += " " + r + '="' + O(t[r]) + '"'); return void 0 !== n ? o + ">" + n + "" : o + " />" }, createFragment: function (e) { var t, n = a.createElement("div"), r = a.createDocumentFragment(); for (e && (n.innerHTML = e); t = n.firstChild;)r.appendChild(t); return r }, remove: P, setStyle: function (e, t, n) { var r = h(e).css(t, n); u.update_styles && ci(d, r) }, getStyle: w, setStyles: function (e, t) { var n = h(e).css(t); u.update_styles && ci(d, n) }, removeAllAttribs: function (e) { return k(e, function (e) { var t, n = e.attributes; for (t = n.length - 1; 0 <= t; t--)e.removeAttributeNode(n.item(t)) }) }, setAttrib: y, setAttribs: A, getAttrib: v, getPos: x, parseStyle: function (e) { return d.parse(e) }, serializeStyle: function (e, t) { return d.serialize(e, t) }, addStyle: function (e) { var t, n; if (V !== fi.DOM && a === document) { if (r[e])return; r[e] = !0 } (n = a.getElementById("mceDefaultStyles")) || ((n = a.createElement("style")).id = "mceDefaultStyles", n.type = "text/css", (t = a.getElementsByTagName("head")[0]).firstChild ? t.insertBefore(n, t.firstChild) : t.appendChild(n)), n.styleSheet ? n.styleSheet.cssText += e : n.appendChild(a.createTextNode(e)) }, loadCSS: function (e) { var n; V === fi.DOM || a !== document ? (e || (e = ""), n = a.getElementsByTagName("head")[0], ri(e.split(","), function (e) { var t; e = Xt._addCacheSuffix(e), o[e] || (o[e] = !0, t = B("link", { rel: "stylesheet", href: e }), n.appendChild(t)) })) : fi.DOM.loadCSS(e) }, addClass: function (e, t) { h(e).addClass(t) }, removeClass: function (e, t) { L(e, t, !1) }, hasClass: function (e, t) { return h(e).hasClass(t) }, toggleClass: L, show: function (e) { h(e).show() }, hide: function (e) { h(e).hide() }, isHidden: function (e) { return "none" === h(e).css("display") }, uniqueId: function (e) { return (e || "mce_") + t++ }, setHTML: R, getOuterHTML: function (e) { var t = "string" == typeof e ? p(e) : e; return Ao.isElement(t) ? t.outerHTML : gn("
").append(gn(t).clone()).html() }, setOuterHTML: function (e, t) { h(e).each(function () { try { if ("outerHTML"in this)return void(this.outerHTML = t) } catch (e) { } P(gn(this).html(t), !0) }) }, decode: _, encode: O, insertAfter: function (e, t) { var r = p(t); return k(e, function (e) { var t, n; return t = r.parentNode, (n = r.nextSibling) ? t.insertBefore(e, n) : t.appendChild(e), e }) }, replace: I, rename: function (t, e) { var n; return t.nodeName !== e.toUpperCase() && (n = B(e), ri(b(t), function (e) { y(n, e.nodeName, v(t, e.nodeName)) }), I(n, t, !0)), n || t }, findCommonAncestor: function (e, t) { for (var n, r = e; r;) { for (n = t; n && r !== n;)n = n.parentNode; if (r === n)break; r = r.parentNode } return !r && e.ownerDocument ? e.ownerDocument.documentElement : r }, toHex: function (e) { return d.toHex(Xt.trim(e)) }, run: k, getAttribs: b, isEmpty: function (e, t) { var n, r, o, i, a, u, s = 0; if (e = e.firstChild) { a = new to(e, e.parentNode), t = t || (f ? f.getNonEmptyElements() : null), i = f ? f.getWhiteSpaceElements() : {}; do { if (o = e.nodeType, Ao.isElement(e)) { var c = e.getAttribute("data-mce-bogus"); if (c) { e = a.next("all" === c); continue } if (u = e.nodeName.toLowerCase(), t && t[u]) { if ("br" !== u)return !1; s++, e = a.next(); continue } for (n = (r = b(e)).length; n--;)if ("name" === (u = r[n].nodeName) || "data-mce-bookmark" === u)return !1 } if (8 === o)return !1; if (3 === o && !ui.test(e.nodeValue))return !1; if (3 === o && e.parentNode && i[e.parentNode.nodeName] && ui.test(e.nodeValue))return !1; e = a.next() } while (e) } return s <= 1 }, createRng: M, nodeIndex: li, split: function (e, t, n) { var r, o, i, a = M(); if (e && t)return a.setStart(e.parentNode, li(e)), a.setEnd(t.parentNode, li(t)), r = a.extractContents(), (a = M()).setStart(t.parentNode, li(t) + 1), a.setEnd(e.parentNode, li(e) + 1), o = a.extractContents(), (i = e.parentNode).insertBefore(Bo.trimNode(V, r), e), n ? i.insertBefore(n, e) : i.insertBefore(t, e), i.insertBefore(Bo.trimNode(V, o), e), P(e), n || t }, bind: F, unbind: U, fire: function (e, t, n) { return m.fire(e, t, n) }, getContentEditable: z, getContentEditableParent: function (e) { for (var t = C(), n = null; e && e !== t && null === (n = z(e)); e = e.parentNode); return n }, destroy: function () { if (l)for (var e = l.length; e--;) { var t = l[e]; m.unbind(t[0], t[1], t[2]) } St.setDocument && St.setDocument() }, isChildOf: function (e, t) { for (; e;) { if (t === e)return !0; e = e.parentNode } return !1 }, dumpRng: function (e) { return "startContainer: " + e.startContainer.nodeName + ", startOffset: " + e.startOffset + ", endContainer: " + e.endContainer.nodeName + ", endOffset: " + e.endOffset } }; return s = si(d, u, function () { return V }), V } (ni = fi || (fi = {})).DOM = ni(document), ni.nodeIndex = li; var di = fi, mi = di.DOM, gi = Xt.each, pi = Xt.grep, hi = function (e) { return "function" == typeof e }, vi = function () { var u = {}, o = [], s = {}, c = [], l = 0, f = function (e, t, n) { var r, o, i = mi; o = i.uniqueId(), (r = document.createElement("script")).id = o, r.type = "text/javascript", r.src = Xt._addCacheSuffix(e), r.onload = function () { i.remove(o), r && (r.onreadystatechange = r.onload = r = null), t() }, r.onerror = function () { hi(n) ? n() : "undefined" != typeof console && console.log && console.log("Failed to load script: " + e) }, (document.getElementsByTagName("head")[0] || document.body).appendChild(r) }; this.loadScript = function (e, t, n) { f(e, t, n) }, this.isDone = function (e) { return 2 === u[e] }, this.markDone = function (e) { u[e] = 2 }, this.add = this.load = function (e, t, n, r) { u[e] === undefined && (o.push(e), u[e] = 0), t && (s[e] || (s[e] = []), s[e].push({ success: t, failure: r, scope: n || this })) }, this.remove = function (e) { delete u[e], delete s[e] }, this.loadQueue = function (e, t, n) { this.loadScripts(o, e, t, n) }, this.loadScripts = function (n, e, t, r) { var o, i = [], a = function (t, e) { gi(s[e], function (e) { hi(e[t]) && e[t].call(e.scope) }), s[e] = undefined }; c.push({success: e, failure: r, scope: t || this}), (o = function () { var e = pi(n); if (n.length = 0, gi(e, function (e) { 2 !== u[e] ? 3 !== u[e] ? 1 !== u[e] && (u[e] = 1, l++, f(e, function () { u[e] = 2, l--, a("success", e), o() }, function () { u[e] = 3, l--, i.push(e), a("failure", e), o() })) : a("failure", e) : a("success", e) }), !l) { var t = c.slice(0); c.length = 0, gi(t, function (e) { 0 === i.length ? hi(e.success) && e.success.call(e.scope) : hi(e.failure) && e.failure.call(e.scope, i) }) } })() } }; vi.ScriptLoader = new vi; var bi, yi = function (e) { var t = e, n = function () { return t }; return { get: n, set: function (e) { t = e }, clone: function () { return yi(n()) } } }, Ci = {}, xi = yi("en"), wi = { setCode: function (e) { e && xi.set(e) }, getCode: function () { return xi.get() }, add: function (e, t) { var n = Ci[e]; for (var r in n || (Ci[e] = n = {}), t)n[r.toLowerCase()] = t[r] }, translate: function (e) { var t, n, r = Ci[xi.get()] || {}, o = function (e) { return O(e) ? Object.prototype.toString.call(e) : i(e) ? "" : "" + e }, i = function (e) { return "" === e || null === e || e === undefined }, a = function (e) { var t = o(e), n = t.toLowerCase(); return pr(r, n) ? o(r[n]) : t }, u = function (e) { return e.replace(/{context:\w+}$/, "") }, s = function (e) { return e }; if (i(e))return s(""); if (R(t = e) && pr(t, "raw"))return s(o(e.raw)); if (D(n = e) && 1 < n.length) { var c = e.slice(1); return s(u(a(e[0]).replace(/\{([0-9]+)\}/g, function (e, t) { return pr(c, t) ? o(c[t]) : e }))) } return s(u(a(e))) }, isRtl: function () { return gr(Ci, xi.get()).bind(function (e) { return gr(e, "_dir") }).exists(function (e) { return "rtl" === e }) }, hasCode: function (e) { return pr(Ci, e) } }, Ni = Xt.each; function Ei() { var r = this, o = [], a = {}, u = {}, i = [], s = function (e) { var t; return u[e] && (t = u[e].dependencies), t || [] }, c = function (e, t) { return "object" == typeof t ? t : "string" == typeof e ? { prefix: "", resource: t, suffix: "" } : {prefix: e.prefix, resource: t, suffix: e.suffix} }, l = function (e, n, t, r) { var o = s(e); Ni(o, function (e) { var t = c(n, e); f(t.resource, t, undefined, undefined) }), t && (r ? t.call(r) : t.call(vi)) }, f = function (e, t, n, r, o) { if (!a[e]) { var i = "string" == typeof t ? t : t.prefix + t.resource + t.suffix; 0 !== i.indexOf("/") && -1 === i.indexOf("://") && (i = Ei.baseURL + "/" + i), a[e] = i.substring(0, i.lastIndexOf("/")), u[e] ? l(e, t, n, r) : vi.ScriptLoader.add(i, function () { return l(e, t, n, r) }, r, o) } }; return { items: o, urls: a, lookup: u, _listeners: i, get: function (e) { return u[e] ? u[e].instance : undefined }, dependencies: s, requireLangPack: function (e, t) { var n = wi.getCode(); if (n && !1 !== Ei.languageLoad) { if (t)if (-1 !== (t = "," + t + ",").indexOf("," + n.substr(0, 2) + ","))n = n.substr(0, 2); else if (-1 === t.indexOf("," + n + ","))return; vi.ScriptLoader.add(a[e] + "/langs/" + n + ".js") } }, add: function (t, e, n) { o.push(e), u[t] = {instance: e, dependencies: n}; var r = K(i, function (e) { return e.name === t }); return i = r.fail, Ni(r.pass, function (e) { e.callback() }), e }, remove: function (e) { delete a[e], delete u[e] }, createUrl: c, addComponents: function (e, t) { var n = r.urls[e]; Ni(t, function (e) { vi.ScriptLoader.add(n + "/" + e) }) }, load: f, waitFor: function (e, t) { u.hasOwnProperty(e) ? t() : i.push({name: e, callback: t}) } } } (bi = Ei || (Ei = {})).PluginManager = bi(), bi.ThemeManager = bi(); var Si = function (t, n) { Lr(t).each(function (e) { e.dom().insertBefore(n.dom(), t.dom()) }) }, Ti = function (e, t) { Mr(e).fold(function () { Lr(e).each(function (e) { ki(e, t) }) }, function (e) { Si(e, t) }) }, ki = function (e, t) { e.dom().appendChild(t.dom()) }, Ai = function (t, e) { M(e, function (e) { ki(t, e) }) }, Ri = function (e) { e.dom().textContent = "", M(Ur(e), function (e) { Di(e) }) }, Di = function (e) { var t = e.dom(); null !== t.parentNode && t.parentNode.removeChild(t) }, Bi = function (e) { var t, n = Ur(e); 0 < n.length && (t = e, M(n, function (e) { Si(t, e) })), Di(e) }, _i = function (n, r) { var o = null; return { cancel: function () { null !== o && (clearTimeout(o), o = null) }, throttle: function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; null === o && (o = setTimeout(function () { n.apply(null, e), o = null }, r)) } } }, Oi = function (e, t) { var n = yr(e, t); return n === undefined || "" === n ? [] : n.split(" ") }, Pi = function (e) { return e.dom().classList !== undefined }, Li = function (e, t) { return o = t, i = Oi(n = e, r = "class").concat([o]), vr(n, r, i.join(" ")), !0; var n, r, o, i }, Ii = function (e, t) { return o = t, 0 < (i = F(Oi(n = e, r = "class"), function (e) { return e !== o })).length ? vr(n, r, i.join(" ")) : Cr(n, r), !1; var n, r, o, i }, Mi = function (e, t) { Pi(e) ? e.dom().classList.add(t) : Li(e, t) }, Fi = function (e) { 0 === (Pi(e) ? e.dom().classList : Oi(e, "class")).length && Cr(e, "class") }, Ui = function (e, t) { return Pi(e) && e.dom().classList.contains(t) }, zi = function (e, t) { return n = t, o = (r = e) === undefined ? document : r.dom(), Br(o) ? [] : W(o.querySelectorAll(n), nr.fromDom); var n, r, o }; function Vi(e, t, n, r, o) { return e(n, r) ? A.some(n) : O(o) && o(n) ? A.none() : t(n, r, o) } var Hi, ji = function (e, t, n) { for (var r = e.dom(), o = O(n) ? n : q(!1); r.parentNode;) { r = r.parentNode; var i = nr.fromDom(r); if (t(i))return A.some(i); if (o(i))break } return A.none() }, qi = function (e, t, n) { return Vi(function (e) { return t(e) }, ji, e, t, n) }, $i = function (e, t, n) { return ji(e, function (e) { return Dr(e, t) }, n) }, Wi = function (e, t) { return n = t, o = (r = e) === undefined ? document : r.dom(), Br(o) ? A.none() : A.from(o.querySelector(n)).map(nr.fromDom); var n, r, o }, Ki = function (e, t, n) { return Vi(Dr, $i, e, t, n) }, Xi = q("mce-annotation"), Yi = q("data-mce-annotation"), Gi = q("data-mce-annotation-uid"), Ji = function (r, e) { var t = r.selection.getRng(), n = nr.fromDom(t.startContainer), o = nr.fromDom(r.getBody()), i = e.fold(function () { return "." + Xi() }, function (e) { return "[" + Yi() + '="' + e + '"]' }), a = zr(n, t.startOffset).getOr(n), u = Ki(a, i, function (e) { return _r(e, o) }), s = function (e, t) { return n = t, (r = e.dom()) && r.hasAttribute && r.hasAttribute(n) ? A.some(yr(e, t)) : A.none(); var n, r }; return u.bind(function (e) { return s(e, "" + Gi()).bind(function (n) { return s(e, "" + Yi()).map(function (e) { var t = Qi(r, n); return {uid: n, name: e, elements: t} }) }) }) }, Qi = function (e, t) { var n = nr.fromDom(e.getBody()); return zi(n, "[" + Gi() + '="' + t + '"]') }, Zi = function (i, e) { var n, r, o, a = yi({}), c = function (e, t) { u(e, function (e) { return t(e), e }) }, u = function (e, t) { var n = a.get(), r = t(n.hasOwnProperty(e) ? n[e] : {listeners: [], previous: yi(A.none())}); n[e] = r, a.set(n) }, t = (n = function () { var e, t, n, r = a.get(), o = (e = lr(r), (n = J.call(e, 0)).sort(t), n); M(o, function (e) { u(e, function (u) { var s = u.previous.get(); return Ji(i, A.some(e)).fold(function () { var t; s.isSome() && (c(t = e, function (e) { M(e.listeners, function (e) { return e(!1, t) }) }), u.previous.set(A.none())) }, function (e) { var t, n, r, o = e.uid, i = e.name, a = e.elements; s.is(o) || (n = o, r = a, c(t = i, function (e) { M(e.listeners, function (e) { return e(!0, t, { uid: n, nodes: W(r, function (e) { return e.dom() }) }) }) }), u.previous.set(A.some(o))) }), {previous: u.previous, listeners: u.listeners} }) }) }, r = 30, o = null, { cancel: function () { null !== o && (clearTimeout(o), o = null) }, throttle: function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; null !== o && clearTimeout(o), o = setTimeout(function () { n.apply(null, e), o = null }, r) } }); return i.on("remove", function () { t.cancel() }), i.on("nodeChange", function () { t.throttle() }), { addListener: function (e, t) { u(e, function (e) { return {previous: e.previous, listeners: e.listeners.concat([t])} }) } } }, ea = function (e, n) { e.on("init", function () { e.serializer.addNodeFilter("span", function (e) { M(e, function (t) { var e; (e = t, A.from(e.attributes.map[Yi()]).bind(n.lookup)).each(function (e) { !1 === e.persistent && t.unwrap() }) }) }) }) }, ta = 0, na = function (e, t) { return nr.fromDom(e.dom().cloneNode(t)) }, ra = function (e) { return na(e, !1) }, oa = function (e) { return na(e, !0) }, ia = function (e, t) { var n, r, o = Pr(e).dom(), i = nr.fromDom(o.createDocumentFragment()), a = (n = t, (r = (o || document).createElement("div")).innerHTML = n, Ur(nr.fromDom(r))); Ai(i, a), Ri(e), ki(e, i) }, aa = [].slice, ua = function (e) { for (var t = [], n = 1; n < arguments.length; n++)t[n - 1] = arguments[n]; var r = aa.call(arguments); return r.length - 1 >= e.length ? e.apply(this, r.slice(1)) : function () { var e = r.concat([].slice.call(arguments)); return ua.apply(this, e) } }, sa = { constant: function (e) { return function () { return e } }, negate: function (t) { return function (e) { return !t(e) } }, and: function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; var n = aa.call(arguments); return function (e) { for (var t = 0; t < n.length; t++)if (!n[t](e))return !1; return !0 } }, or: function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; var n = aa.call(arguments); return function (e) { for (var t = 0; t < n.length; t++)if (n[t](e))return !0; return !1 } }, curry: ua, compose: function (t, n) { return function (e) { return t(n(e)) } }, noop: function () { } }, ca = "\ufeff", la = function (e) { return e === ca }, fa = ca, da = function (e) { return e.replace(new RegExp(ca, "g"), "") }, ma = Ao.isElement, ga = Ao.isText, pa = function (e) { return ga(e) && (e = e.parentNode), ma(e) && e.hasAttribute("data-mce-caret") }, ha = function (e) { return ga(e) && la(e.data) }, va = function (e) { return pa(e) || ha(e) }, ba = function (e) { return e.firstChild !== e.lastChild || !Ao.isBr(e.firstChild) }, ya = function (e) { var t = e.container(); return e && Ao.isText(t) && t.data.charAt(e.offset()) === fa }, Ca = function (e) { var t = e.container(); return e && Ao.isText(t) && t.data.charAt(e.offset() - 1) === fa }, xa = function (e, t, n) { var r, o, i; return (r = t.ownerDocument.createElement(e)).setAttribute("data-mce-caret", n ? "before" : "after"), r.setAttribute("data-mce-bogus", "all"), r.appendChild(((i = document.createElement("br")).setAttribute("data-mce-bogus", "1"), i)), o = t.parentNode, n ? o.insertBefore(r, t) : t.nextSibling ? o.insertBefore(r, t.nextSibling) : o.appendChild(r), r }, wa = function (e) { return ga(e) && e.data[0] === fa }, Na = function (e) { return ga(e) && e.data[e.data.length - 1] === fa }, Ea = function (e) { return e && e.hasAttribute("data-mce-caret") ? (t = e.getElementsByTagName("br"), n = t[t.length - 1], Ao.isBogus(n) && n.parentNode.removeChild(n), e.removeAttribute("data-mce-caret"), e.removeAttribute("data-mce-bogus"), e.removeAttribute("style"), e.removeAttribute("_moz_abspos"), e) : null; var t, n }, Sa = Ao.isContentEditableTrue, Ta = Ao.isContentEditableFalse, ka = Ao.isBr, Aa = Ao.isText, Ra = Ao.matchNodeNames("script style textarea"), Da = Ao.matchNodeNames("img input textarea hr iframe video audio object"), Ba = Ao.matchNodeNames("table"), _a = va, Oa = function (e) { return !_a(e) && (Aa(e) ? !Ra(e.parentNode) : Da(e) || ka(e) || Ba(e) || Pa(e)) }, Pa = function (e) { return !1 === (t = e, Ao.isElement(t) && "true" === t.getAttribute("unselectable")) && Ta(e); var t }, La = function (e) { return Da(e) || !!Pa(t = e) && !0 !== jt.reduce(t.getElementsByTagName("*"), function (e, t) { return e || Sa(t) }, !1); var t }, Ia = function (e, t) { return Oa(e) && function (e, t) { for (e = e.parentNode; e && e !== t; e = e.parentNode) { if (Pa(e))return !1; if (Sa(e))return !0 } return !0 }(e, t) }, Ma = Math.round, Fa = function (e) { return e ? { left: Ma(e.left), top: Ma(e.top), bottom: Ma(e.bottom), right: Ma(e.right), width: Ma(e.width), height: Ma(e.height) } : {left: 0, top: 0, bottom: 0, right: 0, width: 0, height: 0} }, Ua = function (e, t) { return (e = Fa(e)).right = (t || (e.left = e.left + e.width), e.left), e.width = 0, e }, za = function (e, t, n) { return 0 <= e && e <= Math.min(t.height, n.height) / 2 }, Va = function (e, t) { return e.bottom - e.height / 2 < t.top || !(e.top > t.bottom) && za(t.top - e.bottom, e, t) }, Ha = function (e, t) { return e.top > t.bottom || !(e.bottom < t.top) && za(t.bottom - e.top, e, t) }, ja = function (e) { var t = e.startContainer, n = e.startOffset; return t.hasChildNodes() && e.endOffset === n + 1 ? t.childNodes[n] : null }, qa = function (e, t) { return 1 === e.nodeType && e.hasChildNodes() && (t >= e.childNodes.length && (t = e.childNodes.length - 1), e = e.childNodes[t]), e }, $a = new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]"), Wa = function (e) { return "string" == typeof e && 768 <= e.charCodeAt(0) && $a.test(e) }, Ka = function (e, t) { for (var n = [], r = 0; r < e.length; r++) { var o = e[r]; if (!o.isSome())return A.none(); n.push(o.getOrDie()) } return A.some(t.apply(null, n)) }, Xa = Ao.isElement, Ya = Oa, Ga = Ao.matchStyleValues("display", "block table"), Ja = Ao.matchStyleValues("float", "left right"), Qa = sa.and(Xa, Ya, sa.negate(Ja)), Za = sa.negate(Ao.matchStyleValues("white-space", "pre pre-line pre-wrap")), eu = Ao.isText, tu = Ao.isBr, nu = di.nodeIndex, ru = qa, ou = function (e) { return "createRange"in e ? e.createRange() : di.DOM.createRng() }, iu = function (e) { return e && /[\r\n\t ]/.test(e) }, au = function (e) { return !!e.setStart && !!e.setEnd }, uu = function (e) { var t, n = e.startContainer, r = e.startOffset; return !!(iu(e.toString()) && Za(n.parentNode) && Ao.isText(n) && (t = n.data, iu(t[r - 1]) || iu(t[r + 1]))) }, su = function (e) { return 0 === e.left && 0 === e.right && 0 === e.top && 0 === e.bottom }, cu = function (e) { var t, n, r, o, i, a, u, s; return t = 0 < (n = e.getClientRects()).length ? Fa(n[0]) : Fa(e.getBoundingClientRect()), !au(e) && tu(e) && su(t) ? (i = (r = e).ownerDocument, a = ou(i), u = i.createTextNode("\xa0"), (s = r.parentNode).insertBefore(u, r), a.setStart(u, 0), a.setEnd(u, 1), o = Fa(a.getBoundingClientRect()), s.removeChild(u), o) : su(t) && au(e) ? function (e) { var t = e.startContainer, n = e.endContainer, r = e.startOffset, o = e.endOffset; if (t === n && Ao.isText(n) && 0 === r && 1 === o) { var i = e.cloneRange(); return i.setEndAfter(n), cu(i) } return null }(e) : t }, lu = function (e, t) { var n = Ua(e, t); return n.width = 1, n.right = n.left + 1, n }, fu = function (e) { var t, n, r = [], o = function (e) { var t, n; 0 !== e.height && (0 < r.length && (t = e, n = r[r.length - 1], t.left === n.left && t.top === n.top && t.bottom === n.bottom && t.right === n.right) || r.push(e)) }, i = function (e, t) { var n = ou(e.ownerDocument); if (t < e.data.length) { if (Wa(e.data[t]))return r; if (Wa(e.data[t - 1]) && (n.setStart(e, t), n.setEnd(e, t + 1), !uu(n)))return o(lu(cu(n), !1)), r } 0 < t && (n.setStart(e, t - 1), n.setEnd(e, t), uu(n) || o(lu(cu(n), !1))), t < e.data.length && (n.setStart(e, t), n.setEnd(e, t + 1), uu(n) || o(lu(cu(n), !0))) }; if (eu(e.container()))return i(e.container(), e.offset()), r; if (Xa(e.container()))if (e.isAtEnd())n = ru(e.container(), e.offset()), eu(n) && i(n, n.data.length), Qa(n) && !tu(n) && o(lu(cu(n), !1)); else { if (n = ru(e.container(), e.offset()), eu(n) && i(n, 0), Qa(n) && e.isAtEnd())return o(lu(cu(n), !1)), r; t = ru(e.container(), e.offset() - 1), Qa(t) && !tu(t) && (Ga(t) || Ga(n) || !Qa(n)) && o(lu(cu(t), !1)), Qa(n) && o(lu(cu(n), !0)) } return r }; function du(t, n, e) { var r = function () { return e || (e = fu(du(t, n))), e }; return { container: sa.constant(t), offset: sa.constant(n), toRange: function () { var e; return (e = ou(t.ownerDocument)).setStart(t, n), e.setEnd(t, n), e }, getClientRects: r, isVisible: function () { return 0 < r().length }, isAtStart: function () { return eu(t), 0 === n }, isAtEnd: function () { return eu(t) ? n >= t.data.length : n >= t.childNodes.length }, isEqual: function (e) { return e && t === e.container() && n === e.offset() }, getNode: function (e) { return ru(t, e ? n - 1 : n) } } } (Hi = du || (du = {})).fromRangeStart = function (e) { return Hi(e.startContainer, e.startOffset) }, Hi.fromRangeEnd = function (e) { return Hi(e.endContainer, e.endOffset) }, Hi.after = function (e) { return Hi(e.parentNode, nu(e) + 1) }, Hi.before = function (e) { return Hi(e.parentNode, nu(e)) }, Hi.isAbove = function (e, t) { return Ka([Z(t.getClientRects()), ee(e.getClientRects())], Va).getOr(!1) }, Hi.isBelow = function (e, t) { return Ka([ee(t.getClientRects()), Z(e.getClientRects())], Ha).getOr(!1) }, Hi.isAtStart = function (e) { return !!e && e.isAtStart() }, Hi.isAtEnd = function (e) { return !!e && e.isAtEnd() }, Hi.isTextPosition = function (e) { return !!e && Ao.isText(e.container()) }, Hi.isElementPosition = function (e) { return !1 === Hi.isTextPosition(e) }; var mu, gu, pu, hu = du, vu = Ao.isText, bu = Ao.isBogus, yu = di.nodeIndex, Cu = function (e) { var t = e.parentNode; return bu(t) ? Cu(t) : t }, xu = function (e) { return e ? jt.reduce(e.childNodes, function (e, t) { return bu(t) && "BR" !== t.nodeName ? e = e.concat(xu(t)) : e.push(t), e }, []) : [] }, wu = function (t) { return function (e) { return t === e } }, Nu = function (e) { var t, r, n, o; return (vu(e) ? "text()" : e.nodeName.toLowerCase()) + "[" + (r = xu(Cu(t = e)), n = jt.findIndex(r, wu(t), t), r = r.slice(0, n + 1), o = jt.reduce(r, function (e, t, n) { return vu(t) && vu(r[n - 1]) && e++, e }, 0), r = jt.filter(r, Ao.matchNodeNames(t.nodeName)), (n = jt.findIndex(r, wu(t), t)) - o) + "]" }, Eu = function (e, t) { var n, r, o, i, a, u = []; return n = t.container(), r = t.offset(), vu(n) ? o = function (e, t) { for (; (e = e.previousSibling) && vu(e);)t += e.data.length; return t }(n, r) : (r >= (i = n.childNodes).length ? (o = "after", r = i.length - 1) : o = "before", n = i[r]), u.push(Nu(n)), a = function (e, t, n) { var r = []; for (t = t.parentNode; !(t === e || n && n(t)); t = t.parentNode)r.push(t); return r }(e, n), a = jt.filter(a, sa.negate(Ao.isBogus)), (u = u.concat(jt.map(a, function (e) { return Nu(e) }))).reverse().join("/") + "," + o }, Su = function (e, t) { var n, r, o; return t ? (t = (n = t.split(","))[0].split("/"), o = 1 < n.length ? n[1] : "before", (r = jt.reduce(t, function (e, t) { return (t = /([\w\-\(\)]+)\[([0-9]+)\]/.exec(t)) ? ("text()" === t[1] && (t[1] = "#text"), n = e, r = t[1], o = parseInt(t[2], 10), i = xu(n), i = jt.filter(i, function (e, t) { return !vu(e) || !vu(i[t - 1]) }), (i = jt.filter(i, Ao.matchNodeNames(r)))[o]) : null; var n, r, o, i }, e)) ? vu(r) ? function (e, t) { for (var n, r = e, o = 0; vu(r);) { if (n = r.data.length, o <= t && t <= o + n) { e = r, t -= o; break } if (!vu(r.nextSibling)) { e = r, t = n; break } o += n, r = r.nextSibling } return vu(e) && t > e.data.length && (t = e.data.length), hu(e, t) }(r, parseInt(o, 10)) : (o = "after" === o ? yu(r) + 1 : yu(r), hu(r.parentNode, o)) : null) : null }, Tu = Ao.isContentEditableFalse, ku = function (e, t, n, r, o) { var i, a = r[o ? "startContainer" : "endContainer"], u = r[o ? "startOffset" : "endOffset"], s = [], c = 0, l = e.getRoot(); for (Ao.isText(a) ? s.push(n ? function (e, t, n) { var r, o; for (o = e(t.data.slice(0, n)).length, r = t.previousSibling; r && Ao.isText(r); r = r.previousSibling)o += e(r.data).length; return o }(t, a, u) : u) : (u >= (i = a.childNodes).length && i.length && (c = 1, u = Math.max(0, i.length - 1)), s.push(e.nodeIndex(i[u], n) + c)); a && a !== l; a = a.parentNode)s.push(e.nodeIndex(a, n)); return s }, Au = function (e) { Ao.isText(e) && 0 === e.data.length && e.parentNode.removeChild(e) }, Ru = function (e, t, n) { var r = 0; return Xt.each(e.select(t), function (e) { if ("all" !== e.getAttribute("data-mce-bogus"))return e !== n && void r++ }), r }, Du = function (e, t) { var n, r, o, i = t ? "start" : "end"; n = e[i + "Container"], r = e[i + "Offset"], Ao.isElement(n) && "TR" === n.nodeName && (n = (o = n.childNodes)[Math.min(t ? r : r - 1, o.length - 1)]) && (r = t ? 0 : n.childNodes.length, e["set" + (t ? "Start" : "End")](n, r)) }, Bu = function (e) { return Du(e, !0), Du(e, !1), e }, _u = function (e, t) { var n; if (Ao.isElement(e) && (e = qa(e, t), Tu(e)))return e; if (va(e)) { if (Ao.isText(e) && pa(e) && (e = e.parentNode), n = e.previousSibling, Tu(n))return n; if (n = e.nextSibling, Tu(n))return n } }, Ou = function (e, t, n) { var r = n.getNode(), o = r ? r.nodeName : null, i = n.getRng(); if (Tu(r) || "IMG" === o)return {name: o, index: Ru(n.dom, o, r)}; var a, u, s, c, l, f, d, m = _u((a = i).startContainer, a.startOffset) || _u(a.endContainer, a.endOffset); return m ? { name: o = m.tagName, index: Ru(n.dom, o, m) } : (u = e, c = t, l = i, f = (s = n).dom, (d = {}).start = ku(f, u, c, l, !0), s.isCollapsed() || (d.end = ku(f, u, c, l, !1)), d) }, Pu = function (e, t, n) { var r = {"data-mce-type": "bookmark", id: t, style: "overflow:hidden;line-height:0px"}; return n ? e.create("span", r, "") : e.create("span", r) }, Lu = function (e, t) { var n = e.dom, r = e.getRng(), o = n.uniqueId(), i = e.isCollapsed(), a = e.getNode(), u = a.nodeName; if ("IMG" === u)return {name: u, index: Ru(n, u, a)}; var s = Bu(r.cloneRange()); if (!i) { s.collapse(!1); var c = Pu(n, o + "_end", t); s.insertNode(c), Au(c.nextSibling) } (r = Bu(r)).collapse(!0); var l = Pu(n, o + "_start", t); return r.insertNode(l), Au(l.previousSibling), Au(l.nextSibling), e.moveToBookmark({id: o, keep: 1}), {id: o} }, Iu = { getBookmark: function (e, t, n) { return 2 === t ? Ou(da, n, e) : 3 === t ? (o = (r = e).getRng(), { start: Eu(r.dom.getRoot(), hu.fromRangeStart(o)), end: Eu(r.dom.getRoot(), hu.fromRangeEnd(o)) }) : t ? {rng: e.getRng()} : Lu(e, !1); var r, o }, getUndoBookmark: m(Ou, $, !0), getPersistentBookmark: Lu }, Mu = "_mce_caret", Fu = function (e) { return Ao.isElement(e) && e.id === Mu }, Uu = function (e, t) { for (; t && t !== e;) { if (t.id === Mu)return t; t = t.parentNode } return null }, zu = Ao.isElement, Vu = Ao.isText, Hu = function (e) { var t = e.parentNode; t && t.removeChild(e) }, ju = function (e, t) { 0 === t.length ? Hu(e) : e.nodeValue = t }, qu = function (e) { var t = da(e); return {count: e.length - t.length, text: t} }, $u = function (e, t) { return Xu(e), t }, Wu = function (e, t) { var n, r, o, i = t.container(), a = (n = te(i.childNodes), r = e, o = L(n, r), -1 === o ? A.none() : A.some(o)).map(function (e) { return e < t.offset() ? hu(i, t.offset() - 1) : t }).getOr(t); return Xu(e), a }, Ku = function (e, t) { return Vu(e) && t.container() === e ? (r = t, o = qu((n = e).data.substr(0, r.offset())), i = qu(n.data.substr(r.offset())), 0 < (a = o.text + i.text).length ? (ju(n, a), hu(n, r.offset() - o.count)) : r) : $u(e, t); var n, r, o, i, a }, Xu = function (e) { if (zu(e) && va(e) && (ba(e) ? e.removeAttribute("data-mce-caret") : Hu(e)), Vu(e)) { var t = da(function (e) { try { return e.nodeValue } catch (t) { return "" } }(e)); ju(e, t) } }, Yu = { removeAndReposition: function (e, t) { return hu.isTextPosition(t) ? Ku(e, t) : (n = e, (r = t).container() === n.parentNode ? Wu(n, r) : $u(n, r)); var n, r }, remove: Xu }, Gu = er.detect().browser, Ju = Ao.isContentEditableFalse, Qu = function (e, t, n) { var r, o, i, a, u, s = Ua(t.getBoundingClientRect(), n); return i = "BODY" === e.tagName ? (r = e.ownerDocument.documentElement, o = e.scrollLeft || r.scrollLeft, e.scrollTop || r.scrollTop) : (u = e.getBoundingClientRect(), o = e.scrollLeft - u.left, e.scrollTop - u.top), s.left += o, s.right += o, s.top += i, s.bottom += i, s.width = 1, 0 < (a = t.offsetWidth - t.clientWidth) && (n && (a *= -1), s.left += a, s.right += a), s }, Zu = function (a, u, e) { var t, s, c = yi(A.none()), l = function () { !function (e) { var t, n, r, o, i; for (t = gn("*[contentEditable=false]", e), o = 0; o < t.length; o++)r = (n = t[o]).previousSibling, Na(r) && (1 === (i = r.data).length ? r.parentNode.removeChild(r) : r.deleteData(i.length - 1, 1)), r = n.nextSibling, wa(r) && (1 === (i = r.data).length ? r.parentNode.removeChild(r) : r.deleteData(0, 1)) }(a), s && (Yu.remove(s), s = null), c.get().each(function (e) { gn(e.caret).remove(), c.set(A.none()) }), clearInterval(t) }, f = function () { t = he.setInterval(function () { e() ? gn("div.mce-visual-caret", a).toggleClass("mce-visual-caret-hidden") : gn("div.mce-visual-caret", a).addClass("mce-visual-caret-hidden") }, 500) }; return { show: function (t, e) { var n, r, o; if (l(), o = e, Ao.isElement(o) && /^(TD|TH)$/i.test(o.tagName))return null; if (!u(e))return s = function (e, t) { var n, r, o; if (r = e.ownerDocument.createTextNode(fa), o = e.parentNode, t) { if (n = e.previousSibling, ga(n)) { if (va(n))return n; if (Na(n))return n.splitText(n.data.length - 1) } o.insertBefore(r, e) } else { if (n = e.nextSibling, ga(n)) { if (va(n))return n; if (wa(n))return n.splitText(1), n } e.nextSibling ? o.insertBefore(r, e.nextSibling) : o.appendChild(r) } return r }(e, t), r = e.ownerDocument.createRange(), Ju(s.nextSibling) ? (r.setStart(s, 0), r.setEnd(s, 0)) : (r.setStart(s, 1), r.setEnd(s, 1)), r; s = xa("p", e, t), n = Qu(a, e, t), gn(s).css("top", n.top); var i = gn('
').css(n).appendTo(a)[0]; return c.set(A.some({caret: i, element: e, before: t})), c.get().each(function (e) { t && gn(e.caret).addClass("mce-visual-caret-before") }), f(), (r = e.ownerDocument.createRange()).setStart(s, 0), r.setEnd(s, 0), r }, hide: l, getCss: function () { return ".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}" }, reposition: function () { c.get().each(function (e) { var t = Qu(a, e.element, e.before); gn(e.caret).css(t) }) }, destroy: function () { return he.clearInterval(t) } } }, es = function () { return Gu.isIE() || Gu.isEdge() || Gu.isFirefox() }, ts = function (e) { return Ju(e) || Ao.isTable(e) && es() }, ns = (mu = "\xa0", function (e) { return mu === e }), rs = function (e) { return /^[\r\n\t ]$/.test(e) }, os = function (e) { return !rs(e) && !ns(e) }, is = Ao.isContentEditableFalse, as = Ao.matchStyleValues("display", "block table table-cell table-caption list-item"), us = va, ss = pa, cs = Ao.isElement, ls = Oa, fs = function (e) { return 0 < e }, ds = function (e) { return e < 0 }, ms = function (e, t) { for (var n; n = e(t);)if (!ss(n))return n; return null }, gs = function (e, t, n, r, o) { var i = new to(e, r); if (ds(t)) { if ((is(e) || ss(e)) && n(e = ms(i.prev, !0)))return e; for (; e = ms(i.prev, o);)if (n(e))return e } if (fs(t)) { if ((is(e) || ss(e)) && n(e = ms(i.next, !0)))return e; for (; e = ms(i.next, o);)if (n(e))return e } return null }, ps = function (e, t) { for (; e && e !== t;) { if (as(e))return e; e = e.parentNode } return null }, hs = function (e, t, n) { return ps(e.container(), n) === ps(t.container(), n) }, vs = function (e, t) { var n, r; return t ? (n = t.container(), r = t.offset(), cs(n) ? n.childNodes[r + e] : null) : null }, bs = function (e, t) { var n = t.ownerDocument.createRange(); return e ? (n.setStartBefore(t), n.setEndBefore(t)) : (n.setStartAfter(t), n.setEndAfter(t)), n }, ys = function (e, t, n) { var r, o, i, a; for (o = e ? "previousSibling" : "nextSibling"; n && n !== t;) { if (r = n[o], us(r) && (r = r[o]), is(r)) { if (a = n, ps(r, i = t) === ps(a, i))return r; break } if (ls(r))break; n = n.parentNode } return null }, Cs = m(bs, !0), xs = m(bs, !1), ws = function (e, t, n) { var r, o, i, a, u = m(ys, !0, t), s = m(ys, !1, t); if (o = n.startContainer, i = n.startOffset, pa(o)) { if (cs(o) || (o = o.parentNode), "before" === (a = o.getAttribute("data-mce-caret")) && (r = o.nextSibling, ts(r)))return Cs(r); if ("after" === a && (r = o.previousSibling, ts(r)))return xs(r) } if (!n.collapsed)return n; if (Ao.isText(o)) { if (us(o)) { if (1 === e) { if (r = s(o))return Cs(r); if (r = u(o))return xs(r) } if (-1 === e) { if (r = u(o))return xs(r); if (r = s(o))return Cs(r) } return n } if (Na(o) && i >= o.data.length - 1)return 1 === e && (r = s(o)) ? Cs(r) : n; if (wa(o) && i <= 1)return -1 === e && (r = u(o)) ? xs(r) : n; if (i === o.data.length)return (r = s(o)) ? Cs(r) : n; if (0 === i)return (r = u(o)) ? xs(r) : n } return n }, Ns = function (e, t) { var n = vs(e, t); return is(n) && !Ao.isBogusAll(n) }, Es = function (e, t) { return Ao.isTable(vs(e, t)) }, Ss = function (e, t) { return A.from(vs(e ? 0 : -1, t)).filter(is) }, Ts = function (e, t, n) { var r = ws(e, t, n); return -1 === e ? du.fromRangeStart(r) : du.fromRangeEnd(r) }, ks = m(Ns, 0), As = m(Ns, -1), Rs = m(Es, 0), Ds = m(Es, -1), Bs = function (n, r, o) { return A.from(o.container()).filter(Ao.isText).exists(function (e) { var t = n ? 0 : -1; return r(e.data.charAt(o.offset() + t)) }) }, _s = m(Bs, !0, rs), Os = m(Bs, !1, rs), Ps = function (e) { return A.from(e.getNode()).map(nr.fromDom) }; (pu = gu || (gu = {}))[pu.Backwards = -1] = "Backwards", pu[pu.Forwards = 1] = "Forwards"; var Ls = Ao.isContentEditableFalse, Is = Ao.isText, Ms = Ao.isElement, Fs = Ao.isBr, Us = Oa, zs = La, Vs = Ia, Hs = function (e, t) { return e.hasChildNodes() && t < e.childNodes.length ? e.childNodes[t] : null }, js = function (e, t) { if (fs(e)) { if (Us(t.previousSibling) && !Is(t.previousSibling))return hu.before(t); if (Is(t))return hu(t, 0) } if (ds(e)) { if (Us(t.nextSibling) && !Is(t.nextSibling))return hu.after(t); if (Is(t))return hu(t, t.data.length) } return ds(e) ? Fs(t) ? hu.before(t) : hu.after(t) : hu.before(t) }, qs = function (e, t, n) { var r, o, i, a, u; if (!Ms(n) || !t)return null; if (t.isEqual(hu.after(n)) && n.lastChild) { if (u = hu.after(n.lastChild), ds(e) && Us(n.lastChild) && Ms(n.lastChild))return Fs(n.lastChild) ? hu.before(n.lastChild) : u } else u = t; var s, c, l, f = u.container(), d = u.offset(); if (Is(f)) { if (ds(e) && 0 < d)return hu(f, --d); if (fs(e) && d < f.length)return hu(f, ++d); r = f } else { if (ds(e) && 0 < d && (o = Hs(f, d - 1), Us(o)))return !zs(o) && (i = gs(o, e, Vs, o)) ? Is(i) ? hu(i, i.data.length) : hu.after(i) : Is(o) ? hu(o, o.data.length) : hu.before(o); if (fs(e) && d < f.childNodes.length && (o = Hs(f, d), Us(o)))return Fs(o) && n.lastChild === o ? null : (s = o, c = n, Ao.isBr(s) && !La(s.nextSibling) && (l = qs(gu.Forwards, hu.after(s), c)) && !hs(hu.before(s), hu.before(l), c) ? qs(e, hu.after(o), n) : !zs(o) && (i = gs(o, e, Vs, o)) ? Is(i) ? hu(i, 0) : hu.before(i) : Is(o) ? hu(o, 0) : hu.after(o)); r = o || u.getNode() } return (fs(e) && u.isAtEnd() || ds(e) && u.isAtStart()) && (r = gs(r, e, sa.constant(!0), n, !0), Vs(r, n)) ? js(e, r) : (o = gs(r, e, Vs, n), !(a = jt.last(jt.filter(function (e, t) { for (var n = []; e && e !== t;)n.push(e), e = e.parentNode; return n }(f, n), Ls))) || o && a.contains(o) ? o ? js(e, o) : null : u = fs(e) ? hu.after(a) : hu.before(a)) }, $s = function (t) { return { next: function (e) { return qs(gu.Forwards, e, t) }, prev: function (e) { return qs(gu.Backwards, e, t) } } }, Ws = function (e) { return hu.isTextPosition(e) ? 0 === e.offset() : Oa(e.getNode()) }, Ks = function (e) { if (hu.isTextPosition(e)) { var t = e.container(); return e.offset() === t.data.length } return Oa(e.getNode(!0)) }, Xs = function (e, t) { return !hu.isTextPosition(e) && !hu.isTextPosition(t) && e.getNode() === t.getNode(!0) }, Ys = function (e, t, n) { return e ? !Xs(t, n) && (r = t, !(!hu.isTextPosition(r) && Ao.isBr(r.getNode()))) && Ks(t) && Ws(n) : !Xs(n, t) && Ws(t) && Ks(n); var r }, Gs = function (e, t, n) { var r = $s(t); return A.from(e ? r.next(n) : r.prev(n)) }, Js = function (e, t) { var n, r, o, i, a, u = e ? t.firstChild : t.lastChild; return Ao.isText(u) ? A.some(hu(u, e ? 0 : u.data.length)) : u ? Oa(u) ? A.some(e ? hu.before(u) : (a = u, Ao.isBr(a) ? hu.before(a) : hu.after(a))) : (r = t, o = u, i = (n = e) ? hu.before(o) : hu.after(o), Gs(n, r, i)) : A.none() }, Qs = m(Gs, !0), Zs = m(Gs, !1), ec = { fromPosition: Gs, nextPosition: Qs, prevPosition: Zs, navigate: function (t, n, r) { return Gs(t, n, r).bind(function (e) { return hs(r, e, n) && Ys(t, r, e) ? Gs(t, n, e) : A.some(e) }) }, positionIn: Js, firstPositionIn: m(Js, !0), lastPositionIn: m(Js, !1) }, tc = function (e, t) { return !e.isBlock(t) || t.innerHTML || fe.ie || (t.innerHTML = '
'), t }, nc = function (e, t) { return ec.lastPositionIn(e).fold(function () { return !1 }, function (e) { return t.setStart(e.container(), e.offset()), t.setEnd(e.container(), e.offset()), !0 }) }, rc = function (e, t, n) { return !(!1 !== t.hasChildNodes() || !Uu(e, t) || (o = n, i = (r = t).ownerDocument.createTextNode(fa), r.appendChild(i), o.setStart(i, 0), o.setEnd(i, 0), 0)); var r, o, i }, oc = function (e, t, n, r) { var o, i, a, u, s = n[t ? "start" : "end"], c = e.getRoot(); if (s) { for (a = s[0], i = c, o = s.length - 1; 1 <= o; o--) { if (u = i.childNodes, rc(c, i, r))return !0; if (s[o] > u.length - 1)return !!rc(c, i, r) || nc(i, r); i = u[s[o]] } 3 === i.nodeType && (a = Math.min(s[0], i.nodeValue.length)), 1 === i.nodeType && (a = Math.min(s[0], i.childNodes.length)), t ? r.setStart(i, a) : r.setEnd(i, a) } return !0 }, ic = function (e) { return Ao.isText(e) && 0 < e.data.length }, ac = function (e, t, n) { var r, o, i, a, u, s, c = e.get(n.id + "_" + t), l = n.keep; if (c) { if (r = c.parentNode, o = "start" === t ? l ? c.hasChildNodes() ? (r = c.firstChild, 1) : ic(c.nextSibling) ? (r = c.nextSibling, 0) : ic(c.previousSibling) ? (r = c.previousSibling, c.previousSibling.data.length) : (r = c.parentNode, e.nodeIndex(c) + 1) : e.nodeIndex(c) : l ? c.hasChildNodes() ? (r = c.firstChild, 1) : ic(c.previousSibling) ? (r = c.previousSibling, c.previousSibling.data.length) : (r = c.parentNode, e.nodeIndex(c)) : e.nodeIndex(c), u = r, s = o, !l) { for (a = c.previousSibling, i = c.nextSibling, Xt.each(Xt.grep(c.childNodes), function (e) { Ao.isText(e) && (e.nodeValue = e.nodeValue.replace(/\uFEFF/g, "")) }); c = e.get(n.id + "_" + t);)e.remove(c, !0); a && i && a.nodeType === i.nodeType && Ao.isText(a) && !fe.opera && (o = a.nodeValue.length, a.appendData(i.nodeValue), e.remove(i), u = a, s = o) } return A.some(hu(u, s)) } return A.none() }, uc = function (e, t) { var n, r, o, i, a, u, s, c, l, f, d, m, g, p, h, v, b = e.dom; if (t) { if (v = t, Xt.isArray(v.start))return p = t, h = (g = b).createRng(), oc(g, !0, p, h) && oc(g, !1, p, h) ? A.some(h) : A.none(); if ("string" == typeof t.start)return A.some((f = t, d = (l = b).createRng(), m = Su(l.getRoot(), f.start), d.setStart(m.container(), m.offset()), m = Su(l.getRoot(), f.end), d.setEnd(m.container(), m.offset()), d)); if (t.hasOwnProperty("id"))return s = ac(o = b, "start", i = t), c = ac(o, "end", i), Ka([s, (a = c, u = s, a.isSome() ? a : u)], function (e, t) { var n = o.createRng(); return n.setStart(tc(o, e.container()), e.offset()), n.setEnd(tc(o, t.container()), t.offset()), n }); if (t.hasOwnProperty("name"))return n = b, r = t, A.from(n.select(r.name)[r.index]).map(function (e) { var t = n.createRng(); return t.selectNode(e), t }); if (t.hasOwnProperty("rng"))return A.some(t.rng) } return A.none() }, sc = function (e, t, n) { return Iu.getBookmark(e, t, n) }, cc = function (t, e) { uc(t, e).each(function (e) { t.setRng(e) }) }, lc = function (e) { return Ao.isElement(e) && "SPAN" === e.tagName && "bookmark" === e.getAttribute("data-mce-type") }, fc = function (e) { return e && /^(IMG)$/.test(e.nodeName) }, dc = function (e) { return e && 3 === e.nodeType && /^([\t \r\n]+|)$/.test(e.nodeValue) }, mc = function (e, t, n) { return "color" !== n && "backgroundColor" !== n || (t = e.toHex(t)), "fontWeight" === n && 700 === t && (t = "bold"), "fontFamily" === n && (t = t.replace(/[\'\"]/g, "").replace(/,\s+/g, ",")), "" + t }, gc = { isInlineBlock: fc, moveStart: function (e, t, n) { var r, o, i, a = n.startOffset, u = n.startContainer; if ((n.startContainer !== n.endContainer || !fc(n.startContainer.childNodes[n.startOffset])) && 1 === u.nodeType)for (a < (i = u.childNodes).length ? r = new to(u = i[a], e.getParent(u, e.isBlock)) : (r = new to(u = i[i.length - 1], e.getParent(u, e.isBlock))).next(!0), o = r.current(); o; o = r.next())if (3 === o.nodeType && !dc(o))return n.setStart(o, 0), void t.setRng(n) }, getNonWhiteSpaceSibling: function (e, t, n) { if (e)for (t = t ? "nextSibling" : "previousSibling", e = n ? e : e[t]; e; e = e[t])if (1 === e.nodeType || !dc(e))return e }, isTextBlock: function (e, t) { return t.nodeType && (t = t.nodeName), !!e.schema.getTextBlockElements()[t.toLowerCase()] }, isValid: function (e, t, n) { return e.schema.isValidChild(t, n) }, isWhiteSpaceNode: dc, replaceVars: function (e, n) { return "string" != typeof e ? e = e(n) : n && (e = e.replace(/%(\w+)/g, function (e, t) { return n[t] || e })), e }, isEq: function (e, t) { return t = t || "", e = "" + ((e = e || "").nodeName || e), t = "" + (t.nodeName || t), e.toLowerCase() === t.toLowerCase() }, normalizeStyleValue: mc, getStyle: function (e, t, n) { return mc(e, e.getStyle(t, n), n) }, getTextDecoration: function (t, e) { var n; return t.getParent(e, function (e) { return (n = t.getStyle(e, "text-decoration")) && "none" !== n }), n }, getParents: function (e, t, n) { return e.getParents(t, n, e.getRoot()) } }, pc = lc, hc = gc.getParents, vc = gc.isWhiteSpaceNode, bc = gc.isTextBlock, yc = function (e, t) { for (void 0 === t && (t = 3 === e.nodeType ? e.length : e.childNodes.length); e && e.hasChildNodes();)(e = e.childNodes[t]) && (t = 3 === e.nodeType ? e.length : e.childNodes.length); return {node: e, offset: t} }, Cc = function (e, t) { for (var n = t; n;) { if (1 === n.nodeType && e.getContentEditable(n))return "false" === e.getContentEditable(n) ? n : t; n = n.parentNode } return t }, xc = function (e, t, n, r) { var o, i, a = n.nodeValue; return void 0 === r && (r = e ? a.length : 0), e ? (o = a.lastIndexOf(" ", r), -1 !== (o = (i = a.lastIndexOf("\xa0", r)) < o ? o : i) && !t && (o < r || !e) && o <= a.length && o++) : (o = a.indexOf(" ", r), i = a.indexOf("\xa0", r), o = -1 !== o && (-1 === i || o < i) ? o : i), o }, wc = function (e, t, n, r, o, i) { var a, u, s, c; if (3 === n.nodeType) { if (-1 !== (s = xc(o, i, n, r)))return {container: n, offset: s}; c = n } for (a = new to(n, e.getParent(n, e.isBlock) || t); u = a[o ? "prev" : "next"]();)if (3 !== u.nodeType || pc(u.parentNode)) { if (e.isBlock(u) || gc.isEq(u, "BR"))break } else if (-1 !== (s = xc(o, i, c = u)))return {container: u, offset: s}; if (c)return {container: c, offset: r = o ? 0 : c.length} }, Nc = function (e, t, n, r, o) { var i, a, u, s; for (3 === r.nodeType && 0 === r.nodeValue.length && r[o] && (r = r[o]), i = hc(e, r), a = 0; a < i.length; a++)for (u = 0; u < t.length; u++)if (!("collapsed"in(s = t[u]) && s.collapsed !== n.collapsed) && e.is(i[a], s.selector))return i[a]; return r }, Ec = function (t, e, n, r) { var o, i = t.dom, a = i.getRoot(); if (e[0].wrapper || (o = i.getParent(n, e[0].block, a)), !o) { var u = i.getParent(n, "LI,TD,TH"); o = i.getParent(3 === n.nodeType ? n.parentNode : n, function (e) { return e !== a && bc(t, e) }, u) } if (o && e[0].wrapper && (o = hc(i, o, "ul,ol").reverse()[0] || o), !o)for (o = n; o[r] && !i.isBlock(o[r]) && (o = o[r], !gc.isEq(o, "br"));); return o || n }, Sc = function (e, t, n, r, o, i, a) { var u, s, c, l, f, d; if (u = s = a ? n : o, l = a ? "previousSibling" : "nextSibling", f = e.getRoot(), 3 === u.nodeType && !vc(u) && (a ? 0 < r : i < u.nodeValue.length))return u; for (; ;) { if (!t[0].block_expand && e.isBlock(s))return s; for (c = s[l]; c; c = c[l])if (!pc(c) && !vc(c) && ("BR" !== (d = c).nodeName || !d.getAttribute("data-mce-bogus") || d.nextSibling))return s; if (s === f || s.parentNode === f) { u = s; break } s = s.parentNode } return u }, Tc = function (e, t, n, r) { var o, i = t.startContainer, a = t.startOffset, u = t.endContainer, s = t.endOffset, c = e.dom; return 1 === i.nodeType && i.hasChildNodes() && 3 === (i = qa(i, a)).nodeType && (a = 0), 1 === u.nodeType && u.hasChildNodes() && 3 === (u = qa(u, t.collapsed ? s : s - 1)).nodeType && (s = u.nodeValue.length), i = Cc(c, i), u = Cc(c, u), (pc(i.parentNode) || pc(i)) && (i = pc(i) ? i : i.parentNode, 3 === (i = t.collapsed ? i.previousSibling || i : i.nextSibling || i).nodeType && (a = t.collapsed ? i.length : 0)), (pc(u.parentNode) || pc(u)) && (u = pc(u) ? u : u.parentNode, 3 === (u = t.collapsed ? u.nextSibling || u : u.previousSibling || u).nodeType && (s = t.collapsed ? 0 : u.length)), t.collapsed && ((o = wc(c, e.getBody(), i, a, !0, r)) && (i = o.container, a = o.offset), (o = wc(c, e.getBody(), u, s, !1, r)) && (u = o.container, s = o.offset)), n[0].inline && (u = r ? u : function (e, t) { var n = yc(e, t); if (n.node) { for (; n.node && 0 === n.offset && n.node.previousSibling;)n = yc(n.node.previousSibling); n.node && 0 < n.offset && 3 === n.node.nodeType && " " === n.node.nodeValue.charAt(n.offset - 1) && 1 < n.offset && (e = n.node).splitText(n.offset - 1) } return e }(u, s)), (n[0].inline || n[0].block_expand) && (n[0].inline && 3 === i.nodeType && 0 !== a || (i = Sc(c, n, i, a, u, s, !0)), n[0].inline && 3 === u.nodeType && s !== u.nodeValue.length || (u = Sc(c, n, i, a, u, s, !1))), n[0].selector && !1 !== n[0].expand && !n[0].inline && (i = Nc(c, n, t, i, "previousSibling"), u = Nc(c, n, t, u, "nextSibling")), (n[0].block || n[0].selector) && (i = Ec(e, n, i, "previousSibling"), u = Ec(e, n, u, "nextSibling"), n[0].block && (c.isBlock(i) || (i = Sc(c, n, i, a, u, s, !0)), c.isBlock(u) || (u = Sc(c, n, i, a, u, s, !1)))), 1 === i.nodeType && (a = c.nodeIndex(i), i = i.parentNode), 1 === u.nodeType && (s = c.nodeIndex(u) + 1, u = u.parentNode), { startContainer: i, startOffset: a, endContainer: u, endOffset: s } }, kc = Xt.each, Ac = function (e, t, o) { var n, r, i, a, u, s, c, l = t.startContainer, f = t.startOffset, d = t.endContainer, m = t.endOffset; if (0 < (c = e.select("td[data-mce-selected],th[data-mce-selected]")).length)kc(c, function (e) { o([e]) }); else { var g, p, h, v = function (e) { var t; return 3 === (t = e[0]).nodeType && t === l && f >= t.nodeValue.length && e.splice(0, 1), t = e[e.length - 1], 0 === m && 0 < e.length && t === d && 3 === t.nodeType && e.splice(e.length - 1, 1), e }, b = function (e, t, n) { for (var r = []; e && e !== n; e = e[t])r.push(e); return r }, y = function (e, t) { do { if (e.parentNode === t)return e; e = e.parentNode } while (e) }, C = function (e, t, n) { var r = n ? "nextSibling" : "previousSibling"; for (u = (a = e).parentNode; a && a !== t; a = u)u = a.parentNode, (s = b(a === e ? a : a[r], r)).length && (n || s.reverse(), o(v(s))) }; if (1 === l.nodeType && l.hasChildNodes() && (l = l.childNodes[f]), 1 === d.nodeType && d.hasChildNodes() && (p = m, h = (g = d).childNodes, --p > h.length - 1 ? p = h.length - 1 : p < 0 && (p = 0), d = h[p] || g), l === d)return o(v([l])); for (n = e.findCommonAncestor(l, d), a = l; a; a = a.parentNode) { if (a === d)return C(l, n, !0); if (a === n)break } for (a = d; a; a = a.parentNode) { if (a === l)return C(d, n); if (a === n)break } r = y(l, n) || l, i = y(d, n) || d, C(l, r, !0), (s = b(r === l ? r : r.nextSibling, "nextSibling", i === d ? i.nextSibling : i)).length && o(v(s)), C(d, i) } }, Rc = function xN(n, r) { var t = function (e) { return n(e) ? A.from(e.dom().nodeValue) : A.none() }, e = er.detect().browser, o = e.isIE() && 10 === e.version.major ? function (e) { try { return t(e) } catch (CN) { return A.none() } } : t; return { get: function (e) { if (!n(e))throw new Error("Can only get " + r + " value of a " + r + " node"); return o(e).getOr("") }, getOption: o, set: function (e, t) { if (!n(e))throw new Error("Can only set raw " + r + " value of a " + r + " node"); e.dom().nodeValue = t } } }(cr, "text"), Dc = function (e) { return Rc.get(e) }, Bc = function (r, o, i, a) { return Lr(o).fold(function () { return "skipping" }, function (e) { return "br" === a || cr(n = o) && "\ufeff" === Dc(n) ? "valid" : sr(t = o) && Ui(t, Xi()) ? "existing" : Fu(o) ? "caret" : gc.isValid(r, i, a) && gc.isValid(r, ar(e), i) ? "valid" : "invalid-child"; var t, n }) }, _c = function (e, t, n, r) { var o, i, a = t.uid, u = void 0 === a ? (o = "mce-annotation", i = (new Date).getTime(), o + "_" + Math.floor(1e9 * Math.random()) + ++ta + String(i)) : a, s = function h(e, t) { var n = {}; for (var r in e)Object.prototype.hasOwnProperty.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]); if (null != e && "function" == typeof Object.getOwnPropertySymbols) { var o = 0; for (r = Object.getOwnPropertySymbols(e); o < r.length; o++)t.indexOf(r[o]) < 0 && (n[r[o]] = e[r[o]]) } return n }(t, ["uid"]), c = nr.fromTag("span", e); Mi(c, Xi()), vr(c, "" + Gi(), u), vr(c, "" + Yi(), n); var l, f = r(u, s), d = f.attributes, m = void 0 === d ? {} : d, g = f.classes, p = void 0 === g ? [] : g; return br(c, m), l = c, M(p, function (e) { Mi(l, e) }), c }, Oc = function (i, e, t, n, r) { var a = [], u = _c(i.getDoc(), r, t, n), s = yi(A.none()), c = function () { s.set(A.none()) }, l = function (e) { M(e, o) }, o = function (e) { var t, n; switch (Bc(i, e, "span", ar(e))) { case"invalid-child": c(); var r = Ur(e); l(r), c(); break; case"valid": var o = s.get().getOrThunk(function () { var e = ra(u); return a.push(e), s.set(A.some(e)), e }); Si(t = e, n = o), ki(n, t) } }; return Ac(i.dom, e, function (e) { var t; c(), t = W(e, nr.fromDom), l(t) }), a }, Pc = function (s, c, l, f) { s.undoManager.transact(function () { var e, t, n, r, o = s.selection.getRng(); if (o.collapsed && (r = Tc(e = s, t = o, [{inline: !0}], 3 === (n = t).startContainer.nodeType && n.startContainer.nodeValue.length >= n.startOffset && "\xa0" === n.startContainer.nodeValue[n.startOffset]), t.setStart(r.startContainer, r.startOffset), t.setEnd(r.endContainer, r.endOffset), e.selection.setRng(t)), s.selection.getRng().collapsed) { var i = _c(s.getDoc(), f, c, l.decorate); ia(i, "\xa0"), s.selection.getRng().insertNode(i.dom()), s.selection.select(i.dom()) } else { var a = Iu.getPersistentBookmark(s.selection, !1), u = s.selection.getRng(); Oc(s, u, c, l.decorate, f), s.selection.moveToBookmark(a) } }) }; function Lc(s) { var n, r = (n = {}, { register: function (e, t) { n[e] = {name: e, settings: t} }, lookup: function (e) { return n.hasOwnProperty(e) ? A.from(n[e]).map(function (e) { return e.settings }) : A.none() } }); ea(s, r); var o = Zi(s); return { register: function (e, t) { r.register(e, t) }, annotate: function (t, n) { r.lookup(t).each(function (e) { Pc(s, t, e, n) }) }, annotationChanged: function (e, t) { o.addListener(e, t) }, remove: function (e) { Ji(s, A.some(e)).each(function (e) { var t = e.elements; M(t, Bi) }) }, getAll: function (e) { var t, n, r, o, i, a, u = (t = s, n = e, r = nr.fromDom(t.getBody()), o = zi(r, "[" + Yi() + '="' + n + '"]'), i = {}, M(o, function (e) { var t = yr(e, Gi()), n = i.hasOwnProperty(t) ? i[t] : []; i[t] = n.concat([e]) }), i); return a = function (e) { return W(e, function (e) { return e.dom() }) }, mr(u, function (e, t, n) { return {k: t, v: a(e, t, n)} }) } } } var Ic, Mc = Object.prototype.hasOwnProperty, Fc = (Ic = function (e, t) { return t }, function () { for (var e = new Array(arguments.length), t = 0; t < e.length; t++)e[t] = arguments[t]; if (0 === e.length)throw new Error("Can't merge zero objects"); for (var n = {}, r = 0; r < e.length; r++) { var o = e[r]; for (var i in o)Mc.call(o, i) && (n[i] = Ic(n[i], o[i])) } return n }), Uc = /^[ \t\r\n]*$/, zc = { "#text": 3, "#comment": 8, "#cdata": 4, "#pi": 7, "#doctype": 10, "#document-fragment": 11 }, Vc = function (e, t, n) { var r, o, i = n ? "lastChild" : "firstChild", a = n ? "prev" : "next"; if (e[i])return e[i]; if (e !== t) { if (r = e[a])return r; for (o = e.parent; o && o !== t; o = o.parent)if (r = o[a])return r } }, Hc = function () { function a(e, t) { this.name = e, 1 === (this.type = t) && (this.attributes = [], this.attributes.map = {}) } return a.create = function (e, t) { var n, r; if (n = new a(e, zc[e] || 1), t)for (r in t)n.attr(r, t[r]); return n }, a.prototype.replace = function (e) { return e.parent && e.remove(), this.insert(e, this), this.remove(), this }, a.prototype.attr = function (e, t) { var n, r; if ("string" != typeof e) { for (r in e)this.attr(r, e[r]); return this } if (n = this.attributes) { if (t === undefined)return n.map[e]; if (null === t) { if (e in n.map)for (delete n.map[e], r = n.length; r--;)if (n[r].name === e)return n = n.splice(r, 1), this; return this } if (e in n.map) { for (r = n.length; r--;)if (n[r].name === e) { n[r].value = t; break } } else n.push({name: e, value: t}); return n.map[e] = t, this } }, a.prototype.clone = function () { var e, t, n, r, o, i = new a(this.name, this.type); if (n = this.attributes) { for ((o = []).map = {}, e = 0, t = n.length; e < t; e++)"id" !== (r = n[e]).name && (o[o.length] = { name: r.name, value: r.value }, o.map[r.name] = r.value); i.attributes = o } return i.value = this.value, i.shortEnded = this.shortEnded, i }, a.prototype.wrap = function (e) { return this.parent.insert(e, this), e.append(this), this }, a.prototype.unwrap = function () { var e, t; for (e = this.firstChild; e;)t = e.next, this.insert(e, this, !0), e = t; this.remove() }, a.prototype.remove = function () { var e = this.parent, t = this.next, n = this.prev; return e && (e.firstChild === this ? (e.firstChild = t) && (t.prev = null) : n.next = t, e.lastChild === this ? (e.lastChild = n) && (n.next = null) : t.prev = n, this.parent = this.next = this.prev = null), this }, a.prototype.append = function (e) { var t; return e.parent && e.remove(), t = this.lastChild, this.lastChild = t ? ((t.next = e).prev = t, e) : this.firstChild = e, e.parent = this, e }, a.prototype.insert = function (e, t, n) { var r; return e.parent && e.remove(), r = t.parent || this, n ? (t === r.firstChild ? r.firstChild = e : t.prev.next = e, e.prev = t.prev, (e.next = t).prev = e) : (t === r.lastChild ? r.lastChild = e : t.next.prev = e, e.next = t.next, (e.prev = t).next = e), e.parent = r, e }, a.prototype.getAll = function (e) { var t, n = []; for (t = this.firstChild; t; t = Vc(t, this))t.name === e && n.push(t); return n }, a.prototype.empty = function () { var e, t, n; if (this.firstChild) { for (e = [], n = this.firstChild; n; n = Vc(n, this))e.push(n); for (t = e.length; t--;)(n = e[t]).parent = n.firstChild = n.lastChild = n.next = n.prev = null } return this.firstChild = this.lastChild = null, this }, a.prototype.isEmpty = function (e, t, n) { var r, o, i = this.firstChild; if (t = t || {}, i)do { if (1 === i.type) { if (i.attributes.map["data-mce-bogus"])continue; if (e[i.name])return !1; for (r = i.attributes.length; r--;)if ("name" === (o = i.attributes[r].name) || 0 === o.indexOf("data-mce-bookmark"))return !1 } if (8 === i.type)return !1; if (3 === i.type && !Uc.test(i.value))return !1; if (3 === i.type && i.parent && t[i.parent.name] && Uc.test(i.value))return !1; if (n && n(i))return !1 } while (i = Vc(i, this)); return !0 }, a.prototype.walk = function (e) { return Vc(this, null, e) }, a }(), jc = function (e, t, n) { var r, o, i, a, u = 1; for (a = e.getShortEndedElements(), (i = /<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g).lastIndex = r = n; o = i.exec(t);) { if (r = i.lastIndex, "/" === o[1])u--; else if (!o[1]) { if (o[2]in a)continue; u++ } if (0 === u)break } return r }; function qc(F, U) { void 0 === U && (U = Zo()); var e = function () { }; !1 !== (F = F || {}).fix_self_closing && (F.fix_self_closing = !0); var z = F.comment ? F.comment : e, V = F.cdata ? F.cdata : e, H = F.text ? F.text : e, j = F.start ? F.start : e, q = F.end ? F.end : e, $ = F.pi ? F.pi : e, W = F.doctype ? F.doctype : e; return { parse: function (e) { var t, n, r, d, o, i, a, m, u, s, g, c, p, l, f, h, v, b, y, C, x, w, N, E, S, T, k, A, R, D = 0, B = [], _ = 0, O = Ho.decode, P = Xt.makeMap("src,href,data,background,formaction,poster,xlink:href"), L = /((java|vb)script|mhtml):/i, I = function (e) { var t, n; for (t = B.length; t-- && B[t].name !== e;); if (0 <= t) { for (n = B.length - 1; t <= n; n--)(e = B[n]).valid && q(e.name); B.length = t } }, M = function (e, t, n, r, o) { var i, a, u, s, c; if (n = (t = t.toLowerCase())in g ? t : O(n || r || o || ""), p && !m && 0 == (0 === (u = t).indexOf("data-") || 0 === u.indexOf("aria-"))) { if (!(i = b[t]) && y) { for (a = y.length; a-- && !(i = y[a]).pattern.test(t);); -1 === a && (i = null) } if (!i)return; if (i.validValues && !(n in i.validValues))return } if (P[t] && !F.allow_script_urls) { var l = n.replace(/[\s\u0000-\u001F]+/g, ""); try { l = decodeURIComponent(l) } catch (f) { l = unescape(l) } if (L.test(l))return; if (c = l, !(s = F).allow_html_data_urls && (/^data:image\//i.test(c) ? !1 === s.allow_svg_data_urls && /^data:image\/svg\+xml/i.test(c) : /^data:/i.test(c)))return } m && (t in P || 0 === t.indexOf("on")) || (d.map[t] = n, d.push({name: t, value: n})) }; for (S = new RegExp("<(?:(?:!--([\\w\\W]*?)--\x3e)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))", "g"), T = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g, s = U.getShortEndedElements(), E = F.self_closing_elements || U.getSelfClosingElements(), g = U.getBoolAttrs(), p = F.validate, u = F.remove_internals, R = F.fix_self_closing, k = U.getSpecialElements(), N = e + ">"; t = S.exec(N);) { if (D < t.index && H(O(e.substr(D, t.index - D))), n = t[6])":" === (n = n.toLowerCase()).charAt(0) && (n = n.substr(1)), I(n); else if (n = t[7]) { if (t.index + t[0].length > e.length) { H(O(e.substr(t.index))), D = t.index + t[0].length; continue } if (":" === (n = n.toLowerCase()).charAt(0) && (n = n.substr(1)), c = n in s, R && E[n] && 0 < B.length && B[B.length - 1].name === n && I(n), !p || (l = U.getElementRule(n))) { if (f = !0, p && (b = l.attributes, y = l.attributePatterns), (v = t[8]) ? ((m = -1 !== v.indexOf("data-mce-type")) && u && (f = !1), (d = []).map = {}, v.replace(T, M)) : (d = []).map = {}, p && !m) { if (C = l.attributesRequired, x = l.attributesDefault, w = l.attributesForced, l.removeEmptyAttrs && !d.length && (f = !1), w)for (o = w.length; o--;)a = (h = w[o]).name, "{$uid}" === (A = h.value) && (A = "mce_" + _++), d.map[a] = A, d.push({ name: a, value: A }); if (x)for (o = x.length; o--;)(a = (h = x[o]).name)in d.map || ("{$uid}" === (A = h.value) && (A = "mce_" + _++), d.map[a] = A, d.push({ name: a, value: A })); if (C) { for (o = C.length; o-- && !(C[o]in d.map);); -1 === o && (f = !1) } if (h = d.map["data-mce-bogus"]) { if ("all" === h) { D = jc(U, e, S.lastIndex), S.lastIndex = D; continue } f = !1 } } f && j(n, d, c) } else f = !1; if (r = k[n]) { r.lastIndex = D = t.index + t[0].length, D = (t = r.exec(e)) ? (f && (i = e.substr(D, t.index - D)), t.index + t[0].length) : (i = e.substr(D), e.length), f && (0 < i.length && H(i, !0), q(n)), S.lastIndex = D; continue } c || (v && v.indexOf("/") === v.length - 1 ? f && q(n) : B.push({name: n, valid: f})) } else(n = t[1]) ? (">" === n.charAt(0) && (n = " " + n), F.allow_conditional_comments || "[if" !== n.substr(0, 3).toLowerCase() || (n = " " + n), z(n)) : (n = t[2]) ? V(n.replace(//g, "")) : (n = t[3]) ? W(n) : (n = t[4]) && $(n, t[5]); D = t.index + t[0].length } for (D < e.length && H(O(e.substr(D))), o = B.length - 1; 0 <= o; o--)(n = B[o]).valid && q(n.name) } } } (qc || (qc = {})).findEndTag = jc; var $c = qc, Wc = function (e, t) { var n, r, o, i, a, u, s, c, l = t, f = /<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g, d = e.schema; for (u = e.getTempAttrs(), s = l, c = new RegExp(["\\s?(" + u.join("|") + ')="[^"]+"'].join("|"), "gi"), l = s.replace(c, ""), a = d.getShortEndedElements(); i = f.exec(l);)r = f.lastIndex, o = i[0].length, n = a[i[1]] ? r : $c.findEndTag(d, l, r), l = l.substring(0, r - o) + l.substring(n), f.lastIndex = r - o; return da(l) }, Kc = {trimExternal: Wc, trimInternal: Wc}, Xc = function (e, t, n) { var r = e.getParam(t, n); if (-1 === r.indexOf("="))return r; var o = e.getParam(t, "", "hash"); return o.hasOwnProperty(e.id) ? o[e.id] : n }, Yc = function (e) { return e.getParam("iframe_attrs", {}) }, Gc = function (e) { return e.getParam("doctype", "") }, Jc = function (e) { return e.getParam("document_base_url", "") }, Qc = function (e) { return Xc(e, "body_id", "tinymce") }, Zc = function (e) { return Xc(e, "body_class", "") }, el = function (e) { return e.getParam("content_security_policy", "") }, tl = function (e) { return e.getParam("br_in_pre", !0) }, nl = function (e) { if (e.getParam("force_p_newlines", !1))return "p"; var t = e.getParam("forced_root_block", "p"); return !1 === t ? "" : !0 === t ? "p" : t }, rl = function (e) { return e.getParam("forced_root_block_attrs", {}) }, ol = function (e) { return e.getParam("br_newline_selector", ".mce-toc h2,figcaption,caption") }, il = function (e) { return e.getParam("no_newline_selector", "") }, al = function (e) { return e.getParam("keep_styles", !0) }, ul = function (e) { return e.getParam("end_container_on_empty_block", !1) }, sl = function (e) { return Xt.explode(e.getParam("font_size_style_values", "")) }, cl = function (e) { return Xt.explode(e.getParam("font_size_classes", "")) }, ll = function (e) { return e.getParam("images_dataimg_filter", q(!0), "function") }, fl = function (e) { return e.getParam("automatic_uploads", !0, "boolean") }, dl = function (e) { return e.getParam("images_reuse_filename", !1, "boolean") }, ml = function (e) { return e.getParam("images_replace_blob_uris", !0, "boolean") }, gl = function (e) { return e.getParam("images_upload_url", "", "string") }, pl = function (e) { return e.getParam("images_upload_base_path", "", "string") }, hl = function (e) { return e.getParam("images_upload_credentials", !1, "boolean") }, vl = function (e) { return e.getParam("images_upload_handler", null, "function") }, bl = function (e) { return e.getParam("content_css_cors", !1, "boolean") }, yl = function (e) { return e.getParam("language", "en", "string") }, Cl = function (e) { return e.getParam("language_url", "", "string") }, xl = function (e, t, n) { var r, o, i, a, u; if (t.format = t.format ? t.format : "html", t.get = !0, t.getInner = !0, t.no_events || e.fire("BeforeGetContent", t), "raw" === t.format)r = Xt.trim(Kc.trimExternal(e.serializer, n.innerHTML)); else if ("text" === t.format)r = da(n.innerText || n.textContent); else { if ("tree" === t.format)return e.serializer.serialize(n, t); i = (o = e).serializer.serialize(n, t), a = nl(o), u = new RegExp("^(<" + a + "[^>]*>( | |\\s|\xa0|
|)<\\/" + a + ">[\r\n]*|
[\r\n]*)$"), r = i.replace(u, "") } return "text" === t.format || vo(nr.fromDom(n)) ? t.content = r : t.content = Xt.trim(r), t.no_events || e.fire("GetContent", t), t.content }, wl = Xt.makeMap; function Nl(e) { var u, s, c, l, f, d = []; return u = (e = e || {}).indent, s = wl(e.indent_before || ""), c = wl(e.indent_after || ""), l = Ho.getEncodeFunc(e.entity_encoding || "raw", e.entities), f = "html" === e.element_format, { start: function (e, t, n) { var r, o, i, a; if (u && s[e] && 0 < d.length && 0 < (a = d[d.length - 1]).length && "\n" !== a && d.push("\n"), d.push("<", e), t)for (r = 0, o = t.length; r < o; r++)i = t[r], d.push(" ", i.name, '="', l(i.value, !0), '"'); d[d.length] = !n || f ? ">" : " />", n && u && c[e] && 0 < d.length && 0 < (a = d[d.length - 1]).length && "\n" !== a && d.push("\n") }, end: function (e) { var t; d.push(""), u && c[e] && 0 < d.length && 0 < (t = d[d.length - 1]).length && "\n" !== t && d.push("\n") }, text: function (e, t) { 0 < e.length && (d[d.length] = t ? e : l(e)) }, cdata: function (e) { d.push("") }, comment: function (e) { d.push("\x3c!--", e, "--\x3e") }, pi: function (e, t) { t ? d.push("") : d.push(""), u && d.push("\n") }, doctype: function (e) { d.push("", u ? "\n" : "") }, reset: function () { d.length = 0 }, getContent: function () { return d.join("").replace(/\n$/, "") } } } function El(t, g) { void 0 === g && (g = Zo()); var p = Nl(t); return (t = t || {}).validate = !("validate"in t) || t.validate, { serialize: function (e) { var f, d; d = t.validate, f = { 3: function (e) { p.text(e.value, e.raw) }, 8: function (e) { p.comment(e.value) }, 7: function (e) { p.pi(e.name, e.value) }, 10: function (e) { p.doctype(e.value) }, 4: function (e) { p.cdata(e.value) }, 11: function (e) { if (e = e.firstChild)for (; m(e), e = e.next;); } }, p.reset(); var m = function (e) { var t, n, r, o, i, a, u, s, c, l = f[e.type]; if (l)l(e); else { if (t = e.name, n = e.shortEnded, r = e.attributes, d && r && 1 < r.length && ((a = []).map = {}, c = g.getElementRule(e.name))) { for (u = 0, s = c.attributesOrder.length; u < s; u++)(o = c.attributesOrder[u])in r.map && (i = r.map[o], a.map[o] = i, a.push({ name: o, value: i })); for (u = 0, s = r.length; u < s; u++)(o = r[u].name)in a.map || (i = r.map[o], a.map[o] = i, a.push({ name: o, value: i })); r = a } if (p.start(e.name, r, n), !n) { if (e = e.firstChild)for (; m(e), e = e.next;); p.end(t) } } }; return 1 !== e.type || t.inner ? f[11](e) : m(e), p.getContent() } } } var Sl = function (e, t) { t(e), e.firstChild && Sl(e.firstChild, t), e.next && Sl(e.next, t) }, Tl = function (e, t, n) { var r = function (e, n, t) { var r = {}, o = {}, i = []; for (var a in t.firstChild && Sl(t.firstChild, function (t) { M(e, function (e) { e.name === t.name && (r[e.name] ? r[e.name].nodes.push(t) : r[e.name] = {filter: e, nodes: [t]}) }), M(n, function (e) { "string" == typeof t.attr(e.name) && (o[e.name] ? o[e.name].nodes.push(t) : o[e.name] = { filter: e, nodes: [t] }) }) }), r)r.hasOwnProperty(a) && i.push(r[a]); for (var a in o)o.hasOwnProperty(a) && i.push(o[a]); return i }(e, t, n); M(r, function (t) { M(t.filter.callbacks, function (e) { e(t.nodes, t.filter.name, {}) }) }) }, kl = function (e) { var t = Pr(e).dom(); return e.dom() === t.activeElement }, Al = function (t) { return (e = Pr(t), n = e !== undefined ? e.dom() : document, A.from(n.activeElement).map(nr.fromDom)).filter(function (e) { return t.dom().contains(e.dom()) }); var e, n }, Rl = function (a) { if (!D(a))throw new Error("cases must be an array"); if (0 === a.length)throw new Error("there must be at least one case"); var u = [], n = {}; return M(a, function (e, r) { var t = lr(e); if (1 !== t.length)throw new Error("one and only one name per case"); var o = t[0], i = e[o]; if (n[o] !== undefined)throw new Error("duplicate key detected:" + o); if ("cata" === o)throw new Error("cannot have a case named cata (sorry)"); if (!D(i))throw new Error("case arguments must be an array"); u.push(o), n[o] = function () { var e = arguments.length; if (e !== i.length)throw new Error("Wrong number of arguments to case " + o + ". Expected " + i.length + " (" + i + "), got " + e); for (var n = new Array(e), t = 0; t < n.length; t++)n[t] = arguments[t]; return { fold: function () { if (arguments.length !== a.length)throw new Error("Wrong number of arguments to fold. Expected " + a.length + ", got " + arguments.length); return arguments[r].apply(null, n) }, match: function (e) { var t = lr(e); if (u.length !== t.length)throw new Error("Wrong number of arguments to match. Expected: " + u.join(",") + "\nActual: " + t.join(",")); if (!G(u, function (e) { return I(t, e) }))throw new Error("Not all branches were specified when using match. Specified: " + t.join(", ") + "\nRequired: " + u.join(", ")); return e[o].apply(null, n) }, log: function (e) { console.log(e, {constructors: u, constructor: o, params: n}) } } } }), n }, Dl = (Rl([{before: ["element"]}, {on: ["element", "offset"]}, {after: ["element"]}]), Rl([{domRange: ["rng"]}, {relative: ["startSitu", "finishSitu"]}, {exact: ["start", "soffset", "finish", "foffset"]}]), Nr("start", "soffset", "finish", "foffset")), Bl = er.detect().browser, _l = function (e, t) { var n = cr(t) ? Dc(t).length : Ur(t).length + 1; return n < e ? n : e < 0 ? 0 : e }, Ol = function (e) { return Dl(e.start(), _l(e.soffset(), e.start()), e.finish(), _l(e.foffset(), e.finish())) }, Pl = function (e, t) { return Or(e, t) || _r(e, t) }, Ll = function (t) { return function (e) { return Pl(t, e.start()) && Pl(t, e.finish()) } }, Il = function (e) { return !0 === e.inline || Bl.isIE() }, Ml = function (e) { return Dl(nr.fromDom(e.startContainer), e.startOffset, nr.fromDom(e.endContainer), e.endOffset) }, Fl = function (e) { var t = e.getSelection(); return (t && 0 !== t.rangeCount ? A.from(t.getRangeAt(0)) : A.none()).map(Ml) }, Ul = function (e) { var t, n = (t = e.dom().ownerDocument.defaultView, nr.fromDom(t)); return Fl(n.dom()).filter(Ll(e)) }, zl = function (e, t) { return A.from(t).filter(Ll(e)).map(Ol) }, Vl = function (e) { var t = document.createRange(); try { return t.setStart(e.start().dom(), e.soffset()), t.setEnd(e.finish().dom(), e.foffset()), A.some(t) } catch (n) { return A.none() } }, Hl = function (e) { return (e.bookmark ? e.bookmark : A.none()).bind(m(zl, nr.fromDom(e.getBody()))).bind(Vl) }, jl = function (e) { var t = Il(e) ? Ul(nr.fromDom(e.getBody())) : A.none(); e.bookmark = t.isSome() ? t : e.bookmark }, ql = function (t) { Hl(t).each(function (e) { t.selection.setRng(e) }) }, $l = Hl, Wl = function (t, e) { return (n = e, n.collapsed ? A.from(qa(n.startContainer, n.startOffset)).map(nr.fromDom) : A.none()).bind(function (e) { return po(e) ? A.some(e) : !1 === Or(t, e) ? A.some(t) : A.none() }); var n }, Kl = function (t, e) { Wl(nr.fromDom(t.getBody()), e).bind(function (e) { return ec.firstPositionIn(e.dom()) }).fold(function () { t.selection.normalize() }, function (e) { return t.selection.setRng(e.toRange()) }) }, Xl = function (e) { if (e.setActive)try { e.setActive() } catch (t) { e.focus() } else e.focus() }, Yl = function (e) { var t, n = e.getBody(); return n && (t = nr.fromDom(n), kl(t) || Al(t).isSome()) }, Gl = function (e) { return e.inline ? Yl(e) : (t = e).iframeElement && kl(nr.fromDom(t.iframeElement)); var t }, Jl = function (e) { return e.editorManager.setActive(e) }, Ql = function (e, t) { e.removed || (t ? Jl(e) : function (t) { var e = t.selection, n = t.getBody(), r = e.getRng(); t.quirks.refreshContentEditable(); var o, i, a = (o = t, i = e.getNode(), o.dom.getParent(i, function (e) { return "true" === o.dom.getContentEditable(e) })); if (t.$.contains(n, a))return Xl(a), Kl(t, r), Jl(t); t.bookmark !== undefined && !1 === Gl(t) && $l(t).each(function (e) { t.selection.setRng(e), r = e }), t.inline || (fe.opera || Xl(n), t.getWin().focus()), (fe.gecko || t.inline) && (Xl(n), Kl(t, r)), Jl(t) }(e)) }, Zl = Gl, ef = function (e) { return e instanceof Hc }, tf = function (e, t) { var r; e.dom.setHTML(e.getBody(), t), Zl(r = e) && ec.firstPositionIn(r.getBody()).each(function (e) { var t = e.getNode(), n = Ao.isTable(t) ? ec.firstPositionIn(t).getOr(e) : e; r.selection.setRng(n.toRange()) }) }, nf = function (u, s, c) { return void 0 === c && (c = {}), c.format = c.format ? c.format : "html", c.set = !0, c.content = ef(s) ? "" : s, ef(s) || c.no_events || (u.fire("BeforeSetContent", c), s = c.content), A.from(u.getBody()).fold(q(s), function (e) { return ef(s) ? function (e, t, n, r) { Tl(e.parser.getNodeFilters(), e.parser.getAttributeFilters(), n); var o = El({validate: e.validate}, e.schema).serialize(n); return r.content = vo(nr.fromDom(t)) ? o : Xt.trim(o), tf(e, r.content), r.no_events || e.fire("SetContent", r), n }(u, e, s, c) : (t = u, n = e, o = c, 0 === (r = s).length || /^\s+$/.test(r) ? (a = '
', "TABLE" === n.nodeName ? r = "" + a + "" : /^(UL|OL)$/.test(n.nodeName) && (r = "
  • " + a + "
  • "), (i = nl(t)) && t.schema.isValidChild(n.nodeName.toLowerCase(), i.toLowerCase()) ? (r = a, r = t.dom.createHTML(i, t.settings.forced_root_block_attrs, r)) : r || (r = '
    '), tf(t, r), t.fire("SetContent", o)) : ("raw" !== o.format && (r = El({validate: t.validate}, t.schema).serialize(t.parser.parse(r, { isRootContent: !0, insert: !0 }))), o.content = vo(nr.fromDom(n)) ? r : Xt.trim(r), tf(t, o.content), o.no_events || t.fire("SetContent", o)), o.content); var t, n, r, o, i, a }) }, rf = function (e, t) { return e.fire("PreProcess", t) }, of = function (e, t) { return e.fire("PostProcess", t) }, af = function (e) { return e.fire("remove") }, uf = function (e, t) { return e.fire("SwitchMode", {mode: t}) }, sf = function (e, t, n, r) { e.fire("ObjectResizeStart", {target: t, width: n, height: r}) }, cf = function (e, t, n, r) { e.fire("ObjectResized", {target: t, width: n, height: r}) }, lf = di.DOM, ff = function (e) { return A.from(e).each(function (e) { return e.destroy() }) }, df = function (e) { if (!e.removed) { var t = e._selectionOverrides, n = e.editorUpload, r = e.getBody(), o = e.getElement(); r && e.save({is_removing: !0}), e.removed = !0, e.unbindAllNativeEvents(), e.hasHiddenInput && o && lf.remove(o.nextSibling), !e.inline && r && (i = e, lf.setStyle(i.id, "display", i.orgDisplay)), af(e), e.editorManager.remove(e), lf.remove(e.getContainer()), ff(t), ff(n), e.destroy() } var i }, mf = function (e, t) { var n, r, o, i = e.selection, a = e.dom; e.destroyed || (t || e.removed ? (t || (e.editorManager.off("beforeunload", e._beforeUnload), e.theme && e.theme.destroy && e.theme.destroy(), ff(i), ff(a)), (r = (n = e).formElement) && (r._mceOldSubmit && (r.submit = r._mceOldSubmit, r._mceOldSubmit = null), lf.unbind(r, "submit reset", n.formEventDelegate)), (o = e).contentAreaContainer = o.formElement = o.container = o.editorContainer = null, o.bodyElement = o.contentDocument = o.contentWindow = null, o.iframeElement = o.targetElm = null, o.selection && (o.selection = o.selection.win = o.selection.dom = o.selection.dom.doc = null), e.destroyed = !0) : e.remove()) }, gf = Nr("sections", "settings"), pf = er.detect(), hf = pf.deviceType.isTouch(), vf = pf.deviceType.isPhone(), bf = ["lists", "autolink", "autosave"], yf = vf ? {theme: "mobile"} : {}, Cf = function (e) { var t = D(e) ? e.join(" ") : e, n = W(k(t) ? t.split(" ") : [], Wn); return F(n, function (e) { return 0 < e.length }) }, xf = function (n, e) { var r, o, i, t = (r = function (e, t) { return I(n, t) }, o = {}, i = {}, dr(e, function (e, t) { (r(e, t) ? o : i)[t] = e }), {t: o, f: i}); return gf(t.t, t.f) }, wf = function (e, t) { return e.sections().hasOwnProperty(t) }, Nf = function (e, t, n, r) { var o, i = Cf(n.forced_plugins), a = Cf(r.plugins), u = e && wf(t, "mobile") ? F(a, m(I, bf)) : a, s = (o = u, [].concat(Cf(i)).concat(Cf(o))); return Xt.extend(r, {plugins: s.join(" ")}) }, Ef = function (e, t, n, r) { var o, i, a, u, s, c, l, f, d, m, g = xf(["mobile"], r), p = Xt.extend(t, n, g.settings(), (f = e, m = (d = g).settings().inline, f && wf(d, "mobile") && !m ? (u = "mobile", s = yf, c = g.sections(), l = c.hasOwnProperty(u) ? c[u] : {}, Xt.extend({}, s, l)) : {}), { validate: !0, external_plugins: (o = n, i = g.settings(), a = i.external_plugins ? i.external_plugins : {}, o && o.external_plugins ? Xt.extend({}, o.external_plugins, a) : a) }); return Nf(e, g, n, p) }, Sf = function (e, t, n) { return A.from(t.settings[n]).filter(e) }, Tf = m(Sf, k), kf = function (e, t, n, r) { var o, i, a, u = t in e.settings ? e.settings[t] : n; return "hash" === r ? (a = {}, "string" == typeof(i = u) ? M(0 < i.indexOf("=") ? i.split(/[;,](?![^=;,]*(?:[;,]|$))/) : i.split(","), function (e) { var t = e.split("="); 1 < t.length ? a[Xt.trim(t[0])] = Xt.trim(t[1]) : a[Xt.trim(t[0])] = Xt.trim(t) }) : a = i, a) : "string" === r ? Sf(k, e, t).getOr(n) : "number" === r ? Sf(P, e, t).getOr(n) : "boolean" === r ? Sf(_, e, t).getOr(n) : "object" === r ? Sf(R, e, t).getOr(n) : "array" === r ? Sf(D, e, t).getOr(n) : "string[]" === r ? Sf((o = k, function (e) { return D(e) && G(e, o) }), e, t).getOr(n) : "function" === r ? Sf(O, e, t).getOr(n) : u }, Af = function (e, t) { return t.dom()[e] }, Rf = function (e, t) { return parseInt(xr(t, e), 10) }, Df = m(Af, "clientWidth"), Bf = m(Af, "clientHeight"), _f = m(Rf, "margin-top"), Of = m(Rf, "margin-left"), Pf = function (e, t, n) { var r, o, i, a, u, s, c, l, f, d, m, g = nr.fromDom(e.getBody()), p = e.inline ? g : (r = g, nr.fromDom(r.dom().ownerDocument.documentElement)), h = (o = e.inline, a = t, u = n, s = (i = p).dom().getBoundingClientRect(), { x: a - (o ? s.left + i.dom().clientLeft + Of(i) : 0), y: u - (o ? s.top + i.dom().clientTop + _f(i) : 0) }); return l = h.x, f = h.y, d = Df(c = p), m = Bf(c), 0 <= l && 0 <= f && l <= d && f <= m }, Lf = function (e) { var t, n = e.inline ? e.getBody() : e.getContentAreaContainer(); return (t = n, A.from(t).map(nr.fromDom)).map(function (e) { return Or(Pr(e), e) }).getOr(!1) }; function If(n) { var t, o = [], i = function () { var e = n.theme; return e && e.getNotificationManagerImpl ? e.getNotificationManagerImpl() : function t() { var e = function () { throw new Error("Theme did not provide a NotificationManager implementation.") }; return {open: e, close: e, reposition: e, getArgs: e} }() }, a = function () { 0 < o.length && i().reposition(o) }, u = function (t) { V(o, function (e) { return e === t }).each(function (e) { o.splice(e, 1) }) }, r = function (r) { if (!n.removed && Lf(n))return z(o, function (e) { return t = i().getArgs(e), n = r, !(t.type !== n.type || t.text !== n.text || t.progressBar || t.timeout || n.progressBar || n.timeout); var t, n }).getOrThunk(function () { n.editorManager.setActive(n); var e, t = i().open(r, function () { u(t), a() }); return e = t, o.push(e), a(), t }) }; return (t = n).on("SkinLoaded", function () { var e = t.settings.service_message; e && r({text: e, type: "warning", timeout: 0}) }), t.on("ResizeEditor ResizeWindow", function () { he.requestAnimationFrame(a) }), t.on("remove", function () { M(o.slice(), function (e) { i().close(e) }) }), { open: r, close: function () { A.from(o[0]).each(function (e) { i().close(e), u(e), a() }) }, getNotifications: function () { return o } } } function Mf(r) { var o = [], i = function () { var e = r.theme; return e && e.getWindowManagerImpl ? e.getWindowManagerImpl() : function t() { var e = function () { throw new Error("Theme did not provide a WindowManager implementation.") }; return {open: e, alert: e, confirm: e, close: e, getParams: e, setParams: e} }() }, a = function (e, t) { return function () { return t ? t.apply(e, arguments) : undefined } }, u = function (e) { var t; o.push(e), t = e, r.fire("OpenWindow", {win: t}) }, s = function (n) { V(o, function (e) { return e === n }).each(function (e) { var t; o.splice(e, 1), t = n, r.fire("CloseWindow", {win: t}), 0 === o.length && r.focus() }) }, e = function () { return A.from(o[o.length - 1]) }; return r.on("remove", function () { M(o.slice(0), function (e) { i().close(e) }) }), { windows: o, open: function (e, t) { r.editorManager.setActive(r), jl(r); var n = i().open(e, t, s); return u(n), n }, alert: function (e, t, n) { var r = i().alert(e, a(n || this, t), s); u(r) }, confirm: function (e, t, n) { var r = i().confirm(e, a(n || this, t), s); u(r) }, close: function () { e().each(function (e) { i().close(e), s(e) }) }, getParams: function () { return e().map(i().getParams).getOr(null) }, setParams: function (t) { e().each(function (e) { i().setParams(e, t) }) }, getWindows: function () { return o } } } var Ff, Uf = Ei.PluginManager, zf = function (e, t) { var n = function (e, t) { for (var n in Uf.urls)if (Uf.urls[n] + "/plugin" + t + ".js" === e)return n; return null }(t, e.suffix); return n ? "Failed to load plugin: " + n + " from url " + t : "Failed to load plugin url: " + t }, Vf = function (e, t) { e.notificationManager.open({type: "error", text: t}) }, Hf = function (e, t) { e._skinLoaded ? Vf(e, t) : e.on("SkinLoaded", function () { Vf(e, t) }) }, jf = function (e, t) { Hf(e, zf(e, t)) }, qf = function (e, t) { Hf(e, "Failed to upload image: " + t) }, $f = Hf, Wf = function (e) { for (var t = [], n = 1; n < arguments.length; n++)t[n - 1] = arguments[n]; var r = window.console; r && (r.error ? r.error.apply(r, arguments) : r.log.apply(r, arguments)) }, Kf = (Ff = {}, { add: function (e, t) { Ff[e] = t }, get: function (e) { return Ff[e] ? Ff[e] : {icons: {}} } }), Xf = Ei.PluginManager, Yf = Ei.ThemeManager; function Gf() { return new (oe.getOrDie("XMLHttpRequest")) } function Jf(u, s) { var r = {}, n = function (e, r, o, t) { var i, n; (i = Gf()).open("POST", s.url), i.withCredentials = s.credentials, i.upload.onprogress = function (e) { t(e.loaded / e.total * 100) }, i.onerror = function () { o("Image upload failed due to a XHR Transport error. Code: " + i.status) }, i.onload = function () { var e, t, n; i.status < 200 || 300 <= i.status ? o("HTTP Error: " + i.status) : (e = JSON.parse(i.responseText)) && "string" == typeof e.location ? r((t = s.basePath, n = e.location, t ? t.replace(/\/$/, "") + "/" + n.replace(/^\//, "") : n)) : o("Invalid JSON: " + i.responseText) }, (n = new FormData).append("file", e.blob(), e.filename()), i.send(n) }, c = function (e, t) { return {url: t, blobInfo: e, status: !0} }, l = function (e, t) { return {url: "", blobInfo: e, status: !1, error: t} }, f = function (e, t) { Xt.each(r[e], function (e) { e(t) }), delete r[e] }, o = function (e, n) { return e = Xt.grep(e, function (e) { return !u.isUploaded(e.blobUri()) }), de.all(Xt.map(e, function (e) { return u.isPending(e.blobUri()) ? (t = e.blobUri(), new de(function (e) { r[t] = r[t] || [], r[t].push(e) })) : (o = e, i = s.handler, a = n, u.markPending(o.blobUri()), new de(function (t) { var n; try { var r = function () { n && n.close() }; i(o, function (e) { r(), u.markUploaded(o.blobUri(), e), f(o.blobUri(), c(o, e)), t(c(o, e)) }, function (e) { r(), u.removeFailed(o.blobUri()), f(o.blobUri(), l(o, e)), t(l(o, e)) }, function (e) { e < 0 || 100 < e || (n || (n = a()), n.progressBar.value(e)) }) } catch (e) { t(l(o, e.message)) } })); var o, i, a, t })) }; return !1 === O(s.handler) && (s.handler = n), { upload: function (e, t) { return s.url || s.handler !== n ? o(e, t) : new de(function (e) { e([]) }) } } } var Qf = function (e) { return oe.getOrDie("atob")(e) }, Zf = function (e) { var t, n, r = decodeURIComponent(e).split(","); return (n = /data:([^;]+)/.exec(r[0])) && (t = n[1]), {type: t, data: r[1]} }, ed = function (a) { return new de(function (e) { var t, n, r, o = Zf(a); try { t = Qf(o.data) } catch (CN) { return void e(new Blob([])) } for (n = function i(e) { return new (oe.getOrDie("Uint8Array"))(e) }(t.length), r = 0; r < n.length; r++)n[r] = t.charCodeAt(r); e(new Blob([n], {type: o.type})) }) }, td = function (e) { return 0 === e.indexOf("blob:") ? (i = e, new de(function (e, t) { var n = function () { t("Cannot convert " + i + " to Blob. Resource might not exist or is inaccessible.") }; try { var r = Gf(); r.open("GET", i, !0), r.responseType = "blob", r.onload = function () { 200 === this.status ? e(this.response) : n() }, r.onerror = n, r.send() } catch (o) { n() } })) : 0 === e.indexOf("data:") ? ed(e) : null; var i }, nd = function (r) { return new de(function (e) { var t = function n() { return new (oe.getOrDie("FileReader")) }(); t.onloadend = function () { e(t.result) }, t.readAsDataURL(r) }) }, rd = Zf, od = 0, id = function (e) { return (e || "blobid") + od++ }, ad = function (n, r, o, t) { var i, a; 0 !== r.src.indexOf("blob:") ? (i = rd(r.src).data, (a = n.findFirst(function (e) { return e.base64() === i })) ? o({image: r, blobInfo: a}) : td(r.src).then(function (e) { a = n.create(id(), e, i), n.add(a), o({image: r, blobInfo: a}) }, function (e) { t(e) })) : (a = n.getByUri(r.src)) ? o({image: r, blobInfo: a}) : td(r.src).then(function (t) { nd(t).then(function (e) { i = rd(e).data, a = n.create(id(), t, i), n.add(a), o({image: r, blobInfo: a}) }) }, function (e) { t(e) }) }, ud = function (e) { return e ? e.getElementsByTagName("img") : [] }, sd = 0, cd = { uuid: function (e) { return e + sd++ + (t = function () { return Math.round(4294967295 * Math.random()).toString(36) }, "s" + (new Date).getTime().toString(36) + t() + t() + t()); var t } }; function ld(o) { var t, n, i = function v() { var n = [], o = sa.constant, i = function (e) { var t, n, r; if (!e.blob || !e.base64)throw new Error("blob and base64 representations of the image are required for BlobInfo to be created"); return t = e.id || cd.uuid("blobid"), n = e.name || t, { id: o(t), name: o(n), filename: o(n + "." + (r = e.blob.type, { "image/jpeg": "jpg", "image/jpg": "jpg", "image/gif": "gif", "image/png": "png" }[r.toLowerCase()] || "dat")), blob: o(e.blob), base64: o(e.base64), blobUri: o(e.blobUri || ae.createObjectURL(e.blob)), uri: o(e.uri) } }, t = function (t) { return e(function (e) { return e.id() === t }) }, e = function (e) { return jt.filter(n, e)[0] }; return { create: function (e, t, n, r) { if (k(e))return i({id: e, name: r, blob: t, base64: n}); if (R(e))return i(e); throw new Error("Unknown input type") }, add: function (e) { t(e.id()) || n.push(e) }, get: t, getByUri: function (t) { return e(function (e) { return e.blobUri() === t }) }, findFirst: e, removeByUri: function (t) { n = jt.filter(n, function (e) { return e.blobUri() !== t || (ae.revokeObjectURL(e.blobUri()), !1) }) }, destroy: function () { jt.each(n, function (e) { ae.revokeObjectURL(e.blobUri()) }), n = [] } } }(), a = function b() { var n = {}, r = function (e, t) { return {status: e, resultUri: t} }, t = function (e) { return e in n }; return { hasBlobUri: t, getResultUri: function (e) { var t = n[e]; return t ? t.resultUri : null }, isPending: function (e) { return !!t(e) && 1 === n[e].status }, isUploaded: function (e) { return !!t(e) && 2 === n[e].status }, markPending: function (e) { n[e] = r(1, null) }, markUploaded: function (e, t) { n[e] = r(2, t) }, removeFailed: function (e) { delete n[e] }, destroy: function () { n = {} } } }(), r = [], u = function (t) { return function (e) { return o.selection ? t(e) : [] } }, s = function (e, t, n) { for (var r = 0; -1 !== (r = e.indexOf(t, r)) && (e = e.substring(0, r) + n + e.substr(r + t.length), r += n.length - t.length + 1), -1 !== r;); return e }, c = function (e, t, n) { return e = s(e, 'src="' + t + '"', 'src="' + n + '"'), e = s(e, 'data-mce-src="' + t + '"', 'data-mce-src="' + n + '"') }, l = function (t, n) { M(o.undoManager.data, function (e) { "fragmented" === e.type ? e.fragments = W(e.fragments, function (e) { return c(e, t, n) }) : e.content = c(e.content, t, n) }) }, f = function () { return o.notificationManager.open({ text: o.translate("Image uploading..."), type: "info", timeout: -1, progressBar: !0 }) }, d = function (e, t) { i.removeByUri(e.src), l(e.src, t), o.$(e).attr({ src: dl(o) ? t + "?" + (new Date).getTime() : t, "data-mce-src": o.convertURL(t, "src") }) }, m = function (n) { return t || (t = Jf(a, { url: gl(o), basePath: pl(o), credentials: hl(o), handler: vl(o) })), p().then(u(function (r) { var e; return e = W(r, function (e) { return e.blobInfo }), t.upload(e, f).then(u(function (e) { var t = W(e, function (e, t) { var n = r[t].image; return e.status && ml(o) ? d(n, e.url) : e.error && qf(o, e.error), { element: n, status: e.status } }); return n && n(t), t })) })) }, e = function (e) { if (fl(o))return m(e) }, g = function (t) { return !1 !== G(r, function (e) { return e(t) }) && (0 !== t.getAttribute("src").indexOf("data:") || ll(o)(t)) }, p = function () { return n || (n = function e(o, i) { var a = {}; return { findAll: function (e, n) { var t; n || (n = sa.constant(!0)), t = jt.filter(ud(e), function (e) { var t = e.src; return !!fe.fileApi && !e.hasAttribute("data-mce-bogus") && !e.hasAttribute("data-mce-placeholder") && !(!t || t === fe.transparentSrc) && (0 === t.indexOf("blob:") ? !o.isUploaded(t) && n(e) : 0 === t.indexOf("data:") && n(e)) }); var r = jt.map(t, function (n) { if (a[n.src])return new de(function (t) { a[n.src].then(function (e) { if ("string" == typeof e)return e; t({image: n, blobInfo: e.blobInfo}) }) }); var e = new de(function (e, t) { ad(i, n, e, t) }).then(function (e) { return delete a[e.image.src], e })["catch"](function (e) { return delete a[n.src], e }); return a[n.src] = e }); return de.all(r) } } }(a, i)), n.findAll(o.getBody(), g).then(u(function (e) { return e = F(e, function (e) { return "string" != typeof e || ($f(o, e), !1) }), M(e, function (e) { l(e.image.src, e.blobInfo.blobUri()), e.image.src = e.blobInfo.blobUri(), e.image.removeAttribute("data-mce-src") }), e })) }, h = function (e) { return e.replace(/src="(blob:[^"]+)"/g, function (e, n) { var t = a.getResultUri(n); if (t)return 'src="' + t + '"'; var r = i.getByUri(n); return r || (r = U(o.editorManager.get(), function (e, t) { return e || t.editorUpload && t.editorUpload.blobCache.getByUri(n) }, null)), r ? 'src="data:' + r.blob().type + ";base64," + r.base64() + '"' : e }) }; return o.on("setContent", function () { fl(o) ? e() : p() }), o.on("RawSaveContent", function (e) { e.content = h(e.content) }), o.on("getContent", function (e) { e.source_view || "raw" === e.format || (e.content = h(e.content)) }), o.on("PostRender", function () { o.parser.addNodeFilter("img", function (e) { M(e, function (e) { var t = e.attr("src"); if (!i.getByUri(t)) { var n = a.getResultUri(t); n && e.attr("src", n) } }) }) }), { blobCache: i, addFilter: function (e) { r.push(e) }, uploadImages: m, uploadImagesAuto: e, scanForImages: p, destroy: function () { i.destroy(), a.destroy(), n = t = null } } } var fd = function (e, t, n) { return Or(t, e) ? function (e, t) { for (var n = O(t) ? t : q(!1), r = e.dom(), o = []; null !== r.parentNode && r.parentNode !== undefined;) { var i = r.parentNode, a = nr.fromDom(i); if (o.push(a), !0 === n(a))break; r = i } return o }(e, function (e) { return n(e) || _r(e, t) }).slice(0, -1) : [] }, dd = function (e, t) { return fd(e, t, q(!1)) }, md = dd, gd = function (e, t) { return [e].concat(dd(e, t)) }, pd = function (e, t) { return e.hasOwnProperty(t.nodeName) }, hd = function (t, e, n) { return r = md(nr.fromDom(n), nr.fromDom(e)), V(r, function (e) { return pd(t, e.dom()) }).isSome(); var r }, vd = function (e, t) { if (Ao.isText(t)) { if (0 === t.nodeValue.length)return !0; if (/^\s+$/.test(t.nodeValue) && (!t.nextSibling || pd(e, t.nextSibling)))return !0 } return !1 }, bd = function (e) { var t, n, r, o, i, a, u, s, c, l, f = e.dom, d = e.selection, m = e.schema, g = m.getBlockElements(), p = d.getStart(), h = e.getBody(), v = nl(e); if (p && Ao.isElement(p) && v && (l = h.nodeName.toLowerCase(), m.isValidChild(l, v.toLowerCase()) && !hd(g, h, p))) { for (n = (t = d.getRng()).startContainer, r = t.startOffset, o = t.endContainer, i = t.endOffset, c = Zl(e), p = h.firstChild; p;)if (b = g, y = p, Ao.isText(y) || Ao.isElement(y) && !pd(b, y) && !lc(y)) { if (vd(g, p)) { p = (u = p).nextSibling, f.remove(u); continue } a || (a = f.create(v, e.settings.forced_root_block_attrs), p.parentNode.insertBefore(a, p), s = !0), p = (u = p).nextSibling, a.appendChild(u) } else a = null, p = p.nextSibling; var b, y; s && c && (t.setStart(n, r), t.setEnd(o, i), d.setRng(t), e.nodeChanged()) } }, yd = function (e) { nl(e) && e.on("NodeChange", m(bd, e)) }, Cd = function (e, t) { return e && t && e.startContainer === t.startContainer && e.startOffset === t.startOffset && e.endContainer === t.endContainer && e.endOffset === t.endOffset }, xd = function (t) { return (e = t, zr(e, 0)).fold(q([t]), function (e) { return [t].concat(xd(e)) }); var e }, wd = function (t) { return Vr(t).fold(q([t]), function (e) { return "br" === ar(e) ? Ir(e).map(function (e) { return [t].concat(wd(e)) }).getOr([]) : [t].concat(wd(e)) }) }, Nd = function (o, e) { return Ka([(i = e, a = i.startContainer, u = i.startOffset, Ao.isText(a) ? 0 === u ? A.some(nr.fromDom(a)) : A.none() : A.from(a.childNodes[u]).map(nr.fromDom)), (t = e, n = t.endContainer, r = t.endOffset, Ao.isText(n) ? r === n.data.length ? A.some(nr.fromDom(n)) : A.none() : A.from(n.childNodes[r - 1]).map(nr.fromDom))], function (e, t) { var n = z(xd(o), m(_r, e)), r = z(wd(o), m(_r, t)); return n.isSome() && r.isSome() }).getOr(!1); var t, n, r, i, a, u }, Ed = function (e, t, n, r) { var o = n, i = new to(n, o), a = e.schema.getNonEmptyElements(); do { if (3 === n.nodeType && 0 !== Xt.trim(n.nodeValue).length)return void(r ? t.setStart(n, 0) : t.setEnd(n, n.nodeValue.length)); if (a[n.nodeName] && !/^(TD|TH)$/.test(n.nodeName))return void(r ? t.setStartBefore(n) : "BR" === n.nodeName ? t.setEndBefore(n) : t.setEndAfter(n)); if (fe.ie && fe.ie < 11 && e.isBlock(n) && e.isEmpty(n))return void(r ? t.setStart(n, 0) : t.setEnd(n, 0)) } while (n = r ? i.next() : i.prev()); "BODY" === o.nodeName && (r ? t.setStart(o, 0) : t.setEnd(o, o.childNodes.length)) }, Sd = function (e) { var t = e.selection.getSel(); return t && 0 < t.rangeCount }; function Td(i) { var r, o = []; "onselectionchange"in i.getDoc() || i.on("NodeChange Click MouseUp KeyUp Focus", function (e) { var t, n; n = { startContainer: (t = i.selection.getRng()).startContainer, startOffset: t.startOffset, endContainer: t.endContainer, endOffset: t.endOffset }, "nodechange" !== e.type && Cd(n, r) || i.fire("SelectionChange"), r = n }), i.on("contextmenu", function () { i.fire("SelectionChange") }), i.on("SelectionChange", function () { var e = i.selection.getStart(!0); !e || !fe.range && i.selection.isCollapsed() || Sd(i) && !function (e) { var t, n; if ((n = i.$(e).parentsUntil(i.getBody()).add(e)).length === o.length) { for (t = n.length; 0 <= t && n[t] === o[t]; t--); if (-1 === t)return o = n, !0 } return o = n, !1 }(e) && i.dom.isChildOf(e, i.getBody()) && i.nodeChanged({selectionChange: !0}) }), i.on("MouseUp", function (e) { !e.isDefaultPrevented() && Sd(i) && ("IMG" === i.selection.getNode().nodeName ? he.setEditorTimeout(i, function () { i.nodeChanged() }) : i.nodeChanged()) }), this.nodeChanged = function (e) { var t, n, r, o = i.selection; i.initialized && o && !i.settings.disable_nodechange && !i.readonly && (r = i.getBody(), (t = o.getStart(!0) || r).ownerDocument === i.getDoc() && i.dom.isChildOf(t, r) || (t = r), n = [], i.dom.getParent(t, function (e) { if (e === r)return !0; n.push(e) }), (e = e || {}).element = t, e.parents = n, i.fire("NodeChange", e)) } } var kd, Ad, Rd = function (e) { var t, n, r, o; return o = e.getBoundingClientRect(), n = (t = e.ownerDocument).documentElement, r = t.defaultView, { top: o.top + r.pageYOffset - n.clientTop, left: o.left + r.pageXOffset - n.clientLeft } }, Dd = function (e, t) { return n = (u = e).inline ? Rd(u.getBody()) : { left: 0, top: 0 }, a = (i = e).getBody(), r = i.inline ? {left: a.scrollLeft, top: a.scrollTop} : { left: 0, top: 0 }, { pageX: (o = function (e, t) { if (t.target.ownerDocument === e.getDoc())return {left: t.pageX, top: t.pageY}; var n, r, o, i, a, u = Rd(e.getContentAreaContainer()), s = (r = (n = e).getBody(), o = n.getDoc().documentElement, i = { left: r.scrollLeft, top: r.scrollTop }, a = {left: r.scrollLeft || o.scrollLeft, top: r.scrollTop || o.scrollTop}, n.inline ? i : a); return {left: t.pageX - u.left + s.left, top: t.pageY - u.top + s.top} }(e, t)).left - n.left + r.left, pageY: o.top - n.top + r.top }; var n, r, o, i, a, u }, Bd = Ao.isContentEditableFalse, _d = Ao.isContentEditableTrue, Od = function (e) { e && e.parentNode && e.parentNode.removeChild(e) }, Pd = function (u, s) { return function (e) { if (0 === e.button) { var t = jt.find(s.dom.getParents(e.target), sa.or(Bd, _d)); if (i = s.getBody(), Bd(a = t) && a !== i) { var n = s.dom.getPos(t), r = s.getBody(), o = s.getDoc().documentElement; u.element = t, u.screenX = e.screenX, u.screenY = e.screenY, u.maxX = (s.inline ? r.scrollWidth : o.offsetWidth) - 2, u.maxY = (s.inline ? r.scrollHeight : o.offsetHeight) - 2, u.relX = e.pageX - n.x, u.relY = e.pageY - n.y, u.width = t.offsetWidth, u.height = t.offsetHeight, u.ghost = function (e, t, n, r) { var o = t.cloneNode(!0); e.dom.setStyles(o, {width: n, height: r}), e.dom.setAttrib(o, "data-mce-selected", null); var i = e.dom.create("div", { "class": "mce-drag-container", "data-mce-bogus": "all", unselectable: "on", contenteditable: "false" }); return e.dom.setStyles(i, { position: "absolute", opacity: .5, overflow: "hidden", border: 0, padding: 0, margin: 0, width: n, height: r }), e.dom.setStyles(o, {margin: 0, boxSizing: "border-box"}), i.appendChild(o), i }(s, t, u.width, u.height) } } var i, a } }, Ld = function (l, f) { return function (e) { if (l.dragging && (s = (i = f).selection, c = s.getSel().getRangeAt(0).startContainer, a = 3 === c.nodeType ? c.parentNode : c, u = l.element, a !== u && !i.dom.isChildOf(a, u) && !Bd(a))) { var t = (r = l.element, (o = r.cloneNode(!0)).removeAttribute("data-mce-selected"), o), n = f.fire("drop", { targetClone: t, clientX: e.clientX, clientY: e.clientY }); n.isDefaultPrevented() || (t = n.targetClone, f.undoManager.transact(function () { Od(l.element), f.insertContent(f.dom.getOuterHTML(t)), f._selectionOverrides.hideFakeCaret() })) } var r, o, i, a, u, s, c; Id(l) } }, Id = function (e) { e.dragging = !1, e.element = null, Od(e.ghost) }, Md = function (e) { var t, n, r, o, i, a, p, h, v, u, s, c = {}; t = di.DOM, a = document, n = Pd(c, e), p = c, h = e, v = he.throttle(function (e, t) { h._selectionOverrides.hideFakeCaret(), h.selection.placeCaretAt(e, t) }, 0), r = function (e) { var t, n, r, o, i, a, u, s, c, l, f, d, m = Math.max(Math.abs(e.screenX - p.screenX), Math.abs(e.screenY - p.screenY)); if (p.element && !p.dragging && 10 < m) { if (h.fire("dragstart", {target: p.element}).isDefaultPrevented())return; p.dragging = !0, h.focus() } if (p.dragging) { var g = (f = p, {pageX: (d = Dd(h, e)).pageX - f.relX, pageY: d.pageY + 5}); c = p.ghost, l = h.getBody(), c.parentNode !== l && l.appendChild(c), t = p.ghost, n = g, r = p.width, o = p.height, i = p.maxX, a = p.maxY, s = u = 0, t.style.left = n.pageX + "px", t.style.top = n.pageY + "px", n.pageX + r > i && (u = n.pageX + r - i), n.pageY + o > a && (s = n.pageY + o - a), t.style.width = r - u + "px", t.style.height = o - s + "px", v(e.clientX, e.clientY) } }, o = Ld(c, e), u = c, i = function () { u.dragging && s.fire("dragend"), Id(u) }, (s = e).on("mousedown", n), e.on("mousemove", r), e.on("mouseup", o), t.bind(a, "mousemove", r), t.bind(a, "mouseup", i), e.on("remove", function () { t.unbind(a, "mousemove", r), t.unbind(a, "mouseup", i) }) }, Fd = function (e) { var n; Md(e), (n = e).on("drop", function (e) { var t = "undefined" != typeof e.clientX ? n.getDoc().elementFromPoint(e.clientX, e.clientY) : null; (Bd(t) || Bd(n.dom.getContentEditableParent(t))) && e.preventDefault() }) }, Ud = function (e) { return jt.reduce(e, function (e, t) { return e.concat(function (t) { var e = function (e) { return jt.map(e, function (e) { return (e = Fa(e)).node = t, e }) }; if (Ao.isElement(t))return e(t.getClientRects()); if (Ao.isText(t)) { var n = t.ownerDocument.createRange(); return n.setStart(t, 0), n.setEnd(t, t.data.length), e(n.getClientRects()) } }(t)) }, []) }; (Ad = kd || (kd = {}))[Ad.Up = -1] = "Up", Ad[Ad.Down = 1] = "Down"; var zd = function (o, i, a, e, u, t) { var n, s, c = 0, l = [], r = function (e) { var t, n, r; for (r = Ud([e]), -1 === o && (r = r.reverse()), t = 0; t < r.length; t++)if (n = r[t], !a(n, s)) { if (0 < l.length && i(n, jt.last(l)) && c++, n.line = c, u(n))return !0; l.push(n) } }; return (s = jt.last(t.getClientRects())) && (r(n = t.getNode()), function (e, t, n, r) { for (; r = gs(r, e, Ia, t);)if (n(r))return }(o, e, r, n)), l }, Vd = m(zd, kd.Up, Va, Ha), Hd = m(zd, kd.Down, Ha, Va), jd = function (n) { return function (e) { return t = n, e.line > t; var t } }, qd = function (n) { return function (e) { return t = n, e.line === t; var t } }, $d = Ao.isContentEditableFalse, Wd = gs, Kd = function (e, t) { return Math.abs(e.left - t) }, Xd = function (e, t) { return Math.abs(e.right - t) }, Yd = function (e, t) { return e >= t.left && e <= t.right }, Gd = function (e, o) { return jt.reduce(e, function (e, t) { var n, r; return n = Math.min(Kd(e, o), Xd(e, o)), r = Math.min(Kd(t, o), Xd(t, o)), Yd(o, t) ? t : Yd(o, e) ? e : r === n && $d(t.node) ? t : r < n ? t : e }) }, Jd = function (e, t, n, r) { for (; r = Wd(r, e, Ia, t);)if (n(r))return }, Qd = function (e, t, n) { var r, o, i, a, u, s, c, l, f = Ud((o = e, jt.filter(jt.toArray(o.getElementsByTagName("*")), ts))), d = jt.filter(f, function (e) { return n >= e.top && n <= e.bottom }); return (r = Gd(d, t)) && (r = Gd((u = e, l = function (t, e) { var n; return n = jt.filter(Ud([e]), function (e) { return !t(e, s) }), c = c.concat(n), 0 === n.length }, (c = []).push(s = r), Jd(kd.Up, u, m(l, Va), s.node), Jd(kd.Down, u, m(l, Ha), s.node), c), t)) && ts(r.node) ? (a = t, { node: (i = r).node, before: Kd(i, a) < Xd(i, a) }) : null }, Zd = function (i, a, e) { return !e.collapsed && U(e.getClientRects(), function (e, t) { return e || (o = a, (r = i) >= (n = t).left && r <= n.right && o >= n.top && o <= n.bottom); var n, r, o }, !1) }, em = Ao.isContentEditableTrue, tm = Ao.isContentEditableFalse, nm = function (e, t, n, r, o) { return t._selectionOverrides.showCaret(e, n, r, o) }, rm = function (e, t) { var n, r; return e.fire("BeforeObjectSelected", {target: t}).isDefaultPrevented() ? null : ((r = (n = t).ownerDocument.createRange()).selectNode(n), r) }, om = function (e, t, n) { var r = ws(1, e.getBody(), t), o = hu.fromRangeStart(r), i = o.getNode(); if (tm(i))return nm(1, e, i, !o.isAtEnd(), !1); var a = o.getNode(!0); if (tm(a))return nm(1, e, a, !1, !1); var u = e.dom.getParent(o.getNode(), function (e) { return tm(e) || em(e) }); return tm(u) ? nm(1, e, u, !1, n) : null }, im = function (e, t, n) { if (!t || !t.collapsed)return t; var r = om(e, t, n); return r || t }, am = function (t) { var e = _i(function () { if (!t.removed && t.getBody().contains(document.activeElement) && t.selection.getRng().collapsed) { var e = im(t, t.selection.getRng(), !1); t.selection.setRng(e) } }, 0); t.on("focus", function () { e.throttle() }), t.on("blur", function () { e.cancel() }) }, um = { BACKSPACE: 8, DELETE: 46, DOWN: 40, ENTER: 13, LEFT: 37, RIGHT: 39, SPACEBAR: 32, TAB: 9, UP: 38, modifierPressed: function (e) { return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e) }, metaKeyPressed: function (e) { return fe.mac ? e.metaKey : e.ctrlKey && !e.altKey } }, sm = Ao.isContentEditableTrue, cm = Ao.isContentEditableFalse, lm = As, fm = ks, dm = function (e, t) { for (var n = e.getBody(); t && t !== n;) { if (sm(t) || cm(t))return t; t = t.parentNode } return null }, mm = function (g) { var p, e, t, a = g.getBody(), o = Zu(g.getBody(), function (e) { return g.dom.isBlock(e) }, function () { return Zl(g) }), h = "sel-" + g.dom.uniqueId(), u = function (e) { e && g.selection.setRng(e) }, s = function () { return g.selection.getRng() }, v = function (e, t, n, r) { return void 0 === r && (r = !0), g.fire("ShowCaret", { target: t, direction: e, before: n }).isDefaultPrevented() ? null : (r && g.selection.scrollIntoView(t, -1 === e), o.show(n, t)) }, b = function (e, t) { return t = ws(e, a, t), -1 === e ? hu.fromRangeStart(t) : hu.fromRangeEnd(t) }, n = function (e) { return va(e) || wa(e) || Na(e) }, y = function (e) { return n(e.startContainer) || n(e.endContainer) }, c = function (e, t) { var n, r, o, i, a, u, s, c, l, f, d = g.$, m = g.dom; if (!e)return null; if (e.collapsed) { if (!y(e))if (!1 === t) { if (c = b(-1, e), ts(c.getNode(!0)))return v(-1, c.getNode(!0), !1, !1); if (ts(c.getNode()))return v(-1, c.getNode(), !c.isAtEnd(), !1) } else { if (c = b(1, e), ts(c.getNode()))return v(1, c.getNode(), !c.isAtEnd(), !1); if (ts(c.getNode(!0)))return v(1, c.getNode(!0), !1, !1) } return null } return i = e.startContainer, a = e.startOffset, u = e.endOffset, 3 === i.nodeType && 0 === a && cm(i.parentNode) && (i = i.parentNode, a = m.nodeIndex(i), i = i.parentNode), 1 !== i.nodeType ? null : (u === a + 1 && (n = i.childNodes[a]), cm(n) ? (l = f = n.cloneNode(!0), (s = g.fire("ObjectSelected", { target: n, targetClone: l })).isDefaultPrevented() ? null : (r = Wi(nr.fromDom(g.getBody()), "#" + h).fold(function () { return d([]) }, function (e) { return d([e.dom()]) }), l = s.targetClone, 0 === r.length && (r = d('
    ').attr("id", h)).appendTo(g.getBody()), e = g.dom.createRng(), l === f && fe.ie ? (r.empty().append('

    \xa0

    ').append(l), e.setStartAfter(r[0].firstChild.firstChild), e.setEndAfter(l)) : (r.empty().append("\xa0").append(l).append("\xa0"), e.setStart(r[0].firstChild, 1), e.setEnd(r[0].lastChild, 0)), r.css({top: m.getPos(n, g.getBody()).y}), r[0].focus(), (o = g.selection.getSel()).removeAllRanges(), o.addRange(e), M(zi(nr.fromDom(g.getBody()), "*[data-mce-selected]"), function (e) { Cr(e, "data-mce-selected") }), n.setAttribute("data-mce-selected", "1"), p = n, C(), e)) : null) }, l = function () { p && (p.removeAttribute("data-mce-selected"), Wi(nr.fromDom(g.getBody()), "#" + h).each(Di), p = null), Wi(nr.fromDom(g.getBody()), "#" + h).each(Di), p = null }, C = function () { o.hide() }; return fe.ceFalse && (function () { g.on("mouseup", function (e) { var t = s(); t.collapsed && Pf(g, e.clientX, e.clientY) && u(om(g, t, !1)) }), g.on("click", function (e) { var t; (t = dm(g, e.target)) && (cm(t) && (e.preventDefault(), g.focus()), sm(t) && g.dom.isChildOf(t, g.selection.getNode()) && l()) }), g.on("blur NewBlock", function () { l() }), g.on("ResizeWindow FullscreenStateChanged", function () { return o.reposition() }); var n, r, i = function (e, t) { var n, r, o = g.dom.getParent(e, g.dom.isBlock), i = g.dom.getParent(t, g.dom.isBlock); return !(!o || !g.dom.isChildOf(o, i) || !1 !== cm(dm(g, o))) || o && (n = o, r = i, !(g.dom.getParent(n, g.dom.isBlock) === g.dom.getParent(r, g.dom.isBlock))) && function (e) { var t = $s(e); if (!e.firstChild)return !1; var n = hu.before(e.firstChild), r = t.next(n); return r && !fm(r) && !lm(r) }(o) }; r = !1, (n = g).on("touchstart", function () { r = !1 }), n.on("touchmove", function () { r = !0 }), n.on("touchend", function (e) { var t = dm(n, e.target); cm(t) && (r || (e.preventDefault(), c(rm(n, t)))) }), g.on("mousedown", function (e) { var t, n = e.target; if ((n === a || "HTML" === n.nodeName || g.dom.isChildOf(n, a)) && !1 !== Pf(g, e.clientX, e.clientY))if (t = dm(g, n))cm(t) ? (e.preventDefault(), c(rm(g, t))) : (l(), sm(t) && e.shiftKey || Zd(e.clientX, e.clientY, g.selection.getRng()) || (C(), g.selection.placeCaretAt(e.clientX, e.clientY))); else if (!1 === ts(n)) { l(), C(); var r = Qd(a, e.clientX, e.clientY); if (r && !i(e.target, r.node)) { e.preventDefault(); var o = v(1, r.node, r.before, !1); g.getBody().focus(), u(o) } } }), g.on("keypress", function (e) { um.modifierPressed(e) || (e.keyCode, cm(g.selection.getNode()) && e.preventDefault()) }), g.on("getSelectionRange", function (e) { var t = e.range; if (p) { if (!p.parentNode)return void(p = null); (t = t.cloneRange()).selectNode(p), e.range = t } }), g.on("setSelectionRange", function (e) { var t; (t = c(e.range, e.forward)) && (e.range = t) }), g.on("AfterSetSelectionRange", function (e) { var t, n = e.range; y(n) || "mcepastebin" === n.startContainer.parentNode.id || C(), t = n.startContainer.parentNode, g.dom.hasClass(t, "mce-offscreen-selection") || l() }), g.on("copy", function (e) { var t, n = e.clipboardData; if (!e.isDefaultPrevented() && e.clipboardData && !fe.ie) { var r = (t = g.dom.get(h)) ? t.getElementsByTagName("*")[0] : t; r && (e.preventDefault(), n.clearData(), n.setData("text/html", r.outerHTML), n.setData("text/plain", r.outerText)) } }), Fd(g), am(g) }(), e = g.contentStyles, t = ".mce-content-body", e.push(o.getCss()), e.push(t + " .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}" + t + " *[contentEditable=false] {cursor: default;}" + t + " *[contentEditable=true] {cursor: text;}")), { showCaret: v, showBlockCaretContainer: function (e) { e.hasAttribute("data-mce-caret") && (Ea(e), u(s()), g.selection.scrollIntoView(e[0])) }, hideFakeCaret: C, destroy: function () { o.destroy(), p = null } } }, gm = 0, pm = 2, hm = 1, vm = function (g, p) { var e = g.length + p.length + 2, h = new Array(e), v = new Array(e), c = function (e, t, n, r, o) { var i = l(e, t, n, r); if (null === i || i.start === t && i.diag === t - r || i.end === e && i.diag === e - n)for (var a = e, u = n; a < t || u < r;)a < t && u < r && g[a] === p[u] ? (o.push([0, g[a]]), ++a, ++u) : r - n < t - e ? (o.push([2, g[a]]), ++a) : (o.push([1, p[u]]), ++u); else { c(e, i.start, n, i.start - i.diag, o); for (var s = i.start; s < i.end; ++s)o.push([0, g[s]]); c(i.end, t, i.end - i.diag, r, o) } }, b = function (e, t, n, r) { for (var o = e; o - t < r && o < n && g[o] === p[o - t];)++o; return {start: e, end: o, diag: t} }, l = function (e, t, n, r) { var o = t - e, i = r - n; if (0 === o || 0 === i)return null; var a, u, s, c, l, f = o - i, d = i + o, m = (d % 2 == 0 ? d : d + 1) / 2; for (h[1 + m] = e, v[1 + m] = t + 1, a = 0; a <= m; ++a) { for (u = -a; u <= a; u += 2) { for (s = u + m, u === -a || u !== a && h[s - 1] < h[s + 1] ? h[s] = h[s + 1] : h[s] = h[s - 1] + 1, l = (c = h[s]) - e + n - u; c < t && l < r && g[c] === p[l];)h[s] = ++c, ++l; if (f % 2 != 0 && f - a <= u && u <= f + a && v[s - f] <= h[s])return b(v[s - f], u + e - n, t, r) } for (u = f - a; u <= f + a; u += 2) { for (s = u + m - f, u === f - a || u !== f + a && v[s + 1] <= v[s - 1] ? v[s] = v[s + 1] - 1 : v[s] = v[s - 1], l = (c = v[s] - 1) - e + n - u; e <= c && n <= l && g[c] === p[l];)v[s] = c--, l--; if (f % 2 == 0 && -a <= u && u <= a && v[s] <= h[s + f])return b(v[s], u + e - n, t, r) } } }, t = []; return c(0, g.length, 0, p.length, t), t }, bm = function (e) { return Ao.isElement(e) ? e.outerHTML : Ao.isText(e) ? Ho.encodeRaw(e.data, !1) : Ao.isComment(e) ? "\x3c!--" + e.data + "--\x3e" : "" }, ym = function (e, t, n) { var r = function (e) { var t, n, r; for (r = document.createElement("div"), t = document.createDocumentFragment(), e && (r.innerHTML = e); n = r.firstChild;)t.appendChild(n); return t }(t); if (e.hasChildNodes() && n < e.childNodes.length) { var o = e.childNodes[n]; o.parentNode.insertBefore(r, o) } else e.appendChild(r) }, Cm = function (e) { return jt.filter(jt.map(e.childNodes, bm), function (e) { return 0 < e.length }) }, xm = function (e, t) { var n, r, o, i = jt.map(t.childNodes, bm); return n = vm(i, e), r = t, o = 0, jt.each(n, function (e) { e[0] === gm ? o++ : e[0] === hm ? (ym(r, e[1], o), o++) : e[0] === pm && function (e, t) { if (e.hasChildNodes() && t < e.childNodes.length) { var n = e.childNodes[t]; n.parentNode.removeChild(n) } }(r, o) }), t }, wm = yi(A.none()), Nm = function (e) { return {type: "fragmented", fragments: e, content: "", bookmark: null, beforeBookmark: null} }, Em = function (e) { return {type: "complete", fragments: null, content: e, bookmark: null, beforeBookmark: null} }, Sm = function (e) { return "fragmented" === e.type ? e.fragments.join("") : e.content }, Tm = function (e) { var t = nr.fromTag("body", wm.get().getOrThunk(function () { var e = document.implementation.createHTMLDocument("undo"); return wm.set(A.some(e)), e })); return ia(t, Sm(e)), M(zi(t, "*[data-mce-bogus]"), Bi), t.dom().innerHTML }, km = function (n) { var e, t, r; return e = Cm(n.getBody()), -1 !== (t = (r = Y(e, function (e) { var t = Kc.trimInternal(n.serializer, e); return 0 < t.length ? [t] : [] })).join("")).indexOf("") ? Nm(r) : Em(t) }, Am = function (e, t, n) { "fragmented" === t.type ? xm(t.fragments, e.getBody()) : e.setContent(t.content, {format: "raw"}), e.selection.moveToBookmark(n ? t.beforeBookmark : t.bookmark) }, Rm = function (e, t) { return !(!e || !t) && (r = t, Sm(e) === Sm(r) || (n = t, Tm(e) === Tm(n))); var n, r }; function Dm(u) { var s, r, o = this, c = 0, l = [], t = 0, f = function () { return 0 === t }, i = function (e) { f() && (o.typing = e) }, d = function (e) { u.setDirty(e) }, a = function (e) { i(!1), o.add({}, e) }, n = function () { o.typing && (i(!1), o.add()) }; return u.on("init", function () { o.add() }), u.on("BeforeExecCommand", function (e) { var t = e.command; "Undo" !== t && "Redo" !== t && "mceRepaint" !== t && (n(), o.beforeChange()) }), u.on("ExecCommand", function (e) { var t = e.command; "Undo" !== t && "Redo" !== t && "mceRepaint" !== t && a(e) }), u.on("ObjectResizeStart Cut", function () { o.beforeChange() }), u.on("SaveContent ObjectResized blur", a), u.on("DragEnd", a), u.on("KeyUp", function (e) { var t = e.keyCode; e.isDefaultPrevented() || ((33 <= t && t <= 36 || 37 <= t && t <= 40 || 45 === t || e.ctrlKey) && (a(), u.nodeChanged()), 46 !== t && 8 !== t || u.nodeChanged(), r && o.typing && !1 === Rm(km(u), l[0]) && (!1 === u.isDirty() && (d(!0), u.fire("change", { level: l[0], lastLevel: null })), u.fire("TypingUndo"), r = !1, u.nodeChanged())) }), u.on("KeyDown", function (e) { var t = e.keyCode; if (!e.isDefaultPrevented())if (33 <= t && t <= 36 || 37 <= t && t <= 40 || 45 === t)o.typing && a(e); else { var n = e.ctrlKey && !e.altKey || e.metaKey; !(t < 16 || 20 < t) || 224 === t || 91 === t || o.typing || n || (o.beforeChange(), i(!0), o.add({}, e), r = !0) } }), u.on("MouseDown", function (e) { o.typing && a(e) }), u.on("input", function (e) { var t; e.inputType && ("insertReplacementText" === e.inputType || "insertText" === (t = e).inputType && null === t.data) && a(e) }), u.addShortcut("meta+z", "", "Undo"), u.addShortcut("meta+y,meta+shift+z", "", "Redo"), u.on("AddUndo Undo Redo ClearUndos", function (e) { e.isDefaultPrevented() || u.nodeChanged() }), o = { data: l, typing: !1, beforeChange: function () { f() && (s = Iu.getUndoBookmark(u.selection)) }, add: function (e, t) { var n, r, o, i = u.settings; if (o = km(u), e = e || {}, e = Xt.extend(e, o), !1 === f() || u.removed)return null; if (r = l[c], u.fire("BeforeAddUndo", { level: e, lastLevel: r, originalEvent: t }).isDefaultPrevented())return null; if (r && Rm(r, e))return null; if (l[c] && (l[c].beforeBookmark = s), i.custom_undo_redo_levels && l.length > i.custom_undo_redo_levels) { for (n = 0; n < l.length - 1; n++)l[n] = l[n + 1]; l.length--, c = l.length } e.bookmark = Iu.getUndoBookmark(u.selection), c < l.length - 1 && (l.length = c + 1), l.push(e), c = l.length - 1; var a = {level: e, lastLevel: r, originalEvent: t}; return u.fire("AddUndo", a), 0 < c && (d(!0), u.fire("change", a)), e }, undo: function () { var e; return o.typing && (o.add(), o.typing = !1, i(!1)), 0 < c && (e = l[--c], Am(u, e, !0), d(!0), u.fire("undo", {level: e})), e }, redo: function () { var e; return c < l.length - 1 && (e = l[++c], Am(u, e, !1), d(!0), u.fire("redo", {level: e})), e }, clear: function () { l = [], c = 0, o.typing = !1, o.data = l, u.fire("ClearUndos") }, hasUndo: function () { return 0 < c || o.typing && l[0] && !Rm(km(u), l[0]) }, hasRedo: function () { return c < l.length - 1 && !o.typing }, transact: function (e) { return n(), o.beforeChange(), o.ignore(e), o.add() }, ignore: function (e) { try { t++, e() } finally { t-- } }, extra: function (e, t) { var n, r; o.transact(e) && (r = l[c].bookmark, n = l[c - 1], Am(u, n, !0), o.transact(t) && (l[c - 1].beforeBookmark = r)) } } } var Bm, _m, Om = function (e) { var t = zi(e, "br"), n = F(function (e) { for (var t = [], n = e.dom(); n;)t.push(nr.fromDom(n)), n = n.lastChild; return t }(e).slice(-1), co); t.length === n.length && M(n, Di) }, Pm = function (e) { Ri(e), ki(e, nr.fromHtml('
    ')) }, Lm = function (n) { Vr(n).each(function (t) { Ir(t).each(function (e) { uo(n) && co(t) && uo(e) && Di(t) }) }) }, Im = gc.isEq, Mm = function (e, t, n) { var r = e.formatter.get(n); if (r)for (var o = 0; o < r.length; o++)if (!1 === r[o].inherit && e.dom.is(t, r[o].selector))return !0; return !1 }, Fm = function (t, e, n, r) { var o = t.dom.getRoot(); return e !== o && (e = t.dom.getParent(e, function (e) { return !!Mm(t, e, n) || e.parentNode === o || !!Vm(t, e, n, r, !0) }), Vm(t, e, n, r)) }, Um = function (e, t, n) { return !!Im(t, n.inline) || !!Im(t, n.block) || (n.selector ? 1 === t.nodeType && e.is(t, n.selector) : void 0) }, zm = function (e, t, n, r, o, i) { var a, u, s, c = n[r]; if (n.onmatch)return n.onmatch(t, n, r); if (c)if ("undefined" == typeof c.length) { for (a in c)if (c.hasOwnProperty(a)) { if (u = "attributes" === r ? e.getAttrib(t, a) : gc.getStyle(e, t, a), o && !u && !n.exact)return; if ((!o || n.exact) && !Im(u, gc.normalizeStyleValue(e, gc.replaceVars(c[a], i), a)))return } } else for (s = 0; s < c.length; s++)if ("attributes" === r ? e.getAttrib(t, c[s]) : gc.getStyle(e, t, c[s]))return n; return n }, Vm = function (e, t, n, r, o) { var i, a, u, s, c = e.formatter.get(n), l = e.dom; if (c && t)for (a = 0; a < c.length; a++)if (i = c[a], Um(e.dom, t, i) && zm(l, t, i, "attributes", o, r) && zm(l, t, i, "styles", o, r)) { if (s = i.classes)for (u = 0; u < s.length; u++)if (!e.dom.hasClass(t, s[u]))return; return i } }, Hm = { matchNode: Vm, matchName: Um, match: function (e, t, n, r) { var o; return r ? Fm(e, r, t, n) : (r = e.selection.getNode(), !!Fm(e, r, t, n) || !((o = e.selection.getStart()) === r || !Fm(e, o, t, n))) }, matchAll: function (r, o, i) { var e, a = [], u = {}; return e = r.selection.getStart(), r.dom.getParent(e, function (e) { var t, n; for (t = 0; t < o.length; t++)n = o[t], !u[n] && Vm(r, e, n, i) && (u[n] = !0, a.push(n)) }, r.dom.getRoot()), a }, canApply: function (e, t) { var n, r, o, i, a, u = e.formatter.get(t), s = e.dom; if (u)for (n = e.selection.getStart(), r = gc.getParents(s, n), i = u.length - 1; 0 <= i; i--) { if (!(a = u[i].selector) || u[i].defaultBlock)return !0; for (o = r.length - 1; 0 <= o; o--)if (s.is(r[o], a))return !0 } return !1 }, matchesUnInheritedFormatSelector: Mm }, jm = function (e, t) { return e.splitText(t) }, qm = function (e) { var t = e.startContainer, n = e.startOffset, r = e.endContainer, o = e.endOffset; return t === r && Ao.isText(t) ? 0 < n && n < t.nodeValue.length && (t = (r = jm(t, n)).previousSibling, n < o ? (t = r = jm(r, o -= n).previousSibling, o = r.nodeValue.length, n = 0) : o = 0) : (Ao.isText(t) && 0 < n && n < t.nodeValue.length && (t = jm(t, n), n = 0), Ao.isText(r) && 0 < o && o < r.nodeValue.length && (o = (r = jm(r, o).previousSibling).nodeValue.length)), { startContainer: t, startOffset: n, endContainer: r, endOffset: o } }, $m = function (e, t, n) { if (0 !== n) { var r, o, i, a = e.data.slice(t, t + n), u = t + n >= e.data.length, s = 0 === t; e.replaceData(t, n, (o = s, i = u, U((r = a).split(""), function (e, t) { return -1 !== " \f\n\r\t\x0B".indexOf(t) || "\xa0" === t ? e.previousCharIsSpace || "" === e.str && o || e.str.length === r.length - 1 && i ? { previousCharIsSpace: !1, str: e.str + "\xa0" } : {previousCharIsSpace: !0, str: e.str + " "} : {previousCharIsSpace: !1, str: e.str + t} }, {previousCharIsSpace: !1, str: ""}).str)) } }, Wm = function (e, t) { var n, r = e.data.slice(t), o = r.length - (n = r, n.replace(/^\s+/g, "")).length; return $m(e, t, o) }, Km = function (e, t) { var n, r, o, i = nr.fromDom(e), a = nr.fromDom(t); return n = a, r = "pre,code", o = m(_r, i), $i(n, r, o).isSome() }, Xm = function (e, t) { return Oa(t) && !1 === (r = e, o = t, Ao.isText(o) && /^[ \t\r\n]*$/.test(o.data) && !1 === Km(r, o)) || (n = t, Ao.isElement(n) && "A" === n.nodeName && n.hasAttribute("name")) || Ym(t); var n, r, o }, Ym = Ao.hasAttribute("data-mce-bookmark"), Gm = Ao.hasAttribute("data-mce-bogus"), Jm = Ao.hasAttributeValue("data-mce-bogus", "all"), Qm = function (e) { return function (e) { var t, n, r = 0; if (Xm(e, e))return !1; if (!(n = e.firstChild))return !0; t = new to(n, e); do { if (Jm(n))n = t.next(!0); else if (Gm(n))n = t.next(); else if (Ao.isBr(n))r++, n = t.next(); else { if (Xm(e, n))return !1; n = t.next() } } while (n); return r <= 1 }(e.dom()) }, Zm = function (e, t) { return r = e, o = (n = t).container(), i = n.offset(), !1 === hu.isTextPosition(n) && o === r.parentNode && i > hu.before(r).offset() ? hu(t.container(), t.offset() - 1) : t; var n, r, o, i }, eg = function (e) { return Oa(e.previousSibling) ? A.some((t = e.previousSibling, Ao.isText(t) ? hu(t, t.data.length) : hu.after(t))) : e.previousSibling ? ec.lastPositionIn(e.previousSibling) : A.none(); var t }, tg = function (e) { return Oa(e.nextSibling) ? A.some((t = e.nextSibling, Ao.isText(t) ? hu(t, 0) : hu.before(t))) : e.nextSibling ? ec.firstPositionIn(e.nextSibling) : A.none(); var t }, ng = function (r, o) { return eg(o).orThunk(function () { return tg(o) }).orThunk(function () { return e = r, t = o, n = hu.before(t.previousSibling ? t.previousSibling : t.parentNode), ec.prevPosition(e, n).fold(function () { return ec.nextPosition(e, hu.after(t)) }, A.some); var e, t, n }) }, rg = function (n, r) { return tg(r).orThunk(function () { return eg(r) }).orThunk(function () { return e = n, t = r, ec.nextPosition(e, hu.after(t)).fold(function () { return ec.prevPosition(e, hu.before(t)) }, A.some); var e, t }) }, og = function (e, t, n) { return (r = e, o = t, i = n, r ? rg(o, i) : ng(o, i)).map(m(Zm, n)); var r, o, i }, ig = function (t, n, e) { e.fold(function () { t.focus() }, function (e) { t.selection.setRng(e.toRange(), n) }) }, ag = function (e, t) { return t && e.schema.getBlockElements().hasOwnProperty(ar(t)) }, ug = function (e) { if (Qm(e)) { var t = nr.fromHtml('
    '); return Ri(e), ki(e, t), A.some(hu.before(t.dom())) } return A.none() }, sg = function (e, t, l) { var n = Ir(e).filter(function (e) { return Ao.isText(e.dom()) }), r = Mr(e).filter(function (e) { return Ao.isText(e.dom()) }); return Di(e), Ka([n, r, t], function (e, t, n) { var r, o, i, a, u = e.dom(), s = t.dom(), c = u.data.length; return o = s, i = l, a = Kn((r = u).data).length, r.appendData(o.data), Di(nr.fromDom(o)), i && Wm(r, a), n.container() === s ? hu(u, c) : n }).orThunk(function () { return l && (n.each(function (e) { return t = e.dom(), n = e.dom().length, r = t.data.slice(0, n), o = r.length - Kn(r).length, $m(t, n - o, o); var t, n, r, o }), r.each(function (e) { return Wm(e.dom(), 0) })), t }) }, cg = function (t, n, e, r) { void 0 === r && (r = !0); var o, i, a = og(n, t.getBody(), e.dom()), u = ji(e, m(ag, t), (o = t.getBody(), function (e) { return e.dom() === o })), s = sg(e, a, (i = e, pr(t.schema.getTextInlineElements(), ar(i)))); t.dom.isEmpty(t.getBody()) ? (t.setContent(""), t.selection.setCursorLocation()) : u.bind(ug).fold(function () { r && ig(t, n, s) }, function (e) { r && ig(t, n, A.some(e)) }) }, lg = fa, fg = "_mce_caret", dg = function (e) { return 0 < function (e) { for (var t = []; e;) { if (3 === e.nodeType && e.nodeValue !== lg || 1 < e.childNodes.length)return []; 1 === e.nodeType && t.push(e), e = e.firstChild } return t }(e).length }, mg = function (e) { var t; if (e)for (e = (t = new to(e, e)).current(); e; e = t.next())if (3 === e.nodeType)return e; return null }, gg = function (e) { var t = nr.fromTag("span"); return br(t, {id: fg, "data-mce-bogus": "1", "data-mce-type": "format-caret"}), e && ki(t, nr.fromText(lg)), t }, pg = function (e, t, n) { void 0 === n && (n = !0); var r, o = e.dom, i = e.selection; if (dg(t))cg(e, !1, nr.fromDom(t), n); else { var a = i.getRng(), u = o.getParent(t, o.isBlock), s = ((r = mg(t)) && r.nodeValue.charAt(0) === lg && r.deleteData(0, 1), r); a.startContainer === s && 0 < a.startOffset && a.setStart(s, a.startOffset - 1), a.endContainer === s && 0 < a.endOffset && a.setEnd(s, a.endOffset - 1), o.remove(t, !0), u && o.isEmpty(u) && Pm(nr.fromDom(u)), i.setRng(a) } }, hg = function (e, t, n) { void 0 === n && (n = !0); var r = e.dom, o = e.selection; if (t)pg(e, t, n); else if (!(t = Uu(e.getBody(), o.getStart())))for (; t = r.get(fg);)pg(e, t, !1) }, vg = function (e, t, n) { var r = e.dom, o = r.getParent(n, sa.curry(gc.isTextBlock, e)); o && r.isEmpty(o) ? n.parentNode.replaceChild(t, n) : (Om(nr.fromDom(n)), r.isEmpty(n) ? n.parentNode.replaceChild(t, n) : r.insertAfter(t, n)) }, bg = function (e, t) { return e.appendChild(t), t }, yg = function (e, t) { var n, r, o = (n = function (e, t) { return bg(e, t.cloneNode(!1)) }, r = t, function (e, t) { for (var n = e.length - 1; 0 <= n; n--)t(e[n], n, e) }(e, function (e) { r = n(r, e) }), r); return bg(o, o.ownerDocument.createTextNode(lg)) }, Cg = function (i) { i.on("mouseup keydown", function (e) { var t, n, r, o; t = i, n = e.keyCode, r = t.selection, o = t.getBody(), hg(t, null, !1), 8 !== n && 46 !== n || !r.isCollapsed() || r.getStart().innerHTML !== lg || hg(t, Uu(o, r.getStart())), 37 !== n && 39 !== n || hg(t, Uu(o, r.getStart())) }) }, xg = function (e, t) { return e.schema.getTextInlineElements().hasOwnProperty(ar(t)) && !Fu(t.dom()) && !Ao.isBogus(t.dom()) }, wg = {}, Ng = jt.filter, Eg = jt.each; _m = function (e) { var t, n, r = e.selection.getRng(); t = Ao.matchNodeNames("pre"), r.collapsed || (n = e.selection.getSelectedBlocks(), Eg(Ng(Ng(n, t), function (e) { return t(e.previousSibling) && -1 !== jt.indexOf(n, e.previousSibling) }), function (e) { var t, n; t = e.previousSibling, gn(n = e).remove(), gn(t).append("

    ").append(n.childNodes) })) }, wg[Bm = "pre"] || (wg[Bm] = []), wg[Bm].push(_m); var Sg = function (e, t) { Eg(wg[e], function (e) { e(t) }) }, Tg = Xt.each, kg = function (o) { this.compare = function (e, t) { if (e.nodeName !== t.nodeName)return !1; var n = function (n) { var r = {}; return Tg(o.getAttribs(n), function (e) { var t = e.nodeName.toLowerCase(); 0 !== t.indexOf("_") && "style" !== t && 0 !== t.indexOf("data-") && (r[t] = o.getAttrib(n, t)) }), r }, r = function (e, t) { var n, r; for (r in e)if (e.hasOwnProperty(r)) { if (void 0 === (n = t[r]))return !1; if (e[r] !== n)return !1; delete t[r] } for (r in t)if (t.hasOwnProperty(r))return !1; return !0 }; return !(!r(n(e), n(t)) || !r(o.parseStyle(o.getAttrib(e, "style")), o.parseStyle(o.getAttrib(t, "style"))) || lc(e) || lc(t)) } }, Ag = /^(src|href|style)$/, Rg = Xt.each, Dg = gc.isEq, Bg = function (e) { return /^(TH|TD)$/.test(e.nodeName) }, _g = function (e, t, n) { var r, o, i; return r = t[n ? "startContainer" : "endContainer"], o = t[n ? "startOffset" : "endOffset"], Ao.isElement(r) && (i = r.childNodes.length - 1, !n && o && o--, r = r.childNodes[i < o ? i : o]), Ao.isText(r) && n && o >= r.nodeValue.length && (r = new to(r, e.getBody()).next() || r), Ao.isText(r) && !n && 0 === o && (r = new to(r, e.getBody()).prev() || r), r }, Og = function (e, t, n, r) { var o = e.create(n, r); return t.parentNode.insertBefore(o, t), o.appendChild(t), o }, Pg = function (e, t, n, r) { return !(t = gc.getNonWhiteSpaceSibling(t, n, r)) || "BR" === t.nodeName || e.isBlock(t) }, Lg = function (e, n, r, o, i) { var t, a, u, s, c, l, f, d, m, g, p, h, v, b, y = e.dom; if (c = y, !(Dg(l = o, (f = n).inline) || Dg(l, f.block) || (f.selector ? Ao.isElement(l) && c.is(l, f.selector) : void 0) || (s = o, n.links && "A" === s.tagName)))return !1; if ("all" !== n.remove)for (Rg(n.styles, function (e, t) { e = gc.normalizeStyleValue(y, gc.replaceVars(e, r), t), "number" == typeof t && (t = e, i = 0), (n.remove_similar || !i || Dg(gc.getStyle(y, i, t), e)) && y.setStyle(o, t, ""), u = 1 }), u && "" === y.getAttrib(o, "style") && (o.removeAttribute("style"), o.removeAttribute("data-mce-style")), Rg(n.attributes, function (e, t) { var n; if (e = gc.replaceVars(e, r), "number" == typeof t && (t = e, i = 0), !i || Dg(y.getAttrib(i, t), e)) { if ("class" === t && (e = y.getAttrib(o, t)) && (n = "", Rg(e.split(/\s+/), function (e) { /mce\-\w+/.test(e) && (n += (n ? " " : "") + e) }), n))return void y.setAttrib(o, t, n); "class" === t && o.removeAttribute("className"), Ag.test(t) && o.removeAttribute("data-mce-" + t), o.removeAttribute(t) } }), Rg(n.classes, function (e) { e = gc.replaceVars(e, r), i && !y.hasClass(i, e) || y.removeClass(o, e) }), a = y.getAttribs(o), t = 0; t < a.length; t++) { var C = a[t].nodeName; if (0 !== C.indexOf("_") && 0 !== C.indexOf("data-"))return !1 } return "none" !== n.remove ? (d = e, g = n, h = (m = o).parentNode, v = d.dom, b = nl(d), g.block && (b ? h === v.getRoot() && (g.list_block && Dg(m, g.list_block) || Rg(Xt.grep(m.childNodes), function (e) { gc.isValid(d, b, e.nodeName.toLowerCase()) ? p ? p.appendChild(e) : (p = Og(v, e, b), v.setAttribs(p, d.settings.forced_root_block_attrs)) : p = 0 })) : v.isBlock(m) && !v.isBlock(h) && (Pg(v, m, !1) || Pg(v, m.firstChild, !0, 1) || m.insertBefore(v.create("br"), m.firstChild), Pg(v, m, !0) || Pg(v, m.lastChild, !1, 1) || m.appendChild(v.create("br")))), g.selector && g.inline && !Dg(g.inline, m) || v.remove(m, 1), !0) : void 0 }, Ig = Lg, Mg = function (s, c, l, e, f) { var t, n, d = s.formatter.get(c), m = d[0], a = !0, u = s.dom, r = s.selection, i = function (e) { var n, t, r, o, i, a, u = (n = s, t = e, r = c, o = l, i = f, Rg(gc.getParents(n.dom, t.parentNode).reverse(), function (e) { var t; a || "_start" === e.id || "_end" === e.id || (t = Hm.matchNode(n, e, r, o, i)) && !1 !== t.split && (a = e) }), a); return function (e, t, n, r, o, i, a, u) { var s, c, l, f, d, m, g = e.dom; if (n) { for (m = n.parentNode, s = r.parentNode; s && s !== m; s = s.parentNode) { for (c = g.clone(s, !1), d = 0; d < t.length; d++)if (Lg(e, t[d], u, c, c)) { c = 0; break } c && (l && c.appendChild(l), f || (f = c), l = c) } !i || a.mixed && g.isBlock(n) || (r = g.split(n, r)), l && (o.parentNode.insertBefore(l, o), f.appendChild(o)) } return r }(s, d, u, e, e, !0, m, l) }, g = function (e) { var t, n, r, o, i; if (Ao.isElement(e) && u.getContentEditable(e) && (o = a, a = "true" === u.getContentEditable(e), i = !0), t = Xt.grep(e.childNodes), a && !i)for (n = 0, r = d.length; n < r && !Lg(s, d[n], l, e, e); n++); if (m.deep && t.length) { for (n = 0, r = t.length; n < r; n++)g(t[n]); i && (a = o) } }, p = function (e) { var t, n = u.get(e ? "_start" : "_end"), r = n[e ? "firstChild" : "lastChild"]; return lc(t = r) && Ao.isElement(t) && ("_start" === t.id || "_end" === t.id) && (r = r[e ? "firstChild" : "lastChild"]), Ao.isText(r) && 0 === r.data.length && (r = e ? n.previousSibling || n.nextSibling : n.nextSibling || n.previousSibling), u.remove(n, !0), r }, o = function (e) { var t, n, r = e.commonAncestorContainer; if (e = Tc(s, e, d, !0), m.split) { if (e = qm(e), (t = _g(s, e, !0)) !== (n = _g(s, e))) { if (/^(TR|TH|TD)$/.test(t.nodeName) && t.firstChild && (t = "TR" === t.nodeName ? t.firstChild.firstChild || t : t.firstChild || t), r && /^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName) && Bg(n) && n.firstChild && (n = n.firstChild || n), u.isChildOf(t, n) && t !== n && !u.isBlock(n) && !Bg(t) && !Bg(n)) { var o = function (e, t, n, r, o) { var i = (r ? "next" : "previous") + "Sibling", a = e.create(n, o); t.parentNode.insertBefore(a, t); for (var u = [t], s = t; s = s[i];)u.push(s); return u.forEach(function (e) { return a.appendChild(e) }), a }(u, t, "span", !0, {id: "_start", "data-mce-type": "bookmark"}); return i(o), void(t = p(!0)) } t = Og(u, t, "span", {id: "_start", "data-mce-type": "bookmark"}), n = Og(u, n, "span", { id: "_end", "data-mce-type": "bookmark" }), i(t), i(n), t = p(!0), n = p() } else t = n = i(t); e.startContainer = t.parentNode ? t.parentNode : t, e.startOffset = u.nodeIndex(t), e.endContainer = n.parentNode ? n.parentNode : n, e.endOffset = u.nodeIndex(n) + 1 } Ac(u, e, function (e) { Rg(e, function (e) { g(e), Ao.isElement(e) && "underline" === s.dom.getStyle(e, "text-decoration") && e.parentNode && "underline" === gc.getTextDecoration(u, e.parentNode) && Lg(s, { deep: !1, exact: !0, inline: "span", styles: {textDecoration: "underline"} }, null, e) }) }) }; if (e)e.nodeType ? ((n = u.createRng()).setStartBefore(e), n.setEndAfter(e), o(n)) : o(e); else if ("false" !== u.getContentEditable(r.getNode()))r.isCollapsed() && m.inline && !u.select("td[data-mce-selected],th[data-mce-selected]").length ? function (e, t, n, r) { var o, i, a, u, s, c, l, f = e.dom, d = e.selection, m = [], g = d.getRng(); for (o = g.startContainer, i = g.startOffset, 3 === (s = o).nodeType && (i !== o.nodeValue.length && (u = !0), s = s.parentNode); s;) { if (Hm.matchNode(e, s, t, n, r)) { c = s; break } s.nextSibling && (u = !0), m.push(s), s = s.parentNode } if (c)if (u) { a = d.getBookmark(), g.collapse(!0); var p = Tc(e, g, e.formatter.get(t), !0); p = qm(p), e.formatter.remove(t, n, p), d.moveToBookmark(a) } else { l = Uu(e.getBody(), c); var h = gg(!1).dom(), v = yg(m, h); vg(e, h, l || c), pg(e, l, !1), d.setCursorLocation(v, 1), f.isEmpty(c) && f.remove(c) } }(s, c, l, f) : (t = Iu.getPersistentBookmark(s.selection, !0), o(r.getRng()), r.moveToBookmark(t), m.inline && Hm.match(s, c, l, r.getStart()) && gc.moveStart(u, r, r.getRng()), s.nodeChanged()); else { e = r.getNode(); for (var h = 0, v = d.length; h < v && (!d[h].ceFalseOverride || !Lg(s, d[h], l, e, e)); h++); } }, Fg = Xt.each, Ug = function (e) { return e && 1 === e.nodeType && !lc(e) && !Fu(e) && !Ao.isBogus(e) }, zg = function (e, t) { var n; for (n = e; n; n = n[t]) { if (3 === n.nodeType && 0 !== n.nodeValue.length)return e; if (1 === n.nodeType && !lc(n))return n } return e }, Vg = function (e, t, n) { var r, o, i = new kg(e); if (t && n && (t = zg(t, "previousSibling"), n = zg(n, "nextSibling"), i.compare(t, n))) { for (r = t.nextSibling; r && r !== n;)r = (o = r).nextSibling, t.appendChild(o); return e.remove(n), Xt.each(Xt.grep(n.childNodes), function (e) { t.appendChild(e) }), t } return n }, Hg = function (e, t, n) { Fg(e.childNodes, function (e) { Ug(e) && (t(e) && n(e), e.hasChildNodes() && Hg(e, t, n)) }) }, jg = function (n, e) { return m(function (e, t) { return !(!t || !gc.getStyle(n, t, e)) }, e) }, qg = function (r, e, t) { return m(function (e, t, n) { r.setStyle(n, e, t), "" === n.getAttribute("style") && n.removeAttribute("style"), $g(r, n) }, e, t) }, $g = function (e, t) { "SPAN" === t.nodeName && 0 === e.getAttribs(t).length && e.remove(t, !0) }, Wg = function (e, t) { var n; 1 === t.nodeType && t.parentNode && 1 === t.parentNode.nodeType && (n = gc.getTextDecoration(e, t.parentNode), e.getStyle(t, "color") && n ? e.setStyle(t, "text-decoration", n) : e.getStyle(t, "text-decoration") === n && e.setStyle(t, "text-decoration", null)) }, Kg = function (n, e, r, o) { Fg(e, function (t) { Fg(n.dom.select(t.inline, o), function (e) { Ug(e) && Ig(n, t, r, e, t.exact ? e : null) }), function (r, e, t) { if (e.clear_child_styles) { var n = e.links ? "*:not(a)" : "*"; Fg(r.select(n, t), function (n) { Ug(n) && Fg(e.styles, function (e, t) { r.setStyle(n, t, "") }) }) } }(n.dom, t, o) }) }, Xg = function (e, t, n, r) { (t.styles.color || t.styles.textDecoration) && (Xt.walk(r, m(Wg, e), "childNodes"), Wg(e, r)) }, Yg = function (e, t, n, r) { t.styles && t.styles.backgroundColor && Hg(r, jg(e, "fontSize"), qg(e, "backgroundColor", gc.replaceVars(t.styles.backgroundColor, n))) }, Gg = function (e, t, n, r) { "sub" !== t.inline && "sup" !== t.inline || (Hg(r, jg(e, "fontSize"), qg(e, "fontSize", "")), e.remove(e.select("sup" === t.inline ? "sub" : "sup", r), !0)) }, Jg = function (e, t, n, r) { r && !1 !== t.merge_siblings && (r = Vg(e, gc.getNonWhiteSpaceSibling(r), r), r = Vg(e, r, gc.getNonWhiteSpaceSibling(r, !0))) }, Qg = function (t, n, r, o, i) { Hm.matchNode(t, i.parentNode, r, o) && Ig(t, n, o, i) || n.merge_with_parents && t.dom.getParent(i.parentNode, function (e) { if (Hm.matchNode(t, e, r, o))return Ig(t, n, o, i), !0 }) }, Zg = function (a) { var u = hu.fromRangeStart(a), s = hu.fromRangeEnd(a), c = a.commonAncestorContainer; return ec.fromPosition(!1, c, s).map(function (e) { return !hs(u, s, c) && hs(u, e, c) ? (t = u.container(), n = u.offset(), r = e.container(), o = e.offset(), (i = document.createRange()).setStart(t, n), i.setEnd(r, o), i) : a; var t, n, r, o, i }).getOr(a) }, ep = function (e) { return e.collapsed ? e : Zg(e) }, tp = Xt.each, np = function (g, p, h, r) { var e, t, v = g.formatter.get(p), b = v[0], o = !r && g.selection.isCollapsed(), i = g.dom, n = g.selection, y = function (n, e) { if (e = e || b, n) { if (e.onformat && e.onformat(n, e, h, r), tp(e.styles, function (e, t) { i.setStyle(n, t, gc.replaceVars(e, h)) }), e.styles) { var t = i.getAttrib(n, "style"); t && n.setAttribute("data-mce-style", t) } tp(e.attributes, function (e, t) { i.setAttrib(n, t, gc.replaceVars(e, h)) }), tp(e.classes, function (e) { e = gc.replaceVars(e, h), i.hasClass(n, e) || i.addClass(n, e) }) } }, C = function (e, t) { var n = !1; return !!b.selector && (tp(e, function (e) { if (!("collapsed"in e && e.collapsed !== o))return i.is(t, e.selector) && !Fu(t) ? (y(t, e), !(n = !0)) : void 0 }), n) }, a = function (s, e, t, c) { var l, f, d = [], m = !0; l = b.inline || b.block, f = s.create(l), y(f), Ac(s, e, function (e) { var a, u = function (e) { var t, n, r, o; if (o = m, t = e.nodeName.toLowerCase(), n = e.parentNode.nodeName.toLowerCase(), 1 === e.nodeType && s.getContentEditable(e) && (o = m, m = "true" === s.getContentEditable(e), r = !0), gc.isEq(t, "br"))return a = 0, void(b.block && s.remove(e)); if (b.wrapper && Hm.matchNode(g, e, p, h))a = 0; else { if (m && !r && b.block && !b.wrapper && gc.isTextBlock(g, t) && gc.isValid(g, n, l))return e = s.rename(e, l), y(e), d.push(e), void(a = 0); if (b.selector) { var i = C(v, e); if (!b.inline || i)return void(a = 0) } !m || r || !gc.isValid(g, l, t) || !gc.isValid(g, n, l) || !c && 3 === e.nodeType && 1 === e.nodeValue.length && 65279 === e.nodeValue.charCodeAt(0) || Fu(e) || b.inline && s.isBlock(e) ? (a = 0, tp(Xt.grep(e.childNodes), u), r && (m = o), a = 0) : (a || (a = s.clone(f, !1), e.parentNode.insertBefore(a, e), d.push(a)), a.appendChild(e)) } }; tp(e, u) }), !0 === b.links && tp(d, function (e) { var t = function (e) { "A" === e.nodeName && y(e, b), tp(Xt.grep(e.childNodes), t) }; t(e) }), tp(d, function (e) { var t, n, r, o, i, a = function (e) { var n = !1; return tp(e.childNodes, function (e) { if ((t = e) && 1 === t.nodeType && !lc(t) && !Fu(t) && !Ao.isBogus(t))return n = e, !1; var t }), n }; n = 0, tp(e.childNodes, function (e) { gc.isWhiteSpaceNode(e) || lc(e) || n++ }), t = n, !(1 < d.length) && s.isBlock(e) || 0 !== t ? (b.inline || b.wrapper) && (b.exact || 1 !== t || ((o = a(r = e)) && !lc(o) && Hm.matchName(s, o, b) && (i = s.clone(o, !1), y(i), s.replace(i, r, !0), s.remove(o, 1)), e = i || r), Kg(g, v, h, e), Qg(g, b, p, h, e), Yg(s, b, h, e), Gg(s, b, h, e), Jg(s, b, h, e)) : s.remove(e, 1) }) }; if ("false" !== i.getContentEditable(n.getNode())) { if (b) { if (r)r.nodeType ? C(v, r) || ((t = i.createRng()).setStartBefore(r), t.setEndAfter(r), a(i, Tc(g, t, v), 0, !0)) : a(i, r, 0, !0); else if (o && b.inline && !i.select("td[data-mce-selected],th[data-mce-selected]").length)!function (e, t, n) { var r, o, i, a, u, s, c = e.selection; a = (r = c.getRng(!0)).startOffset, s = r.startContainer.nodeValue, (o = Uu(e.getBody(), c.getStart())) && (i = mg(o)); var l, f, d = /[^\s\u00a0\u00ad\u200b\ufeff]/; s && 0 < a && a < s.length && d.test(s.charAt(a)) && d.test(s.charAt(a - 1)) ? (u = c.getBookmark(), r.collapse(!0), r = Tc(e, r, e.formatter.get(t)), r = qm(r), e.formatter.apply(t, n, r), c.moveToBookmark(u)) : (o && i.nodeValue === lg || (l = e.getDoc(), f = gg(!0).dom(), i = (o = l.importNode(f, !0)).firstChild, r.insertNode(o), a = 1), e.formatter.apply(t, n, o), c.setCursorLocation(i, a)) }(g, p, h); else { var u = g.selection.getNode(); g.settings.forced_root_block || !v[0].defaultBlock || i.getParent(u, i.isBlock) || np(g, v[0].defaultBlock), g.selection.setRng(ep(g.selection.getRng())), e = Iu.getPersistentBookmark(g.selection, !0), a(i, Tc(g, n.getRng(), v)), b.styles && Xg(i, b, h, u), n.moveToBookmark(e), gc.moveStart(i, n, n.getRng()), g.nodeChanged() } Sg(p, g) } } else { r = n.getNode(); for (var s = 0, c = v.length; s < c; s++)if (v[s].ceFalseOverride && i.is(r, v[s].selector))return void y(r, v[s]) } }, rp = {applyFormat: np}, op = Xt.each, ip = function (e, t, n, r, o) { var i, a, u, s, c, l, f, d; null === t.get() && (a = e, u = {}, (i = t).set({}), a.on("NodeChange", function (n) { var r = gc.getParents(a.dom, n.element), o = {}; r = Xt.grep(r, function (e) { return 1 === e.nodeType && !e.getAttribute("data-mce-bogus") }), op(i.get(), function (e, n) { op(r, function (t) { return a.formatter.matchNode(t, n, {}, e.similar) ? (u[n] || (op(e, function (e) { e(!0, {node: t, format: n, parents: r}) }), u[n] = e), o[n] = e, !1) : !Hm.matchesUnInheritedFormatSelector(a, t, n) && void 0 }) }), op(u, function (e, t) { o[t] || (delete u[t], op(e, function (e) { e(!1, {node: n.element, format: t, parents: r}) })) }) })), c = n, l = r, f = o, d = (s = t).get(), op(c.split(","), function (e) { d[e] || (d[e] = [], d[e].similar = f), d[e].push(l) }), s.set(d) }, ap = { get: function (r) { var t = { valigntop: [{selector: "td,th", styles: {verticalAlign: "top"}}], valignmiddle: [{selector: "td,th", styles: {verticalAlign: "middle"}}], valignbottom: [{selector: "td,th", styles: {verticalAlign: "bottom"}}], alignleft: [{ selector: "figure.image", collapsed: !1, classes: "align-left", ceFalseOverride: !0, preview: "font-family font-size" }, { selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: {textAlign: "left"}, inherit: !1, preview: !1, defaultBlock: "div" }, {selector: "img,table", collapsed: !1, styles: {"float": "left"}, preview: "font-family font-size"}], aligncenter: [{ selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: {textAlign: "center"}, inherit: !1, preview: "font-family font-size", defaultBlock: "div" }, { selector: "figure.image", collapsed: !1, classes: "align-center", ceFalseOverride: !0, preview: "font-family font-size" }, { selector: "img", collapsed: !1, styles: {display: "block", marginLeft: "auto", marginRight: "auto"}, preview: !1 }, { selector: "table", collapsed: !1, styles: {marginLeft: "auto", marginRight: "auto"}, preview: "font-family font-size" }], alignright: [{ selector: "figure.image", collapsed: !1, classes: "align-right", ceFalseOverride: !0, preview: "font-family font-size" }, { selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: {textAlign: "right"}, inherit: !1, preview: "font-family font-size", defaultBlock: "div" }, { selector: "img,table", collapsed: !1, styles: {"float": "right"}, preview: "font-family font-size" }], alignjustify: [{ selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: {textAlign: "justify"}, inherit: !1, defaultBlock: "div", preview: "font-family font-size" }], bold: [{inline: "strong", remove: "all"}, {inline: "span", styles: {fontWeight: "bold"}}, { inline: "b", remove: "all" }], italic: [{inline: "em", remove: "all"}, {inline: "span", styles: {fontStyle: "italic"}}, { inline: "i", remove: "all" }], underline: [{inline: "span", styles: {textDecoration: "underline"}, exact: !0}, { inline: "u", remove: "all" }], strikethrough: [{inline: "span", styles: {textDecoration: "line-through"}, exact: !0}, { inline: "strike", remove: "all" }], forecolor: { inline: "span", styles: {color: "%value"}, links: !0, remove_similar: !0, clear_child_styles: !0 }, hilitecolor: { inline: "span", styles: {backgroundColor: "%value"}, links: !0, remove_similar: !0, clear_child_styles: !0 }, fontname: {inline: "span", toggle: !1, styles: {fontFamily: "%value"}, clear_child_styles: !0}, fontsize: {inline: "span", toggle: !1, styles: {fontSize: "%value"}, clear_child_styles: !0}, fontsize_class: {inline: "span", attributes: {"class": "%value"}}, blockquote: {block: "blockquote", wrapper: !0, remove: "all"}, subscript: {inline: "sub"}, superscript: {inline: "sup"}, code: {inline: "code"}, link: { inline: "a", selector: "a", remove: "all", split: !0, deep: !0, onmatch: function () { return !0 }, onformat: function (n, e, t) { Xt.each(t, function (e, t) { r.setAttrib(n, t, e) }) } }, removeformat: [{ selector: "b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins", remove: "all", split: !0, expand: !1, block_expand: !0, deep: !0 }, { selector: "span", attributes: ["style", "class"], remove: "empty", split: !0, expand: !1, deep: !0 }, {selector: "*", attributes: ["style", "class"], split: !1, expand: !1, deep: !0}] }; return Xt.each("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/), function (e) { t[e] = {block: e, remove: "all"} }), t } }, up = Xt.each, sp = di.DOM, cp = function (e, t) { var n, o, r, m = t && t.schema || Zo({}), g = function (e) { var t, n, r; return o = "string" == typeof e ? { name: e, classes: [], attrs: {} } : e, t = sp.create(o.name), n = t, (r = o).classes.length && sp.addClass(n, r.classes.join(" ")), sp.setAttribs(n, r.attrs), t }, p = function (n, e, t) { var r, o, i, a, u, s, c, l, f = 0 < e.length && e[0], d = f && f.name; if (u = d, s = "string" != typeof(a = n) ? a.nodeName.toLowerCase() : a, c = m.getElementRule(s), i = !(!(l = c && c.parentsRequired) || !l.length) && (u && -1 !== Xt.inArray(l, u) ? u : l[0]))d === i ? (o = e[0], e = e.slice(1)) : o = i; else if (f)o = e[0], e = e.slice(1); else if (!t)return n; return o && (r = g(o)).appendChild(n), t && (r || (r = sp.create("div")).appendChild(n), Xt.each(t, function (e) { var t = g(e); r.insertBefore(t, n) })), p(r, e, o && o.siblings) }; return e && e.length ? (o = e[0], n = g(o), (r = sp.create("div")).appendChild(p(n, e.slice(1), o.siblings)), r) : "" }, lp = function (e) { var t, a = {classes: [], attrs: {}}; return "*" !== (e = a.selector = Xt.trim(e)) && (t = e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g, function (e, t, n, r, o) { switch (t) { case"#": a.attrs.id = n; break; case".": a.classes.push(n); break; case":": -1 !== Xt.inArray("checked disabled enabled read-only required".split(" "), n) && (a.attrs[n] = n) } if ("[" === r) { var i = o.match(/([\w\-]+)(?:\=\"([^\"]+))?/); i && (a.attrs[i[1]] = i[2]) } return "" })), a.name = t || "div", a }, fp = function (e) { return e && "string" == typeof e ? (e = (e = e.split(/\s*,\s*/)[0]).replace(/\s*(~\+|~|\+|>)\s*/g, "$1"), Xt.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/), function (e) { var t = Xt.map(e.split(/(?:~\+|~|\+)/), lp), n = t.pop(); return t.length && (n.siblings = t), n }).reverse()) : [] }, dp = function (n, e) { var t, r, o, i, a, u, s = ""; if (!1 === (u = n.settings.preview_styles))return ""; "string" != typeof u && (u = "font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"); var c = function (e) { return e.replace(/%(\w+)/g, "") }; if ("string" == typeof e) { if (!(e = n.formatter.get(e)))return; e = e[0] } return "preview"in e && !1 === (u = e.preview) ? "" : (t = e.block || e.inline || "span", r = (i = fp(e.selector)).length ? (i[0].name || (i[0].name = t), t = e.selector, cp(i, n)) : cp([t], n), o = sp.select(t, r)[0] || r.firstChild, up(e.styles, function (e, t) { (e = c(e)) && sp.setStyle(o, t, e) }), up(e.attributes, function (e, t) { (e = c(e)) && sp.setAttrib(o, t, e) }), up(e.classes, function (e) { e = c(e), sp.hasClass(o, e) || sp.addClass(o, e) }), n.fire("PreviewFormats"), sp.setStyles(r, { position: "absolute", left: -65535 }), n.getBody().appendChild(r), a = sp.getStyle(n.getBody(), "fontSize", !0), a = /px$/.test(a) ? parseInt(a, 10) : 0, up(u.split(" "), function (e) { var t = sp.getStyle(o, e, !0); if (!("background-color" === e && /transparent|rgba\s*\([^)]+,\s*0\)/.test(t) && (t = sp.getStyle(n.getBody(), e, !0), "#ffffff" === sp.toHex(t).toLowerCase()) || "color" === e && "#000000" === sp.toHex(t).toLowerCase())) { if ("font-size" === e && /em|%$/.test(t)) { if (0 === a)return; t = parseFloat(t) / (/%$/.test(t) ? 100 : 1) * a + "px" } "border" === e && t && (s += "padding:0 2px;"), s += e + ":" + t + ";" } }), n.fire("AfterPreviewFormats"), sp.remove(r), s) }, mp = function (e, t, n, r, o) { var i = t.get(n); !Hm.match(e, n, r, o) || "toggle"in i[0] && !i[0].toggle ? rp.applyFormat(e, n, r, o) : Mg(e, n, r, o) }, gp = function (e) { e.addShortcut("meta+b", "", "Bold"), e.addShortcut("meta+i", "", "Italic"), e.addShortcut("meta+u", "", "Underline"); for (var t = 1; t <= 6; t++)e.addShortcut("access+" + t, "", ["FormatBlock", !1, "h" + t]); e.addShortcut("access+7", "", ["FormatBlock", !1, "p"]), e.addShortcut("access+8", "", ["FormatBlock", !1, "div"]), e.addShortcut("access+9", "", ["FormatBlock", !1, "address"]) }; function pp(e) { var t = function o(e) { var n = {}, r = function (e, t) { e && ("string" != typeof e ? Xt.each(e, function (e, t) { r(t, e) }) : (t = t.length ? t : [t], Xt.each(t, function (e) { "undefined" == typeof e.deep && (e.deep = !e.selector), "undefined" == typeof e.split && (e.split = !e.selector || e.inline), "undefined" == typeof e.remove && e.selector && !e.inline && (e.remove = "none"), e.selector && e.inline && (e.mixed = !0, e.block_expand = !0), "string" == typeof e.classes && (e.classes = e.classes.split(/\s+/)) }), n[e] = t)) }; return r(ap.get(e.dom)), r(e.settings.formats), { get: function (e) { return e ? n[e] : n }, has: function (e) { return pr(n, e) }, register: r, unregister: function (e) { return e && n[e] && delete n[e], n } } }(e), n = yi(null); return gp(e), Cg(e), { get: t.get, has: t.has, register: t.register, unregister: t.unregister, apply: m(rp.applyFormat, e), remove: m(Mg, e), toggle: m(mp, e, t), match: m(Hm.match, e), matchAll: m(Hm.matchAll, e), matchNode: m(Hm.matchNode, e), canApply: m(Hm.canApply, e), formatChanged: m(ip, e, n), getCssText: m(dp, e) } } var hp = { register: function (t, s, c) { t.addAttributeFilter("data-mce-tabindex", function (e, t) { for (var n, r = e.length; r--;)(n = e[r]).attr("tabindex", n.attributes.map["data-mce-tabindex"]), n.attr(t, null) }), t.addAttributeFilter("src,href,style", function (e, t) { for (var n, r, o = e.length, i = "data-mce-" + t, a = s.url_converter, u = s.url_converter_scope; o--;)(r = (n = e[o]).attributes.map[i]) !== undefined ? (n.attr(t, 0 < r.length ? r : null), n.attr(i, null)) : (r = n.attributes.map[t], "style" === t ? r = c.serializeStyle(c.parseStyle(r), n.name) : a && (r = a.call(u, r, t, n.name)), n.attr(t, 0 < r.length ? r : null)) }), t.addAttributeFilter("class", function (e) { for (var t, n, r = e.length; r--;)(n = (t = e[r]).attr("class")) && (n = t.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g, ""), t.attr("class", 0 < n.length ? n : null)) }), t.addAttributeFilter("data-mce-type", function (e, t, n) { for (var r, o = e.length; o--;)"bookmark" !== (r = e[o]).attributes.map["data-mce-type"] || n.cleanup || r.remove() }), t.addNodeFilter("noscript", function (e) { for (var t, n = e.length; n--;)(t = e[n].firstChild) && (t.value = Ho.decode(t.value)) }), t.addNodeFilter("script,style", function (e, t) { for (var n, r, o, i = e.length, a = function (e) { return e.replace(/()/g, "\n").replace(/^[\r\n]*|[\r\n]*$/g, "").replace(/^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, "") }; i--;)r = (n = e[i]).firstChild ? n.firstChild.value : "", "script" === t ? ((o = n.attr("type")) && n.attr("type", "mce-no/type" === o ? null : o.replace(/^mce\-/, "")), "xhtml" === s.element_format && 0 < r.length && (n.firstChild.value = "// ")) : "xhtml" === s.element_format && 0 < r.length && (n.firstChild.value = "\x3c!--\n" + a(r) + "\n--\x3e") }), t.addNodeFilter("#comment", function (e) { for (var t, n = e.length; n--;)0 === (t = e[n]).value.indexOf("[CDATA[") ? (t.name = "#cdata", t.type = 4, t.value = t.value.replace(/^\[CDATA\[|\]\]$/g, "")) : 0 === t.value.indexOf("mce:protected ") && (t.name = "#text", t.type = 3, t.raw = !0, t.value = unescape(t.value).substr(14)) }), t.addNodeFilter("xml:namespace,input", function (e, t) { for (var n, r = e.length; r--;)7 === (n = e[r]).type ? n.remove() : 1 === n.type && ("input" !== t || "type"in n.attributes.map || n.attr("type", "text")) }), t.addAttributeFilter("data-mce-type", function (e) { M(e, function (e) { "format-caret" === e.attr("data-mce-type") && (e.isEmpty(t.schema.getNonEmptyElements()) ? e.remove() : e.unwrap()) }) }), t.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize", function (e, t) { for (var n = e.length; n--;)e[n].attr(t, null) }) }, trimTrailingBr: function (e) { var t, n, r = function (e) { return e && "br" === e.name }; r(t = e.lastChild) && r(n = t.prev) && (t.remove(), n.remove()) } }, vp = { process: function (e, t, n) { return f = n, (l = e) && l.hasEventListeners("PreProcess") && !f.no_events ? (o = t, i = n, c = (r = e).dom, o = o.cloneNode(!0), (a = document.implementation).createHTMLDocument && (u = a.createHTMLDocument(""), Xt.each("BODY" === o.nodeName ? o.childNodes : [o], function (e) { u.body.appendChild(u.importNode(e, !0)) }), o = "BODY" !== o.nodeName ? u.body.firstChild : u.body, s = c.doc, c.doc = u), rf(r, Fc(i, {node: o})), s && (c.doc = s), o) : t; var r, o, i, a, u, s, c, l, f } }, bp = function (e, a, u) { e.addNodeFilter("font", function (e) { M(e, function (e) { var t, n = a.parse(e.attr("style")), r = e.attr("color"), o = e.attr("face"), i = e.attr("size"); r && (n.color = r), o && (n["font-family"] = o), i && (n["font-size"] = u[parseInt(e.attr("size"), 10) - 1]), e.name = "span", e.attr("style", a.serialize(n)), t = e, M(["color", "face", "size"], function (e) { t.attr(e, null) }) }) }) }, yp = function (e, t) { var n, r = ti(); t.convert_fonts_to_spans && bp(e, r, Xt.explode(t.font_size_legacy_values)), n = r, e.addNodeFilter("strike", function (e) { M(e, function (e) { var t = n.parse(e.attr("style")); t["text-decoration"] = "line-through", e.name = "span", e.attr("style", n.serialize(t)) }) }) }, Cp = { register: function (e, t) { t.inline_styles && yp(e, t) } }, xp = function (e, t, n, r) { (e.padd_empty_with_br || t.insert) && n[r.name] ? r.empty().append(new Hc("br", 1)).shortEnded = !0 : r.empty().append(new Hc("#text", 3)).value = "\xa0" }, wp = function (e) { return Np(e, "#text") && "\xa0" === e.firstChild.value }, Np = function (e, t) { return e && e.firstChild && e.firstChild === e.lastChild && e.firstChild.name === t }, Ep = function (r, e, t, n) { return n.isEmpty(e, t, function (e) { return t = e, (n = r.getElementRule(t.name)) && n.paddEmpty; var t, n }) }, Sp = function (e, t) { return e && (t[e.name] || "br" === e.name) }, Tp = function (e, p) { var h = e.schema; p.remove_trailing_brs && e.addNodeFilter("br", function (e, t, n) { var r, o, i, a, u, s, c, l, f = e.length, d = Xt.extend({}, h.getBlockElements()), m = h.getNonEmptyElements(), g = h.getNonEmptyElements(); for (d.body = 1, r = 0; r < f; r++)if (i = (o = e[r]).parent, d[o.parent.name] && o === i.lastChild) { for (u = o.prev; u;) { if ("span" !== (s = u.name) || "bookmark" !== u.attr("data-mce-type")) { if ("br" !== s)break; if ("br" === s) { o = null; break } } u = u.prev } o && (o.remove(), Ep(h, m, g, i) && (c = h.getElementRule(i.name)) && (c.removeEmpty ? i.remove() : c.paddEmpty && xp(p, n, d, i))) } else { for (a = o; i && i.firstChild === a && i.lastChild === a && !d[(a = i).name];)i = i.parent; a === i && !0 !== p.padd_empty_with_br && ((l = new Hc("#text", 3)).value = "\xa0", o.replace(l)) } }), e.addAttributeFilter("href", function (e) { var t, n, r, o = e.length; if (!p.allow_unsafe_link_target)for (; o--;)"a" === (t = e[o]).name && "_blank" === t.attr("target") && t.attr("rel", (n = t.attr("rel"), r = n ? Xt.trim(n) : "", /\b(noopener)\b/g.test(r) ? r : r.split(" ").filter(function (e) { return 0 < e.length }).concat(["noopener"]).sort().join(" "))) }), p.allow_html_in_named_anchor || e.addAttributeFilter("id,name", function (e) { for (var t, n, r, o, i = e.length; i--;)if ("a" === (o = e[i]).name && o.firstChild && !o.attr("href"))for (r = o.parent, t = o.lastChild; n = t.prev, r.insert(t, o), t = n;); }), p.fix_list_elements && e.addNodeFilter("ul,ol", function (e) { for (var t, n, r = e.length; r--;)if ("ul" === (n = (t = e[r]).parent).name || "ol" === n.name)if (t.prev && "li" === t.prev.name)t.prev.append(t); else { var o = new Hc("li", 1); o.attr("style", "list-style-type: none"), t.wrap(o) } }), p.validate && h.getValidClasses() && e.addAttributeFilter("class", function (e) { for (var t, n, r, o, i, a, u, s = e.length, c = h.getValidClasses(); s--;) { for (n = (t = e[s]).attr("class").split(" "), i = "", r = 0; r < n.length; r++)o = n[r], u = !1, (a = c["*"]) && a[o] && (u = !0), a = c[t.name], !u && a && a[o] && (u = !0), u && (i && (i += " "), i += o); i.length || (i = null), t.attr("class", i) } }) }, kp = Xt.makeMap, Ap = Xt.each, Rp = Xt.explode, Dp = Xt.extend; function Bp(A, R) { void 0 === R && (R = Zo()); var D = {}, B = [], _ = {}, O = {}; (A = A || {}).validate = !("validate"in A) || A.validate, A.root_name = A.root_name || "body"; var P = function (e) { var t, n, r; n in D && ((r = _[n]) ? r.push(e) : _[n] = [e]), t = B.length; for (; t--;)(n = B[t].name)in e.attributes.map && ((r = O[n]) ? r.push(e) : O[n] = [e]); return e }, e = { schema: R, addAttributeFilter: function (e, n) { Ap(Rp(e), function (e) { var t; for (t = 0; t < B.length; t++)if (B[t].name === e)return void B[t].callbacks.push(n); B.push({name: e, callbacks: [n]}) }) }, getAttributeFilters: function () { return [].concat(B) }, addNodeFilter: function (e, n) { Ap(Rp(e), function (e) { var t = D[e]; t || (D[e] = t = []), t.push(n) }) }, getNodeFilters: function () { var e = []; for (var t in D)D.hasOwnProperty(t) && e.push({name: t, callbacks: D[t]}); return e }, filterNode: P, parse: function (e, a) { var t, n, r, o, i, u, s, c, l, f, d, m = []; a = a || {}, _ = {}, O = {}, l = Dp(kp("script,style,head,html,body,title,meta,param"), R.getBlockElements()); var g, p = R.getNonEmptyElements(), h = R.children, v = A.validate, b = "forced_root_block"in a ? a.forced_root_block : A.forced_root_block, y = !1 === (g = b) ? "" : !0 === g ? "p" : g, C = R.getWhiteSpaceElements(), x = /^[ \t\r\n]+/, w = /[ \t\r\n]+$/, N = /[ \t\r\n]+/g, E = /^[ \t\r\n]+$/; f = C.hasOwnProperty(a.context) || C.hasOwnProperty(A.root_name); var S = function (e, t) { var n, r = new Hc(e, t); return e in D && ((n = _[e]) ? n.push(r) : _[e] = [r]), r }, T = function (e) { var t, n, r, o, i = R.getBlockElements(); for (t = e.prev; t && 3 === t.type;) { if (0 < (r = t.value.replace(w, "")).length)return void(t.value = r); if (n = t.next) { if (3 === n.type && n.value.length) { t = t.prev; continue } if (!i[n.name] && "script" !== n.name && "style" !== n.name) { t = t.prev; continue } } o = t.prev, t.remove(), t = o } }; t = $c({ validate: v, allow_script_urls: A.allow_script_urls, allow_conditional_comments: A.allow_conditional_comments, self_closing_elements: function (e) { var t, n = {}; for (t in e)"li" !== t && "p" !== t && (n[t] = e[t]); return n }(R.getSelfClosingElements()), cdata: function (e) { d.append(S("#cdata", 4)).value = e }, text: function (e, t) { var n; f || (e = e.replace(N, " "), Sp(d.lastChild, l) && (e = e.replace(x, ""))), 0 !== e.length && ((n = S("#text", 3)).raw = !!t, d.append(n).value = e) }, comment: function (e) { d.append(S("#comment", 8)).value = e }, pi: function (e, t) { d.append(S(e, 7)).value = t, T(d) }, doctype: function (e) { d.append(S("#doctype", 10)).value = e, T(d) }, start: function (e, t, n) { var r, o, i, a, u; if (i = v ? R.getElementRule(e) : {}) { for ((r = S(i.outputName || e, 1)).attributes = t, r.shortEnded = n, d.append(r), (u = h[d.name]) && h[r.name] && !u[r.name] && m.push(r), o = B.length; o--;)(a = B[o].name)in t.map && ((s = O[a]) ? s.push(r) : O[a] = [r]); l[e] && T(r), n || (d = r), !f && C[e] && (f = !0) } }, end: function (e) { var t, n, r, o, i; if (n = v ? R.getElementRule(e) : {}) { if (l[e] && !f) { if ((t = d.firstChild) && 3 === t.type)if (0 < (r = t.value.replace(x, "")).length)t.value = r, t = t.next; else for (o = t.next, t.remove(), t = o; t && 3 === t.type;)r = t.value, o = t.next, (0 === r.length || E.test(r)) && (t.remove(), t = o), t = o; if ((t = d.lastChild) && 3 === t.type)if (0 < (r = t.value.replace(w, "")).length)t.value = r, t = t.prev; else for (o = t.prev, t.remove(), t = o; t && 3 === t.type;)r = t.value, o = t.prev, (0 === r.length || E.test(r)) && (t.remove(), t = o), t = o } if (f && C[e] && (f = !1), n.removeEmpty && Ep(R, p, C, d) && !d.attributes.map.name && !d.attr("id"))return i = d.parent, l[d.name] ? d.empty().remove() : d.unwrap(), void(d = i); n.paddEmpty && (wp(d) || Ep(R, p, C, d)) && xp(A, a, l, d), d = d.parent } } }, R); var k = d = new Hc(a.context || A.root_name, 11); if (t.parse(e), v && m.length && (a.context ? a.invalid = !0 : function (e) { var t, n, r, o, i, a, u, s, c, l, f, d, m, g, p, h; for (d = kp("tr,td,th,tbody,thead,tfoot,table"), l = R.getNonEmptyElements(), f = R.getWhiteSpaceElements(), m = R.getTextBlockElements(), g = R.getSpecialElements(), t = 0; t < e.length; t++)if ((n = e[t]).parent && !n.fixed)if (m[n.name] && "li" === n.parent.name) { for (p = n.next; p && m[p.name];)p.name = "li", p.fixed = !0, n.parent.insert(p, n.parent), p = p.next; n.unwrap(n) } else { for (o = [n], r = n.parent; r && !R.isValidChild(r.name, n.name) && !d[r.name]; r = r.parent)o.push(r); if (r && 1 < o.length) { for (o.reverse(), i = a = P(o[0].clone()), c = 0; c < o.length - 1; c++) { for (R.isValidChild(a.name, o[c].name) ? (u = P(o[c].clone()), a.append(u)) : u = a, s = o[c].firstChild; s && s !== o[c + 1];)h = s.next, u.append(s), s = h; a = u } Ep(R, l, f, i) ? r.insert(n, o[0], !0) : (r.insert(i, o[0], !0), r.insert(n, i)), r = o[0], (Ep(R, l, f, r) || Np(r, "br")) && r.empty().remove() } else if (n.parent) { if ("li" === n.name) { if ((p = n.prev) && ("ul" === p.name || "ul" === p.name)) { p.append(n); continue } if ((p = n.next) && ("ul" === p.name || "ul" === p.name)) { p.insert(n, p.firstChild, !0); continue } n.wrap(P(new Hc("ul", 1))); continue } R.isValidChild(n.parent.name, "div") && R.isValidChild("div", n.name) ? n.wrap(P(new Hc("div", 1))) : g[n.name] ? n.empty().remove() : n.unwrap() } } }(m)), y && ("body" === k.name || a.isRootContent) && function () { var e, t, n = k.firstChild, r = function (e) { e && ((n = e.firstChild) && 3 === n.type && (n.value = n.value.replace(x, "")), (n = e.lastChild) && 3 === n.type && (n.value = n.value.replace(w, ""))) }; if (R.isValidChild(k.name, y.toLowerCase())) { for (; n;)e = n.next, 3 === n.type || 1 === n.type && "p" !== n.name && !l[n.name] && !n.attr("data-mce-type") ? (t || ((t = S(y, 1)).attr(A.forced_root_block_attrs), k.insert(t, n)), t.append(n)) : (r(t), t = null), n = e; r(t) } }(), !a.invalid) { for (c in _) { for (s = D[c], i = (n = _[c]).length; i--;)n[i].parent || n.splice(i, 1); for (r = 0, o = s.length; r < o; r++)s[r](n, c, a) } for (r = 0, o = B.length; r < o; r++)if ((s = B[r]).name in O) { for (i = (n = O[s.name]).length; i--;)n[i].parent || n.splice(i, 1); for (i = 0, u = s.callbacks.length; i < u; i++)s.callbacks[i](n, s.name, a) } } return k } }; return Tp(e, A), Cp.register(e, A), e } var _p = function (e, t, n) { -1 === Xt.inArray(t, n) && (e.addAttributeFilter(n, function (e, t) { for (var n = e.length; n--;)e[n].attr(t, null) }), t.push(n)) }, Op = function (e, t, n) { var r = da(n.getInner ? t.innerHTML : e.getOuterHTML(t)); return n.selection || vo(nr.fromDom(t)) ? r : Xt.trim(r) }, Pp = function (e, t, n) { var r = n.selection ? Fc({forced_root_block: !1}, n) : n, o = e.parse(t, r); return hp.trimTrailingBr(o), o }, Lp = function (e, t, n, r, o) { var i, a, u, s, c = (i = r, El(t, n).serialize(i)); return a = e, s = c, (u = o).no_events || !a ? s : of(a, Fc(u, {content: s})).content }; function Ip(e, t) { var n = function r(a, u) { var s, c, l, e = ["data-mce-selected"]; return s = u && u.dom ? u.dom : di.DOM, c = u && u.schema ? u.schema : Zo(a), a.entity_encoding = a.entity_encoding || "named", a.remove_trailing_brs = !("remove_trailing_brs"in a) || a.remove_trailing_brs, l = Bp(a, c), hp.register(l, a, s), { schema: c, addNodeFilter: l.addNodeFilter, addAttributeFilter: l.addAttributeFilter, serialize: function (e, t) { var n = Fc({format: "html"}, t || {}), r = vp.process(u, e, n), o = Op(s, r, n), i = Pp(l, o, n); return "tree" === n.format ? i : Lp(u, a, c, i, n) }, addRules: function (e) { c.addValidElements(e) }, setRules: function (e) { c.setValidElements(e) }, addTempAttr: m(_p, l, e), getTempAttrs: function () { return e } } }(e, t); return { schema: n.schema, addNodeFilter: n.addNodeFilter, addAttributeFilter: n.addAttributeFilter, serialize: n.serialize, addRules: n.addRules, setRules: n.setRules, addTempAttr: n.addTempAttr, getTempAttrs: n.getTempAttrs } } function Mp(e) { return {getBookmark: m(sc, e), moveToBookmark: m(cc, e)} } (Mp || (Mp = {})).isBookmarkNode = lc; var Fp, Up, zp = Mp, Vp = Ao.isContentEditableFalse, Hp = Ao.isContentEditableTrue, jp = function (r, a) { var u, s, c, l, f, d, m, g, p, h, v, b, i, y, C, x, w, N = a.dom, E = Xt.each, S = a.getDoc(), T = document, k = Math.abs, A = Math.round, R = a.getBody(); l = {nw: [0, 0, -1, -1], ne: [1, 0, 1, -1], se: [1, 1, 1, 1], sw: [0, 1, -1, 1]}; var e = ".mce-content-body"; a.contentStyles.push(e + " div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: content-box;background: #FFF;width: 7px;height: 7px;z-index: 10000}" + e + " .mce-resizehandle:hover {background: #000}" + e + " img[data-mce-selected]," + e + " hr[data-mce-selected] {outline: 1px solid black;resize: none}" + e + " .mce-clonedresizable {position: absolute;" + (fe.gecko ? "" : "outline: 1px dashed black;") + "opacity: .5;filter: alpha(opacity=50);z-index: 10000}" + e + " .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}"); var D = function (e) { return e && ("IMG" === e.nodeName || a.dom.is(e, "figure.image")) }, n = function (e) { var t, n, r = e.target; t = e, n = a.selection.getRng(), !D(t.target) || Zd(t.clientX, t.clientY, n) || e.isDefaultPrevented() || (e.preventDefault(), a.selection.select(r)) }, B = function (e) { return a.dom.is(e, "figure.image") ? e.querySelector("img") : e }, _ = function (e) { var t = a.settings.object_resizing; return !1 !== t && !fe.iOS && ("string" != typeof t && (t = "table,img,figure.image,div"), "false" !== e.getAttribute("data-mce-resize") && e !== a.getBody() && Dr(nr.fromDom(e), t)) }, O = function (e) { var t, n, r, o; t = e.screenX - d, n = e.screenY - m, y = t * f[2] + h, C = n * f[3] + v, y = y < 5 ? 5 : y, C = C < 5 ? 5 : C, (D(u) && !1 !== a.settings.resize_img_proportional ? !um.modifierPressed(e) : um.modifierPressed(e) || D(u) && f[2] * f[3] != 0) && (k(t) > k(n) ? (C = A(y * b), y = A(C / b)) : (y = A(C / b), C = A(y * b))), N.setStyles(B(s), { width: y, height: C }), r = 0 < (r = f.startPos.x + t) ? r : 0, o = 0 < (o = f.startPos.y + n) ? o : 0, N.setStyles(c, { left: r, top: o, display: "block" }), c.innerHTML = y + " × " + C, f[2] < 0 && s.clientWidth <= y && N.setStyle(s, "left", g + (h - y)), f[3] < 0 && s.clientHeight <= C && N.setStyle(s, "top", p + (v - C)), (t = R.scrollWidth - x) + (n = R.scrollHeight - w) != 0 && N.setStyles(c, { left: r - t, top: o - n }), i || (sf(a, u, h, v), i = !0) }, P = function () { i = !1; var e = function (e, t) { t && (u.style[e] || !a.schema.isValid(u.nodeName.toLowerCase(), e) ? N.setStyle(B(u), e, t) : N.setAttrib(B(u), e, t)) }; e("width", y), e("height", C), N.unbind(S, "mousemove", O), N.unbind(S, "mouseup", P), T !== S && (N.unbind(T, "mousemove", O), N.unbind(T, "mouseup", P)), N.remove(s), N.remove(c), o(u), cf(a, u, y, C), N.setAttrib(u, "style", N.getAttrib(u, "style")), a.nodeChanged() }, o = function (e) { var t, r, o, n, i; L(), F(), t = N.getPos(e, R), g = t.x, p = t.y, i = e.getBoundingClientRect(), r = i.width || i.right - i.left, o = i.height || i.bottom - i.top, u !== e && (u = e, y = C = 0), n = a.fire("ObjectSelected", {target: e}), _(e) && !n.isDefaultPrevented() ? E(l, function (n, e) { var t; (t = N.get("mceResizeHandle" + e)) && N.remove(t), t = N.add(R, "div", { id: "mceResizeHandle" + e, "data-mce-bogus": "all", "class": "mce-resizehandle", unselectable: !0, style: "cursor:" + e + "-resize; margin:0; padding:0" }), 11 === fe.ie && (t.contentEditable = !1), N.bind(t, "mousedown", function (e) { var t; e.stopImmediatePropagation(), e.preventDefault(), d = (t = e).screenX, m = t.screenY, h = B(u).clientWidth, v = B(u).clientHeight, b = v / h, (f = n).startPos = { x: r * n[0] + g, y: o * n[1] + p }, x = R.scrollWidth, w = R.scrollHeight, s = u.cloneNode(!0), N.addClass(s, "mce-clonedresizable"), N.setAttrib(s, "data-mce-bogus", "all"), s.contentEditable = !1, s.unSelectabe = !0, N.setStyles(s, { left: g, top: p, margin: 0 }), s.removeAttribute("data-mce-selected"), R.appendChild(s), N.bind(S, "mousemove", O), N.bind(S, "mouseup", P), T !== S && (N.bind(T, "mousemove", O), N.bind(T, "mouseup", P)), c = N.add(R, "div", { "class": "mce-resize-helper", "data-mce-bogus": "all" }, h + " × " + v) }), n.elm = t, N.setStyles(t, { left: r * n[0] + g - t.offsetWidth / 2, top: o * n[1] + p - t.offsetHeight / 2 }) }) : L(), u.setAttribute("data-mce-selected", "1") }, L = function () { var e, t; for (e in F(), u && u.removeAttribute("data-mce-selected"), l)(t = N.get("mceResizeHandle" + e)) && (N.unbind(t), N.remove(t)) }, I = function (e) { var t, n = function (e, t) { if (e)do { if (e === t)return !0 } while (e = e.parentNode) }; i || a.removed || (E(N.select("img[data-mce-selected],hr[data-mce-selected]"), function (e) { e.removeAttribute("data-mce-selected") }), t = "mousedown" === e.type ? e.target : r.getNode(), n(t = N.$(t).closest("table,img,figure.image,hr")[0], R) && (U(), n(r.getStart(!0), t) && n(r.getEnd(!0), t)) ? o(t) : L()) }, M = function (e) { return Vp(function (e, t) { for (; t && t !== e;) { if (Hp(t) || Vp(t))return t; t = t.parentNode } return null }(a.getBody(), e)) }, F = function () { for (var e in l) { var t = l[e]; t.elm && (N.unbind(t.elm), delete t.elm) } }, U = function () { try { a.getDoc().execCommand("enableObjectResizing", !1, !1) } catch (e) { } }; return a.on("init", function () { U(), fe.ie && 11 <= fe.ie && (a.on("mousedown click", function (e) { var t = e.target, n = t.nodeName; i || !/^(TABLE|IMG|HR)$/.test(n) || M(t) || (2 !== e.button && a.selection.select(t, "TABLE" === n), "mousedown" === e.type && a.nodeChanged()) }), a.dom.bind(R, "mscontrolselect", function (e) { var t = function (e) { he.setEditorTimeout(a, function () { a.selection.select(e) }) }; if (M(e.target))return e.preventDefault(), void t(e.target); /^(TABLE|IMG|HR)$/.test(e.target.nodeName) && (e.preventDefault(), "IMG" === e.target.tagName && t(e.target)) })); var t = he.throttle(function (e) { a.composing || I(e) }); a.on("nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged", t), a.on("keyup compositionend", function (e) { u && "TABLE" === u.nodeName && t(e) }), a.on("hide blur", L), a.on("contextmenu", n) }), a.on("remove", F), { isResizable: _, showResizeRect: o, hideResizeRect: L, updateResizeRect: I, destroy: function () { u = s = null } } }, qp = function (e) { for (var t = 0, n = 0, r = e; r && r.nodeType;)t += r.offsetLeft || 0, n += r.offsetTop || 0, r = r.offsetParent; return {x: t, y: n} }, $p = function (e, t, n) { var r, o, i, a, u, s = e.dom, c = s.getRoot(), l = 0; if (u = {elm: t, alignToTop: n}, e.fire("scrollIntoView", u), !u.isDefaultPrevented() && Ao.isElement(t)) { if (!1 === n && (l = t.offsetHeight), "BODY" !== c.nodeName) { var f = e.selection.getScrollContainer(); if (f)return r = qp(t).y - qp(f).y + l, a = f.clientHeight, void((r < (i = f.scrollTop) || i + a < r + 25) && (f.scrollTop = r < i ? r : r - a + 25)) } o = s.getViewPort(e.getWin()), r = s.getPos(t).y + l, i = o.y, a = o.h, (r < o.y || i + a < r + 25) && e.getWin().scrollTo(0, r < i ? r : r - a + 25) } }, Wp = function (d, e) { Z(du.fromRangeStart(e).getClientRects()).each(function (e) { var t, n, r, o, i, a, u, s, c, l = function (e) { if (e.inline)return e.getBody().getBoundingClientRect(); var t = e.getWin(); return { left: 0, right: t.innerWidth, top: 0, bottom: t.innerHeight, width: t.innerWidth, height: t.innerHeight } }(d), f = { x: (i = t = l, a = n = e, a.left > i.left && a.right < i.right ? 0 : a.left < i.left ? a.left - i.left : a.right - i.right), y: (r = t, o = n, o.top > r.top && o.bottom < r.bottom ? 0 : o.top < r.top ? o.top - r.top : o.bottom - r.bottom) }; s = 0 !== f.x ? 0 < f.x ? f.x + 4 : f.x - 4 : 0, c = 0 !== f.y ? 0 < f.y ? f.y + 4 : f.y - 4 : 0, (u = d).inline ? (u.getBody().scrollLeft += s, u.getBody().scrollTop += c) : u.getWin().scrollBy(s, c) }) }, Kp = function (e) { return Ao.isContentEditableTrue(e) || Ao.isContentEditableFalse(e) }, Xp = function (e, t, n) { var r, o, i, a, u, s = n; if (s.caretPositionFromPoint)(o = s.caretPositionFromPoint(e, t)) && ((r = n.createRange()).setStart(o.offsetNode, o.offset), r.collapse(!0)); else if (n.caretRangeFromPoint)r = n.caretRangeFromPoint(e, t); else if (s.body.createTextRange) { r = s.body.createTextRange(); try { r.moveToPoint(e, t), r.collapse(!0) } catch (c) { r = function (e, n, t) { var r, o, i; if (r = t.elementFromPoint(e, n), o = t.body.createTextRange(), r && "HTML" !== r.tagName || (r = t.body), o.moveToElementText(r), 0 < (i = (i = Xt.toArray(o.getClientRects())).sort(function (e, t) { return (e = Math.abs(Math.max(e.top - n, e.bottom - n))) - (t = Math.abs(Math.max(t.top - n, t.bottom - n))) })).length) { n = (i[0].bottom + i[0].top) / 2; try { return o.moveToPoint(e, n), o.collapse(!0), o } catch (a) { } } return null }(e, t, n) } return i = r, a = n.body, u = i && i.parentElement ? i.parentElement() : null, Ao.isContentEditableFalse(function (e, t, n) { for (; e && e !== t;) { if (n(e))return e; e = e.parentNode } return null }(u, a, Kp)) ? null : i } return r }, Yp = function (n, e) { return W(e, function (e) { var t = n.fire("GetSelectionRange", {range: e}); return t.range !== e ? t.range : e }) }, Gp = function (e, t) { var n = (t || document).createDocumentFragment(); return M(e, function (e) { n.appendChild(e.dom()) }), nr.fromDom(n) }, Jp = Nr("element", "width", "rows"), Qp = Nr("element", "cells"), Zp = Nr("x", "y"), eh = function (e, t) { var n = parseInt(yr(e, t), 10); return isNaN(n) ? 1 : n }, th = function (e) { return U(e, function (e, t) { return t.cells().length > e ? t.cells().length : e }, 0) }, nh = function (e, t) { for (var n = e.rows(), r = 0; r < n.length; r++)for (var o = n[r].cells(), i = 0; i < o.length; i++)if (_r(o[i], t))return A.some(Zp(i, r)); return A.none() }, rh = function (e, t, n, r, o) { for (var i = [], a = e.rows(), u = n; u <= o; u++) { var s = a[u].cells(), c = t < r ? s.slice(t, r + 1) : s.slice(r, t + 1); i.push(Qp(a[u].element(), c)) } return i }, oh = function (e) { var o = Jp(ra(e), 0, []); return M(zi(e, "tr"), function (n, r) { M(zi(n, "td,th"), function (e, t) { !function (e, t, n, r, o) { for (var i = eh(o, "rowspan"), a = eh(o, "colspan"), u = e.rows(), s = n; s < n + i; s++) { u[s] || (u[s] = Qp(oa(r), [])); for (var c = t; c < t + a; c++)u[s].cells()[c] = s === n && c === t ? o : ra(o) } }(o, function (e, t, n) { for (; r = t, o = n, i = void 0, ((i = e.rows())[o] ? i[o].cells() : [])[r];)t++; var r, o, i; return t }(o, t, r), r, n, e) }) }), Jp(o.element(), th(o.rows()), o.rows()) }, ih = function (e) { return n = W((t = e).rows(), function (e) { var t = W(e.cells(), function (e) { var t = oa(e); return Cr(t, "colspan"), Cr(t, "rowspan"), t }), n = ra(e.element()); return Ai(n, t), n }), r = ra(t.element()), o = nr.fromTag("tbody"), Ai(o, n), ki(r, o), r; var t, n, r, o }, ah = function (l, e, t) { return nh(l, e).bind(function (c) { return nh(l, t).map(function (e) { return t = l, r = e, o = (n = c).x(), i = n.y(), a = r.x(), u = r.y(), s = i < u ? rh(t, o, i, a, u) : rh(t, o, u, a, i), Jp(t.element(), th(s), s); var t, n, r, o, i, a, u, s }) }) }, uh = function (e) { var t = []; if (e)for (var n = 0; n < e.rangeCount; n++)t.push(e.getRangeAt(n)); return t }, sh = uh, ch = function (e) { return Y(e, function (e) { var t = ja(e); return t ? [nr.fromDom(t)] : [] }) }, lh = function (e) { return 1 < uh(e).length }, fh = function (e) { return F(ch(e), ho) }, dh = function (e) { return zi(e, "td[data-mce-selected],th[data-mce-selected]") }, mh = function (e, t) { var n = dh(t), r = fh(e); return 0 < n.length ? n : r }, gh = mh, ph = function (e) { return mh(sh(e.selection.getSel()), nr.fromDom(e.getBody())) }, hh = function (n, t) { return z(n, function (e) { return "li" === ar(e) && Nd(e, t) }).fold(q([]), function (e) { return (t = n, z(t, function (e) { return "ul" === ar(e) || "ol" === ar(e) })).map(function (e) { return [nr.fromTag("li"), nr.fromTag(ar(e))] }).getOr([]); var t }) }, vh = function (e, t) { var n, r = nr.fromDom(t.commonAncestorContainer), o = gd(r, e), i = F(o, function (e) { return so(e) || ao(e) }), a = hh(o, t), u = i.concat(a.length ? a : mo(n = r) ? Lr(n).filter(fo).fold(q([]), function (e) { return [n, e] }) : fo(n) ? [n] : []); return W(u, ra) }, bh = function () { return Gp([]) }, yh = function (e, t) { return n = nr.fromDom(t.cloneContents()), r = vh(e, t), o = U(r, function (e, t) { return ki(t, e), t }, n), 0 < r.length ? Gp([o]) : o; var n, r, o }, Ch = function (e, o) { return (t = e, n = o[0], $i(n, "table", m(_r, t))).bind(function (e) { var t = o[0], n = o[o.length - 1], r = oh(e); return ah(r, t, n).map(function (e) { return Gp([ih(e)]) }) }).getOrThunk(bh); var t, n }, xh = function (e, t) { var n, r, o = gh(t, e); return 0 < o.length ? Ch(e, o) : (n = e, 0 < (r = t).length && r[0].collapsed ? bh() : yh(n, r[0])) }, wh = function (e, t) { if (void 0 === t && (t = {}), t.get = !0, t.format = t.format || "html", t.selection = !0, (t = e.fire("BeforeGetContent", t)).isDefaultPrevented())return e.fire("GetContent", t), t.content; if ("text" === t.format)return c = e, A.from(c.selection.getRng()).map(function (e) { return da(e.toString()) }).getOr(""); t.getInner = !0; var n, r, o, i, a, u, s, c, l = (r = t, i = (n = e).selection.getRng(), a = n.dom.create("body"), u = n.selection.getSel(), s = Yp(n, sh(u)), i.cloneContents ? (o = r.contextual ? xh(nr.fromDom(n.getBody()), s).dom() : i.cloneContents()) && a.appendChild(o) : a.innerHTML = i.toString(), n.selection.serializer.serialize(a, r)); return "tree" === t.format ? l : (t.content = e.selection.isCollapsed() ? "" : l, e.fire("GetContent", t), t.content) }, Nh = function (e, t, n) { return null !== function (e, t, n) { for (; e && e !== t;) { if (n(e))return e; e = e.parentNode } return null }(e, t, n) }, Eh = function (e, t, n) { return Nh(e, t, function (e) { return e.nodeName === n }) }, Sh = function (e) { return e && "TABLE" === e.nodeName }, Th = function (e, t, n) { for (var r = new to(t, e.getParent(t.parentNode, e.isBlock) || e.getRoot()); t = r[n ? "prev" : "next"]();)if (Ao.isBr(t))return !0 }, kh = function (e, t, n, r, o) { var i, a, u, s, c, l, f = e.getRoot(), d = e.schema.getNonEmptyElements(); if (u = e.getParent(o.parentNode, e.isBlock) || f, r && Ao.isBr(o) && t && e.isEmpty(u))return A.some(du(o.parentNode, e.nodeIndex(o))); for (i = new to(o, u); s = i[r ? "prev" : "next"]();) { if ("false" === e.getContentEditableParent(s) || (l = f, va(c = s) && !1 === Nh(c, l, Fu)))return A.none(); if (Ao.isText(s) && 0 < s.nodeValue.length)return !1 === Eh(s, f, "A") ? A.some(du(s, r ? s.nodeValue.length : 0)) : A.none(); if (e.isBlock(s) || d[s.nodeName.toLowerCase()])return A.none(); a = s } return n && a ? A.some(du(a, 0)) : A.none() }, Ah = function (e, t, n, r) { var o, i, a, u, s, c, l, f, d, m, g = e.getRoot(), p = !1; if (o = r[(n ? "start" : "end") + "Container"], i = r[(n ? "start" : "end") + "Offset"], l = Ao.isElement(o) && i === o.childNodes.length, s = e.schema.getNonEmptyElements(), c = n, va(o))return A.none(); if (Ao.isElement(o) && i > o.childNodes.length - 1 && (c = !1), Ao.isDocument(o) && (o = g, i = 0), o === g) { if (c && (u = o.childNodes[0 < i ? i - 1 : 0])) { if (va(u))return A.none(); if (s[u.nodeName] || Sh(u))return A.none() } if (o.hasChildNodes()) { if (i = Math.min(!c && 0 < i ? i - 1 : i, o.childNodes.length - 1), o = o.childNodes[i], i = Ao.isText(o) && l ? o.data.length : 0, !t && o === g.lastChild && Sh(o))return A.none(); if (function (e, t) { for (; t && t !== e;) { if (Ao.isContentEditableFalse(t))return !0; t = t.parentNode } return !1 }(g, o) || va(o))return A.none(); if (o.hasChildNodes() && !1 === Sh(o)) { a = new to(u = o, g); do { if (Ao.isContentEditableFalse(u) || va(u)) { p = !1; break } if (Ao.isText(u) && 0 < u.nodeValue.length) { i = c ? 0 : u.nodeValue.length, o = u, p = !0; break } if (s[u.nodeName.toLowerCase()] && (!(f = u) || !/^(TD|TH|CAPTION)$/.test(f.nodeName))) { i = e.nodeIndex(u), o = u.parentNode, c || i++, p = !0; break } } while (u = c ? a.next() : a.prev()) } } } return t && (Ao.isText(o) && 0 === i && kh(e, l, t, !0, o).each(function (e) { o = e.container(), i = e.offset(), p = !0 }), Ao.isElement(o) && ((u = o.childNodes[i]) || (u = o.childNodes[i - 1]), !u || !Ao.isBr(u) || (m = "A", (d = u).previousSibling && d.previousSibling.nodeName === m) || Th(e, u, !1) || Th(e, u, !0) || kh(e, l, t, !0, u).each(function (e) { o = e.container(), i = e.offset(), p = !0 }))), c && !t && Ao.isText(o) && i === o.nodeValue.length && kh(e, l, t, !1, o).each(function (e) { o = e.container(), i = e.offset(), p = !0 }), p ? A.some(du(o, i)) : A.none() }, Rh = function (e, t) { var n = t.collapsed, r = t.cloneRange(), o = du.fromRangeStart(t); return Ah(e, n, !0, r).each(function (e) { n && du.isAbove(o, e) || r.setStart(e.container(), e.offset()) }), n || Ah(e, n, !1, r).each(function (e) { r.setEnd(e.container(), e.offset()) }), n && r.collapse(!0), Cd(t, r) ? A.none() : A.some(r) }, Dh = function (e, t, n) { var r, o, i, a = e.selection.getRng(), u = e.getDoc(); if ((n = n || {format: "html"}).set = !0, n.selection = !0, n.content = t, n.no_events || !(n = e.fire("BeforeSetContent", n)).isDefaultPrevented()) { if (t = n.content, a.insertNode) { t += '_', a.startContainer === u && a.endContainer === u ? u.body.innerHTML = t : (a.deleteContents(), 0 === u.body.childNodes.length ? u.body.innerHTML = t : a.createContextualFragment ? a.insertNode(a.createContextualFragment(t)) : (o = u.createDocumentFragment(), i = u.createElement("div"), o.appendChild(i), i.outerHTML = t, a.insertNode(o))), r = e.dom.get("__caret"), (a = u.createRange()).setStartBefore(r), a.setEndBefore(r), e.selection.setRng(a), e.dom.remove("__caret"); try { e.selection.setRng(a) } catch (s) { } } else a.item && (u.execCommand("Delete", !1, null), a = e.getRng()), /^\s+/.test(t) ? (a.pasteHTML('_' + t), e.dom.remove("__mce_tmp")) : a.pasteHTML(t); n.no_events || e.fire("SetContent", n) } else e.fire("SetContent", n) }, Bh = function (e, t, n, r, o) { var i = n ? t.startContainer : t.endContainer, a = n ? t.startOffset : t.endOffset; return A.from(i).map(nr.fromDom).map(function (e) { return r && t.collapsed ? e : zr(e, o(e, a)).getOr(e) }).bind(function (e) { return sr(e) ? A.some(e) : Lr(e) }).map(function (e) { return e.dom() }).getOr(e) }, _h = function (e, t, n) { return Bh(e, t, !0, n, function (e, t) { return Math.min(e.dom().childNodes.length, t) }) }, Oh = function (e, t, n) { return Bh(e, t, !1, n, function (e, t) { return 0 < t ? t - 1 : t }) }, Ph = function (e, t) { for (var n = e; e && Ao.isText(e) && 0 === e.length;)e = t ? e.nextSibling : e.previousSibling; return e || n }, Lh = function (e, t, n) { if (e && e.hasOwnProperty(t)) { var r = F(e[t], function (e) { return e !== n }); 0 === r.length ? delete e[t] : e[t] = r } }, Ih = function (e) { return !!e.select }, Mh = function (e) { return !(!e || !e.ownerDocument) && Or(nr.fromDom(e.ownerDocument), nr.fromDom(e)) }, Fh = function (u, s, e, c) { var n, t, l, f, r = function h(i, n) { var a, u; return { selectorChangedWithUnbind: function (e, t) { return a || (a = {}, u = {}, n.on("NodeChange", function (e) { var n = e.element, r = i.getParents(n, null, i.getRoot()), o = {}; Xt.each(a, function (e, n) { Xt.each(r, function (t) { if (i.is(t, n))return u[n] || (Xt.each(e, function (e) { e(!0, {node: t, selector: n, parents: r}) }), u[n] = e), o[n] = e, !1 }) }), Xt.each(u, function (e, t) { o[t] || (delete u[t], Xt.each(e, function (e) { e(!1, {node: n, selector: t, parents: r}) })) }) })), a[e] || (a[e] = []), a[e].push(t), { unbind: function () { Lh(a, e, t), Lh(u, e, t) } } } } }(u, c).selectorChangedWithUnbind, o = function (e, t) { return Dh(c, e, t) }, i = function (e) { var t = m(); t.collapse(!!e), a(t) }, d = function () { return s.getSelection ? s.getSelection() : s.document.selection }, m = function () { var e, t, n, r, o = function (e, t, n) { try { return t.compareBoundaryPoints(e, n) } catch (r) { return -1 } }; if (!s)return null; if (null == (r = s.document))return null; if (c.bookmark !== undefined && !1 === Zl(c)) { var i = $l(c); if (i.isSome())return i.map(function (e) { return Yp(c, [e])[0] }).getOr(r.createRange()) } try { (e = d()) && (t = 0 < e.rangeCount ? e.getRangeAt(0) : e.createRange ? e.createRange() : r.createRange()) } catch (a) { } return (t = Yp(c, [t])[0]) || (t = r.createRange ? r.createRange() : r.body.createTextRange()), t.setStart && 9 === t.startContainer.nodeType && t.collapsed && (n = u.getRoot(), t.setStart(n, 0), t.setEnd(n, 0)), l && f && (0 === o(t.START_TO_START, t, l) && 0 === o(t.END_TO_END, t, l) ? t = f : f = l = null), t }, a = function (e, t) { var n, r; if ((o = e) && (Ih(o) || Mh(o.startContainer) && Mh(o.endContainer))) { var o, i = Ih(e) ? e : null; if (i) { f = null; try { i.select() } catch (a) { } } else { if (n = d(), e = c.fire("SetSelectionRange", {range: e, forward: t}).range, n) { f = e; try { n.removeAllRanges(), n.addRange(e) } catch (a) { } !1 === t && n.extend && (n.collapse(e.endContainer, e.endOffset), n.extend(e.startContainer, e.startOffset)), l = 0 < n.rangeCount ? n.getRangeAt(0) : null } e.collapsed || e.startContainer !== e.endContainer || !n.setBaseAndExtent || fe.ie || e.endOffset - e.startOffset < 2 && e.startContainer.hasChildNodes() && (r = e.startContainer.childNodes[e.startOffset]) && "IMG" === r.tagName && (n.setBaseAndExtent(e.startContainer, e.startOffset, e.endContainer, e.endOffset), n.anchorNode === e.startContainer && n.focusNode === e.endContainer || n.setBaseAndExtent(r, 0, r, 1)), c.fire("AfterSetSelectionRange", { range: e, forward: t }) } } }, g = function () { var e, t, n = d(); return !(n && n.anchorNode && n.focusNode) || ((e = u.createRng()).setStart(n.anchorNode, n.anchorOffset), e.collapse(!0), (t = u.createRng()).setStart(n.focusNode, n.focusOffset), t.collapse(!0), e.compareBoundaryPoints(e.START_TO_START, t) <= 0) }, p = { bookmarkManager: null, controlSelection: null, dom: u, win: s, serializer: e, editor: c, collapse: i, setCursorLocation: function (e, t) { var n = u.createRng(); e ? (n.setStart(e, t), n.setEnd(e, t), a(n), i(!1)) : (Ed(u, n, c.getBody(), !0), a(n)) }, getContent: function (e) { return wh(c, e) }, setContent: o, getBookmark: function (e, t) { return n.getBookmark(e, t) }, moveToBookmark: function (e) { return n.moveToBookmark(e) }, select: function (e, t) { var r, n, o; return (r = u, n = e, o = t, A.from(n).map(function (e) { var t = r.nodeIndex(e), n = r.createRng(); return n.setStart(e.parentNode, t), n.setEnd(e.parentNode, t + 1), o && (Ed(r, n, e, !0), Ed(r, n, e, !1)), n })).each(a), e }, isCollapsed: function () { var e = m(), t = d(); return !(!e || e.item) && (e.compareEndPoints ? 0 === e.compareEndPoints("StartToEnd", e) : !t || e.collapsed) }, isForward: g, setNode: function (e) { return o(u.getOuterHTML(e)), e }, getNode: function () { return e = c.getBody(), (t = m()) ? (r = t.startContainer, o = t.endContainer, i = t.startOffset, a = t.endOffset, n = t.commonAncestorContainer, !t.collapsed && (r === o && a - i < 2 && r.hasChildNodes() && (n = r.childNodes[i]), 3 === r.nodeType && 3 === o.nodeType && (r = r.length === i ? Ph(r.nextSibling, !0) : r.parentNode, o = 0 === a ? Ph(o.previousSibling, !1) : o.parentNode, r && r === o)) ? r : n && 3 === n.nodeType ? n.parentNode : n) : e; var e, t, n, r, o, i, a }, getSel: d, setRng: a, getRng: m, getStart: function (e) { return _h(c.getBody(), m(), e) }, getEnd: function (e) { return Oh(c.getBody(), m(), e) }, getSelectedBlocks: function (e, t) { return function (e, t, n, r) { var o, i, a = []; if (i = e.getRoot(), n = e.getParent(n || _h(i, t, t.collapsed), e.isBlock), r = e.getParent(r || Oh(i, t, t.collapsed), e.isBlock), n && n !== i && a.push(n), n && r && n !== r)for (var u = new to(o = n, i); (o = u.next()) && o !== r;)e.isBlock(o) && a.push(o); return r && n !== r && r !== i && a.push(r), a }(u, m(), e, t) }, normalize: function () { var e = m(), t = d(); if (lh(t) || !Sd(c))return e; var n = Rh(u, e); return n.each(function (e) { a(e, g()) }), n.getOr(e) }, selectorChanged: function (e, t) { return r(e, t), p }, selectorChangedWithUnbind: r, getScrollContainer: function () { for (var e, t = u.getRoot(); t && "BODY" !== t.nodeName;) { if (t.scrollHeight > t.clientHeight) { e = t; break } t = t.parentNode } return e }, scrollIntoView: function (e, t) { return $p(c, e, t) }, placeCaretAt: function (e, t) { return a(Xp(e, t, c.getDoc())) }, getBoundingClientRect: function () { var e = m(); return e.collapsed ? hu.fromRangeStart(e).getClientRects()[0] : e.getBoundingClientRect() }, destroy: function () { s = l = f = null, t.destroy() } }; return n = zp(p), t = jp(p, c), p.bookmarkManager = n, p.controlSelection = t, p }, Uh = Ao.isText, zh = function (e) { return Uh(e) && e.data[0] === fa }, Vh = function (e) { return Uh(e) && e.data[e.data.length - 1] === fa }, Hh = function (e) { return e.ownerDocument.createTextNode(fa) }, jh = function (e, t) { return e ? function (e) { if (Uh(e.previousSibling))return Vh(e.previousSibling) || e.previousSibling.appendData(fa), e.previousSibling; if (Uh(e))return zh(e) || e.insertData(0, fa), e; var t = Hh(e); return e.parentNode.insertBefore(t, e), t }(t) : function (e) { if (Uh(e.nextSibling))return zh(e.nextSibling) || e.nextSibling.insertData(0, fa), e.nextSibling; if (Uh(e))return Vh(e) || e.appendData(fa), e; var t = Hh(e); return e.nextSibling ? e.parentNode.insertBefore(t, e.nextSibling) : e.parentNode.appendChild(t), t }(t) }, qh = m(jh, !0), $h = m(jh, !1), Wh = function (e, t) { return Ao.isText(e.container()) ? jh(t, e.container()) : jh(t, e.getNode()) }, Kh = function (e, t) { var n = t.get(); return n && e.container() === n && ha(n) }, Xh = function (n, e) { return e.fold(function (e) { Yu.remove(n.get()); var t = qh(e); return n.set(t), A.some(hu(t, t.length - 1)) }, function (e) { return ec.firstPositionIn(e).map(function (e) { if (Kh(e, n))return hu(n.get(), 1); Yu.remove(n.get()); var t = Wh(e, !0); return n.set(t), hu(t, 1) }) }, function (e) { return ec.lastPositionIn(e).map(function (e) { if (Kh(e, n))return hu(n.get(), n.get().length - 1); Yu.remove(n.get()); var t = Wh(e, !1); return n.set(t), hu(t, t.length - 1) }) }, function (e) { Yu.remove(n.get()); var t = $h(e); return n.set(t), A.some(hu(t, 1)) }) }, Yh = /[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/, Gh = function (e, t) { var n = t.container(), r = t.offset(); return e ? ha(n) ? Ao.isText(n.nextSibling) ? hu(n.nextSibling, 0) : hu.after(n) : ya(t) ? hu(n, r + 1) : t : ha(n) ? Ao.isText(n.previousSibling) ? hu(n.previousSibling, n.previousSibling.data.length) : hu.before(n) : Ca(t) ? hu(n, r - 1) : t }, Jh = { isInlineTarget: function (e, t) { var n = Tf(e, "inline_boundaries_selector").getOr("a[href],code"); return Dr(nr.fromDom(t), n) }, findRootInline: function (e, t, n) { var r, o, i, a = (r = e, o = t, i = n, F(di.DOM.getParents(i.container(), "*", o), r)); return A.from(a[a.length - 1]) }, isRtl: function (e) { return "rtl" === di.DOM.getStyle(e, "direction", !0) || (t = e.textContent, Yh.test(t)); var t }, isAtZwsp: function (e) { return ya(e) || Ca(e) }, normalizePosition: Gh, normalizeForwards: m(Gh, !0), normalizeBackwards: m(Gh, !1), hasSameParentBlock: function (e, t, n) { var r = ps(t, e), o = ps(n, e); return r && r === o } }, Qh = function (e, t) { for (var n = 0; n < e.length; n++) { var r = e[n].apply(null, t); if (r.isSome())return r } return A.none() }, Zh = Rl([{before: ["element"]}, {start: ["element"]}, {end: ["element"]}, {after: ["element"]}]), ev = function (e, t) { var n = ps(t, e); return n || e }, tv = function (e, t, n) { var r = Jh.normalizeForwards(n), o = ev(t, r.container()); return Jh.findRootInline(e, o, r).fold(function () { return ec.nextPosition(o, r).bind(m(Jh.findRootInline, e, o)).map(function (e) { return Zh.before(e) }) }, A.none) }, nv = function (e, t) { return null === Uu(e, t) }, rv = function (e, t, n) { return Jh.findRootInline(e, t, n).filter(m(nv, t)) }, ov = function (e, t, n) { var r = Jh.normalizeBackwards(n); return rv(e, t, r).bind(function (e) { return ec.prevPosition(e, r).isNone() ? A.some(Zh.start(e)) : A.none() }) }, iv = function (e, t, n) { var r = Jh.normalizeForwards(n); return rv(e, t, r).bind(function (e) { return ec.nextPosition(e, r).isNone() ? A.some(Zh.end(e)) : A.none() }) }, av = function (e, t, n) { var r = Jh.normalizeBackwards(n), o = ev(t, r.container()); return Jh.findRootInline(e, o, r).fold(function () { return ec.prevPosition(o, r).bind(m(Jh.findRootInline, e, o)).map(function (e) { return Zh.after(e) }) }, A.none) }, uv = function (e) { return !1 === Jh.isRtl(cv(e)) }, sv = function (e, t, n) { return Qh([tv, ov, iv, av], [e, t, n]).filter(uv) }, cv = function (e) { return e.fold($, $, $, $) }, lv = function (e) { return e.fold(q("before"), q("start"), q("end"), q("after")) }, fv = function (e) { return e.fold(Zh.before, Zh.before, Zh.after, Zh.after) }, dv = function (n, e, r, t, o, i) { return Ka([Jh.findRootInline(e, r, t), Jh.findRootInline(e, r, o)], function (e, t) { return e !== t && Jh.hasSameParentBlock(r, e, t) ? Zh.after(n ? e : t) : i }).getOr(i) }, mv = function (e, r) { return e.fold(q(!0), function (e) { return n = r, !(lv(t = e) === lv(n) && cv(t) === cv(n)); var t, n }) }, gv = function (e, t) { return e ? t.fold(j(A.some, Zh.start), A.none, j(A.some, Zh.after), A.none) : t.fold(A.none, j(A.some, Zh.before), A.none, j(A.some, Zh.end)) }, pv = function (a, u, s, c) { var e = Jh.normalizePosition(a, c), l = sv(u, s, e); return sv(u, s, e).bind(m(gv, a)).orThunk(function () { return t = a, n = u, r = s, o = l, e = c, i = Jh.normalizePosition(t, e), ec.fromPosition(t, r, i).map(m(Jh.normalizePosition, t)).fold(function () { return o.map(fv) }, function (e) { return sv(n, r, e).map(m(dv, t, n, r, i, e)).filter(m(mv, o)) }).filter(uv); var t, n, r, o, e, i }) }, hv = sv, vv = pv, bv = (m(pv, !1), m(pv, !0), fv), yv = function (e) { return e.fold(Zh.start, Zh.start, Zh.end, Zh.end) }, Cv = function (e) { return O(e.selection.getSel().modify) }, xv = function (e, t, n) { var r = e ? 1 : -1; return t.setRng(hu(n.container(), n.offset() + r).toRange()), t.getSel().modify("move", e ? "forward" : "backward", "word"), !0 }, wv = function (e, t) { var n = t.selection.getRng(), r = e ? hu.fromRangeEnd(n) : hu.fromRangeStart(n); return !!Cv(t) && (e && ya(r) ? xv(!0, t.selection, r) : !(e || !Ca(r)) && xv(!1, t.selection, r)) }, Nv = function (e, t) { var n = e.dom.createRng(); n.setStart(t.container(), t.offset()), n.setEnd(t.container(), t.offset()), e.selection.setRng(n) }, Ev = function (e) { return !1 !== e.settings.inline_boundaries }, Sv = function (e, t) { e ? t.setAttribute("data-mce-selected", "inline-boundary") : t.removeAttribute("data-mce-selected") }, Tv = function (t, e, n) { return Xh(e, n).map(function (e) { return Nv(t, e), n }) }, kv = function (e, t, n) { return function () { return !!Ev(t) && wv(e, t) } }, Av = { move: function (a, u, s) { return function () { return !!Ev(a) && (t = a, n = u, e = s, r = t.getBody(), o = hu.fromRangeStart(t.selection.getRng()), i = m(Jh.isInlineTarget, t), vv(e, i, r, o).bind(function (e) { return Tv(t, n, e) })).isSome(); var t, n, e, r, o, i } }, moveNextWord: m(kv, !0), movePrevWord: m(kv, !1), setupSelectedState: function (a) { var u = yi(null), s = m(Jh.isInlineTarget, a); return a.on("NodeChange", function (e) { var t, n, r, o, i; Ev(a) && (t = s, n = a.dom, r = e.parents, o = F(n.select('*[data-mce-selected="inline-boundary"]'), t), i = F(r, t), M(Q(o, i), m(Sv, !1)), M(Q(i, o), m(Sv, !0)), function (e, t) { if (e.selection.isCollapsed() && !0 !== e.composing && t.get()) { var n = hu.fromRangeStart(e.selection.getRng()); hu.isTextPosition(n) && !1 === Jh.isAtZwsp(n) && (Nv(e, Yu.removeAndReposition(t.get(), n)), t.set(null)) } }(a, u), function (n, r, o, e) { if (r.selection.isCollapsed()) { var t = F(e, n); M(t, function (e) { var t = hu.fromRangeStart(r.selection.getRng()); hv(n, r.getBody(), t).bind(function (e) { return Tv(r, o, e) }) }) } }(s, a, u, e.parents)) }), u }, setCaretPosition: Nv }, Rv = Ao.isContentEditableFalse, Dv = ja, Bv = As, _v = ks, Ov = function (e, t) { for (; t = e(t);)if (t.isVisible())return t; return t }, Pv = function (e, t, n, r) { var o, i, a, u, s, c, l = e === gu.Forwards, f = l ? _v : Bv; return !r.collapsed && (o = Dv(r), Rv(o)) ? nm(e, t, o, e === gu.Backwards, !0) : (u = pa(r.startContainer), f(i = Ts(e, t.getBody(), r)) ? rm(t, i.getNode(!l)) : (i = n(i)) ? f(i) ? nm(e, t, i.getNode(!l), l, !0) : f(a = n(i)) && (!(c = hs(s = i, a)) && Ao.isBr(s.getNode()) || c) ? nm(e, t, a.getNode(!l), l, !0) : u ? im(t, i.toRange(), !0) : null : u ? r : null) }, Lv = function (e, t, n, r) { var o, i, a, u, s, c, l, f, d; if (d = Dv(r), o = Ts(e, t.getBody(), r), i = n(t.getBody(), jd(1), o), a = jt.filter(i, qd(1)), s = jt.last(o.getClientRects()), (_v(o) || Rs(o)) && (d = o.getNode()), (Bv(o) || Ds(o)) && (d = o.getNode(!0)), !s)return null; if (c = s.left, (u = Gd(a, c)) && Rv(u.node))return l = Math.abs(c - u.left), f = Math.abs(c - u.right), nm(e, t, u.node, l < f, !0); if (d) { var m = function (e, t, n, r) { var o, i, a, u, s, c, l = $s(t), f = [], d = 0, m = function (e) { return jt.last(e.getClientRects()) }; c = m(u = 1 === e ? (o = l.next, i = Ha, a = Va, hu.after(r)) : (o = l.prev, i = Va, a = Ha, hu.before(r))); do { if (u.isVisible() && !a(s = m(u), c)) { if (0 < f.length && i(s, jt.last(f)) && d++, (s = Fa(s)).position = u, s.line = d, n(s))return f; f.push(s) } } while (u = o(u)); return f }(e, t.getBody(), jd(1), d); if (u = Gd(jt.filter(m, qd(1)), c))return im(t, u.position.toRange(), !0); if (u = jt.last(jt.filter(m, qd(0))))return im(t, u.position.toRange(), !0) } }, Iv = function (e, t, n) { var r, o, i, a, u = $s(e.getBody()), s = sa.curry(Ov, u.next), c = sa.curry(Ov, u.prev); if (n.collapsed && e.settings.forced_root_block) { if (!(r = e.dom.getParent(n.startContainer, "PRE")))return; (1 === t ? s(hu.fromRangeStart(n)) : c(hu.fromRangeStart(n))) || (a = (i = e).dom.create(nl(i)), (!fe.ie || 11 <= fe.ie) && (a.innerHTML = '
    '), o = a, 1 === t ? e.$(r).after(o) : e.$(r).before(o), e.selection.select(o, !0), e.selection.collapse()) } }, Mv = function (l, f) { return function () { var e, t, n, r, o, i, a, u, s, c = (t = f, r = $s((e = l).getBody()), o = sa.curry(Ov, r.next), i = sa.curry(Ov, r.prev), a = t ? gu.Forwards : gu.Backwards, u = t ? o : i, s = e.selection.getRng(), (n = Pv(a, e, u, s)) ? n : (n = Iv(e, a, s)) || null); return !!c && (l.selection.setRng(c), !0) } }, Fv = function (u, s) { return function () { var e, t, n, r, o, i, a = (r = (t = s) ? 1 : -1, o = t ? Hd : Vd, i = (e = u).selection.getRng(), (n = Lv(r, e, o, i)) ? n : (n = Iv(e, r, i)) || null); return !!a && (u.selection.setRng(a), !0) } }; (Up = Fp || (Fp = {}))[Up.Br = 0] = "Br", Up[Up.Block = 1] = "Block", Up[Up.Wrap = 2] = "Wrap", Up[Up.Eol = 3] = "Eol"; var Uv = function (e, t) { return e === gu.Backwards ? t.reverse() : t }, zv = function (e, t, n, r) { for (var o, i, a, u, s, c, l = $s(n), f = r, d = []; f && (s = l, c = f, o = t === gu.Forwards ? s.next(c) : s.prev(c));) { if (Ao.isBr(o.getNode(!1)))return t === gu.Forwards ? { positions: Uv(t, d).concat([o]), breakType: Fp.Br, breakAt: A.some(o) } : {positions: Uv(t, d), breakType: Fp.Br, breakAt: A.some(o)}; if (o.isVisible()) { if (e(f, o)) { var m = (i = t, a = f, u = o, Ao.isBr(u.getNode(i === gu.Forwards)) ? Fp.Br : !1 === hs(a, u) ? Fp.Block : Fp.Wrap); return {positions: Uv(t, d), breakType: m, breakAt: A.some(o)} } d.push(o), f = o } else f = o } return {positions: Uv(t, d), breakType: Fp.Eol, breakAt: A.none()} }, Vv = function (n, r, o, e) { return r(o, e).breakAt.map(function (e) { var t = r(o, e).positions; return n === gu.Backwards ? t.concat(e) : [e].concat(t) }).getOr([]) }, Hv = function (e, i) { return U(e, function (e, o) { return e.fold(function () { return A.some(o) }, function (r) { return Ka([Z(r.getClientRects()), Z(o.getClientRects())], function (e, t) { var n = Math.abs(i - e.left); return Math.abs(i - t.left) <= n ? o : r }).or(e) }) }, A.none()) }, jv = function (t, e) { return Z(e.getClientRects()).bind(function (e) { return Hv(t, e.left) }) }, qv = m(zv, du.isAbove, -1), $v = m(zv, du.isBelow, 1), Wv = m(Vv, -1, qv), Kv = m(Vv, 1, $v), Xv = function (e, t, n, r, o) { var i, a, u, s, c = zi(nr.fromDom(n), "td,th,caption").map(function (e) { return e.dom() }), l = F((i = e, Y(c, function (e) { var t, n, r = (t = Fa(e.getBoundingClientRect()), n = -1, { left: t.left - n, top: t.top - n, right: t.right + 2 * n, bottom: t.bottom + 2 * n, width: t.width + n, height: t.height + n }); return [{x: r.left, y: i(r), cell: e}, {x: r.right, y: i(r), cell: e}] })), function (e) { return t(e, o) }); return (a = l, u = r, s = o, U(a, function (e, r) { return e.fold(function () { return A.some(r) }, function (e) { var t = Math.sqrt(Math.abs(e.x - u) + Math.abs(e.y - s)), n = Math.sqrt(Math.abs(r.x - u) + Math.abs(r.y - s)); return A.some(n < t ? r : e) }) }, A.none())).map(function (e) { return e.cell }) }, Yv = m(Xv, function (e) { return e.bottom }, function (e, t) { return e.y < t }), Gv = m(Xv, function (e) { return e.top }, function (e, t) { return e.y > t }), Jv = function (t, n) { return Z(n.getClientRects()).bind(function (e) { return Yv(t, e.left, e.top) }).bind(function (e) { return jv((t = e, ec.lastPositionIn(t).map(function (e) { return qv(t, e).positions.concat(e) }).getOr([])), n); var t }) }, Qv = function (t, n) { return ee(n.getClientRects()).bind(function (e) { return Gv(t, e.left, e.top) }).bind(function (e) { return jv((t = e, ec.firstPositionIn(t).map(function (e) { return [e].concat($v(t, e).positions) }).getOr([])), n); var t }) }, Zv = function (e, t) { e.selection.setRng(t), Wp(e, t) }, eb = function (e, t, n) { var r, o, i, a, u = e(t, n); return (a = u).breakType === Fp.Wrap && 0 === a.positions.length || !Ao.isBr(n.getNode()) && (i = u).breakType === Fp.Br && 1 === i.positions.length ? (r = e, o = t, !u.breakAt.map(function (e) { return r(o, e).breakAt.isSome() }).getOr(!1)) : u.breakAt.isNone() }, tb = m(eb, qv), nb = m(eb, $v), rb = function (e, t, n, r) { var o, i, a, u, s = e.selection.getRng(), c = t ? 1 : -1; if (es() && (o = t, i = s, a = n, u = hu.fromRangeStart(i), ec.positionIn(!o, a).map(function (e) { return e.isEqual(u) }).getOr(!1))) { var l = nm(c, e, n, !t, !0); return Zv(e, l), !0 } return !1 }, ob = function (e, t) { var n = t.getNode(e); return Ao.isElement(n) && "TABLE" === n.nodeName ? A.some(n) : A.none() }, ib = function (u, s, c) { var e = ob(!!s, c), t = !1 === s; e.fold(function () { return Zv(u, c.toRange()) }, function (a) { return ec.positionIn(t, u.getBody()).filter(function (e) { return e.isEqual(c) }).fold(function () { return Zv(u, c.toRange()) }, function (e) { return n = s, o = a, t = c, void((i = nl(r = u)) ? r.undoManager.transact(function () { var e = nr.fromTag(i); br(e, rl(r)), ki(e, nr.fromTag("br")), n ? Ti(nr.fromDom(o), e) : Si(nr.fromDom(o), e); var t = r.dom.createRng(); t.setStart(e.dom(), 0), t.setEnd(e.dom(), 0), Zv(r, t) }) : Zv(r, t.toRange())); var n, r, o, t, i }) }) }, ab = function (e, t, n, r) { var o, i, a, u, s, c, l = e.selection.getRng(), f = hu.fromRangeStart(l), d = e.getBody(); if (t || !tb(r, f))return !(!t || !nb(r, f)) && (o = d, m = Qv(i = n, a = f).orThunk(function () { return Z(a.getClientRects()).bind(function (e) { return Hv(Kv(o, hu.after(i)), e.left) }) }).getOr(hu.after(i)), ib(e, t, m), !0); var m = (u = d, Jv(s = n, c = f).orThunk(function () { return Z(c.getClientRects()).bind(function (e) { return Hv(Wv(u, hu.before(s)), e.left) }) }).getOr(hu.before(s))); return ib(e, t, m), !0 }, ub = function (t, n) { return function () { return A.from(t.dom.getParent(t.selection.getNode(), "td,th")).bind(function (e) { return A.from(t.dom.getParent(e, "table")).map(function (e) { return rb(t, n, e) }) }).getOr(!1) } }, sb = function (n, r) { return function () { return A.from(n.dom.getParent(n.selection.getNode(), "td,th")).bind(function (t) { return A.from(n.dom.getParent(t, "table")).map(function (e) { return ab(n, r, e, t) }) }).getOr(!1) } }, cb = function (e, r) { return Y(W(e, function (e) { return Fc({shiftKey: !1, altKey: !1, ctrlKey: !1, metaKey: !1, keyCode: 0, action: x}, e) }), function (e) { return t = e, (n = r).keyCode === t.keyCode && n.shiftKey === t.shiftKey && n.altKey === t.altKey && n.ctrlKey === t.ctrlKey && n.metaKey === t.metaKey ? [e] : []; var t, n }) }, lb = function (e) { for (var t = [], n = 1; n < arguments.length; n++)t[n - 1] = arguments[n]; var r = Array.prototype.slice.call(arguments, 1); return function () { return e.apply(null, r) } }, fb = function (e, t) { return z(cb(e, t), function (e) { return e.action() }) }, db = function (i, a) { i.on("keydown", function (e) { var t, n, r, o; !1 === e.isDefaultPrevented() && (t = i, n = a, r = e, o = er.detect().os, fb([{ keyCode: um.RIGHT, action: Mv(t, !0) }, {keyCode: um.LEFT, action: Mv(t, !1)}, {keyCode: um.UP, action: Fv(t, !1)}, { keyCode: um.DOWN, action: Fv(t, !0) }, {keyCode: um.RIGHT, action: ub(t, !0)}, {keyCode: um.LEFT, action: ub(t, !1)}, { keyCode: um.UP, action: sb(t, !1) }, {keyCode: um.DOWN, action: sb(t, !0)}, {keyCode: um.RIGHT, action: Av.move(t, n, !0)}, { keyCode: um.LEFT, action: Av.move(t, n, !1) }, { keyCode: um.RIGHT, ctrlKey: !o.isOSX(), altKey: o.isOSX(), action: Av.moveNextWord(t, n) }, { keyCode: um.LEFT, ctrlKey: !o.isOSX(), altKey: o.isOSX(), action: Av.movePrevWord(t, n) }], r).each(function (e) { r.preventDefault() })) }) }, mb = function (e, t) { return Or(e, t) ? qi(t, function (e) { return lo(e) || mo(e) }, (n = e, function (e) { return _r(n, nr.fromDom(e.dom().parentNode)) })) : A.none(); var n }, gb = function (e) { var t, n, r; e.dom.isEmpty(e.getBody()) && (e.setContent(""), n = (t = e).getBody(), r = n.firstChild && t.dom.isBlock(n.firstChild) ? n.firstChild : n, t.selection.setCursorLocation(r, 0)) }, pb = function (i, a, u) { return Ka([ec.firstPositionIn(u), ec.lastPositionIn(u)], function (e, t) { var n = Jh.normalizePosition(!0, e), r = Jh.normalizePosition(!1, t), o = Jh.normalizePosition(!1, a); return i ? ec.nextPosition(u, o).map(function (e) { return e.isEqual(r) && a.isEqual(n) }).getOr(!1) : ec.prevPosition(u, o).map(function (e) { return e.isEqual(n) && a.isEqual(r) }).getOr(!1) }).getOr(!0) }, hb = Nr("block", "position"), vb = Nr("from", "to"), bb = function (e, t) { var n = nr.fromDom(e), r = nr.fromDom(t.container()); return mb(n, r).map(function (e) { return hb(e, t) }) }, yb = function (o, i, e) { var t = bb(o, hu.fromRangeStart(e)), n = t.bind(function (e) { return ec.fromPosition(i, o, e.position()).bind(function (e) { return bb(o, e).map(function (e) { return t = o, n = i, r = e, Ao.isBr(r.position().getNode()) && !1 === Qm(r.block()) ? ec.positionIn(!1, r.block().dom()).bind(function (e) { return e.isEqual(r.position()) ? ec.fromPosition(n, t, e).bind(function (e) { return bb(t, e) }) : A.some(r) }).getOr(r) : r; var t, n, r }) }) }); return Ka([t, n], vb).filter(function (e) { return !1 === _r((r = e).from().block(), r.to().block()) && Lr((n = e).from().block()).bind(function (t) { return Lr(n.to().block()).filter(function (e) { return _r(t, e) }) }).isSome() && (t = e, !1 === Ao.isContentEditableFalse(t.from().block()) && !1 === Ao.isContentEditableFalse(t.to().block())); var t, n, r }) }, Cb = function (e, t, n) { return n.collapsed ? yb(e, t, n) : A.none() }, xb = function (e) { var t, n = (t = Ur(e), V(t, uo).fold(function () { return t }, function (e) { return t.slice(0, e) })); return M(n, Di), n }, wb = function (e, t) { var n = gd(t, e); return z(n.reverse(), Qm).each(Di) }, Nb = function (e, t, n, r) { if (Qm(n))return Pm(n), ec.firstPositionIn(n.dom()); 0 === F(Fr(r), function (e) { return !Qm(e) }).length && Qm(t) && Si(r, nr.fromTag("br")); var o = ec.prevPosition(n.dom(), hu.before(r.dom())); return M(xb(t), function (e) { Si(r, e) }), wb(e, t), o }, Eb = function (e, t, n) { if (Qm(n))return Di(n), Qm(t) && Pm(t), ec.firstPositionIn(t.dom()); var r = ec.lastPositionIn(n.dom()); return M(xb(t), function (e) { ki(n, e) }), wb(e, t), r }, Sb = function (e, t) { return Or(t, e) ? (n = gd(e, t), A.from(n[n.length - 1])) : A.none(); var n }, Tb = function (e, t) { ec.positionIn(e, t.dom()).map(function (e) { return e.getNode() }).map(nr.fromDom).filter(co).each(Di) }, kb = function (e, t, n) { return Tb(!0, t), Tb(!1, n), Sb(t, n).fold(m(Eb, e, t, n), m(Nb, e, t, n)) }, Ab = function (e, t, n, r) { return t ? kb(e, r, n) : kb(e, n, r) }, Rb = function (t, n) { var e, r = nr.fromDom(t.getBody()); return (e = Cb(r.dom(), n, t.selection.getRng()).bind(function (e) { return Ab(r, n, e.from().block(), e.to().block()) })).each(function (e) { t.selection.setRng(e.toRange()) }), e.isSome() }, Db = function (e, t) { var n = nr.fromDom(t), r = m(_r, e); return ji(n, ho, r).isSome() }, Bb = function (e, t) { var n, r, o = ec.prevPosition(e.dom(), hu.fromRangeStart(t)).isNone(), i = ec.nextPosition(e.dom(), hu.fromRangeEnd(t)).isNone(); return !(Db(n = e, (r = t).startContainer) || Db(n, r.endContainer)) && o && i }, _b = function (e) { var n, r, o, t, i = nr.fromDom(e.getBody()), a = e.selection.getRng(); return Bb(i, a) ? ((t = e).setContent(""), t.selection.setCursorLocation(), !0) : (n = i, r = e.selection, o = r.getRng(), Ka([mb(n, nr.fromDom(o.startContainer)), mb(n, nr.fromDom(o.endContainer))], function (e, t) { return !1 === _r(e, t) && (o.deleteContents(), Ab(n, !0, e, t).each(function (e) { r.setRng(e.toRange()) }), !0) }).getOr(!1)) }, Ob = function (e, t) { return !e.selection.isCollapsed() && _b(e) }, Pb = function (e) { return Ps(e).exists(co) }, Lb = function (e, t, n) { var r = F(gd(nr.fromDom(n.container()), t), uo), o = Z(r).getOr(t); return ec.fromPosition(e, o.dom(), n).filter(Pb) }, Ib = function (e, t) { return Ps(t).exists(co) || Lb(!0, e, t).isSome() }, Mb = function (e, t) { return (n = t, A.from(n.getNode(!0)).map(nr.fromDom)).exists(co) || Lb(!1, e, t).isSome(); var n }, Fb = m(Lb, !1), Ub = m(Lb, !0), zb = Rl([{remove: ["element"]}, {moveToElement: ["element"]}, {moveToPosition: ["position"]}]), Vb = function (e, t, n, r) { var o = r.getNode(!1 === t); return mb(nr.fromDom(e), nr.fromDom(n.getNode())).map(function (e) { return Qm(e) ? zb.remove(e.dom()) : zb.moveToElement(o) }).orThunk(function () { return A.some(zb.moveToElement(o)) }) }, Hb = function (u, s, c) { return ec.fromPosition(s, u, c).bind(function (e) { return a = e.getNode(), ho(nr.fromDom(a)) || mo(nr.fromDom(a)) ? A.none() : (t = u, o = e, i = function (e) { return so(nr.fromDom(e)) && !hs(r, o, t) }, Ss(!(n = s), r = c).fold(function () { return Ss(n, o).fold(q(!1), i) }, i) ? A.none() : s && Ao.isContentEditableFalse(e.getNode()) ? Vb(u, s, c, e) : !1 === s && Ao.isContentEditableFalse(e.getNode(!0)) ? Vb(u, s, c, e) : s && As(c) ? A.some(zb.moveToPosition(e)) : !1 === s && ks(c) ? A.some(zb.moveToPosition(e)) : A.none()); var t, n, r, o, i, a }) }, jb = function (r, e, o) { return i = e, a = o.getNode(!1 === i), u = i ? "after" : "before", Ao.isElement(a) && a.getAttribute("data-mce-caret") === u ? (t = e, n = o.getNode(!1 === e), t && Ao.isContentEditableFalse(n.nextSibling) ? A.some(zb.moveToElement(n.nextSibling)) : !1 === t && Ao.isContentEditableFalse(n.previousSibling) ? A.some(zb.moveToElement(n.previousSibling)) : A.none()).fold(function () { return Hb(r, e, o) }, A.some) : Hb(r, e, o).bind(function (e) { return t = r, n = o, e.fold(function (e) { return A.some(zb.remove(e)) }, function (e) { return A.some(zb.moveToElement(e)) }, function (e) { return hs(n, e, t) ? A.none() : A.some(zb.moveToPosition(e)) }); var t, n }); var t, n, i, a, u }, qb = function (a, u) { var e, t, n, r, o, i; return (e = a.getBody(), t = u, n = a.selection.getRng(), r = ws(t ? 1 : -1, e, n), o = hu.fromRangeStart(r), i = nr.fromDom(e), !1 === t && As(o) ? A.some(zb.remove(o.getNode(!0))) : t && ks(o) ? A.some(zb.remove(o.getNode())) : !1 === t && ks(o) && Mb(i, o) ? Fb(i, o).map(function (e) { return zb.remove(e.getNode()) }) : t && As(o) && Ib(i, o) ? Ub(i, o).map(function (e) { return zb.remove(e.getNode()) }) : jb(e, t, o)).map(function (e) { return e.fold((o = a, i = u, function (e) { return o._selectionOverrides.hideFakeCaret(), cg(o, i, nr.fromDom(e)), !0 }), (n = a, r = u, function (e) { var t = r ? hu.before(e) : hu.after(e); return n.selection.setRng(t.toRange()), !0 }), (t = a, function (e) { return t.selection.setRng(e.toRange()), !0 })); var t, n, r, o, i }).getOr(!1) }, $b = function (e, t) { var n, r = e.selection.getNode(); return !!Ao.isContentEditableFalse(r) && (n = nr.fromDom(e.getBody()), M(zi(n, ".mce-offscreen-selection"), Di), cg(e, t, nr.fromDom(e.selection.getNode())), gb(e), !0) }, Wb = function (e, t) { return e.selection.isCollapsed() ? qb(e, t) : $b(e, t) }, Kb = function (e) { var t, n = function (e, t) { for (; t && t !== e;) { if (Ao.isContentEditableTrue(t) || Ao.isContentEditableFalse(t))return t; t = t.parentNode } return null }(e.getBody(), e.selection.getNode()); return Ao.isContentEditableTrue(n) && e.dom.isBlock(n) && e.dom.isEmpty(n) && (t = e.dom.create("br", {"data-mce-bogus": "1"}), e.dom.setHTML(n, ""), n.appendChild(t), e.selection.setRng(hu.before(t).toRange())), !0 }, Xb = function (t, n) { return function (e) { return Xh(n, e).map(function (e) { return Av.setCaretPosition(t, e), !0 }).getOr(!1) } }, Yb = function (r, o, i, a) { var u = r.getBody(), s = m(Jh.isInlineTarget, r); r.undoManager.ignore(function () { var e, t, n; r.selection.setRng((e = i, t = a, (n = document.createRange()).setStart(e.container(), e.offset()), n.setEnd(t.container(), t.offset()), n)), r.execCommand("Delete"), hv(s, u, hu.fromRangeStart(r.selection.getRng())).map(yv).map(Xb(r, o)) }), r.nodeChanged() }, Gb = function (n, r, i, o) { var e, t, a = (e = n.getBody(), t = o.container(), ps(t, e) || e), u = m(Jh.isInlineTarget, n), s = hv(u, a, o); return s.bind(function (e) { return i ? e.fold(q(A.some(yv(e))), A.none, q(A.some(bv(e))), A.none) : e.fold(A.none, q(A.some(bv(e))), A.none, q(A.some(yv(e)))) }).map(Xb(n, r)).getOrThunk(function () { var t = ec.navigate(i, a, o), e = t.bind(function (e) { return hv(u, a, e) }); return s.isSome() && e.isSome() ? Jh.findRootInline(u, a, o).map(function (e) { return o = e, !!Ka([ec.firstPositionIn(o), ec.lastPositionIn(o)], function (e, t) { var n = Jh.normalizePosition(!0, e), r = Jh.normalizePosition(!1, t); return ec.nextPosition(o, n).map(function (e) { return e.isEqual(r) }).getOr(!0) }).getOr(!0) && (cg(n, i, nr.fromDom(e)), !0); var o }).getOr(!1) : e.bind(function (e) { return t.map(function (e) { return i ? Yb(n, r, o, e) : Yb(n, r, e, o), !0 }) }).getOr(!1) }) }, Jb = function (e, t, n) { if (e.selection.isCollapsed() && !1 !== e.settings.inline_boundaries) { var r = hu.fromRangeStart(e.selection.getRng()); return Gb(e, t, n, r) } return !1 }, Qb = function (e) { return 1 === Ur(e).length }, Zb = function (e, t, n, r) { var o, i, a, u, s = m(xg, t), c = W(F(r, s), function (e) { return e.dom() }); if (0 === c.length)cg(t, e, n); else { var l = (o = n.dom(), i = c, a = gg(!1), u = yg(i, a.dom()), Si(nr.fromDom(o), a), Di(nr.fromDom(o)), hu(u, 0)); t.selection.setRng(l.toRange()) } }, ey = function (r, o) { var t, e = nr.fromDom(r.getBody()), n = nr.fromDom(r.selection.getStart()), i = F((t = gd(n, e), V(t, uo).fold(q(t), function (e) { return t.slice(0, e) })), Qb); return ee(i).map(function (e) { var t, n = hu.fromRangeStart(r.selection.getRng()); return !(!pb(o, n, e.dom()) || Fu((t = e).dom()) && dg(t.dom()) || (Zb(o, r, e, i), 0)) }).getOr(!1) }, ty = function (e, t) { return !!e.selection.isCollapsed() && ey(e, t) }, ny = Nr("start", "end"), ry = Nr("rng", "table", "cells"), oy = Rl([{removeTable: ["element"]}, {emptyCells: ["cells"]}]), iy = function (e, t) { return Ki(nr.fromDom(e), "td,th", t) }, ay = function (e, t) { return $i(e, "table", t) }, uy = function (e) { return !1 === _r(e.start(), e.end()) }, sy = function (e, n) { return ay(e.start(), n).bind(function (t) { return ay(e.end(), n).bind(function (e) { return _r(t, e) ? A.some(t) : A.none() }) }) }, cy = function (e) { return zi(e, "td,th") }, ly = function (r, e) { var t = iy(e.startContainer, r), n = iy(e.endContainer, r); return e.collapsed ? A.none() : Ka([t, n], ny).fold(function () { return t.fold(function () { return n.bind(function (t) { return ay(t, r).bind(function (e) { return Z(cy(e)).map(function (e) { return ny(e, t) }) }) }) }, function (t) { return ay(t, r).bind(function (e) { return ee(cy(e)).map(function (e) { return ny(t, e) }) }) }) }, function (e) { return fy(r, e) ? A.none() : (n = r, ay((t = e).start(), n).bind(function (e) { return ee(cy(e)).map(function (e) { return ny(t.start(), e) }) })); var t, n }) }, fy = function (e, t) { return sy(t, e).isSome() }, dy = function (e, t) { var n, r, o, i, a = m(_r, e); return (n = t, r = a, o = iy(n.startContainer, r), i = iy(n.endContainer, r), Ka([o, i], ny).filter(uy).filter(function (e) { return fy(r, e) }).orThunk(function () { return ly(r, n) })).bind(function (e) { return sy(t = e, a).map(function (e) { return ry(t, e, cy(e)) }); var t }) }, my = function (e, t) { return V(e, function (e) { return _r(e, t) }) }, gy = function (n) { return (r = n, Ka([my(r.cells(), r.rng().start()), my(r.cells(), r.rng().end())], function (e, t) { return r.cells().slice(e, t + 1) })).map(function (e) { var t = n.cells(); return e.length === t.length ? oy.removeTable(n.table()) : oy.emptyCells(e) }); var r }, py = function (e, t) { return dy(e, t).bind(gy) }, hy = function (e, t) { return M(t, Pm), e.selection.setCursorLocation(t[0].dom(), 0), !0 }, vy = function (e, t) { return cg(e, !1, t), !0 }, by = function (n, e, r, t) { return Cy(e, t).fold(function () { return t = n, py(e, r).map(function (e) { return e.fold(m(vy, t), m(hy, t)) }); var t }, function (e) { return xy(n, e) }).getOr(!1) }, yy = function (e, t) { return z(gd(t, e), ho) }, Cy = function (e, t) { return z(gd(t, e), function (e) { return "caption" === ar(e) }) }, xy = function (e, t) { return Pm(t), e.selection.setCursorLocation(t.dom(), 0), A.some(!0) }, wy = function (u, s, c, l, f) { return ec.navigate(c, u.getBody(), f).bind(function (e) { return r = l, o = c, i = f, a = e, ec.firstPositionIn(r.dom()).bind(function (t) { return ec.lastPositionIn(r.dom()).map(function (e) { return o ? i.isEqual(t) && a.isEqual(e) : i.isEqual(e) && a.isEqual(t) }) }).getOr(!0) ? xy(u, l) : (t = l, n = e, Cy(s, nr.fromDom(n.getNode())).map(function (e) { return !1 === _r(e, t) })); var t, n, r, o, i, a }).or(A.some(!0)) }, Ny = function (a, u, s, e) { var c = hu.fromRangeStart(a.selection.getRng()); return yy(s, e).bind(function (e) { return Qm(e) ? xy(a, e) : (t = a, n = s, r = u, o = e, i = c, ec.navigate(r, t.getBody(), i).bind(function (e) { return yy(n, nr.fromDom(e.getNode())).map(function (e) { return !1 === _r(e, o) }) })); var t, n, r, o, i }) }, Ey = function (a, u, e) { var s = nr.fromDom(a.getBody()); return Cy(s, e).fold(function () { return Ny(a, u, s, e) }, function (e) { return t = a, n = u, r = s, o = e, i = hu.fromRangeStart(t.selection.getRng()), Qm(o) ? xy(t, o) : wy(t, r, n, o, i); var t, n, r, o, i }).getOr(!1) }, Sy = function (e, t) { var n, r, o, i, a, u = nr.fromDom(e.selection.getStart(!0)), s = ph(e); return e.selection.isCollapsed() && 0 === s.length ? Ey(e, t, u) : (n = e, r = u, o = nr.fromDom(n.getBody()), i = n.selection.getRng(), 0 !== (a = ph(n)).length ? hy(n, a) : by(n, o, i, r)) }, Ty = function (o, i) { o.on("keydown", function (e) { var t, n, r; !1 === e.isDefaultPrevented() && (t = o, n = i, r = e, fb([{ keyCode: um.BACKSPACE, action: lb(Wb, t, !1) }, {keyCode: um.DELETE, action: lb(Wb, t, !0)}, { keyCode: um.BACKSPACE, action: lb(Jb, t, n, !1) }, {keyCode: um.DELETE, action: lb(Jb, t, n, !0)}, { keyCode: um.BACKSPACE, action: lb(Sy, t, !1) }, {keyCode: um.DELETE, action: lb(Sy, t, !0)}, { keyCode: um.BACKSPACE, action: lb(Ob, t, !1) }, {keyCode: um.DELETE, action: lb(Ob, t, !0)}, { keyCode: um.BACKSPACE, action: lb(Rb, t, !1) }, {keyCode: um.DELETE, action: lb(Rb, t, !0)}, { keyCode: um.BACKSPACE, action: lb(ty, t, !1) }, {keyCode: um.DELETE, action: lb(ty, t, !0)}], r).each(function (e) { r.preventDefault() })) }), o.on("keyup", function (e) { var t, n; !1 === e.isDefaultPrevented() && (t = o, n = e, fb([{ keyCode: um.BACKSPACE, action: lb(Kb, t) }, {keyCode: um.DELETE, action: lb(Kb, t)}], n)) }) }, ky = function (e) { return A.from(e.dom.getParent(e.selection.getStart(!0), e.dom.isBlock)) }, Ay = function (e, t) { var n, r, o, i = t, a = e.dom, u = e.schema.getMoveCaretBeforeOnEnterElements(); if (t) { if (/^(LI|DT|DD)$/.test(t.nodeName)) { var s = function (e) { for (; e;) { if (1 === e.nodeType || 3 === e.nodeType && e.data && /[\r\n\s]/.test(e.data))return e; e = e.nextSibling } }(t.firstChild); s && /^(UL|OL|DL)$/.test(s.nodeName) && t.insertBefore(a.doc.createTextNode("\xa0"), t.firstChild) } if (o = a.createRng(), t.normalize(), t.hasChildNodes()) { for (n = new to(t, t); r = n.current();) { if (Ao.isText(r)) { o.setStart(r, 0), o.setEnd(r, 0); break } if (u[r.nodeName.toLowerCase()]) { o.setStartBefore(r), o.setEndBefore(r); break } i = r, r = n.next() } r || (o.setStart(i, 0), o.setEnd(i, 0)) } else Ao.isBr(t) ? t.nextSibling && a.isBlock(t.nextSibling) ? (o.setStartBefore(t), o.setEndBefore(t)) : (o.setStartAfter(t), o.setEndAfter(t)) : (o.setStart(t, 0), o.setEnd(t, 0)); e.selection.setRng(o), a.remove(void 0), e.selection.scrollIntoView(t) } }, Ry = function (e, t) { var n, r, o = e.getRoot(); for (n = t; n !== o && "false" !== e.getContentEditable(n);)"true" === e.getContentEditable(n) && (r = n), n = n.parentNode; return n !== o ? r : o }, Dy = ky, By = function (e) { return ky(e).fold(q(""), function (e) { return e.nodeName.toUpperCase() }) }, _y = function (e) { return ky(e).filter(function (e) { return mo(nr.fromDom(e)) }).isSome() }, Oy = function (e, t) { return e && e.parentNode && e.parentNode.nodeName === t }, Py = function (e) { return e && /^(OL|UL|LI)$/.test(e.nodeName) }, Ly = function (e) { var t = e.parentNode; return /^(LI|DT|DD)$/.test(t.nodeName) ? t : e }, Iy = function (e, t, n) { for (var r = e[n ? "firstChild" : "lastChild"]; r && !Ao.isElement(r);)r = r[n ? "nextSibling" : "previousSibling"]; return r === t }, My = function (e, t, n, r, o) { var i = e.dom, a = e.selection.getRng(); if (n !== e.getBody()) { var u; Py(u = n) && Py(u.parentNode) && (o = "LI"); var s, c, l = o ? t(o) : i.create("BR"); if (Iy(n, r, !0) && Iy(n, r, !1))Oy(n, "LI") ? i.insertAfter(l, Ly(n)) : i.replace(l, n); else if (Iy(n, r, !0))Oy(n, "LI") ? (i.insertAfter(l, Ly(n)), l.appendChild(i.doc.createTextNode(" ")), l.appendChild(n)) : n.parentNode.insertBefore(l, n); else if (Iy(n, r, !1))i.insertAfter(l, Ly(n)); else { n = Ly(n); var f = a.cloneRange(); f.setStartAfter(r), f.setEndAfter(n); var d = f.extractContents(); "LI" === o && (c = "LI", (s = d).firstChild && s.firstChild.nodeName === c) ? (l = d.firstChild, i.insertAfter(d, n)) : (i.insertAfter(d, n), i.insertAfter(l, n)) } i.remove(r), Ay(e, l) } }, Fy = function (e) { e.innerHTML = '
    ' }, Uy = function (e, t) { return e.nodeName === t || e.previousSibling && e.previousSibling.nodeName === t }, zy = function (e, t) { return t && e.isBlock(t) && !/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName) && !/^(fixed|absolute)/i.test(t.style.position) && "true" !== e.getContentEditable(t) }, Vy = function (e, t, n) { return !1 === Ao.isText(t) ? n : e ? 1 === n && t.data.charAt(n - 1) === fa ? 0 : n : n === t.data.length - 1 && t.data.charAt(n) === fa ? t.data.length : n }, Hy = function (e, t) { var n, r, o = e.getRoot(); for (n = t; n !== o && "false" !== e.getContentEditable(n);)"true" === e.getContentEditable(n) && (r = n), n = n.parentNode; return n !== o ? r : o }, jy = function (e, t) { var n = nl(e); n && n.toLowerCase() === t.tagName.toLowerCase() && e.dom.setAttribs(t, rl(e)) }, qy = function (a, e) { var t, u, s, i, c, n, r, o, l, f, d, m, g, p, h, v, b, y, C = a.dom, x = a.schema, w = x.getNonEmptyElements(), N = a.selection.getRng(), E = function (e) { var t, n, r, o = s, i = x.getTextInlineElements(); if (e || "TABLE" === f || "HR" === f ? (t = C.create(e || m), jy(a, t)) : t = c.cloneNode(!1), r = t, !1 === al(a))C.setAttrib(t, "style", null), C.setAttrib(t, "class", null); else do { if (i[o.nodeName]) { if (Fu(o))continue; n = o.cloneNode(!1), C.setAttrib(n, "id", ""), t.hasChildNodes() ? n.appendChild(t.firstChild) : r = n, t.appendChild(n) } } while ((o = o.parentNode) && o !== u); return Fy(r), t }, S = function (e) { var t, n, r, o; if (o = Vy(e, s, i), Ao.isText(s) && (e ? 0 < o : o < s.nodeValue.length))return !1; if (s.parentNode === c && g && !e)return !0; if (e && Ao.isElement(s) && s === c.firstChild)return !0; if (Uy(s, "TABLE") || Uy(s, "HR"))return g && !e || !g && e; for (t = new to(s, c), Ao.isText(s) && (e && 0 === o ? t.prev() : e || o !== s.nodeValue.length || t.next()); n = t.current();) { if (Ao.isElement(n)) { if (!n.getAttribute("data-mce-bogus") && (r = n.nodeName.toLowerCase(), w[r] && "br" !== r))return !1 } else if (Ao.isText(n) && !/^[ \t\r\n]*$/.test(n.nodeValue))return !1; e ? t.prev() : t.next() } return !0 }, T = function () { r = /^(H[1-6]|PRE|FIGURE)$/.test(f) && "HGROUP" !== d ? E(m) : E(), ul(a) && zy(C, l) && C.isEmpty(c) ? r = C.split(l, c) : C.insertAfter(r, c), Ay(a, r) }; Rh(C, N).each(function (e) { N.setStart(e.startContainer, e.startOffset), N.setEnd(e.endContainer, e.endOffset) }), s = N.startContainer, i = N.startOffset, m = nl(a), n = e.shiftKey, Ao.isElement(s) && s.hasChildNodes() && (g = i > s.childNodes.length - 1, s = s.childNodes[Math.min(i, s.childNodes.length - 1)] || s, i = g && Ao.isText(s) ? s.nodeValue.length : 0), (u = Hy(C, s)) && ((m && !n || !m && n) && (s = function (e, t, n, r, o) { var i, a, u, s, c, l, f, d = t || "P", m = e.dom, g = Hy(m, r); if (!(a = m.getParent(r, m.isBlock)) || !zy(m, a)) { if (l = (a = a || g) === e.getBody() || (f = a) && /^(TD|TH|CAPTION)$/.test(f.nodeName) ? a.nodeName.toLowerCase() : a.parentNode.nodeName.toLowerCase(), !a.hasChildNodes())return i = m.create(d), jy(e, i), a.appendChild(i), n.setStart(i, 0), n.setEnd(i, 0), i; for (s = r; s.parentNode !== a;)s = s.parentNode; for (; s && !m.isBlock(s);)s = (u = s).previousSibling; if (u && e.schema.isValidChild(l, d.toLowerCase())) { for (i = m.create(d), jy(e, i), u.parentNode.insertBefore(i, u), s = u; s && !m.isBlock(s);)c = s.nextSibling, i.appendChild(s), s = c; n.setStart(r, o), n.setEnd(r, o) } } return r }(a, m, N, s, i)), c = C.getParent(s, C.isBlock), l = c ? C.getParent(c.parentNode, C.isBlock) : null, f = c ? c.nodeName.toUpperCase() : "", "LI" !== (d = l ? l.nodeName.toUpperCase() : "") || e.ctrlKey || (l = (c = l).parentNode, f = d), /^(LI|DT|DD)$/.test(f) && C.isEmpty(c) ? My(a, E, l, c, m) : m && c === a.getBody() || (m = m || "P", pa(c) ? (r = Ea(c), C.isEmpty(c) && Fy(c), Ay(a, r)) : S() ? T() : S(!0) ? (r = c.parentNode.insertBefore(E(), c), Ay(a, Uy(c, "HR") ? r : c)) : ((t = (b = N, y = b.cloneRange(), y.setStart(b.startContainer, Vy(!0, b.startContainer, b.startOffset)), y.setEnd(b.endContainer, Vy(!1, b.endContainer, b.endOffset)), y).cloneRange()).setEndAfter(c), function (e) { for (; Ao.isText(e) && (e.nodeValue = e.nodeValue.replace(/^[\r\n]+/, "")), e = e.firstChild;); }(o = t.extractContents()), r = o.firstChild, C.insertAfter(o, c), function (e, t, n) { var r, o = n, i = []; if (o) { for (; o = o.firstChild;) { if (e.isBlock(o))return; Ao.isElement(o) && !t[o.nodeName.toLowerCase()] && i.push(o) } for (r = i.length; r--;)!(o = i[r]).hasChildNodes() || o.firstChild === o.lastChild && "" === o.firstChild.nodeValue ? e.remove(o) : (a = o) && "A" === a.nodeName && 0 === Xt.trim(da(a.innerText || a.textContent)).length && e.remove(o); var a } }(C, w, r), p = C, (h = c).normalize(), (v = h.lastChild) && !/^(left|right)$/gi.test(p.getStyle(v, "float", !0)) || p.add(h, "br"), C.isEmpty(c) && Fy(c), r.normalize(), C.isEmpty(r) ? (C.remove(r), T()) : Ay(a, r)), C.setAttrib(r, "id", ""), a.fire("NewBlock", {newBlock: r}))) }, $y = function (e, t, n) { var r = e.create("span", {}, " "); n.parentNode.insertBefore(r, n), t.scrollIntoView(r), e.remove(r) }, Wy = function (e, t, n, r) { var o = e.createRng(); r ? (o.setStartBefore(n), o.setEndBefore(n)) : (o.setStartAfter(n), o.setEndAfter(n)), t.setRng(o) }, Ky = function (e, t) { var n, r, o = e.selection, i = e.dom, a = o.getRng(); Rh(i, a).each(function (e) { a.setStart(e.startContainer, e.startOffset), a.setEnd(e.endContainer, e.endOffset) }); var u = a.startOffset, s = a.startContainer; if (1 === s.nodeType && s.hasChildNodes()) { var c = u > s.childNodes.length - 1; s = s.childNodes[Math.min(u, s.childNodes.length - 1)] || s, u = c && 3 === s.nodeType ? s.nodeValue.length : 0 } var l = i.getParent(s, i.isBlock), f = l ? i.getParent(l.parentNode, i.isBlock) : null, d = f ? f.nodeName.toUpperCase() : "", m = t && t.ctrlKey; "LI" !== d || m || (l = f), s && 3 === s.nodeType && u >= s.nodeValue.length && (function (e, t, n) { for (var r, o = new to(t, n), i = e.getNonEmptyElements(); r = o.next();)if (i[r.nodeName.toLowerCase()] || 0 < r.length)return !0 }(e.schema, s, l) || (n = i.create("br"), a.insertNode(n), a.setStartAfter(n), a.setEndAfter(n), r = !0)), n = i.create("br"), a.insertNode(n), $y(i, o, n), Wy(i, o, n, r), e.undoManager.add() }, Xy = function (e, t) { var n = nr.fromTag("br"); Si(nr.fromDom(t), n), e.undoManager.add() }, Yy = function (e, t) { Gy(e.getBody(), t) || Ti(nr.fromDom(t), nr.fromTag("br")); var n = nr.fromTag("br"); Ti(nr.fromDom(t), n), $y(e.dom, e.selection, n.dom()), Wy(e.dom, e.selection, n.dom(), !1), e.undoManager.add() }, Gy = function (e, t) { return n = hu.after(t), !!Ao.isBr(n.getNode()) || ec.nextPosition(e, hu.after(t)).map(function (e) { return Ao.isBr(e.getNode()) }).getOr(!1); var n }, Jy = function (e) { return e && "A" === e.nodeName && "href"in e }, Qy = function (e) { return e.fold(q(!1), Jy, Jy, q(!1)) }, Zy = function (e, t) { t.fold(x, m(Xy, e), m(Yy, e), x) }, eC = function (e, t) { var n, r, o, i = (n = e, r = m(Jh.isInlineTarget, n), o = hu.fromRangeStart(n.selection.getRng()), hv(r, n.getBody(), o).filter(Qy)); i.isSome() ? i.each(m(Zy, e)) : Ky(e, t) }, tC = function (e, t) { return Dy(e).filter(function (e) { return 0 < t.length && Dr(nr.fromDom(e), t) }).isSome() }, nC = function (e) { return tC(e, ol(e)) }, rC = function (e) { return tC(e, il(e)) }, oC = Rl([{br: []}, {block: []}, {none: []}]), iC = function (e, t) { return rC(e) }, aC = function (n) { return function (e, t) { return "" === nl(e) === n } }, uC = function (n) { return function (e, t) { return _y(e) === n } }, sC = function (n, r) { return function (e, t) { return By(e) === n.toUpperCase() === r } }, cC = function (e) { return sC("pre", e) }, lC = function (n) { return function (e, t) { return tl(e) === n } }, fC = function (e, t) { return nC(e) }, dC = function (e, t) { return t }, mC = function (e) { var t = nl(e), n = Ry(e.dom, e.selection.getStart()); return n && e.schema.isValidChild(n.nodeName, t || "P") }, gC = function (e, t) { return function (n, r) { return U(e, function (e, t) { return e && t(n, r) }, !0) ? A.some(t) : A.none() } }, pC = function (e, t) { return Qh([gC([iC], oC.none()), gC([sC("summary", !0)], oC.br()), gC([cC(!0), lC(!1), dC], oC.br()), gC([cC(!0), lC(!1)], oC.block()), gC([cC(!0), lC(!0), dC], oC.block()), gC([cC(!0), lC(!0)], oC.br()), gC([uC(!0), dC], oC.br()), gC([uC(!0)], oC.block()), gC([aC(!0), dC, mC], oC.block()), gC([aC(!0)], oC.br()), gC([fC], oC.br()), gC([aC(!1), dC], oC.br()), gC([mC], oC.block())], [e, t.shiftKey]).getOr(oC.none()) }, hC = function (e, t) { pC(e, t).fold(function () { eC(e, t) }, function () { qy(e, t) }, x) }, vC = function (o) { o.on("keydown", function (e) { var t, n, r; e.keyCode === um.ENTER && (t = o, (n = e).isDefaultPrevented() || (n.preventDefault(), (r = t.undoManager).typing && (r.typing = !1, r.add()), t.undoManager.transact(function () { !1 === t.selection.isCollapsed() && t.execCommand("Delete"), hC(t, n) }))) }) }, bC = function (n, r) { var e = r.container(), t = r.offset(); return Ao.isText(e) ? (e.insertData(t, n), A.some(du(e, t + n.length))) : Ps(r).map(function (e) { var t = nr.fromText(n); return r.isAtEnd() ? Ti(e, t) : Si(e, t), du(t.dom(), n.length) }) }, yC = m(bC, "\xa0"), CC = m(bC, " "), xC = function (t, e, n) { var r = F(gd(nr.fromDom(n.container()), e), uo); return Z(r).exists(function (e) { return ec.navigate(t, e.dom(), n).isNone() }) }, wC = m(xC, !1), NC = m(xC, !0), EC = function (e) { return du.isTextPosition(e) && !e.isAtStart() && !e.isAtEnd() }, SC = function (e, t) { var n = F(gd(nr.fromDom(t.container()), e), uo); return Z(n).getOr(e) }, TC = function (e, t) { return EC(t) ? Os(t) : Os(t) || ec.prevPosition(SC(e, t).dom(), t).exists(Os) }, kC = function (e, t) { return EC(t) ? _s(t) : _s(t) || ec.nextPosition(SC(e, t).dom(), t).exists(_s) }, AC = function (e) { return Ps(e).bind(function (e) { return qi(e, sr) }).exists(function (e) { return t = xr(e, "white-space"), I(["pre", "pre-line", "pre-wrap"], t); var t }) }, RC = function (e, t) { return !AC(t) && (wC(n = e, r = t) || NC(n, r) || Mb(n, r) || Ib(n, r) || TC(e, t) || kC(e, t)); var n, r }, DC = function (e, t) { return ns(e.charAt(t)) }, BC = function (e) { var t = e.container(); return Ao.isText(t) && $n(t.data, "\xa0") }, _C = function (e, t, n) { var r, o, i = du(t, 0); return DC(n, 0) && (r = e, AC(o = i) || !(wC(r, o) || Mb(r, o) || TC(r, o))) ? " " + n.slice(1) : n }, OC = function (e, t, n) { var r, o, i = du(t, n.length); return DC(n, n.length - 1) && (r = e, AC(o = i) || !(NC(r, o) || Ib(r, o) || kC(r, o))) ? n.slice(0, -1) + " " : n }, PC = function (i, e) { return A.some(e).filter(BC).bind(function (e) { var t, n = e.container(), r = n.nodeValue, o = _C(i, n, (t = OC(i, n, r), W(t.split(""), function (e, t, n) { return ns(e) && 0 < t && t < n.length - 1 && os(n[t - 1]) && os(n[t + 1]) ? " " : e }).join(""))); return r !== o ? (e.container().nodeValue = o, A.some(e)) : A.none() }) }, LC = function (t) { return function (e) { return t.selection.setRng(e.toRange()), t.nodeChanged(), !0 } }, IC = function (n) { var t, r, o, i = hu.fromRangeStart(n.selection.getRng()), a = nr.fromDom(n.getBody()); if (n.selection.isCollapsed()) { var e = m(Jh.isInlineTarget, n), u = hu.fromRangeStart(n.selection.getRng()); return hv(e, n.getBody(), u).bind((o = a, function (e) { return e.fold(function (e) { return ec.prevPosition(o.dom(), hu.before(e)) }, function (e) { return ec.firstPositionIn(e) }, function (e) { return ec.lastPositionIn(e) }, function (e) { return ec.nextPosition(o.dom(), hu.after(e)) }) })).bind((t = a, r = i, function (e) { return RC(t, e) ? yC(r) : CC(r) })).fold(function () { return (e = a, t = i, RC(e, t) ? yC(t) : CC(t)).map(LC(n)).getOr(!1); var e, t }, LC(n)) } return !1 }, MC = function (r) { r.on("keydown", function (e) { var t, n; !1 === e.isDefaultPrevented() && (t = r, n = e, fb([{ keyCode: um.SPACEBAR, action: lb(IC, t) }], n).each(function (e) { n.preventDefault() })) }) }, FC = function (e, t) { var n; t.hasAttribute("data-mce-caret") && (Ea(t), (n = e).selection.setRng(n.selection.getRng()), e.selection.scrollIntoView(t)) }, UC = function (e, t) { var n, r = (n = e, Wi(nr.fromDom(n.getBody()), "*[data-mce-caret]").fold(q(null), function (e) { return e.dom() })); if (r)return "compositionstart" === t.type ? (t.preventDefault(), t.stopPropagation(), void FC(e, r)) : void(ba(r) && (FC(e, r), e.undoManager.add())) }, zC = function (e) { e.on("keyup compositionstart", m(UC, e)) }, VC = function (r) { r.on("input", function (e) { var t, n; !1 === e.isComposing && (t = r, n = nr.fromDom(t.getBody()), t.selection.isCollapsed() && PC(n, du.fromRangeStart(t.selection.getRng())).each(function (e) { t.selection.setRng(e.toRange()) })) }) }, HC = function (e) { var t = Av.setupSelectedState(e); zC(e), db(e, t), Ty(e, t), vC(e), MC(e), VC(e) }; function jC(u) { var s, n, r, o = Xt.each, c = um.BACKSPACE, l = um.DELETE, f = u.dom, d = u.selection, e = u.settings, t = u.parser, i = fe.gecko, a = fe.ie, m = fe.webkit, g = "data:text/mce-internal,", p = a ? "Text" : "URL", h = function (e, t) { try { u.getDoc().execCommand(e, !1, t) } catch (n) { } }, v = function (e) { return e.isDefaultPrevented() }, b = function () { u.shortcuts.add("meta+a", null, "SelectAll") }, y = function () { u.on("keydown", function (e) { if (!v(e) && e.keyCode === c && d.isCollapsed() && 0 === d.getRng().startOffset) { var t = d.getNode().previousSibling; if (t && t.nodeName && "table" === t.nodeName.toLowerCase())return e.preventDefault(), !1 } }) }, C = function () { u.inline || (u.contentStyles.push("body {min-height: 150px}"), u.on("click", function (e) { var t; if ("HTML" === e.target.nodeName) { if (11 < fe.ie)return void u.getBody().focus(); t = u.selection.getRng(), u.getBody().focus(), u.selection.setRng(t), u.selection.normalize(), u.nodeChanged() } })) }; return u.on("keydown", function (e) { var t, n, r, o, i; if (!v(e) && e.keyCode === um.BACKSPACE && (n = (t = d.getRng()).startContainer, r = t.startOffset, o = f.getRoot(), i = n, t.collapsed && 0 === r)) { for (; i && i.parentNode && i.parentNode.firstChild === i && i.parentNode !== o;)i = i.parentNode; "BLOCKQUOTE" === i.tagName && (u.formatter.toggle("blockquote", null, i), (t = f.createRng()).setStart(n, 0), t.setEnd(n, 0), d.setRng(t)) } }), s = function (e) { var t = f.create("body"), n = e.cloneContents(); return t.appendChild(n), d.serializer.serialize(t, {format: "html"}) }, u.on("keydown", function (e) { var t, n, r, o, i, a = e.keyCode; if (!v(e) && (a === l || a === c)) { if (t = u.selection.isCollapsed(), n = u.getBody(), t && !f.isEmpty(n))return; if (!t && (r = u.selection.getRng(), o = s(r), (i = f.createRng()).selectNode(u.getBody()), o !== s(i)))return; e.preventDefault(), u.setContent(""), n.firstChild && f.isBlock(n.firstChild) ? u.selection.setCursorLocation(n.firstChild, 0) : u.selection.setCursorLocation(n, 0), u.nodeChanged() } }), fe.windowsPhone || u.on("keyup focusin mouseup", function (e) { um.modifierPressed(e) || d.normalize() }, !0), m && (u.inline || f.bind(u.getDoc(), "mousedown mouseup", function (e) { var t; if (e.target === u.getDoc().documentElement)if (t = d.getRng(), u.getBody().focus(), "mousedown" === e.type) { if (va(t.startContainer))return; d.placeCaretAt(e.clientX, e.clientY) } else d.setRng(t) }), u.on("click", function (e) { var t = e.target; /^(IMG|HR)$/.test(t.nodeName) && "false" !== f.getContentEditableParent(t) && (e.preventDefault(), u.selection.select(t), u.nodeChanged()), "A" === t.nodeName && f.hasClass(t, "mce-item-anchor") && (e.preventDefault(), d.select(t)) }), e.forced_root_block && u.on("init", function () { h("DefaultParagraphSeparator", nl(u)) }), u.on("init", function () { u.dom.bind(u.getBody(), "submit", function (e) { e.preventDefault() }) }), y(), t.addNodeFilter("br", function (e) { for (var t = e.length; t--;)"Apple-interchange-newline" === e[t].attr("class") && e[t].remove() }), fe.iOS ? (u.inline || u.on("keydown", function () { document.activeElement === document.body && u.getWin().focus() }), C(), u.on("click", function (e) { var t = e.target; do { if ("A" === t.tagName)return void e.preventDefault() } while (t = t.parentNode) }), u.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")) : b()), 11 <= fe.ie && (C(), y()), fe.ie && (b(), h("AutoUrlDetect", !1), u.on("dragstart", function (e) { var t, n, r; (t = e).dataTransfer && (u.selection.isCollapsed() && "IMG" === t.target.tagName && d.select(t.target), 0 < (n = u.selection.getContent()).length && (r = g + escape(u.id) + "," + escape(n), t.dataTransfer.setData(p, r))) }), u.on("drop", function (e) { if (!v(e)) { var t = (i = e).dataTransfer && (a = i.dataTransfer.getData(p)) && 0 <= a.indexOf(g) ? (a = a.substr(g.length).split(","), { id: unescape(a[0]), html: unescape(a[1]) }) : null; if (t && t.id !== u.id) { e.preventDefault(); var n = Xp(e.x, e.y, u.getDoc()); d.setRng(n), r = t.html, o = !0, u.queryCommandSupported("mceInsertClipboardContent") ? u.execCommand("mceInsertClipboardContent", !1, { content: r, internal: o }) : u.execCommand("mceInsertContent", !1, r) } } var r, o, i, a })), i && (u.on("keydown", function (e) { if (!v(e) && e.keyCode === c) { if (!u.getBody().getElementsByTagName("hr").length)return; if (d.isCollapsed() && 0 === d.getRng().startOffset) { var t = d.getNode(), n = t.previousSibling; if ("HR" === t.nodeName)return f.remove(t), void e.preventDefault(); n && n.nodeName && "hr" === n.nodeName.toLowerCase() && (f.remove(n), e.preventDefault()) } } }), Range.prototype.getClientRects || u.on("mousedown", function (e) { if (!v(e) && "HTML" === e.target.nodeName) { var t = u.getBody(); t.blur(), he.setEditorTimeout(u, function () { t.focus() }) } }), n = function () { var e = f.getAttribs(d.getStart().cloneNode(!1)); return function () { var t = d.getStart(); t !== u.getBody() && (f.setAttrib(t, "style", null), o(e, function (e) { t.setAttributeNode(e.cloneNode(!0)) })) } }, r = function () { return !d.isCollapsed() && f.getParent(d.getStart(), f.isBlock) !== f.getParent(d.getEnd(), f.isBlock) }, u.on("keypress", function (e) { var t; if (!v(e) && (8 === e.keyCode || 46 === e.keyCode) && r())return t = n(), u.getDoc().execCommand("delete", !1, null), t(), e.preventDefault(), !1 }), f.bind(u.getDoc(), "cut", function (e) { var t; !v(e) && r() && (t = n(), he.setEditorTimeout(u, function () { t() })) }), e.readonly || u.on("BeforeExecCommand MouseDown", function () { h("StyleWithCSS", !1), h("enableInlineTableEditing", !1), e.object_resizing || h("enableObjectResizing", !1) }), u.on("SetContent ExecCommand", function (e) { "setcontent" !== e.type && "mceInsertLink" !== e.command || o(f.select("a"), function (e) { var t = e.parentNode, n = f.getRoot(); if (t.lastChild === e) { for (; t && !f.isBlock(t);) { if (t.parentNode.lastChild !== t || t === n)return; t = t.parentNode } f.add(t, "br", {"data-mce-bogus": 1}) } }) }), u.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"), fe.mac && u.on("keydown", function (e) { !um.metaKeyPressed(e) || e.shiftKey || 37 !== e.keyCode && 39 !== e.keyCode || (e.preventDefault(), u.selection.getSel().modify("move", 37 === e.keyCode ? "backward" : "forward", "lineboundary")) }), y()), { refreshContentEditable: function () { }, isHidden: function () { var e; return !i || u.removed ? 0 : !(e = u.selection.getSel()) || !e.rangeCount || 0 === e.rangeCount } } } var qC = function (e) { return Ao.isElement(e) && lo(nr.fromDom(e)) }, $C = function (t) { t.on("click", function (e) { 3 <= e.detail && function (e) { var t = e.selection.getRng(), n = du.fromRangeStart(t), r = du.fromRangeEnd(t); if (du.isElementPosition(n)) { var o = n.container(); qC(o) && ec.firstPositionIn(o).each(function (e) { return t.setStart(e.container(), e.offset()) }) } du.isElementPosition(r) && (o = n.container(), qC(o) && ec.lastPositionIn(o).each(function (e) { return t.setEnd(e.container(), e.offset()) })), e.selection.setRng(ep(t)) }(t) }) }, WC = function (e) { var t, n; (t = e).on("click", function (e) { t.dom.getParent(e.target, "details") && e.preventDefault() }), (n = e).parser.addNodeFilter("details", function (e) { M(e, function (e) { e.attr("data-mce-open", e.attr("open")), e.attr("open", "open") }) }), n.serializer.addNodeFilter("details", function (e) { M(e, function (e) { var t = e.attr("data-mce-open"); e.attr("open", k(t) ? t : null), e.attr("data-mce-open", null) }) }) }, KC = di.DOM, XC = function (e) { var t; e.bindPendingEventDelegates(), e.initialized = !0, e.fire("init"), e.focus(!0), e.nodeChanged({initial: !0}), e.execCallback("init_instance_callback", e), (t = e).settings.auto_focus && he.setEditorTimeout(t, function () { var e; (e = !0 === t.settings.auto_focus ? t : t.editorManager.get(t.settings.auto_focus)).destroyed || e.focus() }, 100) }, YC = function (t, e) { var n, r, u, o, i, a, s, c, l, f = t.settings, d = t.getElement(), m = t.getDoc(); f.inline || (t.getElement().style.visibility = t.orgVisibility), e || t.inline || (m.open(), m.write(t.iframeHTML), m.close()), t.inline && (t.on("remove", function () { var e = this.getBody(); KC.removeClass(e, "mce-content-body"), KC.removeClass(e, "mce-edit-focus"), KC.setAttrib(e, "contentEditable", null) }), KC.addClass(d, "mce-content-body"), t.contentDocument = m = f.content_document || document, t.contentWindow = f.content_window || window, t.bodyElement = d, t.contentAreaContainer = d, f.content_document = f.content_window = null, f.root_name = d.nodeName.toLowerCase()), (n = t.getBody()).disabled = !0, t.readonly = f.readonly, t.readonly || (t.inline && "static" === KC.getStyle(n, "position", !0) && (n.style.position = "relative"), n.contentEditable = t.getParam("content_editable_state", !0)), n.disabled = !1, t.editorUpload = ld(t), t.schema = Zo(f), t.dom = di(m, { keep_values: !0, url_converter: t.convertURL, url_converter_scope: t, hex_colors: f.force_hex_style_colors, class_filter: f.class_filter, update_styles: !0, root_element: t.inline ? t.getBody() : null, collect: function () { return t.inline }, schema: t.schema, contentCssCors: bl(t), onSetAttrib: function (e) { t.fire("SetAttrib", e) } }), t.parser = ((o = Bp((u = t).settings, u.schema)).addAttributeFilter("src,href,style,tabindex", function (e, t) { for (var n, r, o, i = e.length, a = u.dom; i--;)if (r = (n = e[i]).attr(t), o = "data-mce-" + t, !n.attributes.map[o]) { if (0 === r.indexOf("data:") || 0 === r.indexOf("blob:"))continue; "style" === t ? ((r = a.serializeStyle(a.parseStyle(r), n.name)).length || (r = null), n.attr(o, r), n.attr(t, r)) : "tabindex" === t ? (n.attr(o, r), n.attr(t, null)) : n.attr(o, u.convertURL(r, t, n.name)) } }), o.addNodeFilter("script", function (e) { for (var t, n, r = e.length; r--;)0 !== (n = (t = e[r]).attr("type") || "no/type").indexOf("mce-") && t.attr("type", "mce-" + n) }), o.addNodeFilter("#cdata", function (e) { for (var t, n = e.length; n--;)(t = e[n]).type = 8, t.name = "#comment", t.value = "[CDATA[" + t.value + "]]" }), o.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div", function (e) { for (var t, n = e.length, r = u.schema.getNonEmptyElements(); n--;)(t = e[n]).isEmpty(r) && 0 === t.getAll("br").length && (t.append(new Hc("br", 1)).shortEnded = !0) }), o), t.serializer = Ip(f, t), t.selection = Fh(t.dom, t.getWin(), t.serializer, t), t.annotator = Lc(t), t.formatter = pp(t), t.undoManager = Dm(t), t._nodeChangeDispatcher = new Td(t), t._selectionOverrides = mm(t), WC(t), $C(t), HC(t), yd(t), t.fire("PreInit"), f.browser_spellcheck || f.gecko_spellcheck || (m.body.spellcheck = !1, KC.setAttrib(n, "spellcheck", "false")), t.quirks = jC(t), t.fire("PostRender"), f.directionality && (n.dir = f.directionality), f.protect && t.on("BeforeSetContent", function (t) { Xt.each(f.protect, function (e) { t.content = t.content.replace(e, function (e) { return "\x3c!--mce:protected " + escape(e) + "--\x3e" }) }) }), t.on("SetContent", function () { t.addVisual(t.getBody()) }), t.load({ initial: !0, format: "html" }), t.startContent = t.getContent({format: "raw"}), t.on("compositionstart compositionend", function (e) { t.composing = "compositionstart" === e.type }), 0 < t.contentStyles.length && (r = "", Xt.each(t.contentStyles, function (e) { r += e + "\r\n" }), t.dom.addStyle(r)), (i = t, i.inline ? KC.styleSheetLoader : i.dom.styleSheetLoader).loadAll(t.contentCSS, function (e) { XC(t) }, function (e) { XC(t) }), f.content_style && (a = t, s = f.content_style, c = nr.fromDom(a.getDoc().head), l = nr.fromTag("style"), vr(l, "type", "text/css"), ki(l, nr.fromText(s)), ki(c, l)) }, GC = di.DOM, JC = function (e, t) { var n, r, o, i, a = e.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"), u = (n = e.id, r = a, t.height, o = Yc(e), i = nr.fromTag("iframe"), br(i, o), br(i, { id: n + "_ifr", frameBorder: "0", allowTransparency: "true", title: r }), Mi(i, "tox-edit-area__iframe"), i).dom(); u.onload = function () { u.onload = null, e.fire("load") }; var s, c, l, f, d = function (e, t) { if (document.domain !== window.location.hostname && fe.ie && fe.ie < 12) { var n = cd.uuid("mce"); e[n] = function () { YC(e) }; var r = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinymce.get("' + e.id + '");document.write(ed.iframeHTML);document.close();ed.' + n + "(true);})()"; return GC.setAttrib(t, "src", r), !0 } return !1 }(e, u); return e.contentAreaContainer = t.iframeContainer, e.iframeElement = u, e.iframeHTML = (f = Gc(s = e) + "", Jc(s) !== s.documentBaseUrl && (f += ''), f += '', c = Qc(s), l = Zc(s), el(s) && (f += ''), f += '
    '), GC.add(t.iframeContainer, u), d }, QC = function (e, t) { var n = JC(e, t); t.editorContainer && (GC.get(t.editorContainer).style.display = e.orgDisplay, e.hidden = GC.isHidden(t.editorContainer)), e.getElement().style.display = "none", GC.setAttrib(e.id, "aria-hidden", "true"), n || YC(e) }, ZC = di.DOM, ex = function (t, n, e) { var r, o, i = Xf.get(e); if (r = Xf.urls[e] || t.documentBaseUrl.replace(/\/$/, ""), e = Xt.trim(e), i && -1 === Xt.inArray(n, e)) { if (Xt.each(Xf.dependencies(e), function (e) { ex(t, n, e) }), t.plugins[e])return; o = new i(t, r, t.$), (t.plugins[e] = o).init && (o.init(t, r), n.push(e)) } }, tx = function (e) { return e.replace(/^\-/, "") }, nx = function (e) { return {editorContainer: e, iframeContainer: e} }, rx = function (e) { var t, n, r = e.getElement(); return e.inline ? nx(null) : (t = r, n = ZC.create("div"), ZC.insertAfter(n, t), nx(n)) }, ox = function (t) { var e, n, r, o, i, a, u, s, c, l, f, d, m, g, p = t.settings; return t.fire("ScriptsLoaded"), o = (n = t).settings.theme, k(o) ? (n.settings.theme = tx(o), r = Yf.get(o), n.theme = new r(n, Yf.urls[o]), n.theme.init && n.theme.init(n, Yf.urls[o] || n.documentBaseUrl.replace(/\/$/, ""), n.$)) : n.theme = {}, i = t, a = [], Xt.each(i.settings.plugins.split(/[ ,]/), function (e) { ex(i, a, tx(e)) }), u = t, s = Xt.trim(u.settings.icons), dr(Kf.get(s).icons, function (e, t) { u.ui.registry.addIcon(t, e) }), m = (c = t).settings, g = c.getElement(), c.orgDisplay = g.style.display, e = k(m.theme) ? c.theme.renderUI() : O(m.theme) ? (d = (l = c).getElement(), (f = l.settings.theme(l, d)).editorContainer.nodeType && (f.editorContainer.id = f.editorContainer.id || l.id + "_parent"), f.iframeContainer && f.iframeContainer.nodeType && (f.iframeContainer.id = f.iframeContainer.id || l.id + "_iframecontainer"), f.height = f.iframeHeight ? f.iframeHeight : d.offsetHeight, f) : rx(c), t.editorContainer = e.editorContainer ? e.editorContainer : null, p.content_css && Xt.each(Xt.explode(p.content_css), function (e) { t.contentCSS.push(t.documentBaseURI.toAbsolute(e)) }), t.inline ? YC(t) : QC(t, e) }, ix = di.DOM, ax = function (e) { return "-" === e.charAt(0) }, ux = function (a, u) { var s = vi.ScriptLoader; !function (e, t, n, r) { var o = t.settings, i = o.theme; if (k(i)) { if (!ax(i) && !Yf.urls.hasOwnProperty(i)) { var a = o.theme_url; a ? Yf.load(i, t.documentBaseURI.toAbsolute(a)) : Yf.load(i, "themes/" + i + "/theme" + n + ".js") } e.loadQueue(function () { Yf.waitFor(i, r) }) } else r() }(s, a, u, function () { var e, t, n, r, o, i; e = s, n = yl(t = a), r = Cl(t), !1 === wi.hasCode(n) && "en" !== n && ("" !== r ? e.add(r) : e.add(t.editorManager.baseURL + "/langs/" + n + ".js")), function (e, t) { var n = e.icons; if (k(n)) { var r = t.editorManager.baseURL + "/icons/" + Xt.trim(n) + "/icons.js"; vi.ScriptLoader.add(r) } }(a.settings, a), o = a.settings, i = u, Xt.isArray(o.plugins) && (o.plugins = o.plugins.join(" ")), Xt.each(o.external_plugins, function (e, t) { Xf.load(t, e), o.plugins += " " + t }), Xt.each(o.plugins.split(/[ ,]/), function (e) { if ((e = Xt.trim(e)) && !Xf.urls[e])if (ax(e)) { e = e.substr(1, e.length); var t = Xf.dependencies(e); Xt.each(t, function (e) { var t = {prefix: "plugins/", resource: e, suffix: "/plugin" + i + ".js"}; e = Xf.createUrl(t, e), Xf.load(e.resource, e) }) } else Xf.load(e, {prefix: "plugins/", resource: e, suffix: "/plugin" + i + ".js"}) }), s.loadQueue(function () { a.removed || ox(a) }, a, function (e) { jf(a, e[0]), a.removed || ox(a) }) }) }, sx = function (t) { var e = t.settings, n = t.id; wi.setCode(yl(t)); var r = function () { ix.unbind(window, "ready", r), t.render() }; if (Se.Event.domLoaded) { if (t.getElement() && fe.contentEditable) { e.inline ? t.inline = !0 : (t.orgVisibility = t.getElement().style.visibility, t.getElement().style.visibility = "hidden"); var o = t.getElement().form || ix.getParent(n, "form"); o && (t.formElement = o, e.hidden_input && !/TEXTAREA|INPUT/i.test(t.getElement().nodeName) && (ix.insertAfter(ix.create("input", { type: "hidden", name: n }), n), t.hasHiddenInput = !0), t.formEventDelegate = function (e) { t.fire(e.type, e) }, ix.bind(o, "submit reset", t.formEventDelegate), t.on("reset", function () { t.setContent(t.startContent, {format: "raw"}) }), !e.submit_patch || o.submit.nodeType || o.submit.length || o._mceOldSubmit || (o._mceOldSubmit = o.submit, o.submit = function () { return t.editorManager.triggerSave(), t.setDirty(!1), o._mceOldSubmit(o) })), t.windowManager = Mf(t), t.notificationManager = If(t), "xml" === e.encoding && t.on("GetContent", function (e) { e.save && (e.content = ix.encode(e.content)) }), e.add_form_submit_trigger && t.on("submit", function () { t.initialized && t.save() }), e.add_unload_trigger && (t._beforeUnload = function () { !t.initialized || t.destroyed || t.isHidden() || t.save({ format: "raw", no_events: !0, set_dirty: !1 }) }, t.editorManager.on("BeforeUnload", t._beforeUnload)), t.editorManager.add(t), ux(t, t.suffix) } } else ix.bind(window, "ready", r) }, cx = function (e, t, n) { try { e.getDoc().execCommand(t, !1, n) } catch (r) { } }, lx = function (e, t, n) { var r, o; Ui(e, t) && !1 === n ? (o = t, Pi(r = e) ? r.dom().classList.remove(o) : Ii(r, o), Fi(r)) : n && Mi(e, t) }, fx = function (e, t) { lx(nr.fromDom(e.getBody()), "mce-content-readonly", t), t ? (e.selection.controlSelection.hideResizeRect(), e.readonly = !0, e.getBody().contentEditable = "false") : (e.readonly = !1, e.getBody().contentEditable = "true", cx(e, "StyleWithCSS", !1), cx(e, "enableInlineTableEditing", !1), cx(e, "enableObjectResizing", !1), e.focus(), e.nodeChanged()) }, dx = function (e) { return e.readonly ? "readonly" : "design" }, mx = function (e) { return Xt.grep(e.childNodes, function (e) { return "LI" === e.nodeName }) }, gx = function (e) { return e && e.firstChild && e.firstChild === e.lastChild && ("\xa0" === (t = e.firstChild).data || Ao.isBr(t)); var t }, px = function (e) { return 0 < e.length && (!(t = e[e.length - 1]).firstChild || gx(t)) ? e.slice(0, -1) : e; var t }, hx = function (e, t) { var n = e.getParent(t, e.isBlock); return n && "LI" === n.nodeName ? n : null }, vx = function (e, t) { var n = hu.after(e), r = $s(t).prev(n); return r ? r.toRange() : null }, bx = function (t, e, n) { var r, o, i, a, u = t.parentNode; return Xt.each(e, function (e) { u.insertBefore(e, t) }), r = t, o = n, i = hu.before(r), (a = $s(o).next(i)) ? a.toRange() : null }, yx = function (e, t) { var n, r, o, i, a, u, s = t.firstChild, c = t.lastChild; return s && "meta" === s.name && (s = s.next), c && "mce_marker" === c.attr("id") && (c = c.prev), r = c, u = (n = e).getNonEmptyElements(), r && (r.isEmpty(u) || (o = r, n.getBlockElements()[o.name] && (a = o).firstChild && a.firstChild === a.lastChild && ("br" === (i = o.firstChild).name || "\xa0" === i.value))) && (c = c.prev), !(!s || s !== c || "ul" !== s.name && "ol" !== s.name) }, Cx = function (e, o, i, t) { var n, r, a, u, s, c, l, f, d, m, g, p, h, v, b, y, C, x, w, N = (n = o, r = t, c = e.serialize(r), l = n.createFragment(c), u = (a = l).firstChild, s = a.lastChild, u && "META" === u.nodeName && u.parentNode.removeChild(u), s && "mce_marker" === s.id && s.parentNode.removeChild(s), a), E = hx(o, i.startContainer), S = px(mx(N.firstChild)), T = o.getRoot(), k = function (e) { var t = hu.fromRangeStart(i), n = $s(o.getRoot()), r = 1 === e ? n.prev(t) : n.next(t); return !r || hx(o, r.getNode()) !== E }; return k(1) ? bx(E, S, T) : k(2) ? (f = E, d = S, m = T, o.insertAfter(d.reverse(), f), vx(d[0], m)) : (p = S, h = T, v = g = E, y = (b = i).cloneRange(), C = b.cloneRange(), y.setStartBefore(v), C.setEndAfter(v), x = [y.cloneContents(), C.cloneContents()], (w = g.parentNode).insertBefore(x[0], g), Xt.each(p, function (e) { w.insertBefore(e, g) }), w.insertBefore(x[1], g), w.removeChild(g), vx(p[p.length - 1], h)) }, xx = function (e, t) { return !!hx(e, t) }, wx = Ao.matchNodeNames("td th"), Nx = function (e, t) { var n, r, o = e.selection.getRng(), i = o.startContainer, a = o.startOffset; o.collapsed && (n = i, r = a, Ao.isText(n) && "\xa0" === n.nodeValue[r - 1]) && Ao.isText(i) && (i.insertData(a - 1, " "), i.deleteData(a, 1), o.setStart(i, a), o.setEnd(i, a), e.selection.setRng(o)), e.selection.setContent(t) }, Ex = function (e, t, n) { var r, o, i, a, u, s, c, l, f, d, m, g = e.selection, p = e.dom; if (/^ | $/.test(t) && (t = function (e, t) { var n, r; n = e.startContainer, r = e.startOffset; var o = function (e) { return n[e] && 3 === n[e].nodeType }; return 3 === n.nodeType && (0 < r ? t = t.replace(/^ /, " ") : o("previousSibling") || (t = t.replace(/^ /, " ")), r < n.length ? t = t.replace(/ (
    |)$/, " ") : o("nextSibling") || (t = t.replace(/( | )(
    |)$/, " "))), t }(g.getRng(), t)), r = e.parser, m = n.merge, o = El({validate: e.settings.validate}, e.schema), d = '​', s = { content: t, format: "html", selection: !0, paste: n.paste }, (s = e.fire("BeforeSetContent", s)).isDefaultPrevented())e.fire("SetContent", { content: s.content, format: "html", selection: !0, paste: n.paste }); else { -1 === (t = s.content).indexOf("{$caret}") && (t += "{$caret}"), t = t.replace(/\{\$caret\}/, d); var h, v, b, y, C, x, w = (l = g.getRng()).startContainer || (l.parentElement ? l.parentElement() : null), N = e.getBody(); w === N && g.isCollapsed() && p.isBlock(N.firstChild) && (h = e, (v = N.firstChild) && !h.schema.getShortEndedElements()[v.nodeName]) && p.isEmpty(N.firstChild) && ((l = p.createRng()).setStart(N.firstChild, 0), l.setEnd(N.firstChild, 0), g.setRng(l)), g.isCollapsed() || (e.selection.setRng(ep(e.selection.getRng())), e.getDoc().execCommand("Delete", !1, null), b = e.selection.getRng(), y = t, C = b.startContainer, x = b.startOffset, 3 === C.nodeType && b.collapsed && ("\xa0" === C.data[x] ? (C.deleteData(x, 1), /[\u00a0| ]$/.test(y) || (y += " ")) : "\xa0" === C.data[x - 1] && (C.deleteData(x - 1, 1), /[\u00a0| ]$/.test(y) || (y = " " + y))), t = y); var E, S, T, k = {context: (i = g.getNode()).nodeName.toLowerCase(), data: n.data, insert: !0}; if (u = r.parse(t, k), !0 === n.paste && yx(e.schema, u) && xx(p, i))return l = Cx(o, p, e.selection.getRng(), u), e.selection.setRng(l), void e.fire("SetContent", s); if (function (e) { for (var t = e; t = t.walk();)1 === t.type && t.attr("data-mce-fragment", "1") }(u), "mce_marker" === (f = u.lastChild).attr("id"))for (f = (c = f).prev; f; f = f.walk(!0))if (3 === f.type || !p.isBlock(f.name)) { e.schema.isValidChild(f.parent.name, "span") && f.parent.insert(c, f, "br" === f.name); break } if (e._selectionOverrides.showBlockCaretContainer(i), k.invalid) { for (Nx(e, d), i = g.getNode(), a = e.getBody(), 9 === i.nodeType ? i = f = a : f = i; f !== a;)f = (i = f).parentNode; t = i === a ? a.innerHTML : p.getOuterHTML(i), t = o.serialize(r.parse(t.replace(//i, function () { return o.serialize(u) }))), i === a ? p.setHTML(a, t) : p.setOuterHTML(i, t) } else!function (e, t, n) { if ("all" === n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t), n); else { var r = n.firstChild, o = n.lastChild; !r || r === o && "BR" === r.nodeName ? e.dom.setHTML(n, t) : Nx(e, t) } }(e, t = o.serialize(u), i); !function (e, t) { var n = e.schema.getTextInlineElements(), r = e.dom; if (t) { var o = e.getBody(), i = new kg(r); Xt.each(r.select("*[data-mce-fragment]"), function (e) { for (var t = e.parentNode; t && t !== o; t = t.parentNode)n[e.nodeName.toLowerCase()] && i.compare(t, e) && r.remove(e, !0) }) } }(e, m), function (n, e) { var t, r, o, i, a, u = n.dom, s = n.selection; if (e) { if (n.selection.scrollIntoView(e), t = function (e) { for (var t = n.getBody(); e && e !== t; e = e.parentNode)if ("false" === n.dom.getContentEditable(e))return e; return null }(e))return u.remove(e), s.select(t); var c = u.createRng(); (i = e.previousSibling) && 3 === i.nodeType ? (c.setStart(i, i.nodeValue.length), fe.ie || (a = e.nextSibling) && 3 === a.nodeType && (i.appendData(a.data), a.parentNode.removeChild(a))) : (c.setStartBefore(e), c.setEndBefore(e)), r = u.getParent(e, u.isBlock), u.remove(e), r && u.isEmpty(r) && (n.$(r).empty(), c.setStart(r, 0), c.setEnd(r, 0), wx(r) || r.getAttribute("data-mce-fragment") || !(o = function (e) { var t = hu.fromRangeStart(e); if (t = $s(n.getBody()).next(t))return t.toRange() }(c)) ? u.add(r, u.create("br", {"data-mce-bogus": "1"})) : (c = o, u.remove(r))), s.setRng(c) } }(e, p.get("mce_marker")), E = e.getBody(), Xt.each(E.getElementsByTagName("*"), function (e) { e.removeAttribute("data-mce-fragment") }), S = e.dom, T = e.selection.getStart(), A.from(S.getParent(T, "td,th")).map(nr.fromDom).each(Lm), e.fire("SetContent", s), e.addVisual() } }, Sx = function (e, t) { var n, r, o = "string" != typeof(n = t) ? (r = Xt.extend({ paste: n.paste, data: {paste: n.paste} }, n), {content: n.content, details: r}) : {content: n, details: {}}; Ex(e, o.content, o.details) }, Tx = function (e, t) { e.getDoc().execCommand(t, !1, null) }, kx = function (e) { Wb(e, !1) || Jb(e, !1) || Rb(e, !1) || Sy(e) || Ob(e, !1) || (Tx(e, "Delete"), gb(e)) }, Ax = function (e) { Wb(e, !0) || Jb(e, !0) || Rb(e, !0) || Sy(e) || Ob(e, !0) || Tx(e, "ForwardDelete") }, Rx = function (o, t, e) { var n = function (e) { return t = o, n = e.dom(), r = wr(n, t), A.from(r).filter(function (e) { return 0 < e.length }); var t, n, r }; return qi(nr.fromDom(e), function (e) { return n(e).isSome() }, function (e) { return _r(nr.fromDom(t), e) }).bind(n) }, Dx = function (o) { return function (r, e) { return A.from(e).map(nr.fromDom).filter(sr).bind(function (e) { return Rx(o, r, e.dom()).or((t = o, n = e.dom(), A.from(di.DOM.getStyle(n, t, !0)))); var t, n }).getOr("") } }, Bx = { getFontSize: Dx("font-size"), getFontFamily: j(function (e) { return e.replace(/[\'\"\\]/g, "").replace(/,\s+/g, ",") }, Dx("font-family")), toPt: function (e, t) { return /[0-9.]+px$/.test(e) ? (n = 72 * parseInt(e, 10) / 96, r = t || 0, o = Math.pow(10, r), Math.round(n * o) / o + "pt") : e; var n, r, o } }, _x = function (e) { return ec.firstPositionIn(e.getBody()).map(function (e) { var t = e.container(); return Ao.isText(t) ? t.parentNode : t }) }, Ox = function (o) { return A.from(o.selection.getRng()).bind(function (e) { var t, n, r = o.getBody(); return n = r, (t = e).startContainer === n && 0 === t.startOffset ? A.none() : A.from(o.selection.getStart(!0)) }) }, Px = function (e, t) { if (/^[0-9\.]+$/.test(t)) { var n = parseInt(t, 10); if (1 <= n && n <= 7) { var r = sl(e), o = cl(e); return o ? o[n - 1] || t : r[n - 1] || t } return t } return t }, Lx = function (e) { return fo(e) || mo(e) }, Ix = function (e) { return F(W(e.selection.getSelectedBlocks(), nr.fromDom), function (e) { return !Lx(e) && !Lr(e).map(Lx).getOr(!1) }) }, Mx = function (e, t) { var n = e.settings, r = e.dom, o = e.selection, i = e.formatter, a = /[a-z%]+$/i.exec(n.indentation)[0], u = parseInt(n.indentation, 10), s = e.getParam("indent_use_margin", !1); e.queryCommandState("InsertUnorderedList") || e.queryCommandState("InsertOrderedList") || n.forced_root_block || r.getParent(o.getNode(), r.isBlock) || i.apply("div"), M(Ix(e), function (e) { !function (e, t, n, r, o, i) { if ("false" !== e.getContentEditable(i)) { var a = n ? "margin" : "padding"; if (a = "TABLE" === i.nodeName ? "margin" : a, a += "rtl" === e.getStyle(i, "direction", !0) ? "Right" : "Left", "outdent" === t) { var u = Math.max(0, parseInt(i.style[a] || 0, 10) - r); e.setStyle(i, a, u ? u + o : "") } else u = parseInt(i.style[a] || 0, 10) + r + o, e.setStyle(i, a, u) } }(r, t, s, u, a, e.dom()) }) }, Fx = Xt.each, Ux = Xt.extend, zx = Xt.map, Vx = Xt.inArray; function Hx(s) { var o, i, a, t, c = {state: {}, exec: {}, value: {}}, n = s.settings; s.on("PreInit", function () { o = s.dom, i = s.selection, n = s.settings, a = s.formatter }); var r = function (e) { var t; if (!s.quirks.isHidden() && !s.removed) { if (e = e.toLowerCase(), t = c.state[e])return t(e); try { return s.getDoc().queryCommandState(e) } catch (n) { } return !1 } }, e = function (e, n) { n = n || "exec", Fx(e, function (t, e) { Fx(e.toLowerCase().split(","), function (e) { c[n][e] = t }) }) }, u = function (e, t, n) { e = e.toLowerCase(), c.value[e] = function () { return t.call(n || s) } }; Ux(this, { execCommand: function (t, n, r, e) { var o, i, a = !1; if (!s.removed) { if (/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(t) || e && e.skip_focus ? ql(s) : s.focus(), (e = s.fire("BeforeExecCommand", { command: t, ui: n, value: r })).isDefaultPrevented())return !1; if (i = t.toLowerCase(), o = c.exec[i])return o(i, n, r), s.fire("ExecCommand", { command: t, ui: n, value: r }), !0; if (Fx(s.plugins, function (e) { if (e.execCommand && e.execCommand(t, n, r))return s.fire("ExecCommand", { command: t, ui: n, value: r }), !(a = !0) }), a)return a; if (s.theme && s.theme.execCommand && s.theme.execCommand(t, n, r))return s.fire("ExecCommand", { command: t, ui: n, value: r }), !0; try { a = s.getDoc().execCommand(t, n, r) } catch (u) { } return !!a && (s.fire("ExecCommand", {command: t, ui: n, value: r}), !0) } }, queryCommandState: r, queryCommandValue: function (e) { var t; if (!s.quirks.isHidden() && !s.removed) { if (e = e.toLowerCase(), t = c.value[e])return t(e); try { return s.getDoc().queryCommandValue(e) } catch (n) { } } }, queryCommandSupported: function (e) { if (e = e.toLowerCase(), c.exec[e])return !0; try { return s.getDoc().queryCommandSupported(e) } catch (t) { } return !1 }, addCommands: e, addCommand: function (e, o, i) { e = e.toLowerCase(), c.exec[e] = function (e, t, n, r) { return o.call(i || s, t, n, r) } }, addQueryStateHandler: function (e, t, n) { e = e.toLowerCase(), c.state[e] = function () { return t.call(n || s) } }, addQueryValueHandler: u, hasCustomCommand: function (e) { return e = e.toLowerCase(), !!c.exec[e] } }); var l = function (e, t, n) { return t === undefined && (t = !1), n === undefined && (n = null), s.getDoc().execCommand(e, t, n) }, f = function (e) { return a.match(e) }, d = function (e, t) { a.toggle(e, t ? {value: t} : undefined), s.nodeChanged() }, m = function (e) { t = i.getBookmark(e) }, g = function () { i.moveToBookmark(t) }; e({ "mceResetDesignMode,mceBeginUndoLevel": function () { }, "mceEndUndoLevel,mceAddUndoLevel": function () { s.undoManager.add() }, "Cut,Copy,Paste": function (e) { var t, n = s.getDoc(); try { l(e) } catch (o) { t = !0 } if ("paste" !== e || n.queryCommandEnabled(e) || (t = !0), t || !n.queryCommandSupported(e)) { var r = s.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead."); fe.mac && (r = r.replace(/Ctrl\+/g, "\u2318+")), s.notificationManager.open({ text: r, type: "error" }) } }, unlink: function () { if (i.isCollapsed()) { var e = s.dom.getParent(s.selection.getStart(), "a"); e && s.dom.remove(e, !0) } else a.remove("link") }, "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone": function (e) { var t = e.substring(7); "full" === t && (t = "justify"), Fx("left,center,right,justify".split(","), function (e) { t !== e && a.remove("align" + e) }), "none" !== t && d("align" + t) }, "InsertUnorderedList,InsertOrderedList": function (e) { var t, n; l(e), (t = o.getParent(i.getNode(), "ol,ul")) && (n = t.parentNode, /^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName) && (m(), o.split(n, t), g())) }, "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) { d(e) }, "ForeColor,HiliteColor": function (e, t, n) { d(e, n) }, FontName: function (e, t, n) { var r, o; o = n, (r = s).formatter.toggle("fontname", {value: Px(r, o)}), r.nodeChanged() }, FontSize: function (e, t, n) { var r, o; o = n, (r = s).formatter.toggle("fontsize", {value: Px(r, o)}), r.nodeChanged() }, RemoveFormat: function (e) { a.remove(e) }, mceBlockQuote: function () { d("blockquote") }, FormatBlock: function (e, t, n) { return d(n || "p") }, mceCleanup: function () { var e = i.getBookmark(); s.setContent(s.getContent()), i.moveToBookmark(e) }, mceRemoveNode: function (e, t, n) { var r = n || i.getNode(); r !== s.getBody() && (m(), s.dom.remove(r, !0), g()) }, mceSelectNodeDepth: function (e, t, n) { var r = 0; o.getParent(i.getNode(), function (e) { if (1 === e.nodeType && r++ === n)return i.select(e), !1 }, s.getBody()) }, mceSelectNode: function (e, t, n) { i.select(n) }, mceInsertContent: function (e, t, n) { Sx(s, n) }, mceInsertRawHTML: function (e, t, n) { i.setContent("tiny_mce_marker"); var r = s.getContent(); s.setContent(r.replace(/tiny_mce_marker/g, function () { return n })) }, mceToggleFormat: function (e, t, n) { d(n) }, mceSetContent: function (e, t, n) { s.setContent(n) }, "Indent,Outdent": function (e) { Mx(s, e) }, mceRepaint: function () { }, InsertHorizontalRule: function () { s.execCommand("mceInsertContent", !1, "
    ") }, mceToggleVisualAid: function () { s.hasVisual = !s.hasVisual, s.addVisual() }, mceReplaceContent: function (e, t, n) { s.execCommand("mceInsertContent", !1, n.replace(/\{\$selection\}/g, i.getContent({format: "text"}))) }, mceInsertLink: function (e, t, n) { var r; "string" == typeof n && (n = {href: n}), r = o.getParent(i.getNode(), "a"), n.href = n.href.replace(" ", "%20"), r && n.href || a.remove("link"), n.href && a.apply("link", n, r) }, selectAll: function () { var e = o.getParent(i.getStart(), Ao.isContentEditableTrue); if (e) { var t = o.createRng(); t.selectNodeContents(e), i.setRng(t) } }, "delete": function () { kx(s) }, forwardDelete: function () { Ax(s) }, mceNewDocument: function () { s.setContent("") }, InsertLineBreak: function (e, t, n) { return eC(s, n), !0 } }); var p = function (n) { return function () { var e = i.isCollapsed() ? [o.getParent(i.getNode(), o.isBlock)] : i.getSelectedBlocks(), t = zx(e, function (e) { return !!a.matchNode(e, n) }); return -1 !== Vx(t, !0) } }; e({ JustifyLeft: p("alignleft"), JustifyCenter: p("aligncenter"), JustifyRight: p("alignright"), JustifyFull: p("alignjustify"), "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) { return f(e) }, mceBlockQuote: function () { return f("blockquote") }, Outdent: function () { var e; if (n.inline_styles) { if ((e = o.getParent(i.getStart(), o.isBlock)) && 0 < parseInt(e.style.paddingLeft, 10))return !0; if ((e = o.getParent(i.getEnd(), o.isBlock)) && 0 < parseInt(e.style.paddingLeft, 10))return !0 } return r("InsertUnorderedList") || r("InsertOrderedList") || !n.inline_styles && !!o.getParent(i.getNode(), "BLOCKQUOTE") }, "InsertUnorderedList,InsertOrderedList": function (e) { var t = o.getParent(i.getNode(), "ul,ol"); return t && ("insertunorderedlist" === e && "UL" === t.tagName || "insertorderedlist" === e && "OL" === t.tagName) } }, "state"), e({ Undo: function () { s.undoManager.undo() }, Redo: function () { s.undoManager.redo() } }), u("FontName", function () { return Ox(t = s).fold(function () { return _x(t).map(function (e) { return Bx.getFontFamily(t.getBody(), e) }).getOr("") }, function (e) { return Bx.getFontFamily(t.getBody(), e) }); var t }, this), u("FontSize", function () { return Ox(t = s).fold(function () { return _x(t).map(function (e) { return Bx.getFontSize(t.getBody(), e) }).getOr("") }, function (e) { return Bx.getFontSize(t.getBody(), e) }); var t }, this) } var jx = Xt.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend", " "), qx = function (a) { var u, s, c = this, l = {}, f = function () { return !1 }, d = function () { return !0 }; u = (a = a || {}).scope || c, s = a.toggleEvent || f; var r = function (e, t, n, r) { var o, i, a; if (!1 === t && (t = f), t)for (t = {func: t}, r && Xt.extend(t, r), a = (i = e.toLowerCase().split(" ")).length; a--;)e = i[a], (o = l[e]) || (o = l[e] = [], s(e, !0)), n ? o.unshift(t) : o.push(t); return c }, m = function (e, t) { var n, r, o, i, a; if (e)for (n = (i = e.toLowerCase().split(" ")).length; n--;) { if (e = i[n], r = l[e], !e) { for (o in l)s(o, !1), delete l[o]; return c } if (r) { if (t)for (a = r.length; a--;)r[a].func === t && (r = r.slice(0, a).concat(r.slice(a + 1)), l[e] = r); else r.length = 0; r.length || (s(e, !1), delete l[e]) } } else { for (e in l)s(e, !1); l = {} } return c }; c.fire = function (e, t) { var n, r, o, i; if (e = e.toLowerCase(), (t = t || {}).type = e, t.target || (t.target = u), t.preventDefault || (t.preventDefault = function () { t.isDefaultPrevented = d }, t.stopPropagation = function () { t.isPropagationStopped = d }, t.stopImmediatePropagation = function () { t.isImmediatePropagationStopped = d }, t.isDefaultPrevented = f, t.isPropagationStopped = f, t.isImmediatePropagationStopped = f), a.beforeFire && a.beforeFire(t), n = l[e])for (r = 0, o = n.length; r < o; r++) { if ((i = n[r]).once && m(e, i.func), t.isImmediatePropagationStopped())return t.stopPropagation(), t; if (!1 === i.func.call(u, t))return t.preventDefault(), t } return t }, c.on = r, c.off = m, c.once = function (e, t, n) { return r(e, t, n, {once: !0}) }, c.has = function (e) { return e = e.toLowerCase(), !(!l[e] || 0 === l[e].length) } }; qx.isNative = function (e) { return !!jx[e.toLowerCase()] }; var $x, Wx = function (n) { return n._eventDispatcher || (n._eventDispatcher = new qx({ scope: n, toggleEvent: function (e, t) { qx.isNative(e) && n.toggleNativeEvent && n.toggleNativeEvent(e, t) } })), n._eventDispatcher }, Kx = { fire: function (e, t, n) { if (this.removed && "remove" !== e)return t; if (t = Wx(this).fire(e, t, n), !1 !== n && this.parent)for (var r = this.parent(); r && !t.isPropagationStopped();)r.fire(e, t, !1), r = r.parent(); return t }, on: function (e, t, n) { return Wx(this).on(e, t, n) }, off: function (e, t) { return Wx(this).off(e, t) }, once: function (e, t) { return Wx(this).once(e, t) }, hasEventListeners: function (e) { return Wx(this).has(e) } }, Xx = di.DOM, Yx = function (e, t) { return "selectionchange" === t ? e.getDoc() : !e.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t) ? e.getDoc().documentElement : e.settings.event_root ? (e.eventRoot || (e.eventRoot = Xx.select(e.settings.event_root)[0]), e.eventRoot) : e.getBody() }, Gx = function (e, t, n) { var r; (r = e).hidden || r.readonly ? !0 === e.readonly && n.preventDefault() : e.fire(t, n) }, Jx = function (i, a) { var e, t; if (i.delegates || (i.delegates = {}), !i.delegates[a] && !i.removed)if (e = Yx(i, a), i.settings.event_root) { if ($x || ($x = {}, i.editorManager.on("removeEditor", function () { var e; if (!i.editorManager.activeEditor && $x) { for (e in $x)i.dom.unbind(Yx(i, e)); $x = null } })), $x[a])return; t = function (e) { for (var t = e.target, n = i.editorManager.get(), r = n.length; r--;) { var o = n[r].getBody(); (o === t || Xx.isChildOf(t, o)) && Gx(n[r], a, e) } }, $x[a] = t, Xx.bind(e, a, t) } else t = function (e) { Gx(i, a, e) }, Xx.bind(e, a, t), i.delegates[a] = t }, Qx = { bindPendingEventDelegates: function () { var t = this; Xt.each(t._pendingNativeEvents, function (e) { Jx(t, e) }) }, toggleNativeEvent: function (e, t) { var n = this; "focus" !== e && "blur" !== e && (t ? n.initialized ? Jx(n, e) : n._pendingNativeEvents ? n._pendingNativeEvents.push(e) : n._pendingNativeEvents = [e] : n.initialized && (n.dom.unbind(Yx(n, e), e, n.delegates[e]), delete n.delegates[e])) }, unbindAllNativeEvents: function () { var e, t = this, n = t.getBody(), r = t.dom; if (t.delegates) { for (e in t.delegates)t.dom.unbind(Yx(t, e), e, t.delegates[e]); delete t.delegates } !t.inline && n && r && (n.onload = null, r.unbind(t.getWin()), r.unbind(t.getDoc())), r && (r.unbind(n), r.unbind(t.getContainer())) } }, Zx = Qx = Xt.extend({}, Kx, Qx), ew = Xt.each, tw = Xt.explode, nw = { f9: 120, f10: 121, f11: 122 }, rw = Xt.makeMap("alt,ctrl,shift,meta,access"); function ow(i) { var a = {}, r = [], u = function (e) { var t, n, r = {}; for (n in ew(tw(e, "+"), function (e) { e in rw ? r[e] = !0 : /^[0-9]{2,}$/.test(e) ? r.keyCode = parseInt(e, 10) : (r.charCode = e.charCodeAt(0), r.keyCode = nw[e] || e.toUpperCase().charCodeAt(0)) }), t = [r.keyCode], rw)r[n] ? t.push(n) : r[n] = !1; return r.id = t.join(","), r.access && (r.alt = !0, fe.mac ? r.ctrl = !0 : r.shift = !0), r.meta && (fe.mac ? r.meta = !0 : (r.ctrl = !0, r.meta = !1)), r }, s = function (e, t, n, r) { var o; return (o = Xt.map(tw(e, ">"), u))[o.length - 1] = Xt.extend(o[o.length - 1], { func: n, scope: r || i }), Xt.extend(o[0], {desc: i.translate(t), subpatterns: o.slice(1)}) }, o = function (e, t) { return !!t && t.ctrl === e.ctrlKey && t.meta === e.metaKey && t.alt === e.altKey && t.shift === e.shiftKey && !!(e.keyCode === t.keyCode || e.charCode && e.charCode === t.charCode) && (e.preventDefault(), !0) }, c = function (e) { return e.func ? e.func.call(e.scope) : null }; i.on("keyup keypress keydown", function (t) { var e, n; ((n = t).altKey || n.ctrlKey || n.metaKey || "keydown" === (e = t).type && 112 <= e.keyCode && e.keyCode <= 123) && !t.isDefaultPrevented() && (ew(a, function (e) { if (o(t, e))return r = e.subpatterns.slice(0), "keydown" === t.type && c(e), !0 }), o(t, r[0]) && (1 === r.length && "keydown" === t.type && c(r[0]), r.shift())) }), this.add = function (e, n, r, o) { var t; return "string" == typeof(t = r) ? r = function () { i.execCommand(t, !1, null) } : Xt.isArray(t) && (r = function () { i.execCommand(t[0], t[1], t[2]) }), ew(tw(Xt.trim(e.toLowerCase())), function (e) { var t = s(e, n, r, o); a[t.id] = t }), !0 }, this.remove = function (e) { var t = s(e); return !!a[t.id] && (delete a[t.id], !0) } } var iw = Xt.each, aw = Xt.trim, uw = "source protocol authority userInfo user password host port relative path directory file query anchor".split(" "), sw = { ftp: 21, http: 80, https: 443, mailto: 25 }, cw = function (r, e) { var t, n, o = this; if (r = aw(r), t = (e = o.settings = e || {}).base_uri, /^([\w\-]+):([^\/]{2})/i.test(r) || /^\s*#/.test(r))o.source = r; else { var i = 0 === r.indexOf("//"); 0 !== r.indexOf("/") || i || (r = (t && t.protocol || "http") + "://mce_host" + r), /^[\w\-]*:?\/\//.test(r) || (n = e.base_uri ? e.base_uri.path : new cw(document.location.href).directory, r = "" == e.base_uri.protocol ? "//mce_host" + o.toAbsPath(n, r) : (r = /([^#?]*)([#?]?.*)/.exec(r), (t && t.protocol || "http") + "://mce_host" + o.toAbsPath(n, r[1]) + r[2])), r = r.replace(/@@/g, "(mce_at)"), r = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(r), iw(uw, function (e, t) { var n = r[t]; n && (n = n.replace(/\(mce_at\)/g, "@@")), o[e] = n }), t && (o.protocol || (o.protocol = t.protocol), o.userInfo || (o.userInfo = t.userInfo), o.port || "mce_host" !== o.host || (o.port = t.port), o.host && "mce_host" !== o.host || (o.host = t.host), o.source = ""), i && (o.protocol = "") } }; cw.prototype = { setPath: function (e) { e = /^(.*?)\/?(\w+)?$/.exec(e), this.path = e[0], this.directory = e[1], this.file = e[2], this.source = "", this.getURI() }, toRelative: function (e) { var t; if ("./" === e)return e; if ("mce_host" !== (e = new cw(e, {base_uri: this})).host && this.host !== e.host && e.host || this.port !== e.port || this.protocol !== e.protocol && "" !== e.protocol)return e.getURI(); var n = this.getURI(), r = e.getURI(); return n === r || "/" === n.charAt(n.length - 1) && n.substr(0, n.length - 1) === r ? n : (t = this.toRelPath(this.path, e.path), e.query && (t += "?" + e.query), e.anchor && (t += "#" + e.anchor), t) }, toAbsolute: function (e, t) { return (e = new cw(e, {base_uri: this})).getURI(t && this.isSameOrigin(e)) }, isSameOrigin: function (e) { if (this.host == e.host && this.protocol == e.protocol) { if (this.port == e.port)return !0; var t = sw[this.protocol]; if (t && (this.port || t) == (e.port || t))return !0 } return !1 }, toRelPath: function (e, t) { var n, r, o, i = 0, a = ""; if (e = (e = e.substring(0, e.lastIndexOf("/"))).split("/"), n = t.split("/"), e.length >= n.length)for (r = 0, o = e.length; r < o; r++)if (r >= n.length || e[r] !== n[r]) { i = r + 1; break } if (e.length < n.length)for (r = 0, o = n.length; r < o; r++)if (r >= e.length || e[r] !== n[r]) { i = r + 1; break } if (1 === i)return t; for (r = 0, o = e.length - (i - 1); r < o; r++)a += "../"; for (r = i - 1, o = n.length; r < o; r++)a += r !== i - 1 ? "/" + n[r] : n[r]; return a }, toAbsPath: function (e, t) { var n, r, o, i = 0, a = []; for (r = /\/$/.test(t) ? "/" : "", e = e.split("/"), t = t.split("/"), iw(e, function (e) { e && a.push(e) }), e = a, n = t.length - 1, a = []; 0 <= n; n--)0 !== t[n].length && "." !== t[n] && (".." !== t[n] ? 0 < i ? i-- : a.push(t[n]) : i++); return 0 !== (o = (n = e.length - i) <= 0 ? a.reverse().join("/") : e.slice(0, n).join("/") + "/" + a.reverse().join("/")).indexOf("/") && (o = "/" + o), r && o.lastIndexOf("/") !== o.length - 1 && (o += r), o }, getURI: function (e) { var t, n = this; return n.source && !e || (t = "", e || (n.protocol ? t += n.protocol + "://" : t += "//", n.userInfo && (t += n.userInfo + "@"), n.host && (t += n.host), n.port && (t += ":" + n.port)), n.path && (t += n.path), n.query && (t += "?" + n.query), n.anchor && (t += "#" + n.anchor), n.source = t), n.source } }, cw.parseDataUri = function (e) { var t, n; return e = decodeURIComponent(e).split(","), (n = /data:([^;]+)/.exec(e[0])) && (t = n[1]), { type: t, data: e[1] } }, cw.getDocumentBaseUrl = function (e) { var t; return t = 0 !== e.protocol.indexOf("http") && "file:" !== e.protocol ? e.href : e.protocol + "//" + e.host + e.pathname, /^[^:]+:\/\/\/?[^\/]+\//.test(t) && (t = t.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""), /[\/\\]$/.test(t) || (t += "/")), t }; var lw = function (n, t, e) { var r = function () { return A.from(n.queryCommandValue("ToggleSidebar")).is(t) }, o = n.sidebars ? n.sidebars : []; o.push({name: t, settings: e}), n.sidebars = o, n.ui.registry.addToggleButton(t, { icon: e.icon, tooltip: e.tooltip, onAction: function (e) { n.execCommand("ToggleSidebar", !1, t), e.setActive(r()) }, onSetup: function (e) { var t = function () { return e.setActive(r()) }; return n.on("ToggleSidebar", t), function () { n.off("ToggleSidebar", t) } } }) }, fw = di.DOM, dw = Xt.extend, mw = Xt.each, gw = Xt.resolve, pw = fe.ie, hw = function (e, t, n) { var r, o, i, a, u, s, c, l = this, f = l.documentBaseUrl = n.documentBaseURL, d = n.baseURI; r = l, o = e, i = f, a = n.defaultSettings, u = t, c = { id: o, theme: "silver", popup_css: "", plugins: "", document_base_url: i, add_form_submit_trigger: !0, submit_patch: !0, add_unload_trigger: !0, convert_urls: !0, relative_urls: !0, remove_script_host: !0, object_resizing: !0, doctype: "", visual: !0, font_size_style_values: "xx-small,x-small,small,medium,large,x-large,xx-large", font_size_legacy_values: "xx-small,small,medium,large,x-large,xx-large,300%", forced_root_block: "p", hidden_input: !0, render_ui: !0, indentation: "40px", inline_styles: !0, convert_fonts_to_spans: !0, indent: "simple", indent_before: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist", indent_after: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist", entity_encoding: "named", url_converter: (s = r).convertURL, url_converter_scope: s, ie7_compat: !0 }, t = Ef(hf, c, a, u), l.settings = t, Ei.languageLoad = t.language_load, Ei.baseURL = n.baseURL, l.id = e, l.setDirty(!1), l.plugins = {}, l.documentBaseURI = new cw(t.document_base_url, {base_uri: d}), l.baseURI = d, l.contentCSS = [], l.contentStyles = [], l.shortcuts = new ow(l), l.loadedCSS = {}, l.editorCommands = new Hx(l), l.suffix = n.suffix, l.editorManager = n, l.inline = t.inline, l.buttons = {}, l.menuItems = {}, t.cache_suffix && (fe.cacheSuffix = t.cache_suffix.replace(/^[\?\&]+/, "")), !1 === t.override_viewport && (fe.overrideViewPort = !1); var m, g, p, h, v, b, y, C = (g = {}, p = {}, h = {}, v = {}, b = {}, { addButton: (y = function (n, r) { return function (e, t) { return n[e.toLowerCase()] = Fc({type: r}, t) } })(m = {}, "button"), addToggleButton: y(m, "togglebutton"), addMenuButton: y(m, "menubutton"), addSplitButton: y(m, "splitbutton"), addMenuItem: y(g, "menuitem"), addToggleMenuItem: y(g, "togglemenuitem"), addAutocompleter: y(p, "autocompleter"), addContextMenu: y(v, "contextmenu"), addContextToolbar: y(b, "contexttoolbar"), addContextForm: y(b, "contextform"), addIcon: function (e, t) { return h[e.toLowerCase()] = t }, getAll: function () { return {buttons: m, menuItems: g, icons: h, popups: p, contextMenus: v, contextToolbars: b} } }); l.ui = { registry: C, dialog: {open: x, confirm: x, alert: x}, notification: {open: x, close: x, getNotifications: x} }, n.fire("SetupEditor", {editor: l}), l.execCallback("setup", l), l.$ = gn.overrideDefaults(function () { return {context: l.inline ? l.getBody() : l.getDoc(), element: l.getBody()} }) }; dw(hw.prototype = { render: function () { sx(this) }, focus: function (e) { Ql(this, e) }, hasFocus: function () { return Zl(this) }, execCallback: function (e) { for (var t = [], n = 1; n < arguments.length; n++)t[n - 1] = arguments[n]; var r, o = this.settings[e]; if (o)return this.callbackLookup && (r = this.callbackLookup[e]) && (o = r.func, r = r.scope), "string" == typeof o && (r = (r = o.replace(/\.\w+$/, "")) ? gw(r) : 0, o = gw(o), this.callbackLookup = this.callbackLookup || {}, this.callbackLookup[e] = { func: o, scope: r }), o.apply(r || this, Array.prototype.slice.call(arguments, 1)) }, translate: function (e) { return wi.translate(e) }, getParam: function (e, t, n) { return kf(this, e, t, n) }, nodeChanged: function (e) { this._nodeChangeDispatcher.nodeChanged(e) }, addButton: function (e, t) { console.error("editor.addButton is deprecated in tinymce 5x, use editor.ui.registry.addButton or editor.ui.registry.addToggleButton or editor.ui.registry.addSplitButton instead") }, addSidebar: function (e, t) { return lw(this, e, t) }, addMenuItem: function (e, t) { console.error("editor.addMenuItem is deprecated in tinymce 5x, use editor.ui.registry.addMenuItem instead") }, addContextToolbar: function (e, t) { console.error("editor.addContextToolbar is deprecated in tinymce 5x, use editor.ui.registry.addContextToolbar instead") }, addCommand: function (e, t, n) { this.editorCommands.addCommand(e, t, n) }, addQueryStateHandler: function (e, t, n) { this.editorCommands.addQueryStateHandler(e, t, n) }, addQueryValueHandler: function (e, t, n) { this.editorCommands.addQueryValueHandler(e, t, n) }, addShortcut: function (e, t, n, r) { this.shortcuts.add(e, t, n, r) }, execCommand: function (e, t, n, r) { return this.editorCommands.execCommand(e, t, n, r) }, queryCommandState: function (e) { return this.editorCommands.queryCommandState(e) }, queryCommandValue: function (e) { return this.editorCommands.queryCommandValue(e) }, queryCommandSupported: function (e) { return this.editorCommands.queryCommandSupported(e) }, show: function () { this.hidden && (this.hidden = !1, this.inline ? this.getBody().contentEditable = !0 : (fw.show(this.getContainer()), fw.hide(this.id)), this.load(), this.fire("show")) }, hide: function () { var e = this, t = e.getDoc(); e.hidden || (pw && t && !e.inline && t.execCommand("SelectAll"), e.save(), e.inline ? (e.getBody().contentEditable = !1, e === e.editorManager.focusedEditor && (e.editorManager.focusedEditor = null)) : (fw.hide(e.getContainer()), fw.setStyle(e.id, "display", e.orgDisplay)), e.hidden = !0, e.fire("hide")) }, isHidden: function () { return !!this.hidden }, setProgressState: function (e, t) { this.fire("ProgressState", {state: e, time: t}) }, load: function (e) { var t, n = this.getElement(); return this.removed ? "" : n ? ((e = e || {}).load = !0, t = this.setContent(n.value !== undefined ? n.value : n.innerHTML, e), e.element = n, e.no_events || this.fire("LoadContent", e), e.element = n = null, t) : void 0 }, save: function (e) { var t, n, r = this, o = r.getElement(); if (o && r.initialized && !r.removed)return (e = e || {}).save = !0, e.element = o, e.content = r.getContent(e), e.no_events || r.fire("SaveContent", e), "raw" === e.format && r.fire("RawSaveContent", e), t = e.content, /TEXTAREA|INPUT/i.test(o.nodeName) ? o.value = t : (o.innerHTML = t, (n = fw.getParent(r.id, "form")) && mw(n.elements, function (e) { if (e.name === r.id)return e.value = t, !1 })), e.element = o = null, !1 !== e.set_dirty && r.setDirty(!1), t }, setContent: function (e, t) { return nf(this, e, t) }, getContent: function (e) { return t = this, void 0 === (n = e) && (n = {}), A.from(t.getBody()).fold(q("tree" === n.format ? new Hc("body", 11) : ""), function (e) { return xl(t, n, e) }); var t, n }, insertContent: function (e, t) { t && (e = dw({content: e}, t)), this.execCommand("mceInsertContent", !1, e) }, isDirty: function () { return !this.isNotDirty }, setDirty: function (e) { var t = !this.isNotDirty; this.isNotDirty = !e, e && e !== t && this.fire("dirty") }, setMode: function (e) { var t, n; (n = e) !== dx(t = this) && (t.initialized ? fx(t, "readonly" === n) : t.on("init", function () { fx(t, "readonly" === n) }), uf(t, n)) }, getContainer: function () { return this.container || (this.container = fw.get(this.editorContainer || this.id + "_parent")), this.container }, getContentAreaContainer: function () { return this.contentAreaContainer }, getElement: function () { return this.targetElm || (this.targetElm = fw.get(this.id)), this.targetElm }, getWin: function () { var e; return this.contentWindow || (e = this.iframeElement) && (this.contentWindow = e.contentWindow), this.contentWindow }, getDoc: function () { var e; return this.contentDocument || (e = this.getWin()) && (this.contentDocument = e.document), this.contentDocument }, getBody: function () { var e = this.getDoc(); return this.bodyElement || (e ? e.body : null) }, convertURL: function (e, t, n) { var r = this.settings; return r.urlconverter_callback ? this.execCallback("urlconverter_callback", e, n, !0, t) : !r.convert_urls || n && "LINK" === n.nodeName || 0 === e.indexOf("file:") || 0 === e.length ? e : r.relative_urls ? this.documentBaseURI.toRelative(e) : e = this.documentBaseURI.toAbsolute(e, r.remove_script_host) }, addVisual: function (e) { var n, r = this, o = r.settings, i = r.dom; e = e || r.getBody(), r.hasVisual === undefined && (r.hasVisual = o.visual), mw(i.select("table,a", e), function (e) { var t; switch (e.nodeName) { case"TABLE": return n = o.visual_table_class || "mce-item-table", void((t = i.getAttrib(e, "border")) && "0" !== t || !r.hasVisual ? i.removeClass(e, n) : i.addClass(e, n)); case"A": return void(i.getAttrib(e, "href") || (t = i.getAttrib(e, "name") || e.id, n = o.visual_anchor_class || "mce-item-anchor", t && r.hasVisual ? i.addClass(e, n) : i.removeClass(e, n))) } }), r.fire("VisualAid", {element: e, hasVisual: r.hasVisual}) }, remove: function () { df(this) }, destroy: function (e) { mf(this, e) }, uploadImages: function (e) { return this.editorUpload.uploadImages(e) }, _scanForImages: function () { return this.editorUpload.scanForImages() } }, Zx); var vw, bw, yw, Cw = { isEditorUIElement: function (e) { return -1 !== e.className.toString().indexOf("tox-") || -1 !== e.className.toString().indexOf("mce-") } }, xw = function (n, e) { var t, r; er.detect().browser.isIE() ? (r = n).on("focusout", function () { jl(r) }) : (t = e, n.on("mouseup touchend", function (e) { t.throttle() })), n.on("keyup nodechange", function (e) { var t; "nodechange" === (t = e).type && t.selectionChange || jl(n) }) }, ww = function (e) { var t, n, r, o = _i(function () { jl(e) }, 0); e.inline && (t = e, n = o, r = function () { n.throttle() }, di.DOM.bind(document, "mouseup", r), t.on("remove", function () { di.DOM.unbind(document, "mouseup", r) })), e.on("init", function () { xw(e, o) }), e.on("remove", function () { o.cancel() }) }, Nw = di.DOM, Ew = function (e) { return Cw.isEditorUIElement(e) }, Sw = function (t, e) { var n = t ? t.settings.custom_ui_selector : ""; return null !== Nw.getParent(e, function (e) { return Ew(e) || !!n && t.dom.is(e, n) }) }, Tw = function (r, e) { var t = e.editor; ww(t), t.on("focusin", function () { var e = r.focusedEditor; e !== this && (e && e.fire("blur", {focusedEditor: this}), r.setActive(this), (r.focusedEditor = this).fire("focus", {blurredEditor: e}), this.focus(!0)) }), t.on("focusout", function () { var t = this; he.setEditorTimeout(t, function () { var e = r.focusedEditor; Sw(t, function () { try { return document.activeElement } catch (e) { return document.body } }()) || e !== t || (t.fire("blur", {focusedEditor: null}), r.focusedEditor = null) }) }), vw || (vw = function (e) { var t, n = r.activeEditor; t = e.target, n && t.ownerDocument === document && (t === document.body || Sw(n, t) || r.focusedEditor !== n || (n.fire("blur", {focusedEditor: null}), r.focusedEditor = null)) }, Nw.bind(document, "focusin", vw)) }, kw = function (e, t) { e.focusedEditor === t.editor && (e.focusedEditor = null), e.activeEditor || (Nw.unbind(document, "focusin", vw), vw = null) }, Aw = function (e) { e.on("AddEditor", m(Tw, e)), e.on("RemoveEditor", m(kw, e)) }, Rw = di.DOM, Dw = Xt.explode, Bw = Xt.each, _w = Xt.extend, Ow = 0, Pw = !1, Lw = [], Iw = [], Mw = function (t) { Bw(yw.get(), function (e) { "scroll" === t.type ? e.fire("ScrollWindow", t) : e.fire("ResizeWindow", t) }) }, Fw = function (e) { e !== Pw && (e ? gn(window).on("resize scroll", Mw) : gn(window).off("resize scroll", Mw), Pw = e) }, Uw = function (t) { var e = Iw; delete Lw[t.id]; for (var n = 0; n < Lw.length; n++)if (Lw[n] === t) { Lw.splice(n, 1); break } return Iw = F(Iw, function (e) { return t !== e }), yw.activeEditor === t && (yw.activeEditor = 0 < Iw.length ? Iw[0] : null), yw.focusedEditor === t && (yw.focusedEditor = null), e.length !== Iw.length }; _w(yw = { defaultSettings: {}, $: gn, majorVersion: "5", minorVersion: "0.0-preview-4-build.3", releaseDate: "TBD", editors: Lw, i18n: wi, activeEditor: null, settings: {}, setup: function () { var e, t, n, r, o = ""; if (t = cw.getDocumentBaseUrl(document.location), /^[^:]+:\/\/\/?[^\/]+\//.test(t) && (t = t.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""), /[\/\\]$/.test(t) || (t += "/")), n = window.tinymce || window.tinyMCEPreInit)e = n.base || n.baseURL, o = n.suffix; else { for (var i = document.getElementsByTagName("script"), a = 0; a < i.length; a++) { var u = (r = i[a].src).substring(r.lastIndexOf("/")); if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(r)) { -1 !== u.indexOf(".min") && (o = ".min"), e = r.substring(0, r.lastIndexOf("/")); break } } !e && document.currentScript && (-1 !== (r = document.currentScript.src).indexOf(".min") && (o = ".min"), e = r.substring(0, r.lastIndexOf("/"))) } this.baseURL = new cw(t).toAbsolute(e), this.documentBaseURL = t, this.baseURI = new cw(this.baseURL), this.suffix = o, Aw(this) }, overrideDefaults: function (e) { var t, n; (t = e.base_url) && (this.baseURL = new cw(this.documentBaseURL).toAbsolute(t.replace(/\/+$/, "")), this.baseURI = new cw(this.baseURL)), n = e.suffix, e.suffix && (this.suffix = n); var r = (this.defaultSettings = e).plugin_base_urls; for (var o in r)Ei.PluginManager.urls[o] = r[o] }, init: function (r) { var n, u, s = this; u = Xt.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu", " "); var c = function (e) { var t = e.id; return t || (t = (t = e.name) && !Rw.get(t) ? e.name : Rw.uniqueId(), e.setAttribute("id", t)), t }, l = function (e, t) { return t.constructor === RegExp ? t.test(e.className) : Rw.hasClass(e, t) }, f = function (e) { n = e }, e = function () { var o, i = 0, a = [], n = function (e, t, n) { var r = new hw(e, t, s); a.push(r), r.on("init", function () { ++i === o.length && f(a) }), r.targetElm = r.targetElm || n, r.render() }; Rw.unbind(window, "ready", e), function (e) { var t = r[e]; t && t.apply(s, Array.prototype.slice.call(arguments, 2)) }("onpageload"), o = gn.unique(function (t) { var e, n = []; if (fe.ie && fe.ie < 11)return Wf("TinyMCE does not support the browser you are using. For a list of supported browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/"), []; if (t.types)return Bw(t.types, function (e) { n = n.concat(Rw.select(e.selector)) }), n; if (t.selector)return Rw.select(t.selector); if (t.target)return [t.target]; switch (t.mode) { case"exact": 0 < (e = t.elements || "").length && Bw(Dw(e), function (t) { var e; (e = Rw.get(t)) ? n.push(e) : Bw(document.forms, function (e) { Bw(e.elements, function (e) { e.name === t && (t = "mce_editor_" + Ow++, Rw.setAttrib(e, "id", t), n.push(e)) }) }) }); break; case"textareas": case"specific_textareas": Bw(Rw.select("textarea"), function (e) { t.editor_deselector && l(e, t.editor_deselector) || t.editor_selector && !l(e, t.editor_selector) || n.push(e) }) } return n }(r)), r.types ? Bw(r.types, function (t) { Xt.each(o, function (e) { return !Rw.is(e, t.selector) || (n(c(e), _w({}, r, t), e), !1) }) }) : (Xt.each(o, function (e) { var t; (t = s.get(e.id)) && t.initialized && !(t.getContainer() || t.getBody()).parentNode && (Uw(t), t.unbindAllNativeEvents(), t.destroy(!0), t.removed = !0, t = null) }), 0 === (o = Xt.grep(o, function (e) { return !s.get(e.id) })).length ? f([]) : Bw(o, function (e) { var t; t = e, r.inline && t.tagName.toLowerCase()in u ? Wf("Could not initialize inline editor on invalid inline target element", e) : n(c(e), r, e) })) }; return s.settings = r, Rw.bind(window, "ready", e), new de(function (t) { n ? t(n) : f = function (e) { t(e) } }) }, get: function (t) { return 0 === arguments.length ? Iw.slice(0) : k(t) ? z(Iw, function (e) { return e.id === t }).getOr(null) : P(t) && Iw[t] ? Iw[t] : null }, add: function (e) { var t = this; return Lw[e.id] === e || (null === t.get(e.id) && ("length" !== e.id && (Lw[e.id] = e), Lw.push(e), Iw.push(e)), Fw(!0), t.activeEditor = e, t.fire("AddEditor", {editor: e}), bw || (bw = function () { t.fire("BeforeUnload") }, Rw.bind(window, "beforeunload", bw))), e }, createEditor: function (e, t) { return this.add(new hw(e, t, this)) }, remove: function (e) { var t, n, r = this; if (e) { if (!k(e))return n = e, B(r.get(n.id)) ? null : (Uw(n) && r.fire("RemoveEditor", {editor: n}), 0 === Iw.length && Rw.unbind(window, "beforeunload", bw), n.remove(), Fw(0 < Iw.length), n); Bw(Rw.select(e), function (e) { (n = r.get(e.id)) && r.remove(n) }) } else for (t = Iw.length - 1; 0 <= t; t--)r.remove(Iw[t]) }, execCommand: function (e, t, n) { var r = this.get(n); switch (e) { case"mceAddEditor": return this.get(n) || new hw(n, this.settings, this).render(), !0; case"mceRemoveEditor": return r && r.remove(), !0; case"mceToggleEditor": return r ? r.isHidden() ? r.show() : r.hide() : this.execCommand("mceAddEditor", 0, n), !0 } return !!this.activeEditor && this.activeEditor.execCommand(e, t, n) }, triggerSave: function () { Bw(Iw, function (e) { e.save() }) }, addI18n: function (e, t) { wi.add(e, t) }, translate: function (e) { return wi.translate(e) }, setActive: function (e) { var t = this.activeEditor; this.activeEditor !== e && (t && t.fire("deactivate", {relatedTarget: e}), e.fire("activate", {relatedTarget: t})), this.activeEditor = e } }, Kx), yw.setup(); var zw, Vw = yw; function Hw(n) { return { walk: function (e, t) { return Ac(n, e, t) }, split: qm, normalize: function (t) { return Rh(n, t).fold(q(!1), function (e) { return t.setStart(e.startContainer, e.startOffset), t.setEnd(e.endContainer, e.endOffset), !0 }) } } } (zw = Hw || (Hw = {})).compareRanges = Cd, zw.getCaretRangeFromPoint = Xp, zw.getSelectedNode = ja, zw.getNode = qa; var jw, qw, $w = Hw, Ww = Math.min, Kw = Math.max, Xw = Math.round, Yw = function (e, t, n) { var r, o, i, a, u, s; return r = t.x, o = t.y, i = e.w, a = e.h, u = t.w, s = t.h, "b" === (n = (n || "").split(""))[0] && (o += s), "r" === n[1] && (r += u), "c" === n[0] && (o += Xw(s / 2)), "c" === n[1] && (r += Xw(u / 2)), "b" === n[3] && (o -= a), "r" === n[4] && (r -= i), "c" === n[3] && (o -= Xw(a / 2)), "c" === n[4] && (r -= Xw(i / 2)), Gw(r, o, i, a) }, Gw = function (e, t, n, r) { return {x: e, y: t, w: n, h: r} }, Jw = { inflate: function (e, t, n) { return Gw(e.x - t, e.y - n, e.w + 2 * t, e.h + 2 * n) }, relativePosition: Yw, findBestRelativePosition: function (e, t, n, r) { var o, i; for (i = 0; i < r.length; i++)if ((o = Yw(e, t, r[i])).x >= n.x && o.x + o.w <= n.w + n.x && o.y >= n.y && o.y + o.h <= n.h + n.y)return r[i]; return null }, intersect: function (e, t) { var n, r, o, i; return n = Kw(e.x, t.x), r = Kw(e.y, t.y), o = Ww(e.x + e.w, t.x + t.w), i = Ww(e.y + e.h, t.y + t.h), o - n < 0 || i - r < 0 ? null : Gw(n, r, o - n, i - r) }, clamp: function (e, t, n) { var r, o, i, a, u, s, c, l, f, d; return u = e.x, s = e.y, c = e.x + e.w, l = e.y + e.h, f = t.x + t.w, d = t.y + t.h, r = Kw(0, t.x - u), o = Kw(0, t.y - s), i = Kw(0, c - f), a = Kw(0, l - d), u += r, s += o, n && (c += r, l += o, u -= i, s -= a), Gw(u, s, (c -= i) - u, (l -= a) - s) }, create: Gw, fromClientRect: function (e) { return Gw(e.left, e.top, e.width, e.height) } }, Qw = {}, Zw = { add: function (e, t) { Qw[e.toLowerCase()] = t }, has: function (e) { return !!Qw[e.toLowerCase()] }, get: function (e) { var t = e.toLowerCase(), n = Qw.hasOwnProperty(t) ? Qw[t] : null; if (null === n)throw new Error("Could not find module for type: " + e); return n }, create: function (e, t) { var n; if ("string" == typeof e ? (t = t || {}).type = e : e = (t = e).type, e = e.toLowerCase(), !(n = Qw[e]))throw new Error("Could not find control by type: " + e); return (n = new n(t)).type = e, n } }, eN = Xt.each, tN = Xt.extend, nN = function () { }; nN.extend = jw = function (n) { var e, t, r, o = this.prototype, i = function () { var e, t, n; if (!qw && (this.init && this.init.apply(this, arguments), t = this.Mixins))for (e = t.length; e--;)(n = t[e]).init && n.init.apply(this, arguments) }, a = function () { return this }, u = function (n, r) { return function () { var e, t = this._super; return this._super = o[n], e = r.apply(this, arguments), this._super = t, e } }; for (t in qw = !0, e = new this, qw = !1, n.Mixins && (eN(n.Mixins, function (e) { for (var t in e)"init" !== t && (n[t] = e[t]) }), o.Mixins && (n.Mixins = o.Mixins.concat(n.Mixins))), n.Methods && eN(n.Methods.split(","), function (e) { n[e] = a }), n.Properties && eN(n.Properties.split(","), function (e) { var t = "_" + e; n[e] = function (e) { return e !== undefined ? (this[t] = e, this) : this[t] } }), n.Statics && eN(n.Statics, function (e, t) { i[t] = e }), n.Defaults && o.Defaults && (n.Defaults = tN({}, o.Defaults, n.Defaults)), n)"function" == typeof(r = n[t]) && o[t] ? e[t] = u(t, r) : e[t] = r; return i.prototype = e, (i.constructor = i).extend = jw, i }; var rN = Math.min, oN = Math.max, iN = Math.round, aN = function (e, n) { var r, o, t, i; if (n = n || '"', null === e)return "null"; if ("string" == (t = typeof e))return o = "\bb\tt\nn\ff\rr\"\"''\\\\", n + e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function (e, t) { return '"' === n && "'" === e ? e : (r = o.indexOf(t)) + 1 ? "\\" + o.charAt(r + 1) : (e = t.charCodeAt().toString(16), "\\u" + "0000".substring(e.length) + e) }) + n; if ("object" !== t)return "" + e; if (e.hasOwnProperty && "[object Array]" === Object.prototype.toString.call(e)) { for (r = 0, o = "["; r < e.length; r++)o += (0 < r ? "," : "") + aN(e[r], n); return o + "]" } for (i in o = "{", e)e.hasOwnProperty(i) && (o += "function" != typeof e[i] ? (1 < o.length ? "," + n : n) + i + n + ":" + aN(e[i], n) : ""); return o + "}" }, uN = { serialize: aN, parse: function (e) { try { return JSON.parse(e) } catch (t) { } } }, sN = { callbacks: {}, count: 0, send: function (t) { var n = this, r = di.DOM, o = t.count !== undefined ? t.count : n.count, i = "tinymce_jsonp_" + o; n.callbacks[o] = function (e) { r.remove(i), delete n.callbacks[o], t.callback(e) }, r.add(r.doc.body, "script", {id: i, src: t.url, type: "text/javascript"}), n.count++ } }, cN = { send: function (e) { var t, n = 0, r = function () { !e.async || 4 === t.readyState || 1e4 < n++ ? (e.success && n < 1e4 && 200 === t.status ? e.success.call(e.success_scope, "" + t.responseText, t, e) : e.error && e.error.call(e.error_scope, 1e4 < n ? "TIMED_OUT" : "GENERAL", t, e), t = null) : setTimeout(r, 10) }; if (e.scope = e.scope || this, e.success_scope = e.success_scope || e.scope, e.error_scope = e.error_scope || e.scope, e.async = !1 !== e.async, e.data = e.data || "", cN.fire("beforeInitialize", {settings: e}), t = Gf()) { if (t.overrideMimeType && t.overrideMimeType(e.content_type), t.open(e.type || (e.data ? "POST" : "GET"), e.url, e.async), e.crossDomain && (t.withCredentials = !0), e.content_type && t.setRequestHeader("Content-Type", e.content_type), e.requestheaders && Xt.each(e.requestheaders, function (e) { t.setRequestHeader(e.key, e.value) }), t.setRequestHeader("X-Requested-With", "XMLHttpRequest"), (t = cN.fire("beforeSend", { xhr: t, settings: e }).xhr).send(e.data), !e.async)return r(); setTimeout(r, 10) } } }; Xt.extend(cN, Kx); var lN, fN, dN, mN, gN = Xt.extend, pN = function (e) { this.settings = gN({}, e), this.count = 0 }; pN.sendRPC = function (e) { return (new pN).send(e) }, pN.prototype = { send: function (n) { var r = n.error, o = n.success; (n = gN(this.settings, n)).success = function (e, t) { void 0 === (e = uN.parse(e)) && (e = {error: "JSON Parse error."}), e.error ? r.call(n.error_scope || n.scope, e.error, t) : o.call(n.success_scope || n.scope, e.result) }, n.error = function (e, t) { r && r.call(n.error_scope || n.scope, e, t) }, n.data = uN.serialize({ id: n.id || "c" + this.count++, method: n.method, params: n.params }), n.content_type = "application/json", cN.send(n) } }; try { lN = window.localStorage } catch (CN) { fN = {}, dN = [], mN = { getItem: function (e) { var t = fN[e]; return t || null }, setItem: function (e, t) { dN.push(e), fN[e] = String(t) }, key: function (e) { return dN[e] }, removeItem: function (t) { dN = dN.filter(function (e) { return e === t }), delete fN[t] }, clear: function () { dN = [], fN = {} }, length: 0 }, Object.defineProperty(mN, "length", { get: function () { return dN.length }, configurable: !1, enumerable: !1 }), lN = mN } var hN, vN = Vw, bN = { geom: {Rect: Jw}, util: { Promise: de, Delay: he, Tools: Xt, VK: um, URI: cw, Class: nN, EventDispatcher: qx, Observable: Kx, I18n: wi, XHR: cN, JSON: uN, JSONRequest: pN, JSONP: sN, LocalStorage: lN, Color: function (e) { var n = {}, u = 0, s = 0, c = 0, t = function (e) { var t; return "object" == typeof e ? "r"in e ? (u = e.r, s = e.g, c = e.b) : "v"in e && function (e, t, n) { var r, o, i, a; if (e = (parseInt(e, 10) || 0) % 360, t = parseInt(t, 10) / 100, n = parseInt(n, 10) / 100, t = oN(0, rN(t, 1)), n = oN(0, rN(n, 1)), 0 !== t) { switch (r = e / 60, i = (o = n * t) * (1 - Math.abs(r % 2 - 1)), a = n - o, Math.floor(r)) { case 0: u = o, s = i, c = 0; break; case 1: u = i, s = o, c = 0; break; case 2: u = 0, s = o, c = i; break; case 3: u = 0, s = i, c = o; break; case 4: u = i, s = 0, c = o; break; case 5: u = o, s = 0, c = i; break; default: u = s = c = 0 } u = iN(255 * (u + a)), s = iN(255 * (s + a)), c = iN(255 * (c + a)) } else u = s = c = iN(255 * n) }(e.h, e.s, e.v) : (t = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e)) ? (u = parseInt(t[1], 10), s = parseInt(t[2], 10), c = parseInt(t[3], 10)) : (t = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e)) ? (u = parseInt(t[1], 16), s = parseInt(t[2], 16), c = parseInt(t[3], 16)) : (t = /#([0-F])([0-F])([0-F])/gi.exec(e)) && (u = parseInt(t[1] + t[1], 16), s = parseInt(t[2] + t[2], 16), c = parseInt(t[3] + t[3], 16)), u = u < 0 ? 0 : 255 < u ? 255 : u, s = s < 0 ? 0 : 255 < s ? 255 : s, c = c < 0 ? 0 : 255 < c ? 255 : c, n }; return e && t(e), n.toRgb = function () { return {r: u, g: s, b: c} }, n.toHsv = function () { return e = u, t = s, n = c, o = 0, (i = rN(e /= 255, rN(t /= 255, n /= 255))) === (a = oN(e, oN(t, n))) ? { h: 0, s: 0, v: 100 * (o = i) } : (r = (a - i) / a, { h: iN(60 * ((e === i ? 3 : n === i ? 1 : 5) - (e === i ? t - n : n === i ? e - t : n - e) / ((o = a) - i))), s: iN(100 * r), v: iN(100 * o) }); var e, t, n, r, o, i, a }, n.toHex = function () { var e = function (e) { return 1 < (e = parseInt(e, 10).toString(16)).length ? e : "0" + e }; return "#" + e(u) + e(s) + e(c) }, n.parse = t, n } }, dom: { EventUtils: Se, Sizzle: St, DomQuery: gn, TreeWalker: to, DOMUtils: di, ScriptLoader: vi, RangeUtils: $w, Serializer: Ip, ControlSelection: jp, BookmarkManager: zp, Selection: Fh, Event: Se.Event }, html: { Styles: ti, Entities: Ho, Node: Hc, Schema: Zo, SaxParser: $c, DomParser: Bp, Writer: Nl, Serializer: El }, ui: {Factory: Zw}, Env: fe, AddOnManager: Ei, Annotator: Lc, Formatter: pp, UndoManager: Dm, EditorCommands: Hx, WindowManager: Mf, NotificationManager: If, EditorObservable: Zx, Shortcuts: ow, Editor: hw, FocusManager: Cw, EditorManager: Vw, DOM: di.DOM, ScriptLoader: vi.ScriptLoader, PluginManager: Ei.PluginManager, ThemeManager: Ei.ThemeManager, IconManager: Kf, trim: Xt.trim, isArray: Xt.isArray, is: Xt.is, toArray: Xt.toArray, makeMap: Xt.makeMap, each: Xt.each, map: Xt.map, grep: Xt.grep, inArray: Xt.inArray, extend: Xt.extend, create: Xt.create, walk: Xt.walk, createNS: Xt.createNS, resolve: Xt.resolve, explode: Xt.explode, _addCacheSuffix: Xt._addCacheSuffix, isOpera: fe.opera, isWebKit: fe.webkit, isIE: fe.ie, isGecko: fe.gecko, isMac: fe.mac }, yN = vN = Xt.extend(vN, bN); hN = yN, window.tinymce = hN, window.tinyMCE = hN, function (e) { if ("object" == typeof module)try { module.exports = e } catch (t) { } }(yN) }();