/** * Copyright (c) Tiny Technologies, Inc. All rights reserved. * Licensed under the LGPL or a commercial license. * For LGPL see License.txt in the project root for license information. * For commercial licenses see https://www.tiny.cloud/ * * Version: 5.6.2 (2020-12-08) */ ! function () { "use strict"; var r = function (e) { if (null === e) return "null"; if (e === undefined) return "undefined"; var t = typeof e; return "object" == t && (Array.prototype.isPrototypeOf(e) || e.constructor && "Array" === e.constructor.name) ? "array" : "object" == t && (String.prototype.isPrototypeOf(e) || e.constructor && "String" === e.constructor.name) ? "string" : t }, t = function (e) { return { eq: e } }, s = t(function (e, t) { return e === t }), i = function (o) { return t(function (e, t) { if (e.length !== t.length) return !1; for (var n = e.length, r = 0; r < n; r++) if (!o.eq(e[r], t[r])) return !1; return !0 }) }, c = function (e, r) { return n = i(e), o = function (e) { return t = e, n = r, Array.prototype.slice.call(t).sort(n); var t, n }, t(function (e, t) { return n.eq(o(e), o(t)) }); var n, o }, u = function (u) { return t(function (e, t) { var n = Object.keys(e), r = Object.keys(t); if (!c(s).eq(n, r)) return !1; for (var o = n.length, i = 0; i < o; i++) { var a = n[i]; if (!u.eq(e[a], t[a])) return !1 } return !0 }) }, l = t(function (e, t) { if (e === t) return !0; var n = r(e); return n === r(t) && (-1 !== ["undefined", "boolean", "number", "string", "function", "xml", "null"].indexOf(n) ? e === t : "array" === n ? i(l).eq(e, t) : "object" === n && u(l).eq(e, t)) }), V = function () {}, a = function (n, r) { return function () { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; return n(r.apply(null, e)) } }, E = function (e) { return function () { return e } }, o = function (e) { return e }; function N(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, n, f, d = function (t) { return function (e) { return !t(e) } }, m = function (e) { return function () { throw new Error(e) } }, b = function (e) { e() }, C = E(!1), k = E(!0), p = function () { return g }, g = (e = function (e) { return e.isNone() }, { fold: function (e, t) { return e() }, is: C, isSome: C, isNone: k, getOr: f = function (e) { return e }, getOrThunk: n = function (e) { return e() }, getOrDie: function (e) { throw new Error(e || "error: getOrDie called on none.") }, getOrNull: E(null), getOrUndefined: E(undefined), or: f, orThunk: n, map: p, each: V, bind: p, exists: C, forall: k, filter: p, equals: e, equals_: e, toArray: function () { return [] }, toString: E("none()") }), h = function (n) { var e = E(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: k, isNone: C, getOr: e, getOrThunk: e, getOrDie: e, getOrNull: e, getOrUndefined: e, or: t, orThunk: t, map: function (e) { return h(e(n)) }, each: function (e) { e(n) }, bind: r, exists: r, forall: r, filter: function (e) { return e(n) ? o : g }, toArray: function () { return [n] }, toString: function () { return "some(" + n + ")" }, equals: function (e) { return e.is(n) }, equals_: function (e, t) { return e.fold(C, function (e) { return t(n, e) }) } }; return o }, U = { some: h, none: p, from: function (e) { return null === e || e === undefined ? g : h(e) } }, v = function (r) { return function (e) { return n = typeof (t = e), (null === t ? "null" : "object" == n && (Array.prototype.isPrototypeOf(t) || t.constructor && "Array" === t.constructor.name) ? "array" : "object" == n && (String.prototype.isPrototypeOf(t) || t.constructor && "String" === t.constructor.name) ? "string" : n) === r; var t, n } }, y = function (t) { return function (e) { return typeof e === t } }, w = function (t) { return function (e) { return t === e } }, q = v("string"), _ = v("object"), S = v("array"), x = w(null), A = y("boolean"), R = w(undefined), $ = function (e) { return null === e || e === undefined }, D = function (e) { return !$(e) }, T = y("function"), O = y("number"), B = Array.prototype.slice, P = Array.prototype.indexOf, L = Array.prototype.push, I = function (e, t) { return P.call(e, t) }, M = function (e, t) { return -1 < I(e, t) }, F = function (e, t) { for (var n = 0, r = e.length; n < r; n++) { if (t(e[n], n)) return !0 } return !1 }, z = 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) } return r }, W = function (e, t) { for (var n = 0, r = e.length; n < r; n++) { t(e[n], n) } }, j = function (e, t) { for (var n = e.length - 1; 0 <= n; n--) { t(e[n], n) } }, H = function (e, t) { for (var n = [], r = 0, o = e.length; r < o; r++) { var i = e[r]; t(i, r) && n.push(i) } return n }, K = function (e, t, n) { return j(e, function (e) { n = t(n, e) }), n }, X = function (e, t, n) { return W(e, function (e) { n = t(n, e) }), n }, Y = function (e, t) { return function (e, t, n) { for (var r = 0, o = e.length; r < o; r++) { var i = e[r]; if (t(i, r)) return U.some(i); if (n(i, r)) break } return U.none() }(e, t, C) }, G = function (e, t) { for (var n = 0, r = e.length; n < r; n++) { if (t(e[n], n)) return U.some(n) } return U.none() }, J = function (e, t) { return function (e) { for (var t = [], n = 0, r = e.length; n < r; ++n) { if (!S(e[n])) throw new Error("Arr.flatten item " + n + " was not an array, input: " + e); L.apply(t, e[n]) } return t }(z(e, t)) }, Q = function (e, t) { for (var n = 0, r = e.length; n < r; ++n) { if (!0 !== t(e[n], n)) return !1 } return !0 }, Z = function (e) { var t = B.call(e, 0); return t.reverse(), t }, ee = function (e, t) { return H(e, function (e) { return !M(t, e) }) }, te = function (e, t) { return 0 <= t && t < e.length ? U.some(e[t]) : U.none() }, ne = function (e) { return te(e, 0) }, re = function (e) { return te(e, e.length - 1) }, oe = T(Array.from) ? Array.from : function (e) { return B.call(e) }, ie = Object.keys, ae = Object.hasOwnProperty, ue = function (e, t) { for (var n = ie(e), r = 0, o = n.length; r < o; r++) { var i = n[r]; t(e[i], i) } }, se = function (e, n) { return ce(e, function (e, t) { return { k: t, v: n(e, t) } }) }, ce = function (e, r) { var o = {}; return ue(e, function (e, t) { var n = r(e, t); o[n.k] = n.v }), o }, le = function (n) { return function (e, t) { n[t] = e } }, fe = function (e, n, r, o) { return ue(e, function (e, t) { (n(e, t) ? r : o)(e, t) }), {} }, de = function (e, t) { var n = {}, r = {}; return fe(e, t, le(n), le(r)), { t: n, f: r } }, me = function (e, t) { var n = {}; return fe(e, t, le(n), V), n }, pe = function (e) { return n = function (e) { return e }, r = [], ue(e, function (e, t) { r.push(n(e, t)) }), r; var n, r }, ge = function (e, t) { return he(e, t) ? U.from(e[t]) : U.none() }, he = function (e, t) { return ae.call(e, t) }, ve = function (e, t) { return he(e, t) && e[t] !== undefined && null !== e[t] }, ye = Array.isArray, be = function (e, t, n) { var r, o; if (!e) return !1; 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 !1 } else for (r in e) if (e.hasOwnProperty(r) && !1 === t.call(n, e[r], r, e)) return !1; return !0 }, Ce = function (n, r) { var o = []; return be(n, function (e, t) { o.push(r(e, t, n)) }), o }, we = function (n, r) { var o = []; return be(n, function (e, t) { r && !r(e, t, n) || o.push(e) }), o }, xe = function (e, t) { if (e) for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; return -1 }, Se = function (e, t, n, r) { for (var o = R(n) ? e[0] : n, i = 0; i < e.length; i++) o = t.call(r, o, e[i], i); return o }, Ne = function (e, t, n) { for (var r = 0, o = e.length; r < o; r++) if (t.call(n, e[r], r, e)) return r; return -1 }, Ee = function (e) { return e[e.length - 1] }, ke = function () { return (ke = Object.assign || function (e) { for (var t, n = 1, r = arguments.length; n < r; n++) for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]); return e }).apply(this, arguments) }; function _e() { for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; for (var r = Array(e), o = 0, t = 0; t < n; t++) for (var i = arguments[t], a = 0, u = i.length; a < u; a++, o++) r[o] = i[a]; return r } var Ae, Re, Te, De, Oe, Be, Pe, Le = 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 Me(r(1), r(2)) }, Ie = function () { return Me(0, 0) }, Me = function (e, t) { return { major: e, minor: t } }, Fe = { nu: Me, detect: function (e, t) { var n = String(t).toLowerCase(); return 0 === e.length ? Ie() : Le(e, n) }, unknown: Ie }, Ue = function (e, t) { var n = String(t).toLowerCase(); return Y(e, function (e) { return e.search(n) }) }, ze = function (e, n) { return Ue(e, n).map(function (e) { var t = Fe.detect(e.versionRegexes, n); return { current: e.name, version: t } }) }, je = function (e, n) { return Ue(e, n).map(function (e) { var t = Fe.detect(e.versionRegexes, n); return { current: e.name, version: t } }) }, He = function (e, t) { return -1 !== e.indexOf(t) }, Ve = function (e, t) { return n = e, o = 0, "" === (r = t) || n.length >= r.length && n.substr(o, o + r.length) === r; var n, r, o }, qe = function (t) { return function (e) { return e.replace(t, "") } }, $e = qe(/^\s+|\s+$/g), We = qe(/^\s+/g), Ke = qe(/\s+$/g), Xe = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, Ye = function (t) { return function (e) { return He(e, t) } }, Ge = [{ name: "Edge", versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: function (e) { return He(e, "edge/") && He(e, "chrome") && He(e, "safari") && He(e, "applewebkit") } }, { name: "Chrome", versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, Xe], search: function (e) { return He(e, "chrome") && !He(e, "chromeframe") } }, { name: "IE", versionRegexes: [/.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/], search: function (e) { return He(e, "msie") || He(e, "trident") } }, { name: "Opera", versionRegexes: [Xe, /.*?opera\/([0-9]+)\.([0-9]+).*/], search: Ye("opera") }, { name: "Firefox", versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], search: Ye("firefox") }, { name: "Safari", versionRegexes: [Xe, /.*?cpu os ([0-9]+)_([0-9]+).*/], search: function (e) { return (He(e, "safari") || He(e, "mobile/")) && He(e, "applewebkit") } }], Je = [{ name: "Windows", search: Ye("win"), versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] }, { name: "iOS", search: function (e) { return He(e, "iphone") || He(e, "ipad") }, versionRegexes: [/.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/] }, { name: "Android", search: Ye("android"), versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] }, { name: "OSX", search: Ye("mac os x"), versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/] }, { name: "Linux", search: Ye("linux"), versionRegexes: [] }, { name: "Solaris", search: Ye("sunos"), versionRegexes: [] }, { name: "FreeBSD", search: Ye("freebsd"), versionRegexes: [] }, { name: "ChromeOS", search: Ye("cros"), versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/] }], Qe = { browsers: E(Ge), oses: E(Je) }, Ze = "Firefox", et = function (e) { var t = e.current, n = e.version, r = function (e) { return function () { return t === e } }; return { current: t, version: n, isEdge: r("Edge"), isChrome: r("Chrome"), isIE: r("IE"), isOpera: r("Opera"), isFirefox: r(Ze), isSafari: r("Safari") } }, tt = { unknown: function () { return et({ current: undefined, version: Fe.unknown() }) }, nu: et, edge: E("Edge"), chrome: E("Chrome"), ie: E("IE"), opera: E("Opera"), firefox: E(Ze), safari: E("Safari") }, nt = "Windows", rt = "Android", ot = "Solaris", it = "FreeBSD", at = "ChromeOS", ut = function (e) { var t = e.current, n = e.version, r = function (e) { return function () { return t === e } }; return { current: t, version: n, isWindows: r(nt), isiOS: r("iOS"), isAndroid: r(rt), isOSX: r("OSX"), isLinux: r("Linux"), isSolaris: r(ot), isFreeBSD: r(it), isChromeOS: r(at) } }, st = { unknown: function () { return ut({ current: undefined, version: Fe.unknown() }) }, nu: ut, windows: E(nt), ios: E("iOS"), android: E(rt), linux: E("Linux"), osx: E("OSX"), solaris: E(ot), freebsd: E(it), chromeos: E(at) }, ct = function (e, t) { var n, r, o, i, a, u, s, c, l, f, d, m, p = Qe.browsers(), g = Qe.oses(), h = ze(p, e).fold(tt.unknown, tt.nu), v = je(g, e).fold(st.unknown, st.nu); return { browser: h, os: v, deviceType: (r = h, o = e, i = t, a = (n = v).isiOS() && !0 === /ipad/i.test(o), u = n.isiOS() && !a, s = n.isiOS() || n.isAndroid(), c = s || i("(pointer:coarse)"), l = a || !u && s && i("(min-device-width:768px)"), f = u || s && !l, d = r.isSafari() && n.isiOS() && !1 === /safari/i.test(o), m = !f && !l && !d, { isiPad: E(a), isiPhone: E(u), isTablet: E(l), isPhone: E(f), isTouch: E(c), isAndroid: n.isAndroid, isiOS: n.isiOS, isWebView: E(d), isDesktop: E(m) }) } }, lt = function (e) { return window.matchMedia(e).matches }, ft = (Te = !(Ae = function () { return ct(navigator.userAgent, lt) }), function () { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; return Te || (Te = !0, Re = Ae.apply(null, e)), Re }), dt = function () { return ft() }, mt = navigator.userAgent, pt = dt(), gt = pt.browser, ht = pt.os, vt = pt.deviceType, yt = /WebKit/.test(mt) && !gt.isEdge(), bt = "FormData" in window && "FileReader" in window && "URL" in window && !!URL.createObjectURL, Ct = -1 !== mt.indexOf("Windows Phone"), wt = { opera: gt.isOpera(), webkit: yt, ie: !(!gt.isIE() && !gt.isEdge()) && gt.version.major, gecko: gt.isFirefox(), mac: ht.isOSX() || ht.isiOS(), iOS: vt.isiPad() || vt.isiPhone(), android: ht.isAndroid(), contentEditable: !0, transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", caretAfter: !0, range: window.getSelection && "Range" in window, documentMode: gt.isIE() ? document.documentMode || 7 : 10, fileApi: bt, ceFalse: !0, cacheSuffix: null, container: null, experimentalShadowDom: !1, canHaveCSP: !gt.isIE(), desktop: vt.isDesktop(), windowsPhone: Ct, browser: { current: gt.current, version: gt.version, isChrome: gt.isChrome, isEdge: gt.isEdge, isFirefox: gt.isFirefox, isIE: gt.isIE, isOpera: gt.isOpera, isSafari: gt.isSafari }, os: { current: ht.current, version: ht.version, isAndroid: ht.isAndroid, isChromeOS: ht.isChromeOS, isFreeBSD: ht.isFreeBSD, isiOS: ht.isiOS, isLinux: ht.isLinux, isOSX: ht.isOSX, isSolaris: ht.isSolaris, isWindows: ht.isWindows }, deviceType: { isDesktop: vt.isDesktop, isiPad: vt.isiPad, isiPhone: vt.isiPhone, isPhone: vt.isPhone, isTablet: vt.isTablet, isTouch: vt.isTouch, isWebView: vt.isWebView } }, xt = /^\s*|\s*$/g, St = function (e) { return null === e || e === undefined ? "" : ("" + e).replace(xt, "") }, Nt = function (e, t) { return t ? !("array" !== t || !ye(e)) || typeof e === t : e !== undefined }, Et = function (e, n, r, o) { o = o || this, e && (r && (e = e[r]), be(e, function (e, t) { return !1 !== n.call(o, e, t, r) && void Et(e, n, r, o) })) }, kt = { trim: St, isArray: ye, is: Nt, toArray: function (e) { if (ye(e)) return e; for (var t = [], n = 0, r = e.length; n < r; n++) t[n] = e[n]; return t }, 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: be, map: Ce, grep: we, inArray: xe, hasOwn: function (e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, extend: function (e) { for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; for (var r = 0; r < t.length; r++) { var o, i = t[r]; for (var a in i) { !i.hasOwnProperty(a) || (o = i[a]) !== undefined && (e[a] = o) } } return e }, create: function (e, t, n) { var r, o, i, a = this, u = 0, s = (e = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(e))[3].match(/(^|\.)(\w+)$/i)[2], c = a.createNS(e[3].replace(/\.\w+$/, ""), n); if (!c[s]) { if ("static" === e[2]) return c[s] = t, void(this.onCreate && this.onCreate(e[2], e[3], c[s])); t[s] || (t[s] = function () {}, u = 1), c[s] = t[s], a.extend(c[s].prototype, t), e[5] && (r = a.resolve(e[5]).prototype, o = e[5].match(/\.(\w+)$/i)[1], i = c[s], c[s] = u ? function () { return r[o].apply(this, arguments) } : function () { return this.parent = r[o], i.apply(this, arguments) }, c[s].prototype[s] = c[s], a.each(r, function (e, t) { c[s].prototype[t] = r[t] }), a.each(t, function (e, t) { r[t] ? c[s].prototype[t] = function () { return this.parent = r[t], e.apply(this, arguments) } : t !== s && (c[s].prototype[t] = e) })), a.each(t["static"], function (e, t) { c[s][t] = e }) } }, walk: Et, 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 || Nt(e, "array") ? e : Ce(e.split(t || ","), St) }, _addCacheSuffix: function (e) { var t = wt.cacheSuffix; return t && (e += (-1 === e.indexOf("?") ? "?" : "&") + t), e } }, _t = function (e) { if (null === e || e === undefined) throw new Error("Node cannot be null or undefined"); return { dom: e } }, At = { 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), new Error("HTML must have a single root node"); return _t(n.childNodes[0]) }, fromTag: function (e, t) { var n = (t || document).createElement(e); return _t(n) }, fromText: function (e, t) { var n = (t || document).createTextNode(e); return _t(n) }, fromDom: _t, fromPoint: function (e, t, n) { return U.from(e.dom.elementFromPoint(t, n)).map(_t) } }, Rt = 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 }, Tt = function (e, t) { var n = e.dom; if (1 !== n.nodeType) return !1; var r = n; if (r.matches !== undefined) return r.matches(t); if (r.msMatchesSelector !== undefined) return r.msMatchesSelector(t); if (r.webkitMatchesSelector !== undefined) return r.webkitMatchesSelector(t); if (r.mozMatchesSelector !== undefined) return r.mozMatchesSelector(t); throw new Error("Browser lacks native selectors") }, Dt = function (e) { return 1 !== e.nodeType && 9 !== e.nodeType && 11 !== e.nodeType || 0 === e.childElementCount }, Ot = function (e, t) { return e.dom === t.dom }, Bt = function (e, t) { return n = e.dom, r = t.dom, o = n, i = r, a = Node.DOCUMENT_POSITION_CONTAINED_BY, 0 != (o.compareDocumentPosition(i) & a); var n, r, o, i, a }, Pt = function (e, t) { return dt().browser.isIE() ? Bt(e, t) : (n = t, r = e.dom, o = n.dom, r !== o && r.contains(o)); var n, r, o }, Lt = ("undefined" != typeof window || Function("return this;")(), function (e) { return e.dom.nodeName.toLowerCase() }), It = function (e) { return e.dom.nodeType }, Mt = function (t) { return function (e) { return It(e) === t } }, Ft = Mt(1), Ut = Mt(3), zt = Mt(9), jt = Mt(11), Ht = function (e) { return At.fromDom(e.dom.ownerDocument) }, Vt = function (e) { return zt(e) ? e : Ht(e) }, qt = function (e) { return At.fromDom(Vt(e).dom.defaultView) }, $t = function (e) { return U.from(e.dom.parentNode).map(At.fromDom) }, Wt = function (e) { return U.from(e.dom.previousSibling).map(At.fromDom) }, Kt = function (e) { return U.from(e.dom.nextSibling).map(At.fromDom) }, Xt = function (e) { return Z(Rt(e, Wt)) }, Yt = function (e) { return Rt(e, Kt) }, Gt = function (e) { return z(e.dom.childNodes, At.fromDom) }, Jt = function (e, t) { var n = e.dom.childNodes; return U.from(n[t]).map(At.fromDom) }, Qt = function (e) { return Jt(e, 0) }, Zt = function (e) { return Jt(e, e.dom.childNodes.length - 1) }, en = function (e) { return jt(e) }, tn = T(Element.prototype.attachShadow) && T(Node.prototype.getRootNode), nn = E(tn), rn = tn ? function (e) { return At.fromDom(e.dom.getRootNode()) } : Vt, on = function (e) { return en(e) ? e : function (e) { var t = e.dom.head; if (null === t || t === undefined) throw new Error("Head is not available yet"); return At.fromDom(t) }(Vt(e)) }, an = function (e) { return At.fromDom(e.dom.host) }, un = function (e) { return D(e.dom.shadowRoot) }, sn = function (t, n) { $t(t).each(function (e) { e.dom.insertBefore(n.dom, t.dom) }) }, cn = function (e, t) { Kt(e).fold(function () { $t(e).each(function (e) { fn(e, t) }) }, function (e) { sn(e, t) }) }, ln = function (t, n) { Qt(t).fold(function () { fn(t, n) }, function (e) { t.dom.insertBefore(n.dom, e.dom) }) }, fn = function (e, t) { e.dom.appendChild(t.dom) }, dn = function (t, e) { W(e, function (e) { fn(t, e) }) }, mn = function (e) { e.dom.textContent = "", W(Gt(e), function (e) { pn(e) }) }, pn = function (e) { var t = e.dom; null !== t.parentNode && t.parentNode.removeChild(t) }, gn = function (e) { var t, n = Gt(e); 0 < n.length && (t = e, W(n, function (e) { sn(t, e) })), pn(e) }, hn = function (e) { var t = Ut(e) ? e.dom.parentNode : e.dom; if (t === undefined || null === t || null === t.ownerDocument) return !1; var n, r, o, i, a = t.ownerDocument; return o = At.fromDom(t), i = rn(o), (en(i) ? U.some(i) : U.none()).fold(function () { return a.body.contains(t) }, (n = hn, r = an, function (e) { return n(r(e)) })) }, vn = function (n, r) { return { left: n, top: r, translate: function (e, t) { return vn(n + e, r + t) } } }, yn = vn, bn = function (e, t) { return e !== undefined ? e : t !== undefined ? t : 0 }, Cn = function (e) { var t, n = e.dom, r = n.ownerDocument.body; return r === n ? yn(r.offsetLeft, r.offsetTop) : hn(e) ? (t = n.getBoundingClientRect(), yn(t.left, t.top)) : yn(0, 0) }, wn = function (e) { var t = e !== undefined ? e.dom : document, n = t.body.scrollLeft || t.documentElement.scrollLeft, r = t.body.scrollTop || t.documentElement.scrollTop; return yn(n, r) }, xn = function (e, t, n) { var r = (n !== undefined ? n.dom : document).defaultView; r && r.scrollTo(e, t) }, Sn = function (e, t) { dt().browser.isSafari() && T(e.dom.scrollIntoViewIfNeeded) ? e.dom.scrollIntoViewIfNeeded(!1) : e.dom.scrollIntoView(t) }, Nn = function (e, t, n, r) { return { x: e, y: t, width: n, height: r, right: e + n, bottom: t + r } }, En = function (e) { var t, n, r = e === undefined ? window : e, o = r.document, i = wn(At.fromDom(o)); return n = (t = r) === undefined ? window : t, U.from(n.visualViewport).fold(function () { var e = r.document.documentElement, t = e.clientWidth, n = e.clientHeight; return Nn(i.left, i.top, t, n) }, function (e) { return Nn(Math.max(e.pageLeft, i.left), Math.max(e.pageTop, i.top), e.width, e.height) }) }, kn = function (t) { return function (e) { return !!e && e.nodeType === t } }, _n = function (e) { return !!e && !Object.getPrototypeOf(e) }, An = kn(1), Rn = function (e) { var n = e.map(function (e) { return e.toLowerCase() }); return function (e) { if (e && e.nodeName) { var t = e.nodeName.toLowerCase(); return M(n, t) } return !1 } }, Tn = function (r, e) { var o = e.toLowerCase().split(" "); return function (e) { var t; if (An(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 } }, Dn = function (t) { return function (e) { return An(e) && e.hasAttribute(t) } }, On = function (e) { return An(e) && e.hasAttribute("data-mce-bogus") }, Bn = function (e) { return An(e) && "TABLE" === e.tagName }, Pn = function (t) { return function (e) { if (An(e)) { if (e.contentEditable === t) return !0; if (e.getAttribute("data-mce-contenteditable") === t) return !0 } return !1 } }, Ln = Rn(["textarea", "input"]), In = kn(3), Mn = kn(8), Fn = kn(9), Un = kn(11), zn = Rn(["br"]), jn = Rn(["img"]), Hn = Pn("true"), Vn = Pn("false"), qn = Rn(["td", "th"]), $n = Rn(["video", "audio", "object", "embed"]), Wn = function (e) { return e.style !== undefined && T(e.style.getPropertyValue) }, Kn = function (e, t, n) { if (!(q(n) || A(n) || O(n))) throw console.error("Invalid call to Attribute.set. Key ", t, ":: Value ", n, ":: Element ", e), new Error("Attribute value was not simple"); e.setAttribute(t, n + "") }, Xn = function (e, t, n) { Kn(e.dom, t, n) }, Yn = function (e, t) { var n = e.dom; ue(t, function (e, t) { Kn(n, t, e) }) }, Gn = function (e, t) { var n = e.dom.getAttribute(t); return null === n ? undefined : n }, Jn = function (e, t) { return U.from(Gn(e, t)) }, Qn = function (e, t) { e.dom.removeAttribute(t) }, Zn = function (e, t) { var n = e.dom; ue(t, function (e, t) { ! function (e, t, n) { if (!q(n)) throw console.error("Invalid call to CSS.set. Property ", t, ":: Value ", n, ":: Element ", e), new Error("CSS value must be a string: " + n); Wn(e) && e.style.setProperty(t, n) }(n, t, e) }) }, er = function (e, t) { var n = e.dom, r = window.getComputedStyle(n).getPropertyValue(t); return "" !== r || hn(e) ? r : tr(n, t) }, tr = function (e, t) { return Wn(e) ? e.style.getPropertyValue(t) : "" }, nr = function (e, t) { var n = e.dom, r = tr(n, t); return U.from(r).filter(function (e) { return 0 < e.length }) }, rr = function (e) { var t = {}, n = e.dom; if (Wn(n)) for (var r = 0; r < n.style.length; r++) { var o = n.style.item(r); t[o] = n.style[o] } return t }, or = dt().browser, ir = function (e) { return Y(e, Ft) }, ar = function (e, t) { return e.children && M(e.children, t) }, ur = function (e, t, n) { var r, o, i, a = 0, u = 0, s = e.ownerDocument; if (n = n || e, t) { if (n === e && t.getBoundingClientRect && "static" === er(At.fromDom(e), "position")) return { x: a = (o = t.getBoundingClientRect()).left + (s.documentElement.scrollLeft || e.scrollLeft) - s.documentElement.clientLeft, y: u = o.top + (s.documentElement.scrollTop || e.scrollTop) - s.documentElement.clientTop }; for (r = t; r && r !== n && r.nodeType && !ar(r, n);) a += r.offsetLeft || 0, u += r.offsetTop || 0, r = r.offsetParent; for (r = t.parentNode; r && r !== n && r.nodeType && !ar(r, n);) a -= r.scrollLeft || 0, u -= r.scrollTop || 0, r = r.parentNode; u += (i = At.fromDom(t), or.isFirefox() && "table" === Lt(i) ? ir(Gt(i)).filter(function (e) { return "caption" === Lt(e) }).bind(function (o) { return ir(Yt(o)).map(function (e) { var t = e.dom.offsetTop, n = o.dom.offsetTop, r = o.dom.offsetHeight; return t <= n ? -r : 0 }) }).getOr(0) : 0) } return { x: a, y: u } }, sr = {}, cr = { exports: sr }; De = undefined, Oe = sr, Be = cr, Pe = undefined, function (e) { "object" == typeof Oe && void 0 !== Be ? Be.exports = e() : "function" == typeof De && De.amd ? De([], e) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).EphoxContactWrapper = e() }(function () { return function l(i, a, u) { function s(t, e) { if (!a[t]) { if (!i[t]) { var n = "function" == typeof Pe && Pe; if (!e && n) return n(t, !0); if (c) return c(t, !0); var r = new Error("Cannot find module '" + t + "'"); throw r.code = "MODULE_NOT_FOUND", r } var o = a[t] = { exports: {} }; i[t][0].call(o.exports, function (e) { return s(i[t][1][e] || e) }, o, o.exports, l, i, a, u) } return a[t].exports } for (var c = "function" == typeof Pe && Pe, e = 0; e < u.length; e++) s(u[e]); return s }({ 1: [function (e, t, n) { var r, o, i = t.exports = {}; function a() { throw new Error("setTimeout has not been defined") } function u() { throw new Error("clearTimeout has not been defined") } function s(e) { if (r === setTimeout) return setTimeout(e, 0); if ((r === a || !r) && setTimeout) return r = setTimeout, setTimeout(e, 0); try { return r(e, 0) } catch (t) { try { return r.call(null, e, 0) } catch (t) { return r.call(this, e, 0) } } }! function () { try { r = "function" == typeof setTimeout ? setTimeout : a } catch (e) { r = a } try { o = "function" == typeof clearTimeout ? clearTimeout : u } catch (e) { o = u } }(); var c, l = [], f = !1, d = -1; function m() { f && c && (f = !1, c.length ? l = c.concat(l) : d = -1, l.length && p()) } function p() { if (!f) { var e = s(m); f = !0; for (var t = l.length; t;) { for (c = l, l = []; ++d < t;) c && c[d].run(); d = -1, t = l.length } c = null, f = !1, function (e) { if (o === clearTimeout) return clearTimeout(e); if ((o === u || !o) && clearTimeout) return o = clearTimeout, clearTimeout(e); try { o(e) } catch (t) { try { return o.call(null, e) } catch (t) { return o.call(this, e) } } }(e) } } function g(e, t) { this.fun = e, this.array = t } function h() {} i.nextTick = function (e) { var t = new Array(arguments.length - 1); if (1 < arguments.length) for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; l.push(new g(e, t)), 1 !== l.length || f || s(p) }, g.prototype.run = function () { this.fun.apply(null, this.array) }, i.title = "browser", i.browser = !0, i.env = {}, i.argv = [], i.version = "", i.versions = {}, i.on = h, i.addListener = h, i.once = h, i.off = h, i.removeListener = h, i.removeAllListeners = h, i.emit = h, i.prependListener = h, i.prependOnceListener = h, i.listeners = function (e) { return [] }, i.binding = function (e) { throw new Error("process.binding is not supported") }, i.cwd = function () { return "/" }, i.chdir = function (e) { throw new Error("process.chdir is not supported") }, i.umask = function () { return 0 } }, {}], 2: [function (e, f, t) { (function (t) { function r() {} function a(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 = 0, this._handled = !1, this._value = undefined, this._deferreds = [], l(e, this) } function o(r, o) { for (; 3 === r._state;) r = r._value; 0 !== r._state ? (r._handled = !0, a._immediateFn(function () { var e, t = 1 === r._state ? o.onFulfilled : o.onRejected; if (null !== t) { try { e = t(r._value) } catch (n) { return void u(o.promise, n) } i(o.promise, e) } else(1 === r._state ? i : u)(o.promise, r._value) })) : r._deferreds.push(o) } function i(e, t) { try { if (t === e) throw new TypeError("A promise cannot be resolved with itself."); if (t && ("object" == typeof t || "function" == typeof t)) { var n = t.then; if (t instanceof a) return e._state = 3, e._value = t, void s(e); if ("function" == typeof n) return void l((r = n, o = t, function () { r.apply(o, arguments) }), e) } e._state = 1, e._value = t, s(e) } catch (i) { u(e, i) } var r, o } function u(e, t) { e._state = 2, e._value = t, s(e) } function s(e) { 2 === e._state && 0 === e._deferreds.length && a._immediateFn(function () { e._handled || a._unhandledRejectionFn(e._value) }); for (var t = 0, n = e._deferreds.length; t < n; t++) o(e, e._deferreds[t]); e._deferreds = null } function c(e, t, n) { this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.promise = n } function l(e, t) { var n = !1; try { e(function (e) { n || (n = !0, i(t, e)) }, function (e) { n || (n = !0, u(t, e)) }) } catch (r) { if (n) return; n = !0, u(t, r) } } var e, n; e = this, n = setTimeout, a.prototype["catch"] = function (e) { return this.then(null, e) }, a.prototype.then = function (e, t) { var n = new this.constructor(r); return o(this, new c(e, t, n)), n }, a.all = function (e) { var s = Array.prototype.slice.call(e); return new a(function (o, i) { if (0 === s.length) return o([]); var a = s.length; for (var e = 0; e < s.length; e++) ! 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) } }(e, s[e]) }) }, a.resolve = function (t) { return t && "object" == typeof t && t.constructor === a ? t : new a(function (e) { e(t) }) }, a.reject = function (n) { return new a(function (e, t) { t(n) }) }, a.race = function (o) { return new a(function (e, t) { for (var n = 0, r = o.length; n < r; n++) o[n].then(e, t) }) }, a._immediateFn = "function" == typeof t ? function (e) { t(e) } : function (e) { n(e, 0) }, a._unhandledRejectionFn = function (e) { "undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", e) }, a._setImmediateFn = function (e) { a._immediateFn = e }, a._setUnhandledRejectionFn = function (e) { a._unhandledRejectionFn = e }, void 0 !== f && f.exports ? f.exports = a : e.Promise || (e.Promise = a) }).call(this, e("timers").setImmediate) }, { timers: 3 }], 3: [function (s, e, c) { (function (e, t) { var r = s("process/browser.js").nextTick, n = Function.prototype.apply, o = Array.prototype.slice, i = {}, a = 0; function u(e, t) { this._id = e, this._clearFn = t } c.setTimeout = function () { return new u(n.call(setTimeout, window, arguments), clearTimeout) }, c.setInterval = function () { return new u(n.call(setInterval, window, arguments), clearInterval) }, c.clearTimeout = c.clearInterval = function (e) { e.close() }, u.prototype.unref = u.prototype.ref = function () {}, u.prototype.close = function () { this._clearFn.call(window, this._id) }, c.enroll = function (e, t) { clearTimeout(e._idleTimeoutId), e._idleTimeout = t }, c.unenroll = function (e) { clearTimeout(e._idleTimeoutId), e._idleTimeout = -1 }, c._unrefActive = c.active = function (e) { clearTimeout(e._idleTimeoutId); var t = e._idleTimeout; 0 <= t && (e._idleTimeoutId = setTimeout(function () { e._onTimeout && e._onTimeout() }, t)) }, c.setImmediate = "function" == typeof e ? e : function (e) { var t = a++, n = !(arguments.length < 2) && o.call(arguments, 1); return i[t] = !0, r(function () { i[t] && (n ? e.apply(null, n) : e.call(null), c.clearImmediate(t)) }), t }, c.clearImmediate = "function" == typeof t ? t : function (e) { delete i[e] } }).call(this, s("timers").setImmediate, s("timers").clearImmediate) }, { "process/browser.js": 1, timers: 3 }], 4: [function (e, t, n) { var r = e("promise-polyfill"), o = "undefined" != typeof window ? window : Function("return this;")(); t.exports = { boltExport: o.Promise || r } }, { "promise-polyfill": 2 }] }, {}, [4])(4) }); var lr = cr.exports.boltExport, fr = function (e) { var n = U.none(), t = [], r = function (e) { o() ? a(e) : t.push(e) }, o = function () { return n.isSome() }, i = function (e) { W(e, a) }, a = function (t) { n.each(function (e) { setTimeout(function () { t(e) }, 0) }) }; return e(function (e) { o() || (n = U.some(e), i(t), t = []) }), { get: r, map: function (n) { return fr(function (t) { r(function (e) { t(n(e)) }) }) }, isReady: o } }, dr = { nu: fr, pure: function (t) { return fr(function (e) { e(t) }) } }, mr = function (e) { setTimeout(function () { throw e }, 0) }, pr = function (n) { var e = function (e) { n().then(e, mr) }; return { map: function (e) { return pr(function () { return n().then(e) }) }, bind: function (t) { return pr(function () { return n().then(function (e) { return t(e).toPromise() }) }) }, anonBind: function (e) { return pr(function () { return n().then(function () { return e.toPromise() }) }) }, toLazy: function () { return dr.nu(e) }, toCached: function () { var e = null; return pr(function () { return null === e && (e = n()), e }) }, toPromise: n, get: e } }, gr = function (e) { return pr(function () { return new lr(e) }) }, hr = function (a, e) { return e(function (r) { var o = [], i = 0; 0 === a.length ? r([]) : W(a, function (e, t) { var n; e.get((n = t, function (e) { o[n] = e, ++i >= a.length && r(o) })) }) }) }, vr = function (n) { return { is: function (e) { return n === e }, isValue: k, isError: C, getOr: E(n), getOrThunk: E(n), getOrDie: E(n), or: function (e) { return vr(n) }, orThunk: function (e) { return vr(n) }, fold: function (e, t) { return t(n) }, map: function (e) { return vr(e(n)) }, mapError: function (e) { return vr(n) }, each: function (e) { e(n) }, bind: function (e) { return e(n) }, exists: function (e) { return e(n) }, forall: function (e) { return e(n) }, toOptional: function () { return U.some(n) } } }, yr = function (n) { return { is: C, isValue: C, isError: k, getOr: o, getOrThunk: function (e) { return e() }, getOrDie: function () { return m(String(n))() }, or: function (e) { return e }, orThunk: function (e) { return e() }, fold: function (e, t) { return e(n) }, map: function (e) { return yr(n) }, mapError: function (e) { return yr(e(n)) }, each: V, bind: function (e) { return yr(n) }, exists: C, forall: k, toOptional: U.none } }, br = { value: vr, error: yr, fromOption: function (e, t) { return e.fold(function () { return yr(t) }, vr) } }, Cr = function (a) { if (!S(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 W(a, function (e, r) { var t = ie(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 (!S(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 = ie(e); if (u.length !== t.length) throw new Error("Wrong number of arguments to match. Expected: " + u.join(",") + "\nActual: " + t.join(",")); if (!Q(u, function (e) { return M(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 }, wr = (Cr([{ bothErrors: ["error1", "error2"] }, { firstError: ["error1", "value2"] }, { secondError: ["value1", "error2"] }, { bothValues: ["value1", "value2"] }]), function (e) { return e.fold(o, o) }); function xr(e, t, n, r, o) { return e(n, r) ? U.some(n) : T(o) && o(n) ? U.none() : t(n, r, o) } var Sr, Nr, Er, kr, _r = function (e, t, n) { for (var r = e.dom, o = T(n) ? n : C; r.parentNode;) { r = r.parentNode; var i = At.fromDom(r); if (t(i)) return U.some(i); if (o(i)) break } return U.none() }, Ar = function (e, t, n) { return xr(function (e, t) { return t(e) }, _r, e, t, n) }, Rr = function (e, t) { return Y(e.dom.childNodes, function (e) { return t(At.fromDom(e)) }).map(At.fromDom) }, Tr = function (e, t, n) { return _r(e, function (e) { return Tt(e, t) }, n) }, Dr = function (e, t) { return n = t, o = (r = e) === undefined ? document : r.dom, Dt(o) ? U.none() : U.from(o.querySelector(n)).map(At.fromDom); var n, r, o }, Or = function (e, t, n) { return xr(Tt, Tr, e, t, n) }, Br = window.Promise ? window.Promise : (Sr = Array.isArray || function (e) { return "[object Array]" === Object.prototype.toString.call(e) }, Er = (Nr = 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 = [], zr(e, Pr(Ir, this), Pr(Mr, this)) }).immediateFn || "function" == typeof setImmediate && setImmediate || function (e) { setTimeout(e, 1) }, Nr.prototype["catch"] = function (e) { return this.then(null, e) }, Nr.prototype.then = function (n, r) { var o = this; return new Nr(function (e, t) { Lr.call(o, new Ur(n, r, e, t)) }) }, Nr.all = function () { var s = Array.prototype.slice.call(1 === arguments.length && Sr(arguments[0]) ? arguments[0] : arguments); return new Nr(function (o, i) { if (0 === s.length) return o([]); for (var a = s.length, e = 0; e < s.length; e++) ! 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) } }(e, s[e]) }) }, Nr.resolve = function (t) { return t && "object" == typeof t && t.constructor === Nr ? t : new Nr(function (e) { e(t) }) }, Nr.reject = function (n) { return new Nr(function (e, t) { t(n) }) }, Nr.race = function (o) { return new Nr(function (e, t) { for (var n = 0, r = o.length; n < r; n++) o[n].then(e, t) }) }, Nr); function Pr(e, t) { return function () { e.apply(t, arguments) } } function Lr(r) { var o = this; null !== this._state ? Er(function () { var e, t = o._state ? r.onFulfilled : r.onRejected; if (null !== t) { try { e = t(o._value) } catch (n) { return void r.reject(n) } r.resolve(e) } else(o._state ? r.resolve : r.reject)(o._value) }) : this._deferreds.push(r) } function Ir(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 zr(Pr(t, e), Pr(Ir, this), Pr(Mr, this)) } this._state = !0, this._value = e, Fr.call(this) } catch (n) { Mr.call(this, n) } } function Mr(e) { this._state = !1, this._value = e, Fr.call(this) } function Fr() { for (var e = 0, t = this._deferreds.length; e < t; e++) Lr.call(this, this._deferreds[e]); this._deferreds = null } function Ur(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 zr(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) } } var jr = function (e, t) { return "number" != typeof t && (t = 0), setTimeout(e, t) }, Hr = function (e, t) { return "number" != typeof t && (t = 1), setInterval(e, t) }, Vr = function (n, r) { var o, e = function () { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; clearTimeout(o), o = jr(function () { n.apply(this, e) }, r) }; return e.stop = function () { clearTimeout(o) }, e }, qr = { requestAnimationFrame: function (e, t) { kr ? kr.then(e) : kr = new Br(function (e) { ! function (e, t) { for (var n = window.requestAnimationFrame, r = ["ms", "moz", "webkit"], o = 0; o < r.length && !n; o++) n = window[r[o] + "RequestAnimationFrame"]; (n = n || function (e) { window.setTimeout(e, 0) })(e, t) }(e, t = t || document.body) }).then(e) }, setTimeout: jr, setInterval: Hr, setEditorTimeout: function (e, t, n) { return jr(function () { e.removed || t() }, n) }, setEditorInterval: function (e, t, n) { var r = Hr(function () { e.removed ? clearInterval(r) : t() }, n); return r }, debounce: Vr, throttle: Vr, clearInterval: function (e) { return clearInterval(e) }, clearTimeout: function (e) { return clearTimeout(e) } }; function $r(m, p) { void 0 === p && (p = {}); var g = 0, h = {}, v = At.fromDom(m), y = Vt(v), b = p.maxLoadTime || 5e3, n = function (e, t, n) { var r, o = kt._addCacheSuffix(e), i = ge(h, o).getOrThunk(function () { return { id: "mce-u" + g++, passed: [], failed: [], count: 0 } }); (h[o] = i).count++; var a, u, s, c = function (e, t) { for (var n = e.length; n--;) e[n](); i.status = t, i.passed = [], i.failed = [], r && (r.onload = null, r.onerror = null, r = null) }, l = function () { return c(i.passed, 2) }, f = function () { return c(i.failed, 3) }, d = function () { var e; e = d, function () { for (var e = m.styleSheets, t = e.length; t--;) { var n = e[t].ownerNode; if (n && n.id === r.id) return l(), 1 } }() || (Date.now() - u < b ? qr.setTimeout(e) : f()) }; t && i.passed.push(t), n && i.failed.push(n), 1 !== i.status && (2 !== i.status ? 3 !== i.status ? (i.status = 1, a = At.fromTag("link", y.dom), Yn(a, { rel: "stylesheet", type: "text/css", id: i.id }), u = Date.now(), p.contentCssCors && Xn(a, "crossOrigin", "anonymous"), p.referrerPolicy && Xn(a, "referrerpolicy", p.referrerPolicy), (r = a.dom).onload = d, r.onerror = f, s = a, fn(on(v), s), Xn(a, "href", o)) : f() : l()) }, o = function (t) { return gr(function (e) { n(t, a(e, E(br.value(t))), a(e, E(br.error(t)))) }) }, t = function (e) { var r = kt._addCacheSuffix(e); ge(h, r).each(function (e) { var t, n; 0 == --e.count && (delete h[r], t = e.id, n = on(v), Dr(n, "#" + t).each(pn)) }) }; return { load: n, loadAll: function (e, n, r) { var t; t = z(e, o), hr(t, gr).get(function (e) { var t = function (e, t) { for (var n = [], r = [], o = 0, i = e.length; o < i; o++) { var a = e[o]; (t(a, o) ? n : r).push(a) } return { pass: n, fail: r } }(e, function (e) { return e.isValue() }); 0 < t.fail.length ? r(t.fail.map(wr)) : n(t.pass.map(wr)) }) }, unload: t, unloadAll: function (e) { W(e, function (e) { t(e) }) }, _setReferrerPolicy: function (e) { p.referrerPolicy = e } } } var Wr, Kr = (Wr = new WeakMap, { forElement: function (e, t) { var n = rn(e).dom; return U.from(Wr.get(n)).getOrThunk(function () { var e = $r(n, t); return Wr.set(n, e), e }) } }), Xr = (Yr.prototype.current = function () { return this.node }, Yr.prototype.next = function (e) { return this.node = this.findSibling(this.node, "firstChild", "nextSibling", e), this.node }, Yr.prototype.prev = function (e) { return this.node = this.findSibling(this.node, "lastChild", "previousSibling", e), this.node }, Yr.prototype.prev2 = function (e) { return this.node = this.findPreviousNode(this.node, "lastChild", "previousSibling", e), this.node }, Yr.prototype.findSibling = function (e, t, n, r) { var o, i; if (e) { if (!r && e[t]) return e[t]; if (e !== this.rootNode) { if (o = e[n]) return o; for (i = e.parentNode; i && i !== this.rootNode; i = i.parentNode) if (o = i[n]) return o } } }, Yr.prototype.findPreviousNode = function (e, t, n, r) { var o, i, a; if (e) { if (o = e[n], this.rootNode && o === this.rootNode) 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 !== this.rootNode) return i } }, Yr); function Yr(e, t) { this.node = e, this.rootNode = t, this.current = this.current.bind(this), this.next = this.next.bind(this), this.prev = this.prev.bind(this), this.prev2 = this.prev2.bind(this) } var Gr, Jr, Qr = 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, k)).hasOwnProperty(Lt(e)) } }, Zr = Qr(["h1", "h2", "h3", "h4", "h5", "h6"]), eo = Qr(["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"]), to = function (e) { return Ft(e) && !eo(e) }, no = function (e) { return Ft(e) && "br" === Lt(e) }, ro = Qr(["h1", "h2", "h3", "h4", "h5", "h6", "p", "div", "address", "pre", "form", "blockquote", "center", "dir", "fieldset", "header", "footer", "article", "section", "hgroup", "aside", "nav", "figure"]), oo = Qr(["ul", "ol", "dl"]), io = Qr(["li", "dd", "dt"]), ao = Qr(["thead", "tbody", "tfoot"]), uo = Qr(["td", "th"]), so = Qr(["pre", "script", "textarea", "style"]), co = "\ufeff", lo = "\xa0", fo = co, mo = function (e) { return e === co }, po = function (e) { return e.replace(/\uFEFF/g, "") }, go = An, ho = In, vo = function (e) { return ho(e) && (e = e.parentNode), go(e) && e.hasAttribute("data-mce-caret") }, yo = function (e) { return ho(e) && mo(e.data) }, bo = function (e) { return vo(e) || yo(e) }, Co = function (e) { return e.firstChild !== e.lastChild || !zn(e.firstChild) }, wo = function (e) { var t = e.container(); return !!In(t) && (t.data.charAt(e.offset()) === fo || e.isAtStart() && yo(t.previousSibling)) }, xo = function (e) { var t = e.container(); return !!In(t) && (t.data.charAt(e.offset() - 1) === fo || e.isAtEnd() && yo(t.nextSibling)) }, So = function (e, t, n) { var r, o = t.ownerDocument.createElement(e); o.setAttribute("data-mce-caret", n ? "before" : "after"), o.setAttribute("data-mce-bogus", "all"), o.appendChild(((r = document.createElement("br")).setAttribute("data-mce-bogus", "1"), r)); var i = t.parentNode; return n ? i.insertBefore(o, t) : t.nextSibling ? i.insertBefore(o, t.nextSibling) : i.appendChild(o), o }, No = function (e) { return ho(e) && e.data[0] === fo }, Eo = function (e) { return ho(e) && e.data[e.data.length - 1] === fo }, ko = function (e) { return e && e.hasAttribute("data-mce-caret") ? (t = e.getElementsByTagName("br"), n = t[t.length - 1], On(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 }, _o = Hn, Ao = Vn, Ro = zn, To = In, Do = Rn(["script", "style", "textarea"]), Oo = Rn(["img", "input", "textarea", "hr", "iframe", "video", "audio", "object", "embed"]), Bo = Rn(["table"]), Po = bo, Lo = function (e) { return !Po(e) && (To(e) ? !Do(e.parentNode) : Oo(e) || Ro(e) || Bo(e) || Io(e)) }, Io = function (e) { return !1 === (An(t = e) && "true" === t.getAttribute("unselectable")) && Ao(e); var t }, Mo = function (e, t) { return Lo(e) && function (e, t) { for (e = e.parentNode; e && e !== t; e = e.parentNode) { if (Io(e)) return !1; if (_o(e)) return !0 } return !0 }(e, t) }, Fo = /^[ \t\r\n]*$/, Uo = function (e) { return Fo.test(e) }, zo = function (e, t) { var n, r, o, i = At.fromDom(t), a = At.fromDom(e); return n = a, r = "pre,code", o = N(Ot, i), Tr(n, r, o).isSome() }, jo = function (e, t) { return Lo(e) && !1 === (o = t, In(r = e) && Uo(r.data) && !1 === zo(r, o)) || An(n = e) && "A" === n.nodeName && !n.hasAttribute("href") && (n.hasAttribute("name") || n.hasAttribute("id")) || Ho(e); var n, r, o }, Ho = Dn("data-mce-bookmark"), Vo = Dn("data-mce-bogus"), qo = (Gr = "data-mce-bogus", Jr = "all", function (e) { return An(e) && e.getAttribute(Gr) === Jr }), $o = function (e, t) { return void 0 === t && (t = !0), function (e, t) { var n, r = 0; if (jo(e, e)) return !1; if (!(n = e.firstChild)) return !0; var o = new Xr(n, e); do { if (t) { if (qo(n)) { n = o.next(!0); continue } if (Vo(n)) { n = o.next(); continue } } if (zn(n)) r++, n = o.next(); else { if (jo(n, e)) return !1; n = o.next() } } while (n); return r <= 1 }(e.dom, t) }, Wo = function (e, t) { return D(e) && (jo(e, t) || to(At.fromDom(e))) }, Ko = function (e) { return "span" === e.nodeName.toLowerCase() && "bookmark" === e.getAttribute("data-mce-type") }, Xo = function (e, t) { return In(e) && 0 < e.data.length && (o = new Xr(n = e, r = t).prev(!1), i = new Xr(n, r).next(!1), a = R(o) || Wo(o, r), u = R(i) || Wo(i, r), a && u); var n, r, o, i, a, u }, Yo = function (e, t, n) { var r = n || t; if (An(t) && Ko(t)) return t; for (var o, i, a, u = t.childNodes, s = u.length - 1; 0 <= s; s--) Yo(e, u[s], r); return !An(t) || 1 === (o = t.childNodes).length && Ko(o[0]) && t.parentNode.insertBefore(o[0], t), Un(a = t) || Fn(a) || jo(t, r) || An(i = t) && 0 < i.childNodes.length || Xo(t, r) || e.remove(t), t }, Go = kt.makeMap, Jo = /[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, Qo = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, Zo = /[<>&\"\']/g, ei = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi, ti = { 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" }, ni = { '"': """, "'": "'", "<": "<", ">": ">", "&": "&", "`": "`" }, ri = { "<": "<", ">": ">", "&": "&", """: '"', "'": "'" }, oi = 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)), ni[r] || (o = "&" + e[n + 1] + ";", i[r] = o, i[o] = r); return i } }, ii = oi("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), ai = function (e, t) { return e.replace(t ? Jo : Qo, function (e) { return ni[e] || e }) }, ui = function (e, t) { return e.replace(t ? Jo : Qo, function (e) { return 1 < e.length ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : ni[e] || "&#" + e.charCodeAt(0) + ";" }) }, si = function (e, t, n) { return n = n || ii, e.replace(t ? Jo : Qo, function (e) { return ni[e] || n[e] || e }) }, ci = { encodeRaw: ai, encodeAllRaw: function (e) { return ("" + e).replace(Zo, function (e) { return ni[e] || e }) }, encodeNumeric: ui, encodeNamed: si, getEncodeFunc: function (e, t) { var n = oi(t) || ii, r = Go(e.replace(/\+/g, ",")); return r.named && r.numeric ? function (e, t) { return e.replace(t ? Jo : Qo, function (e) { return ni[e] !== undefined ? ni[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 si(e, t, n) } : si : r.numeric ? ui : ai }, decode: function (e) { return e.replace(ei, 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))) : ti[t] || String.fromCharCode(t) : ri[e] || ii[e] || (n = e, (r = At.fromTag("div").dom).innerHTML = n, r.textContent || r.innerText || n); var n, r }) } }, li = {}, fi = {}, di = kt.makeMap, mi = kt.each, pi = kt.extend, gi = kt.explode, hi = kt.inArray, vi = function (e, t) { return (e = kt.trim(e)) ? e.split(t || " ") : [] }, yi = function (e) { var s, t, n, r, o, i, c = {}, a = function (e, t, n) { var r, o, i = function (e, t) { for (var n = {}, r = 0, o = e.length; r < o; r++) n[e[r]] = t || {}; return n }; t = t || "", "string" == typeof (n = n || []) && (n = vi(n)); for (var a = vi(e), u = a.length; u--;) o = { attributes: i(r = vi([s, t].join(" "))), attributesOrder: r, children: i(n, fi) }, c[a[u]] = o }, u = function (e, t) { for (var n, r, o, i = vi(e), a = i.length, u = vi(t); a--;) for (n = c[i[a]], r = 0, o = u.length; r < o; r++) n.attributes[u[r]] = {}, n.attributesOrder.push(u[r]) }; return li[e] ? li[e] : (s = "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 && (s += " 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 && (s += " xml:lang", n = [n, i = "acronym applet basefont big font strike tt"].join(" "), mi(vi(i), function (e) { a(e, "", n) }), t = [t, o = "center dir isindex noframes"].join(" "), r = [t, n].join(" "), mi(vi(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 && (u("script", "language xml:space"), u("style", "xml:space"), u("object", "declare classid code codebase codetype archive standby align border hspace vspace"), u("embed", "align name hspace vspace"), u("param", "valuetype type"), u("a", "charset name rev shape coords"), u("br", "clear"), u("applet", "codebase archive code object alt name width height align hspace vspace"), u("img", "name longdesc align border hspace vspace"), u("iframe", "longdesc frameborder marginwidth marginheight scrolling align"), u("font basefont", "size color face"), u("input", "usemap align"), u("select"), u("textarea"), u("h1 h2 h3 h4 h5 h6 div p legend caption", "align"), u("ul", "type compact"), u("li", "type"), u("ol dl menu dir", "compact"), u("pre", "width xml:space"), u("hr", "align noshade size width"), u("isindex", "prompt"), u("table", "summary width frame rules cellspacing cellpadding align bgcolor"), u("col", "width align char charoff valign"), u("colgroup", "width align char charoff valign"), u("thead", "align char charoff valign"), u("tr", "align char charoff valign bgcolor"), u("th", "axis align char charoff valign nowrap bgcolor width height"), u("form", "accept"), u("td", "abbr axis scope align char charoff valign nowrap bgcolor width height"), u("tfoot", "align char charoff valign"), u("tbody", "align char charoff valign"), u("area", "nohref"), u("body", "background bgcolor text link vlink alink")), "html4" !== e && (u("input button select textarea", "autofocus"), u("input textarea", "placeholder"), u("a", "download"), u("link script img", "crossorigin"), u("img", "loading"), u("iframe", "sandbox seamless allowfullscreen loading")), mi(vi("a form meter progress dfn"), function (e) { c[e] && delete c[e].children[e] }), delete c.caption.children.table, delete c.script, li[e] = c) }, bi = function (e, n) { var r; return e && (r = {}, "string" == typeof e && (e = { "*": e }), mi(e, function (e, t) { r[t] = r[t.toUpperCase()] = ("map" === n ? di : gi)(e, /[, ]/) })), r }; function Ci(i) { var S = {}, u = {}, N = [], s = {}, t = {}, e = function (e, t, n) { var r = i[e]; return r ? r = di(r, /[, ]/, di(r.toUpperCase(), /[, ]/)) : (r = li[e]) || (r = di(t, " ", di(t.toUpperCase(), " ")), r = pi(r, n), li[e] = r), r }, n = yi((i = i || {}).schema); !1 === i.verify_html && (i.valid_elements = "*[*]"); var r = bi(i.valid_styles), o = bi(i.invalid_styles, "map"), a = bi(i.valid_classes, "map"), c = e("whitespace_elements", "pre script noscript style textarea video audio iframe object code"), l = e("self_closing_elements", "colgroup dd dt li option p td tfoot th thead tr"), f = e("short_ended_elements", "area base basefont br col frame hr img input isindex link meta param embed source wbr track"), d = e("boolean_attributes", "checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"), m = "td th iframe video audio object script code", p = e("non_empty_elements", m + " pre", f), g = e("move_caret_before_on_enter_elements", m + " table", f), h = e("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"), v = e("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", h), y = e("text_inline_elements", "span strong b em i font strike u var cite dfn code mark q sup sub samp"); mi((i.special || "script noscript iframe noframes noembed title style textarea xmp").split(" "), function (e) { t[e] = new RegExp("</" + e + "[^>]*>", "gi") }); var E = 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, p, g, h, v, y, b = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)])?$/, C = /^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/, w = /[*?+]/; if (e) { var x = vi(e, ","); for (S["@"] && (h = S["@"].attributes, v = S["@"].attributesOrder), t = 0, n = x.length; t < n; t++) if (i = b.exec(x[t])) { if (p = i[1], c = i[2], g = i[3], s = i[5], a = { attributes: d = {}, attributesOrder: m = [] }, "#" === p && (a.paddEmpty = !0), "-" === p && (a.removeEmpty = !0), "!" === i[4] && (a.removeEmptyAttrs = !0), h && (ue(h, function (e, t) { d[t] = e }), m.push.apply(m, v)), s) for (r = 0, o = (s = vi(s, "|")).length; r < o; r++) if (i = C.exec(s[r])) { if (u = {}, f = i[1], l = i[2].replace(/[\\:]:/g, ":"), p = i[3], y = i[4], "!" === f && (a.attributesRequired = a.attributesRequired || [], a.attributesRequired.push(l), u.required = !0), "-" === f) { delete d[l], m.splice(hi(m, l), 1); continue } p && ("=" === p && (a.attributesDefault = a.attributesDefault || [], a.attributesDefault.push({ name: l, value: y }), u.defaultValue = y), ":" === p && (a.attributesForced = a.attributesForced || [], a.attributesForced.push({ name: l, value: y }), u.forcedValue = y), "<" === p && (u.validValues = di(y, "?"))), w.test(l) ? (a.attributePatterns = a.attributePatterns || [], u.pattern = E(l), a.attributePatterns.push(u)) : (d[l] || m.push(l), d[l] = u) } h || "@" !== c || (h = d, v = m), g && (a.outputName = c, S[g] = a), w.test(c) ? (a.pattern = E(c), N.push(a)) : S[c] = a } } }, C = function (e) { S = {}, N = [], b(e), mi(n, function (e, t) { u[t] = e.children }) }, w = function (e) { var a = /^(~)?(.+)$/; e && (li.text_block_elements = li.block_elements = null, mi(vi(e, ","), function (e) { var t, n = a.exec(e), r = "~" === n[1], o = r ? "span" : "div", i = n[2]; u[i] = u[o], s[i] = o, r || (v[i.toUpperCase()] = {}, v[i] = {}), S[i] || (t = S[o], delete(t = pi({}, t)).removeEmptyAttrs, delete t.removeEmpty, S[i] = t), mi(u, function (e, t) { e[o] && (u[t] = e = pi({}, u[t]), e[i] = e[o]) }) })) }, x = function (e) { var o = /^([+\-]?)([A-Za-z0-9_\-.\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]+)\[([^\]]+)]$/; li[i.schema] = null, e && mi(vi(e, ","), function (e) { var t, n, r = o.exec(e); r && (n = r[1], t = n ? u[r[2]] : u[r[2]] = { "#comment": {} }, t = u[r[2]], mi(vi(r[3], "|"), function (e) { "-" === n ? delete t[e] : t[e] = {} })) }) }, k = function (e) { var t, n = S[e]; if (n) return n; for (t = N.length; t--;) if ((n = N[t]).pattern.test(e)) return n }; i.valid_elements ? C(i.valid_elements) : (mi(n, function (e, t) { S[t] = { attributes: e.attributes, attributesOrder: e.attributesOrder }, u[t] = e.children }), "html5" !== i.schema && mi(vi("strong/b em/i"), function (e) { var t = vi(e, "/"); S[t[1]].outputName = t[0] }), mi(vi("ol ul sub sup blockquote span font a table tbody strong em b i"), function (e) { S[e] && (S[e].removeEmpty = !0) }), mi(vi("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"), function (e) { S[e].paddEmpty = !0 }), mi(vi("span"), function (e) { S[e].removeEmptyAttrs = !0 })), w(i.custom_elements), x(i.valid_children), b(i.extended_valid_elements), x("+ol[ul|ol],+ul[ul|ol]"), mi({ 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) { S[t] && (S[t].parentsRequired = vi(e)) }), i.invalid_elements && mi(gi(i.invalid_elements), function (e) { S[e] && delete S[e] }), k("span") || b("span[!data-mce-type|*]"); return { children: u, elements: S, getValidStyles: function () { return r }, getValidClasses: function () { return a }, getBlockElements: function () { return v }, getInvalidStyles: function () { return o }, getShortEndedElements: function () { return f }, getTextBlockElements: function () { return h }, getTextInlineElements: function () { return y }, getBoolAttrs: function () { return d }, getElementRule: k, getSelfClosingElements: function () { return l }, getNonEmptyElements: function () { return p }, getMoveCaretBeforeOnEnterElements: function () { return g }, getWhiteSpaceElements: function () { return c }, getSpecialElements: function () { return t }, isValidChild: function (e, t) { var n = u[e.toLowerCase()]; return !(!n || !n[t.toLowerCase()]) }, isValid: function (e, t) { var n, r, o = k(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 s }, addValidElements: b, setValidElements: C, addCustomElements: w, addValidChildren: x } } var wi = 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) }, xi = function (b, e) { var s, c, C = /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, x = /\s*([^:]+):\s*([^;]+);?/g, S = /\s+$/, N = {}, E = co; b = b || {}, e && (s = e.getValidStyles(), c = e.getInvalidStyles()); for (var t = ("\\\" \\' \\; \\: ; : " + E).split(" "), k = 0; k < t.length; k++) N[t[k]] = E + k, N[E + k] = t[k]; return { toHex: function (e) { return e.replace(C, wi) }, parse: function (e) { var t, n, r, o, i, a, u, s, c = {}, l = b.url_converter, f = b.url_converter_scope || this, d = function (e, t, n) { var r = c[e + "-top" + t]; if (r) { var o = c[e + "-right" + t]; if (o) { var i = c[e + "-bottom" + t]; if (i) { var a = c[e + "-left" + t]; if (a) { var u = [r, o, i, a]; for (k = u.length - 1; k-- && u[k] === u[k + 1];); - 1 < k && n || (c[e + t] = -1 === k ? 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 } }, p = function (e) { return o = !0, N[e] }, g = function (e, t) { return o && (e = e.replace(/\uFEFF[0-9]/g, function (e) { return N[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) }, y = function (e, t, n, r, o, i) { if (o = o || i) return "'" + (o = g(o)).replace(/\'/g, "\\'") + "'"; if (t = g(t || n || r), !b.allow_script_urls) { var a = t.replace(/[\s\r\n]+/g, ""); if (/(java|vb)script:/i.test(a)) return ""; if (!b.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, p).replace(/\"[^\"]+\"|\'[^\']+\'/g, function (e) { return e.replace(/[;:]/g, p) }); t = x.exec(e);) if (x.lastIndex = t.index + t[0].length, n = t[1].replace(S, "").toLowerCase(), r = t[2].replace(S, ""), n && r) { if (n = v(n), r = v(r), -1 !== n.indexOf(E) || -1 !== n.indexOf('"')) continue; if (!b.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(C, wi)).replace(w, y), c[n] = o ? g(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, a) { var u = "", e = function (e) { var t, n = s[e]; if (n) for (var r = 0, o = n.length; r < o; r++) e = n[r], (t = i[e]) && (u += (0 < u.length ? " " : "") + e + ": " + t + ";") }; return a && s ? (e("*"), e(a)) : ue(i, function (e, t) { var n, r, o; !e || c && (n = t, r = a, (o = c["*"]) && o[n] || (o = c[r]) && o[n]) || (u += (0 < u.length ? " " : "") + t + ": " + e + ";") }), u } } }, Si = /^(?:mouse|contextmenu)|click/, Ni = { keyLocation: 1, layerX: 1, layerY: 1, returnValue: 1, webkitMovementX: 1, webkitMovementY: 1, keyIdentifier: 1, mozPressure: 1 }, Ei = function () { return !1 }, ki = function () { return !0 }, _i = function (e, t, n, r) { e.addEventListener ? e.addEventListener(t, n, r || !1) : e.attachEvent && e.attachEvent("on" + t, n) }, Ai = function (e, t, n, r) { e.removeEventListener ? e.removeEventListener(t, n, r || !1) : e.detachEvent && e.detachEvent("on" + t, n) }, Ri = function (e, t) { var n, r, o, i, a, u, s = t || {}; for (n in e) Ni[n] || (s[n] = e[n]); return s.target || (s.target = s.srcElement || document), s.composedPath && (s.composedPath = function () { return e.composedPath() }), e && (a = e, Si.test(a.type)) && e.pageX === undefined && e.clientX !== undefined && (o = (r = s.target.ownerDocument || document).documentElement, i = r.body, s.pageX = e.clientX + (o && o.scrollLeft || i && i.scrollLeft || 0) - (o && o.clientLeft || i && i.clientLeft || 0), s.pageY = e.clientY + (o && o.scrollTop || i && i.scrollTop || 0) - (o && o.clientTop || i && i.clientTop || 0)), s.preventDefault = function () { s.isDefaultPrevented = ki, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1) }, s.stopPropagation = function () { s.isPropagationStopped = ki, e && (e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0) }, !(s.stopImmediatePropagation = function () { s.isImmediatePropagationStopped = ki, s.stopPropagation() }) == ((u = s).isDefaultPrevented === ki || u.isDefaultPrevented === Ei) && (s.isDefaultPrevented = Ei, s.isPropagationStopped = Ei, s.isImmediatePropagationStopped = Ei), "undefined" == typeof s.metaKey && (s.metaKey = !1), s }, Ti = (Di.prototype.bind = function (e, t, n, r) { var o, i, a, u, s, c, l = this, f = window, d = function (e) { l.executeHandlers(Ri(e || f.event), o) }; if (e && 3 !== e.nodeType && 8 !== e.nodeType) { e[l.expando] ? o = e[l.expando] : (o = l.count++, e[l.expando] = o, l.events[o] = {}), r = r || e; for (var m = t.split(" "), p = m.length; p--;) s = d, u = c = !1, "DOMContentLoaded" === (a = m[p]) && (a = "ready"), l.domLoaded && "ready" === a && "complete" === e.readyState ? n.call(r, Ri({ type: a })) : (l.hasMouseEnterLeave || (u = l.mouseEnterLeave[a]) && (s = function (e) { var t = e.currentTarget, n = e.relatedTarget; if (n && t.contains) n = t.contains(n); else for (; n && n !== t;) n = n.parentNode; n || ((e = Ri(e || f.event)).type = "mouseout" === e.type ? "mouseleave" : "mouseenter", e.target = t, l.executeHandlers(e, o)) }), l.hasFocusIn || "focusin" !== a && "focusout" !== a || (c = !0, u = "focusin" === a ? "focus" : "blur", s = function (e) { (e = Ri(e || f.event)).type = "focus" === e.type ? "focusin" : "focusout", l.executeHandlers(e, o) }), (i = l.events[o][a]) ? "ready" === a && l.domLoaded ? n(Ri({ type: a })) : i.push({ func: n, scope: r }) : (l.events[o][a] = i = [{ func: n, scope: r }], i.fakeName = u, i.capture = c, i.nativeHandler = s, "ready" === a ? function (e, t, n) { var r, o = e.document, i = { type: "ready" }; n.domLoaded ? t(i) : (r = function () { Ai(e, "DOMContentLoaded", r), Ai(e, "load", r), n.domLoaded || (n.domLoaded = !0, t(i)), e = null }, "complete" === o.readyState || "interactive" === o.readyState && o.body ? r() : _i(e, "DOMContentLoaded", r), n.domLoaded || _i(e, "load", r)) }(e, s, l) : _i(e, u || a, s, c))); return e = i = null, n } }, Di.prototype.unbind = function (n, e, t) { var r, o, i; if (!n || 3 === n.nodeType || 8 === n.nodeType) return this; var a = n[this.expando]; if (a) { if (i = this.events[a], e) { for (var u, s, c, l, f = e.split(" "), d = f.length; d--;) if (l = i[o = f[d]]) { if (t) for (r = l.length; r--;) l[r].func === t && (u = l.nativeHandler, s = l.fakeName, c = l.capture, (l = l.slice(0, r).concat(l.slice(r + 1))).nativeHandler = u, l.fakeName = s, l.capture = c, i[o] = l); t && 0 !== l.length || (delete i[o], Ai(n, l.fakeName || o, l.nativeHandler, l.capture)) } } else ue(i, function (e, t) { Ai(n, e.fakeName || t, e.nativeHandler, e.capture) }), i = {}; for (o in i) if (he(i, o)) return this; delete this.events[a]; try { delete n[this.expando] } catch (m) { n[this.expando] = null } } return this }, Di.prototype.fire = function (e, t, n) { var r; if (!e || 3 === e.nodeType || 8 === e.nodeType) return this; var o = Ri(null, n); for (o.type = t, o.target = e; (r = e[this.expando]) && this.executeHandlers(o, r), (e = e.parentNode || e.ownerDocument || e.defaultView || e.parentWindow) && !o.isPropagationStopped();); return this }, Di.prototype.clean = function (e) { var t, n; if (!e || 3 === e.nodeType || 8 === e.nodeType) return this; if (e[this.expando] && this.unbind(e), e.getElementsByTagName || (e = e.document), e && e.getElementsByTagName) for (this.unbind(e), t = (n = e.getElementsByTagName("*")).length; t--;)(e = n[t])[this.expando] && this.unbind(e); return this }, Di.prototype.destroy = function () { this.events = {} }, Di.prototype.cancel = function (e) { return e && (e.preventDefault(), e.stopImmediatePropagation()), !1 }, Di.prototype.executeHandlers = function (e, t) { var n = this.events[t], r = n && n[e.type]; if (r) for (var o = 0, i = r.length; o < i; o++) { var a = r[o]; if (a && !1 === a.func.call(a.scope, e) && e.preventDefault(), e.isImmediatePropagationStopped()) return } }, Di.Event = new Di, Di); function Di() { this.domLoaded = !1, this.events = {}, this.count = 1, this.expando = "mce-data-" + (+new Date).toString(32), this.hasMouseEnterLeave = "onmouseenter" in document.documentElement, this.hasFocusIn = "onfocusin" in document.documentElement, this.count = 1 } var Oi, Bi, Pi, Li, Ii, Mi, Fi, Ui, zi, ji, Hi, Vi, qi, $i, Wi, Ki, Xi, Yi = "sizzle" + -new Date, Gi = window.document, Ji = 0, Qi = 0, Zi = Da(), ea = Da(), ta = Da(), na = function (e, t) { return e === t && (ji = !0), 0 }, ra = typeof undefined, oa = {}.hasOwnProperty, ia = [], aa = ia.pop, ua = ia.push, sa = ia.push, ca = ia.slice, la = ia.indexOf || function (e) { for (var t = 0, n = this.length; t < n; t++) if (this[t] === e) return t; return -1 }, fa = "[\\x20\\t\\r\\n\\f]", da = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", ma = "\\[" + fa + "*(" + da + ")(?:" + fa + "*([*^$|!~]?=)" + fa + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + da + "))|)" + fa + "*\\]", pa = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ma + ")*)|.*)\\)|)", ga = new RegExp("^" + fa + "+|((?:^|[^\\\\])(?:\\\\.)*)" + fa + "+$", "g"), ha = new RegExp("^" + fa + "*," + fa + "*"), va = new RegExp("^" + fa + "*([>+~]|" + fa + ")" + fa + "*"), ya = new RegExp("=" + fa + "*([^\\]'\"]*?)" + fa + "*\\]", "g"), ba = new RegExp(pa), Ca = new RegExp("^" + da + "$"), wa = { ID: new RegExp("^#(" + da + ")"), CLASS: new RegExp("^\\.(" + da + ")"), TAG: new RegExp("^(" + da + "|[*])"), ATTR: new RegExp("^" + ma), PSEUDO: new RegExp("^" + pa), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + fa + "*(even|odd|(([+-]|)(\\d*)n|)" + fa + "*(?:([+-]|)" + fa + "*(\\d+)|))" + fa + "*\\)|)", "i"), bool: new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i"), needsContext: new RegExp("^" + fa + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + fa + "*((?:-\\d)?\\d*)" + fa + "*\\)|)(?=[^-]|$)", "i") }, xa = /^(?:input|select|textarea|button)$/i, Sa = /^h\d$/i, Na = /^[^{]+\{\s*\[native \w/, Ea = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ka = /[+~]/, _a = /'|\\/g, Aa = new RegExp("\\\\([\\da-f]{1,6}" + fa + "?|(" + fa + ")|.)", "ig"), Ra = function (e, t, n) { var r = "0x" + t - 65536; return r != r || n ? t : r < 0 ? String.fromCharCode(65536 + r) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) }; try { sa.apply(ia = ca.call(Gi.childNodes), Gi.childNodes), ia[Gi.childNodes.length].nodeType } catch (Ok) { sa = { apply: ia.length ? function (e, t) { ua.apply(e, ca.call(t)) } : function (e, t) { for (var n = e.length, r = 0; e[n++] = t[r++];); e.length = n - 1 } } } var Ta = function (e, t, n, r) { var o, i, a, u, s, c, l, f, d, m; if ((t ? t.ownerDocument || t : Gi) !== Vi && Hi(t), n = n || [], !e || "string" != typeof e) return n; if (1 !== (u = (t = t || Vi).nodeType) && 9 !== u) return []; if ($i && !r) { if (o = Ea.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)) && Xi(t, i) && i.id === a) return n.push(i), n } else { if (o[2]) return sa.apply(n, t.getElementsByTagName(e)), n; if ((a = o[3]) && Oi.getElementsByClassName) return sa.apply(n, t.getElementsByClassName(a)), n } if (Oi.qsa && (!Wi || !Wi.test(e))) { if (f = l = Yi, d = t, m = 9 === u && e, 1 === u && "object" !== t.nodeName.toLowerCase()) { for (c = Ii(e), (l = t.getAttribute("id")) ? f = l.replace(_a, "\\$&") : t.setAttribute("id", f), f = "[id='" + f + "'] ", s = c.length; s--;) c[s] = f + Ma(c[s]); d = ka.test(e) && La(t.parentNode) || t, m = c.join(",") } if (m) try { return sa.apply(n, d.querySelectorAll(m)), n } catch (p) {} finally { l || t.removeAttribute("id") } } } return Fi(e.replace(ga, "$1"), t, n, r) }; function Da() { var n = []; function r(e, t) { return n.push(e + " ") > Bi.cacheLength && delete r[n.shift()], r[e + " "] = t } return r } function Oa(e) { return e[Yi] = !0, e } function Ba(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 Pa(a) { return Oa(function (i) { return i = +i, Oa(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 La(e) { return e && typeof e.getElementsByTagName != ra && e } function Ia() {} function Ma(e) { for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; return r } function Fa(a, e, t) { var u = e.dir, s = t && "parentNode" === u, c = Qi++; 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 = [Ji, 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[Yi] || (e[Yi] = {}))[u]) && r[0] === Ji && r[1] === c) return i[2] = r[2]; if ((o[u] = i)[2] = a(e, t, n)) return !0 } } } function Ua(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 za(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 ja(m, p, g, h, v, e) { return h && !h[Yi] && (h = ja(h)), v && !v[Yi] && (v = ja(v, e)), Oa(function (e, t, n, r) { var o, i, a, u = [], s = [], c = t.length, l = e || function (e, t, n) { for (var r = 0, o = t.length; r < o; r++) Ta(e, t[r], n); return n }(p || "*", n.nodeType ? [n] : n, []), f = !m || !e && p ? l : za(l, u, m, n, r), d = g ? v || (e ? m : c || h) ? [] : t : f; if (g && g(f, d, n, r), h) for (o = za(d, s), h(o, [], n, r), i = o.length; i--;)(a = o[i]) && (d[s[i]] = !(f[s[i]] = a)); if (e) { if (v || m) { if (v) { for (o = [], i = d.length; i--;)(a = d[i]) && o.push(f[i] = a); v(null, d = [], o, r) } for (i = d.length; i--;)(a = d[i]) && -1 < (o = v ? la.call(e, a) : u[i]) && (e[o] = !(t[o] = a)) } } else d = za(d === t ? d.splice(c, d.length) : d), v ? v(null, t, d, r) : sa.apply(t, d) }) } Oi = Ta.support = {}, Li = Ta.isXML = function (e) { var t = e && (e.ownerDocument || e).documentElement; return !!t && "HTML" !== t.nodeName }, Hi = Ta.setDocument = function (e) { var t, s = e ? e.ownerDocument || e : Gi, n = s.defaultView; return s !== Vi && 9 === s.nodeType && s.documentElement ? (qi = (Vi = s).documentElement, $i = !Li(s), n && n !== function (e) { try { return e.top } catch (t) {} return null }(n) && (n.addEventListener ? n.addEventListener("unload", function () { Hi() }, !1) : n.attachEvent && n.attachEvent("onunload", function () { Hi() })), Oi.attributes = !0, Oi.getElementsByTagName = !0, Oi.getElementsByClassName = Na.test(s.getElementsByClassName), Oi.getById = !0, Bi.find.ID = function (e, t) { if (typeof t.getElementById != ra && $i) { var n = t.getElementById(e); return n && n.parentNode ? [n] : [] } }, Bi.filter.ID = function (e) { var t = e.replace(Aa, Ra); return function (e) { return e.getAttribute("id") === t } }, Bi.find.TAG = Oi.getElementsByTagName ? function (e, t) { if (typeof t.getElementsByTagName != ra) 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 }, Bi.find.CLASS = Oi.getElementsByClassName && function (e, t) { if ($i) return t.getElementsByClassName(e) }, Ki = [], Wi = [], Oi.disconnectedMatch = !0, Wi = Wi.length && new RegExp(Wi.join("|")), Ki = Ki.length && new RegExp(Ki.join("|")), t = Na.test(qi.compareDocumentPosition), Xi = t || Na.test(qi.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 }, na = t ? function (e, t) { if (e === t) return ji = !0, 0; var n = !e.compareDocumentPosition - !t.compareDocumentPosition; return n || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !Oi.sortDetached && t.compareDocumentPosition(e) === n ? e === s || e.ownerDocument === Gi && Xi(Gi, e) ? -1 : t === s || t.ownerDocument === Gi && Xi(Gi, t) ? 1 : zi ? la.call(zi, e) - la.call(zi, t) : 0 : 4 & n ? -1 : 1) } : function (e, t) { if (e === t) return ji = !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 : zi ? la.call(zi, e) - la.call(zi, t) : 0; if (o === i) return Ba(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 ? Ba(a[r], u[r]) : a[r] === Gi ? -1 : u[r] === Gi ? 1 : 0 }, s) : Vi }, Ta.matches = function (e, t) { return Ta(e, null, null, t) }, Ta.matchesSelector = function (e, t) { if ((e.ownerDocument || e) !== Vi && Hi(e), t = t.replace(ya, "='$1']"), Oi.matchesSelector && $i && (!Ki || !Ki.test(t)) && (!Wi || !Wi.test(t))) try { var n = (void 0).call(e, t); if (n || Oi.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n } catch (Ok) {} return 0 < Ta(t, Vi, null, [e]).length }, Ta.contains = function (e, t) { return (e.ownerDocument || e) !== Vi && Hi(e), Xi(e, t) }, Ta.attr = function (e, t) { (e.ownerDocument || e) !== Vi && Hi(e); var n = Bi.attrHandle[t.toLowerCase()], r = n && oa.call(Bi.attrHandle, t.toLowerCase()) ? n(e, t, !$i) : undefined; return r !== undefined ? r : Oi.attributes || !$i ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null }, Ta.error = function (e) { throw new Error("Syntax error, unrecognized expression: " + e) }, Ta.uniqueSort = function (e) { var t, n = [], r = 0, o = 0; if (ji = !Oi.detectDuplicates, zi = !Oi.sortStable && e.slice(0), e.sort(na), ji) { for (; t = e[o++];) t === e[o] && (r = n.push(o)); for (; r--;) e.splice(n[r], 1) } return zi = null, e }, Pi = Ta.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 += Pi(e) } else if (3 === o || 4 === o) return e.nodeValue } else for (; t = e[r++];) n += Pi(t); return n }, (Bi = Ta.selectors = { cacheLength: 50, createPseudo: Oa, match: wa, 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(Aa, Ra), e[3] = (e[3] || e[4] || e[5] || "").replace(Aa, Ra), "~=" === 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] || Ta.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] && Ta.error(e[0]), e }, PSEUDO: function (e) { var t, n = !e[6] && e[2]; return wa.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && ba.test(n) && (t = Ii(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(Aa, Ra).toLowerCase(); return "*" === e ? function () { return !0 } : function (e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function (e) { var t = Zi[e + " "]; return t || (t = new RegExp("(^|" + fa + ")" + e + "(" + fa + "|$)")) && Zi(e, function (e) { return t.test("string" == typeof e.className && e.className || typeof e.getAttribute != ra && e.getAttribute("class") || "") }) }, ATTR: function (n, r, o) { return function (e) { var t = Ta.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, p, g) { var h = "nth" !== m.slice(0, 3), v = "last" !== m.slice(-4), y = "of-type" === e; return 1 === p && 0 === g ? 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 = y && e.nodeName.toLowerCase(), d = !n && !y; if (l) { if (h) { for (; c;) { for (i = e; i = i[c];) if (y ? 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[Yi] || (l[Yi] = {}))[m] || [])[0] === Ji && r[1], a = r[0] === Ji && 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] = [Ji, u, a]; break } } else if (d && (r = (e[Yi] || (e[Yi] = {}))[m]) && r[0] === Ji) a = r[1]; else for (; (i = ++u && i && i[c] || (a = u = 0) || s.pop()) && ((y ? i.nodeName.toLowerCase() !== f : 1 !== i.nodeType) || !++a || (d && ((i[Yi] || (i[Yi] = {}))[m] = [Ji, a]), i !== e));); return (a -= g) === p || a % p == 0 && 0 <= a / p } } }, PSEUDO: function (e, i) { var t, a = Bi.pseudos[e] || Bi.setFilters[e.toLowerCase()] || Ta.error("unsupported pseudo: " + e); return a[Yi] ? a(i) : 1 < a.length ? (t = [e, e, "", i], Bi.setFilters.hasOwnProperty(e.toLowerCase()) ? Oa(function (e, t) { for (var n, r = a(e, i), o = r.length; o--;) e[n = la.call(e, r[o])] = !(t[n] = r[o]) }) : function (e) { return a(e, 0, t) }) : a } }, pseudos: { not: Oa(function (e) { var r = [], o = [], u = Mi(e.replace(ga, "$1")); return u[Yi] ? Oa(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: Oa(function (t) { return function (e) { return 0 < Ta(t, e).length } }), contains: Oa(function (t) { return t = t.replace(Aa, Ra), function (e) { return -1 < (e.textContent || e.innerText || Pi(e)).indexOf(t) } }), lang: Oa(function (n) { return Ca.test(n || "") || Ta.error("unsupported lang: " + n), n = n.replace(Aa, Ra).toLowerCase(), function (e) { var t; do { if (t = $i ? 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 === qi }, focus: function (e) { return e === Vi.activeElement && (!Vi.hasFocus || Vi.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 !Bi.pseudos.empty(e) }, header: function (e) { return Sa.test(e.nodeName) }, input: function (e) { return xa.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: Pa(function () { return [0] }), last: Pa(function (e, t) { return [t - 1] }), eq: Pa(function (e, t, n) { return [n < 0 ? n + t : n] }), even: Pa(function (e, t) { for (var n = 0; n < t; n += 2) e.push(n); return e }), odd: Pa(function (e, t) { for (var n = 1; n < t; n += 2) e.push(n); return e }), lt: Pa(function (e, t, n) { for (var r = n < 0 ? n + t : n; 0 <= --r;) e.push(r); return e }), gt: Pa(function (e, t, n) { for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r); return e }) } }).pseudos.nth = Bi.pseudos.eq, W(["radio", "checkbox", "file", "password", "image"], function (e) { var t; Bi.pseudos[e] = (t = e, function (e) { return "input" === e.nodeName.toLowerCase() && e.type === t }) }), W(["submit", "reset"], function (e) { var n; Bi.pseudos[e] = (n = e, function (e) { var t = e.nodeName.toLowerCase(); return ("input" === t || "button" === t) && e.type === n }) }), Ia.prototype = Bi.filters = Bi.pseudos, Bi.setFilters = new Ia, Ii = Ta.tokenize = function (e, t) { var n, r, o, i, a, u, s, c = ea[e + " "]; if (c) return t ? 0 : c.slice(0); for (a = e, u = [], s = Bi.preFilter; a;) { for (i in n && !(r = ha.exec(a)) || (r && (a = a.slice(r[0].length) || a), u.push(o = [])), n = !1, (r = va.exec(a)) && (n = r.shift(), o.push({ value: n, type: r[0].replace(ga, " ") }), a = a.slice(n.length)), Bi.filter) Bi.filter.hasOwnProperty(i) && (!(r = wa[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 ? Ta.error(e) : ea(e, u).slice(0) }, Mi = Ta.compile = function (e, t) { var n, h, v, y, b, r, o = [], i = [], a = ta[e + " "]; if (!a) { for (n = (t = t || Ii(e)).length; n--;)(a = function f(e) { for (var r, t, n, o = e.length, i = Bi.relative[e[0].type], a = i || Bi.relative[" "], u = i ? 1 : 0, s = Fa(function (e) { return e === r }, a, !0), c = Fa(function (e) { return -1 < la.call(r, e) }, a, !0), l = [function (e, t, n) { return !i && (n || t !== Ui) || ((r = t).nodeType ? s : c)(e, t, n) }]; u < o; u++) if (t = Bi.relative[e[u].type]) l = [Fa(Ua(l), t)]; else { if ((t = Bi.filter[e[u].type].apply(null, e[u].matches))[Yi]) { for (n = ++u; n < o && !Bi.relative[e[n].type]; n++); return ja(1 < u && Ua(l), 1 < u && Ma(e.slice(0, u - 1).concat({ value: " " === e[u - 2].type ? "*" : "" })).replace(ga, "$1"), t, u < n && f(e.slice(u, n)), n < o && f(e = e.slice(n)), n < o && Ma(e)) } l.push(t) } return Ua(l) }(t[n]))[Yi] ? o.push(a) : i.push(a); (a = ta(e, (h = i, y = 0 < (v = o).length, b = 0 < h.length, r = function (e, t, n, r, o) { var i, a, u, s = 0, c = "0", l = e && [], f = [], d = Ui, m = e || b && Bi.find.TAG("*", o), p = Ji += null == d ? 1 : Math.random() || .1, g = m.length; for (o && (Ui = t !== Vi && t); c !== g && null != (i = m[c]); c++) { if (b && i) { for (a = 0; u = h[a++];) if (u(i, t, n)) { r.push(i); break } o && (Ji = p) } y && ((i = !u && i) && s--, e && l.push(i)) } if (s += c, y && 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] = aa.call(r)); f = za(f) } sa.apply(r, f), o && !e && 0 < f.length && 1 < s + v.length && Ta.uniqueSort(r) } return o && (Ji = p, Ui = d), l }, y ? Oa(r) : r))).selector = e } return a }, Fi = Ta.select = function (e, t, n, r) { var o, i, a, u, s, c = "function" == typeof e && e, l = !r && Ii(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 && Oi.getById && 9 === t.nodeType && $i && Bi.relative[i[1].type]) { if (!(t = (Bi.find.ID(a.matches[0].replace(Aa, Ra), t) || [])[0])) return n; c && (t = t.parentNode), e = e.slice(i.shift().value.length) } for (o = wa.needsContext.test(e) ? 0 : i.length; o-- && (a = i[o], !Bi.relative[u = a.type]);) if ((s = Bi.find[u]) && (r = s(a.matches[0].replace(Aa, Ra), ka.test(i[0].type) && La(t.parentNode) || t))) { if (i.splice(o, 1), !(e = r.length && Ma(i))) return sa.apply(n, r), n; break } } return (c || Mi(e, l))(r, t, !$i, n, ka.test(e) && La(t.parentNode) || t), n }, Oi.sortStable = Yi.split("").sort(na).join("") === Yi, Oi.detectDuplicates = !!ji, Hi(), Oi.sortDetached = !0; var Ha = document, Va = Array.prototype.push, qa = Array.prototype.slice, $a = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, Wa = Ti.Event, Ka = kt.makeMap("children,contents,next,prev"), Xa = function (e) { return void 0 !== e }, Ya = function (e) { return "string" == typeof e }, Ga = function (e, t) { var n, r = (t = t || Ha).createElement("div"), o = t.createDocumentFragment(); for (r.innerHTML = e; n = r.firstChild;) o.appendChild(n); return o }, Ja = function (e, t, n, r) { var o; if (Ya(t)) t = Ga(t, fu(e[0])); else if (t.length && !t.nodeType) { if (t = hu.makeArray(t), r) for (o = t.length - 1; 0 <= o; o--) Ja(e, t[o], n, r); else for (o = 0; o < t.length; o++) Ja(e, t[o], n, r); return e } if (t.nodeType) for (o = e.length; o--;) n.call(e[o], t); return e }, Qa = function (e, t) { return e && t && -1 !== (" " + e.className + " ").indexOf(" " + t + " ") }, Za = function (e, t, n) { var r, o; return t = hu(t)[0], e.each(function () { n && r === this.parentNode || (r = this.parentNode, o = t.cloneNode(!1), this.parentNode.insertBefore(o, this)), o.appendChild(this) }), e }, eu = kt.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom", " "), tu = kt.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected", " "), nu = { "for": "htmlFor", "class": "className", readonly: "readOnly" }, ru = { "float": "cssFloat" }, ou = {}, iu = {}, au = function (e, t) { return new hu.fn.init(e, t) }, uu = /^\s*|\s*$/g, su = function (e) { return null === e || e === undefined ? "" : ("" + e).replace(uu, "") }, cu = 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 }, lu = function (e, n) { var r = []; return cu(e, function (e, t) { n(t, e) && r.push(t) }), r }, fu = function (e) { return e ? 9 === e.nodeType ? e : e.ownerDocument : Ha }; au.fn = au.prototype = { constructor: au, 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 hu(e).attr(t); o.context = t = document } if (Ya(e)) { if (!(n = "<" === (o.selector = e).charAt(0) && ">" === e.charAt(e.length - 1) && 3 <= e.length ? [null, e, null] : $a.exec(e))) return hu(t).find(e); if (n[1]) for (r = Ga(e, fu(t)).firstChild; r;) Va.call(o, r), r = r.nextSibling; else { if (!(r = fu(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 kt.toArray(this) }, add: function (e, t) { var n, r; if (Ya(e)) return this.add(hu(e)); if (!1 !== t) for (n = hu.unique(this.toArray().concat(hu.makeArray(e))), this.length = n.length, r = 0; r < n.length; r++) this[r] = n[r]; else Va.apply(this, hu.makeArray(e)); return this }, attr: function (t, n) { var e, r = this; if ("object" == typeof t) cu(t, function (e, t) { r.attr(e, t) }); else { if (!Xa(n)) { if (r[0] && 1 === r[0].nodeType) { if ((e = ou[t]) && e.get) return e.get(r[0], t); if (tu[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 = ou[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 = nu[e] || e)) cu(e, function (e, t) { n.prop(e, t) }); else { if (!Xa(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) cu(n, function (e, t) { i.css(e, t) }); else if (Xa(r)) n = t(n), "number" != typeof r || eu[n] || (r = r.toString() + "px"), i.each(function () { var e = this.style; if ((o = iu[n]) && o.set) o.set(this, r); else { try { this.style[ru[n] || n] = r } catch (t) {} null !== r && "" !== r || (e.removeProperty ? e.removeProperty(a(n)) : e.removeAttribute(n)) } }); else { if (e = i[0], (o = iu[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], Wa.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; if (Xa(e)) { t = this.length; try { for (; t--;) this[t].innerHTML = e } catch (n) { hu(this[t]).empty().append(e) } return this } return this[0] ? this[0].innerHTML : "" }, text: function (e) { var t; if (Xa(e)) { for (t = this.length; t--;) "innerText" in this[t] ? this[t].innerText = e : this[0].textContent = e; return this } return this[0] ? this[0].innerText || this[0].textContent : "" }, append: function () { return Ja(this, arguments, function (e) { (1 === this.nodeType || this.host && 1 === this.host.nodeType) && this.appendChild(e) }) }, prepend: function () { return Ja(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 ? Ja(this, arguments, function (e) { this.parentNode.insertBefore(e, this) }) : this }, after: function () { return this[0] && this[0].parentNode ? Ja(this, arguments, function (e) { this.parentNode.insertBefore(e, this.nextSibling) }, !0) : this }, appendTo: function (e) { return hu(e).append(this), this }, prependTo: function (e) { return hu(e).prepend(this), this }, replaceWith: function (e) { return this.before(e).remove() }, wrap: function (e) { return Za(this, e) }, wrapAll: function (e) { return Za(this, e, !0) }, wrapInner: function (e) { return this.each(function () { hu(this).contents().wrapAll(e) }), this }, unwrap: function () { return this.parent().each(function () { hu(this).replaceWith(this.childNodes) }) }, clone: function () { var e = []; return this.each(function () { e.push(this.cloneNode(!0)) }), hu(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(" ") ? cu(o.split(" "), function () { e.toggleClass(this, i) }) : e.each(function (e, t) { var n, r = Qa(t, o); r !== i && (n = t.className, r ? t.className = su((" " + n + " ").replace(" " + o + " ", " ")) : t.className += n ? " " + o : o) })), e }, hasClass: function (e) { return Qa(this[0], e) }, each: function (e) { return cu(this, e) }, on: function (e, t) { return this.each(function () { Wa.bind(this, e, t) }) }, off: function (e, t) { return this.each(function () { Wa.unbind(this, e, t) }) }, trigger: function (e) { return this.each(function () { "object" == typeof e ? Wa.fire(this, e.type, e) : Wa.fire(this, e) }) }, show: function () { return this.css("display", "") }, hide: function () { return this.css("display", "none") }, slice: function () { return new hu(qa.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) { for (var t = [], n = 0, r = this.length; n < r; n++) hu.find(e, this[n], t); return hu(t) }, filter: function (n) { return hu("function" == typeof n ? lu(this.toArray(), function (e, t) { return n(t, e) }) : hu.filter(n, this.toArray())) }, closest: function (n) { var r = []; return n instanceof hu && (n = n[0]), this.each(function (e, t) { for (; t;) { if ("string" == typeof n && hu(t).is(n)) { r.push(t); break } if (t === n) { r.push(t); break } t = t.parentNode } }), hu(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: Va, sort: Array.prototype.sort, splice: Array.prototype.splice }, kt.extend(au, { extend: kt.extend, makeArray: function (e) { return (t = e) && t === t.window || e.nodeType ? [e] : kt.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: kt.isArray, each: cu, trim: su, grep: lu, find: Ta, expr: Ta.selectors, unique: Ta.uniqueSort, text: Ta.getText, contains: Ta.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 ? hu.find.matchesSelector(t[0], e) ? [t[0]] : [] : hu.find.matches(e, t) } }); var du = function (e, t, n) { var r = [], o = e[t]; for ("string" != typeof n && n instanceof hu && (n = n[0]); o && 9 !== o.nodeType;) { if (n !== undefined) { if (o === n) break; if ("string" == typeof n && hu(o).is(n)) break } 1 === o.nodeType && r.push(o), o = o[t] } return r }, mu = function (e, t, n, r) { var o = []; for (r instanceof hu && (r = r[0]); e; e = e[t]) if (!n || e.nodeType === n) { if (r !== undefined) { if (e === r) break; if ("string" == typeof r && hu(e).is(r)) break } o.push(e) } return o }, pu = function (e, t, n) { for (e = e[t]; e; e = e[t]) if (e.nodeType === n) return e; return null }; cu({ parent: function (e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function (e) { return du(e, "parentNode") }, next: function (e) { return pu(e, "nextSibling", 1) }, prev: function (e) { return pu(e, "previousSibling", 1) }, children: function (e) { return mu(e.firstChild, "nextSibling", 1) }, contents: function (e) { return kt.toArray(("iframe" === e.nodeName ? e.contentDocument || e.contentWindow.document : e).childNodes) } }, function (r, o) { au.fn[r] = function (t) { var n = []; this.each(function () { var e = o.call(n, this, t, n); e && (hu.isArray(e) ? n.push.apply(n, e) : n.push(e)) }), 1 < this.length && (Ka[r] || (n = hu.unique(n)), 0 === r.indexOf("parents") && (n = n.reverse())); var e = hu(n); return t ? e.filter(t) : e } }), cu({ parentsUntil: function (e, t) { return du(e, "parentNode", t) }, nextUntil: function (e, t) { return mu(e, "nextSibling", 1, t).slice(1) }, prevUntil: function (e, t) { return mu(e, "previousSibling", 1, t).slice(1) } }, function (o, i) { au.fn[o] = function (t, e) { var n = []; this.each(function () { var e = i.call(n, this, t, n); e && (hu.isArray(e) ? n.push.apply(n, e) : n.push(e)) }), 1 < this.length && (n = hu.unique(n), 0 !== o.indexOf("parents") && "prevUntil" !== o || (n = n.reverse())); var r = hu(n); return e ? r.filter(e) : r } }), au.fn.is = function (e) { return !!e && 0 < this.filter(e).length }, au.fn.init.prototype = au.fn, au.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 hu.extend(o, this), o }, au.attrHooks = ou, au.cssHooks = iu; var gu, hu = au, vu = kt.each, yu = kt.grep, bu = wt.ie, Cu = /^([a-z0-9],?)+$/i, wu = function (n, r, o) { var i = r.keep_values, e = { 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) } }, t = { style: { set: function (e, t) { null === t || "object" != typeof t ? (i && e.attr("data-mce-style", t), null !== t && "string" == typeof t ? (e.removeAttr("style"), e.css(n.parse(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) } } }; return i && (t.href = t.src = e), t }, xu = function (e, t) { var n = t.attr("style"), r = (r = e.serialize(e.parse(n), t[0].nodeName)) || null; t.attr("data-mce-style", r) }, Su = 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 Nu(a, u) { var s = this; void 0 === u && (u = {}); var r = {}, c = window, n = {}, t = 0, o = Kr.forElement(At.fromDom(a), { contentCssCors: u.contentCssCors, referrerPolicy: u.referrerPolicy }), l = [], f = u.schema ? u.schema : Ci({}), i = xi({ url_converter: u.url_converter, url_converter_scope: u.url_converter_scope }, u.schema), d = u.ownEvents ? new Ti : Ti.Event, m = f.getBlockElements(), p = hu.overrideDefaults(function () { return { context: a, element: j.getRoot() } }), g = function (e) { return e && a && q(e) ? a.getElementById(e) : e }, h = function (e) { return p("string" == typeof e ? g(e) : e) }, v = function (e, t, n) { var r, o, i = h(e); return i.length && (o = (r = H[t]) && r.get ? r.get(i, t) : i.attr(t)), void 0 === o && (o = n || ""), o }, y = function (e) { var t = g(e); return t ? t.attributes : [] }, b = function (e, t, n) { "" === n && (n = null); var r, o = h(e), i = o.attr(t); o.length && ((r = H[t]) && r.set ? r.set(o, n, t) : o.attr(t, n), i !== n && u.onSetAttrib && u.onSetAttrib({ attrElm: o, attrName: t, attrValue: n })) }, C = function () { return u.root_element || a.body }, w = function (e, t) { return ur(a.body, g(e), t) }, x = 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 = wt.browser.isIE() ? "styleFloat" : "cssFloat"), r[0] && r[0].style ? r[0].style[t] : undefined) }, S = function (e) { var t, n; return e = g(e), t = x(e, "width"), n = x(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 } }, N = function (e, t) { if (!e) return !1; if (!Array.isArray(e)) { if ("*" === t) return 1 === e.nodeType; if (Cu.test(t)) { for (var n = t.toLowerCase().split(/,/), r = e.nodeName.toLowerCase(), o = n.length - 1; 0 <= o; o--) if (n[o] === r) return !0; return !1 } if (e.nodeType && 1 !== e.nodeType) return !1 } var i = Array.isArray(e) ? e : [e]; return 0 < Ta(t, i[0].ownerDocument || i[0], null, i).length }, E = function (e, t, n, r) { var o, i = [], a = g(e); for (r = r === undefined, n = n || ("BODY" !== C().nodeName ? C().parentNode : null), kt.is(t, "string") && (t = "*" === (o = t) ? function (e) { return 1 === e.nodeType } : function (e) { return N(e, o) }); a && !(a === n || $(a.nodeType) || Fn(a) || Un(a));) { if (!t || "function" == typeof t && t(a)) { if (!r) return [a]; i.push(a) } a = a.parentNode } return r ? i : null }, k = function (e, t, n) { var r = t; if (e) for ("string" == typeof t && (r = function (e) { return N(e, t) }), e = e[n]; e; e = e[n]) if ("function" == typeof r && r(e)) return e; return null }, _ = function (e, n, r) { var o, t = "string" == typeof e ? g(e) : e; if (!t) return !1; if (kt.isArray(t) && (t.length || 0 === t.length)) return o = [], vu(t, function (e, t) { e && o.push(n.call(r, "string" == typeof e ? g(e) : e, t)) }), o; var i = r || s; return n.call(i, t) }, A = function (e, t) { h(e).each(function (e, n) { vu(t, function (e, t) { b(n, t, e) }) }) }, R = function (e, r) { var t = h(e); bu ? t.each(function (e, t) { if (!1 !== t.canHaveHTML) { for (; t.firstChild;) t.removeChild(t.firstChild); try { t.innerHTML = "<br>" + r, t.removeChild(t.firstChild) } catch (n) { hu("<div></div>").html("<br>" + r).contents().slice(1).appendTo(t) } return r } }) : t.html(r) }, T = function (e, n, r, o, i) { return _(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) }) }, D = function (e, t, n) { return T(a.createElement(e), e, t, n, !0) }, e = ci.decode, O = ci.encodeAllRaw, B = 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] }, P = function (e, t, n) { h(e).toggleClass(t, n).each(function () { "" === this.className && hu(this).attr("class", null) }) }, L = function (t, e, n) { return _(e, function (e) { return kt.is(e, "array") && (t = t.cloneNode(!0)), n && vu(yu(e.childNodes), function (e) { t.appendChild(e) }), e.parentNode.replaceChild(t, e) }) }, I = function (e) { if (An(e)) { var t = "a" === e.nodeName.toLowerCase() && !v(e, "href") && v(e, "id"); if (v(e, "name") || v(e, "data-mce-bookmark") || t) return !0 } return !1 }, M = function () { return a.createRange() }, F = function (e, t, n, r) { if (kt.isArray(e)) { for (var o = e.length, i = []; o--;) i[o] = F(e[o], t, n, r); return i } return !u.collect || e !== a && e !== c || l.push([e, t, n, r]), d.bind(e, t, n, r || j) }, U = function (e, t, n) { if (kt.isArray(e)) { for (var r = e.length, o = []; r--;) o[r] = U(e[r], t, n); return o } if (0 < l.length && (e === a || e === c)) for (r = l.length; r--;) { var i = l[r]; e !== i[0] || t && t !== i[1] || n && n !== i[2] || d.unbind(i[0], i[1], i[2]) } return d.unbind(e, t, n) }, z = function (e) { if (e && An(e)) { var t = e.getAttribute("data-mce-contenteditable"); return t && "inherit" !== t ? t : "inherit" !== e.contentEditable ? e.contentEditable : null } return null }, j = { doc: a, settings: u, win: c, files: n, stdMode: !0, boxModel: !0, styleSheetLoader: o, boundEvents: l, styles: i, schema: f, events: d, isBlock: function (e) { if ("string" == typeof e) return !!m[e]; if (e) { var t = e.nodeType; if (t) return !(1 !== t || !m[e.nodeName]) } return !1 }, $: p, $$: h, root: null, clone: function (t, e) { if (!bu || 1 !== t.nodeType || e) return t.cloneNode(e); var n = a.createElement(t.nodeName); return vu(y(t), function (e) { b(n, e.nodeName, v(t, e.nodeName)) }), n }, getRoot: C, getViewPort: function (e) { var t = En(e); return { x: t.x, y: t.y, w: t.width, h: t.height } }, getRect: function (e) { e = g(e); var t = w(e), n = S(e); return { x: t.x, y: t.y, w: n.w, h: n.h } }, getSize: S, getParent: function (e, t, n) { var r = E(e, t, n, !1); return r && 0 < r.length ? r[0] : null }, getParents: E, get: g, getNext: function (e, t) { return k(e, t, "nextSibling") }, getPrev: function (e, t) { return k(e, t, "previousSibling") }, select: function (e, t) { return Ta(e, g(t) || u.root_element || a, []) }, is: N, add: T, create: D, 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 + "</" + e + ">" : o + " />" }, createFragment: function (e) { var t, n = a.createElement("div"), r = a.createDocumentFragment(); for (r.appendChild(n), e && (n.innerHTML = e); t = n.firstChild;) r.appendChild(t); return r.removeChild(n), r }, remove: B, setStyle: function (e, t, n) { var r = q(t) ? h(e).css(t, n) : h(e).css(t); u.update_styles && xu(i, r) }, getStyle: x, setStyles: function (e, t) { var n = h(e).css(t); u.update_styles && xu(i, n) }, removeAllAttribs: function (e) { return _(e, function (e) { for (var t = e.attributes, n = t.length - 1; 0 <= n; n--) e.removeAttributeNode(t.item(n)) }) }, setAttrib: b, setAttribs: A, getAttrib: v, getPos: w, parseStyle: function (e) { return i.parse(e) }, serializeStyle: function (e, t) { return i.serialize(e, t) }, addStyle: function (e) { var t, n; if (j !== Nu.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) { W((e = e || "").split(","), function (e) { n[e] = !0, o.load(e, V) }) }, addClass: function (e, t) { h(e).addClass(t) }, removeClass: function (e, t) { P(e, t, !1) }, hasClass: function (e, t) { return h(e).hasClass(t) }, toggleClass: P, 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 ? g(e) : e; return An(t) ? t.outerHTML : hu("<div></div>").append(hu(t).clone()).html() }, setOuterHTML: function (e, t) { h(e).each(function () { try { if ("outerHTML" in this) return void(this.outerHTML = t) } catch (e) {} B(hu(this).html(t), !0) }) }, decode: e, encode: O, insertAfter: function (e, t) { var r = g(t); return _(e, function (e) { var t = r.parentNode, n = r.nextSibling; return n ? t.insertBefore(e, n) : t.appendChild(e), e }) }, replace: L, rename: function (t, e) { var n; return t.nodeName !== e.toUpperCase() && (n = D(e), vu(y(t), function (e) { b(n, e.nodeName, v(t, e.nodeName)) }), L(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 i.toHex(kt.trim(e)) }, run: _, getAttribs: y, isEmpty: function (e, t) { var n, r, o = 0; if (I(e)) return !1; if (e = e.firstChild) { var i = new Xr(e, e.parentNode), a = f ? f.getWhiteSpaceElements() : {}; t = t || (f ? f.getNonEmptyElements() : null); do { if (n = e.nodeType, An(e)) { var u = e.getAttribute("data-mce-bogus"); if (u) { e = i.next("all" === u); continue } if (r = e.nodeName.toLowerCase(), t && t[r]) { if ("br" !== r) return !1; o++, e = i.next(); continue } if (I(e)) return !1 } if (8 === n) return !1; if (3 === n && !Uo(e.nodeValue)) return !1; if (3 === n && e.parentNode && a[e.parentNode.nodeName] && Uo(e.nodeValue)) return !1; e = i.next() } while (e) } return o <= 1 }, createRng: M, nodeIndex: Su, split: function (e, t, n) { var r, o, i, a = M(); if (e && t) return a.setStart(e.parentNode, Su(e)), a.setEnd(t.parentNode, Su(t)), r = a.extractContents(), (a = M()).setStart(t.parentNode, Su(t) + 1), a.setEnd(e.parentNode, Su(e) + 1), o = a.extractContents(), (i = e.parentNode).insertBefore(Yo(j, r), e), n ? i.insertBefore(n, e) : i.insertBefore(t, e), i.insertBefore(Yo(j, o), e), B(e), n || t }, bind: F, unbind: U, fire: function (e, t, n) { return d.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 (0 < l.length) for (var e = l.length; e--;) { var t = l[e]; d.unbind(t[0], t[1], t[2]) } ue(n, function (e, t) { o.unload(t), delete n[t] }), Ta.setDocument && Ta.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 } }, H = wu(i, u, function () { return j }); return j }(gu = Nu = Nu || {}).DOM = gu(document), gu.nodeIndex = Su; var Eu = Nu, ku = Eu.DOM, _u = kt.each, Au = kt.grep, Ru = (Tu.prototype._setReferrerPolicy = function (e) { this.settings.referrerPolicy = e }, Tu.prototype.loadScript = function (e, t, n) { var r = ku, o = function () { r.remove(i), a && (a.onerror = a.onload = a = null) }, i = r.uniqueId(), a = document.createElement("script"); a.id = i, a.type = "text/javascript", a.src = kt._addCacheSuffix(e), this.settings.referrerPolicy && r.setAttrib(a, "referrerpolicy", this.settings.referrerPolicy), a.onload = function () { o(), t() }, a.onerror = function () { o(), T(n) ? n() : "undefined" != typeof console && console.log && console.log("Failed to load script: " + e) }, (document.getElementsByTagName("head")[0] || document.body).appendChild(a) }, Tu.prototype.isDone = function (e) { return 2 === this.states[e] }, Tu.prototype.markDone = function (e) { this.states[e] = 2 }, Tu.prototype.add = function (e, t, n, r) { var o = this.states[e]; this.queue.push(e), o === undefined && (this.states[e] = 0), t && (this.scriptLoadedCallbacks[e] || (this.scriptLoadedCallbacks[e] = []), this.scriptLoadedCallbacks[e].push({ success: t, failure: r, scope: n || this })) }, Tu.prototype.load = function (e, t, n, r) { return this.add(e, t, n, r) }, Tu.prototype.remove = function (e) { delete this.states[e], delete this.scriptLoadedCallbacks[e] }, Tu.prototype.loadQueue = function (e, t, n) { this.loadScripts(this.queue, e, t, n) }, Tu.prototype.loadScripts = function (n, e, t, r) { var o = this, i = [], a = function (t, e) { _u(o.scriptLoadedCallbacks[e], function (e) { T(e[t]) && e[t].call(e.scope) }), o.scriptLoadedCallbacks[e] = undefined }; o.queueLoadedCallbacks.push({ success: e, failure: r, scope: t || this }); var u = function () { var e, t = Au(n); n.length = 0, _u(t, function (e) { 2 !== o.states[e] ? 3 !== o.states[e] ? 1 !== o.states[e] && (o.states[e] = 1, o.loading++, o.loadScript(e, function () { o.states[e] = 2, o.loading--, a("success", e), u() }, function () { o.states[e] = 3, o.loading--, i.push(e), a("failure", e), u() })) : a("failure", e) : a("success", e) }), o.loading || (e = o.queueLoadedCallbacks.slice(0), o.queueLoadedCallbacks.length = 0, _u(e, function (e) { 0 === i.length ? T(e.success) && e.success.call(e.scope) : T(e.failure) && e.failure.call(e.scope, i) })) }; u() }, Tu.ScriptLoader = new Tu, Tu); function Tu(e) { void 0 === e && (e = {}), this.states = {}, this.queue = [], this.scriptLoadedCallbacks = {}, this.queueLoadedCallbacks = [], this.loading = 0, this.settings = e } var Du, Ou = function (e) { var t = e; return { get: function () { return t }, set: function (e) { t = e } } }, Bu = {}, Pu = Ou("en"), Lu = function () { return ge(Bu, Pu.get()) }, Iu = { getData: function () { return se(Bu, function (e) { return ke({}, e) }) }, setCode: function (e) { e && Pu.set(e) }, getCode: function () { return Pu.get() }, add: function (e, t) { var n = Bu[e]; n || (Bu[e] = n = {}), ue(t, function (e, t) { n[t.toLowerCase()] = e }) }, translate: function (e) { var t, n, r = Lu().getOr({}), o = function (e) { return T(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); return ge(r, t.toLowerCase()).map(o).getOr(t) }, u = function (e) { return e.replace(/{context:\w+}$/, "") }; if (i(e)) return ""; if (_(t = e) && he(t, "raw")) return o(e.raw); if (S(n = e) && 1 < n.length) { var s = e.slice(1); return u(a(e[0]).replace(/\{([0-9]+)\}/g, function (e, t) { return he(s, t) ? o(s[t]) : e })) } return u(a(e)) }, isRtl: function () { return Lu().bind(function (e) { return ge(e, "_dir") }).exists(function (e) { return "rtl" === e }) }, hasCode: function (e) { return he(Bu, e) } }; function Mu() { var r = this, o = [], s = {}, c = {}, i = [], l = function (t, n) { var e = H(i, function (e) { return e.name === t && e.state === n }); W(e, function (e) { return e.callback() }) }, f = function (e) { var t; return c[e] && (t = c[e].dependencies), t || [] }, d = function (e, t) { return "object" == typeof t ? t : "string" == typeof e ? { prefix: "", resource: t, suffix: "" } : { prefix: e.prefix, resource: t, suffix: e.suffix } }, m = function (o, i, a, u, e) { var t, n; s[o] || (0 !== (t = "string" == typeof i ? i : i.prefix + i.resource + i.suffix).indexOf("/") && -1 === t.indexOf("://") && (t = Mu.baseURL + "/" + t), s[o] = t.substring(0, t.lastIndexOf("/")), n = function () { var n, e, t, r; l(o, "loaded"), n = i, e = a, t = u, r = f(o), W(r, function (e) { var t = d(n, e); m(t.resource, t, undefined, undefined) }), e && (t ? e.call(t) : e.call(Ru)) }, c[o] ? n() : Ru.ScriptLoader.add(t, n, u, e)) }, e = function (e, t, n) { void 0 === n && (n = "added"), he(c, e) && "added" === n || he(s, e) && "loaded" === n ? t() : i.push({ name: e, state: n, callback: t }) }; return { items: o, urls: s, lookup: c, _listeners: i, get: function (e) { return c[e] ? c[e].instance : undefined }, dependencies: f, requireLangPack: function (t, n) { !1 !== Mu.languageLoad && e(t, function () { var e = Iu.getCode(); !e || n && -1 === ("," + (n || "") + ",").indexOf("," + e + ",") || Ru.ScriptLoader.add(s[t] + "/langs/" + e + ".js") }, "loaded") }, add: function (e, t, n) { var r = t; return o.push(r), c[e] = { instance: r, dependencies: n }, l(e, "added"), r }, remove: function (e) { delete s[e], delete c[e] }, createUrl: d, addComponents: function (e, t) { var n = r.urls[e]; W(t, function (e) { Ru.ScriptLoader.add(n + "/" + e) }) }, load: m, waitFor: e } }(Du = Mu = Mu || {}).PluginManager = Du(), Du.ThemeManager = Du(); var Fu, Uu = Mu, zu = 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)) } } }, ju = 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 && clearTimeout(o), o = setTimeout(function () { n.apply(null, e), o = null }, r) } } }, Hu = function (e, t) { var n = Gn(e, t); return n === undefined || "" === n ? [] : n.split(" ") }, Vu = function (e) { return e.dom.classList !== undefined }, qu = function (e, t) { return o = t, i = Hu(n = e, r = "class").concat([o]), Xn(n, r, i.join(" ")), !0; var n, r, o, i }, $u = function (e, t) { return o = t, 0 < (i = H(Hu(n = e, r = "class"), function (e) { return e !== o })).length ? Xn(n, r, i.join(" ")) : Qn(n, r), !1; var n, r, o, i }, Wu = function (e, t) { Vu(e) ? e.dom.classList.add(t) : qu(e, t) }, Ku = function (e) { 0 === (Vu(e) ? e.dom.classList : Hu(e, "class")).length && Qn(e, "class") }, Xu = function (e, t) { return Vu(e) && e.dom.classList.contains(t) }, Yu = function (e, t) { var n = []; return W(Gt(e), function (e) { t(e) && (n = n.concat([e])), n = n.concat(Yu(e, t)) }), n }, Gu = function (e, t) { return n = t, o = (r = e) === undefined ? document : r.dom, Dt(o) ? [] : z(o.querySelectorAll(n), At.fromDom); var n, r, o }, Ju = E("mce-annotation"), Qu = E("data-mce-annotation"), Zu = E("data-mce-annotation-uid"), es = function (r, e) { var t = r.selection.getRng(), n = At.fromDom(t.startContainer), o = At.fromDom(r.getBody()), i = e.fold(function () { return "." + Ju() }, function (e) { return "[" + Qu() + '="' + e + '"]' }), a = Jt(n, t.startOffset).getOr(n), u = Or(a, i, function (e) { return Ot(e, o) }), s = function (e, t) { return n = t, (r = e.dom) && r.hasAttribute && r.hasAttribute(n) ? U.some(Gn(e, t)) : U.none(); var n, r }; return u.bind(function (e) { return s(e, "" + Zu()).bind(function (n) { return s(e, "" + Qu()).map(function (e) { var t = ts(r, n); return { uid: n, name: e, elements: t } }) }) }) }, ts = function (e, t) { var n = At.fromDom(e.getBody()); return Gu(n, "[" + Zu() + '="' + t + '"]') }, ns = function (i, e) { var a = Ou({}), 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: Ou(U.none()) }); n[e] = r, a.set(n) }, t = ju(function () { var e, t, n, r = a.get(), o = (e = ie(r), (n = B.call(e, 0)).sort(t), n); W(o, function (e) { u(e, function (u) { var s = u.previous.get(); return es(i, U.some(e)).fold(function () { var t; s.isSome() && (c(t = e, function (e) { W(e.listeners, function (e) { return e(!1, t) }) }), u.previous.set(U.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) { W(e.listeners, function (e) { return e(!0, t, { uid: n, nodes: z(r, function (e) { return e.dom }) }) }) }), u.previous.set(U.some(o))) }), { previous: u.previous, listeners: u.listeners } }) }) }, 30); i.on("remove", function () { t.cancel() }), i.on("NodeChange", function () { t.throttle() }); return { addListener: function (e, t) { u(e, function (e) { return { previous: e.previous, listeners: e.listeners.concat([t]) } }) } } }, rs = function (e, n) { e.on("init", function () { e.serializer.addNodeFilter("span", function (e) { W(e, function (t) { var e; e = t, U.from(e.attr(Qu())).bind(n.lookup).each(function (e) { !1 === e.persistent && t.unwrap() }) }) }) }) }, os = 0, is = function (e) { var t = (new Date).getTime(); return e + "_" + Math.floor(1e9 * Math.random()) + ++os + String(t) }, as = function (e, t) { var n, r, o = Ht(e).dom, i = At.fromDom(o.createDocumentFragment()), a = (n = t, (r = (o || document).createElement("div")).innerHTML = n, Gt(At.fromDom(r))); dn(i, a), mn(e), fn(e, i) }, us = function (e, t) { return At.fromDom(e.dom.cloneNode(t)) }, ss = function (e) { return us(e, !1) }, cs = function (e) { return us(e, !0) }, ls = function (e, t, n) { void 0 === n && (n = C); var r = new Xr(e, t), o = function (e) { for (var t; (t = r[e]()) && !In(t) && !n(t);); return U.from(t).filter(In) }; return { current: function () { return U.from(r.current()).filter(In) }, next: function () { return o("next") }, prev: function () { return o("prev") }, prev2: function () { return o("prev2") } } }, fs = function (t, e) { var i = e || function (e) { return t.isBlock(e) || zn(e) || Vn(e) }, a = function (e, t, n, r) { if (In(e)) { var o = r(e, t, e.data); if (-1 !== o) return U.some({ container: e, offset: o }) } return n().bind(function (e) { return a(e.container, e.offset, n, r) }) }; return { backwards: function (e, t, n, r) { var o = ls(e, r, i); return a(e, t, function () { return o.prev().map(function (e) { return { container: e, offset: e.length } }) }, n).getOrNull() }, forwards: function (e, t, n, r) { var o = ls(e, r, i); return a(e, t, function () { return o.next().map(function (e) { return { container: e, offset: 0 } }) }, n).getOrNull() } } }, ds = function (e, t, n) { return e.isSome() && t.isSome() ? U.some(n(e.getOrDie(), t.getOrDie())) : U.none() }, ms = Math.round, ps = function (e) { return e ? { left: ms(e.left), top: ms(e.top), bottom: ms(e.bottom), right: ms(e.right), width: ms(e.width), height: ms(e.height) } : { left: 0, top: 0, bottom: 0, right: 0, width: 0, height: 0 } }, gs = function (e, t) { return e = ps(e), t || (e.left = e.left + e.width), e.right = e.left, e.width = 0, e }, hs = function (e, t, n) { return 0 <= e && e <= Math.min(t.height, n.height) / 2 }, vs = function (e, t) { var n = Math.min(t.height / 2, e.height / 2); return e.bottom - n < t.top || !(e.top > t.bottom) && hs(t.top - e.bottom, e, t) }, ys = function (e, t) { return e.top > t.bottom || !(e.bottom < t.top) && hs(t.bottom - e.top, e, t) }, bs = function (e, t, n) { return t >= e.left && t <= e.right && n >= e.top && n <= e.bottom }, Cs = function (e) { var t = e.startContainer, n = e.startOffset; return t.hasChildNodes() && e.endOffset === n + 1 ? t.childNodes[n] : null }, ws = function (e, t) { return 1 === e.nodeType && e.hasChildNodes() && (t >= e.childNodes.length && (t = e.childNodes.length - 1), e = e.childNodes[t]), e }, xs = 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]"), Ss = function (e) { return "string" == typeof e && 768 <= e.charCodeAt(0) && xs.test(e) }, Ns = An, Es = Lo, ks = Tn("display", "block table"), _s = Tn("float", "left right"), As = function () { for (var n = [], e = 0; e < arguments.length; e++) n[e] = arguments[e]; return function (e) { for (var t = 0; t < n.length; t++) if (!n[t](e)) return !1; return !0 } }(Ns, Es, d(_s)), Rs = d(Tn("white-space", "pre pre-line pre-wrap")), Ts = In, Ds = zn, Os = Eu.nodeIndex, Bs = ws, Ps = function (e) { return "createRange" in e ? e.createRange() : Eu.DOM.createRng() }, Ls = function (e) { return e && /[\r\n\t ]/.test(e) }, Is = function (e) { return !!e.setStart && !!e.setEnd }, Ms = function (e) { var t, n = e.startContainer, r = e.startOffset; return !!(Ls(e.toString()) && Rs(n.parentNode) && In(n) && (t = n.data, Ls(t[r - 1]) || Ls(t[r + 1]))) }, Fs = function (e) { return 0 === e.left && 0 === e.right && 0 === e.top && 0 === e.bottom }, Us = function (e) { var t = e.getClientRects(), n = 0 < t.length ? ps(t[0]) : ps(e.getBoundingClientRect()); return !Is(e) && Ds(e) && Fs(n) ? function (e) { var t = e.ownerDocument, n = Ps(t), r = t.createTextNode(lo), o = e.parentNode; o.insertBefore(r, e), n.setStart(r, 0), n.setEnd(r, 1); var i = ps(n.getBoundingClientRect()); return o.removeChild(r), i }(e) : Fs(n) && Is(e) ? function (e) { var t = e.startContainer, n = e.endContainer, r = e.startOffset, o = e.endOffset; if (t === n && In(n) && 0 === r && 1 === o) { var i = e.cloneRange(); return i.setEndAfter(n), Us(i) } return null }(e) : n }, zs = function (e, t) { var n = gs(e, t); return n.width = 1, n.right = n.left + 1, n }, js = 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 = Ps(e.ownerDocument); if (t < e.data.length) { if (Ss(e.data[t])) return r; if (Ss(e.data[t - 1]) && (n.setStart(e, t), n.setEnd(e, t + 1), !Ms(n))) return o(zs(Us(n), !1)), r } 0 < t && (n.setStart(e, t - 1), n.setEnd(e, t), Ms(n) || o(zs(Us(n), !1))), t < e.data.length && (n.setStart(e, t), n.setEnd(e, t + 1), Ms(n) || o(zs(Us(n), !0))) }; if (Ts(e.container())) return i(e.container(), e.offset()), r; if (Ns(e.container())) if (e.isAtEnd()) n = Bs(e.container(), e.offset()), Ts(n) && i(n, n.data.length), As(n) && !Ds(n) && o(zs(Us(n), !1)); else { if (n = Bs(e.container(), e.offset()), Ts(n) && i(n, 0), As(n) && e.isAtEnd()) return o(zs(Us(n), !1)), r; t = Bs(e.container(), e.offset() - 1), As(t) && !Ds(t) && (!ks(t) && !ks(n) && As(n) || o(zs(Us(t), !1))), As(n) && o(zs(Us(n), !0)) } return r }; function Hs(t, n, e) { var r = function () { return e = e || js(Hs(t, n)) }; return { container: E(t), offset: E(n), toRange: function () { var e = Ps(t.ownerDocument); return e.setStart(t, n), e.setEnd(t, n), e }, getClientRects: r, isVisible: function () { return 0 < r().length }, isAtStart: function () { return Ts(t), 0 === n }, isAtEnd: function () { return Ts(t) ? n >= t.data.length : n >= t.childNodes.length }, isEqual: function (e) { return e && t === e.container() && n === e.offset() }, getNode: function (e) { return Bs(t, e ? n - 1 : n) } } }(Fu = Hs = Hs || {}).fromRangeStart = function (e) { return Fu(e.startContainer, e.startOffset) }, Fu.fromRangeEnd = function (e) { return Fu(e.endContainer, e.endOffset) }, Fu.after = function (e) { return Fu(e.parentNode, Os(e) + 1) }, Fu.before = function (e) { return Fu(e.parentNode, Os(e)) }, Fu.isAbove = function (e, t) { return ds(ne(t.getClientRects()), re(e.getClientRects()), vs).getOr(!1) }, Fu.isBelow = function (e, t) { return ds(re(t.getClientRects()), ne(e.getClientRects()), ys).getOr(!1) }, Fu.isAtStart = function (e) { return !!e && e.isAtStart() }, Fu.isAtEnd = function (e) { return !!e && e.isAtEnd() }, Fu.isTextPosition = function (e) { return !!e && In(e.container()) }, Fu.isElementPosition = function (e) { return !1 === Fu.isTextPosition(e) }; var Vs, qs, $s = Hs, Ws = function (e, t) { In(t) && 0 === t.data.length && e.remove(t) }, Ks = function (e, t, n) { var r, o, i, a, u, s, c; Un(n) ? (i = e, a = t, u = n, s = U.from(u.firstChild), c = U.from(u.lastChild), a.insertNode(u), s.each(function (e) { return Ws(i, e.previousSibling) }), c.each(function (e) { return Ws(i, e.nextSibling) })) : (r = e, o = n, t.insertNode(o), Ws(r, o.previousSibling), Ws(r, o.nextSibling)) }, Xs = In, Ys = On, Gs = Eu.nodeIndex, Js = function (e) { var t = e.parentNode; return Ys(t) ? Js(t) : t }, Qs = function (e) { return e ? Se(e.childNodes, function (e, t) { return Ys(t) && "BR" !== t.nodeName ? e = e.concat(Qs(t)) : e.push(t), e }, []) : [] }, Zs = function (t) { return function (e) { return t === e } }, ec = function (e) { var t = Xs(e) ? "text()" : e.nodeName.toLowerCase(); return t + "[" + function (e) { var r = Qs(Js(e)), t = Ne(r, Zs(e), e); r = r.slice(0, t + 1); var n = Se(r, function (e, t, n) { return Xs(t) && Xs(r[n - 1]) && e++, e }, 0); return r = we(r, Rn([e.nodeName])), (t = Ne(r, Zs(e), e)) - n }(e) + "]" }, tc = function (e, t) { var n, r, o, i = [], a = t.container(), u = t.offset(); return Xs(a) ? n = function (e, t) { for (; (e = e.previousSibling) && Xs(e);) t += e.data.length; return t }(a, u) : (u >= (r = a.childNodes).length ? (n = "after", u = r.length - 1) : n = "before", a = r[u]), i.push(ec(a)), o = function (e, t, n) { var r = []; for (t = t.parentNode; t !== e && (!n || !n(t)); t = t.parentNode) r.push(t); return r }(e, a), o = we(o, d(On)), (i = i.concat(Ce(o, ec))).reverse().join("/") + "," + n }, nc = function (e, t) { if (!t) return null; var n = t.split(","), r = n[0].split("/"), o = 1 < n.length ? n[1] : "before", i = Se(r, function (e, t) { var n, r, o, i, a = /([\w\-\(\)]+)\[([0-9]+)\]/.exec(t); return a ? ("text()" === a[1] && (a[1] = "#text"), n = e, r = a[1], o = parseInt(a[2], 10), i = Qs(n), i = we(i, function (e, t) { return !Xs(e) || !Xs(i[t - 1]) }), (i = we(i, Rn([r])))[o]) : null }, e); return i ? Xs(i) ? function (e, t) { for (var n, r = e, o = 0; Xs(r);) { if (n = r.data.length, o <= t && t <= o + n) { e = r, t -= o; break } if (!Xs(r.nextSibling)) { e = r, t = n; break } o += n, r = r.nextSibling } return Xs(e) && t > e.data.length && (t = e.data.length), $s(e, t) }(i, parseInt(o, 10)) : (o = "after" === o ? Gs(i) + 1 : Gs(i), $s(i.parentNode, o)) : null }, rc = Vn, oc = 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 (In(a) ? s.push(n ? function (e, t, n) { for (var r = e(t.data.slice(0, n)).length, o = t.previousSibling; o && In(o); o = o.previousSibling) r += e(o.data).length; return r }(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 }, ic = function (e, t, n) { var r = 0; return kt.each(e.select(t), function (e) { if ("all" !== e.getAttribute("data-mce-bogus")) return e !== n && void r++ }), r }, ac = function (e, t) { var n, r = t ? "start" : "end", o = e[r + "Container"], i = e[r + "Offset"]; An(o) && "TR" === o.nodeName && (o = (n = o.childNodes)[Math.min(t ? i : i - 1, n.length - 1)]) && (i = t ? 0 : o.childNodes.length, e["set" + (t ? "Start" : "End")](o, i)) }, uc = function (e) { return ac(e, !0), ac(e, !1), e }, sc = function (e, t) { var n; if (An(e) && (e = ws(e, t), rc(e))) return e; if (bo(e)) { if (In(e) && vo(e) && (e = e.parentNode), n = e.previousSibling, rc(n)) return n; if (n = e.nextSibling, rc(n)) return n } }, cc = function (e, t, n) { var r = n.getNode(), o = r ? r.nodeName : null, i = n.getRng(); if (rc(r) || "IMG" === o) return { name: o, index: ic(n.dom, o, r) }; var a, u, s, c, l, f, d, m = sc((a = i).startContainer, a.startOffset) || sc(a.endContainer, a.endOffset); return m ? { name: o = m.tagName, index: ic(n.dom, o, m) } : (u = e, c = t, l = i, f = (s = n).dom, (d = {}).start = oc(f, u, c, l, !0), s.isCollapsed() || (d.end = oc(f, u, c, l, !1)), d) }, lc = 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) }, fc = 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: ic(n, u, a) }; var s, c = uc(r.cloneRange()); i || (c.collapse(!1), s = lc(n, o + "_end", t), Ks(n, c, s)), (r = uc(r)).collapse(!0); var l = lc(n, o + "_start", t); return Ks(n, r, l), e.moveToBookmark({ id: o, keep: !0 }), { id: o } }, dc = function (e, t, n) { return 2 === t ? cc(po, n, e) : 3 === t ? (o = (r = e).getRng(), { start: tc(r.dom.getRoot(), $s.fromRangeStart(o)), end: tc(r.dom.getRoot(), $s.fromRangeEnd(o)) }) : t ? { rng: e.getRng() } : fc(e, !1); var r, o }, mc = N(cc, o, !0), pc = Eu.DOM, gc = 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 }, hc = function (e) { return e.getParam("content_security_policy", "") }, vc = 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 }, yc = function (e) { return e.getParam("forced_root_block_attrs", {}) }, bc = function (e) { return e.getParam("automatic_uploads", !0, "boolean") }, Cc = function (e) { return e.getParam("icons", "", "string") }, wc = function (e) { return e.getParam("referrer_policy", "", "string") }, xc = function (e) { return e.getParam("language", "en", "string") }, Sc = function (e) { return e.getParam("indent_use_margin", !1) }, Nc = function (e) { var t = e.getParam("object_resizing"); return !1 !== t && !wt.iOS && (q(t) ? t : "table,img,figure.image,div") }, Ec = function (e) { return e.getParam("event_root") }, kc = function (e) { return e.getParam("theme") }, _c = function (e) { return !1 !== e.getParam("inline_boundaries") }, Ac = function (e) { return e.getParam("plugins", "", "string") }, Rc = An, Tc = In, Dc = function (e) { var t = e.parentNode; t && t.removeChild(e) }, Oc = function (e) { var t = po(e); return { count: e.length - t.length, text: t } }, Bc = function (e) { for (var t; - 1 !== (t = e.data.lastIndexOf(fo));) e.deleteData(t, 1) }, Pc = function (e, t) { return Fc(e), t }, Lc = function (e, t) { var n, r, o = t.container(), i = (n = oe(o.childNodes), (-1 === (r = I(n, e)) ? U.none() : U.some(r)).map(function (e) { return e < t.offset() ? $s(o, t.offset() - 1) : t }).getOr(t)); return Fc(e), i }, Ic = function (e, t) { return Tc(e) && t.container() === e ? (r = t, o = Oc((n = e).data.substr(0, r.offset())), i = Oc(n.data.substr(r.offset())), 0 < (o.text + i.text).length ? (Bc(n), $s(n, r.offset() - o.count)) : r) : Pc(e, t); var n, r, o, i }, Mc = function (e, t) { return $s.isTextPosition(t) ? Ic(e, t) : (n = e, ((r = t).container() === n.parentNode ? Lc : Pc)(n, r)); var n, r }, Fc = function (e) { Rc(e) && bo(e) && (Co(e) ? e.removeAttribute("data-mce-caret") : Dc(e)), Tc(e) && (Bc(e), 0 === e.data.length && Dc(e)) }, Uc = dt().browser, zc = Vn, jc = $n, Hc = qn, Vc = function (e, t, n) { var r, o, i, a, u = gs(t.getBoundingClientRect(), n), s = "BODY" === e.tagName ? (r = e.ownerDocument.documentElement, o = e.scrollLeft || r.scrollLeft, e.scrollTop || r.scrollTop) : (a = e.getBoundingClientRect(), o = e.scrollLeft - a.left, e.scrollTop - a.top); return u.left += o, u.right += o, u.top += s, u.bottom += s, u.width = 1, 0 < (i = t.offsetWidth - t.clientWidth) && (n && (i *= -1), u.left += i, u.right += i), u }, qc = function (e, i, a, t) { var n, u, s = Ou(U.none()), r = vc(e), c = 0 < r.length ? r : "p", l = function () { ! function (e) { for (var t = Gu(At.fromDom(e), "*[contentEditable=false],video,audio,embed,object"), n = 0; n < t.length; n++) { var r, o = t[n].dom, i = o.previousSibling; Eo(i) && (1 === (r = i.data).length ? i.parentNode.removeChild(i) : i.deleteData(r.length - 1, 1)), i = o.nextSibling, No(i) && (1 === (r = i.data).length ? i.parentNode.removeChild(i) : i.deleteData(0, 1)) } }(i), u && (Fc(u), u = null), s.get().each(function (e) { hu(e.caret).remove(), s.set(U.none()) }), n && (qr.clearInterval(n), n = null) }, f = function () { n = qr.setInterval(function () { t() ? hu("div.mce-visual-caret", i).toggleClass("mce-visual-caret-hidden") : hu("div.mce-visual-caret", i).addClass("mce-visual-caret-hidden") }, 500) }; return { show: function (t, e) { var n, r; if (l(), Hc(e)) return null; if (!a(e)) return u = function (e, t) { var n, r = e.ownerDocument.createTextNode(fo), o = e.parentNode; if (t) { if (n = e.previousSibling, ho(n)) { if (bo(n)) return n; if (Eo(n)) return n.splitText(n.data.length - 1) } o.insertBefore(r, e) } else { if (n = e.nextSibling, ho(n)) { if (bo(n)) return n; if (No(n)) return n.splitText(1), n } e.nextSibling ? o.insertBefore(r, e.nextSibling) : o.appendChild(r) } return r }(e, t), r = e.ownerDocument.createRange(), Wc(u.nextSibling) ? (r.setStart(u, 0), r.setEnd(u, 0)) : (r.setStart(u, 1), r.setEnd(u, 1)), r; u = So(c, e, t), n = Vc(i, e, t), hu(u).css("top", n.top); var o = hu('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(n).appendTo(i)[0]; return s.set(U.some({ caret: o, element: e, before: t })), s.get().each(function (e) { t && hu(e.caret).addClass("mce-visual-caret-before") }), f(), (r = e.ownerDocument.createRange()).setStart(u, 0), r.setEnd(u, 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 () { s.get().each(function (e) { var t = Vc(i, e.element, e.before); hu(e.caret).css(ke({}, t)) }) }, destroy: function () { return qr.clearInterval(n) } } }, $c = function () { return Uc.isIE() || Uc.isEdge() || Uc.isFirefox() }, Wc = function (e) { return zc(e) || jc(e) }, Kc = function (e) { return Wc(e) || Bn(e) && $c() }, Xc = Vn, Yc = $n, Gc = Tn("display", "block table table-cell table-caption list-item"), Jc = bo, Qc = vo, Zc = An, el = Lo, tl = function (e, t) { for (var n; n = e(t);) if (!Qc(n)) return n; return null }, nl = function (e, t, n, r, o) { var i = new Xr(e, r), a = Xc(e) || Qc(e); if (t < 0) { if (a && n(e = tl(i.prev, !0))) return e; for (; e = tl(i.prev, o);) if (n(e)) return e } if (0 < t) { if (a && n(e = tl(i.next, !0))) return e; for (; e = tl(i.next, o);) if (n(e)) return e } return null }, rl = function (e, t) { for (; e && e !== t;) { if (Gc(e)) return e; e = e.parentNode } return null }, ol = function (e, t, n) { return rl(e.container(), n) === rl(t.container(), n) }, il = function (e, t) { if (!t) return null; var n = t.container(), r = t.offset(); return Zc(n) ? n.childNodes[r + e] : null }, al = function (e, t) { var n = t.ownerDocument.createRange(); return e ? (n.setStartBefore(t), n.setEndBefore(t)) : (n.setStartAfter(t), n.setEndAfter(t)), n }, ul = function (e, t, n) { for (var r, o, i, a = e ? "previousSibling" : "nextSibling"; n && n !== t;) { if (r = n[a], Jc(r) && (r = r[a]), Xc(r) || Yc(r)) { if (i = n, rl(r, o = t) === rl(i, o)) return r; break } if (el(r)) break; n = n.parentNode } return null }, sl = N(al, !0), cl = N(al, !1), ll = function (e, t, n) { var r, o, i = N(ul, !0, t), a = N(ul, !1, t), u = n.startContainer, s = n.startOffset; if (vo(u)) { if (Zc(u) || (u = u.parentNode), "before" === (o = u.getAttribute("data-mce-caret")) && (r = u.nextSibling, Kc(r))) return sl(r); if ("after" === o && (r = u.previousSibling, Kc(r))) return cl(r) } if (!n.collapsed) return n; if (In(u)) { if (Jc(u)) { if (1 === e) { if (r = a(u)) return sl(r); if (r = i(u)) return cl(r) } if (-1 === e) { if (r = i(u)) return cl(r); if (r = a(u)) return sl(r) } return n } if (Eo(u) && s >= u.data.length - 1) return 1 === e && (r = a(u)) ? sl(r) : n; if (No(u) && s <= 1) return -1 === e && (r = i(u)) ? cl(r) : n; if (s === u.data.length) return (r = a(u)) ? sl(r) : n; if (0 === s) return (r = i(u)) ? cl(r) : n } return n }, fl = function (e, t) { return U.from(il(e ? 0 : -1, t)).filter(Xc) }, dl = function (e, t, n) { var r = ll(e, t, n); return -1 === e ? Hs.fromRangeStart(r) : Hs.fromRangeEnd(r) }, ml = function (e) { return U.from(e.getNode()).map(At.fromDom) }, pl = function (e, t) { for (; t = e(t);) if (t.isVisible()) return t; return t }, gl = function (e, t) { var n = ol(e, t); return !(n || !zn(e.getNode())) || n }; (qs = Vs = Vs || {})[qs.Backwards = -1] = "Backwards", qs[qs.Forwards = 1] = "Forwards"; var hl, vl = Vn, yl = In, bl = An, Cl = zn, wl = Lo, xl = function (e) { return Oo(e) || !!Io(t = e) && !0 !== X(oe(t.getElementsByTagName("*")), function (e, t) { return e || _o(t) }, !1); var t }, Sl = Mo, Nl = function (e, t) { return e.hasChildNodes() && t < e.childNodes.length ? e.childNodes[t] : null }, El = function (e, t) { if (0 < e) { if (wl(t.previousSibling) && !yl(t.previousSibling)) return $s.before(t); if (yl(t)) return $s(t, 0) } if (e < 0) { if (wl(t.nextSibling) && !yl(t.nextSibling)) return $s.after(t); if (yl(t)) return $s(t, t.data.length) } return !(e < 0) || Cl(t) ? $s.before(t) : $s.after(t) }, kl = function (e, t, n) { var r, o, i, a; if (!bl(n) || !t) return null; if (t.isEqual($s.after(n)) && n.lastChild) { if (a = $s.after(n.lastChild), e < 0 && wl(n.lastChild) && bl(n.lastChild)) return Cl(n.lastChild) ? $s.before(n.lastChild) : a } else a = t; var u, s, c, l = a.container(), f = a.offset(); if (yl(l)) { if (e < 0 && 0 < f) return $s(l, --f); if (0 < e && f < l.length) return $s(l, ++f); r = l } else { if (e < 0 && 0 < f && (o = Nl(l, f - 1), wl(o))) return !xl(o) && (i = nl(o, e, Sl, o)) ? yl(i) ? $s(i, i.data.length) : $s.after(i) : yl(o) ? $s(o, o.data.length) : $s.before(o); if (0 < e && f < l.childNodes.length && (o = Nl(l, f), wl(o))) return Cl(o) ? (u = n, (c = (s = o).nextSibling) && wl(c) ? yl(c) ? $s(c, 0) : $s.before(c) : kl(Vs.Forwards, $s.after(s), u)) : !xl(o) && (i = nl(o, e, Sl, o)) ? yl(i) ? $s(i, 0) : $s.before(i) : yl(o) ? $s(o, 0) : $s.after(o); r = o || a.getNode() } if ((0 < e && a.isAtEnd() || e < 0 && a.isAtStart()) && (r = nl(r, e, k, n, !0), Sl(r, n))) return El(e, r); o = nl(r, e, Sl, n); var d = Ee(H(function (e, t) { for (var n = []; e && e !== t;) n.push(e), e = e.parentNode; return n }(l, n), vl)); return !d || o && d.contains(o) ? o ? El(e, o) : null : a = 0 < e ? $s.after(d) : $s.before(d) }, _l = function (t) { return { next: function (e) { return kl(Vs.Forwards, e, t) }, prev: function (e) { return kl(Vs.Backwards, e, t) } } }, Al = function (e) { return $s.isTextPosition(e) ? 0 === e.offset() : Lo(e.getNode()) }, Rl = function (e) { if ($s.isTextPosition(e)) { var t = e.container(); return e.offset() === t.data.length } return Lo(e.getNode(!0)) }, Tl = function (e, t) { return !$s.isTextPosition(e) && !$s.isTextPosition(t) && e.getNode() === t.getNode(!0) }, Dl = function (e, t, n) { return e ? !Tl(t, n) && (r = t, !(!$s.isTextPosition(r) && zn(r.getNode()))) && Rl(t) && Al(n) : !Tl(n, t) && Al(t) && Rl(n); var r }, Ol = function (e, t, n) { var r = _l(t); return U.from(e ? r.next(n) : r.prev(n)) }, Bl = function (t, n, r) { return Ol(t, n, r).bind(function (e) { return ol(r, e, n) && Dl(t, r, e) ? Ol(t, n, e) : U.some(e) }) }, Pl = function (t, n, e, r) { return Bl(t, n, e).bind(function (e) { return r(e) ? Pl(t, n, e, r) : U.some(e) }) }, Ll = function (e, t) { var n, r, o, i, a, u = e ? t.firstChild : t.lastChild; return In(u) ? U.some($s(u, e ? 0 : u.data.length)) : u ? Lo(u) ? U.some(e ? $s.before(u) : zn(a = u) ? $s.before(a) : $s.after(a)) : (r = t, o = u, i = (n = e) ? $s.before(o) : $s.after(o), Ol(n, r, i)) : U.none() }, Il = N(Ol, !0), Ml = N(Ol, !1), Fl = N(Ll, !0), Ul = N(Ll, !1), zl = "_mce_caret", jl = function (e) { return An(e) && e.id === zl }, Hl = function (e, t) { for (; t && t !== e;) { if (t.id === zl) return t; t = t.parentNode } return null }, Vl = function (e, t) { return An(t) && e.isBlock(t) && !t.innerHTML && !wt.ie && (t.innerHTML = '<br data-mce-bogus="1" />'), t }, ql = function (e, t, n) { return !(!1 !== t.hasChildNodes() || !Hl(e, t)) && (o = n, i = (r = t).ownerDocument.createTextNode(fo), r.appendChild(i), o.setStart(i, 0), o.setEnd(i, 0), !0); var r, o, i }, $l = 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, ql(c, i, r)) return !0; if (s[o] > u.length - 1) return !!ql(c, i, r) || function (e, t) { return Ul(e).fold(function () { return !1 }, function (e) { return t.setStart(e.container(), e.offset()), t.setEnd(e.container(), e.offset()), !0 }) }(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 }, Wl = function (e) { return In(e) && 0 < e.data.length }, Kl = 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, s = (u = (o = "start" === t ? l ? c.hasChildNodes() ? (r = c.firstChild, 1) : Wl(c.nextSibling) ? (r = c.nextSibling, 0) : Wl(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) : Wl(c.previousSibling) ? (r = c.previousSibling, c.previousSibling.data.length) : (r = c.parentNode, e.nodeIndex(c)) : e.nodeIndex(c), r), o), !l) { for (a = c.previousSibling, i = c.nextSibling, kt.each(kt.grep(c.childNodes), function (e) { In(e) && (e.nodeValue = e.nodeValue.replace(/\uFEFF/g, "")) }); c = e.get(n.id + "_" + t);) e.remove(c, !0); a && i && a.nodeType === i.nodeType && In(a) && !wt.opera && (o = a.nodeValue.length, a.appendData(i.nodeValue), e.remove(i), u = a, s = o) } return U.some($s(u, s)) } return U.none() }, Xl = function (e, t) { var n, r, o, i, a, u, s, c, l, f, d, m, p, g, h = e.dom; if (t) { if (g = t, kt.isArray(g.start)) return m = t, p = (d = h).createRng(), $l(d, !0, m, p) && $l(d, !1, m, p) ? U.some(p) : U.none(); if ("string" == typeof t.start) return U.some((c = t, l = (s = h).createRng(), f = nc(s.getRoot(), c.start), l.setStart(f.container(), f.offset()), f = nc(s.getRoot(), c.end), l.setEnd(f.container(), f.offset()), l)); if (t.hasOwnProperty("id")) return a = Kl(o = h, "start", i = t), u = Kl(o, "end", i), ds(a, u.or(a), function (e, t) { var n = o.createRng(); return n.setStart(Vl(o, e.container()), e.offset()), n.setEnd(Vl(o, t.container()), t.offset()), n }); if (t.hasOwnProperty("name")) return n = h, r = t, U.from(n.select(r.name)[r.index]).map(function (e) { var t = n.createRng(); return t.selectNode(e), t }); if (t.hasOwnProperty("rng")) return U.some(t.rng) } return U.none() }, Yl = dc, Gl = function (t, e) { Xl(t, e).each(function (e) { t.setRng(e) }) }, Jl = function (e) { return An(e) && "SPAN" === e.tagName && "bookmark" === e.getAttribute("data-mce-type") }, Ql = (hl = lo, function (e) { return hl === e }), Zl = function (e) { return "" !== e && -1 !== " \f\n\r\t\x0B".indexOf(e) }, ef = function (e) { return !Zl(e) && !Ql(e) }, tf = function (e) { return !!e.nodeType }, nf = function (e, t, n) { var r, o, i, a, u = n.startOffset, s = n.startContainer; if ((n.startContainer !== n.endContainer || !(a = n.startContainer.childNodes[n.startOffset]) || !/^(IMG)$/.test(a.nodeName)) && 1 === s.nodeType) for (u < (i = s.childNodes).length ? (s = i[u], r = new Xr(s, e.getParent(s, e.isBlock))) : (s = i[i.length - 1], (r = new Xr(s, e.getParent(s, e.isBlock))).next(!0)), o = r.current(); o; o = r.next()) if (3 === o.nodeType && !uf(o)) return n.setStart(o, 0), void t.setRng(n) }, rf = function (e, t, n) { if (e) { var r = t ? "nextSibling" : "previousSibling"; for (e = n ? e : e[r]; e; e = e[r]) if (1 === e.nodeType || !uf(e)) return e } }, of = function (e, t) { return tf(t) && (t = t.nodeName), !!e.schema.getTextBlockElements()[t.toLowerCase()] }, af = function (e, t, n) { return e.schema.isValidChild(t, n) }, uf = function (e, t) { if (void 0 === t && (t = !1), D(e) && In(e)) { var n = t ? e.data.replace(/ /g, "\xa0") : e.data; return Uo(n) } return !1 }, sf = function (e, n) { return "string" != typeof e ? e = e(n) : n && (e = e.replace(/%(\w+)/g, function (e, t) { return n[t] || e })), e }, cf = function (e, t) { return e = "" + ((e = e || "").nodeName || e), t = "" + ((t = t || "").nodeName || t), e.toLowerCase() === t.toLowerCase() }, lf = 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 }, ff = function (e, t, n) { return lf(e, e.getStyle(t, n), n) }, df = function (t, e) { var n; return t.getParent(e, function (e) { return (n = t.getStyle(e, "text-decoration")) && "none" !== n }), n }, mf = function (e, t, n) { return e.getParents(t, n, e.getRoot()) }, pf = function (t, e, n) { var r = ["inline", "block", "selector", "attributes", "styles", "classes"], a = function (e) { return me(e, function (e, t) { return F(r, function (e) { return e === t }) }) }; return F(t.formatter.get(e), function (e) { var i = a(e); return F(t.formatter.get(n), function (e) { var t, n, r, o = a(e); return t = i, n = o, void 0 === r && (r = l), u(r).eq(t, n) }) }) }, gf = function (e) { return ve(e, "block") }, hf = function (e) { return ve(e, "selector") }, vf = function (e) { return ve(e, "inline") }, yf = Jl, bf = mf, Cf = uf, wf = of , xf = function (e, t) { for (var n = t; n;) { if (An(n) && e.getContentEditable(n)) return "false" === e.getContentEditable(n) ? n : t; n = n.parentNode } return t }, Sf = function (e, t, n, r) { for (var o = t.data, i = n; e ? 0 <= i : i < o.length; e ? i-- : i++) if (r(o.charAt(i))) return e ? i + 1 : i; return -1 }, Nf = function (e, t, n) { return Sf(e, t, n, function (e) { return Ql(e) || Zl(e) }) }, Ef = function (e, t, n) { return Sf(e, t, n, ef) }, kf = function (i, e, t, n, a, r) { var u, s = i.getParent(t, i.isBlock) || e, o = function (e, t, n) { var r = fs(i), o = a ? r.backwards : r.forwards; return U.from(o(e, t, function (e, t) { return yf(e.parentNode) ? -1 : n(a, u = e, t) }, s)) }; return o(t, n, Nf).bind(function (e) { return r ? o(e.container, e.offset + (a ? -1 : 0), Ef) : U.some(e) }).orThunk(function () { return u ? U.some({ container: u, offset: a ? 0 : u.length }) : U.none() }) }, _f = function (e, t, n, r, o) { In(r) && 0 === r.nodeValue.length && r[o] && (r = r[o]); for (var i = bf(e, r), a = 0; a < i.length; a++) for (var u = 0; u < t.length; u++) { var s = t[u]; if (!("collapsed" in s && s.collapsed !== n.collapsed) && e.is(i[a], s.selector)) return i[a] } return r }, Af = function (t, e, n, r) { var o, i, a = t.dom, u = a.getRoot(); if (e[0].wrapper || (i = a.getParent(n, e[0].block, u)), i || (o = a.getParent(n, "LI,TD,TH"), i = a.getParent(In(n) ? n.parentNode : n, function (e) { return e !== u && wf(t, e) }, o)), i && e[0].wrapper && (i = bf(a, i, "ul,ol").reverse()[0] || i), !i) for (i = n; i[r] && !a.isBlock(i[r]) && (i = i[r], !cf(i, "br"));); return i || n }, Rf = function (e, t, n, r) { var o = n.parentNode; return !D(n[r]) && (!(o !== t && !$(o) && !e.isBlock(o)) || Rf(e, t, o, r)) }, Tf = function (e, t, n, r, o) { var i, a, u = n, s = o ? "previousSibling" : "nextSibling", c = e.getRoot(); if (In(n) && !Cf(n) && (o ? 0 < r : r < n.data.length)) return n; for (;;) { if (!t[0].block_expand && e.isBlock(u)) return u; for (i = u[s]; i; i = i[s]) { var l = In(i) && !Rf(e, c, i, s); if (!yf(i) && (!zn(a = i) || !a.getAttribute("data-mce-bogus") || a.nextSibling) && !Cf(i, l)) return u } if (u === c || u.parentNode === c) { n = u; break } u = u.parentNode } return n }, Df = function (e) { return yf(e.parentNode) || yf(e) }, Of = function (e, t, n, r) { void 0 === r && (r = !1); var o = t.startContainer, i = t.startOffset, a = t.endContainer, u = t.endOffset, s = e.dom; return An(o) && o.hasChildNodes() && (o = ws(o, i), In(o) && (i = 0)), An(a) && a.hasChildNodes() && (a = ws(a, t.collapsed ? u : u - 1), In(a) && (u = a.nodeValue.length)), o = xf(s, o), a = xf(s, a), Df(o) && (o = yf(o) ? o : o.parentNode, o = t.collapsed ? o.previousSibling || o : o.nextSibling || o, In(o) && (i = t.collapsed ? o.length : 0)), Df(a) && (a = yf(a) ? a : a.parentNode, a = t.collapsed ? a.nextSibling || a : a.previousSibling || a, In(a) && (u = t.collapsed ? 0 : a.length)), t.collapsed && (kf(s, e.getBody(), o, i, !0, r).each(function (e) { var t = e.container, n = e.offset; o = t, i = n }), kf(s, e.getBody(), a, u, !1, r).each(function (e) { var t = e.container, n = e.offset; a = t, u = n })), (n[0].inline || n[0].block_expand) && (n[0].inline && In(o) && 0 !== i || (o = Tf(s, n, o, i, !0)), n[0].inline && In(a) && u !== a.nodeValue.length || (a = Tf(s, n, a, u, !1))), n[0].selector && !1 !== n[0].expand && !n[0].inline && (o = _f(s, n, t, o, "previousSibling"), a = _f(s, n, t, a, "nextSibling")), (n[0].block || n[0].selector) && (o = Af(e, n, o, "previousSibling"), a = Af(e, n, a, "nextSibling"), n[0].block && (s.isBlock(o) || (o = Tf(s, n, o, i, !0)), s.isBlock(a) || (a = Tf(s, n, a, u, !1)))), An(o) && (i = s.nodeIndex(o), o = o.parentNode), An(a) && (u = s.nodeIndex(a) + 1, a = a.parentNode), { startContainer: o, startOffset: i, endContainer: a, endOffset: u } }, Bf = function (e, t) { var n = e.childNodes; return t >= n.length ? t = n.length - 1 : t < 0 && (t = 0), n[t] || e }, Pf = function (e, t, u) { var n = t.startContainer, r = t.startOffset, o = t.endContainer, i = t.endOffset, s = function (e) { var t = e[0]; return 3 === t.nodeType && t === n && r >= t.nodeValue.length && e.splice(0, 1), t = e[e.length - 1], 0 === i && 0 < e.length && t === o && 3 === t.nodeType && e.splice(e.length - 1, 1), e }, c = function (e, t, n) { for (var r = []; e && e !== n; e = e[t]) r.push(e); return r }, a = function (e, t) { do { if (e.parentNode === t) return e; e = e.parentNode } while (e) }, l = function (e, t, n) { for (var r = n ? "nextSibling" : "previousSibling", o = e, i = o.parentNode; o && o !== t; o = i) { i = o.parentNode; var a = c(o === e ? o : o[r], r); a.length && (n || a.reverse(), u(s(a))) } }; if (1 === n.nodeType && n.hasChildNodes() && (n = Bf(n, r)), 1 === o.nodeType && o.hasChildNodes() && (o = Bf(o, i - 1)), n === o) return u(s([n])); for (var f = e.findCommonAncestor(n, o), d = n; d; d = d.parentNode) { if (d === o) return l(n, f, !0); if (d === f) break } for (d = o; d; d = d.parentNode) { if (d === n) return l(o, f); if (d === f) break } var m = a(n, f) || n, p = a(o, f) || o; l(n, m, !0); var g = c(m === n ? m : m.nextSibling, "nextSibling", p === o ? p.nextSibling : p); g.length && u(s(g)), l(o, p) }, Lf = function (e) { var t = []; if (e) for (var n = 0; n < e.rangeCount; n++) t.push(e.getRangeAt(n)); return t }, If = function (e) { return H(J(e, function (e) { var t = Cs(e); return t ? [At.fromDom(t)] : [] }), uo) }, Mf = function (e, t) { var n = Gu(t, "td[data-mce-selected],th[data-mce-selected]"); return 0 < n.length ? n : If(e) }, Ff = function (e) { return Mf(Lf(e.selection.getSel()), At.fromDom(e.getBody())) }, Uf = function (t) { return Qt(t).fold(E([t]), function (e) { return [t].concat(Uf(e)) }) }, zf = function (t) { return Zt(t).fold(E([t]), function (e) { return "br" === Lt(e) ? Wt(e).map(function (e) { return [t].concat(zf(e)) }).getOr([]) : [t].concat(zf(e)) }) }, jf = function (o, e) { return ds((a = (i = e).startContainer, u = i.startOffset, In(a) ? 0 === u ? U.some(At.fromDom(a)) : U.none() : U.from(a.childNodes[u]).map(At.fromDom)), (n = (t = e).endContainer, r = t.endOffset, In(n) ? r === n.data.length ? U.some(At.fromDom(n)) : U.none() : U.from(n.childNodes[r - 1]).map(At.fromDom)), function (e, t) { var n = Y(Uf(o), N(Ot, e)), r = Y(zf(o), N(Ot, t)); return n.isSome() && r.isSome() }).getOr(!1); var t, n, r, i, a, u }, Hf = function (e, t, n, r) { var o = n, i = new Xr(n, o), a = me(e.schema.getMoveCaretBeforeOnEnterElements(), function (e, t) { return !M(["td", "th", "table"], t.toLowerCase()) }); do { if (In(n) && 0 !== kt.trim(n.nodeValue).length) return void(r ? t.setStart(n, 0) : t.setEnd(n, n.nodeValue.length)); if (a[n.nodeName]) return void(r ? t.setStartBefore(n) : "BR" === n.nodeName ? t.setEndBefore(n) : t.setEndAfter(n)) } while (n = r ? i.next() : i.prev()); "BODY" === o.nodeName && (r ? t.setStart(o, 0) : t.setEnd(o, o.childNodes.length)) }, Vf = function (e) { var t = e.selection.getSel(); return t && 0 < t.rangeCount }, qf = function (r, o) { var e = Ff(r); 0 < e.length ? W(e, function (e) { var t = e.dom, n = r.dom.createRng(); n.setStartBefore(t), n.setEndAfter(t), o(n, !0) }) : o(r.selection.getRng(), !1) }, $f = function (e, t, n) { var r = fc(e, t); n(r), e.moveToBookmark(r) }; var Wf, Kf, Xf, Yf = (Wf = Ut, Kf = "text", { get: function (e) { if (!Wf(e)) throw new Error("Can only get " + Kf + " value of a " + Kf + " node"); return Xf(e).getOr("") }, getOption: Xf = function (e) { return Wf(e) ? U.from(e.dom.nodeValue) : U.none() }, set: function (e, t) { if (!Wf(e)) throw new Error("Can only set raw " + Kf + " value of a " + Kf + " node"); e.dom.nodeValue = t } }), Gf = function (e) { return Yf.get(e) }, Jf = function (r, o, i, a) { return $t(o).fold(function () { return "skipping" }, function (e) { return "br" === a || Ut(n = o) && Gf(n) === fo ? "valid" : Ft(t = o) && Xu(t, Ju()) ? "existing" : jl(o.dom) ? "caret" : af(r, i, a) && af(r, Lt(e), i) ? "valid" : "invalid-child"; var t, n }) }, Qf = function (e, t, n, r) { var o = t.uid, i = void 0 === o ? is("mce-annotation") : o, a = function (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) for (var o = 0, r = Object.getOwnPropertySymbols(e); o < r.length; o++) t.indexOf(r[o]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[o]) && (n[r[o]] = e[r[o]]); return n }(t, ["uid"]), u = At.fromTag("span", e); Wu(u, Ju()), Xn(u, "" + Zu(), i), Xn(u, "" + Qu(), n); var s, c = r(i, a), l = c.attributes, f = void 0 === l ? {} : l, d = c.classes, m = void 0 === d ? [] : d; return Yn(u, f), s = u, W(m, function (e) { Wu(s, e) }), u }, Zf = function (i, e, t, n, r) { var a = [], u = Qf(i.getDoc(), r, t, n), s = Ou(U.none()), c = function () { s.set(U.none()) }, l = function (e) { W(e, o) }, o = function (e) { var t, n; switch (Jf(i, e, "span", Lt(e))) { case "invalid-child": c(); var r = Gt(e); l(r), c(); break; case "valid": var o = s.get().getOrThunk(function () { var e = ss(u); return a.push(e), s.set(U.some(e)), e }); sn(t = e, n = o), fn(n, t) } }; return Pf(i.dom, e, function (e) { var t; c(), t = z(e, At.fromDom), l(t) }), a }, ed = function (u, s, c, l) { u.undoManager.transact(function () { var e, t, n, r, o = u.selection, i = o.getRng(), a = 0 < Ff(u).length; i.collapsed && !a && (n = Of(e = u, t = i, [{ inline: !0 }]), t.setStart(n.startContainer, n.startOffset), t.setEnd(n.endContainer, n.endOffset), e.selection.setRng(t)), o.getRng().collapsed && !a ? (r = Qf(u.getDoc(), l, s, c.decorate), as(r, lo), o.getRng().insertNode(r.dom), o.select(r.dom)) : $f(o, !1, function () { qf(u, function (e) { Zf(u, e, s, c.decorate, l) }) }) }) }, td = function (u) { var n, r = (n = {}, { register: function (e, t) { n[e] = { name: e, settings: t } }, lookup: function (e) { return n.hasOwnProperty(e) ? U.from(n[e]).map(function (e) { return e.settings }) : U.none() } }); rs(u, r); var o = ns(u); return { register: function (e, t) { r.register(e, t) }, annotate: function (t, n) { r.lookup(t).each(function (e) { ed(u, t, e, n) }) }, annotationChanged: function (e, t) { o.addListener(e, t) }, remove: function (e) { es(u, U.some(e)).each(function (e) { var t = e.elements; W(t, gn) }) }, getAll: function (e) { var t, n, r, o, i, a = (t = u, n = e, r = At.fromDom(t.getBody()), o = Gu(r, "[" + Qu() + '="' + n + '"]'), i = {}, W(o, function (e) { var t = Gn(e, Zu()), n = i.hasOwnProperty(t) ? i[t] : []; i[t] = n.concat([e]) }), i); return se(a, function (e) { return z(e, function (e) { return e.dom }) }) } } }; function nd(e) { return { getBookmark: N(Yl, e), moveToBookmark: N(Gl, e) } }(nd = nd || {}).isBookmarkNode = Jl; var rd, od = nd, id = function (e, t) { for (; t && t !== e;) { if (Hn(t) || Vn(t)) return t; t = t.parentNode } return null }, ad = function (t, n, e) { if (e.collapsed) return !1; if (wt.browser.isIE() && e.startOffset === e.endOffset - 1 && e.startContainer === e.endContainer) { var r = e.startContainer.childNodes[e.startOffset]; if (An(r)) return F(r.getClientRects(), function (e) { return bs(e, t, n) }) } return F(e.getClientRects(), function (e) { return bs(e, t, n) }) }, ud = { BACKSPACE: 8, DELETE: 46, DOWN: 40, ENTER: 13, LEFT: 37, RIGHT: 39, SPACEBAR: 32, TAB: 9, UP: 38, END: 35, HOME: 36, modifierPressed: function (e) { return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e) }, metaKeyPressed: function (e) { return wt.mac ? e.metaKey : e.ctrlKey && !e.altKey } }, sd = Vn, cd = function (r, l) { var f, d, m, p, g, h, v, y, b, C, w, x, S, N, E = l.dom, s = kt.each, c = l.getDoc(), k = document, _ = Math.abs, A = Math.round, R = l.getBody(), T = { nw: [0, 0, -1, -1], ne: [1, 0, 1, -1], se: [1, 1, 1, 1], sw: [0, 1, -1, 1] }, D = function (e) { return e && ("IMG" === e.nodeName || l.dom.is(e, "figure.image")) }, n = function (e) { var t = e.target; ! function (e, t) { if ("longpress" !== e.type && 0 !== e.type.indexOf("touch")) return D(e.target) && !ad(e.clientX, e.clientY, t); var n = e.touches[0]; return D(e.target) && !ad(n.clientX, n.clientY, t) }(e, l.selection.getRng()) || e.isDefaultPrevented() || l.selection.select(t) }, O = function (e) { return l.dom.is(e, "figure.image") ? e.querySelector("img") : e }, B = function (e) { var t = Nc(l); return !!t && ("false" !== e.getAttribute("data-mce-resize") && (e !== l.getBody() && Tt(At.fromDom(e), t))) }, P = function (e, t, n) { E.setStyles(O(e), { width: t, height: n }) }, L = function (e) { var t, n, r, o, i, a, u, s = e.screenX - g, c = e.screenY - h; w = s * p[2] + v, x = c * p[3] + y, w = w < 5 ? 5 : w, x = x < 5 ? 5 : x, (D(f) && !1 !== l.getParam("resize_img_proportional", !0, "boolean") ? !ud.modifierPressed(e) : ud.modifierPressed(e)) && (_(s) > _(c) ? (x = A(w * b), w = A(x / b)) : (w = A(x / b), x = A(w * b))), P(d, w, x), t = 0 < (t = p.startPos.x + s) ? t : 0, n = 0 < (n = p.startPos.y + c) ? n : 0, E.setStyles(m, { left: t, top: n, display: "block" }), m.innerHTML = w + " × " + x, p[2] < 0 && d.clientWidth <= w && E.setStyle(d, "left", void 0 + (v - w)), p[3] < 0 && d.clientHeight <= x && E.setStyle(d, "top", void 0 + (y - x)), (s = R.scrollWidth - S) + (c = R.scrollHeight - N) !== 0 && E.setStyles(m, { left: t - s, top: n - c }), C || (r = l, o = f, i = v, a = y, u = "corner-" + p.name, r.fire("ObjectResizeStart", { target: o, width: i, height: a, origin: u }), C = !0) }, I = function () { var e = C; C = !1; var t, n, r, o, i, a = function (e, t) { t && (f.style[e] || !l.schema.isValid(f.nodeName.toLowerCase(), e) ? E.setStyle(O(f), e, t) : E.setAttrib(O(f), e, "" + t)) }; e && (a("width", w), a("height", x)), E.unbind(c, "mousemove", L), E.unbind(c, "mouseup", I), k !== c && (E.unbind(k, "mousemove", L), E.unbind(k, "mouseup", I)), E.remove(d), E.remove(m), u(f), e && (t = l, n = f, r = w, o = x, i = "corner-" + p.name, t.fire("ObjectResized", { target: n, width: r, height: o, origin: i }), E.setAttrib(f, "style", E.getAttrib(f, "style"))), l.nodeChanged() }, u = function (e) { M(), F(); var t = E.getPos(e, R), o = t.x, i = t.y, n = e.getBoundingClientRect(), a = n.width || n.right - n.left, u = n.height || n.bottom - n.top; f !== e && (f = e, w = x = 0); var r = l.fire("ObjectSelected", { target: e }); B(e) && !r.isDefaultPrevented() ? s(T, function (n, r) { var e = E.get("mceResizeHandle" + r); e && E.remove(e), e = E.add(R, "div", { id: "mceResizeHandle" + r, "data-mce-bogus": "all", "class": "mce-resizehandle", unselectable: !0, style: "cursor:" + r + "-resize; margin:0; padding:0" }), 11 === wt.ie && (e.contentEditable = !1), E.bind(e, "mousedown", function (e) { var t; e.stopImmediatePropagation(), e.preventDefault(), g = (t = e).screenX, h = t.screenY, v = O(f).clientWidth, y = O(f).clientHeight, b = y / v, (p = n).name = r, p.startPos = { x: a * n[0] + o, y: u * n[1] + i }, S = R.scrollWidth, N = R.scrollHeight, d = f.cloneNode(!0), E.addClass(d, "mce-clonedresizable"), E.setAttrib(d, "data-mce-bogus", "all"), d.contentEditable = !1, d.unSelectabe = !0, E.setStyles(d, { left: o, top: i, margin: 0 }), P(d, a, u), d.removeAttribute("data-mce-selected"), R.appendChild(d), E.bind(c, "mousemove", L), E.bind(c, "mouseup", I), k !== c && (E.bind(k, "mousemove", L), E.bind(k, "mouseup", I)), m = E.add(R, "div", { "class": "mce-resize-helper", "data-mce-bogus": "all" }, v + " × " + y) }), n.elm = e, E.setStyles(e, { left: a * n[0] + o - e.offsetWidth / 2, top: u * n[1] + i - e.offsetHeight / 2 }) }) : M(), f.setAttribute("data-mce-selected", "1") }, M = function () { F(), f && f.removeAttribute("data-mce-selected"), ue(T, function (e, t) { var n = E.get("mceResizeHandle" + t); n && (E.unbind(n), E.remove(n)) }) }, o = function (e) { var t, n = function (e, t) { if (e) do { if (e === t) return !0 } while (e = e.parentNode) }; C || l.removed || (s(E.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 = E.$(t).closest("table,img,figure.image,hr")[0], R) && (a(), n(r.getStart(!0), t) && n(r.getEnd(!0), t)) ? u(t) : M()) }, i = function (e) { return sd(id(l.getBody(), e)) }, F = function () { ue(T, function (e) { e.elm && (E.unbind(e.elm), delete e.elm) }) }, a = function () { try { l.getDoc().execCommand("enableObjectResizing", !1, "false") } catch (e) {} }; l.on("init", function () { var e; a(), (wt.browser.isIE() || wt.browser.isEdge()) && (l.on("mousedown click", function (e) { var t = e.target, n = t.nodeName; C || !/^(TABLE|IMG|HR)$/.test(n) || i(t) || (2 !== e.button && l.selection.select(t, "TABLE" === n), "mousedown" === e.type && l.nodeChanged()) }), e = function (e) { var t = function (e) { qr.setEditorTimeout(l, function () { return l.selection.select(e) }) }; if (i(e.target) || $n(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)) }, E.bind(R, "mscontrolselect", e), l.on("remove", function () { return E.unbind(R, "mscontrolselect", e) })); var t = qr.throttle(function (e) { l.composing || o(e) }); l.on("nodechange ResizeEditor ResizeWindow ResizeContent drop FullscreenStateChanged", t), l.on("keyup compositionend", function (e) { f && "TABLE" === f.nodeName && t(e) }), l.on("hide blur", M), l.on("contextmenu longpress", n, !0) }), l.on("remove", F); return { isResizable: B, showResizeRect: u, hideResizeRect: M, updateResizeRect: o, destroy: function () { f = d = null } } }, ld = function (e) { return Hn(e) || Vn(e) }, fd = 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 = t.elementFromPoint(e, n), i = t.body.createTextRange(); if (o && "HTML" !== o.tagName || (o = t.body), i.moveToElementText(o), 0 < (r = (r = kt.toArray(i.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 = (r[0].bottom + r[0].top) / 2; try { return i.moveToPoint(e, n), i.collapse(!0), i } catch (a) {} } return null }(e, t, n) } return i = r, a = n.body, u = i && i.parentElement ? i.parentElement() : null, Vn(function (e, t, n) { for (; e && e !== t;) { if (n(e)) return e; e = e.parentNode } return null }(u, a, ld)) ? null : i } return r }, dd = function (e, t) { return e && t && e.startContainer === t.startContainer && e.startOffset === t.startOffset && e.endContainer === t.endContainer && e.endOffset === t.endOffset }, md = 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) }, pd = function (e) { return e && "TABLE" === e.nodeName }, gd = function (e, t, n) { for (var r = new Xr(t, e.getParent(t.parentNode, e.isBlock) || e.getRoot()); t = r[n ? "prev" : "next"]();) if (zn(t)) return !0 }, hd = function (e, t, n, r, o) { var i, a, u = e.getRoot(), s = e.schema.getNonEmptyElements(), c = e.getParent(o.parentNode, e.isBlock) || u; if (r && zn(o) && t && e.isEmpty(c)) return U.some(Hs(o.parentNode, e.nodeIndex(o))); for (var l, f, d = new Xr(o, c); a = d[r ? "prev" : "next"]();) { if ("false" === e.getContentEditableParent(a) || (f = u, bo(l = a) && !1 === md(l, f, jl))) return U.none(); if (In(a) && 0 < a.nodeValue.length) return !1 === function (e, t, n) { return md(e, t, function (e) { return e.nodeName === n }) }(a, u, "A") ? U.some(Hs(a, r ? a.nodeValue.length : 0)) : U.none(); if (e.isBlock(a) || s[a.nodeName.toLowerCase()]) return U.none(); i = a } return n && i ? U.some(Hs(i, 0)) : U.none() }, vd = function (e, t, n, r) { var o, i, a, u, s = e.getRoot(), c = !1, l = r[(n ? "start" : "end") + "Container"], f = r[(n ? "start" : "end") + "Offset"], d = An(l) && f === l.childNodes.length, m = e.schema.getNonEmptyElements(), p = n; if (bo(l)) return U.none(); if (An(l) && f > l.childNodes.length - 1 && (p = !1), Fn(l) && (l = s, f = 0), l === s) { if (p && (o = l.childNodes[0 < f ? f - 1 : 0])) { if (bo(o)) return U.none(); if (m[o.nodeName] || pd(o)) return U.none() } if (l.hasChildNodes()) { if (f = Math.min(!p && 0 < f ? f - 1 : f, l.childNodes.length - 1), l = l.childNodes[f], f = In(l) && d ? l.data.length : 0, !t && l === s.lastChild && pd(l)) return U.none(); if (function (e, t) { for (; t && t !== e;) { if (Vn(t)) return !0; t = t.parentNode } return !1 }(s, l) || bo(l)) return U.none(); if (l.hasChildNodes() && !1 === pd(l)) { var g = new Xr(o = l, s); do { if (Vn(o) || bo(o)) { c = !1; break } if (In(o) && 0 < o.nodeValue.length) { f = p ? 0 : o.nodeValue.length, l = o, c = !0; break } if (m[o.nodeName.toLowerCase()] && (!(i = o) || !/^(TD|TH|CAPTION)$/.test(i.nodeName))) { f = e.nodeIndex(o), l = o.parentNode, p || f++, c = !0; break } } while (o = p ? g.next() : g.prev()) } } } return t && (In(l) && 0 === f && hd(e, d, t, !0, l).each(function (e) { l = e.container(), f = e.offset(), c = !0 }), An(l) && (!(o = (o = l.childNodes[f]) || l.childNodes[f - 1]) || !zn(o) || (u = "A", (a = o).previousSibling && a.previousSibling.nodeName === u) || gd(e, o, !1) || gd(e, o, !0) || hd(e, d, t, !0, o).each(function (e) { l = e.container(), f = e.offset(), c = !0 }))), p && !t && In(l) && f === l.nodeValue.length && hd(e, d, t, !1, l).each(function (e) { l = e.container(), f = e.offset(), c = !0 }), c ? U.some(Hs(l, f)) : U.none() }, yd = function (e, t) { var n = t.collapsed, r = t.cloneRange(), o = Hs.fromRangeStart(t); return vd(e, n, !0, r).each(function (e) { n && Hs.isAbove(o, e) || r.setStart(e.container(), e.offset()) }), n || vd(e, n, !1, r).each(function (e) { r.setEnd(e.container(), e.offset()) }), n && r.collapse(!0), dd(t, r) ? U.none() : U.some(r) }, bd = function (e, t) { return e.splitText(t) }, Cd = function (e) { var t = e.startContainer, n = e.startOffset, r = e.endContainer, o = e.endOffset; return t === r && In(t) ? 0 < n && n < t.nodeValue.length && (t = (r = bd(t, n)).previousSibling, n < o ? (t = r = bd(r, o -= n).previousSibling, o = r.nodeValue.length, n = 0) : o = 0) : (In(t) && 0 < n && n < t.nodeValue.length && (t = bd(t, n), n = 0), In(r) && 0 < o && o < r.nodeValue.length && (o = (r = bd(r, o).previousSibling).nodeValue.length)), { startContainer: t, startOffset: n, endContainer: r, endOffset: o } }; function wd(n) { return { walk: function (e, t) { return Pf(n, e, t) }, split: Cd, normalize: function (t) { return yd(n, t).fold(C, function (e) { return t.setStart(e.startContainer, e.startOffset), t.setEnd(e.endContainer, e.endOffset), !0 }) } } }(rd = wd = wd || {}).compareRanges = dd, rd.getCaretRangeFromPoint = fd, rd.getSelectedNode = Cs, rd.getNode = ws; var xd = wd; var Sd, Nd, Ed, kd, _d, Ad = (Sd = "height", Nd = function (e) { var t = e.dom; return hn(e) ? t.getBoundingClientRect().height : t.offsetHeight }, { set: function (e, t) { if (!O(t) && !t.match(/^[0-9]+$/)) throw new Error(Sd + ".set accepts only positive integer values. Value was " + t); var n = e.dom; Wn(n) && (n.style[Sd] = t + "px") }, get: Ed = function (e) { var t = Nd(e); if (t <= 0 || null === t) { var n = er(e, Sd); return parseFloat(n) || 0 } return t }, getOuter: Ed, aggregate: kd = function (o, e) { return X(e, function (e, t) { var n = er(o, t), r = n === undefined ? 0 : parseInt(n, 10); return isNaN(r) ? e : e + r }, 0) }, max: function (e, t, n) { var r = kd(e, n); return r < t ? t - r : 0 } }), Rd = function (r, e) { return r.view(e).fold(E([]), function (e) { var t = r.owner(e), n = Rd(r, t); return [e].concat(n) }) }, Td = /* */ Object.freeze({ __proto__: null, view: function (e) { var t; return (e.dom === document ? U.none() : U.from(null === (t = e.dom.defaultView) || void 0 === t ? void 0 : t.frameElement)).map(At.fromDom) }, owner: Vt }), Dd = function (e) { var t, n, r, o = At.fromDom(document), i = wn(o), a = (t = e, r = (n = Td).owner(t), Rd(n, r)), u = Cn(e), s = K(a, function (e, t) { var n = Cn(t); return { left: e.left + n.left, top: e.top + n.top } }, { left: 0, top: 0 }); return yn(s.left + u.left + i.left, s.top + u.top + i.top) }, Od = function (e) { return "textarea" === Lt(e) }, Bd = function (e, t) { var n, r = function (e) { var t = e.dom.ownerDocument, n = t.body, r = t.defaultView, o = t.documentElement; if (n === e.dom) return yn(n.offsetLeft, n.offsetTop); var i = bn(null == r ? void 0 : r.pageYOffset, o.scrollTop), a = bn(null == r ? void 0 : r.pageXOffset, o.scrollLeft), u = bn(o.clientTop, n.clientTop), s = bn(o.clientLeft, n.clientLeft); return Cn(e).translate(a - s, i - u) }(e), o = (n = e, Ad.get(n)); return { element: e, bottom: r.top + o, height: o, pos: r, cleanup: t } }, Pd = function (e, t) { var n = function (e, t) { var n = Gt(e); if (0 === n.length || Od(e)) return { element: e, offset: t }; if (t < n.length && !Od(n[t])) return { element: n[t], offset: 0 }; var r = n[n.length - 1]; return Od(r) ? { element: e, offset: t } : "img" === Lt(r) ? { element: r, offset: 1 } : Ut(r) ? { element: r, offset: Gf(r).length } : { element: r, offset: Gt(r).length } }(e, t), r = At.fromHtml('<span data-mce-bogus="all">\ufeff</span>'); return sn(n.element, r), Bd(r, function () { return pn(r) }) }, Ld = function (n, r, o, i) { Ud(n, function (e, t) { return Md(n, r, o, i) }, o) }, Id = function (e, t, n, r, o) { var i, a, u = { elm: r.element.dom, alignToTop: o }; i = u, e.fire("ScrollIntoView", i).isDefaultPrevented() || (n(t, wn(t).top, r, o), a = u, e.fire("AfterScrollIntoView", a)) }, Md = function (e, t, n, r) { var o = At.fromDom(e.getBody()), i = At.fromDom(e.getDoc()); o.dom.offsetWidth; var a = Pd(At.fromDom(n.startContainer), n.startOffset); Id(e, i, t, a, r), a.cleanup() }, Fd = function (e, t, n, r) { var o, i = At.fromDom(e.getDoc()); Id(e, i, n, (o = t, Bd(At.fromDom(o), V)), r) }, Ud = function (e, t, n) { var r = n.startContainer, o = n.startOffset, i = n.endContainer, a = n.endOffset; t(At.fromDom(r), At.fromDom(i)); var u = e.dom.createRng(); u.setStart(r, o), u.setEnd(i, a), e.selection.setRng(n) }, zd = function (e, t, n, r) { var o, i = e.pos; n ? xn(i.left, i.top, r) : (o = i.top - t + e.height, xn(i.left, o, r)) }, jd = function (e, t, n, r, o) { var i = n + t, a = r.pos.top, u = r.bottom, s = n <= u - a; a < t ? zd(r, n, !1 !== o, e) : i < a ? zd(r, n, s ? !1 !== o : !0 === o, e) : i < u && !s && zd(r, n, !0 === o, e) }, Hd = function (e, t, n, r) { var o = e.dom.defaultView.innerHeight; jd(e, t, o, n, r) }, Vd = function (e, t, n, r) { var o = e.dom.defaultView.innerHeight; jd(e, t, o, n, r); var i = Dd(n.element), a = En(window); i.top < a.y ? Sn(n.element, !1 !== r) : i.top > a.bottom && Sn(n.element, !0 === r) }, qd = function (e, t, n) { return Ld(e, Hd, t, n) }, $d = function (e, t, n) { return Fd(e, t, Hd, n) }, Wd = function (e, t, n) { return Ld(e, Vd, t, n) }, Kd = function (e, t, n) { return Fd(e, t, Vd, n) }, Xd = function (e, t, n) { (e.inline ? qd : Wd)(e, t, n) }, Yd = function (e) { var t = rn(e).dom; return e.dom === t.activeElement }, Gd = function (e) { return void 0 === e && (e = At.fromDom(document)), U.from(e.dom.activeElement).map(At.fromDom) }, Jd = function (e, t, n, r) { return { start: e, soffset: t, finish: n, foffset: r } }, Qd = Cr([{ before: ["element"] }, { on: ["element", "offset"] }, { after: ["element"] }]), Zd = (Qd.before, Qd.on, Qd.after, function (e) { return e.fold(o, o, o) }), em = Cr([{ domRange: ["rng"] }, { relative: ["startSitu", "finishSitu"] }, { exact: ["start", "soffset", "finish", "foffset"] }]), tm = { domRange: em.domRange, relative: em.relative, exact: em.exact, exactFromRange: function (e) { return em.exact(e.start, e.soffset, e.finish, e.foffset) }, getWin: function (e) { var t = e.match({ domRange: function (e) { return At.fromDom(e.startContainer) }, relative: function (e, t) { return Zd(e) }, exact: function (e, t, n, r) { return e } }); return qt(t) }, range: Jd }, nm = dt().browser, rm = function (e, t) { var n = Ut(t) ? Gf(t).length : Gt(t).length + 1; return n < e ? n : e < 0 ? 0 : e }, om = function (e) { return tm.range(e.start, rm(e.soffset, e.start), e.finish, rm(e.foffset, e.finish)) }, im = function (e, t) { return !_n(t.dom) && (Pt(e, t) || Ot(e, t)) }, am = function (t) { return function (e) { return im(t, e.start) && im(t, e.finish) } }, um = function (e) { return !0 === e.inline || nm.isIE() }, sm = function (e) { return tm.range(At.fromDom(e.startContainer), e.startOffset, At.fromDom(e.endContainer), e.endOffset) }, cm = function (e) { var t, n, r = qt(e); return t = r.dom, ((n = t.getSelection()) && 0 !== n.rangeCount ? U.from(n.getRangeAt(0)) : U.none()).map(sm).filter(am(e)) }, lm = function (e) { var t = document.createRange(); try { return t.setStart(e.start.dom, e.soffset), t.setEnd(e.finish.dom, e.foffset), U.some(t) } catch (n) { return U.none() } }, fm = function (e) { var t = um(e) ? cm(At.fromDom(e.getBody())) : U.none(); e.bookmark = t.isSome() ? t : e.bookmark }, dm = function (r) { return (r.bookmark ? r.bookmark : U.none()).bind(function (e) { return t = At.fromDom(r.getBody()), n = e, U.from(n).filter(am(t)).map(om); var t, n }).bind(lm) }, mm = { isEditorUIElement: function (e) { var t = e.className.toString(); return -1 !== t.indexOf("tox-") || -1 !== t.indexOf("mce-") } }, pm = function (n, e) { var t, r; dt().browser.isIE() ? (r = n).on("focusout", function () { fm(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 || fm(n) }) }, gm = function (r) { var o = zu(function () { fm(r) }, 0); r.on("init", function () { var e, t, n; r.inline && (e = r, t = o, n = function () { t.throttle() }, Eu.DOM.bind(document, "mouseup", n), e.on("remove", function () { Eu.DOM.unbind(document, "mouseup", n) })), pm(r, o) }), r.on("remove", function () { o.cancel() }) }, hm = Eu.DOM, vm = function (t, e) { var n = t.getParam("custom_ui_selector", "", "string"); return null !== hm.getParent(e, function (e) { return mm.isEditorUIElement(e) || !!n && t.dom.is(e, n) }) }, ym = function (n, e) { var t = e.editor; gm(t), t.on("focusin", function () { var e = n.focusedEditor; e !== this && (e && e.fire("blur", { focusedEditor: this }), n.setActive(this), (n.focusedEditor = this).fire("focus", { blurredEditor: e }), this.focus(!0)) }), t.on("focusout", function () { var t = this; qr.setEditorTimeout(t, function () { var e = n.focusedEditor; vm(t, function (e) { try { var t = rn(At.fromDom(e.getElement())); return Gd(t).fold(function () { return document.body }, function (e) { return e.dom }) } catch (n) { return document.body } }(t)) || e !== t || (t.fire("blur", { focusedEditor: null }), n.focusedEditor = null) }) }), _d || (_d = function (e) { var t = n.activeEditor; t && function (e) { if (nn() && D(e.target)) { var t = At.fromDom(e.target); if (Ft(t) && un(t) && e.composed && e.composedPath) { var n = e.composedPath(); if (n) return ne(n) } } return U.from(e.target) }(e).each(function (e) { e.ownerDocument === document && (e === document.body || vm(t, e) || n.focusedEditor !== t || (t.fire("blur", { focusedEditor: null }), n.focusedEditor = null)) }) }, hm.bind(document, "focusin", _d)) }, bm = function (e, t) { e.focusedEditor === t.editor && (e.focusedEditor = null), e.activeEditor || (hm.unbind(document, "focusin", _d), _d = null) }, Cm = function (t, e) { return ((n = e).collapsed ? U.from(ws(n.startContainer, n.startOffset)).map(At.fromDom) : U.none()).bind(function (e) { return ao(e) ? U.some(e) : !1 === Pt(t, e) ? U.some(t) : U.none() }); var n }, wm = function (t, e) { Cm(At.fromDom(t.getBody()), e).bind(function (e) { return Fl(e.dom) }).fold(function () { t.selection.normalize() }, function (e) { return t.selection.setRng(e.toRange()) }) }, xm = function (e) { if (e.setActive) try { e.setActive() } catch (t) { e.focus() } else e.focus() }, Sm = function (e) { return Yd(e) || Gd(rn(t = e)).filter(function (e) { return t.dom.contains(e.dom) }).isSome(); var t }, Nm = function (r) { return Gd().filter(function (e) { return t = e.dom, !((n = t.classList) !== undefined && (n.contains("tox-edit-area") || n.contains("tox-edit-area__iframe") || n.contains("mce-content-body"))) && vm(r, e.dom); var t, n }).isSome() }, Em = function (e) { return e.inline ? (n = e.getBody()) && Sm(At.fromDom(n)) : (t = e).iframeElement && Yd(At.fromDom(t.iframeElement)); var t, n }, km = function (t) { var e = t.selection, n = t.getBody(), r = e.getRng(); t.quirks.refreshContentEditable(), t.bookmark !== undefined && !1 === Em(t) && dm(t).each(function (e) { t.selection.setRng(e), r = e }); 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 xm(a), wm(t, r), void _m(t); t.inline || (wt.opera || xm(n), t.getWin().focus()), (wt.gecko || t.inline) && (xm(n), wm(t, r)), _m(t) }, _m = function (e) { return e.editorManager.setActive(e) }, Am = function (e, t, n, r, o) { var i = n ? t.startContainer : t.endContainer, a = n ? t.startOffset : t.endOffset; return U.from(i).map(At.fromDom).map(function (e) { return r && t.collapsed ? e : Jt(e, o(e, a)).getOr(e) }).bind(function (e) { return Ft(e) ? U.some(e) : $t(e).filter(Ft) }).map(function (e) { return e.dom }).getOr(e) }, Rm = function (e, t, n) { return Am(e, t, !0, n, function (e, t) { return Math.min(e.dom.childNodes.length, t) }) }, Tm = function (e, t, n) { return Am(e, t, !1, n, function (e, t) { return 0 < t ? t - 1 : t }) }, Dm = function (e, t) { for (var n = e; e && In(e) && 0 === e.length;) e = t ? e.nextSibling : e.previousSibling; return e || n }, Om = function (n, e) { return z(e, function (e) { var t = n.fire("GetSelectionRange", { range: e }); return t.range !== e ? t.range : e }) }, Bm = function (e) { return T(e) ? e : C }, Pm = function (e, t, n) { var r = t(e), o = Bm(n); return r.orThunk(function () { return o(e) ? U.none() : function (e, t, n) { for (var r = e.dom, o = Bm(n); r.parentNode;) { r = r.parentNode; var i = At.fromDom(r), a = t(i); if (a.isSome()) return a; if (o(i)) break } return U.none() }(e, t, o) }) }, Lm = cf, Im = 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 }, Mm = function (t, e, n, r) { var o = t.dom.getRoot(); return e !== o && (e = t.dom.getParent(e, function (e) { return !!Im(t, e, n) || (e.parentNode === o || !!zm(t, e, n, r, !0)) }), zm(t, e, n, r)) }, Fm = function (e, t, n) { return !!Lm(t, n.inline) || (!!Lm(t, n.block) || (n.selector ? 1 === t.nodeType && e.is(t, n.selector) : void 0)) }, Um = 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) : ff(e, t, a), o && !u && !n.exact) return; if ((!o || n.exact) && !Lm(u, lf(e, sf(c[a], i), a))) return } } else for (s = 0; s < c.length; s++) if ("attributes" === r ? e.getAttrib(t, c[s]) : ff(e, t, c[s])) return n; return n }, zm = 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], Fm(e.dom, t, i) && Um(l, t, i, "attributes", o, r) && Um(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 } }, jm = function (e, t, n, r) { if (r) return Mm(e, r, t, n); if (r = e.selection.getNode(), Mm(e, r, t, n)) return !0; var o = e.selection.getStart(); return !(o === r || !Mm(e, o, t, n)) }, Hm = function (r, t) { var n = function (e) { return Ot(e, At.fromDom(r.getBody())) }; return U.from(r.selection.getStart(!0)).bind(function (e) { return Pm(At.fromDom(e), function (n) { return function (e, t) { for (var n = 0; n < e.length; n++) { var r = t(e[n], n); if (r.isSome()) return r } return U.none() }(t, function (e) { return t = e, zm(r, n.dom, t) ? U.some(t) : U.none(); var t }) }, n) }).getOrNull() }, Vm = function (o, i, e) { return X(e, function (e, t) { var n, r = (n = t, F(o.formatter.get(n), function (t) { var n = function (e) { return 1 < e.length && "%" === e.charAt(0) }; return F(["styles", "attributes"], function (e) { return ge(t, e).exists(function (e) { var t = S(e) ? e : pe(e); return F(t, n) }) }) })); return o.formatter.matchNode(i, t, {}, r) ? e.concat([t]) : e }, []) }, qm = { "#text": 3, "#comment": 8, "#cdata": 4, "#pi": 7, "#doctype": 10, "#document-fragment": 11 }, $m = function (e, t, n) { var r = n ? "lastChild" : "firstChild", o = n ? "prev" : "next"; if (e[r]) return e[r]; if (e !== t) { var i = e[o]; if (i) return i; for (var a = e.parent; a && a !== t; a = a.parent) if (i = a[o]) return i } }, Wm = function (e) { var t = "a" === e.name && !e.attr("href") && e.attr("id"); return e.attr("name") || e.attr("id") && !e.firstChild || e.attr("data-mce-bookmark") || t }, Km = (Xm.create = function (e, t) { var n = new Xm(e, qm[e] || 1); return t && ue(t, function (e, t) { n.attr(t, e) }), n }, Xm.prototype.replace = function (e) { return e.parent && e.remove(), this.insert(e, this), this.remove(), this }, Xm.prototype.attr = function (e, t) { var n, r = this; if ("string" != typeof e) return e !== undefined && null !== e && ue(e, function (e, t) { r.attr(t, e) }), r; if (n = r.attributes) { if (t === undefined) return n.map[e]; if (null === t) { if (e in n.map) { delete n.map[e]; for (var o = n.length; o--;) if (n[o].name === e) return n.splice(o, 1), r } return r } if (e in n.map) { for (o = n.length; o--;) if (n[o].name === e) { n[o].value = t; break } } else n.push({ name: e, value: t }); return n.map[e] = t, r } }, Xm.prototype.clone = function () { var e, t = new Xm(this.name, this.type); if (e = this.attributes) { var n = []; n.map = {}; for (var r = 0, o = e.length; r < o; r++) { var i = e[r]; "id" !== i.name && (n[n.length] = { name: i.name, value: i.value }, n.map[i.name] = i.value) } t.attributes = n } return t.value = this.value, t.shortEnded = this.shortEnded, t }, Xm.prototype.wrap = function (e) { return this.parent.insert(e, this), e.append(this), this }, Xm.prototype.unwrap = function () { for (var e = this.firstChild; e;) { var t = e.next; this.insert(e, this, !0), e = t } this.remove() }, Xm.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 }, Xm.prototype.append = function (e) { e.parent && e.remove(); var t = this.lastChild; return t ? ((t.next = e).prev = t, this.lastChild = e) : this.lastChild = this.firstChild = e, e.parent = this, e }, Xm.prototype.insert = function (e, t, n) { e.parent && e.remove(); var r = t.parent || this; return 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 }, Xm.prototype.getAll = function (e) { for (var t = [], n = this.firstChild; n; n = $m(n, this)) n.name === e && t.push(n); return t }, Xm.prototype.empty = function () { if (this.firstChild) { for (var e = [], t = this.firstChild; t; t = $m(t, this)) e.push(t); for (var n = e.length; n--;)(t = e[n]).parent = t.firstChild = t.lastChild = t.next = t.prev = null } return this.firstChild = this.lastChild = null, this }, Xm.prototype.isEmpty = function (e, t, n) { void 0 === t && (t = {}); var r = this.firstChild; if (Wm(this)) return !1; if (r) do { if (1 === r.type) { if (r.attr("data-mce-bogus")) continue; if (e[r.name]) return !1; if (Wm(r)) return !1 } if (8 === r.type) return !1; if (3 === r.type && ! function (e) { if (Uo(e.value)) { var t = e.parent; return !t || "span" === t.name && !t.attr("style") || !/^[ ]+$/.test(e.value) } }(r)) return !1; if (3 === r.type && r.parent && t[r.parent.name] && Uo(r.value)) return !1; if (n && n(r)) return !1 } while (r = $m(r, this)); return !0 }, Xm.prototype.walk = function (e) { return $m(this, null, e) }, Xm); function Xm(e, t) { this.name = e, 1 === (this.type = t) && (this.attributes = [], this.attributes.map = {}) } var Ym = kt.makeMap, Gm = function (e) { var u = [], s = (e = e || {}).indent, c = Ym(e.indent_before || ""), l = Ym(e.indent_after || ""), f = ci.getEncodeFunc(e.entity_encoding || "raw", e.entities), d = "html" === e.element_format; return { start: function (e, t, n) { var r, o, i, a; if (s && c[e] && 0 < u.length && 0 < (a = u[u.length - 1]).length && "\n" !== a && u.push("\n"), u.push("<", e), t) for (r = 0, o = t.length; r < o; r++) i = t[r], u.push(" ", i.name, '="', f(i.value, !0), '"'); u[u.length] = !n || d ? ">" : " />", n && s && l[e] && 0 < u.length && 0 < (a = u[u.length - 1]).length && "\n" !== a && u.push("\n") }, end: function (e) { var t; u.push("</", e, ">"), s && l[e] && 0 < u.length && 0 < (t = u[u.length - 1]).length && "\n" !== t && u.push("\n") }, text: function (e, t) { 0 < e.length && (u[u.length] = t ? e : f(e)) }, cdata: function (e) { u.push("<![CDATA[", e, "]]>") }, comment: function (e) { u.push("\x3c!--", e, "--\x3e") }, pi: function (e, t) { t ? u.push("<?", e, " ", f(t), "?>") : u.push("<?", e, "?>"), s && u.push("\n") }, doctype: function (e) { u.push("<!DOCTYPE", e, ">", s ? "\n" : "") }, reset: function () { u.length = 0 }, getContent: function () { return u.join("").replace(/\n$/, "") } } }, Jm = function (t, p) { void 0 === p && (p = Ci()); var g = Gm(t); (t = t || {}).validate = !("validate" in t) || t.validate; return { serialize: function (e) { var f = t.validate, d = { 3: function (e) { g.text(e.value, e.raw) }, 8: function (e) { g.comment(e.value) }, 7: function (e) { g.pi(e.name, e.value) }, 10: function (e) { g.doctype(e.value) }, 4: function (e) { g.cdata(e.value) }, 11: function (e) { if (e = e.firstChild) for (; m(e), e = e.next;); } }; g.reset(); var m = function (e) { var t, n, r, o, i, a, u, s, c, l = d[e.type]; if (l) l(e); else { if (t = e.name, n = e.shortEnded, r = e.attributes, f && r && 1 < r.length && ((a = []).map = {}, c = p.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 (g.start(e.name, r, n), !n) { if (e = e.firstChild) for (; m(e), e = e.next;); g.end(t) } } }; return 1 !== e.type || t.inner ? d[11](e) : m(e), g.getContent() } } }, Qm = function (e, t) { return e.replace(new RegExp(t.prefix + "_[0-9]+", "g"), function (e) { return ge(t.uris, e).getOr(e) }) }, Zm = ["img", "video"], ep = function (e, t, n) { return !e.allow_html_data_urls && (/^data:image\//i.test(t) ? (r = e.allow_svg_data_urls, o = n, !($(r) ? M(Zm, o) : r) && /^data:image\/svg\+xml/i.test(t)) : /^data:/i.test(t)); var r, o }, tp = function (e, t, n) { var r, o, i = 1, a = e.getShortEndedElements(), u = /<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g; for (u.lastIndex = r = n; o = u.exec(t);) { if (r = u.lastIndex, "/" === o[1]) i--; else if (!o[1]) { if (o[2] in a) continue; i++ } if (0 === i) break } return r }; function np(W, K) { void 0 === K && (K = Ci()); var e = function () {}; !1 !== (W = W || {}).fix_self_closing && (W.fix_self_closing = !0); var X = W.comment ? W.comment : e, Y = W.cdata ? W.cdata : e, G = W.text ? W.text : e, J = W.start ? W.start : e, Q = W.end ? W.end : e, Z = W.pi ? W.pi : e, ee = W.doctype ? W.doctype : e, n = function (f, e) { void 0 === e && (e = "html"); for (var t, i, n, d, r, o, a, m, u, s, c, l, p, g, h, v, y, b, C, w = f.html, x = 0, S = [], N = 0, E = ci.decode, k = kt.makeMap("src,href,data,background,formaction,poster,xlink:href"), _ = /((java|vb)script|mhtml):/i, A = "html" === e ? 0 : 1, R = function (e) { for (var t, n = S.length; n-- && S[n].name !== e;); if (0 <= n) { for (t = S.length - 1; n <= t; t--)(e = S[t]).valid && Q(e.name); S.length = n } }, T = function (e, t) { return G(Qm(e, f), t) }, D = function (e) { "" !== e && (">" === e.charAt(0) && (e = " " + e), W.allow_conditional_comments || "[if" !== e.substr(0, 3).toLowerCase() || (e = " " + e), X(Qm(e, f))) }, O = function (e, t) { var n = e || "", r = !Ve(n, "--"), o = function (e, t, n) { void 0 === n && (n = 0); var r = e.toLowerCase(); if (-1 !== r.indexOf("[if ", n) && (u = n, /^\s*\[if [\w\W]+\]>.*<!\[endif\](--!?)?>/.test(r.substr(u)))) { var o = r.indexOf("[endif]", n); return r.indexOf(">", o) } if (t) { var i = r.indexOf(">", n); return -1 !== i ? i : r.length } var a = /--!?>/; a.lastIndex = n; var u, s = a.exec(e); return s ? s.index + s[0].length : r.length }(w, r, t); return e = w.substr(t, o - t), D(r ? n + e : e), o + 1 }, B = function (e, t, n, r, o) { var i, a, u, s; if (t = t.toLowerCase(), u = t in F ? t : E(n || r || o || ""), n = ge(f.uris, u).getOr(u), U && !m && !1 == (0 === (s = t).indexOf("data-") || 0 === s.indexOf("aria-"))) { if (!(i = g[t]) && h) { for (a = h.length; a-- && !(i = h[a]).pattern.test(t);); - 1 === a && (i = null) } if (!i) return; if (i.validValues && !(n in i.validValues)) return } if (k[t] && !W.allow_script_urls) { var c = n.replace(/[\s\u0000-\u001F]+/g, ""); try { c = decodeURIComponent(c) } catch (l) { c = unescape(c) } if (_.test(c)) return; if (ep(W, c, e)) return } m && (t in k || 0 === t.indexOf("on")) || (d.map[t] = n, d.push({ name: t, value: n })) }, P = new RegExp("<(?:(?:!--([\\w\\W]*?)--!?>)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:![Dd][Oo][Cc][Tt][Yy][Pp][Ee]([\\w\\W]*?)>)|(?:!(--)?)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))", "g"), L = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g, I = K.getShortEndedElements(), M = W.self_closing_elements || K.getSelfClosingElements(), F = K.getBoolAttrs(), U = W.validate, z = W.remove_internals, j = W.fix_self_closing, H = K.getSpecialElements(), V = w + ">"; t = P.exec(V);) { var q = t[0]; if (x < t.index && T(E(w.substr(x, t.index - x))), i = t[7]) ":" === (i = i.toLowerCase()).charAt(0) && (i = i.substr(1)), R(i); else if (i = t[8]) { if (t.index + q.length > w.length) { T(E(w.substr(t.index))), x = t.index + q.length; continue } ":" === (i = i.toLowerCase()).charAt(0) && (i = i.substr(1)), u = i in I, j && M[i] && 0 < S.length && S[S.length - 1].name === i && R(i); var $ = function (e, t) { var n = e.exec(t); if (n) { var r = n[1], o = n[2]; return "string" == typeof r && "data-mce-bogus" === r.toLowerCase() ? o : null } return null }(L, t[9]); if (null !== $) { if ("all" === $) { x = tp(K, w, P.lastIndex), P.lastIndex = x; continue } c = !1 } if (!U || (s = K.getElementRule(i))) { if (c = !0, U && (g = s.attributes, h = s.attributePatterns), (p = t[9]) ? ((m = -1 !== p.indexOf("data-mce-type")) && z && (c = !1), (d = []).map = {}, p.replace(L, function (e, t, n, r, o) { return B(i, t, n, r, o), "" })) : (d = []).map = {}, U && !m) { if (v = s.attributesRequired, y = s.attributesDefault, b = s.attributesForced, s.removeEmptyAttrs && !d.length && (c = !1), b) for (r = b.length; r--;) a = (l = b[r]).name, "{$uid}" === (C = l.value) && (C = "mce_" + N++), d.map[a] = C, d.push({ name: a, value: C }); if (y) for (r = y.length; r--;)(a = (l = y[r]).name) in d.map || ("{$uid}" === (C = l.value) && (C = "mce_" + N++), d.map[a] = C, d.push({ name: a, value: C })); if (v) { for (r = v.length; r-- && !(v[r] in d.map);); - 1 === r && (c = !1) } if (l = d.map["data-mce-bogus"]) { if ("all" === l) { x = tp(K, w, P.lastIndex), P.lastIndex = x; continue } c = !1 } } c && J(i, d, u) } else c = !1; if (n = H[i]) { n.lastIndex = x = t.index + q.length, x = (t = n.exec(w)) ? (c && (o = w.substr(x, t.index - x)), t.index + t[0].length) : (o = w.substr(x), w.length), c && (0 < o.length && T(o, !0), Q(i)), P.lastIndex = x; continue } u || (p && p.indexOf("/") === p.length - 1 ? c && Q(i) : S.push({ name: i, valid: c })) } else if (i = t[1]) D(i); else if (i = t[2]) { if (!(1 == A || W.preserve_cdata || 0 < S.length && K.isValidChild(S[S.length - 1].name, "#cdata"))) { x = O("", t.index + 2), P.lastIndex = x; continue } Y(i) } else if (i = t[3]) ee(i); else { if ((i = t[4]) || "<!" === q) { x = O(i, t.index + q.length), P.lastIndex = x; continue } if (i = t[5]) { if (1 != A) { x = O("?", t.index + 2), P.lastIndex = x; continue } Z(i, t[6]) } } x = t.index + q.length } for (x < w.length && T(E(w.substr(x))), r = S.length - 1; 0 <= r; r--)(i = S[r]).valid && Q(i.name) }; return { parse: function (e, t) { void 0 === t && (t = "html"), n(function (e) { for (var t, n = /data:[^;]+;base64,([a-z0-9\+\/=]+)/gi, r = [], o = {}, i = is("img"), a = 0, u = 0; t = n.exec(e);) { var s = t[0], c = i + "_" + u++; o[c] = s, a < t.index && r.push(e.substr(a, t.index - a)), r.push(c), a = t.index + s.length } return 0 === a ? { prefix: i, uris: o, html: e } : (a < e.length && r.push(e.substr(a)), { prefix: i, uris: o, html: r.join("") }) }(e), t) } } }(np = np || {}).findEndTag = tp; var rp, op, ip = np, ap = function (e, t) { var n, r, o, i, a, u, s, c = t, l = /<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g, f = e.schema; a = e.getTempAttrs(), u = c, s = new RegExp(["\\s?(" + a.join("|") + ')="[^"]+"'].join("|"), "gi"), c = u.replace(s, ""); for (var d = f.getShortEndedElements(); i = l.exec(c);) r = l.lastIndex, o = i[0].length, n = d[i[1]] ? r : ip.findEndTag(f, c, r), c = c.substring(0, r - o) + c.substring(n), l.lastIndex = r - o; return po(c) }, up = ap, sp = function (e, t, n, r) { var o, i, a, u, s; return t.format = n, t.get = !0, t.getInner = !0, t.no_events || e.fire("BeforeGetContent", t), o = "raw" === t.format ? kt.trim(up(e.serializer, r.innerHTML)) : "text" === t.format ? e.dom.isEmpty(r) ? "" : po(r.innerText || r.textContent) : "tree" === t.format ? e.serializer.serialize(r, t) : (a = (i = e).serializer.serialize(r, t), u = vc(i), s = new RegExp("^(<" + u + "[^>]*>( | |\\s|\xa0|<br \\/>|)<\\/" + u + ">[\r\n]*|<br \\/>[\r\n]*)$"), a.replace(s, "")), M(["text", "tree"], t.format) || so(At.fromDom(r)) ? t.content = o : t.content = kt.trim(o), t.no_events || e.fire("GetContent", t), t.content }, cp = kt.each, lp = function (o) { this.compare = function (e, t) { if (e.nodeName !== t.nodeName) return !1; var n = function (n) { var r = {}; return cp(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"))) && (!Jl(e) && !Jl(t))) } }, fp = function (n, r, o) { return U.from(o.container()).filter(In).exists(function (e) { var t = n ? 0 : -1; return r(e.data.charAt(o.offset() + t)) }) }, dp = N(fp, !0, Zl), mp = N(fp, !1, Zl), pp = function (e) { var t = e.container(); return In(t) && (0 === t.data.length || mo(t.data) && od.isBookmarkNode(t.parentNode)) }, gp = function (t, n) { return function (e) { return U.from(il(t ? 0 : -1, e)).filter(n).isSome() } }, hp = function (e) { return jn(e) && "block" === er(At.fromDom(e), "display") }, vp = function (e) { return Vn(e) && !(An(t = e) && "all" === t.getAttribute("data-mce-bogus")); var t }, yp = gp(!0, hp), bp = gp(!1, hp), Cp = gp(!0, $n), wp = gp(!1, $n), xp = gp(!0, Bn), Sp = gp(!1, Bn), Np = gp(!0, vp), Ep = gp(!1, vp), kp = function (e) { var t = Gu(e, "br"), n = H(function (e) { for (var t = [], n = e.dom; n;) t.push(At.fromDom(n)), n = n.lastChild; return t }(e).slice(-1), no); t.length === n.length && W(n, pn) }, _p = function (e) { mn(e), fn(e, At.fromHtml('<br data-mce-bogus="1">')) }, Ap = function (n) { Zt(n).each(function (t) { Wt(t).each(function (e) { eo(n) && no(t) && eo(e) && pn(t) }) }) }, Rp = function (e, t, n) { return Pt(t, e) ? function (e, t) { for (var n = T(t) ? t : C, r = e.dom, o = []; null !== r.parentNode && r.parentNode !== undefined;) { var i = r.parentNode, a = At.fromDom(i); if (o.push(a), !0 === n(a)) break; r = i } return o }(e, function (e) { return n(e) || Ot(e, t) }).slice(0, -1) : [] }, Tp = function (e, t) { return Rp(e, t, C) }, Dp = function (e, t) { return [e].concat(Tp(e, t)) }, Op = function (e, t, n) { return Pl(e, t, n, pp) }, Bp = function (e, t) { return Y(Dp(At.fromDom(t.container()), e), eo) }, Pp = function (e, n, r) { return Op(e, n.dom, r).forall(function (t) { return Bp(n, r).fold(function () { return !1 === ol(t, r, n.dom) }, function (e) { return !1 === ol(t, r, n.dom) && Pt(e, At.fromDom(t.container())) }) }) }, Lp = function (t, n, r) { return Bp(n, r).fold(function () { return Op(t, n.dom, r).forall(function (e) { return !1 === ol(e, r, n.dom) }) }, function (e) { return Op(t, e.dom, r).isNone() }) }, Ip = N(Lp, !1), Mp = N(Lp, !0), Fp = N(Pp, !1), Up = N(Pp, !0), zp = function (e) { return ml(e).exists(no) }, jp = function (e, t, n) { var r = H(Dp(At.fromDom(n.container()), t), eo), o = ne(r).getOr(t); return Ol(e, o.dom, n).filter(zp) }, Hp = function (e, t) { return ml(t).exists(no) || jp(!0, e, t).isSome() }, Vp = function (e, t) { return n = t, U.from(n.getNode(!0)).map(At.fromDom).exists(no) || jp(!1, e, t).isSome(); var n }, qp = N(jp, !1), $p = N(jp, !0), Wp = function (e) { return Hs.isTextPosition(e) && !e.isAtStart() && !e.isAtEnd() }, Kp = function (e, t) { var n = H(Dp(At.fromDom(t.container()), e), eo); return ne(n).getOr(e) }, Xp = function (e, t) { return Wp(t) ? mp(t) : mp(t) || Ml(Kp(e, t).dom, t).exists(mp) }, Yp = function (e, t) { return Wp(t) ? dp(t) : dp(t) || Il(Kp(e, t).dom, t).exists(dp) }, Gp = function (e) { return ml(e).bind(function (e) { return Ar(e, Ft) }).exists(function (e) { return t = er(e, "white-space"), M(["pre", "pre-wrap"], t); var t }) }, Jp = function (e, t) { return r = t, Ml(e.dom, r).isNone() || (n = t, Il(e.dom, n).isNone()) || Ip(e, t) || Mp(e, t) || Vp(e, t) || Hp(e, t); var n, r }, Qp = function (e, t) { return !Gp(t) && (Ip(e, t) || Fp(e, t) || Vp(e, t) || Xp(e, t)) }, Zp = function (e, t) { return !Gp(t) && (Mp(e, t) || Up(e, t) || Hp(e, t) || Yp(e, t)) }, eg = function (e, t) { return Qp(e, t) || Zp(e, (r = (n = t).container(), o = n.offset(), In(r) && o < r.data.length ? Hs(r, o + 1) : n)); var n, r, o }, tg = function (e, t) { return Ql(e.charAt(t)) }, ng = function (e) { var t = e.container(); return In(t) && He(t.data, lo) }, rg = function (e) { var n, t = e.data, r = (n = t.split(""), z(n, function (e, t) { return Ql(e) && 0 < t && t < n.length - 1 && ef(n[t - 1]) && ef(n[t + 1]) ? " " : e }).join("")); return r !== t && (e.data = r, !0) }, og = function (l, e) { return U.some(e).filter(ng).bind(function (e) { var t, n, r, o, i, a, u, s, c = e.container(); return (i = l, u = (a = c).data, s = Hs(a, 0), !(!tg(u, 0) || eg(i, s) || (a.data = " " + u.slice(1), 0)) || rg(c) || (t = l, r = (n = c).data, o = Hs(n, r.length - 1), !(!tg(r, r.length - 1) || eg(t, o) || (n.data = r.slice(0, -1) + " ", 0)))) ? U.some(e) : U.none() }) }, ig = function (t) { var e = At.fromDom(t.getBody()); t.selection.isCollapsed() && og(e, Hs.fromRangeStart(t.selection.getRng())).each(function (e) { t.selection.setRng(e.toRange()) }) }, ag = function (e, t, n) { var r, o, i, a, u, s, c, l; 0 !== n && (r = At.fromDom(e), o = _r(r, eo).getOr(r), i = e.data.slice(t, t + n), a = t + n >= e.data.length && Zp(o, $s(e, e.data.length)), u = 0 === t && Qp(o, $s(e, 0)), e.replaceData(t, n, (c = u, l = a, X(s = i, function (e, t) { return Zl(t) || Ql(t) ? e.previousCharIsSpace || "" === e.str && c || e.str.length === s.length - 1 && l ? { previousCharIsSpace: !1, str: e.str + lo } : { previousCharIsSpace: !0, str: e.str + " " } : { previousCharIsSpace: !1, str: e.str + t } }, { previousCharIsSpace: !1, str: "" }).str))) }, ug = function (e, t) { var n = e.data.slice(t), r = n.length - We(n).length; return ag(e, t, r) }, sg = function (e, t) { var n = e.data.slice(0, t), r = n.length - Ke(n).length; return ag(e, t - r, r) }, cg = function (e, t, n, r) { void 0 === r && (r = !0); var o = Ke(e.data).length, i = r ? e : t, a = r ? t : e; return r ? i.appendData(a.data) : i.insertData(0, a.data), pn(At.fromDom(a)), n && ug(i, o), i }, lg = function (e, t) { return r = e, o = (n = t).container(), i = n.offset(), !1 === $s.isTextPosition(n) && o === r.parentNode && i > $s.before(r).offset() ? $s(t.container(), t.offset() - 1) : t; var n, r, o, i }, fg = function (e) { return Lo(e.previousSibling) ? U.some((t = e.previousSibling, In(t) ? $s(t, t.data.length) : $s.after(t))) : e.previousSibling ? Ul(e.previousSibling) : U.none(); var t }, dg = function (e) { return Lo(e.nextSibling) ? U.some((t = e.nextSibling, In(t) ? $s(t, 0) : $s.before(t))) : e.nextSibling ? Fl(e.nextSibling) : U.none(); var t }, mg = function (r, o) { return fg(o).orThunk(function () { return dg(o) }).orThunk(function () { return e = r, t = o, n = $s.before(t.previousSibling ? t.previousSibling : t.parentNode), Ml(e, n).fold(function () { return Il(e, $s.after(t)) }, U.some); var e, t, n }) }, pg = function (n, r) { return dg(r).orThunk(function () { return fg(r) }).orThunk(function () { return t = r, Il(e = n, $s.after(t)).fold(function () { return Ml(e, $s.before(t)) }, U.some); var e, t }) }, gg = function (e, t, n) { return (e ? pg : mg)(t, n).map(N(lg, n)) }, hg = function (t, n, e) { e.fold(function () { t.focus() }, function (e) { t.selection.setRng(e.toRange(), n) }) }, vg = function (e, t) { return t && he(e.schema.getBlockElements(), Lt(t)) }, yg = function (e) { if ($o(e)) { var t = At.fromHtml('<br data-mce-bogus="1">'); return mn(e), fn(e, t), U.some($s.before(t.dom)) } return U.none() }, bg = function (e, t, a) { var n, r, o, i, u = Wt(e).filter(Ut), s = Kt(e).filter(Ut); return pn(e), r = s, o = t, i = function (e, t, n) { var r = e.dom, o = t.dom, i = r.data.length; return cg(r, o, a), n.container() === o ? $s(r, i) : n }, ((n = u).isSome() && r.isSome() && o.isSome() ? U.some(i(n.getOrDie(), r.getOrDie(), o.getOrDie())) : U.none()).orThunk(function () { return a && (u.each(function (e) { return sg(e.dom, e.dom.length) }), s.each(function (e) { return ug(e.dom, 0) })), t }) }, Cg = function (t, n, e, r) { void 0 === r && (r = !0); var o, i, a = gg(n, t.getBody(), e.dom), u = _r(e, N(vg, t), (o = t.getBody(), function (e) { return e.dom === o })), s = bg(e, a, (i = e, he(t.schema.getTextInlineElements(), Lt(i)))); t.dom.isEmpty(t.getBody()) ? (t.setContent(""), t.selection.setCursorLocation()) : u.bind(yg).fold(function () { r && hg(t, n, s) }, function (e) { r && hg(t, n, U.some(e)) }) }, wg = function (e, t) { return { start: e, end: t } }, xg = Cr([{ removeTable: ["element"] }, { emptyCells: ["cells"] }, { deleteCellSelection: ["rng", "cell"] }]), Sg = function (e, t) { return Or(At.fromDom(e), "td,th", t) }, Ng = function (e, t) { return Tr(e, "table", t) }, Eg = function (e) { return !Ot(e.start, e.end) }, kg = function (e, t) { return Ng(e.start, t).bind(function (r) { return Ng(e.end, t).bind(function (e) { return t = Ot(r, e), n = r, t ? U.some(n) : U.none(); var t, n }) }) }, _g = function (e) { return Gu(e, "td,th") }, Ag = function (r, e) { var t = Sg(e.startContainer, r), n = Sg(e.endContainer, r); return e.collapsed ? U.none() : ds(t, n, wg).fold(function () { return t.fold(function () { return n.bind(function (t) { return Ng(t, r).bind(function (e) { return ne(_g(e)).map(function (e) { return wg(e, t) }) }) }) }, function (t) { return Ng(t, r).bind(function (e) { return re(_g(e)).map(function (e) { return wg(t, e) }) }) }) }, function (e) { return Rg(r, e) ? U.none() : (n = r, Ng((t = e).start, n).bind(function (e) { return re(_g(e)).map(function (e) { return wg(t.start, e) }) })); var t, n }) }, Rg = function (e, t) { return kg(t, e).isSome() }, Tg = function (e, t, n) { return e.filter(function (e) { return Eg(e) && Rg(n, e) }).orThunk(function () { return Ag(n, t) }).bind(function (e) { return kg(t = e, n).map(function (e) { return { rng: t, table: e, cells: _g(e) } }); var t }) }, Dg = function (e, t) { return G(e, function (e) { return Ot(e, t) }) }, Og = function (e, r, o) { return e.filter(function (e) { return n = o, !Eg(t = e) && kg(t, n).exists(function (e) { var t = e.dom.rows; return 1 === t.length && 1 === t[0].cells.length }) && jf(e.start, r); var t, n }).map(function (e) { return e.start }) }, Bg = function (n) { return ds(Dg((r = n).cells, r.rng.start), Dg(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 ? xg.removeTable(n.table) : xg.emptyCells(e) }); var r }, Pg = function (e, t) { var n, r, o, i, a, u = (n = e, function (e) { return Ot(n, e) }), s = (o = u, i = Sg((r = t).startContainer, o), a = Sg(r.endContainer, o), ds(i, a, wg)); return Og(s, t, u).map(function (e) { return xg.deleteCellSelection(t, e) }).orThunk(function () { return Tg(s, t, u).bind(Bg) }) }, Lg = function (e) { var t; return (8 === It(t = e) || "#comment" === Lt(t) ? Wt : Zt)(e).bind(Lg).orThunk(function () { return U.some(e) }) }, Ig = function (e, t) { return W(t, _p), e.selection.setCursorLocation(t[0].dom, 0), !0 }, Mg = function (e, t, n) { t.deleteContents(); var r, o, i = Lg(n).getOr(n), a = At.fromDom(e.dom.getParent(i.dom, e.dom.isBlock)); return $o(a) && (_p(a), e.selection.setCursorLocation(a.dom, 0)), Ot(n, a) || (r = $t(a).is(n) ? [] : $t(o = a).map(Gt).map(function (e) { return H(e, function (e) { return !Ot(o, e) }) }).getOr([]), W(r.concat(Gt(n)), function (e) { Ot(e, a) || Pt(e, a) || pn(e) })), !0 }, Fg = function (e, t) { return Cg(e, !1, t), !0 }, Ug = function (n, e, r, t) { return jg(e, t).fold(function () { return t = n, Pg(e, r).map(function (e) { return e.fold(N(Fg, t), N(Ig, t), N(Mg, t)) }); var t }, function (e) { return Hg(n, e) }).getOr(!1) }, zg = function (e, t) { return Y(Dp(t, e), uo) }, jg = function (e, t) { return Y(Dp(t, e), function (e) { return "caption" === Lt(e) }) }, Hg = function (e, t) { return _p(t), e.selection.setCursorLocation(t.dom, 0), U.some(!0) }, Vg = function (u, s, c, l, f) { return Bl(c, u.getBody(), f).bind(function (e) { return o = c, i = f, a = e, Fl((r = l).dom).bind(function (t) { return Ul(r.dom).map(function (e) { return o ? i.isEqual(t) && a.isEqual(e) : i.isEqual(e) && a.isEqual(t) }) }).getOr(!0) ? Hg(u, l) : (t = l, n = e, jg(s, At.fromDom(n.getNode())).map(function (e) { return !1 === Ot(e, t) })); var t, n, r, o, i, a }).or(U.some(!0)) }, qg = function (o, i, a, e) { var u = $s.fromRangeStart(o.selection.getRng()); return zg(a, e).bind(function (e) { return $o(e) ? Hg(o, e) : (t = a, n = e, r = u, Bl(i, o.getBody(), r).bind(function (e) { return zg(t, At.fromDom(e.getNode())).map(function (e) { return !1 === Ot(e, n) }) })); var t, n, r }).getOr(!1) }, $g = function (e, t) { return (e ? xp : Sp)(t) }, Wg = function (a, u, r) { var s = At.fromDom(a.getBody()); return jg(s, r).fold(function () { return qg(a, u, s, r) || (e = a, t = u, n = $s.fromRangeStart(e.selection.getRng()), $g(t, n) || Ol(t, e.getBody(), n).exists(function (e) { return $g(t, e) })); var e, t, n }, function (e) { return t = a, n = u, r = s, o = e, i = $s.fromRangeStart(t.selection.getRng()), ($o(o) ? Hg(t, o) : Vg(t, r, n, o, i)).getOr(!1); var t, n, r, o, i }) }, Kg = function (e, t) { var n, r, o, i, a, u = At.fromDom(e.selection.getStart(!0)), s = Ff(e); return e.selection.isCollapsed() && 0 === s.length ? Wg(e, t, u) : (n = e, r = u, o = At.fromDom(n.getBody()), i = n.selection.getRng(), 0 !== (a = Ff(n)).length ? Ig(n, a) : Ug(n, o, i, r)) }, Xg = function (a) { var u = $s.fromRangeStart(a), s = $s.fromRangeEnd(a), c = a.commonAncestorContainer; return Ol(!1, c, s).map(function (e) { return !ol(u, s, c) && ol(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) }, Yg = function (e) { return e.collapsed ? e : Xg(e) }, Gg = function (e, t) { var n, r; return e.getBlockElements()[t.name] && ((r = t).firstChild && r.firstChild === r.lastChild) && ("br" === (n = t.firstChild).name || n.value === lo) }, Jg = function (e, t) { var n, r, o, i = t.firstChild, a = t.lastChild; return i && "meta" === i.name && (i = i.next), a && "mce_marker" === a.attr("id") && (a = a.prev), r = a, o = (n = e).getNonEmptyElements(), r && (r.isEmpty(o) || Gg(n, r)) && (a = a.prev), !(!i || i !== a) && ("ul" === i.name || "ol" === i.name) }, Qg = function (e) { return e && e.firstChild && e.firstChild === e.lastChild && ((t = e.firstChild).data === lo || zn(t)); var t }, Zg = function (e) { return 0 < e.length && (!(t = e[e.length - 1]).firstChild || Qg(t)) ? e.slice(0, -1) : e; var t }, eh = function (e, t) { var n = e.getParent(t, e.isBlock); return n && "LI" === n.nodeName ? n : null }, th = function (e, t) { var n = $s.after(e), r = _l(t).prev(n); return r ? r.toRange() : null }, nh = function (t, e, n) { var r, o, i, a, u = t.parentNode; return kt.each(e, function (e) { u.insertBefore(e, t) }), r = t, o = n, i = $s.before(r), (a = _l(o).next(i)) ? a.toRange() : null }, rh = function (e, o, i, t) { var n, r, a, u, s, c, l, f, d, m, p, g, h, v, y, b, C, w, x, S, 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 = eh(o, i.startContainer), k = Zg((f = N.firstChild, kt.grep(f.childNodes, function (e) { return "LI" === e.nodeName }))), _ = o.getRoot(), A = function (e) { var t = $s.fromRangeStart(i), n = _l(o.getRoot()), r = 1 === e ? n.prev(t) : n.next(t); return !r || eh(o, r.getNode()) !== E }; return A(1) ? nh(E, k, _) : A(2) ? (d = E, m = k, p = _, o.insertAfter(m.reverse(), d), th(m[0], p)) : (h = k, v = _, y = g = E, C = (b = i).cloneRange(), w = b.cloneRange(), C.setStartBefore(y), w.setEndAfter(y), x = [C.cloneContents(), w.cloneContents()], (S = g.parentNode).insertBefore(x[0], g), kt.each(h, function (e) { S.insertBefore(e, g) }), S.insertBefore(x[1], g), S.removeChild(g), th(h[h.length - 1], v)) }, oh = qn, ih = function (e) { var t = e.dom, n = Yg(e.selection.getRng()); e.selection.setRng(n); var r, o, i, a = t.getParent(n.startContainer, oh); r = t, o = n, null !== (i = a) && i === r.getParent(o.endContainer, oh) && jf(At.fromDom(i), o) ? Mg(e, n, At.fromDom(a)) : e.getDoc().execCommand("Delete", !1, null) }, ah = function (e, t, n) { var r, o, i, a, u, s, c, l, f, d = e.selection, m = e.dom; /^ | $/.test(t) && (s = m, c = d.getRng(), l = t, f = At.fromDom(s.getRoot()), l = Qp(f, $s.fromRangeStart(c)) ? l.replace(/^ /, " ") : l.replace(/^ /, " "), t = l = Zp(f, $s.fromRangeEnd(c)) ? l.replace(/( | )(<br( \/)>)?$/, " ") : l.replace(/ (<br( \/)?>)?$/, " ")); var p = e.parser, g = n.merge, h = Jm({ validate: e.getParam("validate") }, e.schema), v = '<span id="mce_marker" data-mce-type="bookmark"></span>', y = { content: t, format: "html", selection: !0, paste: n.paste }; if ((y = e.fire("BeforeSetContent", y)).isDefaultPrevented()) e.fire("SetContent", { content: y.content, format: "html", selection: !0, paste: n.paste }); else { -1 === (t = y.content).indexOf("{$caret}") && (t += "{$caret}"), t = t.replace(/\{\$caret\}/, v); var b, C, w = (a = d.getRng()).startContainer || (a.parentElement ? a.parentElement() : null), x = e.getBody(); w === x && d.isCollapsed() && m.isBlock(x.firstChild) && (b = e, (C = x.firstChild) && !b.schema.getShortEndedElements()[C.nodeName]) && m.isEmpty(x.firstChild) && ((a = m.createRng()).setStart(x.firstChild, 0), a.setEnd(x.firstChild, 0), d.setRng(a)), d.isCollapsed() || ih(e); var S, N, E, k, _, A, R, T, D, O, B, P, L, I, M = { context: (r = d.getNode()).nodeName.toLowerCase(), data: n.data, insert: !0 }, F = p.parse(t, M); if (!0 === n.paste && Jg(e.schema, F) && eh(m, r)) return a = rh(h, m, d.getRng(), F), d.setRng(a), void e.fire("SetContent", y); if (! function (e) { for (var t = e; t = t.walk();) 1 === t.type && t.attr("data-mce-fragment", "1") }(F), "mce_marker" === (u = F.lastChild).attr("id")) for (u = (i = u).prev; u; u = u.walk(!0)) if (3 === u.type || !m.isBlock(u.name)) { e.schema.isValidChild(u.parent.name, "span") && u.parent.insert(i, u, "br" === u.name); break } if (e._selectionOverrides.showBlockCaretContainer(r), M.invalid) { for (e.selection.setContent(v), r = d.getNode(), o = e.getBody(), 9 === r.nodeType ? r = u = o : u = r; u !== o;) u = (r = u).parentNode; t = r === o ? o.innerHTML : m.getOuterHTML(r), t = h.serialize(p.parse(t.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i, function () { return h.serialize(F) }))), r === o ? m.setHTML(o, t) : m.setOuterHTML(r, t) } else t = h.serialize(F), S = e, N = t, "all" === (E = r).getAttribute("data-mce-bogus") ? E.parentNode.insertBefore(S.dom.createFragment(N), E) : (k = E.firstChild, _ = E.lastChild, !k || k === _ && "BR" === k.nodeName ? S.dom.setHTML(E, N) : S.selection.setContent(N)); R = g, O = (A = e).schema.getTextInlineElements(), B = A.dom, R && (T = A.getBody(), D = new lp(B), kt.each(B.select("*[data-mce-fragment]"), function (e) { for (var t = e.parentNode; t && t !== T; t = t.parentNode) O[e.nodeName.toLowerCase()] && D.compare(t, e) && B.remove(e, !0) })), function (n, e) { var t, r, o = n.dom, i = n.selection; if (e) { i.scrollIntoView(e); var a = function (e) { for (var t = n.getBody(); e && e !== t; e = e.parentNode) if ("false" === o.getContentEditable(e)) return e; return null }(e); if (a) return o.remove(e), i.select(a); var u = o.createRng(), s = e.previousSibling; s && 3 === s.nodeType ? (u.setStart(s, s.nodeValue.length), wt.ie || (r = e.nextSibling) && 3 === r.nodeType && (s.appendData(r.data), r.parentNode.removeChild(r))) : (u.setStartBefore(e), u.setEndBefore(e)); var c = o.getParent(e, o.isBlock); o.remove(e), c && o.isEmpty(c) && (n.$(c).empty(), u.setStart(c, 0), u.setEnd(c, 0), oh(c) || c.getAttribute("data-mce-fragment") || !(t = function (e) { var t = $s.fromRangeStart(e); if (t = _l(n.getBody()).next(t)) return t.toRange() }(u)) ? o.add(c, o.create("br", { "data-mce-bogus": "1" })) : (u = t, o.remove(c))), i.setRng(u) } }(e, m.get("mce_marker")), P = e.getBody(), kt.each(P.getElementsByTagName("*"), function (e) { e.removeAttribute("data-mce-fragment") }), L = m, I = d.getStart(), U.from(L.getParent(I, "td,th")).map(At.fromDom).each(Ap), e.fire("SetContent", y), e.addVisual() } }, uh = function (e, t) { t(e), e.firstChild && uh(e.firstChild, t), e.next && uh(e.next, t) }, sh = function (e, t, n) { var r = function (e, n, t) { var r = {}, o = {}, i = []; for (var a in t.firstChild && uh(t.firstChild, function (t) { W(e, function (e) { e.name === t.name && (r[e.name] ? r[e.name].nodes.push(t) : r[e.name] = { filter: e, nodes: [t] }) }), W(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 u in o) o.hasOwnProperty(u) && i.push(o[u]); return i }(e, t, n); W(r, function (t) { W(t.filter.callbacks, function (e) { e(t.nodes, t.filter.name, {}) }) }) }, ch = function (e) { return e instanceof Km }, lh = function (e, t) { var r; e.dom.setHTML(e.getBody(), t), Em(r = e) && Fl(r.getBody()).each(function (e) { var t = e.getNode(), n = Bn(t) ? Fl(t).getOr(e) : e; r.selection.setRng(n.toRange()) }) }, fh = function (u, s, c) { return c.format = c.format ? c.format : "html", c.set = !0, c.content = ch(s) ? "" : s, c.no_events || u.fire("BeforeSetContent", c), ch(s) || (s = c.content), U.from(u.getBody()).fold(E(s), function (e) { return ch(s) ? function (e, t, n, r) { sh(e.parser.getNodeFilters(), e.parser.getAttributeFilters(), n); var o = Jm({ validate: e.validate }, e.schema).serialize(n); return r.content = so(At.fromDom(t)) ? o : kt.trim(o), lh(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 = '<br data-mce-bogus="1">', "TABLE" === n.nodeName ? r = "<tr><td>" + a + "</td></tr>" : /^(UL|OL)$/.test(n.nodeName) && (r = "<li>" + a + "</li>"), r = (i = vc(t)) && t.schema.isValidChild(n.nodeName.toLowerCase(), i.toLowerCase()) ? (r = a, t.dom.createHTML(i, yc(t), r)) : r || '<br data-mce-bogus="1">', lh(t, r), t.fire("SetContent", o)) : ("raw" !== o.format && (r = Jm({ validate: t.validate }, t.schema).serialize(t.parser.parse(r, { isRootContent: !0, insert: !0 }))), o.content = so(At.fromDom(n)) ? r : kt.trim(r), lh(t, o.content), o.no_events || t.fire("SetContent", o)), o.content); var t, n, r, o, i, a }) }, dh = function (e, t) { return r = t, ((o = (n = e).dom).parentNode ? Rr(At.fromDom(o.parentNode), function (e) { return !Ot(n, e) && r(e) }) : U.none()).isSome(); var n, r, o }, mh = fo, ph = "_mce_caret", gh = function (e) { return 0 < function (e) { for (var t = []; e;) { if (3 === e.nodeType && e.nodeValue !== mh || 1 < e.childNodes.length) return []; 1 === e.nodeType && t.push(e), e = e.firstChild } return t }(e).length }, hh = function (e) { if (e) { var t = new Xr(e, e); for (e = t.current(); e; e = t.next()) if (In(e)) return e } return null }, vh = function (e) { var t = At.fromTag("span"); return Yn(t, { id: ph, "data-mce-bogus": "1", "data-mce-type": "format-caret" }), e && fn(t, At.fromText(mh)), t }, yh = function (e, t, n) { void 0 === n && (n = !0); var r, o, i, a, u, s, c, l, f = e.dom, d = e.selection; gh(t) ? Cg(e, !1, At.fromDom(t), n) : (r = d.getRng(), o = f.getParent(t, f.isBlock), i = r.startContainer, a = r.startOffset, u = r.endContainer, s = r.endOffset, (l = hh(t)) && l.nodeValue.charAt(0) === mh && l.deleteData(0, 1), c = l, f.remove(t, !0), i === c && 0 < a && r.setStart(c, a - 1), u === c && 0 < s && r.setEnd(c, s - 1), o && f.isEmpty(o) && _p(At.fromDom(o)), d.setRng(r)) }, bh = function (e, t, n) { void 0 === n && (n = !0); var r = e.dom, o = e.selection; if (t) yh(e, t, n); else if (!(t = Hl(e.getBody(), o.getStart()))) for (; t = r.get(ph);) yh(e, t, !1) }, Ch = function (e, t) { return e.appendChild(t), t }, wh = function (e, t) { var n = K(e, function (e, t) { return Ch(e, t.cloneNode(!1)) }, t); return Ch(n, n.ownerDocument.createTextNode(mh)) }, xh = function (e, t, n, r) { var o, i, a, u, s, c, l, f, d, m, p, g, h, v = e.dom, y = e.selection, b = [], C = y.getRng(), w = C.startContainer, x = C.startOffset, S = w; for (3 === w.nodeType && (x !== w.nodeValue.length && (o = !0), S = S.parentNode); S;) { if (zm(e, S, t, n, r)) { i = S; break } S.nextSibling && (o = !0), b.push(S), S = S.parentNode } i && (o ? (a = y.getBookmark(), C.collapse(!0), u = Of(e, C, e.formatter.get(t), !0), u = Cd(u), e.formatter.remove(t, n, u, r), y.moveToBookmark(a)) : (s = Hl(e.getBody(), i), c = vh(!1).dom, m = c, p = null !== s ? s : i, g = (d = e).dom, (h = g.getParent(p, N( of , d))) && g.isEmpty(h) ? p.parentNode.replaceChild(m, p) : (kp(At.fromDom(p)), g.isEmpty(p) ? p.parentNode.replaceChild(m, p) : g.insertAfter(m, p)), l = function (t, e, n, r, o, i) { var a = t.formatter, u = t.dom, s = H(ie(a.get()), function (e) { return e !== r && !He(e, "removeformat") }), c = Vm(t, n, s); if (0 < H(c, function (e) { return !pf(t, e, r) }).length) { var l = n.cloneNode(!1); return u.add(e, l), a.remove(r, o, l, i), u.remove(l), U.some(l) } return U.none() }(e, c, i, t, n, r), f = wh(b.concat(l.toArray()), c), yh(e, s, !1), y.setCursorLocation(f, 1), v.isEmpty(i) && v.remove(i))) }, Sh = function (i) { i.on("mouseup keydown", function (e) { var t, n, r, o; t = i, n = e.keyCode, r = t.selection, o = t.getBody(), bh(t, null, !1), 8 !== n && 46 !== n || !r.isCollapsed() || r.getStart().innerHTML !== mh || bh(t, Hl(o, r.getStart())), 37 !== n && 39 !== n || bh(t, Hl(o, r.getStart())) }) }, Nh = function (e, t) { return e.schema.getTextInlineElements().hasOwnProperty(Lt(t)) && !jl(t.dom) && !On(t.dom) }, Eh = {}, kh = we, _h = be; op = function (e) { var t, n = e.selection.getRng(), r = Rn(["pre"]); n.collapsed || (t = e.selection.getSelectedBlocks(), _h(kh(kh(t, r), function (e) { return r(e.previousSibling) && -1 !== xe(t, e.previousSibling) }), function (e) { var t, n; t = e.previousSibling, hu(n = e).remove(), hu(t).append("<br><br>").append(n.childNodes) })) }, Eh[rp = "pre"] || (Eh[rp] = []), Eh[rp].push(op); var Ah = kt.each, Rh = function (e) { return An(e) && !Jl(e) && !jl(e) && !On(e) }, Th = function (e, t) { for (var n = e; n; n = n[t]) { if (In(n) && 0 !== n.nodeValue.length) return e; if (An(n) && !Jl(n)) return n } return e }, Dh = function (e, t, n) { var r, o, i = new lp(e); if (t && n && (t = Th(t, "previousSibling"), n = Th(n, "nextSibling"), i.compare(t, n))) { for (r = t.nextSibling; r && r !== n;) r = (o = r).nextSibling, t.appendChild(o); return e.remove(n), kt.each(kt.grep(n.childNodes), function (e) { t.appendChild(e) }), t } return n }, Oh = function (e, t, n, r) { var o; r && !1 !== t.merge_siblings && (o = Dh(e, rf(r), r), Dh(e, o, rf(o, !0))) }, Bh = function (e, t, n) { Ah(e.childNodes, function (e) { Rh(e) && (t(e) && n(e), e.hasChildNodes() && Bh(e, t, n)) }) }, Ph = function (t, n) { return function (e) { return !(!e || !ff(t, e, n)) } }, Lh = function (r, o, i) { return function (e) { var t, n; r.setStyle(e, o, i), "" === e.getAttribute("style") && e.removeAttribute("style"), t = r, "SPAN" === (n = e).nodeName && 0 === t.getAttribs(n).length && t.remove(n, !0) } }, Ih = Cr([{ keep: [] }, { rename: ["name"] }, { removed: [] }]), Mh = /^(src|href|style)$/, Fh = kt.each, Uh = cf, zh = function (e, t, n) { return e.isChildOf(t, n) && t !== n && !e.isBlock(n) }, jh = function (e, t, n) { var r, o = t[n ? "startContainer" : "endContainer"], i = t[n ? "startOffset" : "endOffset"]; return An(o) && (r = o.childNodes.length - 1, !n && i && i--, o = o.childNodes[r < i ? r : i]), In(o) && n && i >= o.nodeValue.length && (o = new Xr(o, e.getBody()).next() || o), In(o) && !n && 0 === i && (o = new Xr(o, e.getBody()).prev() || o), o }, Hh = function (e, t) { var n = t ? "firstChild" : "lastChild"; if (/^(TR|TH|TD)$/.test(e.nodeName) && e[n]) { var r = e[n]; return "TR" === e.nodeName && r[n] || r } return e }, Vh = function (e, t, n, r) { var o = e.create(n, r); return t.parentNode.insertBefore(o, t), o.appendChild(t), o }, qh = function (e, t, n, r, o) { var i = At.fromDom(t), a = At.fromDom(e.create(r, o)), u = (n ? Yt : Xt)(i); return dn(a, u), n ? (sn(i, a), ln(a, i)) : (cn(i, a), fn(a, i)), a.dom }, $h = function (e, t, n, r) { return !(t = rf(t, n, r)) || "BR" === t.nodeName || e.isBlock(t) }, Wh = function (e, r, o, t, i) { var n, a, u, s, c, l = e.dom; if (u = l, !(Uh(s = t, (c = r).inline) || Uh(s, c.block) || c.selector && (An(s) && u.is(s, c.selector)) || (a = t, r.links && "A" === a.nodeName))) return Ih.keep(); var f, d, m, p, g, h, v, y = t; if (r.inline && "all" === r.remove && S(r.preserve_attributes)) { var b = H(l.getAttribs(y), function (e) { return M(r.preserve_attributes, e.name.toLowerCase()) }); if (l.removeAllAttribs(y), W(b, function (e) { return l.setAttrib(y, e.name, e.value) }), 0 < b.length) return Ih.rename("span") } if ("all" !== r.remove) { Fh(r.styles, function (e, t) { e = lf(l, sf(e, o), t + ""), O(t) && (t = e, i = null), !r.remove_similar && i && !Uh(ff(l, i, t), e) || l.setStyle(y, t, ""), n = !0 }), n && "" === l.getAttrib(y, "style") && (y.removeAttribute("style"), y.removeAttribute("data-mce-style")), Fh(r.attributes, function (e, t) { var n; if (e = sf(e, o), O(t) && (t = e, i = null), r.remove_similar || !i || Uh(l.getAttrib(i, t), e)) { if ("class" === t && (e = l.getAttrib(y, t)) && (n = "", W(e.split(/\s+/), function (e) { /mce\-\w+/.test(e) && (n += (n ? " " : "") + e) }), n)) return void l.setAttrib(y, t, n); "class" === t && y.removeAttribute("className"), Mh.test(t) && y.removeAttribute("data-mce-" + t), y.removeAttribute(t) } }), Fh(r.classes, function (e) { e = sf(e, o), i && !l.hasClass(i, e) || l.removeClass(y, e) }); for (var C = l.getAttribs(y), w = 0; w < C.length; w++) { var x = C[w].nodeName; if (0 !== x.indexOf("_") && 0 !== x.indexOf("data-")) return Ih.keep() } } return "none" !== r.remove ? (f = e, m = r, g = (d = y).parentNode, h = f.dom, v = vc(f), m.block && (v ? g === h.getRoot() && (m.list_block && Uh(d, m.list_block) || W(oe(d.childNodes), function (e) { af(f, v, e.nodeName.toLowerCase()) ? p ? p.appendChild(e) : (p = Vh(h, e, v), h.setAttribs(p, f.settings.forced_root_block_attrs)) : p = 0 })) : h.isBlock(d) && !h.isBlock(g) && ($h(h, d, !1) || $h(h, d.firstChild, !0, !0) || d.insertBefore(h.create("br"), d.firstChild), $h(h, d, !0) || $h(h, d.lastChild, !1, !0) || d.appendChild(h.create("br")))), m.selector && m.inline && !Uh(m.inline, d) || h.remove(d, !0), Ih.removed()) : Ih.keep() }, Kh = function (t, e, n, r, o) { return Wh(t, e, n, r, o).fold(C, function (e) { return t.dom.rename(r, e), !0 }, k) }, Xh = function (e, t, n, r, o, i, a, u) { var s, c, l, f = e.dom; if (n) { for (var d = n.parentNode, m = r.parentNode; m && m !== d; m = m.parentNode) { s = f.clone(m, !1); for (var p = 0; p < t.length && null !== (s = function (t, e, n, r) { return Wh(t, e, n, r, r).fold(E(r), function (e) { return t.dom.createFragment().appendChild(r), t.dom.rename(r, e) }, E(null)) }(e, t[p], u, s)); p++); s && (c && s.appendChild(c), l = l || s, c = s) }!i || a.mixed && f.isBlock(n) || (r = f.split(n, r)), c && (o.parentNode.insertBefore(c, o), l.appendChild(o), a.inline && Oh(f, a, 0, c)) } return r }, Yh = function (s, c, l, e, f) { var t, d = s.formatter.get(c), m = d[0], i = !0, a = s.dom, n = s.selection, u = function (e) { var n, t, r, o, i, a, u = (t = e, r = c, o = l, i = f, W(mf((n = s).dom, t.parentNode).reverse(), function (e) { var t; a || "_start" === e.id || "_end" === e.id || (t = zm(n, e, r, o, i)) && !1 !== t.split && (a = e) }), a); return Xh(s, d, u, e, e, !0, m, l) }, p = function (e) { var t, n; An(e) && a.getContentEditable(e) && (t = i, i = "true" === a.getContentEditable(e), n = !0); var r = oe(e.childNodes); if (i && !n) for (var o = 0; o < d.length && !Kh(s, d[o], l, e, e); o++); if (m.deep && r.length) { for (o = 0; o < r.length; o++) p(r[o]); n && (i = t) } }, g = function (e) { var t, n = a.get(e ? "_start" : "_end"), r = n[e ? "firstChild" : "lastChild"]; return Jl(t = r) && An(t) && ("_start" === t.id || "_end" === t.id) && (r = r[e ? "firstChild" : "lastChild"]), In(r) && 0 === r.data.length && (r = e ? n.previousSibling || n.nextSibling : n.nextSibling || n.previousSibling), a.remove(n, !0), r }, r = function (e) { var t, n, r = Of(s, e, d, e.collapsed); if (m.split) { if (r = Cd(r), (t = jh(s, r, !0)) !== (n = jh(s, r))) { if (t = Hh(t, !0), n = Hh(n, !1), zh(a, t, n)) { var o = U.from(t.firstChild).getOr(t); return u(qh(a, o, !0, "span", { id: "_start", "data-mce-type": "bookmark" })), void g(!0) } if (zh(a, n, t)) { o = U.from(n.lastChild).getOr(n); return u(qh(a, o, !1, "span", { id: "_end", "data-mce-type": "bookmark" })), void g(!1) } t = Vh(a, t, "span", { id: "_start", "data-mce-type": "bookmark" }), n = Vh(a, n, "span", { id: "_end", "data-mce-type": "bookmark" }); var i = a.createRng(); i.setStartAfter(t), i.setEndBefore(n), Pf(a, i, function (e) { W(e, function (e) { Jl(e) || Jl(e.parentNode) || u(e) }) }), u(t), u(n), t = g(!0), n = g() } else t = n = u(t); r.startContainer = t.parentNode ? t.parentNode : t, r.startOffset = a.nodeIndex(t), r.endContainer = n.parentNode ? n.parentNode : n, r.endOffset = a.nodeIndex(n) + 1 } Pf(a, r, function (e) { W(e, function (t) { p(t); W(["underline", "line-through", "overline"], function (e) { An(t) && s.dom.getStyle(t, "text-decoration") === e && t.parentNode && df(a, t.parentNode) === e && Kh(s, { deep: !1, exact: !0, inline: "span", styles: { textDecoration: e } }, null, t) }) }) }) }; if (e) tf(e) ? ((t = a.createRng()).setStartBefore(e), t.setEndAfter(e), r(t)) : r(e); else if ("false" !== a.getContentEditable(n.getNode())) n.isCollapsed() && m.inline && !Ff(s).length ? xh(s, c, l, f) : ($f(n, !0, function () { qf(s, r) }), m.inline && jm(s, c, l, n.getStart()) && nf(a, n, n.getRng()), s.nodeChanged()); else { e = n.getNode(); for (var o = 0; o < d.length && (!d[o].ceFalseOverride || !Kh(s, d[o], l, e, e)); o++); } }, Gh = kt.each, Jh = function (i, e, a, u) { Gh(e, function (t) { var r, e, n, o; Gh(i.dom.select(t.inline, u), function (e) { Rh(e) && Kh(i, t, a, e, t.exact ? e : null) }), r = i.dom, n = u, (e = t).clear_child_styles && (o = e.links ? "*:not(a)" : "*", Ah(r.select(o, n), function (n) { Rh(n) && Ah(e.styles, function (e, t) { r.setStyle(n, t, "") }) })) }) }, Qh = kt.each, Zh = ve, ev = function (E, k, _, r) { var e, t, n, o, A = E.formatter.get(k), R = A[0], i = !r && E.selection.isCollapsed(), a = E.dom, u = E.selection, T = function (n, e) { var t; e = e || R, n && (e.onformat && e.onformat(n, e, _, r), Qh(e.styles, function (e, t) { a.setStyle(n, t, sf(e, _)) }), !e.styles || (t = a.getAttrib(n, "style")) && a.setAttrib(n, "data-mce-style", t), Qh(e.attributes, function (e, t) { a.setAttrib(n, t, sf(e, _)) }), Qh(e.classes, function (e) { e = sf(e, _), a.hasClass(n, e) || a.addClass(n, e) })) }, m = function (e, t) { var n = !1; return !!hf(R) && (Qh(e, function (e) { if (!("collapsed" in e && e.collapsed !== i)) return a.is(t, e.selector) && !jl(t) ? (T(t, e), !(n = !0)) : void 0 }), n) }, s = function (S, e, t, c) { var N = [], l = !0, f = R.inline || R.block, d = S.create(f); T(d), Pf(S, e, function (e) { var u, s = function (e) { var t = !1, n = l, r = e.nodeName.toLowerCase(), o = e.parentNode.nodeName.toLowerCase(); if (An(e) && S.getContentEditable(e) && (n = l, l = "true" === S.getContentEditable(e), t = !0), zn(e) && ! function (e, t, n, r) { if (e.getParam("format_empty_lines", !1, "boolean") && vf(t)) { var o = ke(ke({}, e.schema.getTextBlockElements()), { td: {}, th: {}, li: {}, dt: {}, dd: {}, figcaption: {}, caption: {}, details: {}, summary: {} }), i = dh(At.fromDom(n), function (e) { return jl(e.dom) }); return ve(o, r) && $o(At.fromDom(n.parentNode), !1) && !i } return !1 }(E, R, e, o)) return u = null, void(gf(R) && S.remove(e)); if (R.wrapper && zm(E, e, k, _)) u = null; else { if (l && !t && gf(R) && !R.wrapper && of (E, r) && af(E, o, f)) { var i = S.rename(e, f); return T(i), N.push(i), void(u = null) } if (hf(R)) { var a = m(A, e); if (!Zh(R, "inline") || a) return void(u = null) }!l || t || !af(E, f, r) || !af(E, o, f) || !c && 3 === e.nodeType && 1 === e.nodeValue.length && 65279 === e.nodeValue.charCodeAt(0) || jl(e) || Zh(R, "inline") && S.isBlock(e) ? (u = null, Qh(kt.grep(e.childNodes), s), t && (l = n), u = null) : (u || (u = S.clone(d, !1), e.parentNode.insertBefore(u, e), N.push(u)), u.appendChild(e)) } }; Qh(e, s) }), !0 === R.links && Qh(N, function (e) { var t = function (e) { "A" === e.nodeName && T(e, R), Qh(kt.grep(e.childNodes), t) }; t(e) }), Qh(N, function (e) { var n, t, r, o, i, a, u, s, c, l, f, d, m, p, g, h, v, y, b, C, w = function (e) { var n = !1; return Qh(e.childNodes, function (e) { if ((t = e) && 1 === t.nodeType && !Jl(t) && !jl(t) && !On(t)) return n = e, !1; var t }), n }, x = (n = 0, Qh(e.childNodes, function (e) { var t; D(t = e) && In(t) && 0 === t.length || Jl(e) || n++ }), n); !(1 < N.length) && S.isBlock(e) || 0 !== x ? (vf(R) || R.wrapper) && (R.exact || 1 !== x || ((C = w(y = e)) && !Jl(C) && Fm(S, C, R) && (b = S.clone(C, !1), T(b), S.replace(b, y, !0), S.remove(C, !0)), e = b || y), Jh(E, A, _, e), p = R, g = k, h = _, zm(m = E, (v = e).parentNode, g, h) && Kh(m, p, h, v) || p.merge_with_parents && m.dom.getParent(v.parentNode, function (e) { if (zm(m, e, g, h)) return Kh(m, p, h, v), !0 }), c = S, f = _, d = e, (l = R).styles && l.styles.backgroundColor && Bh(d, Ph(c, "fontSize"), Lh(c, "backgroundColor", sf(l.styles.backgroundColor, f))), i = S, u = e, s = function (e) { var t; 1 === e.nodeType && e.parentNode && 1 === e.parentNode.nodeType && (t = df(i, e.parentNode), i.getStyle(e, "color") && t ? i.setStyle(e, "text-decoration", t) : i.getStyle(e, "text-decoration") === t && i.setStyle(e, "text-decoration", null)) }, (a = R).styles && (a.styles.color || a.styles.textDecoration) && (kt.walk(u, s, "childNodes"), s(u)), t = S, o = e, "sub" !== (r = R).inline && "sup" !== r.inline || (Bh(o, Ph(t, "fontSize"), Lh(t, "fontSize", "")), t.remove(t.select("sup" === r.inline ? "sub" : "sup", o), !0)), Oh(S, R, 0, e)) : S.remove(e, !0) }) }; if ("false" !== a.getContentEditable(u.getNode())) { R && (r ? tf(r) ? m(A, r) || ((e = a.createRng()).setStartBefore(r), e.setEndAfter(r), s(a, Of(E, e, A), 0, !0)) : s(a, r, 0, !0) : i && vf(R) && !Ff(E).length ? function (e, t, n) { var r, o = e.selection, i = o.getRng(), a = i.startOffset, u = i.startContainer.nodeValue, s = Hl(e.getBody(), o.getStart()); s && (r = hh(s)); var c, l, f, d, m = /[^\s\u00a0\u00ad\u200b\ufeff]/; u && 0 < a && a < u.length && m.test(u.charAt(a)) && m.test(u.charAt(a - 1)) ? (c = o.getBookmark(), i.collapse(!0), l = Of(e, i, e.formatter.get(t)), l = Cd(l), e.formatter.apply(t, n, l), o.moveToBookmark(c)) : (s && r.nodeValue === mh || (f = e.getDoc(), d = vh(!0).dom, r = (s = f.importNode(d, !0)).firstChild, i.insertNode(s), a = 1), e.formatter.apply(t, n, s), o.setCursorLocation(r, a)) }(E, k, _) : (t = u.getNode(), n = A[0], E.settings.forced_root_block || !n.defaultBlock || a.getParent(t, a.isBlock) || ev(E, n.defaultBlock), u.setRng(Yg(u.getRng())), $f(u, !0, function (e) { qf(E, function (e, t) { var n = t ? e : Of(E, e, A); s(a, n) }) }), nf(a, u, u.getRng()), E.nodeChanged()), o = E, _h(Eh[k], function (e) { e(o) })) } else { r = u.getNode(); for (var c = 0, l = A.length; c < l; c++) { var f = A[c]; if (f.ceFalseOverride && hf(f) && a.is(r, f.selector)) return void T(r, f) } } }, tv = function (r, e, t, n) { var o = ie(t.get()), i = {}, a = {}, u = H(mf(r.dom, e), function (e) { return 1 === e.nodeType && !e.getAttribute("data-mce-bogus") }); ue(n, function (e, n) { kt.each(u, function (t) { return r.formatter.matchNode(t, n, {}, e.similar) ? (-1 === o.indexOf(n) && (W(e.callbacks, function (e) { e(!0, { node: t, format: n, parents: u }) }), i[n] = e.callbacks), a[n] = e.callbacks, !1) : !Im(r, t, n) && void 0 }) }); var s = nv(t.get(), a, e, u); t.set(ke(ke({}, i), s)) }, nv = function (e, n, r, o) { return de(e, function (e, t) { return !!he(n, t) || (W(e, function (e) { e(!1, { node: r, format: t, parents: o }) }), !1) }).t }, rv = function (e, o, i, a, t) { var n, r, u, s, c, l, f, d; return null === o.get() && (r = e, u = Ou({}), (n = o).set({}), r.on("NodeChange", function (e) { tv(r, e.element, u, n.get()) })), c = i, l = a, f = t, d = (s = o).get(), W(c.split(","), function (e) { d[e] || (d[e] = { similar: f, callbacks: [] }), d[e].callbacks.push(l) }), s.set(d), { unbind: function () { return t = i, n = a, r = (e = o).get(), W(t.split(","), function (e) { r[e].callbacks = H(r[e].callbacks, function (e) { return e !== n }), 0 === r[e].callbacks.length && delete r[e] }), void e.set(r); var e, t, n, r } } }, ov = function (e, t) { var n = (t || document).createDocumentFragment(); return W(e, function (e) { n.appendChild(e.dom) }), At.fromDom(n) }, iv = function (e, t, n) { return { element: e, width: t, rows: n } }, av = function (e, t) { return { element: e, cells: t } }, uv = function (e, t) { var n = parseInt(Gn(e, t), 10); return isNaN(n) ? 1 : n }, sv = function (e) { return X(e, function (e, t) { return t.cells.length > e ? t.cells.length : e }, 0) }, cv = 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 (Ot(o[i], t)) return U.some({ x: i, y: r }); return U.none() }, lv = 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(av(a[u].element, c)) } return i }, fv = function (e) { var o = iv(ss(e), 0, []); return W(Gu(e, "tr"), function (n, r) { W(Gu(n, "td,th"), function (e, t) { ! function (e, t, n, r, o) { for (var i = uv(o, "rowspan"), a = uv(o, "colspan"), u = e.rows, s = n; s < n + i; s++) { u[s] || (u[s] = av(cs(r), [])); for (var c = t; c < t + a; c++) { u[s].cells[c] = s === n && c === t ? o : ss(o) } } }(o, function (e, t, n) { for (; r = t, o = n, ((i = e.rows)[o] ? i[o].cells : [])[r];) t++; var r, o, i; return t }(o, t, r), r, n, e) }) }), iv(o.element, sv(o.rows), o.rows) }, dv = function (e) { return n = z((t = e).rows, function (e) { var t = z(e.cells, function (e) { var t = cs(e); return Qn(t, "colspan"), Qn(t, "rowspan"), t }), n = ss(e.element); return dn(n, t), n }), r = ss(t.element), o = At.fromTag("tbody"), dn(o, n), fn(r, o), r; var t, n, r, o }, mv = function (l, e, t) { return cv(l, e).bind(function (c) { return cv(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 ? lv(t, o, i, a, u) : lv(t, o, u, a, i), iv(t.element, sv(s), s); var t, n, r, o, i, a, u, s }) }) }, pv = function (t, n) { return Y(t, function (e) { return "li" === Lt(e) && jf(e, n) }).fold(E([]), function (e) { return Y(t, function (e) { return "ul" === Lt(e) || "ol" === Lt(e) }).map(function (e) { var t = At.fromTag(Lt(e)), n = me(rr(e), function (e, t) { return Ve(t, "list-style") }); return Zn(t, n), [At.fromTag("li"), t] }).getOr([]) }) }, gv = function (e, t) { var n, r = At.fromDom(t.commonAncestorContainer), o = Dp(r, e), i = H(o, function (e) { return to(e) || Zr(e) }), a = pv(o, t), u = i.concat(a.length ? a : io(n = r) ? $t(n).filter(oo).fold(E([]), function (e) { return [n, e] }) : oo(n) ? [n] : []); return z(u, ss) }, hv = function () { return ov([]) }, vv = function (e, t) { return n = At.fromDom(t.cloneContents()), r = gv(e, t), o = X(r, function (e, t) { return fn(t, e), t }, n), 0 < r.length ? ov([o]) : o; var n, r, o }, yv = function (e, o) { return t = e, n = o[0], Tr(n, "table", N(Ot, t)).bind(function (e) { var t = o[0], n = o[o.length - 1], r = fv(e); return mv(r, t, n).map(function (e) { return ov([dv(e)]) }) }).getOrThunk(hv); var t, n }, bv = function (e, t) { var n, r, o = Mf(t, e); return 0 < o.length ? yv(e, o) : (n = e, 0 < (r = t).length && r[0].collapsed ? hv() : vv(n, r[0])) }, Cv = function (e, t) { return 0 <= t && t < e.length && Zl(e.charAt(t)) }, wv = function (e, t) { var n = po(e.innerText); return t ? n.replace(/^[ \f\n\r\t\v]+/, "") : n }, xv = function (f) { return U.from(f.selection.getRng()).map(function (e) { var t = U.from(f.dom.getParent(e.commonAncestorContainer, f.dom.isBlock)), n = f.getBody(), r = t.map(function (e) { return e.nodeName }).getOr("div").toLowerCase(), o = wt.browser.isIE() && "pre" !== r, i = f.dom.add(n, r, { "data-mce-bogus": "all", style: "overflow: hidden; opacity: 0;" }, e.cloneContents()), a = wv(i, o), u = po(i.textContent); if (f.dom.remove(i), Cv(u, 0) || Cv(u, u.length - 1)) { var s = t.getOr(n), c = wv(s, o), l = c.indexOf(a); return -1 === l ? a : (Cv(c, l - 1) ? " " : "") + a + (Cv(c, l + a.length) ? " " : "") } return a }).getOr("") }, Sv = function (e, t, n) { if (void 0 === n && (n = {}), n.get = !0, n.format = t, n.selection = !0, (n = e.fire("BeforeGetContent", n)).isDefaultPrevented()) return e.fire("GetContent", n), n.content; if ("text" === n.format) return xv(e); n.getInner = !0; var r, o, i, a, u, s, c, l = (o = n, i = (r = e).selection.getRng(), a = r.dom.create("body"), u = r.selection.getSel(), s = Om(r, Lf(u)), (c = o.contextual ? bv(At.fromDom(r.getBody()), s).dom : i.cloneContents()) && a.appendChild(c), r.selection.serializer.serialize(a, o)); return "tree" === n.format ? l : (n.content = e.selection.isCollapsed() ? "" : l, e.fire("GetContent", n), n.content) }, Nv = function (e) { return An(e) ? e.outerHTML : In(e) ? ci.encodeRaw(e.data, !1) : Mn(e) ? "\x3c!--" + e.data + "--\x3e" : "" }, Ev = function (e, t, n) { var r, o = function (e) { var t, n = document.createElement("div"), r = document.createDocumentFragment(); for (e && (n.innerHTML = e); t = n.firstChild;) r.appendChild(t); return r }(t); e.hasChildNodes() && n < e.childNodes.length ? (r = e.childNodes[n]).parentNode.insertBefore(o, r) : e.appendChild(o) }, kv = function (e, o) { var i = 0; W(e, function (e) { var t, n, r; 0 === e[0] ? i++ : 1 === e[0] ? (Ev(o, e[1], i), i++) : 2 === e[0] && (n = i, (t = o).hasChildNodes() && n < t.childNodes.length && (r = t.childNodes[n]).parentNode.removeChild(r)) }) }, _v = function (e, t) { var p, g, n, h, v, c, y, l, r, o = z(oe(t.childNodes), Nv); return kv((g = e, n = (p = o).length + g.length + 2, h = new Array(n), v = new Array(n), 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 && p[a] === g[u] ? (o.push([0, p[a]]), ++a, ++u) : r - n < t - e ? (o.push([2, p[a]]), ++a) : (o.push([1, g[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, p[s]]); c(i.end, t, i.end - i.diag, r, o) } }, y = function (e, t, n, r) { for (var o = e; o - t < r && o < n && p[o] === g[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 : 1 + d) / 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 && p[c] === g[l];) h[s] = ++c, ++l; if (f % 2 != 0 && f - a <= u && u <= f + a && v[s - f] <= h[s]) return y(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 && p[c] === g[l];) v[s] = c--, l--; if (f % 2 == 0 && -a <= u && u <= a && v[s] <= h[s + f]) return y(v[s], u + e - n, t, r) } } }, r = [], c(0, p.length, 0, g.length, r), r), t), t }, Av = Ou(U.none()), Rv = function (n) { var e, t = (e = n.getBody(), H(z(oe(e.childNodes), Nv), function (e) { return 0 < e.length })), r = J(t, function (e) { var t = ap(n.serializer, e); return 0 < t.length ? [t] : [] }), o = r.join(""); return -1 !== o.indexOf("</iframe>") ? { type: "fragmented", fragments: r, content: "", bookmark: null, beforeBookmark: null } : { type: "complete", fragments: null, content: o, bookmark: null, beforeBookmark: null } }, Tv = function (e, t, n) { "fragmented" === t.type ? _v(t.fragments, e.getBody()) : e.setContent(t.content, { format: "raw" }), e.selection.moveToBookmark(n ? t.beforeBookmark : t.bookmark) }, Dv = function (e) { return "fragmented" === e.type ? e.fragments.join("") : e.content }, Ov = function (e) { var t = At.fromTag("body", Av.get().getOrThunk(function () { var e = document.implementation.createHTMLDocument("undo"); return Av.set(U.some(e)), e })); return as(t, Dv(e)), W(Gu(t, "*[data-mce-bogus]"), gn), t.dom.innerHTML }, Bv = function (e, t) { return !(!e || !t) && (r = t, Dv(e) === Dv(r) || (n = t, Ov(e) === Ov(n))); var n, r }, Pv = function (e) { return 0 === e.get() }, Lv = function (e, t, n) { Pv(n) && (e.typing = t) }, Iv = function (e, t) { e.typing && (Lv(e, !1, t), e.add()) }, Mv = function (e) { return e instanceof Km }, Fv = function (e, t) { sh(e.serializer.getNodeFilters(), e.serializer.getAttributeFilters(), t) }, Uv = function () { return { type: "complete", fragments: [], content: "", bookmark: null, beforeBookmark: null } }, zv = function (f) { return { undoManager: { beforeChange: function (e, t) { return n = f, r = t, void(Pv(e) && r.set(U.some(mc(n.selection)))); var n, r }, addUndoLevel: function (e, t, n, r, o, i) { return function (e, t, n, r, o, i, a) { var u = Rv(e); if (i = i || {}, i = kt.extend(i, u), !1 === Pv(r) || e.removed) return null; var s = t.data[n.get()]; if (e.fire("BeforeAddUndo", { level: i, lastLevel: s, originalEvent: a }).isDefaultPrevented()) return null; if (s && Bv(s, i)) return null; t.data[n.get()] && o.get().each(function (e) { t.data[n.get()].beforeBookmark = e }); var c = e.getParam("custom_undo_redo_levels", 0, "number"); if (c && t.data.length > c) { for (var l = 0; l < t.data.length - 1; l++) t.data[l] = t.data[l + 1]; t.data.length--, n.set(t.data.length) } i.bookmark = mc(e.selection), n.get() < t.data.length - 1 && (t.data.length = n.get() + 1), t.data.push(i), n.set(t.data.length - 1); var f = { level: i, lastLevel: s, originalEvent: a }; return 0 < n.get() ? (e.setDirty(!0), e.fire("AddUndo", f), e.fire("change", f)) : e.fire("AddUndo", f), i }(f, e, t, n, r, o, i) }, undo: function (e, t, n) { return r = f, i = t, a = n, (o = e).typing && (o.add(), o.typing = !1, Lv(o, !1, i)), 0 < a.get() && (a.set(a.get() - 1), u = o.data[a.get()], Tv(r, u, !0), r.setDirty(!0), r.fire("Undo", { level: u })), u; var r, o, i, a, u }, redo: function (e, t) { return n = f, o = t, (r = e).get() < o.length - 1 && (r.set(r.get() + 1), i = o[r.get()], Tv(n, i, !1), n.setDirty(!0), n.fire("Redo", { level: i })), i; var n, r, o, i }, clear: function (e, t) { return n = f, o = t, (r = e).data = [], o.set(0), r.typing = !1, void n.fire("ClearUndos"); var n, r, o }, reset: function (e) { return (t = e).clear(), void t.add(); var t }, hasUndo: function (e, t) { return n = f, r = e, 0 < t.get() || r.typing && r.data[0] && !Bv(Rv(n), r.data[0]); var n, r }, hasRedo: function (e, t) { return n = e, t.get() < n.data.length - 1 && !n.typing; var n }, transact: function (e, t, n) { return o = n, Iv(r = e, t), r.beforeChange(), r.ignore(o), r.add(); var r, o }, ignore: function (e, t) { try { e.set(e.get() + 1), t() } finally { e.set(e.get() - 1) } }, extra: function (e, t, n, r) { return o = f, a = t, u = n, s = r, void((i = e).transact(u) && (c = i.data[a.get()].bookmark, l = i.data[a.get() - 1], Tv(o, l, !0), i.transact(s) && (i.data[a.get() - 1].beforeBookmark = c))); var o, i, a, u, s, c, l } }, formatter: { match: function (e, t, n) { return jm(f, e, t, n) }, matchAll: function (e, t) { return o = e, i = t, a = [], u = {}, n = (r = f).selection.getStart(), r.dom.getParent(n, function (e) { for (var t = 0; t < o.length; t++) { var n = o[t]; !u[n] && zm(r, e, n, i) && (u[n] = !0, a.push(n)) } }, r.dom.getRoot()), a; var r, o, i, a, u, n }, matchNode: function (e, t, n, r) { return zm(f, e, t, n, r) }, canApply: function (e) { return 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 = mf(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 }(f, e) }, closest: function (e) { return Hm(f, e) }, apply: function (e, t, n) { return ev(f, e, t, n) }, remove: function (e, t, n, r) { return Yh(f, e, t, n, r) }, toggle: function (e, t, n) { return o = e, i = t, a = n, u = (r = f).formatter.get(o), void(!jm(r, o, i, a) || "toggle" in u[0] && !u[0].toggle ? ev : Yh)(r, o, i, a); var r, o, i, a, u }, formatChanged: function (e, t, n, r) { return rv(f, e, t, n, r) } }, editor: { getContent: function (e, t) { return n = f, r = e, o = t, U.from(n.getBody()).fold(E("tree" === r.format ? new Km("body", 11) : ""), function (e) { return sp(n, r, o, e) }); var n, r, o }, setContent: function (e, t) { return fh(f, e, t) }, insertContent: function (e, t) { return ah(f, e, t) }, addVisual: function (e) { return t = e, a = (i = f).dom, n = D(t) ? t : i.getBody(), R(i.hasVisual) && (i.hasVisual = i.getParam("visual", !0, "boolean")), W(a.select("table,a", n), function (e) { switch (e.nodeName) { case "TABLE": var t = i.getParam("visual_table_class", "mce-item-table", "string"), n = a.getAttrib(e, "border"); n && "0" !== n || !i.hasVisual ? a.removeClass(e, t) : a.addClass(e, t); break; case "A": var r, o; a.getAttrib(e, "href") || (r = a.getAttrib(e, "name") || e.id, o = i.getParam("visual_anchor_class", "mce-item-anchor", "string"), r && i.hasVisual ? a.addClass(e, o) : a.removeClass(e, o)) } }), void i.fire("VisualAid", { element: t, hasVisual: i.hasVisual }); var i, t, a, n } }, selection: { getContent: function (e, t) { return Sv(f, e, t) } }, raw: { getModel: function () { return U.none() } } } }, jv = function (i, a) { var o = function (e) { return _(e) ? e : {} }, e = m("Unimplemented feature for rtc"); return { undoManager: { beforeChange: V, addUndoLevel: e, undo: function () { return a.undo(), Uv() }, redo: function () { return a.redo(), Uv() }, clear: e, reset: e, hasUndo: function () { return a.hasUndo() }, hasRedo: function () { return a.hasRedo() }, transact: function (e, t, n) { return a.transact(n), Uv() }, ignore: e, extra: e }, formatter: { match: function (e, t, n) { return a.matchFormat(e, o(t)) }, matchAll: e, matchNode: e, canApply: function (e) { return a.canApplyFormat(e) }, closest: function (e) { return a.closestFormat(e) }, apply: function (e, t, n) { return a.applyFormat(e, o(t)) }, remove: function (e, t, n, r) { return a.removeFormat(e, o(t)) }, toggle: function (e, t, n) { return a.toggleFormat(e, o(t)) }, formatChanged: function (e, t, n, r) { return a.formatChanged(t, n, r) } }, editor: { getContent: function (e, t) { if ("html" !== t && "tree" !== t) return zv(i).editor.getContent(e, t); var n = a.getContent(), r = Jm({ inner: !0 }); return Fv(i, n), "tree" === t ? n : r.serialize(n) }, setContent: function (e, t) { var n = Mv(e) ? e : i.parser.parse(e, { isRootContent: !0, insert: !0 }); return a.setContent(n), e }, insertContent: function (e, t) { var n, r = (n = i, U.from(n.selection.getStart(!0)).map(function (e) { return e.nodeName.toLowerCase() }).fold(function () { return {} }, function (e) { return { context: e } })), o = Mv(e) ? e : i.parser.parse(e, ke(ke({}, r), { insert: !0 })); a.insertContent(o) }, addVisual: function (e) {} }, selection: { getContent: function (e, t) { if ("html" !== e && "tree" !== e) return zv(i).selection.getContent(e, t); var n = a.getSelectedContent(), r = Jm({}); return Fv(i, n), "tree" === e ? n : r.serialize(n) } }, raw: { getModel: function () { return U.some(a.getRawModel()) } } } }, Hv = function (e) { return he(e.plugins, "rtc") }, Vv = function (e) { return e.rtcInstance ? e.rtcInstance : zv(e) }, qv = function (e) { var t = e.rtcInstance; if (t) return t; throw new Error("Failed to get RTC instance not yet initialized.") }, $v = function (e, t) { void 0 === t && (t = {}); var n, r, o = t.format ? t.format : "html"; return n = o, r = t, qv(e).selection.getContent(n, r) }, Wv = function (e) { return 0 === e.dom.length ? (pn(e), U.none()) : U.some(e) }, Kv = function (e, t, s, c) { e.bind(function (u) { return (c ? sg : ug)(u.dom, c ? u.dom.length : 0), t.filter(Ut).map(function (e) { return t = e, n = s, r = c, o = u.dom, i = t.dom, a = r ? o.length : i.length, void(r ? (cg(o, i, !1, !r), n.setStart(i, a)) : (cg(i, o, !1, !r), n.setEnd(i, a))); var t, n, r, o, i, a }) }).orThunk(function () { var e; return (e = c, t.filter(function (e) { return od.isBookmarkNode(e.dom) }).bind(e ? Kt : Wt).or(t).filter(Ut)).map(function (e) { return r = c, void $t(n = e).each(function (e) { var t = n.dom; r && Qp(e, $s(t, 0)) ? ug(t, 0) : !r && Zp(e, $s(t, t.length)) && sg(t, t.length) }); var n, r }) }) }, Xv = function (e, t, n) { void 0 === n && (n = {}); var r, o, i = (r = t, ke(ke({ format: "html" }, n), { set: !0, selection: !0, content: r })); i.no_events || !(i = e.fire("BeforeSetContent", i)).isDefaultPrevented() ? (n.content = function (e, t) { if ("raw" === t.format) return t.content; var n = e.selection.getRng(), r = e.dom.getParent(n.commonAncestorContainer, e.dom.isBlock), o = r ? { context: r.nodeName.toLowerCase() } : {}, i = e.parser.parse(t.content, ke(ke({ isRootContent: !0, forced_root_block: !1 }, o), t)); return Jm({ validate: e.validate }, e.schema).serialize(i) }(e, i), function (e, t) { var n = U.from(t.firstChild).map(At.fromDom), r = U.from(t.lastChild).map(At.fromDom); e.deleteContents(), e.insertNode(t); var o = n.bind(Wt).filter(Ut).bind(Wv), i = r.bind(Kt).filter(Ut).bind(Wv); Kv(o, n, e, !0), Kv(i, r, e, !1), e.collapse(!1) }(o = e.selection.getRng(), o.createContextualFragment(n.content)), e.selection.setRng(o), Xd(e, o), i.no_events || e.fire("SetContent", i)) : e.fire("SetContent", i) }, Yv = function (e, t, n) { var r; e && e.hasOwnProperty(t) && (0 === (r = H(e[t], function (e) { return e !== n })).length ? delete e[t] : e[t] = r) }; var Gv = function (e) { return !!e.select }, Jv = function (e) { return !(!e || !e.ownerDocument) && Pt(At.fromDom(e.ownerDocument), At.fromDom(e)) }, Qv = function (u, s, e, c) { var l, f, i, n, a, d, r = function (e, t) { return a || (a = {}, d = {}, n.on("NodeChange", function (e) { var n = e.element, r = i.getParents(n, null, i.getRoot()), o = {}; kt.each(a, function (e, n) { kt.each(r, function (t) { if (i.is(t, n)) return d[n] || (kt.each(e, function (e) { e(!0, { node: t, selector: n, parents: r }) }), d[n] = e), o[n] = e, !1 }) }), kt.each(d, function (e, t) { o[t] || (delete d[t], kt.each(e, function (e) { e(!1, { node: n, selector: t, parents: r }) })) }) })), a[e] || (a[e] = []), a[e].push(t), { unbind: function () { Yv(a, e, t), Yv(d, e, t) } } }, t = function (e, t) { return Xv(c, e, t) }, o = function (e) { var t = p(); t.collapse(!!e), g(t) }, m = function () { return s.getSelection ? s.getSelection() : s.document.selection }, p = function () { var e, t, n, r = function (e, t, n) { try { return t.compareBoundaryPoints(e, n) } catch (r) { return -1 } }; if (!s) return null; var o = s.document; if (null == o) return null; if (c.bookmark !== undefined && !1 === Em(c)) { var i = dm(c); if (i.isSome()) return i.map(function (e) { return Om(c, [e])[0] }).getOr(o.createRange()) } try { (e = m()) && !_n(e.anchorNode) && (t = 0 < e.rangeCount ? e.getRangeAt(0) : e.createRange ? e.createRange() : o.createRange(), t = Om(c, [t])[0]) } catch (a) {} return (t = t || (o.createRange ? o.createRange() : o.body.createTextRange())).setStart && 9 === t.startContainer.nodeType && t.collapsed && (n = u.getRoot(), t.setStart(n, 0), t.setEnd(n, 0)), l && f && (0 === r(t.START_TO_START, t, l) && 0 === r(t.END_TO_END, t, l) ? t = f : f = l = null), t }, g = function (e, t) { var n; if ((r = e) && (Gv(r) || Jv(r.startContainer) && Jv(r.endContainer))) { var r, o = Gv(e) ? e : null; if (o) { f = null; try { o.select() } catch (a) {} } else { var i = m(); if (e = c.fire("SetSelectionRange", { range: e, forward: t }).range, i) { f = e; try { i.removeAllRanges(), i.addRange(e) } catch (a) {}!1 === t && i.extend && (i.collapse(e.endContainer, e.endOffset), i.extend(e.startContainer, e.startOffset)), l = 0 < i.rangeCount ? i.getRangeAt(0) : null } e.collapsed || e.startContainer !== e.endContainer || !i.setBaseAndExtent || wt.ie || e.endOffset - e.startOffset < 2 && e.startContainer.hasChildNodes() && (n = e.startContainer.childNodes[e.startOffset]) && "IMG" === n.tagName && (i.setBaseAndExtent(e.startContainer, e.startOffset, e.endContainer, e.endOffset), i.anchorNode === e.startContainer && i.focusNode === e.endContainer || i.setBaseAndExtent(n, 0, n, 1)), c.fire("AfterSetSelectionRange", { range: e, forward: t }) } } }, h = function () { var e = m(), t = null == e ? void 0 : e.anchorNode, n = null == e ? void 0 : e.focusNode; if (!e || !t || !n || _n(t) || _n(n)) return !0; var r = u.createRng(); r.setStart(t, e.anchorOffset), r.collapse(!0); var o = u.createRng(); return o.setStart(n, e.focusOffset), o.collapse(!0), r.compareBoundaryPoints(r.START_TO_START, o) <= 0 }, v = { bookmarkManager: null, controlSelection: null, dom: i = u, win: s, serializer: e, editor: n = c, collapse: o, setCursorLocation: function (e, t) { var n = u.createRng(); e ? (n.setStart(e, t), n.setEnd(e, t), g(n), o(!1)) : (Hf(u, n, c.getBody(), !0), g(n)) }, getContent: function (e) { return $v(c, e) }, setContent: t, getBookmark: function (e, t) { return y.getBookmark(e, t) }, moveToBookmark: function (e) { return y.moveToBookmark(e) }, select: function (e, t) { var r, n, o; return r = u, n = e, o = t, U.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 && (Hf(r, n, e, !0), Hf(r, n, e, !1)), n }).each(g), e }, isCollapsed: function () { var e = p(), t = m(); return !(!e || e.item) && (e.compareEndPoints ? 0 === e.compareEndPoints("StartToEnd", e) : !t || e.collapsed) }, isForward: h, setNode: function (e) { return t(u.getOuterHTML(e)), e }, getNode: function () { return function (e, t) { var n, r; if (!t) return e; n = t.startContainer, r = t.endContainer; var o = t.startOffset, i = t.endOffset, a = t.commonAncestorContainer; return !t.collapsed && (n === r && i - o < 2 && n.hasChildNodes() && (a = n.childNodes[o]), 3 === n.nodeType && 3 === r.nodeType && (n = n.length === o ? Dm(n.nextSibling, !0) : n.parentNode, r = 0 === i ? Dm(r.previousSibling, !1) : r.parentNode, n && n === r)) ? n : a && 3 === a.nodeType ? a.parentNode : a }(c.getBody(), p()) }, getSel: m, setRng: g, getRng: p, getStart: function (e) { return Rm(c.getBody(), p(), e) }, getEnd: function (e) { return Tm(c.getBody(), p(), e) }, getSelectedBlocks: function (e, t) { return function (e, t, n, r) { var o, i = [], a = e.getRoot(); if (n = e.getParent(n || Rm(a, t, t.collapsed), e.isBlock), r = e.getParent(r || Tm(a, t, t.collapsed), e.isBlock), n && n !== a && i.push(n), n && r && n !== r) for (var u = new Xr(o = n, a); (o = u.next()) && o !== r;) e.isBlock(o) && i.push(o); return r && n !== r && r !== a && i.push(r), i }(u, p(), e, t) }, normalize: function () { var e = p(), t = m(); if (1 < Lf(t).length || !Vf(c)) return e; var n = yd(u, e); return n.each(function (e) { g(e, h()) }), n.getOr(e) }, selectorChanged: function (e, t) { return r(e, t), v }, 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 r = e, o = t, void((n = c).inline ? $d : Kd)(n, r, o); var n, r, o }, placeCaretAt: function (e, t) { return g(fd(e, t, c.getDoc())) }, getBoundingClientRect: function () { var e = p(); return e.collapsed ? $s.fromRangeStart(e).getClientRects()[0] : e.getBoundingClientRect() }, destroy: function () { s = l = f = null, b.destroy() } }, y = od(v), b = cd(v, c); return v.bookmarkManager = y, v.controlSelection = b, v }, Zv = function (e, a, u) { e.addNodeFilter("font", function (e) { W(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, W(["color", "face", "size"], function (e) { t.attr(e, null) }) }) }) }, ey = function (e, t) { var n, r = xi(); t.convert_fonts_to_spans && Zv(e, r, kt.explode(t.font_size_legacy_values)), n = r, e.addNodeFilter("strike", function (e) { W(e, function (e) { var t = n.parse(e.attr("style")); t["text-decoration"] = "line-through", e.name = "span", e.attr("style", n.serialize(t)) }) }) }, ty = function (e) { var t, n = decodeURIComponent(e).split(","), r = /data:([^;]+)/.exec(n[0]); return r && (t = r[1]), { type: t, data: n[1] } }, ny = function (e, t) { var n; try { n = atob(t) } catch (Ok) { return U.none() } for (var r = new Uint8Array(n.length), o = 0; o < r.length; o++) r[o] = n.charCodeAt(o); return U.some(new Blob([r], { type: e })) }, ry = function (e) { return 0 === e.indexOf("blob:") ? (i = e, new Br(function (e, t) { var n = function () { t("Cannot convert " + i + " to Blob. Resource might not exist or is inaccessible.") }; try { var r = new XMLHttpRequest; 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:") ? (o = e, new Br(function (e) { var t = ty(o), n = t.type, r = t.data; ny(n, r).fold(function () { return e(new Blob([])) }, e) })) : null; var i, o }, oy = 0, iy = function (e) { return (e || "blobid") + oy++ }, ay = function (r, o, i, t) { var e, n, a, u, s; 0 !== o.src.indexOf("blob:") ? (n = (e = ty(o.src)).data, a = e.type, u = n, (s = r.getByData(u, a)) ? i({ image: o, blobInfo: s }) : ry(o.src).then(function (e) { s = r.create(iy(), e, u), r.add(s), i({ image: o, blobInfo: s }) }, function (e) { t(e) })) : (s = r.getByUri(o.src)) ? i({ image: o, blobInfo: s }) : ry(o.src).then(function (t) { var n; n = t, new Br(function (e) { var t = new FileReader; t.onloadend = function () { e(t.result) }, t.readAsDataURL(n) }).then(function (e) { u = ty(e).data, s = r.create(iy(), t, u), r.add(s), i({ image: o, blobInfo: s }) }) }, function (e) { t(e) }) }; function uy(i, a) { var u = {}; return { findAll: function (e, n) { n = n || k; var t, r = H((t = e) ? oe(t.getElementsByTagName("img")) : [], function (e) { var t = e.src; return !!wt.fileApi && (!e.hasAttribute("data-mce-bogus") && (!e.hasAttribute("data-mce-placeholder") && (!(!t || t === wt.transparentSrc) && (0 === t.indexOf("blob:") ? !i.isUploaded(t) && n(e) : 0 === t.indexOf("data:") && n(e))))) }), o = z(r, function (n) { if (u[n.src] !== undefined) return new Br(function (t) { u[n.src].then(function (e) { return "string" == typeof e ? e : void t({ image: n, blobInfo: e.blobInfo }) }) }); var e = new Br(function (e, t) { ay(a, n, e, t) }).then(function (e) { return delete u[e.image.src], e })["catch"](function (e) { return delete u[n.src], e }); return u[n.src] = e }); return Br.all(o) } } } var sy, cy, ly = function (e, t, n, r) { (e.padd_empty_with_br || t.insert) && n[r.name] ? r.empty().append(new Km("br", 1)).shortEnded = !0 : r.empty().append(new Km("#text", 3)).value = lo }, fy = function (e, t) { return e && e.firstChild && e.firstChild === e.lastChild && e.firstChild.name === t }, dy = 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 }) }, my = function (e, o) { var i = o.blob_cache, t = function (t) { var e, n, r = t.attr("src"); (e = t).attr("src") === wt.transparentSrc || e.attr("data-mce-placeholder") || t.attr("data-mce-bogus") || ((n = /data:([^;]+);base64,([a-z0-9\+\/=]+)/i.exec(r)) ? U.some({ type: n[1], data: decodeURIComponent(n[2]) }) : U.none()).filter(function () { return function (e, t) { if (t.images_dataimg_filter) { var n = new Image; return n.src = e.attr("src"), ue(e.attributes.map, function (e, t) { n.setAttribute(t, e) }), t.images_dataimg_filter(n) } return !0 }(t, o) }).bind(function (e) { var t = e.type, n = e.data; return U.from(i.getByData(n, t)).orThunk(function () { return ny(t, n).map(function (e) { var t = i.create(iy(), e, n); return i.add(t), t }) }) }).each(function (e) { t.attr("src", e.blobUri()) }) }; i && e.addAttributeFilter("src", function (e) { return W(e, t) }) }, py = function (e, g) { var h = e.schema; g.remove_trailing_brs && e.addNodeFilter("br", function (e, t, n) { var r, o, i, a, u, s, c, l, f = e.length, d = kt.extend({}, h.getBlockElements()), m = h.getNonEmptyElements(), p = h.getWhiteSpaceElements(); 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")) { "br" === s && (o = null); break } u = u.prev } o && (o.remove(), dy(h, m, p, i) && (c = h.getElementRule(i.name)) && (c.removeEmpty ? i.remove() : c.paddEmpty && ly(g, n, d, i))) } else { for (a = o; i && i.firstChild === a && i.lastChild === a && !d[(a = i).name];) i = i.parent; a === i && !0 !== g.padd_empty_with_br && ((l = new Km("#text", 3)).value = lo, o.replace(l)) } }), e.addAttributeFilter("href", function (e) { var t, n, r = e.length; if (!g.allow_unsafe_link_target) for (; r--;) { var o = e[r]; "a" === o.name && "_blank" === o.attr("target") && o.attr("rel", (t = o.attr("rel"), n = t ? kt.trim(t) : "", /\b(noopener)\b/g.test(n) ? n : n.split(" ").filter(function (e) { return 0 < e.length }).concat(["noopener"]).sort().join(" "))) } }), g.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;); }), g.fix_list_elements && e.addNodeFilter("ul,ol", function (e) { for (var t, n, r, o = e.length; o--;) { "ul" !== (r = (n = e[o]).parent).name && "ol" !== r.name || (n.prev && "li" === n.prev.name ? n.prev.append(n) : ((t = new Km("li", 1)).attr("style", "list-style-type: none"), n.wrap(t))) } }), g.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) } }), my(e, g) }, gy = kt.makeMap, hy = kt.each, vy = kt.explode, yy = kt.extend, by = function (A, R) { void 0 === R && (R = Ci()); var T = {}, D = [], O = {}, B = {}; (A = A || {}).validate = !("validate" in A) || A.validate, A.root_name = A.root_name || "body"; var e, t, P = function (e) { var t, n, r = e.name; r in T && ((n = O[r]) ? n.push(e) : O[r] = [e]), t = D.length; for (; t--;)(r = D[t].name) in e.attributes.map && ((n = B[r]) ? n.push(e) : B[r] = [e]); return e }, n = { schema: R, addAttributeFilter: function (e, n) { hy(vy(e), function (e) { for (var t = 0; t < D.length; t++) if (D[t].name === e) return void D[t].callbacks.push(n); D.push({ name: e, callbacks: [n] }) }) }, getAttributeFilters: function () { return [].concat(D) }, addNodeFilter: function (e, n) { hy(vy(e), function (e) { var t = T[e]; t || (T[e] = t = []), t.push(n) }) }, getNodeFilters: function () { var e = []; for (var t in T) T.hasOwnProperty(t) && e.push({ name: t, callbacks: T[t] }); return e }, filterNode: P, parse: function (e, u) { var t, n, r, o, i, s, a, c, l = []; u = u || {}, O = {}, B = {}; var f, d = yy(gy("script,style,head,html,body,title,meta,param"), R.getBlockElements()), m = R.getNonEmptyElements(), p = R.children, g = A.validate, h = "forced_root_block" in u ? u.forced_root_block : A.forced_root_block, v = !1 === (f = h) ? "" : !0 === f ? "p" : f, y = R.getWhiteSpaceElements(), b = /^[ \t\r\n]+/, C = /[ \t\r\n]+$/, w = /[ \t\r\n]+/g, x = /^[ \t\r\n]+$/, S = y.hasOwnProperty(u.context) || y.hasOwnProperty(A.root_name), N = function (e, t) { var n, r = new Km(e, t); return e in T && ((n = O[e]) ? n.push(r) : O[e] = [r]), r }, E = function (e) { for (var t, n, r, o = R.getBlockElements(), i = e.prev; i && 3 === i.type;) { if (0 < (n = i.value.replace(C, "")).length) return void(i.value = n); if (t = i.next) { if (3 === t.type && t.value.length) { i = i.prev; continue } if (!o[t.name] && "script" !== t.name && "style" !== t.name) { i = i.prev; continue } } r = i.prev, i.remove(), i = r } }, k = ip({ validate: g, allow_html_data_urls: A.allow_html_data_urls, allow_svg_data_urls: A.allow_svg_data_urls, allow_script_urls: A.allow_script_urls, allow_conditional_comments: A.allow_conditional_comments, preserve_cdata: A.preserve_cdata, 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) { c.append(N("#cdata", 4)).value = e }, text: function (e, t) { var n, r, o; S || (e = e.replace(w, " "), r = c.lastChild, o = d, r && (o[r.name] || "br" === r.name) && (e = e.replace(b, ""))), 0 !== e.length && ((n = N("#text", 3)).raw = !!t, c.append(n).value = e) }, comment: function (e) { c.append(N("#comment", 8)).value = e }, pi: function (e, t) { c.append(N(e, 7)).value = t, E(c) }, doctype: function (e) { c.append(N("#doctype", 10)).value = e, E(c) }, start: function (e, t, n) { var r, o, i, a, u = g ? R.getElementRule(e) : {}; if (u) { for ((r = N(u.outputName || e, 1)).attributes = t, r.shortEnded = n, c.append(r), (a = p[c.name]) && p[r.name] && !a[r.name] && l.push(r), o = D.length; o--;)(i = D[o].name) in t.map && ((s = B[i]) ? s.push(r) : B[i] = [r]); d[e] && E(r), n || (c = r), !S && y[e] && (S = !0) } }, end: function (e) { var t, n, r, o, i, a = g ? R.getElementRule(e) : {}; if (a) { if (d[e] && !S) { if ((t = c.firstChild) && 3 === t.type) if (0 < (n = t.value.replace(b, "")).length) t.value = n, t = t.next; else for (r = t.next, t.remove(), t = r; t && 3 === t.type;) n = t.value, r = t.next, 0 !== n.length && !x.test(n) || (t.remove(), t = r), t = r; if ((t = c.lastChild) && 3 === t.type) if (0 < (n = t.value.replace(C, "")).length) t.value = n, t = t.prev; else for (r = t.prev, t.remove(), t = r; t && 3 === t.type;) n = t.value, r = t.prev, 0 !== n.length && !x.test(n) || (t.remove(), t = r), t = r } if (S && y[e] && (S = !1), a.removeEmpty && dy(R, m, y, c)) return o = c.parent, d[c.name] ? c.empty().remove() : c.unwrap(), void(c = o); a.paddEmpty && (fy(i = c, "#text") && i.firstChild.value === lo || dy(R, m, y, c)) && ly(A, u, d, c), c = c.parent } } }, R), _ = c = new Km(u.context || A.root_name, 11); if (k.parse(e, u.format), g && l.length && (u.context ? u.invalid = !0 : function (e) { for (var t, n, r, o, i, a, u, s, c, l, f = gy("tr,td,th,tbody,thead,tfoot,table"), d = R.getNonEmptyElements(), m = R.getWhiteSpaceElements(), p = R.getTextBlockElements(), g = R.getSpecialElements(), h = 0; h < e.length; h++) if ((t = e[h]).parent && !t.fixed) if (p[t.name] && "li" === t.parent.name) { for (c = t.next; c && p[c.name];) c.name = "li", c.fixed = !0, t.parent.insert(c, t.parent), c = c.next; t.unwrap(t) } else { for (r = [t], n = t.parent; n && !R.isValidChild(n.name, t.name) && !f[n.name]; n = n.parent) r.push(n); if (n && 1 < r.length) { for (r.reverse(), o = i = P(r[0].clone()), s = 0; s < r.length - 1; s++) { for (R.isValidChild(i.name, r[s].name) ? (a = P(r[s].clone()), i.append(a)) : a = i, u = r[s].firstChild; u && u !== r[s + 1];) l = u.next, a.append(u), u = l; i = a } dy(R, d, m, o) ? n.insert(t, r[0], !0) : (n.insert(o, r[0], !0), n.insert(t, o)), n = r[0], (dy(R, d, m, n) || fy(n, "br")) && n.empty().remove() } else if (t.parent) { if ("li" === t.name) { if ((c = t.prev) && ("ul" === c.name || "ol" === c.name)) { c.append(t); continue } if ((c = t.next) && ("ul" === c.name || "ol" === c.name)) { c.insert(t, c.firstChild, !0); continue } t.wrap(P(new Km("ul", 1))); continue } R.isValidChild(t.parent.name, "div") && R.isValidChild("div", t.name) ? t.wrap(P(new Km("div", 1))) : g[t.name] ? t.empty().remove() : t.unwrap() } } }(l)), v && ("body" === _.name || u.isRootContent) && function () { var e, t, n = _.firstChild, r = function (e) { e && ((n = e.firstChild) && 3 === n.type && (n.value = n.value.replace(b, "")), (n = e.lastChild) && 3 === n.type && (n.value = n.value.replace(C, ""))) }; if (R.isValidChild(_.name, v.toLowerCase())) { for (; n;) e = n.next, 3 === n.type || 1 === n.type && "p" !== n.name && !d[n.name] && !n.attr("data-mce-type") ? (t || ((t = N(v, 1)).attr(A.forced_root_block_attrs), _.insert(t, n)), t.append(n)) : (r(t), t = null), n = e; r(t) } }(), !u.invalid) { for (a in O) if (O.hasOwnProperty(a)) { for (s = T[a], o = (t = O[a]).length; o--;) t[o].parent || t.splice(o, 1); for (n = 0, r = s.length; n < r; n++) s[n](t, a, u) } for (n = 0, r = D.length; n < r; n++) if ((s = D[n]).name in B) { for (o = (t = B[s.name]).length; o--;) t[o].parent || t.splice(o, 1); for (o = 0, i = s.callbacks.length; o < i; o++) s.callbacks[o](t, s.name, u) } } return _ } }; return py(n, A), e = n, (t = A).inline_styles && ey(e, t), n }, Cy = function (e, t, n) { return o = n, (r = e) && r.hasEventListeners("PreProcess") && !o.no_events ? function (e, t, n) { var r, o, i = e.dom; t = t.cloneNode(!0); var a, u, s = document.implementation; return s.createHTMLDocument && (r = s.createHTMLDocument(""), kt.each("BODY" === t.nodeName ? t.childNodes : [t], function (e) { r.body.appendChild(r.importNode(e, !0)) }), t = "BODY" !== t.nodeName ? r.body.firstChild : r.body, o = i.doc, i.doc = r), a = e, u = ke(ke({}, n), { node: t }), a.fire("PreProcess", u), o && (i.doc = o), t }(e, t, n) : t; var r, o }, wy = function (e, t, n) { -1 === kt.inArray(t, n) && (e.addAttributeFilter(n, function (e, t) { for (var n = e.length; n--;) e[n].attr(t, null) }), t.push(n)) }, xy = function (e, t, n, r, o) { var i, a, u, s, c, l, f = (i = r, Jm(t, n).serialize(i)); return a = e, s = f, (u = o).no_events || !a ? s : (c = a, l = ke(ke({}, u), { content: s }), c.fire("PostProcess", l).content) }, Sy = function (y, b) { var e = ["data-mce-selected"], C = b && b.dom ? b.dom : Eu.DOM, w = b && b.schema ? b.schema : Ci(y); y.entity_encoding = y.entity_encoding || "named", y.remove_trailing_brs = !("remove_trailing_brs" in y) || y.remove_trailing_brs; var t, s, c, x = by(y, w); s = y, c = C, (t = x).addAttributeFilter("data-mce-tabindex", function (e, t) { for (var n, r = e.length; r--;)(n = e[r]).attr("tabindex", n.attr("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]).attr(i)) !== undefined ? (n.attr(t, 0 < r.length ? r : null), n.attr(i, null)) : (r = n.attr(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]).attr("data-mce-type") || n.cleanup || (U.from(r.firstChild).exists(function (e) { return !mo(e.value) }) ? r.unwrap() : r.remove()) } }), t.addNodeFilter("noscript", function (e) { for (var t, n = e.length; n--;)(t = e[n].firstChild) && (t.value = ci.decode(t.value)) }), t.addNodeFilter("script,style", function (e, t) { for (var n, r, o, i = e.length, a = function (e) { return e.replace(/(<!--\[CDATA\[|\]\]-->)/g, "\n").replace(/^[\r\n]*|[\r\n]*$/g, "").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi, "").replace(/\s*(\/\*\s*\]\]>\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 = "// <![CDATA[\n" + a(r) + "\n// ]]>")) : "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--;) t = e[n], s.preserve_cdata && 0 === t.value.indexOf("[CDATA[") ? (t.name = "#cdata", t.type = 4, t.value = c.decode(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 || n.attr("type") || n.attr("type", "text")) }), t.addAttributeFilter("data-mce-type", function (e) { W(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,data-mce-placeholder", function (e, t) { for (var n = e.length; n--;) e[n].attr(t, null) }); return { schema: w, addNodeFilter: x.addNodeFilter, addAttributeFilter: x.addAttributeFilter, serialize: function (e, t) { void 0 === t && (t = {}); var n, r, o, i, a, u, s, c, l, f, d, m, p = ke({ format: "html" }, t), g = Cy(b, e, p), h = (n = C, r = g, i = po((o = p).getInner ? r.innerHTML : n.getOuterHTML(r)), o.selection || so(At.fromDom(r)) ? i : kt.trim(i)), v = (a = x, u = h, d = (s = p).selection ? ke({ forced_root_block: !1 }, s) : s, m = a.parse(u, d), l = function (e) { return e && "br" === e.name }, f = m.lastChild, !l(f) || l(c = f.prev) && (f.remove(), c.remove()), m); return "tree" === p.format ? v : xy(b, y, w, v, p) }, addRules: function (e) { w.addValidElements(e) }, setRules: function (e) { w.setValidElements(e) }, addTempAttr: N(wy, x, e), getTempAttrs: function () { return e }, getNodeFilters: x.getNodeFilters, getAttributeFilters: x.getAttributeFilters } }, Ny = function (e, t) { var n = Sy(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, getNodeFilters: n.getNodeFilters, getAttributeFilters: n.getAttributeFilters } }, Ey = function (e, t) { void 0 === t && (t = {}); var n, r, o = t.format ? t.format : "html"; return n = t, r = o, Vv(e).editor.getContent(n, r) }, ky = function (e, t, n) { return void 0 === n && (n = {}), r = t, o = n, Vv(e).editor.setContent(r, o); var r, o }, _y = Eu.DOM, Ay = function (e) { return U.from(e).each(function (e) { return e.destroy() }) }, Ry = function (e) { var t, n, r, o, i; e.removed || (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 && _y.remove(o.nextSibling), e.fire("remove"), e.editorManager.remove(e), !e.inline && r && (i = e, _y.setStyle(i.id, "display", i.orgDisplay)), e.fire("detach"), _y.remove(e.getContainer()), Ay(t), Ay(n), e.destroy()) }, Ty = 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(), Ay(i), Ay(a)), (r = (n = e).formElement) && (r._mceOldSubmit && (r.submit = r._mceOldSubmit, r._mceOldSubmit = null), _y.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()) }, Dy = Object.prototype.hasOwnProperty, Oy = (sy = function (e, t) { return _(e) && _(t) ? Oy(e, t) : 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) Dy.call(o, i) && (n[i] = sy(n[i], o[i])) } return n }), By = dt().deviceType, Py = By.isTouch(), Ly = By.isPhone(), Iy = By.isTablet(), My = ["lists", "autolink", "autosave"], Fy = { table_grid: !1, object_resizing: !1, resize: !1 }, Uy = function (e) { var t = S(e) ? e.join(" ") : e, n = z(q(t) ? t.split(" ") : [], $e); return H(n, function (e) { return 0 < e.length }) }, zy = function (n, e) { var t, r, o = de(e, function (e, t) { return M(n, t) }); return t = o.t, r = o.f, { sections: E(t), settings: E(r) } }, jy = function (e, t) { return e.sections().hasOwnProperty(t) }, Hy = function (e, t) { return ge(e, "toolbar_mode").orThunk(function () { return ge(e, "toolbar_drawer").map(function (e) { return !1 === e ? "wrap" : e }) }).getOr(t) }, Vy = function (e, t, n, r) { return e && (a = i = "mobile", u = (o = t).sections(), jy(o, i) && u[i].theme === a) ? H(r, N(M, My)) : e && jy(t, "mobile") ? r : n; var o, i, a, u }, qy = function (e, t, n, r) { var o, i, a, u = Uy(n.forced_plugins), s = Uy(r.plugins), c = jy(o = t, i = "mobile") ? o.sections()[i] : {}, l = c.plugins ? Uy(c.plugins) : s, f = Vy(e, t, s, l), d = (a = f, [].concat(Uy(u)).concat(Uy(a))); if (wt.browser.isIE() && M(d, "rtc")) throw new Error("RTC plugin is not supported on IE 11."); return kt.extend(r, { plugins: d.join(" ") }) }, $y = function (e, t, n, r, o) { var i, a, u, s, c, l, f, d = e ? { mobile: (i = o.mobile || {}, a = t, u = { resize: !1, toolbar_mode: Hy(i, "scrolling"), toolbar_sticky: !1 }, ke(ke(ke({}, Fy), u), a ? { menubar: !1 } : {})) } : {}, m = zy(["mobile"], Oy(d, o)), p = kt.extend(n, r, m.settings(), (f = m, e && jy(f, "mobile") ? function (e, t, n) { void 0 === n && (n = {}); var r = e.sections(), o = r.hasOwnProperty(t) ? r[t] : {}; return kt.extend({}, n, o) }(m, "mobile") : {}), { validate: !0, external_plugins: (s = r, c = m.settings(), l = c.external_plugins ? c.external_plugins : {}, s && s.external_plugins ? kt.extend({}, s.external_plugins, l) : l) }); return qy(e, m, r, p) }, Wy = function (e, t, n, r, o) { var i, a, u, s, c = (i = n, a = Py, u = e, s = { id: t, theme: "silver", toolbar_mode: Hy(o, "floating"), 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: "<!DOCTYPE html>", visual: !0, font_size_legacy_values: "xx-small,small,medium,large,x-large,xx-large,300%", forced_root_block: "p", hidden_input: !0, inline_styles: !0, convert_fonts_to_spans: !0, indent: !0, 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: u.convertURL, url_converter_scope: u }, ke(ke({}, s), a ? Fy : {})); return $y(Ly || Iy, Ly, c, r, o) }, Ky = function (e, t, n) { return U.from(t.settings[n]).filter(e) }, Xy = 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) ? W(0 < i.indexOf("=") ? i.split(/[;,](?![^=;,]*(?:[;,]|$))/) : i.split(","), function (e) { var t = e.split("="); 1 < t.length ? a[kt.trim(t[0])] = kt.trim(t[1]) : a[kt.trim(t[0])] = kt.trim(t[0]) }) : a = i, a) : "string" === r ? Ky(q, e, t).getOr(n) : "number" === r ? Ky(O, e, t).getOr(n) : "boolean" === r ? Ky(A, e, t).getOr(n) : "object" === r ? Ky(_, e, t).getOr(n) : "array" === r ? Ky(S, e, t).getOr(n) : "string[]" === r ? Ky((o = q, function (e) { return S(e) && Q(e, o) }), e, t).getOr(n) : "function" === r ? Ky(T, e, t).getOr(n) : u }, Yy = (cy = {}, { add: function (e, t) { cy[e] = t }, get: function (e) { return cy[e] ? cy[e] : { icons: {} } }, has: function (e) { return he(cy, e) } }), Gy = function (e, t) { return t.dom[e] }, Jy = function (e, t) { return parseInt(er(t, e), 10) }, Qy = N(Gy, "clientWidth"), Zy = N(Gy, "clientHeight"), eb = N(Jy, "margin-top"), tb = N(Jy, "margin-left"), nb = function (e, t, n) { var r, o, i, a, u, s, c, l, f, d, m, p = At.fromDom(e.getBody()), g = e.inline ? p : (r = p, At.fromDom(Vt(r).dom.documentElement)), h = (o = e.inline, a = t, u = n, s = (i = g).dom.getBoundingClientRect(), { x: a - (o ? s.left + i.dom.clientLeft + tb(i) : 0), y: u - (o ? s.top + i.dom.clientTop + eb(i) : 0) }); return l = h.x, f = h.y, d = Qy(c = g), m = Zy(c), 0 <= l && 0 <= f && l <= d && f <= m }, rb = function (e) { var t, n = e.inline ? e.getBody() : e.getContentAreaContainer(); return t = n, U.from(t).map(At.fromDom).map(hn).getOr(!1) }; function ob(n) { var t, o = [], i = function () { var e, t = n.theme; return t && t.getNotificationManagerImpl ? t.getNotificationManagerImpl() : { open: e = function () { throw new Error("Theme did not provide a NotificationManager implementation.") }, close: e, reposition: e, getArgs: e } }, a = function () { return U.from(o[0]) }, u = function () { 0 < o.length && i().reposition(o) }, s = function (t) { G(o, function (e) { return e === t }).each(function (e) { o.splice(e, 1) }) }, r = function (r, e) { if (void 0 === e && (e = !0), !n.removed && rb(n)) return e && n.fire("BeforeOpenNotification", { notification: r }), Y(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 () { s(t), u(), a().fold(function () { return n.focus() }, function (e) { return At.fromDom(e.getEl()).dom.focus() }) }); return e = t, o.push(e), u(), n.fire("OpenNotification", ke({}, t)), t }) }; return (t = n).on("SkinLoaded", function () { // var e = t.getParam("service_message"); // e && r({ // text: e, // type: "warning", // timeout: 0 // }, !1) }), t.on("ResizeEditor ResizeWindow NodeChange", function () { qr.requestAnimationFrame(u) }), t.on("remove", function () { W(o.slice(), function (e) { i().close(e) }) }), { open: r, close: function () { a().each(function (e) { i().close(e), s(e), u() }) }, getNotifications: function () { return o } } } var ib = Uu.PluginManager, ab = Uu.ThemeManager; var ub = function (n) { var r = [], o = function () { var e, t = n.theme; return t && t.getWindowManagerImpl ? t.getWindowManagerImpl() : { open: e = function () { throw new Error("Theme did not provide a WindowManager implementation.") }, openUrl: e, alert: e, confirm: e, close: e, getParams: e, setParams: e } }, i = function (e, t) { return function () { return t ? t.apply(e, arguments) : undefined } }, a = function (e) { var t; r.push(e), t = e, n.fire("OpenWindow", { dialog: t }) }, u = function (t) { var e; e = t, n.fire("CloseWindow", { dialog: e }), 0 === (r = H(r, function (e) { return e !== t })).length && n.focus() }, s = function (e) { n.editorManager.setActive(n), fm(n); var t = e(); return a(t), t }; return n.on("remove", function () { W(r, function (e) { o().close(e) }) }), { open: function (e, t) { return s(function () { return o().open(e, t, u) }) }, openUrl: function (e) { return s(function () { return o().openUrl(e, u) }) }, alert: function (e, t, n) { o().alert(e, i(n || this, t)) }, confirm: function (e, t, n) { o().confirm(e, i(n || this, t)) }, close: function () { U.from(r[r.length - 1]).each(function (e) { o().close(e), u(e) }) } } }, sb = function (e, t) { e.notificationManager.open({ type: "error", text: t }) }, cb = function (e, t) { e._skinLoaded ? sb(e, t) : e.on("SkinLoaded", function () { sb(e, t) }) }, lb = function (e, t, n) { var r, o; r = t, o = { message: n }, e.fire(r, o), console.error(n) }, fb = function (e, t, n) { return n ? "Failed to load " + e + ": " + n + " from url " + t : "Failed to load " + e + " url: " + t }, db = function (e, t, n) { lb(e, "PluginLoadError", fb("plugin", t, n)) }, mb = 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, _e([e], t)) : r.log.apply(r, _e([e], t))) }, pb = function (t) { var e, n, r = (n = (e = t).getParam("content_css"), q(n) ? z(n.split(","), $e) : S(n) ? n : !1 === n || e.inline ? [] : ["default"]), o = t.editorManager.baseURL + "/skins/content", i = "content" + t.editorManager.suffix + ".css", a = !0 === t.inline; return z(r, function (e) { return /^[a-z0-9\-]+$/i.test(e) && !a ? o + "/" + e + "/" + i : t.documentBaseURI.toAbsolute(e) }) }; function gb(u, s) { var o = {}, n = function (e, r, o, t) { var i = new XMLHttpRequest; i.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) }; var n = new FormData; n.append("file", e.blob(), e.filename()), i.send(n) }, c = function (e, t) { return { url: t, blobInfo: e, status: !0 } }, l = function (e, t, n) { return { url: "", blobInfo: e, status: !1, error: { message: t, options: n } } }, f = function (e, t) { kt.each(o[e], function (e) { e(t) }), delete o[e] }, r = function (e, r) { return e = kt.grep(e, function (e) { return !u.isUploaded(e.blobUri()) }), Br.all(kt.map(e, function (e) { return u.isPending(e.blobUri()) ? (t = e.blobUri(), new Br(function (e) { o[t] = o[t] || [], o[t].push(e) })) : (i = e, n = s.handler, a = r, u.markPending(i.blobUri()), new Br(function (r) { var t; try { var o = function () { t && t.close() }; n(i, function (e) { o(), u.markUploaded(i.blobUri(), e), f(i.blobUri(), c(i, e)), r(c(i, e)) }, function (e, t) { var n = t || {}; o(), u.removeFailed(i.blobUri()), f(i.blobUri(), l(i, e, n)), r(l(i, e, n)) }, function (e) { e < 0 || 100 < e || (t = t || a()).progressBar.value(e) }) } catch (e) { r(l(i, e.message, {})) } })); var i, n, a, t })) }; return !1 === T(s.handler) && (s.handler = n), { upload: function (e, t) { return s.url || s.handler !== n ? r(e, t) : new Br(function (e) { e([]) }) } } } var hb = 0, vb = function (e) { return e + hb++ + (t = function () { return Math.round(4294967295 * Math.random()).toString(36) }, "s" + (new Date).getTime().toString(36) + t() + t() + t()); var t }, yb = function (s) { var n, i, e, t, r, o, a, u, c, l = (n = [], i = function (e) { if (!e.blob || !e.base64) throw new Error("blob and base64 representations of the image are required for BlobInfo to be created"); var t = e.id || vb("blobid"), n = e.name || t, r = e.blob; return { id: E(t), name: E(n), filename: E(e.filename || n + "." + ({ "image/jpeg": "jpg", "image/jpg": "jpg", "image/gif": "gif", "image/png": "png", "image/apng": "apng", "image/avif": "avif", "image/svg+xml": "svg", "image/webp": "webp", "image/bmp": "bmp", "image/tiff": "tiff" } [r.type.toLowerCase()] || "dat")), blob: E(r), base64: E(e.base64), blobUri: E(e.blobUri || URL.createObjectURL(r)), uri: E(e.uri) } }, { create: function (e, t, n, r, o) { if (q(e)) return i({ id: e, name: r, filename: o, blob: t, base64: n }); if (_(e)) return i(e); throw new Error("Unknown input type") }, add: function (e) { t(e.id()) || n.push(e) }, get: t = function (t) { return e(function (e) { return e.id() === t }) }, getByUri: function (t) { return e(function (e) { return e.blobUri() === t }) }, getByData: function (t, n) { return e(function (e) { return e.base64() === t && e.blob().type === n }) }, findFirst: e = function (e) { return Y(n, e).getOrUndefined() }, removeByUri: function (t) { n = H(n, function (e) { return e.blobUri() !== t || (URL.revokeObjectURL(e.blobUri()), !1) }) }, destroy: function () { W(n, function (e) { URL.revokeObjectURL(e.blobUri()) }), n = [] } }), f = (a = {}, u = function (e, t) { return { status: e, resultUri: t } }, { hasBlobUri: c = function (e) { return e in a }, getResultUri: function (e) { var t = a[e]; return t ? t.resultUri : null }, isPending: function (e) { return !!c(e) && 1 === a[e].status }, isUploaded: function (e) { return !!c(e) && 2 === a[e].status }, markPending: function (e) { a[e] = u(1, null) }, markUploaded: function (e, t) { a[e] = u(2, t) }, removeFailed: function (e) { delete a[e] }, destroy: function () { a = {} } }), d = [], m = function (n) { var r = Ou(null); n.on("change AddUndo", function (e) { r.set(ke({}, e.level)) }); return { fireIfChanged: function () { var t = n.undoManager.data; re(t).filter(function (e) { return !Bv(r.get(), e) }).each(function (e) { n.setDirty(!0), n.fire("change", { level: e, lastLevel: te(t, t.length - 2).getOrNull() }) }) } } }(s), p = function (t) { return function (e) { return s.selection ? t(e) : [] } }, g = 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 }, h = function (e, t, n) { var r = 'src="' + n + '"' + (n === wt.transparentSrc ? ' data-mce-placeholder="1"' : ""); return e = g(e, 'src="' + t + '"', r), e = g(e, 'data-mce-src="' + t + '"', 'data-mce-src="' + n + '"') }, v = function (t, n) { W(s.undoManager.data, function (e) { "fragmented" === e.type ? e.fragments = z(e.fragments, function (e) { return h(e, t, n) }) : e.content = h(e.content, t, n) }) }, y = function () { return s.notificationManager.open({ text: s.translate("Image uploading..."), type: "info", timeout: -1, progressBar: !0 }) }, b = function (e, t) { var n, r = s.convertURL(t, "src"); v(e.src, t), s.$(e).attr({ src: s.getParam("images_reuse_filename", !1, "boolean") ? (n = t) + (-1 === n.indexOf("?") ? "?" : "&") + (new Date).getTime() : t, "data-mce-src": r }) }, C = function (n) { return r = r || gb(f, { url: s.getParam("images_upload_url", "", "string"), basePath: s.getParam("images_upload_base_path", "", "string"), credentials: s.getParam("images_upload_credentials", !1, "boolean"), handler: s.getParam("images_upload_handler", null, "function") }), S().then(p(function (u) { var e = z(u, function (e) { return e.blobInfo }); return r.upload(e, y).then(p(function (e) { var a = [], t = z(e, function (e, t) { var n, r, o = u[t].blobInfo, i = u[t].image; return e.status && s.getParam("images_replace_blob_uris", !0, "boolean") ? (l.removeByUri(i.src), b(i, e.url)) : e.error && (e.error.options.remove && (v(i.getAttribute("src"), wt.transparentSrc), a.push(i)), n = s, r = e.error.message, cb(n, Iu.translate(["Failed to upload image: {0}", r]))), { element: i, status: e.status, uploadUri: e.url, blobInfo: o } }); return 0 < t.length && m.fireIfChanged(), 0 < a.length && (Hv(s) ? console.error("Removing images on failed uploads is currently unsupported for RTC") : s.undoManager.transact(function () { W(a, function (e) { s.dom.remove(e), l.removeByUri(e.src) }) })), n && n(t), t })) })) }, w = function (e) { if (bc(s)) return C(e) }, x = function (t) { return !1 !== Q(d, function (e) { return e(t) }) && (0 !== t.getAttribute("src").indexOf("data:") || s.getParam("images_dataimg_filter", k, "function")(t)) }, S = function () { return (o = o || uy(f, l)).findAll(s.getBody(), x).then(p(function (e) { return e = H(e, function (e) { return "string" != typeof e || (cb(s, e), !1) }), W(e, function (e) { v(e.image.src, e.blobInfo.blobUri()), e.image.src = e.blobInfo.blobUri(), e.image.removeAttribute("data-mce-src") }), e })) }, N = function (e) { return e.replace(/src="(blob:[^"]+)"/g, function (e, n) { var t = f.getResultUri(n); if (t) return 'src="' + t + '"'; var r = l.getByUri(n); return (r = r || X(s.editorManager.get(), function (e, t) { return e || t.editorUpload && t.editorUpload.blobCache.getByUri(n) }, null)) ? 'src="data:' + r.blob().type + ";base64," + r.base64() + '"' : e }) }; return s.on("SetContent", function () { (bc(s) ? w : S)() }), s.on("RawSaveContent", function (e) { e.content = N(e.content) }), s.on("GetContent", function (e) { e.source_view || "raw" === e.format || "tree" === e.format || (e.content = N(e.content)) }), s.on("PostRender", function () { s.parser.addNodeFilter("img", function (e) { W(e, function (e) { var t, n = e.attr("src"); l.getByUri(n) || (t = f.getResultUri(n)) && e.attr("src", t) }) }) }), { blobCache: l, addFilter: function (e) { d.push(e) }, uploadImages: C, uploadImagesAuto: w, scanForImages: S, destroy: function () { l.destroy(), f.destroy(), o = r = null } } }; function bb(e) { var r, t, n = {}, o = function (e, t) { e && ("string" != typeof e ? kt.each(e, function (e, t) { o(t, e) }) : (S(t) || (t = [t]), kt.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 o((r = e.dom, 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", preserve_attributes: ["class", "style"] }, { inline: "span", styles: { fontWeight: "bold" } }, { inline: "b", remove: "all", preserve_attributes: ["class", "style"] }], italic: [{ inline: "em", remove: "all", preserve_attributes: ["class", "style"] }, { inline: "span", styles: { fontStyle: "italic" } }, { inline: "i", remove: "all", preserve_attributes: ["class", "style"] }], underline: [{ inline: "span", styles: { textDecoration: "underline" }, exact: !0 }, { inline: "u", remove: "all", preserve_attributes: ["class", "style"] }], strikethrough: [{ inline: "span", styles: { textDecoration: "line-through" }, exact: !0 }, { inline: "strike", remove: "all", preserve_attributes: ["class", "style"] }, { inline: "s", remove: "all", preserve_attributes: ["class", "style"] }], 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 }, lineheight: { selector: "h1,h2,h3,h4,h5,h6,p,li,td,th,div", defaultBlock: "p", styles: { lineHeight: "%value" } }, 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 (e, t, n) { return An(e) && e.hasAttribute("href") }, onformat: function (n, e, t) { kt.each(t, function (e, t) { r.setAttrib(n, t, e) }) } }, removeformat: [{ selector: "b,strong,em,i,font,u,strike,s,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 }] }, kt.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)), o(e.getParam("formats")), { get: function (e) { return e ? n[e] : n }, has: function (e) { return he(n, e) }, register: o, unregister: function (e) { return e && n[e] && delete n[e], n } } } var Cb, wb, xb = kt.each, Sb = Eu.DOM, Nb = function (e, t) { var n, o, r, m = t && t.schema || Ci({}), p = function (e) { o = "string" == typeof e ? { name: e, classes: [], attrs: {} } : e; var t, n, r = Sb.create(o.name); return t = r, (n = o).classes.length && Sb.addClass(t, n.classes.join(" ")), Sb.setAttribs(t, n.attrs), r }, g = function (n, e, t) { var r, o, i, a, u, s, c, l = 0 < e.length && e[0], f = l && l.name, d = (a = f, u = "string" != typeof (i = n) ? i.nodeName.toLowerCase() : i, s = m.getElementRule(u), !(!(c = s && s.parentsRequired) || !c.length) && (a && -1 !== kt.inArray(c, a) ? a : c[0])); if (d) f === d ? (o = e[0], e = e.slice(1)) : o = d; else if (l) o = e[0], e = e.slice(1); else if (!t) return n; return o && (r = p(o)).appendChild(n), t && (r || (r = Sb.create("div")).appendChild(n), kt.each(t, function (e) { var t = p(e); r.insertBefore(t, n) })), g(r, e, o && o.siblings) }; return e && e.length ? (o = e[0], n = p(o), (r = Sb.create("div")).appendChild(g(n, e.slice(1), o.siblings)), r) : "" }, Eb = function (e) { var t, a = { classes: [], attrs: {} }; return "*" !== (e = a.selector = kt.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 !== kt.inArray("checked disabled enabled read-only required".split(" "), n) && (a.attrs[n] = n) } var i; return "[" !== r || (i = o.match(/([\w\-]+)(?:\=\"([^\"]+))?/)) && (a.attrs[i[1]] = i[2]), "" })), a.name = t || "div", a }, kb = function (n, e) { var t, r, o, i = "", a = (o = n.getParam("preview_styles", "font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"), q(o) ? o : ""); if ("" === a) return ""; var u = function (e) { return e.replace(/%(\w+)/g, "") }; if ("string" == typeof e) { if (!(e = n.formatter.get(e))) return; e = e[0] } if ("preview" in e) { var s = ge(e, "preview"); if (s.is(!1)) return ""; a = s.getOr(a) } t = e.block || e.inline || "span"; var c, l = (c = e.selector) && "string" == typeof c ? (c = (c = c.split(/\s*,\s*/)[0]).replace(/\s*(~\+|~|\+|>)\s*/g, "$1"), kt.map(c.split(/(?:>|\s+(?![^\[\]]+\]))/), function (e) { var t = kt.map(e.split(/(?:~\+|~|\+)/), Eb), n = t.pop(); return t.length && (n.siblings = t), n }).reverse()) : [], f = l.length ? (l[0].name || (l[0].name = t), t = e.selector, Nb(l, n)) : Nb([t], n), d = Sb.select(t, f)[0] || f.firstChild; return xb(e.styles, function (e, t) { var n = u(e); n && Sb.setStyle(d, t, n) }), xb(e.attributes, function (e, t) { var n = u(e); n && Sb.setAttrib(d, t, n) }), xb(e.classes, function (e) { var t = u(e); Sb.hasClass(d, t) || Sb.addClass(d, t) }), n.fire("PreviewFormats"), Sb.setStyles(f, { position: "absolute", left: -65535 }), n.getBody().appendChild(f), r = Sb.getStyle(n.getBody(), "fontSize", !0), r = /px$/.test(r) ? parseInt(r, 10) : 0, xb(a.split(" "), function (e) { var t = Sb.getStyle(d, e, !0); if (!("background-color" === e && /transparent|rgba\s*\([^)]+,\s*0\)/.test(t) && (t = Sb.getStyle(n.getBody(), e, !0), "#ffffff" === Sb.toHex(t).toLowerCase()) || "color" === e && "#000000" === Sb.toHex(t).toLowerCase())) { if ("font-size" === e && /em|%$/.test(t)) { if (0 === r) return; t = parseFloat(t) / (/%$/.test(t) ? 100 : 1) * r + "px" } "border" === e && t && (i += "padding:0 2px;"), i += e + ":" + t + ";" } }), n.fire("AfterPreviewFormats"), Sb.remove(f), i }, _b = function (s) { var e = bb(s), u = Ou(null); return 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"]) }(s), Sh(s), { get: e.get, has: e.has, register: e.register, unregister: e.unregister, apply: function (e, t, n) { var r, o, i; r = e, o = t, i = n, qv(s).formatter.apply(r, o, i) }, remove: function (e, t, n, r) { var o, i, a, u; o = e, i = t, a = n, u = r, qv(s).formatter.remove(o, i, a, u) }, toggle: function (e, t, n) { var r, o, i; r = e, o = t, i = n, qv(s).formatter.toggle(r, o, i) }, match: function (e, t, n) { return r = e, o = t, i = n, qv(s).formatter.match(r, o, i); var r, o, i }, closest: function (e) { return t = e, qv(s).formatter.closest(t); var t }, matchAll: function (e, t) { return n = e, r = t, qv(s).formatter.matchAll(n, r); var n, r }, matchNode: function (e, t, n, r) { return o = e, i = t, a = n, u = r, qv(s).formatter.matchNode(o, i, a, u); var o, i, a, u }, canApply: function (e) { return t = e, qv(s).formatter.canApply(t); var t }, formatChanged: function (e, t, n) { return r = u, o = e, i = t, void 0 === (a = n) && (a = !1), qv(s).formatter.formatChanged(r, o, i, a); var r, o, i, a }, getCssText: N(kb, s) } }, Ab = function (n, r, o) { var i = Ou(!1), a = function (e) { Lv(r, !1, o), r.add({}, e) }; n.on("init", function () { r.add() }), n.on("BeforeExecCommand", function (e) { var t = e.command.toLowerCase(); "undo" !== t && "redo" !== t && "mcerepaint" !== t && (Iv(r, o), r.beforeChange()) }), n.on("ExecCommand", function (e) { var t = e.command.toLowerCase(); "undo" !== t && "redo" !== t && "mcerepaint" !== t && a(e) }), n.on("ObjectResizeStart cut", function () { r.beforeChange() }), n.on("SaveContent ObjectResized blur", a), n.on("dragend", a), n.on("keyup", function (e) { var t = e.keyCode; e.isDefaultPrevented() || ((33 <= t && t <= 36 || 37 <= t && t <= 40 || 45 === t || e.ctrlKey) && (a(), n.nodeChanged()), 46 !== t && 8 !== t || n.nodeChanged(), i.get() && r.typing && !1 === Bv(Rv(n), r.data[0]) && (!1 === n.isDirty() && (n.setDirty(!0), n.fire("change", { level: r.data[0], lastLevel: null })), n.fire("TypingUndo"), i.set(!1), n.nodeChanged())) }), n.on("keydown", function (e) { var t, n = e.keyCode; e.isDefaultPrevented() || (33 <= n && n <= 36 || 37 <= n && n <= 40 || 45 === n ? r.typing && a(e) : (t = e.ctrlKey && !e.altKey || e.metaKey, !(n < 16 || 20 < n) || 224 === n || 91 === n || r.typing || t || (r.beforeChange(), Lv(r, !0, o), r.add({}, e), i.set(!0)))) }), n.on("mousedown", function (e) { r.typing && a(e) }); n.on("input", function (e) { var t, n; e.inputType && ("insertReplacementText" === e.inputType || "insertText" === (n = e).inputType && null === n.data || ("insertFromPaste" === (t = e).inputType || "insertFromDrop" === t.inputType)) && a(e) }), n.on("AddUndo Undo Redo ClearUndos", function (e) { e.isDefaultPrevented() || n.nodeChanged() }) }, Rb = function (s) { var e, c = Ou(U.none()), l = Ou(0), f = Ou(0), d = { data: [], typing: !1, beforeChange: function () { var e, t; e = l, t = c, qv(s).undoManager.beforeChange(e, t) }, add: function (e, t) { return n = d, r = f, o = l, i = c, a = e, u = t, qv(s).undoManager.addUndoLevel(n, r, o, i, a, u); var n, r, o, i, a, u }, undo: function () { return e = d, t = l, n = f, qv(s).undoManager.undo(e, t, n); var e, t, n }, redo: function () { return e = s, t = f, n = d.data, qv(e).undoManager.redo(t, n); var e, t, n }, clear: function () { var e, t; e = d, t = f, qv(s).undoManager.clear(e, t) }, reset: function () { var e; e = d, qv(s).undoManager.reset(e) }, hasUndo: function () { return e = d, t = f, qv(s).undoManager.hasUndo(e, t); var e, t }, hasRedo: function () { return e = d, t = f, qv(s).undoManager.hasRedo(e, t); var e, t }, transact: function (e) { return t = d, n = l, r = e, qv(s).undoManager.transact(t, n, r); var t, n, r }, ignore: function (e) { var t, n; t = l, n = e, qv(s).undoManager.ignore(t, n) }, extra: function (e, t) { var n, r, o, i; n = d, r = f, o = e, i = t, qv(s).undoManager.extra(n, r, o, i) } }; return Hv(s) || Ab(s, d, l), (e = s).addShortcut("meta+z", "", "Undo"), e.addShortcut("meta+y,meta+shift+z", "", "Redo"), d }, Tb = [9, 27, ud.HOME, ud.END, 19, 20, 44, 144, 145, 33, 34, 45, 16, 17, 18, 91, 92, 93, ud.DOWN, ud.UP, ud.LEFT, ud.RIGHT].concat(wt.browser.isFirefox() ? [224] : []), Db = "data-mce-placeholder", Ob = function (e) { return "keydown" === e.type || "keyup" === e.type }, Bb = function (e) { var t = e.keyCode; return t === ud.BACKSPACE || t === ud.DELETE }, Pb = function (a) { var e, u = a.dom, s = vc(a), c = (e = a).getParam("placeholder", pc.getAttrib(e.getElement(), "placeholder"), "string"), l = function (e, t) { var n, r, o, i; ! function (e) { if (Ob(e)) { var t = e.keyCode; return !Bb(e) && (ud.metaKeyPressed(e) || e.altKey || 112 <= t && t <= 123 || M(Tb, t)) } return !1 }(e) && (n = a.getBody(), r = !(Ob(o = e) && !(Bb(o) || "keyup" === o.type && 229 === o.keyCode)) && function (e, t, n) { if ($o(At.fromDom(t), !1)) { var r = "" === n, o = t.firstElementChild; return !o || !e.getStyle(t.firstElementChild, "padding-left") && !e.getStyle(t.firstElementChild, "padding-right") && (r ? !e.isBlock(o) : n === o.nodeName.toLowerCase()) } return !1 }(u, n, s), "" !== u.getAttrib(n, Db) === r && !t || (u.setAttrib(n, Db, r ? c : null), u.setAttrib(n, "aria-placeholder", r ? c : null), i = r, a.fire("PlaceholderToggle", { state: i }), a.on(r ? "keydown" : "keyup", l), a.off(r ? "keyup" : "keydown", l))) }; c && a.on("init", function (e) { l(e, !0), a.on("change SetContent ExecCommand", l), a.on("paste", function (e) { return qr.setEditorTimeout(a, function () { return l(e) }) }) }) }, Lb = /[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/, Ib = function (e, t) { return Tt(At.fromDom(t), e.getParam("inline_boundaries_selector", "a[href],code,.mce-annotation", "string")) }, Mb = function (e) { return "rtl" === Eu.DOM.getStyle(e, "direction", !0) || (t = e.textContent, Lb.test(t)); var t }, Fb = function (e, t, n) { var r, o, i, a = (r = e, o = t, i = n, H(Eu.DOM.getParents(i.container(), "*", o), r)); return U.from(a[a.length - 1]) }, Ub = function (e, t) { if (!t) return t; var n = t.container(), r = t.offset(); return e ? yo(n) ? In(n.nextSibling) ? $s(n.nextSibling, 0) : $s.after(n) : wo(t) ? $s(n, r + 1) : t : yo(n) ? In(n.previousSibling) ? $s(n.previousSibling, n.previousSibling.data.length) : $s.before(n) : xo(t) ? $s(n, r - 1) : t }, zb = N(Ub, !0), jb = N(Ub, !1), Hb = function (e, t) { return Pt(e, t) ? Ar(t, function (e) { return ro(e) || io(e) }, (n = e, function (e) { return Ot(n, At.fromDom(e.dom.parentNode)) })) : U.none(); var n }, Vb = 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)) }, qb = function (e, t) { return { from: e, to: t } }, $b = function (e, t) { var n = At.fromDom(e), r = At.fromDom(t.container()); return Hb(n, r).map(function (e) { return { block: e, position: t } }) }, Wb = function (o, i, e) { var t = $b(o, $s.fromRangeStart(e)), n = t.bind(function (e) { return Ol(i, o, e.position).bind(function (e) { return $b(o, e).map(function (e) { return t = o, n = i, zn((r = e).position.getNode()) && !1 === $o(r.block) ? Ll(!1, r.block.dom).bind(function (e) { return e.isEqual(r.position) ? Ol(n, t, e).bind(function (e) { return $b(t, e) }) : U.some(r) }).getOr(r) : r; var t, n, r }) }) }); return ds(t, n, qb).filter(function (e) { return !1 === Ot((r = e).from.block, r.to.block) && $t((n = e).from.block).bind(function (t) { return $t(n.to.block).filter(function (e) { return Ot(t, e) }) }).isSome() && (!1 === Vn((t = e).from.block.dom) && !1 === Vn(t.to.block.dom)); var t, n, r }) }, Kb = function (e) { var t, n = (t = Gt(e), G(t, eo).fold(function () { return t }, function (e) { return t.slice(0, e) })); return W(n, pn), n }, Xb = function (e, t) { var n = Dp(t, e); return Y(n.reverse(), function (e) { return $o(e) }).each(pn) }, Yb = function (e, t, n, r) { if ($o(n)) return _p(n), Fl(n.dom); 0 === H(Xt(r), function (e) { return !$o(e) }).length && $o(t) && sn(r, At.fromTag("br")); var o = Ml(n.dom, $s.before(r.dom)); return W(Kb(t), function (e) { sn(r, e) }), Xb(e, t), o }, Gb = function (e, t, n) { if ($o(n)) return pn(n), $o(t) && _p(t), Fl(t.dom); var r = Ul(n.dom); return W(Kb(t), function (e) { fn(n, e) }), Xb(e, t), r }, Jb = function (e, t) { return Pt(t, e) ? (n = Dp(e, t), U.from(n[n.length - 1])) : U.none(); var n }, Qb = function (e, t) { Ll(e, t.dom).map(function (e) { return e.getNode() }).map(At.fromDom).filter(no).each(pn) }, Zb = function (e, t, n) { return Qb(!0, t), Qb(!1, n), Jb(t, n).fold(N(Gb, e, t, n), N(Yb, e, t, n)) }, eC = function (e, t, n, r) { return t ? Zb(e, r, n) : Zb(e, n, r) }, tC = function (t, n) { var e, r, o, i = At.fromDom(t.getBody()), a = (e = i.dom, r = n, ((o = t.selection.getRng()).collapsed ? Wb(e, r, o) : U.none()).bind(function (e) { return eC(i, n, e.from.block, e.to.block) })); return a.each(function (e) { t.selection.setRng(e.toRange()) }), a.isSome() }, nC = function (e, t) { var n = At.fromDom(t), r = N(Ot, e); return _r(n, uo, r).isSome() }, rC = function (e, t) { var n, r, o = Ml(e.dom, $s.fromRangeStart(t)).isNone(), i = Il(e.dom, $s.fromRangeEnd(t)).isNone(); return !(nC(n = e, (r = t).startContainer) || nC(n, r.endContainer)) && o && i }, oC = function (e) { var n, r, o, t, i = At.fromDom(e.getBody()), a = e.selection.getRng(); return rC(i, a) ? ((t = e).setContent(""), t.selection.setCursorLocation(), !0) : (n = i, r = e.selection, o = r.getRng(), ds(Hb(n, At.fromDom(o.startContainer)), Hb(n, At.fromDom(o.endContainer)), function (e, t) { return !1 === Ot(e, t) && (o.deleteContents(), eC(n, !0, e, t).each(function (e) { r.setRng(e.toRange()) }), !0) }).getOr(!1)) }, iC = function (e, t) { return !e.selection.isCollapsed() && oC(e) }, aC = Hn, uC = Vn, sC = function (e, t, n, r, o) { return U.from(t._selectionOverrides.showCaret(e, n, r, o)) }, cC = function (e, t) { var n, r; return e.fire("BeforeObjectSelected", { target: t }).isDefaultPrevented() ? U.none() : U.some(((r = (n = t).ownerDocument.createRange()).selectNode(n), r)) }, lC = function (e, t, n) { var r = ll(1, e.getBody(), t), o = $s.fromRangeStart(r), i = o.getNode(); if (Wc(i)) return sC(1, e, i, !o.isAtEnd(), !1); var a = o.getNode(!0); if (Wc(a)) return sC(1, e, a, !1, !1); var u = e.dom.getParent(o.getNode(), function (e) { return uC(e) || aC(e) }); return Wc(u) ? sC(1, e, u, !1, n) : U.none() }, fC = function (e, t, n) { return t.collapsed ? lC(e, t, n).getOr(t) : t }, dC = function (e) { return Np(e) || Cp(e) }, mC = function (e) { return Ep(e) || wp(e) }, pC = function (n, r, e, t, o, i) { var a, u; return sC(t, n, i.getNode(!o), o, !0).each(function (e) { var t; r.collapsed ? (t = r.cloneRange(), o ? t.setEnd(e.startContainer, e.startOffset) : t.setStart(e.endContainer, e.endOffset), t.deleteContents()) : r.deleteContents(), n.selection.setRng(e) }), a = n.dom, In(u = e) && 0 === u.data.length && a.remove(u), !0 }, gC = function (e, t) { var n = e.selection.getRng(); if (!In(n.commonAncestorContainer)) return !1; var r = t ? Vs.Forwards : Vs.Backwards, o = _l(e.getBody()), i = N(pl, t ? o.next : o.prev), a = t ? dC : mC, u = dl(r, e.getBody(), n), s = Ub(t, i(u)); if (!s || !gl(u, s)) return !1; if (a(s)) return pC(e, n, u.getNode(), r, t, s); var c = i(s); return !!(c && a(c) && gl(s, c)) && pC(e, n, u.getNode(), r, t, c) }, hC = Cr([{ remove: ["element"] }, { moveToElement: ["element"] }, { moveToPosition: ["position"] }]), vC = function (e, t, n, r) { var o = r.getNode(!1 === t); return Hb(At.fromDom(e), At.fromDom(n.getNode())).map(function (e) { return $o(e) ? hC.remove(e.dom) : hC.moveToElement(o) }).orThunk(function () { return U.some(hC.moveToElement(o)) }) }, yC = function (u, s, c) { return Ol(s, u, c).bind(function (e) { return a = e.getNode(), uo(At.fromDom(a)) || io(At.fromDom(a)) ? U.none() : (t = u, o = e, i = function (e) { return to(At.fromDom(e)) && !ol(r, o, t) }, fl(!(n = s), r = c).fold(function () { return fl(n, o).fold(C, i) }, i) ? U.none() : s && Vn(e.getNode()) || !1 === s && Vn(e.getNode(!0)) ? vC(u, s, c, e) : s && Ep(c) || !1 === s && Np(c) ? U.some(hC.moveToPosition(e)) : U.none()); var t, n, r, o, i, a }) }, bC = function (r, e, o) { return i = e, a = o.getNode(!1 === i), u = i ? "after" : "before", An(a) && a.getAttribute("data-mce-caret") === u ? (t = e, n = o.getNode(!1 === e), (t && Vn(n.nextSibling) ? U.some(hC.moveToElement(n.nextSibling)) : !1 === t && Vn(n.previousSibling) ? U.some(hC.moveToElement(n.previousSibling)) : U.none()).fold(function () { return yC(r, e, o) }, U.some)) : yC(r, e, o).bind(function (e) { return t = r, n = o, e.fold(function (e) { return U.some(hC.remove(e)) }, function (e) { return U.some(hC.moveToElement(e)) }, function (e) { return ol(n, e, t) ? U.none() : U.some(hC.moveToPosition(e)) }); var t, n }); var t, n, i, a, u }, CC = function (e, t) { return U.from(id(e.getBody(), t)) }, wC = function (a, u) { var e = a.selection.getNode(); return CC(a, e).filter(Vn).fold(function () { return e = a.getBody(), t = u, n = a.selection.getRng(), r = ll(t ? 1 : -1, e, n), o = $s.fromRangeStart(r), i = At.fromDom(e), (!1 === t && Ep(o) ? U.some(hC.remove(o.getNode(!0))) : t && Np(o) ? U.some(hC.remove(o.getNode())) : !1 === t && Np(o) && Vp(i, o) ? qp(i, o).map(function (e) { return hC.remove(e.getNode()) }) : t && Ep(o) && Hp(i, o) ? $p(i, o).map(function (e) { return hC.remove(e.getNode()) }) : bC(e, t, o)).exists(function (e) { return e.fold(function (e) { return o._selectionOverrides.hideFakeCaret(), Cg(o, i, At.fromDom(e)), !0 }, (r = i = u, function (e) { var t = r ? $s.before(e) : $s.after(e); return n.selection.setRng(t.toRange()), !0 }), (t = n = o = a, function (e) { return t.selection.setRng(e.toRange()), !0 })); var t, n, r, o, i }); var e, t, n, r, o, i }, k) }, xC = function (t, n) { var e = t.selection.getNode(); return !!Vn(e) && CC(t, e.parentNode).filter(Vn).fold(function () { var e; return e = At.fromDom(t.getBody()), W(Gu(e, ".mce-offscreen-selection"), pn), Cg(t, n, At.fromDom(t.selection.getNode())), Vb(t), !0 }, function () { return !0 }) }, SC = function (e) { var t, n = e.dom, r = e.selection, o = id(e.getBody(), r.getNode()); return Hn(o) && n.isBlock(o) && n.isEmpty(o) && (t = n.create("br", { "data-mce-bogus": "1" }), n.setHTML(o, ""), o.appendChild(t), r.setRng($s.before(t).toRange())), !0 }, NC = function (e, t) { return (e.selection.isCollapsed() ? wC : xC)(e, t) }, EC = function (e, t) { return !!e.selection.isCollapsed() && (n = e, r = t, o = $s.fromRangeStart(n.selection.getRng()), Ol(r, n.getBody(), o).filter(function (e) { return (r ? yp : bp)(e) }).bind(function (e) { return U.from(il(r ? 0 : -1, e)) }).exists(function (e) { return n.selection.select(e), !0 })); var n, r, o }, kC = In, _C = function (e) { return kC(e) && e.data[0] === fo }, AC = function (e) { return kC(e) && e.data[e.data.length - 1] === fo }, RC = function (e) { return e.ownerDocument.createTextNode(fo) }, TC = function (e, t) { return (e ? function (e) { if (kC(e.previousSibling)) return AC(e.previousSibling) || e.previousSibling.appendData(fo), e.previousSibling; if (kC(e)) return _C(e) || e.insertData(0, fo), e; var t = RC(e); return e.parentNode.insertBefore(t, e), t } : function (e) { if (kC(e.nextSibling)) return _C(e.nextSibling) || e.nextSibling.insertData(0, fo), e.nextSibling; if (kC(e)) return AC(e) || e.appendData(fo), e; var t = RC(e); return e.nextSibling ? e.parentNode.insertBefore(t, e.nextSibling) : e.parentNode.appendChild(t), t })(t) }, DC = N(TC, !0), OC = N(TC, !1), BC = function (e, t) { return In(e.container()) ? TC(t, e.container()) : TC(t, e.getNode()) }, PC = function (e, t) { var n = t.get(); return n && e.container() === n && yo(n) }, LC = function (n, e) { return e.fold(function (e) { Fc(n.get()); var t = DC(e); return n.set(t), U.some($s(t, t.length - 1)) }, function (e) { return Fl(e).map(function (e) { if (PC(e, n)) return $s(n.get(), 1); Fc(n.get()); var t = BC(e, !0); return n.set(t), $s(t, 1) }) }, function (e) { return Ul(e).map(function (e) { if (PC(e, n)) return $s(n.get(), n.get().length - 1); Fc(n.get()); var t = BC(e, !1); return n.set(t), $s(t, t.length - 1) }) }, function (e) { Fc(n.get()); var t = OC(e); return n.set(t), U.some($s(t, 1)) }) }, IC = function (e, t) { for (var n = 0; n < e.length; n++) { var r = e[n].apply(null, t); if (r.isSome()) return r } return U.none() }, MC = Cr([{ before: ["element"] }, { start: ["element"] }, { end: ["element"] }, { after: ["element"] }]), FC = function (e, t) { var n = rl(t, e); return n || e }, UC = function (e, t, n) { var r = zb(n), o = FC(t, r.container()); return Fb(e, o, r).fold(function () { return Il(o, r).bind(N(Fb, e, o)).map(function (e) { return MC.before(e) }) }, U.none) }, zC = function (e, t) { return null === Hl(e, t) }, jC = function (e, t, n) { return Fb(e, t, n).filter(N(zC, t)) }, HC = function (e, t, n) { var r = jb(n); return jC(e, t, r).bind(function (e) { return Ml(e, r).isNone() ? U.some(MC.start(e)) : U.none() }) }, VC = function (e, t, n) { var r = zb(n); return jC(e, t, r).bind(function (e) { return Il(e, r).isNone() ? U.some(MC.end(e)) : U.none() }) }, qC = function (e, t, n) { var r = jb(n), o = FC(t, r.container()); return Fb(e, o, r).fold(function () { return Ml(o, r).bind(N(Fb, e, o)).map(function (e) { return MC.after(e) }) }, U.none) }, $C = function (e) { return !1 === Mb(KC(e)) }, WC = function (e, t, n) { return IC([UC, HC, VC, qC], [e, t, n]).filter($C) }, KC = function (e) { return e.fold(o, o, o, o) }, XC = function (e) { return e.fold(E("before"), E("start"), E("end"), E("after")) }, YC = function (e) { return e.fold(MC.before, MC.before, MC.after, MC.after) }, GC = function (e) { return e.fold(MC.start, MC.start, MC.end, MC.end) }, JC = function (a, e, u, t, n, s) { return ds(Fb(e, u, t), Fb(e, u, n), function (e, t) { return e !== t && (r = t, o = rl(e, n = u), i = rl(r, n), o && o === i) ? MC.after(a ? e : t) : s; var n, r, o, i }).getOr(s) }, QC = function (e, r) { return e.fold(k, function (e) { return n = r, !(XC(t = e) === XC(n) && KC(t) === KC(n)); var t, n }) }, ZC = function (e, t) { return e ? t.fold(a(U.some, MC.start), U.none, a(U.some, MC.after), U.none) : t.fold(U.none, a(U.some, MC.before), U.none, a(U.some, MC.end)) }, ew = function (e, a, u, s) { var t = Ub(e, s), c = WC(a, u, t); return WC(a, u, t).bind(N(ZC, e)).orThunk(function () { return n = a, r = u, o = c, i = Ub(t = e, s), Ol(t, r, i).map(N(Ub, t)).fold(function () { return o.map(YC) }, function (e) { return WC(n, r, e).map(N(JC, t, n, r, i, e)).filter(N(QC, o)) }).filter($C); var t, n, r, o, i }) }, tw = (N(ew, !1), N(ew, !0), function (e, t, n) { var r = e ? 1 : -1; return t.setRng($s(n.container(), n.offset() + r).toRange()), t.getSel().modify("move", e ? "forward" : "backward", "word"), !0 }), nw = function (e, t) { var n = t.selection.getRng(), r = e ? $s.fromRangeEnd(n) : $s.fromRangeStart(n); return !!T(t.selection.getSel().modify) && (e && wo(r) ? tw(!0, t.selection, r) : !(e || !xo(r)) && tw(!1, t.selection, r)) }, rw = function (e, t) { var n = e.dom.createRng(); n.setStart(t.container(), t.offset()), n.setEnd(t.container(), t.offset()), e.selection.setRng(n) }, ow = function (e, t) { e ? t.setAttribute("data-mce-selected", "inline-boundary") : t.removeAttribute("data-mce-selected") }, iw = function (t, e, n) { return LC(e, n).map(function (e) { return rw(t, e), n }) }, aw = function (e, t) { var n, r; e.selection.isCollapsed() && !0 !== e.composing && t.get() && (n = $s.fromRangeStart(e.selection.getRng()), $s.isTextPosition(n) && !1 === (wo(r = n) || xo(r)) && (rw(e, Mc(t.get(), n)), t.set(null))) }, uw = function (e, t, n) { return !!_c(e) && (o = t, i = n, a = (r = e).getBody(), u = $s.fromRangeStart(r.selection.getRng()), s = N(Ib, r), ew(i, s, a, u).bind(function (e) { return iw(r, o, e) }).isSome()); var r, o, i, a, u, s }, sw = function (e, t, n) { return !!_c(t) && nw(e, t) }, cw = function (d) { var m = Ou(null), p = N(Ib, d); return d.on("NodeChange", function (e) { var n, r, o, t, i, a, u, s, c, l, f; !_c(d) || wt.browser.isIE() && e.initial || (a = p, u = d.dom, s = e.parents, c = z(Gu(At.fromDom(u.getRoot()), '*[data-mce-selected="inline-boundary"]'), function (e) { return e.dom }), l = H(c, a), f = H(s, a), W(ee(l, f), N(ow, !1)), W(ee(f, l), N(ow, !0)), aw(d, m), n = p, r = d, o = m, t = e.parents, r.selection.isCollapsed() && (i = H(t, n), W(i, function (e) { var t = $s.fromRangeStart(r.selection.getRng()); WC(n, r.getBody(), t).bind(function (e) { return iw(r, o, e) }) }))) }), m }, lw = N(sw, !0), fw = N(sw, !1), dw = function (t, n) { return function (e) { return LC(n, e).exists(function (e) { return rw(t, e), !0 }) } }, mw = function (r, o, i, a) { var u = r.getBody(), s = N(Ib, 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"), WC(s, u, $s.fromRangeStart(r.selection.getRng())).map(GC).map(dw(r, o)) }), r.nodeChanged() }, pw = function (n, r, i, o) { var e, t, a = (e = n.getBody(), t = o.container(), rl(t, e) || e), u = N(Ib, n), s = WC(u, a, o); return s.bind(function (e) { return i ? e.fold(E(U.some(GC(e))), U.none, E(U.some(YC(e))), U.none) : e.fold(U.none, E(U.some(YC(e))), U.none, E(U.some(GC(e)))) }).map(dw(n, r)).getOrThunk(function () { var t = Bl(i, a, o), e = t.bind(function (e) { return WC(u, a, e) }); return ds(s, e, function () { return Fb(u, a, o).exists(function (e) { return !!ds(Fl(o = e), Ul(o), function (e, t) { var n = Ub(!0, e), r = Ub(!1, t); return Il(o, n).forall(function (e) { return e.isEqual(r) }) }).getOr(!0) && (Cg(n, i, At.fromDom(e)), !0); var o }) }).orThunk(function () { return e.bind(function (e) { return t.map(function (e) { return i ? mw(n, r, o, e) : mw(n, r, e, o), !0 }) }) }).getOr(!1) }) }, gw = function (e, t, n) { if (e.selection.isCollapsed() && _c(e)) { var r = $s.fromRangeStart(e.selection.getRng()); return pw(e, t, n, r) } return !1 }, hw = function (e) { return 1 === Gt(e).length }, vw = function (e, t, n, r) { var o, i, a, u, s, c = N(Nh, t), l = z(H(r, c), function (e) { return e.dom }); 0 === l.length ? Cg(t, e, n) : (i = n.dom, a = l, u = vh(!1), s = wh(a, u.dom), sn(At.fromDom(i), u), pn(At.fromDom(i)), o = $s(s, 0), t.selection.setRng(o.toRange())) }, yw = function (r, o) { var t, e = At.fromDom(r.getBody()), n = At.fromDom(r.selection.getStart()), s = H((t = Dp(n, e), G(t, eo).fold(E(t), function (e) { return t.slice(0, e) })), hw); return re(s).exists(function (e) { var t, i, a, u, n = $s.fromRangeStart(r.selection.getRng()); return i = o, a = n, u = e.dom, !(!ds(Fl(u), Ul(u), function (e, t) { var n = Ub(!0, e), r = Ub(!1, t), o = Ub(!1, a); return i ? Il(u, o).exists(function (e) { return e.isEqual(r) && a.isEqual(n) }) : Ml(u, o).exists(function (e) { return e.isEqual(n) && a.isEqual(r) }) }).getOr(!0) || jl((t = e).dom) && gh(t.dom)) && (vw(o, r, e, s), !0) }) }, bw = function (e, t) { return !!e.selection.isCollapsed() && yw(e, t) }, Cw = function (e, t, n) { return e._selectionOverrides.hideFakeCaret(), Cg(e, t, At.fromDom(n)), !0 }, ww = function (e, t) { return e.selection.isCollapsed() ? (i = e, u = (a = t) ? Cp : wp, s = a ? Vs.Forwards : Vs.Backwards, c = dl(s, i.getBody(), i.selection.getRng()), u(c) ? Cw(i, a, c.getNode(!a)) : U.from(Ub(a, c)).filter(function (e) { return u(e) && gl(c, e) }).exists(function (e) { return Cw(i, a, e.getNode(!a)) })) : (r = t, o = (n = e).selection.getNode(), !!$n(o) && Cw(n, r, o)); var n, r, o, i, a, u, s, c }, xw = function (e) { var t = parseInt(e, 10); return isNaN(t) ? 0 : t }, Sw = function (e, t) { return (e || "table" === Lt(t) ? "margin" : "padding") + ("rtl" === er(t, "direction") ? "-right" : "-left") }, Nw = function (e) { var r, t = kw(e); return !e.mode.isReadOnly() && (1 < t.length || (r = e, Q(t, function (e) { var t = Sw(Sc(r), e), n = nr(e, t).map(xw).getOr(0); return "false" !== r.dom.getContentEditable(e.dom) && 0 < n }))) }, Ew = function (e) { return oo(e) || io(e) }, kw = function (e) { return H(z(e.selection.getSelectedBlocks(), At.fromDom), function (e) { return !Ew(e) && !$t(e).map(Ew).getOr(!1) && Ar(e, function (e) { return Hn(e.dom) || Vn(e.dom) }).exists(function (e) { return Hn(e.dom) }) }) }, _w = function (e, c) { var l = e.dom, t = e.selection, n = e.formatter, r = e.getParam("indentation", "40px", "string"), f = /[a-z%]+$/i.exec(r)[0], d = parseInt(r, 10), m = Sc(e), o = vc(e); e.queryCommandState("InsertUnorderedList") || e.queryCommandState("InsertOrderedList") || "" !== o || l.getParent(t.getNode(), l.isBlock) || n.apply("div"), W(kw(e), function (e) { var t, n, r, o, i, a, u, s; t = l, n = c, r = m, o = d, i = f, a = e.dom, s = Sw(r, At.fromDom(a)), "outdent" === n ? (u = Math.max(0, xw(a.style[s]) - o), t.setStyle(a, s, u ? u + i : "")) : (u = xw(a.style[s]) + o + i, t.setStyle(a, s, u)) }) }, Aw = function (e, t) { if (e.selection.isCollapsed() && Nw(e)) { var n = e.dom, r = e.selection.getRng(), o = $s.fromRangeStart(r), i = n.getParent(r.startContainer, n.isBlock); if (null !== i && Ip(At.fromDom(i), o)) return _w(e, "outdent"), !0 } return !1 }, Rw = function (e, t) { e.getDoc().execCommand(t, !1, null) }, Tw = function (n, r) { n.addCommand("delete", function () { var e, t; t = r, Aw(e = n) || NC(e, !1) || gC(e, !1) || gw(e, t, !1) || tC(e, !1) || Kg(e) || EC(e, !1) || ww(e, !1) || iC(e) || bw(e, !1) || (Rw(e, "Delete"), Vb(e)) }), n.addCommand("forwardDelete", function () { var e, t; t = r, NC(e = n, !0) || gC(e, !0) || gw(e, t, !0) || tC(e, !0) || Kg(e) || EC(e, !0) || ww(e, !0) || iC(e) || bw(e, !0) || Rw(e, "ForwardDelete") }) }, Dw = function (e) { return e.touches === undefined || 1 !== e.touches.length ? U.none() : U.some(e.touches[0]) }, Ow = function (a) { var u = Ou(U.none()), s = Ou(!1), r = ju(function (e) { a.fire("longpress", ke(ke({}, e), { type: "longpress" })), s.set(!0) }, 400); a.on("touchstart", function (n) { Dw(n).each(function (e) { r.cancel(); var t = { x: e.clientX, y: e.clientY, target: n.target }; r.throttle(n), s.set(!1), u.set(U.some(t)) }) }, !0), a.on("touchmove", function (e) { r.cancel(), Dw(e).each(function (i) { u.get().each(function (e) { var t, n, r, o; t = i, n = e, r = Math.abs(t.clientX - n.x), o = Math.abs(t.clientY - n.y), (5 < r || 5 < o) && (u.set(U.none()), s.set(!1), a.fire("longpresscancel")) }) }) }, !0), a.on("touchend touchcancel", function (t) { r.cancel(), "touchcancel" !== t.type && u.get().filter(function (e) { return e.target.isEqualNode(t.target) }).each(function () { s.get() ? t.preventDefault() : a.fire("tap", ke(ke({}, t), { type: "tap" })) }) }, !0) }, Bw = function (e, t) { return e.hasOwnProperty(t.nodeName) }, Pw = function (e) { var t, n, r, o = e.dom, i = e.selection, a = e.schema, u = a.getBlockElements(), s = i.getStart(), c = e.getBody(), l = vc(e); if (s && An(s) && l) { var f = c.nodeName.toLowerCase(); if (a.isValidChild(f, l.toLowerCase()) && (d = u, m = c, p = s, !F(Tp(At.fromDom(p), At.fromDom(m)), function (e) { return Bw(d, e.dom) }))) { for (var d, m, p, g, h, v = i.getRng(), y = v.startContainer, b = v.startOffset, C = v.endContainer, w = v.endOffset, x = Em(e), s = c.firstChild; s;) if (g = u, In(h = s) || An(h) && !Bw(g, h) && !Jl(h)) { if (function (e, t) { if (In(t)) { if (0 === t.nodeValue.length) return !0; if (/^\s+$/.test(t.nodeValue) && (!t.nextSibling || Bw(e, t.nextSibling))) return !0 } return !1 }(u, s)) { s = (n = s).nextSibling, o.remove(n); continue } t || (t = o.create(l, yc(e)), s.parentNode.insertBefore(t, s), r = !0), s = (n = s).nextSibling, t.appendChild(n) } else t = null, s = s.nextSibling; r && x && (v.setStart(y, b), v.setEnd(C, w), i.setRng(v), e.nodeChanged()) } } }, Lw = function (e, t) { var n; t.hasAttribute("data-mce-caret") && (ko(t), (n = e).selection.setRng(n.selection.getRng()), e.selection.scrollIntoView(t)) }, Iw = function (e, t) { var n, r = (n = e, Dr(At.fromDom(n.getBody()), "*[data-mce-caret]").fold(E(null), function (e) { return e.dom })); if (r) return "compositionstart" === t.type ? (t.preventDefault(), t.stopPropagation(), void Lw(e, r)) : void(Co(r) && (Lw(e, r), e.undoManager.add())) }; (wb = Cb = Cb || {})[wb.Br = 0] = "Br", wb[wb.Block = 1] = "Block", wb[wb.Wrap = 2] = "Wrap", wb[wb.Eol = 3] = "Eol"; var Mw, Fw, Uw = function (e, t) { return e === Vs.Backwards ? Z(t) : t }, zw = function (e, t, n, r) { for (var o, i, a, u, s, c, l = _l(n), f = r, d = []; f && (s = l, c = f, o = t === Vs.Forwards ? s.next(c) : s.prev(c));) { if (zn(o.getNode(!1))) return t === Vs.Forwards ? { positions: Uw(t, d).concat([o]), breakType: Cb.Br, breakAt: U.some(o) } : { positions: Uw(t, d), breakType: Cb.Br, breakAt: U.some(o) }; if (o.isVisible()) { if (e(f, o)) { var m = (i = t, a = f, zn((u = o).getNode(i === Vs.Forwards)) ? Cb.Br : !1 === ol(a, u) ? Cb.Block : Cb.Wrap); return { positions: Uw(t, d), breakType: m, breakAt: U.some(o) } } d.push(o), f = o } else f = o } return { positions: Uw(t, d), breakType: Cb.Eol, breakAt: U.none() } }, jw = function (n, r, o, e) { return r(o, e).breakAt.map(function (e) { var t = r(o, e).positions; return n === Vs.Backwards ? t.concat(e) : [e].concat(t) }).getOr([]) }, Hw = function (e, i) { return X(e, function (e, o) { return e.fold(function () { return U.some(o) }, function (r) { return ds(ne(r.getClientRects()), ne(o.getClientRects()), function (e, t) { var n = Math.abs(i - e.left); return Math.abs(i - t.left) <= n ? o : r }).or(e) }) }, U.none()) }, Vw = function (t, e) { return ne(e.getClientRects()).bind(function (e) { return Hw(t, e.left) }) }, qw = N(zw, Hs.isAbove, -1), $w = N(zw, Hs.isBelow, 1), Ww = N(jw, -1, qw), Kw = N(jw, 1, $w), Xw = function (t) { var e = function (e) { return z(e, function (e) { return (e = ps(e)).node = t, e }) }; if (An(t)) return e(t.getClientRects()); if (In(t)) { var n = t.ownerDocument.createRange(); return n.setStart(t, 0), n.setEnd(t, t.data.length), e(n.getClientRects()) } }, Yw = function (e) { return J(e, Xw) }; (Fw = Mw = Mw || {})[Fw.Up = -1] = "Up", Fw[Fw.Down = 1] = "Down"; var Gw = function (o, i, a, e, u, t) { var s = 0, c = [], n = function (e) { var t, n, r = Yw([e]); for (-1 === o && (r = r.reverse()), t = 0; t < r.length; t++) if (n = r[t], !a(n, l)) { if (0 < c.length && i(n, Ee(c)) && s++, n.line = s, u(n)) return !0; c.push(n) } }, l = Ee(t.getClientRects()); if (!l) return c; var r = t.getNode(); return n(r), function (e, t, n, r) { for (; r = nl(r, e, Mo, t);) if (n(r)) return }(o, e, n, r), c }, Jw = N(Gw, Mw.Up, vs, ys), Qw = N(Gw, Mw.Down, ys, vs), Zw = function (n) { return function (e) { return t = n, e.line > t; var t } }, ex = function (n) { return function (e) { return t = n, e.line === t; var t } }, tx = Vn, nx = nl, rx = function (e, t) { return Math.abs(e.left - t) }, ox = function (e, t) { return Math.abs(e.right - t) }, ix = function (e, t) { return e >= t.left && e <= t.right }, ax = function (e, t) { return e >= t.top && e <= t.bottom }, ux = function (e, o) { return Se(e, function (e, t) { var n = Math.min(rx(e, o), ox(e, o)), r = Math.min(rx(t, o), ox(t, o)); return ix(o, t) || !ix(o, e) && (r === n && tx(t.node) || r < n) ? t : e }) }, sx = function (e, t, n, r, o) { var i = nx(r, e, Mo, t, !o); do { if (!i || n(i)) return } while (i = nx(i, e, Mo, t)) }, cx = function (e, t, n) { var r, o, i = Yw(H(oe(e.getElementsByTagName("*")), Kc)), a = H(i, N(ax, n)); if (u = ux(a, t)) { var u, s = !Bn(u.node) && !$n(u.node); if ((u = ux(function (e, r, t) { void 0 === t && (t = !0); var o = [], n = function (t, e) { var n = H(Yw([e]), function (e) { return !t(e, r) }); return o = o.concat(n), 0 === n.length }; return o.push(r), sx(Mw.Up, e, N(n, vs), r.node, t), sx(Mw.Down, e, N(n, ys), r.node, t), o }(e, u, s), t)) && Kc(u.node)) return o = t, { node: (r = u).node, before: rx(r, o) < ox(r, o) } } return null }, lx = function (e, t) { e.selection.setRng(t), Xd(e, e.selection.getRng()) }, fx = function (e, t, n) { return U.some(fC(e, t, n)) }, dx = function (e, t, n, r, o, i) { var a = t === Vs.Forwards, u = _l(e.getBody()), s = N(pl, a ? u.next : u.prev), c = a ? r : o; if (!n.collapsed) { var l = Cs(n); if (i(l)) return sC(t, e, l, t === Vs.Backwards, !1) } var f = dl(t, e.getBody(), n); if (c(f)) return cC(e, f.getNode(!a)); var d = Ub(a, s(f)), m = vo(n.startContainer); if (!d) return m ? U.some(n) : U.none(); if (c(d)) return sC(t, e, d.getNode(!a), a, !1); var p = s(d); return p && c(p) && gl(d, p) ? sC(t, e, p.getNode(!a), a, !1) : m ? fx(e, d.toRange(), !1) : U.none() }, mx = function (t, e, n, r, o, i) { var a = dl(e, t.getBody(), n), u = Ee(a.getClientRects()), s = e === Mw.Down; if (!u) return U.none(); var c, l = (s ? Qw : Jw)(t.getBody(), Zw(1), a), f = H(l, ex(1)), d = u.left, m = ux(f, d); if (m && i(m.node)) { var p = Math.abs(d - m.left), g = Math.abs(d - m.right); return sC(e, t, m.node, p < g, !1) } if (c = r(a) ? a.getNode() : o(a) ? a.getNode(!0) : Cs(n)) { var h = function (e, t, n, r) { var o, i, a, u, s = _l(t), c = [], l = 0, f = function (e) { return Ee(e.getClientRects()) }, d = 1 === e ? (o = s.next, i = ys, a = vs, $s.after(r)) : (o = s.prev, i = vs, a = ys, $s.before(r)), m = f(d); do { if (d.isVisible() && !a(u = f(d), m)) { if (0 < c.length && i(u, Ee(c)) && l++, (u = ps(u)).position = d, u.line = l, n(u)) return c; c.push(u) } } while (d = o(d)); return c }(e, t.getBody(), Zw(1), c), v = ux(H(h, ex(1)), d); if (v) return fx(t, v.position.toRange(), !1); if (v = Ee(H(h, ex(0)))) return fx(t, v.position.toRange(), !1) } return 0 === f.length ? px(t, s).filter(s ? o : r).map(function (e) { return fC(t, e.toRange(), !1) }) : U.none() }, px = function (e, t) { var n = e.selection.getRng(), r = e.getBody(); if (t) { var o = $s.fromRangeEnd(n), i = $w(r, o); return re(i.positions) } o = $s.fromRangeStart(n), i = qw(r, o); return ne(i.positions) }, gx = function (t, e, n) { return px(t, e).filter(n).exists(function (e) { return t.selection.setRng(e.toRange()), !0 }) }, hx = Vn, vx = function (e, t, n) { var r, o, i = _l(e.getBody()), a = N(pl, 1 === t ? i.next : i.prev); if (n.collapsed && "" !== vc(e)) { var u, s = e.dom.getParent(n.startContainer, "PRE"); if (!s) return; a($s.fromRangeStart(n)) || (o = (r = e).dom.create(vc(r)), (!wt.ie || 11 <= wt.ie) && (o.innerHTML = '<br data-mce-bogus="1">'), u = o, 1 === t ? e.$(s).after(u) : e.$(s).before(u), e.selection.select(u, !0), e.selection.collapse()) } }, yx = function (e, t) { var n = t ? Vs.Forwards : Vs.Backwards, r = e.selection.getRng(); return dx(e, n, r, Np, Ep, hx).orThunk(function () { return vx(e, n, r), U.none() }) }, bx = function (e, t) { var n = t ? 1 : -1, r = e.selection.getRng(); return mx(e, n, r, function (e) { return Np(e) || xp(e) }, function (e) { return Ep(e) || Sp(e) }, hx).orThunk(function () { return vx(e, n, r), U.none() }) }, Cx = function (t, e) { return yx(t, e).exists(function (e) { return lx(t, e), !0 }) }, wx = function (t, e) { return bx(t, e).exists(function (e) { return lx(t, e), !0 }) }, xx = function (e, t) { return gx(e, t, t ? Ep : Np) }, Sx = function (e) { return M(["figcaption"], Lt(e)) }, Nx = function (e) { var t = document.createRange(); return t.setStartBefore(e.dom), t.setEndBefore(e.dom), t }, Ex = function (e, t, n) { (n ? fn : ln)(e, t) }, kx = function (e, t, n, r) { return "" === t ? (l = e, f = r, d = At.fromTag("br"), Ex(l, d, f), Nx(d)) : (o = e, i = r, a = t, u = n, s = At.fromTag(a), c = At.fromTag("br"), Yn(s, u), fn(s, c), Ex(o, s, i), Nx(c)); var o, i, a, u, s, c, l, f, d }, _x = function (e, t, n) { return t ? (o = e.dom, $w(o, n).breakAt.isNone()) : (r = e.dom, qw(r, n).breakAt.isNone()); var r, o }, Ax = function (t, n) { var e, r, o = At.fromDom(t.getBody()), i = $s.fromRangeStart(t.selection.getRng()), a = vc(t), u = yc(t); return e = i, r = N(Ot, o), Ar(At.fromDom(e.container()), eo, r).filter(Sx).exists(function () { if (_x(o, n, i)) { var e = kx(o, a, u, n); return t.selection.setRng(e), !0 } return !1 }) }, Rx = function (e, t) { return !!e.selection.isCollapsed() && Ax(e, t) }, Tx = function (e, r) { return J(z(e, function (e) { return ke({ shiftKey: !1, altKey: !1, ctrlKey: !1, metaKey: !1, keyCode: 0, action: V }, 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 }) }, Dx = function (e) { for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; return function () { return e.apply(null, t) } }, Ox = function (e, t) { return Y(Tx(e, t), function (e) { return e.action() }) }, Bx = function (t, e) { var n = e ? Vs.Forwards : Vs.Backwards, r = t.selection.getRng(); return dx(t, n, r, Cp, wp, $n).exists(function (e) { return lx(t, e), !0 }) }, Px = function (t, e) { var n = e ? 1 : -1, r = t.selection.getRng(); return mx(t, n, r, Cp, wp, $n).exists(function (e) { return lx(t, e), !0 }) }, Lx = function (e, t) { return gx(e, t, t ? wp : Cp) }, Ix = function (o, e) { return J(e, function (e) { var t, n, r = (t = ps(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: o(r), cell: e }, { x: r.right, y: o(r), cell: e }] }) }, Mx = function (e, t, n, r, o) { var i, a, u = Gu(At.fromDom(n), "td,th,caption").map(function (e) { return e.dom }), s = H(Ix(e, u), function (e) { return t(e, o) }); return i = r, a = o, X(s, function (e, r) { return e.fold(function () { return U.some(r) }, function (e) { var t = Math.sqrt(Math.abs(e.x - i) + Math.abs(e.y - a)), n = Math.sqrt(Math.abs(r.x - i) + Math.abs(r.y - a)); return U.some(n < t ? r : e) }) }, U.none()).map(function (e) { return e.cell }) }, Fx = N(Mx, function (e) { return e.bottom }, function (e, t) { return e.y < t }), Ux = N(Mx, function (e) { return e.top }, function (e, t) { return e.y > t }), zx = function (t, n) { return ne(n.getClientRects()).bind(function (e) { return Fx(t, e.left, e.top) }).bind(function (e) { return Vw(Ul(t = e).map(function (e) { return qw(t, e).positions.concat(e) }).getOr([]), n); var t }) }, jx = function (t, n) { return re(n.getClientRects()).bind(function (e) { return Ux(t, e.left, e.top) }).bind(function (e) { return Vw(Fl(t = e).map(function (e) { return [e].concat($w(t, e).positions) }).getOr([]), n); var t }) }, Hx = function (e, t, n) { var r, o, i, a, u = e(t, n); return (a = u).breakType === Cb.Wrap && 0 === a.positions.length || !zn(n.getNode()) && ((i = u).breakType === Cb.Br && 1 === i.positions.length) ? (r = e, o = t, !u.breakAt.exists(function (e) { return r(o, e).breakAt.isSome() })) : u.breakAt.isNone() }, Vx = N(Hx, qw), qx = N(Hx, $w), $x = function (t, e, n, r) { var o, i, a, u, s = t.selection.getRng(), c = e ? 1 : -1; return !(!$c() || (o = e, i = s, a = n, u = $s.fromRangeStart(i), !Ll(!o, a).exists(function (e) { return e.isEqual(u) }))) && (sC(c, t, n, !e, !1).each(function (e) { lx(t, e) }), !0) }, Wx = function (e, t) { var n = t.getNode(e); return An(n) && "TABLE" === n.nodeName ? U.some(n) : U.none() }, Kx = function (u, s, c) { var e = Wx(!!s, c), t = !1 === s; e.fold(function () { return lx(u, c.toRange()) }, function (a) { return Ll(t, u.getBody()).filter(function (e) { return e.isEqual(c) }).fold(function () { return lx(u, c.toRange()) }, function (e) { return n = s, o = a, t = c, void((i = vc(r = u)) ? r.undoManager.transact(function () { var e = At.fromTag(i); Yn(e, yc(r)), fn(e, At.fromTag("br")), (n ? cn : sn)(At.fromDom(o), e); var t = r.dom.createRng(); t.setStart(e.dom, 0), t.setEnd(e.dom, 0), lx(r, t) }) : lx(r, t.toRange())); var n, r, o, t, i }) }) }, Xx = function (e, t, n, r) { var o, i, a, u, s, c, l = e.selection.getRng(), f = $s.fromRangeStart(l), d = e.getBody(); if (!t && Vx(r, f)) { var m = (u = d, zx(s = n, c = f).orThunk(function () { return ne(c.getClientRects()).bind(function (e) { return Hw(Ww(u, $s.before(s)), e.left) }) }).getOr($s.before(s))); return Kx(e, t, m), !0 } if (t && qx(r, f)) { m = (o = d, jx(i = n, a = f).orThunk(function () { return ne(a.getClientRects()).bind(function (e) { return Hw(Kw(o, $s.after(i)), e.left) }) }).getOr($s.after(i))); return Kx(e, t, m), !0 } return !1 }, Yx = function (n, r, o) { return U.from(n.dom.getParent(n.selection.getNode(), "td,th")).bind(function (t) { return U.from(n.dom.getParent(t, "table")).map(function (e) { return o(n, r, e, t) }) }).getOr(!1) }, Gx = function (e, t) { return Yx(e, t, $x) }, Jx = function (e, t) { return Yx(e, t, Xx) }, Qx = function (i, a) { i.on("keydown", function (e) { var t, n, r, o; !1 === e.isDefaultPrevented() && (t = i, n = a, r = e, o = dt().os, Ox([{ keyCode: ud.RIGHT, action: Dx(Cx, t, !0) }, { keyCode: ud.LEFT, action: Dx(Cx, t, !1) }, { keyCode: ud.UP, action: Dx(wx, t, !1) }, { keyCode: ud.DOWN, action: Dx(wx, t, !0) }, { keyCode: ud.RIGHT, action: Dx(Gx, t, !0) }, { keyCode: ud.LEFT, action: Dx(Gx, t, !1) }, { keyCode: ud.UP, action: Dx(Jx, t, !1) }, { keyCode: ud.DOWN, action: Dx(Jx, t, !0) }, { keyCode: ud.RIGHT, action: Dx(Bx, t, !0) }, { keyCode: ud.LEFT, action: Dx(Bx, t, !1) }, { keyCode: ud.UP, action: Dx(Px, t, !1) }, { keyCode: ud.DOWN, action: Dx(Px, t, !0) }, { keyCode: ud.RIGHT, action: Dx(uw, t, n, !0) }, { keyCode: ud.LEFT, action: Dx(uw, t, n, !1) }, { keyCode: ud.RIGHT, ctrlKey: !o.isOSX(), altKey: o.isOSX(), action: Dx(lw, t, n) }, { keyCode: ud.LEFT, ctrlKey: !o.isOSX(), altKey: o.isOSX(), action: Dx(fw, t, n) }, { keyCode: ud.UP, action: Dx(Rx, t, !1) }, { keyCode: ud.DOWN, action: Dx(Rx, t, !0) }], r).each(function (e) { r.preventDefault() })) }) }, Zx = function (o, i) { o.on("keydown", function (e) { var t, n, r; !1 === e.isDefaultPrevented() && (t = o, n = i, r = e, Ox([{ keyCode: ud.BACKSPACE, action: Dx(Aw, t, !1) }, { keyCode: ud.BACKSPACE, action: Dx(NC, t, !1) }, { keyCode: ud.DELETE, action: Dx(NC, t, !0) }, { keyCode: ud.BACKSPACE, action: Dx(gC, t, !1) }, { keyCode: ud.DELETE, action: Dx(gC, t, !0) }, { keyCode: ud.BACKSPACE, action: Dx(gw, t, n, !1) }, { keyCode: ud.DELETE, action: Dx(gw, t, n, !0) }, { keyCode: ud.BACKSPACE, action: Dx(Kg, t, !1) }, { keyCode: ud.DELETE, action: Dx(Kg, t, !0) }, { keyCode: ud.BACKSPACE, action: Dx(EC, t, !1) }, { keyCode: ud.DELETE, action: Dx(EC, t, !0) }, { keyCode: ud.BACKSPACE, action: Dx(ww, t, !1) }, { keyCode: ud.DELETE, action: Dx(ww, t, !0) }, { keyCode: ud.BACKSPACE, action: Dx(iC, t, !1) }, { keyCode: ud.DELETE, action: Dx(iC, t, !0) }, { keyCode: ud.BACKSPACE, action: Dx(tC, t, !1) }, { keyCode: ud.DELETE, action: Dx(tC, t, !0) }, { keyCode: ud.BACKSPACE, action: Dx(bw, t, !1) }, { keyCode: ud.DELETE, action: Dx(bw, t, !0) }], r).each(function (e) { r.preventDefault() })) }), o.on("keyup", function (e) { var t, n; !1 === e.isDefaultPrevented() && (t = o, n = e, Ox([{ keyCode: ud.BACKSPACE, action: Dx(SC, t) }, { keyCode: ud.DELETE, action: Dx(SC, t) }], n)) }) }, eS = function (e, t) { var n, r, o = t, i = e.dom, a = e.schema.getMoveCaretBeforeOnEnterElements(); if (t) { !/^(LI|DT|DD)$/.test(t.nodeName) || (r = 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)) && /^(UL|OL|DL)$/.test(r.nodeName) && t.insertBefore(i.doc.createTextNode(lo), t.firstChild); var u = i.createRng(); if (t.normalize(), t.hasChildNodes()) { for (var s = new Xr(t, t); n = s.current();) { if (In(n)) { u.setStart(n, 0), u.setEnd(n, 0); break } if (a[n.nodeName.toLowerCase()]) { u.setStartBefore(n), u.setEndBefore(n); break } o = n, n = s.next() } n || (u.setStart(o, 0), u.setEnd(o, 0)) } else zn(t) ? t.nextSibling && i.isBlock(t.nextSibling) ? (u.setStartBefore(t), u.setEndBefore(t)) : (u.setStartAfter(t), u.setEndAfter(t)) : (u.setStart(t, 0), u.setEnd(t, 0)); e.selection.setRng(u), Xd(e, u) } }, tS = function (e) { return U.from(e.dom.getParent(e.selection.getStart(!0), e.dom.isBlock)) }, nS = function (e, t) { return e && e.parentNode && e.parentNode.nodeName === t }, rS = function (e) { return e && /^(OL|UL|LI)$/.test(e.nodeName) }, oS = function (e) { var t = e.parentNode; return /^(LI|DT|DD)$/.test(t.nodeName) ? t : e }, iS = function (e, t, n) { for (var r = e[n ? "firstChild" : "lastChild"]; r && !An(r);) r = r[n ? "nextSibling" : "previousSibling"]; return r === t }, aS = function (e, t, n, r, o) { var i, a, u, s, c, l, f = e.dom, d = e.selection.getRng(); n !== e.getBody() && (rS(i = n) && rS(i.parentNode) && (o = "LI"), a = o ? t(o) : f.create("BR"), iS(n, r, !0) && iS(n, r, !1) ? nS(n, "LI") ? f.insertAfter(a, oS(n)) : f.replace(a, n) : iS(n, r, !0) ? nS(n, "LI") ? (f.insertAfter(a, oS(n)), a.appendChild(f.doc.createTextNode(" ")), a.appendChild(n)) : n.parentNode.insertBefore(a, n) : iS(n, r, !1) ? f.insertAfter(a, oS(n)) : (n = oS(n), (u = d.cloneRange()).setStartAfter(r), u.setEndAfter(n), s = u.extractContents(), "LI" === o && (l = "LI", (c = s).firstChild && c.firstChild.nodeName === l) ? (a = s.firstChild, f.insertAfter(s, n)) : (f.insertAfter(s, n), f.insertAfter(a, n))), f.remove(r), eS(e, a)) }, uS = function (e) { e.innerHTML = '<br data-mce-bogus="1">' }, sS = function (e, t) { return e.nodeName === t || e.previousSibling && e.previousSibling.nodeName === t }, cS = 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) }, lS = function (e, t, n) { return !1 === In(t) ? n : e ? 1 === n && t.data.charAt(n - 1) === fo ? 0 : n : n === t.data.length - 1 && t.data.charAt(n) === fo ? t.data.length : n }, fS = function (e, t) { for (var n, r = e.getRoot(), o = t; o !== r && "false" !== e.getContentEditable(o);) "true" === e.getContentEditable(o) && (n = o), o = o.parentNode; return o !== r ? n : r }, dS = function (e, t) { var n = vc(e); n && n.toLowerCase() === t.tagName.toLowerCase() && function (e, o, t) { var i = e.dom; U.from(t.style).map(i.parseStyle).each(function (e) { var t = rr(At.fromDom(o)), n = ke(ke({}, t), e); i.setStyles(o, n) }); var n = U.from(t["class"]).map(function (e) { return e.split(/\s+/) }), r = U.from(o.className).map(function (e) { return H(e.split(/\s+/), function (e) { return "" !== e }) }); ds(n, r, function (t, e) { var n = H(e, function (e) { return !M(t, e) }), r = _e(t, n); i.setAttrib(o, "class", r.join(" ")) }); var a = ["style", "class"], u = me(t, function (e, t) { return !M(a, t) }); i.setAttribs(o, u) }(e, t, yc(e)) }, mS = function (a, e) { var t, u, i, s, n, r, o, c, l, f = a.dom, d = a.schema, m = d.getNonEmptyElements(), p = a.selection.getRng(), g = function (e) { var t, n = u, r = d.getTextInlineElements(), o = e || "TABLE" === c || "HR" === c ? f.create(e || N) : s.cloneNode(!1), i = o; if (!1 === a.getParam("keep_styles", !0)) f.setAttrib(o, "style", null), f.setAttrib(o, "class", null); else do { if (r[n.nodeName]) { if (jl(n) || Jl(n)) continue; t = n.cloneNode(!1), f.setAttrib(t, "id", ""), o.hasChildNodes() ? t.appendChild(o.firstChild) : i = t, o.appendChild(t) } } while ((n = n.parentNode) && n !== E); return dS(a, o), uS(i), o }, h = function (e) { var t, n, r = lS(e, u, i); if (In(u) && (e ? 0 < r : r < u.nodeValue.length)) return !1; if (u.parentNode === s && l && !e) return !0; if (e && An(u) && u === s.firstChild) return !0; if (sS(u, "TABLE") || sS(u, "HR")) return l && !e || !l && e; var o = new Xr(u, s); for (In(u) && (e && 0 === r ? o.prev() : e || r !== u.nodeValue.length || o.next()); t = o.current();) { if (An(t)) { if (!t.getAttribute("data-mce-bogus") && (n = t.nodeName.toLowerCase(), m[n] && "br" !== n)) return !1 } else if (In(t) && !Uo(t.nodeValue)) return !1; e ? o.prev() : o.next() } return !0 }, v = function () { n = /^(H[1-6]|PRE|FIGURE)$/.test(c) && "HGROUP" !== C ? g(N) : g(), a.getParam("end_container_on_empty_block", !1) && cS(f, o) && f.isEmpty(s) ? n = f.split(o, s) : f.insertAfter(n, s), eS(a, n) }; yd(f, p).each(function (e) { p.setStart(e.startContainer, e.startOffset), p.setEnd(e.endContainer, e.endOffset) }), u = p.startContainer, i = p.startOffset, N = vc(a); var y = !(!e || !e.shiftKey), b = !(!e || !e.ctrlKey); An(u) && u.hasChildNodes() && (l = i > u.childNodes.length - 1, u = u.childNodes[Math.min(i, u.childNodes.length - 1)] || u, i = l && In(u) ? u.nodeValue.length : 0); var C, w, x, S, N, E = fS(f, u); E && ((N && !y || !N && y) && (u = function (e, t, n, r, o) { var i, a, u, s, c, l, f = t || "P", d = e.dom, m = fS(d, r), p = d.getParent(r, d.isBlock); if (!p || !cS(d, p)) { if (c = (p = p || m) === e.getBody() || (l = p) && /^(TD|TH|CAPTION)$/.test(l.nodeName) ? p.nodeName.toLowerCase() : p.parentNode.nodeName.toLowerCase(), !p.hasChildNodes()) return i = d.create(f), dS(e, i), p.appendChild(i), n.setStart(i, 0), n.setEnd(i, 0), i; for (u = r; u.parentNode !== p;) u = u.parentNode; for (; u && !d.isBlock(u);) u = (a = u).previousSibling; if (a && e.schema.isValidChild(c, f.toLowerCase())) { for (i = d.create(f), dS(e, i), a.parentNode.insertBefore(i, a), u = a; u && !d.isBlock(u);) s = u.nextSibling, i.appendChild(u), u = s; n.setStart(r, o), n.setEnd(r, o) } } return r }(a, N, p, u, i)), s = f.getParent(u, f.isBlock), o = s ? f.getParent(s.parentNode, f.isBlock) : null, c = s ? s.nodeName.toUpperCase() : "", "LI" !== (C = o ? o.nodeName.toUpperCase() : "") || b || (o = (s = o).parentNode, c = C), /^(LI|DT|DD)$/.test(c) && f.isEmpty(s) ? aS(a, g, o, s, N) : N && s === a.getBody() || (N = N || "P", vo(s) ? (n = ko(s), f.isEmpty(s) && uS(s), dS(a, n), eS(a, n)) : h() ? v() : h(!0) ? (n = s.parentNode.insertBefore(g(), s), eS(a, sS(s, "HR") ? n : s)) : ((S = (x = p).cloneRange()).setStart(x.startContainer, lS(!0, x.startContainer, x.startOffset)), S.setEnd(x.endContainer, lS(!1, x.endContainer, x.endOffset)), (t = S.cloneRange()).setEndAfter(s), r = t.extractContents(), w = r, W(Yu(At.fromDom(w), Ut), function (e) { var t = e.dom; t.nodeValue = po(t.nodeValue) }), function (e) { for (; In(e) && (e.nodeValue = e.nodeValue.replace(/^[\r\n]+/, "")), e = e.firstChild;); }(r), n = r.firstChild, f.insertAfter(r, s), function (e, t, n) { var r, o, i, a = n, u = []; if (a) { for (; a = a.firstChild;) { if (e.isBlock(a)) return; An(a) && !t[a.nodeName.toLowerCase()] && u.push(a) } for (r = u.length; r--;) !(a = u[r]).hasChildNodes() || a.firstChild === a.lastChild && "" === a.firstChild.nodeValue ? e.remove(a) : (o = e, (i = a) && "A" === i.nodeName && o.isEmpty(i) && e.remove(a)) } }(f, m, n), function (e, t) { t.normalize(); var n = t.lastChild; n && !/^(left|right)$/gi.test(e.getStyle(n, "float", !0)) || e.add(t, "br") }(f, s), f.isEmpty(s) && uS(s), n.normalize(), f.isEmpty(n) ? (f.remove(n), v()) : (dS(a, n), eS(a, n))), f.setAttrib(n, "id", ""), a.fire("NewBlock", { newBlock: n }))) }, pS = function (e, t, n) { var r = e.create("span", {}, " "); n.parentNode.insertBefore(r, n), t.scrollIntoView(r), e.remove(r) }, gS = 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) }, hS = function (e, t) { var n, r, o = e.selection, i = e.dom, a = o.getRng(); yd(i, a).each(function (e) { a.setStart(e.startContainer, e.startOffset), a.setEnd(e.endContainer, e.endOffset) }); var u, s = a.startOffset, c = a.startContainer; 1 === c.nodeType && c.hasChildNodes() && (u = s > c.childNodes.length - 1, c = c.childNodes[Math.min(s, c.childNodes.length - 1)] || c, s = u && 3 === c.nodeType ? c.nodeValue.length : 0); var l = i.getParent(c, 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), c && 3 === c.nodeType && s >= c.nodeValue.length && ! function (e, t, n) { for (var r, o = new Xr(t, n), i = e.getNonEmptyElements(); r = o.next();) if (i[r.nodeName.toLowerCase()] || 0 < r.length) return !0 }(e.schema, c, l) && (n = i.create("br"), a.insertNode(n), a.setStartAfter(n), a.setEndAfter(n), r = !0), n = i.create("br"), Ks(i, a, n), pS(i, o, n), gS(i, o, n, r), e.undoManager.add() }, vS = function (e, t) { var n = At.fromTag("br"); sn(At.fromDom(t), n), e.undoManager.add() }, yS = function (e, t) { bS(e.getBody(), t) || cn(At.fromDom(t), At.fromTag("br")); var n = At.fromTag("br"); cn(At.fromDom(t), n), pS(e.dom, e.selection, n.dom), gS(e.dom, e.selection, n.dom, !1), e.undoManager.add() }, bS = function (e, t) { return n = $s.after(t), !!zn(n.getNode()) || Il(e, $s.after(t)).map(function (e) { return zn(e.getNode()) }).getOr(!1); var n }, CS = function (e) { return e && "A" === e.nodeName && "href" in e }, wS = function (e) { return e.fold(C, CS, CS, C) }, xS = function (e, t) { t.fold(V, N(vS, e), N(yS, e), V) }, SS = function (e, t) { var n, r, o, i = (r = N(Ib, n = e), o = $s.fromRangeStart(n.selection.getRng()), WC(r, n.getBody(), o).filter(wS)); i.isSome() ? i.each(N(xS, e)) : hS(e, t) }, NS = function (e, t) { return tS(e).filter(function (e) { return 0 < t.length && Tt(At.fromDom(e), t) }).isSome() }, ES = Cr([{ br: [] }, { block: [] }, { none: [] }]), kS = function (e, t) { return NS(n = e, n.getParam("no_newline_selector", "")); var n }, _S = function (n) { return function (e, t) { return "" === vc(e) === n } }, AS = function (n) { return function (e, t) { return tS(e).filter(function (e) { return io(At.fromDom(e)) }).isSome() === n } }, RS = function (n, r) { return function (e, t) { return tS(e).fold(E(""), function (e) { return e.nodeName.toUpperCase() }) === n.toUpperCase() === r } }, TS = function (e) { return RS("pre", e) }, DS = function (n) { return function (e, t) { return e.getParam("br_in_pre", !0) === n } }, OS = function (e, t) { return NS(n = e, n.getParam("br_newline_selector", ".mce-toc h2,figcaption,caption")); var n }, BS = function (e, t) { return t }, PS = function (e) { var t = vc(e), n = function (e, t) { for (var n, r = e.getRoot(), o = t; o !== r && "false" !== e.getContentEditable(o);) "true" === e.getContentEditable(o) && (n = o), o = o.parentNode; return o !== r ? n : r }(e.dom, e.selection.getStart()); return n && e.schema.isValidChild(n.nodeName, t || "P") }, LS = function (e, t) { return function (n, r) { return X(e, function (e, t) { return e && t(n, r) }, !0) ? U.some(t) : U.none() } }, IS = function (e, t) { return IC([LS([kS], ES.none()), LS([RS("summary", !0)], ES.br()), LS([TS(!0), DS(!1), BS], ES.br()), LS([TS(!0), DS(!1)], ES.block()), LS([TS(!0), DS(!0), BS], ES.block()), LS([TS(!0), DS(!0)], ES.br()), LS([AS(!0), BS], ES.br()), LS([AS(!0)], ES.block()), LS([_S(!0), BS, PS], ES.block()), LS([_S(!0)], ES.br()), LS([OS], ES.br()), LS([_S(!1), BS], ES.br()), LS([PS], ES.block())], [e, !(!t || !t.shiftKey)]).getOr(ES.none()) }, MS = function (e, t) { IS(e, t).fold(function () { SS(e, t) }, function () { mS(e, t) }, V) }, FS = function (o) { o.on("keydown", function (e) { var t, n, r; e.keyCode === ud.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"), MS(t, n) }))) }) }, US = function (r) { r.on("keydown", function (e) { var t, n; !1 === e.isDefaultPrevented() && (t = r, n = e, Ox([{ keyCode: ud.END, action: Dx(xx, t, !0) }, { keyCode: ud.HOME, action: Dx(xx, t, !1) }, { keyCode: ud.END, action: Dx(Lx, t, !0) }, { keyCode: ud.HOME, action: Dx(Lx, t, !1) }], n).each(function (e) { n.preventDefault() })) }) }, zS = dt().browser, jS = function (t) { var e, n; e = t, n = zu(function () { e.composing || ig(e) }, 0), zS.isIE() && (e.on("keypress", function (e) { n.throttle() }), e.on("remove", function (e) { n.cancel() })), t.on("input", function (e) { !1 === e.isComposing && ig(t) }) }, HS = function (n, r) { var e = r.container(), t = r.offset(); return In(e) ? (e.insertData(t, n), U.some(Hs(e, t + n.length))) : ml(r).map(function (e) { var t = At.fromText(n); return (r.isAtEnd() ? cn : sn)(e, t), Hs(t.dom, n.length) }) }, VS = N(HS, lo), qS = N(HS, " "), $S = function (r, o) { return function (e) { return t = r, (!Gp(n = e) && (Jp(t, n) || Xp(t, n) || Yp(t, n)) ? VS : qS)(o); var t, n } }, WS = function (e) { var t, n, r = $s.fromRangeStart(e.selection.getRng()), o = At.fromDom(e.getBody()); if (e.selection.isCollapsed()) { var i = N(Ib, e), a = $s.fromRangeStart(e.selection.getRng()); return WC(i, e.getBody(), a).bind((n = o, function (e) { return e.fold(function (e) { return Ml(n.dom, $s.before(e)) }, function (e) { return Fl(e) }, function (e) { return Ul(e) }, function (e) { return Il(n.dom, $s.after(e)) }) })).bind($S(o, r)).exists((t = e, function (e) { return t.selection.setRng(e.toRange()), t.nodeChanged(), !0 })) } return !1 }, KS = function (r) { r.on("keydown", function (e) { var t, n; !1 === e.isDefaultPrevented() && (t = r, n = e, Ox([{ keyCode: ud.SPACEBAR, action: Dx(WS, t) }], n).each(function (e) { n.preventDefault() })) }) }, XS = function (e) { var t, n = cw(e); return (t = e).on("keyup compositionstart", N(Iw, t)), Qx(e, n), Zx(e, n), FS(e), KS(e), jS(e), US(e), n }, YS = (GS.prototype.nodeChanged = function (e) { var t, n, r, o = this.editor.selection; this.editor.initialized && o && !this.editor.getParam("disable_nodechange") && !this.editor.mode.isReadOnly() && (r = this.editor.getBody(), (t = o.getStart(!0) || r).ownerDocument === this.editor.getDoc() && this.editor.dom.isChildOf(t, r) || (t = r), n = [], this.editor.dom.getParent(t, function (e) { return e === r || void n.push(e) }), (e = e || {}).element = t, e.parents = n, this.editor.fire("NodeChange", e)) }, GS.prototype.isSameElementPath = function (e) { var t, n = this.editor.$(e).parentsUntil(this.editor.getBody()).add(e); if (n.length === this.lastPath.length) { for (t = n.length; 0 <= t && n[t] === this.lastPath[t]; t--); if (-1 === t) return this.lastPath = n, !0 } return this.lastPath = n, !1 }, GS); function GS(r) { var o; this.lastPath = [], this.editor = r; var t = this; "onselectionchange" in r.getDoc() || r.on("NodeChange click mouseup keyup focus", function (e) { var t = r.selection.getRng(), n = { startContainer: t.startContainer, startOffset: t.startOffset, endContainer: t.endContainer, endOffset: t.endOffset }; "nodechange" !== e.type && dd(n, o) || r.fire("SelectionChange"), o = n }), r.on("contextmenu", function () { r.fire("SelectionChange") }), r.on("SelectionChange", function () { var e = r.selection.getStart(!0); !e || !wt.range && r.selection.isCollapsed() || Vf(r) && !t.isSameElementPath(e) && r.dom.isChildOf(e, r.getBody()) && r.nodeChanged({ selectionChange: !0 }) }), r.on("mouseup", function (e) { !e.isDefaultPrevented() && Vf(r) && ("IMG" === r.selection.getNode().nodeName ? qr.setEditorTimeout(r, function () { r.nodeChanged() }) : r.nodeChanged()) }) } var JS = 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) { W(e, function (e) { e.attr("data-mce-open", e.attr("open")), e.attr("open", "open") }) }), n.serializer.addNodeFilter("details", function (e) { W(e, function (e) { var t = e.attr("data-mce-open"); e.attr("open", q(t) ? t : null), e.attr("data-mce-open", null) }) }) }, QS = function (e) { return An(e) && ro(At.fromDom(e)) }, ZS = function (a) { a.on("click", function (e) { var t, n, r, o, i; 3 <= e.detail && (r = (t = a).selection.getRng(), o = Hs.fromRangeStart(r), i = Hs.fromRangeEnd(r), Hs.isElementPosition(o) && (n = o.container(), QS(n) && Fl(n).each(function (e) { return r.setStart(e.container(), e.offset()) })), Hs.isElementPosition(i) && (n = o.container(), QS(n) && Ul(n).each(function (e) { return r.setEnd(e.container(), e.offset()) })), t.selection.setRng(Yg(r))) }) }, eN = function (e) { var t = e.getBoundingClientRect(), n = e.ownerDocument, r = n.documentElement, o = n.defaultView; return { top: t.top + o.pageYOffset - r.clientTop, left: t.left + o.pageXOffset - r.clientLeft } }, tN = function (e, t) { return n = (u = e).inline ? eN(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 = eN(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 }, nN = Vn, rN = Hn, oN = function (e) { e && e.parentNode && e.parentNode.removeChild(e) }, iN = function (u, s) { return function (e) { var t, n, r, o, i, a; 0 === e.button && (t = Y(s.dom.getParents(e.target), function () { for (var n = [], e = 0; e < arguments.length; e++) n[e] = arguments[e]; return function (e) { for (var t = 0; t < n.length; t++) if (n[t](e)) return !0; return !1 } }(nN, rN)).getOr(null), i = s.getBody(), nN(a = t) && a !== i && (n = s.dom.getPos(t), r = s.getBody(), o = s.getDoc().documentElement, u.set({ element: t, dragging: !1, screenX: e.screenX, screenY: e.screenY, maxX: (s.inline ? r.scrollWidth : o.offsetWidth) - 2, maxY: (s.inline ? r.scrollHeight : o.offsetHeight) - 2, relX: e.pageX - n.x, relY: e.pageY - n.y, width: t.offsetWidth, height: t.offsetHeight, ghost: function (e, t, n, r) { var o = e.dom, i = t.cloneNode(!0); o.setStyles(i, { width: n, height: r }), o.setAttrib(i, "data-mce-selected", null); var a = o.create("div", { "class": "mce-drag-container", "data-mce-bogus": "all", unselectable: "on", contenteditable: "false" }); return o.setStyles(a, { position: "absolute", opacity: .5, overflow: "hidden", border: 0, padding: 0, margin: 0, width: n, height: r }), o.setStyles(i, { margin: 0, boxSizing: "border-box" }), a.appendChild(i), a }(s, t, t.offsetWidth, t.offsetHeight) }))) } }, aN = function (e, h) { var v = qr.throttle(function (e, t) { h._selectionOverrides.hideFakeCaret(), h.selection.placeCaretAt(e, t) }, 0); return h.on("remove", v.stop), function (g) { return e.on(function (e) { var t, n, r, o, i, a, u, s, c, l, f, d, m, p = Math.max(Math.abs(g.screenX - e.screenX), Math.abs(g.screenY - e.screenY)); if (!e.dragging && 10 < p) { if (h.fire("dragstart", { target: e.element }).isDefaultPrevented()) return; e.dragging = !0, h.focus() } e.dragging && (d = e, t = { pageX: (m = tN(h, g)).pageX - d.relX, pageY: m.pageY + 5 }, l = e.ghost, f = h.getBody(), l.parentNode !== f && f.appendChild(l), n = e.ghost, r = t, o = e.width, i = e.height, a = e.maxX, u = e.maxY, c = s = 0, n.style.left = r.pageX + "px", n.style.top = r.pageY + "px", r.pageX + o > a && (s = r.pageX + o - a), r.pageY + i > u && (c = r.pageY + i - u), n.style.width = o - s + "px", n.style.height = i - c + "px", v(g.clientX, g.clientY)) }) } }, uN = function (e, l) { return function (c) { e.on(function (e) { var t, n, r, o, i, a, u, s; e.dragging && (u = (o = l).selection, s = u.getSel().getRangeAt(0).startContainer, i = 3 === s.nodeType ? s.parentNode : s, a = e.element, i === a || o.dom.isChildOf(i, a) || nN(i) || (n = e.element, (r = n.cloneNode(!0)).removeAttribute("data-mce-selected"), t = r, l.fire("drop", { clientX: c.clientX, clientY: c.clientY }).isDefaultPrevented() || l.undoManager.transact(function () { oN(e.element), l.insertContent(l.dom.getOuterHTML(t)), l._selectionOverrides.hideFakeCaret() }))) }), sN(e) } }, sN = function (e) { e.on(function (e) { oN(e.ghost) }), e.clear() }, cN = function (e) { var t, n, r, o = (t = Ou(U.none()), { clear: function () { return t.set(U.none()) }, set: function (e) { return t.set(U.some(e)) }, isSet: function () { return t.get().isSome() }, on: function (e) { return t.get().each(e) } }), i = Eu.DOM, a = document, u = iN(o, e), s = aN(o, e), c = uN(o, e), l = (n = o, function () { n.on(function (e) { e.dragging && r.fire("dragend") }), sN(n) }); (r = e).on("mousedown", u), e.on("mousemove", s), e.on("mouseup", c), i.bind(a, "mousemove", s), i.bind(a, "mouseup", l), e.on("remove", function () { i.unbind(a, "mousemove", s), i.unbind(a, "mouseup", l) }) }, lN = function (e) { var n, i, a, u, t; cN(e), (n = e).on("drop", function (e) { var t = "undefined" != typeof e.clientX ? n.getDoc().elementFromPoint(e.clientX, e.clientY) : null; !nN(t) && "false" !== n.dom.getContentEditableParent(t) || e.preventDefault() }), e.getParam("block_unsupported_drop", !0, "boolean") && (a = function (e) { var t; e.defaultPrevented || (t = e.dataTransfer) && (M(t.types, "Files") || 0 < t.files.length) && (e.preventDefault(), "drop" === e.type && cb(i, "Dropped file type is not supported")) }, u = function (e) { vm(i, e.target) && a(e) }, t = function () { var t = Eu.DOM, n = i.dom, r = document, o = i.inline ? i.getBody() : i.getDoc(), e = ["drop", "dragover"]; W(e, function (e) { t.bind(r, e, u), n.bind(o, e, a) }), i.on("remove", function () { W(e, function (e) { t.unbind(r, e, u), n.unbind(o, e, a) }) }) }, (i = e).on("init", function () { qr.setEditorTimeout(i, t, 0) })) }, fN = Hn, dN = Vn, mN = function (e, t) { return id(e.getBody(), t) }, pN = function (u) { var s, c = u.selection, l = u.dom, f = l.isBlock, d = u.getBody(), m = qc(u, d, f, function () { return Em(u) }), p = "sel-" + l.uniqueId(), i = "data-mce-selected", g = function (e) { return e !== d && (dN(e) || $n(e)) && l.isChildOf(e, d) }, h = function (e) { e && c.setRng(e) }, r = c.getRng, v = function (e, t, n, r) { return void 0 === r && (r = !0), u.fire("ShowCaret", { target: t, direction: e, before: n }).isDefaultPrevented() ? null : (r && c.scrollIntoView(t, -1 === e), m.show(n, t)) }, t = function (e) { return bo(e) || No(e) || Eo(e) }, y = function (e) { return t(e.startContainer) || t(e.endContainer) }, b = function (e) { var t = u.schema.getShortEndedElements(), n = l.createRng(), r = e.startContainer, o = e.startOffset, i = e.endContainer, a = e.endOffset; return he(t, r.nodeName.toLowerCase()) ? 0 === o ? n.setStartBefore(r) : n.setStartAfter(r) : n.setStart(r, o), he(t, i.nodeName.toLowerCase()) ? 0 === a ? n.setEndBefore(i) : n.setEndAfter(i) : n.setEnd(i, a), n }, C = function (e) { var t = e.cloneNode(!0), n = u.fire("ObjectSelected", { target: e, targetClone: t }); if (n.isDefaultPrevented()) return null; var r = function (e, t, n) { var r = u.$, o = Dr(At.fromDom(u.getBody()), "#" + p).fold(function () { return r([]) }, function (e) { return r([e.dom]) }); 0 === o.length && (o = r('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id", p)).appendTo(u.getBody()); var i = l.createRng(); t === n && wt.ie ? (o.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p>').append(t), i.setStartAfter(o[0].firstChild.firstChild), i.setEndAfter(t)) : (o.empty().append(lo).append(t).append(lo), i.setStart(o[0].firstChild, 1), i.setEnd(o[0].lastChild, 0)), o.css({ top: l.getPos(e, u.getBody()).y }), o[0].focus(); var a = c.getSel(); return a.removeAllRanges(), a.addRange(i), i }(e, n.targetClone, t), o = At.fromDom(e); return W(Gu(At.fromDom(u.getBody()), "*[data-mce-selected]"), function (e) { Ot(o, e) || Qn(e, i) }), l.getAttrib(e, i) || e.setAttribute(i, "1"), s = e, S(), r }, w = function (e, t) { if (!e) return null; if (e.collapsed) { if (!y(e)) { var n = t ? 1 : -1, r = dl(n, d, e), o = r.getNode(!t); if (Kc(o)) return v(n, o, !!t && !r.isAtEnd(), !1); var i = r.getNode(t); if (Kc(i)) return v(n, i, !t && !r.isAtEnd(), !1) } return null } var a = e.startContainer, u = e.startOffset, s = e.endOffset; if (3 === a.nodeType && 0 === u && dN(a.parentNode) && (a = a.parentNode, u = l.nodeIndex(a), a = a.parentNode), 1 !== a.nodeType) return null; if (s === u + 1 && a === e.endContainer) { var c = a.childNodes[u]; if (g(c)) return C(c) } return null }, x = function () { s && s.removeAttribute(i), Dr(At.fromDom(u.getBody()), "#" + p).each(pn), s = null }, S = function () { m.hide() }; return wt.ceFalse && function () { u.on("mouseup", function (e) { var t = r(); t.collapsed && nb(u, e.clientX, e.clientY) && lC(u, t, !1).each(h) }), u.on("click", function (e) { var t = mN(u, e.target); t && (dN(t) && (e.preventDefault(), u.focus()), fN(t) && l.isChildOf(t, c.getNode()) && x()) }), u.on("blur NewBlock", x), u.on("ResizeWindow FullscreenStateChanged", m.reposition); var a = function (e) { var t = _l(e); if (!e.firstChild) return !1; var n, r = $s.before(e.firstChild), o = t.next(r); return o && !(Np(n = o) || Ep(n) || Cp(n) || wp(n)) }, i = function (e, t) { var n, r, o = l.getParent(e, f), i = l.getParent(t, f); return !(!o || e === i || !l.isChildOf(o, i) || !1 !== dN(mN(u, o))) || o && (n = o, r = i, !(l.getParent(n, f) === l.getParent(r, f))) && a(o) }; u.on("tap", function (e) { var t = e.target, n = mN(u, t); dN(n) ? (e.preventDefault(), cC(u, n).each(w)) : g(t) && cC(u, t).each(w) }, !0), u.on("mousedown", function (e) { var t, n, r, o = e.target; o !== d && "HTML" !== o.nodeName && !l.isChildOf(o, d) || !1 === nb(u, e.clientX, e.clientY) || ((t = mN(u, o)) ? dN(t) ? (e.preventDefault(), cC(u, t).each(w)) : (x(), fN(t) && e.shiftKey || ad(e.clientX, e.clientY, c.getRng()) || (S(), c.placeCaretAt(e.clientX, e.clientY))) : g(o) ? cC(u, o).each(w) : !1 === Kc(o) && (x(), S(), (n = cx(d, e.clientX, e.clientY)) && (i(o, n.node) || (e.preventDefault(), r = v(1, n.node, n.before, !1), u.getBody().focus(), h(r))))) }), u.on("keypress", function (e) { ud.modifierPressed(e) || dN(c.getNode()) && e.preventDefault() }), u.on("GetSelectionRange", function (e) { var t = e.range; if (s) { if (!s.parentNode) return void(s = null); (t = t.cloneRange()).selectNode(s), e.range = t } }), u.on("SetSelectionRange", function (e) { e.range = b(e.range); var t = w(e.range, e.forward); t && (e.range = t) }); var n, e, o; u.on("AfterSetSelectionRange", function (e) { var t, n = e.range, r = n.startContainer.parentNode; y(n) || "mcepastebin" === r.id || S(), t = r, l.hasClass(t, "mce-offscreen-selection") || x() }), u.on("copy", function (e) { var t, n, r = e.clipboardData; e.isDefaultPrevented() || !e.clipboardData || wt.ie || (t = (n = l.get(p)) ? n.getElementsByTagName("*")[0] : n) && (e.preventDefault(), r.clearData(), r.setData("text/html", t.outerHTML), r.setData("text/plain", t.outerText || t.innerText)) }), lN(u), e = zu(function () { var e, t; n.removed || !n.getBody().contains(document.activeElement) || (e = n.selection.getRng()).collapsed && (t = fC(n, e, !1), n.selection.setRng(t)) }, 0), (n = u).on("focus", function () { e.throttle() }), n.on("blur", function () { e.cancel() }), (o = u).on("init", function () { o.on("focusin", function (e) { var t, n, r = e.target; $n(r) && (t = id(o.getBody(), r), n = Vn(t) ? t : r, o.selection.getNode() !== n && cC(o, n).each(function (e) { return o.selection.setRng(e) })) }) }) }(), { showCaret: v, showBlockCaretContainer: function (e) { e.hasAttribute("data-mce-caret") && (ko(e), h(r()), c.scrollIntoView(e)) }, hideFakeCaret: S, destroy: function () { m.destroy(), s = null } } }, gN = function (u) { var s, n, r, o = kt.each, c = ud.BACKSPACE, l = ud.DELETE, f = u.dom, d = u.selection, e = u.parser, t = wt.gecko, i = wt.ie, a = wt.webkit, m = "data:text/mce-internal,", p = i ? "Text" : "URL", g = function (e, t) { try { u.getDoc().execCommand(e, !1, t) } catch (n) {} }, h = function (e) { return e.isDefaultPrevented() }, v = function () { u.shortcuts.add("meta+a", null, "SelectAll") }, y = function () { u.on("keydown", function (e) { if (!h(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 } }) }, b = function () { u.inline || (u.contentStyles.push("body {min-height: 150px}"), u.on("click", function (e) { var t; if ("HTML" === e.target.nodeName) { if (11 < wt.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; if (!h(e) && e.keyCode === ud.BACKSPACE) { var n = (t = d.getRng()).startContainer, r = t.startOffset, o = f.getRoot(), i = n; if (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 (!h(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() } }), wt.windowsPhone || u.on("keyup focusin mouseup", function (e) { ud.modifierPressed(e) || d.normalize() }, !0), a && (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 (bo(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)) }), vc(u) && u.on("init", function () { g("DefaultParagraphSeparator", vc(u)) }), u.on("init", function () { u.dom.bind(u.getBody(), "submit", function (e) { e.preventDefault() }) }), y(), e.addNodeFilter("br", function (e) { for (var t = e.length; t--;) "Apple-interchange-newline" === e[t].attr("class") && e[t].remove() }), wt.iOS ? (u.inline || u.on("keydown", function () { document.activeElement === document.body && u.getWin().focus() }), b(), 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}")) : v()), 11 <= wt.ie && (b(), y()), wt.ie && (v(), g("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 = m + escape(u.id) + "," + escape(n), t.dataTransfer.setData(p, r))) }), u.on("drop", function (e) { var t, n, r, o, i, a; h(e) || (t = (i = e).dataTransfer && (a = i.dataTransfer.getData(p)) && 0 <= a.indexOf(m) ? (a = a.substr(m.length).split(","), { id: unescape(a[0]), html: unescape(a[1]) }) : null) && t.id !== u.id && (e.preventDefault(), n = fd(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)) })), t && (u.on("keydown", function (e) { if (!h(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) { var t; h(e) || "HTML" !== e.target.nodeName || ((t = u.getBody()).blur(), qr.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 (!h(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; !h(e) && r() && (t = n(), qr.setEditorTimeout(u, function () { t() })) }), u.getParam("readonly") || u.on("BeforeExecCommand mousedown", function () { g("StyleWithCSS", !1), g("enableInlineTableEditing", !1), Nc(u) || g("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}"), wt.mac && u.on("keydown", function (e) { !ud.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 () { if (!t || u.removed) return !1; var e = u.selection.getSel(); return !e || !e.rangeCount || 0 === e.rangeCount } } }, hN = Eu.DOM, vN = function (e) { return me(e, function (e) { return !1 === R(e) }) }, yN = function (e) { var t, n = e.settings, r = e.editorUpload.blobCache; return vN({ allow_conditional_comments: n.allow_conditional_comments, allow_html_data_urls: n.allow_html_data_urls, allow_svg_data_urls: n.allow_svg_data_urls, allow_html_in_named_anchor: n.allow_html_in_named_anchor, allow_script_urls: n.allow_script_urls, allow_unsafe_link_target: n.allow_unsafe_link_target, convert_fonts_to_spans: n.convert_fonts_to_spans, fix_list_elements: n.fix_list_elements, font_size_legacy_values: n.font_size_legacy_values, forced_root_block: n.forced_root_block, forced_root_block_attrs: n.forced_root_block_attrs, padd_empty_with_br: n.padd_empty_with_br, preserve_cdata: n.preserve_cdata, remove_trailing_brs: n.remove_trailing_brs, inline_styles: n.inline_styles, root_name: (t = e).inline ? t.getElement().nodeName.toLowerCase() : undefined, validate: !0, blob_cache: r, images_dataimg_filter: n.images_dataimg_filter }) }, bN = function (u) { var e = u.dom.getRoot(); u.inline || Vf(u) && u.selection.getStart(!0) !== e || Fl(e).each(function (e) { var t, n, r, o, i = e.getNode(), a = Bn(i) ? Fl(i).getOr(e) : e; wt.browser.isIE() ? (t = u, n = a.toRange(), r = At.fromDom(t.getBody()), o = (um(t) ? U.from(n) : U.none()).map(sm).filter(am(r)), t.bookmark = o.isSome() ? o : t.bookmark) : u.selection.setRng(a.toRange()) }) }, CN = function (e) { var t; e.bindPendingEventDelegates(), e.initialized = !0, e.fire("Init"), e.focus(!0), bN(e), e.nodeChanged({ initial: !0 }), e.execCallback("init_instance_callback", e), (t = e).settings.auto_focus && qr.setEditorTimeout(t, function () { var e = !0 === t.settings.auto_focus ? t : t.editorManager.get(t.settings.auto_focus); e.destroyed || e.focus() }, 100) }, wN = function (t, e) { var n = t.settings, r = t.getDoc(), o = t.getBody(); n.browser_spellcheck || n.gecko_spellcheck || (r.body.spellcheck = !1, hN.setAttrib(o, "spellcheck", "false")), t.quirks = gN(t), t.fire("PostRender"); var i, a, u, s, c, l, f, d, m, p, g, h = t.getParam("directionality", Iu.isRtl() ? "rtl" : undefined); h !== undefined && (o.dir = h), n.protect && t.on("BeforeSetContent", function (t) { kt.each(n.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()) }), !1 === e && 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 && (i = "", kt.each(t.contentStyles, function (e) { i += e + "\r\n" }), t.dom.addStyle(i)), u = (a = t).contentCSS, c = (s = a).inline ? s.ui.styleSheetLoader : s.dom.styleSheetLoader, l = function () { a.on("remove", function () { return c.unloadAll(u) }), CN(a) }, c.loadAll(u, l, l), n.content_style && (f = t, d = n.content_style, m = At.fromDom(f.getBody()), p = on(rn(m)), g = At.fromTag("style"), Xn(g, "type", "text/css"), fn(g, At.fromText(d)), fn(p, g), f.on("remove", function () { pn(g) })) }, xN = function (t, e) { var n = t.settings, r = t.getElement(), o = t.getDoc(); n.inline || (t.getElement().style.visibility = t.orgVisibility), e || t.inline || (o.open(), o.write(t.iframeHTML), o.close()), t.inline && (hN.addClass(r, "mce-content-body"), t.contentDocument = o = document, t.contentWindow = window, t.bodyElement = r, t.contentAreaContainer = r); var u, i, a, s, c = t.getBody(); c.disabled = !0, t.readonly = !!n.readonly, t.readonly || (t.inline && "static" === hN.getStyle(c, "position", !0) && (c.style.position = "relative"), c.contentEditable = t.getParam("content_editable_state", !0)), c.disabled = !1, t.editorUpload = yb(t), t.schema = Ci(n), t.dom = Eu(o, { keep_values: !0, url_converter: t.convertURL, url_converter_scope: t, hex_colors: n.force_hex_style_colors, update_styles: !0, root_element: t.inline ? t.getBody() : null, collect: function () { return t.inline }, schema: t.schema, contentCssCors: t.getParam("content_css_cors", !1, "boolean"), referrerPolicy: wc(t), onSetAttrib: function (e) { t.fire("SetAttrib", e) } }), t.parser = ((i = by(yN(u = t), u.schema)).addAttributeFilter("src,href,style,tabindex", function (e, t) { for (var n, r, o = e.length, i = u.dom, a = "data-mce-" + t; o--;) if ((r = (n = e[o]).attr(t)) && !n.attr(a)) { if (0 === r.indexOf("data:") || 0 === r.indexOf("blob:")) continue; "style" === t ? ((r = i.serializeStyle(i.parseStyle(r), n.name)).length || (r = null), n.attr(a, r), n.attr(t, r)) : "tabindex" === t ? (n.attr(a, r), n.attr(t, null)) : n.attr(a, u.convertURL(r, t, n.name)) } }), i.addNodeFilter("script", function (e) { for (var t = e.length; t--;) { var n = e[t], r = n.attr("type") || "no/type"; 0 !== r.indexOf("mce-") && n.attr("type", "mce-" + r) } }), u.settings.preserve_cdata && i.addNodeFilter("#cdata", function (e) { for (var t = e.length; t--;) { var n = e[t]; n.type = 8, n.name = "#comment", n.value = "[CDATA[" + u.dom.encode(n.value) + "]]" } }), i.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div", function (e) { for (var t = e.length, n = u.schema.getNonEmptyElements(); t--;) { var r = e[t]; r.isEmpty(n) && 0 === r.getAll("br").length && (r.append(new Km("br", 1)).shortEnded = !0) } }), i), t.serializer = Ny((s = (a = t).settings, ke(ke({}, yN(a)), vN({ url_converter: s.url_converter, url_converter_scope: s.url_converter_scope, element_format: s.element_format, entities: s.entities, entity_encoding: s.entity_encoding, indent: s.indent, indent_after: s.indent_after, indent_before: s.indent_before, block_elements: s.block_elements, boolean_attributes: s.boolean_attributes, custom_elements: s.custom_elements, extended_valid_elements: s.extended_valid_elements, invalid_elements: s.invalid_elements, invalid_styles: s.invalid_styles, move_caret_before_on_enter_elements: s.move_caret_before_on_enter_elements, non_empty_elements: s.non_empty_elements, schema: s.schema, self_closing_elements: s.self_closing_elements, short_ended_elements: s.short_ended_elements, special: s.special, text_block_elements: s.text_block_elements, text_inline_elements: s.text_inline_elements, valid_children: s.valid_children, valid_classes: s.valid_classes, valid_elements: s.valid_elements, valid_styles: s.valid_styles, verify_html: s.verify_html, whitespace_elements: s.whitespace_elements }))), t), t.selection = Qv(t.dom, t.getWin(), t.serializer, t), t.annotator = td(t), t.formatter = _b(t), t.undoManager = Rb(t), t._nodeChangeDispatcher = new YS(t), t._selectionOverrides = pN(t), Ow(t), JS(t), Hv(t) || ZS(t); var l, f, d, m, p = Hv(l = t) ? Ou(null) : XS(l); Tw(t, p), vc(f = t) && f.on("NodeChange", N(Pw, f)), Pb(t), t.fire("PreInit"), ge((m = d = t).plugins, "rtc").fold(function () { return m.rtcInstance = zv(d), U.none() }, function (e) { return U.some(e.setup().then(function (e) { return m.rtcInstance = jv(d, e), e.isRemote })) }).fold(function () { wN(t, !1) }, function (e) { t.setProgressState(!0), e.then(function (e) { t.setProgressState(!1), wN(t, e) }) }) }, SN = Eu.DOM, NN = function (e) { var t = e.getParam("doctype", "<!DOCTYPE html>") + "<html><head>"; e.getParam("document_base_url", "") !== e.documentBaseUrl && (t += '<base href="' + e.documentBaseURI.getURI() + '" />'), t += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; var n = gc(e, "body_id", "tinymce"), r = gc(e, "body_class", ""); return hc(e) && (t += '<meta http-equiv="Content-Security-Policy" content="' + hc(e) + '" />'), t += '</head><body id="' + n + '" class="mce-content-body ' + r + '" data-id="' + e.id + '"><br></body></html>' }, EN = function (e, t) { var n, r, o, i, a = e.editorManager.translate("Rich Text Area. Press ALT-0 for help."), u = (n = e.id, r = a, t.height, o = e.getParam("iframe_attrs", {}), i = At.fromTag("iframe"), Yn(i, o), Yn(i, { id: n + "_ifr", frameBorder: "0", allowTransparency: "true", title: r }), Wu(i, "tox-edit-area__iframe"), i.dom); u.onload = function () { u.onload = null, e.fire("load") }; var s = function (e, t) { if (document.domain !== window.location.hostname && wt.browser.isIE()) { var n = vb("mce"); e[n] = function () { xN(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 SN.setAttrib(t, "src", r), !0 } return !1 }(e, u); return e.contentAreaContainer = t.iframeContainer, e.iframeElement = u, e.iframeHTML = NN(e), SN.add(t.iframeContainer, u), s }, kN = Eu.DOM, _N = function (t, n, e) { var r = ib.get(e), o = ib.urls[e] || t.documentBaseUrl.replace(/\/$/, ""); if (e = kt.trim(e), r && -1 === kt.inArray(n, e)) { if (kt.each(ib.dependencies(e), function (e) { _N(t, n, e) }), t.plugins[e]) return; try { var i = new r(t, o, t.$); (t.plugins[e] = i).init && (i.init(t, o), n.push(e)) } catch (Ok) { ! function (e, t, n) { var r = Iu.translate(["Failed to initialize plugin: {0}", t]); mb(r, n), cb(e, r) }(t, e, Ok) } } }, AN = function (e) { return e.replace(/^\-/, "") }, RN = function (e) { return { editorContainer: e, iframeContainer: e, api: {} } }, TN = function (e) { var t, n, r = e.getElement(); return e.inline ? RN(null) : (t = r, n = kN.create("div"), kN.insertAfter(n, t), RN(n)) }, DN = function (e) { var t, n, r, o = e.getElement(); return e.orgDisplay = o.style.display, q(kc(e)) ? e.theme.renderUI() : T(kc(e)) ? (n = (t = e).getElement(), (r = kc(t)(t, n)).editorContainer.nodeType && (r.editorContainer.id = r.editorContainer.id || t.id + "_parent"), r.iframeContainer && r.iframeContainer.nodeType && (r.iframeContainer.id = r.iframeContainer.id || t.id + "_iframecontainer"), r.height = r.iframeHeight ? r.iframeHeight : n.offsetHeight, r) : TN(e) }, ON = function (e) { var n, t, r, o, i, a, u, s, c; e.fire("ScriptsLoaded"), n = e, t = kt.trim(Cc(n)), r = n.ui.registry.getAll().icons, o = ke(ke({}, Yy.get("default").icons), Yy.get(t).icons), ue(o, function (e, t) { he(r, t) || n.ui.registry.addIcon(t, e) }), u = kc(i = e), q(u) ? (i.settings.theme = AN(u), a = ab.get(u), i.theme = new a(i, ab.urls[u]), i.theme.init && i.theme.init(i, ab.urls[u] || i.documentBaseUrl.replace(/\/$/, ""), i.$)) : i.theme = {}, s = e, c = [], kt.each(Ac(s).split(/[ ,]/), function (e) { _N(s, c, AN(e)) }); var l, f, d, m = DN(e); l = e, f = U.from(m.api).getOr({}), d = { show: U.from(f.show).getOr(V), hide: U.from(f.hide).getOr(V), disable: U.from(f.disable).getOr(V), isDisabled: U.from(f.isDisabled).getOr(C), enable: function () { l.mode.isReadOnly() || U.from(f.enable).map(b) } }, l.ui = ke(ke({}, l.ui), d); var p, g, h, v, y = { editorContainer: m.editorContainer, iframeContainer: m.iframeContainer }; return e.editorContainer = y.editorContainer ? y.editorContainer : null, (p = e).contentCSS = p.contentCSS.concat(pb(p)), e.inline ? xN(e) : (v = EN(g = e, h = y), h.editorContainer && (SN.get(h.editorContainer).style.display = g.orgDisplay, g.hidden = SN.isHidden(h.editorContainer)), g.getElement().style.display = "none", SN.setAttrib(g.id, "aria-hidden", "true"), void(v || xN(g))) }, BN = Eu.DOM, PN = function (e) { return "-" === e.charAt(0) }, LN = function (e, t) { var n, r = xc(t), o = t.getParam("language_url", "", "string"); !1 === Iu.hasCode(r) && "en" !== r && (n = "" !== o ? o : t.editorManager.baseURL + "/langs/" + r + ".js", e.add(n, V, undefined, function () { lb(t, "LanguageLoadError", fb("language", n, r)) })) }, IN = function (t, e, n) { return U.from(e).filter(function (e) { return 0 < e.length && !Yy.has(e) }).map(function (e) { return { url: t.editorManager.baseURL + "/icons/" + e + "/icons" + n + ".js", name: U.some(e) } }) }, MN = function (e, o, t) { var n, r = IN(o, "default", t), i = (n = o, U.from(n.getParam("icons_url", "", "string")).filter(function (e) { return 0 < e.length }).map(function (e) { return { url: e, name: U.none() } }).orThunk(function () { return IN(o, Cc(o), "") })); W(function (e) { for (var t = [], n = function (e) { t.push(e) }, r = 0; r < e.length; r++) e[r].each(n); return t }([r, i]), function (r) { e.add(r.url, V, undefined, function () { var e, t, n; e = o, t = r.url, n = r.name.getOrUndefined(), lb(e, "IconsLoadError", fb("icons", t, n)) }) }) }, FN = function (e, t) { var n, r, o, i, a, u, s = Ru.ScriptLoader; n = s, o = t, i = function () { var r, o; LN(s, e), MN(s, e, t), r = e, o = t, kt.each(r.getParam("external_plugins"), function (e, t) { ib.load(t, e, V, undefined, function () { db(r, e, t) }), r.settings.plugins += " " + t }), kt.each(Ac(r).split(/[ ,]/), function (e) { var t, n; (e = kt.trim(e)) && !ib.urls[e] && (PN(e) ? (e = e.substr(1, e.length), t = ib.dependencies(e), kt.each(t, function (e) { var t = { prefix: "plugins/", resource: e, suffix: "/plugin" + o + ".js" }, n = ib.createUrl(t, e); ib.load(n.resource, n, V, undefined, function () { db(r, n.prefix + n.resource + n.suffix, n.resource) }) })) : (n = { prefix: "plugins/", resource: e, suffix: "/plugin" + o + ".js" }, ib.load(e, n, V, undefined, function () { db(r, n.prefix + n.resource + n.suffix, e) }))) }), s.loadQueue(function () { e.removed || ON(e) }, e, function () { e.removed || ON(e) }) }, u = kc(r = e), q(u) ? (PN(u) || ab.urls.hasOwnProperty(u) || ((a = r.getParam("theme_url")) ? ab.load(u, r.documentBaseURI.toAbsolute(a)) : ab.load(u, "themes/" + u + "/theme" + o + ".js")), n.loadQueue(function () { ab.waitFor(u, i) })) : i() }, UN = function (t) { var e = t.id; Iu.setCode(xc(t)); var n, r, o, i, a, u = function () { BN.unbind(window, "ready", u), t.render() }; Ti.Event.domLoaded ? t.getElement() && wt.contentEditable && (n = At.fromDom(t.getElement()), r = X(n.dom.attributes, function (e, t) { return e[t.name] = t.value, e }, {}), t.on("remove", function () { j(n.dom.attributes, function (e) { return Qn(n, e.name), 0 }), Yn(n, r) }), t.ui.styleSheetLoader = (o = n, i = t, Kr.forElement(o, { contentCssCors: i.getParam("content_css_cors"), referrerPolicy: wc(i) })), t.getParam("inline") ? t.inline = !0 : (t.orgVisibility = t.getElement().style.visibility, t.getElement().style.visibility = "hidden"), (a = t.getElement().form || BN.getParent(e, "form")) && (t.formElement = a, t.getParam("hidden_input") && !Ln(t.getElement()) && (BN.insertAfter(BN.create("input", { type: "hidden", name: e }), e), t.hasHiddenInput = !0), t.formEventDelegate = function (e) { t.fire(e.type, e) }, BN.bind(a, "submit reset", t.formEventDelegate), t.on("reset", function () { t.resetContent() }), !t.getParam("submit_patch") || a.submit.nodeType || a.submit.length || a._mceOldSubmit || (a._mceOldSubmit = a.submit, a.submit = function () { return t.editorManager.triggerSave(), t.setDirty(!1), a._mceOldSubmit(a) })), t.windowManager = ub(t), t.notificationManager = ob(t), "xml" === t.getParam("encoding") && t.on("GetContent", function (e) { e.save && (e.content = BN.encode(e.content)) }), t.getParam("add_form_submit_trigger") && t.on("submit", function () { t.initialized && t.save() }), t.getParam("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), FN(t, t.suffix)) : BN.bind(window, "ready", u) }, zN = function (e, t) { return n = t, qv(e).editor.addVisual(n); var n }, jN = { "font-size": "size", "font-family": "face" }, HN = function (n, t, e) { return Pm(At.fromDom(e), function (e) { return nr(t = e, n).orThunk(function () { return "font" === Lt(t) ? ge(jN, n).bind(function (e) { return Jn(t, e) }) : U.none() }); var t }, function (e) { return Ot(At.fromDom(t), e) }) }, VN = function (o) { return function (r, e) { return U.from(e).map(At.fromDom).filter(Ft).bind(function (e) { return HN(o, r, e.dom).or((t = o, n = e.dom, U.from(Eu.DOM.getStyle(n, t, !0)))); var t, n }).getOr("") } }, qN = VN("font-size"), $N = a(function (e) { return e.replace(/[\'\"\\]/g, "").replace(/,\s+/g, ",") }, VN("font-family")), WN = function (e) { return Fl(e.getBody()).map(function (e) { var t = e.container(); return In(t) ? t.parentNode : t }) }, KN = function (e, t) { return n = e, U.from(n.selection.getRng()).bind(function (e) { var t = n.getBody(); return e.startContainer === t && 0 === e.startOffset ? U.none() : U.from(n.selection.getStart(!0)) }).orThunk(N(WN, e)).map(At.fromDom).filter(Ft).map(t); var n }, XN = function (e, t) { if (/^[0-9.]+$/.test(t)) { var n = parseInt(t, 10); if (1 <= n && n <= 7) { var r = (a = e, kt.explode(a.getParam("font_size_style_values", "xx-small,x-small,small,medium,large,x-large,xx-large"))), o = (i = e, kt.explode(i.getParam("font_size_classes", ""))); return o ? o[n - 1] || t : r[n - 1] || t } return t } return t; var i, a }, YN = function (e, t) { var n, r = XN(e, t); e.formatter.toggle("fontname", { value: (n = r.split(/\s*,\s*/), z(n, function (e) { return -1 === e.indexOf(" ") || Ve(e, '"') || Ve(e, "'") ? e : "'" + e + "'" }).join(",")) }), e.nodeChanged() }, GN = function (e, t) { var n, r, o, i, a = "string" != typeof (n = t) ? (r = kt.extend({ paste: n.paste, data: { paste: n.paste } }, n), { content: n.content, details: r }) : { content: n, details: {} }; o = a.content, i = a.details, Vv(e).editor.insertContent(o, i) }, JN = kt.each, QN = kt.map, ZN = kt.inArray, eE = (tE.prototype.execCommand = function (t, n, r, e) { var o, i, a = !1, u = this; if (!u.editor.removed) { if (/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(t) || e && e.skip_focus ? (i = u.editor, dm(i).each(function (e) { return i.selection.setRng(e) })) : u.editor.focus(), (e = u.editor.fire("BeforeExecCommand", { command: t, ui: n, value: r })).isDefaultPrevented()) return !1; var s = t.toLowerCase(); if (o = u.commands.exec[s]) return o(s, n, r), u.editor.fire("ExecCommand", { command: t, ui: n, value: r }), !0; if (JN(this.editor.plugins, function (e) { if (e.execCommand && e.execCommand(t, n, r)) return u.editor.fire("ExecCommand", { command: t, ui: n, value: r }), !(a = !0) }), a) return a; if (u.editor.theme && u.editor.theme.execCommand && u.editor.theme.execCommand(t, n, r)) return u.editor.fire("ExecCommand", { command: t, ui: n, value: r }), !0; try { a = u.editor.getDoc().execCommand(t, n, r) } catch (c) {} return !!a && (u.editor.fire("ExecCommand", { command: t, ui: n, value: r }), !0) } }, tE.prototype.queryCommandState = function (e) { var t; if (!this.editor.quirks.isHidden() && !this.editor.removed) { if (e = e.toLowerCase(), t = this.commands.state[e]) return t(e); try { return this.editor.getDoc().queryCommandState(e) } catch (n) {} return !1 } }, tE.prototype.queryCommandValue = function (e) { var t; if (!this.editor.quirks.isHidden() && !this.editor.removed) { if (e = e.toLowerCase(), t = this.commands.value[e]) return t(e); try { return this.editor.getDoc().queryCommandValue(e) } catch (n) {} } }, tE.prototype.addCommands = function (e, n) { void 0 === n && (n = "exec"); var r = this; JN(e, function (t, e) { JN(e.toLowerCase().split(","), function (e) { r.commands[n][e] = t }) }) }, tE.prototype.addCommand = function (e, o, i) { var a = this; e = e.toLowerCase(), this.commands.exec[e] = function (e, t, n, r) { return o.call(i || a.editor, t, n, r) } }, tE.prototype.queryCommandSupported = function (e) { if (e = e.toLowerCase(), this.commands.exec[e]) return !0; try { return this.editor.getDoc().queryCommandSupported(e) } catch (t) {} return !1 }, tE.prototype.addQueryStateHandler = function (e, t, n) { var r = this; e = e.toLowerCase(), this.commands.state[e] = function () { return t.call(n || r.editor) } }, tE.prototype.addQueryValueHandler = function (e, t, n) { var r = this; e = e.toLowerCase(), this.commands.value[e] = function () { return t.call(n || r.editor) } }, tE.prototype.hasCustomCommand = function (e) { return e = e.toLowerCase(), !!this.commands.exec[e] }, tE.prototype.execNativeCommand = function (e, t, n) { return t === undefined && (t = !1), n === undefined && (n = null), this.editor.getDoc().execCommand(e, t, n) }, tE.prototype.isFormatMatch = function (e) { return this.editor.formatter.match(e) }, tE.prototype.toggleFormat = function (e, t) { this.editor.formatter.toggle(e, t ? { value: t } : undefined), this.editor.nodeChanged() }, tE.prototype.storeSelection = function (e) { this.selectionBookmark = this.editor.selection.getBookmark(e) }, tE.prototype.restoreSelection = function () { this.editor.selection.moveToBookmark(this.selectionBookmark) }, tE.prototype.setupCommands = function (i) { var a = this; this.addCommands({ "mceResetDesignMode,mceBeginUndoLevel": function () {}, "mceEndUndoLevel,mceAddUndoLevel": function () { i.undoManager.add() }, "Cut,Copy,Paste": function (e) { var t, n, r = i.getDoc(); try { a.execNativeCommand(e) } catch (o) { t = !0 } "paste" !== e || r.queryCommandEnabled(e) || (t = !0), !t && r.queryCommandSupported(e) || (n = i.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead."), wt.mac && (n = n.replace(/Ctrl\+/g, "\u2318+")), i.notificationManager.open({ text: n, type: "error" })) }, unlink: function () { var e; i.selection.isCollapsed() ? (e = i.dom.getParent(i.selection.getStart(), "a")) && i.dom.remove(e, !0) : i.formatter.remove("link") }, "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone": function (e) { var t = e.substring(7); "full" === t && (t = "justify"), JN("left,center,right,justify".split(","), function (e) { t !== e && i.formatter.remove("align" + e) }), "none" !== t && a.toggleFormat("align" + t) }, "InsertUnorderedList,InsertOrderedList": function (e) { var t; a.execNativeCommand(e); var n = i.dom.getParent(i.selection.getNode(), "ol,ul"); n && (t = n.parentNode, /^(H[1-6]|P|ADDRESS|PRE)$/.test(t.nodeName) && (a.storeSelection(), i.dom.split(t, n), a.restoreSelection())) }, "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) { a.toggleFormat(e) }, "ForeColor,HiliteColor": function (e, t, n) { a.toggleFormat(e, n) }, FontName: function (e, t, n) { YN(i, n) }, FontSize: function (e, t, n) { var r, o; o = n, (r = i).formatter.toggle("fontsize", { value: XN(r, o) }), r.nodeChanged() }, LineHeight: function (e, t, n) { var r, o; o = n, (r = i).undoManager.transact(function () { r.formatter.toggle("lineheight", { value: String(o) }), r.nodeChanged() }) }, RemoveFormat: function (e) { i.formatter.remove(e) }, mceBlockQuote: function () { a.toggleFormat("blockquote") }, FormatBlock: function (e, t, n) { return a.toggleFormat(n || "p") }, mceCleanup: function () { var e = i.selection.getBookmark(); i.setContent(i.getContent()), i.selection.moveToBookmark(e) }, mceRemoveNode: function (e, t, n) { var r = n || i.selection.getNode(); r !== i.getBody() && (a.storeSelection(), i.dom.remove(r, !0), a.restoreSelection()) }, mceSelectNodeDepth: function (e, t, n) { var r = 0; i.dom.getParent(i.selection.getNode(), function (e) { if (1 === e.nodeType && r++ === n) return i.selection.select(e), !1 }, i.getBody()) }, mceSelectNode: function (e, t, n) { i.selection.select(n) }, mceInsertContent: function (e, t, n) { GN(i, n) }, mceInsertRawHTML: function (e, t, n) { i.selection.setContent("tiny_mce_marker"); var r = i.getContent(); i.setContent(r.replace(/tiny_mce_marker/g, function () { return n })) }, mceInsertNewLine: function (e, t, n) { MS(i, n) }, mceToggleFormat: function (e, t, n) { a.toggleFormat(n) }, mceSetContent: function (e, t, n) { i.setContent(n) }, "Indent,Outdent": function (e) { _w(i, e) }, mceRepaint: function () {}, InsertHorizontalRule: function () { i.execCommand("mceInsertContent", !1, "<hr />") }, mceToggleVisualAid: function () { i.hasVisual = !i.hasVisual, i.addVisual() }, mceReplaceContent: function (e, t, n) { i.execCommand("mceInsertContent", !1, n.replace(/\{\$selection\}/g, i.selection.getContent({ format: "text" }))) }, mceInsertLink: function (e, t, n) { "string" == typeof n && (n = { href: n }); var r = i.dom.getParent(i.selection.getNode(), "a"); n.href = n.href.replace(/ /g, "%20"), r && n.href || i.formatter.remove("link"), n.href && i.formatter.apply("link", n, r) }, selectAll: function () { var e, t = i.dom.getParent(i.selection.getStart(), Hn); t && ((e = i.dom.createRng()).selectNodeContents(t), i.selection.setRng(e)) }, mceNewDocument: function () { i.setContent("") }, InsertLineBreak: function (e, t, n) { return SS(i, n), !0 } }); var e = function (r) { return function () { var e = i.selection, t = e.isCollapsed() ? [i.dom.getParent(e.getNode(), i.dom.isBlock)] : e.getSelectedBlocks(), n = QN(t, function (e) { return !!i.formatter.matchNode(e, r) }); return -1 !== ZN(n, !0) } }; a.addCommands({ JustifyLeft: e("alignleft"), JustifyCenter: e("aligncenter"), JustifyRight: e("alignright"), JustifyFull: e("alignjustify"), "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) { return a.isFormatMatch(e) }, mceBlockQuote: function () { return a.isFormatMatch("blockquote") }, Outdent: function () { return Nw(i) }, "InsertUnorderedList,InsertOrderedList": function (e) { var t = i.dom.getParent(i.selection.getNode(), "ul,ol"); return t && ("insertunorderedlist" === e && "UL" === t.tagName || "insertorderedlist" === e && "OL" === t.tagName) } }, "state"), a.addCommands({ Undo: function () { i.undoManager.undo() }, Redo: function () { i.undoManager.redo() } }), a.addQueryValueHandler("FontName", function () { return KN(t = i, function (e) { return $N(t.getBody(), e.dom) }).getOr(""); var t }, this), a.addQueryValueHandler("FontSize", function () { return KN(t = i, function (e) { return qN(t.getBody(), e.dom) }).getOr(""); var t }, this), a.addQueryValueHandler("LineHeight", function () { return KN(t = i, function (n) { var e = At.fromDom(t.getBody()); return Pm(n, function (e) { return nr(e, "line-height") }, N(Ot, e)).getOrThunk(function () { var e = parseFloat(er(n, "line-height")), t = parseFloat(er(n, "font-size")); return String(e / t) }) }).getOr(""); var t }, this) }, tE); function tE(e) { this.commands = { state: {}, exec: {}, value: {} }, this.editor = e, this.setupCommands(e) } var nE = "data-mce-contenteditable", rE = function (e, t, n) { var r, o; Xu(e, t) && !1 === n ? (o = t, Vu(r = e) ? r.dom.classList.remove(o) : $u(r, o), Ku(r)) : n && Wu(e, t) }, oE = function (e, t, n) { try { e.getDoc().execCommand(t, !1, String(n)) } catch (r) {} }, iE = function (e, t) { e.dom.contentEditable = t ? "true" : "false" }, aE = function (e, t) { var n, r, o, i = At.fromDom(e.getBody()); rE(i, "mce-content-readonly", t), t ? (e.selection.controlSelection.hideResizeRect(), e._selectionOverrides.hideFakeCaret(), o = e, U.from(o.selection.getNode()).each(function (e) { e.removeAttribute("data-mce-selected") }), e.readonly = !0, iE(i, !1), W(Gu(i, '*[contenteditable="true"]'), function (e) { Xn(e, nE, "true"), iE(e, !1) })) : (e.readonly = !1, iE(i, !0), W(Gu(i, "*[" + nE + '="true"]'), function (e) { Qn(e, nE), iE(e, !0) }), oE(e, "StyleWithCSS", !1), oE(e, "enableInlineTableEditing", !1), oE(e, "enableObjectResizing", !1), (Em(r = e) || Nm(r)) && e.focus(), (n = e).selection.setRng(n.selection.getRng()), e.nodeChanged()) }, uE = function (e) { return e.readonly }, sE = function (t) { t.parser.addAttributeFilter("contenteditable", function (e) { uE(t) && W(e, function (e) { e.attr(nE, e.attr("contenteditable")), e.attr("contenteditable", "false") }) }), t.serializer.addAttributeFilter(nE, function (e) { uE(t) && W(e, function (e) { e.attr("contenteditable", e.attr(nE)) }) }), t.serializer.addTempAttr(nE) }, cE = function (a, u) { var e, t; "click" !== u.type || ud.metaKeyPressed(u) || (e = At.fromDom(u.target), t = a, Or(e, "a", function (e) { return Ot(e, At.fromDom(t.getBody())) }).bind(function (e) { return Jn(e, "href") }).each(function (e) { var t, n, r, o, i; u.preventDefault(), /^#/.test(e) ? (t = a.dom.select(e + ',[name="' + (Ve(n = e, r = "#") ? (o = n, i = r.length, o.substring(i)) : n) + '"]')).length && a.selection.scrollIntoView(t[0], !0) : window.open(e, "_blank", "rel=noopener noreferrer,menubar=yes,toolbar=yes,location=yes,status=yes,resizable=yes,scrollbars=yes") })) }, lE = kt.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input beforeinput contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend touchcancel", " "), fE = (dE.isNative = function (e) { return !!lE[e.toLowerCase()] }, dE.prototype.fire = function (e, t) { var n = e.toLowerCase(), r = t || {}; r.type = n, r.target || (r.target = this.scope), r.preventDefault || (r.preventDefault = function () { r.isDefaultPrevented = k }, r.stopPropagation = function () { r.isPropagationStopped = k }, r.stopImmediatePropagation = function () { r.isImmediatePropagationStopped = k }, r.isDefaultPrevented = C, r.isPropagationStopped = C, r.isImmediatePropagationStopped = C), this.settings.beforeFire && this.settings.beforeFire(r); var o = this.bindings[n]; if (o) for (var i = 0, a = o.length; i < a; i++) { var u = o[i]; if (u.once && this.off(n, u.func), r.isImmediatePropagationStopped()) return r.stopPropagation(), r; if (!1 === u.func.call(this.scope, r)) return r.preventDefault(), r } return r }, dE.prototype.on = function (e, t, n, r) { if (!1 === t && (t = C), t) { var o = { func: t }; r && kt.extend(o, r); for (var i = e.toLowerCase().split(" "), a = i.length; a--;) { var u = i[a], s = this.bindings[u]; s || (s = this.bindings[u] = [], this.toggleEvent(u, !0)), n ? s.unshift(o) : s.push(o) } } return this }, dE.prototype.off = function (e, t) { var n = this; if (e) for (var r = e.toLowerCase().split(" "), o = r.length; o--;) { var i = r[o], a = this.bindings[i]; if (!i) return ue(this.bindings, function (e, t) { n.toggleEvent(t, !1), delete n.bindings[t] }), this; if (a) { if (t) for (var u = a.length; u--;) a[u].func === t && (a = a.slice(0, u).concat(a.slice(u + 1)), this.bindings[i] = a); else a.length = 0; a.length || (this.toggleEvent(e, !1), delete this.bindings[i]) } } else ue(this.bindings, function (e, t) { n.toggleEvent(t, !1) }), this.bindings = {}; return this }, dE.prototype.once = function (e, t, n) { return this.on(e, t, n, { once: !0 }) }, dE.prototype.has = function (e) { return e = e.toLowerCase(), !(!this.bindings[e] || 0 === this.bindings[e].length) }, dE); function dE(e) { this.bindings = {}, this.settings = e || {}, this.scope = this.settings.scope || this, this.toggleEvent = this.settings.toggleEvent || C } var mE, pE = function (n) { return n._eventDispatcher || (n._eventDispatcher = new fE({ scope: n, toggleEvent: function (e, t) { fE.isNative(e) && n.toggleNativeEvent && n.toggleNativeEvent(e, t) } })), n._eventDispatcher }, gE = { fire: function (e, t, n) { if (this.removed && "remove" !== e && "detach" !== e) return t; var r = pE(this).fire(e, t); if (!1 !== n && this.parent) for (var o = this.parent(); o && !r.isPropagationStopped();) o.fire(e, r, !1), o = o.parent(); return r }, on: function (e, t, n) { return pE(this).on(e, t, n) }, off: function (e, t) { return pE(this).off(e, t) }, once: function (e, t) { return pE(this).once(e, t) }, hasEventListeners: function (e) { return pE(this).has(e) } }, hE = Eu.DOM, vE = function (e, t) { if ("selectionchange" === t) return e.getDoc(); if (!e.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)) return e.getDoc().documentElement; var n = Ec(e); return n ? (e.eventRoot || (e.eventRoot = hE.select(n)[0]), e.eventRoot) : e.getBody() }, yE = function (e, t, n) { var r; (r = e).hidden || uE(r) ? uE(e) && cE(e, n) : e.fire(t, n) }, bE = function (i, a) { var e; if (i.delegates || (i.delegates = {}), !i.delegates[a] && !i.removed) { var t = vE(i, a); if (Ec(i)) { if (mE || (mE = {}, i.editorManager.on("removeEditor", function () { i.editorManager.activeEditor || mE && (ue(mE, function (e, t) { i.dom.unbind(vE(i, t)) }), mE = null) })), mE[a]) return; e = function (e) { for (var t = e.target, n = i.editorManager.get(), r = n.length; r--;) { var o = n[r].getBody(); o !== t && !hE.isChildOf(t, o) || yE(n[r], a, e) } }, mE[a] = e, hE.bind(t, a, e) } else e = function (e) { yE(i, a, e) }, hE.bind(t, a, e), i.delegates[a] = e } }, CE = ke(ke({}, gE), { bindPendingEventDelegates: function () { var t = this; kt.each(t._pendingNativeEvents, function (e) { bE(t, e) }) }, toggleNativeEvent: function (e, t) { var n = this; "focus" !== e && "blur" !== e && (t ? n.initialized ? bE(n, e) : n._pendingNativeEvents ? n._pendingNativeEvents.push(e) : n._pendingNativeEvents = [e] : n.initialized && (n.dom.unbind(vE(n, e), e, n.delegates[e]), delete n.delegates[e])) }, unbindAllNativeEvents: function () { var n = this, e = n.getBody(), t = n.dom; n.delegates && (ue(n.delegates, function (e, t) { n.dom.unbind(vE(n, t), t, e) }), delete n.delegates), !n.inline && e && t && (e.onload = null, t.unbind(n.getWin()), t.unbind(n.getDoc())), t && (t.unbind(e), t.unbind(n.getContainer())) } }), wE = ["design", "readonly"], xE = function (e, t, n, r) { var o, i = n[t.get()], a = n[r]; try { a.activate() } catch (Ok) { return void console.error("problem while activating editor mode " + r + ":", Ok) } i.deactivate(), i.editorReadOnly !== a.editorReadOnly && aE(e, a.editorReadOnly), t.set(r), o = r, e.fire("SwitchMode", { mode: o }) }, SE = function (t) { var e, n, r = Ou("design"), o = Ou({ design: { activate: V, deactivate: V, editorReadOnly: !1 }, readonly: { activate: V, deactivate: V, editorReadOnly: !0 } }); return (e = t).serializer ? sE(e) : e.on("PreInit", function () { sE(e) }), (n = t).on("ShowCaret", function (e) { uE(n) && e.preventDefault() }), n.on("ObjectSelected", function (e) { uE(n) && e.preventDefault() }), { isReadOnly: function () { return uE(t) }, set: function (e) { return function (e, t, n, r) { if (r !== n.get()) { if (!he(t, r)) throw new Error("Editor mode '" + r + "' is invalid"); e.initialized ? xE(e, n, t, r) : e.on("init", function () { return xE(e, n, t, r) }) } }(t, o.get(), r, e) }, get: function () { return r.get() }, register: function (e, t) { o.set(function (e, t, n) { var r; if (M(wE, t)) throw new Error("Cannot override default mode " + t); return ke(ke({}, e), ((r = {})[t] = ke(ke({}, n), { deactivate: function () { try { n.deactivate() } catch (Ok) { console.error("problem while deactivating editor mode " + t + ":", Ok) } } }), r)) }(o.get(), e, t)) } } }, NE = kt.each, EE = kt.explode, kE = { f1: 112, f2: 113, f3: 114, f4: 115, f5: 116, f6: 117, f7: 118, f8: 119, f9: 120, f10: 121, f11: 122, f12: 123 }, _E = kt.makeMap("alt,ctrl,shift,meta,access"), AE = (RE.prototype.add = function (e, n, t, r) { var o = this, i = o.normalizeCommandFunc(t); return NE(EE(kt.trim(e)), function (e) { var t = o.createShortcut(e, n, i, r); o.shortcuts[t.id] = t }), !0 }, RE.prototype.remove = function (e) { var t = this.createShortcut(e); return !!this.shortcuts[t.id] && (delete this.shortcuts[t.id], !0) }, RE.prototype.normalizeCommandFunc = function (e) { var t = this, n = e; return "string" == typeof n ? function () { t.editor.execCommand(n, !1, null) } : kt.isArray(n) ? function () { t.editor.execCommand(n[0], n[1], n[2]) } : n }, RE.prototype.parseShortcut = function (e) { var t, n = {}; NE(EE(e.toLowerCase(), "+"), function (e) { e in _E ? n[e] = !0 : /^[0-9]{2,}$/.test(e) ? n.keyCode = parseInt(e, 10) : (n.charCode = e.charCodeAt(0), n.keyCode = kE[e] || e.toUpperCase().charCodeAt(0)) }); var r = [n.keyCode]; for (t in _E) n[t] ? r.push(t) : n[t] = !1; return n.id = r.join(","), n.access && (n.alt = !0, wt.mac ? n.ctrl = !0 : n.shift = !0), n.meta && (wt.mac ? n.meta = !0 : (n.ctrl = !0, n.meta = !1)), n }, RE.prototype.createShortcut = function (e, t, n, r) { var o = kt.map(EE(e, ">"), this.parseShortcut); return o[o.length - 1] = kt.extend(o[o.length - 1], { func: n, scope: r || this.editor }), kt.extend(o[0], { desc: this.editor.translate(t), subpatterns: o.slice(1) }) }, RE.prototype.hasModifier = function (e) { return e.altKey || e.ctrlKey || e.metaKey }, RE.prototype.isFunctionKey = function (e) { return "keydown" === e.type && 112 <= e.keyCode && e.keyCode <= 123 }, RE.prototype.matchShortcut = 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) }, RE.prototype.executeShortcutAction = function (e) { return e.func ? e.func.call(e.scope) : null }, RE); function RE(e) { this.shortcuts = {}, this.pendingPatterns = [], this.editor = e; var n = this; e.on("keyup keypress keydown", function (t) { !n.hasModifier(t) && !n.isFunctionKey(t) || t.isDefaultPrevented() || (NE(n.shortcuts, function (e) { if (n.matchShortcut(t, e)) return n.pendingPatterns = e.subpatterns.slice(0), "keydown" === t.type && n.executeShortcutAction(e), !0 }), n.matchShortcut(t, n.pendingPatterns[0]) && (1 === n.pendingPatterns.length && "keydown" === t.type && n.executeShortcutAction(n.pendingPatterns[0]), n.pendingPatterns.shift())) }) } var TE = function () { var e, t, n, r, o, i, a, u, s = (t = {}, n = {}, r = {}, o = {}, i = {}, a = {}, { addButton: (u = function (n, r) { return function (e, t) { return n[e.toLowerCase()] = ke(ke({}, t), { type: r }) } })(e = {}, "button"), addGroupToolbarButton: u(e, "grouptoolbarbutton"), addToggleButton: u(e, "togglebutton"), addMenuButton: u(e, "menubutton"), addSplitButton: u(e, "splitbutton"), addMenuItem: u(t, "menuitem"), addNestedMenuItem: u(t, "nestedmenuitem"), addToggleMenuItem: u(t, "togglemenuitem"), addAutocompleter: u(n, "autocompleter"), addContextMenu: u(o, "contextmenu"), addContextToolbar: u(i, "contexttoolbar"), addContextForm: u(i, "contextform"), addSidebar: u(a, "sidebar"), addIcon: function (e, t) { return r[e.toLowerCase()] = t }, getAll: function () { return { buttons: e, menuItems: t, icons: r, popups: n, contextMenus: o, contextToolbars: i, sidebars: a } } }); return { addAutocompleter: s.addAutocompleter, addButton: s.addButton, addContextForm: s.addContextForm, addContextMenu: s.addContextMenu, addContextToolbar: s.addContextToolbar, addIcon: s.addIcon, addMenuButton: s.addMenuButton, addMenuItem: s.addMenuItem, addNestedMenuItem: s.addNestedMenuItem, addSidebar: s.addSidebar, addSplitButton: s.addSplitButton, addToggleButton: s.addToggleButton, addGroupToolbarButton: s.addGroupToolbarButton, addToggleMenuItem: s.addToggleMenuItem, getAll: s.getAll } }, DE = kt.each, OE = kt.trim, BE = "source protocol authority userInfo user password host port relative path directory file query anchor".split(" "), PE = { ftp: 21, http: 80, https: 443, mailto: 25 }, LE = (IE.parseDataUri = function (e) { var t, n = decodeURIComponent(e).split(","), r = /data:([^;]+)/.exec(n[0]); return r && (t = r[1]), { type: t, data: n[1] } }, IE.getDocumentBaseUrl = function (e) { var t = 0 !== e.protocol.indexOf("http") && "file:" !== e.protocol ? e.href : e.protocol + "//" + e.host + e.pathname; return /^[^:]+:\/\/\/?[^\/]+\//.test(t) && (t = t.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""), /[\/\\]$/.test(t) || (t += "/")), t }, IE.prototype.setPath = function (e) { var t = /^(.*?)\/?(\w+)?$/.exec(e); this.path = t[0], this.directory = t[1], this.file = t[2], this.source = "", this.getURI() }, IE.prototype.toRelative = function (e) { var t; if ("./" === e) return e; var n = new IE(e, { base_uri: this }); if ("mce_host" !== n.host && this.host !== n.host && n.host || this.port !== n.port || this.protocol !== n.protocol && "" !== n.protocol) return n.getURI(); var r = this.getURI(), o = n.getURI(); return r === o || "/" === r.charAt(r.length - 1) && r.substr(0, r.length - 1) === o ? r : (t = this.toRelPath(this.path, n.path), n.query && (t += "?" + n.query), n.anchor && (t += "#" + n.anchor), t) }, IE.prototype.toAbsolute = function (e, t) { var n = new IE(e, { base_uri: this }); return n.getURI(t && this.isSameOrigin(n)) }, IE.prototype.isSameOrigin = function (e) { if (this.host == e.host && this.protocol == e.protocol) { if (this.port == e.port) return !0; var t = PE[this.protocol]; if (t && (this.port || t) == (e.port || t)) return !0 } return !1 }, IE.prototype.toRelPath = function (e, t) { var n, r, o = 0, i = "", a = e.substring(0, e.lastIndexOf("/")).split("/"), u = t.split("/"); if (a.length >= u.length) for (n = 0, r = a.length; n < r; n++) if (n >= u.length || a[n] !== u[n]) { o = n + 1; break } if (a.length < u.length) for (n = 0, r = u.length; n < r; n++) if (n >= a.length || a[n] !== u[n]) { o = n + 1; break } if (1 === o) return t; for (n = 0, r = a.length - (o - 1); n < r; n++) i += "../"; for (n = o - 1, r = u.length; n < r; n++) i += n !== o - 1 ? "/" + u[n] : u[n]; return i }, IE.prototype.toAbsPath = function (e, t) { var n, r, o = 0, i = [], a = /\/$/.test(t) ? "/" : "", u = e.split("/"), s = t.split("/"); for (DE(u, function (e) { e && i.push(e) }), u = i, n = s.length - 1, i = []; 0 <= n; n--) 0 !== s[n].length && "." !== s[n] && (".." !== s[n] ? 0 < o ? o-- : i.push(s[n]) : o++); return 0 !== (r = (n = u.length - o) <= 0 ? Z(i).join("/") : u.slice(0, n).join("/") + "/" + Z(i).join("/")).indexOf("/") && (r = "/" + r), a && r.lastIndexOf("/") !== r.length - 1 && (r += a), r }, IE.prototype.getURI = function (e) { var t; return void 0 === e && (e = !1), this.source && !e || (t = "", e || (this.protocol ? t += this.protocol + "://" : t += "//", this.userInfo && (t += this.userInfo + "@"), this.host && (t += this.host), this.port && (t += ":" + this.port)), this.path && (t += this.path), this.query && (t += "?" + this.query), this.anchor && (t += "#" + this.anchor), this.source = t), this.source }, IE); function IE(e, t) { e = OE(e), this.settings = t || {}; var n, r, o, i, a = this.settings.base_uri, u = this; /^([\w\-]+):([^\/]{2})/i.test(e) || /^\s*#/.test(e) ? u.source = e : (n = 0 === e.indexOf("//"), 0 !== e.indexOf("/") || n || (e = (a && a.protocol || "http") + "://mce_host" + e), /^[\w\-]*:?\/\//.test(e) || (r = this.settings.base_uri ? this.settings.base_uri.path : new IE(document.location.href).directory, e = this.settings.base_uri && "" == this.settings.base_uri.protocol ? "//mce_host" + u.toAbsPath(r, e) : (o = /([^#?]*)([#?]?.*)/.exec(e), (a && a.protocol || "http") + "://mce_host" + u.toAbsPath(r, o[1]) + o[2])), e = e.replace(/@@/g, "(mce_at)"), i = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e), DE(BE, function (e, t) { var n = (n = i[t]) && n.replace(/\(mce_at\)/g, "@@"); u[e] = n }), a && (u.protocol || (u.protocol = a.protocol), u.userInfo || (u.userInfo = a.userInfo), u.port || "mce_host" !== u.host || (u.port = a.port), u.host && "mce_host" !== u.host || (u.host = a.host), u.source = ""), n && (u.protocol = "")) } var ME = Eu.DOM, FE = kt.extend, UE = kt.each, zE = kt.resolve, jE = wt.ie, HE = (VE.prototype.render = function () { UN(this) }, VE.prototype.focus = function (e) { var t, n; n = e, (t = this).removed || (n ? _m : km)(t) }, VE.prototype.hasFocus = function () { return Em(this) }, VE.prototype.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+$/, "")) ? zE(r) : 0, o = zE(o), this.callbackLookup = this.callbackLookup || {}, this.callbackLookup[e] = { func: o, scope: r }), o.apply(r || this, t) }, VE.prototype.translate = function (e) { return Iu.translate(e) }, VE.prototype.getParam = function (e, t, n) { return Xy(this, e, t, n) }, VE.prototype.hasPlugin = function (e, t) { return !(!M(Ac(this).split(/[ ,]/), e) || t && ib.get(e) === undefined) }, VE.prototype.nodeChanged = function (e) { this._nodeChangeDispatcher.nodeChanged(e) }, VE.prototype.addCommand = function (e, t, n) { this.editorCommands.addCommand(e, t, n) }, VE.prototype.addQueryStateHandler = function (e, t, n) { this.editorCommands.addQueryStateHandler(e, t, n) }, VE.prototype.addQueryValueHandler = function (e, t, n) { this.editorCommands.addQueryValueHandler(e, t, n) }, VE.prototype.addShortcut = function (e, t, n, r) { this.shortcuts.add(e, t, n, r) }, VE.prototype.execCommand = function (e, t, n, r) { return this.editorCommands.execCommand(e, t, n, r) }, VE.prototype.queryCommandState = function (e) { return this.editorCommands.queryCommandState(e) }, VE.prototype.queryCommandValue = function (e) { return this.editorCommands.queryCommandValue(e) }, VE.prototype.queryCommandSupported = function (e) { return this.editorCommands.queryCommandSupported(e) }, VE.prototype.show = function () { this.hidden && (this.hidden = !1, this.inline ? this.getBody().contentEditable = "true" : (ME.show(this.getContainer()), ME.hide(this.id)), this.load(), this.fire("show")) }, VE.prototype.hide = function () { var e = this, t = e.getDoc(); e.hidden || (jE && t && !e.inline && t.execCommand("SelectAll"), e.save(), e.inline ? (e.getBody().contentEditable = "false", e === e.editorManager.focusedEditor && (e.editorManager.focusedEditor = null)) : (ME.hide(e.getContainer()), ME.setStyle(e.id, "display", e.orgDisplay)), e.hidden = !0, e.fire("hide")) }, VE.prototype.isHidden = function () { return !!this.hidden }, VE.prototype.setProgressState = function (e, t) { this.fire("ProgressState", { state: e, time: t }) }, VE.prototype.load = function (e) { var t = this.getElement(); if (this.removed) return ""; if (t) { (e = e || {}).load = !0; var n = Ln(t) ? t.value : t.innerHTML, r = this.setContent(n, e); return e.element = t, e.no_events || this.fire("LoadContent", e), e.element = t = null, r } }, VE.prototype.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, Ln(o) ? o.value = t : (!e.is_removing && r.inline || (o.innerHTML = t), (n = ME.getParent(r.id, "form")) && UE(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 }, VE.prototype.setContent = function (e, t) { return ky(this, e, t) }, VE.prototype.getContent = function (e) { return Ey(this, e) }, VE.prototype.insertContent = function (e, t) { t && (e = FE({ content: e }, t)), this.execCommand("mceInsertContent", !1, e) }, VE.prototype.resetContent = function (e) { e === undefined ? ky(this, this.startContent, { format: "raw" }) : ky(this, e), this.undoManager.reset(), this.setDirty(!1), this.nodeChanged() }, VE.prototype.isDirty = function () { return !this.isNotDirty }, VE.prototype.setDirty = function (e) { var t = !this.isNotDirty; this.isNotDirty = !e, e && e !== t && this.fire("dirty") }, VE.prototype.getContainer = function () { return this.container || (this.container = ME.get(this.editorContainer || this.id + "_parent")), this.container }, VE.prototype.getContentAreaContainer = function () { return this.contentAreaContainer }, VE.prototype.getElement = function () { return this.targetElm || (this.targetElm = ME.get(this.id)), this.targetElm }, VE.prototype.getWin = function () { var e; return this.contentWindow || (e = this.iframeElement) && (this.contentWindow = e.contentWindow), this.contentWindow }, VE.prototype.getDoc = function () { var e; return this.contentDocument || (e = this.getWin()) && (this.contentDocument = e.document), this.contentDocument }, VE.prototype.getBody = function () { var e = this.getDoc(); return this.bodyElement || (e ? e.body : null) }, VE.prototype.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) }, VE.prototype.addVisual = function (e) { zN(this, e) }, VE.prototype.remove = function () { Ry(this) }, VE.prototype.destroy = function (e) { Ty(this, e) }, VE.prototype.uploadImages = function (e) { return this.editorUpload.uploadImages(e) }, VE.prototype._scanForImages = function () { return this.editorUpload.scanForImages() }, VE.prototype.addButton = function () { throw new Error("editor.addButton has been removed in tinymce 5x, use editor.ui.registry.addButton or editor.ui.registry.addToggleButton or editor.ui.registry.addSplitButton instead") }, VE.prototype.addSidebar = function () { throw new Error("editor.addSidebar has been removed in tinymce 5x, use editor.ui.registry.addSidebar instead") }, VE.prototype.addMenuItem = function () { throw new Error("editor.addMenuItem has been removed in tinymce 5x, use editor.ui.registry.addMenuItem instead") }, VE.prototype.addContextToolbar = function () { throw new Error("editor.addContextToolbar has been removed in tinymce 5x, use editor.ui.registry.addContextToolbar instead") }, VE); function VE(e, t, n) { var r = this; this.plugins = {}, this.contentCSS = [], this.contentStyles = [], this.loadedCSS = {}, this.isNotDirty = !1, this.editorManager = n, this.documentBaseUrl = n.documentBaseURL, FE(this, CE), this.settings = Wy(this, e, this.documentBaseUrl, n.defaultSettings, t), this.settings.suffix && (n.suffix = this.settings.suffix), this.suffix = n.suffix, this.settings.base_url && n._setBaseUrl(this.settings.base_url), this.baseUri = n.baseURI, this.settings.referrer_policy && (Ru.ScriptLoader._setReferrerPolicy(this.settings.referrer_policy), Eu.DOM.styleSheetLoader._setReferrerPolicy(this.settings.referrer_policy)), Uu.languageLoad = this.settings.language_load, Uu.baseURL = n.baseURL, this.id = e, this.setDirty(!1), this.documentBaseURI = new LE(this.settings.document_base_url, { base_uri: this.baseUri }), this.baseURI = this.baseUri, this.inline = !!this.settings.inline, this.shortcuts = new AE(this), this.editorCommands = new eE(this), this.settings.cache_suffix && (wt.cacheSuffix = this.settings.cache_suffix.replace(/^[\?\&]+/, "")), this.ui = { registry: TE(), styleSheetLoader: undefined, show: V, hide: V, enable: V, disable: V, isDisabled: C }; var o = SE(this); this.mode = o, this.setMode = o.set, n.fire("SetupEditor", { editor: this }), this.execCallback("setup", this), this.$ = hu.overrideDefaults(function () { return { context: r.inline ? r.getBody() : r.getDoc(), element: r.getBody() } }) } var qE, $E = Eu.DOM, WE = kt.explode, KE = kt.each, XE = kt.extend, YE = 0, GE = !1, JE = [], QE = [], ZE = function (t) { var n = t.type; KE(rk.get(), function (e) { switch (n) { case "scroll": e.fire("ScrollWindow", t); break; case "resize": e.fire("ResizeWindow", t) } }) }, ek = function (e) { e !== GE && (e ? hu(window).on("resize scroll", ZE) : hu(window).off("resize scroll", ZE), GE = e) }, tk = function (t) { var e = QE; delete JE[t.id]; for (var n = 0; n < JE.length; n++) if (JE[n] === t) { JE.splice(n, 1); break } return QE = H(QE, function (e) { return t !== e }), rk.activeEditor === t && (rk.activeEditor = 0 < QE.length ? QE[0] : null), rk.focusedEditor === t && (rk.focusedEditor = null), e.length !== QE.length }, nk = "CSS1Compat" !== document.compatMode, rk = ke(ke({}, gE), { baseURI: null, baseURL: null, defaultSettings: {}, documentBaseURL: null, suffix: null, $: hu, majorVersion: "5", minorVersion: "6.2", releaseDate: "2020-12-08", editors: JE, i18n: Iu, activeEditor: null, focusedEditor: null, settings: {}, setup: function () { var e, t = "", n = LE.getDocumentBaseUrl(document.location); /^[^:]+:\/\/\/?[^\/]+\//.test(n) && (n = n.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""), /[\/\\]$/.test(n) || (n += "/")); var r, o = window.tinymce || window.tinyMCEPreInit; if (o) e = o.base || o.baseURL, t = o.suffix; else { for (var i, a = document.getElementsByTagName("script"), u = 0; u < a.length; u++) { if ("" !== (i = a[u].src || "")) { var s = i.substring(i.lastIndexOf("/")); if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(i)) { -1 !== s.indexOf(".min") && (t = ".min"), e = i.substring(0, i.lastIndexOf("/")); break } } }!e && document.currentScript && (-1 !== (i = document.currentScript.src).indexOf(".min") && (t = ".min"), e = i.substring(0, i.lastIndexOf("/"))) } this.baseURL = new LE(n).toAbsolute(e), this.documentBaseURL = n, this.baseURI = new LE(this.baseURL), this.suffix = t, (r = this).on("AddEditor", N(ym, r)), r.on("RemoveEditor", N(bm, r)) }, overrideDefaults: function (e) { var t = e.base_url; t && this._setBaseUrl(t); var n = e.suffix; e.suffix && (this.suffix = n); var r = (this.defaultSettings = e).plugin_base_urls; r !== undefined && ue(r, function (e, t) { Uu.PluginManager.urls[t] = e }) }, init: function (r) { var n, u = this, s = kt.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu", " "), c = function (e) { var t = e.id; return t || (t = ge(e, "name").filter(function (e) { return !$E.get(e) }).getOrThunk($E.uniqueId), e.setAttribute("id", t)), t }, l = function (e, t) { return t.constructor === RegExp ? t.test(e.className) : $E.hasClass(e, t) }, f = function (e) { n = e }, e = function () { var o, i = 0, a = [], n = function (e, t, n) { var r = new HE(e, t, u); a.push(r), r.on("init", function () { ++i === o.length && f(a) }), r.targetElm = r.targetElm || n, r.render() }; $E.unbind(window, "ready", e), function (e) { var t = r[e]; if (t) t.apply(u, Array.prototype.slice.call(arguments, 2)) }("onpageload"), o = hu.unique(function (t) { var n = []; if (wt.browser.isIE() && wt.browser.version.major < 11) return mb("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 (nk) return mb("Failed to initialize the editor as the document is not in standards mode. TinyMCE requires standards mode."), []; if (t.types) return KE(t.types, function (e) { n = n.concat($E.select(e.selector)) }), n; if (t.selector) return $E.select(t.selector); if (t.target) return [t.target]; switch (t.mode) { case "exact": var e = t.elements || ""; 0 < e.length && KE(WE(e), function (t) { var e = $E.get(t); e ? n.push(e) : KE(document.forms, function (e) { KE(e.elements, function (e) { e.name === t && (t = "mce_editor_" + YE++, $E.setAttrib(e, "id", t), n.push(e)) }) }) }); break; case "textareas": case "specific_textareas": KE($E.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 ? KE(r.types, function (t) { kt.each(o, function (e) { return !$E.is(e, t.selector) || (n(c(e), XE({}, r, t), e), !1) }) }) : (kt.each(o, function (e) { var t; (t = u.get(e.id)) && t.initialized && !(t.getContainer() || t.getBody()).parentNode && (tk(t), t.unbindAllNativeEvents(), t.destroy(!0), t.removed = !0, t = null) }), 0 === (o = kt.grep(o, function (e) { return !u.get(e.id) })).length ? f([]) : KE(o, function (e) { var t; t = e, r.inline && t.tagName.toLowerCase() in s ? mb("Could not initialize inline editor on invalid inline target element", e) : n(c(e), r, e) })) }; return u.settings = r, $E.bind(window, "ready", e), new Br(function (t) { n ? t(n) : f = function (e) { t(e) } }) }, get: function (t) { return 0 === arguments.length ? QE.slice(0) : q(t) ? Y(QE, function (e) { return e.id === t }).getOr(null) : O(t) && QE[t] ? QE[t] : null }, add: function (e) { var n = this; return JE[e.id] === e || (null === n.get(e.id) && ("length" !== e.id && (JE[e.id] = e), JE.push(e), QE.push(e)), ek(!0), n.activeEditor = e, n.fire("AddEditor", { editor: e }), qE || (qE = function (e) { var t = n.fire("BeforeUnload"); if (t.returnValue) return e.preventDefault(), e.returnValue = t.returnValue, t.returnValue }, window.addEventListener("beforeunload", qE))), e }, createEditor: function (e, t) { return this.add(new HE(e, t, this)) }, remove: function (e) { var t, n, r = this; if (e) { if (!q(e)) return n = e, x(r.get(n.id)) ? null : (tk(n) && r.fire("RemoveEditor", { editor: n }), 0 === QE.length && window.removeEventListener("beforeunload", qE), n.remove(), ek(0 < QE.length), n); KE($E.select(e), function (e) { (n = r.get(e.id)) && r.remove(n) }) } else for (t = QE.length - 1; 0 <= t; t--) r.remove(QE[t]) }, execCommand: function (e, t, n) { var r = this.get(n); switch (e) { case "mceAddEditor": return this.get(n) || new HE(n, this.settings, this).render(), !0; case "mceRemoveEditor": return r && r.remove(), !0; case "mceToggleEditor": return r ? (r.isHidden() ? r.show() : r.hide(), !0) : (this.execCommand("mceAddEditor", 0, n), !0) } return !!this.activeEditor && this.activeEditor.execCommand(e, t, n) }, triggerSave: function () { KE(QE, function (e) { e.save() }) }, addI18n: function (e, t) { Iu.add(e, t) }, translate: function (e) { return Iu.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 }, _setBaseUrl: function (e) { this.baseURL = new LE(this.documentBaseURL).toAbsolute(e.replace(/\/+$/, "")), this.baseURI = new LE(this.baseURL) } }); rk.setup(); var ok, ik, ak, uk, sk = Math.min, ck = Math.max, lk = Math.round, fk = function (e, t, n) { var r = t.x, o = t.y, i = e.w, a = e.h, u = t.w, s = t.h, c = (n || "").split(""); return "b" === c[0] && (o += s), "r" === c[1] && (r += u), "c" === c[0] && (o += lk(s / 2)), "c" === c[1] && (r += lk(u / 2)), "b" === c[3] && (o -= a), "r" === c[4] && (r -= i), "c" === c[3] && (o -= lk(a / 2)), "c" === c[4] && (r -= lk(i / 2)), dk(r, o, i, a) }, dk = function (e, t, n, r) { return { x: e, y: t, w: n, h: r } }, mk = { inflate: function (e, t, n) { return dk(e.x - t, e.y - n, e.w + 2 * t, e.h + 2 * n) }, relativePosition: fk, findBestRelativePosition: function (e, t, n, r) { for (var o, i = 0; i < r.length; i++) if ((o = fk(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 = ck(e.x, t.x), r = ck(e.y, t.y), o = sk(e.x + e.w, t.x + t.w), i = sk(e.y + e.h, t.y + t.h); return o - n < 0 || i - r < 0 ? null : dk(n, r, o - n, i - r) }, clamp: function (e, t, n) { var r = e.x, o = e.y, i = e.x + e.w, a = e.y + e.h, u = t.x + t.w, s = t.y + t.h, c = ck(0, t.x - r), l = ck(0, t.y - o), f = ck(0, i - u), d = ck(0, a - s); return r += c, o += l, n && (i += c, a += l, r -= f, o -= d), dk(r, o, (i -= f) - r, (a -= d) - o) }, create: dk, fromClientRect: function (e) { return dk(e.left, e.top, e.width, e.height) } }, pk = (ok = {}, ik = {}, { load: function (r, o) { var i = 'Script at URL "' + o + '" failed to load', a = 'Script at URL "' + o + "\" did not call `tinymce.Resource.add('" + r + "', data)` within 1 second"; if (ok[r] !== undefined) return ok[r]; var e = new Br(function (e, t) { var n = function (e, t, n) { void 0 === n && (n = 1e3); var r = !1, o = null, i = function (n) { return function () { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; r || (r = !0, null !== o && (clearTimeout(o), o = null), n.apply(null, e)) } }, a = i(e), u = i(t); return { start: function () { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; r || null !== o || (o = setTimeout(function () { return u.apply(null, e) }, n)) }, resolve: a, reject: u } }(e, t); ik[r] = n.resolve, Ru.ScriptLoader.loadScript(o, function () { return n.start(a) }, function () { return n.reject(i) }) }); return ok[r] = e }, add: function (e, t) { ik[e] !== undefined && (ik[e](t), delete ik[e]), ok[e] = Br.resolve(t) } }), gk = kt.each, hk = kt.extend, vk = function () {}; vk.extend = ak = function (n) { var o = this.prototype, r = function () { var e, t, n; if (!uk && (this.init && this.init.apply(this, arguments), t = this.Mixins)) for (e = t.length; e--;)(n = t[e]).init && n.init.apply(this, arguments) }, t = function () { return this }; uk = !0; var i = new this; return uk = !1, n.Mixins && (gk(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 && gk(n.Methods.split(","), function (e) { n[e] = t }), n.Properties && gk(n.Properties.split(","), function (e) { var t = "_" + e; n[e] = function (e) { return e !== undefined ? (this[t] = e, this) : this[t] } }), n.Statics && gk(n.Statics, function (e, t) { r[t] = e }), n.Defaults && o.Defaults && (n.Defaults = hk({}, o.Defaults, n.Defaults)), ue(n, function (e, t) { var n, r; "function" == typeof e && o[t] ? i[t] = (n = t, r = e, function () { var e = this._super; this._super = o[n]; var t = r.apply(this, arguments); return this._super = e, t }) : i[t] = e }), r.prototype = i, (r.constructor = r).extend = ak, r }; var yk = Math.min, bk = Math.max, Ck = Math.round, wk = { serialize: function (e) { var t = JSON.stringify(e); return q(t) ? t.replace(/[\u0080-\uFFFF]/g, function (e) { var t = e.charCodeAt(0).toString(16); return "\\u" + "0000".substring(t.length) + t }) : t }, parse: function (e) { try { return JSON.parse(e) } catch (t) {} } }, xk = { callbacks: {}, count: 0, send: function (t) { var n = this, r = Eu.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++ } }, Sk = ke(ke({}, gE), { 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) : qr.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 || "", Sk.fire("beforeInitialize", { settings: e }), (t = new XMLHttpRequest).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 && kt.each(e.requestheaders, function (e) { t.setRequestHeader(e.key, e.value) }), t.setRequestHeader("X-Requested-With", "XMLHttpRequest"), (t = Sk.fire("beforeSend", { xhr: t, settings: e }).xhr).send(e.data), !e.async) return r(); qr.setTimeout(r, 10) } }), Nk = kt.extend, Ek = (kk.sendRPC = function (e) { return (new kk).send(e) }, kk.prototype.send = function (e) { var n = e.error, r = e.success, o = Nk(this.settings, e); o.success = function (e, t) { void 0 === (e = wk.parse(e)) && (e = { error: "JSON Parse error." }), e.error ? n.call(o.error_scope || o.scope, e.error, t) : r.call(o.success_scope || o.scope, e.result) }, o.error = function (e, t) { n && n.call(o.error_scope || o.scope, e, t) }, o.data = wk.serialize({ id: e.id || "c" + this.count++, method: e.method, params: e.params }), o.content_type = "application/json", Sk.send(o) }, kk); function kk(e) { this.settings = Nk({}, e), this.count = 0 } try { var _k, Ak = "__storage_test__"; (_k = window.localStorage).setItem(Ak, Ak), _k.removeItem(Ak) } catch (Ok) { _k = function () { return n = {}, r = [], e = { getItem: function (e) { var t = n[e]; return t || null }, setItem: function (e, t) { r.push(e), n[e] = String(t) }, key: function (e) { return r[e] }, removeItem: function (t) { r = r.filter(function (e) { return e === t }), delete n[t] }, clear: function () { r = [], n = {} }, length: 0 }, Object.defineProperty(e, "length", { get: function () { return r.length }, configurable: !1, enumerable: !1 }), e; var n, r, e }() } var Rk, Tk = { geom: { Rect: mk }, util: { Promise: Br, Delay: qr, Tools: kt, VK: ud, URI: LE, Class: vk, EventDispatcher: fE, Observable: gE, I18n: Iu, XHR: Sk, JSON: wk, JSONRequest: Ek, JSONP: xk, LocalStorage: _k, 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) { if (e = (parseInt(e, 10) || 0) % 360, t = parseInt(t, 10) / 100, n = parseInt(n, 10) / 100, t = bk(0, yk(t, 1)), n = bk(0, yk(n, 1)), 0 !== t) { var r = e / 60, o = n * t, i = o * (1 - Math.abs(r % 2 - 1)), a = n - o; switch (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 = Ck(255 * (u + a)), s = Ck(255 * (s + a)), c = Ck(255 * (c + a)) } else u = s = c = Ck(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 = yk(e /= 255, yk(t /= 255, n /= 255)), a = bk(e, bk(t, n)), i === a ? { h: 0, s: 0, v: 100 * (o = i) } : (r = (a - i) / a, { h: Ck(60 * ((e === i ? 3 : n === i ? 1 : 5) - (e === i ? t - n : n === i ? e - t : n - e) / ((o = a) - i))), s: Ck(100 * r), v: Ck(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: Ti, Sizzle: Ta, DomQuery: hu, TreeWalker: Xr, TextSeeker: fs, DOMUtils: Eu, ScriptLoader: Ru, RangeUtils: xd, Serializer: Ny, StyleSheetLoader: $r, ControlSelection: cd, BookmarkManager: od, Selection: Qv, Event: Ti.Event }, html: { Styles: xi, Entities: ci, Node: Km, Schema: Ci, SaxParser: ip, DomParser: by, Writer: Gm, Serializer: Jm }, Env: wt, AddOnManager: Uu, Annotator: td, Formatter: _b, UndoManager: Rb, EditorCommands: eE, WindowManager: ub, NotificationManager: ob, EditorObservable: CE, Shortcuts: AE, Editor: HE, FocusManager: mm, EditorManager: rk, DOM: Eu.DOM, ScriptLoader: Ru.ScriptLoader, PluginManager: ib, ThemeManager: ab, IconManager: Yy, Resource: pk, trim: kt.trim, isArray: kt.isArray, is: kt.is, toArray: kt.toArray, makeMap: kt.makeMap, each: kt.each, map: kt.map, grep: kt.grep, inArray: kt.inArray, extend: kt.extend, create: kt.create, walk: kt.walk, createNS: kt.createNS, resolve: kt.resolve, explode: kt.explode, _addCacheSuffix: kt._addCacheSuffix, isOpera: wt.opera, isWebKit: wt.webkit, isIE: wt.ie, isGecko: wt.gecko, isMac: wt.mac }, Dk = kt.extend(rk, Tk); Rk = Dk, window.tinymce = Rk, window.tinyMCE = Rk, function (e) { if ("object" == typeof module) try { module.exports = e } catch (t) {} }(Dk) }();