// 4.7.5 (2018-01-22) !(function() { "use strict"; var e, t, n, r, o, i, a, s, u, c, l, f, d, m, p, g, h, v = function(e) { return function() { return e; }; }, y = { noop: function() {}, noarg: function(e) { return function() { return e(); }; }, compose: function(e, t) { return function() { return e(t.apply(null, arguments)); }; }, constant: v, identity: function(e) { return e; }, tripleEquals: function(e, t) { return e === t; }, curry: function(e) { for ( var t = new Array(arguments.length - 1), n = 1; n < arguments.length; n++ ) t[n - 1] = arguments[n]; return function() { for (var n = new Array(arguments.length), r = 0; r < n.length; r++) n[r] = arguments[r]; var o = t.concat(n); return e.apply(null, o); }; }, not: function(e) { return function() { return !e.apply(null, arguments); }; }, die: function(e) { return function() { throw new Error(e); }; }, apply: function(e) { return e(); }, call: function(e) { e(); }, never: v(!1), always: v(!0) }, b = y.never, C = y.always, x = function() { return w; }, w = ((r = { fold: function(e, t) { return e(); }, is: b, isSome: b, isNone: C, getOr: (n = function(e) { return e; }), getOrThunk: (t = function(e) { return e(); }), getOrDie: function(e) { throw new Error(e || "error: getOrDie called on none."); }, or: n, orThunk: t, map: x, ap: x, each: function() {}, bind: x, flatten: x, exists: b, forall: C, filter: x, equals: (e = function(e) { return e.isNone(); }), equals_: e, toArray: function() { return []; }, toString: y.constant("none()") }), Object.freeze && Object.freeze(r), r), N = function(e) { var t = function() { return e; }, n = function() { return o; }, r = function(t) { return t(e); }, o = { fold: function(t, n) { return n(e); }, is: function(t) { return e === t; }, isSome: C, isNone: b, getOr: t, getOrThunk: t, getOrDie: t, or: n, orThunk: n, map: function(t) { return N(t(e)); }, ap: function(t) { return t.fold(x, function(t) { return N(t(e)); }); }, each: function(t) { t(e); }, bind: r, flatten: t, exists: r, forall: r, filter: function(t) { return t(e) ? o : w; }, equals: function(t) { return t.is(e); }, equals_: function(t, n) { return t.fold(b, function(t) { return n(e, t); }); }, toArray: function() { return [e]; }, toString: function() { return "some(" + e + ")"; } }; return o; }, E = { some: N, none: x, from: function(e) { return null === e || e === undefined ? w : N(e); } }, S = (o = Array.prototype.indexOf) === undefined ? function(e, t) { return D(e, t); } : function(e, t) { return o.call(e, t); }, k = function(e, t) { return S(e, t) > -1; }, T = function(e, t) { for (var n = e.length, r = new Array(n), o = 0; o < n; o++) { var i = e[o]; r[o] = t(i, o, e); } return r; }, A = function(e, t) { for (var n = 0, r = e.length; n < r; n++) t(e[n], n, e); }, _ = function(e, t) { for (var n = e.length - 1; n >= 0; n--) t(e[n], n, e); }, B = function(e, t) { for (var n = [], r = 0, o = e.length; r < o; r++) { var i = e[r]; t(i, r, e) && n.push(i); } return n; }, R = function(e, t) { for (var n = 0, r = e.length; n < r; n++) if (t(e[n], n, e)) return E.some(n); return E.none(); }, D = function(e, t) { for (var n = 0, r = e.length; n < r; ++n) if (e[n] === t) return n; return -1; }, O = Array.prototype.push, P = function(e) { for (var t = [], n = 0, r = e.length; n < r; ++n) { if (!Array.prototype.isPrototypeOf(e[n])) throw new Error( "Arr.flatten item " + n + " was not an array, input: " + e ); O.apply(t, e[n]); } return t; }, I = function(e, t) { for (var n = 0, r = e.length; n < r; ++n) if (!0 !== t(e[n], n, e)) return !1; return !0; }, L = Array.prototype.slice, M = { map: T, each: A, eachr: _, partition: function(e, t) { for (var n = [], r = [], o = 0, i = e.length; o < i; o++) { var a = e[o]; (t(a, o, e) ? n : r).push(a); } return { pass: n, fail: r }; }, filter: B, groupBy: function(e, t) { if (0 === e.length) return []; for (var n = t(e[0]), r = [], o = [], i = 0, a = e.length; i < a; i++) { var s = e[i], u = t(s); u !== n && (r.push(o), (o = [])), (n = u), o.push(s); } return 0 !== o.length && r.push(o), r; }, indexOf: function(e, t) { var n = S(e, t); return -1 === n ? E.none() : E.some(n); }, foldr: function(e, t, n) { return ( _(e, function(e) { n = t(n, e); }), n ); }, foldl: function(e, t, n) { return ( A(e, function(e) { n = t(n, e); }), n ); }, find: function(e, t) { for (var n = 0, r = e.length; n < r; n++) { var o = e[n]; if (t(o, n, e)) return E.some(o); } return E.none(); }, findIndex: R, flatten: P, bind: function(e, t) { var n = T(e, t); return P(n); }, forall: I, exists: function(e, t) { return R(e, t).isSome(); }, contains: k, equal: function(e, t) { return ( e.length === t.length && I(e, function(e, n) { return e === t[n]; }) ); }, reverse: function(e) { var t = L.call(e, 0); return t.reverse(), t; }, chunk: function(e, t) { for (var n = [], r = 0; r < e.length; r += t) { var o = e.slice(r, r + t); n.push(o); } return n; }, difference: function(e, t) { return B(e, function(e) { return !k(t, e); }); }, mapToObject: 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; }, pure: function(e) { return [e]; }, sort: function(e, t) { var n = L.call(e, 0); return n.sort(t), n; }, range: function(e, t) { for (var n = [], r = 0; r < e; r++) n.push(t(r)); return n; }, head: function(e) { return 0 === e.length ? E.none() : E.some(e[0]); }, last: function(e) { return 0 === e.length ? E.none() : E.some(e[e.length - 1]); } }, F = "undefined" != typeof window ? window : Function("return this;")(), z = function(e, t) { for ( var n = t !== undefined && null !== t ? t : F, r = 0; r < e.length && n !== undefined && null !== n; ++r ) n = n[e[r]]; return n; }, U = function(e, t) { var n = e.split("."); return z(n, t); }, V = function(e, t) { var n = U(e, t); if (n === undefined || null === n) throw e + " not available on this browser"; return n; }, H = function() { return V("URL"); }, q = function(e) { return H().createObjectURL(e); }, j = function(e) { H().revokeObjectURL(e); }, $ = navigator, W = $.userAgent, K = function(e) { return "matchMedia" in window && matchMedia(e).matches; }; (d = /Android/.test(W)), (a = (a = !(i = /WebKit/.test(W)) && /MSIE/gi.test(W) && /Explorer/gi.test($.appName)) && /MSIE (\w+)\./.exec(W)[1]), (s = -1 !== W.indexOf("Trident/") && (-1 !== W.indexOf("rv:") || -1 !== $.appName.indexOf("Netscape")) && 11), (u = -1 !== W.indexOf("Edge/") && !a && !s && 12), (a = a || s || u), (c = !i && !s && /Gecko/.test(W)), (l = -1 !== W.indexOf("Mac")), (f = /(iPad|iPhone)/.test(W)), (m = "FormData" in window && "FileReader" in window && "URL" in window && !!q), (p = K("only screen and (max-device-width: 480px)") && (d || f)), (g = K("only screen and (min-width: 800px)") && (d || f)), (h = -1 !== W.indexOf("Windows Phone")), u && (i = !1); var X, Y, G, J, Q, Z, ee, te, ne, re, oe, ie, ae, se, ue, ce, le, fe, de, me = { opera: !1, webkit: i, ie: a, gecko: c, mac: l, iOS: f, android: d, contentEditable: !f || m || parseInt(W.match(/AppleWebKit\/(\d*)/)[1], 10) >= 534, transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", caretAfter: 8 !== a, range: window.getSelection && "Range" in window, documentMode: a && !u ? document.documentMode || 7 : 10, fileApi: m, ceFalse: !1 === a || a > 8, cacheSuffix: "", container: null, overrideViewPort: null, experimentalShadowDom: !1, canHaveCSP: !1 === a || a > 11, desktop: !p && !g, windowsPhone: h }, pe = window.Promise ? window.Promise : (function() { function e(e, t) { return function() { e.apply(t, arguments); }; } var t = Array.isArray || function(e) { return "[object Array]" === Object.prototype.toString.call(e); }, n = function(t) { if ("object" != typeof this) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof t) throw new TypeError("not a function"); (this._state = null), (this._value = null), (this._deferreds = []), u(t, e(i, this), e(a, this)); }, r = n.immediateFn || ("function" == typeof setImmediate && setImmediate) || function(e) { setTimeout(e, 1); }; function o(e) { var t = this; null !== this._state ? r(function() { var n = t._state ? e.onFulfilled : e.onRejected; if (null !== n) { var r; try { r = n(t._value); } catch (o) { return void e.reject(o); } e.resolve(r); } else (t._state ? e.resolve : e.reject)(t._value); }) : this._deferreds.push(e); } function i(t) { try { if (t === this) throw new TypeError( "A promise cannot be resolved with itself." ); if (t && ("object" == typeof t || "function" == typeof t)) { var n = t.then; if ("function" == typeof n) return void u(e(n, t), e(i, this), e(a, this)); } (this._state = !0), (this._value = t), s.call(this); } catch (r) { a.call(this, r); } } function a(e) { (this._state = !1), (this._value = e), s.call(this); } function s() { for (var e = 0, t = this._deferreds.length; e < t; e++) o.call(this, this._deferreds[e]); this._deferreds = null; } function u(e, t, n) { var r = !1; try { e( function(e) { r || ((r = !0), t(e)); }, function(e) { r || ((r = !0), n(e)); } ); } catch (o) { if (r) return; (r = !0), n(o); } } return ( (n.prototype["catch"] = function(e) { return this.then(null, e); }), (n.prototype.then = function(e, t) { var r = this; return new n(function(n, i) { o.call( r, new function(e, t, n, r) { (this.onFulfilled = "function" == typeof e ? e : null), (this.onRejected = "function" == typeof t ? t : null), (this.resolve = n), (this.reject = r); }(e, t, n, i) ); }); }), (n.all = function() { var e = Array.prototype.slice.call( 1 === arguments.length && t(arguments[0]) ? arguments[0] : arguments ); return new n(function(t, n) { if (0 === e.length) return t([]); var r = e.length; function o(i, a) { try { if (a && ("object" == typeof a || "function" == typeof a)) { var s = a.then; if ("function" == typeof s) return void s.call( a, function(e) { o(i, e); }, n ); } (e[i] = a), 0 == --r && t(e); } catch (u) { n(u); } } for (var i = 0; i < e.length; i++) o(i, e[i]); }); }), (n.resolve = function(e) { return e && "object" == typeof e && e.constructor === n ? e : new n(function(t) { t(e); }); }), (n.reject = function(e) { return new n(function(t, n) { n(e); }); }), (n.race = function(e) { return new n(function(t, n) { for (var r = 0, o = e.length; r < o; r++) e[r].then(t, n); }); }), n ); })(), ge = function(e, t) { return "number" != typeof t && (t = 0), setTimeout(e, t); }, he = function(e, t) { return "number" != typeof t && (t = 1), setInterval(e, t); }, ve = function(e, t) { var n, r; return ( ((r = function() { var r = arguments; clearTimeout(n), (n = ge(function() { e.apply(this, r); }, t)); }).stop = function() { clearTimeout(n); }), r ); }, ye = { requestAnimationFrame: function(e, t) { X ? X.then(e) : (X = new pe(function(e) { t || (t = document.body), (function(e, t) { var n, r = window.requestAnimationFrame, o = ["ms", "moz", "webkit"]; for (n = 0; n < o.length && !r; n++) r = window[o[n] + "RequestAnimationFrame"]; r || (r = function(e) { window.setTimeout(e, 0); }), r(e, t); })(e, t); }).then(e)); }, setTimeout: ge, setInterval: he, setEditorTimeout: function(e, t, n) { return ge(function() { e.removed || t(); }, n); }, setEditorInterval: function(e, t, n) { var r; return (r = he(function() { e.removed ? clearInterval(r) : t(); }, n)); }, debounce: ve, throttle: ve, clearInterval: function(e) { return clearInterval(e); }, clearTimeout: function(e) { return clearTimeout(e); } }, be = /^(?:mouse|contextmenu)|click/, Ce = { keyLocation: 1, layerX: 1, layerY: 1, returnValue: 1, webkitMovementX: 1, webkitMovementY: 1, keyIdentifier: 1 }, xe = function() { return !1; }, we = function() { return !0; }, Ne = function(e, t, n, r) { e.addEventListener ? e.addEventListener(t, n, r || !1) : e.attachEvent && e.attachEvent("on" + t, n); }, Ee = function(e, t, n, r) { e.removeEventListener ? e.removeEventListener(t, n, r || !1) : e.detachEvent && e.detachEvent("on" + t, n); }, Se = function(e, t) { var n, r, o, i, a, s, u = t || {}; for (n in e) Ce[n] || (u[n] = e[n]); if ( (u.target || (u.target = u.srcElement || document), me.experimentalShadowDom && (u.target = ((r = e), (o = u.target), (a = o), (i = r.path) && i.length > 0 && (a = i[0]), r.deepPath && (i = r.deepPath()) && i.length > 0 && (a = i[0]), a)), e && be.test(e.type) && e.pageX === undefined && e.clientX !== undefined) ) { var c = u.target.ownerDocument || document, l = c.documentElement, f = c.body; (u.pageX = e.clientX + ((l && l.scrollLeft) || (f && f.scrollLeft) || 0) - ((l && l.clientLeft) || (f && f.clientLeft) || 0)), (u.pageY = e.clientY + ((l && l.scrollTop) || (f && f.scrollTop) || 0) - ((l && l.clientTop) || (f && f.clientTop) || 0)); } return ( (u.preventDefault = function() { (u.isDefaultPrevented = we), e && (e.preventDefault ? e.preventDefault() : (e.returnValue = !1)); }), (u.stopPropagation = function() { (u.isPropagationStopped = we), e && (e.stopPropagation ? e.stopPropagation() : (e.cancelBubble = !0)); }), (u.stopImmediatePropagation = function() { (u.isImmediatePropagationStopped = we), u.stopPropagation(); }), 0 == ((s = u).isDefaultPrevented === we || s.isDefaultPrevented === xe) && ((u.isDefaultPrevented = xe), (u.isPropagationStopped = xe), (u.isImmediatePropagationStopped = xe)), "undefined" == typeof u.metaKey && (u.metaKey = !1), u ); }, ke = function(e, t, n) { var r = e.document, o = { type: "ready" }; if (n.domLoaded) t(o); else { var i = function() { return ( "complete" === r.readyState || ("interactive" === r.readyState && r.body) ); }, a = function() { n.domLoaded || ((n.domLoaded = !0), t(o)); }, s = function() { i() && (Ee(r, "readystatechange", s), a()); }, u = function() { try { r.documentElement.doScroll("left"); } catch (e) { return void ye.setTimeout(u); } a(); }; !r.addEventListener || (me.ie && me.ie < 11) ? (Ne(r, "readystatechange", s), r.documentElement.doScroll && e.self === e.top && u()) : i() ? a() : Ne(e, "DOMContentLoaded", a), Ne(e, "load", a); } }, Te = function() { var e, t, n, r, o, i = this, a = {}; (t = "mce-data-" + (+new Date()).toString(32)), (r = "onmouseenter" in document.documentElement), (n = "onfocusin" in document.documentElement), (o = { mouseenter: "mouseover", mouseleave: "mouseout" }), (e = 1), (i.domLoaded = !1), (i.events = a); var s = function(e, t) { var n, r, o, i, s = a[t]; if ((n = s && s[e.type])) for (r = 0, o = n.length; r < o; r++) if ( ((i = n[r]) && !1 === i.func.call(i.scope, e) && e.preventDefault(), e.isImmediatePropagationStopped()) ) return; }; (i.bind = function(u, c, l, f) { var d, m, p, g, h, v, y, b = window, C = function(e) { s(Se(e || b.event), d); }; if (u && 3 !== u.nodeType && 8 !== u.nodeType) { for ( u[t] ? (d = u[t]) : ((d = e++), (u[t] = d), (a[d] = {})), f = f || u, p = (c = c.split(" ")).length; p--; ) (v = C), (h = y = !1), "DOMContentLoaded" === (g = c[p]) && (g = "ready"), i.domLoaded && "ready" === g && "complete" === u.readyState ? l.call(f, Se({ type: g })) : (r || ((h = o[g]) && (v = function(e) { var t, n; if ( ((t = e.currentTarget), (n = e.relatedTarget) && t.contains) ) n = t.contains(n); else for (; n && n !== t; ) n = n.parentNode; n || (((e = Se(e || b.event)).type = "mouseout" === e.type ? "mouseleave" : "mouseenter"), (e.target = t), s(e, d)); })), n || ("focusin" !== g && "focusout" !== g) || ((y = !0), (h = "focusin" === g ? "focus" : "blur"), (v = function(e) { ((e = Se(e || b.event)).type = "focus" === e.type ? "focusin" : "focusout"), s(e, d); })), (m = a[d][g]) ? "ready" === g && i.domLoaded ? l({ type: g }) : m.push({ func: l, scope: f }) : ((a[d][g] = m = [{ func: l, scope: f }]), (m.fakeName = h), (m.capture = y), (m.nativeHandler = v), "ready" === g ? ke(u, v, i) : Ne(u, h || g, v, y))); return (u = m = 0), l; } }), (i.unbind = function(e, n, r) { var o, s, u, c, l, f; if (!e || 3 === e.nodeType || 8 === e.nodeType) return i; if ((o = e[t])) { if (((f = a[o]), n)) { for (u = (n = n.split(" ")).length; u--; ) if ((s = f[(l = n[u])])) { if (r) for (c = s.length; c--; ) if (s[c].func === r) { var d = s.nativeHandler, m = s.fakeName, p = s.capture; ((s = s .slice(0, c) .concat(s.slice(c + 1))).nativeHandler = d), (s.fakeName = m), (s.capture = p), (f[l] = s); } (r && 0 !== s.length) || (delete f[l], Ee(e, s.fakeName || l, s.nativeHandler, s.capture)); } } else { for (l in f) (s = f[l]), Ee(e, s.fakeName || l, s.nativeHandler, s.capture); f = {}; } for (l in f) return i; delete a[o]; try { delete e[t]; } catch (g) { e[t] = null; } } return i; }), (i.fire = function(e, n, r) { var o; if (!e || 3 === e.nodeType || 8 === e.nodeType) return i; ((r = Se(null, r)).type = n), (r.target = e); do { (o = e[t]) && s(r, o), (e = e.parentNode || e.ownerDocument || e.defaultView || e.parentWindow); } while (e && !r.isPropagationStopped()); return i; }), (i.clean = function(e) { var n, r, o = i.unbind; if (!e || 3 === e.nodeType || 8 === e.nodeType) return i; if ( (e[t] && o(e), e.getElementsByTagName || (e = e.document), e && e.getElementsByTagName) ) for (o(e), n = (r = e.getElementsByTagName("*")).length; n--; ) (e = r[n])[t] && o(e); return i; }), (i.destroy = function() { a = {}; }), (i.cancel = function(e) { return e && (e.preventDefault(), e.stopImmediatePropagation()), !1; }); }; (Te.Event = new Te()).bind(window, "ready", function() {}); var Ae = "sizzle" + -new Date(), _e = window.document, Be = 0, Re = 0, De = ft(), Oe = ft(), Pe = ft(), Ie = function(e, t) { return e === t && (ie = !0), 0; }, Le = typeof undefined, Me = 1 << 31, Fe = {}.hasOwnProperty, ze = [], Ue = ze.pop, Ve = ze.push, He = ze.push, qe = ze.slice, je = ze.indexOf || function(e) { for (var t = 0, n = this.length; t < n; t++) if (this[t] === e) return t; return -1; }, $e = "[\\x20\\t\\r\\n\\f]", We = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", Ke = "\\[" + $e + "*(" + We + ")(?:" + $e + "*([*^$|!~]?=)" + $e + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + We + "))|)" + $e + "*\\]", Xe = ":(" + We + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + Ke + ")*)|.*)\\)|)", Ye = new RegExp("^" + $e + "+|((?:^|[^\\\\])(?:\\\\.)*)" + $e + "+$", "g"), Ge = new RegExp("^" + $e + "*," + $e + "*"), Je = new RegExp("^" + $e + "*([>+~]|" + $e + ")" + $e + "*"), Qe = new RegExp("=" + $e + "*([^\\]'\"]*?)" + $e + "*\\]", "g"), Ze = new RegExp(Xe), et = new RegExp("^" + We + "$"), tt = { ID: new RegExp("^#(" + We + ")"), CLASS: new RegExp("^\\.(" + We + ")"), TAG: new RegExp("^(" + We + "|[*])"), ATTR: new RegExp("^" + Ke), PSEUDO: new RegExp("^" + Xe), CHILD: new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + $e + "*(even|odd|(([+-]|)(\\d*)n|)" + $e + "*(?:([+-]|)" + $e + "*(\\d+)|))" + $e + "*\\)|)", "i" ), bool: new RegExp( "^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i" ), needsContext: new RegExp( "^" + $e + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + $e + "*((?:-\\d)?\\d*)" + $e + "*\\)|)(?=[^-]|$)", "i" ) }, nt = /^(?:input|select|textarea|button)$/i, rt = /^h\d$/i, ot = /^[^{]+\{\s*\[native \w/, it = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, at = /[+~]/, st = /'|\\/g, ut = new RegExp("\\\\([\\da-f]{1,6}" + $e + "?|(" + $e + ")|.)", "ig"), ct = function(e, t, n) { var r = "0x" + t - 65536; return r != r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode((r >> 10) | 55296, (1023 & r) | 56320); }; try { He.apply((ze = qe.call(_e.childNodes)), _e.childNodes), ze[_e.childNodes.length].nodeType; } catch (yC) { He = { apply: ze.length ? function(e, t) { Ve.apply(e, qe.call(t)); } : function(e, t) { for (var n = e.length, r = 0; (e[n++] = t[r++]); ); e.length = n - 1; } }; } var lt = function(e, t, n, r) { var o, i, a, s, u, c, l, f, d, m; if ( ((t ? t.ownerDocument || t : _e) !== se && ae(t), (t = t || se), (n = n || []), !e || "string" != typeof e) ) return n; if (1 !== (s = t.nodeType) && 9 !== s) return []; if (ce && !r) { if ((o = it.exec(e))) if ((a = o[1])) { if (9 === s) { 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)) && de(t, i) && i.id === a ) return n.push(i), n; } else { if (o[2]) return He.apply(n, t.getElementsByTagName(e)), n; if ((a = o[3]) && G.getElementsByClassName) return He.apply(n, t.getElementsByClassName(a)), n; } if (G.qsa && (!le || !le.test(e))) { if ( ((f = l = Ae), (d = t), (m = 9 === s && e), 1 === s && "object" !== t.nodeName.toLowerCase()) ) { for ( c = ee(e), (l = t.getAttribute("id")) ? (f = l.replace(st, "\\$&")) : t.setAttribute("id", f), f = "[id='" + f + "'] ", u = c.length; u--; ) c[u] = f + bt(c[u]); (d = (at.test(e) && vt(t.parentNode)) || t), (m = c.join(",")); } if (m) try { return He.apply(n, d.querySelectorAll(m)), n; } catch (p) { } finally { l || t.removeAttribute("id"); } } } return ne(e.replace(Ye, "$1"), t, n, r); }; function ft() { var e = []; return function t(n, r) { return ( e.push(n + " ") > J.cacheLength && delete t[e.shift()], (t[n + " "] = r) ); }; } function dt(e) { return (e[Ae] = !0), e; } function mt(e, t) { var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || Me) - (~e.sourceIndex || Me); if (r) return r; if (n) for (; (n = n.nextSibling); ) if (n === t) return -1; return e ? 1 : -1; } function pt(e) { return function(t) { return "input" === t.nodeName.toLowerCase() && t.type === e; }; } function gt(e) { return function(t) { var n = t.nodeName.toLowerCase(); return ("input" === n || "button" === n) && t.type === e; }; } function ht(e) { return dt(function(t) { return ( (t = +t), dt(function(n, r) { for (var o, i = e([], n.length, t), a = i.length; a--; ) n[(o = i[a])] && (n[o] = !(r[o] = n[o])); }) ); }); } function vt(e) { return e && typeof e.getElementsByTagName !== Le && e; } for (Y in ((G = lt.support = {}), (Z = lt.isXML = function(e) { var t = e && (e.ownerDocument || e).documentElement; return !!t && "HTML" !== t.nodeName; }), (ae = lt.setDocument = function(e) { var t, n = e ? e.ownerDocument || e : _e, r = n.defaultView; return n !== se && 9 === n.nodeType && n.documentElement ? ((se = n), (ue = n.documentElement), (ce = !Z(n)), r && r !== (function(e) { try { return e.top; } catch (t) {} return null; })(r) && (r.addEventListener ? r.addEventListener( "unload", function() { ae(); }, !1 ) : r.attachEvent && r.attachEvent("onunload", function() { ae(); })), (G.attributes = !0), (G.getElementsByTagName = !0), (G.getElementsByClassName = ot.test(n.getElementsByClassName)), (G.getById = !0), (J.find.ID = function(e, t) { if (typeof t.getElementById !== Le && ce) { var n = t.getElementById(e); return n && n.parentNode ? [n] : []; } }), (J.filter.ID = function(e) { var t = e.replace(ut, ct); return function(e) { return e.getAttribute("id") === t; }; }), (J.find.TAG = G.getElementsByTagName ? function(e, t) { if (typeof t.getElementsByTagName !== Le) return t.getElementsByTagName(e); } : function(e, t) { var n, r = [], o = 0, i = t.getElementsByTagName(e); if ("*" === e) { for (; (n = i[o++]); ) 1 === n.nodeType && r.push(n); return r; } return i; }), (J.find.CLASS = G.getElementsByClassName && function(e, t) { if (ce) return t.getElementsByClassName(e); }), (fe = []), (le = []), (G.disconnectedMatch = !0), (le = le.length && new RegExp(le.join("|"))), (fe = fe.length && new RegExp(fe.join("|"))), (t = ot.test(ue.compareDocumentPosition)), (de = t || ot.test(ue.contains) ? function(e, t) { var n = 9 === e.nodeType ? e.documentElement : e, r = t && t.parentNode; return ( e === r || !( !r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)) ) ); } : function(e, t) { if (t) for (; (t = t.parentNode); ) if (t === e) return !0; return !1; }), (Ie = t ? function(e, t) { if (e === t) return (ie = !0), 0; var r = !e.compareDocumentPosition - !t.compareDocumentPosition; return ( r || (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || (!G.sortDetached && t.compareDocumentPosition(e) === r) ? e === n || (e.ownerDocument === _e && de(_e, e)) ? -1 : t === n || (t.ownerDocument === _e && de(_e, t)) ? 1 : oe ? je.call(oe, e) - je.call(oe, t) : 0 : 4 & r ? -1 : 1) ); } : function(e, t) { if (e === t) return (ie = !0), 0; var r, o = 0, i = e.parentNode, a = t.parentNode, s = [e], u = [t]; if (!i || !a) return e === n ? -1 : t === n ? 1 : i ? -1 : a ? 1 : oe ? je.call(oe, e) - je.call(oe, t) : 0; if (i === a) return mt(e, t); for (r = e; (r = r.parentNode); ) s.unshift(r); for (r = t; (r = r.parentNode); ) u.unshift(r); for (; s[o] === u[o]; ) o++; return o ? mt(s[o], u[o]) : s[o] === _e ? -1 : u[o] === _e ? 1 : 0; }), n) : se; }), (lt.matches = function(e, t) { return lt(e, null, null, t); }), (lt.matchesSelector = function(e, t) { if ( ((e.ownerDocument || e) !== se && ae(e), (t = t.replace(Qe, "='$1']")), G.matchesSelector && ce && (!fe || !fe.test(t)) && (!le || !le.test(t))) ) try { var n = (void 0).call(e, t); if ( n || G.disconnectedMatch || (e.document && 11 !== e.document.nodeType) ) return n; } catch (yC) {} return lt(t, se, null, [e]).length > 0; }), (lt.contains = function(e, t) { return (e.ownerDocument || e) !== se && ae(e), de(e, t); }), (lt.attr = function(e, t) { (e.ownerDocument || e) !== se && ae(e); var n = J.attrHandle[t.toLowerCase()], r = n && Fe.call(J.attrHandle, t.toLowerCase()) ? n(e, t, !ce) : undefined; return r !== undefined ? r : G.attributes || !ce ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; }), (lt.error = function(e) { throw new Error("Syntax error, unrecognized expression: " + e); }), (lt.uniqueSort = function(e) { var t, n = [], r = 0, o = 0; if ( ((ie = !G.detectDuplicates), (oe = !G.sortStable && e.slice(0)), e.sort(Ie), ie) ) { for (; (t = e[o++]); ) t === e[o] && (r = n.push(o)); for (; r--; ) e.splice(n[r], 1); } return (oe = null), e; }), (Q = lt.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 += Q(e); } else if (3 === o || 4 === o) return e.nodeValue; } else for (; (t = e[r++]); ) n += Q(t); return n; }), ((J = lt.selectors = { cacheLength: 50, createPseudo: dt, match: tt, 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(ut, ct)), (e[3] = (e[3] || e[4] || e[5] || "").replace(ut, ct)), "~=" === 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] || lt.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] && lt.error(e[0]), e ); }, PSEUDO: function(e) { var t, n = !e[6] && e[2]; return tt.CHILD.test(e[0]) ? null : (e[3] ? (e[2] = e[4] || e[5] || "") : n && Ze.test(n) && (t = ee(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(ut, ct).toLowerCase(); return "*" === e ? function() { return !0; } : function(e) { return e.nodeName && e.nodeName.toLowerCase() === t; }; }, CLASS: function(e) { var t = De[e + " "]; return ( t || ((t = new RegExp("(^|" + $e + ")" + e + "(" + $e + "|$)")) && De(e, function(e) { return t.test( ("string" == typeof e.className && e.className) || (typeof e.getAttribute !== Le && e.getAttribute("class")) || "" ); })) ); }, ATTR: function(e, t, n) { return function(r) { var o = lt.attr(r, e); return null == o ? "!=" === t : !t || ((o += ""), "=" === t ? o === n : "!=" === t ? o !== n : "^=" === t ? n && 0 === o.indexOf(n) : "*=" === t ? n && o.indexOf(n) > -1 : "$=" === t ? n && o.slice(-n.length) === n : "~=" === t ? (" " + o + " ").indexOf(n) > -1 : "|=" === t && (o === n || o.slice(0, n.length + 1) === n + "-")); }; }, CHILD: function(e, t, n, r, o) { var i = "nth" !== e.slice(0, 3), a = "last" !== e.slice(-4), s = "of-type" === t; return 1 === r && 0 === o ? function(e) { return !!e.parentNode; } : function(t, n, u) { var c, l, f, d, m, p, g = i !== a ? "nextSibling" : "previousSibling", h = t.parentNode, v = s && t.nodeName.toLowerCase(), y = !u && !s; if (h) { if (i) { for (; g; ) { for (f = t; (f = f[g]); ) if (s ? f.nodeName.toLowerCase() === v : 1 === f.nodeType) return !1; p = g = "only" === e && !p && "nextSibling"; } return !0; } if (((p = [a ? h.firstChild : h.lastChild]), a && y)) { for ( m = (c = (l = h[Ae] || (h[Ae] = {}))[e] || [])[0] === Be && c[1], d = c[0] === Be && c[2], f = m && h.childNodes[m]; (f = (++m && f && f[g]) || (d = m = 0) || p.pop()); ) if (1 === f.nodeType && ++d && f === t) { l[e] = [Be, m, d]; break; } } else if (y && (c = (t[Ae] || (t[Ae] = {}))[e]) && c[0] === Be) d = c[1]; else for ( ; (f = (++m && f && f[g]) || (d = m = 0) || p.pop()) && ((s ? f.nodeName.toLowerCase() !== v : 1 !== f.nodeType) || !++d || (y && ((f[Ae] || (f[Ae] = {}))[e] = [Be, d]), f !== t)); ); return (d -= o) === r || (d % r == 0 && d / r >= 0); } }; }, PSEUDO: function(e, t) { var n, r = J.pseudos[e] || J.setFilters[e.toLowerCase()] || lt.error("unsupported pseudo: " + e); return r[Ae] ? r(t) : r.length > 1 ? ((n = [e, e, "", t]), J.setFilters.hasOwnProperty(e.toLowerCase()) ? dt(function(e, n) { for (var o, i = r(e, t), a = i.length; a--; ) e[(o = je.call(e, i[a]))] = !(n[o] = i[a]); }) : function(e) { return r(e, 0, n); }) : r; } }, pseudos: { not: dt(function(e) { var t = [], n = [], r = te(e.replace(Ye, "$1")); return r[Ae] ? dt(function(e, t, n, o) { for (var i, a = r(e, null, o, []), s = e.length; s--; ) (i = a[s]) && (e[s] = !(t[s] = i)); }) : function(e, o, i) { return (t[0] = e), r(t, null, i, n), !n.pop(); }; }), has: dt(function(e) { return function(t) { return lt(e, t).length > 0; }; }), contains: dt(function(e) { return ( (e = e.replace(ut, ct)), function(t) { return (t.textContent || t.innerText || Q(t)).indexOf(e) > -1; } ); }), lang: dt(function(e) { return ( et.test(e || "") || lt.error("unsupported lang: " + e), (e = e.replace(ut, ct).toLowerCase()), function(t) { var n; do { if ( (n = ce ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) ) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-"); } while ((t = t.parentNode) && 1 === t.nodeType); return !1; } ); }), target: function(e) { var t = window.location && window.location.hash; return t && t.slice(1) === e.id; }, root: function(e) { return e === ue; }, focus: function(e) { return ( e === se.activeElement && (!se.hasFocus || se.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 !J.pseudos.empty(e); }, header: function(e) { return rt.test(e.nodeName); }, input: function(e) { return nt.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: ht(function() { return [0]; }), last: ht(function(e, t) { return [t - 1]; }), eq: ht(function(e, t, n) { return [n < 0 ? n + t : n]; }), even: ht(function(e, t) { for (var n = 0; n < t; n += 2) e.push(n); return e; }), odd: ht(function(e, t) { for (var n = 1; n < t; n += 2) e.push(n); return e; }), lt: ht(function(e, t, n) { for (var r = n < 0 ? n + t : n; --r >= 0; ) e.push(r); return e; }), gt: ht(function(e, t, n) { for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r); return e; }) } }).pseudos.nth = J.pseudos.eq), { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })) J.pseudos[Y] = pt(Y); for (Y in { submit: !0, reset: !0 }) J.pseudos[Y] = gt(Y); function yt() {} function bt(e) { for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; return r; } function Ct(e, t, n) { var r = t.dir, o = n && "parentNode" === r, i = Re++; return t.first ? function(t, n, i) { for (; (t = t[r]); ) if (1 === t.nodeType || o) return e(t, n, i); } : function(t, n, a) { var s, u, c = [Be, i]; if (a) { for (; (t = t[r]); ) if ((1 === t.nodeType || o) && e(t, n, a)) return !0; } else for (; (t = t[r]); ) if (1 === t.nodeType || o) { if ( (s = (u = t[Ae] || (t[Ae] = {}))[r]) && s[0] === Be && s[1] === i ) return (c[2] = s[2]); if (((u[r] = c), (c[2] = e(t, n, a)))) return !0; } }; } function xt(e) { return e.length > 1 ? function(t, n, r) { for (var o = e.length; o--; ) if (!e[o](t, n, r)) return !1; return !0; } : e[0]; } function wt(e, t, n, r, o) { for (var i, a = [], s = 0, u = e.length, c = null != t; s < u; s++) (i = e[s]) && ((n && !n(i, r, o)) || (a.push(i), c && t.push(s))); return a; } function Nt(e, t, n, r, o, i) { return ( r && !r[Ae] && (r = Nt(r)), o && !o[Ae] && (o = Nt(o, i)), dt(function(i, a, s, u) { var c, l, f, d = [], m = [], p = a.length, g = i || (function(e, t, n) { for (var r = 0, o = t.length; r < o; r++) lt(e, t[r], n); return n; })(t || "*", s.nodeType ? [s] : s, []), h = !e || (!i && t) ? g : wt(g, d, e, s, u), v = n ? (o || (i ? e : p || r) ? [] : a) : h; if ((n && n(h, v, s, u), r)) for (c = wt(v, m), r(c, [], s, u), l = c.length; l--; ) (f = c[l]) && (v[m[l]] = !(h[m[l]] = f)); if (i) { if (o || e) { if (o) { for (c = [], l = v.length; l--; ) (f = v[l]) && c.push((h[l] = f)); o(null, (v = []), c, u); } for (l = v.length; l--; ) (f = v[l]) && (c = o ? je.call(i, f) : d[l]) > -1 && (i[c] = !(a[c] = f)); } } else (v = wt(v === a ? v.splice(p, v.length) : v)), o ? o(null, a, v, u) : He.apply(a, v); }) ); } function Et(e) { for ( var t, n, r, o = e.length, i = J.relative[e[0].type], a = i || J.relative[" "], s = i ? 1 : 0, u = Ct( function(e) { return e === t; }, a, !0 ), c = Ct( function(e) { return je.call(t, e) > -1; }, a, !0 ), l = [ function(e, n, r) { return ( (!i && (r || n !== re)) || ((t = n).nodeType ? u(e, n, r) : c(e, n, r)) ); } ]; s < o; s++ ) if ((n = J.relative[e[s].type])) l = [Ct(xt(l), n)]; else { if ((n = J.filter[e[s].type].apply(null, e[s].matches))[Ae]) { for (r = ++s; r < o && !J.relative[e[r].type]; r++); return Nt( s > 1 && xt(l), s > 1 && bt( e .slice(0, s - 1) .concat({ value: " " === e[s - 2].type ? "*" : "" }) ).replace(Ye, "$1"), n, s < r && Et(e.slice(s, r)), r < o && Et((e = e.slice(r))), r < o && bt(e) ); } l.push(n); } return xt(l); } (yt.prototype = J.filters = J.pseudos), (J.setFilters = new yt()), (ee = lt.tokenize = function(e, t) { var n, r, o, i, a, s, u, c = Oe[e + " "]; if (c) return t ? 0 : c.slice(0); for (a = e, s = [], u = J.preFilter; a; ) { for (i in ((n && !(r = Ge.exec(a))) || (r && (a = a.slice(r[0].length) || a), s.push((o = []))), (n = !1), (r = Je.exec(a)) && ((n = r.shift()), o.push({ value: n, type: r[0].replace(Ye, " ") }), (a = a.slice(n.length))), J.filter)) !(r = tt[i].exec(a)) || (u[i] && !(r = u[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 ? lt.error(e) : Oe(e, s).slice(0); }), (te = lt.compile = function(e, t) { var n, r, o, i, a, s, u = [], c = [], l = Pe[e + " "]; if (!l) { for (t || (t = ee(e)), n = t.length; n--; ) (l = Et(t[n]))[Ae] ? u.push(l) : c.push(l); (l = Pe( e, ((r = c), (i = (o = u).length > 0), (a = r.length > 0), (s = function(e, t, n, s, u) { var c, l, f, d = 0, m = "0", p = e && [], g = [], h = re, v = e || (a && J.find.TAG("*", u)), y = (Be += null == h ? 1 : Math.random() || 0.1), b = v.length; for ( u && (re = t !== se && t); m !== b && null != (c = v[m]); m++ ) { if (a && c) { for (l = 0; (f = r[l++]); ) if (f(c, t, n)) { s.push(c); break; } u && (Be = y); } i && ((c = !f && c) && d--, e && p.push(c)); } if (((d += m), i && m !== d)) { for (l = 0; (f = o[l++]); ) f(p, g, t, n); if (e) { if (d > 0) for (; m--; ) p[m] || g[m] || (g[m] = Ue.call(s)); g = wt(g); } He.apply(s, g), u && !e && g.length > 0 && d + o.length > 1 && lt.uniqueSort(s); } return u && ((Be = y), (re = h)), p; }), i ? dt(s) : s) )).selector = e; } return l; }), (ne = lt.select = function(e, t, n, r) { var o, i, a, s, u, c = "function" == typeof e && e, l = !r && ee((e = c.selector || e)); if (((n = n || []), 1 === l.length)) { if ( (i = l[0] = l[0].slice(0)).length > 2 && "ID" === (a = i[0]).type && G.getById && 9 === t.nodeType && ce && J.relative[i[1].type] ) { if (!(t = (J.find.ID(a.matches[0].replace(ut, ct), t) || [])[0])) return n; c && (t = t.parentNode), (e = e.slice(i.shift().value.length)); } for ( o = tt.needsContext.test(e) ? 0 : i.length; o-- && ((a = i[o]), !J.relative[(s = a.type)]); ) if ( (u = J.find[s]) && (r = u( a.matches[0].replace(ut, ct), (at.test(i[0].type) && vt(t.parentNode)) || t )) ) { if ((i.splice(o, 1), !(e = r.length && bt(i)))) return He.apply(n, r), n; break; } } return ( (c || te(e, l))(r, t, !ce, n, (at.test(e) && vt(t.parentNode)) || t), n ); }), (G.sortStable = Ae.split("") .sort(Ie) .join("") === Ae), (G.detectDuplicates = !!ie), ae(), (G.sortDetached = !0); var St = Array.isArray || function(e) { return "[object Array]" === Object.prototype.toString.call(e); }, kt = function(e, t, n) { var r, o; if (!e) return 0; if (((n = n || e), e.length !== undefined)) { for (r = 0, o = e.length; r < o; r++) if (!1 === t.call(n, e[r], r, e)) return 0; } else for (r in e) if (e.hasOwnProperty(r) && !1 === t.call(n, e[r], r, e)) return 0; return 1; }, Tt = function(e, t, n) { var r, o; for (r = 0, o = e.length; r < o; r++) if (t.call(n, e[r], r, e)) return r; return -1; }, At = { isArray: St, toArray: function(e) { var t, n, r = e; if (!St(e)) for (r = [], t = 0, n = e.length; t < n; t++) r[t] = e[t]; return r; }, each: kt, map: function(e, t) { var n = []; return ( kt(e, function(r, o) { n.push(t(r, o, e)); }), n ); }, filter: function(e, t) { var n = []; return ( kt(e, function(r, o) { (t && !t(r, o, e)) || n.push(r); }), n ); }, indexOf: function(e, t) { var n, r; if (e) for (n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; return -1; }, reduce: function(e, t, n, r) { var o = 0; for (arguments.length < 3 && (n = e[0]); o < e.length; o++) n = t.call(r, n, e[o], o); return n; }, findIndex: Tt, find: function(e, t, n) { var r = Tt(e, t, n); return -1 !== r ? e[r] : undefined; }, last: function(e) { return e[e.length - 1]; } }, _t = /^\s*|\s*$/g, Bt = function(e) { return null === e || e === undefined ? "" : ("" + e).replace(_t, ""); }, Rt = function(e, t) { return t ? !("array" !== t || !At.isArray(e)) || typeof e === t : e !== undefined; }, Dt = function(e, t, n, r) { (r = r || this), e && (n && (e = e[n]), At.each(e, function(e, o) { if (!1 === t.call(r, e, o, n)) return !1; Dt(e, t, n, r); })); }, Ot = { trim: Bt, isArray: At.isArray, is: Rt, toArray: At.toArray, makeMap: function(e, t, n) { var r; for ( e = e || [], t = t || ",", "string" == typeof e && (e = e.split(t)), n = n || {}, r = e.length; r--; ) n[e[r]] = {}; return n; }, each: At.each, map: At.map, grep: At.filter, inArray: At.indexOf, hasOwn: function(e, t) { return Object.prototype.hasOwnProperty.call(e, t); }, extend: function(e, t) { for (var n, r, o, i = [], a = 2; a < arguments.length; a++) i[a - 2] = arguments[a]; var s, u = arguments; for (n = 1, r = u.length; n < r; n++) for (o in (t = u[n])) t.hasOwnProperty(o) && (s = t[o]) !== undefined && (e[o] = s); return e; }, create: function(e, t, n) { var r, o, i, a, s, u = this, c = 0; if ( ((e = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(e)), (i = e[3].match(/(^|\.)(\w+)$/i)[2]), !(o = u.createNS(e[3].replace(/\.\w+$/, ""), n))[i]) ) { if ("static" === e[2]) return ( (o[i] = t), void (this.onCreate && this.onCreate(e[2], e[3], o[i])) ); t[i] || ((t[i] = function() {}), (c = 1)), (o[i] = t[i]), u.extend(o[i].prototype, t), e[5] && ((r = u.resolve(e[5]).prototype), (a = e[5].match(/\.(\w+)$/i)[1]), (s = o[i]), (o[i] = c ? function() { return r[a].apply(this, arguments); } : function() { return (this.parent = r[a]), s.apply(this, arguments); }), (o[i].prototype[i] = o[i]), u.each(r, function(e, t) { o[i].prototype[t] = r[t]; }), u.each(t, function(e, t) { r[t] ? (o[i].prototype[t] = function() { return (this.parent = r[t]), e.apply(this, arguments); }) : t !== i && (o[i].prototype[t] = e); })), u.each(t["static"], function(e, t) { o[i][t] = e; }); } }, walk: Dt, 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 || Rt(e, "array") ? e : At.map(e.split(t || ","), Bt); }, _addCacheSuffix: function(e) { var t = me.cacheSuffix; return t && (e += (-1 === e.indexOf("?") ? "?" : "&") + t), e; } }, Pt = document, It = Array.prototype.push, Lt = Array.prototype.slice, Mt = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, Ft = Te.Event, zt = Ot.makeMap("children,contents,next,prev"), Ut = function(e) { return void 0 !== e; }, Vt = function(e) { return "string" == typeof e; }, Ht = function(e, t) { var n, r, o; for ( o = (t = t || Pt).createElement("div"), n = t.createDocumentFragment(), o.innerHTML = e; (r = o.firstChild); ) n.appendChild(r); return n; }, qt = function(e, t, n, r) { var o; if (Vt(t)) t = Ht(t, rn(e[0])); else if (t.length && !t.nodeType) { if (((t = Qt.makeArray(t)), r)) for (o = t.length - 1; o >= 0; o--) qt(e, t[o], n, r); else for (o = 0; o < t.length; o++) qt(e, t[o], n, r); return e; } if (t.nodeType) for (o = e.length; o--; ) n.call(e[o], t); return e; }, jt = function(e, t) { return e && t && -1 !== (" " + e.className + " ").indexOf(" " + t + " "); }, $t = function(e, t, n) { var r, o; return ( (t = Qt(t)[0]), e.each(function() { var e = this; n && r === e.parentNode ? o.appendChild(e) : ((r = e.parentNode), (o = t.cloneNode(!1)), e.parentNode.insertBefore(o, e), o.appendChild(e)); }), e ); }, Wt = Ot.makeMap( "fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom", " " ), Kt = Ot.makeMap( "checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected", " " ), Xt = { for: "htmlFor", class: "className", readonly: "readOnly" }, Yt = { float: "cssFloat" }, Gt = {}, Jt = {}, Qt = function(e, t) { return new Qt.fn.init(e, t); }, Zt = /^\s*|\s*$/g, en = function(e) { return null === e || e === undefined ? "" : ("" + e).replace(Zt, ""); }, tn = 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; }, nn = function(e, t) { var n = []; return ( tn(e, function(e, r) { t(r, e) && n.push(r); }), n ); }, rn = function(e) { return e ? (9 === e.nodeType ? e : e.ownerDocument) : Pt; }; (Qt.fn = Qt.prototype = { constructor: Qt, 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 Qt(e).attr(t); o.context = t = document; } if (Vt(e)) { if ( ((o.selector = e), !(n = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : Mt.exec(e))) ) return Qt(t).find(e); if (n[1]) for (r = Ht(e, rn(t)).firstChild; r; ) It.call(o, r), (r = r.nextSibling); else { if (!(r = rn(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 Ot.toArray(this); }, add: function(e, t) { var n, r, o = this; if (Vt(e)) return o.add(Qt(e)); if (!1 !== t) for ( n = Qt.unique(o.toArray().concat(Qt.makeArray(e))), o.length = n.length, r = 0; r < n.length; r++ ) o[r] = n[r]; else It.apply(o, Qt.makeArray(e)); return o; }, attr: function(e, t) { var n, r = this; if ("object" == typeof e) tn(e, function(e, t) { r.attr(e, t); }); else { if (!Ut(t)) { if (r[0] && 1 === r[0].nodeType) { if ((n = Gt[e]) && n.get) return n.get(r[0], e); if (Kt[e]) return r.prop(e) ? e : undefined; null === (t = r[0].getAttribute(e, 2)) && (t = undefined); } return t; } this.each(function() { var n; if (1 === this.nodeType) { if ((n = Gt[e]) && n.set) return void n.set(this, t); null === t ? this.removeAttribute(e, 2) : this.setAttribute(e, t, 2); } }); } return r; }, removeAttr: function(e) { return this.attr(e, null); }, prop: function(e, t) { var n = this; if ("object" == typeof (e = Xt[e] || e)) tn(e, function(e, t) { n.prop(e, t); }); else { if (!Ut(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(e, t) { var n, r, o = this, i = 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 e) tn(e, function(e, t) { o.css(e, t); }); else if (Ut(t)) (e = i(e)), "number" != typeof t || Wt[e] || (t = t.toString() + "px"), o.each(function() { var n = this.style; if ((r = Jt[e]) && r.set) r.set(this, t); else { try { this.style[Yt[e] || e] = t; } catch (o) {} (null !== t && "" !== t) || (n.removeProperty ? n.removeProperty(a(e)) : n.removeAttribute(e)); } }); else { if (((n = o[0]), (r = Jt[e]) && r.get)) return r.get(n); if (n.ownerDocument.defaultView) try { return n.ownerDocument.defaultView .getComputedStyle(n, null) .getPropertyValue(a(e)); } catch (s) { return undefined; } else if (n.currentStyle) return n.currentStyle[i(e)]; } return o; }, remove: function() { for (var e, t = this.length; t--; ) (e = this[t]), Ft.clean(e), e.parentNode && e.parentNode.removeChild(e); return this; }, empty: function() { for (var e, t = this.length; t--; ) for (e = this[t]; e.firstChild; ) e.removeChild(e.firstChild); return this; }, html: function(e) { var t, n = this; if (Ut(e)) { t = n.length; try { for (; t--; ) n[t].innerHTML = e; } catch (r) { Qt(n[t]) .empty() .append(e); } return n; } return n[0] ? n[0].innerHTML : ""; }, text: function(e) { var t, n = this; if (Ut(e)) { for (t = n.length; t--; ) "innerText" in n[t] ? (n[t].innerText = e) : (n[0].textContent = e); return n; } return n[0] ? n[0].innerText || n[0].textContent : ""; }, append: function() { return qt(this, arguments, function(e) { (1 === this.nodeType || (this.host && 1 === this.host.nodeType)) && this.appendChild(e); }); }, prepend: function() { return qt( 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 ? qt(this, arguments, function(e) { this.parentNode.insertBefore(e, this); }) : this; }, after: function() { return this[0] && this[0].parentNode ? qt( this, arguments, function(e) { this.parentNode.insertBefore(e, this.nextSibling); }, !0 ) : this; }, appendTo: function(e) { return Qt(e).append(this), this; }, prependTo: function(e) { return Qt(e).prepend(this), this; }, replaceWith: function(e) { return this.before(e).remove(); }, wrap: function(e) { return $t(this, e); }, wrapAll: function(e) { return $t(this, e, !0); }, wrapInner: function(e) { return ( this.each(function() { Qt(this) .contents() .wrapAll(e); }), this ); }, unwrap: function() { return this.parent().each(function() { Qt(this).replaceWith(this.childNodes); }); }, clone: function() { var e = []; return ( this.each(function() { e.push(this.cloneNode(!0)); }), Qt(e) ); }, addClass: function(e) { return this.toggleClass(e, !0); }, removeClass: function(e) { return this.toggleClass(e, !1); }, toggleClass: function(e, t) { var n = this; return "string" != typeof e ? n : (-1 !== e.indexOf(" ") ? tn(e.split(" "), function() { n.toggleClass(this, t); }) : n.each(function(n, r) { var o, i; (i = jt(r, e)) !== t && ((o = r.className), i ? (r.className = en( (" " + o + " ").replace(" " + e + " ", " ") )) : (r.className += o ? " " + e : e)); }), n); }, hasClass: function(e) { return jt(this[0], e); }, each: function(e) { return tn(this, e); }, on: function(e, t) { return this.each(function() { Ft.bind(this, e, t); }); }, off: function(e, t) { return this.each(function() { Ft.unbind(this, e, t); }); }, trigger: function(e) { return this.each(function() { "object" == typeof e ? Ft.fire(this, e.type, e) : Ft.fire(this, e); }); }, show: function() { return this.css("display", ""); }, hide: function() { return this.css("display", "none"); }, slice: function() { return new Qt(Lt.apply(this, arguments)); }, eq: function(e) { return -1 === e ? this.slice(e) : this.slice(e, +e + 1); }, first: function() { return this.eq(0); }, last: function() { return this.eq(-1); }, find: function(e) { var t, n, r = []; for (t = 0, n = this.length; t < n; t++) Qt.find(e, this[t], r); return Qt(r); }, filter: function(e) { return Qt( "function" == typeof e ? nn(this.toArray(), function(t, n) { return e(n, t); }) : Qt.filter(e, this.toArray()) ); }, closest: function(e) { var t = []; return ( e instanceof Qt && (e = e[0]), this.each(function(n, r) { for (; r; ) { if ("string" == typeof e && Qt(r).is(e)) { t.push(r); break; } if (r === e) { t.push(r); break; } r = r.parentNode; } }), Qt(t) ); }, 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: It, sort: [].sort, splice: [].splice }), Ot.extend(Qt, { extend: Ot.extend, makeArray: function(e) { return ((t = e) && t === t.window) || e.nodeType ? [e] : Ot.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: Ot.isArray, each: tn, trim: en, grep: nn, find: lt, expr: lt.selectors, unique: lt.uniqueSort, text: lt.getText, contains: lt.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 ? Qt.find.matchesSelector(t[0], e) ? [t[0]] : [] : Qt.find.matches(e, t)); } }); var on = function(e, t, n) { var r = [], o = e[t]; for ( "string" != typeof n && n instanceof Qt && (n = n[0]); o && 9 !== o.nodeType; ) { if (n !== undefined) { if (o === n) break; if ("string" == typeof n && Qt(o).is(n)) break; } 1 === o.nodeType && r.push(o), (o = o[t]); } return r; }, an = function(e, t, n, r) { var o = []; for (r instanceof Qt && (r = r[0]); e; e = e[t]) if (!n || e.nodeType === n) { if (r !== undefined) { if (e === r) break; if ("string" == typeof r && Qt(e).is(r)) break; } o.push(e); } return o; }, sn = function(e, t, n) { for (e = e[t]; e; e = e[t]) if (e.nodeType === n) return e; return null; }; tn( { parent: function(e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null; }, parents: function(e) { return on(e, "parentNode"); }, next: function(e) { return sn(e, "nextSibling", 1); }, prev: function(e) { return sn(e, "previousSibling", 1); }, children: function(e) { return an(e.firstChild, "nextSibling", 1); }, contents: function(e) { return Ot.toArray( ("iframe" === e.nodeName ? e.contentDocument || e.contentWindow.document : e ).childNodes ); } }, function(e, t) { Qt.fn[e] = function(n) { var r = []; return ( this.each(function() { var e = t.call(r, this, n, r); e && (Qt.isArray(e) ? r.push.apply(r, e) : r.push(e)); }), this.length > 1 && (zt[e] || (r = Qt.unique(r)), 0 === e.indexOf("parents") && (r = r.reverse())), (r = Qt(r)), n ? r.filter(n) : r ); }; } ), tn( { parentsUntil: function(e, t) { return on(e, "parentNode", t); }, nextUntil: function(e, t) { return an(e, "nextSibling", 1, t).slice(1); }, prevUntil: function(e, t) { return an(e, "previousSibling", 1, t).slice(1); } }, function(e, t) { Qt.fn[e] = function(n, r) { var o = []; return ( this.each(function() { var e = t.call(o, this, n, o); e && (Qt.isArray(e) ? o.push.apply(o, e) : o.push(e)); }), this.length > 1 && ((o = Qt.unique(o)), (0 !== e.indexOf("parents") && "prevUntil" !== e) || (o = o.reverse())), (o = Qt(o)), r ? o.filter(r) : o ); }; } ), (Qt.fn.is = function(e) { return !!e && this.filter(e).length > 0; }), (Qt.fn.init.prototype = Qt.fn), (Qt.overrideDefaults = function(e) { var t, n = function(r, o) { return ( (t = t || e()), 0 === arguments.length && (r = t.element), o || (o = t.context), new n.fn.init(r, o) ); }; return Qt.extend(n, this), n; }); var un = function(e, t, n) { tn(n, function(n, r) { (e[n] = e[n] || {}), (e[n][t] = r); }); }; me.ie && me.ie < 8 && (un(Gt, "get", { maxlength: function(e) { var t = e.maxLength; return 2147483647 === t ? undefined : t; }, size: function(e) { var t = e.size; return 20 === t ? undefined : t; }, class: function(e) { return e.className; }, style: function(e) { var t = e.style.cssText; return 0 === t.length ? undefined : t; } }), un(Gt, "set", { class: function(e, t) { e.className = t; }, style: function(e, t) { e.style.cssText = t; } })), me.ie && me.ie < 9 && ((Yt["float"] = "styleFloat"), un(Jt, "set", { opacity: function(e, t) { var n = e.style; null === t || "" === t ? n.removeAttribute("filter") : ((n.zoom = 1), (n.filter = "alpha(opacity=" + 100 * t + ")")); } })), (Qt.attrHooks = Gt), (Qt.cssHooks = Jt); var cn, ln, fn, dn, mn = function(e) { var t, n = !1; return function() { return n || ((n = !0), (t = e.apply(null, arguments))), t; }; }, pn = 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 hn(r(1), r(2)); }, gn = function() { return hn(0, 0); }, hn = function(e, t) { return { major: e, minor: t }; }, vn = { nu: hn, detect: function(e, t) { var n = String(t).toLowerCase(); return 0 === e.length ? gn() : pn(e, n); }, unknown: gn }, yn = "Firefox", bn = function(e, t) { return function() { return t === e; }; }, Cn = function(e) { var t = e.current; return { current: t, version: e.version, isEdge: bn("Edge", t), isChrome: bn("Chrome", t), isIE: bn("IE", t), isOpera: bn("Opera", t), isFirefox: bn(yn, t), isSafari: bn("Safari", t) }; }, xn = { unknown: function() { return Cn({ current: undefined, version: vn.unknown() }); }, nu: Cn, edge: y.constant("Edge"), chrome: y.constant("Chrome"), ie: y.constant("IE"), opera: y.constant("Opera"), firefox: y.constant(yn), safari: y.constant("Safari") }, wn = "Windows", Nn = "Android", En = "Solaris", Sn = "FreeBSD", kn = function(e, t) { return function() { return t === e; }; }, Tn = function(e) { var t = e.current; return { current: t, version: e.version, isWindows: kn(wn, t), isiOS: kn("iOS", t), isAndroid: kn(Nn, t), isOSX: kn("OSX", t), isLinux: kn("Linux", t), isSolaris: kn(En, t), isFreeBSD: kn(Sn, t) }; }, An = { unknown: function() { return Tn({ current: undefined, version: vn.unknown() }); }, nu: Tn, windows: y.constant(wn), ios: y.constant("iOS"), android: y.constant(Nn), linux: y.constant("Linux"), osx: y.constant("OSX"), solaris: y.constant(En), freebsd: y.constant(Sn) }, _n = function(e, t) { var n = String(t).toLowerCase(); return M.find(e, function(e) { return e.search(n); }); }, Bn = function(e, t) { return _n(e, t).map(function(e) { var n = vn.detect(e.versionRegexes, t); return { current: e.name, version: n }; }); }, Rn = function(e, t) { return _n(e, t).map(function(e) { var n = vn.detect(e.versionRegexes, t); return { current: e.name, version: n }; }); }, Dn = function(e, t) { return -1 !== e.indexOf(t); }, On = function(e) { return e.replace(/^\s+|\s+$/g, ""); }, Pn = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, In = function(e) { return function(t) { return Dn(t, e); }; }, Ln = [ { name: "Edge", versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: function(e) { return ( Dn(e, "edge/") && Dn(e, "chrome") && Dn(e, "safari") && Dn(e, "applewebkit") ); } }, { name: "Chrome", versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, Pn], search: function(e) { return Dn(e, "chrome") && !Dn(e, "chromeframe"); } }, { name: "IE", versionRegexes: [ /.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/ ], search: function(e) { return Dn(e, "msie") || Dn(e, "trident"); } }, { name: "Opera", versionRegexes: [Pn, /.*?opera\/([0-9]+)\.([0-9]+).*/], search: In("opera") }, { name: "Firefox", versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], search: In("firefox") }, { name: "Safari", versionRegexes: [Pn, /.*?cpu os ([0-9]+)_([0-9]+).*/], search: function(e) { return (Dn(e, "safari") || Dn(e, "mobile/")) && Dn(e, "applewebkit"); } } ], Mn = [ { name: "Windows", search: In("win"), versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] }, { name: "iOS", search: function(e) { return Dn(e, "iphone") || Dn(e, "ipad"); }, versionRegexes: [ /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/ ] }, { name: "Android", search: In("android"), versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] }, { name: "OSX", search: In("os x"), versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/] }, { name: "Linux", search: In("linux"), versionRegexes: [] }, { name: "Solaris", search: In("sunos"), versionRegexes: [] }, { name: "FreeBSD", search: In("freebsd"), versionRegexes: [] } ], Fn = { browsers: y.constant(Ln), oses: y.constant(Mn) }, zn = function(e) { var t, n, r, o, i, a, s, u, c, l, f, d = Fn.browsers(), m = Fn.oses(), p = Bn(d, e).fold(xn.unknown, xn.nu), g = Rn(m, e).fold(An.unknown, An.nu); return { browser: p, os: g, deviceType: ((n = p), (r = e), (o = (t = g).isiOS() && !0 === /ipad/i.test(r)), (i = t.isiOS() && !o), (a = t.isAndroid() && 3 === t.version.major), (s = t.isAndroid() && 4 === t.version.major), (u = o || a || (s && !0 === /mobile/i.test(r))), (c = t.isiOS() || t.isAndroid()), (l = c && !u), (f = n.isSafari() && t.isiOS() && !1 === /safari/i.test(r)), { isiPad: y.constant(o), isiPhone: y.constant(i), isTablet: y.constant(u), isPhone: y.constant(l), isTouch: y.constant(c), isAndroid: t.isAndroid, isiOS: t.isiOS, isWebView: y.constant(f) }) }; }, Un = { detect: mn(function() { var e = navigator.userAgent; return zn(e); }) }, Vn = function(e) { if (null === e || e === undefined) throw new Error("Node cannot be null or undefined"); return { dom: y.constant(e) }; }, Hn = { fromHtml: function(e, t) { var n = (t || document).createElement("div"); if (((n.innerHTML = e), !n.hasChildNodes() || n.childNodes.length > 1)) throw (console.error("HTML does not have a single root node", e), "HTML must have a single root node"); return Vn(n.childNodes[0]); }, fromTag: function(e, t) { var n = (t || document).createElement(e); return Vn(n); }, fromText: function(e, t) { var n = (t || document).createTextNode(e); return Vn(n); }, fromDom: Vn, fromPoint: function(e, t, n) { return E.from(e.dom().elementFromPoint(t, n)).map(Vn); } }, qn = 8, jn = 9, $n = 1, Wn = 3, Kn = function(e) { return e.dom().nodeName.toLowerCase(); }, Xn = function(e) { return e.dom().nodeType; }, Yn = function(e) { return function(t) { return Xn(t) === e; }; }, Gn = Yn($n), Jn = Yn(Wn), Qn = Yn(jn), Zn = { name: Kn, type: Xn, value: function(e) { return e.dom().nodeValue; }, isElement: Gn, isText: Jn, isDocument: Qn, isComment: function(e) { return Xn(e) === qn || "#comment" === Kn(e); } }, er = function(e) { return function(t) { return ( (function(e) { if (null === e) return "null"; var t = typeof e; return "object" === t && Array.prototype.isPrototypeOf(e) ? "array" : "object" === t && String.prototype.isPrototypeOf(e) ? "string" : t; })(t) === e ); }; }, tr = { isString: er("string"), isObject: er("object"), isArray: er("array"), isNull: er("null"), isBoolean: er("boolean"), isUndefined: er("undefined"), isFunction: er("function"), isNumber: er("number") }, nr = (cn = Object.keys) === undefined ? function(e) { var t = []; for (var n in e) e.hasOwnProperty(n) && t.push(n); return t; } : cn, rr = function(e, t) { for (var n = nr(e), r = 0, o = n.length; r < o; r++) { var i = n[r]; t(e[i], i, e); } }, or = function(e, t) { var n = {}; return ( rr(e, function(r, o) { var i = t(r, o, e); n[i.k] = i.v; }), n ); }, ir = function(e, t) { var n = []; return ( rr(e, function(e, r) { n.push(t(e, r)); }), n ); }, ar = function(e) { return ir(e, function(e) { return e; }); }, sr = { bifilter: function(e, t) { var n = {}, r = {}; return ( rr(e, function(e, o) { (t(e, o) ? n : r)[o] = e; }), { t: n, f: r } ); }, each: rr, map: function(e, t) { return or(e, function(e, n, r) { return { k: n, v: t(e, n, r) }; }); }, mapToArray: ir, tupleMap: or, find: function(e, t) { for (var n = nr(e), r = 0, o = n.length; r < o; r++) { var i = n[r], a = e[i]; if (t(a, i, e)) return E.some(a); } return E.none(); }, keys: nr, values: ar, size: function(e) { return ar(e).length; } }, ur = function(e, t, n) { if (!(tr.isString(n) || tr.isBoolean(n) || tr.isNumber(n))) throw (console.error( "Invalid call to Attr.set. Key ", t, ":: Value ", n, ":: Element ", e ), new Error("Attribute value was not simple")); e.setAttribute(t, n + ""); }, cr = function(e, t, n) { ur(e.dom(), t, n); }, lr = function(e, t) { var n = e.dom().getAttribute(t); return null === n ? undefined : n; }, fr = function(e, t) { var n = e.dom(); return !(!n || !n.hasAttribute) && n.hasAttribute(t); }, dr = { clone: function(e) { return M.foldl( e.dom().attributes, function(e, t) { return (e[t.name] = t.value), e; }, {} ); }, set: cr, setAll: function(e, t) { var n = e.dom(); sr.each(t, function(e, t) { ur(n, t, e); }); }, get: lr, has: fr, remove: function(e, t) { e.dom().removeAttribute(t); }, hasNone: function(e) { var t = e.dom().attributes; return t === undefined || null === t || 0 === t.length; }, transfer: function(e, t, n) { Zn.isElement(e) && Zn.isElement(t) && M.each(n, function(n) { var r, o, i; (o = t), fr((r = e), (i = n)) && !fr(o, i) && cr(o, i, lr(r, i)); }); } }, mr = mn(function() { return pr(Hn.fromDom(document)); }), pr = function(e) { var t = e.dom().body; if (null === t || t === undefined) throw "Body is not available yet"; return Hn.fromDom(t); }, gr = { body: mr, getBody: pr, inBody: function(e) { var t = Zn.isText(e) ? e.dom().parentNode : e.dom(); return ( t !== undefined && null !== t && t.ownerDocument.body.contains(t) ); } }, hr = function(e) { return e.style !== undefined; }, vr = function(e, t, n) { if (!tr.isString(n)) throw (console.error( "Invalid call to CSS.set. Property ", t, ":: Value ", n, ":: Element ", e ), new Error("CSS value must be a string: " + n)); hr(e) && e.style.setProperty(t, n); }, yr = function(e, t) { return hr(e) ? e.style.getPropertyValue(t) : ""; }, br = function(e, t) { var n = e.dom(); sr.each(t, function(e, t) { vr(n, t, e); }); }, Cr = function(e, t) { var n = e.dom(), r = window.getComputedStyle(n).getPropertyValue(t), o = "" !== r || gr.inBody(e) ? r : yr(n, t); return null === o ? undefined : o; }, xr = function() { var e = arguments; return function() { for (var t = new Array(arguments.length), n = 0; n < t.length; n++) t[n] = arguments[n]; if (e.length !== t.length) throw new Error( 'Wrong number of arguments to struct. Expected "[' + e.length + ']", got ' + t.length + " arguments" ); var r = {}; return ( M.each(e, function(e, n) { r[e] = y.constant(t[n]); }), r ); }; }, wr = function(e, t) { var n = [], r = function(e) { return n.push(e), t(e); }, o = t(e); do { o = o.bind(r); } while (o.isSome()); return n; }, Nr = function() { return V("Node"); }, Er = function(e, t, n) { return 0 != (e.compareDocumentPosition(t) & n); }, Sr = function(e, t) { return Er(e, t, Nr().DOCUMENT_POSITION_CONTAINED_BY); }, kr = $n, Tr = jn, Ar = function(e) { return ( (e.nodeType !== kr && e.nodeType !== Tr) || 0 === e.childElementCount ); }, _r = { all: function(e, t) { var n = t === undefined ? document : t.dom(); return Ar(n) ? [] : M.map(n.querySelectorAll(e), Hn.fromDom); }, is: function(e, t) { var n = e.dom(); if (n.nodeType !== kr) return !1; if (n.matches !== undefined) return n.matches(t); if (n.msMatchesSelector !== undefined) return n.msMatchesSelector(t); if (n.webkitMatchesSelector !== undefined) return n.webkitMatchesSelector(t); if (n.mozMatchesSelector !== undefined) return n.mozMatchesSelector(t); throw new Error("Browser lacks native selectors"); }, one: function(e, t) { var n = t === undefined ? document : t.dom(); return Ar(n) ? E.none() : E.from(n.querySelector(e)).map(Hn.fromDom); } }, Br = function(e, t) { return e.dom() === t.dom(); }, Rr = Un.detect().browser.isIE() ? function(e, t) { return Sr(e.dom(), t.dom()); } : function(e, t) { var n = e.dom(), r = t.dom(); return n !== r && n.contains(r); }, Dr = { eq: Br, isEqualNode: function(e, t) { return e.dom().isEqualNode(t.dom()); }, member: function(e, t) { return M.exists(t, y.curry(Br, e)); }, contains: Rr, is: _r.is }, Or = function(e) { return Hn.fromDom(e.dom().ownerDocument); }, Pr = function(e) { var t = e.dom(); return E.from(t.parentNode).map(Hn.fromDom); }, Ir = function(e) { var t = e.dom(); return E.from(t.previousSibling).map(Hn.fromDom); }, Lr = function(e) { var t = e.dom(); return E.from(t.nextSibling).map(Hn.fromDom); }, Mr = function(e) { var t = e.dom(); return M.map(t.childNodes, Hn.fromDom); }, Fr = function(e, t) { var n = e.dom().childNodes; return E.from(n[t]).map(Hn.fromDom); }, zr = xr("element", "offset"), Ur = { owner: Or, defaultView: function(e) { var t = e.dom().ownerDocument.defaultView; return Hn.fromDom(t); }, documentElement: function(e) { var t = Or(e); return Hn.fromDom(t.dom().documentElement); }, parent: Pr, findIndex: function(e) { return Pr(e).bind(function(t) { var n = Mr(t); return M.findIndex(n, function(t) { return Dr.eq(e, t); }); }); }, parents: function(e, t) { for ( var n = tr.isFunction(t) ? t : y.constant(!1), r = e.dom(), o = []; null !== r.parentNode && r.parentNode !== undefined; ) { var i = r.parentNode, a = Hn.fromDom(i); if ((o.push(a), !0 === n(a))) break; r = i; } return o; }, siblings: function(e) { return Pr(e) .map(Mr) .map(function(t) { return M.filter(t, function(t) { return !Dr.eq(e, t); }); }) .getOr([]); }, prevSibling: Ir, offsetParent: function(e) { var t = e.dom(); return E.from(t.offsetParent).map(Hn.fromDom); }, prevSiblings: function(e) { return M.reverse(wr(e, Ir)); }, nextSibling: Lr, nextSiblings: function(e) { return wr(e, Lr); }, children: Mr, child: Fr, firstChild: function(e) { return Fr(e, 0); }, lastChild: function(e) { return Fr(e, e.dom().childNodes.length - 1); }, childNodesCount: function(e) { return e.dom().childNodes.length; }, hasChildNodes: function(e) { return e.dom().hasChildNodes(); }, leaf: function(e, t) { var n = Mr(e); return n.length > 0 && t < n.length ? zr(n[t], 0) : zr(e, t); } }, Vr = Un.detect().browser, Hr = function(e) { return M.find(e, Zn.isElement); }, qr = function(e, t, n) { var r, o, i, a = 0, s = 0, u = e.ownerDocument; if (((n = n || e), t)) { if ( n === e && t.getBoundingClientRect && "static" === Cr(Hn.fromDom(e), "position") ) return { x: (a = (o = t.getBoundingClientRect()).left + (u.documentElement.scrollLeft || e.scrollLeft) - u.documentElement.clientLeft), y: (s = o.top + (u.documentElement.scrollTop || e.scrollTop) - u.documentElement.clientTop) }; for (r = t; r && r !== n && r.nodeType; ) (a += r.offsetLeft || 0), (s += r.offsetTop || 0), (r = r.offsetParent); for (r = t.parentNode; r && r !== n && r.nodeType; ) (a -= r.scrollLeft || 0), (s -= r.scrollTop || 0), (r = r.parentNode); s += ((i = Hn.fromDom(t)), Vr.isFirefox() && "table" === Zn.name(i) ? Hr(Ur.children(i)) .filter(function(e) { return "caption" === Zn.name(e); }) .bind(function(e) { return Hr(Ur.nextSiblings(e)).map(function(t) { var n = t.dom().offsetTop, r = e.dom().offsetTop, o = e.dom().offsetHeight; return n <= r ? -o : 0; }); }) .getOr(0) : 0); } return { x: a, y: s }; }, jr = function(e) { var t = E.none(), n = [], r = function(e) { o() ? a(e) : n.push(e); }, o = function() { return t.isSome(); }, i = function(e) { M.each(e, a); }, a = function(e) { t.each(function(t) { setTimeout(function() { e(t); }, 0); }); }; return ( e(function(e) { (t = E.some(e)), i(n), (n = []); }), { get: r, map: function(e) { return jr(function(t) { r(function(n) { t(e(n)); }); }); }, isReady: o } ); }, $r = { nu: jr, pure: function(e) { return jr(function(t) { t(e); }); } }, Wr = function(e) { return function() { var t = Array.prototype.slice.call(arguments), n = this; setTimeout(function() { e.apply(n, t); }, 0); }; }, Kr = function(e) { var t = function(t) { e(Wr(t)); }; return { map: function(e) { return Kr(function(n) { t(function(t) { var r = e(t); n(r); }); }); }, bind: function(e) { return Kr(function(n) { t(function(t) { e(t).get(n); }); }); }, anonBind: function(e) { return Kr(function(n) { t(function(t) { e.get(n); }); }); }, toLazy: function() { return $r.nu(t); }, get: t }; }, Xr = { nu: Kr, pure: function(e) { return Kr(function(t) { t(e); }); } }, Yr = function(e, t) { return t(function(t) { var n = [], r = 0; 0 === e.length ? t([]) : M.each(e, function(o, i) { var a; o.get( ((a = i), function(o) { (n[a] = o), ++r >= e.length && t(n); }) ); }); }); }, Gr = function(e) { return Yr(e, Xr.nu); }, Jr = Gr, Qr = function(e) { return { is: function(t) { return e === t; }, isValue: y.constant(!0), isError: y.constant(!1), getOr: y.constant(e), getOrThunk: y.constant(e), getOrDie: y.constant(e), or: function(t) { return Qr(e); }, orThunk: function(t) { return Qr(e); }, fold: function(t, n) { return n(e); }, map: function(t) { return Qr(t(e)); }, each: function(t) { t(e); }, bind: function(t) { return t(e); }, exists: function(t) { return t(e); }, forall: function(t) { return t(e); }, toOption: function() { return E.some(e); } }; }, Zr = function(e) { return { is: y.constant(!1), isValue: y.constant(!1), isError: y.constant(!0), getOr: y.identity, getOrThunk: function(e) { return e(); }, getOrDie: function() { return y.die(e)(); }, or: function(e) { return e; }, orThunk: function(e) { return e(); }, fold: function(t, n) { return t(e); }, map: function(t) { return Zr(e); }, each: y.noop, bind: function(t) { return Zr(e); }, exists: y.constant(!1), forall: y.constant(!0), toOption: E.none }; }, eo = { value: Qr, error: Zr }, to = function(e, t) { var n = e, r = function(e, n, r, o) { var i, a; if (e) { if (!o && e[n]) return e[n]; if (e !== t) { if ((i = e[r])) return i; for (a = e.parentNode; a && a !== t; a = a.parentNode) if ((i = a[r])) return i; } } }; (this.current = function() { return n; }), (this.next = function(e) { return (n = r(n, "firstChild", "nextSibling", e)); }), (this.prev = function(e) { return (n = r(n, "lastChild", "previousSibling", e)); }), (this.prev2 = function(e) { return (n = (function(e, n, r, o) { var i, a, s; if (e) { if (((i = e[r]), t && i === t)) return; if (i) { if (!o) for (s = i[n]; s; s = s[n]) if (!s[n]) return s; return i; } if ((a = e.parentNode) && a !== t) return a; } })(n, "lastChild", "previousSibling", e)); }); }, no = function(e) { var t; return function(n) { return (t = t || M.mapToObject(e, y.constant(!0))).hasOwnProperty( Zn.name(n) ); }; }, ro = no(["h1", "h2", "h3", "h4", "h5", "h6"]), oo = no([ "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" ]), io = { isBlock: oo, isInline: function(e) { return Zn.isElement(e) && !oo(e); }, isHeading: ro, isTextBlock: no([ "h1", "h2", "h3", "h4", "h5", "h6", "p", "div", "address", "pre", "form", "blockquote", "center", "dir", "fieldset", "header", "footer", "article", "section", "hgroup", "aside", "nav", "figure" ]), isList: no(["ul", "ol", "dl"]), isListItem: no(["li", "dd", "dt"]), isVoid: no([ "area", "base", "basefont", "br", "col", "frame", "hr", "img", "input", "isindex", "link", "meta", "param", "embed", "source", "wbr", "track" ]), isTableSection: no(["thead", "tbody", "tfoot"]), isTableCell: no(["td", "th"]), isBr: function(e) { return Zn.isElement(e) && "br" === Zn.name(e); } }, ao = function(e) { return function(t) { return !!t && t.nodeType === e; }; }, so = ao(1), uo = function(e) { var t = e.toLowerCase().split(" "); return function(e) { var n, r; if (e && e.nodeType) for (r = e.nodeName.toLowerCase(), n = 0; n < t.length; n++) if (r === t[n]) return !0; return !1; }; }, co = function(e) { return function(t) { if (so(t)) { if (t.contentEditable === e) return !0; if (t.getAttribute("data-mce-contenteditable") === e) return !0; } return !1; }; }, lo = ao(3), fo = ao(8), mo = ao(9), po = uo("br"), go = co("true"), ho = co("false"), vo = { isText: lo, isElement: so, isComment: fo, isDocument: mo, isBr: po, isContentEditableTrue: go, isContentEditableFalse: ho, matchNodeNames: uo, hasPropValue: function(e, t) { return function(n) { return so(n) && n[e] === t; }; }, hasAttribute: function(e, t) { return function(t) { return so(t) && t.hasAttribute(e); }; }, hasAttributeValue: function(e, t) { return function(n) { return so(n) && n.getAttribute(e) === t; }; }, matchStyleValues: function(e, t) { var n = t.toLowerCase().split(" "); return function(t) { var r; if (so(t)) for (r = 0; r < n.length; r++) if ( t.ownerDocument.defaultView .getComputedStyle(t, null) .getPropertyValue(e) === n[r] ) return !0; return !1; }; }, isBogus: function(e) { return so(e) && e.hasAttribute("data-mce-bogus"); } }, yo = function(e) { return ( e && "SPAN" === e.tagName && "bookmark" === e.getAttribute("data-mce-type") ); }, bo = function(e, t) { var n, r = t.childNodes; if (!vo.isElement(t) || !yo(t)) { for (n = r.length - 1; n >= 0; n--) bo(e, r[n]); if (!1 === vo.isDocument(t)) { if (vo.isText(t) && t.nodeValue.length > 0) { var o = Ot.trim(t.nodeValue).length; if (e.isBlock(t.parentNode) || o > 0) return; if ( 0 === o && ((a = (i = t).previousSibling && "SPAN" === i.previousSibling.nodeName), (s = i.nextSibling && "SPAN" === i.nextSibling.nodeName), a && s) ) return; } else if ( vo.isElement(t) && (1 === (r = t.childNodes).length && yo(r[0]) && t.parentNode.insertBefore(r[0], t), r.length || io.isVoid(Hn.fromDom(t))) ) return; e.remove(t); } var i, a, s; return t; } }, Co = { trimNode: bo }, xo = Ot.makeMap, wo = /[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, No = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, Eo = /[<>&\"\']/g, So = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi, ko = { 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" }; (fn = { '"': """, "'": "'", "<": "<", ">": ">", "&": "&", "`": "`" }), (dn = { "<": "<", ">": ">", "&": "&", """: '"', "'": "'" }); var To = 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))), fn[r] || ((o = "&" + e[n + 1] + ";"), (i[r] = o), (i[o] = r)); return i; } }; ln = To( "50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro", 32 ); var Ao = { encodeRaw: function(e, t) { return e.replace(t ? wo : No, function(e) { return fn[e] || e; }); }, encodeAllRaw: function(e) { return ("" + e).replace(Eo, function(e) { return fn[e] || e; }); }, encodeNumeric: function(e, t) { return e.replace(t ? wo : No, function(e) { return e.length > 1 ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : fn[e] || "&#" + e.charCodeAt(0) + ";"; }); }, encodeNamed: function(e, t, n) { return ( (n = n || ln), e.replace(t ? wo : No, function(e) { return fn[e] || n[e] || e; }) ); }, getEncodeFunc: function(e, t) { return ( (t = To(t) || ln), (e = xo(e.replace(/\+/g, ","))).named && e.numeric ? function(e, n) { return e.replace(n ? wo : No, function(e) { return fn[e] !== undefined ? fn[e] : t[e] !== undefined ? t[e] : e.length > 1 ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : "&#" + e.charCodeAt(0) + ";"; }); } : e.named ? t ? function(e, n) { return Ao.encodeNamed(e, n, t); } : Ao.encodeNamed : e.numeric ? Ao.encodeNumeric : Ao.encodeRaw ); }, decode: function(e) { return e.replace(So, function(e, t) { return t ? (t = "x" === t.charAt(0).toLowerCase() ? parseInt(t.substr(1), 16) : parseInt(t, 10)) > 65535 ? ((t -= 65536), String.fromCharCode(55296 + (t >> 10), 56320 + (1023 & t))) : ko[t] || String.fromCharCode(t) : dn[e] || ln[e] || ((n = e), ((r = Hn.fromTag("div").dom()).innerHTML = n), r.textContent || r.innerText || n); var n, r; }); } }, _o = {}, Bo = {}, Ro = Ot.makeMap, Do = Ot.each, Oo = Ot.extend, Po = Ot.explode, Io = Ot.inArray, Lo = function(e, t) { return (e = Ot.trim(e)) ? e.split(t || " ") : []; }, Mo = function(e, t) { var n; return ( e && ((n = {}), "string" == typeof e && (e = { "*": e }), Do(e, function(e, r) { n[r] = n[r.toUpperCase()] = "map" === t ? Ro(e, /[, ]/) : Po(e, /[, ]/); })), n ); }, Fo = function(e) { var t, n, r, o, i, a, s, u, c, l, f, d, m, p, g, h, v, y, b, C, x, w, N, E = {}, S = {}, k = {}, T = [], A = {}, _ = {}, B = function(t, n, r) { var o = e[t]; return ( o ? (o = Ro(o, /[, ]/, Ro(o.toUpperCase(), /[, ]/))) : (o = _o[t]) || ((o = Ro(n, " ", Ro(n.toUpperCase(), " "))), (o = Oo(o, r)), (_o[t] = o)), o ); }; (p = (e = e || {}).schema), (x = {}), (w = function(e, t, n) { var r, o, i, a = function(e, t) { var n, r, o = {}; for (n = 0, r = e.length; n < r; n++) o[e[n]] = t || {}; return o; }; for ( n = n || [], t = t || "", "string" == typeof n && (n = Lo(n)), r = (e = Lo(e)).length; r--; ) (i = { attributes: a((o = Lo([g, t].join(" ")))), attributesOrder: o, children: a(n, Bo) }), (x[e[r]] = i); }), (N = function(e, t) { var n, r, o, i; for (n = (e = Lo(e)).length, t = Lo(t); n--; ) for (r = x[e[n]], o = 0, i = t.length; o < i; o++) (r.attributes[t[o]] = {}), r.attributesOrder.push(t[o]); }), (r = _o[p] ? _o[p] : ((g = "id accesskey class dir lang style tabindex title role"), (h = "address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"), (v = "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" !== p && ((g += " contenteditable contextmenu draggable dropzone hidden spellcheck translate"), (h += " article aside details dialog figure header footer hgroup section nav"), (v += " audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen")), "html5-strict" !== p && ((g += " xml:lang"), (v = [v, (C = "acronym applet basefont big font strike tt")].join( " " )), Do(Lo(C), function(e) { w(e, "", v); }), (h = [h, (b = "center dir isindex noframes")].join(" ")), (y = [h, v].join(" ")), Do(Lo(b), function(e) { w(e, "", y); })), (y = y || [h, v].join(" ")), w("html", "manifest", "head body"), w("head", "", "base command link meta noscript script style title"), w("title hr noscript br"), w("base", "href target"), w("link", "href rel media hreflang type sizes hreflang"), w("meta", "name http-equiv content charset"), w("style", "media type scoped"), w("script", "src async defer type charset"), w( "body", "onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload", y ), w("address dt dd div caption", "", y), w( "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", "", v ), w("blockquote", "cite", y), w("ol", "reversed start type", "li"), w("ul", "", "li"), w("li", "value", y), w("dl", "", "dt dd"), w("a", "href target rel media hreflang type", v), w("q", "cite", v), w("ins del", "cite datetime", y), w("img", "src sizes srcset alt usemap ismap width height"), w("iframe", "src name width height", y), w("embed", "src type width height"), w( "object", "data type typemustmatch name usemap form width height", [y, "param"].join(" ") ), w("param", "name value"), w("map", "name", [y, "area"].join(" ")), w("area", "alt coords shape href target rel media hreflang type"), w( "table", "border", "caption colgroup thead tfoot tbody tr" + ("html4" === p ? " col" : "") ), w("colgroup", "span", "col"), w("col", "span"), w("tbody thead tfoot", "", "tr"), w("tr", "", "td th"), w("td", "colspan rowspan headers", y), w("th", "colspan rowspan headers scope abbr", y), w( "form", "accept-charset action autocomplete enctype method name novalidate target", y ), w("fieldset", "disabled form name", [y, "legend"].join(" ")), w("label", "form for", v), w( "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" ), w( "button", "disabled form formaction formenctype formmethod formnovalidate formtarget name type value", "html4" === p ? y : v ), w( "select", "disabled form multiple name required size", "option optgroup" ), w("optgroup", "disabled label", "option"), w("option", "disabled label selected value"), w( "textarea", "cols dirname disabled form maxlength name readonly required rows wrap" ), w("menu", "type label", [y, "li"].join(" ")), w("noscript", "", y), "html4" !== p && (w("wbr"), w("ruby", "", [v, "rt rp"].join(" ")), w("figcaption", "", y), w("mark rt rp summary bdi", "", v), w("canvas", "width height", y), w( "video", "src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered", [y, "track source"].join(" ") ), w( "audio", "src crossorigin preload autoplay mediagroup loop muted controls buffered volume", [y, "track source"].join(" ") ), w("picture", "", "img source"), w("source", "src srcset type media sizes"), w("track", "kind src srclang label default"), w("datalist", "", [v, "option"].join(" ")), w("article section nav aside header footer", "", y), w("hgroup", "", "h1 h2 h3 h4 h5 h6"), w("figure", "", [y, "figcaption"].join(" ")), w("time", "datetime", v), w("dialog", "open", y), w( "command", "type label icon disabled checked radiogroup command" ), w("output", "for form name", v), w("progress", "value max", v), w("meter", "value min max low high optimum", v), w("details", "open", [y, "summary"].join(" ")), w("keygen", "autofocus challenge disabled form keytype name")), "html5-strict" !== p && (N("script", "language xml:space"), N("style", "xml:space"), N( "object", "declare classid code codebase codetype archive standby align border hspace vspace" ), N("embed", "align name hspace vspace"), N("param", "valuetype type"), N("a", "charset name rev shape coords"), N("br", "clear"), N( "applet", "codebase archive code object alt name width height align hspace vspace" ), N("img", "name longdesc align border hspace vspace"), N( "iframe", "longdesc frameborder marginwidth marginheight scrolling align" ), N("font basefont", "size color face"), N("input", "usemap align"), N("select", "onchange"), N("textarea"), N("h1 h2 h3 h4 h5 h6 div p legend caption", "align"), N("ul", "type compact"), N("li", "type"), N("ol dl menu dir", "compact"), N("pre", "width xml:space"), N("hr", "align noshade size width"), N("isindex", "prompt"), N( "table", "summary width frame rules cellspacing cellpadding align bgcolor" ), N("col", "width align char charoff valign"), N("colgroup", "width align char charoff valign"), N("thead", "align char charoff valign"), N("tr", "align char charoff valign bgcolor"), N( "th", "axis align char charoff valign nowrap bgcolor width height" ), N("form", "accept"), N( "td", "abbr axis scope align char charoff valign nowrap bgcolor width height" ), N("tfoot", "align char charoff valign"), N("tbody", "align char charoff valign"), N("area", "nohref"), N("body", "background bgcolor text link vlink alink")), "html4" !== p && (N("input button select textarea", "autofocus"), N("input textarea", "placeholder"), N("a", "download"), N("link script img", "crossorigin"), N("iframe", "sandbox seamless allowfullscreen")), Do(Lo("a form meter progress dfn"), function(e) { x[e] && delete x[e].children[e]; }), delete x.caption.children.table, delete x.script, (_o[p] = x), x)), !1 === e.verify_html && (e.valid_elements = "*[*]"), (t = Mo(e.valid_styles)), (n = Mo(e.invalid_styles, "map")), (u = Mo(e.valid_classes, "map")), (o = B( "whitespace_elements", "pre script noscript style textarea video audio iframe object code" )), (i = B( "self_closing_elements", "colgroup dd dt li option p td tfoot th thead tr" )), (a = B( "short_ended_elements", "area base basefont br col frame hr img input isindex link meta param embed source wbr track" )), (s = B( "boolean_attributes", "checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls" )), (l = B( "non_empty_elements", "td th iframe video audio object script pre code", a )), (f = B("move_caret_before_on_enter_elements", "table", l)), (d = B( "text_block_elements", "h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure" )), (c = B( "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", d )), (m = B( "text_inline_elements", "span strong b em i font strike u var cite dfn code mark q sup sub samp" )), Do( ( e.special || "script noscript noframes noembed title style textarea xmp" ).split(" "), function(e) { _[e] = new RegExp("]*>", "gi"); } ); var R = function(e) { return new RegExp("^" + e.replace(/([?+*])/g, ".$1") + "$"); }, D = function(e) { var t, n, r, o, i, a, s, u, c, l, f, d, m, p, g, h, v, y, b, C = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/, x = /^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/, w = /[*?+]/; if (e) for ( e = Lo(e, ","), S["@"] && ((h = S["@"].attributes), (v = S["@"].attributesOrder)), t = 0, n = e.length; t < n; t++ ) if ((i = C.exec(e[t]))) { if ( ((p = i[1]), (c = i[2]), (g = i[3]), (u = i[5]), (a = { attributes: (d = {}), attributesOrder: (m = []) }), "#" === p && (a.paddEmpty = !0), "-" === p && (a.removeEmpty = !0), "!" === i[4] && (a.removeEmptyAttrs = !0), h) ) { for (y in h) d[y] = h[y]; m.push.apply(m, v); } if (u) for (r = 0, o = (u = Lo(u, "|")).length; r < o; r++) if ((i = x.exec(u[r]))) { if ( ((s = {}), (f = i[1]), (l = i[2].replace(/[\\:]:/g, ":")), (p = i[3]), (b = i[4]), "!" === f && ((a.attributesRequired = a.attributesRequired || []), a.attributesRequired.push(l), (s.required = !0)), "-" === f) ) { delete d[l], m.splice(Io(m, l), 1); continue; } p && ("=" === p && ((a.attributesDefault = a.attributesDefault || []), a.attributesDefault.push({ name: l, value: b }), (s.defaultValue = b)), ":" === p && ((a.attributesForced = a.attributesForced || []), a.attributesForced.push({ name: l, value: b }), (s.forcedValue = b)), "<" === p && (s.validValues = Ro(b, "?"))), w.test(l) ? ((a.attributePatterns = a.attributePatterns || []), (s.pattern = R(l)), a.attributePatterns.push(s)) : (d[l] || m.push(l), (d[l] = s)); } h || "@" !== c || ((h = d), (v = m)), g && ((a.outputName = c), (S[g] = a)), w.test(c) ? ((a.pattern = R(c)), T.push(a)) : (S[c] = a); } }, O = function(e) { (S = {}), (T = []), D(e), Do(r, function(e, t) { k[t] = e.children; }); }, P = function(e) { var t = /^(~)?(.+)$/; e && ((_o.text_block_elements = _o.block_elements = null), Do(Lo(e, ","), function(e) { var n = t.exec(e), r = "~" === n[1], o = r ? "span" : "div", i = n[2]; if ( ((k[i] = k[o]), (A[i] = o), r || ((c[i.toUpperCase()] = {}), (c[i] = {})), !S[i]) ) { var a = S[o]; delete (a = Oo({}, a)).removeEmptyAttrs, delete a.removeEmpty, (S[i] = a); } Do(k, function(e, t) { e[o] && ((k[t] = e = Oo({}, k[t])), (e[i] = e[o])); }); })); }, I = function(t) { var n = /^([+\-]?)(\w+)\[([^\]]+)\]$/; (_o[e.schema] = null), t && Do(Lo(t, ","), function(e) { var t, r, o = n.exec(e); o && ((r = o[1]), (t = r ? k[o[2]] : (k[o[2]] = { "#comment": {} })), (t = k[o[2]]), Do(Lo(o[3], "|"), function(e) { "-" === r ? delete t[e] : (t[e] = {}); })); }); }, L = function(e) { var t, n = S[e]; if (n) return n; for (t = T.length; t--; ) if ((n = T[t]).pattern.test(e)) return n; }; return ( e.valid_elements ? O(e.valid_elements) : (Do(r, function(e, t) { (S[t] = { attributes: e.attributes, attributesOrder: e.attributesOrder }), (k[t] = e.children); }), "html5" !== e.schema && Do(Lo("strong/b em/i"), function(e) { (e = Lo(e, "/")), (S[e[1]].outputName = e[0]); }), Do( Lo( "ol ul sub sup blockquote span font a table tbody tr strong em b i" ), function(e) { S[e] && (S[e].removeEmpty = !0); } ), Do( Lo("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"), function(e) { S[e].paddEmpty = !0; } ), Do(Lo("span"), function(e) { S[e].removeEmptyAttrs = !0; })), P(e.custom_elements), I(e.valid_children), D(e.extended_valid_elements), I("+ol[ul|ol],+ul[ul|ol]"), Do( { 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 = Lo(e)); } ), e.invalid_elements && Do(Po(e.invalid_elements), function(e) { S[e] && delete S[e]; }), L("span") || D("span[!data-mce-type|*]"), (E.children = k), (E.getValidStyles = function() { return t; }), (E.getInvalidStyles = function() { return n; }), (E.getValidClasses = function() { return u; }), (E.getBoolAttrs = function() { return s; }), (E.getBlockElements = function() { return c; }), (E.getTextBlockElements = function() { return d; }), (E.getTextInlineElements = function() { return m; }), (E.getShortEndedElements = function() { return a; }), (E.getSelfClosingElements = function() { return i; }), (E.getNonEmptyElements = function() { return l; }), (E.getMoveCaretBeforeOnEnterElements = function() { return f; }), (E.getWhiteSpaceElements = function() { return o; }), (E.getSpecialElements = function() { return _; }), (E.isValidChild = function(e, t) { var n = k[e.toLowerCase()]; return !(!n || !n[t.toLowerCase()]); }), (E.isValid = function(e, t) { var n, r, o = L(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; }), (E.getElementRule = L), (E.getCustomElements = function() { return A; }), (E.addValidElements = D), (E.setValidElements = O), (E.addCustomElements = P), (E.addValidChildren = I), (E.elements = S), E ); }, zo = function(e, t) { var n, r, o, i, a = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi, s = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi, u = /\s*([^:]+):\s*([^;]+);?/g, c = /\s+$/, l = {}, f = "\ufeff"; for ( e = e || {}, t && ((o = t.getValidStyles()), (i = t.getInvalidStyles())), r = ("\\\" \\' \\; \\: ; : " + f).split(" "), n = 0; n < r.length; n++ ) (l[r[n]] = f + n), (l[f + n] = r[n]); var d = function(e, t, n, r) { var o = function(e) { return (e = parseInt(e, 10).toString(16)).length > 1 ? e : "0" + e; }; return "#" + o(t) + o(n) + o(r); }; return { toHex: function(e) { return e.replace(a, d); }, parse: function(t) { var r, o, i, m, p, g, h, v, y = {}, b = e.url_converter, C = e.url_converter_scope || this, x = function(e, t, r) { var o, i, a, s; if ( (o = y[e + "-top" + t]) && (i = y[e + "-right" + t]) && (a = y[e + "-bottom" + t]) && (s = y[e + "-left" + t]) ) { var u = [o, i, a, s]; for (n = u.length - 1; n-- && u[n] === u[n + 1]; ); (n > -1 && r) || ((y[e + t] = -1 === n ? u[0] : u.join(" ")), delete y[e + "-top" + t], delete y[e + "-right" + t], delete y[e + "-bottom" + t], delete y[e + "-left" + t]); } }, w = function(e) { var t, n = y[e]; if (n) { for (t = (n = n.split(" ")).length; t--; ) if (n[t] !== n[0]) return !1; return (y[e] = n[0]), !0; } }, N = function(e) { return (m = !0), l[e]; }, E = function(e, t) { return ( m && (e = e.replace(/\uFEFF[0-9]/g, function(e) { return l[e]; })), t || (e = e.replace(/\\([\'\";:])/g, "$1")), e ); }, S = function(e) { return String.fromCharCode(parseInt(e.slice(1), 16)); }, k = function(e) { return e.replace(/\\[0-9a-f]+/gi, S); }, T = function(t, n, r, o, i, a) { if ((i = i || a)) return "'" + (i = E(i)).replace(/\'/g, "\\'") + "'"; if (((n = E(n || r || o)), !e.allow_script_urls)) { var s = n.replace(/[\s\r\n]+/g, ""); if (/(java|vb)script:/i.test(s)) return ""; if (!e.allow_svg_data_urls && /^data:image\/svg/i.test(s)) return ""; } return ( b && (n = b.call(C, n, "style")), "url('" + n.replace(/\'/g, "\\'") + "')" ); }; if (t) { for ( t = (t = t.replace(/[\u0000-\u001F]/g, "")) .replace(/\\[\"\';:\uFEFF]/g, N) .replace(/\"[^\"]+\"|\'[^\']+\'/g, function(e) { return e.replace(/[;:]/g, N); }); (r = u.exec(t)); ) if ( ((u.lastIndex = r.index + r[0].length), (o = r[1].replace(c, "").toLowerCase()), (i = r[2].replace(c, "")), o && i) ) { if ( ((o = k(o)), (i = k(i)), -1 !== o.indexOf(f) || -1 !== o.indexOf('"')) ) continue; if ( !e.allow_script_urls && ("behavior" === o || /expression\s*\(|\/\*|\*\//.test(i)) ) continue; "font-weight" === o && "700" === i ? (i = "bold") : ("color" !== o && "background-color" !== o) || (i = i.toLowerCase()), (i = (i = i.replace(a, d)).replace(s, T)), (y[o] = m ? E(i, !0) : i); } x("border", "", !0), x("border", "-width"), x("border", "-color"), x("border", "-style"), x("padding", ""), x("margin", ""), (p = "border"), (h = "border-style"), (v = "border-color"), w((g = "border-width")) && w(h) && w(v) && ((y[p] = y[g] + " " + y[h] + " " + y[v]), delete y[g], delete y[h], delete y[v]), "medium none" === y.border && delete y.border, "none" === y["border-image"] && delete y["border-image"]; } return y; }, serialize: function(e, t) { var n, r, a, s, u, c = "", l = function(t) { var n, r, i, a; if ((n = o[t])) for (r = 0, i = n.length; r < i; r++) (t = n[r]), (a = e[t]) && (c += (c.length > 0 ? " " : "") + t + ": " + a + ";"); }; if (t && o) l("*"), l(t); else for (n in e) !(r = e[n]) || (i && ((a = n), (s = t), (u = void 0), ((u = i["*"]) && u[a]) || ((u = i[s]) && u[a]))) || (c += (c.length > 0 ? " " : "") + n + ": " + r + ";"); return c; } }; }, Uo = Ot.each, Vo = Ot.is, Ho = Ot.grep, qo = me.ie, jo = /^([a-z0-9],?)+$/i, $o = /^[ \t\r\n]*$/, Wo = function(e, t) { var n = t.attr("style"); (n = e.serializeStyle(e.parseStyle(n), t[0].nodeName)) || (n = null), t.attr("data-mce-style", n); }, Ko = 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; }, Xo = function(e, t) { var n, r, o, i, a, s, u = this; (u.doc = e), (u.win = window), (u.files = {}), (u.counter = 0), (u.stdMode = !qo || e.documentMode >= 8), (u.boxModel = !qo || "CSS1Compat" === e.compatMode || u.stdMode), (u.styleSheetLoader = (function(e, t) { var n, r = 0, o = {}; n = (t = t || {}).maxLoadTime || 5e3; var i = function(t) { e.getElementsByTagName("head")[0].appendChild(t); }, a = function(t, a, s) { var u, c, l, f, d = function() { for (var e = f.passed, t = e.length; t--; ) e[t](); (f.status = 2), (f.passed = []), (f.failed = []); }, m = function() { for (var e = f.failed, t = e.length; t--; ) e[t](); (f.status = 3), (f.passed = []), (f.failed = []); }, p = function(e, t) { e() || (new Date().getTime() - l < n ? ye.setTimeout(t) : m()); }, g = function() { p(function() { for (var t, n, r = e.styleSheets, o = r.length; o--; ) if ( (n = (t = r[o]).ownerNode ? t.ownerNode : t.owningElement) && n.id === u.id ) return d(), !0; }, g); }, h = function() { p(function() { try { var e = c.sheet.cssRules; return d(), !!e; } catch (t) {} }, h); }; if ( ((t = Ot._addCacheSuffix(t)), o[t] ? (f = o[t]) : ((f = { passed: [], failed: [] }), (o[t] = f)), a && f.passed.push(a), s && f.failed.push(s), 1 !== f.status) ) if (2 !== f.status) if (3 !== f.status) { if ( ((f.status = 1), ((u = e.createElement("link")).rel = "stylesheet"), (u.type = "text/css"), (u.id = "u" + r++), (u.async = !1), (u.defer = !1), (l = new Date().getTime()), "onload" in u && !( (v = navigator.userAgent.match(/WebKit\/(\d*)/)) && parseInt(v[1], 10) < 536 )) ) (u.onload = g), (u.onerror = m); else { if (navigator.userAgent.indexOf("Firefox") > 0) return ( ((c = e.createElement("style")).textContent = '@import "' + t + '"'), h(), void i(c) ); g(); } var v; i(u), (u.href = t); } else m(); else d(); }, s = function(e) { return Xr.nu(function(t) { a( e, y.compose( t, y.constant(eo.value(e)) ), y.compose( t, y.constant(eo.error(e)) ) ); }); }, u = function(e) { return e.fold(y.identity, y.identity); }; return { load: a, loadAll: function(e, t, n) { Jr(M.map(e, s)).get(function(e) { var r = M.partition(e, function(e) { return e.isValue(); }); r.fail.length > 0 ? n(r.fail.map(u)) : t(r.pass.map(u)); }); } }; })(e)), (u.boundEvents = []), (u.settings = t = t || {}), (u.schema = t.schema ? t.schema : Fo({})), (u.styles = zo( { url_converter: t.url_converter, url_converter_scope: t.url_converter_scope }, t.schema )), u.fixDoc(e), (u.events = t.ownEvents ? new Te(t.proxy) : Te.Event), (u.attrHooks = ((r = u), (a = {}), (s = (o = t).keep_values), (i = { set: function(e, t, n) { o.url_converter && (t = o.url_converter.call( o.url_converter_scope || r, 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); } }), (a = { style: { set: function(e, t) { null === t || "object" != typeof t ? (s && e.attr("data-mce-style", t), e.attr("style", t)) : e.css(t); }, get: function(e) { var t = e.attr("data-mce-style") || e.attr("style"); return (t = r.serializeStyle(r.parseStyle(t), e[0].nodeName)); } } }), s && (a.href = a.src = i), a)), (n = u.schema.getBlockElements()), (u.$ = Qt.overrideDefaults(function() { return { context: e, element: u.getRoot() }; })), (u.isBlock = function(e) { if (!e) return !1; var t = e.nodeType; return t ? !(1 !== t || !n[e.nodeName]) : !!n[e]; }); }; (Xo.prototype = { $$: function(e) { return "string" == typeof e && (e = this.get(e)), this.$(e); }, root: null, fixDoc: function(e) {}, clone: function(e, t) { var n, r, o = this; return !qo || 1 !== e.nodeType || t ? e.cloneNode(t) : ((r = o.doc), t ? n.firstChild : ((n = r.createElement(e.nodeName)), Uo(o.getAttribs(e), function(t) { o.setAttrib(n, t.nodeName, o.getAttrib(e, t.nodeName)); }), n)); }, getRoot: function() { return this.settings.root_element || this.doc.body; }, getViewPort: function(e) { var t, n; return ( (t = (e = e || this.win).document), (n = this.boxModel ? t.documentElement : t.body), { x: e.pageXOffset || n.scrollLeft, y: e.pageYOffset || n.scrollTop, w: e.innerWidth || n.clientWidth, h: e.innerHeight || n.clientHeight } ); }, getRect: function(e) { var t, n; return ( (e = this.get(e)), (t = this.getPos(e)), (n = this.getSize(e)), { x: t.x, y: t.y, w: n.w, h: n.h } ); }, getSize: function(e) { var t, n; return ( (e = this.get(e)), (t = this.getStyle(e, "width")), (n = this.getStyle(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 } ); }, getParent: function(e, t, n) { return this.getParents(e, t, n, !1); }, getParents: function(e, t, n, r) { var o, i = this, a = []; for ( e = i.get(e), r = r === undefined, n = n || ("BODY" !== i.getRoot().nodeName ? i.getRoot().parentNode : null), Vo(t, "string") && ((o = t), (t = "*" === t ? function(e) { return 1 === e.nodeType; } : function(e) { return i.is(e, o); })); e && e !== n && e.nodeType && 9 !== e.nodeType; ) { if (!t || t(e)) { if (!r) return e; a.push(e); } e = e.parentNode; } return r ? a : null; }, get: function(e) { var t; return e && this.doc && "string" == typeof e && ((t = e), (e = this.doc.getElementById(e)) && e.id !== t) ? this.doc.getElementsByName(t)[1] : e; }, getNext: function(e, t) { return this._findSib(e, t, "nextSibling"); }, getPrev: function(e, t) { return this._findSib(e, t, "previousSibling"); }, select: function(e, t) { return lt(e, this.get(t) || this.settings.root_element || this.doc, []); }, is: function(e, t) { var n; if (!e) return !1; if (e.length === undefined) { if ("*" === t) return 1 === e.nodeType; if (jo.test(t)) { for ( t = t.toLowerCase().split(/,/), e = e.nodeName.toLowerCase(), n = t.length - 1; n >= 0; n-- ) if (t[n] === e) return !0; return !1; } } if (e.nodeType && 1 !== e.nodeType) return !1; var r = e.nodeType ? [e] : e; return lt(t, r[0].ownerDocument || r[0], null, r).length > 0; }, add: function(e, t, n, r, o) { var i = this; return this.run(e, function(e) { var a; return ( (a = Vo(t, "string") ? i.doc.createElement(t) : t), i.setAttribs(a, n), r && (r.nodeType ? a.appendChild(r) : i.setHTML(a, r)), o ? a : e.appendChild(a) ); }); }, create: function(e, t, n) { return this.add(this.doc.createElement(e), e, t, n, 1); }, 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 + '="' + this.encode(t[r]) + '"'); return void 0 !== n ? o + ">" + n + "" : o + " />"; }, createFragment: function(e) { var t, n, r, o = this.doc; for ( r = o.createElement("div"), t = o.createDocumentFragment(), e && (r.innerHTML = e); (n = r.firstChild); ) t.appendChild(n); return t; }, remove: function(e, t) { return ( (e = this.$$(e)), t ? e .each(function() { for (var e; (e = this.firstChild); ) 3 === e.nodeType && 0 === e.data.length ? this.removeChild(e) : this.parentNode.insertBefore(e, this); }) .remove() : e.remove(), e.length > 1 ? e.toArray() : e[0] ); }, setStyle: function(e, t, n) { (e = this.$$(e).css(t, n)), this.settings.update_styles && Wo(this, e); }, getStyle: function(e, t, n) { return ( (e = this.$$(e)), n ? e.css(t) : ("float" === (t = t.replace(/-(\D)/g, function(e, t) { return t.toUpperCase(); })) && (t = me.ie && me.ie < 12 ? "styleFloat" : "cssFloat"), e[0] && e[0].style ? e[0].style[t] : undefined) ); }, setStyles: function(e, t) { (e = this.$$(e).css(t)), this.settings.update_styles && Wo(this, e); }, removeAllAttribs: function(e) { return this.run(e, function(e) { var t, n = e.attributes; for (t = n.length - 1; t >= 0; t--) e.removeAttributeNode(n.item(t)); }); }, setAttrib: function(e, t, n) { var r, o, i = this.settings; "" === n && (n = null), (r = (e = this.$$(e)).attr(t)), e.length && ((o = this.attrHooks[t]) && o.set ? o.set(e, n, t) : e.attr(t, n), r !== n && i.onSetAttrib && i.onSetAttrib({ attrElm: e, attrName: t, attrValue: n })); }, setAttribs: function(e, t) { var n = this; n.$$(e).each(function(e, r) { Uo(t, function(e, t) { n.setAttrib(r, t, e); }); }); }, getAttrib: function(e, t, n) { var r, o; return ( (e = this.$$(e)).length && (o = (r = this.attrHooks[t]) && r.get ? r.get(e, t) : e.attr(t)), void 0 === o && (o = n || ""), o ); }, getPos: function(e, t) { return qr(this.doc.body, this.get(e), t); }, parseStyle: function(e) { return this.styles.parse(e); }, serializeStyle: function(e, t) { return this.styles.serialize(e, t); }, addStyle: function(e) { var t, n, r = this.doc; if (this !== Xo.DOM && r === document) { var o = Xo.DOM.addedStyles; if ((o = o || [])[e]) return; (o[e] = !0), (Xo.DOM.addedStyles = o); } (n = r.getElementById("mceDefaultStyles")) || (((n = r.createElement("style")).id = "mceDefaultStyles"), (n.type = "text/css"), (t = r.getElementsByTagName("head")[0]).firstChild ? t.insertBefore(n, t.firstChild) : t.appendChild(n)), n.styleSheet ? (n.styleSheet.cssText += e) : n.appendChild(r.createTextNode(e)); }, loadCSS: function(e) { var t, n = this, r = n.doc; n === Xo.DOM || r !== document ? (e || (e = ""), (t = r.getElementsByTagName("head")[0]), Uo(e.split(","), function(e) { var o; (e = Ot._addCacheSuffix(e)), n.files[e] || ((n.files[e] = !0), (o = n.create("link", { rel: "stylesheet", href: e })), qo && r.documentMode && r.recalc && (o.onload = function() { r.recalc && r.recalc(), (o.onload = null); }), t.appendChild(o)); })) : Xo.DOM.loadCSS(e); }, addClass: function(e, t) { this.$$(e).addClass(t); }, removeClass: function(e, t) { this.toggleClass(e, t, !1); }, hasClass: function(e, t) { return this.$$(e).hasClass(t); }, toggleClass: function(e, t, n) { this.$$(e) .toggleClass(t, n) .each(function() { "" === this.className && Qt(this).attr("class", null); }); }, show: function(e) { this.$$(e).show(); }, hide: function(e) { this.$$(e).hide(); }, isHidden: function(e) { return "none" === this.$$(e).css("display"); }, uniqueId: function(e) { return (e || "mce_") + this.counter++; }, setHTML: function(e, t) { (e = this.$$(e)), qo ? e.each(function(e, n) { if (!1 !== n.canHaveHTML) { for (; n.firstChild; ) n.removeChild(n.firstChild); try { (n.innerHTML = "
" + t), n.removeChild(n.firstChild); } catch (r) { Qt("
") .html("
" + t) .contents() .slice(1) .appendTo(n); } return t; } }) : e.html(t); }, getOuterHTML: function(e) { return 1 === (e = this.get(e)).nodeType && "outerHTML" in e ? e.outerHTML : Qt("
") .append(Qt(e).clone()) .html(); }, setOuterHTML: function(e, t) { var n = this; n.$$(e).each(function() { try { if ("outerHTML" in this) return void (this.outerHTML = t); } catch (e) {} n.remove(Qt(this).html(t), !0); }); }, decode: Ao.decode, encode: Ao.encodeAllRaw, insertAfter: function(e, t) { return ( (t = this.get(t)), this.run(e, function(e) { var n, r; return ( (n = t.parentNode), (r = t.nextSibling) ? n.insertBefore(e, r) : n.appendChild(e), e ); }) ); }, replace: function(e, t, n) { return this.run(t, function(t) { return ( Vo(t, "array") && (e = e.cloneNode(!0)), n && Uo(Ho(t.childNodes), function(t) { e.appendChild(t); }), t.parentNode.replaceChild(e, t) ); }); }, rename: function(e, t) { var n, r = this; return ( e.nodeName !== t.toUpperCase() && ((n = r.create(t)), Uo(r.getAttribs(e), function(t) { r.setAttrib(n, t.nodeName, r.getAttrib(e, t.nodeName)); }), r.replace(n, e, 1)), n || e ); }, 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 this.styles.toHex(Ot.trim(e)); }, run: function(e, t, n) { var r, o = this; return ( "string" == typeof e && (e = o.get(e)), !!e && ((n = n || this), e.nodeType || (!e.length && 0 !== e.length) ? t.call(n, e) : ((r = []), Uo(e, function(e, i) { e && ("string" == typeof e && (e = o.get(e)), r.push(t.call(n, e, i))); }), r)) ); }, getAttribs: function(e) { var t; return (e = this.get(e)) ? qo ? ((t = []), "OBJECT" === e.nodeName ? e.attributes : ("OPTION" === e.nodeName && this.getAttrib(e, "selected") && t.push({ specified: 1, nodeName: "selected" }), e .cloneNode(!1) .outerHTML.replace( /<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi, "" ) .replace(/[\w:\-]+/gi, function(e) { t.push({ specified: 1, nodeName: e }); }), t)) : e.attributes : []; }, isEmpty: function(e, t) { var n, r, o, i, a, s, u = 0; if ((e = e.firstChild)) { (a = new to(e, e.parentNode)), (t = t || (this.schema ? this.schema.getNonEmptyElements() : null)), (i = this.schema ? this.schema.getWhiteSpaceElements() : {}); do { if (1 === (o = e.nodeType)) { var c = e.getAttribute("data-mce-bogus"); if (c) { e = a.next("all" === c); continue; } if (((s = e.nodeName.toLowerCase()), t && t[s])) { if ("br" === s) { u++, (e = a.next()); continue; } return !1; } for (n = (r = this.getAttribs(e)).length; n--; ) if ("name" === (s = r[n].nodeName) || "data-mce-bookmark" === s) return !1; } if (8 === o) return !1; if (3 === o && !$o.test(e.nodeValue)) return !1; if ( 3 === o && e.parentNode && i[e.parentNode.nodeName] && $o.test(e.nodeValue) ) return !1; e = a.next(); } while (e); } return u <= 1; }, createRng: function() { return this.doc.createRange(); }, nodeIndex: Ko, split: function(e, t, n) { var r, o, i, a = this.createRng(); if (e && t) return ( a.setStart(e.parentNode, this.nodeIndex(e)), a.setEnd(t.parentNode, this.nodeIndex(t)), (r = a.extractContents()), (a = this.createRng()).setStart(t.parentNode, this.nodeIndex(t) + 1), a.setEnd(e.parentNode, this.nodeIndex(e) + 1), (o = a.extractContents()), (i = e.parentNode).insertBefore(Co.trimNode(this, r), e), n ? i.insertBefore(n, e) : i.insertBefore(t, e), i.insertBefore(Co.trimNode(this, o), e), this.remove(e), n || t ); }, bind: function(e, t, n, r) { if (Ot.isArray(e)) { for (var o = e.length; o--; ) e[o] = this.bind(e[o], t, n, r); return e; } return ( !this.settings.collect || (e !== this.doc && e !== this.win) || this.boundEvents.push([e, t, n, r]), this.events.bind(e, t, n, r || this) ); }, unbind: function(e, t, n) { var r; if (Ot.isArray(e)) { for (r = e.length; r--; ) e[r] = this.unbind(e[r], t, n); return e; } if (this.boundEvents && (e === this.doc || e === this.win)) for (r = this.boundEvents.length; r--; ) { var o = this.boundEvents[r]; e !== o[0] || (t && t !== o[1]) || (n && n !== o[2]) || this.events.unbind(o[0], o[1], o[2]); } return this.events.unbind(e, t, n); }, fire: function(e, t, n) { return this.events.fire(e, t, n); }, getContentEditable: function(e) { var t; return e && 1 === e.nodeType ? (t = e.getAttribute("data-mce-contenteditable")) && "inherit" !== t ? t : "inherit" !== e.contentEditable ? e.contentEditable : null : null; }, getContentEditableParent: function(e) { for ( var t = this.getRoot(), n = null; e && e !== t && null === (n = this.getContentEditable(e)); e = e.parentNode ); return n; }, destroy: function() { if (this.boundEvents) { for (var e = this.boundEvents.length; e--; ) { var t = this.boundEvents[e]; this.events.unbind(t[0], t[1], t[2]); } this.boundEvents = null; } lt.setDocument && lt.setDocument(), (this.win = this.doc = this.root = this.events = this.frag = null); }, 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 ); }, _findSib: function(e, t, n) { var r = this, o = t; if (e) for ( "string" == typeof o && (o = function(e) { return r.is(e, t); }), e = e[n]; e; e = e[n] ) if (o(e)) return e; return null; } }), (Xo.DOM = new Xo(document)), (Xo.nodeIndex = Ko); var Yo = Xo.DOM, Go = Ot.each, Jo = Ot.grep, Qo = function(e) { return "function" == typeof e; }, Zo = function() { var e = {}, t = [], n = {}, r = [], o = 0; (this.isDone = function(t) { return 2 === e[t]; }), (this.markDone = function(t) { e[t] = 2; }), (this.add = this.load = function(r, o, i, a) { e[r] === undefined && (t.push(r), (e[r] = 0)), o && (n[r] || (n[r] = []), n[r].push({ success: o, failure: a, scope: i || this })); }), (this.remove = function(t) { delete e[t], delete n[t]; }), (this.loadQueue = function(e, n, r) { this.loadScripts(t, e, n, r); }), (this.loadScripts = function(t, i, a, s) { var u, c = [], l = function(e, t) { Go(n[t], function(t) { Qo(t[e]) && t[e].call(t.scope); }), (n[t] = undefined); }; r.push({ success: i, failure: s, scope: a || this }), (u = function() { var n = Jo(t); if ( ((t.length = 0), Go(n, function(t) { var n, r, i, a, s, f, d; 2 !== e[t] ? 3 !== e[t] ? 1 !== e[t] && ((e[t] = 1), o++, (n = t), (r = function() { (e[t] = 2), o--, l("success", t), u(); }), (i = function() { (e[t] = 3), o--, c.push(t), l("failure", t), u(); }), (d = function() { f.remove(s), a && (a.onreadystatechange = a.onload = a = null), r(); }), (s = (f = Yo).uniqueId()), ((a = document.createElement("script")).id = s), (a.type = "text/javascript"), (a.src = Ot._addCacheSuffix(n)), "onreadystatechange" in a ? (a.onreadystatechange = function() { /loaded|complete/.test(a.readyState) && d(); }) : (a.onload = d), (a.onerror = function() { Qo(i) ? i() : "undefined" != typeof console && console.log && console.log("Failed to load script: " + n); }), ( document.getElementsByTagName("head")[0] || document.body ).appendChild(a)) : l("failure", t) : l("success", t); }), !o) ) { var i = r.slice(0); (r.length = 0), Go(i, function(e) { 0 === c.length ? Qo(e.success) && e.success.call(e.scope) : Qo(e.failure) && e.failure.call(e.scope, c); }); } })(); }); }; Zo.ScriptLoader = new Zo(); var ei = Ot.each, ti = function() { (this.items = []), (this.urls = {}), (this.lookup = {}), (this._listeners = []); }; (ti.prototype = { get: function(e) { return this.lookup[e] ? this.lookup[e].instance : undefined; }, dependencies: function(e) { var t; return this.lookup[e] && (t = this.lookup[e].dependencies), t || []; }, requireLangPack: function(e, t) { var n = ti.language; if (n && !1 !== ti.languageLoad) { if (t) if (-1 !== (t = "," + t + ",").indexOf("," + n.substr(0, 2) + ",")) n = n.substr(0, 2); else if (-1 === t.indexOf("," + n + ",")) return; Zo.ScriptLoader.add(this.urls[e] + "/langs/" + n + ".js"); } }, add: function(e, t, n) { this.items.push(t), (this.lookup[e] = { instance: t, dependencies: n }); var r = M.partition(this._listeners, function(t) { return t.name === e; }); return ( (this._listeners = r.fail), ei(r.pass, function(e) { e.callback(); }), t ); }, remove: function(e) { delete this.urls[e], delete this.lookup[e]; }, createUrl: function(e, t) { return "object" == typeof t ? t : { prefix: e.prefix, resource: t, suffix: e.suffix }; }, addComponents: function(e, t) { var n = this.urls[e]; ei(t, function(e) { Zo.ScriptLoader.add(n + "/" + e); }); }, load: function(e, t, n, r, o) { var i = this, a = t, s = function() { var o = i.dependencies(e); ei(o, function(e) { var n = i.createUrl(t, e); i.load(n.resource, n, undefined, undefined); }), n && (r ? n.call(r) : n.call(Zo)); }; i.urls[e] || ("object" == typeof t && (a = t.prefix + t.resource + t.suffix), 0 !== a.indexOf("/") && -1 === a.indexOf("://") && (a = ti.baseURL + "/" + a), (i.urls[e] = a.substring(0, a.lastIndexOf("/"))), i.lookup[e] ? s() : Zo.ScriptLoader.add(a, s, r, o)); }, waitFor: function(e, t) { this.lookup.hasOwnProperty(e) ? t() : this._listeners.push({ name: e, callback: t }); } }), (ti.PluginManager = new ti()), (ti.ThemeManager = new ti()); var ni = "\ufeff", ri = function(e) { return e === ni; }, oi = ni, ii = function(e) { return e.replace(new RegExp(ni, "g"), ""); }, ai = vo.isElement, si = vo.isText, ui = function(e) { return ( si(e) && (e = e.parentNode), ai(e) && e.hasAttribute("data-mce-caret") ); }, ci = function(e) { return si(e) && ri(e.data); }, li = function(e) { return ui(e) || ci(e); }, fi = function(e) { return si(e) && e.data[0] === oi; }, di = function(e) { return si(e) && e.data[e.data.length - 1] === oi; }, mi = { isCaretContainer: li, isCaretContainerBlock: ui, isCaretContainerInline: ci, showCaretContainerBlock: function(e) { return e && e.hasAttribute("data-mce-caret") ? ((t = e.getElementsByTagName("br")), (n = t[t.length - 1]), vo.isBogus(n) && n.parentNode.removeChild(n), e.removeAttribute("data-mce-caret"), e.removeAttribute("data-mce-bogus"), e.removeAttribute("style"), e.removeAttribute("_moz_abspos"), e) : null; var t, n; }, insertInline: function(e, t) { var n, r, o; if (((r = e.ownerDocument.createTextNode(oi)), (o = e.parentNode), t)) { if (((n = e.previousSibling), si(n))) { if (li(n)) return n; if (di(n)) return n.splitText(n.data.length - 1); } o.insertBefore(r, e); } else { if (((n = e.nextSibling), si(n))) { if (li(n)) return n; if (fi(n)) return n.splitText(1), n; } e.nextSibling ? o.insertBefore(r, e.nextSibling) : o.appendChild(r); } return r; }, prependInline: function(e) { if (vo.isText(e)) { var t = e.data; return t.length > 0 && t.charAt(0) !== oi && e.insertData(0, oi), e; } return null; }, appendInline: function(e) { if (vo.isText(e)) { var t = e.data; return ( t.length > 0 && t.charAt(t.length - 1) !== oi && e.insertData(t.length, oi), e ); } return null; }, isBeforeInline: function(e) { return ( e && vo.isText(e.container()) && e.container().data.charAt(e.offset()) === oi ); }, isAfterInline: function(e) { return ( e && vo.isText(e.container()) && e.container().data.charAt(e.offset() - 1) === oi ); }, insertBlock: function(e, t, n) { var r, o, i; return ( (r = t.ownerDocument.createElement(e)).setAttribute( "data-mce-caret", n ? "before" : "after" ), r.setAttribute("data-mce-bogus", "all"), r.appendChild( ((i = document.createElement("br")).setAttribute( "data-mce-bogus", "1" ), i) ), (o = t.parentNode), n ? o.insertBefore(r, t) : t.nextSibling ? o.insertBefore(r, t.nextSibling) : o.appendChild(r), r ); }, hasContent: function(e) { return e.firstChild !== e.lastChild || !vo.isBr(e.firstChild); }, startsWithCaretContainer: fi, endsWithCaretContainer: di }, pi = vo.isContentEditableTrue, gi = vo.isContentEditableFalse, hi = vo.isBr, vi = vo.isText, yi = vo.matchNodeNames("script style textarea"), bi = vo.matchNodeNames("img input textarea hr iframe video audio object"), Ci = vo.matchNodeNames("table"), xi = mi.isCaretContainer, wi = function(e) { return ( !xi(e) && (vi(e) ? !yi(e.parentNode) : bi(e) || hi(e) || Ci(e) || gi(e)) ); }, Ni = function(e, t) { for (e = e.parentNode; e && e !== t; e = e.parentNode) { if (gi(e)) return !1; if (pi(e)) return !0; } return !0; }, Ei = wi, Si = function(e) { return ( bi(e) || (!!gi((t = e)) && !0 !== At.reduce( t.getElementsByTagName("*"), function(e, t) { return e || pi(t); }, !1 )) ); var t; }, ki = function(e, t) { return wi(e) && Ni(e, t); }, Ti = Math.round, Ai = function(e) { return e ? { left: Ti(e.left), top: Ti(e.top), bottom: Ti(e.bottom), right: Ti(e.right), width: Ti(e.width), height: Ti(e.height) } : { left: 0, top: 0, bottom: 0, right: 0, width: 0, height: 0 }; }, _i = function(e, t, n) { return e >= 0 && e <= Math.min(t.height, n.height) / 2; }, Bi = function(e, t) { return ( e.bottom - e.height / 2 < t.top || (!(e.top > t.bottom) && _i(t.top - e.bottom, e, t)) ); }, Ri = function(e, t) { return ( e.top > t.bottom || (!(e.bottom < t.top) && _i(t.bottom - e.top, e, t)) ); }, Di = Ai, Oi = function(e, t) { return ( (e = Ai(e)), t ? (e.right = e.left) : ((e.left = e.left + e.width), (e.right = e.left)), (e.width = 0), e ); }, Pi = function(e, t) { return ( e.left === t.left && e.top === t.top && e.bottom === t.bottom && e.right === t.right ); }, Ii = Bi, Li = Ri, Mi = function(e, t, n) { return t >= e.left && t <= e.right && n >= e.top && n <= e.bottom; }, Fi = function(e) { var t = e.startContainer, n = e.startOffset; return t.hasChildNodes() && e.endOffset === n + 1 ? t.childNodes[n] : null; }, zi = function(e, t) { return ( 1 === e.nodeType && e.hasChildNodes() && (t >= e.childNodes.length && (t = e.childNodes.length - 1), (e = e.childNodes[t])), e ); }, Ui = 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]" ), Vi = function(e) { return "string" == typeof e && e.charCodeAt(0) >= 768 && Ui.test(e); }, Hi = [].slice, qi = function(e) { for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; var r = Hi.call(arguments); return r.length - 1 >= e.length ? e.apply(this, r.slice(1)) : function() { var e = r.concat([].slice.call(arguments)); return qi.apply(this, e); }; }, ji = { constant: function(e) { return function() { return e; }; }, negate: function(e) { return function(t) { return !e(t); }; }, and: function() { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; var n = Hi.call(arguments); return function(e) { for (var t = 0; t < n.length; t++) if (!n[t](e)) return !1; return !0; }; }, or: function() { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; var n = Hi.call(arguments); return function(e) { for (var t = 0; t < n.length; t++) if (n[t](e)) return !0; return !1; }; }, curry: qi, compose: function(e, t) { return function(n) { return e(t(n)); }; }, noop: function() {} }, $i = vo.isElement, Wi = Ei, Ki = vo.matchStyleValues("display", "block table"), Xi = vo.matchStyleValues("float", "left right"), Yi = ji.and($i, Wi, ji.negate(Xi)), Gi = ji.negate(vo.matchStyleValues("white-space", "pre pre-line pre-wrap")), Ji = vo.isText, Qi = vo.isBr, Zi = Xo.nodeIndex, ea = zi, ta = function(e) { return "createRange" in e ? e.createRange() : Xo.DOM.createRng(); }, na = function(e) { return e && /[\r\n\t ]/.test(e); }, ra = function(e) { var t, n = e.startContainer, r = e.startOffset; return !!( na(e.toString()) && Gi(n.parentNode) && ((t = n.data), na(t[r - 1]) || na(t[r + 1])) ); }, oa = function(e) { var t, n, r = [], o = function(e) { var t, n, r, o, i, a, s, u; return ( (t = (n = e.getClientRects()).length > 0 ? Di(n[0]) : Di(e.getBoundingClientRect())), Qi(e) && 0 === t.left ? ((i = (r = e).ownerDocument), (a = ta(i)), (s = i.createTextNode("\xa0")), (u = r.parentNode).insertBefore(s, r), a.setStart(s, 0), a.setEnd(s, 1), (o = Di(a.getBoundingClientRect())), u.removeChild(s), o) : t ); }, i = function(e, t) { return ((e = Oi(e, t)).width = 1), (e.right = e.left + 1), e; }, a = function(e) { 0 !== e.height && ((r.length > 0 && Pi(e, r[r.length - 1])) || r.push(e)); }, s = function(e, t) { var n = ta(e.ownerDocument); if (t < e.data.length) { if (Vi(e.data[t])) return r; if ( Vi(e.data[t - 1]) && (n.setStart(e, t), n.setEnd(e, t + 1), !ra(n)) ) return a(i(o(n), !1)), r; } t > 0 && (n.setStart(e, t - 1), n.setEnd(e, t), ra(n) || a(i(o(n), !1))), t < e.data.length && (n.setStart(e, t), n.setEnd(e, t + 1), ra(n) || a(i(o(n), !0))); }; if (Ji(e.container())) return s(e.container(), e.offset()), r; if ($i(e.container())) if (e.isAtEnd()) (n = ea(e.container(), e.offset())), Ji(n) && s(n, n.data.length), Yi(n) && !Qi(n) && a(i(o(n), !1)); else { if ( ((n = ea(e.container(), e.offset())), Ji(n) && s(n, 0), Yi(n) && e.isAtEnd()) ) return a(i(o(n), !1)), r; (t = ea(e.container(), e.offset() - 1)), Yi(t) && !Qi(t) && (Ki(t) || Ki(n) || !Yi(n)) && a(i(o(t), !1)), Yi(n) && a(i(o(n), !0)); } return r; }, ia = function(e, t, n) { var r = function() { return n || (n = oa(new ia(e, t))), n; }; return { container: ji.constant(e), offset: ji.constant(t), toRange: function() { var n; return (n = ta(e.ownerDocument)).setStart(e, t), n.setEnd(e, t), n; }, getClientRects: r, isVisible: function() { return r().length > 0; }, isAtStart: function() { return Ji(e), 0 === t; }, isAtEnd: function() { return Ji(e) ? t >= e.data.length : t >= e.childNodes.length; }, isEqual: function(n) { return n && e === n.container() && t === n.offset(); }, getNode: function(n) { return ea(e, n ? t - 1 : t); } }; }; (ia.fromRangeStart = function(e) { return new ia(e.startContainer, e.startOffset); }), (ia.fromRangeEnd = function(e) { return new ia(e.endContainer, e.endOffset); }), (ia.after = function(e) { return new ia(e.parentNode, Zi(e) + 1); }), (ia.before = function(e) { return new ia(e.parentNode, Zi(e)); }), (ia.isAtStart = function(e) { return !!e && e.isAtStart(); }), (ia.isAtEnd = function(e) { return !!e && e.isAtEnd(); }), (ia.isTextPosition = function(e) { return !!e && vo.isText(e.container()); }); var aa, sa, ua, ca, la, fa = vo.isContentEditableTrue, da = vo.isContentEditableFalse, ma = vo.matchStyleValues( "display", "block table table-cell table-caption list-item" ), pa = mi.isCaretContainer, ga = mi.isCaretContainerBlock, ha = ji.curry, va = vo.isElement, ya = Ei, ba = function(e) { return e > 0; }, Ca = function(e) { return e < 0; }, xa = function(e, t) { for (var n; (n = e(t)); ) if (!ga(n)) return n; return null; }, wa = function(e, t) { for (e = e.parentNode; e && e !== t; e = e.parentNode) if (fa(e)) return e; return t; }, Na = function(e, t) { for (; e && e !== t; ) { if (ma(e)) return e; e = e.parentNode; } return null; }, Ea = function(e, t) { var n = t.ownerDocument.createRange(); return ( e ? (n.setStartBefore(t), n.setEndBefore(t)) : (n.setStartAfter(t), n.setEndAfter(t)), n ); }, Sa = function(e, t, n) { var r, o, i, a; for (o = e ? "previousSibling" : "nextSibling"; n && n !== t; ) { if (((r = n[o]), pa(r) && (r = r[o]), da(r))) { if (((a = n), Na(r, (i = t)) === Na(a, i))) return r; break; } if (ya(r)) break; n = n.parentNode; } return null; }, ka = ha(Ea, !0), Ta = ha(Ea, !1), Aa = function(e, t) { return da( ((n = e), (r = t) ? ((o = r.container()), (i = r.offset()), va(o) ? o.childNodes[i + n] : null) : null) ); var n, r, o, i; }, _a = { isForwards: ba, isBackwards: Ca, findNode: function(e, t, n, r, o) { var i = new to(e, r); if (Ca(t)) { if ((da(e) || ga(e)) && n((e = xa(i.prev, !0)))) return e; for (; (e = xa(i.prev, o)); ) if (n(e)) return e; } if (ba(t)) { if ((da(e) || ga(e)) && n((e = xa(i.next, !0)))) return e; for (; (e = xa(i.next, o)); ) if (n(e)) return e; } return null; }, getEditingHost: wa, getParentBlock: Na, isInSameBlock: function(e, t, n) { return Na(e.container(), n) === Na(t.container(), n); }, isInSameEditingHost: function(e, t, n) { return wa(e.container(), n) === wa(t.container(), n); }, isBeforeContentEditableFalse: ha(Aa, 0), isAfterContentEditableFalse: ha(Aa, -1), normalizeRange: function(e, t, n) { var r, o, i, a, s = ha(Sa, !0, t), u = ha(Sa, !1, t); if ( ((o = n.startContainer), (i = n.startOffset), mi.isCaretContainerBlock(o)) ) { if ( (va(o) || (o = o.parentNode), "before" === (a = o.getAttribute("data-mce-caret")) && ((r = o.nextSibling), da(r))) ) return ka(r); if ("after" === a && ((r = o.previousSibling), da(r))) return Ta(r); } if (!n.collapsed) return n; if (vo.isText(o)) { if (pa(o)) { if (1 === e) { if ((r = u(o))) return ka(r); if ((r = s(o))) return Ta(r); } if (-1 === e) { if ((r = s(o))) return Ta(r); if ((r = u(o))) return ka(r); } return n; } if (mi.endsWithCaretContainer(o) && i >= o.data.length - 1) return 1 === e && (r = u(o)) ? ka(r) : n; if (mi.startsWithCaretContainer(o) && i <= 1) return -1 === e && (r = s(o)) ? Ta(r) : n; if (i === o.data.length) return (r = u(o)) ? ka(r) : n; if (0 === i) return (r = s(o)) ? Ta(r) : n; } return n; } }, Ba = vo.isContentEditableFalse, Ra = vo.isText, Da = vo.isElement, Oa = vo.isBr, Pa = _a.isForwards, Ia = _a.isBackwards, La = Ei, Ma = Si, Fa = ki, za = function(e, t) { return e.hasChildNodes() && t < e.childNodes.length ? e.childNodes[t] : null; }, Ua = function(e, t) { if (Pa(e)) { if (La(t.previousSibling) && !Ra(t.previousSibling)) return ia.before(t); if (Ra(t)) return ia(t, 0); } if (Ia(e)) { if (La(t.nextSibling) && !Ra(t.nextSibling)) return ia.after(t); if (Ra(t)) return ia(t, t.data.length); } return Ia(e) ? (Oa(t) ? ia.before(t) : ia.after(t)) : ia.before(t); }, Va = function(e, t, n) { var r, o, i, a, s, u, c, l, f, d; if (!Da(n) || !t) return null; if (t.isEqual(ia.after(n)) && n.lastChild) { if ( ((c = ia.after(n.lastChild)), Ia(e) && La(n.lastChild) && Da(n.lastChild)) ) return Oa(n.lastChild) ? ia.before(n.lastChild) : c; } else c = t; if (((r = c.container()), (o = c.offset()), Ra(r))) { if (Ia(e) && o > 0) return ia(r, --o); if (Pa(e) && o < r.length) return ia(r, ++o); i = r; } else { if (Ia(e) && o > 0 && ((a = za(r, o - 1)), La(a))) return !Ma(a) && (s = _a.findNode(a, e, Fa, a)) ? Ra(s) ? ia(s, s.data.length) : ia.after(s) : Ra(a) ? ia(a, a.data.length) : ia.before(a); if (Pa(e) && o < r.childNodes.length && ((a = za(r, o)), La(a))) return ( (l = a), (f = n), vo.isBr(l) && (d = Va(1, ia.after(l), f)) && !_a.isInSameBlock(ia.before(l), ia.before(d), f) ? Va(e, ia.after(a), n) : !Ma(a) && (s = _a.findNode(a, e, Fa, a)) ? Ra(s) ? ia(s, 0) : ia.before(s) : Ra(a) ? ia(a, 0) : ia.after(a) ); i = c.getNode(); } return ((Pa(e) && c.isAtEnd()) || (Ia(e) && c.isAtStart())) && ((i = _a.findNode(i, e, ji.constant(!0), n, !0)), Fa(i, n)) ? Ua(e, i) : ((a = _a.findNode(i, e, Fa, n)), !(u = At.last( At.filter( (function(e, t) { for (var n = []; e && e !== t; ) n.push(e), (e = e.parentNode); return n; })(r, n), Ba ) )) || (a && u.contains(a)) ? a ? Ua(e, a) : null : (c = Pa(e) ? ia.after(u) : ia.before(u))); }, Ha = function(e) { return { next: function(t) { return Va(1, t, e); }, prev: function(t) { return Va(-1, t, e); } }; }, qa = function(e) { return Ot.grep(e.childNodes, function(e) { return "LI" === e.nodeName; }); }, ja = function(e) { return ( e && e.firstChild && e.firstChild === e.lastChild && ("\xa0" === (t = e.firstChild).data || vo.isBr(t)) ); var t; }, $a = function(e) { return e.length > 0 && (!(t = e[e.length - 1]).firstChild || ja(t)) ? e.slice(0, -1) : e; var t; }, Wa = function(e, t) { var n = e.getParent(t, e.isBlock); return n && "LI" === n.nodeName ? n : null; }, Ka = function(e, t) { var n = ia.after(e), r = Ha(t).prev(n); return r ? r.toRange() : null; }, Xa = function(e, t, n) { var r, o, i, a, s = e.parentNode; return ( Ot.each(t, function(t) { s.insertBefore(t, e); }), (r = e), (o = n), (i = ia.before(r)), (a = Ha(o).next(i)) ? a.toRange() : null ); }, Ya = function(e, t) { var n, r, o, i, a, s, u = t.firstChild, c = t.lastChild; return ( u && "meta" === u.name && (u = u.next), c && "mce_marker" === c.attr("id") && (c = c.prev), (r = c), (s = (n = e).getNonEmptyElements()), r && (r.isEmpty(s) || ((o = r), n.getBlockElements()[o.name] && (a = o).firstChild && a.firstChild === a.lastChild && ("br" === (i = o.firstChild).name || "\xa0" === i.value))) && (c = c.prev), !(!u || u !== c || ("ul" !== u.name && "ol" !== u.name)) ); }, Ga = function(e, t, n, r) { var o, i, a, s, u, c, l, f, d, m, p, g, h, v, y, b, C, x, w, N = ((o = t), (i = r), (c = e.serialize(i)), (l = o.createFragment(c)), (s = (a = l).firstChild), (u = a.lastChild), s && "META" === s.nodeName && s.parentNode.removeChild(s), u && "mce_marker" === u.id && u.parentNode.removeChild(u), a), E = Wa(t, n.startContainer), S = $a(qa(N.firstChild)), k = t.getRoot(), T = function(e) { var r = ia.fromRangeStart(n), o = Ha(t.getRoot()), i = 1 === e ? o.prev(r) : o.next(r); return !i || Wa(t, i.getNode()) !== E; }; return T(1) ? Xa(E, S, k) : T(2) ? ((f = E), (d = S), (m = k), t.insertAfter(d.reverse(), f), Ka(d[0], m)) : ((g = S), (h = k), (v = p = E), (b = (y = n).cloneRange()), (C = y.cloneRange()), b.setStartBefore(v), C.setEndAfter(v), (x = [b.cloneContents(), C.cloneContents()]), (w = p.parentNode).insertBefore(x[0], p), Ot.each(g, function(e) { w.insertBefore(e, p); }), w.insertBefore(x[1], p), w.removeChild(p), Ka(g[g.length - 1], h)); }, Ja = function(e, t) { return !!Wa(e, t); }, Qa = vo.isText, Za = vo.isBogus, es = Xo.nodeIndex, ts = function(e) { var t = e.parentNode; return Za(t) ? ts(t) : t; }, ns = function(e) { return e ? At.reduce( e.childNodes, function(e, t) { return ( Za(t) && "BR" !== t.nodeName ? (e = e.concat(ns(t))) : e.push(t), e ); }, [] ) : []; }, rs = function(e) { return function(t) { return e === t; }; }, os = function(e) { var t, n, r, o; return ( (Qa(e) ? "text()" : e.nodeName.toLowerCase()) + "[" + ((n = ns(ts((t = e)))), (r = At.findIndex(n, rs(t), t)), (n = n.slice(0, r + 1)), (o = At.reduce( n, function(e, t, r) { return Qa(t) && Qa(n[r - 1]) && e++, e; }, 0 )), (n = At.filter(n, vo.matchNodeNames(t.nodeName))), (r = At.findIndex(n, rs(t), t)) - o) + "]" ); }, is = function(e, t) { var n, r, o, i, a, s = []; return ( (n = t.container()), (r = t.offset()), Qa(n) ? (o = (function(e, t) { for (; (e = e.previousSibling) && Qa(e); ) t += e.data.length; return t; })(n, r)) : (r >= (i = n.childNodes).length ? ((o = "after"), (r = i.length - 1)) : (o = "before"), (n = i[r])), s.push(os(n)), (a = (function(e, t, n) { var r = []; for (t = t.parentNode; !(t === e || (n && n(t))); t = t.parentNode) r.push(t); return r; })(e, n)), (a = At.filter(a, ji.negate(vo.isBogus))), (s = s.concat( At.map(a, function(e) { return os(e); }) )) .reverse() .join("/") + "," + o ); }, as = function(e, t) { var n, r, o; return t ? ((t = (n = t.split(","))[0].split("/")), (o = n.length > 1 ? n[1] : "before"), (r = At.reduce( t, function(e, t) { return (t = /([\w\-\(\)]+)\[([0-9]+)\]/.exec(t)) ? ("text()" === t[1] && (t[1] = "#text"), (n = e), (r = t[1]), (o = parseInt(t[2], 10)), (i = ns(n)), (i = At.filter(i, function(e, t) { return !Qa(e) || !Qa(i[t - 1]); })), (i = At.filter(i, vo.matchNodeNames(r)))[o]) : null; var n, r, o, i; }, e )) ? Qa(r) ? (function(e, t) { for (var n, r = e, o = 0; Qa(r); ) { if (((n = r.data.length), t >= o && t <= o + n)) { (e = r), (t -= o); break; } if (!Qa(r.nextSibling)) { (e = r), (t = n); break; } (o += n), (r = r.nextSibling); } return t > e.data.length && (t = e.data.length), new ia(e, t); })(r, parseInt(o, 10)) : ((o = "after" === o ? es(r) + 1 : es(r)), new ia(r.parentNode, o)) : null) : null; }, ss = vo.isContentEditableFalse, us = function(e, t, n, r, o) { var i, a = r[o ? "startContainer" : "endContainer"], s = r[o ? "startOffset" : "endOffset"], u = [], c = 0, l = e.getRoot(); for ( vo.isText(a) ? u.push( n ? (function(e, t, n) { var r, o; for ( o = e(t.data.slice(0, n)).length, r = t.previousSibling; r && vo.isText(r); r = r.previousSibling ) o += e(r.data).length; return o; })(t, a, s) : s ) : (s >= (i = a.childNodes).length && i.length && ((c = 1), (s = Math.max(0, i.length - 1))), u.push(e.nodeIndex(i[s], n) + c)); a && a !== l; a = a.parentNode ) u.push(e.nodeIndex(a, n)); return u; }, cs = function(e) { vo.isText(e) && 0 === e.data.length && e.parentNode.removeChild(e); }, ls = function(e, t, n) { var r = 0; return ( Ot.each(e.select(t), function(e) { if ("all" !== e.getAttribute("data-mce-bogus")) return e !== n && void r++; }), r ); }, fs = function(e, t) { var n, r, o, i = t ? "start" : "end"; (n = e[i + "Container"]), (r = e[i + "Offset"]), vo.isElement(n) && "TR" === n.nodeName && (n = (o = n.childNodes)[Math.min(t ? r : r - 1, o.length - 1)]) && ((r = t ? 0 : n.childNodes.length), e["set" + (t ? "Start" : "End")](n, r)); }, ds = function(e) { return fs(e, !0), fs(e, !1), e; }, ms = function(e, t) { var n; if (vo.isElement(e) && ((e = zi(e, t)), ss(e))) return e; if (mi.isCaretContainer(e)) { if ( (vo.isText(e) && mi.isCaretContainerBlock(e) && (e = e.parentNode), (n = e.previousSibling), ss(n)) ) return n; if (((n = e.nextSibling), ss(n))) return n; } }, ps = function(e, t, n) { var r, o, i, a, s, u, c, l = n.getNode(), f = l ? l.nodeName : null, d = n.getRng(); return ss(l) || "IMG" === f ? { name: f, index: ls(n.dom, f, l) } : (l = ms((r = d).startContainer, r.startOffset) || ms(r.endContainer, r.endOffset)) ? { name: (f = l.tagName), index: ls(n.dom, f, l) } : ((o = e), (a = t), (s = d), (u = (i = n).dom), ((c = {}).start = us(u, o, a, s, !0)), i.isCollapsed() || (c.end = us(u, o, a, s, !1)), c); }, gs = { getBookmark: function(e, t, n) { return 2 === t ? ps(ii, n, e) : 3 === t ? ((o = (r = e).getRng()), { start: is(r.dom.getRoot(), ia.fromRangeStart(o)), end: is(r.dom.getRoot(), ia.fromRangeEnd(o)) }) : t ? { rng: e.getRng() } : (function(e) { var t = e.dom, n = e.getRng(), r = t.uniqueId(), o = e.isCollapsed(), i = "overflow:hidden;line-height:0px", a = e.getNode(), s = a.nodeName; if ("IMG" === s) return { name: s, index: ls(t, s, a) }; var u = ds(n.cloneRange()); if (!o) { u.collapse(!1); var c = t.create( "span", { "data-mce-type": "bookmark", id: r + "_end", style: i }, "" ); u.insertNode(c), cs(c.nextSibling); } (n = ds(n)).collapse(!0); var l = t.create( "span", { "data-mce-type": "bookmark", id: r + "_start", style: i }, "" ); return ( n.insertNode(l), cs(l.previousSibling), e.moveToBookmark({ id: r, keep: 1 }), { id: r } ); })(e); var r, o; }, getUndoBookmark: y.curry(ps, y.identity, !0) }, hs = function(e, t) { for (var n = [], r = 0; r < e.length; r++) { var o = e[r]; if (!o.isSome()) return E.none(); n.push(o.getOrDie()); } return E.some(t.apply(null, n)); }, vs = function(e, t) { return ( !e.isBlock(t) || t.innerHTML || me.ie || (t.innerHTML = '
'), t ); }, ys = function(e, t, n, r) { var o, i, a, s, u = n[t ? "start" : "end"], c = e.getRoot(); if (u) { for (a = u[0], i = c, o = u.length - 1; o >= 1; o--) { if (((s = i.childNodes), u[o] > s.length - 1)) return; i = s[u[o]]; } 3 === i.nodeType && (a = Math.min(u[0], i.nodeValue.length)), 1 === i.nodeType && (a = Math.min(u[0], i.childNodes.length)), t ? r.setStart(i, a) : r.setEnd(i, a); } return !0; }, bs = function(e, t, n) { var r, o, i, a, s, u, c = e.get(n.id + "_" + t), l = n.keep; if (c) { if ( ((r = c.parentNode), l ? ((r = c.firstChild), (o = 1)) : (o = e.nodeIndex(c)), (s = r), (u = o), !l) ) { for ( a = c.previousSibling, i = c.nextSibling, Ot.each(Ot.grep(c.childNodes), function(e) { vo.isText(e) && (e.nodeValue = e.nodeValue.replace(/\uFEFF/g, "")); }); (c = e.get(n.id + "_" + t)); ) e.remove(c, 1); a && i && a.nodeType === i.nodeType && vo.isText(a) && !me.opera && ((o = a.nodeValue.length), a.appendData(i.nodeValue), e.remove(i), (s = a), (u = o)); } return E.some(ia(s, u)); } return E.none(); }, Cs = function(e, t) { var n, r, o, i, a, s, u, c, l, f, d, m, p, g, h, v = e.dom; if (t) { if (Ot.isArray(t.start)) return ( (g = t), (h = (p = v).createRng()), ys(p, !0, g, h) && ys(p, !1, g, h) ? E.some(h) : E.none() ); if ("string" == typeof t.start) return E.some( ((f = t), (d = (l = v).createRng()), (m = as(l.getRoot(), f.start)), d.setStart(m.container(), m.offset()), (m = as(l.getRoot(), f.end)), d.setEnd(m.container(), m.offset()), d) ); if (t.id) return ( (u = bs((o = v), "start", (i = t))), (c = bs(o, "end", i)), hs([u, ((a = c), (s = u), a.isSome() ? a : s)], function(e, t) { var n = o.createRng(); return ( n.setStart(vs(o, e.container()), e.offset()), n.setEnd(vs(o, t.container()), t.offset()), n ); }) ); if (t.name) return ( (n = v), (r = t), E.from(n.select(r.name)[r.index]).map(function(e) { var t = n.createRng(); return t.selectNode(e), t; }) ); if (t.rng) return E.some(t.rng); } return E.none(); }, xs = { getBookmark: function(e, t, n) { return gs.getBookmark(e, t, n); }, moveToBookmark: function(e, t) { Cs(e, t).each(function(t) { e.setRng(t); }); }, isBookmarkNode: function(e) { return ( vo.isElement(e) && "SPAN" === e.tagName && "bookmark" === e.getAttribute("data-mce-type") ); } }, ws = Ot.each, Ns = function(e) { this.compare = function(t, n) { if (t.nodeName !== n.nodeName) return !1; var r = function(t) { var n = {}; return ( ws(e.getAttribs(t), function(r) { var o = r.nodeName.toLowerCase(); 0 !== o.indexOf("_") && "style" !== o && 0 !== o.indexOf("data-") && (n[o] = e.getAttrib(t, o)); }), n ); }, o = 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 !( !o(r(t), r(n)) || !o( e.parseStyle(e.getAttrib(t, "style")), e.parseStyle(e.getAttrib(n, "style")) ) || xs.isBookmarkNode(t) || xs.isBookmarkNode(n) ); }; }, Es = function(e, t) { Ur.parent(e).each(function(n) { n.dom().insertBefore(t.dom(), e.dom()); }); }, Ss = function(e, t) { e.dom().appendChild(t.dom()); }, ks = { before: Es, after: function(e, t) { Ur.nextSibling(e).fold( function() { Ur.parent(e).each(function(e) { Ss(e, t); }); }, function(e) { Es(e, t); } ); }, prepend: function(e, t) { Ur.firstChild(e).fold( function() { Ss(e, t); }, function(n) { e.dom().insertBefore(t.dom(), n.dom()); } ); }, append: Ss, appendAt: function(e, t, n) { Ur.child(e, n).fold( function() { Ss(e, t); }, function(e) { Es(e, t); } ); }, wrap: function(e, t) { Es(e, t), Ss(t, e); } }, Ts = function(e, t) { M.each(t, function(t) { ks.before(e, t); }); }, As = function(e, t) { M.each(t, function(t) { ks.append(e, t); }); }, _s = function(e) { var t = e.dom(); null !== t.parentNode && t.parentNode.removeChild(t); }, Bs = { empty: function(e) { (e.dom().textContent = ""), M.each(Ur.children(e), function(e) { _s(e); }); }, remove: _s, unwrap: function(e) { var t = Ur.children(e); t.length > 0 && Ts(e, t), _s(e); } }, Rs = ((aa = Zn.isText), (sa = "text"), (ua = function(e) { return aa(e) ? E.from(e.dom().nodeValue) : E.none(); }), (ca = Un.detect().browser), { get: function(e) { if (!aa(e)) throw new Error("Can only get " + sa + " value of a " + sa + " node"); return la(e).getOr(""); }, getOption: (la = ca.isIE() && 10 === ca.version.major ? function(e) { try { return ua(e); } catch (yC) { return E.none(); } } : ua), set: function(e, t) { if (!aa(e)) throw new Error( "Can only set raw " + sa + " value of a " + sa + " node" ); e.dom().nodeValue = t; } }), Ds = function(e) { return Rs.get(e); }, Os = function(e, t) { return _r.all(t, e); }, Ps = function(e) { var t = Os(e, "br"), n = M.filter( (function(e) { for (var t = [], n = e.dom(); n; ) t.push(Hn.fromDom(n)), (n = n.lastChild); return t; })(e).slice(-1), io.isBr ); t.length === n.length && M.each(n, Bs.remove); }, Is = function(e) { Bs.empty(e), ks.append(e, Hn.fromHtml('
')); }, Ls = function(e) { Ur.lastChild(e).each(function(t) { Ur.prevSibling(t).each(function(n) { io.isBlock(e) && io.isBr(t) && io.isBlock(n) && Bs.remove(t); }); }); }, Ms = Ot.makeMap, Fs = function(e) { var t, n, r, o, i, a = []; return ( (t = (e = e || {}).indent), (n = Ms(e.indent_before || "")), (r = Ms(e.indent_after || "")), (o = Ao.getEncodeFunc(e.entity_encoding || "raw", e.entities)), (i = "html" === e.element_format), { start: function(e, s, u) { var c, l, f, d; if ( (t && n[e] && a.length > 0 && (d = a[a.length - 1]).length > 0 && "\n" !== d && a.push("\n"), a.push("<", e), s) ) for (c = 0, l = s.length; c < l; c++) (f = s[c]), a.push(" ", f.name, '="', o(f.value, !0), '"'); (a[a.length] = !u || i ? ">" : " />"), u && t && r[e] && a.length > 0 && (d = a[a.length - 1]).length > 0 && "\n" !== d && a.push("\n"); }, end: function(e) { var n; a.push(""), t && r[e] && a.length > 0 && (n = a[a.length - 1]).length > 0 && "\n" !== n && a.push("\n"); }, text: function(e, t) { e.length > 0 && (a[a.length] = t ? e : o(e)); }, cdata: function(e) { a.push(""); }, comment: function(e) { a.push("\x3c!--", e, "--\x3e"); }, pi: function(e, n) { n ? a.push("") : a.push(""), t && a.push("\n"); }, doctype: function(e) { a.push("", t ? "\n" : ""); }, reset: function() { a.length = 0; }, getContent: function() { return a.join("").replace(/\n$/, ""); } } ); }, zs = function(e, t) { var n = {}, r = Fs(e); return ( ((e = e || {}).validate = !("validate" in e) || e.validate), (n.schema = t = t || Fo()), (n.writer = r), (n.serialize = function(n) { var o, i; (i = e.validate), (o = { 3: function(e) { r.text(e.value, e.raw); }, 8: function(e) { r.comment(e.value); }, 7: function(e) { r.pi(e.name, e.value); }, 10: function(e) { r.doctype(e.value); }, 4: function(e) { r.cdata(e.value); }, 11: function(e) { if ((e = e.firstChild)) do { a(e); } while ((e = e.next)); } }), r.reset(); var a = function(e) { var n, s, u, c, l, f, d, m, p, g = o[e.type]; if (g) g(e); else { if ( ((n = e.name), (s = e.shortEnded), (u = e.attributes), i && u && u.length > 1 && (((f = []).map = {}), (p = t.getElementRule(e.name)))) ) { for (d = 0, m = p.attributesOrder.length; d < m; d++) (c = p.attributesOrder[d]) in u.map && ((l = u.map[c]), (f.map[c] = l), f.push({ name: c, value: l })); for (d = 0, m = u.length; d < m; d++) (c = u[d].name) in f.map || ((l = u.map[c]), (f.map[c] = l), f.push({ name: c, value: l })); u = f; } if ((r.start(e.name, u, s), !s)) { if ((e = e.firstChild)) do { a(e); } while ((e = e.next)); r.end(n); } } }; return 1 !== n.type || e.inner ? o[11](n) : a(n), r.getContent(); }), n ); }, Us = function(e) { return ia.isTextPosition(e) ? 0 === e.offset() : Ei(e.getNode()); }, Vs = function(e) { return ia.isTextPosition(e) ? e.offset() === e.container().data.length : Ei(e.getNode(!0)); }, Hs = function(e, t) { return ( !ia.isTextPosition(e) && !ia.isTextPosition(t) && e.getNode() === t.getNode(!0) ); }, qs = function(e, t, n) { return e ? !Hs(t, n) && ((r = t), !(!ia.isTextPosition(r) && vo.isBr(r.getNode()))) && Vs(t) && Us(n) : !Hs(n, t) && Us(t) && Vs(n); var r; }, js = function(e, t, n) { var r = Ha(t); return E.from(e ? r.next(n) : r.prev(n)); }, $s = function(e, t) { var n, r, o, i, a, s = e ? t.firstChild : t.lastChild; return vo.isText(s) ? E.some(new ia(s, e ? 0 : s.data.length)) : s ? Ei(s) ? E.some( e ? ia.before(s) : ((a = s), vo.isBr(a) ? ia.before(a) : ia.after(a)) ) : ((r = t), (o = s), (i = (n = e) ? ia.before(o) : ia.after(o)), js(n, r, i)) : E.none(); }, Ws = { fromPosition: js, nextPosition: y.curry(js, !0), prevPosition: y.curry(js, !1), navigate: function(e, t, n) { return js(e, t, n).bind(function(r) { return _a.isInSameBlock(n, r, t) && qs(e, n, r) ? js(e, t, r) : E.some(r); }); }, positionIn: $s, firstPositionIn: y.curry($s, !0), lastPositionIn: y.curry($s, !1) }, Ks = function(e) { var t = ia.fromRangeStart(e), n = ia.fromRangeEnd(e), r = e.commonAncestorContainer; return Ws.fromPosition(!1, r, n) .map(function(o) { return !_a.isInSameBlock(t, n, r) && _a.isInSameBlock(t, o, r) ? ((i = t.container()), (a = t.offset()), (s = o.container()), (u = o.offset()), (c = document.createRange()).setStart(i, a), c.setEnd(s, u), c) : e; var i, a, s, u, c; }) .getOr(e); }, Xs = function(e) { return (t = e).collapsed ? t : Ks(t); var t; }, Ys = vo.matchNodeNames("td th"), Gs = function(e, t, n) { var r, o, i, a, s, u, c, l, f, d, m, p, g = e.schema.getTextInlineElements(), h = e.selection, v = e.dom; if ( (/^ | $/.test(t) && (t = (function(e) { var t, n, r; (t = h.getRng()), (n = t.startContainer), (r = t.startOffset); var o = function(e) { return n[e] && 3 === n[e].nodeType; }; return ( 3 === n.nodeType && (r > 0 ? (e = e.replace(/^ /, " ")) : o("previousSibling") || (e = e.replace(/^ /, " ")), r < n.length ? (e = e.replace(/ (
|)$/, " ")) : o("nextSibling") || (e = e.replace(/( | )(
|)$/, " "))), e ); })(t)), (r = e.parser), (p = n.merge), (o = zs({ validate: e.settings.validate }, e.schema)), (m = '​'), (u = { content: t, format: "html", selection: !0, paste: n.paste }), (u = e.fire("BeforeSetContent", u)).isDefaultPrevented()) ) e.fire("SetContent", { content: u.content, format: "html", selection: !0, paste: n.paste }); else { -1 === (t = u.content).indexOf("{$caret}") && (t += "{$caret}"), (t = t.replace(/\{\$caret\}/, m)); var y, b, C, x, w = (l = h.getRng()).startContainer || (l.parentElement ? l.parentElement() : null), N = e.getBody(); w === N && h.isCollapsed() && v.isBlock(N.firstChild) && (y = N.firstChild) && !e.schema.getShortEndedElements()[y.nodeName] && v.isEmpty(N.firstChild) && ((l = v.createRng()).setStart(N.firstChild, 0), l.setEnd(N.firstChild, 0), h.setRng(l)), h.isCollapsed() || (e.selection.setRng(Xs(e.selection.getRng())), e.getDoc().execCommand("Delete", !1, null), (C = (b = h.getRng()).startContainer), (x = b.startOffset), 3 === C.nodeType && b.collapsed && ("\xa0" === C.data[x] ? (C.deleteData(x, 1), /[\u00a0| ]$/.test(t) || (t += " ")) : "\xa0" === C.data[x - 1] && (C.deleteData(x - 1, 1), /[\u00a0| ]$/.test(t) || (t = " " + t)))); var S, k, T, A = { context: (i = h.getNode()).nodeName.toLowerCase(), data: n.data, insert: !0 }; if ( ((s = r.parse(t, A)), !0 === n.paste && Ya(e.schema, s) && Ja(v, i)) ) return ( (l = Ga(o, v, e.selection.getRng(!0), s)), e.selection.setRng(l), void e.fire("SetContent", u) ); if ( ((function(e) { for (var t = e; (t = t.walk()); ) 1 === t.type && t.attr("data-mce-fragment", "1"); })(s), "mce_marker" === (f = s.lastChild).attr("id")) ) for (c = f, f = f.prev; f; f = f.walk(!0)) if (3 === f.type || !v.isBlock(f.name)) { e.schema.isValidChild(f.parent.name, "span") && f.parent.insert(c, f, "br" === f.name); break; } if ((e._selectionOverrides.showBlockCaretContainer(i), A.invalid)) { for ( h.setContent(m), i = h.getNode(), a = e.getBody(), 9 === i.nodeType ? (i = f = a) : (f = i); f !== a; ) (i = f), (f = f.parentNode); (t = i === a ? a.innerHTML : v.getOuterHTML(i)), (t = o.serialize( r.parse( t.replace( //i, function() { return o.serialize(s); } ) ) )), i === a ? v.setHTML(a, t) : v.setOuterHTML(i, t); } else (t = o.serialize(s)), (function(e, t, n) { if ("all" === n.getAttribute("data-mce-bogus")) n.parentNode.insertBefore(e.dom.createFragment(t), n); else { var r = n.firstChild, o = n.lastChild; !r || (r === o && "BR" === r.nodeName) ? e.dom.setHTML(n, t) : e.selection.setContent(t); } })(e, t, i); !(function() { if (p) { var t = e.getBody(), n = new Ns(v); Ot.each(v.select("*[data-mce-fragment]"), function(e) { for (var r = e.parentNode; r && r !== t; r = r.parentNode) g[e.nodeName.toLowerCase()] && n.compare(r, e) && v.remove(e, !0); }); } })(), (function(t) { var n, r, o; if (t) { if ( (h.scrollIntoView(t), (n = (function(t) { for (var n = e.getBody(); t && t !== n; t = t.parentNode) if ("false" === e.dom.getContentEditable(t)) return t; return null; })(t))) ) return v.remove(t), void h.select(n); (l = v.createRng()), (f = t.previousSibling) && 3 === f.nodeType ? (l.setStart(f, f.nodeValue.length), me.ie || ((d = t.nextSibling) && 3 === d.nodeType && (f.appendData(d.data), d.parentNode.removeChild(d)))) : (l.setStartBefore(t), l.setEndBefore(t)), (r = v.getParent(t, v.isBlock)), v.remove(t), r && v.isEmpty(r) && (e.$(r).empty(), l.setStart(r, 0), l.setEnd(r, 0), Ys(r) || r.getAttribute("data-mce-fragment") || !(o = (function(t) { var n = ia.fromRangeStart(t); if ((n = Ha(e.getBody()).next(n))) return n.toRange(); })(l)) ? v.add(r, v.create("br", { "data-mce-bogus": "1" })) : ((l = o), v.remove(r))), h.setRng(l); } })(v.get("mce_marker")), (S = e.getBody()), Ot.each(S.getElementsByTagName("*"), function(e) { e.removeAttribute("data-mce-fragment"); }), (k = e.dom), (T = e.selection.getStart()), E.from(k.getParent(T, "td,th")) .map(Hn.fromDom) .each(Ls), e.fire("SetContent", u), e.addVisual(); } }, Js = function(e, t) { var n, r, o = "string" != typeof (n = t) ? ((r = Ot.extend({ paste: n.paste, data: { paste: n.paste } }, n)), { content: n.content, details: r }) : { content: n, details: {} }; Gs(e, o.content, o.details); }, Qs = function(e, t, n, r, o) { return e(n, r) ? E.some(n) : tr.isFunction(o) && o(n) ? E.none() : t(n, r, o); }, Zs = function(e, t, n) { for ( var r = e.dom(), o = tr.isFunction(n) ? n : y.constant(!1); r.parentNode; ) { r = r.parentNode; var i = Hn.fromDom(r); if (t(i)) return E.some(i); if (o(i)) break; } return E.none(); }, eu = function(e, t) { return M.find( e.dom().childNodes, y.compose( t, Hn.fromDom ) ).map(Hn.fromDom); }, tu = function(e, t) { var n = function(e) { for (var r = 0; r < e.childNodes.length; r++) { if (t(Hn.fromDom(e.childNodes[r]))) return E.some(Hn.fromDom(e.childNodes[r])); var o = n(e.childNodes[r]); if (o.isSome()) return o; } return E.none(); }; return n(e.dom()); }, nu = { first: function(e) { return tu(gr.body(), e); }, ancestor: Zs, closest: function(e, t, n) { return Qs( function(e) { return t(e); }, Zs, e, t, n ); }, sibling: function(e, t) { var n = e.dom(); return n.parentNode ? eu(Hn.fromDom(n.parentNode), function(n) { return !Dr.eq(e, n) && t(n); }) : E.none(); }, child: eu, descendant: tu }, ru = xr("sections", "settings"), ou = Un.detect().deviceType.isTouch(), iu = ["lists", "autolink", "autosave"], au = { theme: "mobile" }, su = function(e) { var t = tr.isArray(e) ? e.join(" ") : e, n = M.map(tr.isString(t) ? t.split(" ") : [], On); return M.filter(n, function(e) { return e.length > 0; }); }, uu = function(e, t) { return e.sections().hasOwnProperty(t); }, cu = function(e, t, n, r) { var o, i, a = su(n.forced_plugins), s = su(r.plugins), u = e && uu(t, "mobile") ? ((o = s), M.filter(o, y.curry(M.contains, iu))) : s, c = ((i = u), [].concat(su(a)).concat(su(i))); return Ot.extend(r, { plugins: c.join(" ") }); }, lu = function(e, t, n, r) { var o, i, a, s, u, c, l, f, d, m, p, g, h, v = ((o = ["mobile"]), (i = r), (a = sr.bifilter(i, function(e, t) { return M.contains(o, t); })), ru(a.t, a.f)), y = Ot.extend( t, n, v.settings(), ((p = e), (h = (g = v).settings().inline), p && uu(g, "mobile") && !h ? ((l = "mobile"), (f = au), (d = v.sections()), (m = d.hasOwnProperty(l) ? d[l] : {}), Ot.extend({}, f, m)) : {}), { validate: !0, content_editable: v.settings().inline, external_plugins: ((s = n), (u = v.settings()), (c = u.external_plugins ? u.external_plugins : {}), s && s.external_plugins ? Ot.extend({}, s.external_plugins, c) : c) } ); return cu(e, v, n, y); }, fu = function(e, t, n) { return E.from(t.settings[n]).filter(e); }, du = y.curry(fu, tr.isString), mu = function(e, t, n, r) { var o, i, a = t in e.settings ? e.settings[t] : n; return "hash" === r ? ((i = {}), "string" == typeof (o = a) ? M.each( o.indexOf("=") > 0 ? o.split(/[;,](?![^=;,]*(?:[;,]|$))/) : o.split(","), function(e) { (e = e.split("=")).length > 1 ? (i[Ot.trim(e[0])] = Ot.trim(e[1])) : (i[Ot.trim(e[0])] = Ot.trim(e)); } ) : (i = o), i) : "string" === r ? fu(tr.isString, e, t).getOr(n) : "number" === r ? fu(tr.isNumber, e, t).getOr(n) : "boolean" === r ? fu(tr.isBoolean, e, t).getOr(n) : "object" === r ? fu(tr.isObject, e, t).getOr(n) : "array" === r ? fu(tr.isArray, e, t).getOr(n) : "function" === r ? fu(tr.isFunction, e, t).getOr(n) : a; }, pu = /[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/, gu = function(e) { return pu.test(e); }, hu = function(e, t) { var n = t.container(), r = t.offset(); return e ? mi.isCaretContainerInline(n) ? vo.isText(n.nextSibling) ? new ia(n.nextSibling, 0) : ia.after(n) : mi.isBeforeInline(t) ? new ia(n, r + 1) : t : mi.isCaretContainerInline(n) ? vo.isText(n.previousSibling) ? new ia(n.previousSibling, n.previousSibling.data.length) : ia.before(n) : mi.isAfterInline(t) ? new ia(n, r - 1) : t; }, vu = { isInlineTarget: function(e, t) { var n = du(e, "inline_boundaries_selector").getOr("a[href],code"); return _r.is(Hn.fromDom(t), n); }, findRootInline: function(e, t, n) { var r, o, i, a = ((r = e), (o = t), (i = n), M.filter(Xo.DOM.getParents(i.container(), "*", o), r)); return E.from(a[a.length - 1]); }, isRtl: function(e) { return ( "rtl" === Xo.DOM.getStyle(e, "direction", !0) || gu(e.textContent) ); }, isAtZwsp: function(e) { return mi.isBeforeInline(e) || mi.isAfterInline(e); }, normalizePosition: hu, normalizeForwards: y.curry(hu, !0), normalizeBackwards: y.curry(hu, !1), hasSameParentBlock: function(e, t, n) { var r = _a.getParentBlock(t, e), o = _a.getParentBlock(n, e); return r && r === o; } }, yu = function(e, t) { return Dr.contains(e, t) ? nu.closest( t, function(e) { return io.isTextBlock(e) || io.isListItem(e); }, ((n = e), function(e) { return Dr.eq(n, Hn.fromDom(e.dom().parentNode)); }) ) : E.none(); var n; }, bu = 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)); }, Cu = function(e, t, n) { return hs([Ws.firstPositionIn(n), Ws.lastPositionIn(n)], function(r, o) { var i = vu.normalizePosition(!0, r), a = vu.normalizePosition(!1, o), s = vu.normalizePosition(!1, t); return e ? Ws.nextPosition(n, s) .map(function(e) { return e.isEqual(a) && t.isEqual(i); }) .getOr(!1) : Ws.prevPosition(n, s) .map(function(e) { return e.isEqual(i) && t.isEqual(a); }) .getOr(!1); }).getOr(!0); }, xu = function(e, t, n) { return nu.ancestor( e, function(e) { return _r.is(e, t); }, n ); }, wu = xu, Nu = function(e, t) { return _r.one(t, e); }, Eu = function(e, t, n) { return Qs(_r.is, xu, e, t, n); }, Su = function(e, t, n) { return wu(e, t, n).isSome(); }, ku = function(e, t) { return ( vo.isText(t) && /^[ \t\r\n]*$/.test(t.data) && !1 === ((n = e), (r = t), (o = Hn.fromDom(n)), (i = Hn.fromDom(r)), Su(i, "pre,code", y.curry(Dr.eq, o))) ); var n, r, o, i; }, Tu = function(e, t) { return ( (Ei(t) && !1 === ku(e, t)) || ((n = t), vo.isElement(n) && "A" === n.nodeName && n.hasAttribute("name")) || Au(t) ); var n; }, Au = vo.hasAttribute("data-mce-bookmark"), _u = vo.hasAttribute("data-mce-bogus"), Bu = vo.hasAttributeValue("data-mce-bogus", "all"), Ru = function(e) { return (function(e) { var t, n, r = 0; if (Tu(e, e)) return !1; if (!(n = e.firstChild)) return !0; t = new to(n, e); do { if (Bu(n)) n = t.next(!0); else if (_u(n)) n = t.next(); else if (vo.isBr(n)) r++, (n = t.next()); else { if (Tu(e, n)) return !1; n = t.next(); } } while (n); return r <= 1; })(e.dom()); }, Du = xr("block", "position"), Ou = xr("from", "to"), Pu = function(e, t) { var n = Hn.fromDom(e), r = Hn.fromDom(t.container()); return yu(n, r).map(function(e) { return Du(e, t); }); }, Iu = function(e, t, n) { var r = Pu(e, ia.fromRangeStart(n)), o = r.bind(function(n) { return Ws.fromPosition(t, e, n.position()).bind(function(n) { return Pu(e, n).map(function(n) { return ( (r = e), (o = t), (i = n), vo.isBr(i.position().getNode()) && !1 === Ru(i.block()) ? Ws.positionIn(!1, i.block().dom()) .bind(function(e) { return e.isEqual(i.position()) ? Ws.fromPosition(o, r, e).bind(function(e) { return Pu(r, e); }) : E.some(i); }) .getOr(i) : i ); var r, o, i; }); }); }); return hs([r, o], Ou).filter(function(e) { return ( (r = e), !1 === Dr.eq(r.from().block(), r.to().block()) && ((n = e), Ur.parent(n.from().block()) .bind(function(e) { return Ur.parent(n.to().block()).filter(function(t) { return Dr.eq(e, t); }); }) .isSome()) && ((t = e), !1 === vo.isContentEditableFalse(t.from().block()) && !1 === vo.isContentEditableFalse(t.to().block())) ); var t, n, r; }); }, Lu = function(e, t, n) { return n.collapsed ? Iu(e, t, n) : E.none(); }, Mu = function(e, t, n) { return Dr.contains(t, e) ? Ur.parents(e, function(e) { return n(e) || Dr.eq(e, t); }).slice(0, -1) : []; }, Fu = function(e, t) { return Mu(e, t, y.constant(!1)); }, zu = Fu, Uu = function(e, t) { return [e].concat(Fu(e, t)); }, Vu = function(e) { var t, n, r = ((t = e), (n = Ur.children(t)), M.findIndex(n, io.isBlock).fold( function() { return n; }, function(e) { return n.slice(0, e); } )); return ( M.each(r, function(e) { Bs.remove(e); }), r ); }, Hu = function(e, t) { Ws.positionIn(e, t.dom()).each(function(e) { var t = e.getNode(); vo.isBr(t) && Bs.remove(Hn.fromDom(t)); }); }, qu = function(e, t) { var n = Uu(t, e); return M.find(n.reverse(), Ru).each(Bs.remove); }, ju = function(e, t) { return Dr.contains(t, e) ? Ur.parent(e).bind(function(n) { return Dr.eq(n, t) ? E.some(e) : ((r = t), (o = e), (i = Ur.parents(o, function(e) { return Dr.eq(e, r); })), E.from(i[i.length - 2])); var r, o, i; }) : E.none(); }, $u = function(e, t, n) { if (Ru(n)) return Bs.remove(n), Ru(t) && Is(t), Ws.firstPositionIn(t.dom()); Hu(!0, t), Hu(!1, n); var r = Vu(t); return ju(t, n).fold( function() { qu(e, t); var o = Ws.lastPositionIn(n.dom()); return ( M.each(r, function(e) { ks.append(n, e); }), o ); }, function(o) { var i = Ws.prevPosition(n.dom(), ia.before(o.dom())); return ( M.each(r, function(e) { ks.before(o, e); }), qu(e, t), i ); } ); }, Wu = function(e, t, n, r) { return t ? $u(e, r, n) : $u(e, n, r); }, Ku = function(e, t) { var n, r = Hn.fromDom(e.getBody()); return ( (n = Lu(r.dom(), t, e.selection.getRng()).bind(function(e) { return Wu(r, t, e.from().block(), e.to().block()); })).each(function(t) { e.selection.setRng(t.toRange()); }), n.isSome() ); }, Xu = function(e, t) { var n = Hn.fromDom(t), r = y.curry(Dr.eq, e); return nu.ancestor(n, io.isTableCell, r).isSome(); }, Yu = function(e, t) { var n, r, o = Ws.prevPosition(e.dom(), ia.fromRangeStart(t)).isNone(), i = Ws.nextPosition(e.dom(), ia.fromRangeEnd(t)).isNone(); return ( !(Xu((n = e), (r = t).startContainer) || Xu(n, r.endContainer)) && o && i ); }, Gu = function(e) { var t, n, r, o, i = Hn.fromDom(e.getBody()), a = e.selection.getRng(); return Yu(i, a) ? ((o = e).setContent(""), o.selection.setCursorLocation(), !0) : ((t = i), (n = e.selection), (r = n.getRng()), hs( [ yu(t, Hn.fromDom(r.startContainer)), yu(t, Hn.fromDom(r.endContainer)) ], function(e, o) { return ( !1 === Dr.eq(e, o) && (r.deleteContents(), Wu(t, !0, e, o).each(function(e) { n.setRng(e.toRange()); }), !0) ); } ).getOr(!1)); }, Ju = function(e, t) { return !e.selection.isCollapsed() && Gu(e); }, Qu = function(e) { if (!tr.isArray(e)) throw new Error("cases must be an array"); if (0 === e.length) throw new Error("there must be at least one case"); var t = [], n = {}; return ( M.each(e, function(r, o) { var i = sr.keys(r); if (1 !== i.length) throw new Error("one and only one name per case"); var a = i[0], s = r[a]; if (n[a] !== undefined) throw new Error("duplicate key detected:" + a); if ("cata" === a) throw new Error("cannot have a case named cata (sorry)"); if (!tr.isArray(s)) throw new Error("case arguments must be an array"); t.push(a), (n[a] = function() { var n = arguments.length; if (n !== s.length) throw new Error( "Wrong number of arguments to case " + a + ". Expected " + s.length + " (" + s + "), got " + n ); for (var r = new Array(n), i = 0; i < r.length; i++) r[i] = arguments[i]; return { fold: function() { if (arguments.length !== e.length) throw new Error( "Wrong number of arguments to fold. Expected " + e.length + ", got " + arguments.length ); return arguments[o].apply(null, r); }, match: function(e) { var n = sr.keys(e); if (t.length !== n.length) throw new Error( "Wrong number of arguments to match. Expected: " + t.join(",") + "\nActual: " + n.join(",") ); if ( !M.forall(t, function(e) { return M.contains(n, e); }) ) throw new Error( "Not all branches were specified when using match. Specified: " + n.join(", ") + "\nRequired: " + t.join(", ") ); return e[a].apply(null, r); }, log: function(e) { console.log(e, { constructors: t, constructor: a, params: r }); } }; }); }), n ); }, Zu = Qu([ { remove: ["element"] }, { moveToElement: ["element"] }, { moveToPosition: ["position"] } ]), ec = function(e, t, n, r) { var o = r.getNode(!1 === t); return yu(Hn.fromDom(e), Hn.fromDom(n.getNode())) .map(function(e) { return Ru(e) ? Zu.remove(e.dom()) : Zu.moveToElement(o); }) .orThunk(function() { return E.some(Zu.moveToElement(o)); }); }, tc = function(e, t, n) { return Ws.fromPosition(t, e, n).bind(function(r) { return t && vo.isContentEditableFalse(r.getNode()) ? ec(e, t, n, r) : !1 === t && vo.isContentEditableFalse(r.getNode(!0)) ? ec(e, t, n, r) : t && _a.isAfterContentEditableFalse(n) ? E.some(Zu.moveToPosition(r)) : !1 === t && _a.isBeforeContentEditableFalse(n) ? E.some(Zu.moveToPosition(r)) : E.none(); }); }, nc = function(e, t, n) { return ( (i = t), (a = n.getNode(!1 === i)), (s = i ? "after" : "before"), vo.isElement(a) && a.getAttribute("data-mce-caret") === s ? ((r = t), (o = n.getNode(!1 === t)), r && vo.isContentEditableFalse(o.nextSibling) ? E.some(Zu.moveToElement(o.nextSibling)) : !1 === r && vo.isContentEditableFalse(o.previousSibling) ? E.some(Zu.moveToElement(o.previousSibling)) : E.none()).fold(function() { return tc(e, t, n); }, E.some) : tc(e, t, n).bind(function(t) { return ( (r = e), (o = n), t.fold( function(e) { return E.some(Zu.remove(e)); }, function(e) { return E.some(Zu.moveToElement(e)); }, function(e) { return _a.isInSameBlock(o, e, r) ? E.none() : E.some(Zu.moveToPosition(e)); } ) ); var r, o; }) ); var r, o, i, a, s; }, rc = function(e, t, n) { var r = _a.normalizeRange(t ? 1 : -1, e, n), o = ia.fromRangeStart(r); return !1 === t && _a.isAfterContentEditableFalse(o) ? E.some(Zu.remove(o.getNode(!0))) : t && _a.isBeforeContentEditableFalse(o) ? E.some(Zu.remove(o.getNode())) : nc(e, t, o); }, oc = function(e, t) { return ( (r = e), (o = (n = t).container()), (i = n.offset()), !1 === ia.isTextPosition(n) && o === r.parentNode && i > ia.before(r).offset() ? new ia(t.container(), t.offset() - 1) : t ); var n, r, o, i; }, ic = function(e) { return Ei(e.previousSibling) ? E.some( ((t = e.previousSibling), vo.isText(t) ? new ia(t, t.data.length) : ia.after(t)) ) : e.previousSibling ? Ws.lastPositionIn(e.previousSibling) : E.none(); var t; }, ac = function(e) { return Ei(e.nextSibling) ? E.some( ((t = e.nextSibling), vo.isText(t) ? new ia(t, 0) : ia.before(t)) ) : e.nextSibling ? Ws.firstPositionIn(e.nextSibling) : E.none(); var t; }, sc = function(e, t) { return ic(t) .orThunk(function() { return ac(t); }) .orThunk(function() { return ( (n = e), (r = t), (o = ia.before( r.previousSibling ? r.previousSibling : r.parentNode )), Ws.prevPosition(n, o).fold(function() { return Ws.nextPosition(n, ia.after(r)); }, E.some) ); var n, r, o; }); }, uc = function(e, t) { return ac(t) .orThunk(function() { return ic(t); }) .orThunk(function() { return ( (n = e), (r = t), Ws.nextPosition(n, ia.after(r)).fold(function() { return Ws.prevPosition(n, ia.before(r)); }, E.some) ); var n, r; }); }, cc = function(e, t, n) { return ((r = e), (o = t), (i = n), r ? uc(o, i) : sc(o, i)).map( y.curry(oc, n) ); var r, o, i; }, lc = function(e, t, n) { n.fold( function() { e.focus(); }, function(n) { e.selection.setRng(n.toRange(), t); } ); }, fc = function(e, t) { return t && e.schema.getBlockElements().hasOwnProperty(Zn.name(t)); }, dc = function(e) { if (Ru(e)) { var t = Hn.fromHtml('
'); return Bs.empty(e), ks.append(e, t), E.some(ia.before(t.dom())); } return E.none(); }, mc = function(e, t, n) { var r, o, i, a = cc(t, e.getBody(), n.dom()), s = nu.ancestor( n, y.curry(fc, e), ((r = e.getBody()), function(e) { return e.dom() === r; }) ), u = ((o = n), (i = a), hs([Ur.prevSibling(o), Ur.nextSibling(o), i], function(e, t, n) { var r, i = e.dom(), a = t.dom(); return vo.isText(i) && vo.isText(a) ? ((r = i.data.length), i.appendData(a.data), Bs.remove(t), Bs.remove(o), n.container() === a ? new ia(i, r) : n) : (Bs.remove(o), n); }).orThunk(function() { return Bs.remove(o), i; })); e.dom.isEmpty(e.getBody()) ? (e.setContent(""), e.selection.setCursorLocation()) : s.bind(dc).fold( function() { lc(e, t, u); }, function(n) { lc(e, t, E.some(n)); } ); }, pc = function(e, t) { return rc(e.getBody(), t, e.selection.getRng()) .map(function(n) { return n.fold( ((a = e), (s = t), function(e) { return ( a._selectionOverrides.hideFakeCaret(), mc(a, s, Hn.fromDom(e)), !0 ); }), ((o = e), (i = t), function(e) { var t = i ? ia.before(e) : ia.after(e); return o.selection.setRng(t.toRange()), !0; }), ((r = e), function(e) { return r.selection.setRng(e.toRange()), !0; }) ); var r, o, i, a, s; }) .getOr(!1); }, gc = function(e, t) { var n, r = e.selection.getNode(); return ( !!vo.isContentEditableFalse(r) && ((n = Hn.fromDom(e.getBody())), M.each(Os(n, ".mce-offscreen-selection"), Bs.remove), mc(e, t, Hn.fromDom(e.selection.getNode())), bu(e), !0) ); }, hc = function(e, t) { return e.selection.isCollapsed() ? pc(e, t) : gc(e, t); }, vc = function(e) { var t, n = (function(e, t) { for (; t && t !== e; ) { if (vo.isContentEditableTrue(t) || vo.isContentEditableFalse(t)) return t; t = t.parentNode; } return null; })(e.getBody(), e.selection.getNode()); return ( vo.isContentEditableTrue(n) && e.dom.isBlock(n) && e.dom.isEmpty(n) && ((t = e.dom.create("br", { "data-mce-bogus": "1" })), e.dom.setHTML(n, ""), n.appendChild(t), e.selection.setRng(ia.before(t).toRange())), !0 ); }, yc = vo.isText, bc = function(e) { return yc(e) && e.data[0] === oi; }, Cc = function(e) { return yc(e) && e.data[e.data.length - 1] === oi; }, xc = function(e) { return e.ownerDocument.createTextNode(oi); }, wc = function(e, t) { return e ? (function(e) { if (yc(e.previousSibling)) return Cc(e.previousSibling) ? e.previousSibling : (e.previousSibling.appendData(oi), e.previousSibling); if (yc(e)) return bc(e) ? e : (e.insertData(0, oi), e); var t = xc(e); return e.parentNode.insertBefore(t, e), t; })(t) : (function(e) { if (yc(e.nextSibling)) return bc(e.nextSibling) ? e.nextSibling : (e.nextSibling.insertData(0, oi), e.nextSibling); if (yc(e)) return Cc(e) ? e : (e.appendData(oi), e); var t = xc(e); return ( e.nextSibling ? e.parentNode.insertBefore(t, e.nextSibling) : e.parentNode.appendChild(t), t ); })(t); }, Nc = { insertInline: wc, insertInlineBefore: y.curry(wc, !0), insertInlineAfter: y.curry(wc, !1) }, Ec = vo.isElement, Sc = vo.isText, kc = function(e) { var t = e.parentNode; t && t.removeChild(e); }, Tc = function(e, t) { 0 === t.length ? kc(e) : (e.nodeValue = t); }, Ac = function(e) { var t = ii(e); return { count: e.length - t.length, text: t }; }, _c = function(e, t) { return Dc(e), t; }, Bc = function(e, t) { return t.container() === e ? ((r = t), (o = Ac((n = e).data.substr(0, r.offset()))), (i = Ac(n.data.substr(r.offset()))), (a = o.text + i.text).length > 0 ? (Tc(n, a), new ia(n, r.offset() - o.count)) : r) : _c(e, t); var n, r, o, i, a; }, Rc = function(e, t) { return t.container() === e.parentNode ? ((n = e), (o = (r = t).container()), (i = M.indexOf(o.childNodes, n) .map(function(e) { return e < r.offset() ? new ia(o, r.offset() - 1) : r; }) .getOr(r)), Dc(n), i) : _c(e, t); var n, r, o, i; }, Dc = function(e) { if ( (Ec(e) && mi.isCaretContainer(e) && (mi.hasContent(e) ? e.removeAttribute("data-mce-caret") : kc(e)), Sc(e)) ) { var t = ii( (function(e) { try { return e.nodeValue; } catch (t) { return ""; } })(e) ); Tc(e, t); } }, Oc = { removeAndReposition: function(e, t) { return ia.isTextPosition(t) ? Bc(e, t) : Rc(e, t); }, remove: Dc }, Pc = function(e, t) { return vo.isText(e.container()) ? Nc.insertInline(t, e.container()) : Nc.insertInline(t, e.getNode()); }, Ic = function(e, t) { var n = t.get(); return n && e.container() === n && mi.isCaretContainerInline(n); }, Lc = function(e, t) { return t.fold( function(t) { Oc.remove(e.get()); var n = Nc.insertInlineBefore(t); return e.set(n), E.some(new ia(n, n.length - 1)); }, function(t) { return Ws.firstPositionIn(t).map(function(t) { if (Ic(t, e)) return new ia(e.get(), 1); Oc.remove(e.get()); var n = Pc(t, !0); return e.set(n), new ia(n, 1); }); }, function(t) { return Ws.lastPositionIn(t).map(function(t) { if (Ic(t, e)) return new ia(e.get(), e.get().length - 1); Oc.remove(e.get()); var n = Pc(t, !1); return e.set(n), new ia(n, n.length - 1); }); }, function(t) { Oc.remove(e.get()); var n = Nc.insertInlineAfter(t); return e.set(n), E.some(new ia(n, 1)); } ); }, Mc = function(e) { return e && /^(IMG)$/.test(e.nodeName); }, Fc = function(e) { return e && 3 === e.nodeType && /^([\t \r\n]+|)$/.test(e.nodeValue); }, zc = 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 ); }, Uc = { isInlineBlock: Mc, moveStart: function(e, t, n) { var r, o, i, a = n.startContainer, s = n.startOffset; if ( (n.startContainer !== n.endContainer || !Mc(n.startContainer.childNodes[n.startOffset])) && (3 === a.nodeType && s >= a.nodeValue.length && ((s = e.nodeIndex(a)), (a = a.parentNode)), 1 === a.nodeType) ) for ( s < (i = a.childNodes).length ? ((a = i[s]), (r = new to(a, e.getParent(a, e.isBlock)))) : ((a = i[i.length - 1]), (r = new to(a, e.getParent(a, e.isBlock))).next(!0)), o = r.current(); o; o = r.next() ) if (3 === o.nodeType && !Fc(o)) return n.setStart(o, 0), void t.setRng(n); }, getNonWhiteSpaceSibling: function(e, t, n) { if (e) for ( t = t ? "nextSibling" : "previousSibling", e = n ? e : e[t]; e; e = e[t] ) if (1 === e.nodeType || !Fc(e)) return e; }, isTextBlock: function(e, t) { return ( t.nodeType && (t = t.nodeName), !!e.schema.getTextBlockElements()[t.toLowerCase()] ); }, isValid: function(e, t, n) { return e.schema.isValidChild(t, n); }, isWhiteSpaceNode: Fc, replaceVars: function(e, t) { return ( "string" != typeof e ? (e = e(t)) : t && (e = e.replace(/%(\w+)/g, function(e, n) { return t[n] || e; })), e ); }, isEq: function(e, t) { return ( (e = e || ""), (t = t || ""), (e = "" + (e.nodeName || e)), (t = "" + (t.nodeName || t)), e.toLowerCase() === t.toLowerCase() ); }, normalizeStyleValue: zc, getStyle: function(e, t, n) { return zc(e, e.getStyle(t, n), n); }, getTextDecoration: function(e, t) { var n; return ( e.getParent(t, function(t) { return (n = e.getStyle(t, "text-decoration")) && "none" !== n; }), n ); }, getParents: function(e, t, n) { return e.getParents(t, n, e.getRoot()); } }, Vc = xs.isBookmarkNode, Hc = Uc.getParents, qc = Uc.isWhiteSpaceNode, jc = Uc.isTextBlock, $c = function(e, t) { for ( void 0 === t && (t = 3 === e.nodeType ? e.length : e.childNodes.length); e && e.hasChildNodes(); ) (e = e.childNodes[t]) && (t = 3 === e.nodeType ? e.length : e.childNodes.length); return { node: e, offset: t }; }, Wc = function(e, t) { for (var n = t; n; ) { if (1 === n.nodeType && e.getContentEditable(n)) return "false" === e.getContentEditable(n) ? n : t; n = n.parentNode; } return t; }, Kc = function(e, t, n, r) { var o, i, a = n.nodeValue; return ( void 0 === r && (r = e ? a.length : 0), e ? -1 === (o = (o = a.lastIndexOf(" ", r)) > (i = a.lastIndexOf("\xa0", r)) ? o : i) || t || o++ : ((o = a.indexOf(" ", r)), (i = a.indexOf("\xa0", r)), (o = -1 !== o && (-1 === i || o < i) ? o : i)), o ); }, Xc = function(e, t, n, r, o, i) { var a, s, u, c; if (3 === n.nodeType) { if (-1 !== (u = Kc(o, i, n, r))) return { container: n, offset: u }; c = n; } for ( a = new to(n, e.getParent(n, e.isBlock) || t); (s = a[o ? "prev" : "next"]()); ) if (3 === s.nodeType) { if (((c = s), -1 !== (u = Kc(o, i, s)))) return { container: s, offset: u }; } else if (e.isBlock(s)) break; if (c) return { container: c, offset: (r = o ? 0 : c.length) }; }, Yc = function(e, t, n, r, o) { var i, a, s, u; for ( 3 === r.nodeType && 0 === r.nodeValue.length && r[o] && (r = r[o]), i = Hc(e, r), a = 0; a < i.length; a++ ) for (s = 0; s < t.length; s++) if ( !("collapsed" in (u = t[s]) && u.collapsed !== n.collapsed) && e.is(i[a], u.selector) ) return i[a]; return r; }, Gc = function(e, t, n, r) { var o, i = e.dom, a = i.getRoot(); if ((t[0].wrapper || (o = i.getParent(n, t[0].block, a)), !o)) { var s = i.getParent(n, "LI,TD,TH"); o = i.getParent( 3 === n.nodeType ? n.parentNode : n, function(t) { return t !== a && jc(e, t); }, s ); } if ((o && t[0].wrapper && (o = Hc(i, o, "ul,ol").reverse()[0] || o), !o)) for ( o = n; o[r] && !i.isBlock(o[r]) && ((o = o[r]), !Uc.isEq(o, "br")); ); return o || n; }, Jc = function(e, t, n, r, o, i, a) { var s, u, c, l, f, d; if ( ((s = u = a ? n : o), (l = a ? "previousSibling" : "nextSibling"), (f = e.getRoot()), 3 === s.nodeType && !qc(s) && (a ? r > 0 : i < s.nodeValue.length)) ) return s; for (;;) { if (!t[0].block_expand && e.isBlock(u)) return u; for (c = u[l]; c; c = c[l]) if ( !Vc(c) && !qc(c) && ("BR" !== (d = c).nodeName || !d.getAttribute("data-mce-bogus") || d.nextSibling) ) return u; if (u === f || u.parentNode === f) { s = u; break; } u = u.parentNode; } return s; }, Qc = function(e, t, n, r) { var o, i = t.startContainer, a = t.startOffset, s = t.endContainer, u = t.endOffset, c = e.dom; return ( 1 === i.nodeType && i.hasChildNodes() && 3 === (i = zi(i, a)).nodeType && (a = 0), 1 === s.nodeType && s.hasChildNodes() && 3 === (s = zi(s, t.collapsed ? u : u - 1)).nodeType && (u = s.nodeValue.length), (i = Wc(c, i)), (s = Wc(c, s)), (Vc(i.parentNode) || Vc(i)) && 3 === (i = (i = Vc(i) ? i : i.parentNode).nextSibling || i).nodeType && (a = 0), (Vc(s.parentNode) || Vc(s)) && 3 === (s = (s = Vc(s) ? s : s.parentNode).previousSibling || s) .nodeType && (u = s.length), n[0].inline && (t.collapsed && ((o = Xc(c, e.getBody(), i, a, !0, r)) && ((i = o.container), (a = o.offset)), (o = Xc(c, e.getBody(), s, u, !1, r)) && ((s = o.container), (u = o.offset))), (s = r ? s : (function(e, t) { var n = $c(e, t); if (n.node) { for (; n.node && 0 === n.offset && n.node.previousSibling; ) n = $c(n.node.previousSibling); n.node && n.offset > 0 && 3 === n.node.nodeType && " " === n.node.nodeValue.charAt(n.offset - 1) && n.offset > 1 && (e = n.node).splitText(n.offset - 1); } return e; })(s, u))), (n[0].inline || n[0].block_expand) && ((n[0].inline && 3 === i.nodeType && 0 !== a) || (i = Jc(c, n, i, a, s, u, !0)), (n[0].inline && 3 === s.nodeType && u !== s.nodeValue.length) || (s = Jc(c, n, i, a, s, u, !1))), n[0].selector && !1 !== n[0].expand && !n[0].inline && ((i = Yc(c, n, t, i, "previousSibling")), (s = Yc(c, n, t, s, "nextSibling"))), (n[0].block || n[0].selector) && ((i = Gc(e, n, i, "previousSibling")), (s = Gc(e, n, s, "nextSibling")), n[0].block && (c.isBlock(i) || (i = Jc(c, n, i, a, s, u, !0)), c.isBlock(s) || (s = Jc(c, n, i, a, s, u, !1)))), 1 === i.nodeType && ((a = c.nodeIndex(i)), (i = i.parentNode)), 1 === s.nodeType && ((u = c.nodeIndex(s) + 1), (s = s.parentNode)), { startContainer: i, startOffset: a, endContainer: s, endOffset: u } ); }, Zc = Uc.isEq, el = 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; }, tl = function(e, t, n, r) { var o = e.dom.getRoot(); return ( t !== o && ((t = e.dom.getParent(t, function(t) { return !!el(e, t, n) || t.parentNode === o || !!ol(e, t, n, r, !0); })), ol(e, t, n, r)) ); }, nl = function(e, t, n) { return ( !!Zc(t, n.inline) || !!Zc(t, n.block) || (n.selector ? 1 === t.nodeType && e.is(t, n.selector) : void 0) ); }, rl = function(e, t, n, r, o, i) { var a, s, u, 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 ( ((s = "attributes" === r ? e.getAttrib(t, a) : Uc.getStyle(e, t, a)), o && !s && !n.exact) ) return; if ( (!o || n.exact) && !Zc(s, Uc.normalizeStyleValue(e, Uc.replaceVars(c[a], i), a)) ) return; } } else for (u = 0; u < c.length; u++) if ( "attributes" === r ? e.getAttrib(t, c[u]) : Uc.getStyle(e, t, c[u]) ) return n; return n; }, ol = function(e, t, n, r, o) { var i, a, s, u, c = e.formatter.get(n), l = e.dom; if (c && t) for (a = 0; a < c.length; a++) if ( ((i = c[a]), nl(e.dom, t, i) && rl(l, t, i, "attributes", o, r) && rl(l, t, i, "styles", o, r)) ) { if ((u = i.classes)) for (s = 0; s < u.length; s++) if (!e.dom.hasClass(t, u[s])) return; return i; } }, il = { matchNode: ol, matchName: nl, match: function(e, t, n, r) { var o; return r ? tl(e, r, t, n) : ((r = e.selection.getNode()), !!tl(e, r, t, n) || !((o = e.selection.getStart()) === r || !tl(e, o, t, n))); }, matchAll: function(e, t, n) { var r, o = [], i = {}; return ( (r = e.selection.getStart()), e.dom.getParent( r, function(r) { var a, s; for (a = 0; a < t.length; a++) (s = t[a]), !i[s] && ol(e, r, s, n) && ((i[s] = !0), o.push(s)); }, e.dom.getRoot() ), o ); }, canApply: function(e, t) { var n, r, o, i, a, s = e.formatter.get(t), u = e.dom; if (s) for ( n = e.selection.getStart(), r = Uc.getParents(u, n), i = s.length - 1; i >= 0; i-- ) { if (!(a = s[i].selector) || s[i].defaultBlock) return !0; for (o = r.length - 1; o >= 0; o--) if (u.is(r[o], a)) return !0; } return !1; }, matchesUnInheritedFormatSelector: el }, al = function(e, t) { return e.splitText(t); }, sl = { split: function(e) { var t = e.startContainer, n = e.startOffset, r = e.endContainer, o = e.endOffset; return ( t === r && vo.isText(t) ? n > 0 && n < t.nodeValue.length && ((t = (r = al(t, n)).previousSibling), o > n ? ((t = r = al(r, (o -= n)).previousSibling), (o = r.nodeValue.length), (n = 0)) : (o = 0)) : (vo.isText(t) && n > 0 && n < t.nodeValue.length && ((t = al(t, n)), (n = 0)), vo.isText(r) && o > 0 && o < r.nodeValue.length && (o = (r = al(r, o).previousSibling).nodeValue.length)), { startContainer: t, startOffset: n, endContainer: r, endOffset: o } ); } }, ul = oi, cl = "_mce_caret", ll = function(e) { return 1 === e.nodeType && e.id === cl; }, fl = function(e) { return ( (function(e) { for (var t = []; e; ) { if ( (3 === e.nodeType && e.nodeValue !== ul) || e.childNodes.length > 1 ) return []; 1 === e.nodeType && t.push(e), (e = e.firstChild); } return t; })(e).length > 0 ); }, dl = function(e) { var t; if (e) for (e = (t = new to(e, e)).current(); e; e = t.next()) if (3 === e.nodeType) return e; return null; }, ml = function(e) { var t = Hn.fromTag("span"); return ( dr.setAll(t, { id: cl, "data-mce-bogus": "1", "data-mce-type": "format-caret" }), e && ks.append(t, Hn.fromText(ul)), t ); }, pl = function(e, t) { for (; t && t !== e; ) { if (t.id === cl) return t; t = t.parentNode; } return null; }, gl = function(e, t, n, r) { var o, i, a, s; (o = t.getRng(!0)), (i = e.getParent(n, e.isBlock)), fl(n) ? (!1 !== r && (o.setStartBefore(n), o.setEndBefore(n)), e.remove(n)) : ((s = dl(n)) && s.nodeValue.charAt(0) === ul && s.deleteData(0, 1), (a = s), o.startContainer === a && o.startOffset > 0 && o.setStart(a, o.startOffset - 1), o.endContainer === a && o.endOffset > 0 && o.setEnd(a, o.endOffset - 1), e.remove(n, !0)), i && e.isEmpty(i) && Is(Hn.fromDom(i)), t.setRng(o); }, hl = function(e, t, n, r, o) { if (r) gl(t, n, r, o); else if (!(r = pl(e, n.getStart()))) for (; (r = t.get(cl)); ) gl(t, n, r, !1); }, vl = function(e, t, n) { var r = e.dom, o = r.getParent(n, ji.curry(Uc.isTextBlock, e)); o && r.isEmpty(o) ? n.parentNode.replaceChild(t, n) : (Ps(Hn.fromDom(n)), r.isEmpty(n) ? n.parentNode.replaceChild(t, n) : r.insertAfter(t, n)); }, yl = function(e, t) { return e.appendChild(t), t; }, bl = function(e, t) { var n = M.foldr( e, function(e, t) { return yl(e, t.cloneNode(!1)); }, t ); return yl(n, n.ownerDocument.createTextNode(ul)); }, Cl = function(e) { var t = e.dom, n = e.selection, r = e.getBody(); e.on("mouseup keydown", function(e) { var o, i, a, s; (o = r), (i = t), (a = n), (s = e.keyCode), hl(o, i, a, null, !1), 8 === s && a.isCollapsed() && a.getStart().innerHTML === ul && hl(o, i, a, pl(o, a.getStart())), (37 !== s && 39 !== s) || hl(o, i, a, pl(o, a.getStart())); }); }, xl = function(e, t, n) { var r, o, i, a, s, u, c = e.selection; (a = (r = c.getRng(!0)).startOffset), (u = r.startContainer.nodeValue), (o = pl(e.getBody(), c.getStart())) && (i = dl(o)); var l, f, d = /[^\s\u00a0\u00ad\u200b\ufeff]/; u && a > 0 && a < u.length && d.test(u.charAt(a)) && d.test(u.charAt(a - 1)) ? ((s = c.getBookmark()), r.collapse(!0), (r = Qc(e, r, e.formatter.get(t))), (r = sl.split(r)), e.formatter.apply(t, n, r), c.moveToBookmark(s)) : (o && i.nodeValue === ul ? e.formatter.apply(t, n, o) : ((l = e.getDoc()), (f = ml(!0).dom()), (i = (o = l.importNode(f, !0)).firstChild), r.insertNode(o), (a = 1), e.formatter.apply(t, n, o)), c.setCursorLocation(i, a)); }, wl = function(e, t, n, r) { var o, i, a, s, u, c, l, f = e.dom, d = e.selection, m = [], p = d.getRng(); for ( o = p.startContainer, i = p.startOffset, u = o, 3 === o.nodeType && (i !== o.nodeValue.length && (s = !0), (u = u.parentNode)); u; ) { if (il.matchNode(e, u, t, n, r)) { c = u; break; } u.nextSibling && (s = !0), m.push(u), (u = u.parentNode); } if (c) if (s) { (a = d.getBookmark()), p.collapse(!0); var g = Qc(e, p, e.formatter.get(t), !0); (g = sl.split(g)), e.formatter.remove(t, n, g), d.moveToBookmark(a); } else { l = pl(e.getBody(), c); var h = ml(!1).dom(), v = bl(m, h); vl(e, h, l || c), gl(f, d, l, !1), d.setCursorLocation(v, 1), f.isEmpty(c) && f.remove(c); } }, Nl = ll, El = pl, Sl = function(e, t) { var n = ml(!1), r = bl(t, n.dom()); return ks.before(Hn.fromDom(e), n), Bs.remove(Hn.fromDom(e)), ia(r, 0); }, kl = function(e, t) { return ( e.schema.getTextInlineElements().hasOwnProperty(Zn.name(t)) && !ll(t.dom()) && !vo.isBogus(t.dom()) ); }, Tl = function(e, t) { for (var n = 0; n < e.length; n++) { var r = e[n].apply(null, t); if (r.isSome()) return r; } return E.none(); }, Al = Qu([ { before: ["element"] }, { start: ["element"] }, { end: ["element"] }, { after: ["element"] } ]), _l = function(e, t) { var n = _a.getParentBlock(t, e); return n || e; }, Bl = function(e, t, n) { var r = vu.normalizeForwards(n), o = _l(t, r.container()); return vu.findRootInline(e, o, r).fold(function() { return Ws.nextPosition(o, r) .bind(y.curry(vu.findRootInline, e, o)) .map(function(e) { return Al.before(e); }); }, E.none); }, Rl = function(e, t) { return null === El(e, t); }, Dl = function(e, t, n) { return vu.findRootInline(e, t, n).filter(y.curry(Rl, t)); }, Ol = function(e, t, n) { var r = vu.normalizeBackwards(n); return Dl(e, t, r).bind(function(e) { return Ws.prevPosition(e, r).isNone() ? E.some(Al.start(e)) : E.none(); }); }, Pl = function(e, t, n) { var r = vu.normalizeForwards(n); return Dl(e, t, r).bind(function(e) { return Ws.nextPosition(e, r).isNone() ? E.some(Al.end(e)) : E.none(); }); }, Il = function(e, t, n) { var r = vu.normalizeBackwards(n), o = _l(t, r.container()); return vu.findRootInline(e, o, r).fold(function() { return Ws.prevPosition(o, r) .bind(y.curry(vu.findRootInline, e, o)) .map(function(e) { return Al.after(e); }); }, E.none); }, Ll = function(e) { return !1 === vu.isRtl(Fl(e)); }, Ml = function(e, t, n) { return Tl([Bl, Ol, Pl, Il], [e, t, n]).filter(Ll); }, Fl = function(e) { return e.fold(y.identity, y.identity, y.identity, y.identity); }, zl = function(e) { return e.fold( y.constant("before"), y.constant("start"), y.constant("end"), y.constant("after") ); }, Ul = function(e) { return e.fold(Al.before, Al.before, Al.after, Al.after); }, Vl = function(e, t, n, r, o, i) { return hs( [vu.findRootInline(t, n, r), vu.findRootInline(t, n, o)], function(t, r) { return t !== r && vu.hasSameParentBlock(n, t, r) ? Al.after(e ? t : r) : i; } ).getOr(i); }, Hl = function(e, t) { return e.fold(y.constant(!0), function(e) { return (r = t), !(zl((n = e)) === zl(r) && Fl(n) === Fl(r)); var n, r; }); }, ql = function(e, t) { return e ? t.fold( y.compose( E.some, Al.start ), E.none, y.compose( E.some, Al.after ), E.none ) : t.fold( E.none, y.compose( E.some, Al.before ), E.none, y.compose( E.some, Al.end ) ); }, jl = function(e, t, n, r) { var o = vu.normalizePosition(e, r), i = Ml(t, n, o); return Ml(t, n, o) .bind(y.curry(ql, e)) .orThunk(function() { return ( (o = e), (a = t), (s = n), (u = i), (c = r), (l = vu.normalizePosition(o, c)), Ws.fromPosition(o, s, l) .map(y.curry(vu.normalizePosition, o)) .fold( function() { return u.map(Ul); }, function(e) { return Ml(a, s, e) .map(y.curry(Vl, o, a, s, l, e)) .filter(y.curry(Hl, u)); } ) .filter(Ll) ); var o, a, s, u, c, l; }); }, $l = Ml, Wl = jl, Kl = (y.curry(jl, !1), y.curry(jl, !0), Ul), Xl = function(e) { return e.fold(Al.start, Al.start, Al.end, Al.end); }, Yl = function(e) { var t = e, n = function() { return t; }; return { get: n, set: function(e) { t = e; }, clone: function() { return Yl(n()); } }; }, Gl = function(e) { return tr.isFunction(e.selection.getSel().modify); }, Jl = function(e, t, n) { var r = e ? 1 : -1; return ( t.setRng(ia(n.container(), n.offset() + r).toRange()), t.getSel().modify("move", e ? "forward" : "backward", "word"), !0 ); }, Ql = function(e, t) { var n = t.selection.getRng(), r = e ? ia.fromRangeEnd(n) : ia.fromRangeStart(n); return ( !!Gl(t) && (e && mi.isBeforeInline(r) ? Jl(!0, t.selection, r) : !(e || !mi.isAfterInline(r)) && Jl(!1, t.selection, r)) ); }, Zl = function(e, t) { var n = e.dom.createRng(); n.setStart(t.container(), t.offset()), n.setEnd(t.container(), t.offset()), e.selection.setRng(n); }, ef = function(e) { return !1 !== e.settings.inline_boundaries; }, tf = function(e, t) { e ? t.setAttribute("data-mce-selected", "inline-boundary") : t.removeAttribute("data-mce-selected"); }, nf = function(e, t, n) { return Lc(t, n).map(function(t) { return Zl(e, t), n; }); }, rf = function(e, t, n) { return function() { return !!ef(t) && Ql(e, t); }; }, of = { move: function(e, t, n) { return function() { return ( !!ef(e) && ((r = e), (o = t), (i = n), (a = r.getBody()), (s = ia.fromRangeStart(r.selection.getRng())), (u = y.curry(vu.isInlineTarget, r)), Wl(i, u, a, s).bind(function(e) { return nf(r, o, e); })).isSome() ); var r, o, i, a, s, u; }; }, moveNextWord: y.curry(rf, !0), movePrevWord: y.curry(rf, !1), setupSelectedState: function(e) { var t = new Yl(null), n = y.curry(vu.isInlineTarget, e); return ( e.on("NodeChange", function(r) { var o, i, a, s, u; ef(e) && ((o = n), (i = e.dom), (a = r.parents), (s = M.filter( i.select('*[data-mce-selected="inline-boundary"]'), o )), (u = M.filter(a, o)), M.each(M.difference(s, u), y.curry(tf, !1)), M.each(M.difference(u, s), y.curry(tf, !0)), (function(e, t) { if ( e.selection.isCollapsed() && !0 !== e.composing && t.get() ) { var n = ia.fromRangeStart(e.selection.getRng()); ia.isTextPosition(n) && !1 === vu.isAtZwsp(n) && (Zl(e, Oc.removeAndReposition(t.get(), n)), t.set(null)); } })(e, t), (function(e, t, n, r) { if (t.selection.isCollapsed()) { var o = M.filter(r, e); M.each(o, function(r) { var o = ia.fromRangeStart(t.selection.getRng()); $l(e, t.getBody(), o).bind(function(e) { return nf(t, n, e); }); }); } })(n, e, t, r.parents)); }), t ); }, setCaretPosition: Zl }, af = function(e, t) { return function(n) { return Lc(t, n) .map(function(t) { return of.setCaretPosition(e, t), !0; }) .getOr(!1); }; }, sf = function(e, t, n, r) { var o = e.getBody(), i = y.curry(vu.isInlineTarget, e); e.undoManager.ignore(function() { var a, s, u; e.selection.setRng( ((a = n), (s = r), (u = document.createRange()).setStart(a.container(), a.offset()), u.setEnd(s.container(), s.offset()), u) ), e.execCommand("Delete"), $l(i, o, ia.fromRangeStart(e.selection.getRng())) .map(Xl) .map(af(e, t)); }), e.nodeChanged(); }, uf = function(e, t, n, r) { var o, i, a = ((o = e.getBody()), (i = r.container()), _a.getParentBlock(i, o) || o), s = y.curry(vu.isInlineTarget, e), u = $l(s, a, r); return u .bind(function(e) { return n ? e.fold( y.constant(E.some(Xl(e))), E.none, y.constant(E.some(Kl(e))), E.none ) : e.fold( E.none, y.constant(E.some(Kl(e))), E.none, y.constant(E.some(Xl(e))) ); }) .map(af(e, t)) .getOrThunk(function() { var o = Ws.navigate(n, a, r), i = o.bind(function(e) { return $l(s, a, e); }); return u.isSome() && i.isSome() ? vu .findRootInline(s, a, r) .map(function(t) { return ( (r = t), !!hs( [Ws.firstPositionIn(r), Ws.lastPositionIn(r)], function(e, t) { var n = vu.normalizePosition(!0, e), o = vu.normalizePosition(!1, t); return Ws.nextPosition(r, n) .map(function(e) { return e.isEqual(o); }) .getOr(!0); } ).getOr(!0) && (mc(e, n, Hn.fromDom(t)), !0) ); var r; }) .getOr(!1) : i .bind(function(i) { return o.map(function(o) { return n ? sf(e, t, r, o) : sf(e, t, o, r), !0; }); }) .getOr(!1); }); }, cf = function(e, t, n) { if (e.selection.isCollapsed() && !1 !== e.settings.inline_boundaries) { var r = ia.fromRangeStart(e.selection.getRng()); return uf(e, t, n, r); } return !1; }, lf = xr("start", "end"), ff = xr("rng", "table", "cells"), df = Qu([{ removeTable: ["element"] }, { emptyCells: ["cells"] }]), mf = function(e, t) { return Eu(Hn.fromDom(e), "td,th", t); }, pf = function(e, t) { return wu(e, "table", t); }, gf = function(e) { return !1 === Dr.eq(e.start(), e.end()); }, hf = function(e, t) { return ((n = e), (r = t), pf(n.start(), r).bind(function(e) { return pf(n.end(), r).bind(function(t) { return Dr.eq(e, t) ? E.some(e) : E.none(); }); })).bind(function(t) { var n = Os(t, "td,th"); return ff(e, t, n); }); var n, r; }, vf = function(e, t) { var n, r, o = y.curry(Dr.eq, e); return ((n = t), (r = o), hs([mf(n.startContainer, r), mf(n.endContainer, r)], lf).filter(gf)).map( function(e) { return hf(e, o); } ); }, yf = function(e, t) { return M.findIndex(e, function(e) { return Dr.eq(e, t); }); }, bf = function(e) { return ((t = e), hs( [yf(t.cells(), t.rng().start()), yf(t.cells(), t.rng().end())], function(e, n) { return t.cells().slice(e, n + 1); } )).bind(function(t) { var n = e.cells(); return t.length === n.length ? df.removeTable(e.table()) : df.emptyCells(t); }); var t; }, Cf = function(e, t) { return vf(e, t).map(bf); }, xf = function(e) { var t = []; if (e) for (var n = 0; n < e.rangeCount; n++) t.push(e.getRangeAt(n)); return t; }, wf = xf, Nf = function(e) { return M.bind(e, function(e) { var t = Fi(e); return t ? [Hn.fromDom(t)] : []; }); }, Ef = function(e) { return xf(e).length > 1; }, Sf = function(e) { return M.filter(Nf(e), io.isTableCell); }, kf = function(e) { return Os(e, "td[data-mce-selected],th[data-mce-selected]"); }, Tf = function(e, t) { var n = kf(t), r = Sf(e); return n.length > 0 ? n : r; }, Af = Tf, _f = function(e) { return Tf(wf(e.selection.getSel()), Hn.fromDom(e.getBody())); }, Bf = function(e, t) { return M.each(t, Is), e.selection.setCursorLocation(t[0].dom(), 0), !0; }, Rf = function(e, t) { return mc(e, !1, t), !0; }, Df = function(e, t, n, r) { return Pf(t, r) .fold( function() { return ( (r = e), Cf(t, n).map(function(e) { return e.fold(y.curry(Rf, r), y.curry(Bf, r)); }) ); var r; }, function(t) { return If(e, t); } ) .getOr(!1); }, Of = function(e, t) { return M.find(Uu(t, e), io.isTableCell); }, Pf = function(e, t) { return M.find(Uu(t, e), function(e) { return "caption" === Zn.name(e); }); }, If = function(e, t) { return Is(t), e.selection.setCursorLocation(t.dom(), 0), E.some(!0); }, Lf = function(e, t, n, r, o) { return Ws.navigate(n, e.getBody(), o) .bind(function(i) { return ( (u = r), (c = n), (l = o), (f = i), Ws.firstPositionIn(u.dom()) .bind(function(e) { return Ws.lastPositionIn(u.dom()).map(function(t) { return c ? l.isEqual(e) && f.isEqual(t) : l.isEqual(t) && f.isEqual(e); }); }) .getOr(!0) ? If(e, r) : ((a = r), (s = i), Pf(t, Hn.fromDom(s.getNode())).map(function(e) { return !1 === Dr.eq(e, a); })) ); var a, s, u, c, l, f; }) .or(E.some(!0)); }, Mf = function(e, t, n, r) { var o = ia.fromRangeStart(e.selection.getRng()); return Of(n, r).bind(function(r) { return Ru(r) ? If(e, r) : ((i = e), (a = n), (s = t), (u = r), (c = o), Ws.navigate(s, i.getBody(), c).bind(function(e) { return Of(a, Hn.fromDom(e.getNode())).map(function(e) { return !1 === Dr.eq(e, u); }); })); var i, a, s, u, c; }); }, Ff = function(e, t, n) { var r = Hn.fromDom(e.getBody()); return Pf(r, n) .fold( function() { return Mf(e, t, r, n); }, function(n) { return ( (o = e), (i = t), (a = r), (s = n), (u = ia.fromRangeStart(o.selection.getRng())), Ru(s) ? If(o, s) : Lf(o, a, i, s, u) ); var o, i, a, s, u; } ) .getOr(!1); }, zf = function(e, t) { var n, r, o, i, a, s = Hn.fromDom(e.selection.getStart(!0)); return e.selection.isCollapsed() ? Ff(e, t, s) : ((n = e), (r = s), (o = Hn.fromDom(n.getBody())), (i = n.selection.getRng()), 0 !== (a = _f(n)).length ? Bf(n, a) : Df(n, o, i, r)); }, Uf = function(e, t) { e.getDoc().execCommand(t, !1, null); }, Vf = function(e) { hc(e, !1) || cf(e, !1) || Ku(e, !1) || zf(e) || Ju(e, !1) || (Uf(e, "Delete"), bu(e)); }, Hf = function(e) { hc(e, !0) || cf(e, !0) || Ku(e, !0) || zf(e) || Ju(e, !0) || Uf(e, "ForwardDelete"); }, qf = function(e, t) { return ( e && t && e.startContainer === t.startContainer && e.startOffset === t.startOffset && e.endContainer === t.endContainer && e.endOffset === t.endOffset ); }, jf = xr("container", "offset"), $f = 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) ); }, Wf = function(e, t, n) { return $f(e, t, function(e) { return e.nodeName === n; }); }, Kf = function(e) { return e && "TABLE" === e.nodeName; }, Xf = function(e, t, n) { for ( var r = new to(t, e.getParent(t.parentNode, e.isBlock) || e.getRoot()); (t = r[n ? "prev" : "next"]()); ) if (vo.isBr(t)) return !0; }, Yf = function(e, t, n, r, o) { var i, a, s, u, c, l, f = e.getRoot(), d = e.schema.getNonEmptyElements(); if ( ((s = e.getParent(o.parentNode, e.isBlock) || f), r && vo.isBr(o) && t && e.isEmpty(s)) ) return E.some(jf(o.parentNode, e.nodeIndex(o))); for (i = new to(o, s); (u = i[r ? "prev" : "next"]()); ) { if ( "false" === e.getContentEditableParent(u) || ((c = u), (l = f), mi.isCaretContainer(c) && !1 === $f(c, l, Nl)) ) return E.none(); if (vo.isText(u) && u.nodeValue.length > 0) return !1 === Wf(u, f, "A") ? E.some(jf(u, r ? u.nodeValue.length : 0)) : E.none(); if (e.isBlock(u) || d[u.nodeName.toLowerCase()]) return E.none(); a = u; } return n && a ? E.some(jf(a, 0)) : E.none(); }, Gf = function(e, t, n, r) { var o, i, a, s, u, c, l, f, d, m, p = e.getRoot(), g = !1; if ( ((o = r[(n ? "start" : "end") + "Container"]), (i = r[(n ? "start" : "end") + "Offset"]), (l = vo.isElement(o) && i === o.childNodes.length), (u = e.schema.getNonEmptyElements()), (c = n), mi.isCaretContainer(o)) ) return E.none(); if ( (vo.isElement(o) && i > o.childNodes.length - 1 && (c = !1), vo.isDocument(o) && ((o = p), (i = 0)), o === p) ) { if (c && (s = o.childNodes[i > 0 ? i - 1 : 0])) { if (mi.isCaretContainer(s)) return E.none(); if (u[s.nodeName] || Kf(s)) return E.none(); } if (o.hasChildNodes()) { if ( ((i = Math.min(!c && i > 0 ? i - 1 : i, o.childNodes.length - 1)), (o = o.childNodes[i]), (i = vo.isText(o) && l ? o.data.length : 0), !t && o === p.lastChild && Kf(o)) ) return E.none(); if ( (function(e, t) { for (; t && t !== e; ) { if (vo.isContentEditableFalse(t)) return !0; t = t.parentNode; } return !1; })(p, o) || mi.isCaretContainer(o) ) return E.none(); if (o.hasChildNodes() && !1 === Kf(o)) { (s = o), (a = new to(o, p)); do { if (vo.isContentEditableFalse(s) || mi.isCaretContainer(s)) { g = !1; break; } if (vo.isText(s) && s.nodeValue.length > 0) { (i = c ? 0 : s.nodeValue.length), (o = s), (g = !0); break; } if ( u[s.nodeName.toLowerCase()] && (!(f = s) || !/^(TD|TH|CAPTION)$/.test(f.nodeName)) ) { (i = e.nodeIndex(s)), (o = s.parentNode), ("IMG" !== s.nodeName && "PRE" !== s.nodeName) || c || i++, (g = !0); break; } } while ((s = c ? a.next() : a.prev())); } } } return ( t && (vo.isText(o) && 0 === i && Yf(e, l, t, !0, o).each(function(e) { (o = e.container()), (i = e.offset()), (g = !0); }), vo.isElement(o) && ((s = o.childNodes[i]) || (s = o.childNodes[i - 1]), !s || !vo.isBr(s) || ((m = "A"), (d = s).previousSibling && d.previousSibling.nodeName === m) || Xf(e, s, !1) || Xf(e, s, !0) || Yf(e, l, t, !0, s).each(function(e) { (o = e.container()), (i = e.offset()), (g = !0); }))), c && !t && vo.isText(o) && i === o.nodeValue.length && Yf(e, l, t, !1, o).each(function(e) { (o = e.container()), (i = e.offset()), (g = !0); }), g ? E.some(jf(o, i)) : E.none() ); }, Jf = { normalize: function(e, t) { var n = t.collapsed, r = t.cloneRange(); return ( Gf(e, n, !0, r).each(function(e) { r.setStart(e.container(), e.offset()); }), n || Gf(e, n, !1, r).each(function(e) { r.setEnd(e.container(), e.offset()); }), n && r.collapse(!0), qf(t, r) ? E.none() : E.some(r) ); } }, Qf = function(e, t, n) { var r = e.create("span", {}, " "); n.parentNode.insertBefore(r, n), t.scrollIntoView(r), e.remove(r); }, Zf = 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); }, ed = function(e, t) { var n, r, o = e.selection, i = e.dom, a = o.getRng(); Jf.normalize(i, a).each(function(e) { a.setStart(e.startContainer, e.startOffset), a.setEnd(e.endContainer, e.endOffset); }); var s = a.startOffset, u = a.startContainer; if (1 === u.nodeType && u.hasChildNodes()) { var c = s > u.childNodes.length - 1; (u = u.childNodes[Math.min(s, u.childNodes.length - 1)] || u), (s = c && 3 === u.nodeType ? u.nodeValue.length : 0); } var l = i.getParent(u, 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), u && 3 === u.nodeType && s >= u.nodeValue.length && ((function(e, t, n) { for ( var r, o = new to(t, n), i = e.getNonEmptyElements(); (r = o.next()); ) if (i[r.nodeName.toLowerCase()] || r.length > 0) return !0; })(e.schema, u, l) || ((n = i.create("br")), a.insertNode(n), a.setStartAfter(n), a.setEndAfter(n), (r = !0))), (n = i.create("br")), a.insertNode(n), Qf(i, o, n), Zf(i, o, n, r), e.undoManager.add(); }, td = function(e, t) { var n = Hn.fromTag("br"); ks.before(Hn.fromDom(t), n), e.undoManager.add(); }, nd = function(e, t) { rd(e.getBody(), t) || ks.after(Hn.fromDom(t), Hn.fromTag("br")); var n = Hn.fromTag("br"); ks.after(Hn.fromDom(t), n), Qf(e.dom, e.selection, n.dom()), Zf(e.dom, e.selection, n.dom(), !1), e.undoManager.add(); }, rd = function(e, t) { return ( (n = ia.after(t)), !!vo.isBr(n.getNode()) || Ws.nextPosition(e, ia.after(t)) .map(function(e) { return vo.isBr(e.getNode()); }) .getOr(!1) ); var n; }, od = function(e) { return e && "A" === e.nodeName && "href" in e; }, id = function(e) { return e.fold(y.constant(!1), od, od, y.constant(!1)); }, ad = function(e, t) { t.fold(y.noop, y.curry(td, e), y.curry(nd, e), y.noop); }, sd = function(e, t) { var n, r, o, i = ((n = e), (r = y.curry(vu.isInlineTarget, n)), (o = ia.fromRangeStart(n.selection.getRng())), $l(r, n.getBody(), o).filter(id)); i.isSome() ? i.each(y.curry(ad, e)) : ed(e, t); }, ud = Qu([ { before: ["element"] }, { on: ["element", "offset"] }, { after: ["element"] } ]), cd = (ud.before, ud.on, ud.after, function(e) { return e.fold(y.identity, y.identity, y.identity); }), ld = Qu([ { domRange: ["rng"] }, { relative: ["startSitu", "finishSitu"] }, { exact: ["start", "soffset", "finish", "foffset"] } ]), fd = xr("start", "soffset", "finish", "foffset"), dd = { domRange: ld.domRange, relative: ld.relative, exact: ld.exact, exactFromRange: function(e) { return ld.exact(e.start(), e.soffset(), e.finish(), e.foffset()); }, range: fd, getWin: function(e) { var t = e.match({ domRange: function(e) { return Hn.fromDom(e.startContainer); }, relative: function(e, t) { return cd(e); }, exact: function(e, t, n, r) { return e; } }); return Ur.defaultView(t); } }, md = Un.detect().browser, pd = function(e, t) { var n = Zn.isText(t) ? Ds(t).length : Ur.children(t).length + 1; return e > n ? n : e < 0 ? 0 : e; }, gd = function(e) { return dd.range( e.start(), pd(e.soffset(), e.start()), e.finish(), pd(e.foffset(), e.finish()) ); }, hd = function(e, t) { return Dr.contains(e, t) || Dr.eq(e, t); }, vd = function(e) { return function(t) { return hd(e, t.start()) && hd(e, t.finish()); }; }, yd = function(e) { return !0 === e.inline || md.isIE(); }, bd = function(e) { return dd.range( Hn.fromDom(e.startContainer), e.startOffset, Hn.fromDom(e.endContainer), e.endOffset ); }, Cd = function(e) { var t = e.getSelection(); return (t && 0 !== t.rangeCount ? E.from(t.getRangeAt(0)) : E.none()).map( bd ); }, xd = function(e) { var t = Ur.defaultView(e); return Cd(t.dom()).filter(vd(e)); }, wd = function(e, t) { return E.from(t) .filter(vd(e)) .map(gd); }, Nd = function(e) { var t = document.createRange(); return ( t.setStart(e.start().dom(), e.soffset()), t.setEnd(e.finish().dom(), e.foffset()), E.some(t) ); }, Ed = function(e) { return (e.bookmark ? e.bookmark : E.none()) .bind(y.curry(wd, Hn.fromDom(e.getBody()))) .bind(Nd); }, Sd = function(e) { var t = yd(e) ? xd(Hn.fromDom(e.getBody())) : E.none(); e.bookmark = t.isSome() ? t : e.bookmark; }, kd = function(e) { Ed(e).each(function(t) { e.selection.setRng(t); }); }, Td = Ed, Ad = Ot.each, _d = Ot.extend, Bd = Ot.map, Rd = Ot.inArray, Dd = Ot.explode, Od = function(e) { var t, n, r, o, i = { state: {}, exec: {}, value: {} }, a = e.settings; e.on("PreInit", function() { (t = e.dom), (n = e.selection), (a = e.settings), (r = e.formatter); }); var s = function(t) { var n; if (!e.quirks.isHidden() && !e.removed) { if (((t = t.toLowerCase()), (n = i.state[t]))) return n(t); try { return e.getDoc().queryCommandState(t); } catch (r) {} return !1; } }, u = function(e, t) { (t = t || "exec"), Ad(e, function(e, n) { Ad(n.toLowerCase().split(","), function(n) { i[t][n] = e; }); }); }; _d(this, { execCommand: function(t, n, r, o) { var a, s, u = !1; if (!e.removed) { if ( (/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test( t ) || (o && o.skip_focus) ? kd(e) : e.focus(), (o = e.fire("BeforeExecCommand", { command: t, ui: n, value: r })).isDefaultPrevented()) ) return !1; if (((s = t.toLowerCase()), (a = i.exec[s]))) return ( a(s, n, r), e.fire("ExecCommand", { command: t, ui: n, value: r }), !0 ); if ( (Ad(e.plugins, function(o) { if (o.execCommand && o.execCommand(t, n, r)) return ( e.fire("ExecCommand", { command: t, ui: n, value: r }), (u = !0), !1 ); }), u) ) return u; if (e.theme && e.theme.execCommand && e.theme.execCommand(t, n, r)) return e.fire("ExecCommand", { command: t, ui: n, value: r }), !0; try { u = e.getDoc().execCommand(t, n, r); } catch (c) {} return ( !!u && (e.fire("ExecCommand", { command: t, ui: n, value: r }), !0) ); } }, queryCommandState: s, queryCommandValue: function(t) { var n; if (!e.quirks.isHidden() && !e.removed) { if (((t = t.toLowerCase()), (n = i.value[t]))) return n(t); try { return e.getDoc().queryCommandValue(t); } catch (r) {} } }, queryCommandSupported: function(t) { if (((t = t.toLowerCase()), i.exec[t])) return !0; try { return e.getDoc().queryCommandSupported(t); } catch (n) {} return !1; }, addCommands: u, addCommand: function(t, n, r) { (t = t.toLowerCase()), (i.exec[t] = function(t, o, i, a) { return n.call(r || e, o, i, a); }); }, addQueryStateHandler: function(t, n, r) { (t = t.toLowerCase()), (i.state[t] = function() { return n.call(r || e); }); }, addQueryValueHandler: function(t, n, r) { (t = t.toLowerCase()), (i.value[t] = function() { return n.call(r || e); }); }, hasCustomCommand: function(e) { return (e = e.toLowerCase()), !!i.exec[e]; } }); var c = function(t, n, r) { return ( n === undefined && (n = !1), r === undefined && (r = null), e.getDoc().execCommand(t, n, r) ); }, l = function(e) { return r.match(e); }, f = function(t, n) { r.toggle(t, n ? { value: n } : undefined), e.nodeChanged(); }, d = function(e) { o = n.getBookmark(e); }, m = function() { n.moveToBookmark(o); }; u({ "mceResetDesignMode,mceBeginUndoLevel": function() {}, "mceEndUndoLevel,mceAddUndoLevel": function() { e.undoManager.add(); }, "Cut,Copy,Paste": function(t) { var n, r = e.getDoc(); try { c(t); } catch (i) { n = !0; } if ( ("paste" !== t || r.queryCommandEnabled(t) || (n = !0), n || !r.queryCommandSupported(t)) ) { var o = e.translate( "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead." ); me.mac && (o = o.replace(/Ctrl\+/g, "\u2318+")), e.notificationManager.open({ text: o, type: "error" }); } }, unlink: function() { if (n.isCollapsed()) { var t = e.dom.getParent(e.selection.getStart(), "a"); t && e.dom.remove(t, !0); } else r.remove("link"); }, "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone": function( e ) { var t = e.substring(7); "full" === t && (t = "justify"), Ad("left,center,right,justify".split(","), function(e) { t !== e && r.remove("align" + e); }), "none" !== t && f("align" + t); }, "InsertUnorderedList,InsertOrderedList": function(e) { var r, o; c(e), (r = t.getParent(n.getNode(), "ol,ul")) && ((o = r.parentNode), /^(H[1-6]|P|ADDRESS|PRE)$/.test(o.nodeName) && (d(), t.split(o, r), m())); }, "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function( e ) { f(e); }, "ForeColor,HiliteColor,FontName": function(e, t, n) { f(e, n); }, FontSize: function(e, t, n) { var r, o; n >= 1 && n <= 7 && ((o = Dd(a.font_size_style_values)), (n = (r = Dd(a.font_size_classes)) ? r[n - 1] || n : o[n - 1] || n)), f(e, n); }, RemoveFormat: function(e) { r.remove(e); }, mceBlockQuote: function() { f("blockquote"); }, FormatBlock: function(e, t, n) { return f(n || "p"); }, mceCleanup: function() { var t = n.getBookmark(); e.setContent(e.getContent({ cleanup: !0 }), { cleanup: !0 }), n.moveToBookmark(t); }, mceRemoveNode: function(t, r, o) { var i = o || n.getNode(); i !== e.getBody() && (d(), e.dom.remove(i, !0), m()); }, mceSelectNodeDepth: function(r, o, i) { var a = 0; t.getParent( n.getNode(), function(e) { if (1 === e.nodeType && a++ === i) return n.select(e), !1; }, e.getBody() ); }, mceSelectNode: function(e, t, r) { n.select(r); }, mceInsertContent: function(t, n, r) { Js(e, r); }, mceInsertRawHTML: function(t, r, o) { n.setContent("tiny_mce_marker"), e.setContent( e.getContent().replace(/tiny_mce_marker/g, function() { return o; }) ); }, mceToggleFormat: function(e, t, n) { f(n); }, mceSetContent: function(t, n, r) { e.setContent(r); }, "Indent,Outdent": function(o) { var i, u, l; (i = a.indentation), (u = /[a-z%]+$/i.exec(i)), (i = parseInt(i, 10)), s("InsertUnorderedList") || s("InsertOrderedList") ? c(o) : (a.forced_root_block || t.getParent(n.getNode(), t.isBlock) || r.apply("div"), Ad(n.getSelectedBlocks(), function(n) { if ( "false" !== t.getContentEditable(n) && "LI" !== n.nodeName ) { var r = e.getParam("indent_use_margin", !1) ? "margin" : "padding"; (r = "TABLE" === n.nodeName ? "margin" : r), (r += "rtl" === t.getStyle(n, "direction", !0) ? "Right" : "Left"), "outdent" === o ? ((l = Math.max(0, parseInt(n.style[r] || 0, 10) - i)), t.setStyle(n, r, l ? l + u : "")) : ((l = parseInt(n.style[r] || 0, 10) + i + u), t.setStyle(n, r, l)); } })); }, mceRepaint: function() {}, InsertHorizontalRule: function() { e.execCommand("mceInsertContent", !1, "
"); }, mceToggleVisualAid: function() { (e.hasVisual = !e.hasVisual), e.addVisual(); }, mceReplaceContent: function(t, r, o) { e.execCommand( "mceInsertContent", !1, o.replace(/\{\$selection\}/g, n.getContent({ format: "text" })) ); }, mceInsertLink: function(e, o, i) { var a; "string" == typeof i && (i = { href: i }), (a = t.getParent(n.getNode(), "a")), (i.href = i.href.replace(" ", "%20")), (a && i.href) || r.remove("link"), i.href && r.apply("link", i, a); }, selectAll: function() { var e = t.getParent(n.getStart(), vo.isContentEditableTrue); if (e) { var r = t.createRng(); r.selectNodeContents(e), n.setRng(r); } }, delete: function() { Vf(e); }, forwardDelete: function() { Hf(e); }, mceNewDocument: function() { e.setContent(""); }, InsertLineBreak: function(t, n, r) { return sd(e, r), !0; } }), u( { "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull": function(e) { var o = "align" + e.substring(7), i = n.isCollapsed() ? [t.getParent(n.getNode(), t.isBlock)] : n.getSelectedBlocks(), a = Bd(i, function(e) { return !!r.matchNode(e, o); }); return -1 !== Rd(a, !0); }, "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function( e ) { return l(e); }, mceBlockQuote: function() { return l("blockquote"); }, Outdent: function() { var e; if (a.inline_styles) { if ( (e = t.getParent(n.getStart(), t.isBlock)) && parseInt(e.style.paddingLeft, 10) > 0 ) return !0; if ( (e = t.getParent(n.getEnd(), t.isBlock)) && parseInt(e.style.paddingLeft, 10) > 0 ) return !0; } return ( s("InsertUnorderedList") || s("InsertOrderedList") || (!a.inline_styles && !!t.getParent(n.getNode(), "BLOCKQUOTE")) ); }, "InsertUnorderedList,InsertOrderedList": function(e) { var r = t.getParent(n.getNode(), "ul,ol"); return ( r && (("insertunorderedlist" === e && "UL" === r.tagName) || ("insertorderedlist" === e && "OL" === r.tagName)) ); } }, "state" ), u( { "FontSize,FontName": function(e) { var r, o = 0; return ( (r = t.getParent(n.getNode(), "span")) && (o = "fontsize" === e ? r.style.fontSize : r.style.fontFamily .replace(/, /g, ",") .replace(/[\'\"]/g, "") .toLowerCase()), o ); } }, "value" ), u({ Undo: function() { e.undoManager.undo(); }, Redo: function() { e.undoManager.redo(); } }); }, Pd = Ot.makeMap( "focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend", " " ), Id = function(e) { var t, n, r = this, o = {}, i = function() { return !1; }, a = function() { return !0; }; (t = (e = e || {}).scope || r), (n = e.toggleEvent || i); var s = function(e, t, a, s) { var u, c, l; if ((!1 === t && (t = i), t)) for ( t = { func: t }, s && Ot.extend(t, s), l = (c = e.toLowerCase().split(" ")).length; l--; ) (e = c[l]), (u = o[e]) || ((u = o[e] = []), n(e, !0)), a ? u.unshift(t) : u.push(t); return r; }, u = function(e, t) { var i, a, s, u, c; if (e) for (i = (u = e.toLowerCase().split(" ")).length; i--; ) { if (((e = u[i]), (a = o[e]), !e)) { for (s in o) n(s, !1), delete o[s]; return r; } if (a) { if (t) for (c = a.length; c--; ) a[c].func === t && ((a = a.slice(0, c).concat(a.slice(c + 1))), (o[e] = a)); else a.length = 0; a.length || (n(e, !1), delete o[e]); } } else { for (e in o) n(e, !1); o = {}; } return r; }; (r.fire = function(n, r) { var s, c, l, f; if ( ((n = n.toLowerCase()), ((r = r || {}).type = n), r.target || (r.target = t), r.preventDefault || ((r.preventDefault = function() { r.isDefaultPrevented = a; }), (r.stopPropagation = function() { r.isPropagationStopped = a; }), (r.stopImmediatePropagation = function() { r.isImmediatePropagationStopped = a; }), (r.isDefaultPrevented = i), (r.isPropagationStopped = i), (r.isImmediatePropagationStopped = i)), e.beforeFire && e.beforeFire(r), (s = o[n])) ) for (c = 0, l = s.length; c < l; c++) { if ( ((f = s[c]).once && u(n, f.func), r.isImmediatePropagationStopped()) ) return r.stopPropagation(), r; if (!1 === f.func.call(t, r)) return r.preventDefault(), r; } return r; }), (r.on = s), (r.off = u), (r.once = function(e, t, n) { return s(e, t, n, { once: !0 }); }), (r.has = function(e) { return (e = e.toLowerCase()), !(!o[e] || 0 === o[e].length); }); }; Id.isNative = function(e) { return !!Pd[e.toLowerCase()]; }; var Ld, Md = function(e) { return ( e._eventDispatcher || (e._eventDispatcher = new Id({ scope: e, toggleEvent: function(t, n) { Id.isNative(t) && e.toggleNativeEvent && e.toggleNativeEvent(t, n); } })), e._eventDispatcher ); }, Fd = { fire: function(e, t, n) { if (this.removed && "remove" !== e) return t; if (((t = Md(this).fire(e, t, n)), !1 !== n && this.parent)) for (var r = this.parent(); r && !t.isPropagationStopped(); ) r.fire(e, t, !1), (r = r.parent()); return t; }, on: function(e, t, n) { return Md(this).on(e, t, n); }, off: function(e, t) { return Md(this).off(e, t); }, once: function(e, t) { return Md(this).once(e, t); }, hasEventListeners: function(e) { return Md(this).has(e); } }, zd = Xo.DOM, Ud = function(e, t) { return "selectionchange" === t ? e.getDoc() : !e.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t) ? e.getDoc().documentElement : e.settings.event_root ? (e.eventRoot || (e.eventRoot = zd.select(e.settings.event_root)[0]), e.eventRoot) : e.getBody(); }, Vd = function(e, t) { var n, r, o = function(e) { return !e.hidden && !e.readonly; }; if ((e.delegates || (e.delegates = {}), !e.delegates[t] && !e.removed)) if (((n = Ud(e, t)), e.settings.event_root)) { if ( (Ld || ((Ld = {}), e.editorManager.on("removeEditor", function() { var t; if (!e.editorManager.activeEditor && Ld) { for (t in Ld) e.dom.unbind(Ud(e, t)); Ld = null; } })), Ld[t]) ) return; (r = function(n) { for ( var r = n.target, i = e.editorManager.get(), a = i.length; a--; ) { var s = i[a].getBody(); (s === r || zd.isChildOf(r, s)) && o(i[a]) && i[a].fire(t, n); } }), (Ld[t] = r), zd.bind(n, t, r); } else (r = function(n) { o(e) && e.fire(t, n); }), zd.bind(n, t, r), (e.delegates[t] = r); }, Hd = { bindPendingEventDelegates: function() { var e = this; Ot.each(e._pendingNativeEvents, function(t) { Vd(e, t); }); }, toggleNativeEvent: function(e, t) { var n = this; "focus" !== e && "blur" !== e && (t ? n.initialized ? Vd(n, e) : n._pendingNativeEvents ? n._pendingNativeEvents.push(e) : (n._pendingNativeEvents = [e]) : n.initialized && (n.dom.unbind(Ud(n, e), e, n.delegates[e]), delete n.delegates[e])); }, unbindAllNativeEvents: function() { var e, t = this; if (t.delegates) { for (e in t.delegates) t.dom.unbind(Ud(t, e), e, t.delegates[e]); delete t.delegates; } t.inline || ((t.getBody().onload = null), t.dom.unbind(t.getWin()), t.dom.unbind(t.getDoc())), t.dom.unbind(t.getBody()), t.dom.unbind(t.getContainer()); } }, qd = (Hd = Ot.extend({}, Fd, Hd)), jd = function(e, t, n) { try { e.getDoc().execCommand(t, !1, n); } catch (r) {} }, $d = function(e, t) { var n, r, o; e._clickBlocker && (e._clickBlocker.unbind(), (e._clickBlocker = null)), t ? ((e._clickBlocker = ((r = (n = e).getBody()), (o = function(e) { n.dom.getParents(e.target, "a").length > 0 && e.preventDefault(); }), n.dom.bind(r, "click", o), { unbind: function() { n.dom.unbind(r, "click", o); } })), e.selection.controlSelection.hideResizeRect(), (e.readonly = !0), (e.getBody().contentEditable = !1)) : ((e.readonly = !1), (e.getBody().contentEditable = !0), jd(e, "StyleWithCSS", !1), jd(e, "enableInlineTableEditing", !1), jd(e, "enableObjectResizing", !1), e.focus(), e.nodeChanged()); }, Wd = function(e, t) { var n = e.readonly ? "readonly" : "design"; t !== n && (e.initialized ? $d(e, "readonly" === t) : e.on("init", function() { $d(e, "readonly" === t); }), e.fire("SwitchMode", { mode: t })); }, Kd = Ot.each, Xd = Ot.explode, Yd = { f9: 120, f10: 121, f11: 122 }, Gd = Ot.makeMap("alt,ctrl,shift,meta,access"), Jd = function(e) { var t = {}, n = [], r = function(e) { var t, n, r = {}; for (n in (Kd(Xd(e, "+"), function(e) { e in Gd ? (r[e] = !0) : /^[0-9]{2,}$/.test(e) ? (r.keyCode = parseInt(e, 10)) : ((r.charCode = e.charCodeAt(0)), (r.keyCode = Yd[e] || e.toUpperCase().charCodeAt(0))); }), (t = [r.keyCode]), Gd)) r[n] ? t.push(n) : (r[n] = !1); return ( (r.id = t.join(",")), r.access && ((r.alt = !0), me.mac ? (r.ctrl = !0) : (r.shift = !0)), r.meta && (me.mac ? (r.meta = !0) : ((r.ctrl = !0), (r.meta = !1))), r ); }, o = function(t, n, o, i) { var a; return ( ((a = Ot.map(Xd(t, ">"), r))[a.length - 1] = Ot.extend( a[a.length - 1], { func: o, scope: i || e } )), Ot.extend(a[0], { desc: e.translate(n), subpatterns: a.slice(1) }) ); }, i = 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) ); }, a = function(e) { return e.func ? e.func.call(e.scope) : null; }; e.on("keyup keypress keydown", function(e) { var r, o; ((o = e).altKey || o.ctrlKey || o.metaKey || ("keydown" === (r = e).type && r.keyCode >= 112 && r.keyCode <= 123)) && !e.isDefaultPrevented() && (Kd(t, function(t) { if (i(e, t)) return ( (n = t.subpatterns.slice(0)), "keydown" === e.type && a(t), !0 ); }), i(e, n[0]) && (1 === n.length && "keydown" === e.type && a(n[0]), n.shift())); }), (this.add = function(n, r, i, a) { var s; return ( (s = i), "string" == typeof i ? (i = function() { e.execCommand(s, !1, null); }) : Ot.isArray(s) && (i = function() { e.execCommand(s[0], s[1], s[2]); }), Kd(Xd(Ot.trim(n.toLowerCase())), function(e) { var n = o(e, r, i, a); t[n.id] = n; }), !0 ); }), (this.remove = function(e) { var n = o(e); return !!t[n.id] && (delete t[n.id], !0); }); }, Qd = Ot.each, Zd = function(e, t, n) { var r, o, i, a, s = 1; for ( a = e.getShortEndedElements(), (i = /<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g).lastIndex = r = n; (o = i.exec(t)); ) { if (((r = i.lastIndex), "/" === o[1])) s--; else if (!o[1]) { if (o[2] in a) continue; s++; } if (0 === s) break; } return r; }, em = function(e, t) { var n = this, r = function() {}; (e = e || {}), (n.schema = t = t || Fo()), !1 !== e.fix_self_closing && (e.fix_self_closing = !0), Qd("comment cdata text start end pi doctype".split(" "), function(t) { t && (n[t] = e[t] || r); }), (n.parse = function(n) { var r, o, i, a, s, u, c, l, f, d, m, p, g, h, v, y, b, C, x, w, N, E, S, k, T, A, _, B, R, D = this, O = 0, P = [], I = 0, L = Ao.decode, M = Ot.makeMap("src,href,data,background,formaction,poster"), F = /((java|vb)script|mhtml):/i, z = /^data:/i, U = function(e) { var t, n; for (t = P.length; t-- && P[t].name !== e; ); if (t >= 0) { for (n = P.length - 1; n >= t; n--) (e = P[n]).valid && D.end(e.name); P.length = t; } }, V = function(t, n, r, o, i) { var s, u, c; if ( ((r = (n = n.toLowerCase()) in m ? n : L(r || o || i || "")), g && !l && 0 == (0 === (c = n).indexOf("data-") || 0 === c.indexOf("aria-"))) ) { if (!(s = C[n]) && x) { for (u = x.length; u-- && !(s = x[u]).pattern.test(n); ); -1 === u && (s = null); } if (!s) return; if (s.validValues && !(r in s.validValues)) return; } if (M[n] && !e.allow_script_urls) { var f = r.replace(/[\s\u0000-\u001F]+/g, ""); try { f = decodeURIComponent(f); } catch (d) { f = unescape(f); } if (F.test(f)) return; if ( !e.allow_html_data_urls && z.test(f) && !/^data:image\//i.test(f) ) return; } (l && (n in M || 0 === n.indexOf("on"))) || ((a.map[n] = r), a.push({ name: n, value: r })); }; for ( T = new RegExp( "<(?:(?:!--([\\w\\W]*?)--\x3e)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))", "g" ), A = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g, d = t.getShortEndedElements(), k = e.self_closing_elements || t.getSelfClosingElements(), m = t.getBoolAttrs(), g = e.validate, f = e.remove_internals, R = e.fix_self_closing, _ = t.getSpecialElements(), S = n + ">"; (r = T.exec(S)); ) { if ( (O < r.index && D.text(L(n.substr(O, r.index - O))), (o = r[6])) ) ":" === (o = o.toLowerCase()).charAt(0) && (o = o.substr(1)), U(o); else if ((o = r[7])) { if (r.index + r[0].length > n.length) { D.text(L(n.substr(r.index))), (O = r.index + r[0].length); continue; } if ( (":" === (o = o.toLowerCase()).charAt(0) && (o = o.substr(1)), (p = o in d), R && k[o] && P.length > 0 && P[P.length - 1].name === o && U(o), !g || (h = t.getElementRule(o))) ) { if ( ((v = !0), g && ((C = h.attributes), (x = h.attributePatterns)), (b = r[8]) ? ((l = -1 !== b.indexOf("data-mce-type")) && f && (v = !1), ((a = []).map = {}), b.replace(A, V)) : ((a = []).map = {}), g && !l) ) { if ( ((w = h.attributesRequired), (N = h.attributesDefault), (E = h.attributesForced), h.removeEmptyAttrs && !a.length && (v = !1), E) ) for (s = E.length; s--; ) (c = (y = E[s]).name), "{$uid}" === (B = y.value) && (B = "mce_" + I++), (a.map[c] = B), a.push({ name: c, value: B }); if (N) for (s = N.length; s--; ) (c = (y = N[s]).name) in a.map || ("{$uid}" === (B = y.value) && (B = "mce_" + I++), (a.map[c] = B), a.push({ name: c, value: B })); if (w) { for (s = w.length; s-- && !(w[s] in a.map); ); -1 === s && (v = !1); } if ((y = a.map["data-mce-bogus"])) { if ("all" === y) { (O = Zd(t, n, T.lastIndex)), (T.lastIndex = O); continue; } v = !1; } } v && D.start(o, a, p); } else v = !1; if ((i = _[o])) { (i.lastIndex = O = r.index + r[0].length), (r = i.exec(n)) ? (v && (u = n.substr(O, r.index - O)), (O = r.index + r[0].length)) : ((u = n.substr(O)), (O = n.length)), v && (u.length > 0 && D.text(u, !0), D.end(o)), (T.lastIndex = O); continue; } p || (b && b.indexOf("/") === b.length - 1 ? v && D.end(o) : P.push({ name: o, valid: v })); } else (o = r[1]) ? (">" === o.charAt(0) && (o = " " + o), e.allow_conditional_comments || "[if" !== o.substr(0, 3).toLowerCase() || (o = " " + o), D.comment(o)) : (o = r[2]) ? D.cdata(o.replace(//g, "")) : (o = r[3]) ? D.doctype(o) : (o = r[4]) && D.pi(o, r[5]); O = r.index + r[0].length; } for ( O < n.length && D.text(L(n.substr(O))), s = P.length - 1; s >= 0; s-- ) (o = P[s]).valid && D.end(o.name); }); }; em.findEndTag = Zd; var tm, nm, rm = function(e, t) { var n, r, o, i, a, s, u, c, l = t, f = /<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g, d = e.schema; for ( s = e.getTempAttrs(), u = l, c = new RegExp(["\\s?(" + s.join("|") + ')="[^"]+"'].join("|"), "gi"), l = u.replace(c, ""), a = d.getShortEndedElements(); (i = f.exec(l)); ) (r = f.lastIndex), (o = i[0].length), (n = a[i[1]] ? r : em.findEndTag(d, l, r)), (l = l.substring(0, r - o) + l.substring(n)), (f.lastIndex = r - o); return l; }, om = function(e, t) { return ii(rm(e, t)); }, im = rm, am = function(e) { var t = e !== undefined ? e.dom() : document; return E.from(t.activeElement).map(Hn.fromDom); }, sm = function(e) { var t = Ur.owner(e).dom(); return e.dom() === t.activeElement; }, um = function(e) { return am(Ur.owner(e)).filter(function(t) { return e.dom().contains(t.dom()); }); }, cm = function(e, t) { return ((n = t), n.collapsed ? E.from(zi(n.startContainer, n.startOffset)).map(Hn.fromDom) : E.none()).bind(function(t) { return io.isTableSection(t) ? E.some(t) : !1 === Dr.contains(e, t) ? E.some(e) : E.none(); }); var n; }, lm = function(e, t) { cm(Hn.fromDom(e.getBody()), t) .bind(function(e) { return Ws.firstPositionIn(e.dom()); }) .fold( function() { e.selection.normalize(); }, function(t) { e.selection.setRng(t.toRange()); } ); }, fm = function(e) { if (e.setActive) try { e.setActive(); } catch (t) { e.focus(); } else e.focus(); }, dm = function(e) { var t, n = e.getBody(); return n && ((t = Hn.fromDom(n)), sm(t) || um(t).isSome()); }, mm = function(e) { return e.inline ? dm(e) : (t = e).iframeElement && sm(Hn.fromDom(t.iframeElement)); var t; }, pm = function(e) { e.editorManager.setActive(e); }, gm = function(e, t) { e.removed || (t ? pm(e) : (function(e) { var t, n, r, o = e.selection, i = e.settings.content_editable, a = e.getBody(), s = o.getRng(); if ( (e.quirks.refreshContentEditable(), (n = e), (r = o.getNode()), (t = n.dom.getParent(r, function(e) { return "true" === n.dom.getContentEditable(e); })), e.$.contains(a, t)) ) return fm(t), lm(e, s), void pm(e); e.bookmark !== undefined && !1 === mm(e) && Td(e).each(function(t) { e.selection.setRng(t), (s = t); }), i || (me.opera || fm(a), e.getWin().focus()), (me.gecko || i) && (fm(a), lm(e, s)), pm(e); })(e)); }, hm = mm, vm = function(e, t) { return t.dom()[e]; }, ym = function(e, t) { return parseInt(Cr(t, e), 10); }, bm = y.curry(vm, "clientWidth"), Cm = y.curry(vm, "clientHeight"), xm = y.curry(ym, "margin-top"), wm = y.curry(ym, "margin-left"), Nm = function(e, t, n) { var r, o, i, a, s, u, c, l, f, d, m = Hn.fromDom(e.getBody()), p = e.inline ? m : Ur.documentElement(m), g = ((r = e.inline), (i = t), (a = n), (s = (o = p).dom().getBoundingClientRect()), { x: i - (r ? s.left + o.dom().clientLeft + wm(o) : 0), y: a - (r ? s.top + o.dom().clientTop + xm(o) : 0) }); return ( (c = g.x), (l = g.y), (f = bm((u = p))), (d = Cm(u)), c >= 0 && l >= 0 && c <= f && l <= d ); }, Em = function(e) { var t, n = e.inline ? e.getBody() : e.getContentAreaContainer(); return ((t = n), E.from(t).map(Hn.fromDom)) .map(function(e) { return Dr.contains(Ur.owner(e), e); }) .getOr(!1); }, Sm = function(e) { var t, n = [], r = function() { var t, n = e.theme; return n && n.getNotificationManagerImpl ? n.getNotificationManagerImpl() : { open: (t = function() { throw new Error( "Theme did not provide a NotificationManager implementation." ); }), close: t, reposition: t, getArgs: t }; }, o = function() { n.length > 0 && r().reposition(n); }, i = function(e) { M.findIndex(n, function(t) { return t === e; }).each(function(e) { n.splice(e, 1); }); }, a = function(t) { if (!e.removed && Em(e)) return M.find(n, function(e) { return ( (n = r().getArgs(e)), (o = t), !( n.type !== o.type || n.text !== o.text || n.progressBar || n.timeout || o.progressBar || o.timeout ) ); var n, o; }).getOrThunk(function() { e.editorManager.setActive(e); var a, s = r().open(t, function() { i(s), o(); }); return (a = s), n.push(a), o(), s; }); }; return ( (t = e).on("SkinLoaded", function() { var e = t.settings.service_message; e && a({ text: e, type: "warning", timeout: 0, icon: "" }); }), t.on("ResizeEditor ResizeWindow", function() { ye.requestAnimationFrame(o); }), t.on("remove", function() { M.each(n, function(e) { r().close(e); }); }), { open: a, close: function() { E.from(n[0]).each(function(e) { r().close(e), i(e), o(); }); }, getNotifications: function() { return n; } } ); }, km = function(e) { var t = [], n = function() { var t, n = e.theme; return n && n.getWindowManagerImpl ? n.getWindowManagerImpl() : { open: (t = function() { throw new Error( "Theme did not provide a WindowManager implementation." ); }), alert: t, confirm: t, close: t, getParams: t, setParams: t }; }, r = function(e, t) { return function() { return t ? t.apply(e, arguments) : undefined; }; }, o = function(n) { var r; t.push(n), (r = n), e.fire("OpenWindow", { win: r }); }, i = function(n) { M.findIndex(t, function(e) { return e === n; }).each(function(r) { var o; t.splice(r, 1), (o = n), e.fire("CloseWindow", { win: o }), 0 === t.length && e.focus(); }); }, a = function() { return E.from(t[t.length - 1]); }; return ( e.on("remove", function() { M.each(t.slice(0), function(e) { n().close(e); }); }), { windows: t, open: function(t, r) { e.editorManager.setActive(e), Sd(e); var a = n().open(t, r, i); return o(a), a; }, alert: function(e, t, a) { var s = n().alert(e, r(a || this, t), i); o(s); }, confirm: function(e, t, a) { var s = n().confirm(e, r(a || this, t), i); o(s); }, close: function() { a().each(function(e) { n().close(e), i(e); }); }, getParams: function() { return a() .map(n().getParams) .getOr(null); }, setParams: function(e) { a().each(function(t) { n().setParams(t, e); }); }, getWindows: function() { return t; } } ); }, Tm = ti.PluginManager, Am = function(e, t) { var n = (function(e, t) { for (var n in Tm.urls) if (Tm.urls[n] + "/plugin" + t + ".js" === e) return n; return null; })(t, e.suffix); return n ? "Failed to load plugin: " + n + " from url " + t : "Failed to load plugin url: " + t; }, _m = function(e, t) { e.notificationManager.open({ type: "error", text: t }); }, Bm = function(e, t) { e._skinLoaded ? _m(e, t) : e.on("SkinLoaded", function() { _m(e, t); }); }, Rm = function(e, t) { Bm(e, Am(e, t)); }, Dm = function(e, t) { Bm(e, "Failed to upload image: " + t); }, Om = Bm, Pm = function(e) { for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; var r = window.console; r && (r.error ? r.error.apply(r, arguments) : r.log.apply(r, arguments)); }, Im = ti.PluginManager, Lm = ti.ThemeManager, Mm = function() { return new (V("XMLHttpRequest"))(); }, Fm = function(e, t) { var n = {}, r = function(e, n, r, o) { var i, a; (i = new Mm()).open("POST", t.url), (i.withCredentials = t.credentials), (i.upload.onprogress = function(e) { o((e.loaded / e.total) * 100); }), (i.onerror = function() { r( "Image upload failed due to a XHR Transport error. Code: " + i.status ); }), (i.onload = function() { var e, o, a; i.status < 200 || i.status >= 300 ? r("HTTP Error: " + i.status) : (e = JSON.parse(i.responseText)) && "string" == typeof e.location ? n( ((o = t.basePath), (a = e.location), o ? o.replace(/\/$/, "") + "/" + a.replace(/^\//, "") : a) ) : r("Invalid JSON: " + i.responseText); }), (a = new FormData()).append("file", e.blob(), e.filename()), i.send(a); }, o = function(e, t) { return { url: t, blobInfo: e, status: !0 }; }, i = function(e, t) { return { url: "", blobInfo: e, status: !1, error: t }; }, a = function(e, t) { Ot.each(n[e], function(e) { e(t); }), delete n[e]; }, s = function(r, s) { return ( (r = Ot.grep(r, function(t) { return !e.isUploaded(t.blobUri()); })), pe.all( Ot.map(r, function(r) { return e.isPending(r.blobUri()) ? ((f = r.blobUri()), new pe(function(e) { (n[f] = n[f] || []), n[f].push(e); })) : ((u = r), (c = t.handler), (l = s), e.markPending(u.blobUri()), new pe(function(t) { var n; try { var r = function() { n && n.close(); }; c( u, function(n) { r(), e.markUploaded(u.blobUri(), n), a(u.blobUri(), o(u, n)), t(o(u, n)); }, function(n) { r(), e.removeFailed(u.blobUri()), a(u.blobUri(), i(u, n)), t(i(u, n)); }, function(e) { e < 0 || e > 100 || (n || (n = l()), n.progressBar.value(e)); } ); } catch (s) { t(i(u, s.message)); } })); var u, c, l, f; }) ) ); }; return ( (t = Ot.extend({ credentials: !1, handler: r }, t)), { upload: function(e, n) { return t.url || t.handler !== r ? s(e, n) : new pe(function(e) { e([]); }); } } ); }, zm = function(e, t) { return new (V("Blob"))(e, t); }, Um = function(e) { return V("atob")(e); }, Vm = function(e) { var t, n; return ( (e = decodeURIComponent(e).split(",")), (n = /data:([^;]+)/.exec(e[0])) && (t = n[1]), { type: t, data: e[1] } ); }, Hm = function(e) { return new pe(function(t) { var n, r, o; e = Vm(e); try { n = Um(e.data); } catch (yC) { return void t(new zm([])); } for ( r = new function(e) { return new (V("Uint8Array"))(e); }(n.length), o = 0; o < r.length; o++ ) r[o] = n.charCodeAt(o); t(new zm([r], { type: e.type })); }); }, qm = function(e) { return 0 === e.indexOf("blob:") ? ((t = e), new pe(function(e, n) { var r = function() { n( "Cannot convert " + t + " to Blob. Resource might not exist or is inaccessible." ); }; try { var o = new Mm(); o.open("GET", t, !0), (o.responseType = "blob"), (o.onload = function() { 200 === this.status ? e(this.response) : r(); }), (o.onerror = r), o.send(); } catch (i) { r(); } })) : 0 === e.indexOf("data:") ? Hm(e) : null; var t; }, jm = function(e) { return new pe(function(t) { var n = new function() { return new (V("FileReader"))(); }(); (n.onloadend = function() { t(n.result); }), n.readAsDataURL(e); }); }, $m = Vm, Wm = 0, Km = function(e) { return (e || "blobid") + Wm++; }, Xm = function(e, t) { var n = {}; return { findAll: function(r, o) { var i, a, s; return ( o || (o = ji.constant(!0)), (i = At.filter( (s = r) ? s.getElementsByTagName("img") : [], function(t) { var n = t.src; return ( !!me.fileApi && !t.hasAttribute("data-mce-bogus") && !t.hasAttribute("data-mce-placeholder") && !(!n || n === me.transparentSrc) && (0 === n.indexOf("blob:") ? !e.isUploaded(n) : 0 === n.indexOf("data:") && o(t)) ); } )), (a = At.map(i, function(e) { var r; return n[e.src] ? new pe(function(t) { n[e.src].then(function(n) { if ("string" == typeof n) return n; t({ image: e, blobInfo: n.blobInfo }); }); }) : ((r = new pe(function(n, r) { var o, i, a, s, u, c; (o = t), (a = n), (s = r), 0 !== (i = e).src.indexOf("blob:") ? ((u = $m(i.src).data), (c = o.findFirst(function(e) { return e.base64() === u; })) ? a({ image: i, blobInfo: c }) : qm(i.src).then( function(e) { (c = o.create(Km(), e, u)), o.add(c), a({ image: i, blobInfo: c }); }, function(e) { s(e); } )) : (c = o.getByUri(i.src)) ? a({ image: i, blobInfo: c }) : qm(i.src).then( function(e) { jm(e).then(function(t) { (u = $m(t).data), (c = o.create(Km(), e, u)), o.add(c), a({ image: i, blobInfo: c }); }); }, function(e) { s(e); } ); }) .then(function(e) { return delete n[e.image.src], e; }) ["catch"](function(t) { return delete n[e.src], t; })), (n[e.src] = r), r); })), pe.all(a) ); } }; }, Ym = 0, Gm = function(e) { return ( e + Ym++ + ((t = function() { return Math.round(4294967295 * Math.random()).toString(36); }), "s" + new Date().getTime().toString(36) + t() + t() + t()) ); var t; }, Jm = function(e) { var t, n, r, o, i, a, s, u, c, l, f = ((t = []), (n = ji.constant), (r = function(e) { var t, r, o; if (!e.blob || !e.base64) throw new Error( "blob and base64 representations of the image are required for BlobInfo to be created" ); return ( (t = e.id || Gm("blobid")), (r = e.name || t), { id: n(t), name: n(r), filename: n( r + "." + ((o = e.blob.type), { "image/jpeg": "jpg", "image/jpg": "jpg", "image/gif": "gif", "image/png": "png" }[o.toLowerCase()] || "dat") ), blob: n(e.blob), base64: n(e.base64), blobUri: n(e.blobUri || q(e.blob)), uri: n(e.uri) } ); }), { create: function(e, t, n, o) { return r( "object" == typeof e ? e : { id: e, name: o, blob: t, base64: n } ); }, add: function(e) { o(e.id()) || t.push(e); }, get: (o = function(e) { return i(function(t) { return t.id() === e; }); }), getByUri: function(e) { return i(function(t) { return t.blobUri() === e; }); }, findFirst: (i = function(e) { return At.filter(t, e)[0]; }), removeByUri: function(e) { t = At.filter(t, function(t) { return t.blobUri() !== e || (j(t.blobUri()), !1); }); }, destroy: function() { At.each(t, function(e) { j(e.blobUri()); }), (t = []); } }), d = e.settings, m = ((u = {}), (c = function(e, t) { return { status: e, resultUri: t }; }), { hasBlobUri: (l = function(e) { return e in u; }), getResultUri: function(e) { var t = u[e]; return t ? t.resultUri : null; }, isPending: function(e) { return !!l(e) && 1 === u[e].status; }, isUploaded: function(e) { return !!l(e) && 2 === u[e].status; }, markPending: function(e) { u[e] = c(1, null); }, markUploaded: function(e, t) { u[e] = c(2, t); }, removeFailed: function(e) { delete u[e]; }, destroy: function() { u = {}; } }), p = function(t) { return function(n) { return e.selection ? t(n) : []; }; }, g = function(e, t, n) { var r = 0; do { -1 !== (r = e.indexOf(t, r)) && ((e = e.substring(0, r) + n + e.substr(r + t.length)), (r += n.length - t.length + 1)); } while (-1 !== r); return e; }, h = function(e, t, n) { return ( (e = g(e, 'src="' + t + '"', 'src="' + n + '"')), (e = g(e, 'data-mce-src="' + t + '"', 'data-mce-src="' + n + '"')) ); }, v = function(t, n) { At.each(e.undoManager.data, function(e) { "fragmented" === e.type ? (e.fragments = At.map(e.fragments, function(e) { return h(e, t, n); })) : (e.content = h(e.content, t, n)); }); }, y = function() { return e.notificationManager.open({ text: e.translate("Image uploading..."), type: "info", timeout: -1, progressBar: !0 }); }, b = function(t, n) { f.removeByUri(t.src), v(t.src, n), e .$(t) .attr({ src: d.images_reuse_filename ? n + "?" + new Date().getTime() : n, "data-mce-src": e.convertURL(n, "src") }); }, C = function(t) { return ( a || (a = Fm(m, { url: d.images_upload_url, basePath: d.images_upload_base_path, credentials: d.images_upload_credentials, handler: d.images_upload_handler })), N().then( p(function(n) { var r; return ( (r = At.map(n, function(e) { return e.blobInfo; })), a.upload(r, y).then( p(function(r) { var o = At.map(r, function(t, r) { var o = n[r].image; return ( t.status && !1 !== e.settings.images_replace_blob_uris ? b(o, t.url) : t.error && Dm(e, t.error), { element: o, status: t.status } ); }); return t && t(o), o; }) ) ); }) ) ); }, x = function(e) { if (!1 !== d.automatic_uploads) return C(e); }, w = function(e) { return !d.images_dataimg_filter || d.images_dataimg_filter(e); }, N = function() { return ( s || (s = Xm(m, f)), s.findAll(e.getBody(), w).then( p(function(t) { return ( (t = At.filter(t, function(t) { return "string" != typeof t || (Om(e, t), !1); })), At.each(t, function(e) { v(e.image.src, e.blobInfo.blobUri()), (e.image.src = e.blobInfo.blobUri()), e.image.removeAttribute("data-mce-src"); }), t ); }) ) ); }, E = function(t) { return t.replace(/src="(blob:[^"]+)"/g, function(t, n) { var r = m.getResultUri(n); if (r) return 'src="' + r + '"'; var o = f.getByUri(n); return ( o || (o = At.reduce( e.editorManager.get(), function(e, t) { return ( e || (t.editorUpload && t.editorUpload.blobCache.getByUri(n)) ); }, null )), o ? 'src="data:' + o.blob().type + ";base64," + o.base64() + '"' : t ); }); }; return ( e.on("setContent", function() { !1 !== e.settings.automatic_uploads ? x() : N(); }), e.on("RawSaveContent", function(e) { e.content = E(e.content); }), e.on("getContent", function(e) { e.source_view || "raw" === e.format || (e.content = E(e.content)); }), e.on("PostRender", function() { e.parser.addNodeFilter("img", function(e) { At.each(e, function(e) { var t = e.attr("src"); if (!f.getByUri(t)) { var n = m.getResultUri(t); n && e.attr("src", n); } }); }); }), { blobCache: f, uploadImages: C, uploadImagesAuto: x, scanForImages: N, destroy: function() { f.destroy(), m.destroy(), (s = a = null); } } ); }, Qm = function(e, t) { return e.hasOwnProperty(t.nodeName); }, Zm = function(e) { var t, n, r, o, i, a, s, u, c, l, f, d = e.settings, m = e.dom, p = e.selection, g = e.schema, h = g.getBlockElements(), v = p.getStart(), y = e.getBody(); if ( ((f = d.forced_root_block), v && vo.isElement(v) && f && ((l = y.nodeName.toLowerCase()), g.isValidChild(l, f.toLowerCase()) && ((b = h), (C = y), (x = v), !M.exists(zu(Hn.fromDom(x), Hn.fromDom(C)), function(e) { return Qm(b, e.dom()); })))) ) { var b, C, x, w, N; for ( n = (t = p.getRng()).startContainer, r = t.startOffset, o = t.endContainer, i = t.endOffset, c = hm(e), v = y.firstChild; v; ) if ( ((w = h), (N = v), vo.isText(N) || (vo.isElement(N) && !Qm(w, N) && !xs.isBookmarkNode(N))) ) { if (vo.isText(v) && 0 === v.nodeValue.length) { (s = v), (v = v.nextSibling), m.remove(s); continue; } a || ((a = m.create(f, e.settings.forced_root_block_attrs)), v.parentNode.insertBefore(a, v), (u = !0)), (s = v), (v = v.nextSibling), a.appendChild(s); } else (a = null), (v = v.nextSibling); u && c && (t.setStart(n, r), t.setEnd(o, i), p.setRng(t), e.nodeChanged()); } }, ep = function(e) { e.settings.forced_root_block && e.on("NodeChange", y.curry(Zm, e)); }, tp = function(e) { var t, n = []; "onselectionchange" in e.getDoc() || e.on("NodeChange Click MouseUp KeyUp Focus", function(n) { var r, o; (o = { startContainer: (r = e.selection.getRng()).startContainer, startOffset: r.startOffset, endContainer: r.endContainer, endOffset: r.endOffset }), ("nodechange" !== n.type && qf(o, t)) || e.fire("SelectionChange"), (t = o); }), e.on("contextmenu", function() { e.fire("SelectionChange"); }), e.on("SelectionChange", function() { var t = e.selection.getStart(!0); !t || (!me.range && e.selection.isCollapsed()) || (!(function(t) { var r, o; if ( (o = e .$(t) .parentsUntil(e.getBody()) .add(t)).length === n.length ) { for (r = o.length; r >= 0 && o[r] === n[r]; r--); if (-1 === r) return (n = o), !0; } return (n = o), !1; })(t) && e.dom.isChildOf(t, e.getBody()) && e.nodeChanged({ selectionChange: !0 })); }), e.on("MouseUp", function(t) { t.isDefaultPrevented() || ("IMG" === e.selection.getNode().nodeName ? ye.setEditorTimeout(e, function() { e.nodeChanged(); }) : e.nodeChanged()); }), (this.nodeChanged = function(t) { var n, r, o, i = e.selection; e.initialized && i && !e.settings.disable_nodechange && !e.readonly && ((o = e.getBody()), ((n = i.getStart(!0) || o).ownerDocument === e.getDoc() && e.dom.isChildOf(n, o)) || (n = o), (r = []), e.dom.getParent(n, function(e) { if (e === o) return !0; r.push(e); }), ((t = t || {}).element = n), (t.parents = r), e.fire("NodeChange", t)); }); }, np = function(e) { var t, n, r, o; return ( (o = e.getBoundingClientRect()), (n = (t = e.ownerDocument).documentElement), (r = t.defaultView), { top: o.top + r.pageYOffset - n.clientTop, left: o.left + r.pageXOffset - n.clientLeft } ); }, rp = function(e, t) { return ( (n = (s = e).inline ? np(s.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()) { var n = np(e.getContentAreaContainer()), r = ((i = (o = e).getBody()), (a = o.getDoc().documentElement), (s = { left: i.scrollLeft, top: i.scrollTop }), (u = { left: i.scrollLeft || a.scrollLeft, top: i.scrollTop || a.scrollTop }), o.inline ? s : u); return { left: t.pageX - n.left + r.left, top: t.pageY - n.top + r.top }; } var o, i, a, s, u; return { left: t.pageX, top: t.pageY }; })(e, t)).left - n.left + r.left, pageY: o.top - n.top + r.top } ); var n, r, o, i, a, s; }, op = vo.isContentEditableFalse, ip = vo.isContentEditableTrue, ap = function(e) { e && e.parentNode && e.parentNode.removeChild(e); }, sp = function(e, t) { return function(n) { if (0 === n.button) { var r = At.find(t.dom.getParents(n.target), ji.or(op, ip)); if (((s = t.getBody()), op((u = r)) && u !== s)) { var o = t.dom.getPos(r), i = t.getBody(), a = t.getDoc().documentElement; (e.element = r), (e.screenX = n.screenX), (e.screenY = n.screenY), (e.maxX = (t.inline ? i.scrollWidth : a.offsetWidth) - 2), (e.maxY = (t.inline ? i.scrollHeight : a.offsetHeight) - 2), (e.relX = n.pageX - o.x), (e.relY = n.pageY - o.y), (e.width = r.offsetWidth), (e.height = r.offsetHeight), (e.ghost = (function(e, t, n, r) { var o = t.cloneNode(!0); e.dom.setStyles(o, { width: n, height: r }), e.dom.setAttrib(o, "data-mce-selected", null); var i = e.dom.create("div", { class: "mce-drag-container", "data-mce-bogus": "all", unselectable: "on", contenteditable: "false" }); return ( e.dom.setStyles(i, { position: "absolute", opacity: 0.5, overflow: "hidden", border: 0, padding: 0, margin: 0, width: n, height: r }), e.dom.setStyles(o, { margin: 0, boxSizing: "border-box" }), i.appendChild(o), i ); })(t, r, e.width, e.height)); } } var s, u; }; }, up = function(e, t) { return function(n) { if ( e.dragging && ((s = t), (l = t.selection), (f = l.getSel().getRangeAt(0).startContainer), (u = 3 === f.nodeType ? f.parentNode : f), (c = e.element), u !== c && !s.dom.isChildOf(u, c) && !op(u)) ) { var r = ((i = e.element), (a = i.cloneNode(!0)).removeAttribute("data-mce-selected"), a), o = t.fire("drop", { targetClone: r, clientX: n.clientX, clientY: n.clientY }); o.isDefaultPrevented() || ((r = o.targetClone), t.undoManager.transact(function() { ap(e.element), t.insertContent(t.dom.getOuterHTML(r)), t._selectionOverrides.hideFakeCaret(); })); } var i, a, s, u, c, l, f; cp(e); }; }, cp = function(e) { (e.dragging = !1), (e.element = null), ap(e.ghost); }, lp = function(e) { var t, n, r, o, i, a, s, u, c, l, f, d = {}; (t = Xo.DOM), (a = document), (n = sp(d, e)), (s = d), (u = e), (c = ye.throttle(function(e, t) { u._selectionOverrides.hideFakeCaret(), u.selection.placeCaretAt(e, t); }, 0)), (r = function(e) { var t, n, r, o, i, a, l, f, d, m, p, g, h = Math.max( Math.abs(e.screenX - s.screenX), Math.abs(e.screenY - s.screenY) ); if (s.element && !s.dragging && h > 10) { if (u.fire("dragstart", { target: s.element }).isDefaultPrevented()) return; (s.dragging = !0), u.focus(); } if (s.dragging) { var v = ((p = s), { pageX: (g = rp(u, e)).pageX - p.relX, pageY: g.pageY + 5 }); (d = s.ghost), (m = u.getBody()), d.parentNode !== m && m.appendChild(d), (t = s.ghost), (n = v), (r = s.width), (o = s.height), (i = s.maxX), (a = s.maxY), (l = 0), (f = 0), (t.style.left = n.pageX + "px"), (t.style.top = n.pageY + "px"), n.pageX + r > i && (l = n.pageX + r - i), n.pageY + o > a && (f = n.pageY + o - a), (t.style.width = r - l + "px"), (t.style.height = o - f + "px"), c(e.clientX, e.clientY); } }), (o = up(d, e)), (l = d), (f = e), (i = function() { cp(l), l.dragging && f.fire("dragend"); }), e.on("mousedown", n), e.on("mousemove", r), e.on("mouseup", o), t.bind(a, "mousemove", r), t.bind(a, "mouseup", i), e.on("remove", function() { t.unbind(a, "mousemove", r), t.unbind(a, "mouseup", i); }); }, fp = function(e) { var t; lp(e), (t = e).on("drop", function(e) { var n = "undefined" != typeof e.clientX ? t.getDoc().elementFromPoint(e.clientX, e.clientY) : null; (op(n) || op(t.dom.getContentEditableParent(n))) && e.preventDefault(); }); }, dp = vo.isContentEditableFalse, mp = function(e, t) { var n, r, o = null, i = function() { !(function() { var t, n, r, o, i; for ( t = Qt("*[contentEditable=false]", e), o = 0; o < t.length; o++ ) (r = (n = t[o]).previousSibling), mi.endsWithCaretContainer(r) && (1 === (i = r.data).length ? r.parentNode.removeChild(r) : r.deleteData(i.length - 1, 1)), (r = n.nextSibling), mi.startsWithCaretContainer(r) && (1 === (i = r.data).length ? r.parentNode.removeChild(r) : r.deleteData(0, 1)); })(), r && (Oc.remove(r), (r = null)), o && (o.remove(), (o = null)), clearInterval(n); }, a = function() { n = ye.setInterval(function() { e.ownerDocument.activeElement === e ? Qt("div.mce-visual-caret", e).toggleClass( "mce-visual-caret-hidden" ) : Qt("div.mce-visual-caret", e).addClass( "mce-visual-caret-hidden" ); }, 500); }; return { show: function(n, s) { var u, c, l, f, d, m, p, g, h, v, y; return ( i(), (l = s) && /^(TD|TH)$/i.test(l.nodeName) ? null : t(s) ? ((r = mi.insertBlock("p", s, n)), (d = n), (y = Oi((f = s).getBoundingClientRect(), d)), "BODY" === e.tagName ? ((m = e.ownerDocument.documentElement), (p = e.scrollLeft || m.scrollLeft), (g = e.scrollTop || m.scrollTop)) : ((v = e.getBoundingClientRect()), (p = e.scrollLeft - v.left), (g = e.scrollTop - v.top)), (y.left += p), (y.right += p), (y.top += g), (y.bottom += g), (y.width = 1), (h = f.offsetWidth - f.clientWidth) > 0 && (d && (h *= -1), (y.left += h), (y.right += h)), (u = y), Qt(r).css("top", u.top), (o = Qt( '
' ) .css(u) .appendTo(e)), n && o.addClass("mce-visual-caret-before"), a(), (c = s.ownerDocument.createRange()).setStart(r, 0), c.setEnd(r, 0), c) : ((r = mi.insertInline(s, n)), (c = s.ownerDocument.createRange()), dp(r.nextSibling) ? (c.setStart(r, 0), c.setEnd(r, 0)) : (c.setStart(r, 1), c.setEnd(r, 1)), c) ); }, hide: i, 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;}"; }, destroy: function() { ye.clearInterval(n); } }; }, pp = function(e) { var t = function(t) { return At.map(t, function(t) { return ((t = Di(t)).node = e), t; }); }; if (At.isArray(e)) return At.reduce( e, function(e, t) { return e.concat(pp(t)); }, [] ); if (vo.isElement(e)) return t(e.getClientRects()); if (vo.isText(e)) { var n = e.ownerDocument.createRange(); return ( n.setStart(e, 0), n.setEnd(e, e.data.length), t(n.getClientRects()) ); } }, gp = { getClientRects: pp }, hp = vo.isContentEditableFalse, vp = _a.findNode, yp = ji.curry, bp = function(e, t) { return Math.abs(e.left - t); }, Cp = function(e, t) { return Math.abs(e.right - t); }, xp = function(e, t) { var n = function(e, t) { return e >= t.left && e <= t.right; }; return At.reduce(e, function(e, r) { var o, i; return ( (o = Math.min(bp(e, t), Cp(e, t))), (i = Math.min(bp(r, t), Cp(r, t))), n(t, r) ? r : n(t, e) ? e : i === o && hp(r.node) ? r : i < o ? r : e ); }); }, wp = function(e, t, n, r) { for (; (r = vp(r, e, ki, t)); ) if (n(r)) return; }, Np = function(e, t) { var n = [], r = function(e, r) { var o; return ( (o = At.filter(gp.getClientRects(r), function(n) { return !e(n, t); })), (n = n.concat(o)), 0 === o.length ); }; return ( n.push(t), wp(-1, e, yp(r, Ii), t.node), wp(1, e, yp(r, Li), t.node), n ); }, Ep = xp, Sp = function(e, t, n) { var r, o, i, a, s; return ( (r = gp.getClientRects( ((i = e), At.filter(At.toArray(i.getElementsByTagName("*")), hp)) )), (r = At.filter(r, function(e) { return n >= e.top && n <= e.bottom; })), (o = xp(r, t)) && (o = xp(Np(e, o), t)) && hp(o.node) ? ((s = t), { node: (a = o).node, before: bp(a, s) < Cp(a, s) }) : null ); }, kp = function(e, t, n) { return ( !n.collapsed && M.foldl( n.getClientRects(), function(n, r) { return n || Mi(r, e, t); }, !1 ) ); }, Tp = function(e, t) { var n = null; return { cancel: function() { null !== n && (clearTimeout(n), (n = null)); }, throttle: function() { var r = arguments; null === n && (n = setTimeout(function() { e.apply(null, r), (n = null), (r = null); }, t)); } }; }, Ap = vo.isContentEditableTrue, _p = vo.isContentEditableFalse, Bp = function(e, t, n, r) { return t._selectionOverrides.showCaret(e, n, r); }, Rp = function(e, t) { var n, r; return ( (t = _a.normalizeRange(1, e.getBody(), t)), (n = ia.fromRangeStart(t)), _p(n.getNode()) ? Bp(1, e, n.getNode(), !n.isAtEnd()) : _p(n.getNode(!0)) ? Bp(1, e, n.getNode(!0), !1) : ((r = e.dom.getParent(n.getNode(), ji.or(_p, Ap))), _p(r) ? Bp(1, e, r, !1) : null) ); }, Dp = Bp, Op = function(e, t) { var n, r; return e.fire("BeforeObjectSelected", { target: t }).isDefaultPrevented() ? null : ((r = (n = t).ownerDocument.createRange()).selectNode(n), r); }, Pp = Rp, Ip = function(e, t) { return (t && t.collapsed && Rp(e, t)) || t; }, Lp = function(e) { var t = Tp(function() { if (!e.removed) { var t = Ip(e, e.selection.getRng()); e.selection.setRng(t); } }, 0); e.on("focus", function() { t.throttle(); }), e.on("blur", function() { t.cancel(); }); }, Mp = { BACKSPACE: 8, DELETE: 46, DOWN: 40, ENTER: 13, LEFT: 37, RIGHT: 39, SPACEBAR: 32, TAB: 9, UP: 38, modifierPressed: function(e) { return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e); }, metaKeyPressed: function(e) { return me.mac ? e.metaKey : e.ctrlKey && !e.altKey; } }, Fp = vo.isContentEditableTrue, zp = vo.isContentEditableFalse, Up = _a.isAfterContentEditableFalse, Vp = _a.isBeforeContentEditableFalse, Hp = function(e) { var t, n, r, o = e.getBody(), i = mp(e.getBody(), function(t) { return e.dom.isBlock(t); }), a = "sel-" + e.dom.uniqueId(), s = function(t) { t && e.selection.setRng(t); }, u = function() { return e.selection.getRng(); }, c = function(t, n) { e.selection.scrollIntoView(t, n); }, l = function(t, n, r) { return e .fire("ShowCaret", { target: n, direction: t, before: r }) .isDefaultPrevented() ? null : (c(n, -1 === t), i.show(r, n)); }, f = function(e, t) { return ( (t = _a.normalizeRange(e, o, t)), -1 === e ? ia.fromRangeStart(t) : ia.fromRangeEnd(t) ); }, d = function(e) { return ( mi.isCaretContainer(e) || mi.startsWithCaretContainer(e) || mi.endsWithCaretContainer(e) ); }, m = function(e) { return d(e.startContainer) || d(e.endContainer); }, p = function(n, r) { var o, i, s, u, c, d, p, g, v, y, b = e.$, C = e.dom; if (!n) return null; if (n.collapsed) { if (!m(n)) if (!1 === r) { if (((g = f(-1, n)), zp(g.getNode(!0)))) return l(-1, g.getNode(!0), !1); if (zp(g.getNode())) return l(-1, g.getNode(), !g.isAtEnd()); } else { if (((g = f(1, n)), zp(g.getNode()))) return l(1, g.getNode(), !g.isAtEnd()); if (zp(g.getNode(!0))) return l(1, g.getNode(!0), !1); } return null; } return ( (u = n.startContainer), (c = n.startOffset), (d = n.endOffset), 3 === u.nodeType && 0 === c && zp(u.parentNode) && ((u = u.parentNode), (c = C.nodeIndex(u)), (u = u.parentNode)), 1 !== u.nodeType ? null : (d === c + 1 && (o = u.childNodes[c]), zp(o) ? ((v = y = o.cloneNode(!0)), (p = e.fire("ObjectSelected", { target: o, targetClone: v })).isDefaultPrevented() ? null : ((i = Nu(Hn.fromDom(e.getBody()), "#" + a).fold( function() { return b([]); }, function(e) { return b([e.dom()]); } )), (v = p.targetClone), 0 === i.length && (i = b( '
' ).attr("id", a)).appendTo(e.getBody()), (n = e.dom.createRng()), v === y && me.ie ? (i .empty() .append( '

\xa0

' ) .append(v), n.setStartAfter(i[0].firstChild.firstChild), n.setEndAfter(v)) : (i .empty() .append("\xa0") .append(v) .append("\xa0"), n.setStart(i[0].firstChild, 1), n.setEnd(i[0].lastChild, 0)), i.css({ top: C.getPos(o, e.getBody()).y }), i[0].focus(), (s = e.selection.getSel()).removeAllRanges(), s.addRange(n), M.each( Os(Hn.fromDom(e.getBody()), "*[data-mce-selected]"), function(e) { dr.remove(e, "data-mce-selected"); } ), o.setAttribute("data-mce-selected", "1"), (t = o), h(), n)) : null) ); }, g = function() { t && (t.removeAttribute("data-mce-selected"), Nu(Hn.fromDom(e.getBody()), "#" + a).each(Bs.remove), (t = null)); }, h = function() { i.hide(); }; return ( me.ceFalse && ((function() { var n = function(t) { for (var n = e.getBody(); t && t !== n; ) { if (Fp(t) || zp(t)) return t; t = t.parentNode; } return null; }; e.on("mouseup", function(t) { var n = u(); n.collapsed && Nm(e, t.clientX, t.clientY) && s(Pp(e, n)); }), e.on("click", function(t) { var r; (r = n(t.target)) && (zp(r) && (t.preventDefault(), e.focus()), Fp(r) && e.dom.isChildOf(r, e.selection.getNode()) && g()); }), e.on("blur NewBlock", function() { g(); }); var r, i, c = function(t, n) { var r, o, i = e.dom.getParent(t, e.dom.isBlock), a = e.dom.getParent(n, e.dom.isBlock); return ( i && ((r = i), (o = a), !( e.dom.getParent(r, e.dom.isBlock) === e.dom.getParent(o, e.dom.isBlock) )) && (function(e) { var t = Ha(e); if (!e.firstChild) return !1; var n = ia.before(e.firstChild), r = t.next(n); return r && !Vp(r) && !Up(r); })(i) ); }; (i = !1), (r = e).on("touchstart", function() { i = !1; }), r.on("touchmove", function() { i = !0; }), r.on("touchend", function(e) { var t = n(e.target); zp(t) && (i || (e.preventDefault(), p(Op(r, t)))); }), e.on("mousedown", function(t) { var r; if (!1 !== Nm(e, t.clientX, t.clientY)) if ((r = n(t.target))) zp(r) ? (t.preventDefault(), p(Op(e, r))) : (g(), (Fp(r) && t.shiftKey) || kp(t.clientX, t.clientY, e.selection.getRng()) || e.selection.placeCaretAt(t.clientX, t.clientY)); else { g(), h(); var i = Sp(o, t.clientX, t.clientY); i && (c(t.target, i.node) || (t.preventDefault(), e.getBody().focus(), s(l(1, i.node, i.before)))); } }), e.on("keypress", function(t) { Mp.modifierPressed(t) || (t.keyCode, zp(e.selection.getNode()) && t.preventDefault()); }), e.on("getSelectionRange", function(e) { var n = e.range; if (t) { if (!t.parentNode) return void (t = null); (n = n.cloneRange()).selectNode(t), (e.range = n); } }), e.on("setSelectionRange", function(e) { var t; (t = p(e.range, e.forward)) && (e.range = t); }), e.on("AfterSetSelectionRange", function(t) { var n, r = t.range; m(r) || h(), (n = r.startContainer.parentNode), e.dom.hasClass(n, "mce-offscreen-selection") || g(); }), e.on("copy", function(t) { var n, r = t.clipboardData; if (!t.isDefaultPrevented() && t.clipboardData && !me.ie) { var o = (n = e.dom.get(a)) ? n.getElementsByTagName("*")[0] : n; o && (t.preventDefault(), r.clearData(), r.setData("text/html", o.outerHTML), r.setData("text/plain", o.outerText)); } }), fp(e), Lp(e); })(), (n = e.contentStyles), (r = ".mce-content-body"), n.push(i.getCss()), n.push( r + " .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}" + r + " *[contentEditable=false] {cursor: default;}" + r + " *[contentEditable=true] {cursor: text;}" )), { showCaret: l, showBlockCaretContainer: function(e) { e.hasAttribute("data-mce-caret") && (mi.showCaretContainerBlock(e), s(u()), c(e[0])); }, hideFakeCaret: h, destroy: function() { i.destroy(), (t = null); } } ); }, qp = 0, jp = 2, $p = 1, Wp = function(e, t) { var n = e.length + t.length + 2, r = new Array(n), o = new Array(n), i = function(n, r, o, a, u) { var c = s(n, r, o, a); if ( null === c || (c.start === r && c.diag === r - a) || (c.end === n && c.diag === n - o) ) for (var l = n, f = o; l < r || f < a; ) l < r && f < a && e[l] === t[f] ? (u.push([0, e[l]]), ++l, ++f) : r - n > a - o ? (u.push([2, e[l]]), ++l) : (u.push([1, t[f]]), ++f); else { i(n, c.start, o, c.start - c.diag, u); for (var d = c.start; d < c.end; ++d) u.push([0, e[d]]); i(c.end, r, c.end - c.diag, a, u); } }, a = function(n, r, o, i) { for (var a = n; a - r < i && a < o && e[a] === t[a - r]; ) ++a; return { start: n, end: a, diag: r }; }, s = function(n, i, s, u) { var c = i - n, l = u - s; if (0 === c || 0 === l) return null; var f, d, m, p, g, h = c - l, v = l + c, y = (v % 2 == 0 ? v : v + 1) / 2; for (r[1 + y] = n, o[1 + y] = i + 1, f = 0; f <= y; ++f) { for (d = -f; d <= f; d += 2) { for ( m = d + y, d === -f || (d !== f && r[m - 1] < r[m + 1]) ? (r[m] = r[m + 1]) : (r[m] = r[m - 1] + 1), g = (p = r[m]) - n + s - d; p < i && g < u && e[p] === t[g]; ) (r[m] = ++p), ++g; if (h % 2 != 0 && h - f <= d && d <= h + f && o[m - h] <= r[m]) return a(o[m - h], d + n - s, i, u); } for (d = h - f; d <= h + f; d += 2) { for ( m = d + y - h, d === h - f || (d !== h + f && o[m + 1] <= o[m - 1]) ? (o[m] = o[m + 1] - 1) : (o[m] = o[m - 1]), g = (p = o[m] - 1) - n + s - d; p >= n && g >= s && e[p] === t[g]; ) (o[m] = p--), g--; if (h % 2 == 0 && -f <= d && d <= f && o[m] <= r[m + h]) return a(o[m], d + n - s, i, u); } } }, u = []; return i(0, e.length, 0, t.length, u), u; }, Kp = function(e) { return 1 === e.nodeType ? e.outerHTML : 3 === e.nodeType ? Ao.encodeRaw(e.data, !1) : 8 === e.nodeType ? "\x3c!--" + e.data + "--\x3e" : ""; }, Xp = function(e, t, n) { var r = (function(e) { var t, n, r; for ( r = document.createElement("div"), t = document.createDocumentFragment(), e && (r.innerHTML = e); (n = r.firstChild); ) t.appendChild(n); return t; })(t); if (e.hasChildNodes() && n < e.childNodes.length) { var o = e.childNodes[n]; o.parentNode.insertBefore(r, o); } else e.appendChild(r); }, Yp = function(e) { return At.filter(At.map(e.childNodes, Kp), function(e) { return e.length > 0; }); }, Gp = function(e, t) { var n, r, o, i = At.map(t.childNodes, Kp); return ( (n = Wp(i, e)), (r = t), (o = 0), At.each(n, function(e) { e[0] === qp ? o++ : e[0] === $p ? (Xp(r, e[1], o), o++) : e[0] === jp && (function(e, t) { if (e.hasChildNodes() && t < e.childNodes.length) { var n = e.childNodes[t]; n.parentNode.removeChild(n); } })(r, o); }), t ); }, Jp = function(e) { return { type: "fragmented", fragments: e, content: "", bookmark: null, beforeBookmark: null }; }, Qp = function(e) { return { type: "complete", fragments: null, content: e, bookmark: null, beforeBookmark: null }; }, Zp = function(e) { return "fragmented" === e.type ? e.fragments.join("") : e.content; }, eg = function(e) { var t, n, r; return ( (t = Yp(e.getBody())), -1 !== (n = (r = M.bind(t, function(t) { var n = im(e.serializer, t); return n.length > 0 ? [n] : []; })).join("")).indexOf("") ? Jp(r) : Qp(n) ); }, tg = function(e, t, n) { "fragmented" === t.type ? Gp(t.fragments, e.getBody()) : e.setContent(t.content, { format: "raw" }), e.selection.moveToBookmark(n ? t.beforeBookmark : t.bookmark); }, ng = function(e, t) { return !!e && !!t && Zp(e) === Zp(t); }, rg = function(e) { var t, n, r = this, o = 0, i = [], a = 0, s = function() { return 0 === a; }, u = function(e) { s() && (r.typing = e); }, c = function(t) { e.setDirty(t); }, l = function(e) { u(!1), r.add({}, e); }, f = function() { r.typing && (u(!1), r.add()); }; return ( e.on("init", function() { r.add(); }), e.on("BeforeExecCommand", function(e) { var t = e.command; "Undo" !== t && "Redo" !== t && "mceRepaint" !== t && (f(), r.beforeChange()); }), e.on("ExecCommand", function(e) { var t = e.command; "Undo" !== t && "Redo" !== t && "mceRepaint" !== t && l(e); }), e.on("ObjectResizeStart Cut", function() { r.beforeChange(); }), e.on("SaveContent ObjectResized blur", l), e.on("DragEnd", l), e.on("KeyUp", function(t) { var o = t.keyCode; t.isDefaultPrevented() || (((o >= 33 && o <= 36) || (o >= 37 && o <= 40) || 45 === o || t.ctrlKey) && (l(), e.nodeChanged()), (46 !== o && 8 !== o) || e.nodeChanged(), n && r.typing && !1 === ng(eg(e), i[0]) && (!1 === e.isDirty() && (c(!0), e.fire("change", { level: i[0], lastLevel: null })), e.fire("TypingUndo"), (n = !1), e.nodeChanged())); }), e.on("KeyDown", function(e) { var t = e.keyCode; if (!e.isDefaultPrevented()) if ((t >= 33 && t <= 36) || (t >= 37 && t <= 40) || 45 === t) r.typing && l(e); else { var o = (e.ctrlKey && !e.altKey) || e.metaKey; !(t < 16 || t > 20) || 224 === t || 91 === t || r.typing || o || (r.beforeChange(), u(!0), r.add({}, e), (n = !0)); } }), e.on("MouseDown", function(e) { r.typing && l(e); }), e.addShortcut("meta+z", "", "Undo"), e.addShortcut("meta+y,meta+shift+z", "", "Redo"), e.on("AddUndo Undo Redo ClearUndos", function(t) { t.isDefaultPrevented() || e.nodeChanged(); }), (r = { data: i, typing: !1, beforeChange: function() { s() && (t = gs.getUndoBookmark(e.selection)); }, add: function(n, r) { var a, u, l, f = e.settings; if ( ((l = eg(e)), (n = n || {}), (n = Ot.extend(n, l)), !1 === s() || e.removed) ) return null; if ( ((u = i[o]), e .fire("BeforeAddUndo", { level: n, lastLevel: u, originalEvent: r }) .isDefaultPrevented()) ) return null; if (u && ng(u, n)) return null; if ( (i[o] && (i[o].beforeBookmark = t), f.custom_undo_redo_levels && i.length > f.custom_undo_redo_levels) ) { for (a = 0; a < i.length - 1; a++) i[a] = i[a + 1]; i.length--, (o = i.length); } (n.bookmark = gs.getUndoBookmark(e.selection)), o < i.length - 1 && (i.length = o + 1), i.push(n), (o = i.length - 1); var d = { level: n, lastLevel: u, originalEvent: r }; return ( e.fire("AddUndo", d), o > 0 && (c(!0), e.fire("change", d)), n ); }, undo: function() { var t; return ( r.typing && (r.add(), (r.typing = !1), u(!1)), o > 0 && ((t = i[--o]), tg(e, t, !0), c(!0), e.fire("undo", { level: t })), t ); }, redo: function() { var t; return ( o < i.length - 1 && ((t = i[++o]), tg(e, t, !1), c(!0), e.fire("redo", { level: t })), t ); }, clear: function() { (i = []), (o = 0), (r.typing = !1), (r.data = i), e.fire("ClearUndos"); }, hasUndo: function() { return o > 0 || (r.typing && i[0] && !ng(eg(e), i[0])); }, hasRedo: function() { return o < i.length - 1 && !r.typing; }, transact: function(e) { return f(), r.beforeChange(), r.ignore(e), r.add(); }, ignore: function(e) { try { a++, e(); } finally { a--; } }, extra: function(t, n) { var a, s; r.transact(t) && ((s = i[o].bookmark), (a = i[o - 1]), tg(e, a, !0), r.transact(n) && (i[o - 1].beforeBookmark = s)); } }) ); }, og = {}, ig = At.filter, ag = At.each; (nm = function(e) { var t, n, r = e.selection.getRng(); (t = vo.matchNodeNames("pre")), r.collapsed || ((n = e.selection.getSelectedBlocks()), ag( ig(ig(n, t), function(e) { return ( t(e.previousSibling) && -1 !== At.indexOf(n, e.previousSibling) ); }), function(e) { var t, n; (t = e.previousSibling), Qt((n = e)).remove(), Qt(t) .append("

") .append(n.childNodes); } )); }), og[(tm = "pre")] || (og[tm] = []), og[tm].push(nm); var sg = function(e, t) { ag(og[e], function(e) { e(t); }); }, ug = Ot.each, cg = { walk: function(e, t, n) { var r, o, i, a, s, u, c, l = t.startContainer, f = t.startOffset, d = t.endContainer, m = t.endOffset; if ( (c = e.select("td[data-mce-selected],th[data-mce-selected]")).length > 0 ) ug(c, function(e) { n([e]); }); else { var p, g, h, v = function(e) { var t; return ( 3 === (t = e[0]).nodeType && t === l && f >= t.nodeValue.length && e.splice(0, 1), (t = e[e.length - 1]), 0 === m && e.length > 0 && t === d && 3 === t.nodeType && e.splice(e.length - 1, 1), e ); }, y = function(e, t, n) { for (var r = []; e && e !== n; e = e[t]) r.push(e); return r; }, b = function(e, t) { do { if (e.parentNode === t) return e; e = e.parentNode; } while (e); }, C = function(e, t, r) { var o = r ? "nextSibling" : "previousSibling"; for (s = (a = e).parentNode; a && a !== t; a = s) (s = a.parentNode), (u = y(a === e ? a : a[o], o)).length && (r || u.reverse(), n(v(u))); }; if ( (1 === l.nodeType && l.hasChildNodes() && (l = l.childNodes[f]), 1 === d.nodeType && d.hasChildNodes() && ((g = m), (h = (p = d).childNodes), --g > h.length - 1 ? (g = h.length - 1) : g < 0 && (g = 0), (d = h[g] || p)), l === d) ) return n(v([l])); for (r = e.findCommonAncestor(l, d), a = l; a; a = a.parentNode) { if (a === d) return C(l, r, !0); if (a === r) break; } for (a = d; a; a = a.parentNode) { if (a === l) return C(d, r); if (a === r) break; } (o = b(l, r) || l), (i = b(d, r) || d), C(l, o, !0), (u = y( o === l ? o : o.nextSibling, "nextSibling", i === d ? i.nextSibling : i )).length && n(v(u)), C(d, i); } } }, lg = /^(src|href|style)$/, fg = Ot.each, dg = Uc.isEq, mg = function(e) { return /^(TH|TD)$/.test(e.nodeName); }, pg = function(e, t, n) { var r, o, i; return ( (r = t[n ? "startContainer" : "endContainer"]), (o = t[n ? "startOffset" : "endOffset"]), vo.isElement(r) && ((i = r.childNodes.length - 1), !n && o && o--, (r = r.childNodes[o > i ? i : o])), vo.isText(r) && n && o >= r.nodeValue.length && (r = new to(r, e.getBody()).next() || r), vo.isText(r) && !n && 0 === o && (r = new to(r, e.getBody()).prev() || r), r ); }, gg = function(e, t, n, r) { var o = e.create(n, r); return t.parentNode.insertBefore(o, t), o.appendChild(t), o; }, hg = function(e, t, n, r) { return ( !(t = Uc.getNonWhiteSpaceSibling(t, n, r)) || "BR" === t.nodeName || e.isBlock(t) ); }, vg = function(e, t, n, r, o) { var i, a, s, u, c, l, f, d, m, p, g, h, v, y, b, C = e.dom; if ( ((l = C), !( dg((f = r), (d = t).inline) || dg(f, d.block) || (d.selector ? vo.isElement(f) && l.is(f, d.selector) : void 0) || ((u = r), (c = t), c.links && "A" === u.tagName) )) ) return !1; if ("all" !== t.remove) for ( fg(t.styles, function(e, i) { (e = Uc.normalizeStyleValue(C, Uc.replaceVars(e, n), i)), "number" == typeof i && ((i = e), (o = 0)), (t.remove_similar || !o || dg(Uc.getStyle(C, o, i), e)) && C.setStyle(r, i, ""), (s = 1); }), s && "" === C.getAttrib(r, "style") && (r.removeAttribute("style"), r.removeAttribute("data-mce-style")), fg(t.attributes, function(e, t) { var i; if ( ((e = Uc.replaceVars(e, n)), "number" == typeof t && ((t = e), (o = 0)), !o || dg(C.getAttrib(o, t), e)) ) { if ( "class" === t && (e = C.getAttrib(r, t)) && ((i = ""), fg(e.split(/\s+/), function(e) { /mce\-\w+/.test(e) && (i += (i ? " " : "") + e); }), i) ) return void C.setAttrib(r, t, i); "class" === t && r.removeAttribute("className"), lg.test(t) && r.removeAttribute("data-mce-" + t), r.removeAttribute(t); } }), fg(t.classes, function(e) { (e = Uc.replaceVars(e, n)), (o && !C.hasClass(o, e)) || C.removeClass(r, e); }), a = C.getAttribs(r), i = 0; i < a.length; i++ ) { var x = a[i].nodeName; if (0 !== x.indexOf("_") && 0 !== x.indexOf("data-")) return !1; } return "none" !== t.remove ? ((m = e), (g = t), (v = (p = r).parentNode), (y = m.dom), (b = m.settings.forced_root_block), g.block && (b ? v === y.getRoot() && ((g.list_block && dg(p, g.list_block)) || fg(Ot.grep(p.childNodes), function(e) { Uc.isValid(m, b, e.nodeName.toLowerCase()) ? h ? h.appendChild(e) : ((h = gg(y, e, b)), y.setAttribs(h, m.settings.forced_root_block_attrs)) : (h = 0); })) : y.isBlock(p) && !y.isBlock(v) && (hg(y, p, !1) || hg(y, p.firstChild, !0, 1) || p.insertBefore(y.create("br"), p.firstChild), hg(y, p, !0) || hg(y, p.lastChild, !1, 1) || p.appendChild(y.create("br")))), (g.selector && g.inline && !dg(g.inline, p)) || y.remove(p, 1), !0) : void 0; }, yg = vg, bg = function(e, t, n, r, o) { var i, a, s = e.formatter.get(t), u = s[0], c = !0, l = e.dom, f = e.selection, d = function(r) { var i, a, c, l, f, d, m = ((i = e), (a = r), (c = t), (l = n), (f = o), fg(Uc.getParents(i.dom, a.parentNode).reverse(), function(e) { var t; d || "_start" === e.id || "_end" === e.id || ((t = il.matchNode(i, e, c, l, f)) && !1 !== t.split && (d = e)); }), d); return (function(e, t, n, r, o, i, a, s) { var u, c, l, f, d, m, p = e.dom; if (n) { for ( m = n.parentNode, u = r.parentNode; u && u !== m; u = u.parentNode ) { for (c = p.clone(u, !1), d = 0; d < t.length; d++) if (vg(e, t[d], s, c, c)) { c = 0; break; } c && (l && c.appendChild(l), f || (f = c), (l = c)); } !i || (a.mixed && p.isBlock(n)) || (r = p.split(n, r)), l && (o.parentNode.insertBefore(l, o), f.appendChild(o)); } return r; })(e, s, m, r, r, !0, u, n); }, m = function(t) { var r, o, i, a, f; if ( (vo.isElement(t) && l.getContentEditable(t) && ((a = c), (c = "true" === l.getContentEditable(t)), (f = !0)), (r = Ot.grep(t.childNodes)), c && !f) ) for (o = 0, i = s.length; o < i && !vg(e, s[o], n, t, t); o++); if (u.deep && r.length) { for (o = 0, i = r.length; o < i; o++) m(r[o]); f && (c = a); } }, p = function(e) { var t = l.get(e ? "_start" : "_end"), n = t[e ? "firstChild" : "lastChild"]; return ( xs.isBookmarkNode(n) && (n = n[e ? "firstChild" : "lastChild"]), vo.isText(n) && 0 === n.data.length && (n = e ? t.previousSibling || t.nextSibling : t.nextSibling || t.previousSibling), l.remove(t, !0), n ); }, g = function(t) { var n, r, o = t.commonAncestorContainer; if (((t = Qc(e, t, s, !0)), u.split)) { if ((n = pg(e, t, !0)) !== (r = pg(e, t))) { if ( (/^(TR|TH|TD)$/.test(n.nodeName) && n.firstChild && (n = "TR" === n.nodeName ? n.firstChild.firstChild || n : n.firstChild || n), o && /^T(HEAD|BODY|FOOT|R)$/.test(o.nodeName) && mg(r) && r.firstChild && (r = r.firstChild || r), l.isChildOf(n, r) && n !== r && !l.isBlock(r) && !mg(n) && !mg(r)) ) return ( (n = gg(l, n, "span", { id: "_start", "data-mce-type": "bookmark" })), d(n), void (n = p(!0)) ); (n = gg(l, n, "span", { id: "_start", "data-mce-type": "bookmark" })), (r = gg(l, r, "span", { id: "_end", "data-mce-type": "bookmark" })), d(n), d(r), (n = p(!0)), (r = p()); } else n = r = d(n); (t.startContainer = n.parentNode ? n.parentNode : n), (t.startOffset = l.nodeIndex(n)), (t.endContainer = r.parentNode ? r.parentNode : r), (t.endOffset = l.nodeIndex(r) + 1); } cg.walk(l, t, function(t) { fg(t, function(t) { m(t), vo.isElement(t) && "underline" === e.dom.getStyle(t, "text-decoration") && t.parentNode && "underline" === Uc.getTextDecoration(l, t.parentNode) && vg( e, { deep: !1, exact: !0, inline: "span", styles: { textDecoration: "underline" } }, null, t ); }); }); }; if (r) r.nodeType ? ((a = l.createRng()).setStartBefore(r), a.setEndAfter(r), g(a)) : g(r); else if ("false" !== l.getContentEditable(f.getNode())) f.isCollapsed() && u.inline && !l.select("td[data-mce-selected],th[data-mce-selected]").length ? wl(e, t, n, o) : ((i = f.getBookmark()), g(f.getRng()), f.moveToBookmark(i), u.inline && il.match(e, t, n, f.getStart()) && Uc.moveStart(l, f, f.getRng()), e.nodeChanged()); else { r = f.getNode(); for ( var h = 0, v = s.length; h < v && (!s[h].ceFalseOverride || !vg(e, s[h], n, r, r)); h++ ); } }, Cg = Ot.each, xg = function(e) { return ( e && 1 === e.nodeType && !xs.isBookmarkNode(e) && !Nl(e) && !vo.isBogus(e) ); }, wg = function(e, t) { var n; for (n = e; n; n = n[t]) { if (3 === n.nodeType && 0 !== n.nodeValue.length) return e; if (1 === n.nodeType && !xs.isBookmarkNode(n)) return n; } return e; }, Ng = function(e, t, n) { var r, o, i = new Ns(e); if ( t && n && ((t = wg(t, "previousSibling")), (n = wg(n, "nextSibling")), i.compare(t, n)) ) { for (r = t.nextSibling; r && r !== n; ) (o = r), (r = r.nextSibling), t.appendChild(o); return ( e.remove(n), Ot.each(Ot.grep(n.childNodes), function(e) { t.appendChild(e); }), t ); } return n; }, Eg = function(e, t, n) { Cg(e.childNodes, function(e) { xg(e) && (t(e) && n(e), e.hasChildNodes() && Eg(e, t, n)); }); }, Sg = function(e, t) { return y.curry(function(t, n) { return !(!n || !Uc.getStyle(e, n, t)); }, t); }, kg = function(e, t, n) { return y.curry( function(t, n, r) { e.setStyle(r, t, n), "" === r.getAttribute("style") && r.removeAttribute("style"), Tg(e, r); }, t, n ); }, Tg = function(e, t) { "SPAN" === t.nodeName && 0 === e.getAttribs(t).length && e.remove(t, !0); }, Ag = function(e, t) { var n; 1 === t.nodeType && t.parentNode && 1 === t.parentNode.nodeType && ((n = Uc.getTextDecoration(e, t.parentNode)), e.getStyle(t, "color") && n ? e.setStyle(t, "text-decoration", n) : e.getStyle(t, "text-decoration") === n && e.setStyle(t, "text-decoration", null)); }, _g = function(e, t, n, r) { Cg(t, function(t) { Cg(e.dom.select(t.inline, r), function(r) { xg(r) && yg(e, t, n, r, t.exact ? r : null); }), (function(e, t, n) { if (t.clear_child_styles) { var r = t.links ? "*:not(a)" : "*"; Cg(e.select(r, n), function(n) { xg(n) && Cg(t.styles, function(t, r) { e.setStyle(n, r, ""); }); }); } })(e.dom, t, r); }); }, Bg = function(e, t, n, r) { (t.styles.color || t.styles.textDecoration) && (Ot.walk(r, y.curry(Ag, e), "childNodes"), Ag(e, r)); }, Rg = function(e, t, n, r) { t.styles && t.styles.backgroundColor && Eg( r, Sg(e, "fontSize"), kg(e, "backgroundColor", Uc.replaceVars(t.styles.backgroundColor, n)) ); }, Dg = function(e, t, n, r) { ("sub" !== t.inline && "sup" !== t.inline) || (Eg(r, Sg(e, "fontSize"), kg(e, "fontSize", "")), e.remove(e.select("sup" === t.inline ? "sub" : "sup", r), !0)); }, Og = function(e, t, n, r) { r && !1 !== t.merge_siblings && ((r = Ng(e, Uc.getNonWhiteSpaceSibling(r), r)), (r = Ng(e, r, Uc.getNonWhiteSpaceSibling(r, !0)))); }, Pg = function(e, t, n, r, o) { (il.matchNode(e, o.parentNode, n, r) && yg(e, t, r, o)) || (t.merge_with_parents && e.dom.getParent(o.parentNode, function(i) { if (il.matchNode(e, i, n, r)) return yg(e, t, r, o), !0; })); }, Ig = Ot.each, Lg = function(e, t, n, r) { var o, i, a = e.formatter.get(t), s = a[0], u = !r && e.selection.isCollapsed(), c = e.dom, l = e.selection, f = function(e, t) { if (((t = t || s), e)) { if ( (t.onformat && t.onformat(e, t, n, r), Ig(t.styles, function(t, r) { c.setStyle(e, r, Uc.replaceVars(t, n)); }), t.styles) ) { var o = c.getAttrib(e, "style"); o && e.setAttribute("data-mce-style", o); } Ig(t.attributes, function(t, r) { c.setAttrib(e, r, Uc.replaceVars(t, n)); }), Ig(t.classes, function(t) { (t = Uc.replaceVars(t, n)), c.hasClass(e, t) || c.addClass(e, t); }); } }, d = function(e, t) { var n = !1; return ( !!s.selector && (Ig(e, function(e) { if (!("collapsed" in e && e.collapsed !== u)) return c.is(t, e.selector) && !Nl(t) ? (f(t, e), (n = !0), !1) : void 0; }), n) ); }, m = function(r, o, i, u) { var c, l, m = [], p = !0; (c = s.inline || s.block), (l = r.create(c)), f(l), cg.walk(r, o, function(o) { var i, g = function(o) { var h, v, y, b; if ( ((b = p), (h = o.nodeName.toLowerCase()), (v = o.parentNode.nodeName.toLowerCase()), 1 === o.nodeType && r.getContentEditable(o) && ((b = p), (p = "true" === r.getContentEditable(o)), (y = !0)), Uc.isEq(h, "br")) ) return (i = 0), void (s.block && r.remove(o)); if (s.wrapper && il.matchNode(e, o, t, n)) i = 0; else { if ( p && !y && s.block && !s.wrapper && Uc.isTextBlock(e, h) && Uc.isValid(e, v, c) ) return ( (o = r.rename(o, c)), f(o), m.push(o), void (i = 0) ); if (s.selector) { var C = d(a, o); if (!s.inline || C) return void (i = 0); } !p || y || !Uc.isValid(e, c, h) || !Uc.isValid(e, v, c) || (!u && 3 === o.nodeType && 1 === o.nodeValue.length && 65279 === o.nodeValue.charCodeAt(0)) || Nl(o) || (s.inline && r.isBlock(o)) ? ((i = 0), Ig(Ot.grep(o.childNodes), g), y && (p = b), (i = 0)) : (i || ((i = r.clone(l, !1)), o.parentNode.insertBefore(i, o), m.push(i)), i.appendChild(o)); } }; Ig(o, g); }), !0 === s.links && Ig(m, function(e) { var t = function(e) { "A" === e.nodeName && f(e, s), Ig(Ot.grep(e.childNodes), t); }; t(e); }), Ig(m, function(o) { var i, u, c, l, d, p = function(e) { var t = !1; return ( Ig(e.childNodes, function(e) { if ( (n = e) && 1 === n.nodeType && !xs.isBookmarkNode(n) && !Nl(n) && !vo.isBogus(n) ) return (t = e), !1; var n; }), t ); }; (u = 0), Ig(o.childNodes, function(e) { Uc.isWhiteSpaceNode(e) || xs.isBookmarkNode(e) || u++; }), (i = u), (!(m.length > 1) && r.isBlock(o)) || 0 !== i ? (s.inline || s.wrapper) && (s.exact || 1 !== i || ((l = p((c = o))) && !xs.isBookmarkNode(l) && il.matchName(r, l, s) && ((d = r.clone(l, !1)), f(d), r.replace(d, c, !0), r.remove(l, 1)), (o = d || c)), _g(e, a, n, o), Pg(e, s, t, n, o), Rg(r, s, n, o), Dg(r, s, n, o), Og(r, s, n, o)) : r.remove(o, 1); }); }; if ("false" !== c.getContentEditable(l.getNode())) { if (s) { if (r) r.nodeType ? d(a, r) || ((i = c.createRng()).setStartBefore(r), i.setEndAfter(r), m(c, Qc(e, i, a), 0, !0)) : m(c, r, 0, !0); else if ( u && s.inline && !c.select("td[data-mce-selected],th[data-mce-selected]").length ) xl(e, t, n); else { var p = e.selection.getNode(); e.settings.forced_root_block || !a[0].defaultBlock || c.getParent(p, c.isBlock) || Lg(e, a[0].defaultBlock), e.selection.setRng(Xs(e.selection.getRng())), (o = l.getBookmark()), m(c, Qc(e, l.getRng(), a)), s.styles && Bg(c, s, n, p), l.moveToBookmark(o), Uc.moveStart(c, l, l.getRng()), e.nodeChanged(); } sg(t, e); } } else { r = l.getNode(); for (var g = 0, h = a.length; g < h; g++) if (a[g].ceFalseOverride && c.is(r, a[g].selector)) return void f(r, a[g]); } }, Mg = { applyFormat: Lg }, Fg = Ot.each, zg = function(e, t, n, r, o) { var i, a, s, u, c, l, f, d; null === t.get() && ((a = e), (s = {}), (i = t).set({}), a.on("NodeChange", function(e) { var t = Uc.getParents(a.dom, e.element), n = {}; (t = Ot.grep(t, function(e) { return 1 === e.nodeType && !e.getAttribute("data-mce-bogus"); })), Fg(i.get(), function(e, r) { Fg(t, function(o) { return a.formatter.matchNode(o, r, {}, e.similar) ? (s[r] || (Fg(e, function(e) { e(!0, { node: o, format: r, parents: t }); }), (s[r] = e)), (n[r] = e), !1) : !il.matchesUnInheritedFormatSelector(a, o, r) && void 0; }); }), Fg(s, function(r, o) { n[o] || (delete s[o], Fg(r, function(n) { n(!1, { node: e.element, format: o, parents: t }); })); }); })), (c = n), (l = r), (f = o), (d = (u = t).get()), Fg(c.split(","), function(e) { d[e] || ((d[e] = []), (d[e].similar = f)), d[e].push(l); }), u.set(d); }, Ug = function(e) { var t = { valigntop: [{ selector: "td,th", styles: { verticalAlign: "top" } }], valignmiddle: [ { selector: "td,th", styles: { verticalAlign: "middle" } } ], valignbottom: [ { selector: "td,th", styles: { verticalAlign: "bottom" } } ], alignleft: [ { selector: "figure.image", collapsed: !1, classes: "align-left", ceFalseOverride: !0, preview: "font-family font-size" }, { selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: { textAlign: "left" }, inherit: !1, preview: !1, defaultBlock: "div" }, { selector: "img,table", collapsed: !1, styles: { float: "left" }, preview: "font-family font-size" } ], aligncenter: [ { selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: { textAlign: "center" }, inherit: !1, preview: "font-family font-size", defaultBlock: "div" }, { selector: "figure.image", collapsed: !1, classes: "align-center", ceFalseOverride: !0, preview: "font-family font-size" }, { selector: "img", collapsed: !1, styles: { display: "block", marginLeft: "auto", marginRight: "auto" }, preview: !1 }, { selector: "table", collapsed: !1, styles: { marginLeft: "auto", marginRight: "auto" }, preview: "font-family font-size" } ], alignright: [ { selector: "figure.image", collapsed: !1, classes: "align-right", ceFalseOverride: !0, preview: "font-family font-size" }, { selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: { textAlign: "right" }, inherit: !1, preview: "font-family font-size", defaultBlock: "div" }, { selector: "img,table", collapsed: !1, styles: { float: "right" }, preview: "font-family font-size" } ], alignjustify: [ { selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: { textAlign: "justify" }, inherit: !1, defaultBlock: "div", preview: "font-family font-size" } ], bold: [ { inline: "strong", remove: "all" }, { inline: "span", styles: { fontWeight: "bold" } }, { inline: "b", remove: "all" } ], italic: [ { inline: "em", remove: "all" }, { inline: "span", styles: { fontStyle: "italic" } }, { inline: "i", remove: "all" } ], underline: [ { inline: "span", styles: { textDecoration: "underline" }, exact: !0 }, { inline: "u", remove: "all" } ], strikethrough: [ { inline: "span", styles: { textDecoration: "line-through" }, exact: !0 }, { inline: "strike", remove: "all" } ], forecolor: { inline: "span", styles: { color: "%value" }, links: !0, remove_similar: !0, clear_child_styles: !0 }, hilitecolor: { inline: "span", styles: { backgroundColor: "%value" }, links: !0, remove_similar: !0, clear_child_styles: !0 }, fontname: { inline: "span", styles: { fontFamily: "%value" }, clear_child_styles: !0 }, fontsize: { inline: "span", styles: { fontSize: "%value" }, clear_child_styles: !0 }, fontsize_class: { inline: "span", attributes: { class: "%value" } }, blockquote: { block: "blockquote", wrapper: 1, remove: "all" }, subscript: { inline: "sub" }, superscript: { inline: "sup" }, code: { inline: "code" }, link: { inline: "a", selector: "a", remove: "all", split: !0, deep: !0, onmatch: function() { return !0; }, onformat: function(t, n, r) { Ot.each(r, function(n, r) { e.setAttrib(t, r, n); }); } }, removeformat: [ { selector: "b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins", remove: "all", split: !0, expand: !1, block_expand: !0, deep: !0 }, { selector: "span", attributes: ["style", "class"], remove: "empty", split: !0, expand: !1, deep: !0 }, { selector: "*", attributes: ["style", "class"], split: !1, expand: !1, deep: !0 } ] }; return ( Ot.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 ); }, Vg = Ot.each, Hg = Xo.DOM, qg = function(e, t) { var n, r, o, i = (t && t.schema) || Fo({}), a = function(e) { var t, n, o; return ( (r = "string" == typeof e ? { name: e, classes: [], attrs: {} } : e), (t = Hg.create(r.name)), (n = t), (o = r).classes.length && Hg.addClass(n, o.classes.join(" ")), Hg.setAttribs(n, o.attrs), t ); }, s = function(e, t, n) { var r, o, u, c, l, f, d, m, p = t.length > 0 && t[0], g = p && p.name; if ( ((l = g), (f = "string" != typeof (c = e) ? c.nodeName.toLowerCase() : c), (d = i.getElementRule(f)), (u = !(!(m = d && d.parentsRequired) || !m.length) && (l && -1 !== Ot.inArray(m, l) ? l : m[0]))) ) g === u ? ((o = t[0]), (t = t.slice(1))) : (o = u); else if (p) (o = t[0]), (t = t.slice(1)); else if (!n) return e; return ( o && (r = a(o)).appendChild(e), n && (r || (r = Hg.create("div")).appendChild(e), Ot.each(n, function(t) { var n = a(t); r.insertBefore(n, e); })), s(r, t, o && o.siblings) ); }; return e && e.length ? ((r = e[0]), (n = a(r)), (o = Hg.create("div")).appendChild(s(n, e.slice(1), r.siblings)), o) : ""; }, jg = function(e) { var t, n = { classes: [], attrs: {} }; return ( "*" !== (e = n.selector = Ot.trim(e)) && (t = e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g, function( e, t, r, o, i ) { switch (t) { case "#": n.attrs.id = r; break; case ".": n.classes.push(r); break; case ":": -1 !== Ot.inArray( "checked disabled enabled read-only required".split(" "), r ) && (n.attrs[r] = r); } if ("[" === o) { var a = i.match(/([\w\-]+)(?:\=\"([^\"]+))?/); a && (n.attrs[a[1]] = a[2]); } return ""; })), (n.name = t || "div"), n ); }, $g = function(e) { return e && "string" == typeof e ? ((e = (e = e.split(/\s*,\s*/)[0]).replace( /\s*(~\+|~|\+|>)\s*/g, "$1" )), Ot.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/), function(e) { var t = Ot.map(e.split(/(?:~\+|~|\+)/), jg), n = t.pop(); return t.length && (n.siblings = t), n; }).reverse()) : []; }, Wg = function(e, t) { var n, r, o, i, a, s, u = ""; if (!1 === (s = e.settings.preview_styles)) return ""; "string" != typeof s && (s = "font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"); var c = function(e) { return e.replace(/%(\w+)/g, ""); }; if ("string" == typeof t) { if (!(t = e.formatter.get(t))) return; t = t[0]; } return "preview" in t && !1 === (s = t.preview) ? "" : ((n = t.block || t.inline || "span"), (i = $g(t.selector)).length ? (i[0].name || (i[0].name = n), (n = t.selector), (r = qg(i, e))) : (r = qg([n], e)), (o = Hg.select(n, r)[0] || r.firstChild), Vg(t.styles, function(e, t) { (e = c(e)) && Hg.setStyle(o, t, e); }), Vg(t.attributes, function(e, t) { (e = c(e)) && Hg.setAttrib(o, t, e); }), Vg(t.classes, function(e) { (e = c(e)), Hg.hasClass(o, e) || Hg.addClass(o, e); }), e.fire("PreviewFormats"), Hg.setStyles(r, { position: "absolute", left: -65535 }), e.getBody().appendChild(r), (a = Hg.getStyle(e.getBody(), "fontSize", !0)), (a = /px$/.test(a) ? parseInt(a, 10) : 0), Vg(s.split(" "), function(t) { var n = Hg.getStyle(o, t, !0); if ( !( ("background-color" === t && /transparent|rgba\s*\([^)]+,\s*0\)/.test(n) && ((n = Hg.getStyle(e.getBody(), t, !0)), "#ffffff" === Hg.toHex(n).toLowerCase())) || ("color" === t && "#000000" === Hg.toHex(n).toLowerCase()) ) ) { if ("font-size" === t && /em|%$/.test(n)) { if (0 === a) return; n = (n = parseFloat(n) / (/%$/.test(n) ? 100 : 1)) * a + "px"; } "border" === t && n && (u += "padding:0 2px;"), (u += t + ":" + n + ";"); } }), e.fire("AfterPreviewFormats"), Hg.remove(r), u); }, Kg = function(e, t, n, r, o) { var i = t.get(n); !il.match(e, n, r, o) || ("toggle" in i[0] && !i[0].toggle) ? Mg.applyFormat(e, n, r, o) : bg(e, n, r, o); }, Xg = 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"]); }, Yg = function(e) { var t, n, r, o = ((n = {}), (r = function(e, t) { e && ("string" != typeof e ? Ot.each(e, function(e, t) { r(t, e); }) : ((t = t.length ? t : [t]), Ot.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))); })(Ug((t = e).dom)), r(t.settings.formats), { get: function(e) { return e ? n[e] : n; }, register: r, unregister: function(e) { return e && n[e] && delete n[e], n; } }), i = Yl(null); return ( Xg(e), Cl(e), { get: o.get, register: o.register, unregister: o.unregister, apply: y.curry(Mg.applyFormat, e), remove: y.curry(bg, e), toggle: y.curry(Kg, e, o), match: y.curry(il.match, e), matchAll: y.curry(il.matchAll, e), matchNode: y.curry(il.matchNode, e), canApply: y.curry(il.canApply, e), formatChanged: y.curry(zg, e, i), getCssText: y.curry(Wg, e) } ); }, Gg = function(e) { return function() { for (var t = new Array(arguments.length), n = 0; n < t.length; n++) t[n] = arguments[n]; if (0 === t.length) throw new Error("Can't merge zero objects"); for (var r = {}, o = 0; o < t.length; o++) { var i = t[o]; for (var a in i) i.hasOwnProperty(a) && (r[a] = e(r[a], i[a])); } return r; }; }, Jg = Gg(function(e, t) { return tr.isObject(e) && tr.isObject(t) ? Jg(e, t) : t; }), Qg = Gg(function(e, t) { return t; }), Zg = { deepMerge: Jg, merge: Qg }, eh = function(e, t) { return e.fire("PreProcess", t); }, th = function(e, t) { return e.fire("PostProcess", t); }, nh = function(e, t, n) { e.addAttributeFilter("data-mce-tabindex", function(e, t) { for (var n, r = e.length; r--; ) (n = e[r]).attr("tabindex", n.attributes.map["data-mce-tabindex"]), n.attr(t, null); }), e.addAttributeFilter("src,href,style", function(e, r) { for ( var o, i, a = e.length, s = "data-mce-" + r, u = t.url_converter, c = t.url_converter_scope; a--; ) (i = (o = e[a]).attributes.map[s]) !== undefined ? (o.attr(r, i.length > 0 ? i : null), o.attr(s, null)) : ((i = o.attributes.map[r]), "style" === r ? (i = n.serializeStyle(n.parseStyle(i), o.name)) : u && (i = u.call(c, i, r, o.name)), o.attr(r, i.length > 0 ? i : null)); }), e.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", n.length > 0 ? n : null)); }), e.addAttributeFilter("data-mce-type", function(e, t, n) { for (var r, o = e.length; o--; ) "bookmark" !== (r = e[o]).attributes.map["data-mce-type"] || n.cleanup || r.remove(); }), e.addNodeFilter("noscript", function(e) { for (var t, n = e.length; n--; ) (t = e[n].firstChild) && (t.value = Ao.decode(t.value)); }), e.addNodeFilter("script,style", function(e, n) { for ( var r, o, i, a = e.length, s = function(e) { return e .replace(/()/g, "\n") .replace(/^[\r\n]*|[\r\n]*$/g, "") .replace( /^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, "" ); }; a--; ) (o = (r = e[a]).firstChild ? r.firstChild.value : ""), "script" === n ? ((i = r.attr("type")) && r.attr( "type", "mce-no/type" === i ? null : i.replace(/^mce\-/, "") ), "xhtml" === t.element_format && o.length > 0 && (r.firstChild.value = "// ")) : "xhtml" === t.element_format && o.length > 0 && (r.firstChild.value = "\x3c!--\n" + s(o) + "\n--\x3e"); }), e.addNodeFilter("#comment", function(e) { for (var t, n = e.length; n--; ) 0 === (t = e[n]).value.indexOf("[CDATA[") ? ((t.name = "#cdata"), (t.type = 4), (t.value = t.value.replace(/^\[CDATA\[|\]\]$/g, ""))) : 0 === t.value.indexOf("mce:protected ") && ((t.name = "#text"), (t.type = 3), (t.raw = !0), (t.value = unescape(t.value).substr(14))); }), e.addNodeFilter("xml:namespace,input", function(e, t) { for (var n, r = e.length; r--; ) 7 === (n = e[r]).type ? n.remove() : 1 === n.type && ("input" !== t || "type" in n.attributes.map || n.attr("type", "text")); }), e.addAttributeFilter("data-mce-type", function(t) { M.each(t, function(t) { "format-caret" === t.attr("data-mce-type") && (t.isEmpty(e.schema.getNonEmptyElements()) ? t.remove() : t.unwrap()); }); }), e.addAttributeFilter( "data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize", function(e, t) { for (var n = e.length; n--; ) e[n].attr(t, null); } ); }, rh = function(e) { var t, n, r = function(e) { return e && "br" === e.name; }; r((t = e.lastChild)) && r((n = t.prev)) && (t.remove(), n.remove()); }, oh = function(e, t, n) { return ( (f = n), (l = e) && l.hasEventListeners("PreProcess") && !f.no_events ? ((o = t), (i = n), (c = (r = e).dom), (o = o.cloneNode(!0)), (a = document.implementation).createHTMLDocument && ((s = a.createHTMLDocument("")), Ot.each("BODY" === o.nodeName ? o.childNodes : [o], function(e) { s.body.appendChild(s.importNode(e, !0)); }), (o = "BODY" !== o.nodeName ? s.body.firstChild : s.body), (u = c.doc), (c.doc = s)), eh(r, Zg.merge(i, { node: o })), u && (c.doc = u), o) : t ); var r, o, i, a, s, u, c, l, f; }, ih = function(e, t, n) { e.addNodeFilter("font", function(e) { M.each(e, function(e) { var r, o, i = t.parse(e.attr("style")), a = e.attr("color"), s = e.attr("face"), u = e.attr("size"); a && (i.color = a), s && (i["font-family"] = s), u && (i["font-size"] = n[parseInt(e.attr("size"), 10) - 1]), (e.name = "span"), e.attr("style", t.serialize(i)), (r = e), (o = ["color", "face", "size"]), M.each(o, function(e) { r.attr(e, null); }); }); }); }, ah = function(e, t) { var n, r = zo(); t.convert_fonts_to_spans && ih(e, r, Ot.explode(t.font_size_legacy_values)), (n = r), e.addNodeFilter("strike", function(e) { M.each(e, function(e) { var t = n.parse(e.attr("style")); (t["text-decoration"] = "line-through"), (e.name = "span"), e.attr("style", n.serialize(t)); }); }); }, sh = function(e, t) { t.inline_styles && ah(e, t); }, uh = /^[ \t\r\n]*$/, ch = { "#text": 3, "#comment": 8, "#cdata": 4, "#pi": 7, "#doctype": 10, "#document-fragment": 11 }, lh = function(e, t, n) { var r, o, i = n ? "lastChild" : "firstChild", a = n ? "prev" : "next"; if (e[i]) return e[i]; if (e !== t) { if ((r = e[a])) return r; for (o = e.parent; o && o !== t; o = o.parent) if ((r = o[a])) return r; } }, fh = function(e, t) { (this.name = e), (this.type = t), 1 === t && ((this.attributes = []), (this.attributes.map = {})); }; (fh.prototype = { replace: function(e) { return e.parent && e.remove(), this.insert(e, this), this.remove(), this; }, attr: function(e, t) { var n, r; if ("string" != typeof e) { for (r in e) this.attr(r, e[r]); return this; } if ((n = this.attributes)) { if (t !== undefined) { if (null === t) { if (e in n.map) for (delete n.map[e], r = n.length; r--; ) if (n[r].name === e) return (n = n.splice(r, 1)), this; return this; } if (e in n.map) { for (r = n.length; r--; ) if (n[r].name === e) { n[r].value = t; break; } } else n.push({ name: e, value: t }); return (n.map[e] = t), this; } return n.map[e]; } }, clone: function() { var e, t, n, r, o, i = new fh(this.name, this.type); if ((n = this.attributes)) { for ((o = []).map = {}, e = 0, t = n.length; e < t; e++) "id" !== (r = n[e]).name && ((o[o.length] = { name: r.name, value: r.value }), (o.map[r.name] = r.value)); i.attributes = o; } return (i.value = this.value), (i.shortEnded = this.shortEnded), i; }, wrap: function(e) { return this.parent.insert(e, this), e.append(this), this; }, unwrap: function() { var e, t; for (e = this.firstChild; e; ) (t = e.next), this.insert(e, this, !0), (e = t); this.remove(); }, remove: function() { var e = this.parent, t = this.next, n = this.prev; return ( e && (e.firstChild === this ? ((e.firstChild = t), t && (t.prev = null)) : (n.next = t), e.lastChild === this ? ((e.lastChild = n), n && (n.next = null)) : (t.prev = n), (this.parent = this.next = this.prev = null)), this ); }, append: function(e) { var t; return ( e.parent && e.remove(), (t = this.lastChild) ? ((t.next = e), (e.prev = t), (this.lastChild = e)) : (this.lastChild = this.firstChild = e), (e.parent = this), e ); }, insert: function(e, t, n) { var r; return ( e.parent && e.remove(), (r = t.parent || this), n ? (t === r.firstChild ? (r.firstChild = e) : (t.prev.next = e), (e.prev = t.prev), (e.next = t), (t.prev = e)) : (t === r.lastChild ? (r.lastChild = e) : (t.next.prev = e), (e.next = t.next), (e.prev = t), (t.next = e)), (e.parent = r), e ); }, getAll: function(e) { var t, n = []; for (t = this.firstChild; t; t = lh(t, this)) t.name === e && n.push(t); return n; }, empty: function() { var e, t, n; if (this.firstChild) { for (e = [], n = this.firstChild; n; n = lh(n, this)) e.push(n); for (t = e.length; t--; ) (n = e[t]).parent = n.firstChild = n.lastChild = n.next = n.prev = null; } return (this.firstChild = this.lastChild = null), this; }, isEmpty: function(e, t, n) { var r, o, i = this.firstChild; if (((t = t || {}), i)) do { if (1 === i.type) { if (i.attributes.map["data-mce-bogus"]) continue; if (e[i.name]) return !1; for (r = i.attributes.length; r--; ) if ( "name" === (o = i.attributes[r].name) || 0 === o.indexOf("data-mce-bookmark") ) return !1; } if (8 === i.type) return !1; if (3 === i.type && !uh.test(i.value)) return !1; if (3 === i.type && i.parent && t[i.parent.name] && uh.test(i.value)) return !1; if (n && n(i)) return !1; } while ((i = lh(i, this))); return !0; }, walk: function(e) { return lh(this, null, e); } }), (fh.create = function(e, t) { var n, r; if (((n = new fh(e, ch[e] || 1)), t)) for (r in t) n.attr(r, t[r]); return n; }); var dh = Ot.makeMap, mh = Ot.each, ph = Ot.explode, gh = Ot.extend, hh = function(e, t, n, r) { (e.padd_empty_with_br || t.insert) && n[r.name] ? (r.empty().append(new fh("br", "1")).shortEnded = !0) : (r.empty().append(new fh("#text", "3")).value = "\xa0"); }, vh = function(e, t) { return ( e && e.firstChild && e.firstChild === e.lastChild && e.firstChild.name === t ); }, yh = function(e, t, n, r) { return r.isEmpty(t, n, function(t) { return (n = t), (r = e.getElementRule(n.name)) && r.paddEmpty; var n, r; }); }, bh = function(e, t) { var n = {}, r = {}, o = [], i = {}, a = {}; return ( ((e = e || {}).validate = !("validate" in e) || e.validate), (e.root_name = e.root_name || "body"), (n.schema = t = t || Fo()), (n.filterNode = function(e) { var t, n, s; n in r && ((s = i[n]) ? s.push(e) : (i[n] = [e])), (t = o.length); for (; t--; ) (n = o[t].name) in e.attributes.map && ((s = a[n]) ? s.push(e) : (a[n] = [e])); return e; }), (n.addNodeFilter = function(e, t) { mh(ph(e), function(e) { var n = r[e]; n || (r[e] = n = []), n.push(t); }); }), (n.addAttributeFilter = function(e, t) { mh(ph(e), function(e) { var n; for (n = 0; n < o.length; n++) if (o[n].name === e) return void o[n].callbacks.push(t); o.push({ name: e, callbacks: [t] }); }); }), (n.parse = function(s, u) { var c, l, f, d, m, p, g, h, v, y, b, C, x, w, N, E, S, k, T, A, _, B = []; (u = u || {}), (i = {}), (a = {}), (C = gh( dh("script,style,head,html,body,title,meta,param"), t.getBlockElements() )), (A = t.getNonEmptyElements()), (T = t.children), (b = e.validate), (_ = "forced_root_block" in u ? u.forced_root_block : e.forced_root_block), (k = t.getWhiteSpaceElements()), (x = /^[ \t\r\n]+/), (N = /[ \t\r\n]+$/), (E = /[ \t\r\n]+/g), (S = /^[ \t\r\n]+$/); var R = function(e, t) { var n, o = new fh(e, t); return e in r && ((n = i[e]) ? n.push(o) : (i[e] = [o])), o; }, D = function(e) { var n, r, o, i, a = t.getBlockElements(); for (n = e.prev; n && 3 === n.type; ) { if ((o = n.value.replace(N, "")).length > 0) return void (n.value = o); if ((r = n.next)) { if (3 === r.type && r.value.length) { n = n.prev; continue; } if (!a[r.name] && "script" !== r.name && "style" !== r.name) { n = n.prev; continue; } } (i = n.prev), n.remove(), (n = i); } }; if ( ((c = new em( { validate: b, allow_script_urls: e.allow_script_urls, allow_conditional_comments: e.allow_conditional_comments, self_closing_elements: (function(e) { var t, n = {}; for (t in e) "li" !== t && "p" !== t && (n[t] = e[t]); return n; })(t.getSelfClosingElements()), cdata: function(e) { f.append(R("#cdata", 4)).value = e; }, text: function(e, t) { var n; w || ((e = e.replace(E, " ")), f.lastChild && C[f.lastChild.name] && (e = e.replace(x, ""))), 0 !== e.length && (((n = R("#text", 3)).raw = !!t), (f.append(n).value = e)); }, comment: function(e) { f.append(R("#comment", 8)).value = e; }, pi: function(e, t) { (f.append(R(e, 7)).value = t), D(f); }, doctype: function(e) { (f.append(R("#doctype", 10)).value = e), D(f); }, start: function(e, n, r) { var i, s, u, c, l; if ((u = b ? t.getElementRule(e) : {})) { for ( (i = R(u.outputName || e, 1)).attributes = n, i.shortEnded = r, f.append(i), (l = T[f.name]) && T[i.name] && !l[i.name] && B.push(i), s = o.length; s--; ) (c = o[s].name) in n.map && ((v = a[c]) ? v.push(i) : (a[c] = [i])); C[e] && D(i), r || (f = i), !w && k[e] && (w = !0); } }, end: function(n) { var r, o, i, a, s, c; if ((o = b ? t.getElementRule(n) : {})) { if (C[n] && !w) { if ((r = f.firstChild) && 3 === r.type) if ((i = r.value.replace(x, "")).length > 0) (r.value = i), (r = r.next); else for ( a = r.next, r.remove(), r = a; r && 3 === r.type; ) (i = r.value), (a = r.next), (0 === i.length || S.test(i)) && (r.remove(), (r = a)), (r = a); if ((r = f.lastChild) && 3 === r.type) if ((i = r.value.replace(N, "")).length > 0) (r.value = i), (r = r.prev); else for ( a = r.prev, r.remove(), r = a; r && 3 === r.type; ) (i = r.value), (a = r.prev), (0 === i.length || S.test(i)) && (r.remove(), (r = a)), (r = a); } if ( (w && k[n] && (w = !1), o.removeEmpty && yh(t, A, k, f) && !f.attributes.map.name && !f.attributes.map.id) ) return ( (s = f.parent), C[f.name] ? f.empty().remove() : f.unwrap(), void (f = s) ); o.paddEmpty && ((vh((c = f), "#text") && "\xa0" === c.firstChild.value) || yh(t, A, k, f)) && hh(e, u, C, f), (f = f.parent); } } }, t )), (l = f = new fh(u.context || e.root_name, 11)), c.parse(s), b && B.length && (u.context ? (u.invalid = !0) : (function(e) { var r, o, i, a, s, u, c, l, f, d, m, p, g, h, v, y; for ( p = dh("tr,td,th,tbody,thead,tfoot,table"), d = t.getNonEmptyElements(), m = t.getWhiteSpaceElements(), g = t.getTextBlockElements(), h = t.getSpecialElements(), r = 0; r < e.length; r++ ) if ((o = e[r]).parent && !o.fixed) if (g[o.name] && "li" === o.parent.name) { for (v = o.next; v && g[v.name]; ) (v.name = "li"), (v.fixed = !0), o.parent.insert(v, o.parent), (v = v.next); o.unwrap(o); } else { for ( a = [o], i = o.parent; i && !t.isValidChild(i.name, o.name) && !p[i.name]; i = i.parent ) a.push(i); if (i && a.length > 1) { for ( a.reverse(), s = u = n.filterNode(a[0].clone()), f = 0; f < a.length - 1; f++ ) { for ( t.isValidChild(u.name, a[f].name) ? ((c = n.filterNode(a[f].clone())), u.append(c)) : (c = u), l = a[f].firstChild; l && l !== a[f + 1]; ) (y = l.next), c.append(l), (l = y); u = c; } yh(t, d, m, s) ? i.insert(o, a[0], !0) : (i.insert(s, a[0], !0), i.insert(o, s)), (i = a[0]), (yh(t, d, m, i) || vh(i, "br")) && i.empty().remove(); } else if (o.parent) { if ("li" === o.name) { if ( (v = o.prev) && ("ul" === v.name || "ul" === v.name) ) { v.append(o); continue; } if ( (v = o.next) && ("ul" === v.name || "ul" === v.name) ) { v.insert(o, v.firstChild, !0); continue; } o.wrap(n.filterNode(new fh("ul", 1))); continue; } t.isValidChild(o.parent.name, "div") && t.isValidChild("div", o.name) ? o.wrap(n.filterNode(new fh("div", 1))) : h[o.name] ? o.empty().remove() : o.unwrap(); } } })(B)), _ && ("body" === l.name || u.isRootContent) && (function() { var n, r, o = l.firstChild, i = function(e) { e && ((o = e.firstChild) && 3 === o.type && (o.value = o.value.replace(x, "")), (o = e.lastChild) && 3 === o.type && (o.value = o.value.replace(N, ""))); }; if (t.isValidChild(l.name, _.toLowerCase())) { for (; o; ) (n = o.next), 3 === o.type || (1 === o.type && "p" !== o.name && !C[o.name] && !o.attr("data-mce-type")) ? r ? r.append(o) : ((r = R(_, 1)).attr(e.forced_root_block_attrs), l.insert(r, o), r.append(o)) : (i(r), (r = null)), (o = n); i(r); } })(), !u.invalid) ) { for (y in i) { for (v = r[y], g = (d = i[y]).length; g--; ) d[g].parent || d.splice(g, 1); for (m = 0, p = v.length; m < p; m++) v[m](d, y, u); } for (m = 0, p = o.length; m < p; m++) if ((v = o[m]).name in a) { for (g = (d = a[v.name]).length; g--; ) d[g].parent || d.splice(g, 1); for (g = 0, h = v.callbacks.length; g < h; g++) v.callbacks[g](d, v.name, u); } } return l; }), e.remove_trailing_brs && n.addNodeFilter("br", function(n, r, o) { var i, a, s, u, c, l, f, d, m = n.length, p = gh({}, t.getBlockElements()), g = t.getNonEmptyElements(), h = t.getNonEmptyElements(); for (p.body = 1, i = 0; i < m; i++) if ( ((s = (a = n[i]).parent), p[a.parent.name] && a === s.lastChild) ) { for (c = a.prev; c; ) { if ( "span" !== (l = c.name) || "bookmark" !== c.attr("data-mce-type") ) { if ("br" !== l) break; if ("br" === l) { a = null; break; } } c = c.prev; } a && (a.remove(), yh(t, g, h, s) && (f = t.getElementRule(s.name)) && (f.removeEmpty ? s.remove() : f.paddEmpty && hh(e, o, p, s))); } else { for ( u = a; s && s.firstChild === u && s.lastChild === u && ((u = s), !p[s.name]); ) s = s.parent; u === s && !0 !== e.padd_empty_with_br && (((d = new fh("#text", 3)).value = "\xa0"), a.replace(d)); } }), n.addAttributeFilter("href", function(t) { var n, r, o, i = t.length; if (!e.allow_unsafe_link_target) for (; i--; ) "a" === (n = t[i]).name && "_blank" === n.attr("target") && n.attr( "rel", ((r = n.attr("rel")), (o = r ? Ot.trim(r) : ""), /\b(noopener)\b/g.test(o) ? o : o .split(" ") .filter(function(e) { return e.length > 0; }) .concat(["noopener"]) .sort() .join(" ")) ); }), e.allow_html_in_named_anchor || n.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")) { (r = o.parent), (t = o.lastChild); do { (n = t.prev), r.insert(t, o), (t = n); } while (t); } }), e.fix_list_elements && n.addNodeFilter("ul,ol", function(e) { for (var t, n, r = e.length; r--; ) if ("ul" === (n = (t = e[r]).parent).name || "ol" === n.name) if (t.prev && "li" === t.prev.name) t.prev.append(t); else { var o = new fh("li", 1); o.attr("style", "list-style-type: none"), t.wrap(o); } }), e.validate && t.getValidClasses() && n.addAttributeFilter("class", function(e) { for ( var n, r, o, i, a, s, u, c = e.length, l = t.getValidClasses(); c--; ) { for ( r = (n = e[c]).attr("class").split(" "), a = "", o = 0; o < r.length; o++ ) (i = r[o]), (u = !1), (s = l["*"]) && s[i] && (u = !0), (s = l[n.name]), !u && s && s[i] && (u = !0), u && (a && (a += " "), (a += i)); a.length || (a = null), n.attr("class", a); } }), sh(n, e), n ); }, Ch = function(e, t, n) { -1 === Ot.inArray(t, n) && (e.addAttributeFilter(n, function(e, t) { for (var n = e.length; n--; ) e[n].attr(t, null); }), t.push(n)); }, xh = function(e, t, n, r, o) { var i, a, s, u, c = ((i = r), zs(t, n).serialize(i)); return ( (a = e), (u = c), !(s = o).no_events && a ? th(a, Zg.merge(s, { content: u })).content : u ); }, wh = function(e, t) { var n, r, o, i = ["data-mce-selected"]; return ( (n = t && t.dom ? t.dom : Xo.DOM), (r = t && t.schema ? t.schema : Fo(e)), (e.entity_encoding = e.entity_encoding || "named"), (e.remove_trailing_brs = !("remove_trailing_brs" in e) || e.remove_trailing_brs), (o = bh(e, r)), nh(o, e, n), { schema: r, addNodeFilter: o.addNodeFilter, addAttributeFilter: o.addAttributeFilter, serialize: function(i, a) { var s, u, c, l, f, d, m, p, g, h = Zg.merge({ format: "html" }, a || {}), v = oh(t, i, h), y = ((s = n), (u = v), (l = ii((c = h).getInner ? u.innerHTML : s.getOuterHTML(u))), c.selection ? l : Ot.trim(l)), b = ((f = o), (d = y), (p = (m = h).selection ? Zg.merge({ forced_root_block: !1 }, m) : m), (g = f.parse(d, p)), rh(g), g); return "tree" === h.format ? b : xh(t, e, r, b, h); }, addRules: function(e) { r.addValidElements(e); }, setRules: function(e) { r.setValidElements(e); }, addTempAttr: y.curry(Ch, o, i), getTempAttrs: function() { return i; } } ); }, Nh = function(e, t) { var n = wh(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 }; }, Eh = function(e, t) { var n; t.hasAttribute("data-mce-caret") && (mi.showCaretContainerBlock(t), (n = e).selection.setRng(n.selection.getRng()), e.selection.scrollIntoView(t)); }, Sh = function(e, t) { var n, r = ((n = e), Nu(Hn.fromDom(n.getBody()), "*[data-mce-caret]").fold( y.constant(null), function(e) { return e.dom(); } )); if (r) return "compositionstart" === t.type ? (t.preventDefault(), t.stopPropagation(), void Eh(e, r)) : void (mi.hasContent(r) && Eh(e, r)); }, kh = function(e) { e.on("keyup compositionstart", y.curry(Sh, e)); }; function Th(e) { return { getBookmark: y.curry(xs.getBookmark, e), moveToBookmark: y.curry(xs.moveToBookmark, e) }; } (Th || (Th = {})).isBookmarkNode = xs.isBookmarkNode; var Ah = Th, _h = vo.isContentEditableFalse, Bh = vo.isContentEditableTrue, Rh = function(e, t) { var n, r, o, i, a, s, u, c, l, f, d, m, p, g, h, v, y, b = t.dom, C = Ot.each, x = t.getDoc(), w = document, N = Math.abs, E = Math.round, S = t.getBody(); i = { nw: [0, 0, -1, -1], ne: [1, 0, 1, -1], se: [1, 1, 1, 1], sw: [0, 1, -1, 1] }; var k = ".mce-content-body"; t.contentStyles.push( k + " div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: content-box;background: #FFF;width: 7px;height: 7px;z-index: 10000}" + k + " .mce-resizehandle:hover {background: #000}" + k + " img[data-mce-selected]," + k + " hr[data-mce-selected] {outline: 1px solid black;resize: none}" + k + " .mce-clonedresizable {position: absolute;" + (me.gecko ? "" : "outline: 1px dashed black;") + "opacity: .5;filter: alpha(opacity=50);z-index: 10000}" + k + " .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}" ); var T = function(e) { return e && ("IMG" === e.nodeName || t.dom.is(e, "figure.image")); }, A = function(e) { var n, r, o = e.target; (n = e), (r = t.selection.getRng()), !T(n.target) || kp(n.clientX, n.clientY, r) || e.isDefaultPrevented() || (e.preventDefault(), t.selection.select(o)); }, _ = function(e) { return t.dom.is(e, "figure.image") ? e.querySelector("img") : e; }, B = function(e) { var n = t.settings.object_resizing; return ( !1 !== n && !me.iOS && ("string" != typeof n && (n = "table,img,figure.image,div"), "false" !== e.getAttribute("data-mce-resize") && e !== t.getBody() && _r.is(Hn.fromDom(e), n)) ); }, R = function(e) { var i, C, x, w; (i = e.screenX - s), (C = e.screenY - u), (g = i * a[2] + f), (h = C * a[3] + d), (g = g < 5 ? 5 : g), (h = h < 5 ? 5 : h), (T(n) && !1 !== t.settings.resize_img_proportional ? !Mp.modifierPressed(e) : Mp.modifierPressed(e) || (T(n) && a[2] * a[3] != 0)) && (N(i) > N(C) ? ((h = E(g * m)), (g = E(h / m))) : ((g = E(h / m)), (h = E(g * m)))), b.setStyles(_(r), { width: g, height: h }), (x = a.startPos.x + i), (w = a.startPos.y + C), (x = x > 0 ? x : 0), (w = w > 0 ? w : 0), b.setStyles(o, { left: x, top: w, display: "block" }), (o.innerHTML = g + " × " + h), a[2] < 0 && r.clientWidth <= g && b.setStyle(r, "left", c + (f - g)), a[3] < 0 && r.clientHeight <= h && b.setStyle(r, "top", l + (d - h)), (i = S.scrollWidth - v) + (C = S.scrollHeight - y) != 0 && b.setStyles(o, { left: x - i, top: w - C }), p || (t.fire("ObjectResizeStart", { target: n, width: f, height: d }), (p = !0)); }, D = function() { p = !1; var e = function(e, r) { r && (n.style[e] || !t.schema.isValid(n.nodeName.toLowerCase(), e) ? b.setStyle(_(n), e, r) : b.setAttrib(_(n), e, r)); }; e("width", g), e("height", h), b.unbind(x, "mousemove", R), b.unbind(x, "mouseup", D), w !== x && (b.unbind(w, "mousemove", R), b.unbind(w, "mouseup", D)), b.remove(r), b.remove(o), O(n), t.fire("ObjectResized", { target: n, width: g, height: h }), b.setAttrib(n, "style", b.getAttrib(n, "style")), t.nodeChanged(); }, O = function(e) { var p, N, E, k, T; P(), M(), (p = b.getPos(e, S)), (c = p.x), (l = p.y), (T = e.getBoundingClientRect()), (N = T.width || T.right - T.left), (E = T.height || T.bottom - T.top), n !== e && ((n = e), (g = h = 0)), (k = t.fire("ObjectSelected", { target: e })), B(e) && !k.isDefaultPrevented() ? C(i, function(e, t) { var i; (i = b.get("mceResizeHandle" + t)) && b.remove(i), (i = b.add(S, "div", { id: "mceResizeHandle" + t, "data-mce-bogus": "all", class: "mce-resizehandle", unselectable: !0, style: "cursor:" + t + "-resize; margin:0; padding:0" })), me.ie && (i.contentEditable = !1), b.bind(i, "mousedown", function(t) { var i; t.stopImmediatePropagation(), t.preventDefault(), (s = (i = t).screenX), (u = i.screenY), (f = _(n).clientWidth), (d = _(n).clientHeight), (m = d / f), (a = e), (e.startPos = { x: N * e[0] + c, y: E * e[1] + l }), (v = S.scrollWidth), (y = S.scrollHeight), (r = n.cloneNode(!0)), b.addClass(r, "mce-clonedresizable"), b.setAttrib(r, "data-mce-bogus", "all"), (r.contentEditable = !1), (r.unSelectabe = !0), b.setStyles(r, { left: c, top: l, margin: 0 }), r.removeAttribute("data-mce-selected"), S.appendChild(r), b.bind(x, "mousemove", R), b.bind(x, "mouseup", D), w !== x && (b.bind(w, "mousemove", R), b.bind(w, "mouseup", D)), (o = b.add( S, "div", { class: "mce-resize-helper", "data-mce-bogus": "all" }, f + " × " + d )); }), (e.elm = i), b.setStyles(i, { left: N * e[0] + c - i.offsetWidth / 2, top: E * e[1] + l - i.offsetHeight / 2 }); }) : P(), n.setAttribute("data-mce-selected", "1"); }, P = function() { var e, t; for (e in (M(), n && n.removeAttribute("data-mce-selected"), i)) (t = b.get("mceResizeHandle" + e)) && (b.unbind(t), b.remove(t)); }, I = function(n) { var r, o = function(e, t) { if (e) do { if (e === t) return !0; } while ((e = e.parentNode)); }; p || t.removed || (C( b.select("img[data-mce-selected],hr[data-mce-selected]"), function(e) { e.removeAttribute("data-mce-selected"); } ), (r = "mousedown" === n.type ? n.target : e.getNode()), o((r = b.$(r).closest("table,img,figure.image,hr")[0]), S) && (F(), o(e.getStart(!0), r) && o(e.getEnd(!0), r)) ? O(r) : P()); }, L = function(e) { return _h( (function(e, t) { for (; t && t !== e; ) { if (Bh(t) || _h(t)) return t; t = t.parentNode; } return null; })(t.getBody(), e) ); }, M = function() { for (var e in i) { var t = i[e]; t.elm && (b.unbind(t.elm), delete t.elm); } }, F = function() { try { t.getDoc().execCommand("enableObjectResizing", !1, !1); } catch (e) {} }; return ( t.on("init", function() { F(), me.ie && me.ie >= 11 && (t.on("mousedown click", function(e) { var n = e.target, r = n.nodeName; p || !/^(TABLE|IMG|HR)$/.test(r) || L(n) || (2 !== e.button && t.selection.select(n, "TABLE" === r), "mousedown" === e.type && t.nodeChanged()); }), t.dom.bind(S, "mscontrolselect", function(e) { var n = function(e) { ye.setEditorTimeout(t, function() { t.selection.select(e); }); }; if (L(e.target)) return e.preventDefault(), void n(e.target); /^(TABLE|IMG|HR)$/.test(e.target.nodeName) && (e.preventDefault(), "IMG" === e.target.tagName && n(e.target)); })); var e = ye.throttle(function(e) { t.composing || I(e); }); t.on("nodechange ResizeEditor ResizeWindow drop", e), t.on("keyup compositionend", function(t) { n && "TABLE" === n.nodeName && e(t); }), t.on("hide blur", P), t.on("contextmenu", A); }), t.on("remove", M), { isResizable: B, showResizeRect: O, hideResizeRect: P, updateResizeRect: I, destroy: function() { n = r = null; } } ); }, Dh = function(e) { for (var t = 0, n = 0, r = e; r && r.nodeType; ) (t += r.offsetLeft || 0), (n += r.offsetTop || 0), (r = r.offsetParent); return { x: t, y: n }; }, Oh = function(e, t, n) { var r, o, i, a, s, u = e.dom, c = u.getRoot(), l = 0; if ( ((s = { elm: t, alignToTop: n }), e.fire("scrollIntoView", s), !s.isDefaultPrevented() && vo.isElement(t)) ) { if ((!1 === n && (l = t.offsetHeight), "BODY" !== c.nodeName)) { var f = e.selection.getScrollContainer(); if (f) return ( (r = Dh(t).y - Dh(f).y + l), (a = f.clientHeight), void ( (r < (i = f.scrollTop) || r + 25 > i + a) && (f.scrollTop = r < i ? r : r - a + 25) ) ); } (o = u.getViewPort(e.getWin())), (r = u.getPos(t).y + l), (i = o.y), (a = o.h), (r < o.y || r + 25 > i + a) && e.getWin().scrollTo(0, r < i ? r : r - a + 25); } }, Ph = function(e) { return vo.isContentEditableTrue(e) || vo.isContentEditableFalse(e); }, Ih = function(e, t, n) { var r, o, i, a, s, u = n; if (u.caretPositionFromPoint) (o = u.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 (u.body.createTextRange) { r = u.body.createTextRange(); try { r.moveToPoint(e, t), r.collapse(!0); } catch (c) { r = (function(e, t, n) { var r, o, i; if ( ((r = n.elementFromPoint(e, t)), (o = n.body.createTextRange()), (r && "HTML" !== r.tagName) || (r = n.body), o.moveToElementText(r), (i = (i = Ot.toArray(o.getClientRects())).sort(function(e, n) { return ( (e = Math.abs(Math.max(e.top - t, e.bottom - t))) - (n = Math.abs(Math.max(n.top - t, n.bottom - t))) ); })).length > 0) ) { t = (i[0].bottom + i[0].top) / 2; try { return o.moveToPoint(e, t), o.collapse(!0), o; } catch (a) {} } return null; })(e, t, n); } return ( (i = r), (a = n.body), (s = i && i.parentElement ? i.parentElement() : null), vo.isContentEditableFalse( (function(e, t, n) { for (; e && e !== t; ) { if (n(e)) return e; e = e.parentNode; } return null; })(s, a, Ph) ) ? null : i ); } return r; }, Lh = function(e, t) { return M.map(t, function(t) { var n = e.fire("GetSelectionRange", { range: t }); return n.range !== t ? n.range : t; }); }, Mh = function(e, t) { return Hn.fromDom(e.dom().cloneNode(t)); }, Fh = function(e) { return Mh(e, !0); }, zh = function(e) { return Mh(e, !1); }, Uh = Fh, Vh = function(e, t) { var n = (t || document).createDocumentFragment(); return ( M.each(e, function(e) { n.appendChild(e.dom()); }), Hn.fromDom(n) ); }, Hh = function(e) { return Ur.firstChild(e).fold(y.constant([e]), function(t) { return [e].concat(Hh(t)); }); }, qh = function(e) { return Ur.lastChild(e).fold(y.constant([e]), function(t) { return "br" === Zn.name(t) ? Ur.prevSibling(t) .map(function(t) { return [e].concat(qh(t)); }) .getOr([]) : [e].concat(qh(t)); }); }, jh = function(e, t) { return hs( [ ((i = t), (a = i.startContainer), (s = i.startOffset), vo.isText(a) ? 0 === s ? E.some(Hn.fromDom(a)) : E.none() : E.from(a.childNodes[s]).map(Hn.fromDom)), ((n = t), (r = n.endContainer), (o = n.endOffset), vo.isText(r) ? o === r.data.length ? E.some(Hn.fromDom(r)) : E.none() : E.from(r.childNodes[o - 1]).map(Hn.fromDom)) ], function(t, n) { var r = M.find(Hh(e), y.curry(Dr.eq, t)), o = M.find(qh(e), y.curry(Dr.eq, n)); return r.isSome() && o.isSome(); } ).getOr(!1); var n, r, o, i, a, s; }, $h = function(e, t, n, r) { var o = n, i = new to(n, o), a = e.schema.getNonEmptyElements(); do { if (3 === n.nodeType && 0 !== Ot.trim(n.nodeValue).length) return void (r ? t.setStart(n, 0) : t.setEnd(n, n.nodeValue.length)); if (a[n.nodeName] && !/^(TD|TH)$/.test(n.nodeName)) return void (r ? t.setStartBefore(n) : "BR" === n.nodeName ? t.setEndBefore(n) : t.setEndAfter(n)); if (me.ie && me.ie < 11 && e.isBlock(n) && e.isEmpty(n)) return void (r ? t.setStart(n, 0) : t.setEnd(n, 0)); } while ((n = r ? i.next() : i.prev())); "BODY" === o.nodeName && (r ? t.setStart(o, 0) : t.setEnd(o, o.childNodes.length)); }, Wh = xr("element", "width", "rows"), Kh = xr("element", "cells"), Xh = xr("x", "y"), Yh = function(e, t) { var n = parseInt(dr.get(e, t), 10); return isNaN(n) ? 1 : n; }, Gh = function(e) { return M.foldl( e, function(e, t) { return t.cells().length > e ? t.cells().length : e; }, 0 ); }, Jh = 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 (Dr.eq(o[i], t)) return E.some(Xh(i, r)); return E.none(); }, Qh = function(e, t, n, r, o) { for (var i = [], a = e.rows(), s = n; s <= o; s++) { var u = a[s].cells(), c = t < r ? u.slice(t, r + 1) : u.slice(r, t + 1); i.push(Kh(a[s].element(), c)); } return i; }, Zh = function(e) { var t = Wh(zh(e), 0, []); return ( M.each(Os(e, "tr"), function(e, n) { M.each(Os(e, "td,th"), function(r, o) { !(function(e, t, n, r, o) { for ( var i = Yh(o, "rowspan"), a = Yh(o, "colspan"), s = e.rows(), u = n; u < n + i; u++ ) { s[u] || (s[u] = Kh(Uh(r), [])); for (var c = t; c < t + a; c++) s[u].cells()[c] = u === n && c === t ? o : zh(o); } })( t, (function(e, t, n) { for ( ; (r = t), (o = n), (i = void 0), ((i = e.rows())[o] ? i[o].cells() : [])[r]; ) t++; var r, o, i; return t; })(t, o, n), n, e, r ); }); }), Wh(t.element(), Gh(t.rows()), t.rows()) ); }, ev = function(e) { return ( (t = e), (i = e), (n = M.map(i.rows(), function(e) { var t = M.map(e.cells(), function(e) { var t = Uh(e); return dr.remove(t, "colspan"), dr.remove(t, "rowspan"), t; }), n = zh(e.element()); return As(n, t), n; })), (r = zh(t.element())), (o = Hn.fromTag("tbody")), As(o, n), ks.append(r, o), r ); var t, n, r, o, i; }, tv = function(e, t, n) { return Jh(e, t).bind(function(t) { return Jh(e, n).map(function(n) { return ( (r = e), (i = n), (a = (o = t).x()), (s = o.y()), (u = i.x()), (c = i.y()), (l = s < c ? Qh(r, a, s, u, c) : Qh(r, a, c, u, s)), Wh(r.element(), Gh(l), l) ); var r, o, i, a, s, u, c, l; }); }); }, nv = function(e, t) { return M.find(e, function(e) { return "li" === Zn.name(e) && jh(e, t); }).fold(y.constant([]), function(t) { return ((n = e), M.find(n, function(e) { return "ul" === Zn.name(e) || "ol" === Zn.name(e); })) .map(function(e) { return [Hn.fromTag("li"), Hn.fromTag(Zn.name(e))]; }) .getOr([]); var n; }); }, rv = function(e, t) { var n, r = Hn.fromDom(t.commonAncestorContainer), o = Uu(r, e), i = M.filter(o, function(e) { return io.isInline(e) || io.isHeading(e); }), a = nv(o, t), s = i.concat( a.length ? a : ((n = r), io.isListItem(n) ? Ur.parent(n) .filter(io.isList) .fold(y.constant([]), function(e) { return [n, e]; }) : io.isList(n) ? [n] : []) ); return M.map(s, zh); }, ov = function() { return Vh([]); }, iv = function(e, t) { return ( (n = Hn.fromDom(t.cloneContents())), (r = rv(e, t)), (o = M.foldl( r, function(e, t) { return ks.append(t, e), t; }, n )), r.length > 0 ? Vh([o]) : o ); var n, r, o; }, av = function(e, t) { return ((n = e), (r = t[0]), wu(r, "table", y.curry(Dr.eq, n))) .bind(function(e) { var n = t[0], r = t[t.length - 1], o = Zh(e); return tv(o, n, r).map(function(e) { return Vh([ev(e)]); }); }) .getOrThunk(ov); var n, r; }, sv = function(e, t) { var n, r, o = Af(t, e); return o.length > 0 ? av(e, o) : ((n = e), (r = t).length > 0 && r[0].collapsed ? ov() : iv(n, r[0])); }, uv = function(e, t) { var n, r = e.selection.getRng(), o = e.dom.create("body"), i = e.selection.getSel(), a = Lh(e, wf(i)); if ( (((t = t || {}).get = !0), (t.format = t.format || "html"), (t.selection = !0), (t = e.fire("BeforeGetContent", t)).isDefaultPrevented()) ) return e.fire("GetContent", t), t.content; if ("text" === t.format) return e.selection.isCollapsed() ? "" : ii(r.text || (i.toString ? i.toString() : "")); r.cloneContents ? (n = t.contextual ? sv(Hn.fromDom(e.getBody()), a).dom() : r.cloneContents()) && o.appendChild(n) : r.item !== undefined || r.htmlText !== undefined ? ((o.innerHTML = "
" + (r.item ? r.item(0).outerHTML : r.htmlText)), o.removeChild(o.firstChild)) : (o.innerHTML = r.toString()), (t.getInner = !0); var s = e.selection.serializer.serialize(o, t); return "tree" === t.format ? s : ((t.content = e.selection.isCollapsed() ? "" : s), e.fire("GetContent", t), t.content); }, cv = function(e, t, n) { var r, o, i, a = e.selection.getRng(), s = e.getDoc(); if ( (((n = n || { format: "html" }).set = !0), (n.selection = !0), (n.content = t), n.no_events || !(n = e.fire("BeforeSetContent", n)).isDefaultPrevented()) ) { if (((t = n.content), a.insertNode)) { (t += '_'), a.startContainer === s && a.endContainer === s ? (s.body.innerHTML = t) : (a.deleteContents(), 0 === s.body.childNodes.length ? (s.body.innerHTML = t) : a.createContextualFragment ? a.insertNode(a.createContextualFragment(t)) : ((o = s.createDocumentFragment()), (i = s.createElement("div")), o.appendChild(i), (i.outerHTML = t), a.insertNode(o))), (r = e.dom.get("__caret")), (a = s.createRange()).setStartBefore(r), a.setEndBefore(r), e.selection.setRng(a), e.dom.remove("__caret"); try { e.selection.setRng(a); } catch (u) {} } else a.item && (s.execCommand("Delete", !1, null), (a = e.getRng())), /^\s+/.test(t) ? (a.pasteHTML('_' + t), e.dom.remove("__mce_tmp")) : a.pasteHTML(t); n.no_events || e.fire("SetContent", n); } else e.fire("SetContent", n); }, lv = function(e, t, n, r, o) { var i = n ? t.startContainer : t.endContainer, a = n ? t.startOffset : t.endOffset; return E.from(i) .map(Hn.fromDom) .map(function(e) { return r && t.collapsed ? e : Ur.child(e, o(e, a)).getOr(e); }) .bind(function(e) { return Zn.isElement(e) ? E.some(e) : Ur.parent(e); }) .map(function(e) { return e.dom(); }) .getOr(e); }, fv = function(e, t, n) { return lv(e, t, !0, n, function(e, t) { return Math.min(Ur.childNodesCount(e), t); }); }, dv = function(e, t, n) { return lv(e, t, !1, n, function(e, t) { return t > 0 ? t - 1 : t; }); }, mv = function(e, t) { for (var n = e; e && vo.isText(e) && 0 === e.length; ) e = t ? e.nextSibling : e.previousSibling; return e || n; }, pv = Ot.each, gv = function(e) { return !!e.select; }, hv = function(e) { return ( !(!e || !e.ownerDocument) && Dr.contains(Hn.fromDom(e.ownerDocument), Hn.fromDom(e)) ); }, vv = function(e, t, n, r) { var o, i, a, s, u, c = function(e, t) { return cv(r, e, t); }, l = function(e) { var t = d(); t.collapse(!!e), m(t); }, f = function() { return t.getSelection ? t.getSelection() : t.document.selection; }, d = function() { var n, o, i, u, c = function(e, t, n) { try { return t.compareBoundaryPoints(e, n); } catch (r) { return -1; } }; if (!t) return null; if (void 0 === (u = t.document) || null === u) return null; if (r.bookmark !== undefined && !1 === hm(r)) { var l = Td(r); if (l.isSome()) return l .map(function(e) { return Lh(r, [e])[0]; }) .getOr(u.createRange()); } try { (n = f()) && (o = n.rangeCount > 0 ? n.getRangeAt(0) : n.createRange ? n.createRange() : u.createRange()); } catch (d) {} return ( (o = Lh(r, [o])[0]) || (o = u.createRange ? u.createRange() : u.body.createTextRange()), o.setStart && 9 === o.startContainer.nodeType && o.collapsed && ((i = e.getRoot()), o.setStart(i, 0), o.setEnd(i, 0)), a && s && (0 === c(o.START_TO_START, o, a) && 0 === c(o.END_TO_END, o, a) ? (o = s) : ((a = null), (s = null))), o ); }, m = function(e, t) { var n, o; if ( (i = e) && (gv(i) || (hv(i.startContainer) && hv(i.endContainer))) ) { var i, u = gv(e) ? e : null; if (u) { s = null; try { u.select(); } catch (c) {} } else { if ( ((n = f()), (e = r.fire("SetSelectionRange", { range: e, forward: t }) .range), n) ) { s = e; try { n.removeAllRanges(), n.addRange(e); } catch (c) {} !1 === t && n.extend && (n.collapse(e.endContainer, e.endOffset), n.extend(e.startContainer, e.startOffset)), (a = n.rangeCount > 0 ? n.getRangeAt(0) : null); } e.collapsed || e.startContainer !== e.endContainer || !n.setBaseAndExtent || me.ie || (e.endOffset - e.startOffset < 2 && e.startContainer.hasChildNodes() && (o = e.startContainer.childNodes[e.startOffset]) && "IMG" === o.tagName && (n.setBaseAndExtent( e.startContainer, e.startOffset, e.endContainer, e.endOffset ), (n.anchorNode === e.startContainer && n.focusNode === e.endContainer) || n.setBaseAndExtent(o, 0, o, 1))), r.fire("AfterSetSelectionRange", { range: e, forward: t }); } } }, p = function() { var t, n, r = f(); return ( !(r && r.anchorNode && r.focusNode) || ((t = e.createRng()).setStart(r.anchorNode, r.anchorOffset), t.collapse(!0), (n = e.createRng()).setStart(r.focusNode, r.focusOffset), n.collapse(!0), t.compareBoundaryPoints(t.START_TO_START, n) <= 0) ); }, g = { bookmarkManager: null, controlSelection: null, dom: e, win: t, serializer: n, editor: r, collapse: l, setCursorLocation: function(t, n) { var o = e.createRng(); t ? (o.setStart(t, n), o.setEnd(t, n), m(o), l(!1)) : ($h(e, o, r.getBody(), !0), m(o)); }, getContent: function(e) { return uv(r, e); }, setContent: c, getBookmark: function(e, t) { return o.getBookmark(e, t); }, moveToBookmark: function(e) { return o.moveToBookmark(e); }, select: function(t, n) { var r, o, i; return ( ((r = e), (o = t), (i = n), E.from(o).map(function(e) { var t = r.nodeIndex(e), n = r.createRng(); return ( n.setStart(e.parentNode, t), n.setEnd(e.parentNode, t + 1), i && ($h(r, n, e, !0), $h(r, n, e, !1)), n ); })).each(m), t ); }, isCollapsed: function() { var e = d(), t = f(); return ( !(!e || e.item) && (e.compareEndPoints ? 0 === e.compareEndPoints("StartToEnd", e) : !t || e.collapsed) ); }, isForward: p, setNode: function(t) { return c(e.getOuterHTML(t)), t; }, getNode: function() { return ( (e = r.getBody()), (t = d()) ? ((o = t.startContainer), (i = t.endContainer), (a = t.startOffset), (s = t.endOffset), (n = t.commonAncestorContainer), !t.collapsed && (o === i && s - a < 2 && o.hasChildNodes() && (n = o.childNodes[a]), 3 === o.nodeType && 3 === i.nodeType && ((o = o.length === a ? mv(o.nextSibling, !0) : o.parentNode), (i = 0 === s ? mv(i.previousSibling, !1) : i.parentNode), o && o === i)) ? o : n && 3 === n.nodeType ? n.parentNode : n) : e ); var e, t, n, o, i, a, s; }, getSel: f, setRng: m, getRng: d, getStart: function(e) { return fv(r.getBody(), d(), e); }, getEnd: function(e) { return dv(r.getBody(), d(), e); }, getSelectedBlocks: function(t, n) { return (function(e, t, n, r) { var o, i, a = []; if ( ((i = e.getRoot()), (n = e.getParent(n || fv(i, t, !1), e.isBlock)), (r = e.getParent(r || dv(i, t, !1), e.isBlock)), n && n !== i && a.push(n), n && r && n !== r) ) { o = n; for (var s = new to(n, i); (o = s.next()) && o !== r; ) e.isBlock(o) && a.push(o); } return r && n !== r && r !== i && a.push(r), a; })(e, d(), t, n); }, normalize: function() { var t = d(); if (!Ef(f())) { var n = Jf.normalize(e, t); return ( n.each(function(e) { m(e, p()); }), n.getOr(t) ); } return t; }, selectorChanged: function(t, n) { var o; return ( u || ((u = {}), (o = {}), r.on("NodeChange", function(t) { var n = t.element, r = e.getParents(n, null, e.getRoot()), i = {}; pv(u, function(t, n) { pv(r, function(a) { if (e.is(a, n)) return ( o[n] || (pv(t, function(e) { e(!0, { node: a, selector: n, parents: r }); }), (o[n] = t)), (i[n] = t), !1 ); }); }), pv(o, function(e, t) { i[t] || (delete o[t], pv(e, function(e) { e(!1, { node: n, selector: t, parents: r }); })); }); })), u[t] || (u[t] = []), u[t].push(n), g ); }, getScrollContainer: function() { for (var t, n = e.getRoot(); n && "BODY" !== n.nodeName; ) { if (n.scrollHeight > n.clientHeight) { t = n; break; } n = n.parentNode; } return t; }, scrollIntoView: function(e, t) { return Oh(r, e, t); }, placeCaretAt: function(e, t) { return m(Ih(e, t, r.getDoc())); }, getBoundingClientRect: function() { var e = d(); return e.collapsed ? ia.fromRangeStart(e).getClientRects()[0] : e.getBoundingClientRect(); }, destroy: function() { (t = null), i.destroy(); } }; return ( (o = Ah(g)), (i = Rh(g, r)), (g.bookmarkManager = o), (g.controlSelection = i), g ); }, yv = ji.curry, bv = function(e, t, n, r, o, i) { var a, s, u = 0, c = [], l = function(r) { var i, a, l; for ( l = gp.getClientRects(r), -1 === e && (l = l.reverse()), i = 0; i < l.length; i++ ) if (((a = l[i]), !n(a, s))) { if ((c.length > 0 && t(a, At.last(c)) && u++, (a.line = u), o(a))) return !0; c.push(a); } }; return (s = At.last(i.getClientRects())) ? (l((a = i.getNode())), (function(e, t, n, r) { for (; (r = _a.findNode(r, e, ki, t)); ) if (n(r)) return; })(e, r, l, a), c) : c; }, Cv = { upUntil: yv(bv, -1, Ii, Li), downUntil: yv(bv, 1, Li, Ii), positionsUntil: function(e, t, n, r) { var o, i, a, s, u, c, l = Ha(t), f = [], d = 0, m = function(e) { return At.last(e.getClientRects()); }; 1 === e ? ((o = l.next), (i = Li), (a = Ii), (s = ia.after(r))) : ((o = l.prev), (i = Ii), (a = Li), (s = ia.before(r))), (c = m(s)); do { if (s.isVisible() && !a((u = m(s)), c)) { if ( (f.length > 0 && i(u, At.last(f)) && d++, ((u = Di(u)).position = s), (u.line = d), n(u)) ) return f; f.push(u); } } while ((s = o(s))); return f; }, isAboveLine: yv(function(e, t) { return t.line > e; }), isLine: yv(function(e, t) { return t.line === e; }) }, xv = vo.isContentEditableFalse, wv = Fi, Nv = _a.isAfterContentEditableFalse, Ev = _a.isBeforeContentEditableFalse, Sv = function(e, t) { for (; (t = e(t)); ) if (t.isVisible()) return t; return t; }, kv = function(e, t, n) { return ( (n = _a.normalizeRange(e, t, n)), -1 === e ? ia.fromRangeStart(n) : ia.fromRangeEnd(n) ); }, Tv = function(e, t, n, r, o) { var i, a, s, u, c, l, f, d; return !o.collapsed && ((i = wv(o)), xv(i)) ? Dp(e, t, i, -1 === e) : ((c = o), (u = mi.isCaretContainerBlock(c.startContainer)), r((a = kv(e, t.getBody(), o))) ? Op(t, a.getNode(-1 === e)) : (a = n(a)) ? r(a) ? Dp(e, t, a.getNode(-1 === e), 1 === e) : r((s = n(a))) && ((l = a), (f = s), (!(d = _a.isInSameBlock(l, f)) && vo.isBr(l.getNode())) || d) ? Dp(e, t, s.getNode(-1 === e), 1 === e) : u ? Ip(t, a.toRange()) : null : u ? o : null); }, Av = function(e, t, n) { var r, o, i, a, s = Ha(e.getBody()), u = ji.curry(Sv, s.next), c = ji.curry(Sv, s.prev); if (n.collapsed && e.settings.forced_root_block) { if (!(r = e.dom.getParent(n.startContainer, "PRE"))) return; (1 === t ? u(ia.fromRangeStart(n)) : c(ia.fromRangeStart(n))) || ((a = (i = e).dom.create(i.settings.forced_root_block)), (!me.ie || me.ie >= 11) && (a.innerHTML = '
'), (o = a), 1 === t ? e.$(r).after(o) : e.$(r).before(o), e.selection.select(o, !0), e.selection.collapse()); } }, _v = function(e, t) { var n, r = t ? 1 : -1, o = t ? Cv.downUntil : Cv.upUntil, i = e.selection.getRng(); return (n = (function(e, t, n, r) { var o, i, a, s, u, c, l, f, d; if ( ((d = wv(r)), (o = kv(e, t.getBody(), r)), (i = n(t.getBody(), Cv.isAboveLine(1), o)), (a = At.filter(i, Cv.isLine(1))), (u = At.last(o.getClientRects())), Ev(o) && (d = o.getNode()), Nv(o) && (d = o.getNode(!0)), !u) ) return null; if (((c = u.left), (s = Ep(a, c)) && xv(s.node))) return ( (l = Math.abs(c - s.left)), (f = Math.abs(c - s.right)), Dp(e, t, s.node, l < f) ); if (d) { var m = Cv.positionsUntil(e, t.getBody(), Cv.isAboveLine(1), d); if ((s = Ep(At.filter(m, Cv.isLine(1)), c))) return Ip(t, s.position.toRange()); if ((s = At.last(At.filter(m, Cv.isLine(0))))) return Ip(t, s.position.toRange()); } })(r, e, o, i)) ? n : (n = Av(e, r, i)) || null; }, Bv = function(e, t) { return function() { var n, r, o, i, a, s, u, c, l, f, d = ((r = t), (i = Ha((n = e).getBody())), (a = ji.curry(Sv, i.next)), (s = ji.curry(Sv, i.prev)), (u = r ? 1 : -1), (c = r ? a : s), (l = r ? Ev : Nv), (f = n.selection.getRng()), (o = Tv(u, n, c, l, f)) ? o : (o = Av(n, u, f)) || null); return !!d && (e.selection.setRng(d), !0); }; }, Rv = function(e, t) { return function() { var n = _v(e, t); return !!n && (e.selection.setRng(n), !0); }; }, Dv = function(e, t) { return M.bind( ((n = e), M.map(n, function(e) { return Zg.merge( { shiftKey: !1, altKey: !1, ctrlKey: !1, metaKey: !1, keyCode: 0, action: y.noop }, e ); })), function(e) { return ( (n = e), (r = t).keyCode === n.keyCode && r.shiftKey === n.shiftKey && r.altKey === n.altKey && r.ctrlKey === n.ctrlKey && r.metaKey === n.metaKey ? [e] : [] ); var n, r; } ); var n; }, Ov = function(e) { for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; var r = Array.prototype.slice.call(arguments, 1); return function() { return e.apply(null, r); }; }, Pv = function(e, t) { return M.find(Dv(e, t), function(e) { return e.action(); }); }, Iv = function(e, t) { e.on("keydown", function(n) { var r, o, i, a; !1 === n.isDefaultPrevented() && ((r = e), (o = t), (i = n), (a = Un.detect().os), Pv( [ { keyCode: Mp.RIGHT, action: Bv(r, !0) }, { keyCode: Mp.LEFT, action: Bv(r, !1) }, { keyCode: Mp.UP, action: Rv(r, !1) }, { keyCode: Mp.DOWN, action: Rv(r, !0) }, { keyCode: Mp.RIGHT, action: of.move(r, o, !0) }, { keyCode: Mp.LEFT, action: of.move(r, o, !1) }, { keyCode: Mp.RIGHT, ctrlKey: !a.isOSX(), altKey: a.isOSX(), action: of.moveNextWord(r, o) }, { keyCode: Mp.LEFT, ctrlKey: !a.isOSX(), altKey: a.isOSX(), action: of.movePrevWord(r, o) } ], i ).each(function(e) { i.preventDefault(); })); }); }, Lv = function(e) { return 1 === Ur.children(e).length; }, Mv = function(e, t) { var n, r = Hn.fromDom(e.getBody()), o = Hn.fromDom(e.selection.getStart()), i = M.filter( ((n = Uu(o, r)), M.findIndex(n, io.isBlock).fold(y.constant(n), function(e) { return n.slice(0, e); })), Lv ); return M.last(i) .map(function(n) { var r = ia.fromRangeStart(e.selection.getRng()); return ( !!Cu(t, r, n.dom()) && ((function(e, t, n, r) { var o = y.curry(kl, t), i = M.map(M.filter(r, o), function(e) { return e.dom(); }); if (0 === i.length) mc(t, e, n); else { var a = Sl(n.dom(), i); t.selection.setRng(a.toRange()); } })(t, e, n, i), !0) ); }) .getOr(!1); }, Fv = function(e, t) { return !!e.selection.isCollapsed() && Mv(e, t); }, zv = function(e, t) { e.on("keydown", function(n) { var r, o, i; !1 === n.isDefaultPrevented() && ((r = e), (o = t), (i = n), Pv( [ { keyCode: Mp.BACKSPACE, action: Ov(hc, r, !1) }, { keyCode: Mp.DELETE, action: Ov(hc, r, !0) }, { keyCode: Mp.BACKSPACE, action: Ov(cf, r, o, !1) }, { keyCode: Mp.DELETE, action: Ov(cf, r, o, !0) }, { keyCode: Mp.BACKSPACE, action: Ov(Ju, r, !1) }, { keyCode: Mp.DELETE, action: Ov(Ju, r, !0) }, { keyCode: Mp.BACKSPACE, action: Ov(Ku, r, !1) }, { keyCode: Mp.DELETE, action: Ov(Ku, r, !0) }, { keyCode: Mp.BACKSPACE, action: Ov(zf, r, !1) }, { keyCode: Mp.DELETE, action: Ov(zf, r, !0) }, { keyCode: Mp.BACKSPACE, action: Ov(Fv, r, !1) }, { keyCode: Mp.DELETE, action: Ov(Fv, r, !0) } ], i ).each(function(e) { i.preventDefault(); })); }), e.on("keyup", function(t) { var n, r; !1 === t.isDefaultPrevented() && ((n = e), (r = t), Pv( [ { keyCode: Mp.BACKSPACE, action: Ov(vc, n) }, { keyCode: Mp.DELETE, action: Ov(vc, n) } ], r )); }); }, Uv = function(e, t, n) { var r = e.getParam(t, n); if (-1 !== r.indexOf("=")) { var o = e.getParam(t, "", "hash"); return o.hasOwnProperty(e.id) ? o[e.id] : n; } return r; }, Vv = function(e) { return e.getParam("iframe_attrs", {}); }, Hv = function(e) { return e.getParam("doctype", ""); }, qv = function(e) { return e.getParam("document_base_url", ""); }, jv = function(e) { return Uv(e, "body_id", "tinymce"); }, $v = function(e) { return Uv(e, "body_class", ""); }, Wv = function(e) { return e.getParam("content_security_policy", ""); }, Kv = function(e) { return e.getParam("br_in_pre", !0); }, Xv = function(e) { if (e.getParam("force_p_newlines", !1)) return "p"; var t = e.getParam("forced_root_block", "p"); return !1 === t ? "" : t; }, Yv = function(e) { return e.getParam("forced_root_block_attrs", {}); }, Gv = function(e) { return e.getParam( "br_newline_selector", ".mce-toc h2,figcaption,caption" ); }, Jv = function(e) { return e.getParam("no_newline_selector", ""); }, Qv = function(e) { return e.getParam("keep_styles", !0); }, Zv = function(e) { return e.getParam("end_container_on_empty_block", !1); }, ey = function(e) { return E.from(e.dom.getParent(e.selection.getStart(!0), e.dom.isBlock)); }, ty = function(e, t) { var n, r, o, i = t, a = e.dom, s = e.schema.getMoveCaretBeforeOnEnterElements(); if (t) { if (/^(LI|DT|DD)$/.test(t.nodeName)) { var u = (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); u && /^(UL|OL|DL)$/.test(u.nodeName) && t.insertBefore(a.doc.createTextNode("\xa0"), t.firstChild); } if (((o = a.createRng()), t.normalize(), t.hasChildNodes())) { for (n = new to(t, t); (r = n.current()); ) { if (vo.isText(r)) { o.setStart(r, 0), o.setEnd(r, 0); break; } if (s[r.nodeName.toLowerCase()]) { o.setStartBefore(r), o.setEndBefore(r); break; } (i = r), (r = n.next()); } r || (o.setStart(i, 0), o.setEnd(i, 0)); } else vo.isBr(t) ? t.nextSibling && a.isBlock(t.nextSibling) ? (o.setStartBefore(t), o.setEndBefore(t)) : (o.setStartAfter(t), o.setEndAfter(t)) : (o.setStart(t, 0), o.setEnd(t, 0)); e.selection.setRng(o), a.remove(void 0), e.selection.scrollIntoView(t); } }, ny = function(e, t) { var n, r, o = e.getRoot(); for (n = t; n !== o && "false" !== e.getContentEditable(n); ) "true" === e.getContentEditable(n) && (r = n), (n = n.parentNode); return n !== o ? r : o; }, ry = ey, oy = function(e) { return ey(e).fold(y.constant(""), function(e) { return e.nodeName.toUpperCase(); }); }, iy = function(e) { return ey(e) .filter(function(e) { return io.isListItem(Hn.fromDom(e)); }) .isSome(); }, ay = function(e, t) { return e && e.parentNode && e.parentNode.nodeName === t; }, sy = function(e) { return e && /^(OL|UL|LI)$/.test(e.nodeName); }, uy = function(e) { var t = e.parentNode; return /^(LI|DT|DD)$/.test(t.nodeName) ? t : e; }, cy = function(e, t, n) { for (var r = e[n ? "firstChild" : "lastChild"]; r && !vo.isElement(r); ) r = r[n ? "nextSibling" : "previousSibling"]; return r === t; }, ly = function(e, t, n, r, o) { var i = e.dom, a = e.selection.getRng(); if (n !== e.getBody()) { var s; sy((s = n)) && sy(s.parentNode) && (o = "LI"); var u, c, l = o ? t(o) : i.create("BR"); if (cy(n, r, !0) && cy(n, r, !1)) ay(n, "LI") ? i.insertAfter(l, uy(n)) : i.replace(l, n); else if (cy(n, r, !0)) ay(n, "LI") ? (i.insertAfter(l, uy(n)), l.appendChild(i.doc.createTextNode(" ")), l.appendChild(n)) : n.parentNode.insertBefore(l, n); else if (cy(n, r, !1)) i.insertAfter(l, uy(n)); else { n = uy(n); var f = a.cloneRange(); f.setStartAfter(r), f.setEndAfter(n); var d = f.extractContents(); "LI" === o && ((c = "LI"), (u = d).firstChild && u.firstChild.nodeName === c) ? ((l = d.firstChild), i.insertAfter(d, n)) : (i.insertAfter(d, n), i.insertAfter(l, n)); } i.remove(r), ty(e, l); } }, fy = function(e) { e.innerHTML = '
'; }, dy = function(e, t) { return ( e.nodeName === t || (e.previousSibling && e.previousSibling.nodeName === t) ); }, my = 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) ); }, py = function(e, t, n) { return !1 === vo.isText(t) ? n : e ? 1 === n && t.data.charAt(n - 1) === oi ? 0 : n : n === t.data.length - 1 && t.data.charAt(n) === oi ? t.data.length : n; }, gy = function(e, t) { var n, r, o = e.getRoot(); for (n = t; n !== o && "false" !== e.getContentEditable(n); ) "true" === e.getContentEditable(n) && (r = n), (n = n.parentNode); return n !== o ? r : o; }, hy = function(e, t) { var n = Xv(e); n && n.toLowerCase() === t.tagName.toLowerCase() && e.dom.setAttribs(t, Yv(e)); }, vy = function(e, t) { var n, r, o, i, a, s, u, c, l, f, d, m, p, g, h, v, y, b, C = e.dom, x = e.schema, w = x.getNonEmptyElements(), N = e.selection.getRng(), E = function(t) { var n, i, s, u = o, c = x.getTextInlineElements(); if ( (t || "TABLE" === f || "HR" === f ? ((n = C.create(t || m)), hy(e, n)) : (n = a.cloneNode(!1)), (s = n), !1 === Qv(e)) ) C.setAttrib(n, "style", null), C.setAttrib(n, "class", null); else do { if (c[u.nodeName]) { if (Nl(u)) continue; (i = u.cloneNode(!1)), C.setAttrib(i, "id", ""), n.hasChildNodes() ? (i.appendChild(n.firstChild), n.appendChild(i)) : ((s = i), n.appendChild(i)); } } while ((u = u.parentNode) && u !== r); return fy(s), n; }, S = function(e) { var t, n, r, s; if ( ((s = py(e, o, i)), vo.isText(o) && (e ? s > 0 : s < o.nodeValue.length)) ) return !1; if (o.parentNode === a && p && !e) return !0; if (e && vo.isElement(o) && o === a.firstChild) return !0; if (dy(o, "TABLE") || dy(o, "HR")) return (p && !e) || (!p && e); for ( t = new to(o, a), vo.isText(o) && (e && 0 === s ? t.prev() : e || s !== o.nodeValue.length || t.next()); (n = t.current()); ) { if (vo.isElement(n)) { if ( !n.getAttribute("data-mce-bogus") && ((r = n.nodeName.toLowerCase()), w[r] && "br" !== r) ) return !1; } else if (vo.isText(n) && !/^[ \t\r\n]*$/.test(n.nodeValue)) return !1; e ? t.prev() : t.next(); } return !0; }, k = function() { (u = /^(H[1-6]|PRE|FIGURE)$/.test(f) && "HGROUP" !== d ? E(m) : E()), Zv(e) && my(C, l) && C.isEmpty(a) ? (u = C.split(l, a)) : C.insertAfter(u, a), ty(e, u); }; Jf.normalize(C, N).each(function(e) { N.setStart(e.startContainer, e.startOffset), N.setEnd(e.endContainer, e.endOffset); }), (o = N.startContainer), (i = N.startOffset), (m = Xv(e)), (s = t.shiftKey), vo.isElement(o) && o.hasChildNodes() && ((p = i > o.childNodes.length - 1), (o = o.childNodes[Math.min(i, o.childNodes.length - 1)] || o), (i = p && vo.isText(o) ? o.nodeValue.length : 0)), (r = gy(C, o)) && (((m && !s) || (!m && s)) && (o = (function(e, t, n, r, o) { var i, a, s, u, c, l, f, d = t || "P", m = e.dom, p = gy(m, r); if (!(a = m.getParent(r, m.isBlock)) || !my(m, a)) { if ( ((l = (a = a || p) === e.getBody() || ((f = a) && /^(TD|TH|CAPTION)$/.test(f.nodeName)) ? a.nodeName.toLowerCase() : a.parentNode.nodeName.toLowerCase()), !a.hasChildNodes()) ) return ( (i = m.create(d)), hy(e, i), a.appendChild(i), n.setStart(i, 0), n.setEnd(i, 0), i ); for (u = r; u.parentNode !== a; ) u = u.parentNode; for (; u && !m.isBlock(u); ) (s = u), (u = u.previousSibling); if (s && e.schema.isValidChild(l, d.toLowerCase())) { for ( i = m.create(d), hy(e, i), s.parentNode.insertBefore(i, s), u = s; u && !m.isBlock(u); ) (c = u.nextSibling), i.appendChild(u), (u = c); n.setStart(r, o), n.setEnd(r, o); } } return r; })(e, m, N, o, i)), (a = C.getParent(o, C.isBlock)), (l = a ? C.getParent(a.parentNode, C.isBlock) : null), (f = a ? a.nodeName.toUpperCase() : ""), "LI" !== (d = l ? l.nodeName.toUpperCase() : "") || t.ctrlKey || ((a = l), (l = l.parentNode), (f = d)), /^(LI|DT|DD)$/.test(f) && C.isEmpty(a) ? ly(e, E, l, a, m) : (m && a === e.getBody()) || ((m = m || "P"), mi.isCaretContainerBlock(a) ? ((u = mi.showCaretContainerBlock(a)), C.isEmpty(a) && fy(a), ty(e, u)) : S() ? k() : S(!0) ? ((u = a.parentNode.insertBefore(E(), a)), ty(e, dy(a, "HR") ? u : a)) : ((n = ((y = N), (b = y.cloneRange()), b.setStart( y.startContainer, py(!0, y.startContainer, y.startOffset) ), b.setEnd(y.endContainer, py(!1, y.endContainer, y.endOffset)), b).cloneRange()).setEndAfter(a), (function(e) { do { vo.isText(e) && (e.nodeValue = e.nodeValue.replace(/^[\r\n]+/, "")), (e = e.firstChild); } while (e); })((c = n.extractContents())), (u = c.firstChild), C.insertAfter(c, a), (function(e, t, n) { var r, o = n, i = []; if (o) { for (; (o = o.firstChild); ) { if (e.isBlock(o)) return; vo.isElement(o) && !t[o.nodeName.toLowerCase()] && i.push(o); } for (r = i.length; r--; ) !(o = i[r]).hasChildNodes() || (o.firstChild === o.lastChild && "" === o.firstChild.nodeValue) ? e.remove(o) : (a = o) && "A" === a.nodeName && 0 === Ot.trim(ii(a.innerText || a.textContent)) .length && e.remove(o); var a; } })(C, w, u), (g = C), (h = a).normalize(), ((v = h.lastChild) && !/^(left|right)$/gi.test(g.getStyle(v, "float", !0))) || g.add(h, "br"), C.isEmpty(a) && fy(a), u.normalize(), C.isEmpty(u) ? (C.remove(u), k()) : ty(e, u)), C.setAttrib(u, "id", ""), e.fire("NewBlock", { newBlock: u }))); }, yy = function(e, t) { return ry(e) .filter(function(e) { return t.length > 0 && _r.is(Hn.fromDom(e), t); }) .isSome(); }, by = function(e) { return yy(e, Gv(e)); }, Cy = function(e) { return yy(e, Jv(e)); }, xy = Qu([{ br: [] }, { block: [] }, { none: [] }]), wy = function(e, t) { return Cy(e); }, Ny = function(e) { return function(t, n) { return ("" === Xv(t)) === e; }; }, Ey = function(e) { return function(t, n) { return iy(t) === e; }; }, Sy = function(e) { return function(t, n) { return ("PRE" === oy(t)) === e; }; }, ky = function(e) { return function(t, n) { return Kv(t) === e; }; }, Ty = function(e, t) { return by(e); }, Ay = function(e, t) { return t; }, _y = function(e) { var t = Xv(e), n = ny(e.dom, e.selection.getStart()); return n && e.schema.isValidChild(n.nodeName, t || "P"); }, By = function(e, t) { return function(n, r) { return M.foldl( e, function(e, t) { return e && t(n, r); }, !0 ) ? E.some(t) : E.none(); }; }, Ry = function(e, t) { return Tl( [ By([wy], xy.none()), By([Sy(!0), ky(!1), Ay], xy.br()), By([Sy(!0), ky(!1)], xy.block()), By([Sy(!0), ky(!0), Ay], xy.block()), By([Sy(!0), ky(!0)], xy.br()), By([Ey(!0), Ay], xy.br()), By([Ey(!0)], xy.block()), By([Ny(!0), Ay, _y], xy.block()), By([Ny(!0)], xy.br()), By([Ty], xy.br()), By([Ny(!1), Ay], xy.br()), By([_y], xy.block()) ], [e, t.shiftKey] ).getOr(xy.none()); }, Dy = function(e, t) { Ry(e, t).fold( function() { sd(e, t); }, function() { vy(e, t); }, y.noop ); }, Oy = function(e) { e.on("keydown", function(t) { var n, r, o; t.keyCode === Mp.ENTER && ((n = e), (r = t).isDefaultPrevented() || (r.preventDefault(), (o = n.undoManager).typing && ((o.typing = !1), o.add()), n.undoManager.transact(function() { !1 === n.selection.isCollapsed() && n.execCommand("Delete"), Dy(n, r); }))); }); }, Py = function(e, t, n) { return ( (s = t), !( !Iy(n) || !vo.isText(s.container()) || ((r = e), (i = (o = t).container()), (a = o.offset()), i.insertData(a, "\xa0"), r.selection.setCursorLocation(i, a + 1), 0) ) ); var r, o, i, a, s; }, Iy = function(e) { return e.fold( y.constant(!1), y.constant(!0), y.constant(!0), y.constant(!1) ); }, Ly = function(e) { return ( !!e.selection.isCollapsed() && ((t = e), (n = y.curry(vu.isInlineTarget, t)), (r = ia.fromRangeStart(t.selection.getRng())), $l(n, t.getBody(), r) .map(y.curry(Py, t, r)) .getOr(!1)) ); var t, n, r; }, My = function(e) { e.on("keydown", function(t) { var n, r; !1 === t.isDefaultPrevented() && ((n = e), (r = t), Pv([{ keyCode: Mp.SPACEBAR, action: Ov(Ly, n) }], r).each(function( e ) { r.preventDefault(); })); }); }, Fy = function(e) { var t = of.setupSelectedState(e); Iv(e, t), zv(e, t), Oy(e), My(e); }, zy = function(e) { var t, n, r, o = Ot.each, i = Mp.BACKSPACE, a = Mp.DELETE, s = e.dom, u = e.selection, c = e.settings, l = e.parser, f = me.gecko, d = me.ie, m = me.webkit, p = "data:text/mce-internal,", g = d ? "Text" : "URL", h = function(t, n) { try { e.getDoc().execCommand(t, !1, n); } catch (r) {} }, v = function(e) { return e.isDefaultPrevented(); }, y = function() { e.shortcuts.add("meta+a", null, "SelectAll"); }, b = function() { e.on("keydown", function(e) { if ( !v(e) && e.keyCode === i && u.isCollapsed() && 0 === u.getRng().startOffset ) { var t = u.getNode().previousSibling; if (t && t.nodeName && "table" === t.nodeName.toLowerCase()) return e.preventDefault(), !1; } }); }, C = function() { e.inline || (e.contentStyles.push("body {min-height: 150px}"), e.on("click", function(t) { var n; if ("HTML" === t.target.nodeName) { if (me.ie > 11) return void e.getBody().focus(); (n = e.selection.getRng()), e.getBody().focus(), e.selection.setRng(n), e.selection.normalize(), e.nodeChanged(); } })); }; return ( e.on("keydown", function(t) { var n, r, o, i, a; if ( !v(t) && t.keyCode === Mp.BACKSPACE && ((r = (n = u.getRng()).startContainer), (o = n.startOffset), (i = s.getRoot()), (a = r), n.collapsed && 0 === o) ) { for ( ; a && a.parentNode && a.parentNode.firstChild === a && a.parentNode !== i; ) a = a.parentNode; "BLOCKQUOTE" === a.tagName && (e.formatter.toggle("blockquote", null, a), (n = s.createRng()).setStart(r, 0), n.setEnd(r, 0), u.setRng(n)); } }), (t = function(e) { var t = s.create("body"), n = e.cloneContents(); return ( t.appendChild(n), u.serializer.serialize(t, { format: "html" }) ); }), e.on("keydown", function(n) { var r, o, u, c, l, f = n.keyCode; if (!v(n) && (f === a || f === i)) { if ( ((r = e.selection.isCollapsed()), (o = e.getBody()), r && !s.isEmpty(o)) ) return; if ( !r && ((u = e.selection.getRng()), (c = t(u)), (l = s.createRng()).selectNode(e.getBody()), c !== t(l)) ) return; n.preventDefault(), e.setContent(""), o.firstChild && s.isBlock(o.firstChild) ? e.selection.setCursorLocation(o.firstChild, 0) : e.selection.setCursorLocation(o, 0), e.nodeChanged(); } }), me.windowsPhone || e.on( "keyup focusin mouseup", function(e) { Mp.modifierPressed(e) || u.normalize(); }, !0 ), m && (e.settings.content_editable || s.bind(e.getDoc(), "mousedown mouseup", function(t) { var n; if (t.target === e.getDoc().documentElement) if ( ((n = u.getRng()), e.getBody().focus(), "mousedown" === t.type) ) { if (mi.isCaretContainer(n.startContainer)) return; u.placeCaretAt(t.clientX, t.clientY); } else u.setRng(n); }), e.on("click", function(t) { var n = t.target; /^(IMG|HR)$/.test(n.nodeName) && "false" !== s.getContentEditableParent(n) && (t.preventDefault(), e.selection.select(n), e.nodeChanged()), "A" === n.nodeName && s.hasClass(n, "mce-item-anchor") && (t.preventDefault(), u.select(n)); }), c.forced_root_block && e.on("init", function() { h("DefaultParagraphSeparator", c.forced_root_block); }), e.on("init", function() { e.dom.bind(e.getBody(), "submit", function(e) { e.preventDefault(); }); }), b(), l.addNodeFilter("br", function(e) { for (var t = e.length; t--; ) "Apple-interchange-newline" === e[t].attr("class") && e[t].remove(); }), me.iOS ? (e.inline || e.on("keydown", function() { document.activeElement === document.body && e.getWin().focus(); }), C(), e.on("click", function(e) { var t = e.target; do { if ("A" === t.tagName) return void e.preventDefault(); } while ((t = t.parentNode)); }), e.contentStyles.push( ".mce-content-body {-webkit-touch-callout: none}" )) : y()), me.ie >= 11 && (C(), b()), me.ie && (y(), h("AutoUrlDetect", !1), e.on("dragstart", function(t) { var n, r, o; (n = t).dataTransfer && (e.selection.isCollapsed() && "IMG" === n.target.tagName && u.select(n.target), (r = e.selection.getContent()).length > 0 && ((o = p + escape(e.id) + "," + escape(r)), n.dataTransfer.setData(g, o))); }), e.on("drop", function(t) { if (!v(t)) { var n = (a = t).dataTransfer && (s = a.dataTransfer.getData(g)) && s.indexOf(p) >= 0 ? ((s = s.substr(p.length).split(",")), { id: unescape(s[0]), html: unescape(s[1]) }) : null; if (n && n.id !== e.id) { t.preventDefault(); var r = Ih(t.x, t.y, e.getDoc()); u.setRng(r), (o = n.html), (i = !0), e.queryCommandSupported("mceInsertClipboardContent") ? e.execCommand("mceInsertClipboardContent", !1, { content: o, internal: i }) : e.execCommand("mceInsertContent", !1, o); } } var o, i, a, s; })), f && (e.on("keydown", function(t) { if (!v(t) && t.keyCode === i) { if (!e.getBody().getElementsByTagName("hr").length) return; if (u.isCollapsed() && 0 === u.getRng().startOffset) { var n = u.getNode(), r = n.previousSibling; if ("HR" === n.nodeName) return s.remove(n), void t.preventDefault(); r && r.nodeName && "hr" === r.nodeName.toLowerCase() && (s.remove(r), t.preventDefault()); } } }), Range.prototype.getClientRects || e.on("mousedown", function(t) { if (!v(t) && "HTML" === t.target.nodeName) { var n = e.getBody(); n.blur(), ye.setEditorTimeout(e, function() { n.focus(); }); } }), (n = function() { var t = s.getAttribs(u.getStart().cloneNode(!1)); return function() { var n = u.getStart(); n !== e.getBody() && (s.setAttrib(n, "style", null), o(t, function(e) { n.setAttributeNode(e.cloneNode(!0)); })); }; }), (r = function() { return ( !u.isCollapsed() && s.getParent(u.getStart(), s.isBlock) !== s.getParent(u.getEnd(), s.isBlock) ); }), e.on("keypress", function(t) { var o; if (!v(t) && (8 === t.keyCode || 46 === t.keyCode) && r()) return ( (o = n()), e.getDoc().execCommand("delete", !1, null), o(), t.preventDefault(), !1 ); }), s.bind(e.getDoc(), "cut", function(t) { var o; !v(t) && r() && ((o = n()), ye.setEditorTimeout(e, function() { o(); })); }), c.readonly || e.on("BeforeExecCommand MouseDown", function() { h("StyleWithCSS", !1), h("enableInlineTableEditing", !1), c.object_resizing || h("enableObjectResizing", !1); }), e.on("SetContent ExecCommand", function(e) { ("setcontent" !== e.type && "mceInsertLink" !== e.command) || o(s.select("a"), function(e) { var t = e.parentNode, n = s.getRoot(); if (t.lastChild === e) { for (; t && !s.isBlock(t); ) { if (t.parentNode.lastChild !== t || t === n) return; t = t.parentNode; } s.add(t, "br", { "data-mce-bogus": 1 }); } }); }), e.contentStyles.push( "img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}" ), me.mac && e.on("keydown", function(t) { !Mp.metaKeyPressed(t) || t.shiftKey || (37 !== t.keyCode && 39 !== t.keyCode) || (t.preventDefault(), e.selection .getSel() .modify( "move", 37 === t.keyCode ? "backward" : "forward", "lineboundary" )); }), b()), { refreshContentEditable: function() {}, isHidden: function() { var t; return !f || e.removed ? 0 : !(t = e.selection.getSel()) || !t.rangeCount || 0 === t.rangeCount; } } ); }, Uy = Xo.DOM, Vy = function(e) { var t; e.bindPendingEventDelegates(), (e.initialized = !0), e.fire("init"), e.focus(!0), e.nodeChanged({ initial: !0 }), e.execCallback("init_instance_callback", e), (t = e).settings.auto_focus && ye.setEditorTimeout( t, function() { var e; (e = !0 === t.settings.auto_focus ? t : t.editorManager.get(t.settings.auto_focus)).destroyed || e.focus(); }, 100 ); }, Hy = function(e, t) { var n, r, o, i, a, s, u, c, l, f = e.settings, d = e.getElement(), m = e.getDoc(); f.inline || (e.getElement().style.visibility = e.orgVisibility), t || f.content_editable || (m.open(), m.write(e.iframeHTML), m.close()), f.content_editable && (e.on("remove", function() { var e = this.getBody(); Uy.removeClass(e, "mce-content-body"), Uy.removeClass(e, "mce-edit-focus"), Uy.setAttrib(e, "contentEditable", null); }), Uy.addClass(d, "mce-content-body"), (e.contentDocument = m = f.content_document || document), (e.contentWindow = f.content_window || window), (e.bodyElement = d), (f.content_document = f.content_window = null), (f.root_name = d.nodeName.toLowerCase())), ((n = e.getBody()).disabled = !0), (e.readonly = f.readonly), e.readonly || (e.inline && "static" === Uy.getStyle(n, "position", !0) && (n.style.position = "relative"), (n.contentEditable = e.getParam("content_editable_state", !0))), (n.disabled = !1), (e.editorUpload = Jm(e)), (e.schema = Fo(f)), (e.dom = new Xo(m, { keep_values: !0, url_converter: e.convertURL, url_converter_scope: e, hex_colors: f.force_hex_style_colors, class_filter: f.class_filter, update_styles: !0, root_element: e.inline ? e.getBody() : null, collect: f.content_editable, schema: e.schema, onSetAttrib: function(t) { e.fire("SetAttrib", t); } })), (e.parser = ((i = bh((o = e).settings, o.schema)).addAttributeFilter( "src,href,style,tabindex", function(e, t) { for (var n, r, i, a = e.length, s = o.dom; a--; ) if ( ((r = (n = e[a]).attr(t)), (i = "data-mce-" + t), !n.attributes.map[i]) ) { if (0 === r.indexOf("data:") || 0 === r.indexOf("blob:")) continue; "style" === t ? ((r = s.serializeStyle(s.parseStyle(r), n.name)).length || (r = null), n.attr(i, r), n.attr(t, r)) : "tabindex" === t ? (n.attr(i, r), n.attr(t, null)) : n.attr(i, o.convertURL(r, t, n.name)); } } ), i.addNodeFilter("script", function(e) { for (var t, n, r = e.length; r--; ) 0 !== (n = (t = e[r]).attr("type") || "no/type").indexOf("mce-") && t.attr("type", "mce-" + n); }), i.addNodeFilter("#cdata", function(e) { for (var t, n = e.length; n--; ) ((t = e[n]).type = 8), (t.name = "#comment"), (t.value = "[CDATA[" + t.value + "]]"); }), i.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div", function(e) { for (var t, n = e.length, r = o.schema.getNonEmptyElements(); n--; ) (t = e[n]).isEmpty(r) && 0 === t.getAll("br").length && (t.append(new fh("br", 1)).shortEnded = !0); }), i)), (e.serializer = Nh(f, e)), (e.selection = vv(e.dom, e.getWin(), e.serializer, e)), (e.formatter = Yg(e)), (e.undoManager = rg(e)), (e._nodeChangeDispatcher = new tp(e)), (e._selectionOverrides = Hp(e)), kh(e), Fy(e), ep(e), e.fire("PreInit"), f.browser_spellcheck || f.gecko_spellcheck || ((m.body.spellcheck = !1), Uy.setAttrib(n, "spellcheck", "false")), (e.quirks = zy(e)), e.fire("PostRender"), f.directionality && (n.dir = f.directionality), f.nowrap && (n.style.whiteSpace = "nowrap"), f.protect && e.on("BeforeSetContent", function(e) { Ot.each(f.protect, function(t) { e.content = e.content.replace(t, function(e) { return "\x3c!--mce:protected " + escape(e) + "--\x3e"; }); }); }), e.on("SetContent", function() { e.addVisual(e.getBody()); }), f.padd_empty_editor && e.on("PostProcess", function(e) { e.content = e.content.replace( /^(]*>( | |\s|\u00a0|
|)<\/p>[\r\n]*|
[\r\n]*)$/, "" ); }), e.load({ initial: !0, format: "html" }), (e.startContent = e.getContent({ format: "raw" })), e.on("compositionstart compositionend", function(t) { e.composing = "compositionstart" === t.type; }), e.contentStyles.length > 0 && ((r = ""), Ot.each(e.contentStyles, function(e) { r += e + "\r\n"; }), e.dom.addStyle(r)), ((a = e), a.inline ? Uy.styleSheetLoader : a.dom.styleSheetLoader).loadAll( e.contentCSS, function(t) { Vy(e); }, function(t) { Vy(e); } ), f.content_style && ((s = e), (u = f.content_style), (c = Hn.fromDom(s.getDoc().head)), (l = Hn.fromTag("style")), dr.set(l, "type", "text/css"), ks.append(l, Hn.fromText(u)), ks.append(c, l)); }, qy = Xo.DOM, jy = function(e, t) { var n, r, o, i, a, s, u, c = e.editorManager.translate( "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help" ), l = ((n = e.id), (r = c), (o = t.height), (i = Vv(e)), (u = Hn.fromTag("iframe")), dr.setAll(u, i), dr.setAll(u, { id: n + "_ifr", frameBorder: "0", allowTransparency: "true", title: r }), br(u, { width: "100%", height: ((a = o), (s = "number" == typeof a ? a + "px" : a), s || ""), display: "block" }), u).dom(); l.onload = function() { (l.onload = null), e.fire("load"); }; var f, d, m, p, g = (function(e, t) { if ( document.domain !== window.location.hostname && me.ie && me.ie < 12 ) { var n = Gm("mce"); e[n] = function() { Hy(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 qy.setAttrib(t, "src", r), !0; } return !1; })(e, l); return ( (e.contentAreaContainer = t.iframeContainer), (e.iframeElement = l), (e.iframeHTML = ((p = Hv((f = e)) + ""), qv(f) !== f.documentBaseUrl && (p += ''), (p += ''), (d = jv(f)), (m = $v(f)), Wv(f) && (p += ''), (p += '
'))), qy.add(t.iframeContainer, l), g ); }, $y = function(e, t) { var n = jy(e, t); t.editorContainer && ((qy.get(t.editorContainer).style.display = e.orgDisplay), (e.hidden = qy.isHidden(t.editorContainer))), (e.getElement().style.display = "none"), qy.setAttrib(e.id, "aria-hidden", !0), n || Hy(e); }, Wy = Xo.DOM, Ky = function(e, t, n) { var r, o, i = Im.get(n); if ( ((r = Im.urls[n] || e.documentBaseUrl.replace(/\/$/, "")), (n = Ot.trim(n)), i && -1 === Ot.inArray(t, n)) ) { if ( (Ot.each(Im.dependencies(n), function(n) { Ky(e, t, n); }), e.plugins[n]) ) return; (o = new i(e, r, e.$)), (e.plugins[n] = o), o.init && (o.init(e, r), t.push(n)); } }, Xy = function(e) { return e.replace(/^\-/, ""); }, Yy = function(e) { return { editorContainer: e, iframeContainer: e }; }, Gy = function(e) { var t, n, r = e.getElement(); return e.inline ? Yy(null) : ((t = r), (n = Wy.create("div")), Wy.insertAfter(n, t), Yy(n)); }, Jy = function(e) { var t, n, r, o, i, a, s, u, c, l, f, d = e.settings, m = e.getElement(); return ( (e.orgDisplay = m.style.display), tr.isString(d.theme) ? ((l = (o = e).settings), (f = o.getElement()), (i = l.width || Wy.getStyle(f, "width") || "100%"), (a = l.height || Wy.getStyle(f, "height") || f.offsetHeight), (s = l.min_height || 100), (u = /^[0-9\.]+(|px)$/i).test("" + i) && (i = Math.max(parseInt(i, 10), 100)), u.test("" + a) && (a = Math.max(parseInt(a, 10), s)), (c = o.theme.renderUI({ targetNode: f, width: i, height: a, deltaWidth: l.delta_width, deltaHeight: l.delta_height })), l.content_editable || ((a = (c.iframeHeight || a) + ("number" == typeof a ? c.deltaHeight || 0 : "")) < s && (a = s)), (c.height = a), c) : tr.isFunction(d.theme) ? ((r = (t = e).getElement()), (n = t.settings.theme(t, r)).editorContainer.nodeType && (n.editorContainer.id = n.editorContainer.id || t.id + "_parent"), n.iframeContainer && n.iframeContainer.nodeType && (n.iframeContainer.id = n.iframeContainer.id || t.id + "_iframecontainer"), (n.height = n.iframeHeight ? n.iframeHeight : r.offsetHeight), n) : Gy(e) ); }, Qy = function(e) { var t, n, r, o, i, a, s = e.settings, u = e.getElement(); return ( (e.rtl = s.rtl_ui || e.editorManager.i18n.rtl), e.editorManager.i18n.setCode(s.language), (s.aria_label = s.aria_label || Wy.getAttrib(u, "aria-label", e.getLang("aria.rich_text_area"))), e.fire("ScriptsLoaded"), (o = (n = e).settings.theme), tr.isString(o) ? ((n.settings.theme = Xy(o)), (r = Lm.get(o)), (n.theme = new r(n, Lm.urls[o])), n.theme.init && n.theme.init( n, Lm.urls[o] || n.documentBaseUrl.replace(/\/$/, ""), n.$ )) : (n.theme = {}), (i = e), (a = []), Ot.each(i.settings.plugins.split(/[ ,]/), function(e) { Ky(i, a, Xy(e)); }), (t = Jy(e)), (e.editorContainer = t.editorContainer ? t.editorContainer : null), s.content_css && Ot.each(Ot.explode(s.content_css), function(t) { e.contentCSS.push(e.documentBaseURI.toAbsolute(t)); }), s.content_editable ? Hy(e) : $y(e, t) ); }, Zy = Xo.DOM, eb = function(e) { return "-" === e.charAt(0); }, tb = function(e, t) { var n = Zo.ScriptLoader; !(function(e, t, n, r) { var o = t.settings, i = o.theme; if (tr.isString(i)) { if (!eb(i) && !Lm.urls.hasOwnProperty(i)) { var a = o.theme_url; a ? Lm.load(i, t.documentBaseURI.toAbsolute(a)) : Lm.load(i, "themes/" + i + "/theme" + n + ".js"); } e.loadQueue(function() { Lm.waitFor(i, r); }); } else r(); })(n, e, t, function() { var r, o, i, a, s; (r = n), (i = (o = e).settings).language && "en" !== i.language && !i.language_url && (i.language_url = o.editorManager.baseURL + "/langs/" + i.language + ".js"), i.language_url && !o.editorManager.i18n.data[i.language] && r.add(i.language_url), (a = e.settings), (s = t), Ot.isArray(a.plugins) && (a.plugins = a.plugins.join(" ")), Ot.each(a.external_plugins, function(e, t) { Im.load(t, e), (a.plugins += " " + t); }), Ot.each(a.plugins.split(/[ ,]/), function(e) { if ((e = Ot.trim(e)) && !Im.urls[e]) if (eb(e)) { e = e.substr(1, e.length); var t = Im.dependencies(e); Ot.each(t, function(e) { var t = { prefix: "plugins/", resource: e, suffix: "/plugin" + s + ".js" }; (e = Im.createUrl(t, e)), Im.load(e.resource, e); }); } else Im.load(e, { prefix: "plugins/", resource: e, suffix: "/plugin" + s + ".js" }); }), n.loadQueue( function() { e.removed || Qy(e); }, e, function(t) { Rm(e, t[0]), e.removed || Qy(e); } ); }); }, nb = function(e) { var t = e.settings, n = e.id, r = function() { Zy.unbind(window, "ready", r), e.render(); }; if (Te.Event.domLoaded) { if (e.getElement() && me.contentEditable) { t.inline ? (e.inline = !0) : ((e.orgVisibility = e.getElement().style.visibility), (e.getElement().style.visibility = "hidden")); var o = e.getElement().form || Zy.getParent(n, "form"); o && ((e.formElement = o), t.hidden_input && !/TEXTAREA|INPUT/i.test(e.getElement().nodeName) && (Zy.insertAfter( Zy.create("input", { type: "hidden", name: n }), n ), (e.hasHiddenInput = !0)), (e.formEventDelegate = function(t) { e.fire(t.type, t); }), Zy.bind(o, "submit reset", e.formEventDelegate), e.on("reset", function() { e.setContent(e.startContent, { format: "raw" }); }), !t.submit_patch || o.submit.nodeType || o.submit.length || o._mceOldSubmit || ((o._mceOldSubmit = o.submit), (o.submit = function() { return ( e.editorManager.triggerSave(), e.setDirty(!1), o._mceOldSubmit(o) ); }))), (e.windowManager = km(e)), (e.notificationManager = Sm(e)), "xml" === t.encoding && e.on("GetContent", function(e) { e.save && (e.content = Zy.encode(e.content)); }), t.add_form_submit_trigger && e.on("submit", function() { e.initialized && e.save(); }), t.add_unload_trigger && ((e._beforeUnload = function() { !e.initialized || e.destroyed || e.isHidden() || e.save({ format: "raw", no_events: !0, set_dirty: !1 }); }), e.editorManager.on("BeforeUnload", e._beforeUnload)), e.editorManager.add(e), tb(e, e.suffix); } } else Zy.bind(window, "ready", r); }, rb = function(e, t, n) { var r = e.sidebars ? e.sidebars : []; r.push({ name: t, settings: n }), (e.sidebars = r); }, ob = Ot.each, ib = Ot.trim, ab = "source protocol authority userInfo user password host port relative path directory file query anchor".split( " " ), sb = { ftp: 21, http: 80, https: 443, mailto: 25 }, ub = function(e, t) { var n, r, o = this; if ( ((e = ib(e)), (n = (t = o.settings = t || {}).base_uri), /^([\w\-]+):([^\/]{2})/i.test(e) || /^\s*#/.test(e)) ) o.source = e; else { var i = 0 === e.indexOf("//"); 0 !== e.indexOf("/") || i || (e = ((n && n.protocol) || "http") + "://mce_host" + e), /^[\w\-]*:?\/\//.test(e) || ((r = t.base_uri ? t.base_uri.path : new ub(document.location.href).directory), "" == t.base_uri.protocol ? (e = "//mce_host" + o.toAbsPath(r, e)) : ((e = /([^#?]*)([#?]?.*)/.exec(e)), (e = ((n && n.protocol) || "http") + "://mce_host" + o.toAbsPath(r, e[1]) + e[2]))), (e = e.replace(/@@/g, "(mce_at)")), (e = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec( e )), ob(ab, function(t, n) { var r = e[n]; r && (r = r.replace(/\(mce_at\)/g, "@@")), (o[t] = r); }), n && (o.protocol || (o.protocol = n.protocol), o.userInfo || (o.userInfo = n.userInfo), o.port || "mce_host" !== o.host || (o.port = n.port), (o.host && "mce_host" !== o.host) || (o.host = n.host), (o.source = "")), i && (o.protocol = ""); } }; (ub.prototype = { setPath: function(e) { (e = /^(.*?)\/?(\w+)?$/.exec(e)), (this.path = e[0]), (this.directory = e[1]), (this.file = e[2]), (this.source = ""), this.getURI(); }, toRelative: function(e) { var t; if ("./" === e) return e; if ( ("mce_host" !== (e = new ub(e, { base_uri: this })).host && this.host !== e.host && e.host) || this.port !== e.port || (this.protocol !== e.protocol && "" !== e.protocol) ) return e.getURI(); var n = this.getURI(), r = e.getURI(); return n === r || ("/" === n.charAt(n.length - 1) && n.substr(0, n.length - 1) === r) ? n : ((t = this.toRelPath(this.path, e.path)), e.query && (t += "?" + e.query), e.anchor && (t += "#" + e.anchor), t); }, toAbsolute: function(e, t) { return (e = new ub(e, { base_uri: this })).getURI( t && this.isSameOrigin(e) ); }, isSameOrigin: function(e) { if (this.host == e.host && this.protocol == e.protocol) { if (this.port == e.port) return !0; var t = sb[this.protocol]; if (t && (this.port || t) == (e.port || t)) return !0; } return !1; }, toRelPath: function(e, t) { var n, r, o, i = 0, a = ""; if ( ((e = (e = e.substring(0, e.lastIndexOf("/"))).split("/")), (n = t.split("/")), e.length >= n.length) ) for (r = 0, o = e.length; r < o; r++) if (r >= n.length || e[r] !== n[r]) { i = r + 1; break; } if (e.length < n.length) for (r = 0, o = n.length; r < o; r++) if (r >= e.length || e[r] !== n[r]) { i = r + 1; break; } if (1 === i) return t; for (r = 0, o = e.length - (i - 1); r < o; r++) a += "../"; for (r = i - 1, o = n.length; r < o; r++) a += r !== i - 1 ? "/" + n[r] : n[r]; return a; }, toAbsPath: function(e, t) { var n, r, o, i = 0, a = []; for ( r = /\/$/.test(t) ? "/" : "", e = e.split("/"), t = t.split("/"), ob(e, function(e) { e && a.push(e); }), e = a, n = t.length - 1, a = []; n >= 0; n-- ) 0 !== t[n].length && "." !== t[n] && (".." !== t[n] ? (i > 0 ? i-- : a.push(t[n])) : i++); return ( 0 !== (o = (n = e.length - i) <= 0 ? a.reverse().join("/") : e.slice(0, n).join("/") + "/" + a.reverse().join("/")).indexOf( "/" ) && (o = "/" + o), r && o.lastIndexOf("/") !== o.length - 1 && (o += r), o ); }, getURI: function(e) { var t, n = this; return ( (n.source && !e) || ((t = ""), e || (n.protocol ? (t += n.protocol + "://") : (t += "//"), n.userInfo && (t += n.userInfo + "@"), n.host && (t += n.host), n.port && (t += ":" + n.port)), n.path && (t += n.path), n.query && (t += "?" + n.query), n.anchor && (t += "#" + n.anchor), (n.source = t)), n.source ); } }), (ub.parseDataUri = function(e) { var t, n; return ( (e = decodeURIComponent(e).split(",")), (n = /data:([^;]+)/.exec(e[0])) && (t = n[1]), { type: t, data: e[1] } ); }), (ub.getDocumentBaseUrl = function(e) { var t; return ( (t = 0 !== e.protocol.indexOf("http") && "file:" !== e.protocol ? e.href : e.protocol + "//" + e.host + e.pathname), /^[^:]+:\/\/\/?[^\/]+\//.test(t) && ((t = t.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, "")), /[\/\\]$/.test(t) || (t += "/")), t ); }); var cb = Xo.DOM, lb = Ot.extend, fb = Ot.each, db = Ot.trim, mb = Ot.resolve, pb = me.ie, gb = function(e, t, n) { var r, o, i, a, s, u, c, l, f, d = this; (r = d.documentBaseUrl = n.documentBaseURL), (o = n.baseURI), (i = d), (a = e), (s = r), (u = n.defaultSettings), (c = t), (f = { id: a, theme: "modern", delta_width: 0, delta_height: 0, popup_css: "", plugins: "", document_base_url: s, add_form_submit_trigger: !0, submit_patch: !0, add_unload_trigger: !0, convert_urls: !0, relative_urls: !0, remove_script_host: !0, object_resizing: !0, doctype: "", visual: !0, font_size_style_values: "xx-small,x-small,small,medium,large,x-large,xx-large", font_size_legacy_values: "xx-small,small,medium,large,x-large,xx-large,300%", forced_root_block: "p", hidden_input: !0, padd_empty_editor: !0, render_ui: !0, indentation: "30px", inline_styles: !0, convert_fonts_to_spans: !0, indent: "simple", indent_before: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,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,article,hgroup,aside,figure,figcaption,option,optgroup,datalist", entity_encoding: "named", url_converter: (l = i).convertURL, url_converter_scope: l, ie7_compat: !0 }), (t = lu(ou, f, u, c)), (d.settings = t), (ti.language = t.language || "en"), (ti.languageLoad = t.language_load), (ti.baseURL = n.baseURL), (d.id = e), d.setDirty(!1), (d.plugins = {}), (d.documentBaseURI = new ub(t.document_base_url, { base_uri: o })), (d.baseURI = o), (d.contentCSS = []), (d.contentStyles = []), (d.shortcuts = new Jd(d)), (d.loadedCSS = {}), (d.editorCommands = new Od(d)), (d.suffix = n.suffix), (d.editorManager = n), (d.inline = t.inline), (d.buttons = {}), (d.menuItems = {}), t.cache_suffix && (me.cacheSuffix = t.cache_suffix.replace(/^[\?\&]+/, "")), !1 === t.override_viewport && (me.overrideViewPort = !1), n.fire("SetupEditor", d), d.execCallback("setup", d), (d.$ = Qt.overrideDefaults(function() { return { context: d.inline ? d.getBody() : d.getDoc(), element: d.getBody() }; })); }; lb( (gb.prototype = { render: function() { nb(this); }, focus: function(e) { gm(this, e); }, execCallback: function(e) { var t, n = this.settings[e]; if (n) return ( this.callbackLookup && (t = this.callbackLookup[e]) && ((n = t.func), (t = t.scope)), "string" == typeof n && ((t = (t = n.replace(/\.\w+$/, "")) ? mb(t) : 0), (n = mb(n)), (this.callbackLookup = this.callbackLookup || {}), (this.callbackLookup[e] = { func: n, scope: t })), n.apply(t || this, Array.prototype.slice.call(arguments, 1)) ); }, translate: function(e) { if (e && Ot.is(e, "string")) { var t = this.settings.language || "en", n = this.editorManager.i18n; e = n.data[t + "." + e] || e.replace(/\{\#([^\}]+)\}/g, function(e, r) { return n.data[t + "." + r] || "{#" + r + "}"; }); } return this.editorManager.translate(e); }, getLang: function(e, t) { return ( this.editorManager.i18n.data[ (this.settings.language || "en") + "." + e ] || (t !== undefined ? t : "{#" + e + "}") ); }, getParam: function(e, t, n) { return mu(this, e, t, n); }, nodeChanged: function(e) { this._nodeChangeDispatcher.nodeChanged(e); }, addButton: function(e, t) { var n = this; t.cmd && (t.onclick = function() { n.execCommand(t.cmd); }), t.stateSelector && "undefined" == typeof t.active && (t.active = !1), t.text || t.icon || (t.icon = e), (n.buttons = n.buttons), (t.tooltip = t.tooltip || t.title), (n.buttons[e] = t); }, addSidebar: function(e, t) { return rb(this, e, t); }, addMenuItem: function(e, t) { var n = this; t.cmd && (t.onclick = function() { n.execCommand(t.cmd); }), (n.menuItems = n.menuItems), (n.menuItems[e] = t); }, addContextToolbar: function(e, t) { var n, r = this; (r.contextToolbars = r.contextToolbars || []), "string" == typeof e && ((n = e), (e = function(e) { return r.dom.is(e, n); })), r.contextToolbars.push({ id: Gm("mcet"), predicate: e, items: t }); }, addCommand: function(e, t, n) { this.editorCommands.addCommand(e, t, n); }, addQueryStateHandler: function(e, t, n) { this.editorCommands.addQueryStateHandler(e, t, n); }, addQueryValueHandler: function(e, t, n) { this.editorCommands.addQueryValueHandler(e, t, n); }, addShortcut: function(e, t, n, r) { this.shortcuts.add(e, t, n, r); }, execCommand: function(e, t, n, r) { return this.editorCommands.execCommand(e, t, n, r); }, queryCommandState: function(e) { return this.editorCommands.queryCommandState(e); }, queryCommandValue: function(e) { return this.editorCommands.queryCommandValue(e); }, queryCommandSupported: function(e) { return this.editorCommands.queryCommandSupported(e); }, show: function() { this.hidden && ((this.hidden = !1), this.inline ? (this.getBody().contentEditable = !0) : (cb.show(this.getContainer()), cb.hide(this.id)), this.load(), this.fire("show")); }, hide: function() { var e = this, t = e.getDoc(); e.hidden || (pb && t && !e.inline && t.execCommand("SelectAll"), e.save(), e.inline ? ((e.getBody().contentEditable = !1), e === e.editorManager.focusedEditor && (e.editorManager.focusedEditor = null)) : (cb.hide(e.getContainer()), cb.setStyle(e.id, "display", e.orgDisplay)), (e.hidden = !0), e.fire("hide")); }, isHidden: function() { return !!this.hidden; }, setProgressState: function(e, t) { this.fire("ProgressState", { state: e, time: t }); }, load: function(e) { var t, n = this.getElement(); return this.removed ? "" : n ? (((e = e || {}).load = !0), (t = this.setContent( n.value !== undefined ? n.value : n.innerHTML, e )), (e.element = n), e.no_events || this.fire("LoadContent", e), (e.element = n = null), t) : void 0; }, save: function(e) { var t, n, r = this, o = r.getElement(); if (o && r.initialized && !r.removed) return ( ((e = e || {}).save = !0), (e.element = o), (e.content = r.getContent(e)), e.no_events || r.fire("SaveContent", e), "raw" === e.format && r.fire("RawSaveContent", e), (t = e.content), /TEXTAREA|INPUT/i.test(o.nodeName) ? (o.value = t) : (r.inline || (o.innerHTML = t), (n = cb.getParent(r.id, "form")) && fb(n.elements, function(e) { if (e.name === r.id) return (e.value = t), !1; })), (e.element = o = null), !1 !== e.set_dirty && r.setDirty(!1), t ); }, setContent: function(e, t) { var n, r, o = this, i = o.getBody(); return ( ((t = t || {}).format = t.format || "html"), (t.set = !0), (t.content = e), t.no_events || o.fire("BeforeSetContent", t), 0 === (e = t.content).length || /^\s+$/.test(e) ? ((r = pb && pb < 11 ? "" : '
'), "TABLE" === i.nodeName ? (e = "" + r + "") : /^(UL|OL)$/.test(i.nodeName) && (e = "
  • " + r + "
  • "), (n = o.settings.forced_root_block) && o.schema.isValidChild(i.nodeName.toLowerCase(), n.toLowerCase()) ? ((e = r), (e = o.dom.createHTML( n, o.settings.forced_root_block_attrs, e ))) : pb || e || (e = '
    '), o.dom.setHTML(i, e), o.fire("SetContent", t)) : ("raw" !== t.format && (e = zs({ validate: o.validate }, o.schema).serialize( o.parser.parse(e, { isRootContent: !0, insert: !0 }) )), (t.content = db(e)), o.dom.setHTML(i, t.content), t.no_events || o.fire("SetContent", t)), t.content ); }, getContent: function(e) { var t, n = this.getBody(); if (this.removed) return ""; if ( (((e = e || {}).format = e.format || "html"), (e.get = !0), (e.getInner = !0), e.no_events || this.fire("BeforeGetContent", e), "raw" === e.format) ) t = Ot.trim(om(this.serializer, n.innerHTML)); else if ("text" === e.format) t = n.innerText || n.textContent; else { if ("tree" === e.format) return this.serializer.serialize(n, e); t = this.serializer.serialize(n, e); } return ( "text" !== e.format ? (e.content = db(t)) : (e.content = t), e.no_events || this.fire("GetContent", e), e.content ); }, insertContent: function(e, t) { t && (e = lb({ content: e }, t)), this.execCommand("mceInsertContent", !1, e); }, isDirty: function() { return !this.isNotDirty; }, setDirty: function(e) { var t = !this.isNotDirty; (this.isNotDirty = !e), e && e !== t && this.fire("dirty"); }, setMode: function(e) { Wd(this, e); }, getContainer: function() { return ( this.container || (this.container = cb.get( this.editorContainer || this.id + "_parent" )), this.container ); }, getContentAreaContainer: function() { return this.contentAreaContainer; }, getElement: function() { return ( this.targetElm || (this.targetElm = cb.get(this.id)), this.targetElm ); }, getWin: function() { var e; return ( this.contentWindow || ((e = this.iframeElement) && (this.contentWindow = e.contentWindow)), this.contentWindow ); }, getDoc: function() { var e; return ( this.contentDocument || ((e = this.getWin()) && (this.contentDocument = e.document)), this.contentDocument ); }, getBody: function() { var e = this.getDoc(); return this.bodyElement || (e ? e.body : null); }, convertURL: function(e, t, n) { var r = this.settings; return r.urlconverter_callback ? this.execCallback("urlconverter_callback", e, n, !0, t) : !r.convert_urls || (n && "LINK" === n.nodeName) || 0 === e.indexOf("file:") || 0 === e.length ? e : r.relative_urls ? this.documentBaseURI.toRelative(e) : (e = this.documentBaseURI.toAbsolute(e, r.remove_script_host)); }, addVisual: function(e) { var t, n = this, r = n.settings, o = n.dom; (e = e || n.getBody()), n.hasVisual === undefined && (n.hasVisual = r.visual), fb(o.select("table,a", e), function(e) { var i; switch (e.nodeName) { case "TABLE": return ( (t = r.visual_table_class || "mce-item-table"), void (((i = o.getAttrib(e, "border")) && "0" !== i) || !n.hasVisual ? o.removeClass(e, t) : o.addClass(e, t)) ); case "A": return void ( o.getAttrib(e, "href", !1) || ((i = o.getAttrib(e, "name") || e.id), (t = r.visual_anchor_class || "mce-item-anchor"), i && n.hasVisual ? o.addClass(e, t) : o.removeClass(e, t)) ); } }), n.fire("VisualAid", { element: e, hasVisual: n.hasVisual }); }, remove: function() { var e = this; e.removed || (e.save(), (e.removed = 1), e.unbindAllNativeEvents(), e.hasHiddenInput && cb.remove(e.getElement().nextSibling), e.inline || (pb && pb < 10 && e.getDoc().execCommand("SelectAll", !1, null), cb.setStyle(e.id, "display", e.orgDisplay), (e.getBody().onload = null)), e.fire("remove"), e.editorManager.remove(e), cb.remove(e.getContainer()), e._selectionOverrides.destroy(), e.editorUpload.destroy(), e.destroy()); }, destroy: function(e) { var t, n = this; n.destroyed || (e || n.removed ? (e || (n.editorManager.off("beforeunload", n._beforeUnload), n.theme && n.theme.destroy && n.theme.destroy(), n.selection.destroy(), n.dom.destroy()), (t = n.formElement) && (t._mceOldSubmit && ((t.submit = t._mceOldSubmit), (t._mceOldSubmit = null)), cb.unbind(t, "submit reset", n.formEventDelegate)), (n.contentAreaContainer = n.formElement = n.container = n.editorContainer = null), (n.bodyElement = n.contentDocument = n.contentWindow = null), (n.iframeElement = n.targetElm = null), n.selection && (n.selection = n.selection.win = n.selection.dom = n.selection.dom.doc = null), (n.destroyed = 1)) : n.remove()); }, uploadImages: function(e) { return this.editorUpload.uploadImages(e); }, _scanForImages: function() { return this.editorUpload.scanForImages(); } }), qd ); var hb, vb, yb, bb = { isEditorUIElement: function(e) { return -1 !== e.className.toString().indexOf("mce-"); } }, Cb = function(e, t) { var n, r, o = Un.detect().browser; o.isIE() || o.isEdge() ? (r = e).on("focusout", function() { Sd(r); }) : ((n = t), e.on("mouseup touchend", function(e) { n.throttle(); })), e.on("keyup nodechange", function(t) { var n; ("nodechange" === (n = t).type && n.selectionChange) || Sd(e); }); }, xb = function(e) { var t, n, r, o = Tp(function() { Sd(e); }, 0); e.inline && ((t = e), (n = o), (r = function() { n.throttle(); }), Xo.DOM.bind(document, "mouseup", r), t.on("remove", function() { Xo.DOM.unbind(document, "mouseup", r); })), e.on("init", function() { Cb(e, o); }), e.on("remove", function() { o.cancel(); }); }, wb = Xo.DOM, Nb = function(e) { return bb.isEditorUIElement(e); }, Eb = function(e, t) { var n = e ? e.settings.custom_ui_selector : ""; return ( null !== wb.getParent(t, function(t) { return Nb(t) || (!!n && e.dom.is(t, n)); }) ); }, Sb = function(e, t) { var n = t.editor; xb(n), n.on("focusin", function() { var t = e.focusedEditor; t !== this && (t && t.fire("blur", { focusedEditor: this }), e.setActive(this), (e.focusedEditor = this), this.fire("focus", { blurredEditor: t }), this.focus(!0)); }), n.on("focusout", function() { var t = this; ye.setEditorTimeout(t, function() { var n = e.focusedEditor; Eb( t, (function() { try { return document.activeElement; } catch (e) { return document.body; } })() ) || n !== t || (t.fire("blur", { focusedEditor: null }), (e.focusedEditor = null)); }); }), hb || ((hb = function(t) { var n, r = e.activeEditor; (n = t.target), r && n.ownerDocument === document && (n === document.body || Eb(r, n) || e.focusedEditor !== r || (r.fire("blur", { focusedEditor: null }), (e.focusedEditor = null))); }), wb.bind(document, "focusin", hb)); }, kb = function(e, t) { e.focusedEditor === t.editor && (e.focusedEditor = null), e.activeEditor || (wb.unbind(document, "focusin", hb), (hb = null)); }, Tb = function(e) { e.on("AddEditor", y.curry(Sb, e)), e.on("RemoveEditor", y.curry(kb, e)); }, Ab = {}, _b = "en", Bb = { setCode: function(e) { e && ((_b = e), (this.rtl = !!this.data[e] && "rtl" === this.data[e]._dir)); }, getCode: function() { return _b; }, rtl: !1, add: function(e, t) { var n = Ab[e]; for (var r in (n || (Ab[e] = n = {}), t)) n[r] = t[r]; this.setCode(e); }, translate: function(e) { var t = Ab[_b] || {}, n = function(e) { return Ot.is(e, "function") ? Object.prototype.toString.call(e) : r(e) ? "" : "" + e; }, r = function(e) { return "" === e || null === e || Ot.is(e, "undefined"); }, o = function(e) { return (e = n(e)), Ot.hasOwn(t, e) ? n(t[e]) : e; }; if (r(e)) return ""; if (Ot.is(e, "object") && Ot.hasOwn(e, "raw")) return n(e.raw); if (Ot.is(e, "array")) { var i = e.slice(1); e = o(e[0]).replace(/\{([0-9]+)\}/g, function(e, t) { return Ot.hasOwn(i, t) ? n(i[t]) : e; }); } return o(e).replace(/{context:\w+}$/, ""); }, data: Ab }, Rb = Xo.DOM, Db = Ot.explode, Ob = Ot.each, Pb = Ot.extend, Ib = 0, Lb = !1, Mb = [], Fb = [], zb = function(e) { Ob(yb.get(), function(t) { "scroll" === e.type ? t.fire("ScrollWindow", e) : t.fire("ResizeWindow", e); }); }, Ub = function(e) { e !== Lb && (e ? Qt(window).on("resize scroll", zb) : Qt(window).off("resize scroll", zb), (Lb = e)); }, Vb = function(e) { var t = Fb; delete Mb[e.id]; for (var n = 0; n < Mb.length; n++) if (Mb[n] === e) { Mb.splice(n, 1); break; } return ( (Fb = M.filter(Fb, function(t) { return e !== t; })), yb.activeEditor === e && (yb.activeEditor = Fb.length > 0 ? Fb[0] : null), yb.focusedEditor === e && (yb.focusedEditor = null), t.length !== Fb.length ); }; Pb( (yb = { defaultSettings: {}, $: Qt, majorVersion: "4", minorVersion: "7.5", releaseDate: "2018-01-22", editors: Mb, i18n: Bb, activeEditor: null, settings: {}, setup: function() { var e, t, n, r, o = ""; if ( ((t = ub.getDocumentBaseUrl(document.location)), /^[^:]+:\/\/\/?[^\/]+\//.test(t) && ((t = t.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, "")), /[\/\\]$/.test(t) || (t += "/")), (n = window.tinymce || window.tinyMCEPreInit)) ) (e = n.base || n.baseURL), (o = n.suffix); else { for ( var i = document.getElementsByTagName("script"), a = 0; a < i.length; a++ ) { var s = (r = i[a].src).substring(r.lastIndexOf("/")); if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(r)) { -1 !== s.indexOf(".min") && (o = ".min"), (e = r.substring(0, r.lastIndexOf("/"))); break; } } !e && document.currentScript && (-1 !== (r = document.currentScript.src).indexOf(".min") && (o = ".min"), (e = r.substring(0, r.lastIndexOf("/")))); } (this.baseURL = new ub(t).toAbsolute(e)), (this.documentBaseURL = t), (this.baseURI = new ub(this.baseURL)), (this.suffix = o), Tb(this); }, overrideDefaults: function(e) { var t, n; (t = e.base_url) && ((this.baseURL = new ub(this.documentBaseURL).toAbsolute( t.replace(/\/+$/, "") )), (this.baseURI = new ub(this.baseURL))), (n = e.suffix), e.suffix && (this.suffix = n), (this.defaultSettings = e); var r = e.plugin_base_urls; for (var o in r) ti.PluginManager.urls[o] = r[o]; }, init: function(e) { var t, n, r = this; n = Ot.makeMap( "area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu", " " ); var o = function(e) { var t = e.id; return ( t || ((t = (t = e.name) && !Rb.get(t) ? e.name : Rb.uniqueId()), e.setAttribute("id", t)), t ); }, i = function(e, t) { return t.constructor === RegExp ? t.test(e.className) : Rb.hasClass(e, t); }, a = function(e) { t = e; }, s = function() { var t, u = 0, c = [], l = function(e, n, o) { var i = new gb(e, n, r); c.push(i), i.on("init", function() { ++u === t.length && a(c); }), (i.targetElm = i.targetElm || o), i.render(); }; Rb.unbind(window, "ready", s), (function(t) { var n = e[t]; n && n.apply(r, Array.prototype.slice.call(arguments, 2)); })("onpageload"), (t = Qt.unique( (function(e) { var t, n = []; if (me.ie && me.ie < 11) return ( Pm( "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 (e.types) return ( Ob(e.types, function(e) { n = n.concat(Rb.select(e.selector)); }), n ); if (e.selector) return Rb.select(e.selector); if (e.target) return [e.target]; switch (e.mode) { case "exact": (t = e.elements || "").length > 0 && Ob(Db(t), function(e) { var t; (t = Rb.get(e)) ? n.push(t) : Ob(document.forms, function(t) { Ob(t.elements, function(t) { t.name === e && ((e = "mce_editor_" + Ib++), Rb.setAttrib(t, "id", e), n.push(t)); }); }); }); break; case "textareas": case "specific_textareas": Ob(Rb.select("textarea"), function(t) { (e.editor_deselector && i(t, e.editor_deselector)) || (e.editor_selector && !i(t, e.editor_selector)) || n.push(t); }); } return n; })(e) )), e.types ? Ob(e.types, function(n) { Ot.each(t, function(t) { return ( !Rb.is(t, n.selector) || (l(o(t), Pb({}, e, n), t), !1) ); }); }) : (Ot.each(t, function(e) { var t; (t = r.get(e.id)) && t.initialized && !(t.getContainer() || t.getBody()).parentNode && (Vb(t), t.unbindAllNativeEvents(), t.destroy(!0), (t.removed = !0), (t = null)); }), 0 === (t = Ot.grep(t, function(e) { return !r.get(e.id); })).length ? a([]) : Ob(t, function(t) { var r; (r = t), e.inline && r.tagName.toLowerCase() in n ? Pm( "Could not initialize inline editor on invalid inline target element", t ) : l(o(t), e, t); })); }; return ( (r.settings = e), Rb.bind(window, "ready", s), new pe(function(e) { t ? e(t) : (a = function(t) { e(t); }); }) ); }, get: function(e) { return 0 === arguments.length ? Fb.slice(0) : tr.isString(e) ? M.find(Fb, function(t) { return t.id === e; }).getOr(null) : tr.isNumber(e) && Fb[e] ? Fb[e] : null; }, add: function(e) { var t = this; return Mb[e.id] === e ? e : (null === t.get(e.id) && ("length" !== e.id && (Mb[e.id] = e), Mb.push(e), Fb.push(e)), Ub(!0), (t.activeEditor = e), t.fire("AddEditor", { editor: e }), vb || ((vb = function() { t.fire("BeforeUnload"); }), Rb.bind(window, "beforeunload", vb)), e); }, createEditor: function(e, t) { return this.add(new gb(e, t, this)); }, remove: function(e) { var t, n, r = this; if (e) return tr.isString(e) ? ((e = e.selector || e), void Ob(Rb.select(e), function(e) { (n = r.get(e.id)) && r.remove(n); })) : ((n = e), tr.isNull(r.get(n.id)) ? null : (Vb(n) && r.fire("RemoveEditor", { editor: n }), 0 === Fb.length && Rb.unbind(window, "beforeunload", vb), n.remove(), Ub(Fb.length > 0), n)); for (t = Fb.length - 1; t >= 0; t--) r.remove(Fb[t]); }, execCommand: function(e, t, n) { var r = this.get(n); switch (e) { case "mceAddEditor": return this.get(n) || new gb(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() { Ob(Fb, function(e) { e.save(); }); }, addI18n: function(e, t) { Bb.add(e, t); }, translate: function(e) { return Bb.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); } }), Fd ), yb.setup(); var Hb, qb = yb; function jb(e) { return { walk: function(t, n) { return cg.walk(e, t, n); }, split: sl.split, normalize: function(t) { return Jf.normalize(e, t).fold(y.constant(!1), function(e) { return ( t.setStart(e.startContainer, e.startOffset), t.setEnd(e.endContainer, e.endOffset), !0 ); }); } }; } ((Hb = jb || (jb = {})).compareRanges = qf), (Hb.getCaretRangeFromPoint = Ih), (Hb.getSelectedNode = Fi), (Hb.getNode = zi); var $b, Wb, Kb = jb, Xb = Math.min, Yb = Math.max, Gb = Math.round, Jb = function(e, t, n) { var r, o, i, a, s, u; return ( (r = t.x), (o = t.y), (i = e.w), (a = e.h), (s = t.w), (u = t.h), "b" === (n = (n || "").split(""))[0] && (o += u), "r" === n[1] && (r += s), "c" === n[0] && (o += Gb(u / 2)), "c" === n[1] && (r += Gb(s / 2)), "b" === n[3] && (o -= a), "r" === n[4] && (r -= i), "c" === n[3] && (o -= Gb(a / 2)), "c" === n[4] && (r -= Gb(i / 2)), Qb(r, o, i, a) ); }, Qb = function(e, t, n, r) { return { x: e, y: t, w: n, h: r }; }, Zb = { inflate: function(e, t, n) { return Qb(e.x - t, e.y - n, e.w + 2 * t, e.h + 2 * n); }, relativePosition: Jb, findBestRelativePosition: function(e, t, n, r) { var o, i; for (i = 0; i < r.length; i++) if ( (o = Jb(e, t, r[i])).x >= n.x && o.x + o.w <= n.w + n.x && o.y >= n.y && o.y + o.h <= n.h + n.y ) return r[i]; return null; }, intersect: function(e, t) { var n, r, o, i; return ( (n = Yb(e.x, t.x)), (r = Yb(e.y, t.y)), (o = Xb(e.x + e.w, t.x + t.w)), (i = Xb(e.y + e.h, t.y + t.h)), o - n < 0 || i - r < 0 ? null : Qb(n, r, o - n, i - r) ); }, clamp: function(e, t, n) { var r, o, i, a, s, u, c, l, f, d; return ( (s = e.x), (u = e.y), (c = e.x + e.w), (l = e.y + e.h), (f = t.x + t.w), (d = t.y + t.h), (r = Yb(0, t.x - s)), (o = Yb(0, t.y - u)), (i = Yb(0, c - f)), (a = Yb(0, l - d)), (s += r), (u += o), n && ((c += r), (l += o), (s -= i), (u -= a)), Qb(s, u, (c -= i) - s, (l -= a) - u) ); }, create: Qb, fromClientRect: function(e) { return Qb(e.left, e.top, e.width, e.height); } }, eC = {}, tC = { add: function(e, t) { eC[e.toLowerCase()] = t; }, has: function(e) { return !!eC[e.toLowerCase()]; }, get: function(e) { var t = e.toLowerCase(), n = eC.hasOwnProperty(t) ? eC[t] : null; if (null === n) throw new Error("Could not find module for type: " + e); return n; }, create: function(e, t) { var n; if ( ("string" == typeof e ? ((t = t || {}).type = e) : (e = (t = e).type), (e = e.toLowerCase()), !(n = eC[e])) ) throw new Error("Could not find control by type: " + e); return ((n = new n(t)).type = e), n; } }, nC = Ot.each, rC = Ot.extend, oC = function() {}; oC.extend = $b = function(e) { var t, n, r, o = this.prototype, i = function() { var e, t, n; if ( !Wb && (this.init && this.init.apply(this, arguments), (t = this.Mixins)) ) for (e = t.length; e--; ) (n = t[e]).init && n.init.apply(this, arguments); }, a = function() { return this; }, s = function(e, t) { return function() { var n, r = this._super; return ( (this._super = o[e]), (n = t.apply(this, arguments)), (this._super = r), n ); }; }; for (n in ((Wb = !0), (t = new this()), (Wb = !1), e.Mixins && (nC(e.Mixins, function(t) { for (var n in t) "init" !== n && (e[n] = t[n]); }), o.Mixins && (e.Mixins = o.Mixins.concat(e.Mixins))), e.Methods && nC(e.Methods.split(","), function(t) { e[t] = a; }), e.Properties && nC(e.Properties.split(","), function(t) { var n = "_" + t; e[t] = function(e) { return e !== undefined ? ((this[n] = e), this) : this[n]; }; }), e.Statics && nC(e.Statics, function(e, t) { i[t] = e; }), e.Defaults && o.Defaults && (e.Defaults = rC({}, o.Defaults, e.Defaults)), e)) "function" == typeof (r = e[n]) && o[n] ? (t[n] = s(n, r)) : (t[n] = r); return (i.prototype = t), (i.constructor = i), (i.extend = $b), i; }; var iC = Math.min, aC = Math.max, sC = Math.round, uC = function(e, t) { var n, r, o, i; if (((t = t || '"'), null === e)) return "null"; if ("string" == (o = typeof e)) return ( (r = "\bb\tt\nn\ff\rr\"\"''\\\\"), t + e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function(e, o) { return '"' === t && "'" === e ? e : (n = r.indexOf(o)) + 1 ? "\\" + r.charAt(n + 1) : ((e = o.charCodeAt().toString(16)), "\\u" + "0000".substring(e.length) + e); }) + t ); if ("object" === o) { if ( e.hasOwnProperty && "[object Array]" === Object.prototype.toString.call(e) ) { for (n = 0, r = "["; n < e.length; n++) r += (n > 0 ? "," : "") + uC(e[n], t); return r + "]"; } for (i in ((r = "{"), e)) e.hasOwnProperty(i) && (r += "function" != typeof e[i] ? (r.length > 1 ? "," + t : t) + i + t + ":" + uC(e[i], t) : ""); return r + "}"; } return "" + e; }, cC = { serialize: uC, parse: function(e) { try { return window[String.fromCharCode(101) + "val"]("(" + e + ")"); } catch (t) {} } }, lC = { callbacks: {}, count: 0, send: function(e) { var t = this, n = Xo.DOM, r = e.count !== undefined ? e.count : t.count, o = "tinymce_jsonp_" + r; (t.callbacks[r] = function(i) { n.remove(o), delete t.callbacks[r], e.callback(i); }), n.add(n.doc.body, "script", { id: o, src: e.url, type: "text/javascript" }), t.count++; } }, fC = { send: function(e) { var t, n = 0, r = function() { !e.async || 4 === t.readyState || n++ > 1e4 ? (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, n > 1e4 ? "TIMED_OUT" : "GENERAL", t, e ), (t = null)) : setTimeout(r, 10); }; if ( ((e.scope = e.scope || this), (e.success_scope = e.success_scope || e.scope), (e.error_scope = e.error_scope || e.scope), (e.async = !1 !== e.async), (e.data = e.data || ""), fC.fire("beforeInitialize", { settings: e }), (t = new Mm())) ) { if ( (t.overrideMimeType && t.overrideMimeType(e.content_type), t.open(e.type || (e.data ? "POST" : "GET"), e.url, e.async), e.crossDomain && (t.withCredentials = !0), e.content_type && t.setRequestHeader("Content-Type", e.content_type), e.requestheaders && Ot.each(e.requestheaders, function(e) { t.setRequestHeader(e.key, e.value); }), t.setRequestHeader("X-Requested-With", "XMLHttpRequest"), (t = fC.fire("beforeSend", { xhr: t, settings: e }).xhr).send( e.data ), !e.async) ) return r(); setTimeout(r, 10); } } }; Ot.extend(fC, Fd); var dC = Ot.extend, mC = function(e) { (this.settings = dC({}, e)), (this.count = 0); }; (mC.sendRPC = function(e) { return new mC().send(e); }), (mC.prototype = { send: function(e) { var t = e.error, n = e.success; ((e = dC(this.settings, e)).success = function(r, o) { void 0 === (r = cC.parse(r)) && (r = { error: "JSON Parse error." }), r.error ? t.call(e.error_scope || e.scope, r.error, o) : n.call(e.success_scope || e.scope, r.result); }), (e.error = function(n, r) { t && t.call(e.error_scope || e.scope, n, r); }), (e.data = cC.serialize({ id: e.id || "c" + this.count++, method: e.method, params: e.params })), (e.content_type = "application/json"), fC.send(e); } }); var pC, gC = window.localStorage, hC = qb, vC = { geom: { Rect: Zb }, util: { Promise: pe, Delay: ye, Tools: Ot, VK: Mp, URI: ub, Class: oC, EventDispatcher: Id, Observable: Fd, I18n: Bb, XHR: fC, JSON: cC, JSONRequest: mC, JSONP: lC, LocalStorage: gC, Color: function(e) { var t = {}, n = 0, r = 0, o = 0, i = function(e) { var i; return ( "object" == typeof e ? "r" in e ? ((n = e.r), (r = e.g), (o = e.b)) : "v" in e && (function(e, t, i) { var a, s, u, c; if ( ((e = (parseInt(e, 10) || 0) % 360), (t = parseInt(t, 10) / 100), (i = parseInt(i, 10) / 100), (t = aC(0, iC(t, 1))), (i = aC(0, iC(i, 1))), 0 !== t) ) { switch ( ((a = e / 60), (u = (s = i * t) * (1 - Math.abs((a % 2) - 1))), (c = i - s), Math.floor(a)) ) { case 0: (n = s), (r = u), (o = 0); break; case 1: (n = u), (r = s), (o = 0); break; case 2: (n = 0), (r = s), (o = u); break; case 3: (n = 0), (r = u), (o = s); break; case 4: (n = u), (r = 0), (o = s); break; case 5: (n = s), (r = 0), (o = u); break; default: n = r = o = 0; } (n = sC(255 * (n + c))), (r = sC(255 * (r + c))), (o = sC(255 * (o + c))); } else n = r = o = sC(255 * i); })(e.h, e.s, e.v) : (i = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec( e )) ? ((n = parseInt(i[1], 10)), (r = parseInt(i[2], 10)), (o = parseInt(i[3], 10))) : (i = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e)) ? ((n = parseInt(i[1], 16)), (r = parseInt(i[2], 16)), (o = parseInt(i[3], 16))) : (i = /#([0-F])([0-F])([0-F])/gi.exec(e)) && ((n = parseInt(i[1] + i[1], 16)), (r = parseInt(i[2] + i[2], 16)), (o = parseInt(i[3] + i[3], 16))), (n = n < 0 ? 0 : n > 255 ? 255 : n), (r = r < 0 ? 0 : r > 255 ? 255 : r), (o = o < 0 ? 0 : o > 255 ? 255 : o), t ); }; return ( e && i(e), (t.toRgb = function() { return { r: n, g: r, b: o }; }), (t.toHsv = function() { return ( (e = n), (t = r), (i = o), (s = 0), (u = iC((e /= 255), iC((t /= 255), (i /= 255)))) === (c = aC(e, aC(t, i))) ? { h: 0, s: 0, v: 100 * (s = u) } : ((a = (c - u) / c), (s = c), { h: sC( 60 * ((e === u ? 3 : i === u ? 1 : 5) - (e === u ? t - i : i === u ? e - t : i - e) / (c - u)) ), s: sC(100 * a), v: sC(100 * s) }) ); var e, t, i, a, s, u, c; }), (t.toHex = function() { var e = function(e) { return (e = parseInt(e, 10).toString(16)).length > 1 ? e : "0" + e; }; return "#" + e(n) + e(r) + e(o); }), (t.parse = i), t ); } }, dom: { EventUtils: Te, Sizzle: lt, DomQuery: Qt, TreeWalker: to, DOMUtils: Xo, ScriptLoader: Zo, RangeUtils: Kb, Serializer: Nh, ControlSelection: Rh, BookmarkManager: Ah, Selection: vv, Event: Te.Event }, html: { Styles: zo, Entities: Ao, Node: fh, Schema: Fo, SaxParser: em, DomParser: bh, Writer: Fs, Serializer: zs }, ui: { Factory: tC }, Env: me, AddOnManager: ti, Formatter: Yg, UndoManager: rg, EditorCommands: Od, WindowManager: km, NotificationManager: Sm, EditorObservable: qd, Shortcuts: Jd, Editor: gb, FocusManager: bb, EditorManager: qb, DOM: Xo.DOM, ScriptLoader: Zo.ScriptLoader, PluginManager: ti.PluginManager, ThemeManager: ti.ThemeManager, trim: Ot.trim, isArray: Ot.isArray, is: Ot.is, toArray: Ot.toArray, makeMap: Ot.makeMap, each: Ot.each, map: Ot.map, grep: Ot.grep, inArray: Ot.inArray, extend: Ot.extend, create: Ot.create, walk: Ot.walk, createNS: Ot.createNS, resolve: Ot.resolve, explode: Ot.explode, _addCacheSuffix: Ot._addCacheSuffix, isOpera: me.opera, isWebKit: me.webkit, isIE: me.ie, isGecko: me.gecko, isMac: me.mac }; (hC = Ot.extend(hC, vC)), (pC = hC), (window.tinymce = pC), (window.tinyMCE = pC); })(); !(function() { "use strict"; var e = tinymce.util.Tools.resolve("tinymce.PluginManager"), n = "[-'\\.\u2018\u2019\u2024\ufe52\uff07\uff0e]", t = "[:\xb7\xb7\u05f4\u2027\ufe13\ufe55\uff1a]", r = "[+*/,;;\u0589\u060c\u060d\u066c\u07f8\u2044\ufe10\ufe14\ufe50\ufe54\uff0c\uff1b]", E = "[0-9\u0660-\u0669\u066b\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\uaa50-\uaa59\uabf0-\uabf9]", T = "\\r", u = "\\n", i = "[\x0B\f\x85\u2028\u2029]", o = "[\u0300-\u036f\u0483-\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\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f\u109a-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b6-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u192b\u1930-\u193b\u19b0-\u19c0\u19c8\u19c9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f\u1b00-\u1b04\u1b34-\u1b44\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1baa\u1be6-\u1bf3\u1c24-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe3-\uabea\uabec\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]", c = "[\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200e\u200f\u202a-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb]", a = "[\u3031-\u3035\u309b\u309c\u30a0-\u30fa\u30fc-\u30ff\u31f0-\u31ff\u32d0-\u32fe\u3300-\u3357\uff66-\uff9d]", R = "[=_\u203f\u2040\u2054\ufe33\ufe34\ufe4d-\ufe4f\uff3f\u2200-\u22ff<>]", f = "[!-#%-*,-\\/:;?@\\[-\\]_{}\xa1\xab\xb7\xbb\xbf;\xb7\u055a-\u055f\u0589\u058a\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1361-\u1368\u1400\u166d\u166e\u169b\u169c\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d\u207e\u208d\u208e\u3008\u3009\u2768-\u2775\u27c5\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc\u29fd\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e2e\u2e30\u2e31\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uabeb\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a\uff1b\uff1f\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65]", A = { characterIndices: { ALETTER: 0, MIDNUMLET: 1, MIDLETTER: 2, MIDNUM: 3, NUMERIC: 4, CR: 5, LF: 6, NEWLINE: 7, EXTEND: 8, FORMAT: 9, KATAKANA: 10, EXTENDNUMLET: 11, AT: 12, OTHER: 13 }, SETS: [ new RegExp( "[A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f3\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u10a0-\u10c5\u10d0-\u10fa\u10fc\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1a00-\u1a16\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bc0-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u24b6-\u24e9\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2d00-\u2d25\u2d30-\u2d65\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005\u303b\u303c\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790\ua791\ua7a0-\ua7a9\ua7fa-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]" ), new RegExp(n), new RegExp(t), new RegExp(r), new RegExp(E), new RegExp(T), new RegExp(u), new RegExp(i), new RegExp(o), new RegExp(c), new RegExp(a), new RegExp(R), new RegExp("@") ], EMPTY_STRING: "", PUNCTUATION: new RegExp("^" + f + "$"), WHITESPACE: /^\s+$/ }, N = function(e, n, t) { var r, E; if (!e) return 0; if (((t = t || e), e.length !== undefined)) { for (r = 0, E = e.length; r < E; r++) if (!1 === n.call(t, e[r], r, e)) return 0; } else for (r in e) if (e.hasOwnProperty(r) && !1 === n.call(t, e[r], r, e)) return 0; return 1; }, s = function(e, n) { var t = []; return ( N(e, function(r, E) { t.push(n(r, E, e)); }), t ); }, l = A.SETS, M = A.characterIndices.OTHER, d = function(e) { var n, t, r = M, E = l.length; for (n = 0; n < E; ++n) if ((t = l[n]) && t.test(e)) { r = n; break; } return r; }, I = function(e) { var n, t, r = ((n = d), (t = {}), function(e) { if (t[e]) return t[e]; var r = n(e); return (t[e] = r), r; }); return s(e.split(""), r); }, L = A.characterIndices, g = function(e, n) { var t, r, E = e[n], T = e[n + 1]; return !( n < 0 || (n > e.length - 1 && 0 !== n) || (E === L.ALETTER && T === L.ALETTER) || ((r = e[n + 2]), (E === L.ALETTER && (T === L.MIDLETTER || T === L.MIDNUMLET || T === L.AT) && r === L.ALETTER) || ((t = e[n - 1]), ((E === L.MIDLETTER || E === L.MIDNUMLET || T === L.AT) && T === L.ALETTER && t === L.ALETTER) || !( (E !== L.NUMERIC && E !== L.ALETTER) || (T !== L.NUMERIC && T !== L.ALETTER) ) || ((E === L.MIDNUM || E === L.MIDNUMLET) && T === L.NUMERIC && t === L.NUMERIC) || (E === L.NUMERIC && (T === L.MIDNUM || T === L.MIDNUMLET) && r === L.NUMERIC) || E === L.EXTEND || E === L.FORMAT || t === L.EXTEND || t === L.FORMAT || T === L.EXTEND || T === L.FORMAT || (E === L.CR && T === L.LF) || (E !== L.NEWLINE && E !== L.CR && E !== L.LF && T !== L.NEWLINE && T !== L.CR && T !== L.LF && ((E === L.KATAKANA && T === L.KATAKANA) || (T === L.EXTENDNUMLET && (E === L.ALETTER || E === L.NUMERIC || E === L.KATAKANA || E === L.EXTENDNUMLET)) || (E === L.EXTENDNUMLET && (T === L.ALETTER || T === L.NUMERIC || T === L.KATAKANA)) || E === L.AT)))) ); }, p = A.EMPTY_STRING, U = A.WHITESPACE, w = A.PUNCTUATION, h = function(e, n, t) { var r = (function(e, n) { var t; for (t = n; t < e.length; ++t) { var r = e.charAt(t); if (U.test(r)) break; } return t; })(n, t + 1), E = n.substring(t + 1, r); return "://" === E.substr(0, 3) ? { word: e + E, index: r } : { word: e, index: t }; }, v = function(e, n) { return (function(e, n) { var t, r, E, T, u = 0, i = I(e), o = i.length, c = [], a = []; for ( n || (n = {}), n.ignoreCase && (e = e.toLowerCase()), r = n.includePunctuation, E = n.includeWhitespace; u < o; ++u ) if (((t = e.charAt(u)), c.push(t), g(i, u))) { if ((c = c.join(p)) && (E || !U.test(c)) && (r || !w.test(c))) if ("http" === (T = c) || "https" === T) { var R = h(c, e, u); a.push(R.word), (u = R.index); } else a.push(c); c = []; } return a; })(e.replace(/\ufeff/g, ""), n); }, x = function(e) { return v(((n = e), n.removed ? "" : n.getBody().innerText)).length; var n; }, C = function(e) { return { getCount: function() { return x(e); } }; }, D = tinymce.util.Tools.resolve("tinymce.util.Delay"), m = tinymce.util.Tools.resolve("tinymce.util.I18n"), y = function(e) { var n = function(e) { return m.translate(["{0} words", x(e)]); }, t = function() { e.theme.panel.find("#wordcount").text(n(e)); }; e.on("init", function() { var r = e.theme.panel && e.theme.panel.find("#statusbar")[0], E = D.debounce(t, 300); r && D.setEditorTimeout( e, function() { r.insert( { type: "label", name: "wordcount", text: n(e), classes: "wordcount", disabled: e.settings.readonly }, 0 ), e.on("setcontent beforeaddundo undo redo keyup", E); }, 0 ); }); }; e.add("wordcount", function(e) { return y(e), C(e); }); })(); !(function() { "use strict"; var n, e, t, r, o = function(n) { var e = n, t = function() { return e; }; return { get: t, set: function(n) { e = n; }, clone: function() { return o(t()); } }; }, u = tinymce.util.Tools.resolve("tinymce.PluginManager"), i = function(n) { return { isEnabled: function() { return n.get(); } }; }, c = function(n, e) { return n.fire("VisualChars", { state: e }); }, a = { "\xa0": "nbsp", "\xad": "shy" }, f = function(n, e) { var t, r = ""; for (t in n) r += t; return new RegExp("[" + r + "]", e ? "g" : ""); }, l = function(n) { var e, t = ""; for (e in n) t && (t += ","), (t += "span.mce-" + n[e]); return t; }, s = { charMap: a, regExp: f(a), regExpGlobal: f(a, !0), selector: l(a), charMapToRegExp: f, charMapToSelector: l }, d = function(n) { return function() { return n; }; }, m = { noop: function() {}, noarg: function(n) { return function() { return n(); }; }, compose: function(n, e) { return function() { return n(e.apply(null, arguments)); }; }, constant: d, identity: function(n) { return n; }, tripleEquals: function(n, e) { return n === e; }, curry: function(n) { for ( var e = new Array(arguments.length - 1), t = 1; t < arguments.length; t++ ) e[t - 1] = arguments[t]; return function() { for (var t = new Array(arguments.length), r = 0; r < t.length; r++) t[r] = arguments[r]; var o = e.concat(t); return n.apply(null, o); }; }, not: function(n) { return function() { return !n.apply(null, arguments); }; }, die: function(n) { return function() { throw new Error(n); }; }, apply: function(n) { return n(); }, call: function(n) { n(); }, never: d(!1), always: d(!0) }, p = m.never, h = m.always, v = function() { return g; }, g = ((r = { fold: function(n, e) { return n(); }, is: p, isSome: p, isNone: h, getOr: (t = function(n) { return n; }), getOrThunk: (e = function(n) { return n(); }), getOrDie: function(n) { throw new Error(n || "error: getOrDie called on none."); }, or: t, orThunk: e, map: v, ap: v, each: function() {}, bind: v, flatten: v, exists: p, forall: h, filter: v, equals: (n = function(n) { return n.isNone(); }), equals_: n, toArray: function() { return []; }, toString: m.constant("none()") }), Object.freeze && Object.freeze(r), r), y = function(n) { var e = function() { return n; }, t = function() { return o; }, r = function(e) { return e(n); }, o = { fold: function(e, t) { return t(n); }, is: function(e) { return n === e; }, isSome: h, isNone: p, getOr: e, getOrThunk: e, getOrDie: e, or: t, orThunk: t, map: function(e) { return y(e(n)); }, ap: function(e) { return e.fold(v, function(e) { return y(e(n)); }); }, each: function(e) { e(n); }, bind: r, flatten: e, exists: r, forall: r, filter: function(e) { return e(n) ? o : g; }, equals: function(e) { return e.is(n); }, equals_: function(e, t) { return e.fold(p, function(e) { return t(n, e); }); }, toArray: function() { return [n]; }, toString: function() { return "some(" + n + ")"; } }; return o; }, T = { some: y, none: v, from: function(n) { return null === n || n === undefined ? g : y(n); } }, w = (Array.prototype.indexOf, undefined, function(n, e) { for (var t = n.length, r = new Array(t), o = 0; o < t; o++) { var u = n[o]; r[o] = e(u, o, n); } return r; }), x = function(n, e) { for (var t = 0, r = n.length; t < r; t++) e(n[t], t, n); }, E = (Array.prototype.push, Array.prototype.slice, w), b = x, k = function(n) { if (null === n || n === undefined) throw new Error("Node cannot be null or undefined"); return { dom: m.constant(n) }; }, N = { fromHtml: function(n, e) { var t = (e || document).createElement("div"); if (((t.innerHTML = n), !t.hasChildNodes() || t.childNodes.length > 1)) throw (console.error("HTML does not have a single root node", n), "HTML must have a single root node"); return k(t.childNodes[0]); }, fromTag: function(n, e) { var t = (e || document).createElement(n); return k(t); }, fromText: function(n, e) { var t = (e || document).createTextNode(n); return k(t); }, fromDom: k, fromPoint: function(n, e, t) { return T.from(n.dom().elementFromPoint(e, t)).map(k); } }, C = 8, M = 9, D = 3, O = function(n) { return n.dom().nodeName.toLowerCase(); }, A = function(n) { return n.dom().nodeType; }, S = function(n) { return function(e) { return A(e) === n; }; }, B = S(1), P = S(D), V = S(M), q = { name: O, type: A, value: function(n) { return n.dom().nodeValue; }, isElement: B, isText: P, isDocument: V, isComment: function(n) { return A(n) === C || "#comment" === O(n); } }, H = function(n) { return ( '' + n + "" ); }, L = function(n, e) { var t = [], r = n.dom(), o = E(r.childNodes, N.fromDom); return ( b(o, function(n) { e(n) && (t = t.concat([n])), (t = t.concat(L(n, e))); }), t ); }, R = { isMatch: function(n) { return ( q.isText(n) && q.value(n) !== undefined && s.regExp.test(q.value(n)) ); }, filterDescendants: L, findParentElm: function(n, e) { for (; n.parentNode; ) { if (n.parentNode === e) return n; n = n.parentNode; } }, replaceWithSpans: function(n) { return n.replace(s.regExpGlobal, H); } }, _ = function(n, e) { var t, r, o = R.filterDescendants(N.fromDom(e), R.isMatch); b(o, function(e) { var o = R.replaceWithSpans(q.value(e)); for (r = n.dom.create("div", null, o); (t = r.lastChild); ) n.dom.insertAfter(t, e.dom()); n.dom.remove(e.dom()); }); }, j = function(n, e) { var t = n.dom.select(s.selector, e); b(t, function(e) { n.dom.remove(e, 1); }); }, z = _, G = j, W = function(n) { var e = n.getBody(), t = n.selection.getBookmark(), r = R.findParentElm(n.selection.getNode(), e); (r = r !== undefined ? r : e), j(n, r), _(n, r), n.selection.moveToBookmark(t); }, F = function(n, e) { var t, r = n.getBody(), o = n.selection; e.set(!e.get()), c(n, e.get()), (t = o.getBookmark()), !0 === e.get() ? z(n, r) : G(n, r), o.moveToBookmark(t); }, I = function(n, e) { n.addCommand("mceVisualChars", function() { F(n, e); }); }, J = tinymce.util.Tools.resolve("tinymce.util.Delay"), K = function(n, e) { var t = J.debounce(function() { W(n); }, 300); !1 !== n.settings.forced_root_block && n.on("keydown", function(r) { !0 === e.get() && (13 === r.keyCode ? W(n) : t()); }); }, Q = function(n) { return function(e) { var t = e.control; n.on("VisualChars", function(n) { t.active(n.state); }); }; }; u.add("visualchars", function(n) { var e, t = o(!1); return ( I(n, t), (e = n).addButton("visualchars", { active: !1, title: "Show invisible characters", cmd: "mceVisualChars", onPostRender: Q(e) }), e.addMenuItem("visualchars", { text: "Show invisible characters", cmd: "mceVisualChars", onPostRender: Q(e), selectable: !0, context: "view", prependToContext: !0 }), K(n, t), i(t) ); }); })(); !(function() { "use strict"; var e = function(t) { var n = t, o = function() { return n; }; return { get: o, set: function(e) { n = e; }, clone: function() { return e(o()); } }; }, t = tinymce.util.Tools.resolve("tinymce.PluginManager"), n = function(e, t) { e.fire("VisualBlocks", { state: t }); }, o = function(e) { return e.getParam("visualblocks_default_state", !1); }, s = function(e) { return e.settings.visualblocks_content_css; }, i = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), c = tinymce.util.Tools.resolve("tinymce.util.Tools"), l = i.DOM.uniqueId(), u = function(e, t) { var n = c.toArray(e.getElementsByTagName("link")); if ( 0 === c.grep(n, function(e) { return e.id === l; }).length ) { var o = i.DOM.create("link", { id: l, rel: "stylesheet", href: t }); e.getElementsByTagName("head")[0].appendChild(o); } }, a = function(e, t, o) { var i = e.dom, c = s(e); u(e.getDoc(), c || t + "/css/visualblocks.css"), i.toggleClass(e.getBody(), "mce-visualblocks"), o.set(!o.get()), n(e, o.get()); }, r = function(e, t, n) { e.addCommand("mceVisualBlocks", function() { a(e, t, n); }); }, m = function(e, t, n) { e.on("PreviewFormats AfterPreviewFormats", function(t) { n.get() && e.dom.toggleClass( e.getBody(), "mce-visualblocks", "afterpreviewformats" === t.type ); }), e.on("init", function() { o(e) && a(e, t, n); }), e.on("remove", function() { e.dom.removeClass(e.getBody(), "mce-visualblocks"); }); }, f = function(e, t) { return function(n) { var o = n.control; o.active(t.get()), e.on("VisualBlocks", function(e) { o.active(e.state); }); }; }, d = function(e, t) { e.addButton("visualblocks", { active: !1, title: "Show blocks", cmd: "mceVisualBlocks", onPostRender: f(e, t) }), e.addMenuItem("visualblocks", { text: "Show blocks", cmd: "mceVisualBlocks", onPostRender: f(e, t), selectable: !0, context: "view", prependToContext: !0 }); }; t.add("visualblocks", function(t, n) { var o = e(!1); r(t, n, o), d(t, o), m(t, n, o); }); })(); !(function() { "use strict"; var t = function(e) { var n = e, r = function() { return n; }; return { get: r, set: function(t) { n = t; }, clone: function() { return t(r()); } }; }, e = tinymce.util.Tools.resolve("tinymce.PluginManager"), n = function(t) { return { setPatterns: function(e) { t.set(e); }, getPatterns: function() { return t.get(); } }; }, r = [ { start: "*", end: "*", format: "italic" }, { start: "**", end: "**", format: "bold" }, { start: "***", end: "***", format: ["bold", "italic"] }, { start: "#", format: "h1" }, { start: "##", format: "h2" }, { start: "###", format: "h3" }, { start: "####", format: "h4" }, { start: "#####", format: "h5" }, { start: "######", format: "h6" }, { start: "1. ", cmd: "InsertOrderedList" }, { start: "* ", cmd: "InsertUnorderedList" }, { start: "- ", cmd: "InsertUnorderedList" } ], a = function(t) { return t.textpattern_patterns !== undefined ? t.textpattern_patterns : r; }, o = tinymce.util.Tools.resolve("tinymce.util.Delay"), i = tinymce.util.Tools.resolve("tinymce.util.VK"), s = tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"), l = tinymce.util.Tools.resolve("tinymce.util.Tools"), d = function(t, e) { for (var n = 0; n < t.length; n++) if ( 0 === e.indexOf(t[n].start) && (!t[n].end || e.lastIndexOf(t[n].end) === e.length - t[n].end.length) ) return t[n]; }, f = function(t, e, n, r) { var a, o, i, s, l, d, f = t.sort(function(t, e) { return t.start.length > e.start.length ? -1 : t.start.length < e.start.length ? 1 : 0; }); for (o = 0; o < f.length; o++) if ( (a = f[o]).end !== undefined && ((s = a), (l = n), (d = r), e.substr(l - s.end.length - d, s.end.length) === s.end) && n - r - (i = a).end.length - i.start.length > 0 ) return a; }, c = function(t, e, n) { if (!1 !== e.collapsed) { var r = e.startContainer, a = r.data, o = !0 === n ? 1 : 0; if (3 === r.nodeType) { var i = f(t, a, e.startOffset, o); if (i !== undefined) { var s = a.lastIndexOf(i.end, e.startOffset - o), l = a.lastIndexOf(i.start, s - i.end.length); if (((s = a.indexOf(i.end, l + i.start.length)), -1 !== l)) { var c = document.createRange(); c.setStart(r, l), c.setEnd(r, s + i.end.length); var u = d(t, c.toString()); if ( !( i === undefined || u !== i || r.data.length <= i.start.length + i.end.length ) ) return { pattern: i, startOffset: l, endOffset: s }; } } } } }, u = function(t, e, n) { var r = t.selection.getRng(!0), a = c(e, r, n); if (a) return (function(t, e, n, r) { var a = l.isArray(n.pattern.format) ? n.pattern.format : [n.pattern.format]; if ( 0 !== l.grep(a, function(e) { var n = t.formatter.get(e); return n && n[0].inline; }).length ) return ( t.undoManager.transact(function() { var r, o, i, s; (r = e), (o = n.pattern), (i = n.endOffset), (s = n.startOffset), (r = s > 0 ? r.splitText(s) : r).splitText( i - s + o.end.length ), r.deleteData(0, o.start.length), r.deleteData(r.data.length - o.end.length, o.end.length), (e = r), a.forEach(function(n) { t.formatter.apply(n, {}, e); }); }), e ); })(t, r.startContainer, a); }, g = { patternFromRng: c, applyInlineFormatSpace: function(t, e) { return u(t, e, !0); }, applyInlineFormatEnter: function(t, e) { return u(t, e, !1); }, applyBlockFormat: function(t, e) { var n, r, a, o, i, f, c, u, g, h, m; if ( ((n = t.selection), (r = t.dom), n.isCollapsed() && (c = r.getParent(n.getStart(), "p"))) ) { for (g = new s(c, c); (i = g.next()); ) if (3 === i.nodeType) { o = i; break; } if (o) { if (!(u = d(e, o.data))) return; if ( ((a = (h = n.getRng(!0)).startContainer), (m = h.startOffset), o === a && (m = Math.max(0, m - u.start.length)), l.trim(o.data).length === u.start.length) ) return; u.format && (f = t.formatter.get(u.format)) && f[0].block && (o.deleteData(0, u.start.length), t.formatter.apply(u.format, {}, o), h.setStart(a, m), h.collapse(!0), n.setRng(h)), u.cmd && t.undoManager.transact(function() { o.deleteData(0, u.start.length), t.execCommand(u.cmd); }); } } } }, h = function(t, e, n) { for (var r = 0; r < t.length; r++) if (n(t[r], e)) return !0; }, m = { handleEnter: function(t, e) { var n, r; (n = g.applyInlineFormatEnter(t, e)) && ((r = t.dom.createRng()).setStart(n, n.data.length), r.setEnd(n, n.data.length), t.selection.setRng(r)), g.applyBlockFormat(t, e); }, handleInlineKey: function(t, e) { var n, r, a, o, i; (n = g.applyInlineFormatSpace(t, e)) && ((i = t.dom), (r = n.data.slice(-1)), /[\u00a0 ]/.test(r) && (n.deleteData(n.data.length - 1, 1), (a = i.doc.createTextNode(r)), i.insertAfter(a, n.parentNode), (o = i.createRng()).setStart(a, 1), o.setEnd(a, 1), t.selection.setRng(o))); }, checkCharCode: function(t, e) { return h(t, e, function(t, e) { return t.charCodeAt(0) === e.charCode; }); }, checkKeyCode: function(t, e) { return h(t, e, function(t, e) { return t === e.keyCode && !1 === i.modifierPressed(e); }); } }, p = function(t, e) { var n = [",", ".", ";", ":", "!", "?"], r = [32]; t.on( "keydown", function(n) { 13 !== n.keyCode || i.modifierPressed(n) || m.handleEnter(t, e.get()); }, !0 ), t.on("keyup", function(n) { m.checkKeyCode(r, n) && m.handleInlineKey(t, e.get()); }), t.on("keypress", function(r) { m.checkCharCode(n, r) && o.setEditorTimeout(t, function() { m.handleInlineKey(t, e.get()); }); }); }; e.add("textpattern", function(e) { var r = t(a(e.settings)); return p(e, r), n(r); }); })(); !(function() { "use strict"; var t = tinymce.util.Tools.resolve("tinymce.PluginManager"), e = function(t, e) { var o; return ( t.dom.getParents(t.selection.getStart(), function(t) { var r; (r = t.style["forecolor" === e ? "color" : "background-color"]) && (o = r); }), o ); }, o = function(t) { var e, o = []; for (e = 0; e < t.length; e += 2) o.push({ text: t[e + 1], color: "#" + t[e] }); return o; }, r = function(t, e, o) { t.undoManager.transact(function() { t.focus(), t.formatter.apply(e, { value: o }), t.nodeChanged(); }); }, n = function(t, e) { t.undoManager.transact(function() { t.focus(), t.formatter.remove(e, { value: null }, null, !0), t.nodeChanged(); }); }, a = function(t) { t.addCommand("mceApplyTextcolor", function(e, o) { r(t, e, o); }), t.addCommand("mceRemoveTextcolor", function(e) { n(t, e); }); }, l = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), c = tinymce.util.Tools.resolve("tinymce.util.Tools"), i = [ "000000", "Black", "993300", "Burnt orange", "333300", "Dark olive", "003300", "Dark green", "003366", "Dark azure", "000080", "Navy Blue", "333399", "Indigo", "333333", "Very dark gray", "800000", "Maroon", "FF6600", "Orange", "808000", "Olive", "008000", "Green", "008080", "Teal", "0000FF", "Blue", "666699", "Grayish blue", "808080", "Gray", "FF0000", "Red", "FF9900", "Amber", "99CC00", "Yellow green", "339966", "Sea green", "33CCCC", "Turquoise", "3366FF", "Royal blue", "800080", "Purple", "999999", "Medium gray", "FF00FF", "Magenta", "FFCC00", "Gold", "FFFF00", "Yellow", "00FF00", "Lime", "00FFFF", "Aqua", "00CCFF", "Sky blue", "993366", "Red violet", "FFFFFF", "White", "FF99CC", "Pink", "FFCC99", "Peach", "FFFF99", "Light yellow", "CCFFCC", "Pale green", "CCFFFF", "Pale cyan", "99CCFF", "Light sky blue", "CC99FF", "Plum" ], u = function(t) { return t.getParam("textcolor_map", i); }, m = function(t) { return t.getParam("textcolor_rows", 5); }, s = function(t) { return t.getParam("textcolor_cols", 8); }, d = function(t) { return t.getParam("color_picker_callback", null); }, f = function(t) { return t.getParam("forecolor_map", u(t)); }, g = function(t) { return t.getParam("backcolor_map", u(t)); }, F = function(t) { return t.getParam("forecolor_rows", m(t)); }, b = function(t) { return t.getParam("backcolor_rows", m(t)); }, p = function(t) { return t.getParam("forecolor_cols", s(t)); }, C = function(t) { return t.getParam("backcolor_cols", s(t)); }, y = d, v = function(t) { return "function" == typeof d(t); }, h = tinymce.util.Tools.resolve("tinymce.util.I18n"), P = function(t, e, r, n) { var a, c, i, u, m, s, d, f = 0, g = l.DOM.uniqueId("mcearia"), F = function(t, e) { var o = "transparent" === t; return ( '
    ' + (o ? "×" : "") + "
    " ); }; for ( (a = o(r)).push({ text: h.translate("No color"), color: "transparent" }), i = '', u = a.length - 1, s = 0; s < e; s++ ) { for (i += "", m = 0; m < t; m++) i += (d = s * t + m) > u ? "" : F((c = a[d]).color, c.text); i += ""; } if (n) { for ( i += '", i += "", m = 0; m < t; m++ ) i += F("", "Custom color"); i += ""; } return (i += "
    "); }, k = function(t, e) { (t.style.background = e), t.setAttribute("data-mce-color", e); }, x = function(t) { return function(e) { var o = e.control; o._color ? t.execCommand("mceApplyTextcolor", o.settings.format, o._color) : t.execCommand("mceRemoveTextcolor", o.settings.format); }; }, T = function(t, o) { return function(r) { var n, a = this.parent(), i = e(t, a.settings.format), u = function(e) { a.hidePanel(), a.color(e), t.execCommand("mceApplyTextcolor", a.settings.format, e); }; l.DOM.getParent(r.target, ".mce-custom-color-btn") && (a.hidePanel(), y(t).call( t, function(t) { var e, r, n, l = a.panel.getEl().getElementsByTagName("table")[0]; for ( e = c.map(l.rows[l.rows.length - 1].childNodes, function(t) { return t.firstChild; }), n = 0; n < e.length && (r = e[n]).getAttribute("data-mce-color"); n++ ); if (n === o) for (n = 0; n < o - 1; n++) k(e[n], e[n + 1].getAttribute("data-mce-color")); k(r, t), u(t); }, i )), (n = r.target.getAttribute("data-mce-color")) ? (this.lastId && l.DOM.get(this.lastId).setAttribute("aria-selected", !1), r.target.setAttribute("aria-selected", !0), (this.lastId = r.target.id), "transparent" === n ? (a.hidePanel(), a.resetColor(), t.execCommand("mceRemoveTextcolor", a.settings.format)) : u(n)) : null !== n && a.hidePanel(); }; }, _ = function(t, e) { return function() { var o = e ? p(t) : C(t), r = e ? F(t) : b(t), n = e ? f(t) : g(t), a = v(t); return P(o, r, n, a); }; }, A = function(t) { t.addButton("forecolor", { type: "colorbutton", tooltip: "Text color", format: "forecolor", panel: { role: "application", ariaRemember: !0, html: _(t, !0), onclick: T(t, p(t)) }, onclick: x(t) }), t.addButton("backcolor", { type: "colorbutton", tooltip: "Background color", format: "hilitecolor", panel: { role: "application", ariaRemember: !0, html: _(t, !1), onclick: T(t, C(t)) }, onclick: x(t) }); }; t.add("textcolor", function(t) { a(t), A(t); }); })(); !(function() { "use strict"; var e = tinymce.util.Tools.resolve("tinymce.PluginManager"), t = function(e) { return function() { return e; }; }, n = function(e) { for ( var t = new Array(arguments.length - 1), n = 1; n < arguments.length; n++ ) t[n - 1] = arguments[n]; return function() { for (var n = new Array(arguments.length), a = 0; a < n.length; a++) n[a] = arguments[a]; var r = t.concat(n); return e.apply(null, r); }; }, a = (t(!1), t(!0), tinymce.util.Tools.resolve("tinymce.util.Tools")), r = tinymce.util.Tools.resolve("tinymce.util.XHR"), l = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), c = function(e) { return e.getParam("template_cdate_classes", "cdate"); }, o = function(e) { return e.getParam("template_mdate_classes", "mdate"); }, i = function(e) { return e.getParam("template_selected_content_classes", "selcontent"); }, s = function(e) { return e.getParam("template_preview_replace_values"); }, u = function(e) { return e.getParam("template_replace_values"); }, p = function(e) { return e.templates; }, m = function(e) { return e.getParam( "template_cdate_format", e.getLang("template.cdate_format") ); }, d = function(e) { return e.getParam( "template_mdate_format", e.getLang("template.mdate_format") ); }, f = function(e) { return e.getParam("template_popup_width", 600); }, g = function(e) { return Math.min( l.DOM.getViewPort().h, e.getParam("template_popup_height", 500) ); }, h = function(e, t) { if ((e = "" + e).length < t) for (var n = 0; n < t - e.length; n++) e = "0" + e; return e; }, y = function(e, t, n) { var a = "Sun Mon Tue Wed Thu Fri Sat Sun".split(" "), r = "Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split( " " ), l = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), c = "January February March April May June July August September October November December".split( " " ); return ( (n = n || new Date()), (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = t.replace( "%D", "%m/%d/%Y" )).replace("%r", "%I:%M:%S %p")).replace( "%Y", "" + n.getFullYear() )).replace("%y", "" + n.getYear())).replace( "%m", h(n.getMonth() + 1, 2) )).replace("%d", h(n.getDate(), 2))).replace( "%H", "" + h(n.getHours(), 2) )).replace("%M", "" + h(n.getMinutes(), 2))).replace( "%S", "" + h(n.getSeconds(), 2) )).replace("%I", "" + (((n.getHours() + 11) % 12) + 1))).replace( "%p", n.getHours() < 12 ? "AM" : "PM" )).replace("%B", "" + e.translate(c[n.getMonth()]))).replace( "%b", "" + e.translate(l[n.getMonth()]) )).replace("%A", "" + e.translate(r[n.getDay()]))).replace( "%a", "" + e.translate(a[n.getDay()]) )).replace("%%", "%")) ); }, v = function(e, t, n) { return ( a.each(n, function(e, n) { "function" == typeof e && (e = e(n)), (t = t.replace(new RegExp("\\{\\$" + n + "\\}", "g"), e)); }), t ); }, M = function(e, t) { var n = e.dom, r = u(e); a.each(n.select("*", t), function(e) { a.each(r, function(t, a) { n.hasClass(e, a) && "function" == typeof r[a] && r[a](e); }); }); }, _ = function(e, t) { return new RegExp("\\b" + t + "\\b", "g").test(e.className); }, b = function(e, t) { return function() { var n = p(e); "function" != typeof n ? "string" == typeof n ? r.send({ url: n, success: function(e) { t(JSON.parse(e)); } }) : t(n) : n(t); }; }, T = v, x = M, P = function(e, t, n) { var r, l, s = e.dom, p = e.selection.getContent(); (n = v(0, n, u(e))), (r = s.create("div", null, n)), (l = s.select(".mceTmpl", r)) && l.length > 0 && (r = s.create("div", null)).appendChild(l[0].cloneNode(!0)), a.each(s.select("*", r), function(t) { _(t, c(e).replace(/\s+/g, "|")) && (t.innerHTML = y(e, m(e))), _(t, o(e).replace(/\s+/g, "|")) && (t.innerHTML = y(e, d(e))), _(t, i(e).replace(/\s+/g, "|")) && (t.innerHTML = p); }), M(e, r), e.execCommand("mceInsertContent", !1, r.innerHTML), e.addVisual(); }, S = function(e) { e.addCommand("mceInsertTemplate", n(P, e)); }, w = function(e) { e.on("PreProcess", function(t) { var n = e.dom, r = d(e); a.each(n.select("div", t.node), function(t) { n.hasClass(t, "mceTmpl") && (a.each(n.select("*", t), function(t) { n.hasClass( t, e .getParam("template_mdate_classes", "mdate") .replace(/\s+/g, "|") ) && (t.innerHTML = y(e, r)); }), x(e, t)); }); }); }, D = function(e, t, n) { if (-1 === n.indexOf("")) { var r = ""; a.each(e.contentCSS, function(t) { r += ''; }); var l = e.settings.body_class || ""; -1 !== l.indexOf("=") && (l = (l = e.getParam("body_class", "", "hash"))[e.id] || ""), (n = "" + r + '' + n + ""); } n = T(e, n, s(e)); var c = t.find("iframe")[0].getEl().contentWindow.document; c.open(), c.write(n), c.close(); }, H = function(e, t) { var n, l, c = []; if (t && 0 !== t.length) a.each(t, function(e) { c.push({ selected: !c.length, text: e.title, value: { url: e.url, content: e.content, description: e.description } }); }), (n = e.windowManager.open({ title: "Insert template", layout: "flex", direction: "column", align: "stretch", padding: 15, spacing: 10, items: [ { type: "form", flex: 0, padding: 0, items: [ { type: "container", label: "Templates", items: { type: "listbox", label: "Templates", name: "template", values: c, onselect: function(t) { var a = t.control.value(); a.url ? r.send({ url: a.url, success: function(t) { D(e, n, (l = t)); } }) : ((l = a.content), D(e, n, l)), n .find("#description")[0] .text(t.control.value().description); } } } ] }, { type: "label", name: "description", label: "Description", text: "\xa0" }, { type: "iframe", flex: 1, border: 1 } ], onsubmit: function() { P(e, !1, l); }, minWidth: f(e), minHeight: g(e) })) .find("listbox")[0] .fire("select"); else { var o = e.translate("No templates defined."); e.notificationManager.open({ text: o, type: "info" }); } }, C = function(e) { return function(t) { H(e, t); }; }, A = function(e) { e.addButton("template", { title: "Insert template", onclick: b(e.settings, C(e)) }), e.addMenuItem("template", { text: "Template", onclick: b(e.settings, C(e)), icon: "template", context: "insert" }); }; e.add("template", function(e) { A(e), S(e), w(e); }); })(); !(function() { "use strict"; var n, t, e, r, o, i, u, a, c, l, s, f = tinymce.util.Tools.resolve("tinymce.PluginManager"), d = function(n) { return function() { return n; }; }, m = { noop: function() {}, noarg: function(n) { return function() { return n(); }; }, compose: function(n, t) { return function() { return n(t.apply(null, arguments)); }; }, constant: d, identity: function(n) { return n; }, tripleEquals: function(n, t) { return n === t; }, curry: function(n) { for ( var t = new Array(arguments.length - 1), e = 1; e < arguments.length; e++ ) t[e - 1] = arguments[e]; return function() { for (var e = new Array(arguments.length), r = 0; r < e.length; r++) e[r] = arguments[r]; var o = t.concat(e); return n.apply(null, o); }; }, not: function(n) { return function() { return !n.apply(null, arguments); }; }, die: function(n) { return function() { throw new Error(n); }; }, apply: function(n) { return n(); }, call: function(n) { n(); }, never: d(!1), always: d(!0) }, g = m.never, p = m.always, h = function() { return v; }, v = ((r = { fold: function(n, t) { return n(); }, is: g, isSome: g, isNone: p, getOr: (e = function(n) { return n; }), getOrThunk: (t = function(n) { return n(); }), getOrDie: function(n) { throw new Error(n || "error: getOrDie called on none."); }, or: e, orThunk: t, map: h, ap: h, each: function() {}, bind: h, flatten: h, exists: g, forall: p, filter: h, equals: (n = function(n) { return n.isNone(); }), equals_: n, toArray: function() { return []; }, toString: m.constant("none()") }), Object.freeze && Object.freeze(r), r), b = function(n) { var t = function() { return n; }, e = function() { return o; }, r = function(t) { return t(n); }, o = { fold: function(t, e) { return e(n); }, is: function(t) { return n === t; }, isSome: p, isNone: g, getOr: t, getOrThunk: t, getOrDie: t, or: e, orThunk: e, map: function(t) { return b(t(n)); }, ap: function(t) { return t.fold(h, function(t) { return b(t(n)); }); }, each: function(t) { t(n); }, bind: r, flatten: t, exists: r, forall: r, filter: function(t) { return t(n) ? o : v; }, equals: function(t) { return t.is(n); }, equals_: function(t, e) { return t.fold(g, function(t) { return e(n, t); }); }, toArray: function() { return [n]; }, toString: function() { return "some(" + n + ")"; } }; return o; }, w = { some: b, none: h, from: function(n) { return null === n || n === undefined ? v : b(n); } }, y = (o = Array.prototype.indexOf) === undefined ? function(n, t) { return A(n, t); } : function(n, t) { return o.call(n, t); }, x = function(n, t) { return y(n, t) > -1; }, C = function(n, t) { for (var e = n.length, r = new Array(e), o = 0; o < e; o++) { var i = n[o]; r[o] = t(i, o, n); } return r; }, S = function(n, t) { for (var e = 0, r = n.length; e < r; e++) t(n[e], e, n); }, R = function(n, t) { for (var e = n.length - 1; e >= 0; e--) t(n[e], e, n); }, T = function(n, t) { for (var e = [], r = 0, o = n.length; r < o; r++) { var i = n[r]; t(i, r, n) && e.push(i); } return e; }, D = function(n, t) { for (var e = 0, r = n.length; e < r; e++) if (t(n[e], e, n)) return w.some(e); return w.none(); }, A = function(n, t) { for (var e = 0, r = n.length; e < r; ++e) if (n[e] === t) return e; return -1; }, k = Array.prototype.push, N = function(n) { for (var t = [], e = 0, r = n.length; e < r; ++e) { if (!Array.prototype.isPrototypeOf(n[e])) throw new Error( "Arr.flatten item " + e + " was not an array, input: " + n ); k.apply(t, n[e]); } return t; }, O = function(n, t) { for (var e = 0, r = n.length; e < r; ++e) if (!0 !== t(n[e], e, n)) return !1; return !0; }, E = Array.prototype.slice, B = { map: C, each: S, eachr: R, partition: function(n, t) { for (var e = [], r = [], o = 0, i = n.length; o < i; o++) { var u = n[o]; (t(u, o, n) ? e : r).push(u); } return { pass: e, fail: r }; }, filter: T, groupBy: function(n, t) { if (0 === n.length) return []; for (var e = t(n[0]), r = [], o = [], i = 0, u = n.length; i < u; i++) { var a = n[i], c = t(a); c !== e && (r.push(o), (o = [])), (e = c), o.push(a); } return 0 !== o.length && r.push(o), r; }, indexOf: function(n, t) { var e = y(n, t); return -1 === e ? w.none() : w.some(e); }, foldr: function(n, t, e) { return ( R(n, function(n) { e = t(e, n); }), e ); }, foldl: function(n, t, e) { return ( S(n, function(n) { e = t(e, n); }), e ); }, find: function(n, t) { for (var e = 0, r = n.length; e < r; e++) { var o = n[e]; if (t(o, e, n)) return w.some(o); } return w.none(); }, findIndex: D, flatten: N, bind: function(n, t) { var e = C(n, t); return N(e); }, forall: O, exists: function(n, t) { return D(n, t).isSome(); }, contains: x, equal: function(n, t) { return ( n.length === t.length && O(n, function(n, e) { return n === t[e]; }) ); }, reverse: function(n) { var t = E.call(n, 0); return t.reverse(), t; }, chunk: function(n, t) { for (var e = [], r = 0; r < n.length; r += t) { var o = n.slice(r, r + t); e.push(o); } return e; }, difference: function(n, t) { return T(n, function(n) { return !x(t, n); }); }, mapToObject: function(n, t) { for (var e = {}, r = 0, o = n.length; r < o; r++) { var i = n[r]; e[String(i)] = t(i, r); } return e; }, pure: function(n) { return [n]; }, sort: function(n, t) { var e = E.call(n, 0); return e.sort(t), e; }, range: function(n, t) { for (var e = [], r = 0; r < n; r++) e.push(t(r)); return e; }, head: function(n) { return 0 === n.length ? w.none() : w.some(n[0]); }, last: function(n) { return 0 === n.length ? w.none() : w.some(n[n.length - 1]); } }, I = (i = Object.keys) === undefined ? function(n) { var t = []; for (var e in n) n.hasOwnProperty(e) && t.push(e); return t; } : i, P = function(n, t) { for (var e = I(n), r = 0, o = e.length; r < o; r++) { var i = e[r]; t(n[i], i, n); } }, W = function(n, t) { var e = {}; return ( P(n, function(r, o) { var i = t(r, o, n); e[i.k] = i.v; }), e ); }, _ = function(n, t) { var e = []; return ( P(n, function(n, r) { e.push(t(n, r)); }), e ); }, M = function(n) { return _(n, function(n) { return n; }); }, L = { bifilter: function(n, t) { var e = {}, r = {}; return ( P(n, function(n, o) { (t(n, o) ? e : r)[o] = n; }), { t: e, f: r } ); }, each: P, map: function(n, t) { return W(n, function(n, e, r) { return { k: e, v: t(n, e, r) }; }); }, mapToArray: _, tupleMap: W, find: function(n, t) { for (var e = I(n), r = 0, o = e.length; r < o; r++) { var i = e[r], u = n[i]; if (t(u, i, n)) return w.some(u); } return w.none(); }, keys: I, values: M, size: function(n) { return M(n).length; } }, q = function(n) { return function(t) { return ( (function(n) { if (null === n) return "null"; var t = typeof n; return "object" === t && Array.prototype.isPrototypeOf(n) ? "array" : "object" === t && String.prototype.isPrototypeOf(n) ? "string" : t; })(t) === n ); }; }, z = { isString: q("string"), isObject: q("object"), isArray: q("array"), isNull: q("null"), isBoolean: q("boolean"), isUndefined: q("undefined"), isFunction: q("function"), isNumber: q("number") }, F = function(n) { return n.slice(0).sort(); }, j = function(n, t) { throw new Error( "All required keys (" + F(n).join(", ") + ") were not specified. Specified keys were: " + F(t).join(", ") + "." ); }, H = function(n) { throw new Error("Unsupported keys for object: " + F(n).join(", ")); }, V = function(n, t) { if (!z.isArray(t)) throw new Error( "The " + n + " fields must be an array. Was: " + t + "." ); B.each(t, function(t) { if (!z.isString(t)) throw new Error( "The value " + t + " in the " + n + " fields was not a string." ); }); }, U = function(n, t) { throw new Error( "All values need to be of type: " + t + ". Keys (" + F(n).join(", ") + ") were not." ); }, G = function(n) { var t = F(n); B.find(t, function(n, e) { return e < t.length - 1 && n === t[e + 1]; }).each(function(n) { throw new Error( "The field: " + n + " occurs more than once in the combined fields: [" + t.join(", ") + "]." ); }); }, X = { immutable: function() { var n = arguments; return function() { for (var t = new Array(arguments.length), e = 0; e < t.length; e++) t[e] = arguments[e]; if (n.length !== t.length) throw new Error( 'Wrong number of arguments to struct. Expected "[' + n.length + ']", got ' + t.length + " arguments" ); var r = {}; return ( B.each(n, function(n, e) { r[n] = m.constant(t[e]); }), r ); }; }, immutableBag: function(n, t) { var e = n.concat(t); if (0 === e.length) throw new Error( "You must specify at least one required or optional field." ); return ( V("required", n), V("optional", t), G(e), function(r) { var o = L.keys(r); B.forall(n, function(n) { return B.contains(o, n); }) || j(n, o); var i = B.filter(o, function(n) { return !B.contains(e, n); }); i.length > 0 && H(i); var u = {}; return ( B.each(n, function(n) { u[n] = m.constant(r[n]); }), B.each(t, function(n) { u[n] = m.constant( Object.prototype.hasOwnProperty.call(r, n) ? w.some(r[n]) : w.none() ); }), u ); } ); } }, Y = X.immutable("width", "height"), $ = X.immutable("rows", "columns"), K = X.immutable("row", "column"), J = X.immutable("x", "y"), Q = X.immutable("element", "rowspan", "colspan"), Z = X.immutable("element", "rowspan", "colspan", "isNew"), nn = { dimensions: Y, grid: $, address: K, coords: J, extended: X.immutable("element", "rowspan", "colspan", "row", "column"), detail: Q, detailnew: Z, rowdata: X.immutable("element", "cells", "section"), elementnew: X.immutable("element", "isNew"), rowdatanew: X.immutable("element", "cells", "section", "isNew"), rowcells: X.immutable("cells", "section"), rowdetails: X.immutable("details", "section"), bounds: X.immutable("startRow", "startCol", "finishRow", "finishCol") }, tn = function(n) { if (null === n || n === undefined) throw new Error("Node cannot be null or undefined"); return { dom: m.constant(n) }; }, en = { fromHtml: function(n, t) { var e = (t || document).createElement("div"); if (((e.innerHTML = n), !e.hasChildNodes() || e.childNodes.length > 1)) throw (console.error("HTML does not have a single root node", n), "HTML must have a single root node"); return tn(e.childNodes[0]); }, fromTag: function(n, t) { var e = (t || document).createElement(n); return tn(e); }, fromText: function(n, t) { var e = (t || document).createTextNode(n); return tn(e); }, fromDom: tn, fromPoint: function(n, t, e) { return w.from(n.dom().elementFromPoint(t, e)).map(tn); } }, rn = 8, on = 9, un = 1, an = 3, cn = un, ln = on, sn = function(n) { return ( (n.nodeType !== cn && n.nodeType !== ln) || 0 === n.childElementCount ); }, fn = { all: function(n, t) { var e = t === undefined ? document : t.dom(); return sn(e) ? [] : B.map(e.querySelectorAll(n), en.fromDom); }, is: function(n, t) { var e = n.dom(); if (e.nodeType !== cn) return !1; if (e.matches !== undefined) return e.matches(t); if (e.msMatchesSelector !== undefined) return e.msMatchesSelector(t); if (e.webkitMatchesSelector !== undefined) return e.webkitMatchesSelector(t); if (e.mozMatchesSelector !== undefined) return e.mozMatchesSelector(t); throw new Error("Browser lacks native selectors"); }, one: function(n, t) { var e = t === undefined ? document : t.dom(); return sn(e) ? w.none() : w.from(e.querySelector(n)).map(en.fromDom); } }, dn = function(n, t) { var e = [], r = function(n) { return e.push(n), t(n); }, o = t(n); do { o = o.bind(r); } while (o.isSome()); return e; }, mn = "undefined" != typeof window ? window : Function("return this;")(), gn = function(n, t) { for ( var e = t !== undefined && null !== t ? t : mn, r = 0; r < n.length && e !== undefined && null !== e; ++r ) e = e[n[r]]; return e; }, pn = function(n, t) { var e = n.split("."); return gn(e, t); }, hn = function(n, t) { var e = pn(n, t); if (e === undefined || null === e) throw n + " not available on this browser"; return e; }, vn = function() { return hn("Node"); }, bn = function(n, t, e) { return 0 != (n.compareDocumentPosition(t) & e); }, wn = function(n, t) { return bn(n, t, vn().DOCUMENT_POSITION_CONTAINED_BY); }, yn = function(n) { var t, e = !1; return function() { return e || ((e = !0), (t = n.apply(null, arguments))), t; }; }, xn = function(n, t) { var e = (function(n, t) { for (var e = 0; e < n.length; e++) { var r = n[e]; if (r.test(t)) return r; } return undefined; })(n, t); if (!e) return { major: 0, minor: 0 }; var r = function(n) { return Number(t.replace(e, "$" + n)); }; return Sn(r(1), r(2)); }, Cn = function() { return Sn(0, 0); }, Sn = function(n, t) { return { major: n, minor: t }; }, Rn = { nu: Sn, detect: function(n, t) { var e = String(t).toLowerCase(); return 0 === n.length ? Cn() : xn(n, e); }, unknown: Cn }, Tn = "Firefox", Dn = function(n, t) { return function() { return t === n; }; }, An = function(n) { var t = n.current; return { current: t, version: n.version, isEdge: Dn("Edge", t), isChrome: Dn("Chrome", t), isIE: Dn("IE", t), isOpera: Dn("Opera", t), isFirefox: Dn(Tn, t), isSafari: Dn("Safari", t) }; }, kn = { unknown: function() { return An({ current: undefined, version: Rn.unknown() }); }, nu: An, edge: m.constant("Edge"), chrome: m.constant("Chrome"), ie: m.constant("IE"), opera: m.constant("Opera"), firefox: m.constant(Tn), safari: m.constant("Safari") }, Nn = "Windows", On = "Android", En = "Solaris", Bn = "FreeBSD", In = function(n, t) { return function() { return t === n; }; }, Pn = function(n) { var t = n.current; return { current: t, version: n.version, isWindows: In(Nn, t), isiOS: In("iOS", t), isAndroid: In(On, t), isOSX: In("OSX", t), isLinux: In("Linux", t), isSolaris: In(En, t), isFreeBSD: In(Bn, t) }; }, Wn = { unknown: function() { return Pn({ current: undefined, version: Rn.unknown() }); }, nu: Pn, windows: m.constant(Nn), ios: m.constant("iOS"), android: m.constant(On), linux: m.constant("Linux"), osx: m.constant("OSX"), solaris: m.constant(En), freebsd: m.constant(Bn) }, _n = function(n, t) { var e = String(t).toLowerCase(); return B.find(n, function(n) { return n.search(e); }); }, Mn = function(n, t) { return _n(n, t).map(function(n) { var e = Rn.detect(n.versionRegexes, t); return { current: n.name, version: e }; }); }, Ln = function(n, t) { return _n(n, t).map(function(n) { var e = Rn.detect(n.versionRegexes, t); return { current: n.name, version: e }; }); }, qn = function(n, t) { return t + n; }, zn = function(n, t) { return n + t; }, Fn = function(n, t) { return n.substring(t); }, jn = function(n, t) { return n.substring(0, n.length - t); }, Hn = function(n) { return "" === n ? w.none() : w.some(n.substr(0, 1)); }, Vn = function(n) { return "" === n ? w.none() : w.some(n.substring(1)); }, Un = function(n, t, e) { return ( "" === t || (!(n.length < t.length) && n.substr(e, e + t.length) === t) ); }, Gn = function(n, t) { return Un(n, t, 0); }, Xn = function(n, t) { return Un(n, t, n.length - t.length); }, Yn = { supplant: function(n, t) { return n.replace(/\${([^{}]*)}/g, function(n, e) { var r, o = t[e]; return "string" == (r = typeof o) || "number" === r ? o : n; }); }, startsWith: Gn, removeLeading: function(n, t) { return Gn(n, t) ? Fn(n, t.length) : n; }, removeTrailing: function(n, t) { return Xn(n, t) ? jn(n, t.length) : n; }, ensureLeading: function(n, t) { return Gn(n, t) ? n : qn(n, t); }, ensureTrailing: function(n, t) { return Xn(n, t) ? n : zn(n, t); }, endsWith: Xn, contains: function(n, t) { return -1 !== n.indexOf(t); }, trim: function(n) { return n.replace(/^\s+|\s+$/g, ""); }, lTrim: function(n) { return n.replace(/^\s+/g, ""); }, rTrim: function(n) { return n.replace(/\s+$/g, ""); }, capitalize: function(n) { return Hn(n) .bind(function(t) { return Vn(n).map(function(n) { return t.toUpperCase() + n; }); }) .getOr(n); } }, $n = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, Kn = function(n) { return function(t) { return Yn.contains(t, n); }; }, Jn = [ { name: "Edge", versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: function(n) { return ( Yn.contains(n, "edge/") && Yn.contains(n, "chrome") && Yn.contains(n, "safari") && Yn.contains(n, "applewebkit") ); } }, { name: "Chrome", versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, $n], search: function(n) { return Yn.contains(n, "chrome") && !Yn.contains(n, "chromeframe"); } }, { name: "IE", versionRegexes: [ /.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/ ], search: function(n) { return Yn.contains(n, "msie") || Yn.contains(n, "trident"); } }, { name: "Opera", versionRegexes: [$n, /.*?opera\/([0-9]+)\.([0-9]+).*/], search: Kn("opera") }, { name: "Firefox", versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], search: Kn("firefox") }, { name: "Safari", versionRegexes: [$n, /.*?cpu os ([0-9]+)_([0-9]+).*/], search: function(n) { return ( (Yn.contains(n, "safari") || Yn.contains(n, "mobile/")) && Yn.contains(n, "applewebkit") ); } } ], Qn = [ { name: "Windows", search: Kn("win"), versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] }, { name: "iOS", search: function(n) { return Yn.contains(n, "iphone") || Yn.contains(n, "ipad"); }, versionRegexes: [ /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/ ] }, { name: "Android", search: Kn("android"), versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] }, { name: "OSX", search: Kn("os x"), versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/] }, { name: "Linux", search: Kn("linux"), versionRegexes: [] }, { name: "Solaris", search: Kn("sunos"), versionRegexes: [] }, { name: "FreeBSD", search: Kn("freebsd"), versionRegexes: [] } ], Zn = { browsers: m.constant(Jn), oses: m.constant(Qn) }, nt = function(n) { var t, e, r, o, i, u, a, c, l, s, f, d = Zn.browsers(), g = Zn.oses(), p = Mn(d, n).fold(kn.unknown, kn.nu), h = Ln(g, n).fold(Wn.unknown, Wn.nu); return { browser: p, os: h, deviceType: ((e = p), (r = n), (o = (t = h).isiOS() && !0 === /ipad/i.test(r)), (i = t.isiOS() && !o), (u = t.isAndroid() && 3 === t.version.major), (a = t.isAndroid() && 4 === t.version.major), (c = o || u || (a && !0 === /mobile/i.test(r))), (l = t.isiOS() || t.isAndroid()), (s = l && !c), (f = e.isSafari() && t.isiOS() && !1 === /safari/i.test(r)), { isiPad: m.constant(o), isiPhone: m.constant(i), isTablet: m.constant(c), isPhone: m.constant(s), isTouch: m.constant(l), isAndroid: t.isAndroid, isiOS: t.isiOS, isWebView: m.constant(f) }) }; }, tt = { detect: yn(function() { var n = navigator.userAgent; return nt(n); }) }, et = function(n, t) { return n.dom() === t.dom(); }, rt = tt.detect().browser.isIE() ? function(n, t) { return wn(n.dom(), t.dom()); } : function(n, t) { var e = n.dom(), r = t.dom(); return e !== r && e.contains(r); }, ot = { eq: et, isEqualNode: function(n, t) { return n.dom().isEqualNode(t.dom()); }, member: function(n, t) { return B.exists(t, m.curry(et, n)); }, contains: rt, is: fn.is }, it = function(n) { return en.fromDom(n.dom().ownerDocument); }, ut = function(n) { var t = n.dom(); return w.from(t.parentNode).map(en.fromDom); }, at = function(n) { var t = n.dom(); return w.from(t.previousSibling).map(en.fromDom); }, ct = function(n) { var t = n.dom(); return w.from(t.nextSibling).map(en.fromDom); }, lt = function(n) { var t = n.dom(); return B.map(t.childNodes, en.fromDom); }, st = function(n, t) { var e = n.dom().childNodes; return w.from(e[t]).map(en.fromDom); }, ft = X.immutable("element", "offset"), dt = { owner: it, defaultView: function(n) { var t = n.dom().ownerDocument.defaultView; return en.fromDom(t); }, documentElement: function(n) { var t = it(n); return en.fromDom(t.dom().documentElement); }, parent: ut, findIndex: function(n) { return ut(n).bind(function(t) { var e = lt(t); return B.findIndex(e, function(t) { return ot.eq(n, t); }); }); }, parents: function(n, t) { for ( var e = z.isFunction(t) ? t : m.constant(!1), r = n.dom(), o = []; null !== r.parentNode && r.parentNode !== undefined; ) { var i = r.parentNode, u = en.fromDom(i); if ((o.push(u), !0 === e(u))) break; r = i; } return o; }, siblings: function(n) { return ut(n) .map(lt) .map(function(t) { return B.filter(t, function(t) { return !ot.eq(n, t); }); }) .getOr([]); }, prevSibling: at, offsetParent: function(n) { var t = n.dom(); return w.from(t.offsetParent).map(en.fromDom); }, prevSiblings: function(n) { return B.reverse(dn(n, at)); }, nextSibling: ct, nextSiblings: function(n) { return dn(n, ct); }, children: lt, child: st, firstChild: function(n) { return st(n, 0); }, lastChild: function(n) { return st(n, n.dom().childNodes.length - 1); }, childNodesCount: function(n) { return n.dom().childNodes.length; }, hasChildNodes: function(n) { return n.dom().hasChildNodes(); }, leaf: function(n, t) { var e = lt(n); return e.length > 0 && t < e.length ? ft(e[t], 0) : ft(n, t); } }, mt = function(n, t, e) { return B.bind(dt.children(n), function(n) { return fn.is(n, t) ? (e(n) ? [n] : []) : mt(n, t, e); }); }, gt = { firstLayer: function(n, t) { return mt(n, t, m.constant(!0)); }, filterFirstLayer: mt }, pt = function(n) { return n.dom().nodeName.toLowerCase(); }, ht = function(n) { return n.dom().nodeType; }, vt = function(n) { return function(t) { return ht(t) === n; }; }, bt = vt(un), wt = vt(an), yt = vt(on), xt = { name: pt, type: ht, value: function(n) { return n.dom().nodeValue; }, isElement: bt, isText: wt, isDocument: yt, isComment: function(n) { return ht(n) === rn || "#comment" === pt(n); } }, Ct = function(n, t, e) { if (!(z.isString(e) || z.isBoolean(e) || z.isNumber(e))) throw (console.error( "Invalid call to Attr.set. Key ", t, ":: Value ", e, ":: Element ", n ), new Error("Attribute value was not simple")); n.setAttribute(t, e + ""); }, St = function(n, t, e) { Ct(n.dom(), t, e); }, Rt = function(n, t) { var e = n.dom().getAttribute(t); return null === e ? undefined : e; }, Tt = function(n, t) { var e = n.dom(); return !(!e || !e.hasAttribute) && e.hasAttribute(t); }, Dt = { clone: function(n) { return B.foldl( n.dom().attributes, function(n, t) { return (n[t.name] = t.value), n; }, {} ); }, set: St, setAll: function(n, t) { var e = n.dom(); L.each(t, function(n, t) { Ct(e, t, n); }); }, get: Rt, has: Tt, remove: function(n, t) { n.dom().removeAttribute(t); }, hasNone: function(n) { var t = n.dom().attributes; return t === undefined || null === t || 0 === t.length; }, transfer: function(n, t, e) { xt.isElement(n) && xt.isElement(t) && B.each(e, function(e) { var r, o, i; (o = t), Tt((r = n), (i = e)) && !Tt(o, i) && St(o, i, Rt(r, i)); }); } }, At = yn(function() { return kt(en.fromDom(document)); }), kt = function(n) { var t = n.dom().body; if (null === t || t === undefined) throw "Body is not available yet"; return en.fromDom(t); }, Nt = { body: At, getBody: kt, inBody: function(n) { var t = xt.isText(n) ? n.dom().parentNode : n.dom(); return ( t !== undefined && null !== t && t.ownerDocument.body.contains(t) ); } }, Ot = function(n, t) { var e = []; return ( B.each(dt.children(n), function(n) { t(n) && (e = e.concat([n])), (e = e.concat(Ot(n, t))); }), e ); }, Et = { all: function(n) { return Ot(Nt.body(), n); }, ancestors: function(n, t, e) { return B.filter(dt.parents(n, e), t); }, siblings: function(n, t) { return B.filter(dt.siblings(n), t); }, children: function(n, t) { return B.filter(dt.children(n), t); }, descendants: Ot }, Bt = { all: function(n) { return fn.all(n); }, ancestors: function(n, t, e) { return Et.ancestors( n, function(n) { return fn.is(n, t); }, e ); }, siblings: function(n, t) { return Et.siblings(n, function(n) { return fn.is(n, t); }); }, children: function(n, t) { return Et.children(n, function(n) { return fn.is(n, t); }); }, descendants: function(n, t) { return fn.all(t, n); } }, It = function(n, t, e, r, o) { return n(e, r) ? w.some(e) : z.isFunction(o) && o(e) ? w.none() : t(e, r, o); }, Pt = function(n, t, e) { for ( var r = n.dom(), o = z.isFunction(e) ? e : m.constant(!1); r.parentNode; ) { r = r.parentNode; var i = en.fromDom(r); if (t(i)) return w.some(i); if (o(i)) break; } return w.none(); }, Wt = function(n, t) { return B.find( n.dom().childNodes, m.compose( t, en.fromDom ) ).map(en.fromDom); }, _t = function(n, t) { var e = function(n) { for (var r = 0; r < n.childNodes.length; r++) { if (t(en.fromDom(n.childNodes[r]))) return w.some(en.fromDom(n.childNodes[r])); var o = e(n.childNodes[r]); if (o.isSome()) return o; } return w.none(); }; return e(n.dom()); }, Mt = { first: function(n) { return _t(Nt.body(), n); }, ancestor: Pt, closest: function(n, t, e) { return It( function(n) { return t(n); }, Pt, n, t, e ); }, sibling: function(n, t) { var e = n.dom(); return e.parentNode ? Wt(en.fromDom(e.parentNode), function(e) { return !ot.eq(n, e) && t(e); }) : w.none(); }, child: Wt, descendant: _t }, Lt = function(n, t, e) { return Mt.ancestor( n, function(n) { return fn.is(n, t); }, e ); }, qt = { first: function(n) { return fn.one(n); }, ancestor: Lt, sibling: function(n, t) { return Mt.sibling(n, function(n) { return fn.is(n, t); }); }, child: function(n, t) { return Mt.child(n, function(n) { return fn.is(n, t); }); }, descendant: function(n, t) { return fn.one(t, n); }, closest: function(n, t, e) { return It(fn.is, Lt, n, t, e); } }, zt = function(n, t, e) { var r = e !== undefined ? e : m.constant(!1); return r(t) ? w.none() : B.contains(n, xt.name(t)) ? w.some(t) : qt.ancestor(t, n.join(","), function(n) { return fn.is(n, "table") || r(n); }); }, Ft = function(n, t) { return dt.parent(t).map(function(t) { return Bt.children(t, n); }); }, jt = function(n, t) { return zt(["td", "th"], n, t); }, Ht = function(n) { return gt.firstLayer(n, "th,td"); }, Vt = (m.curry(Ft, "th,td"), function(n, t) { return qt.closest(n, "table", t); }), Ut = function(n) { return gt.firstLayer(n, "tr"); }, Gt = (m.curry(Ft, "tr"), function(n) { var t = Ut(n); return B.map(t, function(n) { var t = n, e = dt.parent(t).bind(function(n) { var t = xt.name(n); return "tfoot" === t || "thead" === t || "tbody" === t ? t : "tbody"; }), r = B.map(Ht(n), function(n) { var t = Dt.has(n, "rowspan") ? parseInt(Dt.get(n, "rowspan"), 10) : 1, e = Dt.has(n, "colspan") ? parseInt(Dt.get(n, "colspan"), 10) : 1; return nn.detail(n, t, e); }); return nn.rowdata(t, r, e); }); }), Xt = function(n, t) { return B.map(n, function(n) { var e = B.map(Ht(n), function(n) { var t = Dt.has(n, "rowspan") ? parseInt(Dt.get(n, "rowspan"), 10) : 1, e = Dt.has(n, "colspan") ? parseInt(Dt.get(n, "colspan"), 10) : 1; return nn.detail(n, t, e); }); return nn.rowdata(n, e, t.section()); }); }, Yt = function(n, t) { return n + "," + t; }, $t = function(n, t) { var e = B.bind(n.all(), function(n) { return n.cells(); }); return B.filter(e, t); }, Kt = { generate: function(n) { var t = {}, e = [], r = n.length, o = 0; B.each(n, function(n, r) { var i = []; B.each(n.cells(), function(n, e) { for (var u = 0; t[Yt(r, u)] !== undefined; ) u++; for ( var a = nn.extended(n.element(), n.rowspan(), n.colspan(), r, u), c = 0; c < n.colspan(); c++ ) for (var l = 0; l < n.rowspan(); l++) { var s = u + c, f = Yt(r + l, s); (t[f] = a), (o = Math.max(o, s + 1)); } i.push(a); }), e.push(nn.rowdata(n.element(), i, n.section())); }); var i = nn.grid(r, o); return { grid: m.constant(i), access: m.constant(t), all: m.constant(e) }; }, getAt: function(n, t, e) { var r = n.access()[Yt(t, e)]; return r !== undefined ? w.some(r) : w.none(); }, findItem: function(n, t, e) { var r = $t(n, function(n) { return e(t, n.element()); }); return r.length > 0 ? w.some(r[0]) : w.none(); }, filterItems: $t, justCells: function(n) { var t = B.map(n.all(), function(n) { return n.cells(); }); return B.flatten(t); } }, Jt = function(n) { return n.style !== undefined; }, Qt = function(n, t, e) { if (!z.isString(e)) throw (console.error( "Invalid call to CSS.set. Property ", t, ":: Value ", e, ":: Element ", n ), new Error("CSS value must be a string: " + e)); Jt(n) && n.style.setProperty(t, e); }, Zt = function(n, t) { Jt(n) && n.style.removeProperty(t); }, ne = function(n, t, e) { var r = n.dom(); Qt(r, t, e); }, te = function(n, t) { return Jt(n) ? n.style.getPropertyValue(t) : ""; }, ee = function(n, t) { var e = n.dom(), r = te(e, t); return w.from(r).filter(function(n) { return n.length > 0; }); }, re = { copy: function(n, t) { var e = n.dom(), r = t.dom(); Jt(e) && Jt(r) && (r.style.cssText = e.style.cssText); }, set: ne, preserve: function(n, t) { var e = Dt.get(n, "style"), r = t(n); return (e === undefined ? Dt.remove : Dt.set)(n, "style", e), r; }, setAll: function(n, t) { var e = n.dom(); L.each(t, function(n, t) { Qt(e, t, n); }); }, setOptions: function(n, t) { var e = n.dom(); L.each(t, function(n, t) { n.fold( function() { Zt(e, t); }, function(n) { Qt(e, t, n); } ); }); }, remove: function(n, t) { var e = n.dom(); Zt(e, t), Dt.has(n, "style") && "" === Yn.trim(Dt.get(n, "style")) && Dt.remove(n, "style"); }, get: function(n, t) { var e = n.dom(), r = window.getComputedStyle(e).getPropertyValue(t), o = "" !== r || Nt.inBody(n) ? r : te(e, t); return null === o ? undefined : o; }, getRaw: ee, getAllRaw: function(n) { var t = {}, e = n.dom(); if (Jt(e)) for (var r = 0; r < e.style.length; r++) { var o = e.style.item(r); t[o] = e.style[o]; } return t; }, isValidValue: function(n, t, e) { var r = en.fromTag(n); return ne(r, t, e), ee(r, t).isSome(); }, reflow: function(n) { return n.dom().offsetWidth; }, transfer: function(n, t, e) { xt.isElement(n) && xt.isElement(t) && B.each(e, function(e) { var r, o; (r = t), ee(n, (o = e)).each(function(n) { ee(r, o).isNone() && ne(r, o, n); }); }); } }, oe = function(n, t) { dt.parent(n).each(function(e) { e.dom().insertBefore(t.dom(), n.dom()); }); }, ie = function(n, t) { n.dom().appendChild(t.dom()); }, ue = { before: oe, after: function(n, t) { dt.nextSibling(n).fold( function() { dt.parent(n).each(function(n) { ie(n, t); }); }, function(n) { oe(n, t); } ); }, prepend: function(n, t) { dt.firstChild(n).fold( function() { ie(n, t); }, function(e) { n.dom().insertBefore(t.dom(), e.dom()); } ); }, append: ie, appendAt: function(n, t, e) { dt.child(n, e).fold( function() { ie(n, t); }, function(n) { oe(n, t); } ); }, wrap: function(n, t) { oe(n, t), ie(t, n); } }, ae = { before: function(n, t) { B.each(t, function(t) { ue.before(n, t); }); }, after: function(n, t) { B.each(t, function(e, r) { var o = 0 === r ? n : t[r - 1]; ue.after(o, e); }); }, prepend: function(n, t) { B.each(t.slice().reverse(), function(t) { ue.prepend(n, t); }); }, append: function(n, t) { B.each(t, function(t) { ue.append(n, t); }); } }, ce = function(n) { var t = n.dom(); null !== t.parentNode && t.parentNode.removeChild(t); }, le = { empty: function(n) { (n.dom().textContent = ""), B.each(dt.children(n), function(n) { ce(n); }); }, remove: ce, unwrap: function(n) { var t = dt.children(n); t.length > 0 && ae.before(n, t), ce(n); } }, se = X.immutable("minRow", "minCol", "maxRow", "maxCol"), fe = function(n, t) { var e, r, o, i, u, a, c, l, s, f, d = function(n) { return fn.is(n.element(), t); }, m = Gt(n), g = Kt.generate(m), p = ((r = d), (o = (e = g).grid().columns()), (i = e.grid().rows()), (u = o), (a = 0), (c = 0), L.each(e.access(), function(n) { if (r(n)) { var t = n.row(), e = t + n.rowspan() - 1, o = n.column(), l = o + n.colspan() - 1; t < i ? (i = t) : e > a && (a = e), o < u ? (u = o) : l > c && (c = l); } }), se(i, u, a, c)), h = "th:not(" + t + "),td:not(" + t + ")", v = gt.filterFirstLayer(n, "th,td", function(n) { return fn.is(n, h); }); return ( B.each(v, le.remove), (function(n, t, e, r) { for ( var o, i, u, a = t.grid().columns(), c = t.grid().rows(), l = 0; l < c; l++ ) for (var s = !1, f = 0; f < a; f++) l < e.minRow() || l > e.maxRow() || f < e.minCol() || f > e.maxCol() || (Kt.getAt(t, l, f) .filter(r) .isNone() ? ((o = s), (i = n[l].element()), (u = en.fromTag("td")), ue.append(u, en.fromTag("br")), (o ? ue.append : ue.prepend)(i, u)) : (s = !0)); })(m, g, p, d), (l = n), (s = p), (f = B.filter(gt.firstLayer(l, "tr"), function(n) { return 0 === n.dom().childElementCount; })), B.each(f, le.remove), (s.minCol() !== s.maxCol() && s.minRow() !== s.maxRow()) || B.each(gt.firstLayer(l, "th,td"), function(n) { Dt.remove(n, "rowspan"), Dt.remove(n, "colspan"); }), Dt.remove(l, "width"), Dt.remove(l, "height"), re.remove(l, "width"), re.remove(l, "height"), n ); }, de = function(n, t) { return en.fromDom(n.dom().cloneNode(t)); }, me = function(n) { return de(n, !0); }, ge = function(n, t) { var e = en.fromTag(t), r = Dt.clone(n); return Dt.setAll(e, r), e; }, pe = function(n) { return de(n, !1); }, he = me, ve = function(n, t) { var e = ge(n, t), r = dt.children(me(n)); return ae.append(e, r), e; }, be = ((u = xt.isText), (a = "text"), (c = function(n) { return u(n) ? w.from(n.dom().nodeValue) : w.none(); }), (l = tt.detect().browser), { get: function(n) { if (!u(n)) throw new Error("Can only get " + a + " value of a " + a + " node"); return s(n).getOr(""); }, getOption: (s = l.isIE() && 10 === l.version.major ? function(n) { try { return c(n); } catch (t) { return w.none(); } } : c), set: function(n, t) { if (!u(n)) throw new Error( "Can only set raw " + a + " value of a " + a + " node" ); n.dom().nodeValue = t; } }), we = { get: function(n) { return be.get(n); }, getOption: function(n) { return be.getOption(n); }, set: function(n, t) { be.set(n, t); } }, ye = function(n) { return "img" === xt.name(n) ? 1 : we.getOption(n).fold( function() { return dt.children(n).length; }, function(n) { return n.length; } ); }, xe = ["img", "br"], Ce = ye, Se = function(n) { return ( we .getOption(n) .filter(function(n) { return 0 !== n.trim().length || n.indexOf("\xa0") > -1; }) .isSome() || B.contains(xe, xt.name(n)) ); }, Re = function(n, t) { var e = function(n) { for (var r = dt.children(n), o = r.length - 1; o >= 0; o--) { var i = r[o]; if (t(i)) return w.some(i); var u = e(i); if (u.isSome()) return u; } return w.none(); }; return e(n); }, Te = { first: function(n) { return Mt.descendant(n, Se); }, last: function(n) { return Re(n, Se); } }, De = function() { var n = en.fromTag("td"); return ue.append(n, en.fromTag("br")), n; }, Ae = function(n, t, e) { var r = ve(n, t); return ( L.each(e, function(n, t) { null === n ? Dt.remove(r, t) : Dt.set(r, t, n); }), r ); }, ke = function(n) { return n; }, Ne = function(n) { return function() { return en.fromTag("tr", n.dom()); }; }, Oe = function(n, t, e) { return { row: Ne(t), cell: function(t) { var r, o, i, u = dt.owner(t.element()), a = en.fromTag(xt.name(t.element()), u.dom()), c = e.getOr([ "strong", "em", "b", "i", "span", "font", "h1", "h2", "h3", "h4", "h5", "h6", "p", "div" ]), l = c.length > 0 ? ((r = t.element()), (o = a), (i = c), Te.first(r) .map(function(n) { var t = i.join(","), e = Bt.ancestors(n, t, function(n) { return ot.eq(n, r); }); return B.foldr( e, function(n, t) { var e = pe(t); return ue.append(n, e), e; }, o ); }) .getOr(o)) : a; return ( ue.append(l, en.fromTag("br")), re.copy(t.element(), a), re.remove(a, "height"), 1 !== t.colspan() && re.remove(t.element(), "width"), n(t.element(), a), a ); }, replace: Ae, gap: De }; }, Ee = function(n) { return { row: Ne(n), cell: De, replace: ke, gap: De }; }, Be = function(n, t) { var e = (t || document).createElement("div"); return (e.innerHTML = n), dt.children(en.fromDom(e)); }, Ie = [ "body", "p", "div", "article", "aside", "figcaption", "figure", "footer", "header", "nav", "section", "ol", "ul", "li", "table", "thead", "tbody", "tfoot", "caption", "tr", "td", "th", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "pre", "address" ], Pe = function() { return { up: m.constant({ selector: qt.ancestor, closest: qt.closest, predicate: Mt.ancestor, all: dt.parents }), down: m.constant({ selector: Bt.descendants, predicate: Et.descendants }), styles: m.constant({ get: re.get, getRaw: re.getRaw, set: re.set, remove: re.remove }), attrs: m.constant({ get: Dt.get, set: Dt.set, remove: Dt.remove, copyTo: function(n, t) { var e = Dt.clone(n); Dt.setAll(t, e); } }), insert: m.constant({ before: ue.before, after: ue.after, afterAll: ae.after, append: ue.append, appendAll: ae.append, prepend: ue.prepend, wrap: ue.wrap }), remove: m.constant({ unwrap: le.unwrap, remove: le.remove }), create: m.constant({ nu: en.fromTag, clone: function(n) { return en.fromDom(n.dom().cloneNode(!1)); }, text: en.fromText }), query: m.constant({ comparePosition: function(n, t) { return n.dom().compareDocumentPosition(t.dom()); }, prevSibling: dt.prevSibling, nextSibling: dt.nextSibling }), property: m.constant({ children: dt.children, name: xt.name, parent: dt.parent, isText: xt.isText, isComment: xt.isComment, isElement: xt.isElement, getText: we.get, setText: we.set, isBoundary: function(n) { return ( !!xt.isElement(n) && ("body" === xt.name(n) || B.contains(Ie, xt.name(n))) ); }, isEmptyTag: function(n) { return ( !!xt.isElement(n) && B.contains(["br", "img", "hr", "input"], xt.name(n)) ); } }), eq: ot.eq, is: ot.is }; }, We = (X.immutable("left", "right"), function(n, t, e, r) { var o = t(n, e); return B.foldr( r, function(e, r) { var o = t(n, r); return _e(n, e, o); }, o ); }), _e = function(n, t, e) { return t.bind(function(t) { return e.filter(m.curry(n.eq, t)); }); }, Me = function(n, t, e) { return e.length > 0 ? We(n, t, (r = e)[0], r.slice(1)) : w.none(); var r; }, Le = function(n, t) { return m.curry(n.eq, t); }, qe = function(n, t, e, r) { var o = r !== undefined ? r : m.constant(!1), i = [t].concat(n.up().all(t)), u = [e].concat(n.up().all(e)), a = function(n) { return B.findIndex(n, o).fold( function() { return n; }, function(t) { return n.slice(0, t + 1); } ); }, c = a(i), l = a(u), s = B.find(c, function(t) { return B.exists(l, Le(n, t)); }); return { firstpath: m.constant(c), secondpath: m.constant(l), shared: m.constant(s) }; }, ze = qe, Fe = function(n, t, e) { return Me(n, t, e); }, je = function(n, t, e, r) { return ze(n, t, e, r); }, He = Pe(), Ve = function(n, t) { return Fe( He, function(t, e) { return n(e); }, t ); }, Ue = function(n, t, e) { return je(He, n, t, e); }, Ge = function(n, t) { return ( t.column() >= n.startCol() && t.column() + t.colspan() - 1 <= n.finishCol() && t.row() >= n.startRow() && t.row() + t.rowspan() - 1 <= n.finishRow() ); }, Xe = function(n, t) { var e = t.column(), r = t.column() + t.colspan() - 1, o = t.row(), i = t.row() + t.rowspan() - 1; return ( e <= n.finishCol() && r >= n.startCol() && o <= n.finishRow() && i >= n.startRow() ); }, Ye = function(n, t) { for ( var e = !0, r = m.curry(Ge, t), o = t.startRow(); o <= t.finishRow(); o++ ) for (var i = t.startCol(); i <= t.finishCol(); i++) e = e && Kt.getAt(n, o, i).exists(r); return e ? w.some(t) : w.none(); }, $e = function(n, t, e) { var r = Kt.findItem(n, t, ot.eq), o = Kt.findItem(n, e, ot.eq); return r.bind(function(n) { return o.map(function(t) { return ( (e = n), (r = t), nn.bounds( Math.min(e.row(), r.row()), Math.min(e.column(), r.column()), Math.max(e.row() + e.rowspan() - 1, r.row() + r.rowspan() - 1), Math.max( e.column() + e.colspan() - 1, r.column() + r.colspan() - 1 ) ) ); var e, r; }); }); }, Ke = $e, Je = function(n, t, e) { return $e(n, t, e).bind(function(t) { return Ye(n, t); }); }, Qe = function(n, t, e, r) { return Kt.findItem(n, t, ot.eq).bind(function(t) { var o = e > 0 ? t.row() + t.rowspan() - 1 : t.row(), i = r > 0 ? t.column() + t.colspan() - 1 : t.column(); return Kt.getAt(n, o + e, i + r).map(function(n) { return n.element(); }); }); }, Ze = function(n, t, e) { return Ke(n, t, e).map(function(t) { var e = Kt.filterItems(n, m.curry(Xe, t)); return B.map(e, function(n) { return n.element(); }); }); }, nr = function(n, t) { return Kt.findItem(n, t, function(n, t) { return ot.contains(t, n); }).bind(function(n) { return n.element(); }); }, tr = function(n) { var t = Gt(n); return Kt.generate(t); }, er = function(n, t, e) { return Vt(n).bind(function(r) { var o = tr(r); return Qe(o, n, t, e); }); }, rr = function(n, t, e) { var r = tr(n); return Ze(r, t, e); }, or = function(n, t, e, r, o) { var i = tr(n), u = ot.eq(n, e) ? t : nr(i, t), a = ot.eq(n, o) ? r : nr(i, r); return Ze(i, u, a); }, ir = function(n, t, e) { var r = tr(n); return Je(r, t, e); }, ur = function(n, t) { return qt.ancestor(n, "table"); }, ar = X.immutableBag(["boxes", "start", "finish"], []), cr = function(n, t, e) { var r = function(n) { return function(t) { return e(t) || ot.eq(t, n); }; }; return ot.eq(n, t) ? w.some(ar({ boxes: w.some([n]), start: n, finish: t })) : ur(n).bind(function(o) { return ur(t).bind(function(i) { if (ot.eq(o, i)) return w.some(ar({ boxes: rr(o, n, t), start: n, finish: t })); if (ot.contains(o, i)) { var u = (a = Bt.ancestors(t, "td,th", r(o))).length > 0 ? a[a.length - 1] : t; return w.some( ar({ boxes: or(o, n, o, t, i), start: n, finish: u }) ); } if (ot.contains(i, o)) { var a, c = (a = Bt.ancestors(n, "td,th", r(i))).length > 0 ? a[a.length - 1] : n; return w.some( ar({ boxes: or(i, n, o, t, i), start: n, finish: c }) ); } return Ue(n, t) .shared() .bind(function(u) { return qt.closest(u, "table", e).bind(function(e) { var u = Bt.ancestors(t, "td,th", r(e)), a = u.length > 0 ? u[u.length - 1] : t, c = Bt.ancestors(n, "td,th", r(e)), l = c.length > 0 ? c[c.length - 1] : n; return w.some( ar({ boxes: or(e, n, o, t, i), start: l, finish: a }) ); }); }); }); }); }, lr = cr, sr = function(n, t) { var e = Bt.descendants(n, t); return e.length > 0 ? w.some(e) : w.none(); }, fr = function(n, t, e, r, o) { return ((i = n), (u = o), B.find(i, function(n) { return fn.is(n, u); })).bind(function(n) { return er(n, t, e).bind(function(n) { return ( (e = r), qt.ancestor((t = n), "table").bind(function(n) { return qt.descendant(n, e).bind(function(n) { return cr(n, t).bind(function(n) { return n.boxes().map(function(t) { return { boxes: m.constant(t), start: m.constant(n.start()), finish: m.constant(n.finish()) }; }); }); }); }) ); var t, e; }); }); var i, u; }, dr = function(n, t, e) { return qt.descendant(n, t).bind(function(t) { return qt.descendant(n, e).bind(function(n) { return Ve(ur, [t, n]).map(function(e) { return { first: m.constant(t), last: m.constant(n), table: m.constant(e) }; }); }); }); }, mr = function(n, t) { return sr(n, t); }, gr = function(n, t, e) { return dr(n, t, e).bind(function(t) { var e = function(t) { return ot.eq(n, t); }, r = qt.ancestor(t.first(), "thead,tfoot,tbody,table", e), o = qt.ancestor(t.last(), "thead,tfoot,tbody,table", e); return r.bind(function(n) { return o.bind(function(e) { return ot.eq(n, e) ? ir(t.table(), t.first(), t.last()) : w.none(); }); }); }); }, pr = "data-mce-selected", hr = "data-mce-first-selected", vr = "data-mce-last-selected", br = { selected: m.constant(pr), selectedSelector: m.constant( "td[data-mce-selected],th[data-mce-selected]" ), attributeSelector: m.constant("[data-mce-selected]"), firstSelected: m.constant(hr), firstSelectedSelector: m.constant( "td[data-mce-first-selected],th[data-mce-first-selected]" ), lastSelected: m.constant(vr), lastSelectedSelector: m.constant( "td[data-mce-last-selected],th[data-mce-last-selected]" ) }, wr = function(n) { if (!z.isArray(n)) throw new Error("cases must be an array"); if (0 === n.length) throw new Error("there must be at least one case"); var t = [], e = {}; return ( B.each(n, function(r, o) { var i = L.keys(r); if (1 !== i.length) throw new Error("one and only one name per case"); var u = i[0], a = r[u]; if (e[u] !== undefined) throw new Error("duplicate key detected:" + u); if ("cata" === u) throw new Error("cannot have a case named cata (sorry)"); if (!z.isArray(a)) throw new Error("case arguments must be an array"); t.push(u), (e[u] = function() { var e = arguments.length; if (e !== a.length) throw new Error( "Wrong number of arguments to case " + u + ". Expected " + a.length + " (" + a + "), got " + e ); for (var r = new Array(e), i = 0; i < r.length; i++) r[i] = arguments[i]; return { fold: function() { if (arguments.length !== n.length) throw new Error( "Wrong number of arguments to fold. Expected " + n.length + ", got " + arguments.length ); return arguments[o].apply(null, r); }, match: function(n) { var e = L.keys(n); if (t.length !== e.length) throw new Error( "Wrong number of arguments to match. Expected: " + t.join(",") + "\nActual: " + e.join(",") ); if ( !B.forall(t, function(n) { return B.contains(e, n); }) ) throw new Error( "Not all branches were specified when using match. Specified: " + e.join(", ") + "\nRequired: " + t.join(", ") ); return n[u].apply(null, r); }, log: function(n) { console.log(n, { constructors: t, constructor: u, params: r }); } }; }); }), e ); }, yr = wr([ { none: [] }, { multiple: ["elements"] }, { single: ["selection"] } ]), xr = { cata: function(n, t, e, r) { return n.fold(t, e, r); }, none: yr.none, multiple: yr.multiple, single: yr.single }, Cr = function(n, t) { return xr.cata(t.get(), m.constant([]), m.identity, m.constant([n])); }, Sr = function(n, t) { return xr.cata( t.get(), w.none, function(t, e) { return 0 === t.length ? w.none() : gr(n, br.firstSelectedSelector(), br.lastSelectedSelector()).bind( function(n) { return t.length > 1 ? w.some({ bounds: m.constant(n), cells: m.constant(t) }) : w.none(); } ); }, w.none ); }, Rr = function(n, t) { var e = Cr(n, t); return e.length > 0 && B.forall(e, function(n) { return ( (Dt.has(n, "rowspan") && parseInt(Dt.get(n, "rowspan"), 10) > 1) || (Dt.has(n, "colspan") && parseInt(Dt.get(n, "colspan"), 10) > 1) ); }) ? w.some(e) : w.none(); }, Tr = Cr, Dr = function(n) { return { element: m.constant(n), mergable: w.none, unmergable: w.none, selection: m.constant([n]) }; }, Ar = X.immutable("element", "clipboard", "generators"), kr = { noMenu: Dr, forMenu: function(n, t, e) { return { element: m.constant(e), mergable: m.constant(Sr(t, n)), unmergable: m.constant(Rr(e, n)), selection: m.constant(Tr(e, n)) }; }, notCell: function(n) { return Dr(n); }, paste: Ar, pasteRows: function(n, t, e, r, o) { return { element: m.constant(e), mergable: w.none, unmergable: w.none, selection: m.constant(Tr(e, n)), clipboard: m.constant(r), generators: m.constant(o) }; } }, Nr = { registerEvents: function(n, t, e, r) { n.on("BeforeGetContent", function(e) { !0 === e.selection && xr.cata( t.get(), m.noop, function(t) { var r; e.preventDefault(), ((r = t), Vt(r[0]) .map(he) .map(function(n) { return [fe(n, br.attributeSelector())]; })).each(function(t) { e.content = B.map(t, function(t) { return ( (e = t), n.selection.serializer.serialize(e.dom(), {}) ); var e; }).join(""); }); }, m.noop ); }), n.on("BeforeSetContent", function(t) { !0 === t.selection && !0 === t.paste && w .from(n.dom.getParent(n.selection.getStart(), "th,td")) .each(function(o) { var i = en.fromDom(o); Vt(i).bind(function(o) { var u = B.filter(Be(t.content), function(n) { return "meta" !== xt.name(n); }); if (1 === u.length && "table" === xt.name(u[0])) { t.preventDefault(); var a = en.fromDom(n.getDoc()), c = Ee(a), l = kr.paste(i, u[0], c); e.pasteCells(o, l).each(function(t) { n.selection.setRng(t), n.focus(), r.clear(o); }); } }); }); }); } }, Or = { render: function(n, t, e, r) { var o = en.fromTag("table"); re.setAll(o, { "border-collapse": "collapse", width: "100%" }), Dt.set(o, "border", "1"); var i = en.fromTag("tbody"); ue.append(o, i); for (var u = [], a = 0; a < n; a++) { for (var c = en.fromTag("tr"), l = 0; l < t; l++) { var s = a < e || l < r ? en.fromTag("th") : en.fromTag("td"); l < r && Dt.set(s, "scope", "row"), a < e && Dt.set(s, "scope", "col"), ue.append(s, en.fromTag("br")), re.set(s, "width", 100 / t + "%"), ue.append(c, s); } u.push(c); } return ae.append(i, u), o; } }, Er = function(n) { return n.dom().innerHTML; }, Br = function(n) { var t = en.fromTag("div"), e = en.fromDom(n.dom().cloneNode(!0)); return ue.append(t, e), Er(t); }, Ir = function(n, t) { n.selection.select(t.dom(), !0), n.selection.collapse(!0); }, Pr = { insert: function(n, t, e) { var r, o = Or.render(e, t, 0, 0); Dt.set(o, "id", "__mce"); var i, u, a = Br(o); return ( n.insertContent(a), (r = n.dom.get("__mce")), n.dom.setAttrib(r, "id", null), n.$("tr", r).each(function(t, e) { n.fire("newrow", { node: e }), n.$("th,td", e).each(function(t, e) { n.fire("newcell", { node: e }); }); }), n.dom.setAttribs(r, n.settings.table_default_attributes || {}), n.dom.setStyles(r, n.settings.table_default_styles || {}), (i = n), (u = en.fromDom(r)), qt.descendant(u, "td,th").each(m.curry(Ir, i)), r ); } }, Wr = function(n, t) { var e = function(e) { var r = t(e); if (r <= 0 || null === r) { var o = re.get(e, n); return parseFloat(o) || 0; } return r; }, r = function(n, t) { return B.foldl( t, function(t, e) { var r = re.get(n, e), o = r === undefined ? 0 : parseInt(r, 10); return isNaN(o) ? t : t + o; }, 0 ); }; return { set: function(t, e) { if (!z.isNumber(e) && !e.match(/^[0-9]+$/)) throw n + ".set accepts only positive integer values. Value was " + e; var r = t.dom(); Jt(r) && (r.style[n] = e + "px"); }, get: e, getOuter: e, aggregate: r, max: function(n, t, e) { var o = r(n, e); return t > o ? t - o : 0; } }; }, _r = Wr("height", function(n) { return Nt.inBody(n) ? n.dom().getBoundingClientRect().height : n.dom().offsetHeight; }), Mr = function(n) { return _r.get(n); }, Lr = function(n) { return _r.getOuter(n); }, qr = Wr("width", function(n) { return n.dom().offsetWidth; }), zr = function(n) { return qr.get(n); }, Fr = function(n) { return qr.getOuter(n); }, jr = tt.detect(), Hr = function(n, t, e) { return (r = re.get(n, t)), (o = e), (i = parseFloat(r)), isNaN(i) ? o : i; var r, o, i; }, Vr = function(n) { return jr.browser.isIE() || jr.browser.isEdge() ? ((e = Hr((t = n), "padding-top", 0)), (r = Hr(t, "padding-bottom", 0)), (o = Hr(t, "border-top-width", 0)), (i = Hr(t, "border-bottom-width", 0)), (u = t.dom().getBoundingClientRect().height), "border-box" === re.get(t, "box-sizing") ? u : u - e - r - (o + i)) : Hr(n, "height", Mr(n)); var t, e, r, o, i, u; }, Ur = /(\d+(\.\d+)?)(\w|%)*/, Gr = /(\d+(\.\d+)?)%/, Xr = /(\d+(\.\d+)?)px|em/, Yr = function(n, t) { re.set(n, "height", t + "px"); }, $r = function(n, t, e, r) { var o, i, u, a, c, l = parseInt(n, 10); return Yn.endsWith(n, "%") && "table" !== xt.name(t) ? ((i = l), (u = e), (a = r), (c = Vt((o = t)) .map(function(n) { var t = u(n); return Math.floor((i / 100) * t); }) .getOr(i)), a(o, c), c) : l; }, Kr = function(n) { var t, e = re.getRaw((t = n), "height").getOrThunk(function() { return Vr(t) + "px"; }); return e ? $r(e, n, Mr, Yr) : Mr(n); }, Jr = function(n, t) { return Dt.has(n, t) ? parseInt(Dt.get(n, t), 10) : 1; }, Qr = function(n) { return re.getRaw(n, "width").fold( function() { return w.from(Dt.get(n, "width")); }, function(n) { return w.some(n); } ); }, Zr = function(n, t) { return (n / t.pixelWidth()) * 100; }, no = { percentageBasedSizeRegex: m.constant(Gr), pixelBasedSizeRegex: m.constant(Xr), setPixelWidth: function(n, t) { re.set(n, "width", t + "px"); }, setPercentageWidth: function(n, t) { re.set(n, "width", t + "%"); }, setHeight: Yr, getPixelWidth: function(n, t) { return Qr(n).fold( function() { var t = zr(n); return parseInt(t, 10); }, function(e) { return (function(n, t, e) { if (Xr.test(t)) { var r = Xr.exec(t); return parseInt(r[1], 10); } if (Gr.test(t)) { var o = Gr.exec(t), i = parseFloat(o[1]); return (i / 100) * e.pixelWidth(); } var u = zr(n); return parseInt(u, 10); })(n, e, t); } ); }, getPercentageWidth: function(n, t) { return Qr(n).fold( function() { var e = zr(n), r = parseInt(e, 10); return Zr(r, t); }, function(e) { return (function(n, t, e) { if (Gr.test(t)) { var r = Gr.exec(t); return parseFloat(r[1]); } var o = zr(n), i = parseInt(o, 10); return Zr(i, e); })(n, e, t); } ); }, getGenericWidth: function(n) { return Qr(n).bind(function(n) { if (Ur.test(n)) { var t = Ur.exec(n); return w.some({ width: m.constant(t[1]), unit: m.constant(t[3]) }); } return w.none(); }); }, setGenericWidth: function(n, t, e) { re.set(n, "width", t + e); }, getHeight: function(n) { return (e = "rowspan"), Kr((t = n)) / Jr(t, e); var t, e; }, getRawWidth: Qr }, to = function(n, t) { no.getGenericWidth(n).each(function(e) { var r = e.width() / 2; no.setGenericWidth(n, r, e.unit()), no.setGenericWidth(t, r, e.unit()); }); }, eo = function(n, t) { var e = t || en.fromDom(document.documentElement); return Mt.ancestor(n, m.curry(ot.eq, e)).isSome(); }, ro = function(n) { var t = n.dom(); return t === t.window ? n : xt.isDocument(n) ? t.defaultView || t.parentWindow : null; }, oo = function(n, t) { return { left: m.constant(n), top: m.constant(t), translate: function(e, r) { return oo(n + e, t + r); } }; }, io = function(n, t) { return n !== undefined ? n : t !== undefined ? t : 0; }, uo = function(n) { var t, e = n.dom(), r = e.ownerDocument, o = r.body, i = en.fromDom(r.documentElement); return o === e ? oo(o.offsetLeft, o.offsetTop) : eo(n, i) ? ((t = e.getBoundingClientRect()), oo(t.left, t.top)) : oo(0, 0); }, ao = function(n) { var t = n.dom().ownerDocument, e = t.body, r = ro(en.fromDom(t)), o = t.documentElement, i = io(r.pageYOffset, o.scrollTop), u = io(r.pageXOffset, o.scrollLeft), a = io(o.clientTop, e.clientTop), c = io(o.clientLeft, e.clientLeft); return uo(n).translate(u - c, i - a); }, co = X.immutable("row", "y"), lo = X.immutable("col", "x"), so = function(n) { return ao(n).left() + Fr(n); }, fo = function(n) { return ao(n).left(); }, mo = function(n, t) { return lo(n, fo(t)); }, go = function(n, t) { return lo(n, so(t)); }, po = function(n) { return ao(n).top(); }, ho = function(n, t, e) { if (0 === e.length) return []; var r = B.map(e.slice(1), function(t, e) { return t.map(function(t) { return n(e, t); }); }), o = e[e.length - 1].map(function(n) { return t(e.length - 1, n); }); return r.concat([o]); }, vo = { delta: m.identity, positions: m.curry( ho, function(n, t) { return co(n, po(t)); }, function(n, t) { return co(n, po(t) + Lr(t)); } ), edge: po }, bo = { delta: m.identity, edge: fo, positions: m.curry(ho, mo, go) }, wo = { height: vo, rtl: { delta: function(n, t) { return -n; }, edge: so, positions: m.curry(ho, go, mo) }, ltr: bo }, yo = { ltr: wo.ltr, rtl: wo.rtl }, xo = function(n) { var t = function(t) { return n(t).isRtl() ? yo.rtl : yo.ltr; }; return { delta: function(n, e) { return t(e).delta(n, e); }, edge: function(n) { return t(n).edge(n); }, positions: function(n, e) { return t(e).positions(n, e); } }; }, Co = function(n) { var t = Gt(n); return Kt.generate(t).grid(); }, So = function(n) { var t = n, e = function() { return t; }; return { get: e, set: function(n) { t = n; }, clone: function() { return So(e()); } }; }, Ro = function(n, t) { return To(n, t, { validate: z.isFunction, label: "function" }); }, To = function(n, t, e) { if (0 === t.length) throw new Error("You must specify at least one required field."); return ( V("required", t), G(t), function(r) { var o = L.keys(r); B.forall(t, function(n) { return B.contains(o, n); }) || j(t, o), n(t, o); var i = B.filter(t, function(n) { return !e.validate(r[n], n); }); return i.length > 0 && U(i, e.label), r; } ); }, Do = m.noop, Ao = { exactly: m.curry(Ro, function(n, t) { var e = B.filter(t, function(t) { return !B.contains(n, t); }); e.length > 0 && H(e); }), ensure: m.curry(Ro, Do), ensureWith: m.curry(To, Do) }, ko = function(n) { var t = Dt.has(n, "colspan") ? parseInt(Dt.get(n, "colspan"), 10) : 1, e = Dt.has(n, "rowspan") ? parseInt(Dt.get(n, "rowspan"), 10) : 1; return { element: m.constant(n), colspan: m.constant(t), rowspan: m.constant(e) }; }, No = Ao.exactly(["cell", "row", "replace", "gap"]), Oo = function(n, t) { No(n); var e = So(w.none()), r = t !== undefined ? t : ko, o = function(t) { var e, o = r(t); return (e = o), n.cell(e); }, i = function(n) { var t = o(n); return ( e.get().isNone() && e.set(w.some(t)), (u = w.some({ item: n, replacement: t })), t ); }, u = w.none(); return { getOrInit: function(n, t) { return u.fold( function() { return i(n); }, function(e) { return t(n, e.item) ? e.replacement : i(n); } ); }, cursor: e.get }; }, Eo = function(n, t) { return function(e) { var r = So(w.none()); No(e); var o = [], i = function(i) { var u = e.replace(i, t, { scope: n }); return ( o.push({ item: i, sub: u }), r.get().isNone() && r.set(w.some(u)), u ); }; return { replaceOrInit: function(n, t) { return ((e = n), (r = t), B.find(o, function(n) { return r(n.item, e); })).fold( function() { return i(n); }, function(e) { return t(n, e.item) ? e.sub : i(n); } ); var e, r; }, cursor: r.get }; }; }, Bo = function(n) { No(n); var t = So(w.none()); return { combine: function(e) { return ( t.get().isNone() && t.set(w.some(e)), function() { var t = n.cell({ element: m.constant(e), colspan: m.constant(1), rowspan: m.constant(1) }); return re.remove(t, "width"), re.remove(e, "width"), t; } ); }, cursor: t.get }; }, Io = [ "body", "p", "div", "article", "aside", "figcaption", "figure", "footer", "header", "nav", "section", "ol", "ul", "table", "thead", "tfoot", "tbody", "caption", "tr", "td", "th", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "pre", "address" ], Po = function(n, t) { var e = n.property().name(t); return B.contains(Io, e); }, Wo = function(n, t) { return B.contains(["br", "img", "hr", "input"], n.property().name(t)); }, _o = Po, Mo = function(n, t) { var e = n.property().name(t); return B.contains(["ol", "ul"], e); }, Lo = Wo, qo = Pe(), zo = function(n) { return _o(qo, n); }, Fo = function(n) { return Mo(qo, n); }, jo = function(n) { return Lo(qo, n); }, Ho = function(n) { var t, e = function(n) { return "br" === xt.name(n); }, r = function(n) { return Te.last(n) .bind(function(t) { var r, o = ((r = t), dt .nextSibling(r) .map(function(n) { return !!zo(n) || (jo(n) ? "img" !== xt.name(n) : void 0); }) .getOr(!1)); return dt.parent(t).map(function(r) { return !0 === o || ((i = r), "li" === xt.name(i) || Mt.ancestor(i, Fo).isSome()) || e(t) || (zo(r) && !ot.eq(n, r)) ? [] : [en.fromTag("br")]; var i; }); }) .getOr([]); }, o = 0 === (t = B.bind(n, function(n) { var t, o = dt.children(n); return ( (t = o), B.forall(t, function(n) { return e(n) || (xt.isText(n) && 0 === we.get(n).trim().length); }) ? [] : o.concat(r(n)) ); })).length ? [en.fromTag("br")] : t; le.empty(n[0]), ae.append(n[0], o); }, Vo = function(n) { return function() { for (var t = new Array(arguments.length), e = 0; e < t.length; e++) t[e] = arguments[e]; if (0 === t.length) throw new Error("Can't merge zero objects"); for (var r = {}, o = 0; o < t.length; o++) { var i = t[o]; for (var u in i) i.hasOwnProperty(u) && (r[u] = n(r[u], i[u])); } return r; }; }, Uo = Vo(function(n, t) { return z.isObject(n) && z.isObject(t) ? Uo(n, t) : t; }), Go = Vo(function(n, t) { return t; }), Xo = { deepMerge: Uo, merge: Go }, Yo = function(n) { for ( var t = [], e = function(n) { t.push(n); }, r = 0; r < n.length; r++ ) n[r].each(e); return t; }, $o = function(n, t) { for (var e = 0; e < n.length; e++) { var r = t(n[e], e); if (r.isSome()) return r; } return w.none(); }, Ko = function(n, t) { return nn.rowcells(t, n.section()); }, Jo = function(n, t) { return n.cells()[t]; }, Qo = { addCell: function(n, t, e) { var r = n.cells(), o = r.slice(0, t), i = r.slice(t), u = o.concat([e]).concat(i); return Ko(n, u); }, setCells: Ko, mutateCell: function(n, t, e) { n.cells()[t] = e; }, getCell: Jo, getCellElement: function(n, t) { return Jo(n, t).element(); }, mapCells: function(n, t) { var e = n.cells(), r = B.map(e, t); return nn.rowcells(r, n.section()); }, cellLength: function(n) { return n.cells().length; } }, Zo = function(n, t) { if (0 === n.length) return 0; var e = n[0]; return B.findIndex(n, function(n) { return !t(e.element(), n.element()); }).fold( function() { return n.length; }, function(n) { return n; } ); }, ni = function(n, t, e, r) { var o, i, u, a, c = ((o = n), (i = t), o[i]).cells().slice(e), l = Zo(c, r), s = ((u = n), (a = e), B.map(u, function(n) { return Qo.getCell(n, a); })).slice(t), f = Zo(s, r); return { colspan: m.constant(l), rowspan: m.constant(f) }; }, ti = function(n, t) { var e = B.map(n, function(n, t) { return B.map(n.cells(), function(n, t) { return !1; }); }); return B.map(n, function(r, o) { var i = B.bind(r.cells(), function(r, i) { if (!1 === e[o][i]) { var u = ni(n, o, i, t); return ( (function(n, t, r, o) { for (var i = n; i < n + r; i++) for (var u = t; u < t + o; u++) e[i][u] = !0; })(o, i, u.rowspan(), u.colspan()), [nn.detailnew(r.element(), u.rowspan(), u.colspan(), r.isNew())] ); } return []; }); return nn.rowdetails(i, r.section()); }); }, ei = function(n, t, e) { for (var r = [], o = 0; o < n.grid().rows(); o++) { for (var i = [], u = 0; u < n.grid().columns(); u++) { var a = Kt.getAt(n, o, u) .map(function(n) { return nn.elementnew(n.element(), e); }) .getOrThunk(function() { return nn.elementnew(t.gap(), !0); }); i.push(a); } var c = nn.rowcells(i, n.all()[o].section()); r.push(c); } return r; }, ri = function(n, t, e, r) { e === r ? Dt.remove(n, t) : Dt.set(n, t, e); }, oi = function(n, t) { var e = [], r = [], o = function(t, o) { t.length > 0 ? (function(t, o) { var i = qt.child(n, o).getOrThunk(function() { var t = en.fromTag(o, dt.owner(n).dom()); return ue.append(n, t), t; }); le.empty(i); var u = B.map(t, function(n) { n.isNew() && e.push(n.element()); var t = n.element(); return ( le.empty(t), B.each(n.cells(), function(n) { n.isNew() && r.push(n.element()), ri(n.element(), "colspan", n.colspan(), 1), ri(n.element(), "rowspan", n.rowspan(), 1), ue.append(t, n.element()); }), t ); }); ae.append(i, u); })(t, o) : qt.child(n, o).bind(le.remove); }, i = [], u = [], a = []; return ( B.each(t, function(n) { switch (n.section()) { case "thead": i.push(n); break; case "tbody": u.push(n); break; case "tfoot": a.push(n); } }), o(i, "thead"), o(u, "tbody"), o(a, "tfoot"), { newRows: m.constant(e), newCells: m.constant(r) } ); }, ii = function(n) { return B.map(n, function(n) { var t = pe(n.element()); return ( B.each(n.cells(), function(n) { var e = he(n.element()); ri(e, "colspan", n.colspan(), 1), ri(e, "rowspan", n.rowspan(), 1), ue.append(t, e); }), t ); }); }, ui = function(n, t) { for (var e = [], r = 0; r < n; r++) e.push(t(r)); return e; }, ai = function(n, t) { for (var e = [], r = n; r < t; r++) e.push(r); return e; }, ci = function(n, t) { if (t < 0 || t >= n.length - 1) return w.none(); var e = n[t].fold( function() { var e = B.reverse(n.slice(0, t)); return $o(e, function(n, t) { return n.map(function(n) { return { value: n, delta: t + 1 }; }); }); }, function(n) { return w.some({ value: n, delta: 0 }); } ), r = n[t + 1].fold( function() { var e = n.slice(t + 1); return $o(e, function(n, t) { return n.map(function(n) { return { value: n, delta: t + 1 }; }); }); }, function(n) { return w.some({ value: n, delta: 1 }); } ); return e.bind(function(n) { return r.map(function(t) { var e = t.delta + n.delta; return Math.abs(t.value - n.value) / e; }); }); }, li = function(n, t, e) { var r = n(); return B.find(r, t) .orThunk(function() { return w.from(r[0]).orThunk(e); }) .map(function(n) { return n.element(); }); }, si = function(n) { var t = n.grid(), e = ai(0, t.columns()), r = ai(0, t.rows()); return B.map(e, function(t) { return li( function() { return B.bind(r, function(e) { return Kt.getAt(n, e, t) .filter(function(n) { return n.column() === t; }) .fold(m.constant([]), function(n) { return [n]; }); }); }, function(n) { return 1 === n.colspan(); }, function() { return Kt.getAt(n, 0, t); } ); }); }, fi = function(n) { var t = n.grid(), e = ai(0, t.rows()), r = ai(0, t.columns()); return B.map(e, function(t) { return li( function() { return B.bind(r, function(e) { return Kt.getAt(n, t, e) .filter(function(n) { return n.row() === t; }) .fold(m.constant([]), function(n) { return [n]; }); }); }, function(n) { return 1 === n.rowspan(); }, function() { return Kt.getAt(n, t, 0); } ); }); }, di = function(n, t, e, r, o) { var i = en.fromTag("div"); return ( re.setAll(i, { position: "absolute", left: t - r / 2 + "px", top: e + "px", height: o + "px", width: r + "px" }), Dt.setAll(i, { "data-column": n, role: "presentation" }), i ); }, mi = function(n, t, e, r, o) { var i = en.fromTag("div"); return ( re.setAll(i, { position: "absolute", left: t + "px", top: e - o / 2 + "px", height: o + "px", width: r + "px" }), Dt.setAll(i, { "data-row": n, role: "presentation" }), i ); }, gi = function(n) { var t = n.replace(/\./g, "-"); return { resolve: function(n) { return t + "-" + n; } }; }, pi = { resolve: gi("ephox-snooker").resolve }, hi = function(n, t) { var e = Dt.get(n, t); return e === undefined || "" === e ? [] : e.split(" "); }, vi = hi, bi = function(n, t, e) { var r = hi(n, t).concat([e]); Dt.set(n, t, r.join(" ")); }, wi = function(n, t, e) { var r = B.filter(hi(n, t), function(n) { return n !== e; }); r.length > 0 ? Dt.set(n, t, r.join(" ")) : Dt.remove(n, t); }, yi = function(n) { return vi(n, "class"); }, xi = function(n, t) { return bi(n, "class", t); }, Ci = function(n, t) { return wi(n, "class", t); }, Si = yi, Ri = xi, Ti = Ci, Di = function(n, t) { B.contains(yi(n), t) ? Ci(n, t) : xi(n, t); }, Ai = function(n) { return n.dom().classList !== undefined; }, ki = function(n, t) { return Ai(n) && n.dom().classList.contains(t); }, Ni = { add: function(n, t) { Ai(n) ? n.dom().classList.add(t) : Ri(n, t); }, remove: function(n, t) { var e; Ai(n) ? n.dom().classList.remove(t) : Ti(n, t), 0 === (Ai((e = n)) ? e.dom().classList : Si(e)).length && Dt.remove(e, "class"); }, toggle: function(n, t) { return Ai(n) ? n.dom().classList.toggle(t) : Di(n, t); }, toggler: function(n, t) { var e, r, o, i, u, a, c = Ai(n), l = n.dom().classList; return ( (e = function() { c ? l.remove(t) : Ti(n, t); }), (r = function() { c ? l.add(t) : Ri(n, t); }), (o = ki(n, t)), (i = o || !1), { on: (u = function() { r(), (i = !0); }), off: (a = function() { e(), (i = !1); }), toggle: function() { (i ? a : u)(); }, isOn: function() { return i; } } ); }, has: ki }, Oi = pi.resolve("resizer-bar"), Ei = pi.resolve("resizer-rows"), Bi = pi.resolve("resizer-cols"), Ii = function(n) { var t = Bt.descendants(n.parent(), "." + Oi); B.each(t, le.remove); }, Pi = function(n, t, e) { var r = n.origin(); B.each(t, function(t, o) { t.each(function(t) { var o = e(r, t); Ni.add(o, Oi), ue.append(n.parent(), o); }); }); }, Wi = function(n, t, e, r, o, i) { var u, a, c, l, s = ao(t), f = e.length > 0 ? o.positions(e, t) : []; (u = n), (a = f), (c = s), (l = Fr(t)), Pi(u, a, function(n, t) { var e = mi(t.row(), c.left() - n.left(), t.y() - n.top(), l, 7); return Ni.add(e, Ei), e; }); var d, m, g, p, h = r.length > 0 ? i.positions(r, t) : []; (d = n), (m = h), (g = s), (p = Lr(t)), Pi(d, m, function(n, t) { var e = di(t.col(), t.x() - n.left(), g.top() - n.top(), 7, p); return Ni.add(e, Bi), e; }); }, _i = function(n, t) { var e = Bt.descendants(n.parent(), "." + Oi); B.each(e, t); }, Mi = function(n, t, e, r) { Ii(n); var o = Gt(t), i = Kt.generate(o), u = fi(i), a = si(i); Wi(n, t, u, a, e, r); }, Li = function(n) { _i(n, function(n) { re.set(n, "display", "none"); }); }, qi = function(n) { _i(n, function(n) { re.set(n, "display", "block"); }); }, zi = Ii, Fi = function(n) { return Ni.has(n, Ei); }, ji = function(n) { return Ni.has(n, Bi); }, Hi = function(n, t) { return B.map(n, function(n) { var e, r = ((e = n.details()), $o(e, function(n) { return dt.parent(n.element()).map(function(n) { var t = dt.parent(n).isNone(); return nn.elementnew(n, t); }); }).getOrThunk(function() { return nn.elementnew(t.row(), !0); })); return nn.rowdatanew(r.element(), n.details(), n.section(), r.isNew()); }); }, Vi = function(n, t) { var e = ti(n, ot.eq); return Hi(e, t); }, Ui = function(n, t) { var e = B.flatten( B.map(n.all(), function(n) { return n.cells(); }) ); return B.find(e, function(n) { return ot.eq(t, n.element()); }); }, Gi = function(n, t, e, r, o) { return function(i, u, a, c, l) { var s = Gt(u), f = Kt.generate(s); return t(f, a) .map(function(t) { var e = ei(f, c, !1), r = n(e, t, ot.eq, o(c)), i = Vi(r.grid(), c); return { grid: m.constant(i), cursor: r.cursor }; }) .fold( function() { return w.none(); }, function(n) { var t = oi(u, n.grid()); return ( e(u, n.grid(), l), r(u), Mi(i, u, wo.height, l), w.some({ cursor: n.cursor, newRows: t.newRows, newCells: t.newCells }) ); } ); }; }, Xi = Vi, Yi = function(n, t) { return jt(t.element()).bind(function(t) { return Ui(n, t); }); }, $i = function(n, t) { var e = B.map(t.selection(), function(t) { return jt(t).bind(function(t) { return Ui(n, t); }); }), r = Yo(e); return r.length > 0 ? w.some(r) : w.none(); }, Ki = function(n, t) { return jt(t.element()).bind(function(e) { return Ui(n, e).map(function(n) { return Xo.merge(n, { generators: t.generators, clipboard: t.clipboard }); }); }); }, Ji = function(n, t) { var e = B.map(t.selection(), function(t) { return jt(t).bind(function(t) { return Ui(n, t); }); }), r = Yo(e); return r.length > 0 ? w.some( Xo.merge( { cells: r }, { generators: t.generators, clipboard: t.clipboard } ) ) : w.none(); }, Qi = function(n, t) { return t.mergable(); }, Zi = function(n, t) { return t.unmergable(); }, nu = function(n) { return { is: function(t) { return n === t; }, isValue: m.constant(!0), isError: m.constant(!1), getOr: m.constant(n), getOrThunk: m.constant(n), getOrDie: m.constant(n), or: function(t) { return nu(n); }, orThunk: function(t) { return nu(n); }, fold: function(t, e) { return e(n); }, map: function(t) { return nu(t(n)); }, each: function(t) { t(n); }, bind: function(t) { return t(n); }, exists: function(t) { return t(n); }, forall: function(t) { return t(n); }, toOption: function() { return w.some(n); } }; }, tu = function(n) { return { is: m.constant(!1), isValue: m.constant(!1), isError: m.constant(!0), getOr: m.identity, getOrThunk: function(n) { return n(); }, getOrDie: function() { return m.die(n)(); }, or: function(n) { return n; }, orThunk: function(n) { return n(); }, fold: function(t, e) { return t(n); }, map: function(t) { return tu(n); }, each: m.noop, bind: function(t) { return tu(n); }, exists: m.constant(!1), forall: m.constant(!0), toOption: w.none }; }, eu = { value: nu, error: tu }, ru = function(n, t) { return B.map(n, function() { return nn.elementnew(t.cell(), !0); }); }, ou = function(n, t, e) { return n.concat( ui(t, function(t) { return Qo.setCells(n[n.length - 1], ru(n[n.length - 1].cells(), e)); }) ); }, iu = function(n, t, e) { return B.map(n, function(n) { return Qo.setCells(n, n.cells().concat(ru(ai(0, t), e))); }); }, uu = function(n, t, e) { if (n.row() >= t.length || n.column() > Qo.cellLength(t[0])) return eu.error( "invalid start address out of table bounds, row: " + n.row() + ", column: " + n.column() ); var r = t.slice(n.row()), o = r[0].cells().slice(n.column()), i = Qo.cellLength(e[0]), u = e.length; return eu.value({ rowDelta: m.constant(r.length - u), colDelta: m.constant(o.length - i) }); }, au = function(n, t) { var e = Qo.cellLength(n[0]), r = Qo.cellLength(t[0]); return { rowDelta: m.constant(0), colDelta: m.constant(e - r) }; }, cu = function(n, t, e) { var r = t.colDelta() < 0 ? iu : m.identity; return (t.rowDelta() < 0 ? ou : m.identity)( r(n, Math.abs(t.colDelta()), e), Math.abs(t.rowDelta()), e ); }, lu = function(n, t, e, r) { if (0 === n.length) return n; for (var o = t.startRow(); o <= t.finishRow(); o++) for (var i = t.startCol(); i <= t.finishCol(); i++) Qo.mutateCell(n[o], i, nn.elementnew(r(), !1)); return n; }, su = function(n, t, e, r) { for (var o = !0, i = 0; i < n.length; i++) for (var u = 0; u < Qo.cellLength(n[0]); u++) { var a = e(Qo.getCellElement(n[i], u), t); !0 === a && !1 === o ? Qo.mutateCell(n[i], u, nn.elementnew(r(), !0)) : !0 === a && (o = !1); } return n; }, fu = function(n, t, e, r) { if (t > 0 && t < n.length) { var o = n[t - 1].cells(), i = ((u = o), (a = e), B.foldl( u, function(n, t) { return B.exists(n, function(n) { return a(n.element(), t.element()); }) ? n : n.concat([t]); }, [] )); B.each(i, function(o) { for (var i = w.none(), u = t; u < n.length; u++) for (var a = 0; a < Qo.cellLength(n[0]); a++) { var c = n[u].cells()[a]; e(c.element(), o.element()) && (i.isNone() && (i = w.some(r())), i.each(function(t) { Qo.mutateCell(n[u], a, nn.elementnew(t, !0)); })); } }); } var u, a; return n; }, du = function(n, t, e, r, o) { return uu(n, t, e).map(function(i) { var u = cu(t, i, r); return (function(n, t, e, r, o) { for ( var i, u, a, c, l, s, f, d = n.row(), g = n.column(), p = d + e.length, h = g + Qo.cellLength(e[0]), v = d; v < p; v++ ) for (var b = g; b < h; b++) { (i = t), (u = v), (a = b), (c = o), (l = void 0), (s = void 0), (l = Qo.getCell(i[u], a)), (s = m.curry(c, l.element())), (f = i[u]), i.length > 1 && Qo.cellLength(f) > 1 && ((a > 0 && s(Qo.getCellElement(f, a - 1))) || (a < f.length - 1 && s(Qo.getCellElement(f, a + 1))) || (u > 0 && s(Qo.getCellElement(i[u - 1], a))) || (u < i.length - 1 && s(Qo.getCellElement(i[u + 1], a)))) && su(t, Qo.getCellElement(t[v], b), o, r.cell); var w = Qo.getCellElement(e[v - d], b - g), y = r.replace(w); Qo.mutateCell(t[v], b, nn.elementnew(y, !0)); } return t; })(n, u, e, r, o); }); }, mu = function(n, t, e, r, o) { fu(t, n, o, r.cell); var i = au(e, t), u = cu(e, i, r), a = au(t, u), c = cu(t, a, r); return c .slice(0, n) .concat(u) .concat(c.slice(n, c.length)); }, gu = function(n, t, e, r, o) { var i = n.slice(0, t), u = n.slice(t), a = Qo.mapCells(n[e], function(e, i) { return t > 0 && t < n.length && r(Qo.getCellElement(n[t - 1], i), Qo.getCellElement(n[t], i)) ? Qo.getCell(n[t], i) : nn.elementnew(o(e.element(), r), !0); }); return i.concat([a]).concat(u); }, pu = function(n, t, e, r, o) { return B.map(n, function(n) { var i = t > 0 && t < Qo.cellLength(n) && r(Qo.getCellElement(n, t - 1), Qo.getCellElement(n, t)) ? Qo.getCell(n, t) : nn.elementnew(o(Qo.getCellElement(n, e), r), !0); return Qo.addCell(n, t, i); }); }, hu = function(n, t, e, r, o) { var i = e + 1; return B.map(n, function(n, u) { var a = u === t ? nn.elementnew(o(Qo.getCellElement(n, e), r), !0) : Qo.getCell(n, e); return Qo.addCell(n, i, a); }); }, vu = function(n, t, e, r, o) { var i = t + 1, u = n.slice(0, i), a = n.slice(i), c = Qo.mapCells(n[t], function(n, t) { return t === e ? nn.elementnew(o(n.element(), r), !0) : n; }); return u.concat([c]).concat(a); }, bu = function(n, t, e) { return n.slice(0, t).concat(n.slice(e + 1)); }, wu = function(n, t, e) { var r = B.map(n, function(n) { var r = n .cells() .slice(0, t) .concat(n.cells().slice(e + 1)); return nn.rowcells(r, n.section()); }); return B.filter(r, function(n) { return n.cells().length > 0; }); }, yu = function(n, t, e, r) { return B.map(n, function(n) { return Qo.mapCells(n, function(n) { return ( (o = n), B.exists(t, function(n) { return e(o.element(), n.element()); }) ? nn.elementnew(r(n.element(), e), !0) : n ); var o; }); }); }, xu = function(n, t, e, r) { return ( Qo.getCellElement(n[t], e) !== undefined && t > 0 && r(Qo.getCellElement(n[t - 1], e), Qo.getCellElement(n[t], e)) ); }, Cu = function(n, t, e) { return t > 0 && e(Qo.getCellElement(n, t - 1), Qo.getCellElement(n, t)); }, Su = function(n, t, e, r) { var o = B.bind(n, function(r, o) { return xu(n, o, t, e) || Cu(r, t, e) ? [] : [Qo.getCell(r, t)]; }); return yu(n, o, e, r); }, Ru = function(n, t, e, r) { var o = n[t], i = B.bind(o.cells(), function(r, i) { return xu(n, t, i, e) || Cu(o, i, e) ? [] : [r]; }); return yu(n, i, e, r); }, Tu = function(n) { return { fold: n }; }, Du = function() { return Tu(function(n, t, e, r, o) { return n(); }); }, Au = function(n) { return Tu(function(t, e, r, o, i) { return e(n); }); }, ku = function(n, t) { return Tu(function(e, r, o, i, u) { return o(n, t); }); }, Nu = function(n, t, e) { return Tu(function(r, o, i, u, a) { return u(n, t, e); }); }, Ou = function(n, t) { return Tu(function(e, r, o, i, u) { return u(n, t); }); }, Eu = function(n, t, e, r) { var o, i, u = n.slice(0), a = ((i = t), 0 === (o = n).length ? Du() : 1 === o.length ? Au(0) : 0 === i ? ku(0, 1) : i === o.length - 1 ? Ou(i - 1, i) : i > 0 && i < o.length - 1 ? Nu(i - 1, i, i + 1) : Du()), c = function(n) { return B.map(n, m.constant(0)); }, l = m.constant(c(u)), s = function(n, t) { if (e >= 0) { var o = Math.max(r.minCellWidth(), u[t] - e); return c(u.slice(0, n)) .concat([e, o - u[t]]) .concat(c(u.slice(t + 1))); } var i = Math.max(r.minCellWidth(), u[n] + e), a = u[n] - i; return c(u.slice(0, n)) .concat([i - u[n], a]) .concat(c(u.slice(t + 1))); }, f = s; return a.fold( l, function(n) { return r.singleColumnWidth(u[n], e); }, f, function(n, t, e) { return s(t, e); }, function(n, t) { if (e >= 0) return c(u.slice(0, t)).concat([e]); var o = Math.max(r.minCellWidth(), u[t] + e); return c(u.slice(0, t)).concat([o - u[t]]); } ); }, Bu = function(n, t) { return Dt.has(n, t) && parseInt(Dt.get(n, t), 10) > 1; }, Iu = { hasColspan: function(n) { return Bu(n, "colspan"); }, hasRowspan: function(n) { return Bu(n, "rowspan"); }, minWidth: m.constant(10), minHeight: m.constant(10), getInt: function(n, t) { return parseInt(re.get(n, t), 10); } }, Pu = function(n, t, e) { return re.getRaw(n, t).fold( function() { return e(n) + "px"; }, function(n) { return n; } ); }, Wu = function(n) { return Pu(n, "width", no.getPixelWidth); }, _u = function(n) { return Pu(n, "height", no.getHeight); }, Mu = function(n, t, e, r, o) { var i = si(n), u = B.map(i, function(n) { return n.map(t.edge); }); return B.map(i, function(n, t) { return n.filter(m.not(Iu.hasColspan)).fold( function() { var n = ci(u, t); return r(n); }, function(n) { return e(n, o); } ); }); }, Lu = function(n) { return n .map(function(n) { return n + "px"; }) .getOr(""); }, qu = function(n, t, e, r) { var o = fi(n), i = B.map(o, function(n) { return n.map(t.edge); }); return B.map(o, function(n, t) { return n.filter(m.not(Iu.hasRowspan)).fold( function() { var n = ci(i, t); return r(n); }, function(n) { return e(n); } ); }); }, zu = { getRawWidths: function(n, t) { return Mu(n, t, Wu, Lu); }, getPixelWidths: function(n, t, e) { return Mu( n, t, no.getPixelWidth, function(n) { return n.getOrThunk(e.minCellWidth); }, e ); }, getPercentageWidths: function(n, t, e) { return Mu( n, t, no.getPercentageWidth, function(n) { return n.fold( function() { return e.minCellWidth(); }, function(n) { return (n / e.pixelWidth()) * 100; } ); }, e ); }, getPixelHeights: function(n, t) { return qu(n, t, no.getHeight, function(n) { return n.getOrThunk(Iu.minHeight); }); }, getRawHeights: function(n, t) { return qu(n, t, _u, Lu); } }, Fu = function(n, t, e) { for (var r = 0, o = n; o < t; o++) r += e[o] !== undefined ? e[o] : 0; return r; }, ju = function(n, t) { var e = Kt.justCells(n); return B.map(e, function(n) { var e = Fu(n.column(), n.column() + n.colspan(), t); return { element: n.element, width: m.constant(e), colspan: n.colspan }; }); }, Hu = function(n, t) { var e = Kt.justCells(n); return B.map(e, function(n) { var e = Fu(n.row(), n.row() + n.rowspan(), t); return { element: n.element, height: m.constant(e), rowspan: n.rowspan }; }); }, Vu = function(n, t) { return B.map(n.all(), function(n, e) { return { element: n.element, height: m.constant(t[e]) }; }); }, Uu = function(n) { var t = parseInt(n, 10), e = m.identity; return { width: m.constant(t), pixelWidth: m.constant(t), getWidths: zu.getPixelWidths, getCellDelta: e, singleColumnWidth: function(n, t) { return [Math.max(Iu.minWidth(), n + t) - n]; }, minCellWidth: Iu.minWidth, setElementWidth: no.setPixelWidth, setTableWidth: function(n, t, e) { var r = B.foldr( t, function(n, t) { return n + t; }, 0 ); no.setPixelWidth(n, r); } }; }, Gu = function(n, t) { if (no.percentageBasedSizeRegex().test(t)) { var e = no.percentageBasedSizeRegex().exec(t); return ( (o = e[1]), (i = n), (u = parseFloat(o)), (a = zr(i)), { width: m.constant(u), pixelWidth: m.constant(a), getWidths: zu.getPercentageWidths, getCellDelta: function(n) { return (n / a) * 100; }, singleColumnWidth: function(n, t) { return [100 - n]; }, minCellWidth: function() { return (Iu.minWidth() / a) * 100; }, setElementWidth: no.setPercentageWidth, setTableWidth: function(n, t, e) { var r = u + e; no.setPercentageWidth(n, r); } } ); } if (no.pixelBasedSizeRegex().test(t)) { var r = no.pixelBasedSizeRegex().exec(t); return Uu(r[1]); } var o, i, u, a, c = zr(n); return Uu(c); }, Xu = function(n) { return no.getRawWidth(n).fold( function() { var t = zr(n); return Uu(t); }, function(t) { return Gu(n, t); } ); }, Yu = function(n) { return Kt.generate(n); }, $u = function(n) { var t = Gt(n); return Yu(t); }, Ku = function(n, t, e, r) { var o = Xu(n), i = o.getCellDelta(t), u = $u(n), a = o.getWidths(u, r, o), c = Eu(a, e, i, o), l = B.map(c, function(n, t) { return n + a[t]; }), s = ju(u, l); B.each(s, function(n) { o.setElementWidth(n.element(), n.width()); }), e === u.grid().columns() - 1 && o.setTableWidth(n, l, i); }, Ju = function(n, t, e, r) { var o = $u(n), i = zu.getPixelHeights(o, r), u = B.map(i, function(n, r) { return e === r ? Math.max(t + n, Iu.minHeight()) : n; }), a = Hu(o, u), c = Vu(o, u); B.each(c, function(n) { no.setHeight(n.element(), n.height()); }), B.each(a, function(n) { no.setHeight(n.element(), n.height()); }); var l, s = ((l = u), B.foldr( l, function(n, t) { return n + t; }, 0 )); no.setHeight(n, s); }, Qu = function(n, t, e) { var r = Xu(n), o = Yu(t), i = r.getWidths(o, e, r), u = ju(o, i); B.each(u, function(n) { r.setElementWidth(n.element(), n.width()); }); var a = B.foldr( i, function(n, t) { return t + n; }, 0 ); u.length > 0 && r.setElementWidth(n, a); }, Zu = function(n) { 0 === Ht(n).length && le.remove(n); }, na = X.immutable("grid", "cursor"), ta = function(n, t, e) { return ea(n, t, e).orThunk(function() { return ea(n, 0, 0); }); }, ea = function(n, t, e) { return w.from(n[t]).bind(function(n) { return w.from(n.cells()[e]).bind(function(n) { return w.from(n.element()); }); }); }, ra = function(n, t, e) { return na(n, ea(n, t, e)); }, oa = function(n) { return B.foldl( n, function(n, t) { return B.exists(n, function(n) { return n.row() === t.row(); }) ? n : n.concat([t]); }, [] ).sort(function(n, t) { return n.row() - t.row(); }); }, ia = function(n) { return B.foldl( n, function(n, t) { return B.exists(n, function(n) { return n.column() === t.column(); }) ? n : n.concat([t]); }, [] ).sort(function(n, t) { return n.column() - t.column(); }); }, ua = function(n, t, e) { var r = Xt(n, e), o = Kt.generate(r); return ei(o, t, !0); }, aa = Qu, ca = { insertRowBefore: Gi( function(n, t, e, r) { var o = t.row(), i = t.row(), u = gu(n, i, o, e, r.getOrInit); return ra(u, i, t.column()); }, Yi, m.noop, m.noop, Oo ), insertRowsBefore: Gi( function(n, t, e, r) { var o = t[0].row(), i = t[0].row(), u = oa(t), a = B.foldl( u, function(n, t) { return gu(n, i, o, e, r.getOrInit); }, n ); return ra(a, i, t[0].column()); }, $i, m.noop, m.noop, Oo ), insertRowAfter: Gi( function(n, t, e, r) { var o = t.row(), i = t.row() + t.rowspan(), u = gu(n, i, o, e, r.getOrInit); return ra(u, i, t.column()); }, Yi, m.noop, m.noop, Oo ), insertRowsAfter: Gi( function(n, t, e, r) { var o = oa(t), i = o[o.length - 1].row(), u = o[o.length - 1].row() + o[o.length - 1].rowspan(), a = B.foldl( o, function(n, t) { return gu(n, u, i, e, r.getOrInit); }, n ); return ra(a, u, t[0].column()); }, $i, m.noop, m.noop, Oo ), insertColumnBefore: Gi( function(n, t, e, r) { var o = t.column(), i = t.column(), u = pu(n, i, o, e, r.getOrInit); return ra(u, t.row(), i); }, Yi, aa, m.noop, Oo ), insertColumnsBefore: Gi( function(n, t, e, r) { var o = ia(t), i = o[0].column(), u = o[0].column(), a = B.foldl( o, function(n, t) { return pu(n, u, i, e, r.getOrInit); }, n ); return ra(a, t[0].row(), u); }, $i, aa, m.noop, Oo ), insertColumnAfter: Gi( function(n, t, e, r) { var o = t.column(), i = t.column() + t.colspan(), u = pu(n, i, o, e, r.getOrInit); return ra(u, t.row(), i); }, Yi, aa, m.noop, Oo ), insertColumnsAfter: Gi( function(n, t, e, r) { var o = t[t.length - 1].column(), i = t[t.length - 1].column() + t[t.length - 1].colspan(), u = ia(t), a = B.foldl( u, function(n, t) { return pu(n, i, o, e, r.getOrInit); }, n ); return ra(a, t[0].row(), i); }, $i, aa, m.noop, Oo ), splitCellIntoColumns: Gi( function(n, t, e, r) { var o = hu(n, t.row(), t.column(), e, r.getOrInit); return ra(o, t.row(), t.column()); }, Yi, aa, m.noop, Oo ), splitCellIntoRows: Gi( function(n, t, e, r) { var o = vu(n, t.row(), t.column(), e, r.getOrInit); return ra(o, t.row(), t.column()); }, Yi, m.noop, m.noop, Oo ), eraseColumns: Gi( function(n, t, e, r) { var o = ia(t), i = wu(n, o[0].column(), o[o.length - 1].column()), u = ta(i, t[0].row(), t[0].column()); return na(i, u); }, $i, aa, Zu, Oo ), eraseRows: Gi( function(n, t, e, r) { var o = oa(t), i = bu(n, o[0].row(), o[o.length - 1].row()), u = ta(i, t[0].row(), t[0].column()); return na(i, u); }, $i, m.noop, Zu, Oo ), makeColumnHeader: Gi( function(n, t, e, r) { var o = Su(n, t.column(), e, r.replaceOrInit); return ra(o, t.row(), t.column()); }, Yi, m.noop, m.noop, Eo("row", "th") ), unmakeColumnHeader: Gi( function(n, t, e, r) { var o = Su(n, t.column(), e, r.replaceOrInit); return ra(o, t.row(), t.column()); }, Yi, m.noop, m.noop, Eo(null, "td") ), makeRowHeader: Gi( function(n, t, e, r) { var o = Ru(n, t.row(), e, r.replaceOrInit); return ra(o, t.row(), t.column()); }, Yi, m.noop, m.noop, Eo("col", "th") ), unmakeRowHeader: Gi( function(n, t, e, r) { var o = Ru(n, t.row(), e, r.replaceOrInit); return ra(o, t.row(), t.column()); }, Yi, m.noop, m.noop, Eo(null, "td") ), mergeCells: Gi( function(n, t, e, r) { var o = t.cells(); Ho(o); var i = lu(n, t.bounds(), e, m.constant(o[0])); return na(i, w.from(o[0])); }, Qi, m.noop, m.noop, Bo ), unmergeCells: Gi( function(n, t, e, r) { var o = B.foldr( t, function(n, t) { return su(n, t, e, r.combine(t)); }, n ); return na(o, w.from(t[0])); }, Zi, aa, m.noop, Bo ), pasteCells: Gi( function(n, t, e, r) { var o, i, u, a, c = ((o = t.clipboard()), (i = t.generators()), (u = Gt(o)), (a = Kt.generate(u)), ei(a, i, !0)), l = nn.address(t.row(), t.column()); return du(l, n, c, t.generators(), e).fold( function() { return na(n, w.some(t.element())); }, function(n) { var e = ta(n, t.row(), t.column()); return na(n, e); } ); }, Ki, aa, m.noop, Oo ), pasteRowsBefore: Gi( function(n, t, e, r) { var o = n[t.cells[0].row()], i = t.cells[0].row(), u = ua(t.clipboard(), t.generators(), o), a = mu(i, n, u, t.generators(), e), c = ta(a, t.cells[0].row(), t.cells[0].column()); return na(a, c); }, Ji, m.noop, m.noop, Oo ), pasteRowsAfter: Gi( function(n, t, e, r) { var o = n[t.cells[0].row()], i = t.cells[t.cells.length - 1].row() + t.cells[t.cells.length - 1].rowspan(), u = ua(t.clipboard(), t.generators(), o), a = mu(i, n, u, t.generators(), e), c = ta(a, t.cells[0].row(), t.cells[0].column()); return na(a, c); }, Ji, m.noop, m.noop, Oo ) }, la = function(n) { return en.fromDom(n.getBody()); }, sa = { getBody: la, getIsRoot: function(n) { return function(t) { return ot.eq(t, la(n)); }; }, addSizeSuffix: function(n) { return /^[0-9]+$/.test(n) && (n += "px"), n; }, removePxSuffix: function(n) { return n ? n.replace(/px$/, "") : ""; } }, fa = function(n) { return "rtl" === re.get(n, "direction") ? "rtl" : "ltr"; }, da = { onDirection: function(n, t) { return function(e) { return "rtl" === fa(e) ? t : n; }; }, getDirection: fa }, ma = { isRtl: m.constant(!1) }, ga = { isRtl: m.constant(!0) }, pa = function(n) { return "rtl" === da.getDirection(n) ? ga : ma; }, ha = function(n, t) { var e, r = function(n) { return "table" === xt.name(sa.getBody(n)); }; !1 !== n.settings.table_clone_elements && ("string" == typeof n.settings.table_clone_elements ? (e = n.settings.table_clone_elements.split(/[ ,]/)) : Array.isArray(n.settings.table_clone_elements) && (e = n.settings.table_clone_elements)); var o = w.from(e), i = function(t, e, r, i) { return function(u, a) { var c = Bt.descendants(u, "td[data-mce-style],th[data-mce-style]"); B.each(c, function(n) { Dt.remove(n, "data-mce-style"); }); var l = i(), s = en.fromDom(n.getDoc()), f = xo(pa), d = Oe(r, s, o); return e(u) ? t(l, u, a, d, f).bind(function(t) { return ( B.each(t.newRows(), function(t) { var e; (e = t), n.fire("newrow", { node: e.dom() }), e.dom(); }), B.each(t.newCells(), function(t) { var e; (e = t), n.fire("newcell", { node: e.dom() }), e.dom(); }), t.cursor().map(function(t) { var e = n.dom.createRng(); return e.setStart(t.dom(), 0), e.setEnd(t.dom(), 0), e; }) ); }) : w.none(); }; }; return { deleteRow: i( ca.eraseRows, function(t) { var e = Co(t); return !1 === r(n) || e.rows() > 1; }, m.noop, t ), deleteColumn: i( ca.eraseColumns, function(t) { var e = Co(t); return !1 === r(n) || e.columns() > 1; }, m.noop, t ), insertRowsBefore: i(ca.insertRowsBefore, m.always, m.noop, t), insertRowsAfter: i(ca.insertRowsAfter, m.always, m.noop, t), insertColumnsBefore: i(ca.insertColumnsBefore, m.always, to, t), insertColumnsAfter: i(ca.insertColumnsAfter, m.always, to, t), mergeCells: i(ca.mergeCells, m.always, m.noop, t), unmergeCells: i(ca.unmergeCells, m.always, m.noop, t), pasteRowsBefore: i(ca.pasteRowsBefore, m.always, m.noop, t), pasteRowsAfter: i(ca.pasteRowsAfter, m.always, m.noop, t), pasteCells: i(ca.pasteCells, m.always, m.noop, t) }; }, va = function(n, t, e) { var r = Gt(n), o = Kt.generate(r); return $i(o, t).map(function(n) { var t = ei(o, e, !1).slice( n[0].row(), n[n.length - 1].row() + n[n.length - 1].rowspan() ), r = Xi(t, e); return ii(r); }); }, ba = tinymce.util.Tools.resolve("tinymce.util.Tools"), wa = tinymce.util.Tools.resolve("tinymce.Env"), ya = { applyAlign: function(n, t, e) { e && n.formatter.apply("align" + e, {}, t); }, applyVAlign: function(n, t, e) { e && n.formatter.apply("valign" + e, {}, t); }, unApplyAlign: function(n, t) { ba.each("left center right".split(" "), function(e) { n.formatter.remove("align" + e, {}, t); }); }, unApplyVAlign: function(n, t) { ba.each("top middle bottom".split(" "), function(e) { n.formatter.remove("valign" + e, {}, t); }); }, getTDTHOverallStyle: function(n, t, e) { var r; return (r = (function(t, r) { for (var o = 0; o < r.length; o++) { var i = n.getStyle(r[o], e); if ((void 0 === t && (t = i), t !== i)) return ""; } return t; })(r, n.select("td,th", t))); } }, xa = function(n, t) { var e = n.dom, r = t.control.rootControl, o = r.toJSON(), i = e.parseStyle(o.style); "style" === t.control.name() ? (r .find("#borderStyle") .value(i["border-style"] || "")[0] .fire("select"), r .find("#borderColor") .value(i["border-color"] || "")[0] .fire("change"), r .find("#backgroundColor") .value(i["background-color"] || "")[0] .fire("change"), r .find("#width") .value(i.width || "") .fire("change"), r .find("#height") .value(i.height || "") .fire("change")) : ((i["border-style"] = o.borderStyle), (i["border-color"] = o.borderColor), (i["background-color"] = o.backgroundColor), (i.width = o.width ? sa.addSizeSuffix(o.width) : ""), (i.height = o.height ? sa.addSizeSuffix(o.height) : "")), r .find("#style") .value(e.serializeStyle(e.parseStyle(e.serializeStyle(i)))); }, Ca = { createStyleForm: function(n) { var t = function() { var t = n.settings.color_picker_callback; if (t) return function(e) { return t.call( n, function(n) { e.control.value(n).fire("change"); }, e.control.value() ); }; }; return { title: "Advanced", type: "form", defaults: { onchange: m.curry(xa, n) }, items: [ { label: "Style", name: "style", type: "textbox" }, { type: "form", padding: 0, formItemDefaults: { layout: "grid", alignH: ["start", "right"] }, defaults: { size: 7 }, items: [ { label: "Border style", type: "listbox", name: "borderStyle", width: 90, onselect: m.curry(xa, n), values: [ { text: "Select...", value: "" }, { text: "Solid", value: "solid" }, { text: "Dotted", value: "dotted" }, { text: "Dashed", value: "dashed" }, { text: "Double", value: "double" }, { text: "Groove", value: "groove" }, { text: "Ridge", value: "ridge" }, { text: "Inset", value: "inset" }, { text: "Outset", value: "outset" }, { text: "None", value: "none" }, { text: "Hidden", value: "hidden" } ] }, { label: "Border color", type: "colorbox", name: "borderColor", onaction: t() }, { label: "Background color", type: "colorbox", name: "backgroundColor", onaction: t() } ] } ] }; }, buildListItems: function(n, t, e) { var r = function(n, e) { return ( (e = e || []), ba.each(n, function(n) { var o = { text: n.text || n.title }; n.menu ? (o.menu = r(n.menu)) : ((o.value = n.value), t && t(o)), e.push(o); }), e ); }; return r(n, e || []); }, updateStyleField: xa, extractAdvancedStyles: function(n, t) { var e = n.parseStyle(n.getAttrib(t, "style")), r = {}; return ( e["border-style"] && (r.borderStyle = e["border-style"]), e["border-color"] && (r.borderColor = e["border-color"]), e["background-color"] && (r.backgroundColor = e["background-color"]), (r.style = n.serializeStyle(e)), r ); } }; function Sa(n, t, e, r) { if ("TD" === t.tagName || "TH" === t.tagName) n.setStyle(t, e, r); else if (t.children) for (var o = 0; o < t.children.length; o++) Sa(n, t.children[o], e, r); } var Ra = function(n, t, e) { var r, o, i = n.dom; Ca.updateStyleField(n, e), !1 === (o = e.control.rootControl.toJSON())["class"] && delete o["class"], n.undoManager.transact(function() { t || (t = Pr.insert(n, o.cols || 1, o.rows || 1)), (function(n, t, e) { var r = n.dom, o = {}, i = {}; if ( ((o["class"] = e["class"]), (i.height = sa.addSizeSuffix(e.height)), r.getAttrib(t, "width") && !n.settings.table_style_by_css ? (o.width = sa.removePxSuffix(e.width)) : (i.width = sa.addSizeSuffix(e.width)), n.settings.table_style_by_css ? ((i["border-width"] = sa.addSizeSuffix(e.border)), (i["border-spacing"] = sa.addSizeSuffix(e.cellspacing)), ba.extend(o, { "data-mce-border-color": e.borderColor, "data-mce-cell-padding": e.cellpadding, "data-mce-border": e.border })) : ba.extend(o, { border: e.border, cellpadding: e.cellpadding, cellspacing: e.cellspacing }), n.settings.table_style_by_css && t.children) ) for (var u = 0; u < t.children.length; u++) Sa(r, t.children[u], { "border-width": sa.addSizeSuffix(e.border), "border-color": e.borderColor, padding: sa.addSizeSuffix(e.cellpadding) }); e.style ? ba.extend(i, r.parseStyle(e.style)) : (i = ba.extend({}, r.parseStyle(r.getAttrib(t, "style")), i)), (o.style = r.serializeStyle(i)), r.setAttribs(t, o); })(n, t, o), (r = i.select("caption", t)[0]) && !o.caption && i.remove(r), !r && o.caption && (((r = i.create("caption")).innerHTML = wa.ie ? "\xa0" : '
    '), t.insertBefore(r, t.firstChild)), ya.unApplyAlign(n, t), o.align && ya.applyAlign(n, t, o.align), n.focus(), n.addVisual(); }); }, Ta = function(n, t) { var e, r, o, i, u, a, c, l, s, f = n.dom, d = {}; !0 === t ? (e = f.getParent(n.selection.getStart(), "table")) && ((c = e), (l = (a = n).dom), (s = { width: l.getStyle(c, "width") || l.getAttrib(c, "width"), height: l.getStyle(c, "height") || l.getAttrib(c, "height"), cellspacing: l.getStyle(c, "border-spacing") || l.getAttrib(c, "cellspacing"), cellpadding: l.getAttrib(c, "data-mce-cell-padding") || l.getAttrib(c, "cellpadding") || ya.getTDTHOverallStyle(a.dom, c, "padding"), border: l.getAttrib(c, "data-mce-border") || l.getAttrib(c, "border") || ya.getTDTHOverallStyle(a.dom, c, "border"), borderColor: l.getAttrib(c, "data-mce-border-color"), caption: !!l.select("caption", c)[0], class: l.getAttrib(c, "class") }), ba.each("left center right".split(" "), function(n) { a.formatter.matchNode(c, "align" + n) && (s.align = n); }), !1 !== a.settings.table_advtab && ba.extend(s, Ca.extractAdvancedStyles(l, c)), (d = s)) : ((r = { label: "Cols", name: "cols" }), (o = { label: "Rows", name: "rows" })), n.settings.table_class_list && (d["class"] && (d["class"] = d["class"].replace(/\s*mce\-item\-table\s*/g, "")), (i = { name: "class", type: "listbox", label: "Class", values: Ca.buildListItems(n.settings.table_class_list, function(t) { t.value && (t.textStyle = function() { return n.formatter.getCssText({ block: "table", classes: [t.value] }); }); }) })), (u = { type: "form", layout: "flex", direction: "column", labelGapCalc: "children", padding: 0, items: [ { type: "form", labelGapCalc: !1, padding: 0, layout: "grid", columns: 2, defaults: { type: "textbox", maxWidth: 50 }, items: !1 !== n.settings.table_appearance_options ? [ r, o, { label: "Width", name: "width", onchange: m.curry(Ca.updateStyleField, n) }, { label: "Height", name: "height", onchange: m.curry(Ca.updateStyleField, n) }, { label: "Cell spacing", name: "cellspacing" }, { label: "Cell padding", name: "cellpadding" }, { label: "Border", name: "border" }, { label: "Caption", name: "caption", type: "checkbox" } ] : [ r, o, { label: "Width", name: "width", onchange: m.curry(Ca.updateStyleField, n) }, { label: "Height", name: "height", onchange: m.curry(Ca.updateStyleField, n) } ] }, { label: "Alignment", name: "align", type: "listbox", text: "None", values: [ { text: "None", value: "" }, { text: "Left", value: "left" }, { text: "Center", value: "center" }, { text: "Right", value: "right" } ] }, i ] }), !1 !== n.settings.table_advtab ? n.windowManager.open({ title: "Table properties", data: d, bodyType: "tabpanel", body: [ { title: "General", type: "form", items: u }, Ca.createStyleForm(n) ], onsubmit: m.curry(Ra, n, e) }) : n.windowManager.open({ title: "Table properties", data: d, body: u, onsubmit: m.curry(Ra, n, e) }); }, Da = function(n, t, e) { var r = n.getParent(t, "table"), o = t.parentNode, i = n.select(e, r)[0]; i || ((i = n.create(e)), r.firstChild ? "CAPTION" === r.firstChild.nodeName ? n.insertAfter(i, r.firstChild) : r.insertBefore(i, r.firstChild) : r.appendChild(i)), i.appendChild(t), o.hasChildNodes() || n.remove(o); }; function Aa(n, t, e) { var r, o = n.dom; function i(n, t, e) { e && o.setAttrib(n, t, e); } Ca.updateStyleField(n, e), (r = e.control.rootControl.toJSON()), n.undoManager.transact(function() { ba.each(t, function(e) { var u, a, c; i(e, "scope", r.scope), i(e, "style", r.style), i(e, "class", r["class"]), (u = e), (a = "height"), (c = sa.addSizeSuffix(r.height)) && o.setStyle(u, a, c), r.type !== e.parentNode.nodeName.toLowerCase() && Da(n.dom, e, r.type), 1 === t.length && ya.unApplyAlign(n, e), r.align && ya.applyAlign(n, e, r.align); }), n.focus(); }); } var ka = function(n) { var t, e, r, o, i, u, a, c, l, s, f = n.dom, d = []; (t = f.getParent(n.selection.getStart(), "table")), (e = f.getParent(n.selection.getStart(), "td,th")), ba.each(t.rows, function(n) { ba.each(n.cells, function(t) { if (f.getAttrib(t, "data-mce-selected") || t === e) return d.push(n), !1; }); }), (r = d[0]) && (d.length > 1 ? (i = { height: "", scope: "", class: "", align: "", type: r.parentNode.nodeName.toLowerCase() }) : ((c = r), (l = (a = n).dom), ((s = { height: l.getStyle(c, "height") || l.getAttrib(c, "height"), scope: l.getAttrib(c, "scope"), class: l.getAttrib(c, "class") }).type = c.parentNode.nodeName.toLowerCase()), ba.each("left center right".split(" "), function(n) { a.formatter.matchNode(c, "align" + n) && (s.align = n); }), !1 !== a.settings.table_row_advtab && ba.extend(s, Ca.extractAdvancedStyles(l, c)), (i = s)), n.settings.table_row_class_list && (o = { name: "class", type: "listbox", label: "Class", values: Ca.buildListItems( n.settings.table_row_class_list, function(t) { t.value && (t.textStyle = function() { return n.formatter.getCssText({ block: "tr", classes: [t.value] }); }); } ) }), (u = { type: "form", columns: 2, padding: 0, defaults: { type: "textbox" }, items: [ { type: "listbox", name: "type", label: "Row type", text: "Header", maxWidth: null, values: [ { text: "Header", value: "thead" }, { text: "Body", value: "tbody" }, { text: "Footer", value: "tfoot" } ] }, { type: "listbox", name: "align", label: "Alignment", text: "None", maxWidth: null, values: [ { text: "None", value: "" }, { text: "Left", value: "left" }, { text: "Center", value: "center" }, { text: "Right", value: "right" } ] }, { label: "Height", name: "height" }, o ] }), !1 !== n.settings.table_row_advtab ? n.windowManager.open({ title: "Row properties", data: i, bodyType: "tabpanel", body: [ { title: "General", type: "form", items: u }, Ca.createStyleForm(n) ], onsubmit: m.curry(Aa, n, d) }) : n.windowManager.open({ title: "Row properties", data: i, body: u, onsubmit: m.curry(Aa, n, d) })); }, Na = function(n, t, e) { var r, o = n.dom; function i(n, t, e) { e && o.setAttrib(n, t, e); } function u(n, t, e) { e && o.setStyle(n, t, e); } Ca.updateStyleField(n, e), (r = e.control.rootControl.toJSON()), n.undoManager.transact(function() { ba.each(t, function(e) { var a, c; i(e, "scope", r.scope), 1 === t.length ? i(e, "style", r.style) : ((a = e), (c = r.style), (a.style.cssText += ";" + c)), i(e, "class", r["class"]), u(e, "width", sa.addSizeSuffix(r.width)), u(e, "height", sa.addSizeSuffix(r.height)), r.type && e.nodeName.toLowerCase() !== r.type && (e = o.rename(e, r.type)), 1 === t.length && (ya.unApplyAlign(n, e), ya.unApplyVAlign(n, e)), r.align && ya.applyAlign(n, e, r.align), r.valign && ya.applyVAlign(n, e, r.valign); }), n.focus(); }); }, Oa = function(n) { var t, e, r, o = []; if ( ((o = n.dom.select("td[data-mce-selected],th[data-mce-selected]")), (t = n.dom.getParent(n.selection.getStart(), "td,th")), !o.length && t && o.push(t), (t = t || o[0])) ) { var i, u, a, c; o.length > 1 ? (e = { width: "", height: "", scope: "", class: "", align: "", style: "", type: t.nodeName.toLowerCase() }) : ((u = t), (a = (i = n).dom), ((c = { width: a.getStyle(u, "width") || a.getAttrib(u, "width"), height: a.getStyle(u, "height") || a.getAttrib(u, "height"), scope: a.getAttrib(u, "scope"), class: a.getAttrib(u, "class") }).type = u.nodeName.toLowerCase()), ba.each("left center right".split(" "), function(n) { i.formatter.matchNode(u, "align" + n) && (c.align = n); }), ba.each("top middle bottom".split(" "), function(n) { i.formatter.matchNode(u, "valign" + n) && (c.valign = n); }), !1 !== i.settings.table_cell_advtab && ba.extend(c, Ca.extractAdvancedStyles(a, u)), (e = c)), n.settings.table_cell_class_list && (r = { name: "class", type: "listbox", label: "Class", values: Ca.buildListItems( n.settings.table_cell_class_list, function(t) { t.value && (t.textStyle = function() { return n.formatter.getCssText({ block: "td", classes: [t.value] }); }); } ) }); var l = { type: "form", layout: "flex", direction: "column", labelGapCalc: "children", padding: 0, items: [ { type: "form", layout: "grid", columns: 2, labelGapCalc: !1, padding: 0, defaults: { type: "textbox", maxWidth: 50 }, items: [ { label: "Width", name: "width", onchange: m.curry(Ca.updateStyleField, n) }, { label: "Height", name: "height", onchange: m.curry(Ca.updateStyleField, n) }, { label: "Cell type", name: "type", type: "listbox", text: "None", minWidth: 90, maxWidth: null, values: [ { text: "Cell", value: "td" }, { text: "Header cell", value: "th" } ] }, { label: "Scope", name: "scope", type: "listbox", text: "None", minWidth: 90, maxWidth: null, values: [ { text: "None", value: "" }, { text: "Row", value: "row" }, { text: "Column", value: "col" }, { text: "Row group", value: "rowgroup" }, { text: "Column group", value: "colgroup" } ] }, { label: "H Align", name: "align", type: "listbox", text: "None", minWidth: 90, maxWidth: null, values: [ { text: "None", value: "" }, { text: "Left", value: "left" }, { text: "Center", value: "center" }, { text: "Right", value: "right" } ] }, { label: "V Align", name: "valign", type: "listbox", text: "None", minWidth: 90, maxWidth: null, values: [ { text: "None", value: "" }, { text: "Top", value: "top" }, { text: "Middle", value: "middle" }, { text: "Bottom", value: "bottom" } ] } ] }, r ] }; !1 !== n.settings.table_cell_advtab ? n.windowManager.open({ title: "Cell properties", bodyType: "tabpanel", data: e, body: [ { title: "General", type: "form", items: l }, Ca.createStyleForm(n) ], onsubmit: m.curry(Na, n, o) }) : n.windowManager.open({ title: "Cell properties", data: e, body: l, onsubmit: m.curry(Na, n, o) }); } }, Ea = ba.each, Ba = w.none(), Ia = { registerCommands: function(n, t, e, r) { var o = sa.getIsRoot(n), i = function() { return en.fromDom(n.dom.getParent(n.selection.getStart(), "th,td")); }, u = function(n) { return Vt(n, o); }, a = function(t) { var o = i(); u(o).each(function(i) { var u = kr.forMenu(r, i, o); t(i, u).each(function(t) { n.selection.setRng(t), n.focus(), e.clear(i); }); }); }, c = function(t) { var e = i(); return u(e).bind(function(t) { var o = en.fromDom(n.getDoc()), i = kr.forMenu(r, t, e), u = Oe(m.noop, o, w.none()); return va(t, i, u); }); }, l = function(t) { Ba.each(function(o) { var a = B.map(o, function(n) { return he(n); }), c = i(); u(c).bind(function(o) { var i = en.fromDom(n.getDoc()), u = Ee(i), l = kr.pasteRows(r, o, c, a, u); t(o, l).each(function(t) { n.selection.setRng(t), n.focus(), e.clear(o); }); }); }); }; Ea( { mceTableSplitCells: function() { a(t.unmergeCells); }, mceTableMergeCells: function() { a(t.mergeCells); }, mceTableInsertRowBefore: function() { a(t.insertRowsBefore); }, mceTableInsertRowAfter: function() { a(t.insertRowsAfter); }, mceTableInsertColBefore: function() { a(t.insertColumnsBefore); }, mceTableInsertColAfter: function() { a(t.insertColumnsAfter); }, mceTableDeleteCol: function() { a(t.deleteColumn); }, mceTableDeleteRow: function() { a(t.deleteRow); }, mceTableCutRow: function(n) { (Ba = c()), a(t.deleteRow); }, mceTableCopyRow: function(n) { Ba = c(); }, mceTablePasteRowBefore: function(n) { l(t.pasteRowsBefore); }, mceTablePasteRowAfter: function(n) { l(t.pasteRowsAfter); }, mceTableDelete: function() { var t = en.fromDom( n.dom.getParent(n.selection.getStart(), "th,td") ); Vt(t, o) .filter(m.not(o)) .each(function(t) { var e = en.fromText(""); ue.after(t, e), le.remove(t); var r = n.dom.createRng(); r.setStart(e.dom(), 0), r.setEnd(e.dom(), 0), n.selection.setRng(r); }); } }, function(t, e) { n.addCommand(e, t); } ), Ea( { mceInsertTable: m.curry(Ta, n), mceTableProps: m.curry(Ta, n, !0), mceTableRowProps: m.curry(ka, n), mceTableCellProps: m.curry(Oa, n) }, function(t, e) { n.addCommand(e, function(n, e) { t(e); }); } ); }, getClipboardRows: function() { return Ba.fold( function() {}, function(n) { return B.map(n, function(n) { return n.dom(); }); } ); }, setClipboardRows: function(n) { var t = B.map(n, en.fromDom); Ba = w.from(t); } }, Pa = function(n) { var t = w .from(n.dom().documentElement) .map(en.fromDom) .getOr(n); return { parent: m.constant(t), view: m.constant(n), origin: m.constant(oo(0, 0)) }; }, Wa = function(n, t) { return { parent: m.constant(t), view: m.constant(n), origin: m.constant(oo(0, 0)) }; }, _a = function(n) { var t = X.immutable.apply(null, n), e = []; return { bind: function(n) { if (n === undefined) throw "Event bind error: undefined handler"; e.push(n); }, unbind: function(n) { e = B.filter(e, function(t) { return t !== n; }); }, trigger: function() { var n = t.apply(null, arguments); B.each(e, function(t) { t(n); }); } }; }, Ma = function(n) { return { registry: L.map(n, function(n) { return { bind: n.bind, unbind: n.unbind }; }), trigger: L.map(n, function(n) { return n.trigger; }) }; }, La = { mode: Ao.exactly(["compare", "extract", "mutate", "sink"]), sink: Ao.exactly(["element", "start", "stop", "destroy"]), api: Ao.exactly(["forceDrop", "drop", "move", "delayDrop"]) }, qa = { resolve: gi("ephox-dragster").resolve }, za = function(n, t) { return function(e) { if (n(e)) { var r, o, i, u, a, c, l, s = en.fromDom(e.target), f = function() { e.stopPropagation(); }, d = function() { e.preventDefault(); }, g = m.compose( d, f ), p = ((r = s), (o = e.clientX), (i = e.clientY), (u = f), (a = d), (c = g), (l = e), { target: m.constant(r), x: m.constant(o), y: m.constant(i), stop: u, prevent: a, kill: c, raw: m.constant(l) }); t(p); } }; }, Fa = function(n, t, e, r, o) { var i = za(e, r); return ( n.dom().addEventListener(t, i, o), { unbind: m.curry(ja, n, t, i, o) } ); }, ja = function(n, t, e, r) { n.dom().removeEventListener(t, e, r); }, Ha = function(n, t, e, r) { return Fa(n, t, e, r, !1); }, Va = m.constant(!0), Ua = function(n, t, e) { return Ha(n, t, Va, e); }, Ga = La.mode({ compare: function(n, t) { return oo(t.left() - n.left(), t.top() - n.top()); }, extract: function(n) { return w.some(oo(n.x(), n.y())); }, sink: function(n, t) { var e, r, o, i = ((e = t), (r = Xo.merge({ layerClass: qa.resolve("blocker") }, e)), (o = en.fromTag("div")), Dt.set(o, "role", "presentation"), re.setAll(o, { position: "fixed", left: "0px", top: "0px", width: "100%", height: "100%" }), Ni.add(o, qa.resolve("blocker")), Ni.add(o, r.layerClass), { element: function() { return o; }, destroy: function() { le.remove(o); } }), u = Ua(i.element(), "mousedown", n.forceDrop), a = Ua(i.element(), "mouseup", n.drop), c = Ua(i.element(), "mousemove", n.move), l = Ua(i.element(), "mouseout", n.delayDrop); return La.sink({ element: i.element, start: function(n) { ue.append(n, i.element()); }, stop: function() { le.remove(i.element()); }, destroy: function() { i.destroy(), a.unbind(), c.unbind(), l.unbind(), u.unbind(); } }); }, mutate: function(n, t) { n.mutate(t.left(), t.top()); } }), Xa = function() { var n = w.none(), t = Ma({ move: _a(["info"]) }); return { onEvent: function(e, r) { r.extract(e).each(function(e) { var o, i, u; ((o = r), (i = e), (u = n.map(function(n) { return o.compare(n, i); })), (n = w.some(i)), u).each(function(n) { t.trigger.move(n); }); }); }, reset: function() { n = w.none(); }, events: t.registry }; }, Ya = function() { var n = { onEvent: function(n, t) {}, reset: m.noop }, t = Xa(), e = n; return { on: function() { e.reset(), (e = t); }, off: function() { e.reset(), (e = n); }, isOn: function() { return e === t; }, onEvent: function(n, t) { e.onEvent(n, t); }, events: t.events }; }, $a = function(n, t) { var e = null; return { cancel: function() { null !== e && (clearTimeout(e), (e = null)); }, throttle: function() { var r = arguments; null !== e && clearTimeout(e), (e = setTimeout(function() { n.apply(null, r), (e = null), (r = null); }, t)); } }; }, Ka = function(n, t, e) { var r = !1, o = Ma({ start: _a([]), stop: _a([]) }), i = Ya(), u = function() { l.stop(), i.isOn() && (i.off(), o.trigger.stop()); }, a = $a(u, 200); i.events.move.bind(function(e) { t.mutate(n, e.info()); }); var c = function(n) { return function() { var t = Array.prototype.slice.call(arguments, 0); if (r) return n.apply(null, t); }; }, l = t.sink( La.api({ forceDrop: u, drop: c(u), move: c(function(n, e) { a.cancel(), i.onEvent(n, t); }), delayDrop: c(a.throttle) }), e ); return { element: l.element, go: function(n) { l.start(n), i.on(), o.trigger.start(); }, on: function() { r = !0; }, off: function() { r = !1; }, destroy: function() { l.destroy(); }, events: o.registry }; }, Ja = function(n, t) { var e = t !== undefined ? t : {}, r = e.mode !== undefined ? e.mode : Ga; return Ka(n, r, t); }, Qa = function() { var n, t = Ma({ drag: _a(["xDelta", "yDelta", "target"]) }), e = w.none(), r = { mutate: function(t, e) { n.trigger.drag(t, e); }, events: (n = Ma({ drag: _a(["xDelta", "yDelta"]) })).registry }; return ( r.events.drag.bind(function(n) { e.each(function(e) { t.trigger.drag(n.xDelta(), n.yDelta(), e); }); }), { assign: function(n) { e = w.some(n); }, get: function() { return e; }, mutate: r.mutate, events: t.registry } ); }, Za = function(n, t, e) { return qt.ancestor(n, t, e).isSome(); }, nc = pi.resolve("resizer-bar-dragging"), tc = function(n, t) { var e = wo.height, r = (function(n, t, e) { var r = Qa(), o = Ja(r, {}), i = w.none(), u = function(n, t) { return w.from(Dt.get(n, t)); }; r.events.drag.bind(function(n) { u(n.target(), "data-row").each(function(t) { var e = Iu.getInt(n.target(), "top"); re.set(n.target(), "top", e + n.yDelta() + "px"); }), u(n.target(), "data-column").each(function(t) { var e = Iu.getInt(n.target(), "left"); re.set(n.target(), "left", e + n.xDelta() + "px"); }); }); var a = function(n, t) { return ( Iu.getInt(n, t) - parseInt(Dt.get(n, "data-initial-" + t), 10) ); }; o.events.stop.bind(function() { r.get().each(function(r) { i.each(function(o) { u(r, "data-row").each(function(n) { var t = a(r, "top"); Dt.remove(r, "data-initial-top"), d.trigger.adjustHeight(o, t, parseInt(n, 10)); }), u(r, "data-column").each(function(n) { var t = a(r, "left"); Dt.remove(r, "data-initial-left"), d.trigger.adjustWidth(o, t, parseInt(n, 10)); }), Mi(n, o, e, t); }); }); }); var c = function(t, e) { d.trigger.startAdjust(), r.assign(t), Dt.set(t, "data-initial-" + e, parseInt(re.get(t, e), 10)), Ni.add(t, nc), re.set(t, "opacity", "0.2"), o.go(n.parent()); }, l = Ua(n.parent(), "mousedown", function(n) { Fi(n.target()) && c(n.target(), "top"), ji(n.target()) && c(n.target(), "left"); }), s = function(t) { return ot.eq(t, n.view()); }, f = Ua(n.view(), "mouseover", function(r) { "table" === xt.name(r.target()) || Za(r.target(), "table", s) ? (i = "table" === xt.name(r.target()) ? w.some(r.target()) : qt.ancestor(r.target(), "table", s)).each(function(r) { Mi(n, r, e, t); }) : Nt.inBody(r.target()) && zi(n); }), d = Ma({ adjustHeight: _a(["table", "delta", "row"]), adjustWidth: _a(["table", "delta", "column"]), startAdjust: _a([]) }); return { destroy: function() { l.unbind(), f.unbind(), o.destroy(), zi(n); }, refresh: function(r) { Mi(n, r, e, t); }, on: o.on, off: o.off, hideBars: m.curry(Li, n), showBars: m.curry(qi, n), events: d.registry }; })(n, t, e), o = Ma({ beforeResize: _a(["table"]), afterResize: _a(["table"]), startDrag: _a([]) }); return ( r.events.adjustHeight.bind(function(n) { o.trigger.beforeResize(n.table()); var t = e.delta(n.delta(), n.table()); Ju(n.table(), t, n.row(), e), o.trigger.afterResize(n.table()); }), r.events.startAdjust.bind(function(n) { o.trigger.startDrag(); }), r.events.adjustWidth.bind(function(n) { o.trigger.beforeResize(n.table()); var e = t.delta(n.delta(), n.table()); Ku(n.table(), e, n.column(), t), o.trigger.afterResize(n.table()); }), { on: r.on, off: r.off, hideBars: r.hideBars, showBars: r.showBars, destroy: r.destroy, events: o.registry } ); }, ec = function(n, t) { return n.inline ? Wa( sa.getBody(n), ((e = en.fromTag("div")), re.setAll(e, { position: "static", height: "0", width: "0", padding: "0", margin: "0", border: "0" }), ue.append(Nt.body(), e), e) ) : Pa(en.fromDom(n.getDoc())); var e; }, rc = function(n, t) { n.inline && le.remove(t.parent()); }, oc = function(n) { var t, e, r = w.none(), o = w.none(), i = w.none(), u = /(\d+(\.\d+)?)%/, a = function(n) { return "TABLE" === n.nodeName; }; return ( n.on("init", function() { var t = xo(pa), e = ec(n); if ( ((i = w.some(e)), n.settings.object_resizing && !1 !== n.settings.table_resize_bars && (!0 === n.settings.object_resizing || "table" === n.settings.object_resizing)) ) { var u = tc(e, t); u.on(), u.events.startDrag.bind(function(t) { r = w.some(n.selection.getRng()); }), u.events.afterResize.bind(function(t) { var e = t.table(), o = Bt.descendants( e, "td[data-mce-style],th[data-mce-style]" ); B.each(o, function(n) { Dt.remove(n, "data-mce-style"); }), r.each(function(t) { n.selection.setRng(t), n.focus(); }), n.undoManager.add(); }), (o = w.some(u)); } }), n.on("ObjectResizeStart", function(r) { var o; a(r.target) && ((t = r.width), (o = r.target), (e = n.dom.getStyle(o, "width") || n.dom.getAttrib(o, "width"))); }), n.on("ObjectResized", function(r) { if (a(r.target)) { var o = r.target; if (u.test(e)) { var i = parseFloat(u.exec(e)[1]), c = (r.width * i) / t; n.dom.setStyle(o, "width", c + "%"); } else { var l = []; ba.each(o.rows, function(t) { ba.each(t.cells, function(t) { var e = n.dom.getStyle(t, "width", !0); l.push({ cell: t, width: e }); }); }), ba.each(l, function(t) { n.dom.setStyle(t.cell, "width", t.width), n.dom.setAttrib(t.cell, "width", null); }); } } }), { lazyResize: function() { return o; }, lazyWire: function() { return i.getOr(Pa(en.fromDom(n.getBody()))); }, destroy: function() { o.each(function(n) { n.destroy(); }), i.each(function(t) { rc(n, t); }); } } ); }, ic = function(n) { return { fold: n }; }, uc = function(n) { return ic(function(t, e, r, o) { return t(n); }); }, ac = function(n) { return ic(function(t, e, r, o) { return e(n); }); }, cc = function(n, t) { return ic(function(e, r, o, i) { return o(n, t); }); }, lc = function(n) { return ic(function(t, e, r, o) { return o(n); }); }, sc = function(n, t) { return Vt(n, t).bind(function(t) { var e = Ht(t); return B.findIndex(e, function(t) { return ot.eq(n, t); }).map(function(n) { return { index: m.constant(n), all: m.constant(e) }; }); }); }, fc = function(n, t) { return sc(n, t).fold( function() { return uc(n); }, function(t) { return t.index() + 1 < t.all().length ? cc(n, t.all()[t.index() + 1]) : lc(n); } ); }, dc = function(n, t) { return sc(n, t).fold( function() { return uc(); }, function(t) { return t.index() - 1 >= 0 ? cc(n, t.all()[t.index() - 1]) : ac(n); } ); }, mc = wr([ { before: ["element"] }, { on: ["element", "offset"] }, { after: ["element"] } ]), gc = { before: mc.before, on: mc.on, after: mc.after, cata: function(n, t, e, r) { return n.fold(t, e, r); }, getStart: function(n) { return n.fold(m.identity, m.identity, m.identity); } }, pc = wr([ { domRange: ["rng"] }, { relative: ["startSitu", "finishSitu"] }, { exact: ["start", "soffset", "finish", "foffset"] } ]), hc = X.immutable("start", "soffset", "finish", "foffset"), vc = { domRange: pc.domRange, relative: pc.relative, exact: pc.exact, exactFromRange: function(n) { return pc.exact(n.start(), n.soffset(), n.finish(), n.foffset()); }, range: hc, getWin: function(n) { var t = n.match({ domRange: function(n) { return en.fromDom(n.startContainer); }, relative: function(n, t) { return gc.getStart(n); }, exact: function(n, t, e, r) { return n; } }); return dt.defaultView(t); } }, bc = function(n, t, e, r) { var o = dt .owner(n) .dom() .createRange(); return o.setStart(n.dom(), t), o.setEnd(e.dom(), r), o; }, wc = function(n, t, e, r) { var o = bc(n, t, e, r), i = ot.eq(n, e) && t === r; return o.collapsed && !i; }, yc = function(n, t) { n.selectNodeContents(t.dom()); }, xc = function(n) { n.deleteContents(); }, Cc = function(n) { return { left: m.constant(n.left), top: m.constant(n.top), right: m.constant(n.right), bottom: m.constant(n.bottom), width: m.constant(n.width), height: m.constant(n.height) }; }, Sc = { create: function(n) { return n.document.createRange(); }, replaceWith: function(n, t) { xc(n), n.insertNode(t.dom()); }, selectNodeContents: function(n, t) { var e = n.document.createRange(); return yc(e, t), e; }, selectNodeContentsUsing: yc, relativeToNative: function(n, t, e) { var r, o, i = n.document.createRange(); return ( (r = i), t.fold( function(n) { r.setStartBefore(n.dom()); }, function(n, t) { r.setStart(n.dom(), t); }, function(n) { r.setStartAfter(n.dom()); } ), (o = i), e.fold( function(n) { o.setEndBefore(n.dom()); }, function(n, t) { o.setEnd(n.dom(), t); }, function(n) { o.setEndAfter(n.dom()); } ), i ); }, exactToNative: function(n, t, e, r, o) { var i = n.document.createRange(); return i.setStart(t.dom(), e), i.setEnd(r.dom(), o), i; }, deleteContents: xc, cloneFragment: function(n) { var t = n.cloneContents(); return en.fromDom(t); }, getFirstRect: function(n) { var t = n.getClientRects(), e = t.length > 0 ? t[0] : n.getBoundingClientRect(); return e.width > 0 || e.height > 0 ? w.some(e).map(Cc) : w.none(); }, getBounds: function(n) { var t = n.getBoundingClientRect(); return t.width > 0 || t.height > 0 ? w.some(t).map(Cc) : w.none(); }, isWithin: function(n, t) { return ( t.compareBoundaryPoints(n.END_TO_START, n) < 1 && t.compareBoundaryPoints(n.START_TO_END, n) > -1 ); }, toString: function(n) { return n.toString(); } }, Rc = wr([ { ltr: ["start", "soffset", "finish", "foffset"] }, { rtl: ["start", "soffset", "finish", "foffset"] } ]), Tc = function(n, t, e) { return t( en.fromDom(e.startContainer), e.startOffset, en.fromDom(e.endContainer), e.endOffset ); }, Dc = function(n, t) { var e, r, o, i = ((e = n), t.match({ domRange: function(n) { return { ltr: m.constant(n), rtl: w.none }; }, relative: function(n, t) { return { ltr: yn(function() { return Sc.relativeToNative(e, n, t); }), rtl: yn(function() { return w.some(Sc.relativeToNative(e, t, n)); }) }; }, exact: function(n, t, r, o) { return { ltr: yn(function() { return Sc.exactToNative(e, n, t, r, o); }), rtl: yn(function() { return w.some(Sc.exactToNative(e, r, o, n, t)); }) }; } })); return (o = (r = i).ltr()).collapsed ? r .rtl() .filter(function(n) { return !1 === n.collapsed; }) .map(function(n) { return Rc.rtl( en.fromDom(n.endContainer), n.endOffset, en.fromDom(n.startContainer), n.startOffset ); }) .getOrThunk(function() { return Tc(0, Rc.ltr, o); }) : Tc(0, Rc.ltr, o); }, Ac = (Rc.ltr, Rc.rtl, Dc), kc = function(n, t) { return Dc(n, t).match({ ltr: function(t, e, r, o) { var i = n.document.createRange(); return i.setStart(t.dom(), e), i.setEnd(r.dom(), o), i; }, rtl: function(t, e, r, o) { var i = n.document.createRange(); return i.setStart(r.dom(), o), i.setEnd(t.dom(), e), i; } }); }, Nc = function(n, t, e) { return t >= n.left && t <= n.right && e >= n.top && e <= n.bottom; }, Oc = function(n, t, e, r, o) { if (0 === o) return 0; if (t === r) return o - 1; for (var i = r, u = 1; u < o; u++) { var a = n(u), c = Math.abs(t - a.left); if (e > a.bottom); else { if (e < a.top || c > i) return u - 1; i = c; } } return 0; }, Ec = { locate: function(n, t, e, r) { var o = n.dom().createRange(); o.selectNode(t.dom()); var i = o.getClientRects(); return $o(i, function(n) { return Nc(n, e, r) ? w.some(n) : w.none(); }).map(function(o) { return ( (i = n), (a = e), (c = r), (l = o), (s = function(n) { var t = i.dom().createRange(); return t.setStart(u.dom(), n), t.collapse(!0), t; }), (f = we.get((u = t)).length), (d = Oc( function(n) { return s(n).getBoundingClientRect(); }, a, c, l.right, f )), s(d) ); var i, u, a, c, l, s, f, d; }); } }, Bc = function(n, t, e, r) { var o = n.dom().createRange(), i = dt.children(t); return $o(i, function(t) { return ( o.selectNode(t.dom()), Nc(o.getBoundingClientRect(), e, r) ? Ic(n, t, e, r) : w.none() ); }); }, Ic = function(n, t, e, r) { return (xt.isText(t) ? Ec.locate : Bc)(n, t, e, r); }, Pc = function(n, t, e, r) { var o = n.dom().createRange(); o.selectNode(t.dom()); var i = o.getBoundingClientRect(), u = Math.max(i.left, Math.min(i.right, e)), a = Math.max(i.top, Math.min(i.bottom, r)); return Ic(n, t, u, a); }, Wc = function(n, t) { return t - n.left < n.right - t; }, _c = function(n, t, e) { var r = n.dom().createRange(); return r.selectNode(t.dom()), r.collapse(e), r; }, Mc = function(n, t, e) { var r = n.dom().createRange(); r.selectNode(t.dom()); var o = r.getBoundingClientRect(), i = Wc(o, e); return (!0 === i ? Te.first : Te.last)(t).map(function(t) { return _c(n, t, i); }); }, Lc = function(n, t, e) { var r = t.dom().getBoundingClientRect(), o = Wc(r, e); return w.some(_c(n, t, o)); }, qc = function(n, t, e) { return (0 === dt.children(t).length ? Lc : Mc)(n, t, e); }, zc = document.caretPositionFromPoint ? function(n, t, e) { return w.from(n.dom().caretPositionFromPoint(t, e)).bind(function(t) { if (null === t.offsetNode) return w.none(); var e = n.dom().createRange(); return e.setStart(t.offsetNode, t.offset), e.collapse(), w.some(e); }); } : document.caretRangeFromPoint ? function(n, t, e) { return w.from(n.dom().caretRangeFromPoint(t, e)); } : function(n, t, e) { return en.fromPoint(n, t, e).bind(function(r) { var o = function() { return qc(n, r, t); }; return 0 === dt.children(r).length ? o() : (function(n, t, e, r) { var o = n.dom().createRange(); o.selectNode(t.dom()); var i = o.getBoundingClientRect(), u = Math.max(i.left, Math.min(i.right, e)), a = Math.max(i.top, Math.min(i.bottom, r)); return Pc(n, t, u, a); })(n, r, t, e).orThunk(o); }); }, Fc = function(n, t, e) { var r = en.fromDom(n.document); return zc(r, t, e).map(function(n) { return vc.range( en.fromDom(n.startContainer), n.startOffset, en.fromDom(n.endContainer), n.endOffset ); }); }, jc = function(n, t) { var e = xt.name(n); return "input" === e ? gc.after(n) : B.contains(["br", "img"], e) ? 0 === t ? gc.before(n) : gc.after(n) : gc.on(n, t); }, Hc = function(n, t) { var e = n.fold(gc.before, jc, gc.after), r = t.fold(gc.before, jc, gc.after); return vc.relative(e, r); }, Vc = function(n, t, e, r) { var o = jc(n, t), i = jc(e, r); return vc.relative(o, i); }, Uc = function(n) { return n.match({ domRange: function(n) { var t = en.fromDom(n.startContainer), e = en.fromDom(n.endContainer); return Vc(t, n.startOffset, e, n.endOffset); }, relative: Hc, exact: Vc }); }, Gc = Hc, Xc = Vc, Yc = function(n, t) { w.from(n.getSelection()).each(function(n) { n.removeAllRanges(), n.addRange(t); }); }, $c = function(n, t, e, r, o) { var i = Sc.exactToNative(n, t, e, r, o); Yc(n, i); }, Kc = function(n, t) { return Ac(n, t).match({ ltr: function(t, e, r, o) { $c(n, t, e, r, o); }, rtl: function(t, e, r, o) { var i = n.getSelection(); i.extend ? (i.collapse(t.dom(), e), i.extend(r.dom(), o)) : $c(n, r, o, t, e); } }); }, Jc = function(n) { var t = en.fromDom(n.anchorNode), e = en.fromDom(n.focusNode); return wc(t, n.anchorOffset, e, n.focusOffset) ? w.some( vc.range( en.fromDom(n.anchorNode), n.anchorOffset, en.fromDom(n.focusNode), n.focusOffset ) ) : (function(n) { if (n.rangeCount > 0) { var t = n.getRangeAt(0), e = n.getRangeAt(n.rangeCount - 1); return w.some( vc.range( en.fromDom(t.startContainer), t.startOffset, en.fromDom(e.endContainer), e.endOffset ) ); } return w.none(); })(n); }, Qc = function(n) { var t = n.getSelection(); return t.rangeCount > 0 ? Jc(t) : w.none(); }, Zc = function(n, t, e, r, o) { var i = Xc(t, e, r, o); Kc(n, i); }, nl = function(n) { return Qc(n).map(function(n) { return vc.exact(n.start(), n.soffset(), n.finish(), n.foffset()); }); }, tl = function(n, t, e) { var r = Gc(t, e); Kc(n, r); }, el = function(n) { var t = vc.getWin(n).dom(), e = function(n, e, r, o) { return Sc.exactToNative(t, n, e, r, o); }, r = Uc(n); return Ac(t, r).match({ ltr: e, rtl: e }); }, rl = function(n, t) { var e = Sc.selectNodeContents(n, t); Yc(n, e); }, ol = function(n) { n.getSelection().removeAllRanges(); }, il = function(n, t) { var e = kc(n, t); return Sc.getFirstRect(e); }, ul = function(n, t, e) { return Fc(n, t, e); }, al = tinymce.util.Tools.resolve("tinymce.util.VK"), cl = function(n, t, e, r) { return fl(n, t, fc(e), r); }, ll = function(n, t, e, r) { return fl(n, t, dc(e), r); }, sl = function(n, t) { var e = vc.exact(t, 0, t, 0); return el(e); }, fl = function(n, t, e, r, o) { return e.fold( w.none, w.none, function(n, t) { return Te.first(t).map(function(n) { return sl(0, n); }); }, function(e) { return Vt(e, t).bind(function(t) { var o, i = kr.noMenu(e); return ( n.undoManager.transact(function() { r.insertRowsAfter(t, i); }), (o = Bt.descendants(t, "tr")), B.last(o).bind(function(n) { return qt.descendant(n, "td,th").map(function(n) { return sl(0, n); }); }) ); }); } ); }, dl = ["table", "li", "dl"], ml = { handle: function(n, t, e, r) { if (n.keyCode === al.TAB) { var o = sa.getBody(t), i = function(n) { var t = xt.name(n); return ot.eq(n, o) || B.contains(dl, t); }, u = t.selection.getRng(); if (u.collapsed) { var a = en.fromDom(u.startContainer); jt(a, i).each(function(o) { n.preventDefault(), (n.shiftKey ? ll : cl)(t, i, o, e, r).each(function(n) { t.selection.setRng(n); }); }); } } } }, gl = { response: X.immutable("selection", "kill") }, pl = function(n) { return function(t) { return t === n; }; }, hl = pl(38), vl = pl(40), bl = { ltr: { isBackward: pl(37), isForward: pl(39) }, rtl: { isBackward: pl(39), isForward: pl(37) }, isUp: hl, isDown: vl, isNavigation: function(n) { return n >= 37 && n <= 40; } }, wl = function(n, t) { var e = kc(n, t); return { start: m.constant(en.fromDom(e.startContainer)), soffset: m.constant(e.startOffset), finish: m.constant(en.fromDom(e.endContainer)), foffset: m.constant(e.endOffset) }; }, yl = function(n, t, e, r) { return { start: m.constant(gc.on(n, t)), finish: m.constant(gc.on(e, r)) }; }, xl = (tt.detect().browser.isSafari(), function(n) { var t = n !== undefined ? n.dom() : document, e = t.body.scrollLeft || t.documentElement.scrollLeft, r = t.body.scrollTop || t.documentElement.scrollTop; return oo(e, r); }), Cl = xl, Sl = function(n, t, e) { (e !== undefined ? e.dom() : document).defaultView.scrollBy(n, t); }, Rl = function(n) { return { elementFromPoint: function(t, e) { return w.from(n.document.elementFromPoint(t, e)).map(en.fromDom); }, getRect: function(n) { return n.dom().getBoundingClientRect(); }, getRangedRect: function(t, e, r, o) { var i = vc.exact(t, e, r, o); return il(n, i).map(function(n) { return L.map(n, m.apply); }); }, getSelection: function() { return nl(n).map(function(t) { return wl(n, t); }); }, fromSitus: function(t) { var e = vc.relative(t.start(), t.finish()); return wl(n, e); }, situsFromPoint: function(t, e) { return ul(n, t, e).map(function(n) { return { start: m.constant(gc.on(n.start(), n.soffset())), finish: m.constant(gc.on(n.finish(), n.foffset())) }; }); }, clearSelection: function() { ol(n); }, setSelection: function(t) { Zc(n, t.start(), t.soffset(), t.finish(), t.foffset()); }, setRelativeSelection: function(t, e) { tl(n, t, e); }, selectContents: function(t) { rl(n, t); }, getInnerHeight: function() { return n.innerHeight; }, getScrollY: function() { return Cl(en.fromDom(n.document)).top(); }, scrollBy: function(t, e) { Sl(t, e, en.fromDom(n.document)); } }; }, Tl = function(n, t, e, r, o) { if (!ot.eq(e, r)) return lr(e, r, t).bind(function(t) { var r = t.boxes().getOr([]); return r.length > 0 ? (o(n, r, t.start(), t.finish()), w.some(gl.response(w.some(yl(e, 0, e, Ce(e))), !0))) : w.none(); }); }, Dl = { sync: function(n, t, e, r, o, i, u) { return ot.eq(e, o) && r === i ? w.none() : qt.closest(e, "td,th", t).bind(function(e) { return qt.closest(o, "td,th", t).bind(function(r) { return Tl(n, t, e, r, u); }); }); }, detect: Tl, update: function(n, t, e, r, o) { return fr( r, n, t, o.firstSelectedSelector(), o.lastSelectedSelector() ).map(function(n) { return ( o.clear(e), o.selectRange(e, n.boxes(), n.start(), n.finish()), n.boxes() ); }); } }, Al = X.immutableBag(["left", "top", "right", "bottom"], []), kl = { nu: Al, moveUp: function(n, t) { return Al({ left: n.left(), top: n.top() - t, right: n.right(), bottom: n.bottom() - t }); }, moveDown: function(n, t) { return Al({ left: n.left(), top: n.top() + t, right: n.right(), bottom: n.bottom() + t }); }, moveBottomTo: function(n, t) { var e = n.bottom() - n.top(); return Al({ left: n.left(), top: t - e, right: n.right(), bottom: t }); }, moveTopTo: function(n, t) { var e = n.bottom() - n.top(); return Al({ left: n.left(), top: t, right: n.right(), bottom: t + e }); }, getTop: function(n) { return n.top(); }, getBottom: function(n) { return n.bottom(); }, translate: function(n, t, e) { return Al({ left: n.left() + t, top: n.top() + e, right: n.right() + t, bottom: n.bottom() + e }); }, toString: function(n) { return ( "(" + n.left() + ", " + n.top() + ") -> (" + n.right() + ", " + n.bottom() + ")" ); } }, Nl = function(n) { return kl.nu({ left: n.left, top: n.top, right: n.right, bottom: n.bottom }); }, Ol = function(n, t) { return w.some(n.getRect(t)); }, El = function(n, t, e) { return xt.isElement(t) ? Ol(n, t).map(Nl) : xt.isText(t) ? ((r = n), (o = t), (i = e), i >= 0 && i < Ce(o) ? r.getRangedRect(o, i, o, i + 1) : i > 0 ? r.getRangedRect(o, i - 1, o, i) : w.none()).map(Nl) : w.none(); var r, o, i; }, Bl = function(n, t) { return xt.isElement(t) ? Ol(n, t).map(Nl) : xt.isText(t) ? n.getRangedRect(t, 0, t, Ce(t)).map(Nl) : w.none(); }, Il = X.immutable("item", "mode"), Pl = function(n, t, e, r) { var o = r !== undefined ? r : Wl; return n .property() .parent(t) .map(function(n) { return Il(n, o); }); }, Wl = function(n, t, e, r) { var o = r !== undefined ? r : _l; return e.sibling(n, t).map(function(n) { return Il(n, o); }); }, _l = function(n, t, e, r) { var o = r !== undefined ? r : _l, i = n.property().children(t); return e.first(i).map(function(n) { return Il(n, o); }); }, Ml = [ { current: Pl, next: Wl, fallback: w.none() }, { current: Wl, next: _l, fallback: w.some(Pl) }, { current: _l, next: _l, fallback: w.some(Wl) } ], Ll = function(n, t, e, r, o) { return ( (o = o !== undefined ? o : Ml), B.find(o, function(n) { return n.current === e; }).bind(function(e) { return e.current(n, t, r, e.next).orThunk(function() { return e.fallback.bind(function(e) { return Ll(n, t, e, r); }); }); }) ); }, ql = { backtrack: Pl, sidestep: Wl, advance: _l, go: Ll }, zl = { left: function() { return { sibling: function(n, t) { return n.query().prevSibling(t); }, first: function(n) { return n.length > 0 ? w.some(n[n.length - 1]) : w.none(); } }; }, right: function() { return { sibling: function(n, t) { return n.query().nextSibling(t); }, first: function(n) { return n.length > 0 ? w.some(n[0]) : w.none(); } }; } }, Fl = function(n, t, e, r, o, i) { return ql.go(n, t, r, o).bind(function(t) { return i(t.item()) ? w.none() : e(t.item()) ? w.some(t.item()) : Fl(n, t.item(), e, t.mode(), o, i); }); }, jl = function(n, t, e, r) { return Fl(n, t, e, ql.sidestep, zl.left(), r); }, Hl = function(n, t, e, r) { return Fl(n, t, e, ql.sidestep, zl.right(), r); }, Vl = function(n, t) { return 0 === n.property().children(t).length; }, Ul = function(n, t, e, r) { return jl(n, t, e, r); }, Gl = function(n, t, e, r) { return Hl(n, t, e, r); }, Xl = { before: function(n, t, e) { return Ul(n, t, m.curry(Vl, n), e); }, after: function(n, t, e) { return Gl(n, t, m.curry(Vl, n), e); }, seekLeft: Ul, seekRight: Gl, walkers: function() { return { left: zl.left, right: zl.right }; }, walk: function(n, t, e, r, o) { return ql.go(n, t, e, r, o); }, backtrack: ql.backtrack, sidestep: ql.sidestep, advance: ql.advance }, Yl = Pe(), $l = { gather: function(n, t, e) { return Xl.gather(Yl, n, t, e); }, before: function(n, t) { return Xl.before(Yl, n, t); }, after: function(n, t) { return Xl.after(Yl, n, t); }, seekLeft: function(n, t, e) { return Xl.seekLeft(Yl, n, t, e); }, seekRight: function(n, t, e) { return Xl.seekRight(Yl, n, t, e); }, walkers: function() { return Xl.walkers(); }, walk: function(n, t, e, r) { return Xl.walk(Yl, n, t, e, r); } }, Kl = wr([{ none: [] }, { retry: ["caret"] }]), Jl = function(n, t, e) { return Mt.closest(t, zo).fold(m.constant(!1), function(t) { return Bl(n, t).exists(function(n) { return ( (r = n), (t = e).left() < r.left() || Math.abs(r.right() - t.left()) < 1 || t.left() > r.right() ); var t, r; }); }); }, Ql = { point: kl.getTop, adjuster: function(n, t, e, r, o) { var i = kl.moveUp(o, 5); return Math.abs(e.top() - r.top()) < 1 ? Kl.retry(i) : e.bottom() < o.top() ? Kl.retry(i) : e.bottom() === o.top() ? Kl.retry(kl.moveUp(o, 1)) : Jl(n, t, o) ? Kl.retry(kl.translate(i, 5, 0)) : Kl.none(); }, move: kl.moveUp, gather: $l.before }, Zl = { point: kl.getBottom, adjuster: function(n, t, e, r, o) { var i = kl.moveDown(o, 5); return Math.abs(e.bottom() - r.bottom()) < 1 ? Kl.retry(i) : e.top() > o.bottom() ? Kl.retry(i) : e.top() === o.bottom() ? Kl.retry(kl.moveDown(o, 1)) : Jl(n, t, o) ? Kl.retry(kl.translate(i, 5, 0)) : Kl.none(); }, move: kl.moveDown, gather: $l.after }, ns = function(n, t, e, r, o) { return 0 === o ? w.some(r) : ((c = n), (l = r.left()), (s = t.point(r)), c .elementFromPoint(l, s) .filter(function(n) { return "table" === xt.name(n); }) .isSome() ? ((u = r), (a = o - 1), ns(n, (i = t), e, i.move(u, 5), a)) : n.situsFromPoint(r.left(), t.point(r)).bind(function(i) { return i.start().fold( w.none, function(i, u) { return Bl(n, i, u) .bind(function(u) { return t .adjuster(n, i, u, e, r) .fold(w.none, function(r) { return ns(n, t, e, r, o - 1); }); }) .orThunk(function() { return w.some(r); }); }, w.none ); })); var i, u, a, c, l, s; }, ts = function(n, t, e) { var r, o, i, u = n.move(e, 5), a = ns(t, n, e, u, 100).getOr(u); return ((r = n), (o = a), (i = t), r.point(o) > i.getInnerHeight() ? w.some(r.point(o) - i.getInnerHeight()) : r.point(o) < 0 ? w.some(-r.point(o)) : w.none()).fold( function() { return t.situsFromPoint(a.left(), n.point(a)); }, function(e) { return t.scrollBy(0, e), t.situsFromPoint(a.left(), n.point(a) - e); } ); }, es = { tryUp: m.curry(ts, Ql), tryDown: m.curry(ts, Zl), ieTryUp: function(n, t) { return n.situsFromPoint(t.left(), t.top() - 5); }, ieTryDown: function(n, t) { return n.situsFromPoint(t.left(), t.bottom() + 5); }, getJumpSize: m.constant(5) }, rs = wr([ { none: ["message"] }, { success: [] }, { failedUp: ["cell"] }, { failedDown: ["cell"] } ]), os = function(n) { return qt.closest(n, "tr"); }, is = { verify: function(n, t, e, r, o, i, u) { return qt .closest(r, "td,th", u) .bind(function(e) { return qt.closest(t, "td,th", u).map(function(t) { return ot.eq(e, t) ? ot.eq(r, e) && Ce(e) === o ? i(t) : rs.none("in same cell") : Ve(os, [e, t]).fold( function() { return ( (o = t), (u = e), (a = (r = n).getRect(o)), (c = r.getRect(u)).right > a.left && c.left < a.right ? rs.success() : i(t) ); var r, o, u, a, c; }, function(n) { return i(t); } ); }); }) .getOr(rs.none("default")); }, cata: function(n, t, e, r, o) { return n.fold(t, e, r, o); }, adt: rs }, us = { point: X.immutable("element", "offset"), delta: X.immutable("element", "deltaOffset"), range: X.immutable("element", "start", "finish"), points: X.immutable("begin", "end"), text: X.immutable("element", "text") }, as = (X.immutable("ancestor", "descendants", "element", "index"), X.immutable("parent", "children", "element", "index")), cs = function(n, t) { return B.findIndex(n, m.curry(ot.eq, t)); }, ls = function(n) { return dt.parent(n).bind(function(t) { var e = dt.children(t); return cs(e, n).map(function(r) { return as(t, e, n, r); }); }); }, ss = function(n) { return "br" === xt.name(n); }, fs = function(n, t, e) { return t(n, e).bind(function(n) { return xt.isText(n) && 0 === we.get(n).trim().length ? fs(n, t, e) : w.some(n); }); }, ds = function(n, t, e, r) { return ((o = t), (i = e), dt .child(o, i) .filter(ss) .orThunk(function() { return dt.child(o, i - 1).filter(ss); })).bind(function(t) { return r.traverse(t).fold( function() { return fs(t, r.gather, n).map(r.relative); }, function(n) { return ls(n).map(function(n) { return gc.on(n.parent(), n.index()); }); } ); }); var o, i; }, ms = function(n, t, e, r) { var o, i, u; return (ss(t) ? ((o = n), (i = t), (u = r) .traverse(i) .orThunk(function() { return fs(i, u.gather, o); }) .map(u.relative)) : ds(n, t, e, r) ).map(function(n) { return { start: m.constant(n), finish: m.constant(n) }; }); }, gs = function(n) { return is.cata( n, function(n) { return w.none("BR ADT: none"); }, function() { return w.none(); }, function(n) { return w.some(us.point(n, 0)); }, function(n) { return w.some(us.point(n, Ce(n))); } ); }, ps = tt.detect(), hs = function(n, t, e, r, o, i) { return 0 === i ? w.none() : ws(n, t, e, r, o).bind(function(u) { var a = n.fromSitus(u), c = is.verify(n, e, r, a.finish(), a.foffset(), o.failure, t); return is.cata( c, function() { return w.none(); }, function() { return w.some(u); }, function(u) { return ot.eq(e, u) && 0 === r ? vs(n, e, r, kl.moveUp, o) : hs(n, t, u, 0, o, i - 1); }, function(u) { return ot.eq(e, u) && r === Ce(u) ? vs(n, e, r, kl.moveDown, o) : hs(n, t, u, Ce(u), o, i - 1); } ); }); }, vs = function(n, t, e, r, o) { return El(n, t, e).bind(function(t) { return bs(n, o, r(t, es.getJumpSize())); }); }, bs = function(n, t, e) { return ps.browser.isChrome() || ps.browser.isSafari() || ps.browser.isFirefox() || ps.browser.isEdge() ? t.otherRetry(n, e) : ps.browser.isIE() ? t.ieRetry(n, e) : w.none(); }, ws = function(n, t, e, r, o) { return El(n, e, r).bind(function(t) { return bs(n, o, t); }); }, ys = function(n, t, e) { return ((r = n), (o = t), (i = e), r.getSelection().bind(function(n) { return ms(o, n.finish(), n.foffset(), i).fold( function() { return w.some(us.point(n.finish(), n.foffset())); }, function(t) { var e = r.fromSitus(t), u = is.verify( r, n.finish(), n.foffset(), e.finish(), e.foffset(), i.failure, o ); return gs(u); } ); })).bind(function(r) { return hs(n, t, r.element(), r.offset(), e, 20).map(n.fromSitus); }); var r, o, i; }, xs = function(n, t, e) { return Mt.ancestor(n, t, e).isSome(); }, Cs = tt.detect(), Ss = function(n, t, e, r, o) { return qt.closest(r, "td,th", t).bind(function(r) { return qt.closest(r, "table", t).bind(function(i) { return ( (u = i), xs(o, function(n) { return dt.parent(n).exists(function(n) { return ot.eq(n, u); }); }) ? ys(n, t, e).bind(function(n) { return qt.closest(n.finish(), "td,th", t).map(function(t) { return { start: m.constant(r), finish: m.constant(t), range: m.constant(n) }; }); }) : w.none() ); var u; }); }); }, Rs = function(n, t, e, r, o, i) { return Cs.browser.isIE() ? w.none() : i(r, t).orThunk(function() { return Ss(n, t, e, r, o).map(function(n) { var t = n.range(); return gl.response( w.some(yl(t.start(), t.soffset(), t.finish(), t.foffset())), !0 ); }); }); }, Ts = function(n, t, e, r, o, i, u) { return Ss(n, e, r, o, i).bind(function(n) { return Dl.detect(t, e, n.start(), n.finish(), u); }); }, Ds = function(n, t) { return qt.closest(n, "tr", t).bind(function(n) { return qt.closest(n, "table", t).bind(function(e) { var r = Bt.descendants(e, "tr"); return ot.eq(n, r[0]) ? $l .seekLeft( e, function(n) { return Te.last(n).isSome(); }, t ) .map(function(n) { var t = Ce(n); return gl.response(w.some(yl(n, t, n, t)), !0); }) : w.none(); }); }); }, As = function(n, t) { return qt.closest(n, "tr", t).bind(function(n) { return qt.closest(n, "table", t).bind(function(e) { var r = Bt.descendants(e, "tr"); return ot.eq(n, r[r.length - 1]) ? $l .seekRight( e, function(n) { return Te.first(n).isSome(); }, t ) .map(function(n) { return gl.response(w.some(yl(n, 0, n, 0)), !0); }) : w.none(); }); }); }, ks = function(n, t) { return qt.closest(n, "td,th", t); }, Ns = { down: { traverse: dt.nextSibling, gather: $l.after, relative: gc.before, otherRetry: es.tryDown, ieRetry: es.ieTryDown, failure: is.adt.failedDown }, up: { traverse: dt.prevSibling, gather: $l.before, relative: gc.before, otherRetry: es.tryUp, ieRetry: es.ieTryUp, failure: is.adt.failedUp } }, Os = X.immutable("rows", "cols"), Es = function(n, t, e, r) { var o, i, u, a, c, l, s = Rl(n), f = ((o = s), (i = t), (u = e), (a = r), (c = w.none()), (l = function() { c = w.none(); }), { mousedown: function(n) { a.clear(i), (c = ks(n.target(), u)); }, mouseover: function(n) { c.each(function(t) { a.clear(i), ks(n.target(), u).each(function(n) { lr(t, n, u).each(function(e) { var r = e.boxes().getOr([]); (r.length > 1 || (1 === r.length && !ot.eq(t, n))) && (a.selectRange(i, r, e.start(), e.finish()), o.selectContents(n)); }); }); }); }, mouseup: function() { c.each(l); } }); return { mousedown: f.mousedown, mouseover: f.mouseover, mouseup: f.mouseup }; }, Bs = function(n, t, e, r) { var o = Rl(n), i = function() { return r.clear(t), w.none(); }; return { keydown: function(n, u, a, c, l, s) { var f = n.raw().which, d = !0 === n.raw().shiftKey; return sr(t, r.selectedSelector()).fold( function() { return bl.isDown(f) && d ? m.curry(Ts, o, t, e, Ns.down, c, u, r.selectRange) : bl.isUp(f) && d ? m.curry(Ts, o, t, e, Ns.up, c, u, r.selectRange) : bl.isDown(f) ? m.curry(Rs, o, e, Ns.down, c, u, As) : bl.isUp(f) ? m.curry(Rs, o, e, Ns.up, c, u, Ds) : w.none; }, function(n) { var e = function(e) { return function() { return $o(e, function(e) { return Dl.update(e.rows(), e.cols(), t, n, r); }).fold( function() { return dr( t, r.firstSelectedSelector(), r.lastSelectedSelector() ).map(function(n) { var e = bl.isDown(f) || s.isForward(f) ? gc.after : gc.before; return ( o.setRelativeSelection( gc.on(n.first(), 0), e(n.table()) ), r.clear(t), gl.response(w.none(), !0) ); }); }, function(n) { return w.some(gl.response(w.none(), !0)); } ); }; }; return bl.isDown(f) && d ? e([Os(1, 0)]) : bl.isUp(f) && d ? e([Os(-1, 0)]) : s.isBackward(f) && d ? e([Os(0, -1), Os(-1, 0)]) : s.isForward(f) && d ? e([Os(0, 1), Os(1, 0)]) : bl.isNavigation(f) && !1 === d ? i : w.none; } )(); }, keyup: function(n, o, i, u, a) { return sr(t, r.selectedSelector()).fold(function() { var c = n.raw().which; return 0 == (!0 === n.raw().shiftKey) ? w.none() : bl.isNavigation(c) ? Dl.sync(t, e, o, i, u, a, r.selectRange) : w.none(); }, w.none); } }; }, Is = function(n) { var t = function(t) { Dt.remove(t, n.selected()), Dt.remove(t, n.firstSelected()), Dt.remove(t, n.lastSelected()); }, e = function(t) { Dt.set(t, n.selected(), "1"); }, r = function(e) { var r = Bt.descendants(e, n.selectedSelector()); B.each(r, t); }; return { clear: r, selectRange: function(t, o, i, u) { r(t), B.each(o, e), Dt.set(i, n.firstSelected(), "1"), Dt.set(u, n.lastSelected(), "1"); }, selectedSelector: n.selectedSelector, firstSelectedSelector: n.firstSelectedSelector, lastSelectedSelector: n.lastSelectedSelector }; }, Ps = function(n, t) { var e = X.immutableBag( ["mousedown", "mouseover", "mouseup", "keyup", "keydown"], [] ), r = w.none(), o = Is(br); return ( n.on("init", function(i) { var u = n.getWin(), a = sa.getBody(n), c = sa.getIsRoot(n), l = Es(u, a, c, o), s = Bs(u, a, c, o), f = function(t, e) { e.kill() && t.kill(), e.selection().each(function(t) { var e = vc.relative(t.start(), t.finish()), r = kc(u, e); n.selection.setRng(r); }); }, d = function(t) { var e = h(t); if (e.raw().shiftKey && bl.isNavigation(e.raw().which)) { var r = n.selection.getRng(), o = en.fromDom(r.startContainer), i = en.fromDom(r.endContainer); s.keyup(e, o, r.startOffset, i, r.endOffset).each(function(n) { f(e, n); }); } }, g = function(n) { return !( Dt.has(n, "data-mce-bogus") || "br" === xt.name(n) || (xt.isText(n) && 0 === we.get(n).length) ); }, p = function(e) { var r, o, i = h(e); t().each(function(n) { n.hideBars(); }), 40 === e.which && ((r = en.fromDom(n.getBody())), (o = function(n) { return dt.prevSibling(n).bind(function(n) { return g(n) ? w.some(n) : o(n); }); }), dt.lastChild(r).bind(function(n) { return g(n) ? w.some(n) : o(n); })).each(function(t) { "table" === xt.name(t) && (n.settings.forced_root_block ? n.dom.add( n.getBody(), n.settings.forced_root_block, n.settings.forced_root_block_attrs, "
    " ) : n.dom.add(n.getBody(), "br")); }); var u = n.selection.getRng(), a = en.fromDom(n.selection.getStart()), c = en.fromDom(u.startContainer), l = en.fromDom(u.endContainer), d = pa(a).isRtl() ? bl.rtl : bl.ltr; s .keydown(i, c, u.startOffset, l, u.endOffset, d) .each(function(n) { f(i, n); }), t().each(function(n) { n.showBars(); }); }, h = function(n) { var t = en.fromDom(n.target), e = function() { n.stopPropagation(); }, r = function() { n.preventDefault(); }, o = m.compose( r, e ); return { target: m.constant(t), x: m.constant(n.x), y: m.constant(n.y), stop: e, prevent: r, kill: o, raw: m.constant(n) }; }, v = function(n) { return 0 === n.button; }, b = function(n) { v(n) && l.mousedown(h(n)); }, y = function(n) { var t; ((t = n).buttons === undefined || 0 != (1 & t.buttons)) && l.mouseover(h(n)); }, x = function(n) { v && l.mouseup(h(n)); }; n.on("mousedown", b), n.on("mouseover", y), n.on("mouseup", x), n.on("keyup", d), n.on("keydown", p), n.on("nodechange", function() { var t = n.selection, e = en.fromDom(t.getStart()), r = en.fromDom(t.getEnd()), i = Vt(e), u = Vt(r); i.bind(function(n) { return u.bind(function(t) { return ot.eq(n, t) ? w.some(!0) : w.none(); }); }).fold(function() { o.clear(a); }, m.noop); }), (r = w.some( e({ mousedown: b, mouseover: y, mouseup: x, keyup: d, keydown: p }) )); }), { clear: o.clear, destroy: function() { r.each(function(n) {}); } } ); }, Ws = function(n) { return { get: function() { var t = sa.getBody(n); return mr(t, br.selectedSelector()).fold( function() { return n.selection.getStart() === undefined ? xr.none() : xr.single(n.selection); }, function(n) { return xr.multiple(n); } ); } }; }, _s = ba.each, Ms = { addButtons: function(n) { var t = []; function e(t) { return function() { n.execCommand(t); }; } _s( "inserttable tableprops deletetable | cell row column".split(" "), function(e) { "|" === e ? t.push({ text: "-" }) : t.push(n.menuItems[e]); } ), n.addButton("table", { type: "menubutton", title: "Table", menu: t }), n.addButton("tableprops", { title: "Table properties", onclick: m.curry(Ta, n, !0), icon: "table" }), n.addButton("tabledelete", { title: "Delete table", onclick: e("mceTableDelete") }), n.addButton("tablecellprops", { title: "Cell properties", onclick: e("mceTableCellProps") }), n.addButton("tablemergecells", { title: "Merge cells", onclick: e("mceTableMergeCells") }), n.addButton("tablesplitcells", { title: "Split cell", onclick: e("mceTableSplitCells") }), n.addButton("tableinsertrowbefore", { title: "Insert row before", onclick: e("mceTableInsertRowBefore") }), n.addButton("tableinsertrowafter", { title: "Insert row after", onclick: e("mceTableInsertRowAfter") }), n.addButton("tabledeleterow", { title: "Delete row", onclick: e("mceTableDeleteRow") }), n.addButton("tablerowprops", { title: "Row properties", onclick: e("mceTableRowProps") }), n.addButton("tablecutrow", { title: "Cut row", onclick: e("mceTableCutRow") }), n.addButton("tablecopyrow", { title: "Copy row", onclick: e("mceTableCopyRow") }), n.addButton("tablepasterowbefore", { title: "Paste row before", onclick: e("mceTablePasteRowBefore") }), n.addButton("tablepasterowafter", { title: "Paste row after", onclick: e("mceTablePasteRowAfter") }), n.addButton("tableinsertcolbefore", { title: "Insert column before", onclick: e("mceTableInsertColBefore") }), n.addButton("tableinsertcolafter", { title: "Insert column after", onclick: e("mceTableInsertColAfter") }), n.addButton("tabledeletecol", { title: "Delete column", onclick: e("mceTableDeleteCol") }); }, addToolbars: function(n) { var t = n.settings.table_toolbar; "" !== t && !1 !== t && (t || (t = "tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"), n.addContextToolbar(function(t) { return n.dom.is(t, "table") && n.getBody().contains(t); }, t)); } }, Ls = { addMenuItems: function(n, t) { var e = w.none(), r = [], o = [], i = [], u = [], a = function(n) { n.disabled(!0); }, c = function(n) { n.disabled(!1); }, l = function() { var n = this; r.push(n), e.fold( function() { a(n); }, function(t) { c(n); } ); }, s = function() { var n = this; o.push(n), e.fold( function() { a(n); }, function(t) { c(n); } ); }; n.on("init", function() { n.on("nodechange", function(l) { var s = w.from(n.dom.getParent(n.selection.getStart(), "th,td")); (e = s.bind(function(n) { var e = en.fromDom(n); return Vt(e).map(function(n) { return kr.forMenu(t, n, e); }); })).fold( function() { B.each(r, a), B.each(o, a), B.each(i, a), B.each(u, a); }, function(n) { B.each(r, c), B.each(o, c), B.each(i, function(t) { t.disabled(n.mergable().isNone()); }), B.each(u, function(t) { t.disabled(n.unmergable().isNone()); }); } ); }); }); var f = function(n, t, e, r) { var o, i, u, a, c, l = r.getEl().getElementsByTagName("table")[0], s = r.isRtl() || "tl-tr" === r.parent().rel; for ( l.nextSibling.innerHTML = t + 1 + " x " + (e + 1), s && (t = 9 - t), i = 0; i < 10; i++ ) for (o = 0; o < 10; o++) (a = l.rows[i].childNodes[o].firstChild), (c = (s ? o >= t : o <= t) && i <= e), n.dom.toggleClass(a, "mce-active", c), c && (u = a); return u.parentNode; }, d = !1 === n.settings.table_grid ? { text: "Table", icon: "table", context: "table", onclick: m.curry(Ta, n) } : { text: "Table", icon: "table", context: "table", ariaHideMenu: !0, onclick: function(t) { t.aria && (this.parent().hideAll(), t.stopImmediatePropagation(), Ta(n)); }, onshow: function() { f(n, 0, 0, this.menu.items()[0]); }, onhide: function() { var t = this.menu .items()[0] .getEl() .getElementsByTagName("a"); n.dom.removeClass(t, "mce-active"), n.dom.addClass(t[0], "mce-active"); }, menu: [ { type: "container", html: (function() { var n = ""; n = ''; for (var t = 0; t < 10; t++) { n += ""; for (var e = 0; e < 10; e++) n += ''; n += ""; } return ( (n += "
    "), (n += '') ); })(), onPostRender: function() { this.lastX = this.lastY = 0; }, onmousemove: function(t) { var e, r, o = t.target; "A" === o.tagName.toUpperCase() && ((e = parseInt(o.getAttribute("data-mce-x"), 10)), (r = parseInt(o.getAttribute("data-mce-y"), 10)), (this.isRtl() || "tl-tr" === this.parent().rel) && (e = 9 - e), (e === this.lastX && r === this.lastY) || (f(n, e, r, t.control), (this.lastX = e), (this.lastY = r))); }, onclick: function(t) { var e = this; "A" === t.target.tagName.toUpperCase() && (t.preventDefault(), t.stopPropagation(), e.parent().cancel(), n.undoManager.transact(function() { Pr.insert(n, e.lastX + 1, e.lastY + 1); }), n.addVisual()); } } ] }; function g(t) { return function() { n.execCommand(t); }; } var p = { text: "Table properties", context: "table", onPostRender: l, onclick: m.curry(Ta, n, !0) }, h = { text: "Delete table", context: "table", onPostRender: l, cmd: "mceTableDelete" }, v = { text: "Row", context: "table", menu: [ { text: "Insert row before", onclick: g("mceTableInsertRowBefore"), onPostRender: s }, { text: "Insert row after", onclick: g("mceTableInsertRowAfter"), onPostRender: s }, { text: "Delete row", onclick: g("mceTableDeleteRow"), onPostRender: s }, { text: "Row properties", onclick: g("mceTableRowProps"), onPostRender: s }, { text: "-" }, { text: "Cut row", onclick: g("mceTableCutRow"), onPostRender: s }, { text: "Copy row", onclick: g("mceTableCopyRow"), onPostRender: s }, { text: "Paste row before", onclick: g("mceTablePasteRowBefore"), onPostRender: s }, { text: "Paste row after", onclick: g("mceTablePasteRowAfter"), onPostRender: s } ] }, b = { text: "Column", context: "table", menu: [ { text: "Insert column before", onclick: g("mceTableInsertColBefore"), onPostRender: s }, { text: "Insert column after", onclick: g("mceTableInsertColAfter"), onPostRender: s }, { text: "Delete column", onclick: g("mceTableDeleteCol"), onPostRender: s } ] }, y = { separator: "before", text: "Cell", context: "table", menu: [ { text: "Cell properties", onclick: g("mceTableCellProps"), onPostRender: s }, { text: "Merge cells", onclick: g("mceTableMergeCells"), onPostRender: function() { var n = this; i.push(n), e.fold( function() { a(n); }, function(t) { n.disabled(t.mergable().isNone()); } ); } }, { text: "Split cell", onclick: g("mceTableSplitCells"), onPostRender: function() { var n = this; u.push(n), e.fold( function() { a(n); }, function(t) { n.disabled(t.unmergable().isNone()); } ); } } ] }; n.addMenuItem("inserttable", d), n.addMenuItem("tableprops", p), n.addMenuItem("deletetable", h), n.addMenuItem("row", v), n.addMenuItem("column", b), n.addMenuItem("cell", y); } }; f.add("table", function(n) { var t = oc(n), e = Ps(n, t.lazyResize), r = ha(n, t.lazyWire), o = Ws(n); Ia.registerCommands(n, r, e, o), Nr.registerEvents(n, o, r, e), Ls.addMenuItems(n, o), Ms.addButtons(n), Ms.addToolbars(n), n.on("PreInit", function() { n.serializer.addTempAttr(br.firstSelected()), n.serializer.addTempAttr(br.lastSelected()); }), !1 !== n.settings.table_tab_navigation && n.on("keydown", function(e) { ml.handle(e, n, r, t.lazyWire); }), n.on("remove", function() { t.destroy(), e.destroy(); }), (this.insertTable = function(t, e) { return Pr.insert(n, t, e); }), (this.setClipboardRows = Ia.setClipboardRows), (this.getClipboardRows = Ia.getClipboardRows); }); })(); !(function() { "use strict"; var e = tinymce.util.Tools.resolve("tinymce.PluginManager"), t = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), n = tinymce.util.Tools.resolve("tinymce.EditorManager"), i = tinymce.util.Tools.resolve("tinymce.Env"), o = tinymce.util.Tools.resolve("tinymce.util.Delay"), l = tinymce.util.Tools.resolve("tinymce.util.Tools"), u = tinymce.util.Tools.resolve("tinymce.util.VK"), r = { getTabFocus: function(e) { return e.getParam( "tab_focus", e.getParam("tabfocus_elements", ":prev,:next") ); } }, c = t.DOM, s = function(e) { e.keyCode !== u.TAB || e.ctrlKey || e.altKey || e.metaKey || e.preventDefault(); }, a = function(e) { function t(t) { var s, a, y, f; if ( !( t.keyCode !== u.TAB || t.ctrlKey || t.altKey || t.metaKey || t.isDefaultPrevented() ) && (1 === (y = l.explode(r.getTabFocus(e))).length && ((y[1] = y[0]), (y[0] = ":prev")), (a = t.shiftKey ? ":prev" === y[0] ? m(-1) : c.get(y[0]) : ":next" === y[1] ? m(1) : c.get(y[1]))) ) { var d = n.get(a.id || a.name); a.id && d ? d.focus() : o.setTimeout(function() { i.webkit || window.focus(), a.focus(); }, 10), t.preventDefault(); } function m(i) { function o(e) { return ( /INPUT|TEXTAREA|BUTTON/.test(e.tagName) && n.get(t.id) && -1 !== e.tabIndex && (function i(e) { return ( "BODY" === e.nodeName || ("hidden" !== e.type && "none" !== e.style.display && "hidden" !== e.style.visibility && i(e.parentNode)) ); })(e) ); } if ( ((a = c.select(":input:enabled,*[tabindex]:not(iframe)")), l.each(a, function(t, n) { if (t.id === e.id) return (s = n), !1; }), i > 0) ) { for (f = s + 1; f < a.length; f++) if (o(a[f])) return a[f]; } else for (f = s - 1; f >= 0; f--) if (o(a[f])) return a[f]; return null; } } e.on("init", function() { e.inline && c.setAttrib(e.getBody(), "tabIndex", null), e.on("keyup", s), i.gecko ? e.on("keypress keydown", t) : e.on("keydown", t); }); }; e.add("tabfocus", function(e) { a(e); }); })(); !(function() { "use strict"; var e = function(t) { var n = t, r = function() { return n; }; return { get: r, set: function(e) { n = e; }, clone: function() { return e(r()); } }; }, t = tinymce.util.Tools.resolve("tinymce.PluginManager"), n = function(e) { return !( !/(^|[ ,])tinymcespellchecker([, ]|$)/.test(e.settings.plugins) || !t.get("tinymcespellchecker") || ("undefined" != typeof window.console && window.console.log && window.console.log( "Spell Checker Pro is incompatible with Spell Checker plugin! Remove 'spellchecker' from the 'plugins' option." ), 0) ); }, r = function(e) { return e.getParam( "spellchecker_languages", "English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,German=de,Italian=it,Polish=pl,Portuguese=pt_BR,Spanish=es,Swedish=sv" ); }, o = function(e) { var t = e.getParam("language", "en"); return e.getParam("spellchecker_language", t); }, i = function(e) { return e.getParam("spellchecker_rpc_url"); }, c = function(e) { return e.getParam("spellchecker_callback"); }, a = function(e) { var t = new RegExp( '[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e\xa0\u2002\u2003\u2009]+', "g" ); return e.getParam("spellchecker_wordchar_pattern", t); }, l = tinymce.util.Tools.resolve("tinymce.util.Tools"), s = tinymce.util.Tools.resolve("tinymce.util.URI"), u = tinymce.util.Tools.resolve("tinymce.util.XHR"), d = function(e) { return e.fire("SpellcheckStart"); }, f = function(e) { return e.fire("SpellcheckEnd"); }; function h(e) { return e && 1 === e.nodeType && "false" === e.contentEditable; } var g, m = function(e, t) { var n, r, o, i, c, a = [], l = t.dom; function s(e, t) { if (!e[0]) throw new Error( "findAndReplaceDOMText cannot handle zero-length matches" ); return { start: e.index, end: e.index + e[0].length, text: e[0], data: t }; } function u(t) { var n = e.getElementsByTagName("*"), r = []; t = "number" == typeof t ? "" + t : null; for (var o = 0; o < n.length; o++) { var i = n[o], c = i.getAttribute("data-mce-index"); null !== c && c.length && -1 !== i.className.indexOf("mce-spellchecker-word") && ((c !== t && null !== t) || r.push(i)); } return r; } function d(e) { for (var t = a.length; t--; ) if (a[t] === e) return t; return -1; } function f(e) { for (var t = 0, n = a.length; t < n && !1 !== e(a[t], t); t++); return this; } function g(e) { var t, n, r = u(e ? d(e) : null); for (t = r.length; t--; ) (n = r[t]).parentNode.insertBefore(n.firstChild, n), n.parentNode.removeChild(n); return this; } function m(e) { var n = u(d(e)), r = t.dom.createRng(); return r.setStartBefore(n[0]), r.setEndAfter(n[n.length - 1]), r; } return ( (o = t.schema.getBlockElements()), (i = t.schema.getWhiteSpaceElements()), (c = t.schema.getShortEndedElements()), { text: (r = (function p(e) { var t; if (3 === e.nodeType) return e.data; if (i[e.nodeName] && !o[e.nodeName]) return ""; if (h(e)) return "\n"; if ( ((t = ""), (o[e.nodeName] || c[e.nodeName]) && (t += "\n"), (e = e.firstChild)) ) do { t += p(e); } while ((e = e.nextSibling)); return t; })(e)), matches: a, each: f, filter: function(e) { var t = []; return ( f(function(n, r) { e(n, r) && t.push(n); }), (a = t), this ); }, reset: function() { return a.splice(0, a.length), g(), this; }, matchFromElement: function(e) { return a[e.getAttribute("data-mce-index")]; }, elementFromMatch: function(e) { return u(d(e))[0]; }, find: function(e, t) { if (r && e.global) for (; (n = e.exec(r)); ) a.push(s(n, t)); return this; }, add: function(e, t, n) { return ( a.push({ start: e, end: e + t, text: r.substr(e, t), data: n }), this ); }, wrap: function(t) { return ( a.length && (function(e, t, n) { var r, a, l, s, u, d = [], f = 0, g = e, m = 0; (t = t.slice(0)).sort(function(e, t) { return e.start - t.start; }), (u = t.shift()); e: for (;;) { if ( ((o[g.nodeName] || c[g.nodeName] || h(g)) && f++, 3 === g.nodeType && (!a && g.length + f >= u.end ? ((a = g), (s = u.end - f)) : r && d.push(g), !r && g.length + f > u.start && ((r = g), (l = u.start - f)), (f += g.length)), r && a) ) { if ( ((g = n({ startNode: r, startNodeIndex: l, endNode: a, endNodeIndex: s, innerNodes: d, match: u.text, matchIndex: m })), (f -= a.length - s), (r = null), (a = null), (d = []), m++, !(u = t.shift())) ) break; } else if ( (i[g.nodeName] && !o[g.nodeName]) || !g.firstChild ) { if (g.nextSibling) { g = g.nextSibling; continue; } } else if (!h(g)) { g = g.firstChild; continue; } for (;;) { if (g.nextSibling) { g = g.nextSibling; break; } if (g.parentNode === e) break e; g = g.parentNode; } } })( e, a, (function(e) { function t(t, n) { var r = a[n]; r.stencil || (r.stencil = e(r)); var o = r.stencil.cloneNode(!1); return ( o.setAttribute("data-mce-index", n), t && o.appendChild(l.doc.createTextNode(t)), o ); } return function(e) { var n, r, o, i = e.startNode, c = e.endNode, a = e.matchIndex, s = l.doc; if (i === c) { var u = i; (o = u.parentNode), e.startNodeIndex > 0 && ((n = s.createTextNode( u.data.substring(0, e.startNodeIndex) )), o.insertBefore(n, u)); var d = t(e.match, a); return ( o.insertBefore(d, u), e.endNodeIndex < u.length && ((r = s.createTextNode( u.data.substring(e.endNodeIndex) )), o.insertBefore(r, u)), u.parentNode.removeChild(u), d ); } (n = s.createTextNode( i.data.substring(0, e.startNodeIndex) )), (r = s.createTextNode( c.data.substring(e.endNodeIndex) )); for ( var f = t(i.data.substring(e.startNodeIndex), a), h = [], g = 0, m = e.innerNodes.length; g < m; ++g ) { var p = e.innerNodes[g], v = t(p.data, a); p.parentNode.replaceChild(v, p), h.push(v); } var x = t(c.data.substring(0, e.endNodeIndex), a); return ( (o = i.parentNode).insertBefore(n, i), o.insertBefore(f, i), o.removeChild(i), (o = c.parentNode).insertBefore(x, c), o.insertBefore(r, c), o.removeChild(c), x ); }; })(t) ), this ); }, unwrap: g, replace: function(e, n) { var r = m(e); return ( r.deleteContents(), n.length > 0 && r.insertNode(t.dom.doc.createTextNode(n)), r ); }, rangeFromMatch: m, indexOf: d } ); }, p = function(e, t) { if (!t.get()) { var n = m(e.getBody(), e); t.set(n); } return t.get(); }, v = function(e, t, n, r, o, a, d) { var f, h, g, m = c(e); ( m || ((f = e), (h = t), (g = n), function(e, t, n, r) { var o = { method: e, lang: g.get() }, c = ""; (o["addToDictionary" === e ? "word" : "text"] = t), l.each(o, function(e, t) { c && (c += "&"), (c += t + "=" + encodeURIComponent(e)); }), u.send({ url: new s(h).toAbsolute(i(f)), type: "post", content_type: "application/x-www-form-urlencoded", data: c, success: function(e) { if ((e = JSON.parse(e))) e.error ? r(e.error) : n(e); else { var t = f.translate("Server response wasn't proper JSON."); r(t); } }, error: function() { var e = f.translate("The spelling service was not found: (") + i(f) + f.translate(")"); r(e); } }); }) ).call(e.plugins.spellchecker, r, o, a, d); }, x = function(e, t, n) { e.dom.select("span.mce-spellchecker-word").length || N(e, t, n); }, N = function(e, t, n) { if ((p(e, n).reset(), n.set(null), t.get())) return t.set(!1), f(e), !0; }, k = function(e) { var t = e.getAttribute("data-mce-index"); return "number" == typeof t ? "" + t : t; }, y = function(e, t, n, r, o) { var i, c; if ( (o.words ? ((c = !!o.dictionary), (i = o.words)) : (i = o), e.setProgressState(!1), (function(e) { for (var t in e) return !1; return !0; })(i)) ) { var l = e.translate("No misspellings found."); return ( e.notificationManager.open({ text: l, type: "info" }), void t.set(!1) ); } r.set({ suggestions: i, hasDictionarySupport: c }), p(e, n) .find(a(e)) .filter(function(e) { return !!i[e.text]; }) .wrap(function(t) { return e.dom.create("span", { class: "mce-spellchecker-word", "data-mce-bogus": 1, "data-mce-word": t.text }); }), t.set(!0), d(e); }, S = { spellcheck: function(e, t, n, r, o, i) { N(e, n, r) || (e.setProgressState(!0), v( e, t, i, "spellcheck", p(e, r).text, function(t) { y(e, n, r, o, t); }, function(t) { e.notificationManager.open({ text: t, type: "error" }), e.setProgressState(!1), N(e, n, r); } ), e.focus()); }, checkIfFinished: x, addToDictionary: function(e, t, n, r, o, i) { e.setProgressState(!0), v( e, t, "addToDictionary", o, function() { e.setProgressState(!1), e.dom.remove(i, !0), x(e, n, r); }, function(t) { e.notificationManager.open({ text: t, type: "error" }), e.setProgressState(!1); } ); }, ignoreWord: function(e, t, n, r, o, i) { e.selection.collapse(), i ? l.each(e.dom.select("span.mce-spellchecker-word"), function(t) { t.getAttribute("data-mce-word") === r && e.dom.remove(t, !0); }) : e.dom.remove(o, !0), x(e, t, n); }, findSpansByIndex: function(e, t) { var n, r = []; if ((n = l.toArray(e.getBody().getElementsByTagName("span"))).length) for (var o = 0; o < n.length; o++) { var i = k(n[o]); null !== i && i.length && i === t.toString() && r.push(n[o]); } return r; }, getElmIndex: k, markErrors: y }, w = function(e, t, n, r, i) { return { getTextMatcher: function() { return r.get(); }, getWordCharPattern: function() { return a(e); }, markErrors: function(o) { S.markErrors(e, t, r, n, o); }, getLanguage: function() { return o(e); } }; }, b = function(e, t, n, r, o, i) { e.addCommand("mceSpellCheck", function() { S.spellcheck(e, t, n, r, o, i); }); }, T = function(e, t, n, i, c, a) { var s, u, d, f, h = ((d = e), (s = l.map(r(d).split(","), function(e) { return { name: (e = e.split("="))[0], value: e[1] }; })), (u = []), l.each(s, function(e) { u.push({ selectable: !0, text: e.name, data: e.value }); }), u), g = function() { S.spellcheck(e, t, n, i, a, c); }, m = { tooltip: "Spellcheck", onclick: g, onPostRender: function(t) { var r = t.control; e.on("SpellcheckStart SpellcheckEnd", function() { r.active(n.get()); }); } }; h.length > 1 && ((m.type = "splitbutton"), (m.menu = h), (m.onshow = ((f = e), function(e) { var t = o(f); e.control.items().each(function(e) { e.active(e.settings.data === t); }); })), (m.onselect = function(e) { c.set(e.control.settings.data); })), e.addButton("spellchecker", m), e.addMenuItem("spellchecker", { text: "Spellcheck", context: "tools", onclick: g, selectable: !0, onPostRender: function() { var t = this; t.active(n.get()), e.on("SpellcheckStart SpellcheckEnd", function() { t.active(n.get()); }); } }); }, I = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), E = tinymce.util.Tools.resolve("tinymce.ui.Factory"), P = function(e, t, n, r, o) { e.on("click", function(i) { var c = i.target; if ("mce-spellchecker-word" === c.className) { i.preventDefault(); var a = S.findSpansByIndex(e, S.getElmIndex(c)); if (a.length > 0) { var s = e.dom.createRng(); s.setStartBefore(a[0]), s.setEndAfter(a[a.length - 1]), e.selection.setRng(s), (function(e, t, n, r, o, i, c) { var a = [], s = n.get().suggestions[i]; l.each(s, function(t) { a.push({ text: t, onclick: function() { e.insertContent(e.dom.encode(t)), e.dom.remove(c), S.checkIfFinished(e, r, o); } }); }), a.push({ text: "-" }), n.get().hasDictionarySupport && a.push({ text: "Add to Dictionary", onclick: function() { S.addToDictionary(e, t, r, o, i, c); } }), a.push.apply(a, [ { text: "Ignore", onclick: function() { S.ignoreWord(e, r, o, i, c); } }, { text: "Ignore all", onclick: function() { S.ignoreWord(e, r, o, i, c, !0); } } ]), (g = E.create("menu", { items: a, context: "contextmenu", onautohide: function(e) { -1 !== e.target.className.indexOf("spellchecker") && e.preventDefault(); }, onhide: function() { g.remove(), (g = null); } })).renderTo(document.body); var u = I.DOM.getPos(e.getContentAreaContainer()), d = e.dom.getPos(c[0]), f = e.dom.getRoot(); "BODY" === f.nodeName ? ((d.x -= f.ownerDocument.documentElement.scrollLeft || f.scrollLeft), (d.y -= f.ownerDocument.documentElement.scrollTop || f.scrollTop)) : ((d.x -= f.scrollLeft), (d.y -= f.scrollTop)), (u.x += d.x), (u.y += d.y), g.moveTo(u.x, u.y + c[0].offsetHeight); })(e, t, n, r, o, c.getAttribute("data-mce-word"), a); } } }); }; t.add("spellchecker", function(t, r) { if (!1 === n(t)) { var i = e(!1), c = e(o(t)), a = e(null), l = e({}); return ( T(t, r, i, a, c, l), P(t, r, l, i, a), b(t, r, i, a, l, c), w(t, i, l, a, r) ); } }); })(); !(function() { "use strict"; var e = function(t) { var n = t, r = function() { return n; }; return { get: r, set: function(e) { n = e; }, clone: function() { return e(r()); } }; }, t = tinymce.util.Tools.resolve("tinymce.PluginManager"), n = tinymce.util.Tools.resolve("tinymce.util.Tools"); function r(e) { return e && 1 === e.nodeType && "false" === e.contentEditable; } var a = { findAndReplaceDOMText: function(e, t, n, a, i) { var o, d, c, l, s, u, f = [], p = 0; function g(e, t) { if (((t = t || 0), !e[0])) throw new Error( "findAndReplaceDOMText cannot handle zero-length matches" ); var n = e.index; if (t > 0) { var r = e[t]; if (!r) throw new Error("Invalid capture group"); (n += e[0].indexOf(r)), (e[0] = r); } return [n, n + e[0].length, [e[0]]]; } if ( ((c = t.ownerDocument), (l = i.getBlockElements()), (s = i.getWhiteSpaceElements()), (u = i.getShortEndedElements()), (d = (function h(e) { var t; if (3 === e.nodeType) return e.data; if (s[e.nodeName] && !l[e.nodeName]) return ""; if (((t = ""), r(e))) return "\n"; if ( ((l[e.nodeName] || u[e.nodeName]) && (t += "\n"), (e = e.firstChild)) ) do { t += h(e); } while ((e = e.nextSibling)); return t; })(t))) ) { if (e.global) for (; (o = e.exec(d)); ) f.push(g(o, a)); else (o = d.match(e)), f.push(g(o, a)); return ( f.length && ((p = f.length), (function(e, t, n) { var a, i, o, d, c = [], f = 0, p = e, g = t.shift(), h = 0; e: for (;;) { if ( ((l[p.nodeName] || u[p.nodeName] || r(p)) && f++, 3 === p.nodeType && (!i && p.length + f >= g[1] ? ((i = p), (d = g[1] - f)) : a && c.push(p), !a && p.length + f > g[0] && ((a = p), (o = g[0] - f)), (f += p.length)), a && i) ) { if ( ((p = n({ startNode: a, startNodeIndex: o, endNode: i, endNodeIndex: d, innerNodes: c, match: g[2], matchIndex: h })), (f -= i.length - d), (a = null), (i = null), (c = []), h++, !(g = t.shift())) ) break; } else if ( (s[p.nodeName] && !l[p.nodeName]) || !p.firstChild ) { if (p.nextSibling) { p = p.nextSibling; continue; } } else if (!r(p)) { p = p.firstChild; continue; } for (;;) { if (p.nextSibling) { p = p.nextSibling; break; } if (p.parentNode === e) break e; p = p.parentNode; } } })( t, f, (function(e) { var t; if ("function" != typeof e) { var n = e.nodeType ? e : c.createElement(e); t = function(e, t) { var r = n.cloneNode(!1); return ( r.setAttribute("data-mce-index", t), e && r.appendChild(c.createTextNode(e)), r ); }; } else t = e; return function(e) { var n, r, a, i = e.startNode, o = e.endNode, d = e.matchIndex; if (i === o) { var l = i; (a = l.parentNode), e.startNodeIndex > 0 && ((n = c.createTextNode( l.data.substring(0, e.startNodeIndex) )), a.insertBefore(n, l)); var s = t(e.match[0], d); return ( a.insertBefore(s, l), e.endNodeIndex < l.length && ((r = c.createTextNode( l.data.substring(e.endNodeIndex) )), a.insertBefore(r, l)), l.parentNode.removeChild(l), s ); } (n = c.createTextNode( i.data.substring(0, e.startNodeIndex) )), (r = c.createTextNode(o.data.substring(e.endNodeIndex))); for ( var u = t(i.data.substring(e.startNodeIndex), d), f = [], p = 0, g = e.innerNodes.length; p < g; ++p ) { var h = e.innerNodes[p], m = t(h.data, d); h.parentNode.replaceChild(m, h), f.push(m); } var v = t(o.data.substring(0, e.endNodeIndex), d); return ( (a = i.parentNode).insertBefore(n, i), a.insertBefore(u, i), a.removeChild(i), (a = o.parentNode).insertBefore(v, o), a.insertBefore(r, o), a.removeChild(o), v ); }; })(n) )), p ); } } }, i = function(e) { var t = e.getAttribute("data-mce-index"); return "number" == typeof t ? "" + t : t; }, o = function(e) { var t = e.parentNode; e.firstChild && t.insertBefore(e.firstChild, e), e.parentNode.removeChild(e); }, d = function(e, t) { var r, a = []; if ((r = n.toArray(e.getBody().getElementsByTagName("span"))).length) for (var o = 0; o < r.length; o++) { var d = i(r[o]); null !== d && d.length && d === t.toString() && a.push(r[o]); } return a; }, c = function(e, t, n) { var r = t.get(), a = e.dom; (n = !1 !== n) ? r++ : r--, a.removeClass(d(e, t.get()), "mce-match-marker-selected"); var i = d(e, r); return i.length ? (a.addClass(d(e, r), "mce-match-marker-selected"), e.selection.scrollIntoView(i[0]), r) : -1; }, l = function(e, t) { var n = t.parentNode; e.remove(t), e.isEmpty(n) && e.remove(n); }, s = function(e, t) { var n = c(e, t, !0); -1 !== n && t.set(n); }, u = function(e, t) { var n = c(e, t, !1); -1 !== n && t.set(n); }, f = function(e) { var t = i(e); return null !== t && t.length > 0; }, p = function(e, t, r) { var a, d, c, l; for ( d = n.toArray(e.getBody().getElementsByTagName("span")), a = 0; a < d.length; a++ ) { var s = i(d[a]); null !== s && s.length && (s === t.get().toString() && (c || (c = d[a].firstChild), (l = d[a].firstChild)), o(d[a])); } if (c && l) { var u = e.dom.createRng(); return ( u.setStart(c, 0), u.setEnd(l, l.data.length), !1 !== r && e.selection.setRng(u), u ); } }, g = function(e, t) { return d(e, t.get() + 1).length > 0; }, h = function(e, t) { return d(e, t.get() - 1).length > 0; }, m = { done: p, find: function(e, t, n, r, i) { (n = (n = n.replace( /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&" )).replace(/\s/g, "\\s")), (n = i ? "\\b" + n + "\\b" : n); var o, d, l, s, u, f = ((o = e), (d = t), (l = new RegExp(n, r ? "g" : "gi")), ((u = o.dom.create("span", { "data-mce-bogus": 1 })).className = "mce-match-marker"), (s = o.getBody()), p(o, d, !1), a.findAndReplaceDOMText(l, s, u, !1, o.schema)); return f && (t.set(-1), t.set(c(e, t, !0))), f; }, next: s, prev: u, replace: function(e, t, r, a, d) { var c, p, m, v, x, b, N = t.get(); for ( a = !1 !== a, m = e.getBody(), p = n.grep(n.toArray(m.getElementsByTagName("span")), f), c = 0; c < p.length; c++ ) { var y = i(p[c]); if (((v = x = parseInt(y, 10)), d || v === t.get())) { for ( r.length ? ((p[c].firstChild.nodeValue = r), o(p[c])) : l(e.dom, p[c]); p[++c]; ) { if ((v = parseInt(i(p[c]), 10)) !== x) { c--; break; } l(e.dom, p[c]); } a && N--; } else x > t.get() && p[c].setAttribute("data-mce-index", x - 1); } return ( t.set(N), a ? ((b = g(e, t)), s(e, t)) : ((b = h(e, t)), u(e, t)), !d && b ); }, hasNext: g, hasPrev: h }, v = function(e, t) { return { done: function(n) { return m.done(e, t, n); }, find: function(n, r, a) { return m.find(e, t, n, r, a); }, next: function() { return m.next(e, t); }, prev: function() { return m.prev(e, t); }, replace: function(n, r, a) { return m.replace(e, t, n, r, a); } }; }, x = function(e, t) { var r, a = {}; function i() { d.statusbar.find("#next").disabled(!1 === m.hasNext(e, t)), d.statusbar.find("#prev").disabled(!1 === m.hasPrev(e, t)); } function o() { e.windowManager.alert( "Could not find the specified string.", function() { d.find("#find")[0].focus(); } ); } e.undoManager.add(), (r = n.trim(e.selection.getContent({ format: "text" }))); var d = e.windowManager.open({ layout: "flex", pack: "center", align: "center", onClose: function() { e.focus(), m.done(e, t), e.undoManager.add(); }, onSubmit: function(n) { var r, c, l, s; return ( n.preventDefault(), (c = d.find("#case").checked()), (s = d.find("#words").checked()), (l = d.find("#find").value()).length ? a.text === l && a.caseState === c && a.wholeWord === s ? m.hasNext(e, t) ? (m.next(e, t), void i()) : void o() : ((r = m.find(e, t, l, c, s)) || o(), d.statusbar .items() .slice(1) .disabled(0 === r), i(), void (a = { text: l, caseState: c, wholeWord: s })) : (m.done(e, t, !1), void d.statusbar .items() .slice(1) .disabled(!0)) ); }, buttons: [ { text: "Find", subtype: "primary", onclick: function() { d.submit(); } }, { text: "Replace", disabled: !0, onclick: function() { m.replace(e, t, d.find("#replace").value()) || (d.statusbar .items() .slice(1) .disabled(!0), t.set(-1), (a = {})); } }, { text: "Replace all", disabled: !0, onclick: function() { m.replace(e, t, d.find("#replace").value(), !0, !0), d.statusbar .items() .slice(1) .disabled(!0), (a = {}); } }, { type: "spacer", flex: 1 }, { text: "Prev", name: "prev", disabled: !0, onclick: function() { m.prev(e, t), i(); } }, { text: "Next", name: "next", disabled: !0, onclick: function() { m.next(e, t), i(); } } ], title: "Find and replace", items: { type: "form", padding: 20, labelGap: 30, spacing: 10, items: [ { type: "textbox", name: "find", size: 40, label: "Find", value: r }, { type: "textbox", name: "replace", size: 40, label: "Replace with" }, { type: "checkbox", name: "case", text: "Match case", label: " " }, { type: "checkbox", name: "words", text: "Whole words", label: " " } ] } }); }, b = function(e, t) { e.addCommand("SearchReplace", function() { x(e, t); }); }, N = function(e, t) { return function() { x(e, t); }; }, y = function(e, t) { e.addMenuItem("searchreplace", { text: "Find and replace", shortcut: "Meta+F", onclick: N(e, t), separator: "before", context: "edit" }), e.addButton("searchreplace", { tooltip: "Find and replace", onclick: N(e, t) }), e.shortcuts.add("Meta+F", "", N(e, t)); }; t.add("searchreplace", function(t) { var n = e(-1); return b(t, n), y(t, n), v(t, n); }); })(); !(function() { "use strict"; var n = tinymce.util.Tools.resolve("tinymce.PluginManager"), e = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), t = tinymce.util.Tools.resolve("tinymce.util.Tools"), a = function(n) { return n.getParam("save_enablewhendirty", !0); }, o = function(n) { return !!n.getParam("save_onsavecallback"); }, c = function(n) { return !!n.getParam("save_oncancelcallback"); }, i = function(n, e) { n.notificationManager.open({ text: n.translate(e), type: "error" }); }, r = function(n) { var t; if (((t = e.DOM.getParent(n.id, "form")), !a(n) || n.isDirty())) { if ((n.save(), o(n))) return n.execCallback("save_onsavecallback", n), void n.nodeChanged(); t ? (n.setDirty(!1), (t.onsubmit && !t.onsubmit()) || ("function" == typeof t.submit ? t.submit() : i(n, "Error: Form submit field collision.")), n.nodeChanged()) : i(n, "Error: No form element found."); } }, l = function(n) { var e = t.trim(n.startContent); c(n) ? n.execCallback("save_oncancelcallback", n) : (n.setContent(e), n.undoManager.clear(), n.nodeChanged()); }, d = function(n) { n.addCommand("mceSave", function() { r(n); }), n.addCommand("mceCancel", function() { l(n); }); }, s = function(n) { return function(e) { var t = e.control; n.on("nodeChange dirty", function() { t.disabled(a(n) && !n.isDirty()); }); }; }, u = function(n) { n.addButton("save", { icon: "save", text: "Save", cmd: "mceSave", disabled: !0, onPostRender: s(n) }), n.addButton("cancel", { text: "Cancel", icon: !1, cmd: "mceCancel", disabled: !0, onPostRender: s(n) }), n.addShortcut("Meta+S", "", "mceSave"); }; n.add("save", function(n) { u(n), d(n); }); })(); !(function() { "use strict"; var t = function(t) { t.addCommand("mcePrint", function() { t.getWin().print(); }); }, n = function(t) { t.addButton("print", { title: "Print", cmd: "mcePrint" }), t.addMenuItem("print", { text: "Print", cmd: "mcePrint", icon: "print" }); }; tinymce.util.Tools.resolve("tinymce.PluginManager").add("print", function(i) { t(i), n(i), i.addShortcut("Meta+P", "", "mcePrint"); }); })(); !(function() { "use strict"; var e = tinymce.util.Tools.resolve("tinymce.PluginManager"), t = tinymce.util.Tools.resolve("tinymce.Env"), n = function(e) { return parseInt(e.getParam("plugin_preview_width", "650"), 10); }, i = function(e) { return parseInt(e.getParam("plugin_preview_height", "500"), 10); }, o = function(e) { return e.getParam("content_style", ""); }, r = tinymce.util.Tools.resolve("tinymce.util.Tools"), c = function(e) { var t = "", n = e.dom.encode, i = o(e); (t += ''), i && (t += '"), r.each(e.contentCSS, function(i) { t += ''; }); var c = e.settings.body_id || "tinymce"; -1 !== c.indexOf("=") && (c = (c = e.getParam("body_id", "", "hash"))[e.id] || c); var a = e.settings.body_class || ""; -1 !== a.indexOf("=") && (a = (a = e.getParam("body_class", "", "hash"))[e.id] || ""); var s = e.settings.directionality ? ' dir="' + e.settings.directionality + '"' : ""; return ( "" + t + '" + e.getContent() + ' ' ); }, a = function(e, t, n) { var i = c(e); if (n) t.src = "data:text/html;charset=utf-8," + encodeURIComponent(i); else { var o = t.contentWindow.document; o.open(), o.write(i), o.close(); } }, s = function(e) { var o = !t.ie, r = '", c = n(e), s = i(e); e.windowManager.open({ title: "Preview", width: c, height: s, html: r, buttons: { text: "Close", onclick: function(e) { e.control .parent() .parent() .close(); } }, onPostRender: function(t) { var n = t.control.getEl("body").firstChild; a(e, n, o); } }); }, d = function(e) { e.addCommand("mcePreview", function() { s(e); }); }, l = function(e) { e.addButton("preview", { title: "Preview", cmd: "mcePreview" }), e.addMenuItem("preview", { text: "Preview", cmd: "mcePreview", context: "view" }); }; e.add("preview", function(e) { d(e), l(e); }); })(); !(function() { "use strict"; var e = function(t) { var n = t, r = function() { return n; }; return { get: r, set: function(e) { n = e; }, clone: function() { return e(r()); } }; }, t = tinymce.util.Tools.resolve("tinymce.PluginManager"), n = function(e) { return !( !/(^|[ ,])powerpaste([, ]|$)/.test(e.settings.plugins) || !t.get("powerpaste") || ("undefined" != typeof window.console && window.console.log && window.console.log( "PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option." ), 0) ); }, r = function(e, t) { return { clipboard: e, quirks: t }; }, a = { firePastePreProcess: function(e, t, n, r) { return e.fire("PastePreProcess", { content: t, internal: n, wordContent: r }); }, firePastePostProcess: function(e, t, n, r) { return e.fire("PastePostProcess", { node: t, internal: n, wordContent: r }); }, firePastePlainTextToggle: function(e, t) { return e.fire("PastePlainTextToggle", { state: t }); }, firePaste: function(e, t) { return e.fire("paste", { ieFake: t }); } }, i = { shouldPlainTextInform: function(e) { return e.getParam("paste_plaintext_inform", !0); }, shouldBlockDrop: function(e) { return e.getParam("paste_block_drop", !1); }, shouldPasteDataImages: function(e) { return e.getParam("paste_data_images", !1); }, shouldFilterDrop: function(e) { return e.getParam("paste_filter_drop", !0); }, getPreProcess: function(e) { return e.getParam("paste_preprocess"); }, getPostProcess: function(e) { return e.getParam("paste_postprocess"); }, getWebkitStyles: function(e) { return e.getParam("paste_webkit_styles"); }, shouldRemoveWebKitStyles: function(e) { return e.getParam("paste_remove_styles_if_webkit", !0); }, shouldMergeFormats: function(e) { return e.getParam("paste_merge_formats", !0); }, isSmartPasteEnabled: function(e) { return e.getParam("smart_paste", !0); }, isPasteAsTextEnabled: function(e) { return e.getParam("paste_as_text", !1); }, getRetainStyleProps: function(e) { return e.getParam("paste_retain_style_properties"); }, getWordValidElements: function(e) { return e.getParam( "paste_word_valid_elements", "-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody" ); }, shouldConvertWordFakeLists: function(e) { return e.getParam("paste_convert_word_fake_lists", !0); }, shouldUseDefaultFilters: function(e) { return e.getParam("paste_enable_default_filters", !0); } }, o = function(e, t, n) { var r, o, s; "text" === t.pasteFormat ? ((t.pasteFormat = "html"), a.firePastePlainTextToggle(e, !1)) : ((t.pasteFormat = "text"), a.firePastePlainTextToggle(e, !0), (s = e), !1 === n.get() && i.shouldPlainTextInform(s) && ((o = "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."), (r = e).notificationManager.open({ text: r.translate(o), type: "info" }), n.set(!0))), e.focus(); }, s = function(e, t, n) { e.addCommand("mceTogglePlainTextPaste", function() { o(e, t, n); }), e.addCommand("mceInsertClipboardContent", function(e, n) { n.content && t.pasteHtml(n.content, n.internal), n.text && t.pasteText(n.text); }); }, l = tinymce.util.Tools.resolve("tinymce.Env"), u = tinymce.util.Tools.resolve("tinymce.util.Delay"), c = tinymce.util.Tools.resolve("tinymce.util.Tools"), f = tinymce.util.Tools.resolve("tinymce.util.VK"), d = "x-tinymce/html", m = "\x3c!-- " + d + " --\x3e", p = { mark: function(e) { return m + e; }, unmark: function(e) { return e.replace(m, ""); }, isMarked: function(e) { return -1 !== e.indexOf(m); }, internalHtmlMime: function() { return d; } }, g = tinymce.util.Tools.resolve("tinymce.html.Entities"), v = function(e) { return e.replace(/\r?\n/g, "
    "); }, h = function(e, t, n) { var r = e.split(/\n\n/), a = (function(e, t) { var n, r = [], a = "<" + e; if ("object" == typeof t) { for (n in t) t.hasOwnProperty(n) && r.push(n + '="' + g.encodeAllRaw(t[n]) + '"'); r.length && (a += " " + r.join(" ")); } return a + ">"; })(t, n), i = "", o = c.map(r, function(e) { return e.split(/\n/).join("
    "); }); return 1 === o.length ? o[0] : c .map(o, function(e) { return a + e + i; }) .join(""); }, P = { isPlainText: function(e) { return !/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test( e ); }, convert: function(e, t, n) { return t ? h(e, t, n) : v(e); }, toBRs: v, toBlockElements: h }, y = tinymce.util.Tools.resolve("tinymce.html.DomParser"), b = tinymce.util.Tools.resolve("tinymce.html.Node"), x = tinymce.util.Tools.resolve("tinymce.html.Schema"), w = tinymce.util.Tools.resolve("tinymce.html.Serializer"); function T(e, t) { return ( c.each(t, function(t) { e = t.constructor === RegExp ? e.replace(t, "") : e.replace(t[0], t[1]); }), e ); } var C = { filter: T, innerText: function(e) { var t = x(), n = y({}, t), r = "", a = t.getShortEndedElements(), i = c.makeMap( "script noscript style textarea video audio iframe object", " " ), o = t.getBlockElements(); return ( (e = T(e, [//g])), (function s(e) { var t = e.name, n = e; if ("br" !== t) if ((a[t] && (r += " "), i[t])) r += " "; else { if ( (3 === e.type && (r += e.value), !e.shortEnded && (e = e.firstChild)) ) do { s(e); } while ((e = e.next)); o[t] && n.next && ((r += "\n"), "p" === t && (r += "\n")); } else r += "\n"; })(n.parse(e)), r ); }, trimHtml: function(e) { return (e = T(e, [ /^[\s\S]*]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi, /|/g, [ /( ?)\u00a0<\/span>( ?)/g, function(e, t, n) { return t || n ? "\xa0" : " "; } ], /
    /g, /
    $/i ])); }, createIdGenerator: function(e) { var t = 0; return function() { return e + t++; }; }, isMsEdge: function() { return -1 !== navigator.userAgent.indexOf(" Edge/"); } }; function _(e) { var t, n; return ( (n = [ /^[IVXLMCD]{1,2}\.[ \u00a0]/, /^[ivxlmcd]{1,2}\.[ \u00a0]/, /^[a-z]{1,2}[\.\)][ \u00a0]/, /^[A-Z]{1,2}[\.\)][ \u00a0]/, /^[0-9]+\.[ \u00a0]/, /^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/, /^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/ ]), (e = e.replace(/^[\u00a0 ]+/, "")), c.each(n, function(n) { if (n.test(e)) return (t = !0), !1; }), t ); } function D(e) { var t, n, r = 1; function a(e) { var t = ""; if (3 === e.type) return e.value; if ((e = e.firstChild)) do { t += a(e); } while ((e = e.next)); return t; } function i(e, t) { if (3 === e.type && t.test(e.value)) return (e.value = e.value.replace(t, "")), !1; if ((e = e.firstChild)) do { if (!i(e, t)) return !1; } while ((e = e.next)); return !0; } function o(e, a, o) { var s = e._listLevel || r; s !== r && (s < r ? t && (t = t.parent.parent) : ((n = t), (t = null))), t && t.name === a ? t.append(e) : ((n = n || t), (t = new b(a, 1)), o > 1 && t.attr("start", "" + o), e.wrap(t)), (e.name = "li"), s > r && n && n.lastChild.append(t), (r = s), (function l(e) { if (e._listIgnore) e.remove(); else if ((e = e.firstChild)) do { l(e); } while ((e = e.next)); })(e), i(e, /^\u00a0+/), i(e, /^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/), i(e, /^\u00a0+/); } for (var s = [], l = e.firstChild; void 0 !== l && null !== l; ) if ((s.push(l), null !== (l = l.walk()))) for (; void 0 !== l && l.parent !== e; ) l = l.walk(); for (var u = 0; u < s.length; u++) if ("p" === (e = s[u]).name && e.firstChild) { var c = a(e); if (/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(c)) { o(e, "ul"); continue; } if (_(c)) { var f = /([0-9]+)\./.exec(c), d = 1; f && (d = parseInt(f[1], 10)), o(e, "ol", d); continue; } if (e._listLevel) { o(e, "ul", 1); continue; } t = null; } else (n = t), (t = null); } function k(e, t, n, r) { var a, o = {}, s = e.dom.parseStyle(r); return ( c.each(s, function(s, l) { switch (l) { case "mso-list": (a = /\w+ \w+([0-9]+)/i.exec(r)) && (n._listLevel = parseInt(a[1], 10)), /Ignore/i.test(s) && n.firstChild && ((n._listIgnore = !0), (n.firstChild._listIgnore = !0)); break; case "horiz-align": l = "text-align"; break; case "vert-align": l = "vertical-align"; break; case "font-color": case "mso-foreground": l = "color"; break; case "mso-background": case "mso-highlight": l = "background"; break; case "font-weight": case "font-style": return void ("normal" !== s && (o[l] = s)); case "mso-element": if (/^(comment|comment-list)$/i.test(s)) return void n.remove(); } 0 !== l.indexOf("mso-comment") ? 0 !== l.indexOf("mso-") && ("all" === i.getRetainStyleProps(e) || (t && t[l])) && (o[l] = s) : n.remove(); }), /(bold)/i.test(o["font-weight"]) && (delete o["font-weight"], n.wrap(new b("b", 1))), /(italic)/i.test(o["font-style"]) && (delete o["font-style"], n.wrap(new b("i", 1))), (o = e.dom.serializeStyle(o, n.name)) || null ); } var R = { preProcess: function(e, t) { return i.shouldUseDefaultFilters(e) ? (function(e, t) { var n, r; (n = i.getRetainStyleProps(e)) && (r = c.makeMap(n.split(/[, ]/))), (t = C.filter(t, [ /
    /gi, /]+id="?docs-internal-[^>]*>/gi, //gi, /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi, [/<(\/?)s>/gi, "<$1strike>"], [/ /gi, "\xa0"], [ /([\s\u00a0]*)<\/span>/gi, function(e, t) { return t.length > 0 ? t .replace(/./, " ") .slice(Math.floor(t.length / 2)) .split("") .join("\xa0") : ""; } ] ])); var a = i.getWordValidElements(e), o = x({ valid_elements: a, valid_children: "-li[p]" }); c.each(o.elements, function(e) { e.attributes["class"] || ((e.attributes["class"] = {}), e.attributesOrder.push("class")), e.attributes.style || ((e.attributes.style = {}), e.attributesOrder.push("style")); }); var s = y({}, o); s.addAttributeFilter("style", function(t) { for (var n, a = t.length; a--; ) (n = t[a]).attr("style", k(e, r, n, n.attr("style"))), "span" === n.name && n.parent && !n.attributes.length && n.unwrap(); }), s.addAttributeFilter("class", function(e) { for (var t, n, r = e.length; r--; ) (n = (t = e[r]).attr("class")), /^(MsoCommentReference|MsoCommentText|msoDel)$/i.test( n ) && t.remove(), t.attr("class", null); }), s.addNodeFilter("del", function(e) { for (var t = e.length; t--; ) e[t].remove(); }), s.addNodeFilter("a", function(e) { for (var t, n, r, a = e.length; a--; ) if ( ((n = (t = e[a]).attr("href")), (r = t.attr("name")), n && -1 !== n.indexOf("#_msocom_")) ) t.remove(); else if ( (n && 0 === n.indexOf("file://") && (n = n.split("#")[1]) && (n = "#" + n), n || r) ) { if (r && !/^_?(?:toc|edn|ftn)/i.test(r)) { t.unwrap(); continue; } t.attr({ href: n, name: r }); } else t.unwrap(); }); var l = s.parse(t); return ( i.shouldConvertWordFakeLists(e) && D(l), (t = w({ validate: e.settings.validate }, o).serialize(l)) ); })(e, t) : t; }, isWordContent: function(e) { return ( /'); } ), !0) ); var r, a, i; }, B = function(e, t) { return ( e.insertContent(t, { merge: i.shouldMergeFormats(e), paste: !0 }), !0 ); }, H = { isImageUrl: I, isAbsoluteUrl: S, insertContent: function(e, t) { var n, r; !1 === i.isSmartPasteEnabled(e) ? B(e, t) : ((n = e), (r = t), c.each([A, O, B], function(e) { return !0 !== e(n, r, B); })); } }, N = function(e) { var t, n, r, o, s, d, m = this, g = 0, v = ((t = e), (r = "%MCEPASTEBIN%"), { create: function() { var e, a, i = t.dom, o = t.getBody(), s = t.dom.getViewPort(t.getWin()).y, u = 20; if ( ((n = t.selection.getRng()), t.inline && (a = t.selection.getScrollContainer()) && a.scrollTop > 0 && (s = a.scrollTop), n.getClientRects) ) { var c = (function(e) { var t, r, a, o = e.startContainer; if ((t = e.getClientRects()).length) return t[0]; if (e.collapsed && 1 === o.nodeType) { for ( a = o.childNodes[n.startOffset]; a && 3 === a.nodeType && !a.data.length; ) a = a.nextSibling; if (a) return ( "BR" === a.tagName && ((r = i.doc.createTextNode("\ufeff")), a.parentNode.insertBefore(r, a), (e = i.createRng()).setStartBefore(r), e.setEndAfter(r), (t = e.getClientRects()), i.remove(r)), t.length ? t[0] : void 0 ); } })(n); if (c) u = s + (c.top - i.getPos(o).y); else { u = s; var f = n.startContainer; f && (3 === f.nodeType && f.parentNode !== o && (f = f.parentNode), 1 === f.nodeType && (u = i.getPos(f, a || o).y)); } } (e = t.dom.add( t.getBody(), "div", { id: "mcepastebin", contentEditable: !0, "data-mce-bogus": "all", style: "position: absolute; top: " + u + "px; width: 10px; height: 10px; overflow: hidden; opacity: 0" }, r )), (l.ie || l.gecko) && i.setStyle( e, "left", "rtl" === i.getStyle(o, "direction", !0) ? 65535 : -65535 ), i.bind(e, "beforedeactivate focusin focusout", function(e) { e.stopPropagation(); }), e.focus(), t.selection.select(e, !0); }, remove: function() { if (o()) { for (var e = void 0; (e = t.dom.get("mcepastebin")); ) t.dom.remove(e), t.dom.unbind(e); n && t.selection.setRng(n); } n = null; }, getEl: (o = function() { return t.dom.get("mcepastebin"); }), getHtml: function() { var e, n, r, a, i, o = function(e, n) { e.appendChild(n), t.dom.remove(n, !0); }; for ( n = c.grep(t.getBody().childNodes, function(e) { return "mcepastebin" === e.id; }), e = n.shift(), c.each(n, function(t) { o(e, t); }), r = (a = t.dom.select("div[id=mcepastebin]", e)).length - 1; r >= 0; r-- ) (i = t.dom.create("div")), e.insertBefore(i, a[r]), o(i, a[r]); return e ? e.innerHTML : ""; }, getLastRng: function() { return n; }, isDefault: function() { var e, t = o(); return (e = t) && "mcepastebin" === e.id && s(t.innerHTML); }, isDefaultContent: (s = function(e) { return e === r; }) }), h = "data:text/mce-internal,", y = C.createIdGenerator("mceclip"); function b(t, n) { var r = n || p.isMarked(t), a = M.process(e, p.unmark(t), r); !1 === a.cancelled && H.insertContent(e, a.content); } function x(t) { (t = e.dom.encode(t).replace(/\r\n/g, "\n")), b( (t = P.convert( t, e.settings.forced_root_block, e.settings.forced_root_block_attrs )), !1 ); } function w(e) { var t = {}; if (e) { if (e.getData) { var n = e.getData("Text"); n && n.length > 0 && -1 === n.indexOf(h) && (t["text/plain"] = n); } if (e.types) for (var r = 0; r < e.types.length; r++) { var a = e.types[r]; try { t[a] = e.getData(a); } catch (i) { t[a] = ""; } } } return t; } function T(e) { return k(e, "text/html") || k(e, "text/plain"); } function _(t, n, r) { t && (e.selection.setRng(t), (t = null)); var a, i, o, s, l, u, c = n.result, f = -1 !== (i = (a = c).indexOf(",")) ? a.substr(i + 1) : null, d = y(), m = e.settings.images_reuse_filename && r.name ? ((o = r.name), (s = o.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i)) ? e.dom.encode(s[1]) : null) : d, p = new Image(); if ( ((p.src = c), (l = e.settings), (u = p), !l.images_dataimg_filter || l.images_dataimg_filter(u)) ) { var g, v = e.editorUpload.blobCache, h = void 0; (g = v.findFirst(function(e) { return e.base64() === f; })) ? (h = g) : ((h = v.create(d, r, f, m)), v.add(h)), b('', !1); } else b('', !1); } function D(t, n) { var r = t.clipboardData || t.dataTransfer; function a(e) { var r, a, i, o = !1; if (e) for (r = 0; r < e.length; r++) if (((a = e[r]), /^image\/(jpeg|png|gif|bmp)$/.test(a.type))) { var s = a.getAsFile ? a.getAsFile() : a; ((i = new window.FileReader()).onload = _.bind(null, n, i, s)), i.readAsDataURL(s), t.preventDefault(), (o = !0); } return o; } if (e.settings.paste_data_images && r) return a(r.items) || a(r.files); } function k(e, t) { return t in e && e[t].length > 0; } function R(e) { return ( (f.metaKeyPressed(e) && 86 === e.keyCode) || (e.shiftKey && 45 === e.keyCode) ); } function E() { function t(t, n, r, a) { var i, o; k(t, "text/html") ? (i = t["text/html"]) : ((i = v.getHtml()), (a = a || p.isMarked(i)), v.isDefaultContent(i) && (r = !0)), (i = C.trimHtml(i)), v.remove(), (o = !1 === a && P.isPlainText(i)), (i.length && !o) || (r = !0), r && (i = k(t, "text/plain") && o ? t["text/plain"] : C.innerText(i)), v.isDefaultContent(i) ? n || e.windowManager.alert( "Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents." ) : r ? x(i) : b(i, a); } e.on("keydown", function(t) { function n(e) { R(e) && !e.isDefaultPrevented() && v.remove(); } if (R(t) && !t.isDefaultPrevented()) { if ( (d = t.shiftKey && 86 === t.keyCode) && l.webkit && -1 !== navigator.userAgent.indexOf("Version/") ) return; if ( (t.stopImmediatePropagation(), (g = new Date().getTime()), l.ie && d) ) return t.preventDefault(), void a.firePaste(e, !0); v.remove(), v.create(), e.once("keyup", n), e.once("paste", function() { e.off("keyup", n); }); } }), e.on("paste", function(n) { var r, a, i = new Date().getTime(), o = ((r = w(n.clipboardData || e.getDoc().dataTransfer)), C.isMsEdge() ? c.extend(r, { "text/html": "" }) : r), s = new Date().getTime() - i, f = new Date().getTime() - g - s < 1e3, h = "text" === m.pasteFormat || d, P = k(o, p.internalHtmlMime()); (d = !1), n.isDefaultPrevented() || ((a = n.clipboardData), -1 !== navigator.userAgent.indexOf("Android") && a && a.items && 0 === a.items.length) ? v.remove() : T(o) || !D(n, v.getLastRng() || e.selection.getRng()) ? (f || n.preventDefault(), !l.ie || (f && !n.ieFake) || k(o, "text/html") || (v.create(), e.dom.bind(v.getEl(), "paste", function(e) { e.stopPropagation(); }), e.getDoc().execCommand("Paste", !1, null), (o["text/html"] = v.getHtml())), k(o, "text/html") ? (n.preventDefault(), P || (P = p.isMarked(o["text/html"])), t(o, f, h, P)) : u.setEditorTimeout( e, function() { t(o, f, h, P); }, 0 )) : v.remove(); }); } (m.pasteFormat = i.isPasteAsTextEnabled(e) ? "text" : "html"), (m.pasteHtml = b), (m.pasteText = x), (m.pasteImageData = D), (m.getDataTransferItems = w), (m.hasHtmlOrText = T), (m.hasContentType = k), e.on("preInit", function() { var t; E(), e.parser.addNodeFilter("img", function(n, r, a) { function i(e) { e.attr("data-mce-object") || t === l.transparentSrc || e.remove(); } if ( !e.settings.paste_data_images && (s = a).data && !0 === s.data.paste ) for (var o = n.length; o--; ) (t = n[o].attributes.map.src) && (0 === t.indexOf("webkit-fake-url") ? i(n[o]) : e.settings.allow_html_data_urls || 0 !== t.indexOf("data:") || i(n[o])); var s; }); }); }, L = function() {}, $ = function(e, t, n) { if ( ((r = e), !1 !== l.iOS || r === undefined || "function" != typeof r.setData || !0 === C.isMsEdge()) ) return !1; try { return ( e.clearData(), e.setData("text/html", t), e.setData("text/plain", n), e.setData(p.internalHtmlMime(), t), !0 ); } catch (a) { return !1; } var r; }, W = function(e, t, n, r) { $(e.clipboardData, t.html, t.text) ? (e.preventDefault(), r()) : n(t.html, r); }, j = function(e) { return function(t, n) { var r = p.mark(t), a = e.dom.create("div", { contenteditable: "false", "data-mce-bogus": "all" }), i = e.dom.create("div", { contenteditable: "true" }, r); e.dom.setStyles(a, { position: "fixed", left: "-3000px", width: "1000px", overflow: "hidden" }), a.appendChild(i), e.dom.add(e.getBody(), a); var o = e.selection.getRng(); i.focus(); var s = e.dom.createRng(); s.selectNodeContents(i), e.selection.setRng(s), setTimeout(function() { a.parentNode.removeChild(a), e.selection.setRng(o), n(); }, 0); }; }, U = function(e) { return { html: e.selection.getContent({ contextual: !0 }), text: e.selection.getContent({ format: "text" }) }; }, V = function(e) { var t, n; e.on( "cut", ((t = e), function(e) { !1 === t.selection.isCollapsed() && W(e, U(t), j(t), function() { setTimeout(function() { t.execCommand("Delete"); }, 0); }); }) ), e.on( "copy", ((n = e), function(e) { !1 === n.selection.isCollapsed() && W(e, U(n), j(n), L); }) ); }, z = tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"), K = function(e, t) { return z.getCaretRangeFromPoint(t.clientX, t.clientY, e.getDoc()); }, G = function(e, t) { e.focus(), e.selection.setRng(t); }, X = function(e, t, n) { i.shouldBlockDrop(e) && e.on("dragend dragover draggesture dragdrop drop drag", function(e) { e.preventDefault(), e.stopPropagation(); }), i.shouldPasteDataImages(e) || e.on("drop", function(e) { var t = e.dataTransfer; t && t.files && t.files.length > 0 && e.preventDefault(); }), e.on("drop", function(r) { var a, o; if (((o = K(e, r)), !r.isDefaultPrevented() && !n.get())) { a = t.getDataTransferItems(r.dataTransfer); var s, l = t.hasContentType(a, p.internalHtmlMime()); if ( ((t.hasHtmlOrText(a) && (!(s = a["text/plain"]) || 0 !== s.indexOf("file://"))) || !t.pasteImageData(r, o)) && o && i.shouldFilterDrop(e) ) { var c = a["mce-internal"] || a["text/html"] || a["text/plain"]; c && (r.preventDefault(), u.setEditorTimeout(e, function() { e.undoManager.transact(function() { a["mce-internal"] && e.execCommand("Delete"), G(e, o), (c = C.trimHtml(c)), a["text/html"] ? t.pasteHtml(c, l) : t.pasteText(c); }); })); } } }), e.on("dragstart", function(e) { n.set(!0); }), e.on("dragover dragend", function(t) { i.shouldPasteDataImages(e) && !1 === n.get() && (t.preventDefault(), G(e, K(e, t))), "dragend" === t.type && n.set(!1); }); }, q = function(e) { var t = e.plugins.paste, n = i.getPreProcess(e); n && e.on("PastePreProcess", function(e) { n.call(t, t, e); }); var r = i.getPostProcess(e); r && e.on("PastePostProcess", function(e) { r.call(t, t, e); }); }; function Y(e, t) { e.on("PastePreProcess", function(n) { n.content = t(e, n.content, n.internal, n.wordContent); }); } function Z(e, t) { if (!R.isWordContent(t)) return t; var n = []; c.each(e.schema.getBlockElements(), function(e, t) { n.push(t); }); var r = new RegExp( "(?:
     [\\s\\r\\n]+|
    )*(<\\/?(" + n.join("|") + ")[^>]*>)(?:
     [\\s\\r\\n]+|
    )*", "g" ); return ( (t = C.filter(t, [[r, "$1"]])), (t = C.filter(t, [ [/

    /g, "

    "], [/
    /g, " "], [/

    /g, "
    "] ])) ); } function J(e, t, n, r) { if (r || n) return t; var a = i.getWebkitStyles(e); if (!1 === i.shouldRemoveWebKitStyles(e) || "all" === a) return t; if ((a && (a = a.split(/[, ]/)), a)) { var o = e.dom, s = e.selection.getNode(); t = t.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, function(e, t, n, r) { var i = o.parseStyle(o.decode(n), "span"), l = {}; if ("none" === a) return t + r; for (var u = 0; u < a.length; u++) { var c = i[a[u]], f = o.getStyle(s, a[u], !0); /color/.test(a[u]) && ((c = o.toHex(c)), (f = o.toHex(f))), f !== c && (l[a[u]] = c); } return (l = o.serializeStyle(l, "span")) ? t + ' style="' + l + '"' + r : t + r; }); } else t = t.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, "$1$3"); return (t = t.replace( /(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi, function(e, t, n, r) { return t + ' style="' + n + '"' + r; } )); } function Q(e, t) { e.$("a", t) .find("font,u") .each(function(t, n) { e.dom.remove(n, !0); }); } var ee = function(e) { var t, n; l.webkit && Y(e, J), l.ie && (Y(e, Z), (n = Q), (t = e).on("PastePostProcess", function(e) { n(t, e.node); })); }, te = function(e) { return function() { return e; }; }, ne = function(e) { for ( var t = new Array(arguments.length - 1), n = 1; n < arguments.length; n++ ) t[n - 1] = arguments[n]; return function() { for (var n = new Array(arguments.length), r = 0; r < n.length; r++) n[r] = arguments[r]; var a = t.concat(n); return e.apply(null, a); }; }, re = (te(!1), te(!0), function(e, t) { var n = ne( (te(!1), te(!0), function(e, t, n) { var r = n.control; r.active("text" === t.pasteFormat), e.on("PastePlainTextToggle", function(e) { r.active(e.state); }); }), e, t ); e.addButton("pastetext", { active: !1, icon: "pastetext", tooltip: "Paste as text", cmd: "mceTogglePlainTextPaste", onPostRender: n }), e.addMenuItem("pastetext", { text: "Paste as text", selectable: !0, active: t.pasteFormat, cmd: "mceTogglePlainTextPaste", onPostRender: n }); }), ae = e(!1); t.add("paste", function(t) { if (!1 === n(t)) { var a = new N(t), i = ee(t), o = e(!1); return re(t, a), s(t, a, ae), q(t), V(t), X(t, a, o), r(a, i); } }); })(); !(function() { "use strict"; var e = tinymce.util.Tools.resolve("tinymce.PluginManager"), a = tinymce.util.Tools.resolve("tinymce.Env"), n = function(e) { return e.getParam("pagebreak_separator", "\x3c!-- pagebreak --\x3e"); }, t = function(e) { return e.getParam("pagebreak_split_block", !1); }, r = function() { return "mce-pagebreak"; }, c = function() { return ( '' ); }, o = function(e) { var a = n(e), r = new RegExp( a.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(e) { return "\\" + e; }), "gi" ); e.on("BeforeSetContent", function(e) { e.content = e.content.replace(r, c()); }), e.on("PreInit", function() { e.serializer.addNodeFilter("img", function(n) { for (var r, c, o = n.length; o--; ) if ( (c = (r = n[o]).attr("class")) && -1 !== c.indexOf("mce-pagebreak") ) { var i = r.parent; if (e.schema.getBlockElements()[i.name] && t(e)) { (i.type = 3), (i.value = a), (i.raw = !0), r.remove(); continue; } (r.type = 3), (r.value = a), (r.raw = !0); } }); }); }, i = c, g = r, u = function(e) { e.addCommand("mcePageBreak", function() { e.settings.pagebreak_split_block ? e.insertContent("

    " + i() + "

    ") : e.insertContent(i()); }); }, m = function(e) { e.on("ResolveName", function(a) { "IMG" === a.target.nodeName && e.dom.hasClass(a.target, g()) && (a.name = "pagebreak"); }); }, s = function(e) { e.addButton("pagebreak", { title: "Page break", cmd: "mcePageBreak" }), e.addMenuItem("pagebreak", { text: "Page break", icon: "pagebreak", cmd: "mcePageBreak", context: "insert" }); }; e.add("pagebreak", function(e) { u(e), s(e), o(e), m(e); }); })(); !(function() { "use strict"; var t = tinymce.util.Tools.resolve("tinymce.PluginManager"), n = tinymce.util.Tools.resolve("tinymce.util.Tools"), e = function(t) { return t.getParam("noneditable_noneditable_class", "mceNonEditable"); }, r = function(t) { return t.getParam("noneditable_editable_class", "mceEditable"); }, a = function(t) { var n = t.getParam("noneditable_regexp", []); return n && n.constructor === RegExp ? [n] : n; }, i = function(t) { return function(n) { return -1 !== (" " + n.attr("class") + " ").indexOf(t); }; }, o = function(t, n, e) { return function(r) { var a = arguments, i = a[a.length - 2], o = i > 0 ? n.charAt(i - 1) : ""; if ('"' === o) return r; if (">" === o) { var c = n.lastIndexOf("<", i); if ( -1 !== c && -1 !== n.substring(c, i).indexOf('contenteditable="false"') ) return r; } return ( '' + t.dom.encode("string" == typeof a[1] ? a[1] : a[0]) + "" ); }; }, c = function(t) { var c, l, u = "contenteditable"; (c = " " + n.trim(r(t)) + " "), (l = " " + n.trim(e(t)) + " "); var f = i(c), s = i(l), d = a(t); t.on("PreInit", function() { d.length > 0 && t.on("BeforeSetContent", function(n) { !(function(t, n, r) { var a = n.length, i = r.content; if ("raw" !== r.format) { for (; a--; ) i = i.replace(n[a], o(t, i, e(t))); r.content = i; } })(t, d, n); }), t.parser.addAttributeFilter("class", function(t) { for (var n, e = t.length; e--; ) (n = t[e]), f(n) ? n.attr(u, "true") : s(n) && n.attr(u, "false"); }), t.serializer.addAttributeFilter(u, function(t) { for (var n, e = t.length; e--; ) (n = t[e]), (f(n) || s(n)) && (d.length > 0 && n.attr("data-mce-content") ? ((n.name = "#text"), (n.type = 3), (n.raw = !0), (n.value = n.attr("data-mce-content"))) : n.attr(u, null)); }); }); }; t.add("noneditable", function(t) { c(t); }); })(); !(function() { "use strict"; var n = tinymce.util.Tools.resolve("tinymce.PluginManager"), e = function(n, e) { var t, a = (t = n).plugins.visualchars && t.plugins.visualchars.isEnabled() ? ' ' : " "; n.insertContent( (function(n, e) { for (var t = "", a = 0; a < e; a++) t += n; return t; })(a, e) ), n.dom.setAttrib(n.dom.select("span.mce-nbsp"), "data-mce-bogus", "1"); }, t = function(n) { n.addCommand("mceNonBreaking", function() { e(n, 1); }); }, a = tinymce.util.Tools.resolve("tinymce.util.VK"), i = function(n) { var e = n.getParam("nonbreaking_force_tab", 0); return "boolean" == typeof e ? (!0 === e ? 3 : 0) : e; }, o = function(n) { var t = i(n); t > 0 && n.on("keydown", function(i) { if (i.keyCode === a.TAB && !i.isDefaultPrevented()) { if (i.shiftKey) return; i.preventDefault(), i.stopImmediatePropagation(), e(n, t); } }); }, r = function(n) { n.addButton("nonbreaking", { title: "Nonbreaking space", cmd: "mceNonBreaking" }), n.addMenuItem("nonbreaking", { text: "Nonbreaking space", cmd: "mceNonBreaking", context: "insert" }); }; n.add("nonbreaking", function(n) { t(n), r(n), o(n); }); })(); !(function() { "use strict"; var e = tinymce.util.Tools.resolve("tinymce.PluginManager"), t = tinymce.util.Tools.resolve("tinymce.Env"), r = tinymce.util.Tools.resolve("tinymce.util.Tools"), i = function(e) { return e.getParam("media_scripts"); }, a = function(e) { return e.getParam("audio_template_callback"); }, o = function(e) { return e.getParam("video_template_callback"); }, n = function(e) { return e.getParam("media_live_embeds", !0); }, c = function(e) { return e.getParam("media_filter_html", !0); }, s = function(e) { return e.getParam("media_url_resolver"); }, u = function(e) { return e.getParam("media_alt_source", !0); }, l = function(e) { return e.getParam("media_poster", !0); }, m = function(e) { return e.getParam("media_dimensions", !0); }, d = tinymce.util.Tools.resolve("tinymce.html.SaxParser"), h = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), p = function(e, t) { if (e) for (var r = 0; r < e.length; r++) if (-1 !== t.indexOf(e[r].filter)) return e[r]; }, f = function(e) { return function(t) { return t ? t.style[e].replace(/px$/, "") : ""; }; }, g = function(e) { return function(t, r) { var i; t && (t.style[e] = /^[0-9.]+$/.test((i = r)) ? i + "px" : i); }; }, w = { getMaxWidth: f("maxWidth"), getMaxHeight: f("maxHeight"), setMaxWidth: g("maxWidth"), setMaxHeight: g("maxHeight") }, v = h.DOM, b = function(e) { return v.getAttrib(e, "data-ephox-embed-iri"); }, y = function(e, t) { return ( (s = t), (u = v.createFragment(s)), "" !== b(u.firstChild) ? ((n = t), (c = v.createFragment(n).firstChild), { type: "ephox-embed-iri", source1: b(c), source2: "", poster: "", width: w.getMaxWidth(c), height: w.getMaxHeight(c) }) : ((i = e), (a = t), (o = {}), new d({ validate: !1, allow_conditional_comments: !0, special: "script,noscript", start: function(e, t) { if ( (o.source1 || "param" !== e || (o.source1 = t.map.movie), ("iframe" !== e && "object" !== e && "embed" !== e && "video" !== e && "audio" !== e) || (o.type || (o.type = e), (o = r.extend(t.map, o))), "script" === e) ) { var a = p(i, t.map.src); if (!a) return; o = { type: "script", source1: t.map.src, width: a.width, height: a.height }; } "source" === e && (o.source1 ? o.source2 || (o.source2 = t.map.src) : (o.source1 = t.map.src)), "img" !== e || o.poster || (o.poster = t.map.src); } }).parse(a), (o.source1 = o.source1 || o.src || o.data), (o.source2 = o.source2 || ""), (o.poster = o.poster || ""), o) ); var i, a, o, n, c, s, u; }, x = tinymce.util.Tools.resolve("tinymce.util.Promise"), j = function(e) { var t = { mp3: "audio/mpeg", wav: "audio/wav", mp4: "video/mp4", webm: "video/webm", ogg: "video/ogg", swf: "application/x-shockwave-flash" }[ e .toLowerCase() .split(".") .pop() ]; return t || ""; }, M = tinymce.util.Tools.resolve("tinymce.html.Writer"), _ = tinymce.util.Tools.resolve("tinymce.html.Schema"), C = h.DOM, S = function(e, t) { var r, i, a, o; for (r in t) if (((a = "" + t[r]), e.map[r])) for (i = e.length; i--; ) (o = e[i]).name === r && (a ? ((e.map[r] = a), (o.value = a)) : (delete e.map[r], e.splice(i, 1))); else a && (e.push({ name: r, value: a }), (e.map[r] = a)); }, k = function(e, t) { var r, i, a = C.createFragment(e).firstChild; return ( w.setMaxWidth(a, t.width), w.setMaxHeight(a, t.height), (r = a.outerHTML), (i = M()), new d(i).parse(r), i.getContent() ); }, A = function(e, t, r) { return ( (u = e), (l = C.createFragment(u)), "" !== C.getAttrib(l.firstChild, "data-ephox-embed-iri") ? k(e, t) : ((i = e), (a = t), (o = r), (c = M()), (s = 0), new d( { validate: !1, allow_conditional_comments: !0, special: "script,noscript", comment: function(e) { c.comment(e); }, cdata: function(e) { c.cdata(e); }, text: function(e, t) { c.text(e, t); }, start: function(e, t, r) { switch (e) { case "video": case "object": case "embed": case "img": case "iframe": a.height !== undefined && a.width !== undefined && S(t, { width: a.width, height: a.height }); } if (o) switch (e) { case "video": S(t, { poster: a.poster, src: "" }), a.source2 && S(t, { src: "" }); break; case "iframe": S(t, { src: a.source1 }); break; case "source": if ( ++s <= 2 && (S(t, { src: a["source" + s], type: a["source" + s + "mime"] }), !a["source" + s]) ) return; break; case "img": if (!a.poster) return; n = !0; } c.start(e, t, r); }, end: function(e) { if ("video" === e && o) for (var t = 1; t <= 2; t++) if (a["source" + t]) { var r = []; (r.map = {}), s < t && (S(r, { src: a["source" + t], type: a["source" + t + "mime"] }), c.start("source", r, !0)); } if (a.poster && "object" === e && o && !n) { var i = []; (i.map = {}), S(i, { src: a.poster, width: a.width, height: a.height }), c.start("img", i, !0); } c.end(e); } }, _({}) ).parse(i), c.getContent()) ); var i, a, o, n, c, s, u, l; }, F = [ { regex: /youtu\.be\/([\w\-.]+)/, type: "iframe", w: 560, h: 314, url: "//www.youtube.com/embed/$1", allowFullscreen: !0 }, { regex: /youtube\.com(.+)v=([^&]+)/, type: "iframe", w: 560, h: 314, url: "//www.youtube.com/embed/$2", allowFullscreen: !0 }, { regex: /youtube.com\/embed\/([a-z0-9\-_]+(?:\?.+)?)/i, type: "iframe", w: 560, h: 314, url: "//www.youtube.com/embed/$1", allowFullscreen: !0 }, { regex: /vimeo\.com\/([0-9]+)/, type: "iframe", w: 425, h: 350, url: "//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc", allowfullscreen: !0 }, { regex: /vimeo\.com\/(.*)\/([0-9]+)/, type: "iframe", w: 425, h: 350, url: "//player.vimeo.com/video/$2?title=0&byline=0", allowfullscreen: !0 }, { regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/, type: "iframe", w: 425, h: 350, url: '//maps.google.com/maps/ms?msid=$2&output=embed"', allowFullscreen: !1 }, { regex: /dailymotion\.com\/video\/([^_]+)/, type: "iframe", w: 480, h: 270, url: "//www.dailymotion.com/embed/video/$1", allowFullscreen: !0 }, { regex: /dai\.ly\/([^_]+)/, type: "iframe", w: 480, h: 270, url: "//www.dailymotion.com/embed/video/$1", allowFullscreen: !0 } ], N = function(e, t) { var n = r.extend({}, t); if (!n.source1 && (r.extend(n, y(i(e), n.embed)), !n.source1)) return ""; if ( (n.source2 || (n.source2 = ""), n.poster || (n.poster = ""), (n.source1 = e.convertURL(n.source1, "source")), (n.source2 = e.convertURL(n.source2, "source")), (n.source1mime = j(n.source1)), (n.source2mime = j(n.source2)), (n.poster = e.convertURL(n.poster, "poster")), r.each(F, function(e) { var t, r, i = e.regex.exec(n.source1); if (i) { for (r = e.url, t = 0; i[t]; t++) r = r.replace("$" + t, function() { return i[t]; }); (n.source1 = r), (n.type = e.type), (n.allowFullscreen = e.allowFullscreen), (n.width = n.width || e.w), (n.height = n.height || e.h); } }), n.embed) ) return A(n.embed, n, !0); var c = p(i(e), n.source1); c && ((n.type = "script"), (n.width = c.width), (n.height = c.height)); var s, u, l, m, d, h, f, g, w = a(e), v = o(e); return ( (n.width = n.width || 300), (n.height = n.height || 150), r.each(n, function(t, r) { n[r] = e.dom.encode(t); }), "iframe" === n.type ? ((g = (f = n).allowFullscreen ? ' allowFullscreen="1"' : ""), '") : "application/x-shockwave-flash" === n.source1mime ? ((h = ''), d.poster && (h += ''), (h += "")) : -1 !== n.source1mime.indexOf("audio") ? ((l = n), (m = w) ? m(l) : '") : "script" === n.type ? '' : ((s = n), (u = v) ? u(s) : '") ); }, O = {}, P = function(e) { return function(t) { return N(e, t); }; }, T = function(e, t) { var r, i, a, o, n, c = s(e); return c ? ((a = t), (o = P(e)), (n = c), new x(function(e, t) { var r = function(t) { return ( t.html && (O[a.source1] = t), e({ url: a.source1, html: t.html ? t.html : o(a) }) ); }; O[a.source1] ? r(O[a.source1]) : n({ url: a.source1 }, r, t); })) : ((r = t), (i = P(e)), new x(function(e) { e({ html: i(r), url: r.source1 }); })); }, z = function(e) { return O.hasOwnProperty(e); }, $ = function(e, t) { e.state.set("oldVal", e.value()), t.state.set("oldVal", t.value()); }, L = function(e, t) { var r = e.find("#width")[0], i = e.find("#height")[0], a = e.find("#constrain")[0]; r && i && a && t(r, i, a.checked()); }, H = function(e, t, r) { var i = e.state.get("oldVal"), a = t.state.get("oldVal"), o = e.value(), n = t.value(); r && i && a && o && n && (o !== i ? ((n = Math.round((o / i) * n)), isNaN(n) || t.value(n)) : ((o = Math.round((n / a) * o)), isNaN(o) || e.value(o))), $(e, t); }, W = function(e) { L(e, H); }, J = function(e) { var t = function() { e(function(e) { W(e); }); }; return { type: "container", label: "Dimensions", layout: "flex", align: "center", spacing: 5, items: [ { name: "width", type: "textbox", maxLength: 5, size: 5, onchange: t, ariaLabel: "Width" }, { type: "label", text: "x" }, { name: "height", type: "textbox", maxLength: 5, size: 5, onchange: t, ariaLabel: "Height" }, { name: "constrain", type: "checkbox", checked: !0, text: "Constrain proportions" } ] }; }, R = function(e) { L(e, $); }, D = W, E = t.ie && t.ie <= 8 ? "onChange" : "onInput", I = function(e) { return function(t) { var r = t && t.msg ? "Media embed handler error: " + t.msg : "Media embed handler threw unknown error."; e.notificationManager.open({ type: "error", text: r }); }; }, U = function(e, t) { return function(a) { var o = a.html, n = e.find("#embed")[0], c = r.extend(y(i(t), o), { source1: a.url }); e.fromJSON(c), n && (n.value(o), D(e)); }; }, V = function(e, t) { var r = e.dom.select("img[data-mce-object]"); e.insertContent(t), (function(e, t) { var r, i, a = e.dom.select("img[data-mce-object]"); for (r = 0; r < t.length; r++) for (i = a.length - 1; i >= 0; i--) t[r] === a[i] && a.splice(i, 1); e.selection.select(a[0]); })(e, r), e.nodeChanged(); }, B = function(e) { var t, a, o, n, c, s = [ { name: "source1", type: "filepicker", filetype: "media", size: 40, autofocus: !0, label: "Source", onpaste: function() { setTimeout(function() { T(e, t.toJSON()) .then(U(t, e)) ["catch"](I(e)); }, 1); }, onchange: function(i) { var a, o; T(e, t.toJSON()) .then(U(t, e)) ["catch"](I(e)), (a = t), (o = i.meta), r.each(o, function(e, t) { a.find("#" + t).value(e); }); }, onbeforecall: function(e) { e.meta = t.toJSON(); } } ], d = []; if ( (u(e) && d.push({ name: "source2", type: "filepicker", filetype: "media", size: 40, label: "Alternative source" }), l(e) && d.push({ name: "poster", type: "filepicker", filetype: "image", size: 40, label: "Poster" }), m(e)) ) { var h = J(function(e) { e(t), (a = t.toJSON()), t.find("#embed").value(A(a.embed, a)); }); s.push(h); } (n = (o = e).selection.getNode()), (c = n.getAttribute("data-ephox-embed-iri")), (a = c ? { source1: c, "data-ephox-embed-iri": c, width: w.getMaxWidth(n), height: w.getMaxHeight(n) } : n.getAttribute("data-mce-object") ? y(i(o), o.serializer.serialize(n, { selection: !0 })) : {}); var p = { id: "mcemediasource", type: "textbox", flex: 1, name: "embed", value: (function(e) { var t = e.selection.getNode(); if ( t.getAttribute("data-mce-object") || t.getAttribute("data-ephox-embed-iri") ) return e.selection.getContent(); })(e), multiline: !0, rows: 5, label: "Source" }; (p[E] = function() { (a = r.extend({}, y(i(e), this.value()))), this.parent() .parent() .fromJSON(a); }), (t = e.windowManager.open({ title: "Insert/edit media", data: a, bodyType: "tabpanel", body: [ { title: "General", type: "form", items: s }, { title: "Embed", type: "container", layout: "flex", direction: "column", align: "stretch", padding: 10, spacing: 10, items: [ { type: "label", text: "Paste your embed code below:", forId: "mcemediasource" }, p ] }, { title: "Advanced", type: "form", items: d } ], onSubmit: function() { var r, i; D(t), (r = e), ((i = t.toJSON()).embed = A(i.embed, i)), i.embed && z(i.source1) ? V(r, i.embed) : T(r, i) .then(function(e) { V(r, e.html); }) ["catch"](I(r)); } })), R(t); }, G = function(e) { return { showDialog: function() { B(e); } }; }, q = function(e) { e.addCommand("mceMedia", function() { B(e); }); }, K = tinymce.util.Tools.resolve("tinymce.html.Node"), Q = function(e, t) { if (!1 === c(e)) return t; var r, i = M(); return ( new d( { validate: !1, allow_conditional_comments: !1, special: "script,noscript", comment: function(e) { i.comment(e); }, cdata: function(e) { i.cdata(e); }, text: function(e, t) { i.text(e, t); }, start: function(t, a, o) { if (((r = !0), "script" !== t && "noscript" !== t)) { for (var n = 0; n < a.length; n++) { if (0 === a[n].name.indexOf("on")) return; "style" === a[n].name && (a[n].value = e.dom.serializeStyle( e.dom.parseStyle(a[n].value), t )); } i.start(t, a, o), (r = !1); } }, end: function(e) { r || i.end(e); } }, _({}) ).parse(t), i.getContent() ); }, X = function(e, r) { var i, a = r.name; return ( ((i = new K("img", 1)).shortEnded = !0), Z(e, r, i), i.attr({ width: r.attr("width") || "300", height: r.attr("height") || ("audio" === a ? "30" : "150"), style: r.attr("style"), src: t.transparentSrc, "data-mce-object": a, class: "mce-object mce-object-" + a }), i ); }, Y = function(e, t) { var r, i, a, o = t.name; return ( (r = new K("span", 1)).attr({ contentEditable: "false", style: t.attr("style"), "data-mce-object": o, class: "mce-preview-object mce-object-" + o }), Z(e, t, r), (i = new K(o, 1)).attr({ src: t.attr("src"), allowfullscreen: t.attr("allowfullscreen"), width: t.attr("width") || "300", height: t.attr("height") || ("audio" === o ? "30" : "150"), frameborder: "0" }), (a = new K("span", 1)).attr("class", "mce-shim"), r.append(i), r.append(a), r ); }, Z = function(e, t, r) { var i, a, o, n, c; for (n = (o = t.attributes).length; n--; ) (i = o[n].name), (a = o[n].value), "width" !== i && "height" !== i && "style" !== i && (("data" !== i && "src" !== i) || (a = e.convertURL(a, i)), r.attr("data-mce-p-" + i, a)); (c = t.firstChild && t.firstChild.value) && (r.attr("data-mce-html", escape(Q(e, c))), (r.firstChild = null)); }, ee = function(e) { for (; (e = e.parent); ) if (e.attr("data-ephox-embed-iri")) return !0; return !1; }, te = function(e) { return function(r) { for (var a, o, c = r.length; c--; ) (a = r[c]).parent && (a.parent.attr("data-mce-object") || (("script" !== a.name || (o = p(i(e), a.attr("src")))) && (o && (o.width && a.attr("width", o.width.toString()), o.height && a.attr("height", o.height.toString())), "iframe" === a.name && n(e) && t.ceFalse ? ee(a) || a.replace(Y(e, a)) : ee(a) || a.replace(X(e, a))))); }; }, re = function(e) { e.on("preInit", function() { var t = e.schema.getSpecialElements(); r.each("video audio iframe object".split(" "), function(e) { t[e] = new RegExp("]*>", "gi"); }); var i = e.schema.getBoolAttrs(); r.each( "webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "), function(e) { i[e] = {}; } ), e.parser.addNodeFilter( "iframe,video,audio,object,embed,script", te(e) ), e.serializer.addAttributeFilter("data-mce-object", function(t, r) { for (var i, a, o, n, c, s, u, l, m = t.length; m--; ) if ((i = t[m]).parent) { for ( u = i.attr(r), a = new K(u, 1), "audio" !== u && "script" !== u && ((l = i.attr("class")) && -1 !== l.indexOf("mce-preview-object") ? a.attr({ width: i.firstChild.attr("width"), height: i.firstChild.attr("height") }) : a.attr({ width: i.attr("width"), height: i.attr("height") })), a.attr({ style: i.attr("style") }), o = (n = i.attributes).length; o--; ) { var d = n[o].name; 0 === d.indexOf("data-mce-p-") && a.attr(d.substr(11), n[o].value); } "script" === u && a.attr("type", "text/javascript"), (c = i.attr("data-mce-html")) && (((s = new K("#text", 3)).raw = !0), (s.value = Q(e, unescape(c))), a.append(s)), i.replace(a); } }); }), e.on("setContent", function() { e.$("span.mce-preview-object").each(function(t, r) { var i = e.$(r); 0 === i.find("span.mce-shim", r).length && i.append(''); }); }); }, ie = function(e) { e.on("ResolveName", function(e) { var t; 1 === e.target.nodeType && (t = e.target.getAttribute("data-mce-object")) && (e.name = t); }); }, ae = function(e) { e.on("click keyup", function() { var t = e.selection.getNode(); t && e.dom.hasClass(t, "mce-preview-object") && e.dom.getAttrib(t, "data-mce-selected") && t.setAttribute("data-mce-selected", "2"); }), e.on("ObjectSelected", function(e) { var t = e.target.getAttribute("data-mce-object"); ("audio" !== t && "script" !== t) || e.preventDefault(); }), e.on("objectResized", function(e) { var t, r = e.target; r.getAttribute("data-mce-object") && (t = r.getAttribute("data-mce-html")) && ((t = unescape(t)), r.setAttribute( "data-mce-html", escape(A(t, { width: e.width, height: e.height })) )); }); }, oe = function(e) { e.addButton("media", { tooltip: "Insert/edit media", cmd: "mceMedia", stateSelector: [ "img[data-mce-object]", "span[data-mce-object]", "div[data-ephox-embed-iri]" ] }), e.addMenuItem("media", { icon: "media", text: "Media", cmd: "mceMedia", context: "insert", prependToContext: !0 }); }; e.add("media", function(e) { return q(e), oe(e), ie(e), re(e), ae(e), G(e); }); })(); !(function() { "use strict"; var e = tinymce.util.Tools.resolve("tinymce.PluginManager"), t = tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"), n = tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"), o = tinymce.util.Tools.resolve("tinymce.util.VK"), r = tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"), i = tinymce.util.Tools.resolve("tinymce.util.Tools"), a = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), s = function(e) { return e && "BR" === e.nodeName; }, d = function(e) { return e && 3 === e.nodeType; }, l = function(e) { return e && /^(OL|UL|DL)$/.test(e.nodeName); }, c = function(e) { return e && /^(LI|DT|DD)$/.test(e.nodeName); }, f = function(e) { return e && /^(TH|TD)$/.test(e.nodeName); }, u = s, m = function(e) { return e.parentNode.firstChild === e; }, g = function(e) { return e.parentNode.lastChild === e; }, p = function(e, t) { return t && !!e.schema.getTextBlockElements()[t.nodeName]; }, v = function(e, t) { return e && e.nodeName in t; }, h = function(e, t) { return !!s(t) && !(!e.isBlock(t.nextSibling) || s(t.previousSibling)); }, C = function(e, t, n) { var o = e.isEmpty(t); return ( !(n && e.select("span[data-mce-type=bookmark]", t).length > 0) && o ); }, y = function(e, t) { return e.isChildOf(t, e.getRoot()); }, N = function(e, n) { var o = t.getNode(e, n); return c(e) && d(o) ? { container: o, offset: n >= e.childNodes.length ? o.data.length : 0 } : { container: e, offset: n }; }, L = function(e) { var t = e.cloneRange(), n = N(e.startContainer, e.startOffset); t.setStart(n.container, n.offset); var o = N(e.endContainer, e.endOffset); return t.setEnd(o.container, o.offset), t; }, S = a.DOM, b = function(e) { var t = {}, n = function(n) { var o, r, i; (r = e[n ? "startContainer" : "endContainer"]), (i = e[n ? "startOffset" : "endOffset"]), 1 === r.nodeType && ((o = S.create("span", { "data-mce-type": "bookmark" })), r.hasChildNodes() ? ((i = Math.min(i, r.childNodes.length - 1)), n ? r.insertBefore(o, r.childNodes[i]) : S.insertAfter(o, r.childNodes[i])) : r.appendChild(o), (r = o), (i = 0)), (t[n ? "startContainer" : "endContainer"] = r), (t[n ? "startOffset" : "endOffset"] = i); }; return n(!0), e.collapsed || n(), t; }, D = function(e) { function t(t) { var n, o, r; (n = r = e[t ? "startContainer" : "endContainer"]), (o = e[t ? "startOffset" : "endOffset"]), n && (1 === n.nodeType && ((o = (function(e) { for (var t = e.parentNode.firstChild, n = 0; t; ) { if (t === e) return n; (1 === t.nodeType && "bookmark" === t.getAttribute("data-mce-type")) || n++, (t = t.nextSibling); } return -1; })(n)), (n = n.parentNode), S.remove(r), !n.hasChildNodes() && S.isBlock(n) && n.appendChild(S.create("br"))), (e[t ? "startContainer" : "endContainer"] = n), (e[t ? "startOffset" : "endOffset"] = o)); } t(!0), t(); var n = S.createRng(); return ( n.setStart(e.startContainer, e.startOffset), e.endContainer && n.setEnd(e.endContainer, e.endOffset), L(n) ); }, k = a.DOM, T = function(e, t) { var n, o = t.parentNode; "LI" === o.nodeName && o.firstChild === t && ((n = o.previousSibling) && "LI" === n.nodeName ? (n.appendChild(t), C(e, o) && k.remove(o)) : k.setStyle(o, "listStyleType", "none")), l(o) && (n = o.previousSibling) && "LI" === n.nodeName && n.appendChild(t); }, I = function(e, t) { i.each(i.grep(e.select("ol,ul", t)), function(t) { T(e, t); }); }, B = tinymce.util.Tools.resolve("tinymce.dom.DomQuery"), R = function(e) { var t = e.selection.getStart(!0); return e.dom.getParent(t, "OL,UL,DL", O(e, t)); }, O = function(e, t) { var n = e.dom.getParents(t, "TD,TH"); return n.length > 0 ? n[0] : e.getBody(); }, E = { getParentList: R, getSelectedSubLists: function(e) { var t, n, o, r = R(e), a = e.selection.getSelectedBlocks(); return ( (o = a), (n = r) && 1 === o.length && o[0] === n ? ((t = r), i.grep(t.querySelectorAll("ol,ul,dl"), function(e) { return l(e); })) : i.grep(a, function(e) { return l(e) && r !== e; }) ); }, getSelectedListItems: function(e) { var t, n, o, r = e.selection.getSelectedBlocks(); return i.grep( ((t = e), (n = r), (o = i.map(n, function(e) { var n = t.dom.getParent(e, "li,dd,dt", O(t, e)); return n || e; })), B.unique(o)), function(e) { return c(e); } ); }, getClosestListRootElm: O }, A = tinymce.util.Tools.resolve("tinymce.Env"), P = a.DOM, x = function(e, t, n) { var o, r, i, a = P.createFragment(), s = e.schema.getBlockElements(); if ( (e.settings.forced_root_block && (n = n || e.settings.forced_root_block), n && ((r = P.create(n)).tagName === e.settings.forced_root_block && P.setAttribs(r, e.settings.forced_root_block_attrs), v(t.firstChild, s) || a.appendChild(r)), t) ) for (; (o = t.firstChild); ) { var d = o.nodeName; i || ("SPAN" === d && "bookmark" === o.getAttribute("data-mce-type")) || (i = !0), v(o, s) ? (a.appendChild(o), (r = null)) : n ? (r || ((r = P.create(n)), a.appendChild(r)), r.appendChild(o)) : a.appendChild(o); } return ( e.settings.forced_root_block ? i || (A.ie && !(A.ie > 10)) || r.appendChild(P.create("br", { "data-mce-bogus": "1" })) : a.appendChild(P.create("br")), a ); }, _ = a.DOM, M = function(e, t, n, o) { var r, a, s, d, l; for ( s = _.select('span[data-mce-type="bookmark"]', t), o = o || x(e, n), (r = _.createRng()).setStartAfter(n), r.setEndAfter(t), d = (a = r.extractContents()).firstChild; d; d = d.firstChild ) if ("LI" === d.nodeName && e.dom.isEmpty(d)) { _.remove(d); break; } e.dom.isEmpty(a) || _.insertAfter(a, t), _.insertAfter(o, t), C(e.dom, n.parentNode) && ((l = n.parentNode), i.each(s, function(e) { l.parentNode.insertBefore(e, n.parentNode); }), _.remove(l)), _.remove(n), C(e.dom, t) && _.remove(t); }, U = a.DOM, H = function(e, t) { C(e, t) && U.remove(t); }, $ = function(e, t) { var n, o = t.parentNode, r = o.parentNode; return !( o !== e.getBody() && ("DD" === t.nodeName ? (U.rename(t, "DT"), 0) : m(t) && g(t) ? ("LI" === r.nodeName ? (U.insertAfter(t, r), H(e.dom, r), U.remove(o)) : l(r) ? U.remove(o, !0) : (r.insertBefore(x(e, t), o), U.remove(o)), 0) : m(t) ? ("LI" === r.nodeName ? (U.insertAfter(t, r), t.appendChild(o), H(e.dom, r)) : l(r) ? r.insertBefore(t, o) : (r.insertBefore(x(e, t), o), U.remove(t)), 0) : g(t) ? ("LI" === r.nodeName ? U.insertAfter(t, r) : l(r) ? U.insertAfter(t, o) : (U.insertAfter(x(e, t), o), U.remove(t)), 0) : ("LI" === r.nodeName ? ((o = r), (n = x(e, t, "LI"))) : (n = l(r) ? x(e, t, "LI") : x(e, t)), M(e, o, t, n), I(e.dom, o.parentNode), 0)) ); }, w = $, K = function(e) { var t = E.getSelectedListItems(e); if (t.length) { var n = b(e.selection.getRng(!0)), o = void 0, r = void 0, i = E.getClosestListRootElm(e, e.selection.getStart(!0)); for (o = t.length; o--; ) for (var a = t[o].parentNode; a && a !== i; ) { for (r = t.length; r--; ) if (t[r] === a) { t.splice(o, 1); break; } a = a.parentNode; } for (o = 0; o < t.length && ($(e, t[o]) || 0 !== o); o++); return e.selection.setRng(D(n)), e.nodeChanged(), !0; } }, Q = function(e, t) { i.each(t, function(t, n) { e.setAttribute(n, t); }); }, W = function(e, t, n) { var o, r, a, s, d, l, c; (o = e), (r = t), (s = (a = n)["list-style-type"] ? a["list-style-type"] : null), o.setStyle(r, "list-style-type", s), (d = e), Q((l = t), (c = n)["list-attributes"]), i.each(d.select("li", l), function(e) { Q(e, c["list-item-attributes"]); }); }, j = function(e, t, n, o) { var r, i; for ( r = t[n ? "startContainer" : "endContainer"], i = t[n ? "startOffset" : "endOffset"], 1 === r.nodeType && (r = r.childNodes[Math.min(i, r.childNodes.length - 1)] || r), !n && u(r.nextSibling) && (r = r.nextSibling); r.parentNode !== o; ) { if (p(e, r)) return r; if (/^(TD|TH)$/.test(r.parentNode.nodeName)) return r; r = r.parentNode; } return r; }, q = function(e, t, n) { var o, a = e.selection.getRng(!0), s = "LI", d = E.getClosestListRootElm(e, e.selection.getStart(!0)), c = e.dom; (n = n || {}), "false" !== c.getContentEditable(e.selection.getNode()) && ("DL" === (t = t.toUpperCase()) && (s = "DT"), (o = b(a)), i.each( (function(e, t, n) { for ( var o, a = [], s = e.dom, d = j(e, t, !0, n), l = j(e, t, !1, n), c = [], f = d; f && (c.push(f), f !== l); f = f.nextSibling ); return ( i.each(c, function(t) { if (p(e, t)) return a.push(t), void (o = null); if (s.isBlock(t) || u(t)) return u(t) && s.remove(t), void (o = null); var i = t.nextSibling; r.isBookmarkNode(t) && (p(e, i) || (!i && t.parentNode === n)) ? (o = null) : (o || ((o = s.create("p")), t.parentNode.insertBefore(o, t), a.push(o)), o.appendChild(t)); }), a ); })(e, a, d), function(o) { var r, i, a, d, f, u; (i = o.previousSibling) && l(i) && i.nodeName === t && ((a = i), (d = n), (f = c.getStyle(a, "list-style-type")), (u = d ? d["list-style-type"] : ""), f === (u = null === u ? "" : u)) ? ((r = i), (o = c.rename(o, s)), i.appendChild(o)) : ((r = c.create(t)), o.parentNode.insertBefore(r, o), r.appendChild(o), (o = c.rename(o, s))), W(c, r, n), z(e.dom, r); } ), e.selection.setRng(D(o))); }, F = function(e) { var t = b(e.selection.getRng(!0)), n = E.getClosestListRootElm(e, e.selection.getStart(!0)), o = E.getSelectedListItems(e), r = i.grep(o, function(t) { return e.dom.isEmpty(t); }); (o = i.grep(o, function(t) { return !e.dom.isEmpty(t); })), i.each(r, function(t) { C(e.dom, t) && w(e, t); }), i.each(o, function(t) { var o, r; if (t.parentNode !== e.getBody()) { for (o = t; o && o !== n; o = o.parentNode) l(o) && (r = o); M(e, r, t), I(e.dom, r.parentNode); } }), e.selection.setRng(D(t)); }, V = function(e, t, n) { return ( (d = n), (s = t) && d && l(s) && s.nodeName === d.nodeName && ((i = t), (a = n), (r = e).getStyle(i, "list-style-type", !0) === r.getStyle(a, "list-style-type", !0)) && ((o = n), t.className === o.className) ); var o, r, i, a, s, d; }, z = function(e, t) { var n, o; if (((n = t.nextSibling), V(e, t, n))) { for (; (o = n.firstChild); ) t.appendChild(o); e.remove(n); } if (((n = t.previousSibling), V(e, t, n))) { for (; (o = n.lastChild); ) t.insertBefore(o, t.firstChild); e.remove(n); } }, G = function(e, t, n, o, r) { if (t.nodeName !== o || J(r)) { var a = b(e.selection.getRng(!0)); i.each([t].concat(n), function(t) { !(function(e, t, n, o) { if (t.nodeName !== n) { var r = e.rename(t, n); W(e, r, o); } else W(e, t, o); })(e.dom, t, o, r); }), e.selection.setRng(D(a)); } else F(e); }, J = function(e) { return "list-style-type" in e; }, X = { toggleList: function(e, t, n) { var o = E.getParentList(e), r = E.getSelectedSubLists(e); (n = n || {}), o && r.length > 0 ? G(e, o, r, t, n) : (function(e, t, n, o) { if (t !== e.getBody()) if (t) if (t.nodeName !== n || J(o)) { var r = b(e.selection.getRng(!0)); W(e.dom, t, o), z(e.dom, e.dom.rename(t, n)), e.selection.setRng(D(r)); } else F(e); else q(e, n, o); })(e, o, t, n); }, removeList: F, mergeWithAdjacentLists: z }, Y = function(e, o, r, i) { var a, s, d = o.startContainer, l = o.startOffset; if (3 === d.nodeType && (r ? l < d.data.length : l > 0)) return d; for ( a = e.schema.getNonEmptyElements(), 1 === d.nodeType && (d = t.getNode(d, l)), s = new n(d, i), r && h(e.dom, d) && s.next(); (d = s[r ? "next" : "prev2"]()); ) { if ("LI" === d.nodeName && !d.hasChildNodes()) return d; if (a[d.nodeName]) return d; if (3 === d.nodeType && d.data.length > 0) return d; } }, Z = function(e, t) { var n = t.childNodes; return 1 === n.length && !l(n[0]) && e.isBlock(n[0]); }, ee = function(e, t, n) { var o, r, i, a; if ( ((r = Z(e, n) ? n.firstChild : n), Z((i = e), (a = t)) && i.remove(a.firstChild, !0), !C(e, t, !0)) ) for (; (o = t.firstChild); ) r.appendChild(o); }, te = function(e, t, n) { var o, r, i = t.parentNode; y(e, t) && y(e, n) && (l(n.lastChild) && (r = n.lastChild), i === n.lastChild && u(i.previousSibling) && e.remove(i.previousSibling), (o = n.lastChild) && u(o) && t.hasChildNodes() && e.remove(o), C(e, n, !0) && e.$(n).empty(), ee(e, t, n), r && n.appendChild(r), e.remove(t), C(e, i) && i !== e.getRoot() && e.remove(i)); }, ne = function(e, t, n, o) { var r, i, a, s = e.dom; if (s.isEmpty(o)) (i = n), (a = o), (r = e).dom.$(a).empty(), te(r.dom, i, a), r.selection.setCursorLocation(a); else { var d = b(t); te(s, n, o), e.selection.setRng(D(d)); } }, oe = function(e, t) { var n, o, r, i = e.dom, a = e.selection, s = a.getStart(), d = E.getClosestListRootElm(e, s), l = i.getParent(a.getStart(), "LI", d); if (l) { if ((n = l.parentNode) === e.getBody() && C(i, n)) return !0; if ( ((o = L(a.getRng(!0))), (r = i.getParent(Y(e, o, t, d), "LI", d)) && r !== l) ) return ( t ? ne(e, o, r, l) : (function(e, t, n, o) { var r = b(t); te(e.dom, n, o); var i = D(r); e.selection.setRng(i); })(e, o, l, r), !0 ); if (!r && !t && X.removeList(e)) return !0; } return !1; }, re = function(e, t) { return ( oe(e, t) || (function(e, t) { var n = e.dom, o = e.selection.getStart(), r = E.getClosestListRootElm(e, o), i = n.getParent(o, n.isBlock, r); if (i && n.isEmpty(i)) { var a = L(e.selection.getRng(!0)), s = n.getParent(Y(e, a, t, r), "LI", r); if (s) return ( e.undoManager.transact(function() { var o, a, d, l; (a = i), (d = r), (l = (o = n).getParent(a.parentNode, o.isBlock, d)), o.remove(a), l && o.isEmpty(l) && o.remove(l), X.mergeWithAdjacentLists(n, s.parentNode), e.selection.select(s, !0), e.selection.collapse(t); }), !0 ); } return !1; })(e, t) ); }, ie = function(e, t) { return e.selection.isCollapsed() ? re(e, t) : ((o = (n = e).selection.getStart()), (r = E.getClosestListRootElm(n, o)), !!( n.dom.getParent(o, "LI,DT,DD", r) || E.getSelectedListItems(n).length > 0 ) && (n.undoManager.transact(function() { n.execCommand("Delete"), I(n.dom, n.getBody()); }), !0)); var n, o, r; }, ae = function(e) { e.on("keydown", function(t) { t.keyCode === o.BACKSPACE ? ie(e, !1) && t.preventDefault() : t.keyCode === o.DELETE && ie(e, !0) && t.preventDefault(); }); }, se = ie, de = function(e) { return { backspaceDelete: function(t) { se(e, t); } }; }, le = a.DOM, ce = function(e, t) { var n; if (l(e)) { for (; (n = e.firstChild); ) t.appendChild(n); le.remove(e); } }, fe = function(e) { var t, n, o, r, i = E.getSelectedListItems(e); if (i.length) { for ( var a = b(e.selection.getRng(!0)), s = 0; s < i.length && ((t = i[s]), (n = void 0), (o = void 0), (r = void 0), ("DT" === t.nodeName ? (le.rename(t, "DD"), 1) : (n = t.previousSibling) && l(n) ? (n.appendChild(t), 1) : n && "LI" === n.nodeName && l(n.lastChild) ? (n.lastChild.appendChild(t), ce(t.lastChild, n.lastChild), 1) : (n = t.nextSibling) && l(n) ? (n.insertBefore(t, n.firstChild), 1) : (n = t.previousSibling) && "LI" === n.nodeName && ((o = le.create(t.parentNode.nodeName)), (r = le.getStyle(t.parentNode, "listStyleType")) && le.setStyle(o, "listStyleType", r), n.appendChild(o), o.appendChild(t), ce(t.lastChild, o), 1)) || 0 !== s); s++ ); return e.selection.setRng(D(a)), e.nodeChanged(), !0; } }, ue = function(e, t) { return function() { var n = e.dom.getParent(e.selection.getStart(), "UL,OL,DL"); return n && n.nodeName === t; }; }, me = function(e) { e.on("BeforeExecCommand", function(t) { var n, o = t.command.toLowerCase(); if ( ("indent" === o ? fe(e) && (n = !0) : "outdent" === o && K(e) && (n = !0), n) ) return ( e.fire("ExecCommand", { command: t.command }), t.preventDefault(), !0 ); }), e.addCommand("InsertUnorderedList", function(t, n) { X.toggleList(e, "UL", n); }), e.addCommand("InsertOrderedList", function(t, n) { X.toggleList(e, "OL", n); }), e.addCommand("InsertDefinitionList", function(t, n) { X.toggleList(e, "DL", n); }), e.addQueryStateHandler("InsertUnorderedList", ue(e, "UL")), e.addQueryStateHandler("InsertOrderedList", ue(e, "OL")), e.addQueryStateHandler("InsertDefinitionList", ue(e, "DL")); }, ge = function(e) { return e.getParam("lists_indent_on_tab", !0); }, pe = function(e) { var t; ge(e) && (t = e).on("keydown", function(e) { e.keyCode !== o.TAB || o.metaKeyPressed(e) || (t.dom.getParent(t.selection.getStart(), "LI,DT,DD") && (e.preventDefault(), e.shiftKey ? K(t) : fe(t))); }), ae(e); }, ve = function(e, t) { return function(n) { var o = n.control; e.on("NodeChange", function(e) { var n = (function(e, t) { for (var n = 0; n < e.length; n++) if (t(e[n])) return n; return -1; })(e.parents, f), r = -1 !== n ? e.parents.slice(0, n) : e.parents, a = i.grep(r, l); o.active(a.length > 0 && a[0].nodeName === t); }); }; }, he = function(e) { var t, n, o, r; (n = "advlist"), (o = (t = e).settings.plugins ? t.settings.plugins : ""), -1 === i.inArray(o.split(/[ ,]/), n) && (e.addButton("numlist", { active: !1, title: "Numbered list", cmd: "InsertOrderedList", onPostRender: ve(e, "OL") }), e.addButton("bullist", { active: !1, title: "Bullet list", cmd: "InsertUnorderedList", onPostRender: ve(e, "UL") })), e.addButton("indent", { icon: "indent", title: "Increase indent", cmd: "Indent", onPostRender: ((r = e), function(e) { var t = e.control; r.on("nodechange", function() { var e = E.getSelectedListItems(r), n = e.length > 0 && m(e[0]); t.disabled(n); }); }) }); }; e.add("lists", function(e) { return pe(e), he(e), me(e), de(e); }); })(); !(function() { "use strict"; var t = tinymce.util.Tools.resolve("tinymce.PluginManager"), e = tinymce.util.Tools.resolve("tinymce.util.VK"), n = function(t) { return t.target_list; }, o = function(t) { return t.rel_list; }, i = function(t) { return t.link_class_list; }, r = function(t) { return ( "boolean" == typeof t.link_assume_external_targets && t.link_assume_external_targets ); }, a = function(t) { return ( "boolean" == typeof t.link_context_toolbar && t.link_context_toolbar ); }, l = function(t) { return t.link_list; }, u = function(t) { return "string" == typeof t.default_link_target; }, c = function(t) { return t.default_link_target; }, s = n, f = function(t, e) { t.settings.target_list = e; }, d = function(t) { return !1 !== n(t); }, m = o, v = function(t) { return o(t) !== undefined; }, g = i, h = function(t) { return i(t) !== undefined; }, x = function(t) { return !1 !== t.link_title; }, p = function(t) { return ( "boolean" == typeof t.allow_unsafe_link_target && t.allow_unsafe_link_target ); }, y = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), k = tinymce.util.Tools.resolve("tinymce.Env"), b = function(t) { if (!k.ie || k.ie > 10) { var e = document.createElement("a"); (e.target = "_blank"), (e.href = t), (e.rel = "noreferrer noopener"); var n = document.createEvent("MouseEvents"); n.initMouseEvent( "click", !0, !0, window, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null ), (r = e), (a = n), document.body.appendChild(r), r.dispatchEvent(a), document.body.removeChild(r); } else { var o = window.open("", "_blank"); if (o) { o.opener = null; var i = o.document; i.open(), i.write( '' ), i.close(); } } var r, a; }, _ = tinymce.util.Tools.resolve("tinymce.util.Tools"), w = function(t, e) { var n, o, i = ["noopener"], r = t ? t.split(/\s+/) : [], a = function(t) { return t.filter(function(t) { return -1 === _.inArray(i, t); }); }; return (r = e ? ((n = a((n = r))).length ? n.concat(i) : i) : a(r)).length ? ((o = r), _.trim(o.sort().join(" "))) : null; }, T = function(t, e) { return ( (e = e || t.selection.getNode()), M(e) ? t.dom.select("a[href]", e)[0] : t.dom.getParent(e, "a[href]") ); }, C = function(t) { return t && "A" === t.nodeName && t.href; }, M = function(t) { return t && "FIGURE" === t.nodeName && /\bimage\b/i.test(t.className); }, O = function(t, e) { var n, o; (o = t.dom.select("img", e)[0]) && (n = t.dom.getParents(o, "a[href]", e)[0]) && (n.parentNode.insertBefore(o, n), t.dom.remove(n)); }, N = function(t, e, n) { var o, i; (i = t.dom.select("img", e)[0]) && ((o = t.dom.create("a", n)), i.parentNode.insertBefore(o, i), o.appendChild(i)); }, R = function(t, e) { return function(n) { t.undoManager.transact(function() { var o = t.selection.getNode(), i = T(t, o), r = { href: n.href, target: n.target ? n.target : null, rel: n.rel ? n.rel : null, class: n["class"] ? n["class"] : null, title: n.title ? n.title : null }; v(t.settings) || !1 !== p(t.settings) || (r.rel = w(r.rel, "_blank" === r.target)), n.href === e.href && (e.attach(), (e = {})), i ? (t.focus(), n.hasOwnProperty("text") && ("innerText" in i ? (i.innerText = n.text) : (i.textContent = n.text)), t.dom.setAttribs(i, r), t.selection.select(i), t.undoManager.add()) : M(o) ? N(t, o, r) : n.hasOwnProperty("text") ? t.insertContent(t.dom.createHTML("a", r, t.dom.encode(n.text))) : t.execCommand("mceInsertLink", !1, r); }); }; }, A = function(t) { return function() { t.undoManager.transact(function() { var e = t.selection.getNode(); M(e) ? O(t, e) : t.execCommand("unlink"); }); }; }, L = C, P = function(t) { return _.grep(t, C).length > 0; }, E = function(t) { return !( /]+>[^<]+<\/a>$/.test(t) || -1 === t.indexOf("href=")) ); }, K = T, S = function(t, e) { var n = e ? e.innerText || e.textContent : t.getContent({ format: "text" }); return n.replace(/\uFEFF/g, ""); }, U = w, D = tinymce.util.Tools.resolve("tinymce.util.Delay"), I = tinymce.util.Tools.resolve("tinymce.util.XHR"), B = {}, F = function(t, e, n) { var o = function(t, n) { return ( (n = n || []), _.each(t, function(t) { var i = { text: t.text || t.title }; t.menu ? (i.menu = o(t.menu)) : ((i.value = t.value), e && e(i)), n.push(i); }), n ); }; return o(t, n || []); }, q = function(t, e, n) { var o = t.selection.getRng(); D.setEditorTimeout(t, function() { t.windowManager.confirm(e, function(e) { t.selection.setRng(o), n(e); }); }); }, V = function(t, e) { var n, o, i, a, l, y, k, b, w, T, C, M = {}, O = t.selection, N = t.dom, L = function(t) { var e = i.find("#text"); (!e.value() || (t.lastControl && e.value() === t.lastControl.text())) && e.value(t.control.text()), i.find("#href").value(t.control.value()); }, P = function() { o || !a || M.text || this.parent() .parent() .find("#text")[0] .value(this.value()); }; (a = E(O.getContent())), (n = K(t)), (M.text = o = S(t.selection, n)), (M.href = n ? N.getAttrib(n, "href") : ""), n ? (M.target = N.getAttrib(n, "target")) : u(t.settings) && (M.target = c(t.settings)), (C = N.getAttrib(n, "rel")) && (M.rel = C), (C = N.getAttrib(n, "class")) && (M["class"] = C), (C = N.getAttrib(n, "title")) && (M.title = C), a && (l = { name: "text", type: "textbox", size: 40, label: "Text to display", onchange: function() { M.text = this.value(); } }), e && (y = { type: "listbox", label: "Link list", values: F( e, function(e) { e.value = t.convertURL(e.value || e.url, "href"); }, [{ text: "None", value: "" }] ), onselect: L, value: t.convertURL(M.href, "href"), onPostRender: function() { y = this; } }), d(t.settings) && (s(t.settings) === undefined && f(t, [ { text: "None", value: "" }, { text: "New window", value: "_blank" } ]), (b = { name: "target", type: "listbox", label: "Target", values: F(s(t.settings)) })), v(t.settings) && (k = { name: "rel", type: "listbox", label: "Rel", values: F(m(t.settings), function(e) { !1 === p(t.settings) && (e.value = U(e.value, "_blank" === M.target)); }) }), h(t.settings) && (w = { name: "class", type: "listbox", label: "Class", values: F(g(t.settings), function(e) { e.value && (e.textStyle = function() { return t.formatter.getCssText({ inline: "a", classes: [e.value] }); }); }) }), x(t.settings) && (T = { name: "title", type: "textbox", label: "Title", value: M.title }), (i = t.windowManager.open({ title: "Insert link", data: M, body: [ { name: "href", type: "filepicker", filetype: "file", size: 40, autofocus: !0, label: "Url", onchange: function(e) { var n = e.meta || {}; y && y.value(t.convertURL(this.value(), "href")), _.each(e.meta, function(t, e) { var n = i.find("#" + e); "text" === e ? 0 === o.length && (n.value(t), (M.text = t)) : n.value(t); }), n.attach && (B = { href: this.value(), attach: n.attach }), n.text || P.call(this); }, onkeyup: P, onbeforecall: function(t) { t.meta = i.toJSON(); } }, l, T, (function(e) { var n = []; if ( (_.each(t.dom.select("a:not([href])"), function(t) { var o = t.name || t.id; o && n.push({ text: o, value: "#" + o, selected: -1 !== e.indexOf("#" + o) }); }), n.length) ) return ( n.unshift({ text: "None", value: "" }), { name: "anchor", type: "listbox", label: "Anchors", values: n, onselect: L } ); })(M.href), y, k, b, w ], onSubmit: function(e) { var n = r(t.settings), i = R(t, B), l = A(t), u = _.extend({}, M, e.data), c = u.href; c ? ((a && u.text !== o) || delete u.text, c.indexOf("@") > 0 && -1 === c.indexOf("//") && -1 === c.indexOf("mailto:") ? q( t, "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?", function(t) { t && (u.href = "mailto:" + c), i(u); } ) : (!0 === n && !/^\w+:/i.test(c)) || (!1 === n && /^\s*www[\.|\d\.]/i.test(c)) ? q( t, "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?", function(t) { t && (u.href = "http://" + c), i(u); } ) : i(u)) : l(); } })); }, z = function(t) { var e, n, o; (n = V), "string" == typeof (o = l((e = t).settings)) ? I.send({ url: o, success: function(t) { n(e, JSON.parse(t)); } }) : "function" == typeof o ? o(function(t) { n(e, t); }) : n(e, o); }, H = function(t, e) { return t.dom.getParent(e, "a[href]"); }, J = function(t) { return H(t, t.selection.getStart()); }, $ = function(t, e) { if (e) { var n = (i = e).getAttribute("data-mce-href") || i.getAttribute("href"); if (/^#/.test(n)) { var o = t.$(n); o.length && t.selection.scrollIntoView(o[0], !0); } else b(e.href); } var i; }, j = function(t) { return function() { z(t); }; }, G = function(t) { return function() { $(t, J(t)); }; }, X = function(t) { return function(e) { var n, o, i, r, l; return !!( a(t.settings) && ((r = t), (l = r.plugins.contextmenu), !l || !l.isContextMenuVisible()) && L(e) && 3 === (i = (o = (n = t.selection).getRng()).startContainer).nodeType && n.isCollapsed() && o.startOffset > 0 && o.startOffset < i.data.length ); }; }, Q = function(t) { t.on("click", function(n) { var o = H(t, n.target); o && e.metaKeyPressed(n) && (n.preventDefault(), $(t, o)); }), t.on("keydown", function(e) { var n, o = J(t); o && 13 === e.keyCode && !0 === (n = e).altKey && !1 === n.shiftKey && !1 === n.ctrlKey && !1 === n.metaKey && (e.preventDefault(), $(t, o)); }); }, W = function(t) { return function() { var e = this; t.on("nodechange", function(n) { e.active(!t.readonly && !!K(t, n.element)); }); }; }, Y = function(t) { return function() { var e = this, n = function(t) { P(t.parents) ? e.show() : e.hide(); }; P(t.dom.getParents(t.selection.getStart())) || e.hide(), t.on("nodechange", n), e.on("remove", function() { t.off("nodechange", n); }); }; }, Z = function(t) { t.addCommand("mceLink", j(t)); }, tt = function(t) { t.addShortcut("Meta+K", "", j(t)); }, et = function(t) { t.addButton("link", { active: !1, icon: "link", tooltip: "Insert/edit link", onclick: j(t), onpostrender: W(t) }), t.addButton("unlink", { active: !1, icon: "unlink", tooltip: "Remove link", onclick: A(t), onpostrender: W(t) }), t.addContextToolbar && t.addButton("openlink", { icon: "newtab", tooltip: "Open link", onclick: G(t) }); }, nt = function(t) { t.addMenuItem("openlink", { text: "Open link", icon: "newtab", onclick: G(t), onPostRender: Y(t), prependToContext: !0 }), t.addMenuItem("link", { icon: "link", text: "Link", shortcut: "Meta+K", onclick: j(t), stateSelector: "a[href]", context: "insert", prependToContext: !0 }); }, ot = function(t) { t.addContextToolbar && t.addContextToolbar(X(t), "openlink | link unlink"); }; t.add("link", function(t) { et(t), nt(t), ot(t), Q(t), Z(t), tt(t); }); })(); !(function() { "use strict"; var e = tinymce.util.Tools.resolve("tinymce.PluginManager"), t = tinymce.util.Tools.resolve("tinymce.util.Tools"), n = function(e) { (e.settings.inline_styles = !1), e.on("init", function() { var n, i, a, o; (n = e), (i = "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img"), (a = t.explode(n.settings.font_size_style_values)), (o = n.schema), n.formatter.register({ alignleft: { selector: i, attributes: { align: "left" } }, aligncenter: { selector: i, attributes: { align: "center" } }, alignright: { selector: i, attributes: { align: "right" } }, alignjustify: { selector: i, attributes: { align: "justify" } }, bold: [ { inline: "b", remove: "all" }, { inline: "strong", remove: "all" }, { inline: "span", styles: { fontWeight: "bold" } } ], italic: [ { inline: "i", remove: "all" }, { inline: "em", remove: "all" }, { inline: "span", styles: { fontStyle: "italic" } } ], underline: [ { inline: "u", remove: "all" }, { inline: "span", styles: { textDecoration: "underline" }, exact: !0 } ], strikethrough: [ { inline: "strike", remove: "all" }, { inline: "span", styles: { textDecoration: "line-through" }, exact: !0 } ], fontname: { inline: "font", attributes: { face: "%value" } }, fontsize: { inline: "font", attributes: { size: function(e) { return t.inArray(a, e.value) + 1; } } }, forecolor: { inline: "font", attributes: { color: "%value" } }, hilitecolor: { inline: "font", styles: { backgroundColor: "%value" } } }), t.each("b,i,u,strike".split(","), function(e) { o.addValidElements(e + "[*]"); }), o.getElementRule("font") || o.addValidElements("font[face|size|color|style]"), t.each(i.split(","), function(e) { var t = o.getElementRule(e); t && (t.attributes.align || ((t.attributes.align = {}), t.attributesOrder.push("align"))); }); }); }, i = function(e) { e.addButton("fontsizeselect", function() { var t = [], n = e.settings.fontsizeFormats || "8pt=1 10pt=2 12pt=3 14pt=4 18pt=5 24pt=6 36pt=7"; return ( e.$.each(n.split(" "), function(e, n) { var i = n, a = n, o = n.split("="); o.length > 1 && ((i = o[0]), (a = o[1])), t.push({ text: i, value: a }); }), { type: "listbox", text: "Font Sizes", tooltip: "Font Sizes", values: t, fixedWidth: !0, onPostRender: function() { var t = this; e.on("NodeChange", function() { var n; (n = e.dom.getParent(e.selection.getNode(), "font")) ? t.value(n.size) : t.value(""); }); }, onclick: function(t) { t.control.settings.value && e.execCommand("FontSize", !1, t.control.settings.value); } } ); }), e.addButton("fontselect", function() { var t = [], n = (function(e) { for (var t = (e = e.replace(/;$/, "").split(";")).length; t--; ) e[t] = e[t].split("="); return e; })( e.settings.font_formats || "Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats" ); return ( e.$.each(n, function(e, n) { t.push({ text: { raw: n[0] }, value: n[1], textStyle: -1 === n[1].indexOf("dings") ? "font-family:" + n[1] : "" }); }), { type: "listbox", text: "Font Family", tooltip: "Font Family", values: t, fixedWidth: !0, onPostRender: function() { var t = this; e.on("NodeChange", function() { var n; (n = e.dom.getParent(e.selection.getNode(), "font")) ? t.value(n.face) : t.value(""); }); }, onselect: function(t) { t.control.settings.value && e.execCommand("FontName", !1, t.control.settings.value); } } ); }); }; e.add("legacyoutput", function(e) { n(e), i(e); }); })(); !(function() { "use strict"; var e = function(t) { var n = t, r = function() { return n; }; return { get: r, set: function(e) { n = e; }, clone: function() { return e(r()); } }; }, t = tinymce.util.Tools.resolve("tinymce.PluginManager"), n = function(e) { return e.getParam("insertdatetime_timeformat", e.translate("%H:%M:%S")); }, r = function(e) { return e.getParam("insertdatetime_formats", [ "%H:%M:%S", "%Y-%m-%d", "%I:%M:%S %p", "%D" ]); }, a = function(e) { return e.getParam("insertdatetime_dateformat", e.translate("%Y-%m-%d")); }, i = n, o = r, u = function(e) { var t = r(e); return t.length > 0 ? t[0] : n(e); }, c = function(e) { return e.getParam("insertdatetime_element", !1); }, l = "Sun Mon Tue Wed Thu Fri Sat Sun".split(" "), m = "Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split( " " ), s = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), d = "January February March April May June July August September October November December".split( " " ), p = function(e, t) { if ((e = "" + e).length < t) for (var n = 0; n < t - e.length; n++) e = "0" + e; return e; }, f = function(e, t, n) { return ( (n = n || new Date()), (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = (t = t.replace( "%D", "%m/%d/%Y" )).replace("%r", "%I:%M:%S %p")).replace( "%Y", "" + n.getFullYear() )).replace("%y", "" + n.getYear())).replace( "%m", p(n.getMonth() + 1, 2) )).replace("%d", p(n.getDate(), 2))).replace( "%H", "" + p(n.getHours(), 2) )).replace("%M", "" + p(n.getMinutes(), 2))).replace( "%S", "" + p(n.getSeconds(), 2) )).replace("%I", "" + (((n.getHours() + 11) % 12) + 1))).replace( "%p", n.getHours() < 12 ? "AM" : "PM" )).replace("%B", "" + e.translate(d[n.getMonth()]))).replace( "%b", "" + e.translate(s[n.getMonth()]) )).replace("%A", "" + e.translate(m[n.getDay()]))).replace( "%a", "" + e.translate(l[n.getDay()]) )).replace("%%", "%")) ); }, g = function(e, t) { if (c(e)) { var n = f(e, t), r = void 0; r = /%[HMSIp]/.test(t) ? f(e, "%Y-%m-%dT%H:%M") : f(e, "%Y-%m-%d"); var a = e.dom.getParent(e.selection.getStart(), "time"); a ? ((o = a), (u = r), (l = n), (m = (i = e).dom.create("time", { datetime: u }, l)), o.parentNode.insertBefore(m, o), i.dom.remove(o), i.selection.select(m, !0), i.selection.collapse(!1)) : e.insertContent('"); } else e.insertContent(f(e, t)); var i, o, u, l, m; }, y = f, M = function(e) { e.addCommand("mceInsertDate", function() { g(e, a(e)); }), e.addCommand("mceInsertTime", function() { g(e, i(e)); }); }, v = tinymce.util.Tools.resolve("tinymce.util.Tools"), S = function(e, t) { var n, r, a, i = ((r = t), (a = o((n = e))), v.map(a, function(e) { return { text: y(n, e), onclick: function() { r.set(e), g(n, e); } }; })); e.addButton("insertdatetime", { type: "splitbutton", title: "Insert date/time", menu: i, onclick: function() { var n = t.get(); g(e, n || u(e)); } }), e.addMenuItem("insertdatetime", { icon: "date", text: "Date/time", menu: i, context: "insert" }); }; t.add("insertdatetime", function(t) { var n = e(null); M(t), S(t, n); }); })(); !(function() { "use strict"; var e = tinymce.util.Tools.resolve("tinymce.PluginManager"), t = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), n = tinymce.util.Tools.resolve("tinymce.EditorManager"), r = tinymce.util.Tools.resolve("tinymce.Env"), i = tinymce.util.Tools.resolve("tinymce.util.Tools"), c = function(e) { return e.getParam("importcss_merge_classes"); }, o = function(e) { return e.getParam("importcss_exclusive"); }, s = function(e) { return e.getParam("importcss_selector_converter"); }, u = function(e) { return e.getParam("importcss_selector_filter"); }, l = function(e) { return e.getParam("importcss_groups"); }, a = function(e) { return e.getParam("importcss_append"); }, f = function(e) { return e.getParam("importcss_file_filter"); }, m = function(e) { var t = r.cacheSuffix; return ( "string" == typeof e && (e = e.replace("?" + t, "").replace("&" + t, "")), e ); }, g = function(e, t) { var r = e.settings, i = !1 !== r.skin && (r.skin || "lightgray"); return ( !!i && t === (r.skin_url ? e.documentBaseURI.toAbsolute(r.skin_url) : n.baseURL + "/skins/" + i) + "/content" + (e.inline ? ".inline" : "") + ".min.css" ); }, p = function(e) { return "string" == typeof e ? function(t) { return -1 !== t.indexOf(e); } : e instanceof RegExp ? function(t) { return e.test(t); } : e; }, v = function(e, t, n) { var r = [], c = {}; i.each(e.contentCSS, function(e) { c[e] = !0; }), n || (n = function(e, t) { return t || c[e]; }); try { i.each(t.styleSheets, function(t) { !(function c(t, o) { var s, u = t.href; if ((u = m(u)) && n(u, o) && !g(e, u)) { i.each(t.imports, function(e) { c(e, !0); }); try { s = t.cssRules || t.rules; } catch (l) {} i.each(s, function(e) { e.styleSheet ? c(e.styleSheet, !0) : e.selectorText && i.each(e.selectorText.split(","), function(e) { r.push(i.trim(e)); }); }); } })(t); }); } catch (o) {} return r; }, h = function(e, t) { var n, r = /^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t); if (r) { var o = r[1], s = r[2] .substr(1) .split(".") .join(" "), u = i.makeMap("a,img"); return ( r[1] ? ((n = { title: t }), e.schema.getTextBlockElements()[o] ? (n.block = o) : e.schema.getBlockElements()[o] || u[o.toLowerCase()] ? (n.selector = o) : (n.inline = o)) : r[2] && (n = { inline: "span", title: t.substr(1), classes: s }), !1 !== c(e) ? (n.classes = s) : (n.attributes = { class: s }), n ); } }, d = function(e, t) { return null === t || !1 !== o(e); }, y = h, _ = function(e) { e.on("renderFormatsMenu", function(n) { var r, c = {}, o = p(u(e)), m = n.control, g = ((r = l(e)), i.map(r, function(e) { return i.extend({}, e, { original: e, selectors: {}, filter: p(e.filter), item: { text: e.title, menu: [] } }); })), y = function(n, r) { if ( ((_ = n), (T = c), !(d(e, (x = r)) ? _ in T : _ in x.selectors)) ) { (p = n), (y = c), d(e, (v = r)) ? (y[p] = !0) : (v.selectors[p] = !0); var o = ((l = e), (a = e.plugins.importcss), (f = n), ((g = r) && g.selector_converter ? g.selector_converter : s(l) ? s(l) : function() { return h(l, f); } ).call(a, f, g)); if (o) { var u = o.name || t.DOM.uniqueId(); return ( e.formatter.register(u, o), i.extend({}, m.settings.itemDefaults, { text: o.title, format: u }) ); } } var l, a, f, g, p, v, y, _, x, T; return null; }; a(e) || m.items().remove(), i.each(v(e, n.doc || e.getDoc(), p(f(e))), function(e) { if (-1 === e.indexOf(".mce-") && (!o || o(e))) { var t = ((r = g), (c = e), i.grep(r, function(e) { return !e.filter || e.filter(c); })); if (t.length > 0) i.each(t, function(t) { var n = y(e, t); n && t.item.menu.push(n); }); else { var n = y(e, null); n && m.add(n); } } var r, c; }), i.each(g, function(e) { e.item.menu.length > 0 && m.add(e.item); }), n.control.renderNew(); }); }, x = function(e) { return { convertSelectorToFormat: function(t) { return y(e, t); } }; }; e.add("importcss", function(e) { return _(e), x(e); }); })(); !(function() { "use strict"; var t = function(e) { var n = e, o = function() { return n; }; return { get: o, set: function(t) { n = t; }, clone: function() { return t(o()); } }; }, e = tinymce.util.Tools.resolve("tinymce.PluginManager"), n = tinymce.util.Tools.resolve("tinymce.util.Tools"); function o(t, e) { return i(document.createElement("canvas"), t, e); } function r(t) { return t.getContext("2d"); } function i(t, e, n) { return (t.width = e), (t.height = n), t; } var a, u, c, l, s = { create: o, clone: function(t) { var e; return r((e = o(t.width, t.height))).drawImage(t, 0, 0), e; }, resize: i, get2dContext: r, get3dContext: function(t) { var e = null; try { e = t.getContext("webgl") || t.getContext("experimental-webgl"); } catch (n) {} return e || (e = null), e; } }, f = { getWidth: function(t) { return t.naturalWidth || t.width; }, getHeight: function(t) { return t.naturalHeight || t.height; } }, d = window.Promise ? window.Promise : (function() { var t = function(t) { if ("object" != typeof this) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof t) throw new TypeError("not a function"); (this._state = null), (this._value = null), (this._deferreds = []), c(t, n(i, this), n(a, this)); }, e = t.immediateFn || ("function" == typeof setImmediate && setImmediate) || function(t) { setTimeout(t, 1); }; function n(t, e) { return function() { t.apply(e, arguments); }; } var o = Array.isArray || function(t) { return "[object Array]" === Object.prototype.toString.call(t); }; function r(t) { var n = this; null !== this._state ? e(function() { var e = n._state ? t.onFulfilled : t.onRejected; if (null !== e) { var o; try { o = e(n._value); } catch (r) { return void t.reject(r); } t.resolve(o); } else (n._state ? t.resolve : t.reject)(n._value); }) : this._deferreds.push(t); } function i(t) { try { if (t === this) throw new TypeError( "A promise cannot be resolved with itself." ); if (t && ("object" == typeof t || "function" == typeof t)) { var e = t.then; if ("function" == typeof e) return void c(n(e, t), n(i, this), n(a, this)); } (this._state = !0), (this._value = t), u.call(this); } catch (o) { a.call(this, o); } } function a(t) { (this._state = !1), (this._value = t), u.call(this); } function u() { for (var t = 0, e = this._deferreds.length; t < e; t++) r.call(this, this._deferreds[t]); this._deferreds = null; } function c(t, e, n) { var o = !1; try { t( function(t) { o || ((o = !0), e(t)); }, function(t) { o || ((o = !0), n(t)); } ); } catch (r) { if (o) return; (o = !0), n(r); } } return ( (t.prototype["catch"] = function(t) { return this.then(null, t); }), (t.prototype.then = function(e, n) { var o = this; return new t(function(t, i) { r.call( o, new function(t, e, n, o) { (this.onFulfilled = "function" == typeof t ? t : null), (this.onRejected = "function" == typeof e ? e : null), (this.resolve = n), (this.reject = o); }(e, n, t, i) ); }); }), (t.all = function() { var e = Array.prototype.slice.call( 1 === arguments.length && o(arguments[0]) ? arguments[0] : arguments ); return new t(function(t, n) { if (0 === e.length) return t([]); var o = e.length; function r(i, a) { try { if (a && ("object" == typeof a || "function" == typeof a)) { var u = a.then; if ("function" == typeof u) return void u.call( a, function(t) { r(i, t); }, n ); } (e[i] = a), 0 == --o && t(e); } catch (c) { n(c); } } for (var i = 0; i < e.length; i++) r(i, e[i]); }); }), (t.resolve = function(e) { return e && "object" == typeof e && e.constructor === t ? e : new t(function(t) { t(e); }); }), (t.reject = function(e) { return new t(function(t, n) { n(e); }); }), (t.race = function(e) { return new t(function(t, n) { for (var o = 0, r = e.length; o < r; o++) e[o].then(t, n); }); }), t ); })(), h = function(t) { return function() { return t; }; }, p = { noop: function() {}, noarg: function(t) { return function() { return t(); }; }, compose: function(t, e) { return function() { return t(e.apply(null, arguments)); }; }, constant: h, identity: function(t) { return t; }, tripleEquals: function(t, e) { return t === e; }, curry: function(t) { for ( var e = new Array(arguments.length - 1), n = 1; n < arguments.length; n++ ) e[n - 1] = arguments[n]; return function() { for (var n = new Array(arguments.length), o = 0; o < n.length; o++) n[o] = arguments[o]; var r = e.concat(n); return t.apply(null, r); }; }, not: function(t) { return function() { return !t.apply(null, arguments); }; }, die: function(t) { return function() { throw new Error(t); }; }, apply: function(t) { return t(); }, call: function(t) { t(); }, never: h(!1), always: h(!0) }, m = p.never, g = p.always, v = function() { return y; }, y = ((l = { fold: function(t, e) { return t(); }, is: m, isSome: m, isNone: g, getOr: (c = function(t) { return t; }), getOrThunk: (u = function(t) { return t(); }), getOrDie: function(t) { throw new Error(t || "error: getOrDie called on none."); }, or: c, orThunk: u, map: v, ap: v, each: function() {}, bind: v, flatten: v, exists: m, forall: g, filter: v, equals: (a = function(t) { return t.isNone(); }), equals_: a, toArray: function() { return []; }, toString: p.constant("none()") }), Object.freeze && Object.freeze(l), l), b = function(t) { var e = function() { return t; }, n = function() { return r; }, o = function(e) { return e(t); }, r = { fold: function(e, n) { return n(t); }, is: function(e) { return t === e; }, isSome: g, isNone: m, getOr: e, getOrThunk: e, getOrDie: e, or: n, orThunk: n, map: function(e) { return b(e(t)); }, ap: function(e) { return e.fold(v, function(e) { return b(e(t)); }); }, each: function(e) { e(t); }, bind: o, flatten: e, exists: o, forall: o, filter: function(e) { return e(t) ? r : y; }, equals: function(e) { return e.is(t); }, equals_: function(e, n) { return e.fold(m, function(e) { return n(t, e); }); }, toArray: function() { return [t]; }, toString: function() { return "some(" + t + ")"; } }; return r; }, w = { some: b, none: v, from: function(t) { return null === t || t === undefined ? y : b(t); } }, x = "undefined" != typeof window ? window : Function("return this;")(), R = function(t, e) { for ( var n = e !== undefined && null !== e ? e : x, o = 0; o < t.length && n !== undefined && null !== n; ++o ) n = n[t[o]]; return n; }, I = function(t, e) { var n = t.split("."); return R(n, e); }, T = function(t, e) { var n = I(t, e); if (n === undefined || null === n) throw t + " not available on this browser"; return n; }, k = function(t, e) { return new (T("Blob"))(t, e); }, C = function() { return new (T("FileReader"))(); }, B = function(t) { return new (T("Uint8Array"))(t); }, U = { atob: function(t) { return T("atob")(t); }, requestAnimationFrame: function(t) { T("requestAnimationFrame")(t); } }; function M(t) { return new d(function(e, n) { var o = URL.createObjectURL(t), r = new Image(), i = function() { r.removeEventListener("load", a), r.removeEventListener("error", u); }; function a() { i(), e(r); } function u() { i(), n("Unable to load data of type " + t.type + ": " + o); } r.addEventListener("load", a), r.addEventListener("error", u), (r.src = o), r.complete && a(); }); } function j(t) { return new d(function(e) { var n = new XMLHttpRequest(); n.open("GET", t, !0), (n.responseType = "blob"), (n.onload = function() { 200 == this.status && e(this.response); }), n.send(); }); } function A(t) { var e = t.split(","), n = /data:([^;]+)/.exec(e[0]); if (!n) return w.none(); for ( var o = n[1], r = e[1], i = U.atob(r), a = i.length, u = Math.ceil(a / 1024), c = new Array(u), l = 0; l < u; ++l ) { for ( var s = 1024 * l, f = Math.min(s + 1024, a), d = new Array(f - s), h = s, p = 0; h < f; ++p, ++h ) d[p] = i[h].charCodeAt(0); c[l] = B(d); } return w.some(k(c, { type: o })); } function z(t) { return new d(function(e, n) { A(t).fold(function() { n("uri is not base64: " + t); }, e); }); } function E(t) { return new d(function(e) { var n = new C(); (n.onloadend = function() { e(n.result); }), n.readAsDataURL(t); }); } var S = { blobToImage: M, imageToBlob: function(t) { return ((e = t), new d(function(t) { e.complete ? t(e) : e.addEventListener("load", function n() { e.removeEventListener("load", n), t(e); }); })).then(function(t) { var e = t.src; return 0 === e.indexOf("blob:") ? j(e) : 0 === e.indexOf("data:") ? z(e) : j(e); }); var e; }, blobToDataUri: E, blobToBase64: function(t) { return E(t).then(function(t) { return t.split(",")[1]; }); }, dataUriToBlobSync: A, canvasToBlob: function(t, e, n) { return ( (e = e || "image/png"), HTMLCanvasElement.prototype.toBlob ? new d(function(o) { t.toBlob( function(t) { o(t); }, e, n ); }) : z(t.toDataURL(e, n)) ); }, canvasToDataURL: function(t, e, n) { return ( (e = e || "image/png"), t.then(function(t) { return t.toDataURL(e, n); }) ); }, blobToCanvas: function(t) { return M(t).then(function(t) { var e, n; return ( (e = t), URL.revokeObjectURL(e.src), (n = s.create(f.getWidth(t), f.getHeight(t))), s.get2dContext(n).drawImage(t, 0, 0), n ); }); }, uriToBlob: function(t) { return 0 === t.indexOf("blob:") ? j(t) : 0 === t.indexOf("data:") ? z(t) : null; } }, L = function(t) { return S.blobToImage(t); }, H = function(t) { return S.imageToBlob(t); }; function O(t, e, n) { var o = e.type; function r(e, n) { return t.then(function(t) { return S.canvasToDataURL(t, e, n); }); } return { getType: p.constant(o), toBlob: function() { return d.resolve(e); }, toDataURL: function() { return n; }, toBase64: function() { return n.split(",")[1]; }, toAdjustedBlob: function(e, n) { return t.then(function(t) { return S.canvasToBlob(t, e, n); }); }, toAdjustedDataURL: r, toAdjustedBase64: function(t, e) { return r(t, e).then(function(t) { return t.split(",")[1]; }); }, toCanvas: function() { return t.then(s.clone); } }; } function _(t) { return S.blobToDataUri(t).then(function(e) { return O(S.blobToCanvas(t), t, e); }); } var D = { fromBlob: _, fromCanvas: function(t, e) { return S.canvasToBlob(t, e).then(function(e) { return O(d.resolve(t), e, t.toDataURL()); }); }, fromImage: function(t) { return S.imageToBlob(t).then(function(t) { return _(t); }); }, fromBlobAndUrlSync: function(t, e) { return O(S.blobToCanvas(t), t, e); } }; function F(t, e, n) { return (t = parseFloat(t)) > n ? (t = n) : t < e && (t = e), t; } var P = [ 0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.2, 0.21, 0.22, 0.24, 0.25, 0.27, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.8, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66, 1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5, 7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10 ]; function W(t, e) { var n, o, r, i, a = [], u = new Array(10); for (n = 0; n < 5; n++) { for (o = 0; o < 5; o++) a[o] = e[o + 5 * n]; for (o = 0; o < 5; o++) { for (i = 0, r = 0; r < 5; r++) i += t[o + 5 * r] * a[r]; u[o + 5 * n] = i; } } return u; } function q(t, e) { return ( (e = F(e, 0, 1)), t.map(function(t, n) { return n % 6 == 0 ? (t = 1 - (1 - t) * e) : (t *= e), F(t, 0, 1); }) ); } var V = { identity: function() { return [ 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1 ]; }, adjust: q, multiply: W, adjustContrast: function(t, e) { var n; return ( (e = F(e, -1, 1)), W(t, [ (n = (e *= 100) < 0 ? 127 + (e / 100) * 127 : 127 * (n = 0 == (n = e % 1) ? P[e] : P[Math.floor(e)] * (1 - n) + P[Math.floor(e) + 1] * n) + 127) / 127, 0, 0, 0, 0.5 * (127 - n), 0, n / 127, 0, 0, 0.5 * (127 - n), 0, 0, n / 127, 0, 0.5 * (127 - n), 0, 0, 0, 1, 0, 0, 0, 0, 0, 1 ]) ); }, adjustBrightness: function(t, e) { return W(t, [ 1, 0, 0, 0, (e = F(255 * e, -255, 255)), 0, 1, 0, 0, e, 0, 0, 1, 0, e, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1 ]); }, adjustSaturation: function(t, e) { var n, o, r; return W(t, [ (o = 0.3086) * (1 - (n = 1 + ((e = F(e, -1, 1)) > 0 ? 3 * e : e))) + n, (r = 0.6094) * (1 - n), 0.082 * (1 - n), 0, 0, o * (1 - n), r * (1 - n) + n, 0.082 * (1 - n), 0, 0, o * (1 - n), r * (1 - n), 0.082 * (1 - n) + n, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1 ]); }, adjustHue: function(t, e) { var n, o, r, i, a; return ( (e = (F(e, -180, 180) / 180) * Math.PI), (n = Math.cos(e)), (o = Math.sin(e)), W(t, [ (r = 0.213) + 0.787 * n + o * -r, (i = 0.715) + n * -i + o * -i, (a = 0.072) + n * -a + 0.928 * o, 0, 0, r + n * -r + 0.143 * o, i + n * (1 - i) + 0.14 * o, a + n * -a + -0.283 * o, 0, 0, r + n * -r + -0.787 * o, i + n * -i + o * i, a + 0.928 * n + o * a, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1 ]) ); }, adjustColors: function(t, e, n, o) { return W(t, [ (e = F(e, 0, 2)), 0, 0, 0, 0, 0, (n = F(n, 0, 2)), 0, 0, 0, 0, 0, (o = F(o, 0, 2)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1 ]); }, adjustSepia: function(t, e) { return W( t, q( [ 0.393, 0.769, 0.189, 0, 0, 0.349, 0.686, 0.168, 0, 0, 0.272, 0.534, 0.131, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1 ], (e = F(e, 0, 1)) ) ); }, adjustGrayscale: function(t, e) { return W( t, q( [ 0.33, 0.34, 0.33, 0, 0, 0.33, 0.34, 0.33, 0, 0, 0.33, 0.34, 0.33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1 ], (e = F(e, 0, 1)) ) ); } }; function N(t, e) { return t.toCanvas().then(function(n) { return ( (o = n), (r = t.getType()), (i = e), (u = s.get2dContext(o)), (a = (function(t, e) { var n, o, r, i, a, u = t.data, c = e[0], l = e[1], s = e[2], f = e[3], d = e[4], h = e[5], p = e[6], m = e[7], g = e[8], v = e[9], y = e[10], b = e[11], w = e[12], x = e[13], R = e[14], I = e[15], T = e[16], k = e[17], C = e[18], B = e[19]; for (a = 0; a < u.length; a += 4) (n = u[a]), (o = u[a + 1]), (r = u[a + 2]), (i = u[a + 3]), (u[a] = n * c + o * l + r * s + i * f + d), (u[a + 1] = n * h + o * p + r * m + i * g + v), (u[a + 2] = n * y + o * b + r * w + i * x + R), (u[a + 3] = n * I + o * T + r * k + i * C + B); return t; })(u.getImageData(0, 0, o.width, o.height), i)), u.putImageData(a, 0, 0), D.fromCanvas(o, r) ); var o, r, i, a, u; }); } function X(t, e) { return t.toCanvas().then(function(n) { return ( (o = n), (r = t.getType()), (i = e), (c = s.get2dContext(o)), (a = c.getImageData(0, 0, o.width, o.height)), (u = c.getImageData(0, 0, o.width, o.height)), (u = (function(t, e, n) { var o, r, i, a, u, c, l, s, f, d, h, p, m, g, v, y, b; function w(t, e, n) { return t > n ? (t = n) : t < e && (t = e), t; } for ( i = Math.round(Math.sqrt(n.length)), a = Math.floor(i / 2), o = t.data, r = e.data, y = t.width, b = t.height, c = 0; c < b; c++ ) for (u = 0; u < y; u++) { for (l = s = f = 0, h = 0; h < i; h++) for (d = 0; d < i; d++) (p = w(u + d - a, 0, y - 1)), (m = w(c + h - a, 0, b - 1)), (g = 4 * (m * y + p)), (v = n[h * i + d]), (l += o[g] * v), (s += o[g + 1] * v), (f += o[g + 2] * v); (r[(g = 4 * (c * y + u))] = w(l, 0, 255)), (r[g + 1] = w(s, 0, 255)), (r[g + 2] = w(f, 0, 255)); } return e; })(a, u, i)), c.putImageData(u, 0, 0), D.fromCanvas(o, r) ); var o, r, i, a, u, c; }); } function $(t) { return function(e, n) { return e.toCanvas().then(function(o) { return (function(e, n, o) { var r, i, a = s.get2dContext(e), u = new Array(256); for (i = 0; i < u.length; i++) u[i] = t(i, o); return ( (r = (function(t, e) { var n, o = t.data; for (n = 0; n < o.length; n += 4) (o[n] = e[o[n]]), (o[n + 1] = e[o[n + 1]]), (o[n + 2] = e[o[n + 2]]); return t; })(a.getImageData(0, 0, e.width, e.height), u)), a.putImageData(r, 0, 0), D.fromCanvas(e, n) ); })(o, e.getType(), n); }); }; } function G(t) { return function(e, n) { return N(e, t(V.identity(), n)); }; } function Y(t) { return function(e) { return X(e, t); }; } var J, K = { invert: ((J = [ -1, 0, 0, 0, 255, 0, -1, 0, 0, 255, 0, 0, -1, 0, 255, 0, 0, 0, 1, 0 ]), function(t) { return N(t, J); }), brightness: G(V.adjustBrightness), hue: G(V.adjustHue), saturate: G(V.adjustSaturation), contrast: G(V.adjustContrast), grayscale: G(V.adjustGrayscale), sepia: G(V.adjustSepia), colorize: function(t, e, n, o) { return N(t, V.adjustColors(V.identity(), e, n, o)); }, sharpen: Y([0, -1, 0, -1, 5, -1, 0, -1, 0]), emboss: Y([-2, -1, 0, -1, 1, 1, 0, 1, 2]), gamma: $(function(t, e) { return 255 * Math.pow(t / 255, 1 - e); }), exposure: $(function(t, e) { return 255 * (1 - Math.exp((-t / 255) * e)); }), colorFilter: N, convoluteFilter: X }, Z = { scale: function te(t, e, n) { var o = f.getWidth(t), r = f.getHeight(t), i = e / o, a = n / r, u = !1; (i < 0.5 || i > 2) && ((i = i < 0.5 ? 0.5 : 2), (u = !0)), (a < 0.5 || a > 2) && ((a = a < 0.5 ? 0.5 : 2), (u = !0)); var c, l, h, p = ((c = t), (l = i), (h = a), new d(function(t) { var e = f.getWidth(c), n = f.getHeight(c), o = Math.floor(e * l), r = Math.floor(n * h), i = s.create(o, r), a = s.get2dContext(i); a.drawImage(c, 0, 0, e, n, 0, 0, o, r), t(i); })); return u ? p.then(function(t) { return te(t, e, n); }) : p; } }, Q = { rotate: function(t, e) { return t.toCanvas().then(function(n) { return ( (o = n), (r = t.getType()), (i = e), (a = s.create(o.width, o.height)), (u = s.get2dContext(a)), (c = 0), (l = 0), (90 != (i = i < 0 ? 360 + i : i) && 270 != i) || s.resize(a, a.height, a.width), (90 != i && 180 != i) || (c = a.width), (270 != i && 180 != i) || (l = a.height), u.translate(c, l), u.rotate((i * Math.PI) / 180), u.drawImage(o, 0, 0), D.fromCanvas(a, r) ); var o, r, i, a, u, c, l; }); }, flip: function(t, e) { return t.toCanvas().then(function(n) { return ( (o = n), (r = t.getType()), (i = e), (a = s.create(o.width, o.height)), (u = s.get2dContext(a)), "v" == i ? (u.scale(1, -1), u.drawImage(o, 0, -a.height)) : (u.scale(-1, 1), u.drawImage(o, -a.width, 0)), D.fromCanvas(a, r) ); var o, r, i, a, u; }); }, crop: function(t, e, n, o, r) { return t.toCanvas().then(function(i) { return ( (a = i), (u = t.getType()), (c = e), (l = n), (f = o), (d = r), (h = s.create(f, d)), s.get2dContext(h).drawImage(a, -c, -l), D.fromCanvas(h, u) ); var a, u, c, l, f, d, h; }); }, resize: function(t, e, n) { return t.toCanvas().then(function(o) { return Z.scale(o, e, n).then(function(e) { return D.fromCanvas(e, t.getType()); }); }); } }, tt = { invert: function(t) { return K.invert(t); }, sharpen: function(t) { return K.sharpen(t); }, emboss: function(t) { return K.emboss(t); }, brightness: function(t, e) { return K.brightness(t, e); }, hue: function(t, e) { return K.hue(t, e); }, saturate: function(t, e) { return K.saturate(t, e); }, contrast: function(t, e) { return K.contrast(t, e); }, grayscale: function(t, e) { return K.grayscale(t, e); }, sepia: function(t, e) { return K.sepia(t, e); }, colorize: function(t, e, n, o) { return K.colorize(t, e, n, o); }, gamma: function(t, e) { return K.gamma(t, e); }, exposure: function(t, e) { return K.exposure(t, e); }, flip: function(t, e) { return Q.flip(t, e); }, crop: function(t, e, n, o, r) { return Q.crop(t, e, n, o, r); }, resize: function(t, e, n) { return Q.resize(t, e, n); }, rotate: function(t, e) { return Q.rotate(t, e); } }, et = function(t) { return t.toBlob(); }, nt = { blobToImageResult: function(t) { return D.fromBlob(t); }, fromBlobAndUrlSync: function(t, e) { return D.fromBlobAndUrlSync(t, e); }, imageToImageResult: function(t) { return D.fromImage(t); }, imageResultToBlob: function(t, e, n) { return e === undefined && n === undefined ? et(t) : t.toAdjustedBlob(e, n); }, imageResultToOriginalBlob: et, imageResultToDataURL: function(t) { return t.toDataURL(); } }, ot = function() { return T("URL"); }, rt = { createObjectURL: function(t) { return ot().createObjectURL(t); }, revokeObjectURL: function(t) { ot().revokeObjectURL(t); } }, it = tinymce.util.Tools.resolve("tinymce.util.Delay"), at = tinymce.util.Tools.resolve("tinymce.util.Promise"), ut = tinymce.util.Tools.resolve("tinymce.util.URI"), ct = function(t) { return t.getParam( "imagetools_toolbar", "rotateleft rotateright | flipv fliph | crop editimage imageoptions" ); }, lt = function(t) { return t.getParam("imagetools_proxy"); }, st = { getImageSize: function(t) { var e, n; function o(t) { return /^[0-9\.]+px$/.test(t); } return ( (e = t.style.width), (n = t.style.height), e || n ? o(e) && o(n) ? { w: parseInt(e, 10), h: parseInt(n, 10) } : null : ((e = t.width), (n = t.height), e && n ? { w: parseInt(e, 10), h: parseInt(n, 10) } : null) ); }, setImageSize: function(t, e) { var n, o; e && ((n = t.style.width), (o = t.style.height), (n || o) && ((t.style.width = e.w + "px"), (t.style.height = e.h + "px"), t.removeAttribute("data-mce-style")), (n = t.width), (o = t.height), (n || o) && (t.setAttribute("width", e.w), t.setAttribute("height", e.h))); }, getNaturalImageSize: function(t) { return { w: t.naturalWidth, h: t.naturalHeight }; } }, ft = (Array.prototype.indexOf, undefined, Array.prototype.push, Array.prototype.slice, function(t, e) { for (var n = 0, o = t.length; n < o; n++) { var r = t[n]; if (e(r, n, t)) return w.some(r); } return w.none(); }), dt = function(t) { return null !== t && t !== undefined; }, ht = { traverse: function(t, e) { var n; return ( (n = e.reduce(function(t, e) { return dt(t) ? t[e] : undefined; }, t)), dt(n) ? n : null ); }, readBlob: function(t) { return new at(function(e) { var n = new C(); (n.onload = function(t) { var n = t.target; e(n.result); }), n.readAsText(t); }); }, requestUrlAsBlob: function(t, e) { return new at(function(o) { var r; ((r = new function() { return new (T("XMLHttpRequest"))(); }()).onreadystatechange = function() { 4 === r.readyState && o({ status: r.status, blob: this.response }); }), r.open("GET", t, !0), n.each(e, function(t, e) { r.setRequestHeader(e, t); }), (r.responseType = "blob"), r.send(); }); }, parseJson: function(t) { var e; try { e = JSON.parse(t); } catch (n) {} return e; } }, pt = [ { code: 404, message: "Could not find Image Proxy" }, { code: 403, message: "Rejected request" }, { code: 0, message: "Incorrect Image Proxy URL" } ], mt = [ { type: "key_missing", message: "The request did not include an api key." }, { type: "key_not_found", message: "The provided api key could not be found." }, { type: "domain_not_trusted", message: "The api key is not valid for the request origins." } ], gt = function(t) { return ( "ImageProxy HTTP error: " + ft(pt, function(e) { return t === e.code; }).fold(p.constant("Unknown ImageProxy error"), function(t) { return t.message; }) ); }, vt = function(t) { var e = gt(t); return at.reject(e); }, yt = function(t) { return ft(mt, function(e) { return e.type === t; }).fold(p.constant("Unknown service error"), function(t) { return t.message; }); }, bt = function(t, e) { return ht.readBlob(e).then(function(t) { var e, n, o, r = ((e = t), (n = ht.parseJson(e)), "ImageProxy Service error: " + ((o = ht.traverse(n, ["error", "type"])) ? yt(o) : "Invalid JSON in service error message")); return at.reject(r); }); }, wt = { handleServiceErrorResponse: function(t, e) { return 400 === (n = t) || 403 === n || 500 === n ? bt(0, e) : vt(t); var n; }, handleHttpError: vt, getHttpErrorMsg: gt, getServiceErrorMsg: yt }, xt = function(t, e) { return ht .requestUrlAsBlob( ((n = t), (o = e), (r = -1 === n.indexOf("?") ? "?" : "&"), /[?&]apiKey=/.test(n) || !o ? n : n + r + "apiKey=" + encodeURIComponent(o)), { "Content-Type": "application/json;charset=UTF-8", "tiny-api-key": e } ) .then(function(t) { return t.status < 200 || t.status >= 300 ? wt.handleServiceErrorResponse(t.status, t.blob) : at.resolve(t.blob); }); var n, o, r; }, Rt = function(t, e) { return e ? xt(t, e) : ((n = t), ht.requestUrlAsBlob(n, {}).then(function(t) { return t.status < 200 || t.status >= 300 ? wt.handleHttpError(t.status) : at.resolve(t.blob); })); var n; }, It = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), Tt = tinymce.util.Tools.resolve("tinymce.ui.Factory"), kt = function() { var t = [], e = -1; function n() { return e > 0; } function o() { return -1 !== e && e < t.length - 1; } return { data: t, add: function(n) { var o; return (o = t.splice(++e)), t.push(n), { state: n, removed: o }; }, undo: function() { if (n()) return t[--e]; }, redo: function() { if (o()) return t[++e]; }, canUndo: n, canRedo: o }; }, Ct = tinymce.util.Tools.resolve("tinymce.geom.Rect"), Bt = function(t) { return new at(function(e) { var n = function() { t.removeEventListener("load", n), e(t); }; t.complete ? e(t) : t.addEventListener("load", n); }); }, Ut = tinymce.util.Tools.resolve("tinymce.dom.DomQuery"), Mt = tinymce.util.Tools.resolve("tinymce.util.Observable"), jt = tinymce.util.Tools.resolve("tinymce.util.VK"), At = 0, zt = function(t, e, o, r, i) { var a, u, c, l, s = "mce-", f = s + "crid-" + At++; function d(t, e) { return { x: e.x - t.x, y: e.y - t.y, w: e.w, h: e.h }; } function h(e, n, r, i) { var u, c, l, s, f; (u = n.x), (c = n.y), (l = n.w), (s = n.h), (u += r * e.deltaX), (c += i * e.deltaY), (l += r * e.deltaW), (s += i * e.deltaH), l < 20 && (l = 20), s < 20 && (s = 20), (f = t = Ct.clamp({ x: u, y: c, w: l, h: s }, o, "move" === e.name)), (f = d(o, f)), a.fire("updateRect", { rect: f }), g(f); } function p(t) { function o(t, e) { e.h < 0 && (e.h = 0), e.w < 0 && (e.w = 0), Ut("#" + f + "-" + t, r).css({ left: e.x, top: e.y, width: e.w, height: e.h }); } n.each(u, function(e) { Ut("#" + f + "-" + e.name, r).css({ left: t.w * e.xMul + t.x, top: t.h * e.yMul + t.y }); }), o("top", { x: e.x, y: e.y, w: e.w, h: t.y - e.y }), o("right", { x: t.x + t.w, y: t.y, w: e.w - t.x - t.w + e.x, h: t.h }), o("bottom", { x: e.x, y: t.y + t.h, w: e.w, h: e.h - t.y - t.h + e.y }), o("left", { x: e.x, y: t.y, w: t.x - e.x, h: t.h }), o("move", t); } function m(e) { p((t = e)); } function g(t) { var e, n; m(((e = o), { x: (n = t).x + e.x, y: n.y + e.y, w: n.w, h: n.h })); } return ( (u = [ { name: "move", xMul: 0, yMul: 0, deltaX: 1, deltaY: 1, deltaW: 0, deltaH: 0, label: "Crop Mask" }, { name: "nw", xMul: 0, yMul: 0, deltaX: 1, deltaY: 1, deltaW: -1, deltaH: -1, label: "Top Left Crop Handle" }, { name: "ne", xMul: 1, yMul: 0, deltaX: 0, deltaY: 1, deltaW: 1, deltaH: -1, label: "Top Right Crop Handle" }, { name: "sw", xMul: 0, yMul: 1, deltaX: 1, deltaY: 0, deltaW: -1, deltaH: 1, label: "Bottom Left Crop Handle" }, { name: "se", xMul: 1, yMul: 1, deltaX: 0, deltaY: 0, deltaW: 1, deltaH: 1, label: "Bottom Right Crop Handle" } ]), (l = ["top", "right", "bottom", "left"]), Ut( '
    ' ).appendTo(r), n.each(l, function(t) { Ut("#" + f, r).append( '