maison_alexandra/www/js/tinymcenew/tinymce.min.js

10361 lines
532 KiB
JavaScript

// 5.0.0-preview-4-build.3 (TBD)
!function () {
"use strict";
var x = function () {
for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]
}, j = function (n, r) {
return function () {
for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t];
return n(r.apply(null, e))
}
}, q = function (e) {
return function () {
return e
}
}, $ = function (e) {
return e
};
function m(r) {
for (var o = [], e = 1; e < arguments.length; e++)o[e - 1] = arguments[e];
return function () {
for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t];
var n = o.concat(e);
return r.apply(null, n)
}
}
var e, t, n, r, o, i, a, u, s, c, l, f, d, g, p, h, v, b = q(!1), y = q(!0), C = b, w = y, N = function () {
return E
}, E = (r = {
fold: function (e, t) {
return e()
}, is: C, isSome: C, isNone: w, getOr: n = function (e) {
return e
}, getOrThunk: t = function (e) {
return e()
}, getOrDie: function (e) {
throw new Error(e || "error: getOrDie called on none.")
}, getOrNull: function () {
return null
}, getOrUndefined: function () {
return undefined
}, or: n, orThunk: t, map: N, ap: N, each: function () {
}, bind: N, flatten: N, exists: C, forall: w, filter: N, equals: e = function (e) {
return e.isNone()
}, equals_: e, toArray: function () {
return []
}, toString: q("none()")
}, Object.freeze && Object.freeze(r), r), S = function (n) {
var e = function () {
return n
}, t = function () {
return o
}, r = function (e) {
return e(n)
}, o = {
fold: function (e, t) {
return t(n)
},
is: function (e) {
return n === e
},
isSome: w,
isNone: C,
getOr: e,
getOrThunk: e,
getOrDie: e,
getOrNull: e,
getOrUndefined: e,
or: t,
orThunk: t,
map: function (e) {
return S(e(n))
},
ap: function (e) {
return e.fold(N, function (e) {
return S(e(n))
})
},
each: function (e) {
e(n)
},
bind: r,
flatten: e,
exists: r,
forall: r,
filter: function (e) {
return e(n) ? o : E
},
equals: function (e) {
return e.is(n)
},
equals_: function (e, t) {
return e.fold(C, function (e) {
return t(n, e)
})
},
toArray: function () {
return [n]
},
toString: function () {
return "some(" + n + ")"
}
};
return o
}, A = {
some: S, none: N, from: function (e) {
return null === e || e === undefined ? E : S(e)
}
}, T = function (t) {
return function (e) {
return function (e) {
if (null === e)return "null";
var t = typeof e;
return "object" === t && Array.prototype.isPrototypeOf(e) ? "array" : "object" === t && String.prototype.isPrototypeOf(e) ? "string" : t
}(e) === t
}
}, k = T("string"), R = T("object"), D = T("array"), B = T("null"), _ = T("boolean"), O = T("function"), P = T("number"), L = (o = Array.prototype.indexOf) === undefined ? function (e, t) {
return H(e, t)
} : function (e, t) {
return o.call(e, t)
}, I = function (e, t) {
return -1 < L(e, t)
}, W = function (e, t) {
for (var n = e.length, r = new Array(n), o = 0; o < n; o++) {
var i = e[o];
r[o] = t(i, o, e)
}
return r
}, M = function (e, t) {
for (var n = 0, r = e.length; n < r; n++)t(e[n], n, e)
}, K = function (e, t) {
for (var n = [], r = [], o = 0, i = e.length; o < i; o++) {
var a = e[o];
(t(a, o, e) ? n : r).push(a)
}
return {pass: n, fail: r}
}, F = function (e, t) {
for (var n = [], r = 0, o = e.length; r < o; r++) {
var i = e[r];
t(i, r, e) && n.push(i)
}
return n
}, U = function (e, t, n) {
return M(e, function (e) {
n = t(n, e)
}), n
}, z = function (e, t) {
for (var n = 0, r = e.length; n < r; n++) {
var o = e[n];
if (t(o, n, e))return A.some(o)
}
return A.none()
}, V = function (e, t) {
for (var n = 0, r = e.length; n < r; n++)if (t(e[n], n, e))return A.some(n);
return A.none()
}, H = function (e, t) {
for (var n = 0, r = e.length; n < r; ++n)if (e[n] === t)return n;
return -1
}, X = Array.prototype.push, Y = function (e, t) {
return function (e) {
for (var t = [], n = 0, r = e.length; n < r; ++n) {
if (!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item " + n + " was not an array, input: " + e);
X.apply(t, e[n])
}
return t
}(W(e, t))
}, G = function (e, t) {
for (var n = 0, r = e.length; n < r; ++n)if (!0 !== t(e[n], n, e))return !1;
return !0
}, J = Array.prototype.slice, Q = function (e, t) {
return F(e, function (e) {
return !I(t, e)
})
}, Z = function (e) {
return 0 === e.length ? A.none() : A.some(e[0])
}, ee = function (e) {
return 0 === e.length ? A.none() : A.some(e[e.length - 1])
}, te = O(Array.from) ? Array.from : function (e) {
return J.call(e)
}, ne = "undefined" != typeof window ? window : Function("return this;")(), re = function (e, t) {
return function (e, t) {
for (var n = t !== undefined && null !== t ? t : ne, r = 0; r < e.length && n !== undefined && null !== n; ++r)n = n[e[r]];
return n
}(e.split("."), t)
}, oe = {
getOrDie: function (e, t) {
var n = re(e, t);
if (n === undefined || null === n)throw e + " not available on this browser";
return n
}
}, ie = function () {
return oe.getOrDie("URL")
}, ae = {
createObjectURL: function (e) {
return ie().createObjectURL(e)
}, revokeObjectURL: function (e) {
ie().revokeObjectURL(e)
}
}, ue = navigator, se = ue.userAgent, ce = function (e) {
return "matchMedia"in window && matchMedia(e).matches
};
d = /Android/.test(se), a = (a = !(i = /WebKit/.test(se)) && /MSIE/gi.test(se) && /Explorer/gi.test(ue.appName)) && /MSIE (\w+)\./.exec(se)[1], u = -1 !== se.indexOf("Trident/") && (-1 !== se.indexOf("rv:") || -1 !== ue.appName.indexOf("Netscape")) && 11, s = -1 !== se.indexOf("Edge/") && !a && !u && 12, a = a || u || s, c = !i && !u && /Gecko/.test(se), l = -1 !== se.indexOf("Mac"), f = /(iPad|iPhone)/.test(se), g = "FormData"in window && "FileReader"in window && "URL"in window && !!ae.createObjectURL, p = ce("only screen and (max-device-width: 480px)") && (d || f), h = ce("only screen and (min-width: 800px)") && (d || f), v = -1 !== se.indexOf("Windows Phone"), s && (i = !1);
var le, fe = {
opera: !1,
webkit: i,
ie: a,
gecko: c,
mac: l,
iOS: f,
android: d,
contentEditable: !f || g || 534 <= parseInt(se.match(/AppleWebKit\/(\d*)/)[1], 10),
transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
caretAfter: 8 !== a,
range: window.getSelection && "Range"in window,
documentMode: a && !s ? document.documentMode || 7 : 10,
fileApi: g,
ceFalse: !1 === a || 8 < a,
cacheSuffix: null,
container: null,
overrideViewPort: null,
experimentalShadowDom: !1,
canHaveCSP: !1 === a || 11 < a,
desktop: !p && !h,
windowsPhone: v
}, de = window.Promise ? window.Promise : function () {
function r(e, t) {
return function () {
e.apply(t, arguments)
}
}
var e = Array.isArray || function (e) {
return "[object Array]" === Object.prototype.toString.call(e)
}, i = function (e) {
if ("object" != typeof this)throw new TypeError("Promises must be constructed via new");
if ("function" != typeof e)throw new TypeError("not a function");
this._state = null, this._value = null, this._deferreds = [], l(e, r(o, this), r(u, this))
}, t = i.immediateFn || "function" == typeof setImmediate && setImmediate || function (e) {
setTimeout(e, 1)
};
function a(r) {
var o = this;
null !== this._state ? t(function () {
var e = o._state ? r.onFulfilled : r.onRejected;
if (null !== e) {
var t;
try {
t = e(o._value)
} catch (n) {
return void r.reject(n)
}
r.resolve(t)
} else(o._state ? r.resolve : r.reject)(o._value)
}) : this._deferreds.push(r)
}
function o(e) {
try {
if (e === this)throw new TypeError("A promise cannot be resolved with itself.");
if (e && ("object" == typeof e || "function" == typeof e)) {
var t = e.then;
if ("function" == typeof t)return void l(r(t, e), r(o, this), r(u, this))
}
this._state = !0, this._value = e, s.call(this)
} catch (n) {
u.call(this, n)
}
}
function u(e) {
this._state = !1, this._value = e, s.call(this)
}
function s() {
for (var e = 0, t = this._deferreds.length; e < t; e++)a.call(this, this._deferreds[e]);
this._deferreds = null
}
function c(e, t, n, r) {
this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.resolve = n, this.reject = r
}
function l(e, t, n) {
var r = !1;
try {
e(function (e) {
r || (r = !0, t(e))
}, function (e) {
r || (r = !0, n(e))
})
} catch (o) {
if (r)return;
r = !0, n(o)
}
}
return i.prototype["catch"] = function (e) {
return this.then(null, e)
}, i.prototype.then = function (n, r) {
var o = this;
return new i(function (e, t) {
a.call(o, new c(n, r, e, t))
})
}, i.all = function () {
var s = Array.prototype.slice.call(1 === arguments.length && e(arguments[0]) ? arguments[0] : arguments);
return new i(function (o, i) {
if (0 === s.length)return o([]);
var a = s.length;
function u(t, e) {
try {
if (e && ("object" == typeof e || "function" == typeof e)) {
var n = e.then;
if ("function" == typeof n)return void n.call(e, function (e) {
u(t, e)
}, i)
}
s[t] = e, 0 == --a && o(s)
} catch (r) {
i(r)
}
}
for (var e = 0; e < s.length; e++)u(e, s[e])
})
}, i.resolve = function (t) {
return t && "object" == typeof t && t.constructor === i ? t : new i(function (e) {
e(t)
})
}, i.reject = function (n) {
return new i(function (e, t) {
t(n)
})
}, i.race = function (o) {
return new i(function (e, t) {
for (var n = 0, r = o.length; n < r; n++)o[n].then(e, t)
})
}, i
}(), me = function (e, t) {
return "number" != typeof t && (t = 0), setTimeout(e, t)
}, ge = function (e, t) {
return "number" != typeof t && (t = 1), setInterval(e, t)
}, pe = function (t, n) {
var r, e;
return (e = function () {
var e = arguments;
clearTimeout(r), r = me(function () {
t.apply(this, e)
}, n)
}).stop = function () {
clearTimeout(r)
}, e
}, he = {
requestAnimationFrame: function (e, t) {
le ? le.then(e) : le = new de(function (e) {
t || (t = document.body), function (e, t) {
var n, r = window.requestAnimationFrame, o = ["ms", "moz", "webkit"];
for (n = 0; n < o.length && !r; n++)r = window[o[n] + "RequestAnimationFrame"];
r || (r = function (e) {
window.setTimeout(e, 0)
}), r(e, t)
}(e, t)
}).then(e)
}, setTimeout: me, setInterval: ge, setEditorTimeout: function (e, t, n) {
return me(function () {
e.removed || t()
}, n)
}, setEditorInterval: function (e, t, n) {
var r;
return r = ge(function () {
e.removed ? clearInterval(r) : t()
}, n)
}, debounce: pe, throttle: pe, clearInterval: function (e) {
return clearInterval(e)
}, clearTimeout: function (e) {
return clearTimeout(e)
}
}, ve = /^(?:mouse|contextmenu)|click/, be = {
keyLocation: 1,
layerX: 1,
layerY: 1,
returnValue: 1,
webkitMovementX: 1,
webkitMovementY: 1,
keyIdentifier: 1
}, ye = function () {
return !1
}, Ce = function () {
return !0
}, xe = function (e, t, n, r) {
e.addEventListener ? e.addEventListener(t, n, r || !1) : e.attachEvent && e.attachEvent("on" + t, n)
}, we = function (e, t, n, r) {
e.removeEventListener ? e.removeEventListener(t, n, r || !1) : e.detachEvent && e.detachEvent("on" + t, n)
}, Ne = function (e, t) {
var n, r, o = t || {};
for (n in e)be[n] || (o[n] = e[n]);
if (o.target || (o.target = o.srcElement || document), fe.experimentalShadowDom && (o.target = function (e, t) {
if (e.composedPath) {
var n = e.composedPath();
if (n && 0 < n.length)return n[0]
}
return t
}(e, o.target)), e && ve.test(e.type) && e.pageX === undefined && e.clientX !== undefined) {
var i = o.target.ownerDocument || document, a = i.documentElement, u = i.body;
o.pageX = e.clientX + (a && a.scrollLeft || u && u.scrollLeft || 0) - (a && a.clientLeft || u && u.clientLeft || 0), o.pageY = e.clientY + (a && a.scrollTop || u && u.scrollTop || 0) - (a && a.clientTop || u && u.clientTop || 0)
}
return o.preventDefault = function () {
o.isDefaultPrevented = Ce, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
}, o.stopPropagation = function () {
o.isPropagationStopped = Ce, e && (e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0)
}, !(o.stopImmediatePropagation = function () {
o.isImmediatePropagationStopped = Ce, o.stopPropagation()
}) == ((r = o).isDefaultPrevented === Ce || r.isDefaultPrevented === ye) && (o.isDefaultPrevented = ye, o.isPropagationStopped = ye, o.isImmediatePropagationStopped = ye), "undefined" == typeof o.metaKey && (o.metaKey = !1), o
}, Ee = function (e, t, n) {
var r = e.document, o = {type: "ready"};
if (n.domLoaded)t(o); else {
var i = function () {
return "complete" === r.readyState || "interactive" === r.readyState && r.body
}, a = function () {
n.domLoaded || (n.domLoaded = !0, t(o))
}, u = function () {
i() && (we(r, "readystatechange", u), a())
}, s = function () {
try {
r.documentElement.doScroll("left")
} catch (e) {
return void he.setTimeout(s)
}
a()
};
!r.addEventListener || fe.ie && fe.ie < 11 ? (xe(r, "readystatechange", u), r.documentElement.doScroll && e.self === e.top && s()) : i() ? a() : xe(e, "DOMContentLoaded", a), xe(e, "load", a)
}
}, Se = function () {
var m, g, p, h, v, b = this, y = {};
g = "mce-data-" + (+new Date).toString(32), h = "onmouseenter"in document.documentElement, p = "onfocusin"in document.documentElement, v = {
mouseenter: "mouseover",
mouseleave: "mouseout"
}, m = 1, b.domLoaded = !1, b.events = y;
var C = function (e, t) {
var n, r, o, i, a = y[t];
if (n = a && a[e.type])for (r = 0, o = n.length; r < o; r++)if ((i = n[r]) && !1 === i.func.call(i.scope, e) && e.preventDefault(), e.isImmediatePropagationStopped())return
};
b.bind = function (e, t, n, r) {
var o, i, a, u, s, c, l, f = window, d = function (e) {
C(Ne(e || f.event), o)
};
if (e && 3 !== e.nodeType && 8 !== e.nodeType) {
for (e[g] ? o = e[g] : (o = m++, e[g] = o, y[o] = {}), r = r || e, a = (t = t.split(" ")).length; a--;)c = d, s = l = !1, "DOMContentLoaded" === (u = t[a]) && (u = "ready"), b.domLoaded && "ready" === u && "complete" === e.readyState ? n.call(r, Ne({type: u})) : (h || (s = v[u]) && (c = function (e) {
var t, n;
if (t = e.currentTarget, (n = e.relatedTarget) && t.contains)n = t.contains(n); else for (; n && n !== t;)n = n.parentNode;
n || ((e = Ne(e || f.event)).type = "mouseout" === e.type ? "mouseleave" : "mouseenter", e.target = t, C(e, o))
}), p || "focusin" !== u && "focusout" !== u || (l = !0, s = "focusin" === u ? "focus" : "blur", c = function (e) {
(e = Ne(e || f.event)).type = "focus" === e.type ? "focusin" : "focusout", C(e, o)
}), (i = y[o][u]) ? "ready" === u && b.domLoaded ? n({type: u}) : i.push({
func: n,
scope: r
}) : (y[o][u] = i = [{
func: n,
scope: r
}], i.fakeName = s, i.capture = l, i.nativeHandler = c, "ready" === u ? Ee(e, c, b) : xe(e, s || u, c, l)));
return e = i = 0, n
}
}, b.unbind = function (e, t, n) {
var r, o, i, a, u, s;
if (!e || 3 === e.nodeType || 8 === e.nodeType)return b;
if (r = e[g]) {
if (s = y[r], t) {
for (i = (t = t.split(" ")).length; i--;)if (o = s[u = t[i]]) {
if (n)for (a = o.length; a--;)if (o[a].func === n) {
var c = o.nativeHandler, l = o.fakeName, f = o.capture;
(o = o.slice(0, a).concat(o.slice(a + 1))).nativeHandler = c, o.fakeName = l, o.capture = f, s[u] = o
}
n && 0 !== o.length || (delete s[u], we(e, o.fakeName || u, o.nativeHandler, o.capture))
}
} else {
for (u in s)o = s[u], we(e, o.fakeName || u, o.nativeHandler, o.capture);
s = {}
}
for (u in s)return b;
delete y[r];
try {
delete e[g]
} catch (d) {
e[g] = null
}
}
return b
}, b.fire = function (e, t, n) {
var r;
if (!e || 3 === e.nodeType || 8 === e.nodeType)return b;
for ((n = Ne(null, n)).type = t, n.target = e; (r = e[g]) && C(n, r), (e = e.parentNode || e.ownerDocument || e.defaultView || e.parentWindow) && !n.isPropagationStopped(););
return b
}, b.clean = function (e) {
var t, n, r = b.unbind;
if (!e || 3 === e.nodeType || 8 === e.nodeType)return b;
if (e[g] && r(e), e.getElementsByTagName || (e = e.document), e && e.getElementsByTagName)for (r(e), t = (n = e.getElementsByTagName("*")).length; t--;)(e = n[t])[g] && r(e);
return b
}, b.destroy = function () {
y = {}
}, b.cancel = function (e) {
return e && (e.preventDefault(), e.stopImmediatePropagation()), !1
}
};
Se.Event = new Se, Se.Event.bind(window, "ready", function () {
});
var Te, ke, Ae, Re, De, Be, _e, Oe, Pe, Le, Ie, Me, Fe, Ue, ze, Ve, He, je, qe = "sizzle" + -new Date, $e = window.document, We = 0, Ke = 0, Xe = Tt(), Ye = Tt(), Ge = Tt(), Je = function (e, t) {
return e === t && (Ie = !0), 0
}, Qe = typeof undefined, Ze = {}.hasOwnProperty, et = [], tt = et.pop, nt = et.push, rt = et.push, ot = et.slice, it = et.indexOf || function (e) {
for (var t = 0, n = this.length; t < n; t++)if (this[t] === e)return t;
return -1
}, at = "[\\x20\\t\\r\\n\\f]", ut = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", st = "\\[" + at + "*(" + ut + ")(?:" + at + "*([*^$|!~]?=)" + at + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + ut + "))|)" + at + "*\\]", ct = ":(" + ut + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + st + ")*)|.*)\\)|)", lt = new RegExp("^" + at + "+|((?:^|[^\\\\])(?:\\\\.)*)" + at + "+$", "g"), ft = new RegExp("^" + at + "*," + at + "*"), dt = new RegExp("^" + at + "*([>+~]|" + at + ")" + at + "*"), mt = new RegExp("=" + at + "*([^\\]'\"]*?)" + at + "*\\]", "g"), gt = new RegExp(ct), pt = new RegExp("^" + ut + "$"), ht = {
ID: new RegExp("^#(" + ut + ")"),
CLASS: new RegExp("^\\.(" + ut + ")"),
TAG: new RegExp("^(" + ut + "|[*])"),
ATTR: new RegExp("^" + st),
PSEUDO: new RegExp("^" + ct),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + at + "*(even|odd|(([+-]|)(\\d*)n|)" + at + "*(?:([+-]|)" + at + "*(\\d+)|))" + at + "*\\)|)", "i"),
bool: new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i"),
needsContext: new RegExp("^" + at + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + at + "*((?:-\\d)?\\d*)" + at + "*\\)|)(?=[^-]|$)", "i")
}, vt = /^(?:input|select|textarea|button)$/i, bt = /^h\d$/i, yt = /^[^{]+\{\s*\[native \w/, Ct = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, xt = /[+~]/, wt = /'|\\/g, Nt = new RegExp("\\\\([\\da-f]{1,6}" + at + "?|(" + at + ")|.)", "ig"), Et = function (e, t, n) {
var r = "0x" + t - 65536;
return r != r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
};
try {
rt.apply(et = ot.call($e.childNodes), $e.childNodes), et[$e.childNodes.length].nodeType
} catch (CN) {
rt = {
apply: et.length ? function (e, t) {
nt.apply(e, ot.call(t))
} : function (e, t) {
for (var n = e.length, r = 0; e[n++] = t[r++];);
e.length = n - 1
}
}
}
var St = function (e, t, n, r) {
var o, i, a, u, s, c, l, f, d, m;
if ((t ? t.ownerDocument || t : $e) !== Fe && Me(t), n = n || [], !e || "string" != typeof e)return n;
if (1 !== (u = (t = t || Fe).nodeType) && 9 !== u)return [];
if (ze && !r) {
if (o = Ct.exec(e))if (a = o[1]) {
if (9 === u) {
if (!(i = t.getElementById(a)) || !i.parentNode)return n;
if (i.id === a)return n.push(i), n
} else if (t.ownerDocument && (i = t.ownerDocument.getElementById(a)) && je(t, i) && i.id === a)return n.push(i), n
} else {
if (o[2])return rt.apply(n, t.getElementsByTagName(e)), n;
if ((a = o[3]) && ke.getElementsByClassName)return rt.apply(n, t.getElementsByClassName(a)), n
}
if (ke.qsa && (!Ve || !Ve.test(e))) {
if (f = l = qe, d = t, m = 9 === u && e, 1 === u && "object" !== t.nodeName.toLowerCase()) {
for (c = Be(e), (l = t.getAttribute("id")) ? f = l.replace(wt, "\\$&") : t.setAttribute("id", f), f = "[id='" + f + "'] ", s = c.length; s--;)c[s] = f + Pt(c[s]);
d = xt.test(e) && _t(t.parentNode) || t, m = c.join(",")
}
if (m)try {
return rt.apply(n, d.querySelectorAll(m)), n
} catch (g) {
} finally {
l || t.removeAttribute("id")
}
}
}
return Oe(e.replace(lt, "$1"), t, n, r)
};
function Tt() {
var n = [];
return function r(e, t) {
return n.push(e + " ") > Ae.cacheLength && delete r[n.shift()], r[e + " "] = t
}
}
function kt(e) {
return e[qe] = !0, e
}
function At(e, t) {
var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || 1 << 31) - (~e.sourceIndex || 1 << 31);
if (r)return r;
if (n)for (; n = n.nextSibling;)if (n === t)return -1;
return e ? 1 : -1
}
function Rt(t) {
return function (e) {
return "input" === e.nodeName.toLowerCase() && e.type === t
}
}
function Dt(n) {
return function (e) {
var t = e.nodeName.toLowerCase();
return ("input" === t || "button" === t) && e.type === n
}
}
function Bt(a) {
return kt(function (i) {
return i = +i, kt(function (e, t) {
for (var n, r = a([], e.length, i), o = r.length; o--;)e[n = r[o]] && (e[n] = !(t[n] = e[n]))
})
})
}
function _t(e) {
return e && typeof e.getElementsByTagName !== Qe && e
}
for (Te in ke = St.support = {}, De = St.isXML = function (e) {
var t = e && (e.ownerDocument || e).documentElement;
return !!t && "HTML" !== t.nodeName
}, Me = St.setDocument = function (e) {
var t, s = e ? e.ownerDocument || e : $e, n = s.defaultView;
return s !== Fe && 9 === s.nodeType && s.documentElement ? (Ue = (Fe = s).documentElement, ze = !De(s), n && n !== function r(e) {
try {
return e.top
} catch (t) {
}
return null
}(n) && (n.addEventListener ? n.addEventListener("unload", function () {
Me()
}, !1) : n.attachEvent && n.attachEvent("onunload", function () {
Me()
})), ke.attributes = !0, ke.getElementsByTagName = !0, ke.getElementsByClassName = yt.test(s.getElementsByClassName), ke.getById = !0, Ae.find.ID = function (e, t) {
if (typeof t.getElementById !== Qe && ze) {
var n = t.getElementById(e);
return n && n.parentNode ? [n] : []
}
}, Ae.filter.ID = function (e) {
var t = e.replace(Nt, Et);
return function (e) {
return e.getAttribute("id") === t
}
}, Ae.find.TAG = ke.getElementsByTagName ? function (e, t) {
if (typeof t.getElementsByTagName !== Qe)return t.getElementsByTagName(e)
} : function (e, t) {
var n, r = [], o = 0, i = t.getElementsByTagName(e);
if ("*" !== e)return i;
for (; n = i[o++];)1 === n.nodeType && r.push(n);
return r
}, Ae.find.CLASS = ke.getElementsByClassName && function (e, t) {
if (ze)return t.getElementsByClassName(e)
}, He = [], Ve = [], ke.disconnectedMatch = !0, Ve = Ve.length && new RegExp(Ve.join("|")), He = He.length && new RegExp(He.join("|")), t = yt.test(Ue.compareDocumentPosition), je = t || yt.test(Ue.contains) ? function (e, t) {
var n = 9 === e.nodeType ? e.documentElement : e, r = t && t.parentNode;
return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
} : function (e, t) {
if (t)for (; t = t.parentNode;)if (t === e)return !0;
return !1
}, Je = t ? function (e, t) {
if (e === t)return Ie = !0, 0;
var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
return n || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !ke.sortDetached && t.compareDocumentPosition(e) === n ? e === s || e.ownerDocument === $e && je($e, e) ? -1 : t === s || t.ownerDocument === $e && je($e, t) ? 1 : Le ? it.call(Le, e) - it.call(Le, t) : 0 : 4 & n ? -1 : 1)
} : function (e, t) {
if (e === t)return Ie = !0, 0;
var n, r = 0, o = e.parentNode, i = t.parentNode, a = [e], u = [t];
if (!o || !i)return e === s ? -1 : t === s ? 1 : o ? -1 : i ? 1 : Le ? it.call(Le, e) - it.call(Le, t) : 0;
if (o === i)return At(e, t);
for (n = e; n = n.parentNode;)a.unshift(n);
for (n = t; n = n.parentNode;)u.unshift(n);
for (; a[r] === u[r];)r++;
return r ? At(a[r], u[r]) : a[r] === $e ? -1 : u[r] === $e ? 1 : 0
}, s) : Fe
}, St.matches = function (e, t) {
return St(e, null, null, t)
}, St.matchesSelector = function (e, t) {
if ((e.ownerDocument || e) !== Fe && Me(e), t = t.replace(mt, "='$1']"), ke.matchesSelector && ze && (!He || !He.test(t)) && (!Ve || !Ve.test(t)))try {
var n = (void 0).call(e, t);
if (n || ke.disconnectedMatch || e.document && 11 !== e.document.nodeType)return n
} catch (CN) {
}
return 0 < St(t, Fe, null, [e]).length
}, St.contains = function (e, t) {
return (e.ownerDocument || e) !== Fe && Me(e), je(e, t)
}, St.attr = function (e, t) {
(e.ownerDocument || e) !== Fe && Me(e);
var n = Ae.attrHandle[t.toLowerCase()], r = n && Ze.call(Ae.attrHandle, t.toLowerCase()) ? n(e, t, !ze) : undefined;
return r !== undefined ? r : ke.attributes || !ze ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
}, St.error = function (e) {
throw new Error("Syntax error, unrecognized expression: " + e)
}, St.uniqueSort = function (e) {
var t, n = [], r = 0, o = 0;
if (Ie = !ke.detectDuplicates, Le = !ke.sortStable && e.slice(0), e.sort(Je), Ie) {
for (; t = e[o++];)t === e[o] && (r = n.push(o));
for (; r--;)e.splice(n[r], 1)
}
return Le = null, e
}, Re = St.getText = function (e) {
var t, n = "", r = 0, o = e.nodeType;
if (o) {
if (1 === o || 9 === o || 11 === o) {
if ("string" == typeof e.textContent)return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling)n += Re(e)
} else if (3 === o || 4 === o)return e.nodeValue
} else for (; t = e[r++];)n += Re(t);
return n
}, (Ae = St.selectors = {
cacheLength: 50,
createPseudo: kt,
match: ht,
attrHandle: {},
find: {},
relative: {
">": {dir: "parentNode", first: !0},
" ": {dir: "parentNode"},
"+": {dir: "previousSibling", first: !0},
"~": {dir: "previousSibling"}
},
preFilter: {
ATTR: function (e) {
return e[1] = e[1].replace(Nt, Et), e[3] = (e[3] || e[4] || e[5] || "").replace(Nt, Et), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
}, CHILD: function (e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || St.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && St.error(e[0]), e
}, PSEUDO: function (e) {
var t, n = !e[6] && e[2];
return ht.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && gt.test(n) && (t = Be(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
}
},
filter: {
TAG: function (e) {
var t = e.replace(Nt, Et).toLowerCase();
return "*" === e ? function () {
return !0
} : function (e) {
return e.nodeName && e.nodeName.toLowerCase() === t
}
}, CLASS: function (e) {
var t = Xe[e + " "];
return t || (t = new RegExp("(^|" + at + ")" + e + "(" + at + "|$)")) && Xe(e, function (e) {
return t.test("string" == typeof e.className && e.className || typeof e.getAttribute !== Qe && e.getAttribute("class") || "")
})
}, ATTR: function (n, r, o) {
return function (e) {
var t = St.attr(e, n);
return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === o : "!=" === r ? t !== o : "^=" === r ? o && 0 === t.indexOf(o) : "*=" === r ? o && -1 < t.indexOf(o) : "$=" === r ? o && t.slice(-o.length) === o : "~=" === r ? -1 < (" " + t + " ").indexOf(o) : "|=" === r && (t === o || t.slice(0, o.length + 1) === o + "-"))
}
}, CHILD: function (m, e, t, g, p) {
var h = "nth" !== m.slice(0, 3), v = "last" !== m.slice(-4), b = "of-type" === e;
return 1 === g && 0 === p ? function (e) {
return !!e.parentNode
} : function (e, t, n) {
var r, o, i, a, u, s, c = h !== v ? "nextSibling" : "previousSibling", l = e.parentNode, f = b && e.nodeName.toLowerCase(), d = !n && !b;
if (l) {
if (h) {
for (; c;) {
for (i = e; i = i[c];)if (b ? i.nodeName.toLowerCase() === f : 1 === i.nodeType)return !1;
s = c = "only" === m && !s && "nextSibling"
}
return !0
}
if (s = [v ? l.firstChild : l.lastChild], v && d) {
for (u = (r = (o = l[qe] || (l[qe] = {}))[m] || [])[0] === We && r[1], a = r[0] === We && r[2], i = u && l.childNodes[u]; i = ++u && i && i[c] || (a = u = 0) || s.pop();)if (1 === i.nodeType && ++a && i === e) {
o[m] = [We, u, a];
break
}
} else if (d && (r = (e[qe] || (e[qe] = {}))[m]) && r[0] === We)a = r[1]; else for (; (i = ++u && i && i[c] || (a = u = 0) || s.pop()) && ((b ? i.nodeName.toLowerCase() !== f : 1 !== i.nodeType) || !++a || (d && ((i[qe] || (i[qe] = {}))[m] = [We, a]), i !== e)););
return (a -= p) === g || a % g == 0 && 0 <= a / g
}
}
}, PSEUDO: function (e, i) {
var t, a = Ae.pseudos[e] || Ae.setFilters[e.toLowerCase()] || St.error("unsupported pseudo: " + e);
return a[qe] ? a(i) : 1 < a.length ? (t = [e, e, "", i], Ae.setFilters.hasOwnProperty(e.toLowerCase()) ? kt(function (e, t) {
for (var n, r = a(e, i), o = r.length; o--;)e[n = it.call(e, r[o])] = !(t[n] = r[o])
}) : function (e) {
return a(e, 0, t)
}) : a
}
},
pseudos: {
not: kt(function (e) {
var r = [], o = [], u = _e(e.replace(lt, "$1"));
return u[qe] ? kt(function (e, t, n, r) {
for (var o, i = u(e, null, r, []), a = e.length; a--;)(o = i[a]) && (e[a] = !(t[a] = o))
}) : function (e, t, n) {
return r[0] = e, u(r, null, n, o), !o.pop()
}
}), has: kt(function (t) {
return function (e) {
return 0 < St(t, e).length
}
}), contains: kt(function (t) {
return t = t.replace(Nt, Et), function (e) {
return -1 < (e.textContent || e.innerText || Re(e)).indexOf(t)
}
}), lang: kt(function (n) {
return pt.test(n || "") || St.error("unsupported lang: " + n), n = n.replace(Nt, Et).toLowerCase(), function (e) {
var t;
do {
if (t = ze ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang"))return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
} while ((e = e.parentNode) && 1 === e.nodeType);
return !1
}
}), target: function (e) {
var t = window.location && window.location.hash;
return t && t.slice(1) === e.id
}, root: function (e) {
return e === Ue
}, focus: function (e) {
return e === Fe.activeElement && (!Fe.hasFocus || Fe.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
}, enabled: function (e) {
return !1 === e.disabled
}, disabled: function (e) {
return !0 === e.disabled
}, checked: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !!e.checked || "option" === t && !!e.selected
}, selected: function (e) {
return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
}, empty: function (e) {
for (e = e.firstChild; e; e = e.nextSibling)if (e.nodeType < 6)return !1;
return !0
}, parent: function (e) {
return !Ae.pseudos.empty(e)
}, header: function (e) {
return bt.test(e.nodeName)
}, input: function (e) {
return vt.test(e.nodeName)
}, button: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t
}, text: function (e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
}, first: Bt(function () {
return [0]
}), last: Bt(function (e, t) {
return [t - 1]
}), eq: Bt(function (e, t, n) {
return [n < 0 ? n + t : n]
}), even: Bt(function (e, t) {
for (var n = 0; n < t; n += 2)e.push(n);
return e
}), odd: Bt(function (e, t) {
for (var n = 1; n < t; n += 2)e.push(n);
return e
}), lt: Bt(function (e, t, n) {
for (var r = n < 0 ? n + t : n; 0 <= --r;)e.push(r);
return e
}), gt: Bt(function (e, t, n) {
for (var r = n < 0 ? n + t : n; ++r < t;)e.push(r);
return e
})
}
}).pseudos.nth = Ae.pseudos.eq, {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
})Ae.pseudos[Te] = Rt(Te);
for (Te in{submit: !0, reset: !0})Ae.pseudos[Te] = Dt(Te);
function Ot() {
}
function Pt(e) {
for (var t = 0, n = e.length, r = ""; t < n; t++)r += e[t].value;
return r
}
function Lt(a, e, t) {
var u = e.dir, s = t && "parentNode" === u, c = Ke++;
return e.first ? function (e, t, n) {
for (; e = e[u];)if (1 === e.nodeType || s)return a(e, t, n)
} : function (e, t, n) {
var r, o, i = [We, c];
if (n) {
for (; e = e[u];)if ((1 === e.nodeType || s) && a(e, t, n))return !0
} else for (; e = e[u];)if (1 === e.nodeType || s) {
if ((r = (o = e[qe] || (e[qe] = {}))[u]) && r[0] === We && r[1] === c)return i[2] = r[2];
if ((o[u] = i)[2] = a(e, t, n))return !0
}
}
}
function It(o) {
return 1 < o.length ? function (e, t, n) {
for (var r = o.length; r--;)if (!o[r](e, t, n))return !1;
return !0
} : o[0]
}
function Mt(e, t, n, r, o) {
for (var i, a = [], u = 0, s = e.length, c = null != t; u < s; u++)(i = e[u]) && (n && !n(i, r, o) || (a.push(i), c && t.push(u)));
return a
}
function Ft(g, p, h, v, b, e) {
return v && !v[qe] && (v = Ft(v)), b && !b[qe] && (b = Ft(b, e)), kt(function (e, t, n, r) {
var o, i, a, u = [], s = [], c = t.length, l = e || function m(e, t, n) {
for (var r = 0, o = t.length; r < o; r++)St(e, t[r], n);
return n
}(p || "*", n.nodeType ? [n] : n, []), f = !g || !e && p ? l : Mt(l, u, g, n, r), d = h ? b || (e ? g : c || v) ? [] : t : f;
if (h && h(f, d, n, r), v)for (o = Mt(d, s), v(o, [], n, r), i = o.length; i--;)(a = o[i]) && (d[s[i]] = !(f[s[i]] = a));
if (e) {
if (b || g) {
if (b) {
for (o = [], i = d.length; i--;)(a = d[i]) && o.push(f[i] = a);
b(null, d = [], o, r)
}
for (i = d.length; i--;)(a = d[i]) && -1 < (o = b ? it.call(e, a) : u[i]) && (e[o] = !(t[o] = a))
}
} else d = Mt(d === t ? d.splice(c, d.length) : d), b ? b(null, t, d, r) : rt.apply(t, d)
})
}
function Ut(e) {
for (var r, t, n, o = e.length, i = Ae.relative[e[0].type], a = i || Ae.relative[" "], u = i ? 1 : 0, s = Lt(function (e) {
return e === r
}, a, !0), c = Lt(function (e) {
return -1 < it.call(r, e)
}, a, !0), l = [function (e, t, n) {
return !i && (n || t !== Pe) || ((r = t).nodeType ? s(e, t, n) : c(e, t, n))
}]; u < o; u++)if (t = Ae.relative[e[u].type])l = [Lt(It(l), t)]; else {
if ((t = Ae.filter[e[u].type].apply(null, e[u].matches))[qe]) {
for (n = ++u; n < o && !Ae.relative[e[n].type]; n++);
return Ft(1 < u && It(l), 1 < u && Pt(e.slice(0, u - 1).concat({value: " " === e[u - 2].type ? "*" : ""})).replace(lt, "$1"), t, u < n && Ut(e.slice(u, n)), n < o && Ut(e = e.slice(n)), n < o && Pt(e))
}
l.push(t)
}
return It(l)
}
Ot.prototype = Ae.filters = Ae.pseudos, Ae.setFilters = new Ot, Be = St.tokenize = function (e, t) {
var n, r, o, i, a, u, s, c = Ye[e + " "];
if (c)return t ? 0 : c.slice(0);
for (a = e, u = [], s = Ae.preFilter; a;) {
for (i in n && !(r = ft.exec(a)) || (r && (a = a.slice(r[0].length) || a), u.push(o = [])), n = !1, (r = dt.exec(a)) && (n = r.shift(), o.push({
value: n,
type: r[0].replace(lt, " ")
}), a = a.slice(n.length)), Ae.filter)!(r = ht[i].exec(a)) || s[i] && !(r = s[i](r)) || (n = r.shift(), o.push({
value: n,
type: i,
matches: r
}), a = a.slice(n.length));
if (!n)break
}
return t ? a.length : a ? St.error(e) : Ye(e, u).slice(0)
}, _e = St.compile = function (e, t) {
var n, r = [], o = [], i = Ge[e + " "];
if (!i) {
for (t || (t = Be(e)), n = t.length; n--;)(i = Ut(t[n]))[qe] ? r.push(i) : o.push(i);
(i = Ge(e, function a(h, v) {
var b = 0 < v.length, y = 0 < h.length, e = function (e, t, n, r, o) {
var i, a, u, s = 0, c = "0", l = e && [], f = [], d = Pe, m = e || y && Ae.find.TAG("*", o), g = We += null == d ? 1 : Math.random() || .1, p = m.length;
for (o && (Pe = t !== Fe && t); c !== p && null != (i = m[c]); c++) {
if (y && i) {
for (a = 0; u = h[a++];)if (u(i, t, n)) {
r.push(i);
break
}
o && (We = g)
}
b && ((i = !u && i) && s--, e && l.push(i))
}
if (s += c, b && c !== s) {
for (a = 0; u = v[a++];)u(l, f, t, n);
if (e) {
if (0 < s)for (; c--;)l[c] || f[c] || (f[c] = tt.call(r));
f = Mt(f)
}
rt.apply(r, f), o && !e && 0 < f.length && 1 < s + v.length && St.uniqueSort(r)
}
return o && (We = g, Pe = d), l
};
return b ? kt(e) : e
}(o, r))).selector = e
}
return i
}, Oe = St.select = function (e, t, n, r) {
var o, i, a, u, s, c = "function" == typeof e && e, l = !r && Be(e = c.selector || e);
if (n = n || [], 1 === l.length) {
if (2 < (i = l[0] = l[0].slice(0)).length && "ID" === (a = i[0]).type && ke.getById && 9 === t.nodeType && ze && Ae.relative[i[1].type]) {
if (!(t = (Ae.find.ID(a.matches[0].replace(Nt, Et), t) || [])[0]))return n;
c && (t = t.parentNode), e = e.slice(i.shift().value.length)
}
for (o = ht.needsContext.test(e) ? 0 : i.length; o-- && (a = i[o], !Ae.relative[u = a.type]);)if ((s = Ae.find[u]) && (r = s(a.matches[0].replace(Nt, Et), xt.test(i[0].type) && _t(t.parentNode) || t))) {
if (i.splice(o, 1), !(e = r.length && Pt(i)))return rt.apply(n, r), n;
break
}
}
return (c || _e(e, l))(r, t, !ze, n, xt.test(e) && _t(t.parentNode) || t), n
}, ke.sortStable = qe.split("").sort(Je).join("") === qe, ke.detectDuplicates = !!Ie, Me(), ke.sortDetached = !0;
var zt = Array.isArray, Vt = function (e, t, n) {
var r, o;
if (!e)return 0;
if (n = n || e, e.length !== undefined) {
for (r = 0, o = e.length; r < o; r++)if (!1 === t.call(n, e[r], r, e))return 0
} else for (r in e)if (e.hasOwnProperty(r) && !1 === t.call(n, e[r], r, e))return 0;
return 1
}, Ht = function (e, t, n) {
var r, o;
for (r = 0, o = e.length; r < o; r++)if (t.call(n, e[r], r, e))return r;
return -1
}, jt = {
isArray: zt, toArray: function (e) {
var t, n, r = e;
if (!zt(e))for (r = [], t = 0, n = e.length; t < n; t++)r[t] = e[t];
return r
}, each: Vt, map: function (n, r) {
var o = [];
return Vt(n, function (e, t) {
o.push(r(e, t, n))
}), o
}, filter: function (n, r) {
var o = [];
return Vt(n, function (e, t) {
r && !r(e, t, n) || o.push(e)
}), o
}, indexOf: function (e, t) {
var n, r;
if (e)for (n = 0, r = e.length; n < r; n++)if (e[n] === t)return n;
return -1
}, reduce: function (e, t, n, r) {
var o = 0;
for (arguments.length < 3 && (n = e[0]); o < e.length; o++)n = t.call(r, n, e[o], o);
return n
}, findIndex: Ht, find: function (e, t, n) {
var r = Ht(e, t, n);
return -1 !== r ? e[r] : undefined
}, last: function (e) {
return e[e.length - 1]
}
}, qt = /^\s*|\s*$/g, $t = function (e) {
return null === e || e === undefined ? "" : ("" + e).replace(qt, "")
}, Wt = function (e, t) {
return t ? !("array" !== t || !jt.isArray(e)) || typeof e === t : e !== undefined
}, Kt = function (e, n, r, o) {
o = o || this, e && (r && (e = e[r]), jt.each(e, function (e, t) {
if (!1 === n.call(o, e, t, r))return !1;
Kt(e, n, r, o)
}))
}, Xt = {
trim: $t, isArray: jt.isArray, is: Wt, toArray: jt.toArray, makeMap: function (e, t, n) {
var r;
for (t = t || ",", "string" == typeof(e = e || []) && (e = e.split(t)), n = n || {}, r = e.length; r--;)n[e[r]] = {};
return n
}, each: jt.each, map: jt.map, grep: jt.filter, inArray: jt.indexOf, hasOwn: function (e, t) {
return Object.prototype.hasOwnProperty.call(e, t)
}, extend: function (e, t) {
for (var n, r, o, i = [], a = 2; a < arguments.length; a++)i[a - 2] = arguments[a];
var u, s = arguments;
for (n = 1, r = s.length; n < r; n++)for (o in t = s[n])t.hasOwnProperty(o) && (u = t[o]) !== undefined && (e[o] = u);
return e
}, create: function (e, t, n) {
var r, o, i, a, u, s = this, c = 0;
if (e = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(e), i = e[3].match(/(^|\.)(\w+)$/i)[2], !(o = s.createNS(e[3].replace(/\.\w+$/, ""), n))[i]) {
if ("static" === e[2])return o[i] = t, void(this.onCreate && this.onCreate(e[2], e[3], o[i]));
t[i] || (t[i] = function () {
}, c = 1), o[i] = t[i], s.extend(o[i].prototype, t), e[5] && (r = s.resolve(e[5]).prototype, a = e[5].match(/\.(\w+)$/i)[1], u = o[i], o[i] = c ? function () {
return r[a].apply(this, arguments)
} : function () {
return this.parent = r[a], u.apply(this, arguments)
}, o[i].prototype[i] = o[i], s.each(r, function (e, t) {
o[i].prototype[t] = r[t]
}), s.each(t, function (e, t) {
r[t] ? o[i].prototype[t] = function () {
return this.parent = r[t], e.apply(this, arguments)
} : t !== i && (o[i].prototype[t] = e)
})), s.each(t["static"], function (e, t) {
o[i][t] = e
})
}
}, walk: Kt, createNS: function (e, t) {
var n, r;
for (t = t || window, e = e.split("."), n = 0; n < e.length; n++)t[r = e[n]] || (t[r] = {}), t = t[r];
return t
}, resolve: function (e, t) {
var n, r;
for (t = t || window, n = 0, r = (e = e.split(".")).length; n < r && (t = t[e[n]]); n++);
return t
}, explode: function (e, t) {
return !e || Wt(e, "array") ? e : jt.map(e.split(t || ","), $t)
}, _addCacheSuffix: function (e) {
var t = fe.cacheSuffix;
return t && (e += (-1 === e.indexOf("?") ? "?" : "&") + t), e
}
}, Yt = document, Gt = Array.prototype.push, Jt = Array.prototype.slice, Qt = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, Zt = Se.Event, en = Xt.makeMap("children,contents,next,prev"), tn = function (e) {
return void 0 !== e
}, nn = function (e) {
return "string" == typeof e
}, rn = function (e, t) {
var n, r, o;
for (o = (t = t || Yt).createElement("div"), n = t.createDocumentFragment(), o.innerHTML = e; r = o.firstChild;)n.appendChild(r);
return n
}, on = function (e, t, n, r) {
var o;
if (nn(t))t = rn(t, yn(e[0])); else if (t.length && !t.nodeType) {
if (t = gn.makeArray(t), r)for (o = t.length - 1; 0 <= o; o--)on(e, t[o], n, r); else for (o = 0; o < t.length; o++)on(e, t[o], n, r);
return e
}
if (t.nodeType)for (o = e.length; o--;)n.call(e[o], t);
return e
}, an = function (e, t) {
return e && t && -1 !== (" " + e.className + " ").indexOf(" " + t + " ")
}, un = function (e, t, n) {
var r, o;
return t = gn(t)[0], e.each(function () {
var e = this;
n && r === e.parentNode || (r = e.parentNode, o = t.cloneNode(!1), e.parentNode.insertBefore(o, e)), o.appendChild(e)
}), e
}, sn = Xt.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom", " "), cn = Xt.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected", " "), ln = {
"for": "htmlFor",
"class": "className",
readonly: "readOnly"
}, fn = {"float": "cssFloat"}, dn = {}, mn = {}, gn = function (e, t) {
return new gn.fn.init(e, t)
}, pn = /^\s*|\s*$/g, hn = function (e) {
return null === e || e === undefined ? "" : ("" + e).replace(pn, "")
}, vn = function (e, t) {
var n, r, o, i;
if (e)if ((n = e.length) === undefined) {
for (r in e)if (e.hasOwnProperty(r) && (i = e[r], !1 === t.call(i, r, i)))break
} else for (o = 0; o < n && (i = e[o], !1 !== t.call(i, o, i)); o++);
return e
}, bn = function (e, n) {
var r = [];
return vn(e, function (e, t) {
n(t, e) && r.push(t)
}), r
}, yn = function (e) {
return e ? 9 === e.nodeType ? e : e.ownerDocument : Yt
};
gn.fn = gn.prototype = {
constructor: gn, selector: "", context: null, length: 0, init: function (e, t) {
var n, r, o = this;
if (!e)return o;
if (e.nodeType)return o.context = o[0] = e, o.length = 1, o;
if (t && t.nodeType)o.context = t; else {
if (t)return gn(e).attr(t);
o.context = t = document
}
if (nn(e)) {
if (!(n = "<" === (o.selector = e).charAt(0) && ">" === e.charAt(e.length - 1) && 3 <= e.length ? [null, e, null] : Qt.exec(e)))return gn(t).find(e);
if (n[1])for (r = rn(e, yn(t)).firstChild; r;)Gt.call(o, r), r = r.nextSibling; else {
if (!(r = yn(t).getElementById(n[2])))return o;
if (r.id !== n[2])return o.find(e);
o.length = 1, o[0] = r
}
} else this.add(e, !1);
return o
}, toArray: function () {
return Xt.toArray(this)
}, add: function (e, t) {
var n, r, o = this;
if (nn(e))return o.add(gn(e));
if (!1 !== t)for (n = gn.unique(o.toArray().concat(gn.makeArray(e))), o.length = n.length, r = 0; r < n.length; r++)o[r] = n[r]; else Gt.apply(o, gn.makeArray(e));
return o
}, attr: function (t, n) {
var e, r = this;
if ("object" == typeof t)vn(t, function (e, t) {
r.attr(e, t)
}); else {
if (!tn(n)) {
if (r[0] && 1 === r[0].nodeType) {
if ((e = dn[t]) && e.get)return e.get(r[0], t);
if (cn[t])return r.prop(t) ? t : undefined;
null === (n = r[0].getAttribute(t, 2)) && (n = undefined)
}
return n
}
this.each(function () {
var e;
if (1 === this.nodeType) {
if ((e = dn[t]) && e.set)return void e.set(this, n);
null === n ? this.removeAttribute(t, 2) : this.setAttribute(t, n, 2)
}
})
}
return r
}, removeAttr: function (e) {
return this.attr(e, null)
}, prop: function (e, t) {
var n = this;
if ("object" == typeof(e = ln[e] || e))vn(e, function (e, t) {
n.prop(e, t)
}); else {
if (!tn(t))return n[0] && n[0].nodeType && e in n[0] ? n[0][e] : t;
this.each(function () {
1 === this.nodeType && (this[e] = t)
})
}
return n
}, css: function (n, r) {
var e, o, i = this, t = function (e) {
return e.replace(/-(\D)/g, function (e, t) {
return t.toUpperCase()
})
}, a = function (e) {
return e.replace(/[A-Z]/g, function (e) {
return "-" + e
})
};
if ("object" == typeof n)vn(n, function (e, t) {
i.css(e, t)
}); else if (tn(r))n = t(n), "number" != typeof r || sn[n] || (r = r.toString() + "px"), i.each(function () {
var e = this.style;
if ((o = mn[n]) && o.set)o.set(this, r); else {
try {
this.style[fn[n] || n] = r
} catch (t) {
}
null !== r && "" !== r || (e.removeProperty ? e.removeProperty(a(n)) : e.removeAttribute(n))
}
}); else {
if (e = i[0], (o = mn[n]) && o.get)return o.get(e);
if (!e.ownerDocument.defaultView)return e.currentStyle ? e.currentStyle[t(n)] : "";
try {
return e.ownerDocument.defaultView.getComputedStyle(e, null).getPropertyValue(a(n))
} catch (u) {
return undefined
}
}
return i
}, remove: function () {
for (var e, t = this.length; t--;)e = this[t], Zt.clean(e), e.parentNode && e.parentNode.removeChild(e);
return this
}, empty: function () {
for (var e, t = this.length; t--;)for (e = this[t]; e.firstChild;)e.removeChild(e.firstChild);
return this
}, html: function (e) {
var t, n = this;
if (tn(e)) {
t = n.length;
try {
for (; t--;)n[t].innerHTML = e
} catch (r) {
gn(n[t]).empty().append(e)
}
return n
}
return n[0] ? n[0].innerHTML : ""
}, text: function (e) {
var t, n = this;
if (tn(e)) {
for (t = n.length; t--;)"innerText"in n[t] ? n[t].innerText = e : n[0].textContent = e;
return n
}
return n[0] ? n[0].innerText || n[0].textContent : ""
}, append: function () {
return on(this, arguments, function (e) {
(1 === this.nodeType || this.host && 1 === this.host.nodeType) && this.appendChild(e)
})
}, prepend: function () {
return on(this, arguments, function (e) {
(1 === this.nodeType || this.host && 1 === this.host.nodeType) && this.insertBefore(e, this.firstChild)
}, !0)
}, before: function () {
return this[0] && this[0].parentNode ? on(this, arguments, function (e) {
this.parentNode.insertBefore(e, this)
}) : this
}, after: function () {
return this[0] && this[0].parentNode ? on(this, arguments, function (e) {
this.parentNode.insertBefore(e, this.nextSibling)
}, !0) : this
}, appendTo: function (e) {
return gn(e).append(this), this
}, prependTo: function (e) {
return gn(e).prepend(this), this
}, replaceWith: function (e) {
return this.before(e).remove()
}, wrap: function (e) {
return un(this, e)
}, wrapAll: function (e) {
return un(this, e, !0)
}, wrapInner: function (e) {
return this.each(function () {
gn(this).contents().wrapAll(e)
}), this
}, unwrap: function () {
return this.parent().each(function () {
gn(this).replaceWith(this.childNodes)
})
}, clone: function () {
var e = [];
return this.each(function () {
e.push(this.cloneNode(!0))
}), gn(e)
}, addClass: function (e) {
return this.toggleClass(e, !0)
}, removeClass: function (e) {
return this.toggleClass(e, !1)
}, toggleClass: function (o, i) {
var e = this;
return "string" != typeof o || (-1 !== o.indexOf(" ") ? vn(o.split(" "), function () {
e.toggleClass(this, i)
}) : e.each(function (e, t) {
var n, r;
(r = an(t, o)) !== i && (n = t.className, r ? t.className = hn((" " + n + " ").replace(" " + o + " ", " ")) : t.className += n ? " " + o : o)
})), e
}, hasClass: function (e) {
return an(this[0], e)
}, each: function (e) {
return vn(this, e)
}, on: function (e, t) {
return this.each(function () {
Zt.bind(this, e, t)
})
}, off: function (e, t) {
return this.each(function () {
Zt.unbind(this, e, t)
})
}, trigger: function (e) {
return this.each(function () {
"object" == typeof e ? Zt.fire(this, e.type, e) : Zt.fire(this, e)
})
}, show: function () {
return this.css("display", "")
}, hide: function () {
return this.css("display", "none")
}, slice: function () {
return new gn(Jt.apply(this, arguments))
}, eq: function (e) {
return -1 === e ? this.slice(e) : this.slice(e, +e + 1)
}, first: function () {
return this.eq(0)
}, last: function () {
return this.eq(-1)
}, find: function (e) {
var t, n, r = [];
for (t = 0, n = this.length; t < n; t++)gn.find(e, this[t], r);
return gn(r)
}, filter: function (n) {
return gn("function" == typeof n ? bn(this.toArray(), function (e, t) {
return n(t, e)
}) : gn.filter(n, this.toArray()))
}, closest: function (n) {
var r = [];
return n instanceof gn && (n = n[0]), this.each(function (e, t) {
for (; t;) {
if ("string" == typeof n && gn(t).is(n)) {
r.push(t);
break
}
if (t === n) {
r.push(t);
break
}
t = t.parentNode
}
}), gn(r)
}, offset: function (e) {
var t, n, r, o, i = 0, a = 0;
return e ? this.css(e) : ((t = this[0]) && (r = (n = t.ownerDocument).documentElement, t.getBoundingClientRect && (i = (o = t.getBoundingClientRect()).left + (r.scrollLeft || n.body.scrollLeft) - r.clientLeft, a = o.top + (r.scrollTop || n.body.scrollTop) - r.clientTop)), {
left: i,
top: a
})
}, push: Gt, sort: [].sort, splice: [].splice
}, Xt.extend(gn, {
extend: Xt.extend,
makeArray: function (e) {
return (t = e) && t === t.window || e.nodeType ? [e] : Xt.toArray(e);
var t
},
inArray: function (e, t) {
var n;
if (t.indexOf)return t.indexOf(e);
for (n = t.length; n--;)if (t[n] === e)return n;
return -1
},
isArray: Xt.isArray,
each: vn,
trim: hn,
grep: bn,
find: St,
expr: St.selectors,
unique: St.uniqueSort,
text: St.getText,
contains: St.contains,
filter: function (e, t, n) {
var r = t.length;
for (n && (e = ":not(" + e + ")"); r--;)1 !== t[r].nodeType && t.splice(r, 1);
return t = 1 === t.length ? gn.find.matchesSelector(t[0], e) ? [t[0]] : [] : gn.find.matches(e, t)
}
});
var Cn = function (e, t, n) {
var r = [], o = e[t];
for ("string" != typeof n && n instanceof gn && (n = n[0]); o && 9 !== o.nodeType;) {
if (n !== undefined) {
if (o === n)break;
if ("string" == typeof n && gn(o).is(n))break
}
1 === o.nodeType && r.push(o), o = o[t]
}
return r
}, xn = function (e, t, n, r) {
var o = [];
for (r instanceof gn && (r = r[0]); e; e = e[t])if (!n || e.nodeType === n) {
if (r !== undefined) {
if (e === r)break;
if ("string" == typeof r && gn(e).is(r))break
}
o.push(e)
}
return o
}, wn = function (e, t, n) {
for (e = e[t]; e; e = e[t])if (e.nodeType === n)return e;
return null
};
vn({
parent: function (e) {
var t = e.parentNode;
return t && 11 !== t.nodeType ? t : null
}, parents: function (e) {
return Cn(e, "parentNode")
}, next: function (e) {
return wn(e, "nextSibling", 1)
}, prev: function (e) {
return wn(e, "previousSibling", 1)
}, children: function (e) {
return xn(e.firstChild, "nextSibling", 1)
}, contents: function (e) {
return Xt.toArray(("iframe" === e.nodeName ? e.contentDocument || e.contentWindow.document : e).childNodes)
}
}, function (e, r) {
gn.fn[e] = function (t) {
var n = [];
return this.each(function () {
var e = r.call(n, this, t, n);
e && (gn.isArray(e) ? n.push.apply(n, e) : n.push(e))
}), 1 < this.length && (en[e] || (n = gn.unique(n)), 0 === e.indexOf("parents") && (n = n.reverse())), n = gn(n), t ? n.filter(t) : n
}
}), vn({
parentsUntil: function (e, t) {
return Cn(e, "parentNode", t)
}, nextUntil: function (e, t) {
return xn(e, "nextSibling", 1, t).slice(1)
}, prevUntil: function (e, t) {
return xn(e, "previousSibling", 1, t).slice(1)
}
}, function (r, o) {
gn.fn[r] = function (t, e) {
var n = [];
return this.each(function () {
var e = o.call(n, this, t, n);
e && (gn.isArray(e) ? n.push.apply(n, e) : n.push(e))
}), 1 < this.length && (n = gn.unique(n), 0 !== r.indexOf("parents") && "prevUntil" !== r || (n = n.reverse())), n = gn(n), e ? n.filter(e) : n
}
}), gn.fn.is = function (e) {
return !!e && 0 < this.filter(e).length
}, gn.fn.init.prototype = gn.fn, gn.overrideDefaults = function (n) {
var r, o = function (e, t) {
return r = r || n(), 0 === arguments.length && (e = r.element), t || (t = r.context), new o.fn.init(e, t)
};
return gn.extend(o, this), o
};
var Nn = function (n, r, e) {
vn(e, function (e, t) {
n[e] = n[e] || {}, n[e][r] = t
})
};
fe.ie && fe.ie < 8 && (Nn(dn, "get", {
maxlength: function (e) {
var t = e.maxLength;
return 2147483647 === t ? undefined : t
}, size: function (e) {
var t = e.size;
return 20 === t ? undefined : t
}, "class": function (e) {
return e.className
}, style: function (e) {
var t = e.style.cssText;
return 0 === t.length ? undefined : t
}
}), Nn(dn, "set", {
"class": function (e, t) {
e.className = t
}, style: function (e, t) {
e.style.cssText = t
}
})), fe.ie && fe.ie < 9 && (fn["float"] = "styleFloat", Nn(mn, "set", {
opacity: function (e, t) {
var n = e.style;
null === t || "" === t ? n.removeAttribute("filter") : (n.zoom = 1, n.filter = "alpha(opacity=" + 100 * t + ")")
}
})), gn.attrHooks = dn, gn.cssHooks = mn;
var En, Sn, Tn, kn = function (e, t) {
var n = function (e, t) {
for (var n = 0; n < e.length; n++) {
var r = e[n];
if (r.test(t))return r
}
return undefined
}(e, t);
if (!n)return {major: 0, minor: 0};
var r = function (e) {
return Number(t.replace(n, "$" + e))
};
return Rn(r(1), r(2))
}, An = function () {
return Rn(0, 0)
}, Rn = function (e, t) {
return {major: e, minor: t}
}, Dn = {
nu: Rn, detect: function (e, t) {
var n = String(t).toLowerCase();
return 0 === e.length ? An() : kn(e, n)
}, unknown: An
}, Bn = "Firefox", _n = function (e, t) {
return function () {
return t === e
}
}, On = function (e) {
var t = e.current;
return {
current: t,
version: e.version,
isEdge: _n("Edge", t),
isChrome: _n("Chrome", t),
isIE: _n("IE", t),
isOpera: _n("Opera", t),
isFirefox: _n(Bn, t),
isSafari: _n("Safari", t)
}
}, Pn = {
unknown: function () {
return On({current: undefined, version: Dn.unknown()})
},
nu: On,
edge: q("Edge"),
chrome: q("Chrome"),
ie: q("IE"),
opera: q("Opera"),
firefox: q(Bn),
safari: q("Safari")
}, Ln = "Windows", In = "Android", Mn = "Solaris", Fn = "FreeBSD", Un = function (e, t) {
return function () {
return t === e
}
}, zn = function (e) {
var t = e.current;
return {
current: t,
version: e.version,
isWindows: Un(Ln, t),
isiOS: Un("iOS", t),
isAndroid: Un(In, t),
isOSX: Un("OSX", t),
isLinux: Un("Linux", t),
isSolaris: Un(Mn, t),
isFreeBSD: Un(Fn, t)
}
}, Vn = {
unknown: function () {
return zn({current: undefined, version: Dn.unknown()})
},
nu: zn,
windows: q(Ln),
ios: q("iOS"),
android: q(In),
linux: q("Linux"),
osx: q("OSX"),
solaris: q(Mn),
freebsd: q(Fn)
}, Hn = function (e, t) {
var n = String(t).toLowerCase();
return z(e, function (e) {
return e.search(n)
})
}, jn = function (e, n) {
return Hn(e, n).map(function (e) {
var t = Dn.detect(e.versionRegexes, n);
return {current: e.name, version: t}
})
}, qn = function (e, n) {
return Hn(e, n).map(function (e) {
var t = Dn.detect(e.versionRegexes, n);
return {current: e.name, version: t}
})
}, $n = function (e, t) {
return -1 !== e.indexOf(t)
}, Wn = function (e) {
return e.replace(/^\s+|\s+$/g, "")
}, Kn = function (e) {
return e.replace(/\s+$/g, "")
}, Xn = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, Yn = function (t) {
return function (e) {
return $n(e, t)
}
}, Gn = [{
name: "Edge", versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: function (e) {
return $n(e, "edge/") && $n(e, "chrome") && $n(e, "safari") && $n(e, "applewebkit")
}
}, {
name: "Chrome", versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, Xn], search: function (e) {
return $n(e, "chrome") && !$n(e, "chromeframe")
}
}, {
name: "IE",
versionRegexes: [/.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/],
search: function (e) {
return $n(e, "msie") || $n(e, "trident")
}
}, {name: "Opera", versionRegexes: [Xn, /.*?opera\/([0-9]+)\.([0-9]+).*/], search: Yn("opera")}, {
name: "Firefox",
versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],
search: Yn("firefox")
}, {
name: "Safari", versionRegexes: [Xn, /.*?cpu os ([0-9]+)_([0-9]+).*/], search: function (e) {
return ($n(e, "safari") || $n(e, "mobile/")) && $n(e, "applewebkit")
}
}], Jn = [{
name: "Windows",
search: Yn("win"),
versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]
}, {
name: "iOS",
search: function (e) {
return $n(e, "iphone") || $n(e, "ipad")
},
versionRegexes: [/.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/]
}, {name: "Android", search: Yn("android"), versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/]}, {
name: "OSX",
search: Yn("os x"),
versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]
}, {name: "Linux", search: Yn("linux"), versionRegexes: []}, {
name: "Solaris",
search: Yn("sunos"),
versionRegexes: []
}, {name: "FreeBSD", search: Yn("freebsd"), versionRegexes: []}], Qn = {
browsers: q(Gn),
oses: q(Jn)
}, Zn = function (e) {
var t, n, r, o, i, a, u, s, c, l, f, d = Qn.browsers(), m = Qn.oses(), g = jn(d, e).fold(Pn.unknown, Pn.nu), p = qn(m, e).fold(Vn.unknown, Vn.nu);
return {
browser: g,
os: p,
deviceType: (n = g, r = e, o = (t = p).isiOS() && !0 === /ipad/i.test(r), i = t.isiOS() && !o, a = t.isAndroid() && 3 === t.version.major, u = t.isAndroid() && 4 === t.version.major, s = o || a || u && !0 === /mobile/i.test(r), c = t.isiOS() || t.isAndroid(), l = c && !s, f = n.isSafari() && t.isiOS() && !1 === /safari/i.test(r), {
isiPad: q(o),
isiPhone: q(i),
isTablet: q(s),
isPhone: q(l),
isTouch: q(c),
isAndroid: t.isAndroid,
isiOS: t.isiOS,
isWebView: q(f)
})
}
}, er = {
detect: (En = function () {
var e = navigator.userAgent;
return Zn(e)
}, Tn = !1, function () {
for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t];
return Tn || (Tn = !0, Sn = En.apply(null, e)), Sn
})
}, tr = function (e) {
if (null === e || e === undefined)throw new Error("Node cannot be null or undefined");
return {dom: q(e)}
}, nr = {
fromHtml: function (e, t) {
var n = (t || document).createElement("div");
if (n.innerHTML = e, !n.hasChildNodes() || 1 < n.childNodes.length)throw console.error("HTML does not have a single root node", e), "HTML must have a single root node";
return tr(n.childNodes[0])
}, fromTag: function (e, t) {
var n = (t || document).createElement(e);
return tr(n)
}, fromText: function (e, t) {
var n = (t || document).createTextNode(e);
return tr(n)
}, fromDom: tr, fromPoint: function (e, t, n) {
var r = e.dom();
return A.from(r.elementFromPoint(t, n)).map(tr)
}
}, rr = (Node.ATTRIBUTE_NODE, Node.CDATA_SECTION_NODE, Node.COMMENT_NODE, Node.DOCUMENT_NODE), or = (Node.DOCUMENT_TYPE_NODE, Node.DOCUMENT_FRAGMENT_NODE, Node.ELEMENT_NODE), ir = Node.TEXT_NODE, ar = (Node.PROCESSING_INSTRUCTION_NODE, Node.ENTITY_REFERENCE_NODE, Node.ENTITY_NODE, Node.NOTATION_NODE, function (e) {
return e.dom().nodeName.toLowerCase()
}), ur = function (t) {
return function (e) {
return e.dom().nodeType === t
}
}, sr = ur(or), cr = ur(ir), lr = Object.keys, fr = Object.hasOwnProperty, dr = function (e, t) {
for (var n = lr(e), r = 0, o = n.length; r < o; r++) {
var i = n[r];
t(e[i], i, e)
}
}, mr = function (r, o) {
var i = {};
return dr(r, function (e, t) {
var n = o(e, t, r);
i[n.k] = n.v
}), i
}, gr = function (e, t) {
return pr(e, t) ? A.some(e[t]) : A.none()
}, pr = function (e, t) {
return fr.call(e, t)
}, hr = function (e, t, n) {
if (!(k(n) || _(n) || P(n)))throw console.error("Invalid call to Attr.set. Key ", t, ":: Value ", n, ":: Element ", e), new Error("Attribute value was not simple");
e.setAttribute(t, n + "")
}, vr = function (e, t, n) {
hr(e.dom(), t, n)
}, br = function (e, t) {
var n = e.dom();
dr(t, function (e, t) {
hr(n, t, e)
})
}, yr = function (e, t) {
var n = e.dom().getAttribute(t);
return null === n ? undefined : n
}, Cr = function (e, t) {
e.dom().removeAttribute(t)
}, xr = function (e, t) {
var n, r, o = e.dom(), i = window.getComputedStyle(o).getPropertyValue(t), a = "" !== i || (r = cr(n = e) ? n.dom().parentNode : n.dom()) !== undefined && null !== r && r.ownerDocument.body.contains(r) ? i : wr(o, t);
return null === a ? undefined : a
}, wr = function (e, t) {
return e.style !== undefined ? e.style.getPropertyValue(t) : ""
}, Nr = function () {
for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e];
return function () {
for (var n = [], e = 0; e < arguments.length; e++)n[e] = arguments[e];
if (t.length !== n.length)throw new Error('Wrong number of arguments to struct. Expected "[' + t.length + ']", got ' + n.length + " arguments");
var r = {};
return M(t, function (e, t) {
r[e] = q(n[t])
}), r
}
}, Er = function (e, t) {
for (var n = [], r = function (e) {
return n.push(e), t(e)
}, o = t(e); (o = o.bind(r)).isSome(););
return n
}, Sr = function () {
return oe.getOrDie("Node")
}, Tr = function (e, t, n) {
return 0 != (e.compareDocumentPosition(t) & n)
}, kr = function (e, t) {
return Tr(e, t, Sr().DOCUMENT_POSITION_CONTAINED_BY)
}, Ar = or, Rr = rr, Dr = function (e, t) {
var n = e.dom();
if (n.nodeType !== Ar)return !1;
if (n.matches !== undefined)return n.matches(t);
if (n.msMatchesSelector !== undefined)return n.msMatchesSelector(t);
if (n.webkitMatchesSelector !== undefined)return n.webkitMatchesSelector(t);
if (n.mozMatchesSelector !== undefined)return n.mozMatchesSelector(t);
throw new Error("Browser lacks native selectors")
}, Br = function (e) {
return e.nodeType !== Ar && e.nodeType !== Rr || 0 === e.childElementCount
}, _r = function (e, t) {
return e.dom() === t.dom()
}, Or = er.detect().browser.isIE() ? function (e, t) {
return kr(e.dom(), t.dom())
} : function (e, t) {
var n = e.dom(), r = t.dom();
return n !== r && n.contains(r)
}, Pr = function (e) {
return nr.fromDom(e.dom().ownerDocument)
}, Lr = function (e) {
var t = e.dom();
return A.from(t.parentNode).map(nr.fromDom)
}, Ir = function (e) {
var t = e.dom();
return A.from(t.previousSibling).map(nr.fromDom)
}, Mr = function (e) {
var t = e.dom();
return A.from(t.nextSibling).map(nr.fromDom)
}, Fr = function (e) {
return t = Er(e, Ir), (n = J.call(t, 0)).reverse(), n;
var t, n
}, Ur = function (e) {
var t = e.dom();
return W(t.childNodes, nr.fromDom)
}, zr = function (e, t) {
var n = e.dom().childNodes;
return A.from(n[t]).map(nr.fromDom)
}, Vr = function (e) {
return zr(e, e.dom().childNodes.length - 1)
}, Hr = (Nr("element", "offset"), er.detect().browser), jr = function (e) {
return z(e, sr)
}, qr = function (e) {
return Hr.isFirefox() && "table" === ar(e) ? jr(Ur(e)).filter(function (e) {
return "caption" === ar(e)
}).bind(function (o) {
return jr((e = o, Er(e, Mr))).map(function (e) {
var t = e.dom().offsetTop, n = o.dom().offsetTop, r = o.dom().offsetHeight;
return t <= n ? -r : 0
});
var e
}).getOr(0) : 0
}, $r = {
getPos: function (e, t, n) {
var r, o, i = 0, a = 0, u = e.ownerDocument;
if (n = n || e, t) {
if (n === e && t.getBoundingClientRect && "static" === xr(nr.fromDom(e), "position"))return {
x: i = (o = t.getBoundingClientRect()).left + (u.documentElement.scrollLeft || e.scrollLeft) - u.documentElement.clientLeft,
y: a = o.top + (u.documentElement.scrollTop || e.scrollTop) - u.documentElement.clientTop
};
for (r = t; r && r !== n && r.nodeType;)i += r.offsetLeft || 0, a += r.offsetTop || 0, r = r.offsetParent;
for (r = t.parentNode; r && r !== n && r.nodeType;)i -= r.scrollLeft || 0, a -= r.scrollTop || 0, r = r.parentNode;
a += qr(nr.fromDom(t))
}
return {x: i, y: a}
}
}, Wr = function (e) {
var n = A.none(), t = [], r = function (e) {
o() ? a(e) : t.push(e)
}, o = function () {
return n.isSome()
}, i = function (e) {
M(e, a)
}, a = function (t) {
n.each(function (e) {
setTimeout(function () {
t(e)
}, 0)
})
};
return e(function (e) {
n = A.some(e), i(t), t = []
}), {
get: r, map: function (n) {
return Wr(function (t) {
r(function (e) {
t(n(e))
})
})
}, isReady: o
}
}, Kr = {
nu: Wr, pure: function (t) {
return Wr(function (e) {
e(t)
})
}
}, Xr = function (t) {
var e = function (e) {
var r;
t((r = e, function () {
for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t];
var n = this;
setTimeout(function () {
r.apply(n, e)
}, 0)
}))
}, n = function () {
return Kr.nu(e)
};
return {
map: function (r) {
return Xr(function (n) {
e(function (e) {
var t = r(e);
n(t)
})
})
}, bind: function (n) {
return Xr(function (t) {
e(function (e) {
n(e).get(t)
})
})
}, anonBind: function (n) {
return Xr(function (t) {
e(function (e) {
n.get(t)
})
})
}, toLazy: n, toCached: function () {
var t = null;
return Xr(function (e) {
null === t && (t = n()), t.get(e)
})
}, get: e
}
}, Yr = {
nu: Xr, pure: function (t) {
return Xr(function (e) {
e(t)
})
}
}, Gr = function (a, e) {
return e(function (r) {
var o = [], i = 0;
0 === a.length ? r([]) : M(a, function (e, t) {
var n;
e.get((n = t, function (e) {
o[n] = e, ++i >= a.length && r(o)
}))
})
})
}, Jr = function (e) {
return Gr(e, Yr.nu)
}, Qr = function (n) {
return {
is: function (e) {
return n === e
}, isValue: y, isError: b, getOr: q(n), getOrThunk: q(n), getOrDie: q(n), or: function (e) {
return Qr(n)
}, orThunk: function (e) {
return Qr(n)
}, fold: function (e, t) {
return t(n)
}, map: function (e) {
return Qr(e(n))
}, each: function (e) {
e(n)
}, bind: function (e) {
return e(n)
}, exists: function (e) {
return e(n)
}, forall: function (e) {
return e(n)
}, toOption: function () {
return A.some(n)
}
}
}, Zr = function (n) {
return {
is: b, isValue: b, isError: y, getOr: $, getOrThunk: function (e) {
return e()
}, getOrDie: function () {
return e = String(n), function () {
throw new Error(e)
}();
var e
}, or: function (e) {
return e
}, orThunk: function (e) {
return e()
}, fold: function (e, t) {
return e(n)
}, map: function (e) {
return Zr(n)
}, each: x, bind: function (e) {
return Zr(n)
}, exists: b, forall: y, toOption: A.none
}
}, eo = {value: Qr, error: Zr};
function to(e, u) {
var t = e, n = function (e, t, n, r) {
var o, i;
if (e) {
if (!r && e[t])return e[t];
if (e !== u) {
if (o = e[n])return o;
for (i = e.parentNode; i && i !== u; i = i.parentNode)if (o = i[n])return o
}
}
};
this.current = function () {
return t
}, this.next = function (e) {
return t = n(t, "firstChild", "nextSibling", e)
}, this.prev = function (e) {
return t = n(t, "lastChild", "previousSibling", e)
}, this.prev2 = function (e) {
return t = function (e, t, n, r) {
var o, i, a;
if (e) {
if (o = e[n], u && o === u)return;
if (o) {
if (!r)for (a = o[t]; a; a = a[t])if (!a[t])return a;
return o
}
if ((i = e.parentNode) && i !== u)return i
}
}(t, "lastChild", "previousSibling", e)
}
}
var no, ro, oo, io = function (t) {
var n;
return function (e) {
return (n = n || function (e, t) {
for (var n = {}, r = 0, o = e.length; r < o; r++) {
var i = e[r];
n[String(i)] = t(i, r)
}
return n
}(t, q(!0))).hasOwnProperty(ar(e))
}
}, ao = io(["h1", "h2", "h3", "h4", "h5", "h6"]), uo = io(["article", "aside", "details", "div", "dt", "figcaption", "footer", "form", "fieldset", "header", "hgroup", "html", "main", "nav", "section", "summary", "body", "p", "dl", "multicol", "dd", "figure", "address", "center", "blockquote", "h1", "h2", "h3", "h4", "h5", "h6", "listing", "xmp", "pre", "plaintext", "menu", "dir", "ul", "ol", "li", "hr", "table", "tbody", "thead", "tfoot", "th", "tr", "td", "caption"]), so = function (e) {
return sr(e) && !uo(e)
}, co = function (e) {
return sr(e) && "br" === ar(e)
}, lo = io(["h1", "h2", "h3", "h4", "h5", "h6", "p", "div", "address", "pre", "form", "blockquote", "center", "dir", "fieldset", "header", "footer", "article", "section", "hgroup", "aside", "nav", "figure"]), fo = io(["ul", "ol", "dl"]), mo = io(["li", "dd", "dt"]), go = io(["area", "base", "basefont", "br", "col", "frame", "hr", "img", "input", "isindex", "link", "meta", "param", "embed", "source", "wbr", "track"]), po = io(["thead", "tbody", "tfoot"]), ho = io(["td", "th"]), vo = io(["pre", "script", "textarea", "style"]), bo = function (t) {
return function (e) {
return !!e && e.nodeType === t
}
}, yo = bo(1), Co = function (e) {
var r = e.toLowerCase().split(" ");
return function (e) {
var t, n;
if (e && e.nodeType)for (n = e.nodeName.toLowerCase(), t = 0; t < r.length; t++)if (n === r[t])return !0;
return !1
}
}, xo = function (t) {
return function (e) {
if (yo(e)) {
if (e.contentEditable === t)return !0;
if (e.getAttribute("data-mce-contenteditable") === t)return !0
}
return !1
}
}, wo = bo(3), No = bo(8), Eo = bo(9), So = Co("br"), To = xo("true"), ko = xo("false"), Ao = {
isText: wo,
isElement: yo,
isComment: No,
isDocument: Eo,
isBr: So,
isContentEditableTrue: To,
isContentEditableFalse: ko,
matchNodeNames: Co,
hasPropValue: function (t, n) {
return function (e) {
return yo(e) && e[t] === n
}
},
hasAttribute: function (t, e) {
return function (e) {
return yo(e) && e.hasAttribute(t)
}
},
hasAttributeValue: function (t, n) {
return function (e) {
return yo(e) && e.getAttribute(t) === n
}
},
matchStyleValues: function (r, e) {
var o = e.toLowerCase().split(" ");
return function (e) {
var t;
if (yo(e))for (t = 0; t < o.length; t++) {
var n = e.ownerDocument.defaultView.getComputedStyle(e, null);
if ((n ? n.getPropertyValue(r) : null) === o[t])return !0
}
return !1
}
},
isBogus: function (e) {
return yo(e) && e.hasAttribute("data-mce-bogus")
},
isBogusAll: function (e) {
return yo(e) && "all" === e.getAttribute("data-mce-bogus")
},
isTable: function (e) {
return yo(e) && "TABLE" === e.tagName
}
}, Ro = function (e) {
return e && "SPAN" === e.tagName && "bookmark" === e.getAttribute("data-mce-type")
}, Do = function (e, t) {
var n, r = t.childNodes;
if (!Ao.isElement(t) || !Ro(t)) {
for (n = r.length - 1; 0 <= n; n--)Do(e, r[n]);
if (!1 === Ao.isDocument(t)) {
if (Ao.isText(t) && 0 < t.nodeValue.length) {
var o = Xt.trim(t.nodeValue).length;
if (e.isBlock(t.parentNode) || 0 < o)return;
if (0 === o && (a = (i = t).previousSibling && "SPAN" === i.previousSibling.nodeName, u = i.nextSibling && "SPAN" === i.nextSibling.nodeName, a && u))return
} else if (Ao.isElement(t) && (1 === (r = t.childNodes).length && Ro(r[0]) && t.parentNode.insertBefore(r[0], t), r.length || go(nr.fromDom(t))))return;
e.remove(t)
}
var i, a, u;
return t
}
}, Bo = {trimNode: Do}, _o = Xt.makeMap, Oo = /[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, Po = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, Lo = /[<>&\"\']/g, Io = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi, Mo = {
128: "\u20ac",
130: "\u201a",
131: "\u0192",
132: "\u201e",
133: "\u2026",
134: "\u2020",
135: "\u2021",
136: "\u02c6",
137: "\u2030",
138: "\u0160",
139: "\u2039",
140: "\u0152",
142: "\u017d",
145: "\u2018",
146: "\u2019",
147: "\u201c",
148: "\u201d",
149: "\u2022",
150: "\u2013",
151: "\u2014",
152: "\u02dc",
153: "\u2122",
154: "\u0161",
155: "\u203a",
156: "\u0153",
158: "\u017e",
159: "\u0178"
};
ro = {'"': "&quot;", "'": "&#39;", "<": "&lt;", ">": "&gt;", "&": "&amp;", "`": "&#96;"}, oo = {
"&lt;": "<",
"&gt;": ">",
"&amp;": "&",
"&quot;": '"',
"&apos;": "'"
};
var Fo = function (e, t) {
var n, r, o, i = {};
if (e) {
for (e = e.split(","), t = t || 10, n = 0; n < e.length; n += 2)r = String.fromCharCode(parseInt(e[n], t)), ro[r] || (o = "&" + e[n + 1] + ";", i[r] = o, i[o] = r);
return i
}
};
no = Fo("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro", 32);
var Uo = function (e, t) {
return e.replace(t ? Oo : Po, function (e) {
return ro[e] || e
})
}, zo = function (e, t) {
return e.replace(t ? Oo : Po, function (e) {
return 1 < e.length ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : ro[e] || "&#" + e.charCodeAt(0) + ";"
})
}, Vo = function (e, t, n) {
return n = n || no, e.replace(t ? Oo : Po, function (e) {
return ro[e] || n[e] || e
})
}, Ho = {
encodeRaw: Uo, encodeAllRaw: function (e) {
return ("" + e).replace(Lo, function (e) {
return ro[e] || e
})
}, encodeNumeric: zo, encodeNamed: Vo, getEncodeFunc: function (e, t) {
var n = Fo(t) || no, r = _o(e.replace(/\+/g, ","));
return r.named && r.numeric ? function (e, t) {
return e.replace(t ? Oo : Po, function (e) {
return ro[e] !== undefined ? ro[e] : n[e] !== undefined ? n[e] : 1 < e.length ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : "&#" + e.charCodeAt(0) + ";"
})
} : r.named ? t ? function (e, t) {
return Vo(e, t, n)
} : Vo : r.numeric ? zo : Uo
}, decode: function (e) {
return e.replace(Io, function (e, t) {
return t ? 65535 < (t = "x" === t.charAt(0).toLowerCase() ? parseInt(t.substr(1), 16) : parseInt(t, 10)) ? (t -= 65536, String.fromCharCode(55296 + (t >> 10), 56320 + (1023 & t))) : Mo[t] || String.fromCharCode(t) : oo[e] || no[e] || (n = e, (r = nr.fromTag("div").dom()).innerHTML = n, r.textContent || r.innerText || n);
var n, r
})
}
}, jo = {}, qo = {}, $o = Xt.makeMap, Wo = Xt.each, Ko = Xt.extend, Xo = Xt.explode, Yo = Xt.inArray, Go = function (e, t) {
return (e = Xt.trim(e)) ? e.split(t || " ") : []
}, Jo = function (e) {
var u, t, n, r, o, i, s = {}, a = function (e, t, n) {
var r, o, i, a = function (e, t) {
var n, r, o = {};
for (n = 0, r = e.length; n < r; n++)o[e[n]] = t || {};
return o
};
for (t = t || "", "string" == typeof(n = n || []) && (n = Go(n)), r = (e = Go(e)).length; r--;)i = {
attributes: a(o = Go([u, t].join(" "))),
attributesOrder: o,
children: a(n, qo)
}, s[e[r]] = i
}, c = function (e, t) {
var n, r, o, i;
for (n = (e = Go(e)).length, t = Go(t); n--;)for (r = s[e[n]], o = 0, i = t.length; o < i; o++)r.attributes[t[o]] = {}, r.attributesOrder.push(t[o])
};
return jo[e] ? jo[e] : (u = "id accesskey class dir lang style tabindex title role", t = "address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul", n = "a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment", "html4" !== e && (u += " contenteditable contextmenu draggable dropzone hidden spellcheck translate", t += " article aside details dialog figure main header footer hgroup section nav", n += " audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"), "html5-strict" !== e && (u += " xml:lang", n = [n, i = "acronym applet basefont big font strike tt"].join(" "), Wo(Go(i), function (e) {
a(e, "", n)
}), t = [t, o = "center dir isindex noframes"].join(" "), r = [t, n].join(" "), Wo(Go(o), function (e) {
a(e, "", r)
})), r = r || [t, n].join(" "), a("html", "manifest", "head body"), a("head", "", "base command link meta noscript script style title"), a("title hr noscript br"), a("base", "href target"), a("link", "href rel media hreflang type sizes hreflang"), a("meta", "name http-equiv content charset"), a("style", "media type scoped"), a("script", "src async defer type charset"), a("body", "onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload", r), a("address dt dd div caption", "", r), a("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn", "", n), a("blockquote", "cite", r), a("ol", "reversed start type", "li"), a("ul", "", "li"), a("li", "value", r), a("dl", "", "dt dd"), a("a", "href target rel media hreflang type", n), a("q", "cite", n), a("ins del", "cite datetime", r), a("img", "src sizes srcset alt usemap ismap width height"), a("iframe", "src name width height", r), a("embed", "src type width height"), a("object", "data type typemustmatch name usemap form width height", [r, "param"].join(" ")), a("param", "name value"), a("map", "name", [r, "area"].join(" ")), a("area", "alt coords shape href target rel media hreflang type"), a("table", "border", "caption colgroup thead tfoot tbody tr" + ("html4" === e ? " col" : "")), a("colgroup", "span", "col"), a("col", "span"), a("tbody thead tfoot", "", "tr"), a("tr", "", "td th"), a("td", "colspan rowspan headers", r), a("th", "colspan rowspan headers scope abbr", r), a("form", "accept-charset action autocomplete enctype method name novalidate target", r), a("fieldset", "disabled form name", [r, "legend"].join(" ")), a("label", "form for", n), a("input", "accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"), a("button", "disabled form formaction formenctype formmethod formnovalidate formtarget name type value", "html4" === e ? r : n), a("select", "disabled form multiple name required size", "option optgroup"), a("optgroup", "disabled label", "option"), a("option", "disabled label selected value"), a("textarea", "cols dirname disabled form maxlength name readonly required rows wrap"), a("menu", "type label", [r, "li"].join(" ")), a("noscript", "", r), "html4" !== e && (a("wbr"), a("ruby", "", [n, "rt rp"].join(" ")), a("figcaption", "", r), a("mark rt rp summary bdi", "", n), a("canvas", "width height", r), a("video", "src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered", [r, "track source"].join(" ")), a("audio", "src crossorigin preload autoplay mediagroup loop muted controls buffered volume", [r, "track source"].join(" ")), a("picture", "", "img source"), a("source", "src srcset type media sizes"), a("track", "kind src srclang label default"), a("datalist", "", [n, "option"].join(" ")), a("article section nav aside main header footer", "", r), a("hgroup", "", "h1 h2 h3 h4 h5 h6"), a("figure", "", [r, "figcaption"].join(" ")), a("time", "datetime", n), a("dialog", "open", r), a("command", "type label icon disabled checked radiogroup command"), a("output", "for form name", n), a("progress", "value max", n), a("meter", "value min max low high optimum", n), a("details", "open", [r, "summary"].join(" ")), a("keygen", "autofocus challenge disabled form keytype name")), "html5-strict" !== e && (c("script", "language xml:space"), c("style", "xml:space"), c("object", "declare classid code codebase codetype archive standby align border hspace vspace"), c("embed", "align name hspace vspace"), c("param", "valuetype type"), c("a", "charset name rev shape coords"), c("br", "clear"), c("applet", "codebase archive code object alt name width height align hspace vspace"), c("img", "name longdesc align border hspace vspace"), c("iframe", "longdesc frameborder marginwidth marginheight scrolling align"), c("font basefont", "size color face"), c("input", "usemap align"), c("select", "onchange"), c("textarea"), c("h1 h2 h3 h4 h5 h6 div p legend caption", "align"), c("ul", "type compact"), c("li", "type"), c("ol dl menu dir", "compact"), c("pre", "width xml:space"), c("hr", "align noshade size width"), c("isindex", "prompt"), c("table", "summary width frame rules cellspacing cellpadding align bgcolor"), c("col", "width align char charoff valign"), c("colgroup", "width align char charoff valign"), c("thead", "align char charoff valign"), c("tr", "align char charoff valign bgcolor"), c("th", "axis align char charoff valign nowrap bgcolor width height"), c("form", "accept"), c("td", "abbr axis scope align char charoff valign nowrap bgcolor width height"), c("tfoot", "align char charoff valign"), c("tbody", "align char charoff valign"), c("area", "nohref"), c("body", "background bgcolor text link vlink alink")), "html4" !== e && (c("input button select textarea", "autofocus"), c("input textarea", "placeholder"), c("a", "download"), c("link script img", "crossorigin"), c("iframe", "sandbox seamless allowfullscreen")), Wo(Go("a form meter progress dfn"), function (e) {
s[e] && delete s[e].children[e]
}), delete s.caption.children.table, delete s.script, jo[e] = s)
}, Qo = function (e, n) {
var r;
return e && (r = {}, "string" == typeof e && (e = {"*": e}), Wo(e, function (e, t) {
r[t] = r[t.toUpperCase()] = "map" === n ? $o(e, /[, ]/) : Xo(e, /[, ]/)
})), r
};
function Zo(i) {
var e, t, n, r, o, a, u, s, c, l, f, d, m, N = {}, g = {}, E = [], p = {}, h = {}, v = function (e, t, n) {
var r = i[e];
return r ? r = $o(r, /[, ]/, $o(r.toUpperCase(), /[, ]/)) : (r = jo[e]) || (r = $o(t, " ", $o(t.toUpperCase(), " ")), r = Ko(r, n), jo[e] = r), r
};
n = Jo((i = i || {}).schema), !1 === i.verify_html && (i.valid_elements = "*[*]"), e = Qo(i.valid_styles), t = Qo(i.invalid_styles, "map"), s = Qo(i.valid_classes, "map"), r = v("whitespace_elements", "pre script noscript style textarea video audio iframe object code"), o = v("self_closing_elements", "colgroup dd dt li option p td tfoot th thead tr"), a = v("short_ended_elements", "area base basefont br col frame hr img input isindex link meta param embed source wbr track"), u = v("boolean_attributes", "checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"), l = v("non_empty_elements", "td th iframe video audio object script pre code", a), f = v("move_caret_before_on_enter_elements", "table", l), d = v("text_block_elements", "h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside main nav figure"), c = v("block_elements", "hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption details summary", d), m = v("text_inline_elements", "span strong b em i font strike u var cite dfn code mark q sup sub samp"), Wo((i.special || "script noscript noframes noembed title style textarea xmp").split(" "), function (e) {
h[e] = new RegExp("</" + e + "[^>]*>", "gi")
});
var S = function (e) {
return new RegExp("^" + e.replace(/([?+*])/g, ".$1") + "$")
}, b = function (e) {
var t, n, r, o, i, a, u, s, c, l, f, d, m, g, p, h, v, b, y, C = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/, x = /^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/, w = /[*?+]/;
if (e)for (e = Go(e, ","), N["@"] && (h = N["@"].attributes, v = N["@"].attributesOrder), t = 0, n = e.length; t < n; t++)if (i = C.exec(e[t])) {
if (g = i[1], c = i[2], p = i[3], s = i[5], a = {
attributes: d = {},
attributesOrder: m = []
}, "#" === g && (a.paddEmpty = !0), "-" === g && (a.removeEmpty = !0), "!" === i[4] && (a.removeEmptyAttrs = !0), h) {
for (b in h)d[b] = h[b];
m.push.apply(m, v)
}
if (s)for (r = 0, o = (s = Go(s, "|")).length; r < o; r++)if (i = x.exec(s[r])) {
if (u = {}, f = i[1], l = i[2].replace(/[\\:]:/g, ":"), g = i[3], y = i[4], "!" === f && (a.attributesRequired = a.attributesRequired || [], a.attributesRequired.push(l), u.required = !0), "-" === f) {
delete d[l], m.splice(Yo(m, l), 1);
continue
}
g && ("=" === g && (a.attributesDefault = a.attributesDefault || [], a.attributesDefault.push({
name: l,
value: y
}), u.defaultValue = y), ":" === g && (a.attributesForced = a.attributesForced || [], a.attributesForced.push({
name: l,
value: y
}), u.forcedValue = y), "<" === g && (u.validValues = $o(y, "?"))), w.test(l) ? (a.attributePatterns = a.attributePatterns || [], u.pattern = S(l), a.attributePatterns.push(u)) : (d[l] || m.push(l), d[l] = u)
}
h || "@" !== c || (h = d, v = m), p && (a.outputName = c, N[p] = a), w.test(c) ? (a.pattern = S(c), E.push(a)) : N[c] = a
}
}, y = function (e) {
N = {}, E = [], b(e), Wo(n, function (e, t) {
g[t] = e.children
})
}, C = function (e) {
var a = /^(~)?(.+)$/;
e && (jo.text_block_elements = jo.block_elements = null, Wo(Go(e, ","), function (e) {
var t = a.exec(e), n = "~" === t[1], r = n ? "span" : "div", o = t[2];
if (g[o] = g[r], p[o] = r, n || (c[o.toUpperCase()] = {}, c[o] = {}), !N[o]) {
var i = N[r];
delete(i = Ko({}, i)).removeEmptyAttrs, delete i.removeEmpty, N[o] = i
}
Wo(g, function (e, t) {
e[r] && (g[t] = e = Ko({}, g[t]), e[o] = e[r])
})
}))
}, x = function (e) {
var o = /^([+\-]?)(\w+)\[([^\]]+)\]$/;
jo[i.schema] = null, e && Wo(Go(e, ","), function (e) {
var t, n, r = o.exec(e);
r && (n = r[1], t = n ? g[r[2]] : g[r[2]] = {"#comment": {}}, t = g[r[2]], Wo(Go(r[3], "|"), function (e) {
"-" === n ? delete t[e] : t[e] = {}
}))
})
}, w = function (e) {
var t, n = N[e];
if (n)return n;
for (t = E.length; t--;)if ((n = E[t]).pattern.test(e))return n
};
return i.valid_elements ? y(i.valid_elements) : (Wo(n, function (e, t) {
N[t] = {attributes: e.attributes, attributesOrder: e.attributesOrder}, g[t] = e.children
}), "html5" !== i.schema && Wo(Go("strong/b em/i"), function (e) {
e = Go(e, "/"), N[e[1]].outputName = e[0]
}), Wo(Go("ol ul sub sup blockquote span font a table tbody tr strong em b i"), function (e) {
N[e] && (N[e].removeEmpty = !0)
}), Wo(Go("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"), function (e) {
N[e].paddEmpty = !0
}), Wo(Go("span"), function (e) {
N[e].removeEmptyAttrs = !0
})), C(i.custom_elements), x(i.valid_children), b(i.extended_valid_elements), x("+ol[ul|ol],+ul[ul|ol]"), Wo({
dd: "dl",
dt: "dl",
li: "ul ol",
td: "tr",
th: "tr",
tr: "tbody thead tfoot",
tbody: "table",
thead: "table",
tfoot: "table",
legend: "fieldset",
area: "map",
param: "video audio object"
}, function (e, t) {
N[t] && (N[t].parentsRequired = Go(e))
}), i.invalid_elements && Wo(Xo(i.invalid_elements), function (e) {
N[e] && delete N[e]
}), w("span") || b("span[!data-mce-type|*]"), {
children: g, elements: N, getValidStyles: function () {
return e
}, getValidClasses: function () {
return s
}, getBlockElements: function () {
return c
}, getInvalidStyles: function () {
return t
}, getShortEndedElements: function () {
return a
}, getTextBlockElements: function () {
return d
}, getTextInlineElements: function () {
return m
}, getBoolAttrs: function () {
return u
}, getElementRule: w, getSelfClosingElements: function () {
return o
}, getNonEmptyElements: function () {
return l
}, getMoveCaretBeforeOnEnterElements: function () {
return f
}, getWhiteSpaceElements: function () {
return r
}, getSpecialElements: function () {
return h
}, isValidChild: function (e, t) {
var n = g[e.toLowerCase()];
return !(!n || !n[t.toLowerCase()])
}, isValid: function (e, t) {
var n, r, o = w(e);
if (o) {
if (!t)return !0;
if (o.attributes[t])return !0;
if (n = o.attributePatterns)for (r = n.length; r--;)if (n[r].pattern.test(e))return !0
}
return !1
}, getCustomElements: function () {
return p
}, addValidElements: b, setValidElements: y, addCustomElements: C, addValidChildren: x
}
}
var ei = function (e, t, n, r) {
var o = function (e) {
return 1 < (e = parseInt(e, 10).toString(16)).length ? e : "0" + e
};
return "#" + o(t) + o(n) + o(r)
};
function ti(y, e) {
var C, t, c, l, x = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi, w = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi, N = /\s*([^:]+):\s*([^;]+);?/g, E = /\s+$/, S = {}, T = "\ufeff";
for (y = y || {}, e && (c = e.getValidStyles(), l = e.getInvalidStyles()), t = ("\\\" \\' \\; \\: ; : " + T).split(" "), C = 0; C < t.length; C++)S[t[C]] = T + C, S[T + C] = t[C];
return {
toHex: function (e) {
return e.replace(x, ei)
}, parse: function (e) {
var t, n, r, o, i, a, u, s, c = {}, l = y.url_converter, f = y.url_converter_scope || this, d = function (e, t, n) {
var r, o, i, a;
if ((r = c[e + "-top" + t]) && (o = c[e + "-right" + t]) && (i = c[e + "-bottom" + t]) && (a = c[e + "-left" + t])) {
var u = [r, o, i, a];
for (C = u.length - 1; C-- && u[C] === u[C + 1];);
-1 < C && n || (c[e + t] = -1 === C ? u[0] : u.join(" "), delete c[e + "-top" + t], delete c[e + "-right" + t], delete c[e + "-bottom" + t], delete c[e + "-left" + t])
}
}, m = function (e) {
var t, n = c[e];
if (n) {
for (t = (n = n.split(" ")).length; t--;)if (n[t] !== n[0])return !1;
return c[e] = n[0], !0
}
}, g = function (e) {
return o = !0, S[e]
}, p = function (e, t) {
return o && (e = e.replace(/\uFEFF[0-9]/g, function (e) {
return S[e]
})), t || (e = e.replace(/\\([\'\";:])/g, "$1")), e
}, h = function (e) {
return String.fromCharCode(parseInt(e.slice(1), 16))
}, v = function (e) {
return e.replace(/\\[0-9a-f]+/gi, h)
}, b = function (e, t, n, r, o, i) {
if (o = o || i)return "'" + (o = p(o)).replace(/\'/g, "\\'") + "'";
if (t = p(t || n || r), !y.allow_script_urls) {
var a = t.replace(/[\s\r\n]+/g, "");
if (/(java|vb)script:/i.test(a))return "";
if (!y.allow_svg_data_urls && /^data:image\/svg/i.test(a))return ""
}
return l && (t = l.call(f, t, "style")), "url('" + t.replace(/\'/g, "\\'") + "')"
};
if (e) {
for (e = (e = e.replace(/[\u0000-\u001F]/g, "")).replace(/\\[\"\';:\uFEFF]/g, g).replace(/\"[^\"]+\"|\'[^\']+\'/g, function (e) {
return e.replace(/[;:]/g, g)
}); t = N.exec(e);)if (N.lastIndex = t.index + t[0].length, n = t[1].replace(E, "").toLowerCase(), r = t[2].replace(E, ""), n && r) {
if (n = v(n), r = v(r), -1 !== n.indexOf(T) || -1 !== n.indexOf('"'))continue;
if (!y.allow_script_urls && ("behavior" === n || /expression\s*\(|\/\*|\*\//.test(r)))continue;
"font-weight" === n && "700" === r ? r = "bold" : "color" !== n && "background-color" !== n || (r = r.toLowerCase()), r = (r = r.replace(x, ei)).replace(w, b), c[n] = o ? p(r, !0) : r
}
d("border", "", !0), d("border", "-width"), d("border", "-color"), d("border", "-style"), d("padding", ""), d("margin", ""), i = "border", u = "border-style", s = "border-color", m(a = "border-width") && m(u) && m(s) && (c[i] = c[a] + " " + c[u] + " " + c[s], delete c[a], delete c[u], delete c[s]), "medium none" === c.border && delete c.border, "none" === c["border-image"] && delete c["border-image"]
}
return c
}, serialize: function (i, e) {
var t, n, r, o, a, u = "", s = function (e) {
var t, n, r, o;
if (t = c[e])for (n = 0, r = t.length; n < r; n++)e = t[n], (o = i[e]) && (u += (0 < u.length ? " " : "") + e + ": " + o + ";")
};
if (e && c)s("*"), s(e); else for (t in i)!(n = i[t]) || l && (r = t, o = e, a = void 0, (a = l["*"]) && a[r] || (a = l[o]) && a[r]) || (u += (0 < u.length ? " " : "") + t + ": " + n + ";");
return u
}
}
}
var ni, ri = Xt.each, oi = Xt.grep, ii = fe.ie, ai = /^([a-z0-9],?)+$/i, ui = /^[ \t\r\n]*$/, si = function (n, r, o) {
var e = {}, i = r.keep_values, t = {
set: function (e, t, n) {
r.url_converter && (t = r.url_converter.call(r.url_converter_scope || o(), t, n, e[0])), e.attr("data-mce-" + n, t).attr(n, t)
}, get: function (e, t) {
return e.attr("data-mce-" + t) || e.attr(t)
}
};
return e = {
style: {
set: function (e, t) {
null === t || "object" != typeof t ? (i && e.attr("data-mce-style", t), e.attr("style", t)) : e.css(t)
}, get: function (e) {
var t = e.attr("data-mce-style") || e.attr("style");
return t = n.serialize(n.parse(t), e[0].nodeName)
}
}
}, i && (e.href = e.src = t), e
}, ci = function (e, t) {
var n = t.attr("style"), r = e.serialize(e.parse(n), t[0].nodeName);
r || (r = null), t.attr("data-mce-style", r)
}, li = function (e, t) {
var n, r, o = 0;
if (e)for (n = e.nodeType, e = e.previousSibling; e; e = e.previousSibling)r = e.nodeType, (!t || 3 !== r || r !== n && e.nodeValue.length) && (o++, n = r);
return o
};
function fi(a, u) {
var s, c = this;
void 0 === u && (u = {});
var r = {}, i = window, o = {}, t = 0, e = function H(m, g) {
void 0 === g && (g = {});
var p, h = 0, v = {};
p = g.maxLoadTime || 5e3;
var b = function (e) {
m.getElementsByTagName("head")[0].appendChild(e)
}, n = function (e, t, n) {
var o, r, i, a, u = function () {
for (var e = a.passed, t = e.length; t--;)e[t]();
a.status = 2, a.passed = [], a.failed = []
}, s = function () {
for (var e = a.failed, t = e.length; t--;)e[t]();
a.status = 3, a.passed = [], a.failed = []
}, c = function (e, t) {
e() || ((new Date).getTime() - i < p ? he.setTimeout(t) : s())
}, l = function () {
c(function () {
for (var e, t, n = m.styleSheets, r = n.length; r--;)if ((t = (e = n[r]).ownerNode ? e.ownerNode : e.owningElement) && t.id === o.id)return u(), !0
}, l)
}, f = function () {
c(function () {
try {
var e = r.sheet.cssRules;
return u(), !!e
} catch (t) {
}
}, f)
};
if (e = Xt._addCacheSuffix(e), v[e] ? a = v[e] : (a = {
passed: [],
failed: []
}, v[e] = a), t && a.passed.push(t), n && a.failed.push(n), 1 !== a.status)if (2 !== a.status)if (3 !== a.status) {
if (a.status = 1, (o = m.createElement("link")).rel = "stylesheet", o.type = "text/css", o.id = "u" + h++, o.async = !1, o.defer = !1, i = (new Date).getTime(), g.contentCssCors && (o.crossOrigin = "anonymous"), "onload"in o && !((d = navigator.userAgent.match(/WebKit\/(\d*)/)) && parseInt(d[1], 10) < 536))o.onload = l, o.onerror = s; else {
if (0 < navigator.userAgent.indexOf("Firefox"))return (r = m.createElement("style")).textContent = '@import "' + e + '"', f(), void b(r);
l()
}
var d;
b(o), o.href = e
} else s(); else u()
}, t = function (t) {
return Yr.nu(function (e) {
n(t, j(e, q(eo.value(t))), j(e, q(eo.error(t))))
})
}, o = function (e) {
return e.fold($, $)
};
return {
load: n, loadAll: function (e, n, r) {
Jr(W(e, t)).get(function (e) {
var t = K(e, function (e) {
return e.isValue()
});
0 < t.fail.length ? r(t.fail.map(o)) : n(t.pass.map(o))
})
}
}
}(a, {contentCssCors: u.contentCssCors}), l = [], f = u.schema ? u.schema : Zo({}), d = ti({
url_converter: u.url_converter,
url_converter_scope: u.url_converter_scope
}, u.schema), m = u.ownEvents ? new Se(u.proxy) : Se.Event, n = f.getBlockElements(), g = gn.overrideDefaults(function () {
return {context: a, element: V.getRoot()}
}), p = function (e) {
if (e && a && "string" == typeof e) {
var t = a.getElementById(e);
return t && t.id !== e ? a.getElementsByName(e)[1] : t
}
return e
}, h = function (e) {
return "string" == typeof e && (e = p(e)), g(e)
}, v = function (e, t, n) {
var r, o, i = h(e);
return i.length && (o = (r = s[t]) && r.get ? r.get(i, t) : i.attr(t)), void 0 === o && (o = n || ""), o
}, b = function (e) {
var t = p(e);
return t ? t.attributes : []
}, y = function (e, t, n) {
var r, o;
"" === n && (n = null);
var i = h(e);
r = i.attr(t), i.length && ((o = s[t]) && o.set ? o.set(i, n, t) : i.attr(t, n), r !== n && u.onSetAttrib && u.onSetAttrib({
attrElm: i,
attrName: t,
attrValue: n
}))
}, C = function () {
return u.root_element || a.body
}, x = function (e, t) {
return $r.getPos(a.body, p(e), t)
}, w = function (e, t, n) {
var r = h(e);
return n ? r.css(t) : ("float" === (t = t.replace(/-(\D)/g, function (e, t) {
return t.toUpperCase()
})) && (t = fe.ie && fe.ie < 12 ? "styleFloat" : "cssFloat"), r[0] && r[0].style ? r[0].style[t] : undefined)
}, N = function (e) {
var t, n;
return e = p(e), t = w(e, "width"), n = w(e, "height"), -1 === t.indexOf("px") && (t = 0), -1 === n.indexOf("px") && (n = 0), {
w: parseInt(t, 10) || e.offsetWidth || e.clientWidth,
h: parseInt(n, 10) || e.offsetHeight || e.clientHeight
}
}, E = function (e, t) {
var n;
if (!e)return !1;
if (!Array.isArray(e)) {
if ("*" === t)return 1 === e.nodeType;
if (ai.test(t)) {
var r = t.toLowerCase().split(/,/), o = e.nodeName.toLowerCase();
for (n = r.length - 1; 0 <= n; n--)if (r[n] === o)return !0;
return !1
}
if (e.nodeType && 1 !== e.nodeType)return !1
}
var i = Array.isArray(e) ? e : [e];
return 0 < St(t, i[0].ownerDocument || i[0], null, i).length
}, S = function (e, t, n, r) {
var o, i = [], a = p(e);
for (r = r === undefined, n = n || ("BODY" !== C().nodeName ? C().parentNode : null), Xt.is(t, "string") && (t = "*" === (o = t) ? function (e) {
return 1 === e.nodeType
} : function (e) {
return E(e, o)
}); a && a !== n && a.nodeType && 9 !== a.nodeType;) {
if (!t || "function" == typeof t && t(a)) {
if (!r)return [a];
i.push(a)
}
a = a.parentNode
}
return r ? i : null
}, T = function (e, t, n) {
var r = t;
if (e)for ("string" == typeof t && (r = function (e) {
return E(e, t)
}), e = e[n]; e; e = e[n])if ("function" == typeof r && r(e))return e;
return null
}, k = function (e, n, r) {
var o, t = "string" == typeof e ? p(e) : e;
if (!t)return !1;
if (Xt.isArray(t) && (t.length || 0 === t.length))return o = [], ri(t, function (e, t) {
e && ("string" == typeof e && (e = p(e)), o.push(n.call(r, e, t)))
}), o;
var i = r || c;
return n.call(i, t)
}, A = function (e, t) {
h(e).each(function (e, n) {
ri(t, function (e, t) {
y(n, t, e)
})
})
}, R = function (e, r) {
var t = h(e);
ii ? t.each(function (e, t) {
if (!1 !== t.canHaveHTML) {
for (; t.firstChild;)t.removeChild(t.firstChild);
try {
t.innerHTML = "<br>" + r, t.removeChild(t.firstChild)
} catch (n) {
gn("<div></div>").html("<br>" + r).contents().slice(1).appendTo(t)
}
return r
}
}) : t.html(r)
}, D = function (e, n, r, o, i) {
return k(e, function (e) {
var t = "string" == typeof n ? a.createElement(n) : n;
return A(t, r), o && ("string" != typeof o && o.nodeType ? t.appendChild(o) : "string" == typeof o && R(t, o)), i ? t : e.appendChild(t)
})
}, B = function (e, t, n) {
return D(a.createElement(e), e, t, n, !0)
}, _ = Ho.decode, O = Ho.encodeAllRaw, P = function (e, t) {
var n = h(e);
return t ? n.each(function () {
for (var e; e = this.firstChild;)3 === e.nodeType && 0 === e.data.length ? this.removeChild(e) : this.parentNode.insertBefore(e, this)
}).remove() : n.remove(), 1 < n.length ? n.toArray() : n[0]
}, L = function (e, t, n) {
h(e).toggleClass(t, n).each(function () {
"" === this.className && gn(this).attr("class", null)
})
}, I = function (t, e, n) {
return k(e, function (e) {
return Xt.is(e, "array") && (t = t.cloneNode(!0)), n && ri(oi(e.childNodes), function (e) {
t.appendChild(e)
}), e.parentNode.replaceChild(t, e)
})
}, M = function () {
return a.createRange()
}, F = function (e, t, n, r) {
if (Xt.isArray(e)) {
for (var o = e.length; o--;)e[o] = F(e[o], t, n, r);
return e
}
return !u.collect || e !== a && e !== i || l.push([e, t, n, r]), m.bind(e, t, n, r || V)
}, U = function (e, t, n) {
var r;
if (Xt.isArray(e)) {
for (r = e.length; r--;)e[r] = U(e[r], t, n);
return e
}
if (l && (e === a || e === i))for (r = l.length; r--;) {
var o = l[r];
e !== o[0] || t && t !== o[1] || n && n !== o[2] || m.unbind(o[0], o[1], o[2])
}
return m.unbind(e, t, n)
}, z = function (e) {
if (e && Ao.isElement(e)) {
var t = e.getAttribute("data-mce-contenteditable");
return t && "inherit" !== t ? t : "inherit" !== e.contentEditable ? e.contentEditable : null
}
return null
}, V = {
doc: a,
settings: u,
win: i,
files: o,
stdMode: !0,
boxModel: !0,
styleSheetLoader: e,
boundEvents: l,
styles: d,
schema: f,
events: m,
isBlock: function (e) {
if ("string" == typeof e)return !!n[e];
if (e) {
var t = e.nodeType;
if (t)return !(1 !== t || !n[e.nodeName])
}
return !1
},
$: g,
$$: h,
root: null,
clone: function (t, e) {
if (!ii || 1 !== t.nodeType || e)return t.cloneNode(e);
if (e)return null;
var n = a.createElement(t.nodeName);
return ri(b(t), function (e) {
y(n, e.nodeName, v(t, e.nodeName))
}), n
},
getRoot: C,
getViewPort: function (e) {
var t = e || i, n = t.document, r = n.documentElement;
return {
x: t.pageXOffset || r.scrollLeft,
y: t.pageYOffset || r.scrollTop,
w: t.innerWidth || r.clientWidth,
h: t.innerHeight || r.clientHeight
}
},
getRect: function (e) {
var t, n;
return e = p(e), t = x(e), n = N(e), {x: t.x, y: t.y, w: n.w, h: n.h}
},
getSize: N,
getParent: function (e, t, n) {
var r = S(e, t, n, !1);
return r && 0 < r.length ? r[0] : null
},
getParents: S,
get: p,
getNext: function (e, t) {
return T(e, t, "nextSibling")
},
getPrev: function (e, t) {
return T(e, t, "previousSibling")
},
select: function (e, t) {
return St(e, p(t) || u.root_element || a, [])
},
is: E,
add: D,
create: B,
createHTML: function (e, t, n) {
var r, o = "";
for (r in o += "<" + e, t)t.hasOwnProperty(r) && null !== t[r] && "undefined" != typeof t[r] && (o += " " + r + '="' + O(t[r]) + '"');
return void 0 !== n ? o + ">" + n + "</" + e + ">" : o + " />"
},
createFragment: function (e) {
var t, n = a.createElement("div"), r = a.createDocumentFragment();
for (e && (n.innerHTML = e); t = n.firstChild;)r.appendChild(t);
return r
},
remove: P,
setStyle: function (e, t, n) {
var r = h(e).css(t, n);
u.update_styles && ci(d, r)
},
getStyle: w,
setStyles: function (e, t) {
var n = h(e).css(t);
u.update_styles && ci(d, n)
},
removeAllAttribs: function (e) {
return k(e, function (e) {
var t, n = e.attributes;
for (t = n.length - 1; 0 <= t; t--)e.removeAttributeNode(n.item(t))
})
},
setAttrib: y,
setAttribs: A,
getAttrib: v,
getPos: x,
parseStyle: function (e) {
return d.parse(e)
},
serializeStyle: function (e, t) {
return d.serialize(e, t)
},
addStyle: function (e) {
var t, n;
if (V !== fi.DOM && a === document) {
if (r[e])return;
r[e] = !0
}
(n = a.getElementById("mceDefaultStyles")) || ((n = a.createElement("style")).id = "mceDefaultStyles", n.type = "text/css", (t = a.getElementsByTagName("head")[0]).firstChild ? t.insertBefore(n, t.firstChild) : t.appendChild(n)), n.styleSheet ? n.styleSheet.cssText += e : n.appendChild(a.createTextNode(e))
},
loadCSS: function (e) {
var n;
V === fi.DOM || a !== document ? (e || (e = ""), n = a.getElementsByTagName("head")[0], ri(e.split(","), function (e) {
var t;
e = Xt._addCacheSuffix(e), o[e] || (o[e] = !0, t = B("link", {
rel: "stylesheet",
href: e
}), n.appendChild(t))
})) : fi.DOM.loadCSS(e)
},
addClass: function (e, t) {
h(e).addClass(t)
},
removeClass: function (e, t) {
L(e, t, !1)
},
hasClass: function (e, t) {
return h(e).hasClass(t)
},
toggleClass: L,
show: function (e) {
h(e).show()
},
hide: function (e) {
h(e).hide()
},
isHidden: function (e) {
return "none" === h(e).css("display")
},
uniqueId: function (e) {
return (e || "mce_") + t++
},
setHTML: R,
getOuterHTML: function (e) {
var t = "string" == typeof e ? p(e) : e;
return Ao.isElement(t) ? t.outerHTML : gn("<div></div>").append(gn(t).clone()).html()
},
setOuterHTML: function (e, t) {
h(e).each(function () {
try {
if ("outerHTML"in this)return void(this.outerHTML = t)
} catch (e) {
}
P(gn(this).html(t), !0)
})
},
decode: _,
encode: O,
insertAfter: function (e, t) {
var r = p(t);
return k(e, function (e) {
var t, n;
return t = r.parentNode, (n = r.nextSibling) ? t.insertBefore(e, n) : t.appendChild(e), e
})
},
replace: I,
rename: function (t, e) {
var n;
return t.nodeName !== e.toUpperCase() && (n = B(e), ri(b(t), function (e) {
y(n, e.nodeName, v(t, e.nodeName))
}), I(n, t, !0)), n || t
},
findCommonAncestor: function (e, t) {
for (var n, r = e; r;) {
for (n = t; n && r !== n;)n = n.parentNode;
if (r === n)break;
r = r.parentNode
}
return !r && e.ownerDocument ? e.ownerDocument.documentElement : r
},
toHex: function (e) {
return d.toHex(Xt.trim(e))
},
run: k,
getAttribs: b,
isEmpty: function (e, t) {
var n, r, o, i, a, u, s = 0;
if (e = e.firstChild) {
a = new to(e, e.parentNode), t = t || (f ? f.getNonEmptyElements() : null), i = f ? f.getWhiteSpaceElements() : {};
do {
if (o = e.nodeType, Ao.isElement(e)) {
var c = e.getAttribute("data-mce-bogus");
if (c) {
e = a.next("all" === c);
continue
}
if (u = e.nodeName.toLowerCase(), t && t[u]) {
if ("br" !== u)return !1;
s++, e = a.next();
continue
}
for (n = (r = b(e)).length; n--;)if ("name" === (u = r[n].nodeName) || "data-mce-bookmark" === u)return !1
}
if (8 === o)return !1;
if (3 === o && !ui.test(e.nodeValue))return !1;
if (3 === o && e.parentNode && i[e.parentNode.nodeName] && ui.test(e.nodeValue))return !1;
e = a.next()
} while (e)
}
return s <= 1
},
createRng: M,
nodeIndex: li,
split: function (e, t, n) {
var r, o, i, a = M();
if (e && t)return a.setStart(e.parentNode, li(e)), a.setEnd(t.parentNode, li(t)), r = a.extractContents(), (a = M()).setStart(t.parentNode, li(t) + 1), a.setEnd(e.parentNode, li(e) + 1), o = a.extractContents(), (i = e.parentNode).insertBefore(Bo.trimNode(V, r), e), n ? i.insertBefore(n, e) : i.insertBefore(t, e), i.insertBefore(Bo.trimNode(V, o), e), P(e), n || t
},
bind: F,
unbind: U,
fire: function (e, t, n) {
return m.fire(e, t, n)
},
getContentEditable: z,
getContentEditableParent: function (e) {
for (var t = C(), n = null; e && e !== t && null === (n = z(e)); e = e.parentNode);
return n
},
destroy: function () {
if (l)for (var e = l.length; e--;) {
var t = l[e];
m.unbind(t[0], t[1], t[2])
}
St.setDocument && St.setDocument()
},
isChildOf: function (e, t) {
for (; e;) {
if (t === e)return !0;
e = e.parentNode
}
return !1
},
dumpRng: function (e) {
return "startContainer: " + e.startContainer.nodeName + ", startOffset: " + e.startOffset + ", endContainer: " + e.endContainer.nodeName + ", endOffset: " + e.endOffset
}
};
return s = si(d, u, function () {
return V
}), V
}
(ni = fi || (fi = {})).DOM = ni(document), ni.nodeIndex = li;
var di = fi, mi = di.DOM, gi = Xt.each, pi = Xt.grep, hi = function (e) {
return "function" == typeof e
}, vi = function () {
var u = {}, o = [], s = {}, c = [], l = 0, f = function (e, t, n) {
var r, o, i = mi;
o = i.uniqueId(), (r = document.createElement("script")).id = o, r.type = "text/javascript", r.src = Xt._addCacheSuffix(e), r.onload = function () {
i.remove(o), r && (r.onreadystatechange = r.onload = r = null), t()
}, r.onerror = function () {
hi(n) ? n() : "undefined" != typeof console && console.log && console.log("Failed to load script: " + e)
}, (document.getElementsByTagName("head")[0] || document.body).appendChild(r)
};
this.loadScript = function (e, t, n) {
f(e, t, n)
}, this.isDone = function (e) {
return 2 === u[e]
}, this.markDone = function (e) {
u[e] = 2
}, this.add = this.load = function (e, t, n, r) {
u[e] === undefined && (o.push(e), u[e] = 0), t && (s[e] || (s[e] = []), s[e].push({
success: t,
failure: r,
scope: n || this
}))
}, this.remove = function (e) {
delete u[e], delete s[e]
}, this.loadQueue = function (e, t, n) {
this.loadScripts(o, e, t, n)
}, this.loadScripts = function (n, e, t, r) {
var o, i = [], a = function (t, e) {
gi(s[e], function (e) {
hi(e[t]) && e[t].call(e.scope)
}), s[e] = undefined
};
c.push({success: e, failure: r, scope: t || this}), (o = function () {
var e = pi(n);
if (n.length = 0, gi(e, function (e) {
2 !== u[e] ? 3 !== u[e] ? 1 !== u[e] && (u[e] = 1, l++, f(e, function () {
u[e] = 2, l--, a("success", e), o()
}, function () {
u[e] = 3, l--, i.push(e), a("failure", e), o()
})) : a("failure", e) : a("success", e)
}), !l) {
var t = c.slice(0);
c.length = 0, gi(t, function (e) {
0 === i.length ? hi(e.success) && e.success.call(e.scope) : hi(e.failure) && e.failure.call(e.scope, i)
})
}
})()
}
};
vi.ScriptLoader = new vi;
var bi, yi = function (e) {
var t = e, n = function () {
return t
};
return {
get: n, set: function (e) {
t = e
}, clone: function () {
return yi(n())
}
}
}, Ci = {}, xi = yi("en"), wi = {
setCode: function (e) {
e && xi.set(e)
}, getCode: function () {
return xi.get()
}, add: function (e, t) {
var n = Ci[e];
for (var r in n || (Ci[e] = n = {}), t)n[r.toLowerCase()] = t[r]
}, translate: function (e) {
var t, n, r = Ci[xi.get()] || {}, o = function (e) {
return O(e) ? Object.prototype.toString.call(e) : i(e) ? "" : "" + e
}, i = function (e) {
return "" === e || null === e || e === undefined
}, a = function (e) {
var t = o(e), n = t.toLowerCase();
return pr(r, n) ? o(r[n]) : t
}, u = function (e) {
return e.replace(/{context:\w+}$/, "")
}, s = function (e) {
return e
};
if (i(e))return s("");
if (R(t = e) && pr(t, "raw"))return s(o(e.raw));
if (D(n = e) && 1 < n.length) {
var c = e.slice(1);
return s(u(a(e[0]).replace(/\{([0-9]+)\}/g, function (e, t) {
return pr(c, t) ? o(c[t]) : e
})))
}
return s(u(a(e)))
}, isRtl: function () {
return gr(Ci, xi.get()).bind(function (e) {
return gr(e, "_dir")
}).exists(function (e) {
return "rtl" === e
})
}, hasCode: function (e) {
return pr(Ci, e)
}
}, Ni = Xt.each;
function Ei() {
var r = this, o = [], a = {}, u = {}, i = [], s = function (e) {
var t;
return u[e] && (t = u[e].dependencies), t || []
}, c = function (e, t) {
return "object" == typeof t ? t : "string" == typeof e ? {
prefix: "",
resource: t,
suffix: ""
} : {prefix: e.prefix, resource: t, suffix: e.suffix}
}, l = function (e, n, t, r) {
var o = s(e);
Ni(o, function (e) {
var t = c(n, e);
f(t.resource, t, undefined, undefined)
}), t && (r ? t.call(r) : t.call(vi))
}, f = function (e, t, n, r, o) {
if (!a[e]) {
var i = "string" == typeof t ? t : t.prefix + t.resource + t.suffix;
0 !== i.indexOf("/") && -1 === i.indexOf("://") && (i = Ei.baseURL + "/" + i), a[e] = i.substring(0, i.lastIndexOf("/")), u[e] ? l(e, t, n, r) : vi.ScriptLoader.add(i, function () {
return l(e, t, n, r)
}, r, o)
}
};
return {
items: o, urls: a, lookup: u, _listeners: i, get: function (e) {
return u[e] ? u[e].instance : undefined
}, dependencies: s, requireLangPack: function (e, t) {
var n = wi.getCode();
if (n && !1 !== Ei.languageLoad) {
if (t)if (-1 !== (t = "," + t + ",").indexOf("," + n.substr(0, 2) + ","))n = n.substr(0, 2); else if (-1 === t.indexOf("," + n + ","))return;
vi.ScriptLoader.add(a[e] + "/langs/" + n + ".js")
}
}, add: function (t, e, n) {
o.push(e), u[t] = {instance: e, dependencies: n};
var r = K(i, function (e) {
return e.name === t
});
return i = r.fail, Ni(r.pass, function (e) {
e.callback()
}), e
}, remove: function (e) {
delete a[e], delete u[e]
}, createUrl: c, addComponents: function (e, t) {
var n = r.urls[e];
Ni(t, function (e) {
vi.ScriptLoader.add(n + "/" + e)
})
}, load: f, waitFor: function (e, t) {
u.hasOwnProperty(e) ? t() : i.push({name: e, callback: t})
}
}
}
(bi = Ei || (Ei = {})).PluginManager = bi(), bi.ThemeManager = bi();
var Si = function (t, n) {
Lr(t).each(function (e) {
e.dom().insertBefore(n.dom(), t.dom())
})
}, Ti = function (e, t) {
Mr(e).fold(function () {
Lr(e).each(function (e) {
ki(e, t)
})
}, function (e) {
Si(e, t)
})
}, ki = function (e, t) {
e.dom().appendChild(t.dom())
}, Ai = function (t, e) {
M(e, function (e) {
ki(t, e)
})
}, Ri = function (e) {
e.dom().textContent = "", M(Ur(e), function (e) {
Di(e)
})
}, Di = function (e) {
var t = e.dom();
null !== t.parentNode && t.parentNode.removeChild(t)
}, Bi = function (e) {
var t, n = Ur(e);
0 < n.length && (t = e, M(n, function (e) {
Si(t, e)
})), Di(e)
}, _i = function (n, r) {
var o = null;
return {
cancel: function () {
null !== o && (clearTimeout(o), o = null)
}, throttle: function () {
for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t];
null === o && (o = setTimeout(function () {
n.apply(null, e), o = null
}, r))
}
}
}, Oi = function (e, t) {
var n = yr(e, t);
return n === undefined || "" === n ? [] : n.split(" ")
}, Pi = function (e) {
return e.dom().classList !== undefined
}, Li = function (e, t) {
return o = t, i = Oi(n = e, r = "class").concat([o]), vr(n, r, i.join(" ")), !0;
var n, r, o, i
}, Ii = function (e, t) {
return o = t, 0 < (i = F(Oi(n = e, r = "class"), function (e) {
return e !== o
})).length ? vr(n, r, i.join(" ")) : Cr(n, r), !1;
var n, r, o, i
}, Mi = function (e, t) {
Pi(e) ? e.dom().classList.add(t) : Li(e, t)
}, Fi = function (e) {
0 === (Pi(e) ? e.dom().classList : Oi(e, "class")).length && Cr(e, "class")
}, Ui = function (e, t) {
return Pi(e) && e.dom().classList.contains(t)
}, zi = function (e, t) {
return n = t, o = (r = e) === undefined ? document : r.dom(), Br(o) ? [] : W(o.querySelectorAll(n), nr.fromDom);
var n, r, o
};
function Vi(e, t, n, r, o) {
return e(n, r) ? A.some(n) : O(o) && o(n) ? A.none() : t(n, r, o)
}
var Hi, ji = function (e, t, n) {
for (var r = e.dom(), o = O(n) ? n : q(!1); r.parentNode;) {
r = r.parentNode;
var i = nr.fromDom(r);
if (t(i))return A.some(i);
if (o(i))break
}
return A.none()
}, qi = function (e, t, n) {
return Vi(function (e) {
return t(e)
}, ji, e, t, n)
}, $i = function (e, t, n) {
return ji(e, function (e) {
return Dr(e, t)
}, n)
}, Wi = function (e, t) {
return n = t, o = (r = e) === undefined ? document : r.dom(), Br(o) ? A.none() : A.from(o.querySelector(n)).map(nr.fromDom);
var n, r, o
}, Ki = function (e, t, n) {
return Vi(Dr, $i, e, t, n)
}, Xi = q("mce-annotation"), Yi = q("data-mce-annotation"), Gi = q("data-mce-annotation-uid"), Ji = function (r, e) {
var t = r.selection.getRng(), n = nr.fromDom(t.startContainer), o = nr.fromDom(r.getBody()), i = e.fold(function () {
return "." + Xi()
}, function (e) {
return "[" + Yi() + '="' + e + '"]'
}), a = zr(n, t.startOffset).getOr(n), u = Ki(a, i, function (e) {
return _r(e, o)
}), s = function (e, t) {
return n = t, (r = e.dom()) && r.hasAttribute && r.hasAttribute(n) ? A.some(yr(e, t)) : A.none();
var n, r
};
return u.bind(function (e) {
return s(e, "" + Gi()).bind(function (n) {
return s(e, "" + Yi()).map(function (e) {
var t = Qi(r, n);
return {uid: n, name: e, elements: t}
})
})
})
}, Qi = function (e, t) {
var n = nr.fromDom(e.getBody());
return zi(n, "[" + Gi() + '="' + t + '"]')
}, Zi = function (i, e) {
var n, r, o, a = yi({}), c = function (e, t) {
u(e, function (e) {
return t(e), e
})
}, u = function (e, t) {
var n = a.get(), r = t(n.hasOwnProperty(e) ? n[e] : {listeners: [], previous: yi(A.none())});
n[e] = r, a.set(n)
}, t = (n = function () {
var e, t, n, r = a.get(), o = (e = lr(r), (n = J.call(e, 0)).sort(t), n);
M(o, function (e) {
u(e, function (u) {
var s = u.previous.get();
return Ji(i, A.some(e)).fold(function () {
var t;
s.isSome() && (c(t = e, function (e) {
M(e.listeners, function (e) {
return e(!1, t)
})
}), u.previous.set(A.none()))
}, function (e) {
var t, n, r, o = e.uid, i = e.name, a = e.elements;
s.is(o) || (n = o, r = a, c(t = i, function (e) {
M(e.listeners, function (e) {
return e(!0, t, {
uid: n, nodes: W(r, function (e) {
return e.dom()
})
})
})
}), u.previous.set(A.some(o)))
}), {previous: u.previous, listeners: u.listeners}
})
})
}, r = 30, o = null, {
cancel: function () {
null !== o && (clearTimeout(o), o = null)
}, throttle: function () {
for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t];
null !== o && clearTimeout(o), o = setTimeout(function () {
n.apply(null, e), o = null
}, r)
}
});
return i.on("remove", function () {
t.cancel()
}), i.on("nodeChange", function () {
t.throttle()
}), {
addListener: function (e, t) {
u(e, function (e) {
return {previous: e.previous, listeners: e.listeners.concat([t])}
})
}
}
}, ea = function (e, n) {
e.on("init", function () {
e.serializer.addNodeFilter("span", function (e) {
M(e, function (t) {
var e;
(e = t, A.from(e.attributes.map[Yi()]).bind(n.lookup)).each(function (e) {
!1 === e.persistent && t.unwrap()
})
})
})
})
}, ta = 0, na = function (e, t) {
return nr.fromDom(e.dom().cloneNode(t))
}, ra = function (e) {
return na(e, !1)
}, oa = function (e) {
return na(e, !0)
}, ia = function (e, t) {
var n, r, o = Pr(e).dom(), i = nr.fromDom(o.createDocumentFragment()), a = (n = t, (r = (o || document).createElement("div")).innerHTML = n, Ur(nr.fromDom(r)));
Ai(i, a), Ri(e), ki(e, i)
}, aa = [].slice, ua = function (e) {
for (var t = [], n = 1; n < arguments.length; n++)t[n - 1] = arguments[n];
var r = aa.call(arguments);
return r.length - 1 >= e.length ? e.apply(this, r.slice(1)) : function () {
var e = r.concat([].slice.call(arguments));
return ua.apply(this, e)
}
}, sa = {
constant: function (e) {
return function () {
return e
}
}, negate: function (t) {
return function (e) {
return !t(e)
}
}, and: function () {
for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t];
var n = aa.call(arguments);
return function (e) {
for (var t = 0; t < n.length; t++)if (!n[t](e))return !1;
return !0
}
}, or: function () {
for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t];
var n = aa.call(arguments);
return function (e) {
for (var t = 0; t < n.length; t++)if (n[t](e))return !0;
return !1
}
}, curry: ua, compose: function (t, n) {
return function (e) {
return t(n(e))
}
}, noop: function () {
}
}, ca = "\ufeff", la = function (e) {
return e === ca
}, fa = ca, da = function (e) {
return e.replace(new RegExp(ca, "g"), "")
}, ma = Ao.isElement, ga = Ao.isText, pa = function (e) {
return ga(e) && (e = e.parentNode), ma(e) && e.hasAttribute("data-mce-caret")
}, ha = function (e) {
return ga(e) && la(e.data)
}, va = function (e) {
return pa(e) || ha(e)
}, ba = function (e) {
return e.firstChild !== e.lastChild || !Ao.isBr(e.firstChild)
}, ya = function (e) {
var t = e.container();
return e && Ao.isText(t) && t.data.charAt(e.offset()) === fa
}, Ca = function (e) {
var t = e.container();
return e && Ao.isText(t) && t.data.charAt(e.offset() - 1) === fa
}, xa = function (e, t, n) {
var r, o, i;
return (r = t.ownerDocument.createElement(e)).setAttribute("data-mce-caret", n ? "before" : "after"), r.setAttribute("data-mce-bogus", "all"), r.appendChild(((i = document.createElement("br")).setAttribute("data-mce-bogus", "1"), i)), o = t.parentNode, n ? o.insertBefore(r, t) : t.nextSibling ? o.insertBefore(r, t.nextSibling) : o.appendChild(r), r
}, wa = function (e) {
return ga(e) && e.data[0] === fa
}, Na = function (e) {
return ga(e) && e.data[e.data.length - 1] === fa
}, Ea = function (e) {
return e && e.hasAttribute("data-mce-caret") ? (t = e.getElementsByTagName("br"), n = t[t.length - 1], Ao.isBogus(n) && n.parentNode.removeChild(n), e.removeAttribute("data-mce-caret"), e.removeAttribute("data-mce-bogus"), e.removeAttribute("style"), e.removeAttribute("_moz_abspos"), e) : null;
var t, n
}, Sa = Ao.isContentEditableTrue, Ta = Ao.isContentEditableFalse, ka = Ao.isBr, Aa = Ao.isText, Ra = Ao.matchNodeNames("script style textarea"), Da = Ao.matchNodeNames("img input textarea hr iframe video audio object"), Ba = Ao.matchNodeNames("table"), _a = va, Oa = function (e) {
return !_a(e) && (Aa(e) ? !Ra(e.parentNode) : Da(e) || ka(e) || Ba(e) || Pa(e))
}, Pa = function (e) {
return !1 === (t = e, Ao.isElement(t) && "true" === t.getAttribute("unselectable")) && Ta(e);
var t
}, La = function (e) {
return Da(e) || !!Pa(t = e) && !0 !== jt.reduce(t.getElementsByTagName("*"), function (e, t) {
return e || Sa(t)
}, !1);
var t
}, Ia = function (e, t) {
return Oa(e) && function (e, t) {
for (e = e.parentNode; e && e !== t; e = e.parentNode) {
if (Pa(e))return !1;
if (Sa(e))return !0
}
return !0
}(e, t)
}, Ma = Math.round, Fa = function (e) {
return e ? {
left: Ma(e.left),
top: Ma(e.top),
bottom: Ma(e.bottom),
right: Ma(e.right),
width: Ma(e.width),
height: Ma(e.height)
} : {left: 0, top: 0, bottom: 0, right: 0, width: 0, height: 0}
}, Ua = function (e, t) {
return (e = Fa(e)).right = (t || (e.left = e.left + e.width), e.left), e.width = 0, e
}, za = function (e, t, n) {
return 0 <= e && e <= Math.min(t.height, n.height) / 2
}, Va = function (e, t) {
return e.bottom - e.height / 2 < t.top || !(e.top > t.bottom) && za(t.top - e.bottom, e, t)
}, Ha = function (e, t) {
return e.top > t.bottom || !(e.bottom < t.top) && za(t.bottom - e.top, e, t)
}, ja = function (e) {
var t = e.startContainer, n = e.startOffset;
return t.hasChildNodes() && e.endOffset === n + 1 ? t.childNodes[n] : null
}, qa = function (e, t) {
return 1 === e.nodeType && e.hasChildNodes() && (t >= e.childNodes.length && (t = e.childNodes.length - 1), e = e.childNodes[t]), e
}, $a = new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]"), Wa = function (e) {
return "string" == typeof e && 768 <= e.charCodeAt(0) && $a.test(e)
}, Ka = function (e, t) {
for (var n = [], r = 0; r < e.length; r++) {
var o = e[r];
if (!o.isSome())return A.none();
n.push(o.getOrDie())
}
return A.some(t.apply(null, n))
}, Xa = Ao.isElement, Ya = Oa, Ga = Ao.matchStyleValues("display", "block table"), Ja = Ao.matchStyleValues("float", "left right"), Qa = sa.and(Xa, Ya, sa.negate(Ja)), Za = sa.negate(Ao.matchStyleValues("white-space", "pre pre-line pre-wrap")), eu = Ao.isText, tu = Ao.isBr, nu = di.nodeIndex, ru = qa, ou = function (e) {
return "createRange"in e ? e.createRange() : di.DOM.createRng()
}, iu = function (e) {
return e && /[\r\n\t ]/.test(e)
}, au = function (e) {
return !!e.setStart && !!e.setEnd
}, uu = function (e) {
var t, n = e.startContainer, r = e.startOffset;
return !!(iu(e.toString()) && Za(n.parentNode) && Ao.isText(n) && (t = n.data, iu(t[r - 1]) || iu(t[r + 1])))
}, su = function (e) {
return 0 === e.left && 0 === e.right && 0 === e.top && 0 === e.bottom
}, cu = function (e) {
var t, n, r, o, i, a, u, s;
return t = 0 < (n = e.getClientRects()).length ? Fa(n[0]) : Fa(e.getBoundingClientRect()), !au(e) && tu(e) && su(t) ? (i = (r = e).ownerDocument, a = ou(i), u = i.createTextNode("\xa0"), (s = r.parentNode).insertBefore(u, r), a.setStart(u, 0), a.setEnd(u, 1), o = Fa(a.getBoundingClientRect()), s.removeChild(u), o) : su(t) && au(e) ? function (e) {
var t = e.startContainer, n = e.endContainer, r = e.startOffset, o = e.endOffset;
if (t === n && Ao.isText(n) && 0 === r && 1 === o) {
var i = e.cloneRange();
return i.setEndAfter(n), cu(i)
}
return null
}(e) : t
}, lu = function (e, t) {
var n = Ua(e, t);
return n.width = 1, n.right = n.left + 1, n
}, fu = function (e) {
var t, n, r = [], o = function (e) {
var t, n;
0 !== e.height && (0 < r.length && (t = e, n = r[r.length - 1], t.left === n.left && t.top === n.top && t.bottom === n.bottom && t.right === n.right) || r.push(e))
}, i = function (e, t) {
var n = ou(e.ownerDocument);
if (t < e.data.length) {
if (Wa(e.data[t]))return r;
if (Wa(e.data[t - 1]) && (n.setStart(e, t), n.setEnd(e, t + 1), !uu(n)))return o(lu(cu(n), !1)), r
}
0 < t && (n.setStart(e, t - 1), n.setEnd(e, t), uu(n) || o(lu(cu(n), !1))), t < e.data.length && (n.setStart(e, t), n.setEnd(e, t + 1), uu(n) || o(lu(cu(n), !0)))
};
if (eu(e.container()))return i(e.container(), e.offset()), r;
if (Xa(e.container()))if (e.isAtEnd())n = ru(e.container(), e.offset()), eu(n) && i(n, n.data.length), Qa(n) && !tu(n) && o(lu(cu(n), !1)); else {
if (n = ru(e.container(), e.offset()), eu(n) && i(n, 0), Qa(n) && e.isAtEnd())return o(lu(cu(n), !1)), r;
t = ru(e.container(), e.offset() - 1), Qa(t) && !tu(t) && (Ga(t) || Ga(n) || !Qa(n)) && o(lu(cu(t), !1)), Qa(n) && o(lu(cu(n), !0))
}
return r
};
function du(t, n, e) {
var r = function () {
return e || (e = fu(du(t, n))), e
};
return {
container: sa.constant(t), offset: sa.constant(n), toRange: function () {
var e;
return (e = ou(t.ownerDocument)).setStart(t, n), e.setEnd(t, n), e
}, getClientRects: r, isVisible: function () {
return 0 < r().length
}, isAtStart: function () {
return eu(t), 0 === n
}, isAtEnd: function () {
return eu(t) ? n >= t.data.length : n >= t.childNodes.length
}, isEqual: function (e) {
return e && t === e.container() && n === e.offset()
}, getNode: function (e) {
return ru(t, e ? n - 1 : n)
}
}
}
(Hi = du || (du = {})).fromRangeStart = function (e) {
return Hi(e.startContainer, e.startOffset)
}, Hi.fromRangeEnd = function (e) {
return Hi(e.endContainer, e.endOffset)
}, Hi.after = function (e) {
return Hi(e.parentNode, nu(e) + 1)
}, Hi.before = function (e) {
return Hi(e.parentNode, nu(e))
}, Hi.isAbove = function (e, t) {
return Ka([Z(t.getClientRects()), ee(e.getClientRects())], Va).getOr(!1)
}, Hi.isBelow = function (e, t) {
return Ka([ee(t.getClientRects()), Z(e.getClientRects())], Ha).getOr(!1)
}, Hi.isAtStart = function (e) {
return !!e && e.isAtStart()
}, Hi.isAtEnd = function (e) {
return !!e && e.isAtEnd()
}, Hi.isTextPosition = function (e) {
return !!e && Ao.isText(e.container())
}, Hi.isElementPosition = function (e) {
return !1 === Hi.isTextPosition(e)
};
var mu, gu, pu, hu = du, vu = Ao.isText, bu = Ao.isBogus, yu = di.nodeIndex, Cu = function (e) {
var t = e.parentNode;
return bu(t) ? Cu(t) : t
}, xu = function (e) {
return e ? jt.reduce(e.childNodes, function (e, t) {
return bu(t) && "BR" !== t.nodeName ? e = e.concat(xu(t)) : e.push(t), e
}, []) : []
}, wu = function (t) {
return function (e) {
return t === e
}
}, Nu = function (e) {
var t, r, n, o;
return (vu(e) ? "text()" : e.nodeName.toLowerCase()) + "[" + (r = xu(Cu(t = e)), n = jt.findIndex(r, wu(t), t), r = r.slice(0, n + 1), o = jt.reduce(r, function (e, t, n) {
return vu(t) && vu(r[n - 1]) && e++, e
}, 0), r = jt.filter(r, Ao.matchNodeNames(t.nodeName)), (n = jt.findIndex(r, wu(t), t)) - o) + "]"
}, Eu = function (e, t) {
var n, r, o, i, a, u = [];
return n = t.container(), r = t.offset(), vu(n) ? o = function (e, t) {
for (; (e = e.previousSibling) && vu(e);)t += e.data.length;
return t
}(n, r) : (r >= (i = n.childNodes).length ? (o = "after", r = i.length - 1) : o = "before", n = i[r]), u.push(Nu(n)), a = function (e, t, n) {
var r = [];
for (t = t.parentNode; !(t === e || n && n(t)); t = t.parentNode)r.push(t);
return r
}(e, n), a = jt.filter(a, sa.negate(Ao.isBogus)), (u = u.concat(jt.map(a, function (e) {
return Nu(e)
}))).reverse().join("/") + "," + o
}, Su = function (e, t) {
var n, r, o;
return t ? (t = (n = t.split(","))[0].split("/"), o = 1 < n.length ? n[1] : "before", (r = jt.reduce(t, function (e, t) {
return (t = /([\w\-\(\)]+)\[([0-9]+)\]/.exec(t)) ? ("text()" === t[1] && (t[1] = "#text"), n = e, r = t[1], o = parseInt(t[2], 10), i = xu(n), i = jt.filter(i, function (e, t) {
return !vu(e) || !vu(i[t - 1])
}), (i = jt.filter(i, Ao.matchNodeNames(r)))[o]) : null;
var n, r, o, i
}, e)) ? vu(r) ? function (e, t) {
for (var n, r = e, o = 0; vu(r);) {
if (n = r.data.length, o <= t && t <= o + n) {
e = r, t -= o;
break
}
if (!vu(r.nextSibling)) {
e = r, t = n;
break
}
o += n, r = r.nextSibling
}
return vu(e) && t > e.data.length && (t = e.data.length), hu(e, t)
}(r, parseInt(o, 10)) : (o = "after" === o ? yu(r) + 1 : yu(r), hu(r.parentNode, o)) : null) : null
}, Tu = Ao.isContentEditableFalse, ku = function (e, t, n, r, o) {
var i, a = r[o ? "startContainer" : "endContainer"], u = r[o ? "startOffset" : "endOffset"], s = [], c = 0, l = e.getRoot();
for (Ao.isText(a) ? s.push(n ? function (e, t, n) {
var r, o;
for (o = e(t.data.slice(0, n)).length, r = t.previousSibling; r && Ao.isText(r); r = r.previousSibling)o += e(r.data).length;
return o
}(t, a, u) : u) : (u >= (i = a.childNodes).length && i.length && (c = 1, u = Math.max(0, i.length - 1)), s.push(e.nodeIndex(i[u], n) + c)); a && a !== l; a = a.parentNode)s.push(e.nodeIndex(a, n));
return s
}, Au = function (e) {
Ao.isText(e) && 0 === e.data.length && e.parentNode.removeChild(e)
}, Ru = function (e, t, n) {
var r = 0;
return Xt.each(e.select(t), function (e) {
if ("all" !== e.getAttribute("data-mce-bogus"))return e !== n && void r++
}), r
}, Du = function (e, t) {
var n, r, o, i = t ? "start" : "end";
n = e[i + "Container"], r = e[i + "Offset"], Ao.isElement(n) && "TR" === n.nodeName && (n = (o = n.childNodes)[Math.min(t ? r : r - 1, o.length - 1)]) && (r = t ? 0 : n.childNodes.length, e["set" + (t ? "Start" : "End")](n, r))
}, Bu = function (e) {
return Du(e, !0), Du(e, !1), e
}, _u = function (e, t) {
var n;
if (Ao.isElement(e) && (e = qa(e, t), Tu(e)))return e;
if (va(e)) {
if (Ao.isText(e) && pa(e) && (e = e.parentNode), n = e.previousSibling, Tu(n))return n;
if (n = e.nextSibling, Tu(n))return n
}
}, Ou = function (e, t, n) {
var r = n.getNode(), o = r ? r.nodeName : null, i = n.getRng();
if (Tu(r) || "IMG" === o)return {name: o, index: Ru(n.dom, o, r)};
var a, u, s, c, l, f, d, m = _u((a = i).startContainer, a.startOffset) || _u(a.endContainer, a.endOffset);
return m ? {
name: o = m.tagName,
index: Ru(n.dom, o, m)
} : (u = e, c = t, l = i, f = (s = n).dom, (d = {}).start = ku(f, u, c, l, !0), s.isCollapsed() || (d.end = ku(f, u, c, l, !1)), d)
}, Pu = function (e, t, n) {
var r = {"data-mce-type": "bookmark", id: t, style: "overflow:hidden;line-height:0px"};
return n ? e.create("span", r, "&#xFEFF;") : e.create("span", r)
}, Lu = function (e, t) {
var n = e.dom, r = e.getRng(), o = n.uniqueId(), i = e.isCollapsed(), a = e.getNode(), u = a.nodeName;
if ("IMG" === u)return {name: u, index: Ru(n, u, a)};
var s = Bu(r.cloneRange());
if (!i) {
s.collapse(!1);
var c = Pu(n, o + "_end", t);
s.insertNode(c), Au(c.nextSibling)
}
(r = Bu(r)).collapse(!0);
var l = Pu(n, o + "_start", t);
return r.insertNode(l), Au(l.previousSibling), Au(l.nextSibling), e.moveToBookmark({id: o, keep: 1}), {id: o}
}, Iu = {
getBookmark: function (e, t, n) {
return 2 === t ? Ou(da, n, e) : 3 === t ? (o = (r = e).getRng(), {
start: Eu(r.dom.getRoot(), hu.fromRangeStart(o)),
end: Eu(r.dom.getRoot(), hu.fromRangeEnd(o))
}) : t ? {rng: e.getRng()} : Lu(e, !1);
var r, o
}, getUndoBookmark: m(Ou, $, !0), getPersistentBookmark: Lu
}, Mu = "_mce_caret", Fu = function (e) {
return Ao.isElement(e) && e.id === Mu
}, Uu = function (e, t) {
for (; t && t !== e;) {
if (t.id === Mu)return t;
t = t.parentNode
}
return null
}, zu = Ao.isElement, Vu = Ao.isText, Hu = function (e) {
var t = e.parentNode;
t && t.removeChild(e)
}, ju = function (e, t) {
0 === t.length ? Hu(e) : e.nodeValue = t
}, qu = function (e) {
var t = da(e);
return {count: e.length - t.length, text: t}
}, $u = function (e, t) {
return Xu(e), t
}, Wu = function (e, t) {
var n, r, o, i = t.container(), a = (n = te(i.childNodes), r = e, o = L(n, r), -1 === o ? A.none() : A.some(o)).map(function (e) {
return e < t.offset() ? hu(i, t.offset() - 1) : t
}).getOr(t);
return Xu(e), a
}, Ku = function (e, t) {
return Vu(e) && t.container() === e ? (r = t, o = qu((n = e).data.substr(0, r.offset())), i = qu(n.data.substr(r.offset())), 0 < (a = o.text + i.text).length ? (ju(n, a), hu(n, r.offset() - o.count)) : r) : $u(e, t);
var n, r, o, i, a
}, Xu = function (e) {
if (zu(e) && va(e) && (ba(e) ? e.removeAttribute("data-mce-caret") : Hu(e)), Vu(e)) {
var t = da(function (e) {
try {
return e.nodeValue
} catch (t) {
return ""
}
}(e));
ju(e, t)
}
}, Yu = {
removeAndReposition: function (e, t) {
return hu.isTextPosition(t) ? Ku(e, t) : (n = e, (r = t).container() === n.parentNode ? Wu(n, r) : $u(n, r));
var n, r
}, remove: Xu
}, Gu = er.detect().browser, Ju = Ao.isContentEditableFalse, Qu = function (e, t, n) {
var r, o, i, a, u, s = Ua(t.getBoundingClientRect(), n);
return i = "BODY" === e.tagName ? (r = e.ownerDocument.documentElement, o = e.scrollLeft || r.scrollLeft, e.scrollTop || r.scrollTop) : (u = e.getBoundingClientRect(), o = e.scrollLeft - u.left, e.scrollTop - u.top), s.left += o, s.right += o, s.top += i, s.bottom += i, s.width = 1, 0 < (a = t.offsetWidth - t.clientWidth) && (n && (a *= -1), s.left += a, s.right += a), s
}, Zu = function (a, u, e) {
var t, s, c = yi(A.none()), l = function () {
!function (e) {
var t, n, r, o, i;
for (t = gn("*[contentEditable=false]", e), o = 0; o < t.length; o++)r = (n = t[o]).previousSibling, Na(r) && (1 === (i = r.data).length ? r.parentNode.removeChild(r) : r.deleteData(i.length - 1, 1)), r = n.nextSibling, wa(r) && (1 === (i = r.data).length ? r.parentNode.removeChild(r) : r.deleteData(0, 1))
}(a), s && (Yu.remove(s), s = null), c.get().each(function (e) {
gn(e.caret).remove(), c.set(A.none())
}), clearInterval(t)
}, f = function () {
t = he.setInterval(function () {
e() ? gn("div.mce-visual-caret", a).toggleClass("mce-visual-caret-hidden") : gn("div.mce-visual-caret", a).addClass("mce-visual-caret-hidden")
}, 500)
};
return {
show: function (t, e) {
var n, r, o;
if (l(), o = e, Ao.isElement(o) && /^(TD|TH)$/i.test(o.tagName))return null;
if (!u(e))return s = function (e, t) {
var n, r, o;
if (r = e.ownerDocument.createTextNode(fa), o = e.parentNode, t) {
if (n = e.previousSibling, ga(n)) {
if (va(n))return n;
if (Na(n))return n.splitText(n.data.length - 1)
}
o.insertBefore(r, e)
} else {
if (n = e.nextSibling, ga(n)) {
if (va(n))return n;
if (wa(n))return n.splitText(1), n
}
e.nextSibling ? o.insertBefore(r, e.nextSibling) : o.appendChild(r)
}
return r
}(e, t), r = e.ownerDocument.createRange(), Ju(s.nextSibling) ? (r.setStart(s, 0), r.setEnd(s, 0)) : (r.setStart(s, 1), r.setEnd(s, 1)), r;
s = xa("p", e, t), n = Qu(a, e, t), gn(s).css("top", n.top);
var i = gn('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(n).appendTo(a)[0];
return c.set(A.some({caret: i, element: e, before: t})), c.get().each(function (e) {
t && gn(e.caret).addClass("mce-visual-caret-before")
}), f(), (r = e.ownerDocument.createRange()).setStart(s, 0), r.setEnd(s, 0), r
}, hide: l, getCss: function () {
return ".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"
}, reposition: function () {
c.get().each(function (e) {
var t = Qu(a, e.element, e.before);
gn(e.caret).css(t)
})
}, destroy: function () {
return he.clearInterval(t)
}
}
}, es = function () {
return Gu.isIE() || Gu.isEdge() || Gu.isFirefox()
}, ts = function (e) {
return Ju(e) || Ao.isTable(e) && es()
}, ns = (mu = "\xa0", function (e) {
return mu === e
}), rs = function (e) {
return /^[\r\n\t ]$/.test(e)
}, os = function (e) {
return !rs(e) && !ns(e)
}, is = Ao.isContentEditableFalse, as = Ao.matchStyleValues("display", "block table table-cell table-caption list-item"), us = va, ss = pa, cs = Ao.isElement, ls = Oa, fs = function (e) {
return 0 < e
}, ds = function (e) {
return e < 0
}, ms = function (e, t) {
for (var n; n = e(t);)if (!ss(n))return n;
return null
}, gs = function (e, t, n, r, o) {
var i = new to(e, r);
if (ds(t)) {
if ((is(e) || ss(e)) && n(e = ms(i.prev, !0)))return e;
for (; e = ms(i.prev, o);)if (n(e))return e
}
if (fs(t)) {
if ((is(e) || ss(e)) && n(e = ms(i.next, !0)))return e;
for (; e = ms(i.next, o);)if (n(e))return e
}
return null
}, ps = function (e, t) {
for (; e && e !== t;) {
if (as(e))return e;
e = e.parentNode
}
return null
}, hs = function (e, t, n) {
return ps(e.container(), n) === ps(t.container(), n)
}, vs = function (e, t) {
var n, r;
return t ? (n = t.container(), r = t.offset(), cs(n) ? n.childNodes[r + e] : null) : null
}, bs = function (e, t) {
var n = t.ownerDocument.createRange();
return e ? (n.setStartBefore(t), n.setEndBefore(t)) : (n.setStartAfter(t), n.setEndAfter(t)), n
}, ys = function (e, t, n) {
var r, o, i, a;
for (o = e ? "previousSibling" : "nextSibling"; n && n !== t;) {
if (r = n[o], us(r) && (r = r[o]), is(r)) {
if (a = n, ps(r, i = t) === ps(a, i))return r;
break
}
if (ls(r))break;
n = n.parentNode
}
return null
}, Cs = m(bs, !0), xs = m(bs, !1), ws = function (e, t, n) {
var r, o, i, a, u = m(ys, !0, t), s = m(ys, !1, t);
if (o = n.startContainer, i = n.startOffset, pa(o)) {
if (cs(o) || (o = o.parentNode), "before" === (a = o.getAttribute("data-mce-caret")) && (r = o.nextSibling, ts(r)))return Cs(r);
if ("after" === a && (r = o.previousSibling, ts(r)))return xs(r)
}
if (!n.collapsed)return n;
if (Ao.isText(o)) {
if (us(o)) {
if (1 === e) {
if (r = s(o))return Cs(r);
if (r = u(o))return xs(r)
}
if (-1 === e) {
if (r = u(o))return xs(r);
if (r = s(o))return Cs(r)
}
return n
}
if (Na(o) && i >= o.data.length - 1)return 1 === e && (r = s(o)) ? Cs(r) : n;
if (wa(o) && i <= 1)return -1 === e && (r = u(o)) ? xs(r) : n;
if (i === o.data.length)return (r = s(o)) ? Cs(r) : n;
if (0 === i)return (r = u(o)) ? xs(r) : n
}
return n
}, Ns = function (e, t) {
var n = vs(e, t);
return is(n) && !Ao.isBogusAll(n)
}, Es = function (e, t) {
return Ao.isTable(vs(e, t))
}, Ss = function (e, t) {
return A.from(vs(e ? 0 : -1, t)).filter(is)
}, Ts = function (e, t, n) {
var r = ws(e, t, n);
return -1 === e ? du.fromRangeStart(r) : du.fromRangeEnd(r)
}, ks = m(Ns, 0), As = m(Ns, -1), Rs = m(Es, 0), Ds = m(Es, -1), Bs = function (n, r, o) {
return A.from(o.container()).filter(Ao.isText).exists(function (e) {
var t = n ? 0 : -1;
return r(e.data.charAt(o.offset() + t))
})
}, _s = m(Bs, !0, rs), Os = m(Bs, !1, rs), Ps = function (e) {
return A.from(e.getNode()).map(nr.fromDom)
};
(pu = gu || (gu = {}))[pu.Backwards = -1] = "Backwards", pu[pu.Forwards = 1] = "Forwards";
var Ls = Ao.isContentEditableFalse, Is = Ao.isText, Ms = Ao.isElement, Fs = Ao.isBr, Us = Oa, zs = La, Vs = Ia, Hs = function (e, t) {
return e.hasChildNodes() && t < e.childNodes.length ? e.childNodes[t] : null
}, js = function (e, t) {
if (fs(e)) {
if (Us(t.previousSibling) && !Is(t.previousSibling))return hu.before(t);
if (Is(t))return hu(t, 0)
}
if (ds(e)) {
if (Us(t.nextSibling) && !Is(t.nextSibling))return hu.after(t);
if (Is(t))return hu(t, t.data.length)
}
return ds(e) ? Fs(t) ? hu.before(t) : hu.after(t) : hu.before(t)
}, qs = function (e, t, n) {
var r, o, i, a, u;
if (!Ms(n) || !t)return null;
if (t.isEqual(hu.after(n)) && n.lastChild) {
if (u = hu.after(n.lastChild), ds(e) && Us(n.lastChild) && Ms(n.lastChild))return Fs(n.lastChild) ? hu.before(n.lastChild) : u
} else u = t;
var s, c, l, f = u.container(), d = u.offset();
if (Is(f)) {
if (ds(e) && 0 < d)return hu(f, --d);
if (fs(e) && d < f.length)return hu(f, ++d);
r = f
} else {
if (ds(e) && 0 < d && (o = Hs(f, d - 1), Us(o)))return !zs(o) && (i = gs(o, e, Vs, o)) ? Is(i) ? hu(i, i.data.length) : hu.after(i) : Is(o) ? hu(o, o.data.length) : hu.before(o);
if (fs(e) && d < f.childNodes.length && (o = Hs(f, d), Us(o)))return Fs(o) && n.lastChild === o ? null : (s = o, c = n, Ao.isBr(s) && !La(s.nextSibling) && (l = qs(gu.Forwards, hu.after(s), c)) && !hs(hu.before(s), hu.before(l), c) ? qs(e, hu.after(o), n) : !zs(o) && (i = gs(o, e, Vs, o)) ? Is(i) ? hu(i, 0) : hu.before(i) : Is(o) ? hu(o, 0) : hu.after(o));
r = o || u.getNode()
}
return (fs(e) && u.isAtEnd() || ds(e) && u.isAtStart()) && (r = gs(r, e, sa.constant(!0), n, !0), Vs(r, n)) ? js(e, r) : (o = gs(r, e, Vs, n), !(a = jt.last(jt.filter(function (e, t) {
for (var n = []; e && e !== t;)n.push(e), e = e.parentNode;
return n
}(f, n), Ls))) || o && a.contains(o) ? o ? js(e, o) : null : u = fs(e) ? hu.after(a) : hu.before(a))
}, $s = function (t) {
return {
next: function (e) {
return qs(gu.Forwards, e, t)
}, prev: function (e) {
return qs(gu.Backwards, e, t)
}
}
}, Ws = function (e) {
return hu.isTextPosition(e) ? 0 === e.offset() : Oa(e.getNode())
}, Ks = function (e) {
if (hu.isTextPosition(e)) {
var t = e.container();
return e.offset() === t.data.length
}
return Oa(e.getNode(!0))
}, Xs = function (e, t) {
return !hu.isTextPosition(e) && !hu.isTextPosition(t) && e.getNode() === t.getNode(!0)
}, Ys = function (e, t, n) {
return e ? !Xs(t, n) && (r = t, !(!hu.isTextPosition(r) && Ao.isBr(r.getNode()))) && Ks(t) && Ws(n) : !Xs(n, t) && Ws(t) && Ks(n);
var r
}, Gs = function (e, t, n) {
var r = $s(t);
return A.from(e ? r.next(n) : r.prev(n))
}, Js = function (e, t) {
var n, r, o, i, a, u = e ? t.firstChild : t.lastChild;
return Ao.isText(u) ? A.some(hu(u, e ? 0 : u.data.length)) : u ? Oa(u) ? A.some(e ? hu.before(u) : (a = u, Ao.isBr(a) ? hu.before(a) : hu.after(a))) : (r = t, o = u, i = (n = e) ? hu.before(o) : hu.after(o), Gs(n, r, i)) : A.none()
}, Qs = m(Gs, !0), Zs = m(Gs, !1), ec = {
fromPosition: Gs,
nextPosition: Qs,
prevPosition: Zs,
navigate: function (t, n, r) {
return Gs(t, n, r).bind(function (e) {
return hs(r, e, n) && Ys(t, r, e) ? Gs(t, n, e) : A.some(e)
})
},
positionIn: Js,
firstPositionIn: m(Js, !0),
lastPositionIn: m(Js, !1)
}, tc = function (e, t) {
return !e.isBlock(t) || t.innerHTML || fe.ie || (t.innerHTML = '<br data-mce-bogus="1" />'), t
}, nc = function (e, t) {
return ec.lastPositionIn(e).fold(function () {
return !1
}, function (e) {
return t.setStart(e.container(), e.offset()), t.setEnd(e.container(), e.offset()), !0
})
}, rc = function (e, t, n) {
return !(!1 !== t.hasChildNodes() || !Uu(e, t) || (o = n, i = (r = t).ownerDocument.createTextNode(fa), r.appendChild(i), o.setStart(i, 0), o.setEnd(i, 0), 0));
var r, o, i
}, oc = function (e, t, n, r) {
var o, i, a, u, s = n[t ? "start" : "end"], c = e.getRoot();
if (s) {
for (a = s[0], i = c, o = s.length - 1; 1 <= o; o--) {
if (u = i.childNodes, rc(c, i, r))return !0;
if (s[o] > u.length - 1)return !!rc(c, i, r) || nc(i, r);
i = u[s[o]]
}
3 === i.nodeType && (a = Math.min(s[0], i.nodeValue.length)), 1 === i.nodeType && (a = Math.min(s[0], i.childNodes.length)), t ? r.setStart(i, a) : r.setEnd(i, a)
}
return !0
}, ic = function (e) {
return Ao.isText(e) && 0 < e.data.length
}, ac = function (e, t, n) {
var r, o, i, a, u, s, c = e.get(n.id + "_" + t), l = n.keep;
if (c) {
if (r = c.parentNode, o = "start" === t ? l ? c.hasChildNodes() ? (r = c.firstChild, 1) : ic(c.nextSibling) ? (r = c.nextSibling, 0) : ic(c.previousSibling) ? (r = c.previousSibling, c.previousSibling.data.length) : (r = c.parentNode, e.nodeIndex(c) + 1) : e.nodeIndex(c) : l ? c.hasChildNodes() ? (r = c.firstChild, 1) : ic(c.previousSibling) ? (r = c.previousSibling, c.previousSibling.data.length) : (r = c.parentNode, e.nodeIndex(c)) : e.nodeIndex(c), u = r, s = o, !l) {
for (a = c.previousSibling, i = c.nextSibling, Xt.each(Xt.grep(c.childNodes), function (e) {
Ao.isText(e) && (e.nodeValue = e.nodeValue.replace(/\uFEFF/g, ""))
}); c = e.get(n.id + "_" + t);)e.remove(c, !0);
a && i && a.nodeType === i.nodeType && Ao.isText(a) && !fe.opera && (o = a.nodeValue.length, a.appendData(i.nodeValue), e.remove(i), u = a, s = o)
}
return A.some(hu(u, s))
}
return A.none()
}, uc = function (e, t) {
var n, r, o, i, a, u, s, c, l, f, d, m, g, p, h, v, b = e.dom;
if (t) {
if (v = t, Xt.isArray(v.start))return p = t, h = (g = b).createRng(), oc(g, !0, p, h) && oc(g, !1, p, h) ? A.some(h) : A.none();
if ("string" == typeof t.start)return A.some((f = t, d = (l = b).createRng(), m = Su(l.getRoot(), f.start), d.setStart(m.container(), m.offset()), m = Su(l.getRoot(), f.end), d.setEnd(m.container(), m.offset()), d));
if (t.hasOwnProperty("id"))return s = ac(o = b, "start", i = t), c = ac(o, "end", i), Ka([s, (a = c, u = s, a.isSome() ? a : u)], function (e, t) {
var n = o.createRng();
return n.setStart(tc(o, e.container()), e.offset()), n.setEnd(tc(o, t.container()), t.offset()), n
});
if (t.hasOwnProperty("name"))return n = b, r = t, A.from(n.select(r.name)[r.index]).map(function (e) {
var t = n.createRng();
return t.selectNode(e), t
});
if (t.hasOwnProperty("rng"))return A.some(t.rng)
}
return A.none()
}, sc = function (e, t, n) {
return Iu.getBookmark(e, t, n)
}, cc = function (t, e) {
uc(t, e).each(function (e) {
t.setRng(e)
})
}, lc = function (e) {
return Ao.isElement(e) && "SPAN" === e.tagName && "bookmark" === e.getAttribute("data-mce-type")
}, fc = function (e) {
return e && /^(IMG)$/.test(e.nodeName)
}, dc = function (e) {
return e && 3 === e.nodeType && /^([\t \r\n]+|)$/.test(e.nodeValue)
}, mc = function (e, t, n) {
return "color" !== n && "backgroundColor" !== n || (t = e.toHex(t)), "fontWeight" === n && 700 === t && (t = "bold"), "fontFamily" === n && (t = t.replace(/[\'\"]/g, "").replace(/,\s+/g, ",")), "" + t
}, gc = {
isInlineBlock: fc, moveStart: function (e, t, n) {
var r, o, i, a = n.startOffset, u = n.startContainer;
if ((n.startContainer !== n.endContainer || !fc(n.startContainer.childNodes[n.startOffset])) && 1 === u.nodeType)for (a < (i = u.childNodes).length ? r = new to(u = i[a], e.getParent(u, e.isBlock)) : (r = new to(u = i[i.length - 1], e.getParent(u, e.isBlock))).next(!0), o = r.current(); o; o = r.next())if (3 === o.nodeType && !dc(o))return n.setStart(o, 0), void t.setRng(n)
}, getNonWhiteSpaceSibling: function (e, t, n) {
if (e)for (t = t ? "nextSibling" : "previousSibling", e = n ? e : e[t]; e; e = e[t])if (1 === e.nodeType || !dc(e))return e
}, isTextBlock: function (e, t) {
return t.nodeType && (t = t.nodeName), !!e.schema.getTextBlockElements()[t.toLowerCase()]
}, isValid: function (e, t, n) {
return e.schema.isValidChild(t, n)
}, isWhiteSpaceNode: dc, replaceVars: function (e, n) {
return "string" != typeof e ? e = e(n) : n && (e = e.replace(/%(\w+)/g, function (e, t) {
return n[t] || e
})), e
}, isEq: function (e, t) {
return t = t || "", e = "" + ((e = e || "").nodeName || e), t = "" + (t.nodeName || t), e.toLowerCase() === t.toLowerCase()
}, normalizeStyleValue: mc, getStyle: function (e, t, n) {
return mc(e, e.getStyle(t, n), n)
}, getTextDecoration: function (t, e) {
var n;
return t.getParent(e, function (e) {
return (n = t.getStyle(e, "text-decoration")) && "none" !== n
}), n
}, getParents: function (e, t, n) {
return e.getParents(t, n, e.getRoot())
}
}, pc = lc, hc = gc.getParents, vc = gc.isWhiteSpaceNode, bc = gc.isTextBlock, yc = function (e, t) {
for (void 0 === t && (t = 3 === e.nodeType ? e.length : e.childNodes.length); e && e.hasChildNodes();)(e = e.childNodes[t]) && (t = 3 === e.nodeType ? e.length : e.childNodes.length);
return {node: e, offset: t}
}, Cc = function (e, t) {
for (var n = t; n;) {
if (1 === n.nodeType && e.getContentEditable(n))return "false" === e.getContentEditable(n) ? n : t;
n = n.parentNode
}
return t
}, xc = function (e, t, n, r) {
var o, i, a = n.nodeValue;
return void 0 === r && (r = e ? a.length : 0), e ? (o = a.lastIndexOf(" ", r), -1 !== (o = (i = a.lastIndexOf("\xa0", r)) < o ? o : i) && !t && (o < r || !e) && o <= a.length && o++) : (o = a.indexOf(" ", r), i = a.indexOf("\xa0", r), o = -1 !== o && (-1 === i || o < i) ? o : i), o
}, wc = function (e, t, n, r, o, i) {
var a, u, s, c;
if (3 === n.nodeType) {
if (-1 !== (s = xc(o, i, n, r)))return {container: n, offset: s};
c = n
}
for (a = new to(n, e.getParent(n, e.isBlock) || t); u = a[o ? "prev" : "next"]();)if (3 !== u.nodeType || pc(u.parentNode)) {
if (e.isBlock(u) || gc.isEq(u, "BR"))break
} else if (-1 !== (s = xc(o, i, c = u)))return {container: u, offset: s};
if (c)return {container: c, offset: r = o ? 0 : c.length}
}, Nc = function (e, t, n, r, o) {
var i, a, u, s;
for (3 === r.nodeType && 0 === r.nodeValue.length && r[o] && (r = r[o]), i = hc(e, r), a = 0; a < i.length; a++)for (u = 0; u < t.length; u++)if (!("collapsed"in(s = t[u]) && s.collapsed !== n.collapsed) && e.is(i[a], s.selector))return i[a];
return r
}, Ec = function (t, e, n, r) {
var o, i = t.dom, a = i.getRoot();
if (e[0].wrapper || (o = i.getParent(n, e[0].block, a)), !o) {
var u = i.getParent(n, "LI,TD,TH");
o = i.getParent(3 === n.nodeType ? n.parentNode : n, function (e) {
return e !== a && bc(t, e)
}, u)
}
if (o && e[0].wrapper && (o = hc(i, o, "ul,ol").reverse()[0] || o), !o)for (o = n; o[r] && !i.isBlock(o[r]) && (o = o[r], !gc.isEq(o, "br")););
return o || n
}, Sc = function (e, t, n, r, o, i, a) {
var u, s, c, l, f, d;
if (u = s = a ? n : o, l = a ? "previousSibling" : "nextSibling", f = e.getRoot(), 3 === u.nodeType && !vc(u) && (a ? 0 < r : i < u.nodeValue.length))return u;
for (; ;) {
if (!t[0].block_expand && e.isBlock(s))return s;
for (c = s[l]; c; c = c[l])if (!pc(c) && !vc(c) && ("BR" !== (d = c).nodeName || !d.getAttribute("data-mce-bogus") || d.nextSibling))return s;
if (s === f || s.parentNode === f) {
u = s;
break
}
s = s.parentNode
}
return u
}, Tc = function (e, t, n, r) {
var o, i = t.startContainer, a = t.startOffset, u = t.endContainer, s = t.endOffset, c = e.dom;
return 1 === i.nodeType && i.hasChildNodes() && 3 === (i = qa(i, a)).nodeType && (a = 0), 1 === u.nodeType && u.hasChildNodes() && 3 === (u = qa(u, t.collapsed ? s : s - 1)).nodeType && (s = u.nodeValue.length), i = Cc(c, i), u = Cc(c, u), (pc(i.parentNode) || pc(i)) && (i = pc(i) ? i : i.parentNode, 3 === (i = t.collapsed ? i.previousSibling || i : i.nextSibling || i).nodeType && (a = t.collapsed ? i.length : 0)), (pc(u.parentNode) || pc(u)) && (u = pc(u) ? u : u.parentNode, 3 === (u = t.collapsed ? u.nextSibling || u : u.previousSibling || u).nodeType && (s = t.collapsed ? 0 : u.length)), t.collapsed && ((o = wc(c, e.getBody(), i, a, !0, r)) && (i = o.container, a = o.offset), (o = wc(c, e.getBody(), u, s, !1, r)) && (u = o.container, s = o.offset)), n[0].inline && (u = r ? u : function (e, t) {
var n = yc(e, t);
if (n.node) {
for (; n.node && 0 === n.offset && n.node.previousSibling;)n = yc(n.node.previousSibling);
n.node && 0 < n.offset && 3 === n.node.nodeType && " " === n.node.nodeValue.charAt(n.offset - 1) && 1 < n.offset && (e = n.node).splitText(n.offset - 1)
}
return e
}(u, s)), (n[0].inline || n[0].block_expand) && (n[0].inline && 3 === i.nodeType && 0 !== a || (i = Sc(c, n, i, a, u, s, !0)), n[0].inline && 3 === u.nodeType && s !== u.nodeValue.length || (u = Sc(c, n, i, a, u, s, !1))), n[0].selector && !1 !== n[0].expand && !n[0].inline && (i = Nc(c, n, t, i, "previousSibling"), u = Nc(c, n, t, u, "nextSibling")), (n[0].block || n[0].selector) && (i = Ec(e, n, i, "previousSibling"), u = Ec(e, n, u, "nextSibling"), n[0].block && (c.isBlock(i) || (i = Sc(c, n, i, a, u, s, !0)), c.isBlock(u) || (u = Sc(c, n, i, a, u, s, !1)))), 1 === i.nodeType && (a = c.nodeIndex(i), i = i.parentNode), 1 === u.nodeType && (s = c.nodeIndex(u) + 1, u = u.parentNode), {
startContainer: i,
startOffset: a,
endContainer: u,
endOffset: s
}
}, kc = Xt.each, Ac = function (e, t, o) {
var n, r, i, a, u, s, c, l = t.startContainer, f = t.startOffset, d = t.endContainer, m = t.endOffset;
if (0 < (c = e.select("td[data-mce-selected],th[data-mce-selected]")).length)kc(c, function (e) {
o([e])
}); else {
var g, p, h, v = function (e) {
var t;
return 3 === (t = e[0]).nodeType && t === l && f >= t.nodeValue.length && e.splice(0, 1), t = e[e.length - 1], 0 === m && 0 < e.length && t === d && 3 === t.nodeType && e.splice(e.length - 1, 1), e
}, b = function (e, t, n) {
for (var r = []; e && e !== n; e = e[t])r.push(e);
return r
}, y = function (e, t) {
do {
if (e.parentNode === t)return e;
e = e.parentNode
} while (e)
}, C = function (e, t, n) {
var r = n ? "nextSibling" : "previousSibling";
for (u = (a = e).parentNode; a && a !== t; a = u)u = a.parentNode, (s = b(a === e ? a : a[r], r)).length && (n || s.reverse(), o(v(s)))
};
if (1 === l.nodeType && l.hasChildNodes() && (l = l.childNodes[f]), 1 === d.nodeType && d.hasChildNodes() && (p = m, h = (g = d).childNodes, --p > h.length - 1 ? p = h.length - 1 : p < 0 && (p = 0), d = h[p] || g), l === d)return o(v([l]));
for (n = e.findCommonAncestor(l, d), a = l; a; a = a.parentNode) {
if (a === d)return C(l, n, !0);
if (a === n)break
}
for (a = d; a; a = a.parentNode) {
if (a === l)return C(d, n);
if (a === n)break
}
r = y(l, n) || l, i = y(d, n) || d, C(l, r, !0), (s = b(r === l ? r : r.nextSibling, "nextSibling", i === d ? i.nextSibling : i)).length && o(v(s)), C(d, i)
}
}, Rc = function xN(n, r) {
var t = function (e) {
return n(e) ? A.from(e.dom().nodeValue) : A.none()
}, e = er.detect().browser, o = e.isIE() && 10 === e.version.major ? function (e) {
try {
return t(e)
} catch (CN) {
return A.none()
}
} : t;
return {
get: function (e) {
if (!n(e))throw new Error("Can only get " + r + " value of a " + r + " node");
return o(e).getOr("")
}, getOption: o, set: function (e, t) {
if (!n(e))throw new Error("Can only set raw " + r + " value of a " + r + " node");
e.dom().nodeValue = t
}
}
}(cr, "text"), Dc = function (e) {
return Rc.get(e)
}, Bc = function (r, o, i, a) {
return Lr(o).fold(function () {
return "skipping"
}, function (e) {
return "br" === a || cr(n = o) && "\ufeff" === Dc(n) ? "valid" : sr(t = o) && Ui(t, Xi()) ? "existing" : Fu(o) ? "caret" : gc.isValid(r, i, a) && gc.isValid(r, ar(e), i) ? "valid" : "invalid-child";
var t, n
})
}, _c = function (e, t, n, r) {
var o, i, a = t.uid, u = void 0 === a ? (o = "mce-annotation", i = (new Date).getTime(), o + "_" + Math.floor(1e9 * Math.random()) + ++ta + String(i)) : a, s = function h(e, t) {
var n = {};
for (var r in e)Object.prototype.hasOwnProperty.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);
if (null != e && "function" == typeof Object.getOwnPropertySymbols) {
var o = 0;
for (r = Object.getOwnPropertySymbols(e); o < r.length; o++)t.indexOf(r[o]) < 0 && (n[r[o]] = e[r[o]])
}
return n
}(t, ["uid"]), c = nr.fromTag("span", e);
Mi(c, Xi()), vr(c, "" + Gi(), u), vr(c, "" + Yi(), n);
var l, f = r(u, s), d = f.attributes, m = void 0 === d ? {} : d, g = f.classes, p = void 0 === g ? [] : g;
return br(c, m), l = c, M(p, function (e) {
Mi(l, e)
}), c
}, Oc = function (i, e, t, n, r) {
var a = [], u = _c(i.getDoc(), r, t, n), s = yi(A.none()), c = function () {
s.set(A.none())
}, l = function (e) {
M(e, o)
}, o = function (e) {
var t, n;
switch (Bc(i, e, "span", ar(e))) {
case"invalid-child":
c();
var r = Ur(e);
l(r), c();
break;
case"valid":
var o = s.get().getOrThunk(function () {
var e = ra(u);
return a.push(e), s.set(A.some(e)), e
});
Si(t = e, n = o), ki(n, t)
}
};
return Ac(i.dom, e, function (e) {
var t;
c(), t = W(e, nr.fromDom), l(t)
}), a
}, Pc = function (s, c, l, f) {
s.undoManager.transact(function () {
var e, t, n, r, o = s.selection.getRng();
if (o.collapsed && (r = Tc(e = s, t = o, [{inline: !0}], 3 === (n = t).startContainer.nodeType && n.startContainer.nodeValue.length >= n.startOffset && "\xa0" === n.startContainer.nodeValue[n.startOffset]), t.setStart(r.startContainer, r.startOffset), t.setEnd(r.endContainer, r.endOffset), e.selection.setRng(t)), s.selection.getRng().collapsed) {
var i = _c(s.getDoc(), f, c, l.decorate);
ia(i, "\xa0"), s.selection.getRng().insertNode(i.dom()), s.selection.select(i.dom())
} else {
var a = Iu.getPersistentBookmark(s.selection, !1), u = s.selection.getRng();
Oc(s, u, c, l.decorate, f), s.selection.moveToBookmark(a)
}
})
};
function Lc(s) {
var n, r = (n = {}, {
register: function (e, t) {
n[e] = {name: e, settings: t}
}, lookup: function (e) {
return n.hasOwnProperty(e) ? A.from(n[e]).map(function (e) {
return e.settings
}) : A.none()
}
});
ea(s, r);
var o = Zi(s);
return {
register: function (e, t) {
r.register(e, t)
}, annotate: function (t, n) {
r.lookup(t).each(function (e) {
Pc(s, t, e, n)
})
}, annotationChanged: function (e, t) {
o.addListener(e, t)
}, remove: function (e) {
Ji(s, A.some(e)).each(function (e) {
var t = e.elements;
M(t, Bi)
})
}, getAll: function (e) {
var t, n, r, o, i, a, u = (t = s, n = e, r = nr.fromDom(t.getBody()), o = zi(r, "[" + Yi() + '="' + n + '"]'), i = {}, M(o, function (e) {
var t = yr(e, Gi()), n = i.hasOwnProperty(t) ? i[t] : [];
i[t] = n.concat([e])
}), i);
return a = function (e) {
return W(e, function (e) {
return e.dom()
})
}, mr(u, function (e, t, n) {
return {k: t, v: a(e, t, n)}
})
}
}
}
var Ic, Mc = Object.prototype.hasOwnProperty, Fc = (Ic = function (e, t) {
return t
}, function () {
for (var e = new Array(arguments.length), t = 0; t < e.length; t++)e[t] = arguments[t];
if (0 === e.length)throw new Error("Can't merge zero objects");
for (var n = {}, r = 0; r < e.length; r++) {
var o = e[r];
for (var i in o)Mc.call(o, i) && (n[i] = Ic(n[i], o[i]))
}
return n
}), Uc = /^[ \t\r\n]*$/, zc = {
"#text": 3,
"#comment": 8,
"#cdata": 4,
"#pi": 7,
"#doctype": 10,
"#document-fragment": 11
}, Vc = function (e, t, n) {
var r, o, i = n ? "lastChild" : "firstChild", a = n ? "prev" : "next";
if (e[i])return e[i];
if (e !== t) {
if (r = e[a])return r;
for (o = e.parent; o && o !== t; o = o.parent)if (r = o[a])return r
}
}, Hc = function () {
function a(e, t) {
this.name = e, 1 === (this.type = t) && (this.attributes = [], this.attributes.map = {})
}
return a.create = function (e, t) {
var n, r;
if (n = new a(e, zc[e] || 1), t)for (r in t)n.attr(r, t[r]);
return n
}, a.prototype.replace = function (e) {
return e.parent && e.remove(), this.insert(e, this), this.remove(), this
}, a.prototype.attr = function (e, t) {
var n, r;
if ("string" != typeof e) {
for (r in e)this.attr(r, e[r]);
return this
}
if (n = this.attributes) {
if (t === undefined)return n.map[e];
if (null === t) {
if (e in n.map)for (delete n.map[e], r = n.length; r--;)if (n[r].name === e)return n = n.splice(r, 1), this;
return this
}
if (e in n.map) {
for (r = n.length; r--;)if (n[r].name === e) {
n[r].value = t;
break
}
} else n.push({name: e, value: t});
return n.map[e] = t, this
}
}, a.prototype.clone = function () {
var e, t, n, r, o, i = new a(this.name, this.type);
if (n = this.attributes) {
for ((o = []).map = {}, e = 0, t = n.length; e < t; e++)"id" !== (r = n[e]).name && (o[o.length] = {
name: r.name,
value: r.value
}, o.map[r.name] = r.value);
i.attributes = o
}
return i.value = this.value, i.shortEnded = this.shortEnded, i
}, a.prototype.wrap = function (e) {
return this.parent.insert(e, this), e.append(this), this
}, a.prototype.unwrap = function () {
var e, t;
for (e = this.firstChild; e;)t = e.next, this.insert(e, this, !0), e = t;
this.remove()
}, a.prototype.remove = function () {
var e = this.parent, t = this.next, n = this.prev;
return e && (e.firstChild === this ? (e.firstChild = t) && (t.prev = null) : n.next = t, e.lastChild === this ? (e.lastChild = n) && (n.next = null) : t.prev = n, this.parent = this.next = this.prev = null), this
}, a.prototype.append = function (e) {
var t;
return e.parent && e.remove(), t = this.lastChild, this.lastChild = t ? ((t.next = e).prev = t, e) : this.firstChild = e, e.parent = this, e
}, a.prototype.insert = function (e, t, n) {
var r;
return e.parent && e.remove(), r = t.parent || this, n ? (t === r.firstChild ? r.firstChild = e : t.prev.next = e, e.prev = t.prev, (e.next = t).prev = e) : (t === r.lastChild ? r.lastChild = e : t.next.prev = e, e.next = t.next, (e.prev = t).next = e), e.parent = r, e
}, a.prototype.getAll = function (e) {
var t, n = [];
for (t = this.firstChild; t; t = Vc(t, this))t.name === e && n.push(t);
return n
}, a.prototype.empty = function () {
var e, t, n;
if (this.firstChild) {
for (e = [], n = this.firstChild; n; n = Vc(n, this))e.push(n);
for (t = e.length; t--;)(n = e[t]).parent = n.firstChild = n.lastChild = n.next = n.prev = null
}
return this.firstChild = this.lastChild = null, this
}, a.prototype.isEmpty = function (e, t, n) {
var r, o, i = this.firstChild;
if (t = t || {}, i)do {
if (1 === i.type) {
if (i.attributes.map["data-mce-bogus"])continue;
if (e[i.name])return !1;
for (r = i.attributes.length; r--;)if ("name" === (o = i.attributes[r].name) || 0 === o.indexOf("data-mce-bookmark"))return !1
}
if (8 === i.type)return !1;
if (3 === i.type && !Uc.test(i.value))return !1;
if (3 === i.type && i.parent && t[i.parent.name] && Uc.test(i.value))return !1;
if (n && n(i))return !1
} while (i = Vc(i, this));
return !0
}, a.prototype.walk = function (e) {
return Vc(this, null, e)
}, a
}(), jc = function (e, t, n) {
var r, o, i, a, u = 1;
for (a = e.getShortEndedElements(), (i = /<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g).lastIndex = r = n; o = i.exec(t);) {
if (r = i.lastIndex, "/" === o[1])u--; else if (!o[1]) {
if (o[2]in a)continue;
u++
}
if (0 === u)break
}
return r
};
function qc(F, U) {
void 0 === U && (U = Zo());
var e = function () {
};
!1 !== (F = F || {}).fix_self_closing && (F.fix_self_closing = !0);
var z = F.comment ? F.comment : e, V = F.cdata ? F.cdata : e, H = F.text ? F.text : e, j = F.start ? F.start : e, q = F.end ? F.end : e, $ = F.pi ? F.pi : e, W = F.doctype ? F.doctype : e;
return {
parse: function (e) {
var t, n, r, d, o, i, a, m, u, s, g, c, p, l, f, h, v, b, y, C, x, w, N, E, S, T, k, A, R, D = 0, B = [], _ = 0, O = Ho.decode, P = Xt.makeMap("src,href,data,background,formaction,poster,xlink:href"), L = /((java|vb)script|mhtml):/i, I = function (e) {
var t, n;
for (t = B.length; t-- && B[t].name !== e;);
if (0 <= t) {
for (n = B.length - 1; t <= n; n--)(e = B[n]).valid && q(e.name);
B.length = t
}
}, M = function (e, t, n, r, o) {
var i, a, u, s, c;
if (n = (t = t.toLowerCase())in g ? t : O(n || r || o || ""), p && !m && 0 == (0 === (u = t).indexOf("data-") || 0 === u.indexOf("aria-"))) {
if (!(i = b[t]) && y) {
for (a = y.length; a-- && !(i = y[a]).pattern.test(t););
-1 === a && (i = null)
}
if (!i)return;
if (i.validValues && !(n in i.validValues))return
}
if (P[t] && !F.allow_script_urls) {
var l = n.replace(/[\s\u0000-\u001F]+/g, "");
try {
l = decodeURIComponent(l)
} catch (f) {
l = unescape(l)
}
if (L.test(l))return;
if (c = l, !(s = F).allow_html_data_urls && (/^data:image\//i.test(c) ? !1 === s.allow_svg_data_urls && /^data:image\/svg\+xml/i.test(c) : /^data:/i.test(c)))return
}
m && (t in P || 0 === t.indexOf("on")) || (d.map[t] = n, d.push({name: t, value: n}))
};
for (S = new RegExp("<(?:(?:!--([\\w\\W]*?)--\x3e)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))", "g"), T = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g, s = U.getShortEndedElements(), E = F.self_closing_elements || U.getSelfClosingElements(), g = U.getBoolAttrs(), p = F.validate, u = F.remove_internals, R = F.fix_self_closing, k = U.getSpecialElements(), N = e + ">"; t = S.exec(N);) {
if (D < t.index && H(O(e.substr(D, t.index - D))), n = t[6])":" === (n = n.toLowerCase()).charAt(0) && (n = n.substr(1)), I(n); else if (n = t[7]) {
if (t.index + t[0].length > e.length) {
H(O(e.substr(t.index))), D = t.index + t[0].length;
continue
}
if (":" === (n = n.toLowerCase()).charAt(0) && (n = n.substr(1)), c = n in s, R && E[n] && 0 < B.length && B[B.length - 1].name === n && I(n), !p || (l = U.getElementRule(n))) {
if (f = !0, p && (b = l.attributes, y = l.attributePatterns), (v = t[8]) ? ((m = -1 !== v.indexOf("data-mce-type")) && u && (f = !1), (d = []).map = {}, v.replace(T, M)) : (d = []).map = {}, p && !m) {
if (C = l.attributesRequired, x = l.attributesDefault, w = l.attributesForced, l.removeEmptyAttrs && !d.length && (f = !1), w)for (o = w.length; o--;)a = (h = w[o]).name, "{$uid}" === (A = h.value) && (A = "mce_" + _++), d.map[a] = A, d.push({
name: a,
value: A
});
if (x)for (o = x.length; o--;)(a = (h = x[o]).name)in d.map || ("{$uid}" === (A = h.value) && (A = "mce_" + _++), d.map[a] = A, d.push({
name: a,
value: A
}));
if (C) {
for (o = C.length; o-- && !(C[o]in d.map););
-1 === o && (f = !1)
}
if (h = d.map["data-mce-bogus"]) {
if ("all" === h) {
D = jc(U, e, S.lastIndex), S.lastIndex = D;
continue
}
f = !1
}
}
f && j(n, d, c)
} else f = !1;
if (r = k[n]) {
r.lastIndex = D = t.index + t[0].length, D = (t = r.exec(e)) ? (f && (i = e.substr(D, t.index - D)), t.index + t[0].length) : (i = e.substr(D), e.length), f && (0 < i.length && H(i, !0), q(n)), S.lastIndex = D;
continue
}
c || (v && v.indexOf("/") === v.length - 1 ? f && q(n) : B.push({name: n, valid: f}))
} else(n = t[1]) ? (">" === n.charAt(0) && (n = " " + n), F.allow_conditional_comments || "[if" !== n.substr(0, 3).toLowerCase() || (n = " " + n), z(n)) : (n = t[2]) ? V(n.replace(/<!--|-->/g, "")) : (n = t[3]) ? W(n) : (n = t[4]) && $(n, t[5]);
D = t.index + t[0].length
}
for (D < e.length && H(O(e.substr(D))), o = B.length - 1; 0 <= o; o--)(n = B[o]).valid && q(n.name)
}
}
}
(qc || (qc = {})).findEndTag = jc;
var $c = qc, Wc = function (e, t) {
var n, r, o, i, a, u, s, c, l = t, f = /<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g, d = e.schema;
for (u = e.getTempAttrs(), s = l, c = new RegExp(["\\s?(" + u.join("|") + ')="[^"]+"'].join("|"), "gi"), l = s.replace(c, ""), a = d.getShortEndedElements(); i = f.exec(l);)r = f.lastIndex, o = i[0].length, n = a[i[1]] ? r : $c.findEndTag(d, l, r), l = l.substring(0, r - o) + l.substring(n), f.lastIndex = r - o;
return da(l)
}, Kc = {trimExternal: Wc, trimInternal: Wc}, Xc = function (e, t, n) {
var r = e.getParam(t, n);
if (-1 === r.indexOf("="))return r;
var o = e.getParam(t, "", "hash");
return o.hasOwnProperty(e.id) ? o[e.id] : n
}, Yc = function (e) {
return e.getParam("iframe_attrs", {})
}, Gc = function (e) {
return e.getParam("doctype", "<!DOCTYPE html>")
}, Jc = function (e) {
return e.getParam("document_base_url", "")
}, Qc = function (e) {
return Xc(e, "body_id", "tinymce")
}, Zc = function (e) {
return Xc(e, "body_class", "")
}, el = function (e) {
return e.getParam("content_security_policy", "")
}, tl = function (e) {
return e.getParam("br_in_pre", !0)
}, nl = function (e) {
if (e.getParam("force_p_newlines", !1))return "p";
var t = e.getParam("forced_root_block", "p");
return !1 === t ? "" : !0 === t ? "p" : t
}, rl = function (e) {
return e.getParam("forced_root_block_attrs", {})
}, ol = function (e) {
return e.getParam("br_newline_selector", ".mce-toc h2,figcaption,caption")
}, il = function (e) {
return e.getParam("no_newline_selector", "")
}, al = function (e) {
return e.getParam("keep_styles", !0)
}, ul = function (e) {
return e.getParam("end_container_on_empty_block", !1)
}, sl = function (e) {
return Xt.explode(e.getParam("font_size_style_values", ""))
}, cl = function (e) {
return Xt.explode(e.getParam("font_size_classes", ""))
}, ll = function (e) {
return e.getParam("images_dataimg_filter", q(!0), "function")
}, fl = function (e) {
return e.getParam("automatic_uploads", !0, "boolean")
}, dl = function (e) {
return e.getParam("images_reuse_filename", !1, "boolean")
}, ml = function (e) {
return e.getParam("images_replace_blob_uris", !0, "boolean")
}, gl = function (e) {
return e.getParam("images_upload_url", "", "string")
}, pl = function (e) {
return e.getParam("images_upload_base_path", "", "string")
}, hl = function (e) {
return e.getParam("images_upload_credentials", !1, "boolean")
}, vl = function (e) {
return e.getParam("images_upload_handler", null, "function")
}, bl = function (e) {
return e.getParam("content_css_cors", !1, "boolean")
}, yl = function (e) {
return e.getParam("language", "en", "string")
}, Cl = function (e) {
return e.getParam("language_url", "", "string")
}, xl = function (e, t, n) {
var r, o, i, a, u;
if (t.format = t.format ? t.format : "html", t.get = !0, t.getInner = !0, t.no_events || e.fire("BeforeGetContent", t), "raw" === t.format)r = Xt.trim(Kc.trimExternal(e.serializer, n.innerHTML)); else if ("text" === t.format)r = da(n.innerText || n.textContent); else {
if ("tree" === t.format)return e.serializer.serialize(n, t);
i = (o = e).serializer.serialize(n, t), a = nl(o), u = new RegExp("^(<" + a + "[^>]*>(&nbsp;|&#160;|\\s|\xa0|<br \\/>|)<\\/" + a + ">[\r\n]*|<br \\/>[\r\n]*)$"), r = i.replace(u, "")
}
return "text" === t.format || vo(nr.fromDom(n)) ? t.content = r : t.content = Xt.trim(r), t.no_events || e.fire("GetContent", t), t.content
}, wl = Xt.makeMap;
function Nl(e) {
var u, s, c, l, f, d = [];
return u = (e = e || {}).indent, s = wl(e.indent_before || ""), c = wl(e.indent_after || ""), l = Ho.getEncodeFunc(e.entity_encoding || "raw", e.entities), f = "html" === e.element_format, {
start: function (e, t, n) {
var r, o, i, a;
if (u && s[e] && 0 < d.length && 0 < (a = d[d.length - 1]).length && "\n" !== a && d.push("\n"), d.push("<", e), t)for (r = 0, o = t.length; r < o; r++)i = t[r], d.push(" ", i.name, '="', l(i.value, !0), '"');
d[d.length] = !n || f ? ">" : " />", n && u && c[e] && 0 < d.length && 0 < (a = d[d.length - 1]).length && "\n" !== a && d.push("\n")
}, end: function (e) {
var t;
d.push("</", e, ">"), u && c[e] && 0 < d.length && 0 < (t = d[d.length - 1]).length && "\n" !== t && d.push("\n")
}, text: function (e, t) {
0 < e.length && (d[d.length] = t ? e : l(e))
}, cdata: function (e) {
d.push("<![CDATA[", e, "]]>")
}, comment: function (e) {
d.push("\x3c!--", e, "--\x3e")
}, pi: function (e, t) {
t ? d.push("<?", e, " ", l(t), "?>") : d.push("<?", e, "?>"), u && d.push("\n")
}, doctype: function (e) {
d.push("<!DOCTYPE", e, ">", u ? "\n" : "")
}, reset: function () {
d.length = 0
}, getContent: function () {
return d.join("").replace(/\n$/, "")
}
}
}
function El(t, g) {
void 0 === g && (g = Zo());
var p = Nl(t);
return (t = t || {}).validate = !("validate"in t) || t.validate, {
serialize: function (e) {
var f, d;
d = t.validate, f = {
3: function (e) {
p.text(e.value, e.raw)
}, 8: function (e) {
p.comment(e.value)
}, 7: function (e) {
p.pi(e.name, e.value)
}, 10: function (e) {
p.doctype(e.value)
}, 4: function (e) {
p.cdata(e.value)
}, 11: function (e) {
if (e = e.firstChild)for (; m(e), e = e.next;);
}
}, p.reset();
var m = function (e) {
var t, n, r, o, i, a, u, s, c, l = f[e.type];
if (l)l(e); else {
if (t = e.name, n = e.shortEnded, r = e.attributes, d && r && 1 < r.length && ((a = []).map = {}, c = g.getElementRule(e.name))) {
for (u = 0, s = c.attributesOrder.length; u < s; u++)(o = c.attributesOrder[u])in r.map && (i = r.map[o], a.map[o] = i, a.push({
name: o,
value: i
}));
for (u = 0, s = r.length; u < s; u++)(o = r[u].name)in a.map || (i = r.map[o], a.map[o] = i, a.push({
name: o,
value: i
}));
r = a
}
if (p.start(e.name, r, n), !n) {
if (e = e.firstChild)for (; m(e), e = e.next;);
p.end(t)
}
}
};
return 1 !== e.type || t.inner ? f[11](e) : m(e), p.getContent()
}
}
}
var Sl = function (e, t) {
t(e), e.firstChild && Sl(e.firstChild, t), e.next && Sl(e.next, t)
}, Tl = function (e, t, n) {
var r = function (e, n, t) {
var r = {}, o = {}, i = [];
for (var a in t.firstChild && Sl(t.firstChild, function (t) {
M(e, function (e) {
e.name === t.name && (r[e.name] ? r[e.name].nodes.push(t) : r[e.name] = {filter: e, nodes: [t]})
}), M(n, function (e) {
"string" == typeof t.attr(e.name) && (o[e.name] ? o[e.name].nodes.push(t) : o[e.name] = {
filter: e,
nodes: [t]
})
})
}), r)r.hasOwnProperty(a) && i.push(r[a]);
for (var a in o)o.hasOwnProperty(a) && i.push(o[a]);
return i
}(e, t, n);
M(r, function (t) {
M(t.filter.callbacks, function (e) {
e(t.nodes, t.filter.name, {})
})
})
}, kl = function (e) {
var t = Pr(e).dom();
return e.dom() === t.activeElement
}, Al = function (t) {
return (e = Pr(t), n = e !== undefined ? e.dom() : document, A.from(n.activeElement).map(nr.fromDom)).filter(function (e) {
return t.dom().contains(e.dom())
});
var e, n
}, Rl = function (a) {
if (!D(a))throw new Error("cases must be an array");
if (0 === a.length)throw new Error("there must be at least one case");
var u = [], n = {};
return M(a, function (e, r) {
var t = lr(e);
if (1 !== t.length)throw new Error("one and only one name per case");
var o = t[0], i = e[o];
if (n[o] !== undefined)throw new Error("duplicate key detected:" + o);
if ("cata" === o)throw new Error("cannot have a case named cata (sorry)");
if (!D(i))throw new Error("case arguments must be an array");
u.push(o), n[o] = function () {
var e = arguments.length;
if (e !== i.length)throw new Error("Wrong number of arguments to case " + o + ". Expected " + i.length + " (" + i + "), got " + e);
for (var n = new Array(e), t = 0; t < n.length; t++)n[t] = arguments[t];
return {
fold: function () {
if (arguments.length !== a.length)throw new Error("Wrong number of arguments to fold. Expected " + a.length + ", got " + arguments.length);
return arguments[r].apply(null, n)
}, match: function (e) {
var t = lr(e);
if (u.length !== t.length)throw new Error("Wrong number of arguments to match. Expected: " + u.join(",") + "\nActual: " + t.join(","));
if (!G(u, function (e) {
return I(t, e)
}))throw new Error("Not all branches were specified when using match. Specified: " + t.join(", ") + "\nRequired: " + u.join(", "));
return e[o].apply(null, n)
}, log: function (e) {
console.log(e, {constructors: u, constructor: o, params: n})
}
}
}
}), n
}, Dl = (Rl([{before: ["element"]}, {on: ["element", "offset"]}, {after: ["element"]}]), Rl([{domRange: ["rng"]}, {relative: ["startSitu", "finishSitu"]}, {exact: ["start", "soffset", "finish", "foffset"]}]), Nr("start", "soffset", "finish", "foffset")), Bl = er.detect().browser, _l = function (e, t) {
var n = cr(t) ? Dc(t).length : Ur(t).length + 1;
return n < e ? n : e < 0 ? 0 : e
}, Ol = function (e) {
return Dl(e.start(), _l(e.soffset(), e.start()), e.finish(), _l(e.foffset(), e.finish()))
}, Pl = function (e, t) {
return Or(e, t) || _r(e, t)
}, Ll = function (t) {
return function (e) {
return Pl(t, e.start()) && Pl(t, e.finish())
}
}, Il = function (e) {
return !0 === e.inline || Bl.isIE()
}, Ml = function (e) {
return Dl(nr.fromDom(e.startContainer), e.startOffset, nr.fromDom(e.endContainer), e.endOffset)
}, Fl = function (e) {
var t = e.getSelection();
return (t && 0 !== t.rangeCount ? A.from(t.getRangeAt(0)) : A.none()).map(Ml)
}, Ul = function (e) {
var t, n = (t = e.dom().ownerDocument.defaultView, nr.fromDom(t));
return Fl(n.dom()).filter(Ll(e))
}, zl = function (e, t) {
return A.from(t).filter(Ll(e)).map(Ol)
}, Vl = function (e) {
var t = document.createRange();
try {
return t.setStart(e.start().dom(), e.soffset()), t.setEnd(e.finish().dom(), e.foffset()), A.some(t)
} catch (n) {
return A.none()
}
}, Hl = function (e) {
return (e.bookmark ? e.bookmark : A.none()).bind(m(zl, nr.fromDom(e.getBody()))).bind(Vl)
}, jl = function (e) {
var t = Il(e) ? Ul(nr.fromDom(e.getBody())) : A.none();
e.bookmark = t.isSome() ? t : e.bookmark
}, ql = function (t) {
Hl(t).each(function (e) {
t.selection.setRng(e)
})
}, $l = Hl, Wl = function (t, e) {
return (n = e, n.collapsed ? A.from(qa(n.startContainer, n.startOffset)).map(nr.fromDom) : A.none()).bind(function (e) {
return po(e) ? A.some(e) : !1 === Or(t, e) ? A.some(t) : A.none()
});
var n
}, Kl = function (t, e) {
Wl(nr.fromDom(t.getBody()), e).bind(function (e) {
return ec.firstPositionIn(e.dom())
}).fold(function () {
t.selection.normalize()
}, function (e) {
return t.selection.setRng(e.toRange())
})
}, Xl = function (e) {
if (e.setActive)try {
e.setActive()
} catch (t) {
e.focus()
} else e.focus()
}, Yl = function (e) {
var t, n = e.getBody();
return n && (t = nr.fromDom(n), kl(t) || Al(t).isSome())
}, Gl = function (e) {
return e.inline ? Yl(e) : (t = e).iframeElement && kl(nr.fromDom(t.iframeElement));
var t
}, Jl = function (e) {
return e.editorManager.setActive(e)
}, Ql = function (e, t) {
e.removed || (t ? Jl(e) : function (t) {
var e = t.selection, n = t.getBody(), r = e.getRng();
t.quirks.refreshContentEditable();
var o, i, a = (o = t, i = e.getNode(), o.dom.getParent(i, function (e) {
return "true" === o.dom.getContentEditable(e)
}));
if (t.$.contains(n, a))return Xl(a), Kl(t, r), Jl(t);
t.bookmark !== undefined && !1 === Gl(t) && $l(t).each(function (e) {
t.selection.setRng(e), r = e
}), t.inline || (fe.opera || Xl(n), t.getWin().focus()), (fe.gecko || t.inline) && (Xl(n), Kl(t, r)), Jl(t)
}(e))
}, Zl = Gl, ef = function (e) {
return e instanceof Hc
}, tf = function (e, t) {
var r;
e.dom.setHTML(e.getBody(), t), Zl(r = e) && ec.firstPositionIn(r.getBody()).each(function (e) {
var t = e.getNode(), n = Ao.isTable(t) ? ec.firstPositionIn(t).getOr(e) : e;
r.selection.setRng(n.toRange())
})
}, nf = function (u, s, c) {
return void 0 === c && (c = {}), c.format = c.format ? c.format : "html", c.set = !0, c.content = ef(s) ? "" : s, ef(s) || c.no_events || (u.fire("BeforeSetContent", c), s = c.content), A.from(u.getBody()).fold(q(s), function (e) {
return ef(s) ? function (e, t, n, r) {
Tl(e.parser.getNodeFilters(), e.parser.getAttributeFilters(), n);
var o = El({validate: e.validate}, e.schema).serialize(n);
return r.content = vo(nr.fromDom(t)) ? o : Xt.trim(o), tf(e, r.content), r.no_events || e.fire("SetContent", r), n
}(u, e, s, c) : (t = u, n = e, o = c, 0 === (r = s).length || /^\s+$/.test(r) ? (a = '<br data-mce-bogus="1">', "TABLE" === n.nodeName ? r = "<tr><td>" + a + "</td></tr>" : /^(UL|OL)$/.test(n.nodeName) && (r = "<li>" + a + "</li>"), (i = nl(t)) && t.schema.isValidChild(n.nodeName.toLowerCase(), i.toLowerCase()) ? (r = a, r = t.dom.createHTML(i, t.settings.forced_root_block_attrs, r)) : r || (r = '<br data-mce-bogus="1">'), tf(t, r), t.fire("SetContent", o)) : ("raw" !== o.format && (r = El({validate: t.validate}, t.schema).serialize(t.parser.parse(r, {
isRootContent: !0,
insert: !0
}))), o.content = vo(nr.fromDom(n)) ? r : Xt.trim(r), tf(t, o.content), o.no_events || t.fire("SetContent", o)), o.content);
var t, n, r, o, i, a
})
}, rf = function (e, t) {
return e.fire("PreProcess", t)
}, of = function (e, t) {
return e.fire("PostProcess", t)
}, af = function (e) {
return e.fire("remove")
}, uf = function (e, t) {
return e.fire("SwitchMode", {mode: t})
}, sf = function (e, t, n, r) {
e.fire("ObjectResizeStart", {target: t, width: n, height: r})
}, cf = function (e, t, n, r) {
e.fire("ObjectResized", {target: t, width: n, height: r})
}, lf = di.DOM, ff = function (e) {
return A.from(e).each(function (e) {
return e.destroy()
})
}, df = function (e) {
if (!e.removed) {
var t = e._selectionOverrides, n = e.editorUpload, r = e.getBody(), o = e.getElement();
r && e.save({is_removing: !0}), e.removed = !0, e.unbindAllNativeEvents(), e.hasHiddenInput && o && lf.remove(o.nextSibling), !e.inline && r && (i = e, lf.setStyle(i.id, "display", i.orgDisplay)), af(e), e.editorManager.remove(e), lf.remove(e.getContainer()), ff(t), ff(n), e.destroy()
}
var i
}, mf = function (e, t) {
var n, r, o, i = e.selection, a = e.dom;
e.destroyed || (t || e.removed ? (t || (e.editorManager.off("beforeunload", e._beforeUnload), e.theme && e.theme.destroy && e.theme.destroy(), ff(i), ff(a)), (r = (n = e).formElement) && (r._mceOldSubmit && (r.submit = r._mceOldSubmit, r._mceOldSubmit = null), lf.unbind(r, "submit reset", n.formEventDelegate)), (o = e).contentAreaContainer = o.formElement = o.container = o.editorContainer = null, o.bodyElement = o.contentDocument = o.contentWindow = null, o.iframeElement = o.targetElm = null, o.selection && (o.selection = o.selection.win = o.selection.dom = o.selection.dom.doc = null), e.destroyed = !0) : e.remove())
}, gf = Nr("sections", "settings"), pf = er.detect(), hf = pf.deviceType.isTouch(), vf = pf.deviceType.isPhone(), bf = ["lists", "autolink", "autosave"], yf = vf ? {theme: "mobile"} : {}, Cf = function (e) {
var t = D(e) ? e.join(" ") : e, n = W(k(t) ? t.split(" ") : [], Wn);
return F(n, function (e) {
return 0 < e.length
})
}, xf = function (n, e) {
var r, o, i, t = (r = function (e, t) {
return I(n, t)
}, o = {}, i = {}, dr(e, function (e, t) {
(r(e, t) ? o : i)[t] = e
}), {t: o, f: i});
return gf(t.t, t.f)
}, wf = function (e, t) {
return e.sections().hasOwnProperty(t)
}, Nf = function (e, t, n, r) {
var o, i = Cf(n.forced_plugins), a = Cf(r.plugins), u = e && wf(t, "mobile") ? F(a, m(I, bf)) : a, s = (o = u, [].concat(Cf(i)).concat(Cf(o)));
return Xt.extend(r, {plugins: s.join(" ")})
}, Ef = function (e, t, n, r) {
var o, i, a, u, s, c, l, f, d, m, g = xf(["mobile"], r), p = Xt.extend(t, n, g.settings(), (f = e, m = (d = g).settings().inline, f && wf(d, "mobile") && !m ? (u = "mobile", s = yf, c = g.sections(), l = c.hasOwnProperty(u) ? c[u] : {}, Xt.extend({}, s, l)) : {}), {
validate: !0,
external_plugins: (o = n, i = g.settings(), a = i.external_plugins ? i.external_plugins : {}, o && o.external_plugins ? Xt.extend({}, o.external_plugins, a) : a)
});
return Nf(e, g, n, p)
}, Sf = function (e, t, n) {
return A.from(t.settings[n]).filter(e)
}, Tf = m(Sf, k), kf = function (e, t, n, r) {
var o, i, a, u = t in e.settings ? e.settings[t] : n;
return "hash" === r ? (a = {}, "string" == typeof(i = u) ? M(0 < i.indexOf("=") ? i.split(/[;,](?![^=;,]*(?:[;,]|$))/) : i.split(","), function (e) {
var t = e.split("=");
1 < t.length ? a[Xt.trim(t[0])] = Xt.trim(t[1]) : a[Xt.trim(t[0])] = Xt.trim(t)
}) : a = i, a) : "string" === r ? Sf(k, e, t).getOr(n) : "number" === r ? Sf(P, e, t).getOr(n) : "boolean" === r ? Sf(_, e, t).getOr(n) : "object" === r ? Sf(R, e, t).getOr(n) : "array" === r ? Sf(D, e, t).getOr(n) : "string[]" === r ? Sf((o = k, function (e) {
return D(e) && G(e, o)
}), e, t).getOr(n) : "function" === r ? Sf(O, e, t).getOr(n) : u
}, Af = function (e, t) {
return t.dom()[e]
}, Rf = function (e, t) {
return parseInt(xr(t, e), 10)
}, Df = m(Af, "clientWidth"), Bf = m(Af, "clientHeight"), _f = m(Rf, "margin-top"), Of = m(Rf, "margin-left"), Pf = function (e, t, n) {
var r, o, i, a, u, s, c, l, f, d, m, g = nr.fromDom(e.getBody()), p = e.inline ? g : (r = g, nr.fromDom(r.dom().ownerDocument.documentElement)), h = (o = e.inline, a = t, u = n, s = (i = p).dom().getBoundingClientRect(), {
x: a - (o ? s.left + i.dom().clientLeft + Of(i) : 0),
y: u - (o ? s.top + i.dom().clientTop + _f(i) : 0)
});
return l = h.x, f = h.y, d = Df(c = p), m = Bf(c), 0 <= l && 0 <= f && l <= d && f <= m
}, Lf = function (e) {
var t, n = e.inline ? e.getBody() : e.getContentAreaContainer();
return (t = n, A.from(t).map(nr.fromDom)).map(function (e) {
return Or(Pr(e), e)
}).getOr(!1)
};
function If(n) {
var t, o = [], i = function () {
var e = n.theme;
return e && e.getNotificationManagerImpl ? e.getNotificationManagerImpl() : function t() {
var e = function () {
throw new Error("Theme did not provide a NotificationManager implementation.")
};
return {open: e, close: e, reposition: e, getArgs: e}
}()
}, a = function () {
0 < o.length && i().reposition(o)
}, u = function (t) {
V(o, function (e) {
return e === t
}).each(function (e) {
o.splice(e, 1)
})
}, r = function (r) {
if (!n.removed && Lf(n))return z(o, function (e) {
return t = i().getArgs(e), n = r, !(t.type !== n.type || t.text !== n.text || t.progressBar || t.timeout || n.progressBar || n.timeout);
var t, n
}).getOrThunk(function () {
n.editorManager.setActive(n);
var e, t = i().open(r, function () {
u(t), a()
});
return e = t, o.push(e), a(), t
})
};
return (t = n).on("SkinLoaded", function () {
var e = t.settings.service_message;
e && r({text: e, type: "warning", timeout: 0})
}), t.on("ResizeEditor ResizeWindow", function () {
he.requestAnimationFrame(a)
}), t.on("remove", function () {
M(o.slice(), function (e) {
i().close(e)
})
}), {
open: r, close: function () {
A.from(o[0]).each(function (e) {
i().close(e), u(e), a()
})
}, getNotifications: function () {
return o
}
}
}
function Mf(r) {
var o = [], i = function () {
var e = r.theme;
return e && e.getWindowManagerImpl ? e.getWindowManagerImpl() : function t() {
var e = function () {
throw new Error("Theme did not provide a WindowManager implementation.")
};
return {open: e, alert: e, confirm: e, close: e, getParams: e, setParams: e}
}()
}, a = function (e, t) {
return function () {
return t ? t.apply(e, arguments) : undefined
}
}, u = function (e) {
var t;
o.push(e), t = e, r.fire("OpenWindow", {win: t})
}, s = function (n) {
V(o, function (e) {
return e === n
}).each(function (e) {
var t;
o.splice(e, 1), t = n, r.fire("CloseWindow", {win: t}), 0 === o.length && r.focus()
})
}, e = function () {
return A.from(o[o.length - 1])
};
return r.on("remove", function () {
M(o.slice(0), function (e) {
i().close(e)
})
}), {
windows: o, open: function (e, t) {
r.editorManager.setActive(r), jl(r);
var n = i().open(e, t, s);
return u(n), n
}, alert: function (e, t, n) {
var r = i().alert(e, a(n || this, t), s);
u(r)
}, confirm: function (e, t, n) {
var r = i().confirm(e, a(n || this, t), s);
u(r)
}, close: function () {
e().each(function (e) {
i().close(e), s(e)
})
}, getParams: function () {
return e().map(i().getParams).getOr(null)
}, setParams: function (t) {
e().each(function (e) {
i().setParams(e, t)
})
}, getWindows: function () {
return o
}
}
}
var Ff, Uf = Ei.PluginManager, zf = function (e, t) {
var n = function (e, t) {
for (var n in Uf.urls)if (Uf.urls[n] + "/plugin" + t + ".js" === e)return n;
return null
}(t, e.suffix);
return n ? "Failed to load plugin: " + n + " from url " + t : "Failed to load plugin url: " + t
}, Vf = function (e, t) {
e.notificationManager.open({type: "error", text: t})
}, Hf = function (e, t) {
e._skinLoaded ? Vf(e, t) : e.on("SkinLoaded", function () {
Vf(e, t)
})
}, jf = function (e, t) {
Hf(e, zf(e, t))
}, qf = function (e, t) {
Hf(e, "Failed to upload image: " + t)
}, $f = Hf, Wf = function (e) {
for (var t = [], n = 1; n < arguments.length; n++)t[n - 1] = arguments[n];
var r = window.console;
r && (r.error ? r.error.apply(r, arguments) : r.log.apply(r, arguments))
}, Kf = (Ff = {}, {
add: function (e, t) {
Ff[e] = t
}, get: function (e) {
return Ff[e] ? Ff[e] : {icons: {}}
}
}), Xf = Ei.PluginManager, Yf = Ei.ThemeManager;
function Gf() {
return new (oe.getOrDie("XMLHttpRequest"))
}
function Jf(u, s) {
var r = {}, n = function (e, r, o, t) {
var i, n;
(i = Gf()).open("POST", s.url), i.withCredentials = s.credentials, i.upload.onprogress = function (e) {
t(e.loaded / e.total * 100)
}, i.onerror = function () {
o("Image upload failed due to a XHR Transport error. Code: " + i.status)
}, i.onload = function () {
var e, t, n;
i.status < 200 || 300 <= i.status ? o("HTTP Error: " + i.status) : (e = JSON.parse(i.responseText)) && "string" == typeof e.location ? r((t = s.basePath, n = e.location, t ? t.replace(/\/$/, "") + "/" + n.replace(/^\//, "") : n)) : o("Invalid JSON: " + i.responseText)
}, (n = new FormData).append("file", e.blob(), e.filename()), i.send(n)
}, c = function (e, t) {
return {url: t, blobInfo: e, status: !0}
}, l = function (e, t) {
return {url: "", blobInfo: e, status: !1, error: t}
}, f = function (e, t) {
Xt.each(r[e], function (e) {
e(t)
}), delete r[e]
}, o = function (e, n) {
return e = Xt.grep(e, function (e) {
return !u.isUploaded(e.blobUri())
}), de.all(Xt.map(e, function (e) {
return u.isPending(e.blobUri()) ? (t = e.blobUri(), new de(function (e) {
r[t] = r[t] || [], r[t].push(e)
})) : (o = e, i = s.handler, a = n, u.markPending(o.blobUri()), new de(function (t) {
var n;
try {
var r = function () {
n && n.close()
};
i(o, function (e) {
r(), u.markUploaded(o.blobUri(), e), f(o.blobUri(), c(o, e)), t(c(o, e))
}, function (e) {
r(), u.removeFailed(o.blobUri()), f(o.blobUri(), l(o, e)), t(l(o, e))
}, function (e) {
e < 0 || 100 < e || (n || (n = a()), n.progressBar.value(e))
})
} catch (e) {
t(l(o, e.message))
}
}));
var o, i, a, t
}))
};
return !1 === O(s.handler) && (s.handler = n), {
upload: function (e, t) {
return s.url || s.handler !== n ? o(e, t) : new de(function (e) {
e([])
})
}
}
}
var Qf = function (e) {
return oe.getOrDie("atob")(e)
}, Zf = function (e) {
var t, n, r = decodeURIComponent(e).split(",");
return (n = /data:([^;]+)/.exec(r[0])) && (t = n[1]), {type: t, data: r[1]}
}, ed = function (a) {
return new de(function (e) {
var t, n, r, o = Zf(a);
try {
t = Qf(o.data)
} catch (CN) {
return void e(new Blob([]))
}
for (n = function i(e) {
return new (oe.getOrDie("Uint8Array"))(e)
}(t.length), r = 0; r < n.length; r++)n[r] = t.charCodeAt(r);
e(new Blob([n], {type: o.type}))
})
}, td = function (e) {
return 0 === e.indexOf("blob:") ? (i = e, new de(function (e, t) {
var n = function () {
t("Cannot convert " + i + " to Blob. Resource might not exist or is inaccessible.")
};
try {
var r = Gf();
r.open("GET", i, !0), r.responseType = "blob", r.onload = function () {
200 === this.status ? e(this.response) : n()
}, r.onerror = n, r.send()
} catch (o) {
n()
}
})) : 0 === e.indexOf("data:") ? ed(e) : null;
var i
}, nd = function (r) {
return new de(function (e) {
var t = function n() {
return new (oe.getOrDie("FileReader"))
}();
t.onloadend = function () {
e(t.result)
}, t.readAsDataURL(r)
})
}, rd = Zf, od = 0, id = function (e) {
return (e || "blobid") + od++
}, ad = function (n, r, o, t) {
var i, a;
0 !== r.src.indexOf("blob:") ? (i = rd(r.src).data, (a = n.findFirst(function (e) {
return e.base64() === i
})) ? o({image: r, blobInfo: a}) : td(r.src).then(function (e) {
a = n.create(id(), e, i), n.add(a), o({image: r, blobInfo: a})
}, function (e) {
t(e)
})) : (a = n.getByUri(r.src)) ? o({image: r, blobInfo: a}) : td(r.src).then(function (t) {
nd(t).then(function (e) {
i = rd(e).data, a = n.create(id(), t, i), n.add(a), o({image: r, blobInfo: a})
})
}, function (e) {
t(e)
})
}, ud = function (e) {
return e ? e.getElementsByTagName("img") : []
}, sd = 0, cd = {
uuid: function (e) {
return e + sd++ + (t = function () {
return Math.round(4294967295 * Math.random()).toString(36)
}, "s" + (new Date).getTime().toString(36) + t() + t() + t());
var t
}
};
function ld(o) {
var t, n, i = function v() {
var n = [], o = sa.constant, i = function (e) {
var t, n, r;
if (!e.blob || !e.base64)throw new Error("blob and base64 representations of the image are required for BlobInfo to be created");
return t = e.id || cd.uuid("blobid"), n = e.name || t, {
id: o(t),
name: o(n),
filename: o(n + "." + (r = e.blob.type, {
"image/jpeg": "jpg",
"image/jpg": "jpg",
"image/gif": "gif",
"image/png": "png"
}[r.toLowerCase()] || "dat")),
blob: o(e.blob),
base64: o(e.base64),
blobUri: o(e.blobUri || ae.createObjectURL(e.blob)),
uri: o(e.uri)
}
}, t = function (t) {
return e(function (e) {
return e.id() === t
})
}, e = function (e) {
return jt.filter(n, e)[0]
};
return {
create: function (e, t, n, r) {
if (k(e))return i({id: e, name: r, blob: t, base64: n});
if (R(e))return i(e);
throw new Error("Unknown input type")
}, add: function (e) {
t(e.id()) || n.push(e)
}, get: t, getByUri: function (t) {
return e(function (e) {
return e.blobUri() === t
})
}, findFirst: e, removeByUri: function (t) {
n = jt.filter(n, function (e) {
return e.blobUri() !== t || (ae.revokeObjectURL(e.blobUri()), !1)
})
}, destroy: function () {
jt.each(n, function (e) {
ae.revokeObjectURL(e.blobUri())
}), n = []
}
}
}(), a = function b() {
var n = {}, r = function (e, t) {
return {status: e, resultUri: t}
}, t = function (e) {
return e in n
};
return {
hasBlobUri: t, getResultUri: function (e) {
var t = n[e];
return t ? t.resultUri : null
}, isPending: function (e) {
return !!t(e) && 1 === n[e].status
}, isUploaded: function (e) {
return !!t(e) && 2 === n[e].status
}, markPending: function (e) {
n[e] = r(1, null)
}, markUploaded: function (e, t) {
n[e] = r(2, t)
}, removeFailed: function (e) {
delete n[e]
}, destroy: function () {
n = {}
}
}
}(), r = [], u = function (t) {
return function (e) {
return o.selection ? t(e) : []
}
}, s = function (e, t, n) {
for (var r = 0; -1 !== (r = e.indexOf(t, r)) && (e = e.substring(0, r) + n + e.substr(r + t.length), r += n.length - t.length + 1), -1 !== r;);
return e
}, c = function (e, t, n) {
return e = s(e, 'src="' + t + '"', 'src="' + n + '"'), e = s(e, 'data-mce-src="' + t + '"', 'data-mce-src="' + n + '"')
}, l = function (t, n) {
M(o.undoManager.data, function (e) {
"fragmented" === e.type ? e.fragments = W(e.fragments, function (e) {
return c(e, t, n)
}) : e.content = c(e.content, t, n)
})
}, f = function () {
return o.notificationManager.open({
text: o.translate("Image uploading..."),
type: "info",
timeout: -1,
progressBar: !0
})
}, d = function (e, t) {
i.removeByUri(e.src), l(e.src, t), o.$(e).attr({
src: dl(o) ? t + "?" + (new Date).getTime() : t,
"data-mce-src": o.convertURL(t, "src")
})
}, m = function (n) {
return t || (t = Jf(a, {
url: gl(o),
basePath: pl(o),
credentials: hl(o),
handler: vl(o)
})), p().then(u(function (r) {
var e;
return e = W(r, function (e) {
return e.blobInfo
}), t.upload(e, f).then(u(function (e) {
var t = W(e, function (e, t) {
var n = r[t].image;
return e.status && ml(o) ? d(n, e.url) : e.error && qf(o, e.error), {
element: n,
status: e.status
}
});
return n && n(t), t
}))
}))
}, e = function (e) {
if (fl(o))return m(e)
}, g = function (t) {
return !1 !== G(r, function (e) {
return e(t)
}) && (0 !== t.getAttribute("src").indexOf("data:") || ll(o)(t))
}, p = function () {
return n || (n = function e(o, i) {
var a = {};
return {
findAll: function (e, n) {
var t;
n || (n = sa.constant(!0)), t = jt.filter(ud(e), function (e) {
var t = e.src;
return !!fe.fileApi && !e.hasAttribute("data-mce-bogus") && !e.hasAttribute("data-mce-placeholder") && !(!t || t === fe.transparentSrc) && (0 === t.indexOf("blob:") ? !o.isUploaded(t) && n(e) : 0 === t.indexOf("data:") && n(e))
});
var r = jt.map(t, function (n) {
if (a[n.src])return new de(function (t) {
a[n.src].then(function (e) {
if ("string" == typeof e)return e;
t({image: n, blobInfo: e.blobInfo})
})
});
var e = new de(function (e, t) {
ad(i, n, e, t)
}).then(function (e) {
return delete a[e.image.src], e
})["catch"](function (e) {
return delete a[n.src], e
});
return a[n.src] = e
});
return de.all(r)
}
}
}(a, i)), n.findAll(o.getBody(), g).then(u(function (e) {
return e = F(e, function (e) {
return "string" != typeof e || ($f(o, e), !1)
}), M(e, function (e) {
l(e.image.src, e.blobInfo.blobUri()), e.image.src = e.blobInfo.blobUri(), e.image.removeAttribute("data-mce-src")
}), e
}))
}, h = function (e) {
return e.replace(/src="(blob:[^"]+)"/g, function (e, n) {
var t = a.getResultUri(n);
if (t)return 'src="' + t + '"';
var r = i.getByUri(n);
return r || (r = U(o.editorManager.get(), function (e, t) {
return e || t.editorUpload && t.editorUpload.blobCache.getByUri(n)
}, null)), r ? 'src="data:' + r.blob().type + ";base64," + r.base64() + '"' : e
})
};
return o.on("setContent", function () {
fl(o) ? e() : p()
}), o.on("RawSaveContent", function (e) {
e.content = h(e.content)
}), o.on("getContent", function (e) {
e.source_view || "raw" === e.format || (e.content = h(e.content))
}), o.on("PostRender", function () {
o.parser.addNodeFilter("img", function (e) {
M(e, function (e) {
var t = e.attr("src");
if (!i.getByUri(t)) {
var n = a.getResultUri(t);
n && e.attr("src", n)
}
})
})
}), {
blobCache: i, addFilter: function (e) {
r.push(e)
}, uploadImages: m, uploadImagesAuto: e, scanForImages: p, destroy: function () {
i.destroy(), a.destroy(), n = t = null
}
}
}
var fd = function (e, t, n) {
return Or(t, e) ? function (e, t) {
for (var n = O(t) ? t : q(!1), r = e.dom(), o = []; null !== r.parentNode && r.parentNode !== undefined;) {
var i = r.parentNode, a = nr.fromDom(i);
if (o.push(a), !0 === n(a))break;
r = i
}
return o
}(e, function (e) {
return n(e) || _r(e, t)
}).slice(0, -1) : []
}, dd = function (e, t) {
return fd(e, t, q(!1))
}, md = dd, gd = function (e, t) {
return [e].concat(dd(e, t))
}, pd = function (e, t) {
return e.hasOwnProperty(t.nodeName)
}, hd = function (t, e, n) {
return r = md(nr.fromDom(n), nr.fromDom(e)), V(r, function (e) {
return pd(t, e.dom())
}).isSome();
var r
}, vd = function (e, t) {
if (Ao.isText(t)) {
if (0 === t.nodeValue.length)return !0;
if (/^\s+$/.test(t.nodeValue) && (!t.nextSibling || pd(e, t.nextSibling)))return !0
}
return !1
}, bd = function (e) {
var t, n, r, o, i, a, u, s, c, l, f = e.dom, d = e.selection, m = e.schema, g = m.getBlockElements(), p = d.getStart(), h = e.getBody(), v = nl(e);
if (p && Ao.isElement(p) && v && (l = h.nodeName.toLowerCase(), m.isValidChild(l, v.toLowerCase()) && !hd(g, h, p))) {
for (n = (t = d.getRng()).startContainer, r = t.startOffset, o = t.endContainer, i = t.endOffset, c = Zl(e), p = h.firstChild; p;)if (b = g, y = p, Ao.isText(y) || Ao.isElement(y) && !pd(b, y) && !lc(y)) {
if (vd(g, p)) {
p = (u = p).nextSibling, f.remove(u);
continue
}
a || (a = f.create(v, e.settings.forced_root_block_attrs), p.parentNode.insertBefore(a, p), s = !0), p = (u = p).nextSibling, a.appendChild(u)
} else a = null, p = p.nextSibling;
var b, y;
s && c && (t.setStart(n, r), t.setEnd(o, i), d.setRng(t), e.nodeChanged())
}
}, yd = function (e) {
nl(e) && e.on("NodeChange", m(bd, e))
}, Cd = function (e, t) {
return e && t && e.startContainer === t.startContainer && e.startOffset === t.startOffset && e.endContainer === t.endContainer && e.endOffset === t.endOffset
}, xd = function (t) {
return (e = t, zr(e, 0)).fold(q([t]), function (e) {
return [t].concat(xd(e))
});
var e
}, wd = function (t) {
return Vr(t).fold(q([t]), function (e) {
return "br" === ar(e) ? Ir(e).map(function (e) {
return [t].concat(wd(e))
}).getOr([]) : [t].concat(wd(e))
})
}, Nd = function (o, e) {
return Ka([(i = e, a = i.startContainer, u = i.startOffset, Ao.isText(a) ? 0 === u ? A.some(nr.fromDom(a)) : A.none() : A.from(a.childNodes[u]).map(nr.fromDom)), (t = e, n = t.endContainer, r = t.endOffset, Ao.isText(n) ? r === n.data.length ? A.some(nr.fromDom(n)) : A.none() : A.from(n.childNodes[r - 1]).map(nr.fromDom))], function (e, t) {
var n = z(xd(o), m(_r, e)), r = z(wd(o), m(_r, t));
return n.isSome() && r.isSome()
}).getOr(!1);
var t, n, r, i, a, u
}, Ed = function (e, t, n, r) {
var o = n, i = new to(n, o), a = e.schema.getNonEmptyElements();
do {
if (3 === n.nodeType && 0 !== Xt.trim(n.nodeValue).length)return void(r ? t.setStart(n, 0) : t.setEnd(n, n.nodeValue.length));
if (a[n.nodeName] && !/^(TD|TH)$/.test(n.nodeName))return void(r ? t.setStartBefore(n) : "BR" === n.nodeName ? t.setEndBefore(n) : t.setEndAfter(n));
if (fe.ie && fe.ie < 11 && e.isBlock(n) && e.isEmpty(n))return void(r ? t.setStart(n, 0) : t.setEnd(n, 0))
} while (n = r ? i.next() : i.prev());
"BODY" === o.nodeName && (r ? t.setStart(o, 0) : t.setEnd(o, o.childNodes.length))
}, Sd = function (e) {
var t = e.selection.getSel();
return t && 0 < t.rangeCount
};
function Td(i) {
var r, o = [];
"onselectionchange"in i.getDoc() || i.on("NodeChange Click MouseUp KeyUp Focus", function (e) {
var t, n;
n = {
startContainer: (t = i.selection.getRng()).startContainer,
startOffset: t.startOffset,
endContainer: t.endContainer,
endOffset: t.endOffset
}, "nodechange" !== e.type && Cd(n, r) || i.fire("SelectionChange"), r = n
}), i.on("contextmenu", function () {
i.fire("SelectionChange")
}), i.on("SelectionChange", function () {
var e = i.selection.getStart(!0);
!e || !fe.range && i.selection.isCollapsed() || Sd(i) && !function (e) {
var t, n;
if ((n = i.$(e).parentsUntil(i.getBody()).add(e)).length === o.length) {
for (t = n.length; 0 <= t && n[t] === o[t]; t--);
if (-1 === t)return o = n, !0
}
return o = n, !1
}(e) && i.dom.isChildOf(e, i.getBody()) && i.nodeChanged({selectionChange: !0})
}), i.on("MouseUp", function (e) {
!e.isDefaultPrevented() && Sd(i) && ("IMG" === i.selection.getNode().nodeName ? he.setEditorTimeout(i, function () {
i.nodeChanged()
}) : i.nodeChanged())
}), this.nodeChanged = function (e) {
var t, n, r, o = i.selection;
i.initialized && o && !i.settings.disable_nodechange && !i.readonly && (r = i.getBody(), (t = o.getStart(!0) || r).ownerDocument === i.getDoc() && i.dom.isChildOf(t, r) || (t = r), n = [], i.dom.getParent(t, function (e) {
if (e === r)return !0;
n.push(e)
}), (e = e || {}).element = t, e.parents = n, i.fire("NodeChange", e))
}
}
var kd, Ad, Rd = function (e) {
var t, n, r, o;
return o = e.getBoundingClientRect(), n = (t = e.ownerDocument).documentElement, r = t.defaultView, {
top: o.top + r.pageYOffset - n.clientTop,
left: o.left + r.pageXOffset - n.clientLeft
}
}, Dd = function (e, t) {
return n = (u = e).inline ? Rd(u.getBody()) : {
left: 0,
top: 0
}, a = (i = e).getBody(), r = i.inline ? {left: a.scrollLeft, top: a.scrollTop} : {
left: 0,
top: 0
}, {
pageX: (o = function (e, t) {
if (t.target.ownerDocument === e.getDoc())return {left: t.pageX, top: t.pageY};
var n, r, o, i, a, u = Rd(e.getContentAreaContainer()), s = (r = (n = e).getBody(), o = n.getDoc().documentElement, i = {
left: r.scrollLeft,
top: r.scrollTop
}, a = {left: r.scrollLeft || o.scrollLeft, top: r.scrollTop || o.scrollTop}, n.inline ? i : a);
return {left: t.pageX - u.left + s.left, top: t.pageY - u.top + s.top}
}(e, t)).left - n.left + r.left, pageY: o.top - n.top + r.top
};
var n, r, o, i, a, u
}, Bd = Ao.isContentEditableFalse, _d = Ao.isContentEditableTrue, Od = function (e) {
e && e.parentNode && e.parentNode.removeChild(e)
}, Pd = function (u, s) {
return function (e) {
if (0 === e.button) {
var t = jt.find(s.dom.getParents(e.target), sa.or(Bd, _d));
if (i = s.getBody(), Bd(a = t) && a !== i) {
var n = s.dom.getPos(t), r = s.getBody(), o = s.getDoc().documentElement;
u.element = t, u.screenX = e.screenX, u.screenY = e.screenY, u.maxX = (s.inline ? r.scrollWidth : o.offsetWidth) - 2, u.maxY = (s.inline ? r.scrollHeight : o.offsetHeight) - 2, u.relX = e.pageX - n.x, u.relY = e.pageY - n.y, u.width = t.offsetWidth, u.height = t.offsetHeight, u.ghost = function (e, t, n, r) {
var o = t.cloneNode(!0);
e.dom.setStyles(o, {width: n, height: r}), e.dom.setAttrib(o, "data-mce-selected", null);
var i = e.dom.create("div", {
"class": "mce-drag-container",
"data-mce-bogus": "all",
unselectable: "on",
contenteditable: "false"
});
return e.dom.setStyles(i, {
position: "absolute",
opacity: .5,
overflow: "hidden",
border: 0,
padding: 0,
margin: 0,
width: n,
height: r
}), e.dom.setStyles(o, {margin: 0, boxSizing: "border-box"}), i.appendChild(o), i
}(s, t, u.width, u.height)
}
}
var i, a
}
}, Ld = function (l, f) {
return function (e) {
if (l.dragging && (s = (i = f).selection, c = s.getSel().getRangeAt(0).startContainer, a = 3 === c.nodeType ? c.parentNode : c, u = l.element, a !== u && !i.dom.isChildOf(a, u) && !Bd(a))) {
var t = (r = l.element, (o = r.cloneNode(!0)).removeAttribute("data-mce-selected"), o), n = f.fire("drop", {
targetClone: t,
clientX: e.clientX,
clientY: e.clientY
});
n.isDefaultPrevented() || (t = n.targetClone, f.undoManager.transact(function () {
Od(l.element), f.insertContent(f.dom.getOuterHTML(t)), f._selectionOverrides.hideFakeCaret()
}))
}
var r, o, i, a, u, s, c;
Id(l)
}
}, Id = function (e) {
e.dragging = !1, e.element = null, Od(e.ghost)
}, Md = function (e) {
var t, n, r, o, i, a, p, h, v, u, s, c = {};
t = di.DOM, a = document, n = Pd(c, e), p = c, h = e, v = he.throttle(function (e, t) {
h._selectionOverrides.hideFakeCaret(), h.selection.placeCaretAt(e, t)
}, 0), r = function (e) {
var t, n, r, o, i, a, u, s, c, l, f, d, m = Math.max(Math.abs(e.screenX - p.screenX), Math.abs(e.screenY - p.screenY));
if (p.element && !p.dragging && 10 < m) {
if (h.fire("dragstart", {target: p.element}).isDefaultPrevented())return;
p.dragging = !0, h.focus()
}
if (p.dragging) {
var g = (f = p, {pageX: (d = Dd(h, e)).pageX - f.relX, pageY: d.pageY + 5});
c = p.ghost, l = h.getBody(), c.parentNode !== l && l.appendChild(c), t = p.ghost, n = g, r = p.width, o = p.height, i = p.maxX, a = p.maxY, s = u = 0, t.style.left = n.pageX + "px", t.style.top = n.pageY + "px", n.pageX + r > i && (u = n.pageX + r - i), n.pageY + o > a && (s = n.pageY + o - a), t.style.width = r - u + "px", t.style.height = o - s + "px", v(e.clientX, e.clientY)
}
}, o = Ld(c, e), u = c, i = function () {
u.dragging && s.fire("dragend"), Id(u)
}, (s = e).on("mousedown", n), e.on("mousemove", r), e.on("mouseup", o), t.bind(a, "mousemove", r), t.bind(a, "mouseup", i), e.on("remove", function () {
t.unbind(a, "mousemove", r), t.unbind(a, "mouseup", i)
})
}, Fd = function (e) {
var n;
Md(e), (n = e).on("drop", function (e) {
var t = "undefined" != typeof e.clientX ? n.getDoc().elementFromPoint(e.clientX, e.clientY) : null;
(Bd(t) || Bd(n.dom.getContentEditableParent(t))) && e.preventDefault()
})
}, Ud = function (e) {
return jt.reduce(e, function (e, t) {
return e.concat(function (t) {
var e = function (e) {
return jt.map(e, function (e) {
return (e = Fa(e)).node = t, e
})
};
if (Ao.isElement(t))return e(t.getClientRects());
if (Ao.isText(t)) {
var n = t.ownerDocument.createRange();
return n.setStart(t, 0), n.setEnd(t, t.data.length), e(n.getClientRects())
}
}(t))
}, [])
};
(Ad = kd || (kd = {}))[Ad.Up = -1] = "Up", Ad[Ad.Down = 1] = "Down";
var zd = function (o, i, a, e, u, t) {
var n, s, c = 0, l = [], r = function (e) {
var t, n, r;
for (r = Ud([e]), -1 === o && (r = r.reverse()), t = 0; t < r.length; t++)if (n = r[t], !a(n, s)) {
if (0 < l.length && i(n, jt.last(l)) && c++, n.line = c, u(n))return !0;
l.push(n)
}
};
return (s = jt.last(t.getClientRects())) && (r(n = t.getNode()), function (e, t, n, r) {
for (; r = gs(r, e, Ia, t);)if (n(r))return
}(o, e, r, n)), l
}, Vd = m(zd, kd.Up, Va, Ha), Hd = m(zd, kd.Down, Ha, Va), jd = function (n) {
return function (e) {
return t = n, e.line > t;
var t
}
}, qd = function (n) {
return function (e) {
return t = n, e.line === t;
var t
}
}, $d = Ao.isContentEditableFalse, Wd = gs, Kd = function (e, t) {
return Math.abs(e.left - t)
}, Xd = function (e, t) {
return Math.abs(e.right - t)
}, Yd = function (e, t) {
return e >= t.left && e <= t.right
}, Gd = function (e, o) {
return jt.reduce(e, function (e, t) {
var n, r;
return n = Math.min(Kd(e, o), Xd(e, o)), r = Math.min(Kd(t, o), Xd(t, o)), Yd(o, t) ? t : Yd(o, e) ? e : r === n && $d(t.node) ? t : r < n ? t : e
})
}, Jd = function (e, t, n, r) {
for (; r = Wd(r, e, Ia, t);)if (n(r))return
}, Qd = function (e, t, n) {
var r, o, i, a, u, s, c, l, f = Ud((o = e, jt.filter(jt.toArray(o.getElementsByTagName("*")), ts))), d = jt.filter(f, function (e) {
return n >= e.top && n <= e.bottom
});
return (r = Gd(d, t)) && (r = Gd((u = e, l = function (t, e) {
var n;
return n = jt.filter(Ud([e]), function (e) {
return !t(e, s)
}), c = c.concat(n), 0 === n.length
}, (c = []).push(s = r), Jd(kd.Up, u, m(l, Va), s.node), Jd(kd.Down, u, m(l, Ha), s.node), c), t)) && ts(r.node) ? (a = t, {
node: (i = r).node,
before: Kd(i, a) < Xd(i, a)
}) : null
}, Zd = function (i, a, e) {
return !e.collapsed && U(e.getClientRects(), function (e, t) {
return e || (o = a, (r = i) >= (n = t).left && r <= n.right && o >= n.top && o <= n.bottom);
var n, r, o
}, !1)
}, em = Ao.isContentEditableTrue, tm = Ao.isContentEditableFalse, nm = function (e, t, n, r, o) {
return t._selectionOverrides.showCaret(e, n, r, o)
}, rm = function (e, t) {
var n, r;
return e.fire("BeforeObjectSelected", {target: t}).isDefaultPrevented() ? null : ((r = (n = t).ownerDocument.createRange()).selectNode(n), r)
}, om = function (e, t, n) {
var r = ws(1, e.getBody(), t), o = hu.fromRangeStart(r), i = o.getNode();
if (tm(i))return nm(1, e, i, !o.isAtEnd(), !1);
var a = o.getNode(!0);
if (tm(a))return nm(1, e, a, !1, !1);
var u = e.dom.getParent(o.getNode(), function (e) {
return tm(e) || em(e)
});
return tm(u) ? nm(1, e, u, !1, n) : null
}, im = function (e, t, n) {
if (!t || !t.collapsed)return t;
var r = om(e, t, n);
return r || t
}, am = function (t) {
var e = _i(function () {
if (!t.removed && t.getBody().contains(document.activeElement) && t.selection.getRng().collapsed) {
var e = im(t, t.selection.getRng(), !1);
t.selection.setRng(e)
}
}, 0);
t.on("focus", function () {
e.throttle()
}), t.on("blur", function () {
e.cancel()
})
}, um = {
BACKSPACE: 8,
DELETE: 46,
DOWN: 40,
ENTER: 13,
LEFT: 37,
RIGHT: 39,
SPACEBAR: 32,
TAB: 9,
UP: 38,
modifierPressed: function (e) {
return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e)
},
metaKeyPressed: function (e) {
return fe.mac ? e.metaKey : e.ctrlKey && !e.altKey
}
}, sm = Ao.isContentEditableTrue, cm = Ao.isContentEditableFalse, lm = As, fm = ks, dm = function (e, t) {
for (var n = e.getBody(); t && t !== n;) {
if (sm(t) || cm(t))return t;
t = t.parentNode
}
return null
}, mm = function (g) {
var p, e, t, a = g.getBody(), o = Zu(g.getBody(), function (e) {
return g.dom.isBlock(e)
}, function () {
return Zl(g)
}), h = "sel-" + g.dom.uniqueId(), u = function (e) {
e && g.selection.setRng(e)
}, s = function () {
return g.selection.getRng()
}, v = function (e, t, n, r) {
return void 0 === r && (r = !0), g.fire("ShowCaret", {
target: t,
direction: e,
before: n
}).isDefaultPrevented() ? null : (r && g.selection.scrollIntoView(t, -1 === e), o.show(n, t))
}, b = function (e, t) {
return t = ws(e, a, t), -1 === e ? hu.fromRangeStart(t) : hu.fromRangeEnd(t)
}, n = function (e) {
return va(e) || wa(e) || Na(e)
}, y = function (e) {
return n(e.startContainer) || n(e.endContainer)
}, c = function (e, t) {
var n, r, o, i, a, u, s, c, l, f, d = g.$, m = g.dom;
if (!e)return null;
if (e.collapsed) {
if (!y(e))if (!1 === t) {
if (c = b(-1, e), ts(c.getNode(!0)))return v(-1, c.getNode(!0), !1, !1);
if (ts(c.getNode()))return v(-1, c.getNode(), !c.isAtEnd(), !1)
} else {
if (c = b(1, e), ts(c.getNode()))return v(1, c.getNode(), !c.isAtEnd(), !1);
if (ts(c.getNode(!0)))return v(1, c.getNode(!0), !1, !1)
}
return null
}
return i = e.startContainer, a = e.startOffset, u = e.endOffset, 3 === i.nodeType && 0 === a && cm(i.parentNode) && (i = i.parentNode, a = m.nodeIndex(i), i = i.parentNode), 1 !== i.nodeType ? null : (u === a + 1 && (n = i.childNodes[a]), cm(n) ? (l = f = n.cloneNode(!0), (s = g.fire("ObjectSelected", {
target: n,
targetClone: l
})).isDefaultPrevented() ? null : (r = Wi(nr.fromDom(g.getBody()), "#" + h).fold(function () {
return d([])
}, function (e) {
return d([e.dom()])
}), l = s.targetClone, 0 === r.length && (r = d('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id", h)).appendTo(g.getBody()), e = g.dom.createRng(), l === f && fe.ie ? (r.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p>').append(l), e.setStartAfter(r[0].firstChild.firstChild), e.setEndAfter(l)) : (r.empty().append("\xa0").append(l).append("\xa0"), e.setStart(r[0].firstChild, 1), e.setEnd(r[0].lastChild, 0)), r.css({top: m.getPos(n, g.getBody()).y}), r[0].focus(), (o = g.selection.getSel()).removeAllRanges(), o.addRange(e), M(zi(nr.fromDom(g.getBody()), "*[data-mce-selected]"), function (e) {
Cr(e, "data-mce-selected")
}), n.setAttribute("data-mce-selected", "1"), p = n, C(), e)) : null)
}, l = function () {
p && (p.removeAttribute("data-mce-selected"), Wi(nr.fromDom(g.getBody()), "#" + h).each(Di), p = null), Wi(nr.fromDom(g.getBody()), "#" + h).each(Di), p = null
}, C = function () {
o.hide()
};
return fe.ceFalse && (function () {
g.on("mouseup", function (e) {
var t = s();
t.collapsed && Pf(g, e.clientX, e.clientY) && u(om(g, t, !1))
}), g.on("click", function (e) {
var t;
(t = dm(g, e.target)) && (cm(t) && (e.preventDefault(), g.focus()), sm(t) && g.dom.isChildOf(t, g.selection.getNode()) && l())
}), g.on("blur NewBlock", function () {
l()
}), g.on("ResizeWindow FullscreenStateChanged", function () {
return o.reposition()
});
var n, r, i = function (e, t) {
var n, r, o = g.dom.getParent(e, g.dom.isBlock), i = g.dom.getParent(t, g.dom.isBlock);
return !(!o || !g.dom.isChildOf(o, i) || !1 !== cm(dm(g, o))) || o && (n = o, r = i, !(g.dom.getParent(n, g.dom.isBlock) === g.dom.getParent(r, g.dom.isBlock))) && function (e) {
var t = $s(e);
if (!e.firstChild)return !1;
var n = hu.before(e.firstChild), r = t.next(n);
return r && !fm(r) && !lm(r)
}(o)
};
r = !1, (n = g).on("touchstart", function () {
r = !1
}), n.on("touchmove", function () {
r = !0
}), n.on("touchend", function (e) {
var t = dm(n, e.target);
cm(t) && (r || (e.preventDefault(), c(rm(n, t))))
}), g.on("mousedown", function (e) {
var t, n = e.target;
if ((n === a || "HTML" === n.nodeName || g.dom.isChildOf(n, a)) && !1 !== Pf(g, e.clientX, e.clientY))if (t = dm(g, n))cm(t) ? (e.preventDefault(), c(rm(g, t))) : (l(), sm(t) && e.shiftKey || Zd(e.clientX, e.clientY, g.selection.getRng()) || (C(), g.selection.placeCaretAt(e.clientX, e.clientY))); else if (!1 === ts(n)) {
l(), C();
var r = Qd(a, e.clientX, e.clientY);
if (r && !i(e.target, r.node)) {
e.preventDefault();
var o = v(1, r.node, r.before, !1);
g.getBody().focus(), u(o)
}
}
}), g.on("keypress", function (e) {
um.modifierPressed(e) || (e.keyCode, cm(g.selection.getNode()) && e.preventDefault())
}), g.on("getSelectionRange", function (e) {
var t = e.range;
if (p) {
if (!p.parentNode)return void(p = null);
(t = t.cloneRange()).selectNode(p), e.range = t
}
}), g.on("setSelectionRange", function (e) {
var t;
(t = c(e.range, e.forward)) && (e.range = t)
}), g.on("AfterSetSelectionRange", function (e) {
var t, n = e.range;
y(n) || "mcepastebin" === n.startContainer.parentNode.id || C(), t = n.startContainer.parentNode, g.dom.hasClass(t, "mce-offscreen-selection") || l()
}), g.on("copy", function (e) {
var t, n = e.clipboardData;
if (!e.isDefaultPrevented() && e.clipboardData && !fe.ie) {
var r = (t = g.dom.get(h)) ? t.getElementsByTagName("*")[0] : t;
r && (e.preventDefault(), n.clearData(), n.setData("text/html", r.outerHTML), n.setData("text/plain", r.outerText))
}
}), Fd(g), am(g)
}(), e = g.contentStyles, t = ".mce-content-body", e.push(o.getCss()), e.push(t + " .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}" + t + " *[contentEditable=false] {cursor: default;}" + t + " *[contentEditable=true] {cursor: text;}")), {
showCaret: v,
showBlockCaretContainer: function (e) {
e.hasAttribute("data-mce-caret") && (Ea(e), u(s()), g.selection.scrollIntoView(e[0]))
},
hideFakeCaret: C,
destroy: function () {
o.destroy(), p = null
}
}
}, gm = 0, pm = 2, hm = 1, vm = function (g, p) {
var e = g.length + p.length + 2, h = new Array(e), v = new Array(e), c = function (e, t, n, r, o) {
var i = l(e, t, n, r);
if (null === i || i.start === t && i.diag === t - r || i.end === e && i.diag === e - n)for (var a = e, u = n; a < t || u < r;)a < t && u < r && g[a] === p[u] ? (o.push([0, g[a]]), ++a, ++u) : r - n < t - e ? (o.push([2, g[a]]), ++a) : (o.push([1, p[u]]), ++u); else {
c(e, i.start, n, i.start - i.diag, o);
for (var s = i.start; s < i.end; ++s)o.push([0, g[s]]);
c(i.end, t, i.end - i.diag, r, o)
}
}, b = function (e, t, n, r) {
for (var o = e; o - t < r && o < n && g[o] === p[o - t];)++o;
return {start: e, end: o, diag: t}
}, l = function (e, t, n, r) {
var o = t - e, i = r - n;
if (0 === o || 0 === i)return null;
var a, u, s, c, l, f = o - i, d = i + o, m = (d % 2 == 0 ? d : d + 1) / 2;
for (h[1 + m] = e, v[1 + m] = t + 1, a = 0; a <= m; ++a) {
for (u = -a; u <= a; u += 2) {
for (s = u + m, u === -a || u !== a && h[s - 1] < h[s + 1] ? h[s] = h[s + 1] : h[s] = h[s - 1] + 1, l = (c = h[s]) - e + n - u; c < t && l < r && g[c] === p[l];)h[s] = ++c, ++l;
if (f % 2 != 0 && f - a <= u && u <= f + a && v[s - f] <= h[s])return b(v[s - f], u + e - n, t, r)
}
for (u = f - a; u <= f + a; u += 2) {
for (s = u + m - f, u === f - a || u !== f + a && v[s + 1] <= v[s - 1] ? v[s] = v[s + 1] - 1 : v[s] = v[s - 1], l = (c = v[s] - 1) - e + n - u; e <= c && n <= l && g[c] === p[l];)v[s] = c--, l--;
if (f % 2 == 0 && -a <= u && u <= a && v[s] <= h[s + f])return b(v[s], u + e - n, t, r)
}
}
}, t = [];
return c(0, g.length, 0, p.length, t), t
}, bm = function (e) {
return Ao.isElement(e) ? e.outerHTML : Ao.isText(e) ? Ho.encodeRaw(e.data, !1) : Ao.isComment(e) ? "\x3c!--" + e.data + "--\x3e" : ""
}, ym = function (e, t, n) {
var r = function (e) {
var t, n, r;
for (r = document.createElement("div"), t = document.createDocumentFragment(), e && (r.innerHTML = e); n = r.firstChild;)t.appendChild(n);
return t
}(t);
if (e.hasChildNodes() && n < e.childNodes.length) {
var o = e.childNodes[n];
o.parentNode.insertBefore(r, o)
} else e.appendChild(r)
}, Cm = function (e) {
return jt.filter(jt.map(e.childNodes, bm), function (e) {
return 0 < e.length
})
}, xm = function (e, t) {
var n, r, o, i = jt.map(t.childNodes, bm);
return n = vm(i, e), r = t, o = 0, jt.each(n, function (e) {
e[0] === gm ? o++ : e[0] === hm ? (ym(r, e[1], o), o++) : e[0] === pm && function (e, t) {
if (e.hasChildNodes() && t < e.childNodes.length) {
var n = e.childNodes[t];
n.parentNode.removeChild(n)
}
}(r, o)
}), t
}, wm = yi(A.none()), Nm = function (e) {
return {type: "fragmented", fragments: e, content: "", bookmark: null, beforeBookmark: null}
}, Em = function (e) {
return {type: "complete", fragments: null, content: e, bookmark: null, beforeBookmark: null}
}, Sm = function (e) {
return "fragmented" === e.type ? e.fragments.join("") : e.content
}, Tm = function (e) {
var t = nr.fromTag("body", wm.get().getOrThunk(function () {
var e = document.implementation.createHTMLDocument("undo");
return wm.set(A.some(e)), e
}));
return ia(t, Sm(e)), M(zi(t, "*[data-mce-bogus]"), Bi), t.dom().innerHTML
}, km = function (n) {
var e, t, r;
return e = Cm(n.getBody()), -1 !== (t = (r = Y(e, function (e) {
var t = Kc.trimInternal(n.serializer, e);
return 0 < t.length ? [t] : []
})).join("")).indexOf("</iframe>") ? Nm(r) : Em(t)
}, Am = function (e, t, n) {
"fragmented" === t.type ? xm(t.fragments, e.getBody()) : e.setContent(t.content, {format: "raw"}), e.selection.moveToBookmark(n ? t.beforeBookmark : t.bookmark)
}, Rm = function (e, t) {
return !(!e || !t) && (r = t, Sm(e) === Sm(r) || (n = t, Tm(e) === Tm(n)));
var n, r
};
function Dm(u) {
var s, r, o = this, c = 0, l = [], t = 0, f = function () {
return 0 === t
}, i = function (e) {
f() && (o.typing = e)
}, d = function (e) {
u.setDirty(e)
}, a = function (e) {
i(!1), o.add({}, e)
}, n = function () {
o.typing && (i(!1), o.add())
};
return u.on("init", function () {
o.add()
}), u.on("BeforeExecCommand", function (e) {
var t = e.command;
"Undo" !== t && "Redo" !== t && "mceRepaint" !== t && (n(), o.beforeChange())
}), u.on("ExecCommand", function (e) {
var t = e.command;
"Undo" !== t && "Redo" !== t && "mceRepaint" !== t && a(e)
}), u.on("ObjectResizeStart Cut", function () {
o.beforeChange()
}), u.on("SaveContent ObjectResized blur", a), u.on("DragEnd", a), u.on("KeyUp", function (e) {
var t = e.keyCode;
e.isDefaultPrevented() || ((33 <= t && t <= 36 || 37 <= t && t <= 40 || 45 === t || e.ctrlKey) && (a(), u.nodeChanged()), 46 !== t && 8 !== t || u.nodeChanged(), r && o.typing && !1 === Rm(km(u), l[0]) && (!1 === u.isDirty() && (d(!0), u.fire("change", {
level: l[0],
lastLevel: null
})), u.fire("TypingUndo"), r = !1, u.nodeChanged()))
}), u.on("KeyDown", function (e) {
var t = e.keyCode;
if (!e.isDefaultPrevented())if (33 <= t && t <= 36 || 37 <= t && t <= 40 || 45 === t)o.typing && a(e); else {
var n = e.ctrlKey && !e.altKey || e.metaKey;
!(t < 16 || 20 < t) || 224 === t || 91 === t || o.typing || n || (o.beforeChange(), i(!0), o.add({}, e), r = !0)
}
}), u.on("MouseDown", function (e) {
o.typing && a(e)
}), u.on("input", function (e) {
var t;
e.inputType && ("insertReplacementText" === e.inputType || "insertText" === (t = e).inputType && null === t.data) && a(e)
}), u.addShortcut("meta+z", "", "Undo"), u.addShortcut("meta+y,meta+shift+z", "", "Redo"), u.on("AddUndo Undo Redo ClearUndos", function (e) {
e.isDefaultPrevented() || u.nodeChanged()
}), o = {
data: l, typing: !1, beforeChange: function () {
f() && (s = Iu.getUndoBookmark(u.selection))
}, add: function (e, t) {
var n, r, o, i = u.settings;
if (o = km(u), e = e || {}, e = Xt.extend(e, o), !1 === f() || u.removed)return null;
if (r = l[c], u.fire("BeforeAddUndo", {
level: e,
lastLevel: r,
originalEvent: t
}).isDefaultPrevented())return null;
if (r && Rm(r, e))return null;
if (l[c] && (l[c].beforeBookmark = s), i.custom_undo_redo_levels && l.length > i.custom_undo_redo_levels) {
for (n = 0; n < l.length - 1; n++)l[n] = l[n + 1];
l.length--, c = l.length
}
e.bookmark = Iu.getUndoBookmark(u.selection), c < l.length - 1 && (l.length = c + 1), l.push(e), c = l.length - 1;
var a = {level: e, lastLevel: r, originalEvent: t};
return u.fire("AddUndo", a), 0 < c && (d(!0), u.fire("change", a)), e
}, undo: function () {
var e;
return o.typing && (o.add(), o.typing = !1, i(!1)), 0 < c && (e = l[--c], Am(u, e, !0), d(!0), u.fire("undo", {level: e})), e
}, redo: function () {
var e;
return c < l.length - 1 && (e = l[++c], Am(u, e, !1), d(!0), u.fire("redo", {level: e})), e
}, clear: function () {
l = [], c = 0, o.typing = !1, o.data = l, u.fire("ClearUndos")
}, hasUndo: function () {
return 0 < c || o.typing && l[0] && !Rm(km(u), l[0])
}, hasRedo: function () {
return c < l.length - 1 && !o.typing
}, transact: function (e) {
return n(), o.beforeChange(), o.ignore(e), o.add()
}, ignore: function (e) {
try {
t++, e()
} finally {
t--
}
}, extra: function (e, t) {
var n, r;
o.transact(e) && (r = l[c].bookmark, n = l[c - 1], Am(u, n, !0), o.transact(t) && (l[c - 1].beforeBookmark = r))
}
}
}
var Bm, _m, Om = function (e) {
var t = zi(e, "br"), n = F(function (e) {
for (var t = [], n = e.dom(); n;)t.push(nr.fromDom(n)), n = n.lastChild;
return t
}(e).slice(-1), co);
t.length === n.length && M(n, Di)
}, Pm = function (e) {
Ri(e), ki(e, nr.fromHtml('<br data-mce-bogus="1">'))
}, Lm = function (n) {
Vr(n).each(function (t) {
Ir(t).each(function (e) {
uo(n) && co(t) && uo(e) && Di(t)
})
})
}, Im = gc.isEq, Mm = function (e, t, n) {
var r = e.formatter.get(n);
if (r)for (var o = 0; o < r.length; o++)if (!1 === r[o].inherit && e.dom.is(t, r[o].selector))return !0;
return !1
}, Fm = function (t, e, n, r) {
var o = t.dom.getRoot();
return e !== o && (e = t.dom.getParent(e, function (e) {
return !!Mm(t, e, n) || e.parentNode === o || !!Vm(t, e, n, r, !0)
}), Vm(t, e, n, r))
}, Um = function (e, t, n) {
return !!Im(t, n.inline) || !!Im(t, n.block) || (n.selector ? 1 === t.nodeType && e.is(t, n.selector) : void 0)
}, zm = function (e, t, n, r, o, i) {
var a, u, s, c = n[r];
if (n.onmatch)return n.onmatch(t, n, r);
if (c)if ("undefined" == typeof c.length) {
for (a in c)if (c.hasOwnProperty(a)) {
if (u = "attributes" === r ? e.getAttrib(t, a) : gc.getStyle(e, t, a), o && !u && !n.exact)return;
if ((!o || n.exact) && !Im(u, gc.normalizeStyleValue(e, gc.replaceVars(c[a], i), a)))return
}
} else for (s = 0; s < c.length; s++)if ("attributes" === r ? e.getAttrib(t, c[s]) : gc.getStyle(e, t, c[s]))return n;
return n
}, Vm = function (e, t, n, r, o) {
var i, a, u, s, c = e.formatter.get(n), l = e.dom;
if (c && t)for (a = 0; a < c.length; a++)if (i = c[a], Um(e.dom, t, i) && zm(l, t, i, "attributes", o, r) && zm(l, t, i, "styles", o, r)) {
if (s = i.classes)for (u = 0; u < s.length; u++)if (!e.dom.hasClass(t, s[u]))return;
return i
}
}, Hm = {
matchNode: Vm, matchName: Um, match: function (e, t, n, r) {
var o;
return r ? Fm(e, r, t, n) : (r = e.selection.getNode(), !!Fm(e, r, t, n) || !((o = e.selection.getStart()) === r || !Fm(e, o, t, n)))
}, matchAll: function (r, o, i) {
var e, a = [], u = {};
return e = r.selection.getStart(), r.dom.getParent(e, function (e) {
var t, n;
for (t = 0; t < o.length; t++)n = o[t], !u[n] && Vm(r, e, n, i) && (u[n] = !0, a.push(n))
}, r.dom.getRoot()), a
}, canApply: function (e, t) {
var n, r, o, i, a, u = e.formatter.get(t), s = e.dom;
if (u)for (n = e.selection.getStart(), r = gc.getParents(s, n), i = u.length - 1; 0 <= i; i--) {
if (!(a = u[i].selector) || u[i].defaultBlock)return !0;
for (o = r.length - 1; 0 <= o; o--)if (s.is(r[o], a))return !0
}
return !1
}, matchesUnInheritedFormatSelector: Mm
}, jm = function (e, t) {
return e.splitText(t)
}, qm = function (e) {
var t = e.startContainer, n = e.startOffset, r = e.endContainer, o = e.endOffset;
return t === r && Ao.isText(t) ? 0 < n && n < t.nodeValue.length && (t = (r = jm(t, n)).previousSibling, n < o ? (t = r = jm(r, o -= n).previousSibling, o = r.nodeValue.length, n = 0) : o = 0) : (Ao.isText(t) && 0 < n && n < t.nodeValue.length && (t = jm(t, n), n = 0), Ao.isText(r) && 0 < o && o < r.nodeValue.length && (o = (r = jm(r, o).previousSibling).nodeValue.length)), {
startContainer: t,
startOffset: n,
endContainer: r,
endOffset: o
}
}, $m = function (e, t, n) {
if (0 !== n) {
var r, o, i, a = e.data.slice(t, t + n), u = t + n >= e.data.length, s = 0 === t;
e.replaceData(t, n, (o = s, i = u, U((r = a).split(""), function (e, t) {
return -1 !== " \f\n\r\t\x0B".indexOf(t) || "\xa0" === t ? e.previousCharIsSpace || "" === e.str && o || e.str.length === r.length - 1 && i ? {
previousCharIsSpace: !1,
str: e.str + "\xa0"
} : {previousCharIsSpace: !0, str: e.str + " "} : {previousCharIsSpace: !1, str: e.str + t}
}, {previousCharIsSpace: !1, str: ""}).str))
}
}, Wm = function (e, t) {
var n, r = e.data.slice(t), o = r.length - (n = r, n.replace(/^\s+/g, "")).length;
return $m(e, t, o)
}, Km = function (e, t) {
var n, r, o, i = nr.fromDom(e), a = nr.fromDom(t);
return n = a, r = "pre,code", o = m(_r, i), $i(n, r, o).isSome()
}, Xm = function (e, t) {
return Oa(t) && !1 === (r = e, o = t, Ao.isText(o) && /^[ \t\r\n]*$/.test(o.data) && !1 === Km(r, o)) || (n = t, Ao.isElement(n) && "A" === n.nodeName && n.hasAttribute("name")) || Ym(t);
var n, r, o
}, Ym = Ao.hasAttribute("data-mce-bookmark"), Gm = Ao.hasAttribute("data-mce-bogus"), Jm = Ao.hasAttributeValue("data-mce-bogus", "all"), Qm = function (e) {
return function (e) {
var t, n, r = 0;
if (Xm(e, e))return !1;
if (!(n = e.firstChild))return !0;
t = new to(n, e);
do {
if (Jm(n))n = t.next(!0); else if (Gm(n))n = t.next(); else if (Ao.isBr(n))r++, n = t.next(); else {
if (Xm(e, n))return !1;
n = t.next()
}
} while (n);
return r <= 1
}(e.dom())
}, Zm = function (e, t) {
return r = e, o = (n = t).container(), i = n.offset(), !1 === hu.isTextPosition(n) && o === r.parentNode && i > hu.before(r).offset() ? hu(t.container(), t.offset() - 1) : t;
var n, r, o, i
}, eg = function (e) {
return Oa(e.previousSibling) ? A.some((t = e.previousSibling, Ao.isText(t) ? hu(t, t.data.length) : hu.after(t))) : e.previousSibling ? ec.lastPositionIn(e.previousSibling) : A.none();
var t
}, tg = function (e) {
return Oa(e.nextSibling) ? A.some((t = e.nextSibling, Ao.isText(t) ? hu(t, 0) : hu.before(t))) : e.nextSibling ? ec.firstPositionIn(e.nextSibling) : A.none();
var t
}, ng = function (r, o) {
return eg(o).orThunk(function () {
return tg(o)
}).orThunk(function () {
return e = r, t = o, n = hu.before(t.previousSibling ? t.previousSibling : t.parentNode), ec.prevPosition(e, n).fold(function () {
return ec.nextPosition(e, hu.after(t))
}, A.some);
var e, t, n
})
}, rg = function (n, r) {
return tg(r).orThunk(function () {
return eg(r)
}).orThunk(function () {
return e = n, t = r, ec.nextPosition(e, hu.after(t)).fold(function () {
return ec.prevPosition(e, hu.before(t))
}, A.some);
var e, t
})
}, og = function (e, t, n) {
return (r = e, o = t, i = n, r ? rg(o, i) : ng(o, i)).map(m(Zm, n));
var r, o, i
}, ig = function (t, n, e) {
e.fold(function () {
t.focus()
}, function (e) {
t.selection.setRng(e.toRange(), n)
})
}, ag = function (e, t) {
return t && e.schema.getBlockElements().hasOwnProperty(ar(t))
}, ug = function (e) {
if (Qm(e)) {
var t = nr.fromHtml('<br data-mce-bogus="1">');
return Ri(e), ki(e, t), A.some(hu.before(t.dom()))
}
return A.none()
}, sg = function (e, t, l) {
var n = Ir(e).filter(function (e) {
return Ao.isText(e.dom())
}), r = Mr(e).filter(function (e) {
return Ao.isText(e.dom())
});
return Di(e), Ka([n, r, t], function (e, t, n) {
var r, o, i, a, u = e.dom(), s = t.dom(), c = u.data.length;
return o = s, i = l, a = Kn((r = u).data).length, r.appendData(o.data), Di(nr.fromDom(o)), i && Wm(r, a), n.container() === s ? hu(u, c) : n
}).orThunk(function () {
return l && (n.each(function (e) {
return t = e.dom(), n = e.dom().length, r = t.data.slice(0, n), o = r.length - Kn(r).length, $m(t, n - o, o);
var t, n, r, o
}), r.each(function (e) {
return Wm(e.dom(), 0)
})), t
})
}, cg = function (t, n, e, r) {
void 0 === r && (r = !0);
var o, i, a = og(n, t.getBody(), e.dom()), u = ji(e, m(ag, t), (o = t.getBody(), function (e) {
return e.dom() === o
})), s = sg(e, a, (i = e, pr(t.schema.getTextInlineElements(), ar(i))));
t.dom.isEmpty(t.getBody()) ? (t.setContent(""), t.selection.setCursorLocation()) : u.bind(ug).fold(function () {
r && ig(t, n, s)
}, function (e) {
r && ig(t, n, A.some(e))
})
}, lg = fa, fg = "_mce_caret", dg = function (e) {
return 0 < function (e) {
for (var t = []; e;) {
if (3 === e.nodeType && e.nodeValue !== lg || 1 < e.childNodes.length)return [];
1 === e.nodeType && t.push(e), e = e.firstChild
}
return t
}(e).length
}, mg = function (e) {
var t;
if (e)for (e = (t = new to(e, e)).current(); e; e = t.next())if (3 === e.nodeType)return e;
return null
}, gg = function (e) {
var t = nr.fromTag("span");
return br(t, {id: fg, "data-mce-bogus": "1", "data-mce-type": "format-caret"}), e && ki(t, nr.fromText(lg)), t
}, pg = function (e, t, n) {
void 0 === n && (n = !0);
var r, o = e.dom, i = e.selection;
if (dg(t))cg(e, !1, nr.fromDom(t), n); else {
var a = i.getRng(), u = o.getParent(t, o.isBlock), s = ((r = mg(t)) && r.nodeValue.charAt(0) === lg && r.deleteData(0, 1), r);
a.startContainer === s && 0 < a.startOffset && a.setStart(s, a.startOffset - 1), a.endContainer === s && 0 < a.endOffset && a.setEnd(s, a.endOffset - 1), o.remove(t, !0), u && o.isEmpty(u) && Pm(nr.fromDom(u)), i.setRng(a)
}
}, hg = function (e, t, n) {
void 0 === n && (n = !0);
var r = e.dom, o = e.selection;
if (t)pg(e, t, n); else if (!(t = Uu(e.getBody(), o.getStart())))for (; t = r.get(fg);)pg(e, t, !1)
}, vg = function (e, t, n) {
var r = e.dom, o = r.getParent(n, sa.curry(gc.isTextBlock, e));
o && r.isEmpty(o) ? n.parentNode.replaceChild(t, n) : (Om(nr.fromDom(n)), r.isEmpty(n) ? n.parentNode.replaceChild(t, n) : r.insertAfter(t, n))
}, bg = function (e, t) {
return e.appendChild(t), t
}, yg = function (e, t) {
var n, r, o = (n = function (e, t) {
return bg(e, t.cloneNode(!1))
}, r = t, function (e, t) {
for (var n = e.length - 1; 0 <= n; n--)t(e[n], n, e)
}(e, function (e) {
r = n(r, e)
}), r);
return bg(o, o.ownerDocument.createTextNode(lg))
}, Cg = function (i) {
i.on("mouseup keydown", function (e) {
var t, n, r, o;
t = i, n = e.keyCode, r = t.selection, o = t.getBody(), hg(t, null, !1), 8 !== n && 46 !== n || !r.isCollapsed() || r.getStart().innerHTML !== lg || hg(t, Uu(o, r.getStart())), 37 !== n && 39 !== n || hg(t, Uu(o, r.getStart()))
})
}, xg = function (e, t) {
return e.schema.getTextInlineElements().hasOwnProperty(ar(t)) && !Fu(t.dom()) && !Ao.isBogus(t.dom())
}, wg = {}, Ng = jt.filter, Eg = jt.each;
_m = function (e) {
var t, n, r = e.selection.getRng();
t = Ao.matchNodeNames("pre"), r.collapsed || (n = e.selection.getSelectedBlocks(), Eg(Ng(Ng(n, t), function (e) {
return t(e.previousSibling) && -1 !== jt.indexOf(n, e.previousSibling)
}), function (e) {
var t, n;
t = e.previousSibling, gn(n = e).remove(), gn(t).append("<br><br>").append(n.childNodes)
}))
}, wg[Bm = "pre"] || (wg[Bm] = []), wg[Bm].push(_m);
var Sg = function (e, t) {
Eg(wg[e], function (e) {
e(t)
})
}, Tg = Xt.each, kg = function (o) {
this.compare = function (e, t) {
if (e.nodeName !== t.nodeName)return !1;
var n = function (n) {
var r = {};
return Tg(o.getAttribs(n), function (e) {
var t = e.nodeName.toLowerCase();
0 !== t.indexOf("_") && "style" !== t && 0 !== t.indexOf("data-") && (r[t] = o.getAttrib(n, t))
}), r
}, r = function (e, t) {
var n, r;
for (r in e)if (e.hasOwnProperty(r)) {
if (void 0 === (n = t[r]))return !1;
if (e[r] !== n)return !1;
delete t[r]
}
for (r in t)if (t.hasOwnProperty(r))return !1;
return !0
};
return !(!r(n(e), n(t)) || !r(o.parseStyle(o.getAttrib(e, "style")), o.parseStyle(o.getAttrib(t, "style"))) || lc(e) || lc(t))
}
}, Ag = /^(src|href|style)$/, Rg = Xt.each, Dg = gc.isEq, Bg = function (e) {
return /^(TH|TD)$/.test(e.nodeName)
}, _g = function (e, t, n) {
var r, o, i;
return r = t[n ? "startContainer" : "endContainer"], o = t[n ? "startOffset" : "endOffset"], Ao.isElement(r) && (i = r.childNodes.length - 1, !n && o && o--, r = r.childNodes[i < o ? i : o]), Ao.isText(r) && n && o >= r.nodeValue.length && (r = new to(r, e.getBody()).next() || r), Ao.isText(r) && !n && 0 === o && (r = new to(r, e.getBody()).prev() || r), r
}, Og = function (e, t, n, r) {
var o = e.create(n, r);
return t.parentNode.insertBefore(o, t), o.appendChild(t), o
}, Pg = function (e, t, n, r) {
return !(t = gc.getNonWhiteSpaceSibling(t, n, r)) || "BR" === t.nodeName || e.isBlock(t)
}, Lg = function (e, n, r, o, i) {
var t, a, u, s, c, l, f, d, m, g, p, h, v, b, y = e.dom;
if (c = y, !(Dg(l = o, (f = n).inline) || Dg(l, f.block) || (f.selector ? Ao.isElement(l) && c.is(l, f.selector) : void 0) || (s = o, n.links && "A" === s.tagName)))return !1;
if ("all" !== n.remove)for (Rg(n.styles, function (e, t) {
e = gc.normalizeStyleValue(y, gc.replaceVars(e, r), t), "number" == typeof t && (t = e, i = 0), (n.remove_similar || !i || Dg(gc.getStyle(y, i, t), e)) && y.setStyle(o, t, ""), u = 1
}), u && "" === y.getAttrib(o, "style") && (o.removeAttribute("style"), o.removeAttribute("data-mce-style")), Rg(n.attributes, function (e, t) {
var n;
if (e = gc.replaceVars(e, r), "number" == typeof t && (t = e, i = 0), !i || Dg(y.getAttrib(i, t), e)) {
if ("class" === t && (e = y.getAttrib(o, t)) && (n = "", Rg(e.split(/\s+/), function (e) {
/mce\-\w+/.test(e) && (n += (n ? " " : "") + e)
}), n))return void y.setAttrib(o, t, n);
"class" === t && o.removeAttribute("className"), Ag.test(t) && o.removeAttribute("data-mce-" + t), o.removeAttribute(t)
}
}), Rg(n.classes, function (e) {
e = gc.replaceVars(e, r), i && !y.hasClass(i, e) || y.removeClass(o, e)
}), a = y.getAttribs(o), t = 0; t < a.length; t++) {
var C = a[t].nodeName;
if (0 !== C.indexOf("_") && 0 !== C.indexOf("data-"))return !1
}
return "none" !== n.remove ? (d = e, g = n, h = (m = o).parentNode, v = d.dom, b = nl(d), g.block && (b ? h === v.getRoot() && (g.list_block && Dg(m, g.list_block) || Rg(Xt.grep(m.childNodes), function (e) {
gc.isValid(d, b, e.nodeName.toLowerCase()) ? p ? p.appendChild(e) : (p = Og(v, e, b), v.setAttribs(p, d.settings.forced_root_block_attrs)) : p = 0
})) : v.isBlock(m) && !v.isBlock(h) && (Pg(v, m, !1) || Pg(v, m.firstChild, !0, 1) || m.insertBefore(v.create("br"), m.firstChild), Pg(v, m, !0) || Pg(v, m.lastChild, !1, 1) || m.appendChild(v.create("br")))), g.selector && g.inline && !Dg(g.inline, m) || v.remove(m, 1), !0) : void 0
}, Ig = Lg, Mg = function (s, c, l, e, f) {
var t, n, d = s.formatter.get(c), m = d[0], a = !0, u = s.dom, r = s.selection, i = function (e) {
var n, t, r, o, i, a, u = (n = s, t = e, r = c, o = l, i = f, Rg(gc.getParents(n.dom, t.parentNode).reverse(), function (e) {
var t;
a || "_start" === e.id || "_end" === e.id || (t = Hm.matchNode(n, e, r, o, i)) && !1 !== t.split && (a = e)
}), a);
return function (e, t, n, r, o, i, a, u) {
var s, c, l, f, d, m, g = e.dom;
if (n) {
for (m = n.parentNode, s = r.parentNode; s && s !== m; s = s.parentNode) {
for (c = g.clone(s, !1), d = 0; d < t.length; d++)if (Lg(e, t[d], u, c, c)) {
c = 0;
break
}
c && (l && c.appendChild(l), f || (f = c), l = c)
}
!i || a.mixed && g.isBlock(n) || (r = g.split(n, r)), l && (o.parentNode.insertBefore(l, o), f.appendChild(o))
}
return r
}(s, d, u, e, e, !0, m, l)
}, g = function (e) {
var t, n, r, o, i;
if (Ao.isElement(e) && u.getContentEditable(e) && (o = a, a = "true" === u.getContentEditable(e), i = !0), t = Xt.grep(e.childNodes), a && !i)for (n = 0, r = d.length; n < r && !Lg(s, d[n], l, e, e); n++);
if (m.deep && t.length) {
for (n = 0, r = t.length; n < r; n++)g(t[n]);
i && (a = o)
}
}, p = function (e) {
var t, n = u.get(e ? "_start" : "_end"), r = n[e ? "firstChild" : "lastChild"];
return lc(t = r) && Ao.isElement(t) && ("_start" === t.id || "_end" === t.id) && (r = r[e ? "firstChild" : "lastChild"]), Ao.isText(r) && 0 === r.data.length && (r = e ? n.previousSibling || n.nextSibling : n.nextSibling || n.previousSibling), u.remove(n, !0), r
}, o = function (e) {
var t, n, r = e.commonAncestorContainer;
if (e = Tc(s, e, d, !0), m.split) {
if (e = qm(e), (t = _g(s, e, !0)) !== (n = _g(s, e))) {
if (/^(TR|TH|TD)$/.test(t.nodeName) && t.firstChild && (t = "TR" === t.nodeName ? t.firstChild.firstChild || t : t.firstChild || t), r && /^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName) && Bg(n) && n.firstChild && (n = n.firstChild || n), u.isChildOf(t, n) && t !== n && !u.isBlock(n) && !Bg(t) && !Bg(n)) {
var o = function (e, t, n, r, o) {
var i = (r ? "next" : "previous") + "Sibling", a = e.create(n, o);
t.parentNode.insertBefore(a, t);
for (var u = [t], s = t; s = s[i];)u.push(s);
return u.forEach(function (e) {
return a.appendChild(e)
}), a
}(u, t, "span", !0, {id: "_start", "data-mce-type": "bookmark"});
return i(o), void(t = p(!0))
}
t = Og(u, t, "span", {id: "_start", "data-mce-type": "bookmark"}), n = Og(u, n, "span", {
id: "_end",
"data-mce-type": "bookmark"
}), i(t), i(n), t = p(!0), n = p()
} else t = n = i(t);
e.startContainer = t.parentNode ? t.parentNode : t, e.startOffset = u.nodeIndex(t), e.endContainer = n.parentNode ? n.parentNode : n, e.endOffset = u.nodeIndex(n) + 1
}
Ac(u, e, function (e) {
Rg(e, function (e) {
g(e), Ao.isElement(e) && "underline" === s.dom.getStyle(e, "text-decoration") && e.parentNode && "underline" === gc.getTextDecoration(u, e.parentNode) && Lg(s, {
deep: !1,
exact: !0,
inline: "span",
styles: {textDecoration: "underline"}
}, null, e)
})
})
};
if (e)e.nodeType ? ((n = u.createRng()).setStartBefore(e), n.setEndAfter(e), o(n)) : o(e); else if ("false" !== u.getContentEditable(r.getNode()))r.isCollapsed() && m.inline && !u.select("td[data-mce-selected],th[data-mce-selected]").length ? function (e, t, n, r) {
var o, i, a, u, s, c, l, f = e.dom, d = e.selection, m = [], g = d.getRng();
for (o = g.startContainer, i = g.startOffset, 3 === (s = o).nodeType && (i !== o.nodeValue.length && (u = !0), s = s.parentNode); s;) {
if (Hm.matchNode(e, s, t, n, r)) {
c = s;
break
}
s.nextSibling && (u = !0), m.push(s), s = s.parentNode
}
if (c)if (u) {
a = d.getBookmark(), g.collapse(!0);
var p = Tc(e, g, e.formatter.get(t), !0);
p = qm(p), e.formatter.remove(t, n, p), d.moveToBookmark(a)
} else {
l = Uu(e.getBody(), c);
var h = gg(!1).dom(), v = yg(m, h);
vg(e, h, l || c), pg(e, l, !1), d.setCursorLocation(v, 1), f.isEmpty(c) && f.remove(c)
}
}(s, c, l, f) : (t = Iu.getPersistentBookmark(s.selection, !0), o(r.getRng()), r.moveToBookmark(t), m.inline && Hm.match(s, c, l, r.getStart()) && gc.moveStart(u, r, r.getRng()), s.nodeChanged()); else {
e = r.getNode();
for (var h = 0, v = d.length; h < v && (!d[h].ceFalseOverride || !Lg(s, d[h], l, e, e)); h++);
}
}, Fg = Xt.each, Ug = function (e) {
return e && 1 === e.nodeType && !lc(e) && !Fu(e) && !Ao.isBogus(e)
}, zg = function (e, t) {
var n;
for (n = e; n; n = n[t]) {
if (3 === n.nodeType && 0 !== n.nodeValue.length)return e;
if (1 === n.nodeType && !lc(n))return n
}
return e
}, Vg = function (e, t, n) {
var r, o, i = new kg(e);
if (t && n && (t = zg(t, "previousSibling"), n = zg(n, "nextSibling"), i.compare(t, n))) {
for (r = t.nextSibling; r && r !== n;)r = (o = r).nextSibling, t.appendChild(o);
return e.remove(n), Xt.each(Xt.grep(n.childNodes), function (e) {
t.appendChild(e)
}), t
}
return n
}, Hg = function (e, t, n) {
Fg(e.childNodes, function (e) {
Ug(e) && (t(e) && n(e), e.hasChildNodes() && Hg(e, t, n))
})
}, jg = function (n, e) {
return m(function (e, t) {
return !(!t || !gc.getStyle(n, t, e))
}, e)
}, qg = function (r, e, t) {
return m(function (e, t, n) {
r.setStyle(n, e, t), "" === n.getAttribute("style") && n.removeAttribute("style"), $g(r, n)
}, e, t)
}, $g = function (e, t) {
"SPAN" === t.nodeName && 0 === e.getAttribs(t).length && e.remove(t, !0)
}, Wg = function (e, t) {
var n;
1 === t.nodeType && t.parentNode && 1 === t.parentNode.nodeType && (n = gc.getTextDecoration(e, t.parentNode), e.getStyle(t, "color") && n ? e.setStyle(t, "text-decoration", n) : e.getStyle(t, "text-decoration") === n && e.setStyle(t, "text-decoration", null))
}, Kg = function (n, e, r, o) {
Fg(e, function (t) {
Fg(n.dom.select(t.inline, o), function (e) {
Ug(e) && Ig(n, t, r, e, t.exact ? e : null)
}), function (r, e, t) {
if (e.clear_child_styles) {
var n = e.links ? "*:not(a)" : "*";
Fg(r.select(n, t), function (n) {
Ug(n) && Fg(e.styles, function (e, t) {
r.setStyle(n, t, "")
})
})
}
}(n.dom, t, o)
})
}, Xg = function (e, t, n, r) {
(t.styles.color || t.styles.textDecoration) && (Xt.walk(r, m(Wg, e), "childNodes"), Wg(e, r))
}, Yg = function (e, t, n, r) {
t.styles && t.styles.backgroundColor && Hg(r, jg(e, "fontSize"), qg(e, "backgroundColor", gc.replaceVars(t.styles.backgroundColor, n)))
}, Gg = function (e, t, n, r) {
"sub" !== t.inline && "sup" !== t.inline || (Hg(r, jg(e, "fontSize"), qg(e, "fontSize", "")), e.remove(e.select("sup" === t.inline ? "sub" : "sup", r), !0))
}, Jg = function (e, t, n, r) {
r && !1 !== t.merge_siblings && (r = Vg(e, gc.getNonWhiteSpaceSibling(r), r), r = Vg(e, r, gc.getNonWhiteSpaceSibling(r, !0)))
}, Qg = function (t, n, r, o, i) {
Hm.matchNode(t, i.parentNode, r, o) && Ig(t, n, o, i) || n.merge_with_parents && t.dom.getParent(i.parentNode, function (e) {
if (Hm.matchNode(t, e, r, o))return Ig(t, n, o, i), !0
})
}, Zg = function (a) {
var u = hu.fromRangeStart(a), s = hu.fromRangeEnd(a), c = a.commonAncestorContainer;
return ec.fromPosition(!1, c, s).map(function (e) {
return !hs(u, s, c) && hs(u, e, c) ? (t = u.container(), n = u.offset(), r = e.container(), o = e.offset(), (i = document.createRange()).setStart(t, n), i.setEnd(r, o), i) : a;
var t, n, r, o, i
}).getOr(a)
}, ep = function (e) {
return e.collapsed ? e : Zg(e)
}, tp = Xt.each, np = function (g, p, h, r) {
var e, t, v = g.formatter.get(p), b = v[0], o = !r && g.selection.isCollapsed(), i = g.dom, n = g.selection, y = function (n, e) {
if (e = e || b, n) {
if (e.onformat && e.onformat(n, e, h, r), tp(e.styles, function (e, t) {
i.setStyle(n, t, gc.replaceVars(e, h))
}), e.styles) {
var t = i.getAttrib(n, "style");
t && n.setAttribute("data-mce-style", t)
}
tp(e.attributes, function (e, t) {
i.setAttrib(n, t, gc.replaceVars(e, h))
}), tp(e.classes, function (e) {
e = gc.replaceVars(e, h), i.hasClass(n, e) || i.addClass(n, e)
})
}
}, C = function (e, t) {
var n = !1;
return !!b.selector && (tp(e, function (e) {
if (!("collapsed"in e && e.collapsed !== o))return i.is(t, e.selector) && !Fu(t) ? (y(t, e), !(n = !0)) : void 0
}), n)
}, a = function (s, e, t, c) {
var l, f, d = [], m = !0;
l = b.inline || b.block, f = s.create(l), y(f), Ac(s, e, function (e) {
var a, u = function (e) {
var t, n, r, o;
if (o = m, t = e.nodeName.toLowerCase(), n = e.parentNode.nodeName.toLowerCase(), 1 === e.nodeType && s.getContentEditable(e) && (o = m, m = "true" === s.getContentEditable(e), r = !0), gc.isEq(t, "br"))return a = 0, void(b.block && s.remove(e));
if (b.wrapper && Hm.matchNode(g, e, p, h))a = 0; else {
if (m && !r && b.block && !b.wrapper && gc.isTextBlock(g, t) && gc.isValid(g, n, l))return e = s.rename(e, l), y(e), d.push(e), void(a = 0);
if (b.selector) {
var i = C(v, e);
if (!b.inline || i)return void(a = 0)
}
!m || r || !gc.isValid(g, l, t) || !gc.isValid(g, n, l) || !c && 3 === e.nodeType && 1 === e.nodeValue.length && 65279 === e.nodeValue.charCodeAt(0) || Fu(e) || b.inline && s.isBlock(e) ? (a = 0, tp(Xt.grep(e.childNodes), u), r && (m = o), a = 0) : (a || (a = s.clone(f, !1), e.parentNode.insertBefore(a, e), d.push(a)), a.appendChild(e))
}
};
tp(e, u)
}), !0 === b.links && tp(d, function (e) {
var t = function (e) {
"A" === e.nodeName && y(e, b), tp(Xt.grep(e.childNodes), t)
};
t(e)
}), tp(d, function (e) {
var t, n, r, o, i, a = function (e) {
var n = !1;
return tp(e.childNodes, function (e) {
if ((t = e) && 1 === t.nodeType && !lc(t) && !Fu(t) && !Ao.isBogus(t))return n = e, !1;
var t
}), n
};
n = 0, tp(e.childNodes, function (e) {
gc.isWhiteSpaceNode(e) || lc(e) || n++
}), t = n, !(1 < d.length) && s.isBlock(e) || 0 !== t ? (b.inline || b.wrapper) && (b.exact || 1 !== t || ((o = a(r = e)) && !lc(o) && Hm.matchName(s, o, b) && (i = s.clone(o, !1), y(i), s.replace(i, r, !0), s.remove(o, 1)), e = i || r), Kg(g, v, h, e), Qg(g, b, p, h, e), Yg(s, b, h, e), Gg(s, b, h, e), Jg(s, b, h, e)) : s.remove(e, 1)
})
};
if ("false" !== i.getContentEditable(n.getNode())) {
if (b) {
if (r)r.nodeType ? C(v, r) || ((t = i.createRng()).setStartBefore(r), t.setEndAfter(r), a(i, Tc(g, t, v), 0, !0)) : a(i, r, 0, !0); else if (o && b.inline && !i.select("td[data-mce-selected],th[data-mce-selected]").length)!function (e, t, n) {
var r, o, i, a, u, s, c = e.selection;
a = (r = c.getRng(!0)).startOffset, s = r.startContainer.nodeValue, (o = Uu(e.getBody(), c.getStart())) && (i = mg(o));
var l, f, d = /[^\s\u00a0\u00ad\u200b\ufeff]/;
s && 0 < a && a < s.length && d.test(s.charAt(a)) && d.test(s.charAt(a - 1)) ? (u = c.getBookmark(), r.collapse(!0), r = Tc(e, r, e.formatter.get(t)), r = qm(r), e.formatter.apply(t, n, r), c.moveToBookmark(u)) : (o && i.nodeValue === lg || (l = e.getDoc(), f = gg(!0).dom(), i = (o = l.importNode(f, !0)).firstChild, r.insertNode(o), a = 1), e.formatter.apply(t, n, o), c.setCursorLocation(i, a))
}(g, p, h); else {
var u = g.selection.getNode();
g.settings.forced_root_block || !v[0].defaultBlock || i.getParent(u, i.isBlock) || np(g, v[0].defaultBlock), g.selection.setRng(ep(g.selection.getRng())), e = Iu.getPersistentBookmark(g.selection, !0), a(i, Tc(g, n.getRng(), v)), b.styles && Xg(i, b, h, u), n.moveToBookmark(e), gc.moveStart(i, n, n.getRng()), g.nodeChanged()
}
Sg(p, g)
}
} else {
r = n.getNode();
for (var s = 0, c = v.length; s < c; s++)if (v[s].ceFalseOverride && i.is(r, v[s].selector))return void y(r, v[s])
}
}, rp = {applyFormat: np}, op = Xt.each, ip = function (e, t, n, r, o) {
var i, a, u, s, c, l, f, d;
null === t.get() && (a = e, u = {}, (i = t).set({}), a.on("NodeChange", function (n) {
var r = gc.getParents(a.dom, n.element), o = {};
r = Xt.grep(r, function (e) {
return 1 === e.nodeType && !e.getAttribute("data-mce-bogus")
}), op(i.get(), function (e, n) {
op(r, function (t) {
return a.formatter.matchNode(t, n, {}, e.similar) ? (u[n] || (op(e, function (e) {
e(!0, {node: t, format: n, parents: r})
}), u[n] = e), o[n] = e, !1) : !Hm.matchesUnInheritedFormatSelector(a, t, n) && void 0
})
}), op(u, function (e, t) {
o[t] || (delete u[t], op(e, function (e) {
e(!1, {node: n.element, format: t, parents: r})
}))
})
})), c = n, l = r, f = o, d = (s = t).get(), op(c.split(","), function (e) {
d[e] || (d[e] = [], d[e].similar = f), d[e].push(l)
}), s.set(d)
}, ap = {
get: function (r) {
var t = {
valigntop: [{selector: "td,th", styles: {verticalAlign: "top"}}],
valignmiddle: [{selector: "td,th", styles: {verticalAlign: "middle"}}],
valignbottom: [{selector: "td,th", styles: {verticalAlign: "bottom"}}],
alignleft: [{
selector: "figure.image",
collapsed: !1,
classes: "align-left",
ceFalseOverride: !0,
preview: "font-family font-size"
}, {
selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",
styles: {textAlign: "left"},
inherit: !1,
preview: !1,
defaultBlock: "div"
}, {selector: "img,table", collapsed: !1, styles: {"float": "left"}, preview: "font-family font-size"}],
aligncenter: [{
selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",
styles: {textAlign: "center"},
inherit: !1,
preview: "font-family font-size",
defaultBlock: "div"
}, {
selector: "figure.image",
collapsed: !1,
classes: "align-center",
ceFalseOverride: !0,
preview: "font-family font-size"
}, {
selector: "img",
collapsed: !1,
styles: {display: "block", marginLeft: "auto", marginRight: "auto"},
preview: !1
}, {
selector: "table",
collapsed: !1,
styles: {marginLeft: "auto", marginRight: "auto"},
preview: "font-family font-size"
}],
alignright: [{
selector: "figure.image",
collapsed: !1,
classes: "align-right",
ceFalseOverride: !0,
preview: "font-family font-size"
}, {
selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",
styles: {textAlign: "right"},
inherit: !1,
preview: "font-family font-size",
defaultBlock: "div"
}, {
selector: "img,table",
collapsed: !1,
styles: {"float": "right"},
preview: "font-family font-size"
}],
alignjustify: [{
selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",
styles: {textAlign: "justify"},
inherit: !1,
defaultBlock: "div",
preview: "font-family font-size"
}],
bold: [{inline: "strong", remove: "all"}, {inline: "span", styles: {fontWeight: "bold"}}, {
inline: "b",
remove: "all"
}],
italic: [{inline: "em", remove: "all"}, {inline: "span", styles: {fontStyle: "italic"}}, {
inline: "i",
remove: "all"
}],
underline: [{inline: "span", styles: {textDecoration: "underline"}, exact: !0}, {
inline: "u",
remove: "all"
}],
strikethrough: [{inline: "span", styles: {textDecoration: "line-through"}, exact: !0}, {
inline: "strike",
remove: "all"
}],
forecolor: {
inline: "span",
styles: {color: "%value"},
links: !0,
remove_similar: !0,
clear_child_styles: !0
},
hilitecolor: {
inline: "span",
styles: {backgroundColor: "%value"},
links: !0,
remove_similar: !0,
clear_child_styles: !0
},
fontname: {inline: "span", toggle: !1, styles: {fontFamily: "%value"}, clear_child_styles: !0},
fontsize: {inline: "span", toggle: !1, styles: {fontSize: "%value"}, clear_child_styles: !0},
fontsize_class: {inline: "span", attributes: {"class": "%value"}},
blockquote: {block: "blockquote", wrapper: !0, remove: "all"},
subscript: {inline: "sub"},
superscript: {inline: "sup"},
code: {inline: "code"},
link: {
inline: "a", selector: "a", remove: "all", split: !0, deep: !0, onmatch: function () {
return !0
}, onformat: function (n, e, t) {
Xt.each(t, function (e, t) {
r.setAttrib(n, t, e)
})
}
},
removeformat: [{
selector: "b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",
remove: "all",
split: !0,
expand: !1,
block_expand: !0,
deep: !0
}, {
selector: "span",
attributes: ["style", "class"],
remove: "empty",
split: !0,
expand: !1,
deep: !0
}, {selector: "*", attributes: ["style", "class"], split: !1, expand: !1, deep: !0}]
};
return Xt.each("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/), function (e) {
t[e] = {block: e, remove: "all"}
}), t
}
}, up = Xt.each, sp = di.DOM, cp = function (e, t) {
var n, o, r, m = t && t.schema || Zo({}), g = function (e) {
var t, n, r;
return o = "string" == typeof e ? {
name: e,
classes: [],
attrs: {}
} : e, t = sp.create(o.name), n = t, (r = o).classes.length && sp.addClass(n, r.classes.join(" ")), sp.setAttribs(n, r.attrs), t
}, p = function (n, e, t) {
var r, o, i, a, u, s, c, l, f = 0 < e.length && e[0], d = f && f.name;
if (u = d, s = "string" != typeof(a = n) ? a.nodeName.toLowerCase() : a, c = m.getElementRule(s), i = !(!(l = c && c.parentsRequired) || !l.length) && (u && -1 !== Xt.inArray(l, u) ? u : l[0]))d === i ? (o = e[0], e = e.slice(1)) : o = i; else if (f)o = e[0], e = e.slice(1); else if (!t)return n;
return o && (r = g(o)).appendChild(n), t && (r || (r = sp.create("div")).appendChild(n), Xt.each(t, function (e) {
var t = g(e);
r.insertBefore(t, n)
})), p(r, e, o && o.siblings)
};
return e && e.length ? (o = e[0], n = g(o), (r = sp.create("div")).appendChild(p(n, e.slice(1), o.siblings)), r) : ""
}, lp = function (e) {
var t, a = {classes: [], attrs: {}};
return "*" !== (e = a.selector = Xt.trim(e)) && (t = e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g, function (e, t, n, r, o) {
switch (t) {
case"#":
a.attrs.id = n;
break;
case".":
a.classes.push(n);
break;
case":":
-1 !== Xt.inArray("checked disabled enabled read-only required".split(" "), n) && (a.attrs[n] = n)
}
if ("[" === r) {
var i = o.match(/([\w\-]+)(?:\=\"([^\"]+))?/);
i && (a.attrs[i[1]] = i[2])
}
return ""
})), a.name = t || "div", a
}, fp = function (e) {
return e && "string" == typeof e ? (e = (e = e.split(/\s*,\s*/)[0]).replace(/\s*(~\+|~|\+|>)\s*/g, "$1"), Xt.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/), function (e) {
var t = Xt.map(e.split(/(?:~\+|~|\+)/), lp), n = t.pop();
return t.length && (n.siblings = t), n
}).reverse()) : []
}, dp = function (n, e) {
var t, r, o, i, a, u, s = "";
if (!1 === (u = n.settings.preview_styles))return "";
"string" != typeof u && (u = "font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow");
var c = function (e) {
return e.replace(/%(\w+)/g, "")
};
if ("string" == typeof e) {
if (!(e = n.formatter.get(e)))return;
e = e[0]
}
return "preview"in e && !1 === (u = e.preview) ? "" : (t = e.block || e.inline || "span", r = (i = fp(e.selector)).length ? (i[0].name || (i[0].name = t), t = e.selector, cp(i, n)) : cp([t], n), o = sp.select(t, r)[0] || r.firstChild, up(e.styles, function (e, t) {
(e = c(e)) && sp.setStyle(o, t, e)
}), up(e.attributes, function (e, t) {
(e = c(e)) && sp.setAttrib(o, t, e)
}), up(e.classes, function (e) {
e = c(e), sp.hasClass(o, e) || sp.addClass(o, e)
}), n.fire("PreviewFormats"), sp.setStyles(r, {
position: "absolute",
left: -65535
}), n.getBody().appendChild(r), a = sp.getStyle(n.getBody(), "fontSize", !0), a = /px$/.test(a) ? parseInt(a, 10) : 0, up(u.split(" "), function (e) {
var t = sp.getStyle(o, e, !0);
if (!("background-color" === e && /transparent|rgba\s*\([^)]+,\s*0\)/.test(t) && (t = sp.getStyle(n.getBody(), e, !0), "#ffffff" === sp.toHex(t).toLowerCase()) || "color" === e && "#000000" === sp.toHex(t).toLowerCase())) {
if ("font-size" === e && /em|%$/.test(t)) {
if (0 === a)return;
t = parseFloat(t) / (/%$/.test(t) ? 100 : 1) * a + "px"
}
"border" === e && t && (s += "padding:0 2px;"), s += e + ":" + t + ";"
}
}), n.fire("AfterPreviewFormats"), sp.remove(r), s)
}, mp = function (e, t, n, r, o) {
var i = t.get(n);
!Hm.match(e, n, r, o) || "toggle"in i[0] && !i[0].toggle ? rp.applyFormat(e, n, r, o) : Mg(e, n, r, o)
}, gp = function (e) {
e.addShortcut("meta+b", "", "Bold"), e.addShortcut("meta+i", "", "Italic"), e.addShortcut("meta+u", "", "Underline");
for (var t = 1; t <= 6; t++)e.addShortcut("access+" + t, "", ["FormatBlock", !1, "h" + t]);
e.addShortcut("access+7", "", ["FormatBlock", !1, "p"]), e.addShortcut("access+8", "", ["FormatBlock", !1, "div"]), e.addShortcut("access+9", "", ["FormatBlock", !1, "address"])
};
function pp(e) {
var t = function o(e) {
var n = {}, r = function (e, t) {
e && ("string" != typeof e ? Xt.each(e, function (e, t) {
r(t, e)
}) : (t = t.length ? t : [t], Xt.each(t, function (e) {
"undefined" == typeof e.deep && (e.deep = !e.selector), "undefined" == typeof e.split && (e.split = !e.selector || e.inline), "undefined" == typeof e.remove && e.selector && !e.inline && (e.remove = "none"), e.selector && e.inline && (e.mixed = !0, e.block_expand = !0), "string" == typeof e.classes && (e.classes = e.classes.split(/\s+/))
}), n[e] = t))
};
return r(ap.get(e.dom)), r(e.settings.formats), {
get: function (e) {
return e ? n[e] : n
}, has: function (e) {
return pr(n, e)
}, register: r, unregister: function (e) {
return e && n[e] && delete n[e], n
}
}
}(e), n = yi(null);
return gp(e), Cg(e), {
get: t.get,
has: t.has,
register: t.register,
unregister: t.unregister,
apply: m(rp.applyFormat, e),
remove: m(Mg, e),
toggle: m(mp, e, t),
match: m(Hm.match, e),
matchAll: m(Hm.matchAll, e),
matchNode: m(Hm.matchNode, e),
canApply: m(Hm.canApply, e),
formatChanged: m(ip, e, n),
getCssText: m(dp, e)
}
}
var hp = {
register: function (t, s, c) {
t.addAttributeFilter("data-mce-tabindex", function (e, t) {
for (var n, r = e.length; r--;)(n = e[r]).attr("tabindex", n.attributes.map["data-mce-tabindex"]), n.attr(t, null)
}), t.addAttributeFilter("src,href,style", function (e, t) {
for (var n, r, o = e.length, i = "data-mce-" + t, a = s.url_converter, u = s.url_converter_scope; o--;)(r = (n = e[o]).attributes.map[i]) !== undefined ? (n.attr(t, 0 < r.length ? r : null), n.attr(i, null)) : (r = n.attributes.map[t], "style" === t ? r = c.serializeStyle(c.parseStyle(r), n.name) : a && (r = a.call(u, r, t, n.name)), n.attr(t, 0 < r.length ? r : null))
}), t.addAttributeFilter("class", function (e) {
for (var t, n, r = e.length; r--;)(n = (t = e[r]).attr("class")) && (n = t.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g, ""), t.attr("class", 0 < n.length ? n : null))
}), t.addAttributeFilter("data-mce-type", function (e, t, n) {
for (var r, o = e.length; o--;)"bookmark" !== (r = e[o]).attributes.map["data-mce-type"] || n.cleanup || r.remove()
}), t.addNodeFilter("noscript", function (e) {
for (var t, n = e.length; n--;)(t = e[n].firstChild) && (t.value = Ho.decode(t.value))
}), t.addNodeFilter("script,style", function (e, t) {
for (var n, r, o, i = e.length, a = function (e) {
return e.replace(/(<!--\[CDATA\[|\]\]-->)/g, "\n").replace(/^[\r\n]*|[\r\n]*$/g, "").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi, "").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, "")
}; i--;)r = (n = e[i]).firstChild ? n.firstChild.value : "", "script" === t ? ((o = n.attr("type")) && n.attr("type", "mce-no/type" === o ? null : o.replace(/^mce\-/, "")), "xhtml" === s.element_format && 0 < r.length && (n.firstChild.value = "// <![CDATA[\n" + a(r) + "\n// ]]>")) : "xhtml" === s.element_format && 0 < r.length && (n.firstChild.value = "\x3c!--\n" + a(r) + "\n--\x3e")
}), t.addNodeFilter("#comment", function (e) {
for (var t, n = e.length; n--;)0 === (t = e[n]).value.indexOf("[CDATA[") ? (t.name = "#cdata", t.type = 4, t.value = t.value.replace(/^\[CDATA\[|\]\]$/g, "")) : 0 === t.value.indexOf("mce:protected ") && (t.name = "#text", t.type = 3, t.raw = !0, t.value = unescape(t.value).substr(14))
}), t.addNodeFilter("xml:namespace,input", function (e, t) {
for (var n, r = e.length; r--;)7 === (n = e[r]).type ? n.remove() : 1 === n.type && ("input" !== t || "type"in n.attributes.map || n.attr("type", "text"))
}), t.addAttributeFilter("data-mce-type", function (e) {
M(e, function (e) {
"format-caret" === e.attr("data-mce-type") && (e.isEmpty(t.schema.getNonEmptyElements()) ? e.remove() : e.unwrap())
})
}), t.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize", function (e, t) {
for (var n = e.length; n--;)e[n].attr(t, null)
})
}, trimTrailingBr: function (e) {
var t, n, r = function (e) {
return e && "br" === e.name
};
r(t = e.lastChild) && r(n = t.prev) && (t.remove(), n.remove())
}
}, vp = {
process: function (e, t, n) {
return f = n, (l = e) && l.hasEventListeners("PreProcess") && !f.no_events ? (o = t, i = n, c = (r = e).dom, o = o.cloneNode(!0), (a = document.implementation).createHTMLDocument && (u = a.createHTMLDocument(""), Xt.each("BODY" === o.nodeName ? o.childNodes : [o], function (e) {
u.body.appendChild(u.importNode(e, !0))
}), o = "BODY" !== o.nodeName ? u.body.firstChild : u.body, s = c.doc, c.doc = u), rf(r, Fc(i, {node: o})), s && (c.doc = s), o) : t;
var r, o, i, a, u, s, c, l, f
}
}, bp = function (e, a, u) {
e.addNodeFilter("font", function (e) {
M(e, function (e) {
var t, n = a.parse(e.attr("style")), r = e.attr("color"), o = e.attr("face"), i = e.attr("size");
r && (n.color = r), o && (n["font-family"] = o), i && (n["font-size"] = u[parseInt(e.attr("size"), 10) - 1]), e.name = "span", e.attr("style", a.serialize(n)), t = e, M(["color", "face", "size"], function (e) {
t.attr(e, null)
})
})
})
}, yp = function (e, t) {
var n, r = ti();
t.convert_fonts_to_spans && bp(e, r, Xt.explode(t.font_size_legacy_values)), n = r, e.addNodeFilter("strike", function (e) {
M(e, function (e) {
var t = n.parse(e.attr("style"));
t["text-decoration"] = "line-through", e.name = "span", e.attr("style", n.serialize(t))
})
})
}, Cp = {
register: function (e, t) {
t.inline_styles && yp(e, t)
}
}, xp = function (e, t, n, r) {
(e.padd_empty_with_br || t.insert) && n[r.name] ? r.empty().append(new Hc("br", 1)).shortEnded = !0 : r.empty().append(new Hc("#text", 3)).value = "\xa0"
}, wp = function (e) {
return Np(e, "#text") && "\xa0" === e.firstChild.value
}, Np = function (e, t) {
return e && e.firstChild && e.firstChild === e.lastChild && e.firstChild.name === t
}, Ep = function (r, e, t, n) {
return n.isEmpty(e, t, function (e) {
return t = e, (n = r.getElementRule(t.name)) && n.paddEmpty;
var t, n
})
}, Sp = function (e, t) {
return e && (t[e.name] || "br" === e.name)
}, Tp = function (e, p) {
var h = e.schema;
p.remove_trailing_brs && e.addNodeFilter("br", function (e, t, n) {
var r, o, i, a, u, s, c, l, f = e.length, d = Xt.extend({}, h.getBlockElements()), m = h.getNonEmptyElements(), g = h.getNonEmptyElements();
for (d.body = 1, r = 0; r < f; r++)if (i = (o = e[r]).parent, d[o.parent.name] && o === i.lastChild) {
for (u = o.prev; u;) {
if ("span" !== (s = u.name) || "bookmark" !== u.attr("data-mce-type")) {
if ("br" !== s)break;
if ("br" === s) {
o = null;
break
}
}
u = u.prev
}
o && (o.remove(), Ep(h, m, g, i) && (c = h.getElementRule(i.name)) && (c.removeEmpty ? i.remove() : c.paddEmpty && xp(p, n, d, i)))
} else {
for (a = o; i && i.firstChild === a && i.lastChild === a && !d[(a = i).name];)i = i.parent;
a === i && !0 !== p.padd_empty_with_br && ((l = new Hc("#text", 3)).value = "\xa0", o.replace(l))
}
}), e.addAttributeFilter("href", function (e) {
var t, n, r, o = e.length;
if (!p.allow_unsafe_link_target)for (; o--;)"a" === (t = e[o]).name && "_blank" === t.attr("target") && t.attr("rel", (n = t.attr("rel"), r = n ? Xt.trim(n) : "", /\b(noopener)\b/g.test(r) ? r : r.split(" ").filter(function (e) {
return 0 < e.length
}).concat(["noopener"]).sort().join(" ")))
}), p.allow_html_in_named_anchor || e.addAttributeFilter("id,name", function (e) {
for (var t, n, r, o, i = e.length; i--;)if ("a" === (o = e[i]).name && o.firstChild && !o.attr("href"))for (r = o.parent, t = o.lastChild; n = t.prev, r.insert(t, o), t = n;);
}), p.fix_list_elements && e.addNodeFilter("ul,ol", function (e) {
for (var t, n, r = e.length; r--;)if ("ul" === (n = (t = e[r]).parent).name || "ol" === n.name)if (t.prev && "li" === t.prev.name)t.prev.append(t); else {
var o = new Hc("li", 1);
o.attr("style", "list-style-type: none"), t.wrap(o)
}
}), p.validate && h.getValidClasses() && e.addAttributeFilter("class", function (e) {
for (var t, n, r, o, i, a, u, s = e.length, c = h.getValidClasses(); s--;) {
for (n = (t = e[s]).attr("class").split(" "), i = "", r = 0; r < n.length; r++)o = n[r], u = !1, (a = c["*"]) && a[o] && (u = !0), a = c[t.name], !u && a && a[o] && (u = !0), u && (i && (i += " "), i += o);
i.length || (i = null), t.attr("class", i)
}
})
}, kp = Xt.makeMap, Ap = Xt.each, Rp = Xt.explode, Dp = Xt.extend;
function Bp(A, R) {
void 0 === R && (R = Zo());
var D = {}, B = [], _ = {}, O = {};
(A = A || {}).validate = !("validate"in A) || A.validate, A.root_name = A.root_name || "body";
var P = function (e) {
var t, n, r;
n in D && ((r = _[n]) ? r.push(e) : _[n] = [e]), t = B.length;
for (; t--;)(n = B[t].name)in e.attributes.map && ((r = O[n]) ? r.push(e) : O[n] = [e]);
return e
}, e = {
schema: R, addAttributeFilter: function (e, n) {
Ap(Rp(e), function (e) {
var t;
for (t = 0; t < B.length; t++)if (B[t].name === e)return void B[t].callbacks.push(n);
B.push({name: e, callbacks: [n]})
})
}, getAttributeFilters: function () {
return [].concat(B)
}, addNodeFilter: function (e, n) {
Ap(Rp(e), function (e) {
var t = D[e];
t || (D[e] = t = []), t.push(n)
})
}, getNodeFilters: function () {
var e = [];
for (var t in D)D.hasOwnProperty(t) && e.push({name: t, callbacks: D[t]});
return e
}, filterNode: P, parse: function (e, a) {
var t, n, r, o, i, u, s, c, l, f, d, m = [];
a = a || {}, _ = {}, O = {}, l = Dp(kp("script,style,head,html,body,title,meta,param"), R.getBlockElements());
var g, p = R.getNonEmptyElements(), h = R.children, v = A.validate, b = "forced_root_block"in a ? a.forced_root_block : A.forced_root_block, y = !1 === (g = b) ? "" : !0 === g ? "p" : g, C = R.getWhiteSpaceElements(), x = /^[ \t\r\n]+/, w = /[ \t\r\n]+$/, N = /[ \t\r\n]+/g, E = /^[ \t\r\n]+$/;
f = C.hasOwnProperty(a.context) || C.hasOwnProperty(A.root_name);
var S = function (e, t) {
var n, r = new Hc(e, t);
return e in D && ((n = _[e]) ? n.push(r) : _[e] = [r]), r
}, T = function (e) {
var t, n, r, o, i = R.getBlockElements();
for (t = e.prev; t && 3 === t.type;) {
if (0 < (r = t.value.replace(w, "")).length)return void(t.value = r);
if (n = t.next) {
if (3 === n.type && n.value.length) {
t = t.prev;
continue
}
if (!i[n.name] && "script" !== n.name && "style" !== n.name) {
t = t.prev;
continue
}
}
o = t.prev, t.remove(), t = o
}
};
t = $c({
validate: v,
allow_script_urls: A.allow_script_urls,
allow_conditional_comments: A.allow_conditional_comments,
self_closing_elements: function (e) {
var t, n = {};
for (t in e)"li" !== t && "p" !== t && (n[t] = e[t]);
return n
}(R.getSelfClosingElements()),
cdata: function (e) {
d.append(S("#cdata", 4)).value = e
},
text: function (e, t) {
var n;
f || (e = e.replace(N, " "), Sp(d.lastChild, l) && (e = e.replace(x, ""))), 0 !== e.length && ((n = S("#text", 3)).raw = !!t, d.append(n).value = e)
},
comment: function (e) {
d.append(S("#comment", 8)).value = e
},
pi: function (e, t) {
d.append(S(e, 7)).value = t, T(d)
},
doctype: function (e) {
d.append(S("#doctype", 10)).value = e, T(d)
},
start: function (e, t, n) {
var r, o, i, a, u;
if (i = v ? R.getElementRule(e) : {}) {
for ((r = S(i.outputName || e, 1)).attributes = t, r.shortEnded = n, d.append(r), (u = h[d.name]) && h[r.name] && !u[r.name] && m.push(r), o = B.length; o--;)(a = B[o].name)in t.map && ((s = O[a]) ? s.push(r) : O[a] = [r]);
l[e] && T(r), n || (d = r), !f && C[e] && (f = !0)
}
},
end: function (e) {
var t, n, r, o, i;
if (n = v ? R.getElementRule(e) : {}) {
if (l[e] && !f) {
if ((t = d.firstChild) && 3 === t.type)if (0 < (r = t.value.replace(x, "")).length)t.value = r, t = t.next; else for (o = t.next, t.remove(), t = o; t && 3 === t.type;)r = t.value, o = t.next, (0 === r.length || E.test(r)) && (t.remove(), t = o), t = o;
if ((t = d.lastChild) && 3 === t.type)if (0 < (r = t.value.replace(w, "")).length)t.value = r, t = t.prev; else for (o = t.prev, t.remove(), t = o; t && 3 === t.type;)r = t.value, o = t.prev, (0 === r.length || E.test(r)) && (t.remove(), t = o), t = o
}
if (f && C[e] && (f = !1), n.removeEmpty && Ep(R, p, C, d) && !d.attributes.map.name && !d.attr("id"))return i = d.parent, l[d.name] ? d.empty().remove() : d.unwrap(), void(d = i);
n.paddEmpty && (wp(d) || Ep(R, p, C, d)) && xp(A, a, l, d), d = d.parent
}
}
}, R);
var k = d = new Hc(a.context || A.root_name, 11);
if (t.parse(e), v && m.length && (a.context ? a.invalid = !0 : function (e) {
var t, n, r, o, i, a, u, s, c, l, f, d, m, g, p, h;
for (d = kp("tr,td,th,tbody,thead,tfoot,table"), l = R.getNonEmptyElements(), f = R.getWhiteSpaceElements(), m = R.getTextBlockElements(), g = R.getSpecialElements(), t = 0; t < e.length; t++)if ((n = e[t]).parent && !n.fixed)if (m[n.name] && "li" === n.parent.name) {
for (p = n.next; p && m[p.name];)p.name = "li", p.fixed = !0, n.parent.insert(p, n.parent), p = p.next;
n.unwrap(n)
} else {
for (o = [n], r = n.parent; r && !R.isValidChild(r.name, n.name) && !d[r.name]; r = r.parent)o.push(r);
if (r && 1 < o.length) {
for (o.reverse(), i = a = P(o[0].clone()), c = 0; c < o.length - 1; c++) {
for (R.isValidChild(a.name, o[c].name) ? (u = P(o[c].clone()), a.append(u)) : u = a, s = o[c].firstChild; s && s !== o[c + 1];)h = s.next, u.append(s), s = h;
a = u
}
Ep(R, l, f, i) ? r.insert(n, o[0], !0) : (r.insert(i, o[0], !0), r.insert(n, i)), r = o[0], (Ep(R, l, f, r) || Np(r, "br")) && r.empty().remove()
} else if (n.parent) {
if ("li" === n.name) {
if ((p = n.prev) && ("ul" === p.name || "ul" === p.name)) {
p.append(n);
continue
}
if ((p = n.next) && ("ul" === p.name || "ul" === p.name)) {
p.insert(n, p.firstChild, !0);
continue
}
n.wrap(P(new Hc("ul", 1)));
continue
}
R.isValidChild(n.parent.name, "div") && R.isValidChild("div", n.name) ? n.wrap(P(new Hc("div", 1))) : g[n.name] ? n.empty().remove() : n.unwrap()
}
}
}(m)), y && ("body" === k.name || a.isRootContent) && function () {
var e, t, n = k.firstChild, r = function (e) {
e && ((n = e.firstChild) && 3 === n.type && (n.value = n.value.replace(x, "")), (n = e.lastChild) && 3 === n.type && (n.value = n.value.replace(w, "")))
};
if (R.isValidChild(k.name, y.toLowerCase())) {
for (; n;)e = n.next, 3 === n.type || 1 === n.type && "p" !== n.name && !l[n.name] && !n.attr("data-mce-type") ? (t || ((t = S(y, 1)).attr(A.forced_root_block_attrs), k.insert(t, n)), t.append(n)) : (r(t), t = null), n = e;
r(t)
}
}(), !a.invalid) {
for (c in _) {
for (s = D[c], i = (n = _[c]).length; i--;)n[i].parent || n.splice(i, 1);
for (r = 0, o = s.length; r < o; r++)s[r](n, c, a)
}
for (r = 0, o = B.length; r < o; r++)if ((s = B[r]).name in O) {
for (i = (n = O[s.name]).length; i--;)n[i].parent || n.splice(i, 1);
for (i = 0, u = s.callbacks.length; i < u; i++)s.callbacks[i](n, s.name, a)
}
}
return k
}
};
return Tp(e, A), Cp.register(e, A), e
}
var _p = function (e, t, n) {
-1 === Xt.inArray(t, n) && (e.addAttributeFilter(n, function (e, t) {
for (var n = e.length; n--;)e[n].attr(t, null)
}), t.push(n))
}, Op = function (e, t, n) {
var r = da(n.getInner ? t.innerHTML : e.getOuterHTML(t));
return n.selection || vo(nr.fromDom(t)) ? r : Xt.trim(r)
}, Pp = function (e, t, n) {
var r = n.selection ? Fc({forced_root_block: !1}, n) : n, o = e.parse(t, r);
return hp.trimTrailingBr(o), o
}, Lp = function (e, t, n, r, o) {
var i, a, u, s, c = (i = r, El(t, n).serialize(i));
return a = e, s = c, (u = o).no_events || !a ? s : of(a, Fc(u, {content: s})).content
};
function Ip(e, t) {
var n = function r(a, u) {
var s, c, l, e = ["data-mce-selected"];
return s = u && u.dom ? u.dom : di.DOM, c = u && u.schema ? u.schema : Zo(a), a.entity_encoding = a.entity_encoding || "named", a.remove_trailing_brs = !("remove_trailing_brs"in a) || a.remove_trailing_brs, l = Bp(a, c), hp.register(l, a, s), {
schema: c,
addNodeFilter: l.addNodeFilter,
addAttributeFilter: l.addAttributeFilter,
serialize: function (e, t) {
var n = Fc({format: "html"}, t || {}), r = vp.process(u, e, n), o = Op(s, r, n), i = Pp(l, o, n);
return "tree" === n.format ? i : Lp(u, a, c, i, n)
},
addRules: function (e) {
c.addValidElements(e)
},
setRules: function (e) {
c.setValidElements(e)
},
addTempAttr: m(_p, l, e),
getTempAttrs: function () {
return e
}
}
}(e, t);
return {
schema: n.schema,
addNodeFilter: n.addNodeFilter,
addAttributeFilter: n.addAttributeFilter,
serialize: n.serialize,
addRules: n.addRules,
setRules: n.setRules,
addTempAttr: n.addTempAttr,
getTempAttrs: n.getTempAttrs
}
}
function Mp(e) {
return {getBookmark: m(sc, e), moveToBookmark: m(cc, e)}
}
(Mp || (Mp = {})).isBookmarkNode = lc;
var Fp, Up, zp = Mp, Vp = Ao.isContentEditableFalse, Hp = Ao.isContentEditableTrue, jp = function (r, a) {
var u, s, c, l, f, d, m, g, p, h, v, b, i, y, C, x, w, N = a.dom, E = Xt.each, S = a.getDoc(), T = document, k = Math.abs, A = Math.round, R = a.getBody();
l = {nw: [0, 0, -1, -1], ne: [1, 0, 1, -1], se: [1, 1, 1, 1], sw: [0, 1, -1, 1]};
var e = ".mce-content-body";
a.contentStyles.push(e + " div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: content-box;background: #FFF;width: 7px;height: 7px;z-index: 10000}" + e + " .mce-resizehandle:hover {background: #000}" + e + " img[data-mce-selected]," + e + " hr[data-mce-selected] {outline: 1px solid black;resize: none}" + e + " .mce-clonedresizable {position: absolute;" + (fe.gecko ? "" : "outline: 1px dashed black;") + "opacity: .5;filter: alpha(opacity=50);z-index: 10000}" + e + " .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}");
var D = function (e) {
return e && ("IMG" === e.nodeName || a.dom.is(e, "figure.image"))
}, n = function (e) {
var t, n, r = e.target;
t = e, n = a.selection.getRng(), !D(t.target) || Zd(t.clientX, t.clientY, n) || e.isDefaultPrevented() || (e.preventDefault(), a.selection.select(r))
}, B = function (e) {
return a.dom.is(e, "figure.image") ? e.querySelector("img") : e
}, _ = function (e) {
var t = a.settings.object_resizing;
return !1 !== t && !fe.iOS && ("string" != typeof t && (t = "table,img,figure.image,div"), "false" !== e.getAttribute("data-mce-resize") && e !== a.getBody() && Dr(nr.fromDom(e), t))
}, O = function (e) {
var t, n, r, o;
t = e.screenX - d, n = e.screenY - m, y = t * f[2] + h, C = n * f[3] + v, y = y < 5 ? 5 : y, C = C < 5 ? 5 : C, (D(u) && !1 !== a.settings.resize_img_proportional ? !um.modifierPressed(e) : um.modifierPressed(e) || D(u) && f[2] * f[3] != 0) && (k(t) > k(n) ? (C = A(y * b), y = A(C / b)) : (y = A(C / b), C = A(y * b))), N.setStyles(B(s), {
width: y,
height: C
}), r = 0 < (r = f.startPos.x + t) ? r : 0, o = 0 < (o = f.startPos.y + n) ? o : 0, N.setStyles(c, {
left: r,
top: o,
display: "block"
}), c.innerHTML = y + " &times; " + C, f[2] < 0 && s.clientWidth <= y && N.setStyle(s, "left", g + (h - y)), f[3] < 0 && s.clientHeight <= C && N.setStyle(s, "top", p + (v - C)), (t = R.scrollWidth - x) + (n = R.scrollHeight - w) != 0 && N.setStyles(c, {
left: r - t,
top: o - n
}), i || (sf(a, u, h, v), i = !0)
}, P = function () {
i = !1;
var e = function (e, t) {
t && (u.style[e] || !a.schema.isValid(u.nodeName.toLowerCase(), e) ? N.setStyle(B(u), e, t) : N.setAttrib(B(u), e, t))
};
e("width", y), e("height", C), N.unbind(S, "mousemove", O), N.unbind(S, "mouseup", P), T !== S && (N.unbind(T, "mousemove", O), N.unbind(T, "mouseup", P)), N.remove(s), N.remove(c), o(u), cf(a, u, y, C), N.setAttrib(u, "style", N.getAttrib(u, "style")), a.nodeChanged()
}, o = function (e) {
var t, r, o, n, i;
L(), F(), t = N.getPos(e, R), g = t.x, p = t.y, i = e.getBoundingClientRect(), r = i.width || i.right - i.left, o = i.height || i.bottom - i.top, u !== e && (u = e, y = C = 0), n = a.fire("ObjectSelected", {target: e}), _(e) && !n.isDefaultPrevented() ? E(l, function (n, e) {
var t;
(t = N.get("mceResizeHandle" + e)) && N.remove(t), t = N.add(R, "div", {
id: "mceResizeHandle" + e,
"data-mce-bogus": "all",
"class": "mce-resizehandle",
unselectable: !0,
style: "cursor:" + e + "-resize; margin:0; padding:0"
}), 11 === fe.ie && (t.contentEditable = !1), N.bind(t, "mousedown", function (e) {
var t;
e.stopImmediatePropagation(), e.preventDefault(), d = (t = e).screenX, m = t.screenY, h = B(u).clientWidth, v = B(u).clientHeight, b = v / h, (f = n).startPos = {
x: r * n[0] + g,
y: o * n[1] + p
}, x = R.scrollWidth, w = R.scrollHeight, s = u.cloneNode(!0), N.addClass(s, "mce-clonedresizable"), N.setAttrib(s, "data-mce-bogus", "all"), s.contentEditable = !1, s.unSelectabe = !0, N.setStyles(s, {
left: g,
top: p,
margin: 0
}), s.removeAttribute("data-mce-selected"), R.appendChild(s), N.bind(S, "mousemove", O), N.bind(S, "mouseup", P), T !== S && (N.bind(T, "mousemove", O), N.bind(T, "mouseup", P)), c = N.add(R, "div", {
"class": "mce-resize-helper",
"data-mce-bogus": "all"
}, h + " &times; " + v)
}), n.elm = t, N.setStyles(t, {
left: r * n[0] + g - t.offsetWidth / 2,
top: o * n[1] + p - t.offsetHeight / 2
})
}) : L(), u.setAttribute("data-mce-selected", "1")
}, L = function () {
var e, t;
for (e in F(), u && u.removeAttribute("data-mce-selected"), l)(t = N.get("mceResizeHandle" + e)) && (N.unbind(t), N.remove(t))
}, I = function (e) {
var t, n = function (e, t) {
if (e)do {
if (e === t)return !0
} while (e = e.parentNode)
};
i || a.removed || (E(N.select("img[data-mce-selected],hr[data-mce-selected]"), function (e) {
e.removeAttribute("data-mce-selected")
}), t = "mousedown" === e.type ? e.target : r.getNode(), n(t = N.$(t).closest("table,img,figure.image,hr")[0], R) && (U(), n(r.getStart(!0), t) && n(r.getEnd(!0), t)) ? o(t) : L())
}, M = function (e) {
return Vp(function (e, t) {
for (; t && t !== e;) {
if (Hp(t) || Vp(t))return t;
t = t.parentNode
}
return null
}(a.getBody(), e))
}, F = function () {
for (var e in l) {
var t = l[e];
t.elm && (N.unbind(t.elm), delete t.elm)
}
}, U = function () {
try {
a.getDoc().execCommand("enableObjectResizing", !1, !1)
} catch (e) {
}
};
return a.on("init", function () {
U(), fe.ie && 11 <= fe.ie && (a.on("mousedown click", function (e) {
var t = e.target, n = t.nodeName;
i || !/^(TABLE|IMG|HR)$/.test(n) || M(t) || (2 !== e.button && a.selection.select(t, "TABLE" === n), "mousedown" === e.type && a.nodeChanged())
}), a.dom.bind(R, "mscontrolselect", function (e) {
var t = function (e) {
he.setEditorTimeout(a, function () {
a.selection.select(e)
})
};
if (M(e.target))return e.preventDefault(), void t(e.target);
/^(TABLE|IMG|HR)$/.test(e.target.nodeName) && (e.preventDefault(), "IMG" === e.target.tagName && t(e.target))
}));
var t = he.throttle(function (e) {
a.composing || I(e)
});
a.on("nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged", t), a.on("keyup compositionend", function (e) {
u && "TABLE" === u.nodeName && t(e)
}), a.on("hide blur", L), a.on("contextmenu", n)
}), a.on("remove", F), {
isResizable: _,
showResizeRect: o,
hideResizeRect: L,
updateResizeRect: I,
destroy: function () {
u = s = null
}
}
}, qp = function (e) {
for (var t = 0, n = 0, r = e; r && r.nodeType;)t += r.offsetLeft || 0, n += r.offsetTop || 0, r = r.offsetParent;
return {x: t, y: n}
}, $p = function (e, t, n) {
var r, o, i, a, u, s = e.dom, c = s.getRoot(), l = 0;
if (u = {elm: t, alignToTop: n}, e.fire("scrollIntoView", u), !u.isDefaultPrevented() && Ao.isElement(t)) {
if (!1 === n && (l = t.offsetHeight), "BODY" !== c.nodeName) {
var f = e.selection.getScrollContainer();
if (f)return r = qp(t).y - qp(f).y + l, a = f.clientHeight, void((r < (i = f.scrollTop) || i + a < r + 25) && (f.scrollTop = r < i ? r : r - a + 25))
}
o = s.getViewPort(e.getWin()), r = s.getPos(t).y + l, i = o.y, a = o.h, (r < o.y || i + a < r + 25) && e.getWin().scrollTo(0, r < i ? r : r - a + 25)
}
}, Wp = function (d, e) {
Z(du.fromRangeStart(e).getClientRects()).each(function (e) {
var t, n, r, o, i, a, u, s, c, l = function (e) {
if (e.inline)return e.getBody().getBoundingClientRect();
var t = e.getWin();
return {
left: 0,
right: t.innerWidth,
top: 0,
bottom: t.innerHeight,
width: t.innerWidth,
height: t.innerHeight
}
}(d), f = {
x: (i = t = l, a = n = e, a.left > i.left && a.right < i.right ? 0 : a.left < i.left ? a.left - i.left : a.right - i.right),
y: (r = t, o = n, o.top > r.top && o.bottom < r.bottom ? 0 : o.top < r.top ? o.top - r.top : o.bottom - r.bottom)
};
s = 0 !== f.x ? 0 < f.x ? f.x + 4 : f.x - 4 : 0, c = 0 !== f.y ? 0 < f.y ? f.y + 4 : f.y - 4 : 0, (u = d).inline ? (u.getBody().scrollLeft += s, u.getBody().scrollTop += c) : u.getWin().scrollBy(s, c)
})
}, Kp = function (e) {
return Ao.isContentEditableTrue(e) || Ao.isContentEditableFalse(e)
}, Xp = function (e, t, n) {
var r, o, i, a, u, s = n;
if (s.caretPositionFromPoint)(o = s.caretPositionFromPoint(e, t)) && ((r = n.createRange()).setStart(o.offsetNode, o.offset), r.collapse(!0)); else if (n.caretRangeFromPoint)r = n.caretRangeFromPoint(e, t); else if (s.body.createTextRange) {
r = s.body.createTextRange();
try {
r.moveToPoint(e, t), r.collapse(!0)
} catch (c) {
r = function (e, n, t) {
var r, o, i;
if (r = t.elementFromPoint(e, n), o = t.body.createTextRange(), r && "HTML" !== r.tagName || (r = t.body), o.moveToElementText(r), 0 < (i = (i = Xt.toArray(o.getClientRects())).sort(function (e, t) {
return (e = Math.abs(Math.max(e.top - n, e.bottom - n))) - (t = Math.abs(Math.max(t.top - n, t.bottom - n)))
})).length) {
n = (i[0].bottom + i[0].top) / 2;
try {
return o.moveToPoint(e, n), o.collapse(!0), o
} catch (a) {
}
}
return null
}(e, t, n)
}
return i = r, a = n.body, u = i && i.parentElement ? i.parentElement() : null, Ao.isContentEditableFalse(function (e, t, n) {
for (; e && e !== t;) {
if (n(e))return e;
e = e.parentNode
}
return null
}(u, a, Kp)) ? null : i
}
return r
}, Yp = function (n, e) {
return W(e, function (e) {
var t = n.fire("GetSelectionRange", {range: e});
return t.range !== e ? t.range : e
})
}, Gp = function (e, t) {
var n = (t || document).createDocumentFragment();
return M(e, function (e) {
n.appendChild(e.dom())
}), nr.fromDom(n)
}, Jp = Nr("element", "width", "rows"), Qp = Nr("element", "cells"), Zp = Nr("x", "y"), eh = function (e, t) {
var n = parseInt(yr(e, t), 10);
return isNaN(n) ? 1 : n
}, th = function (e) {
return U(e, function (e, t) {
return t.cells().length > e ? t.cells().length : e
}, 0)
}, nh = function (e, t) {
for (var n = e.rows(), r = 0; r < n.length; r++)for (var o = n[r].cells(), i = 0; i < o.length; i++)if (_r(o[i], t))return A.some(Zp(i, r));
return A.none()
}, rh = function (e, t, n, r, o) {
for (var i = [], a = e.rows(), u = n; u <= o; u++) {
var s = a[u].cells(), c = t < r ? s.slice(t, r + 1) : s.slice(r, t + 1);
i.push(Qp(a[u].element(), c))
}
return i
}, oh = function (e) {
var o = Jp(ra(e), 0, []);
return M(zi(e, "tr"), function (n, r) {
M(zi(n, "td,th"), function (e, t) {
!function (e, t, n, r, o) {
for (var i = eh(o, "rowspan"), a = eh(o, "colspan"), u = e.rows(), s = n; s < n + i; s++) {
u[s] || (u[s] = Qp(oa(r), []));
for (var c = t; c < t + a; c++)u[s].cells()[c] = s === n && c === t ? o : ra(o)
}
}(o, function (e, t, n) {
for (; r = t, o = n, i = void 0, ((i = e.rows())[o] ? i[o].cells() : [])[r];)t++;
var r, o, i;
return t
}(o, t, r), r, n, e)
})
}), Jp(o.element(), th(o.rows()), o.rows())
}, ih = function (e) {
return n = W((t = e).rows(), function (e) {
var t = W(e.cells(), function (e) {
var t = oa(e);
return Cr(t, "colspan"), Cr(t, "rowspan"), t
}), n = ra(e.element());
return Ai(n, t), n
}), r = ra(t.element()), o = nr.fromTag("tbody"), Ai(o, n), ki(r, o), r;
var t, n, r, o
}, ah = function (l, e, t) {
return nh(l, e).bind(function (c) {
return nh(l, t).map(function (e) {
return t = l, r = e, o = (n = c).x(), i = n.y(), a = r.x(), u = r.y(), s = i < u ? rh(t, o, i, a, u) : rh(t, o, u, a, i), Jp(t.element(), th(s), s);
var t, n, r, o, i, a, u, s
})
})
}, uh = function (e) {
var t = [];
if (e)for (var n = 0; n < e.rangeCount; n++)t.push(e.getRangeAt(n));
return t
}, sh = uh, ch = function (e) {
return Y(e, function (e) {
var t = ja(e);
return t ? [nr.fromDom(t)] : []
})
}, lh = function (e) {
return 1 < uh(e).length
}, fh = function (e) {
return F(ch(e), ho)
}, dh = function (e) {
return zi(e, "td[data-mce-selected],th[data-mce-selected]")
}, mh = function (e, t) {
var n = dh(t), r = fh(e);
return 0 < n.length ? n : r
}, gh = mh, ph = function (e) {
return mh(sh(e.selection.getSel()), nr.fromDom(e.getBody()))
}, hh = function (n, t) {
return z(n, function (e) {
return "li" === ar(e) && Nd(e, t)
}).fold(q([]), function (e) {
return (t = n, z(t, function (e) {
return "ul" === ar(e) || "ol" === ar(e)
})).map(function (e) {
return [nr.fromTag("li"), nr.fromTag(ar(e))]
}).getOr([]);
var t
})
}, vh = function (e, t) {
var n, r = nr.fromDom(t.commonAncestorContainer), o = gd(r, e), i = F(o, function (e) {
return so(e) || ao(e)
}), a = hh(o, t), u = i.concat(a.length ? a : mo(n = r) ? Lr(n).filter(fo).fold(q([]), function (e) {
return [n, e]
}) : fo(n) ? [n] : []);
return W(u, ra)
}, bh = function () {
return Gp([])
}, yh = function (e, t) {
return n = nr.fromDom(t.cloneContents()), r = vh(e, t), o = U(r, function (e, t) {
return ki(t, e), t
}, n), 0 < r.length ? Gp([o]) : o;
var n, r, o
}, Ch = function (e, o) {
return (t = e, n = o[0], $i(n, "table", m(_r, t))).bind(function (e) {
var t = o[0], n = o[o.length - 1], r = oh(e);
return ah(r, t, n).map(function (e) {
return Gp([ih(e)])
})
}).getOrThunk(bh);
var t, n
}, xh = function (e, t) {
var n, r, o = gh(t, e);
return 0 < o.length ? Ch(e, o) : (n = e, 0 < (r = t).length && r[0].collapsed ? bh() : yh(n, r[0]))
}, wh = function (e, t) {
if (void 0 === t && (t = {}), t.get = !0, t.format = t.format || "html", t.selection = !0, (t = e.fire("BeforeGetContent", t)).isDefaultPrevented())return e.fire("GetContent", t), t.content;
if ("text" === t.format)return c = e, A.from(c.selection.getRng()).map(function (e) {
return da(e.toString())
}).getOr("");
t.getInner = !0;
var n, r, o, i, a, u, s, c, l = (r = t, i = (n = e).selection.getRng(), a = n.dom.create("body"), u = n.selection.getSel(), s = Yp(n, sh(u)), i.cloneContents ? (o = r.contextual ? xh(nr.fromDom(n.getBody()), s).dom() : i.cloneContents()) && a.appendChild(o) : a.innerHTML = i.toString(), n.selection.serializer.serialize(a, r));
return "tree" === t.format ? l : (t.content = e.selection.isCollapsed() ? "" : l, e.fire("GetContent", t), t.content)
}, Nh = function (e, t, n) {
return null !== function (e, t, n) {
for (; e && e !== t;) {
if (n(e))return e;
e = e.parentNode
}
return null
}(e, t, n)
}, Eh = function (e, t, n) {
return Nh(e, t, function (e) {
return e.nodeName === n
})
}, Sh = function (e) {
return e && "TABLE" === e.nodeName
}, Th = function (e, t, n) {
for (var r = new to(t, e.getParent(t.parentNode, e.isBlock) || e.getRoot()); t = r[n ? "prev" : "next"]();)if (Ao.isBr(t))return !0
}, kh = function (e, t, n, r, o) {
var i, a, u, s, c, l, f = e.getRoot(), d = e.schema.getNonEmptyElements();
if (u = e.getParent(o.parentNode, e.isBlock) || f, r && Ao.isBr(o) && t && e.isEmpty(u))return A.some(du(o.parentNode, e.nodeIndex(o)));
for (i = new to(o, u); s = i[r ? "prev" : "next"]();) {
if ("false" === e.getContentEditableParent(s) || (l = f, va(c = s) && !1 === Nh(c, l, Fu)))return A.none();
if (Ao.isText(s) && 0 < s.nodeValue.length)return !1 === Eh(s, f, "A") ? A.some(du(s, r ? s.nodeValue.length : 0)) : A.none();
if (e.isBlock(s) || d[s.nodeName.toLowerCase()])return A.none();
a = s
}
return n && a ? A.some(du(a, 0)) : A.none()
}, Ah = function (e, t, n, r) {
var o, i, a, u, s, c, l, f, d, m, g = e.getRoot(), p = !1;
if (o = r[(n ? "start" : "end") + "Container"], i = r[(n ? "start" : "end") + "Offset"], l = Ao.isElement(o) && i === o.childNodes.length, s = e.schema.getNonEmptyElements(), c = n, va(o))return A.none();
if (Ao.isElement(o) && i > o.childNodes.length - 1 && (c = !1), Ao.isDocument(o) && (o = g, i = 0), o === g) {
if (c && (u = o.childNodes[0 < i ? i - 1 : 0])) {
if (va(u))return A.none();
if (s[u.nodeName] || Sh(u))return A.none()
}
if (o.hasChildNodes()) {
if (i = Math.min(!c && 0 < i ? i - 1 : i, o.childNodes.length - 1), o = o.childNodes[i], i = Ao.isText(o) && l ? o.data.length : 0, !t && o === g.lastChild && Sh(o))return A.none();
if (function (e, t) {
for (; t && t !== e;) {
if (Ao.isContentEditableFalse(t))return !0;
t = t.parentNode
}
return !1
}(g, o) || va(o))return A.none();
if (o.hasChildNodes() && !1 === Sh(o)) {
a = new to(u = o, g);
do {
if (Ao.isContentEditableFalse(u) || va(u)) {
p = !1;
break
}
if (Ao.isText(u) && 0 < u.nodeValue.length) {
i = c ? 0 : u.nodeValue.length, o = u, p = !0;
break
}
if (s[u.nodeName.toLowerCase()] && (!(f = u) || !/^(TD|TH|CAPTION)$/.test(f.nodeName))) {
i = e.nodeIndex(u), o = u.parentNode, c || i++, p = !0;
break
}
} while (u = c ? a.next() : a.prev())
}
}
}
return t && (Ao.isText(o) && 0 === i && kh(e, l, t, !0, o).each(function (e) {
o = e.container(), i = e.offset(), p = !0
}), Ao.isElement(o) && ((u = o.childNodes[i]) || (u = o.childNodes[i - 1]), !u || !Ao.isBr(u) || (m = "A", (d = u).previousSibling && d.previousSibling.nodeName === m) || Th(e, u, !1) || Th(e, u, !0) || kh(e, l, t, !0, u).each(function (e) {
o = e.container(), i = e.offset(), p = !0
}))), c && !t && Ao.isText(o) && i === o.nodeValue.length && kh(e, l, t, !1, o).each(function (e) {
o = e.container(), i = e.offset(), p = !0
}), p ? A.some(du(o, i)) : A.none()
}, Rh = function (e, t) {
var n = t.collapsed, r = t.cloneRange(), o = du.fromRangeStart(t);
return Ah(e, n, !0, r).each(function (e) {
n && du.isAbove(o, e) || r.setStart(e.container(), e.offset())
}), n || Ah(e, n, !1, r).each(function (e) {
r.setEnd(e.container(), e.offset())
}), n && r.collapse(!0), Cd(t, r) ? A.none() : A.some(r)
}, Dh = function (e, t, n) {
var r, o, i, a = e.selection.getRng(), u = e.getDoc();
if ((n = n || {format: "html"}).set = !0, n.selection = !0, n.content = t, n.no_events || !(n = e.fire("BeforeSetContent", n)).isDefaultPrevented()) {
if (t = n.content, a.insertNode) {
t += '<span id="__caret">_</span>', a.startContainer === u && a.endContainer === u ? u.body.innerHTML = t : (a.deleteContents(), 0 === u.body.childNodes.length ? u.body.innerHTML = t : a.createContextualFragment ? a.insertNode(a.createContextualFragment(t)) : (o = u.createDocumentFragment(), i = u.createElement("div"), o.appendChild(i), i.outerHTML = t, a.insertNode(o))), r = e.dom.get("__caret"), (a = u.createRange()).setStartBefore(r), a.setEndBefore(r), e.selection.setRng(a), e.dom.remove("__caret");
try {
e.selection.setRng(a)
} catch (s) {
}
} else a.item && (u.execCommand("Delete", !1, null), a = e.getRng()), /^\s+/.test(t) ? (a.pasteHTML('<span id="__mce_tmp">_</span>' + t), e.dom.remove("__mce_tmp")) : a.pasteHTML(t);
n.no_events || e.fire("SetContent", n)
} else e.fire("SetContent", n)
}, Bh = function (e, t, n, r, o) {
var i = n ? t.startContainer : t.endContainer, a = n ? t.startOffset : t.endOffset;
return A.from(i).map(nr.fromDom).map(function (e) {
return r && t.collapsed ? e : zr(e, o(e, a)).getOr(e)
}).bind(function (e) {
return sr(e) ? A.some(e) : Lr(e)
}).map(function (e) {
return e.dom()
}).getOr(e)
}, _h = function (e, t, n) {
return Bh(e, t, !0, n, function (e, t) {
return Math.min(e.dom().childNodes.length, t)
})
}, Oh = function (e, t, n) {
return Bh(e, t, !1, n, function (e, t) {
return 0 < t ? t - 1 : t
})
}, Ph = function (e, t) {
for (var n = e; e && Ao.isText(e) && 0 === e.length;)e = t ? e.nextSibling : e.previousSibling;
return e || n
}, Lh = function (e, t, n) {
if (e && e.hasOwnProperty(t)) {
var r = F(e[t], function (e) {
return e !== n
});
0 === r.length ? delete e[t] : e[t] = r
}
}, Ih = function (e) {
return !!e.select
}, Mh = function (e) {
return !(!e || !e.ownerDocument) && Or(nr.fromDom(e.ownerDocument), nr.fromDom(e))
}, Fh = function (u, s, e, c) {
var n, t, l, f, r = function h(i, n) {
var a, u;
return {
selectorChangedWithUnbind: function (e, t) {
return a || (a = {}, u = {}, n.on("NodeChange", function (e) {
var n = e.element, r = i.getParents(n, null, i.getRoot()), o = {};
Xt.each(a, function (e, n) {
Xt.each(r, function (t) {
if (i.is(t, n))return u[n] || (Xt.each(e, function (e) {
e(!0, {node: t, selector: n, parents: r})
}), u[n] = e), o[n] = e, !1
})
}), Xt.each(u, function (e, t) {
o[t] || (delete u[t], Xt.each(e, function (e) {
e(!1, {node: n, selector: t, parents: r})
}))
})
})), a[e] || (a[e] = []), a[e].push(t), {
unbind: function () {
Lh(a, e, t), Lh(u, e, t)
}
}
}
}
}(u, c).selectorChangedWithUnbind, o = function (e, t) {
return Dh(c, e, t)
}, i = function (e) {
var t = m();
t.collapse(!!e), a(t)
}, d = function () {
return s.getSelection ? s.getSelection() : s.document.selection
}, m = function () {
var e, t, n, r, o = function (e, t, n) {
try {
return t.compareBoundaryPoints(e, n)
} catch (r) {
return -1
}
};
if (!s)return null;
if (null == (r = s.document))return null;
if (c.bookmark !== undefined && !1 === Zl(c)) {
var i = $l(c);
if (i.isSome())return i.map(function (e) {
return Yp(c, [e])[0]
}).getOr(r.createRange())
}
try {
(e = d()) && (t = 0 < e.rangeCount ? e.getRangeAt(0) : e.createRange ? e.createRange() : r.createRange())
} catch (a) {
}
return (t = Yp(c, [t])[0]) || (t = r.createRange ? r.createRange() : r.body.createTextRange()), t.setStart && 9 === t.startContainer.nodeType && t.collapsed && (n = u.getRoot(), t.setStart(n, 0), t.setEnd(n, 0)), l && f && (0 === o(t.START_TO_START, t, l) && 0 === o(t.END_TO_END, t, l) ? t = f : f = l = null), t
}, a = function (e, t) {
var n, r;
if ((o = e) && (Ih(o) || Mh(o.startContainer) && Mh(o.endContainer))) {
var o, i = Ih(e) ? e : null;
if (i) {
f = null;
try {
i.select()
} catch (a) {
}
} else {
if (n = d(), e = c.fire("SetSelectionRange", {range: e, forward: t}).range, n) {
f = e;
try {
n.removeAllRanges(), n.addRange(e)
} catch (a) {
}
!1 === t && n.extend && (n.collapse(e.endContainer, e.endOffset), n.extend(e.startContainer, e.startOffset)), l = 0 < n.rangeCount ? n.getRangeAt(0) : null
}
e.collapsed || e.startContainer !== e.endContainer || !n.setBaseAndExtent || fe.ie || e.endOffset - e.startOffset < 2 && e.startContainer.hasChildNodes() && (r = e.startContainer.childNodes[e.startOffset]) && "IMG" === r.tagName && (n.setBaseAndExtent(e.startContainer, e.startOffset, e.endContainer, e.endOffset), n.anchorNode === e.startContainer && n.focusNode === e.endContainer || n.setBaseAndExtent(r, 0, r, 1)), c.fire("AfterSetSelectionRange", {
range: e,
forward: t
})
}
}
}, g = function () {
var e, t, n = d();
return !(n && n.anchorNode && n.focusNode) || ((e = u.createRng()).setStart(n.anchorNode, n.anchorOffset), e.collapse(!0), (t = u.createRng()).setStart(n.focusNode, n.focusOffset), t.collapse(!0), e.compareBoundaryPoints(e.START_TO_START, t) <= 0)
}, p = {
bookmarkManager: null,
controlSelection: null,
dom: u,
win: s,
serializer: e,
editor: c,
collapse: i,
setCursorLocation: function (e, t) {
var n = u.createRng();
e ? (n.setStart(e, t), n.setEnd(e, t), a(n), i(!1)) : (Ed(u, n, c.getBody(), !0), a(n))
},
getContent: function (e) {
return wh(c, e)
},
setContent: o,
getBookmark: function (e, t) {
return n.getBookmark(e, t)
},
moveToBookmark: function (e) {
return n.moveToBookmark(e)
},
select: function (e, t) {
var r, n, o;
return (r = u, n = e, o = t, A.from(n).map(function (e) {
var t = r.nodeIndex(e), n = r.createRng();
return n.setStart(e.parentNode, t), n.setEnd(e.parentNode, t + 1), o && (Ed(r, n, e, !0), Ed(r, n, e, !1)), n
})).each(a), e
},
isCollapsed: function () {
var e = m(), t = d();
return !(!e || e.item) && (e.compareEndPoints ? 0 === e.compareEndPoints("StartToEnd", e) : !t || e.collapsed)
},
isForward: g,
setNode: function (e) {
return o(u.getOuterHTML(e)), e
},
getNode: function () {
return e = c.getBody(), (t = m()) ? (r = t.startContainer, o = t.endContainer, i = t.startOffset, a = t.endOffset, n = t.commonAncestorContainer, !t.collapsed && (r === o && a - i < 2 && r.hasChildNodes() && (n = r.childNodes[i]), 3 === r.nodeType && 3 === o.nodeType && (r = r.length === i ? Ph(r.nextSibling, !0) : r.parentNode, o = 0 === a ? Ph(o.previousSibling, !1) : o.parentNode, r && r === o)) ? r : n && 3 === n.nodeType ? n.parentNode : n) : e;
var e, t, n, r, o, i, a
},
getSel: d,
setRng: a,
getRng: m,
getStart: function (e) {
return _h(c.getBody(), m(), e)
},
getEnd: function (e) {
return Oh(c.getBody(), m(), e)
},
getSelectedBlocks: function (e, t) {
return function (e, t, n, r) {
var o, i, a = [];
if (i = e.getRoot(), n = e.getParent(n || _h(i, t, t.collapsed), e.isBlock), r = e.getParent(r || Oh(i, t, t.collapsed), e.isBlock), n && n !== i && a.push(n), n && r && n !== r)for (var u = new to(o = n, i); (o = u.next()) && o !== r;)e.isBlock(o) && a.push(o);
return r && n !== r && r !== i && a.push(r), a
}(u, m(), e, t)
},
normalize: function () {
var e = m(), t = d();
if (lh(t) || !Sd(c))return e;
var n = Rh(u, e);
return n.each(function (e) {
a(e, g())
}), n.getOr(e)
},
selectorChanged: function (e, t) {
return r(e, t), p
},
selectorChangedWithUnbind: r,
getScrollContainer: function () {
for (var e, t = u.getRoot(); t && "BODY" !== t.nodeName;) {
if (t.scrollHeight > t.clientHeight) {
e = t;
break
}
t = t.parentNode
}
return e
},
scrollIntoView: function (e, t) {
return $p(c, e, t)
},
placeCaretAt: function (e, t) {
return a(Xp(e, t, c.getDoc()))
},
getBoundingClientRect: function () {
var e = m();
return e.collapsed ? hu.fromRangeStart(e).getClientRects()[0] : e.getBoundingClientRect()
},
destroy: function () {
s = l = f = null, t.destroy()
}
};
return n = zp(p), t = jp(p, c), p.bookmarkManager = n, p.controlSelection = t, p
}, Uh = Ao.isText, zh = function (e) {
return Uh(e) && e.data[0] === fa
}, Vh = function (e) {
return Uh(e) && e.data[e.data.length - 1] === fa
}, Hh = function (e) {
return e.ownerDocument.createTextNode(fa)
}, jh = function (e, t) {
return e ? function (e) {
if (Uh(e.previousSibling))return Vh(e.previousSibling) || e.previousSibling.appendData(fa), e.previousSibling;
if (Uh(e))return zh(e) || e.insertData(0, fa), e;
var t = Hh(e);
return e.parentNode.insertBefore(t, e), t
}(t) : function (e) {
if (Uh(e.nextSibling))return zh(e.nextSibling) || e.nextSibling.insertData(0, fa), e.nextSibling;
if (Uh(e))return Vh(e) || e.appendData(fa), e;
var t = Hh(e);
return e.nextSibling ? e.parentNode.insertBefore(t, e.nextSibling) : e.parentNode.appendChild(t), t
}(t)
}, qh = m(jh, !0), $h = m(jh, !1), Wh = function (e, t) {
return Ao.isText(e.container()) ? jh(t, e.container()) : jh(t, e.getNode())
}, Kh = function (e, t) {
var n = t.get();
return n && e.container() === n && ha(n)
}, Xh = function (n, e) {
return e.fold(function (e) {
Yu.remove(n.get());
var t = qh(e);
return n.set(t), A.some(hu(t, t.length - 1))
}, function (e) {
return ec.firstPositionIn(e).map(function (e) {
if (Kh(e, n))return hu(n.get(), 1);
Yu.remove(n.get());
var t = Wh(e, !0);
return n.set(t), hu(t, 1)
})
}, function (e) {
return ec.lastPositionIn(e).map(function (e) {
if (Kh(e, n))return hu(n.get(), n.get().length - 1);
Yu.remove(n.get());
var t = Wh(e, !1);
return n.set(t), hu(t, t.length - 1)
})
}, function (e) {
Yu.remove(n.get());
var t = $h(e);
return n.set(t), A.some(hu(t, 1))
})
}, Yh = /[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/, Gh = function (e, t) {
var n = t.container(), r = t.offset();
return e ? ha(n) ? Ao.isText(n.nextSibling) ? hu(n.nextSibling, 0) : hu.after(n) : ya(t) ? hu(n, r + 1) : t : ha(n) ? Ao.isText(n.previousSibling) ? hu(n.previousSibling, n.previousSibling.data.length) : hu.before(n) : Ca(t) ? hu(n, r - 1) : t
}, Jh = {
isInlineTarget: function (e, t) {
var n = Tf(e, "inline_boundaries_selector").getOr("a[href],code");
return Dr(nr.fromDom(t), n)
},
findRootInline: function (e, t, n) {
var r, o, i, a = (r = e, o = t, i = n, F(di.DOM.getParents(i.container(), "*", o), r));
return A.from(a[a.length - 1])
},
isRtl: function (e) {
return "rtl" === di.DOM.getStyle(e, "direction", !0) || (t = e.textContent, Yh.test(t));
var t
},
isAtZwsp: function (e) {
return ya(e) || Ca(e)
},
normalizePosition: Gh,
normalizeForwards: m(Gh, !0),
normalizeBackwards: m(Gh, !1),
hasSameParentBlock: function (e, t, n) {
var r = ps(t, e), o = ps(n, e);
return r && r === o
}
}, Qh = function (e, t) {
for (var n = 0; n < e.length; n++) {
var r = e[n].apply(null, t);
if (r.isSome())return r
}
return A.none()
}, Zh = Rl([{before: ["element"]}, {start: ["element"]}, {end: ["element"]}, {after: ["element"]}]), ev = function (e, t) {
var n = ps(t, e);
return n || e
}, tv = function (e, t, n) {
var r = Jh.normalizeForwards(n), o = ev(t, r.container());
return Jh.findRootInline(e, o, r).fold(function () {
return ec.nextPosition(o, r).bind(m(Jh.findRootInline, e, o)).map(function (e) {
return Zh.before(e)
})
}, A.none)
}, nv = function (e, t) {
return null === Uu(e, t)
}, rv = function (e, t, n) {
return Jh.findRootInline(e, t, n).filter(m(nv, t))
}, ov = function (e, t, n) {
var r = Jh.normalizeBackwards(n);
return rv(e, t, r).bind(function (e) {
return ec.prevPosition(e, r).isNone() ? A.some(Zh.start(e)) : A.none()
})
}, iv = function (e, t, n) {
var r = Jh.normalizeForwards(n);
return rv(e, t, r).bind(function (e) {
return ec.nextPosition(e, r).isNone() ? A.some(Zh.end(e)) : A.none()
})
}, av = function (e, t, n) {
var r = Jh.normalizeBackwards(n), o = ev(t, r.container());
return Jh.findRootInline(e, o, r).fold(function () {
return ec.prevPosition(o, r).bind(m(Jh.findRootInline, e, o)).map(function (e) {
return Zh.after(e)
})
}, A.none)
}, uv = function (e) {
return !1 === Jh.isRtl(cv(e))
}, sv = function (e, t, n) {
return Qh([tv, ov, iv, av], [e, t, n]).filter(uv)
}, cv = function (e) {
return e.fold($, $, $, $)
}, lv = function (e) {
return e.fold(q("before"), q("start"), q("end"), q("after"))
}, fv = function (e) {
return e.fold(Zh.before, Zh.before, Zh.after, Zh.after)
}, dv = function (n, e, r, t, o, i) {
return Ka([Jh.findRootInline(e, r, t), Jh.findRootInline(e, r, o)], function (e, t) {
return e !== t && Jh.hasSameParentBlock(r, e, t) ? Zh.after(n ? e : t) : i
}).getOr(i)
}, mv = function (e, r) {
return e.fold(q(!0), function (e) {
return n = r, !(lv(t = e) === lv(n) && cv(t) === cv(n));
var t, n
})
}, gv = function (e, t) {
return e ? t.fold(j(A.some, Zh.start), A.none, j(A.some, Zh.after), A.none) : t.fold(A.none, j(A.some, Zh.before), A.none, j(A.some, Zh.end))
}, pv = function (a, u, s, c) {
var e = Jh.normalizePosition(a, c), l = sv(u, s, e);
return sv(u, s, e).bind(m(gv, a)).orThunk(function () {
return t = a, n = u, r = s, o = l, e = c, i = Jh.normalizePosition(t, e), ec.fromPosition(t, r, i).map(m(Jh.normalizePosition, t)).fold(function () {
return o.map(fv)
}, function (e) {
return sv(n, r, e).map(m(dv, t, n, r, i, e)).filter(m(mv, o))
}).filter(uv);
var t, n, r, o, e, i
})
}, hv = sv, vv = pv, bv = (m(pv, !1), m(pv, !0), fv), yv = function (e) {
return e.fold(Zh.start, Zh.start, Zh.end, Zh.end)
}, Cv = function (e) {
return O(e.selection.getSel().modify)
}, xv = function (e, t, n) {
var r = e ? 1 : -1;
return t.setRng(hu(n.container(), n.offset() + r).toRange()), t.getSel().modify("move", e ? "forward" : "backward", "word"), !0
}, wv = function (e, t) {
var n = t.selection.getRng(), r = e ? hu.fromRangeEnd(n) : hu.fromRangeStart(n);
return !!Cv(t) && (e && ya(r) ? xv(!0, t.selection, r) : !(e || !Ca(r)) && xv(!1, t.selection, r))
}, Nv = function (e, t) {
var n = e.dom.createRng();
n.setStart(t.container(), t.offset()), n.setEnd(t.container(), t.offset()), e.selection.setRng(n)
}, Ev = function (e) {
return !1 !== e.settings.inline_boundaries
}, Sv = function (e, t) {
e ? t.setAttribute("data-mce-selected", "inline-boundary") : t.removeAttribute("data-mce-selected")
}, Tv = function (t, e, n) {
return Xh(e, n).map(function (e) {
return Nv(t, e), n
})
}, kv = function (e, t, n) {
return function () {
return !!Ev(t) && wv(e, t)
}
}, Av = {
move: function (a, u, s) {
return function () {
return !!Ev(a) && (t = a, n = u, e = s, r = t.getBody(), o = hu.fromRangeStart(t.selection.getRng()), i = m(Jh.isInlineTarget, t), vv(e, i, r, o).bind(function (e) {
return Tv(t, n, e)
})).isSome();
var t, n, e, r, o, i
}
}, moveNextWord: m(kv, !0), movePrevWord: m(kv, !1), setupSelectedState: function (a) {
var u = yi(null), s = m(Jh.isInlineTarget, a);
return a.on("NodeChange", function (e) {
var t, n, r, o, i;
Ev(a) && (t = s, n = a.dom, r = e.parents, o = F(n.select('*[data-mce-selected="inline-boundary"]'), t), i = F(r, t), M(Q(o, i), m(Sv, !1)), M(Q(i, o), m(Sv, !0)), function (e, t) {
if (e.selection.isCollapsed() && !0 !== e.composing && t.get()) {
var n = hu.fromRangeStart(e.selection.getRng());
hu.isTextPosition(n) && !1 === Jh.isAtZwsp(n) && (Nv(e, Yu.removeAndReposition(t.get(), n)), t.set(null))
}
}(a, u), function (n, r, o, e) {
if (r.selection.isCollapsed()) {
var t = F(e, n);
M(t, function (e) {
var t = hu.fromRangeStart(r.selection.getRng());
hv(n, r.getBody(), t).bind(function (e) {
return Tv(r, o, e)
})
})
}
}(s, a, u, e.parents))
}), u
}, setCaretPosition: Nv
}, Rv = Ao.isContentEditableFalse, Dv = ja, Bv = As, _v = ks, Ov = function (e, t) {
for (; t = e(t);)if (t.isVisible())return t;
return t
}, Pv = function (e, t, n, r) {
var o, i, a, u, s, c, l = e === gu.Forwards, f = l ? _v : Bv;
return !r.collapsed && (o = Dv(r), Rv(o)) ? nm(e, t, o, e === gu.Backwards, !0) : (u = pa(r.startContainer), f(i = Ts(e, t.getBody(), r)) ? rm(t, i.getNode(!l)) : (i = n(i)) ? f(i) ? nm(e, t, i.getNode(!l), l, !0) : f(a = n(i)) && (!(c = hs(s = i, a)) && Ao.isBr(s.getNode()) || c) ? nm(e, t, a.getNode(!l), l, !0) : u ? im(t, i.toRange(), !0) : null : u ? r : null)
}, Lv = function (e, t, n, r) {
var o, i, a, u, s, c, l, f, d;
if (d = Dv(r), o = Ts(e, t.getBody(), r), i = n(t.getBody(), jd(1), o), a = jt.filter(i, qd(1)), s = jt.last(o.getClientRects()), (_v(o) || Rs(o)) && (d = o.getNode()), (Bv(o) || Ds(o)) && (d = o.getNode(!0)), !s)return null;
if (c = s.left, (u = Gd(a, c)) && Rv(u.node))return l = Math.abs(c - u.left), f = Math.abs(c - u.right), nm(e, t, u.node, l < f, !0);
if (d) {
var m = function (e, t, n, r) {
var o, i, a, u, s, c, l = $s(t), f = [], d = 0, m = function (e) {
return jt.last(e.getClientRects())
};
c = m(u = 1 === e ? (o = l.next, i = Ha, a = Va, hu.after(r)) : (o = l.prev, i = Va, a = Ha, hu.before(r)));
do {
if (u.isVisible() && !a(s = m(u), c)) {
if (0 < f.length && i(s, jt.last(f)) && d++, (s = Fa(s)).position = u, s.line = d, n(s))return f;
f.push(s)
}
} while (u = o(u));
return f
}(e, t.getBody(), jd(1), d);
if (u = Gd(jt.filter(m, qd(1)), c))return im(t, u.position.toRange(), !0);
if (u = jt.last(jt.filter(m, qd(0))))return im(t, u.position.toRange(), !0)
}
}, Iv = function (e, t, n) {
var r, o, i, a, u = $s(e.getBody()), s = sa.curry(Ov, u.next), c = sa.curry(Ov, u.prev);
if (n.collapsed && e.settings.forced_root_block) {
if (!(r = e.dom.getParent(n.startContainer, "PRE")))return;
(1 === t ? s(hu.fromRangeStart(n)) : c(hu.fromRangeStart(n))) || (a = (i = e).dom.create(nl(i)), (!fe.ie || 11 <= fe.ie) && (a.innerHTML = '<br data-mce-bogus="1">'), o = a, 1 === t ? e.$(r).after(o) : e.$(r).before(o), e.selection.select(o, !0), e.selection.collapse())
}
}, Mv = function (l, f) {
return function () {
var e, t, n, r, o, i, a, u, s, c = (t = f, r = $s((e = l).getBody()), o = sa.curry(Ov, r.next), i = sa.curry(Ov, r.prev), a = t ? gu.Forwards : gu.Backwards, u = t ? o : i, s = e.selection.getRng(), (n = Pv(a, e, u, s)) ? n : (n = Iv(e, a, s)) || null);
return !!c && (l.selection.setRng(c), !0)
}
}, Fv = function (u, s) {
return function () {
var e, t, n, r, o, i, a = (r = (t = s) ? 1 : -1, o = t ? Hd : Vd, i = (e = u).selection.getRng(), (n = Lv(r, e, o, i)) ? n : (n = Iv(e, r, i)) || null);
return !!a && (u.selection.setRng(a), !0)
}
};
(Up = Fp || (Fp = {}))[Up.Br = 0] = "Br", Up[Up.Block = 1] = "Block", Up[Up.Wrap = 2] = "Wrap", Up[Up.Eol = 3] = "Eol";
var Uv = function (e, t) {
return e === gu.Backwards ? t.reverse() : t
}, zv = function (e, t, n, r) {
for (var o, i, a, u, s, c, l = $s(n), f = r, d = []; f && (s = l, c = f, o = t === gu.Forwards ? s.next(c) : s.prev(c));) {
if (Ao.isBr(o.getNode(!1)))return t === gu.Forwards ? {
positions: Uv(t, d).concat([o]),
breakType: Fp.Br,
breakAt: A.some(o)
} : {positions: Uv(t, d), breakType: Fp.Br, breakAt: A.some(o)};
if (o.isVisible()) {
if (e(f, o)) {
var m = (i = t, a = f, u = o, Ao.isBr(u.getNode(i === gu.Forwards)) ? Fp.Br : !1 === hs(a, u) ? Fp.Block : Fp.Wrap);
return {positions: Uv(t, d), breakType: m, breakAt: A.some(o)}
}
d.push(o), f = o
} else f = o
}
return {positions: Uv(t, d), breakType: Fp.Eol, breakAt: A.none()}
}, Vv = function (n, r, o, e) {
return r(o, e).breakAt.map(function (e) {
var t = r(o, e).positions;
return n === gu.Backwards ? t.concat(e) : [e].concat(t)
}).getOr([])
}, Hv = function (e, i) {
return U(e, function (e, o) {
return e.fold(function () {
return A.some(o)
}, function (r) {
return Ka([Z(r.getClientRects()), Z(o.getClientRects())], function (e, t) {
var n = Math.abs(i - e.left);
return Math.abs(i - t.left) <= n ? o : r
}).or(e)
})
}, A.none())
}, jv = function (t, e) {
return Z(e.getClientRects()).bind(function (e) {
return Hv(t, e.left)
})
}, qv = m(zv, du.isAbove, -1), $v = m(zv, du.isBelow, 1), Wv = m(Vv, -1, qv), Kv = m(Vv, 1, $v), Xv = function (e, t, n, r, o) {
var i, a, u, s, c = zi(nr.fromDom(n), "td,th,caption").map(function (e) {
return e.dom()
}), l = F((i = e, Y(c, function (e) {
var t, n, r = (t = Fa(e.getBoundingClientRect()), n = -1, {
left: t.left - n,
top: t.top - n,
right: t.right + 2 * n,
bottom: t.bottom + 2 * n,
width: t.width + n,
height: t.height + n
});
return [{x: r.left, y: i(r), cell: e}, {x: r.right, y: i(r), cell: e}]
})), function (e) {
return t(e, o)
});
return (a = l, u = r, s = o, U(a, function (e, r) {
return e.fold(function () {
return A.some(r)
}, function (e) {
var t = Math.sqrt(Math.abs(e.x - u) + Math.abs(e.y - s)), n = Math.sqrt(Math.abs(r.x - u) + Math.abs(r.y - s));
return A.some(n < t ? r : e)
})
}, A.none())).map(function (e) {
return e.cell
})
}, Yv = m(Xv, function (e) {
return e.bottom
}, function (e, t) {
return e.y < t
}), Gv = m(Xv, function (e) {
return e.top
}, function (e, t) {
return e.y > t
}), Jv = function (t, n) {
return Z(n.getClientRects()).bind(function (e) {
return Yv(t, e.left, e.top)
}).bind(function (e) {
return jv((t = e, ec.lastPositionIn(t).map(function (e) {
return qv(t, e).positions.concat(e)
}).getOr([])), n);
var t
})
}, Qv = function (t, n) {
return ee(n.getClientRects()).bind(function (e) {
return Gv(t, e.left, e.top)
}).bind(function (e) {
return jv((t = e, ec.firstPositionIn(t).map(function (e) {
return [e].concat($v(t, e).positions)
}).getOr([])), n);
var t
})
}, Zv = function (e, t) {
e.selection.setRng(t), Wp(e, t)
}, eb = function (e, t, n) {
var r, o, i, a, u = e(t, n);
return (a = u).breakType === Fp.Wrap && 0 === a.positions.length || !Ao.isBr(n.getNode()) && (i = u).breakType === Fp.Br && 1 === i.positions.length ? (r = e, o = t, !u.breakAt.map(function (e) {
return r(o, e).breakAt.isSome()
}).getOr(!1)) : u.breakAt.isNone()
}, tb = m(eb, qv), nb = m(eb, $v), rb = function (e, t, n, r) {
var o, i, a, u, s = e.selection.getRng(), c = t ? 1 : -1;
if (es() && (o = t, i = s, a = n, u = hu.fromRangeStart(i), ec.positionIn(!o, a).map(function (e) {
return e.isEqual(u)
}).getOr(!1))) {
var l = nm(c, e, n, !t, !0);
return Zv(e, l), !0
}
return !1
}, ob = function (e, t) {
var n = t.getNode(e);
return Ao.isElement(n) && "TABLE" === n.nodeName ? A.some(n) : A.none()
}, ib = function (u, s, c) {
var e = ob(!!s, c), t = !1 === s;
e.fold(function () {
return Zv(u, c.toRange())
}, function (a) {
return ec.positionIn(t, u.getBody()).filter(function (e) {
return e.isEqual(c)
}).fold(function () {
return Zv(u, c.toRange())
}, function (e) {
return n = s, o = a, t = c, void((i = nl(r = u)) ? r.undoManager.transact(function () {
var e = nr.fromTag(i);
br(e, rl(r)), ki(e, nr.fromTag("br")), n ? Ti(nr.fromDom(o), e) : Si(nr.fromDom(o), e);
var t = r.dom.createRng();
t.setStart(e.dom(), 0), t.setEnd(e.dom(), 0), Zv(r, t)
}) : Zv(r, t.toRange()));
var n, r, o, t, i
})
})
}, ab = function (e, t, n, r) {
var o, i, a, u, s, c, l = e.selection.getRng(), f = hu.fromRangeStart(l), d = e.getBody();
if (t || !tb(r, f))return !(!t || !nb(r, f)) && (o = d, m = Qv(i = n, a = f).orThunk(function () {
return Z(a.getClientRects()).bind(function (e) {
return Hv(Kv(o, hu.after(i)), e.left)
})
}).getOr(hu.after(i)), ib(e, t, m), !0);
var m = (u = d, Jv(s = n, c = f).orThunk(function () {
return Z(c.getClientRects()).bind(function (e) {
return Hv(Wv(u, hu.before(s)), e.left)
})
}).getOr(hu.before(s)));
return ib(e, t, m), !0
}, ub = function (t, n) {
return function () {
return A.from(t.dom.getParent(t.selection.getNode(), "td,th")).bind(function (e) {
return A.from(t.dom.getParent(e, "table")).map(function (e) {
return rb(t, n, e)
})
}).getOr(!1)
}
}, sb = function (n, r) {
return function () {
return A.from(n.dom.getParent(n.selection.getNode(), "td,th")).bind(function (t) {
return A.from(n.dom.getParent(t, "table")).map(function (e) {
return ab(n, r, e, t)
})
}).getOr(!1)
}
}, cb = function (e, r) {
return Y(W(e, function (e) {
return Fc({shiftKey: !1, altKey: !1, ctrlKey: !1, metaKey: !1, keyCode: 0, action: x}, e)
}), function (e) {
return t = e, (n = r).keyCode === t.keyCode && n.shiftKey === t.shiftKey && n.altKey === t.altKey && n.ctrlKey === t.ctrlKey && n.metaKey === t.metaKey ? [e] : [];
var t, n
})
}, lb = function (e) {
for (var t = [], n = 1; n < arguments.length; n++)t[n - 1] = arguments[n];
var r = Array.prototype.slice.call(arguments, 1);
return function () {
return e.apply(null, r)
}
}, fb = function (e, t) {
return z(cb(e, t), function (e) {
return e.action()
})
}, db = function (i, a) {
i.on("keydown", function (e) {
var t, n, r, o;
!1 === e.isDefaultPrevented() && (t = i, n = a, r = e, o = er.detect().os, fb([{
keyCode: um.RIGHT,
action: Mv(t, !0)
}, {keyCode: um.LEFT, action: Mv(t, !1)}, {keyCode: um.UP, action: Fv(t, !1)}, {
keyCode: um.DOWN,
action: Fv(t, !0)
}, {keyCode: um.RIGHT, action: ub(t, !0)}, {keyCode: um.LEFT, action: ub(t, !1)}, {
keyCode: um.UP,
action: sb(t, !1)
}, {keyCode: um.DOWN, action: sb(t, !0)}, {keyCode: um.RIGHT, action: Av.move(t, n, !0)}, {
keyCode: um.LEFT,
action: Av.move(t, n, !1)
}, {
keyCode: um.RIGHT,
ctrlKey: !o.isOSX(),
altKey: o.isOSX(),
action: Av.moveNextWord(t, n)
}, {
keyCode: um.LEFT,
ctrlKey: !o.isOSX(),
altKey: o.isOSX(),
action: Av.movePrevWord(t, n)
}], r).each(function (e) {
r.preventDefault()
}))
})
}, mb = function (e, t) {
return Or(e, t) ? qi(t, function (e) {
return lo(e) || mo(e)
}, (n = e, function (e) {
return _r(n, nr.fromDom(e.dom().parentNode))
})) : A.none();
var n
}, gb = function (e) {
var t, n, r;
e.dom.isEmpty(e.getBody()) && (e.setContent(""), n = (t = e).getBody(), r = n.firstChild && t.dom.isBlock(n.firstChild) ? n.firstChild : n, t.selection.setCursorLocation(r, 0))
}, pb = function (i, a, u) {
return Ka([ec.firstPositionIn(u), ec.lastPositionIn(u)], function (e, t) {
var n = Jh.normalizePosition(!0, e), r = Jh.normalizePosition(!1, t), o = Jh.normalizePosition(!1, a);
return i ? ec.nextPosition(u, o).map(function (e) {
return e.isEqual(r) && a.isEqual(n)
}).getOr(!1) : ec.prevPosition(u, o).map(function (e) {
return e.isEqual(n) && a.isEqual(r)
}).getOr(!1)
}).getOr(!0)
}, hb = Nr("block", "position"), vb = Nr("from", "to"), bb = function (e, t) {
var n = nr.fromDom(e), r = nr.fromDom(t.container());
return mb(n, r).map(function (e) {
return hb(e, t)
})
}, yb = function (o, i, e) {
var t = bb(o, hu.fromRangeStart(e)), n = t.bind(function (e) {
return ec.fromPosition(i, o, e.position()).bind(function (e) {
return bb(o, e).map(function (e) {
return t = o, n = i, r = e, Ao.isBr(r.position().getNode()) && !1 === Qm(r.block()) ? ec.positionIn(!1, r.block().dom()).bind(function (e) {
return e.isEqual(r.position()) ? ec.fromPosition(n, t, e).bind(function (e) {
return bb(t, e)
}) : A.some(r)
}).getOr(r) : r;
var t, n, r
})
})
});
return Ka([t, n], vb).filter(function (e) {
return !1 === _r((r = e).from().block(), r.to().block()) && Lr((n = e).from().block()).bind(function (t) {
return Lr(n.to().block()).filter(function (e) {
return _r(t, e)
})
}).isSome() && (t = e, !1 === Ao.isContentEditableFalse(t.from().block()) && !1 === Ao.isContentEditableFalse(t.to().block()));
var t, n, r
})
}, Cb = function (e, t, n) {
return n.collapsed ? yb(e, t, n) : A.none()
}, xb = function (e) {
var t, n = (t = Ur(e), V(t, uo).fold(function () {
return t
}, function (e) {
return t.slice(0, e)
}));
return M(n, Di), n
}, wb = function (e, t) {
var n = gd(t, e);
return z(n.reverse(), Qm).each(Di)
}, Nb = function (e, t, n, r) {
if (Qm(n))return Pm(n), ec.firstPositionIn(n.dom());
0 === F(Fr(r), function (e) {
return !Qm(e)
}).length && Qm(t) && Si(r, nr.fromTag("br"));
var o = ec.prevPosition(n.dom(), hu.before(r.dom()));
return M(xb(t), function (e) {
Si(r, e)
}), wb(e, t), o
}, Eb = function (e, t, n) {
if (Qm(n))return Di(n), Qm(t) && Pm(t), ec.firstPositionIn(t.dom());
var r = ec.lastPositionIn(n.dom());
return M(xb(t), function (e) {
ki(n, e)
}), wb(e, t), r
}, Sb = function (e, t) {
return Or(t, e) ? (n = gd(e, t), A.from(n[n.length - 1])) : A.none();
var n
}, Tb = function (e, t) {
ec.positionIn(e, t.dom()).map(function (e) {
return e.getNode()
}).map(nr.fromDom).filter(co).each(Di)
}, kb = function (e, t, n) {
return Tb(!0, t), Tb(!1, n), Sb(t, n).fold(m(Eb, e, t, n), m(Nb, e, t, n))
}, Ab = function (e, t, n, r) {
return t ? kb(e, r, n) : kb(e, n, r)
}, Rb = function (t, n) {
var e, r = nr.fromDom(t.getBody());
return (e = Cb(r.dom(), n, t.selection.getRng()).bind(function (e) {
return Ab(r, n, e.from().block(), e.to().block())
})).each(function (e) {
t.selection.setRng(e.toRange())
}), e.isSome()
}, Db = function (e, t) {
var n = nr.fromDom(t), r = m(_r, e);
return ji(n, ho, r).isSome()
}, Bb = function (e, t) {
var n, r, o = ec.prevPosition(e.dom(), hu.fromRangeStart(t)).isNone(), i = ec.nextPosition(e.dom(), hu.fromRangeEnd(t)).isNone();
return !(Db(n = e, (r = t).startContainer) || Db(n, r.endContainer)) && o && i
}, _b = function (e) {
var n, r, o, t, i = nr.fromDom(e.getBody()), a = e.selection.getRng();
return Bb(i, a) ? ((t = e).setContent(""), t.selection.setCursorLocation(), !0) : (n = i, r = e.selection, o = r.getRng(), Ka([mb(n, nr.fromDom(o.startContainer)), mb(n, nr.fromDom(o.endContainer))], function (e, t) {
return !1 === _r(e, t) && (o.deleteContents(), Ab(n, !0, e, t).each(function (e) {
r.setRng(e.toRange())
}), !0)
}).getOr(!1))
}, Ob = function (e, t) {
return !e.selection.isCollapsed() && _b(e)
}, Pb = function (e) {
return Ps(e).exists(co)
}, Lb = function (e, t, n) {
var r = F(gd(nr.fromDom(n.container()), t), uo), o = Z(r).getOr(t);
return ec.fromPosition(e, o.dom(), n).filter(Pb)
}, Ib = function (e, t) {
return Ps(t).exists(co) || Lb(!0, e, t).isSome()
}, Mb = function (e, t) {
return (n = t, A.from(n.getNode(!0)).map(nr.fromDom)).exists(co) || Lb(!1, e, t).isSome();
var n
}, Fb = m(Lb, !1), Ub = m(Lb, !0), zb = Rl([{remove: ["element"]}, {moveToElement: ["element"]}, {moveToPosition: ["position"]}]), Vb = function (e, t, n, r) {
var o = r.getNode(!1 === t);
return mb(nr.fromDom(e), nr.fromDom(n.getNode())).map(function (e) {
return Qm(e) ? zb.remove(e.dom()) : zb.moveToElement(o)
}).orThunk(function () {
return A.some(zb.moveToElement(o))
})
}, Hb = function (u, s, c) {
return ec.fromPosition(s, u, c).bind(function (e) {
return a = e.getNode(), ho(nr.fromDom(a)) || mo(nr.fromDom(a)) ? A.none() : (t = u, o = e, i = function (e) {
return so(nr.fromDom(e)) && !hs(r, o, t)
}, Ss(!(n = s), r = c).fold(function () {
return Ss(n, o).fold(q(!1), i)
}, i) ? A.none() : s && Ao.isContentEditableFalse(e.getNode()) ? Vb(u, s, c, e) : !1 === s && Ao.isContentEditableFalse(e.getNode(!0)) ? Vb(u, s, c, e) : s && As(c) ? A.some(zb.moveToPosition(e)) : !1 === s && ks(c) ? A.some(zb.moveToPosition(e)) : A.none());
var t, n, r, o, i, a
})
}, jb = function (r, e, o) {
return i = e, a = o.getNode(!1 === i), u = i ? "after" : "before", Ao.isElement(a) && a.getAttribute("data-mce-caret") === u ? (t = e, n = o.getNode(!1 === e), t && Ao.isContentEditableFalse(n.nextSibling) ? A.some(zb.moveToElement(n.nextSibling)) : !1 === t && Ao.isContentEditableFalse(n.previousSibling) ? A.some(zb.moveToElement(n.previousSibling)) : A.none()).fold(function () {
return Hb(r, e, o)
}, A.some) : Hb(r, e, o).bind(function (e) {
return t = r, n = o, e.fold(function (e) {
return A.some(zb.remove(e))
}, function (e) {
return A.some(zb.moveToElement(e))
}, function (e) {
return hs(n, e, t) ? A.none() : A.some(zb.moveToPosition(e))
});
var t, n
});
var t, n, i, a, u
}, qb = function (a, u) {
var e, t, n, r, o, i;
return (e = a.getBody(), t = u, n = a.selection.getRng(), r = ws(t ? 1 : -1, e, n), o = hu.fromRangeStart(r), i = nr.fromDom(e), !1 === t && As(o) ? A.some(zb.remove(o.getNode(!0))) : t && ks(o) ? A.some(zb.remove(o.getNode())) : !1 === t && ks(o) && Mb(i, o) ? Fb(i, o).map(function (e) {
return zb.remove(e.getNode())
}) : t && As(o) && Ib(i, o) ? Ub(i, o).map(function (e) {
return zb.remove(e.getNode())
}) : jb(e, t, o)).map(function (e) {
return e.fold((o = a, i = u, function (e) {
return o._selectionOverrides.hideFakeCaret(), cg(o, i, nr.fromDom(e)), !0
}), (n = a, r = u, function (e) {
var t = r ? hu.before(e) : hu.after(e);
return n.selection.setRng(t.toRange()), !0
}), (t = a, function (e) {
return t.selection.setRng(e.toRange()), !0
}));
var t, n, r, o, i
}).getOr(!1)
}, $b = function (e, t) {
var n, r = e.selection.getNode();
return !!Ao.isContentEditableFalse(r) && (n = nr.fromDom(e.getBody()), M(zi(n, ".mce-offscreen-selection"), Di), cg(e, t, nr.fromDom(e.selection.getNode())), gb(e), !0)
}, Wb = function (e, t) {
return e.selection.isCollapsed() ? qb(e, t) : $b(e, t)
}, Kb = function (e) {
var t, n = function (e, t) {
for (; t && t !== e;) {
if (Ao.isContentEditableTrue(t) || Ao.isContentEditableFalse(t))return t;
t = t.parentNode
}
return null
}(e.getBody(), e.selection.getNode());
return Ao.isContentEditableTrue(n) && e.dom.isBlock(n) && e.dom.isEmpty(n) && (t = e.dom.create("br", {"data-mce-bogus": "1"}), e.dom.setHTML(n, ""), n.appendChild(t), e.selection.setRng(hu.before(t).toRange())), !0
}, Xb = function (t, n) {
return function (e) {
return Xh(n, e).map(function (e) {
return Av.setCaretPosition(t, e), !0
}).getOr(!1)
}
}, Yb = function (r, o, i, a) {
var u = r.getBody(), s = m(Jh.isInlineTarget, r);
r.undoManager.ignore(function () {
var e, t, n;
r.selection.setRng((e = i, t = a, (n = document.createRange()).setStart(e.container(), e.offset()), n.setEnd(t.container(), t.offset()), n)), r.execCommand("Delete"), hv(s, u, hu.fromRangeStart(r.selection.getRng())).map(yv).map(Xb(r, o))
}), r.nodeChanged()
}, Gb = function (n, r, i, o) {
var e, t, a = (e = n.getBody(), t = o.container(), ps(t, e) || e), u = m(Jh.isInlineTarget, n), s = hv(u, a, o);
return s.bind(function (e) {
return i ? e.fold(q(A.some(yv(e))), A.none, q(A.some(bv(e))), A.none) : e.fold(A.none, q(A.some(bv(e))), A.none, q(A.some(yv(e))))
}).map(Xb(n, r)).getOrThunk(function () {
var t = ec.navigate(i, a, o), e = t.bind(function (e) {
return hv(u, a, e)
});
return s.isSome() && e.isSome() ? Jh.findRootInline(u, a, o).map(function (e) {
return o = e, !!Ka([ec.firstPositionIn(o), ec.lastPositionIn(o)], function (e, t) {
var n = Jh.normalizePosition(!0, e), r = Jh.normalizePosition(!1, t);
return ec.nextPosition(o, n).map(function (e) {
return e.isEqual(r)
}).getOr(!0)
}).getOr(!0) && (cg(n, i, nr.fromDom(e)), !0);
var o
}).getOr(!1) : e.bind(function (e) {
return t.map(function (e) {
return i ? Yb(n, r, o, e) : Yb(n, r, e, o), !0
})
}).getOr(!1)
})
}, Jb = function (e, t, n) {
if (e.selection.isCollapsed() && !1 !== e.settings.inline_boundaries) {
var r = hu.fromRangeStart(e.selection.getRng());
return Gb(e, t, n, r)
}
return !1
}, Qb = function (e) {
return 1 === Ur(e).length
}, Zb = function (e, t, n, r) {
var o, i, a, u, s = m(xg, t), c = W(F(r, s), function (e) {
return e.dom()
});
if (0 === c.length)cg(t, e, n); else {
var l = (o = n.dom(), i = c, a = gg(!1), u = yg(i, a.dom()), Si(nr.fromDom(o), a), Di(nr.fromDom(o)), hu(u, 0));
t.selection.setRng(l.toRange())
}
}, ey = function (r, o) {
var t, e = nr.fromDom(r.getBody()), n = nr.fromDom(r.selection.getStart()), i = F((t = gd(n, e), V(t, uo).fold(q(t), function (e) {
return t.slice(0, e)
})), Qb);
return ee(i).map(function (e) {
var t, n = hu.fromRangeStart(r.selection.getRng());
return !(!pb(o, n, e.dom()) || Fu((t = e).dom()) && dg(t.dom()) || (Zb(o, r, e, i), 0))
}).getOr(!1)
}, ty = function (e, t) {
return !!e.selection.isCollapsed() && ey(e, t)
}, ny = Nr("start", "end"), ry = Nr("rng", "table", "cells"), oy = Rl([{removeTable: ["element"]}, {emptyCells: ["cells"]}]), iy = function (e, t) {
return Ki(nr.fromDom(e), "td,th", t)
}, ay = function (e, t) {
return $i(e, "table", t)
}, uy = function (e) {
return !1 === _r(e.start(), e.end())
}, sy = function (e, n) {
return ay(e.start(), n).bind(function (t) {
return ay(e.end(), n).bind(function (e) {
return _r(t, e) ? A.some(t) : A.none()
})
})
}, cy = function (e) {
return zi(e, "td,th")
}, ly = function (r, e) {
var t = iy(e.startContainer, r), n = iy(e.endContainer, r);
return e.collapsed ? A.none() : Ka([t, n], ny).fold(function () {
return t.fold(function () {
return n.bind(function (t) {
return ay(t, r).bind(function (e) {
return Z(cy(e)).map(function (e) {
return ny(e, t)
})
})
})
}, function (t) {
return ay(t, r).bind(function (e) {
return ee(cy(e)).map(function (e) {
return ny(t, e)
})
})
})
}, function (e) {
return fy(r, e) ? A.none() : (n = r, ay((t = e).start(), n).bind(function (e) {
return ee(cy(e)).map(function (e) {
return ny(t.start(), e)
})
}));
var t, n
})
}, fy = function (e, t) {
return sy(t, e).isSome()
}, dy = function (e, t) {
var n, r, o, i, a = m(_r, e);
return (n = t, r = a, o = iy(n.startContainer, r), i = iy(n.endContainer, r), Ka([o, i], ny).filter(uy).filter(function (e) {
return fy(r, e)
}).orThunk(function () {
return ly(r, n)
})).bind(function (e) {
return sy(t = e, a).map(function (e) {
return ry(t, e, cy(e))
});
var t
})
}, my = function (e, t) {
return V(e, function (e) {
return _r(e, t)
})
}, gy = function (n) {
return (r = n, Ka([my(r.cells(), r.rng().start()), my(r.cells(), r.rng().end())], function (e, t) {
return r.cells().slice(e, t + 1)
})).map(function (e) {
var t = n.cells();
return e.length === t.length ? oy.removeTable(n.table()) : oy.emptyCells(e)
});
var r
}, py = function (e, t) {
return dy(e, t).bind(gy)
}, hy = function (e, t) {
return M(t, Pm), e.selection.setCursorLocation(t[0].dom(), 0), !0
}, vy = function (e, t) {
return cg(e, !1, t), !0
}, by = function (n, e, r, t) {
return Cy(e, t).fold(function () {
return t = n, py(e, r).map(function (e) {
return e.fold(m(vy, t), m(hy, t))
});
var t
}, function (e) {
return xy(n, e)
}).getOr(!1)
}, yy = function (e, t) {
return z(gd(t, e), ho)
}, Cy = function (e, t) {
return z(gd(t, e), function (e) {
return "caption" === ar(e)
})
}, xy = function (e, t) {
return Pm(t), e.selection.setCursorLocation(t.dom(), 0), A.some(!0)
}, wy = function (u, s, c, l, f) {
return ec.navigate(c, u.getBody(), f).bind(function (e) {
return r = l, o = c, i = f, a = e, ec.firstPositionIn(r.dom()).bind(function (t) {
return ec.lastPositionIn(r.dom()).map(function (e) {
return o ? i.isEqual(t) && a.isEqual(e) : i.isEqual(e) && a.isEqual(t)
})
}).getOr(!0) ? xy(u, l) : (t = l, n = e, Cy(s, nr.fromDom(n.getNode())).map(function (e) {
return !1 === _r(e, t)
}));
var t, n, r, o, i, a
}).or(A.some(!0))
}, Ny = function (a, u, s, e) {
var c = hu.fromRangeStart(a.selection.getRng());
return yy(s, e).bind(function (e) {
return Qm(e) ? xy(a, e) : (t = a, n = s, r = u, o = e, i = c, ec.navigate(r, t.getBody(), i).bind(function (e) {
return yy(n, nr.fromDom(e.getNode())).map(function (e) {
return !1 === _r(e, o)
})
}));
var t, n, r, o, i
})
}, Ey = function (a, u, e) {
var s = nr.fromDom(a.getBody());
return Cy(s, e).fold(function () {
return Ny(a, u, s, e)
}, function (e) {
return t = a, n = u, r = s, o = e, i = hu.fromRangeStart(t.selection.getRng()), Qm(o) ? xy(t, o) : wy(t, r, n, o, i);
var t, n, r, o, i
}).getOr(!1)
}, Sy = function (e, t) {
var n, r, o, i, a, u = nr.fromDom(e.selection.getStart(!0)), s = ph(e);
return e.selection.isCollapsed() && 0 === s.length ? Ey(e, t, u) : (n = e, r = u, o = nr.fromDom(n.getBody()), i = n.selection.getRng(), 0 !== (a = ph(n)).length ? hy(n, a) : by(n, o, i, r))
}, Ty = function (o, i) {
o.on("keydown", function (e) {
var t, n, r;
!1 === e.isDefaultPrevented() && (t = o, n = i, r = e, fb([{
keyCode: um.BACKSPACE,
action: lb(Wb, t, !1)
}, {keyCode: um.DELETE, action: lb(Wb, t, !0)}, {
keyCode: um.BACKSPACE,
action: lb(Jb, t, n, !1)
}, {keyCode: um.DELETE, action: lb(Jb, t, n, !0)}, {
keyCode: um.BACKSPACE,
action: lb(Sy, t, !1)
}, {keyCode: um.DELETE, action: lb(Sy, t, !0)}, {
keyCode: um.BACKSPACE,
action: lb(Ob, t, !1)
}, {keyCode: um.DELETE, action: lb(Ob, t, !0)}, {
keyCode: um.BACKSPACE,
action: lb(Rb, t, !1)
}, {keyCode: um.DELETE, action: lb(Rb, t, !0)}, {
keyCode: um.BACKSPACE,
action: lb(ty, t, !1)
}, {keyCode: um.DELETE, action: lb(ty, t, !0)}], r).each(function (e) {
r.preventDefault()
}))
}), o.on("keyup", function (e) {
var t, n;
!1 === e.isDefaultPrevented() && (t = o, n = e, fb([{
keyCode: um.BACKSPACE,
action: lb(Kb, t)
}, {keyCode: um.DELETE, action: lb(Kb, t)}], n))
})
}, ky = function (e) {
return A.from(e.dom.getParent(e.selection.getStart(!0), e.dom.isBlock))
}, Ay = function (e, t) {
var n, r, o, i = t, a = e.dom, u = e.schema.getMoveCaretBeforeOnEnterElements();
if (t) {
if (/^(LI|DT|DD)$/.test(t.nodeName)) {
var s = function (e) {
for (; e;) {
if (1 === e.nodeType || 3 === e.nodeType && e.data && /[\r\n\s]/.test(e.data))return e;
e = e.nextSibling
}
}(t.firstChild);
s && /^(UL|OL|DL)$/.test(s.nodeName) && t.insertBefore(a.doc.createTextNode("\xa0"), t.firstChild)
}
if (o = a.createRng(), t.normalize(), t.hasChildNodes()) {
for (n = new to(t, t); r = n.current();) {
if (Ao.isText(r)) {
o.setStart(r, 0), o.setEnd(r, 0);
break
}
if (u[r.nodeName.toLowerCase()]) {
o.setStartBefore(r), o.setEndBefore(r);
break
}
i = r, r = n.next()
}
r || (o.setStart(i, 0), o.setEnd(i, 0))
} else Ao.isBr(t) ? t.nextSibling && a.isBlock(t.nextSibling) ? (o.setStartBefore(t), o.setEndBefore(t)) : (o.setStartAfter(t), o.setEndAfter(t)) : (o.setStart(t, 0), o.setEnd(t, 0));
e.selection.setRng(o), a.remove(void 0), e.selection.scrollIntoView(t)
}
}, Ry = function (e, t) {
var n, r, o = e.getRoot();
for (n = t; n !== o && "false" !== e.getContentEditable(n);)"true" === e.getContentEditable(n) && (r = n), n = n.parentNode;
return n !== o ? r : o
}, Dy = ky, By = function (e) {
return ky(e).fold(q(""), function (e) {
return e.nodeName.toUpperCase()
})
}, _y = function (e) {
return ky(e).filter(function (e) {
return mo(nr.fromDom(e))
}).isSome()
}, Oy = function (e, t) {
return e && e.parentNode && e.parentNode.nodeName === t
}, Py = function (e) {
return e && /^(OL|UL|LI)$/.test(e.nodeName)
}, Ly = function (e) {
var t = e.parentNode;
return /^(LI|DT|DD)$/.test(t.nodeName) ? t : e
}, Iy = function (e, t, n) {
for (var r = e[n ? "firstChild" : "lastChild"]; r && !Ao.isElement(r);)r = r[n ? "nextSibling" : "previousSibling"];
return r === t
}, My = function (e, t, n, r, o) {
var i = e.dom, a = e.selection.getRng();
if (n !== e.getBody()) {
var u;
Py(u = n) && Py(u.parentNode) && (o = "LI");
var s, c, l = o ? t(o) : i.create("BR");
if (Iy(n, r, !0) && Iy(n, r, !1))Oy(n, "LI") ? i.insertAfter(l, Ly(n)) : i.replace(l, n); else if (Iy(n, r, !0))Oy(n, "LI") ? (i.insertAfter(l, Ly(n)), l.appendChild(i.doc.createTextNode(" ")), l.appendChild(n)) : n.parentNode.insertBefore(l, n); else if (Iy(n, r, !1))i.insertAfter(l, Ly(n)); else {
n = Ly(n);
var f = a.cloneRange();
f.setStartAfter(r), f.setEndAfter(n);
var d = f.extractContents();
"LI" === o && (c = "LI", (s = d).firstChild && s.firstChild.nodeName === c) ? (l = d.firstChild, i.insertAfter(d, n)) : (i.insertAfter(d, n), i.insertAfter(l, n))
}
i.remove(r), Ay(e, l)
}
}, Fy = function (e) {
e.innerHTML = '<br data-mce-bogus="1">'
}, Uy = function (e, t) {
return e.nodeName === t || e.previousSibling && e.previousSibling.nodeName === t
}, zy = function (e, t) {
return t && e.isBlock(t) && !/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName) && !/^(fixed|absolute)/i.test(t.style.position) && "true" !== e.getContentEditable(t)
}, Vy = function (e, t, n) {
return !1 === Ao.isText(t) ? n : e ? 1 === n && t.data.charAt(n - 1) === fa ? 0 : n : n === t.data.length - 1 && t.data.charAt(n) === fa ? t.data.length : n
}, Hy = function (e, t) {
var n, r, o = e.getRoot();
for (n = t; n !== o && "false" !== e.getContentEditable(n);)"true" === e.getContentEditable(n) && (r = n), n = n.parentNode;
return n !== o ? r : o
}, jy = function (e, t) {
var n = nl(e);
n && n.toLowerCase() === t.tagName.toLowerCase() && e.dom.setAttribs(t, rl(e))
}, qy = function (a, e) {
var t, u, s, i, c, n, r, o, l, f, d, m, g, p, h, v, b, y, C = a.dom, x = a.schema, w = x.getNonEmptyElements(), N = a.selection.getRng(), E = function (e) {
var t, n, r, o = s, i = x.getTextInlineElements();
if (e || "TABLE" === f || "HR" === f ? (t = C.create(e || m), jy(a, t)) : t = c.cloneNode(!1), r = t, !1 === al(a))C.setAttrib(t, "style", null), C.setAttrib(t, "class", null); else do {
if (i[o.nodeName]) {
if (Fu(o))continue;
n = o.cloneNode(!1), C.setAttrib(n, "id", ""), t.hasChildNodes() ? n.appendChild(t.firstChild) : r = n, t.appendChild(n)
}
} while ((o = o.parentNode) && o !== u);
return Fy(r), t
}, S = function (e) {
var t, n, r, o;
if (o = Vy(e, s, i), Ao.isText(s) && (e ? 0 < o : o < s.nodeValue.length))return !1;
if (s.parentNode === c && g && !e)return !0;
if (e && Ao.isElement(s) && s === c.firstChild)return !0;
if (Uy(s, "TABLE") || Uy(s, "HR"))return g && !e || !g && e;
for (t = new to(s, c), Ao.isText(s) && (e && 0 === o ? t.prev() : e || o !== s.nodeValue.length || t.next()); n = t.current();) {
if (Ao.isElement(n)) {
if (!n.getAttribute("data-mce-bogus") && (r = n.nodeName.toLowerCase(), w[r] && "br" !== r))return !1
} else if (Ao.isText(n) && !/^[ \t\r\n]*$/.test(n.nodeValue))return !1;
e ? t.prev() : t.next()
}
return !0
}, T = function () {
r = /^(H[1-6]|PRE|FIGURE)$/.test(f) && "HGROUP" !== d ? E(m) : E(), ul(a) && zy(C, l) && C.isEmpty(c) ? r = C.split(l, c) : C.insertAfter(r, c), Ay(a, r)
};
Rh(C, N).each(function (e) {
N.setStart(e.startContainer, e.startOffset), N.setEnd(e.endContainer, e.endOffset)
}), s = N.startContainer, i = N.startOffset, m = nl(a), n = e.shiftKey, Ao.isElement(s) && s.hasChildNodes() && (g = i > s.childNodes.length - 1, s = s.childNodes[Math.min(i, s.childNodes.length - 1)] || s, i = g && Ao.isText(s) ? s.nodeValue.length : 0), (u = Hy(C, s)) && ((m && !n || !m && n) && (s = function (e, t, n, r, o) {
var i, a, u, s, c, l, f, d = t || "P", m = e.dom, g = Hy(m, r);
if (!(a = m.getParent(r, m.isBlock)) || !zy(m, a)) {
if (l = (a = a || g) === e.getBody() || (f = a) && /^(TD|TH|CAPTION)$/.test(f.nodeName) ? a.nodeName.toLowerCase() : a.parentNode.nodeName.toLowerCase(), !a.hasChildNodes())return i = m.create(d), jy(e, i), a.appendChild(i), n.setStart(i, 0), n.setEnd(i, 0), i;
for (s = r; s.parentNode !== a;)s = s.parentNode;
for (; s && !m.isBlock(s);)s = (u = s).previousSibling;
if (u && e.schema.isValidChild(l, d.toLowerCase())) {
for (i = m.create(d), jy(e, i), u.parentNode.insertBefore(i, u), s = u; s && !m.isBlock(s);)c = s.nextSibling, i.appendChild(s), s = c;
n.setStart(r, o), n.setEnd(r, o)
}
}
return r
}(a, m, N, s, i)), c = C.getParent(s, C.isBlock), l = c ? C.getParent(c.parentNode, C.isBlock) : null, f = c ? c.nodeName.toUpperCase() : "", "LI" !== (d = l ? l.nodeName.toUpperCase() : "") || e.ctrlKey || (l = (c = l).parentNode, f = d), /^(LI|DT|DD)$/.test(f) && C.isEmpty(c) ? My(a, E, l, c, m) : m && c === a.getBody() || (m = m || "P", pa(c) ? (r = Ea(c), C.isEmpty(c) && Fy(c), Ay(a, r)) : S() ? T() : S(!0) ? (r = c.parentNode.insertBefore(E(), c), Ay(a, Uy(c, "HR") ? r : c)) : ((t = (b = N, y = b.cloneRange(), y.setStart(b.startContainer, Vy(!0, b.startContainer, b.startOffset)), y.setEnd(b.endContainer, Vy(!1, b.endContainer, b.endOffset)), y).cloneRange()).setEndAfter(c), function (e) {
for (; Ao.isText(e) && (e.nodeValue = e.nodeValue.replace(/^[\r\n]+/, "")), e = e.firstChild;);
}(o = t.extractContents()), r = o.firstChild, C.insertAfter(o, c), function (e, t, n) {
var r, o = n, i = [];
if (o) {
for (; o = o.firstChild;) {
if (e.isBlock(o))return;
Ao.isElement(o) && !t[o.nodeName.toLowerCase()] && i.push(o)
}
for (r = i.length; r--;)!(o = i[r]).hasChildNodes() || o.firstChild === o.lastChild && "" === o.firstChild.nodeValue ? e.remove(o) : (a = o) && "A" === a.nodeName && 0 === Xt.trim(da(a.innerText || a.textContent)).length && e.remove(o);
var a
}
}(C, w, r), p = C, (h = c).normalize(), (v = h.lastChild) && !/^(left|right)$/gi.test(p.getStyle(v, "float", !0)) || p.add(h, "br"), C.isEmpty(c) && Fy(c), r.normalize(), C.isEmpty(r) ? (C.remove(r), T()) : Ay(a, r)), C.setAttrib(r, "id", ""), a.fire("NewBlock", {newBlock: r})))
}, $y = function (e, t, n) {
var r = e.create("span", {}, "&nbsp;");
n.parentNode.insertBefore(r, n), t.scrollIntoView(r), e.remove(r)
}, Wy = function (e, t, n, r) {
var o = e.createRng();
r ? (o.setStartBefore(n), o.setEndBefore(n)) : (o.setStartAfter(n), o.setEndAfter(n)), t.setRng(o)
}, Ky = function (e, t) {
var n, r, o = e.selection, i = e.dom, a = o.getRng();
Rh(i, a).each(function (e) {
a.setStart(e.startContainer, e.startOffset), a.setEnd(e.endContainer, e.endOffset)
});
var u = a.startOffset, s = a.startContainer;
if (1 === s.nodeType && s.hasChildNodes()) {
var c = u > s.childNodes.length - 1;
s = s.childNodes[Math.min(u, s.childNodes.length - 1)] || s, u = c && 3 === s.nodeType ? s.nodeValue.length : 0
}
var l = i.getParent(s, i.isBlock), f = l ? i.getParent(l.parentNode, i.isBlock) : null, d = f ? f.nodeName.toUpperCase() : "", m = t && t.ctrlKey;
"LI" !== d || m || (l = f), s && 3 === s.nodeType && u >= s.nodeValue.length && (function (e, t, n) {
for (var r, o = new to(t, n), i = e.getNonEmptyElements(); r = o.next();)if (i[r.nodeName.toLowerCase()] || 0 < r.length)return !0
}(e.schema, s, l) || (n = i.create("br"), a.insertNode(n), a.setStartAfter(n), a.setEndAfter(n), r = !0)), n = i.create("br"), a.insertNode(n), $y(i, o, n), Wy(i, o, n, r), e.undoManager.add()
}, Xy = function (e, t) {
var n = nr.fromTag("br");
Si(nr.fromDom(t), n), e.undoManager.add()
}, Yy = function (e, t) {
Gy(e.getBody(), t) || Ti(nr.fromDom(t), nr.fromTag("br"));
var n = nr.fromTag("br");
Ti(nr.fromDom(t), n), $y(e.dom, e.selection, n.dom()), Wy(e.dom, e.selection, n.dom(), !1), e.undoManager.add()
}, Gy = function (e, t) {
return n = hu.after(t), !!Ao.isBr(n.getNode()) || ec.nextPosition(e, hu.after(t)).map(function (e) {
return Ao.isBr(e.getNode())
}).getOr(!1);
var n
}, Jy = function (e) {
return e && "A" === e.nodeName && "href"in e
}, Qy = function (e) {
return e.fold(q(!1), Jy, Jy, q(!1))
}, Zy = function (e, t) {
t.fold(x, m(Xy, e), m(Yy, e), x)
}, eC = function (e, t) {
var n, r, o, i = (n = e, r = m(Jh.isInlineTarget, n), o = hu.fromRangeStart(n.selection.getRng()), hv(r, n.getBody(), o).filter(Qy));
i.isSome() ? i.each(m(Zy, e)) : Ky(e, t)
}, tC = function (e, t) {
return Dy(e).filter(function (e) {
return 0 < t.length && Dr(nr.fromDom(e), t)
}).isSome()
}, nC = function (e) {
return tC(e, ol(e))
}, rC = function (e) {
return tC(e, il(e))
}, oC = Rl([{br: []}, {block: []}, {none: []}]), iC = function (e, t) {
return rC(e)
}, aC = function (n) {
return function (e, t) {
return "" === nl(e) === n
}
}, uC = function (n) {
return function (e, t) {
return _y(e) === n
}
}, sC = function (n, r) {
return function (e, t) {
return By(e) === n.toUpperCase() === r
}
}, cC = function (e) {
return sC("pre", e)
}, lC = function (n) {
return function (e, t) {
return tl(e) === n
}
}, fC = function (e, t) {
return nC(e)
}, dC = function (e, t) {
return t
}, mC = function (e) {
var t = nl(e), n = Ry(e.dom, e.selection.getStart());
return n && e.schema.isValidChild(n.nodeName, t || "P")
}, gC = function (e, t) {
return function (n, r) {
return U(e, function (e, t) {
return e && t(n, r)
}, !0) ? A.some(t) : A.none()
}
}, pC = function (e, t) {
return Qh([gC([iC], oC.none()), gC([sC("summary", !0)], oC.br()), gC([cC(!0), lC(!1), dC], oC.br()), gC([cC(!0), lC(!1)], oC.block()), gC([cC(!0), lC(!0), dC], oC.block()), gC([cC(!0), lC(!0)], oC.br()), gC([uC(!0), dC], oC.br()), gC([uC(!0)], oC.block()), gC([aC(!0), dC, mC], oC.block()), gC([aC(!0)], oC.br()), gC([fC], oC.br()), gC([aC(!1), dC], oC.br()), gC([mC], oC.block())], [e, t.shiftKey]).getOr(oC.none())
}, hC = function (e, t) {
pC(e, t).fold(function () {
eC(e, t)
}, function () {
qy(e, t)
}, x)
}, vC = function (o) {
o.on("keydown", function (e) {
var t, n, r;
e.keyCode === um.ENTER && (t = o, (n = e).isDefaultPrevented() || (n.preventDefault(), (r = t.undoManager).typing && (r.typing = !1, r.add()), t.undoManager.transact(function () {
!1 === t.selection.isCollapsed() && t.execCommand("Delete"), hC(t, n)
})))
})
}, bC = function (n, r) {
var e = r.container(), t = r.offset();
return Ao.isText(e) ? (e.insertData(t, n), A.some(du(e, t + n.length))) : Ps(r).map(function (e) {
var t = nr.fromText(n);
return r.isAtEnd() ? Ti(e, t) : Si(e, t), du(t.dom(), n.length)
})
}, yC = m(bC, "\xa0"), CC = m(bC, " "), xC = function (t, e, n) {
var r = F(gd(nr.fromDom(n.container()), e), uo);
return Z(r).exists(function (e) {
return ec.navigate(t, e.dom(), n).isNone()
})
}, wC = m(xC, !1), NC = m(xC, !0), EC = function (e) {
return du.isTextPosition(e) && !e.isAtStart() && !e.isAtEnd()
}, SC = function (e, t) {
var n = F(gd(nr.fromDom(t.container()), e), uo);
return Z(n).getOr(e)
}, TC = function (e, t) {
return EC(t) ? Os(t) : Os(t) || ec.prevPosition(SC(e, t).dom(), t).exists(Os)
}, kC = function (e, t) {
return EC(t) ? _s(t) : _s(t) || ec.nextPosition(SC(e, t).dom(), t).exists(_s)
}, AC = function (e) {
return Ps(e).bind(function (e) {
return qi(e, sr)
}).exists(function (e) {
return t = xr(e, "white-space"), I(["pre", "pre-line", "pre-wrap"], t);
var t
})
}, RC = function (e, t) {
return !AC(t) && (wC(n = e, r = t) || NC(n, r) || Mb(n, r) || Ib(n, r) || TC(e, t) || kC(e, t));
var n, r
}, DC = function (e, t) {
return ns(e.charAt(t))
}, BC = function (e) {
var t = e.container();
return Ao.isText(t) && $n(t.data, "\xa0")
}, _C = function (e, t, n) {
var r, o, i = du(t, 0);
return DC(n, 0) && (r = e, AC(o = i) || !(wC(r, o) || Mb(r, o) || TC(r, o))) ? " " + n.slice(1) : n
}, OC = function (e, t, n) {
var r, o, i = du(t, n.length);
return DC(n, n.length - 1) && (r = e, AC(o = i) || !(NC(r, o) || Ib(r, o) || kC(r, o))) ? n.slice(0, -1) + " " : n
}, PC = function (i, e) {
return A.some(e).filter(BC).bind(function (e) {
var t, n = e.container(), r = n.nodeValue, o = _C(i, n, (t = OC(i, n, r), W(t.split(""), function (e, t, n) {
return ns(e) && 0 < t && t < n.length - 1 && os(n[t - 1]) && os(n[t + 1]) ? " " : e
}).join("")));
return r !== o ? (e.container().nodeValue = o, A.some(e)) : A.none()
})
}, LC = function (t) {
return function (e) {
return t.selection.setRng(e.toRange()), t.nodeChanged(), !0
}
}, IC = function (n) {
var t, r, o, i = hu.fromRangeStart(n.selection.getRng()), a = nr.fromDom(n.getBody());
if (n.selection.isCollapsed()) {
var e = m(Jh.isInlineTarget, n), u = hu.fromRangeStart(n.selection.getRng());
return hv(e, n.getBody(), u).bind((o = a, function (e) {
return e.fold(function (e) {
return ec.prevPosition(o.dom(), hu.before(e))
}, function (e) {
return ec.firstPositionIn(e)
}, function (e) {
return ec.lastPositionIn(e)
}, function (e) {
return ec.nextPosition(o.dom(), hu.after(e))
})
})).bind((t = a, r = i, function (e) {
return RC(t, e) ? yC(r) : CC(r)
})).fold(function () {
return (e = a, t = i, RC(e, t) ? yC(t) : CC(t)).map(LC(n)).getOr(!1);
var e, t
}, LC(n))
}
return !1
}, MC = function (r) {
r.on("keydown", function (e) {
var t, n;
!1 === e.isDefaultPrevented() && (t = r, n = e, fb([{
keyCode: um.SPACEBAR,
action: lb(IC, t)
}], n).each(function (e) {
n.preventDefault()
}))
})
}, FC = function (e, t) {
var n;
t.hasAttribute("data-mce-caret") && (Ea(t), (n = e).selection.setRng(n.selection.getRng()), e.selection.scrollIntoView(t))
}, UC = function (e, t) {
var n, r = (n = e, Wi(nr.fromDom(n.getBody()), "*[data-mce-caret]").fold(q(null), function (e) {
return e.dom()
}));
if (r)return "compositionstart" === t.type ? (t.preventDefault(), t.stopPropagation(), void FC(e, r)) : void(ba(r) && (FC(e, r), e.undoManager.add()))
}, zC = function (e) {
e.on("keyup compositionstart", m(UC, e))
}, VC = function (r) {
r.on("input", function (e) {
var t, n;
!1 === e.isComposing && (t = r, n = nr.fromDom(t.getBody()), t.selection.isCollapsed() && PC(n, du.fromRangeStart(t.selection.getRng())).each(function (e) {
t.selection.setRng(e.toRange())
}))
})
}, HC = function (e) {
var t = Av.setupSelectedState(e);
zC(e), db(e, t), Ty(e, t), vC(e), MC(e), VC(e)
};
function jC(u) {
var s, n, r, o = Xt.each, c = um.BACKSPACE, l = um.DELETE, f = u.dom, d = u.selection, e = u.settings, t = u.parser, i = fe.gecko, a = fe.ie, m = fe.webkit, g = "data:text/mce-internal,", p = a ? "Text" : "URL", h = function (e, t) {
try {
u.getDoc().execCommand(e, !1, t)
} catch (n) {
}
}, v = function (e) {
return e.isDefaultPrevented()
}, b = function () {
u.shortcuts.add("meta+a", null, "SelectAll")
}, y = function () {
u.on("keydown", function (e) {
if (!v(e) && e.keyCode === c && d.isCollapsed() && 0 === d.getRng().startOffset) {
var t = d.getNode().previousSibling;
if (t && t.nodeName && "table" === t.nodeName.toLowerCase())return e.preventDefault(), !1
}
})
}, C = function () {
u.inline || (u.contentStyles.push("body {min-height: 150px}"), u.on("click", function (e) {
var t;
if ("HTML" === e.target.nodeName) {
if (11 < fe.ie)return void u.getBody().focus();
t = u.selection.getRng(), u.getBody().focus(), u.selection.setRng(t), u.selection.normalize(), u.nodeChanged()
}
}))
};
return u.on("keydown", function (e) {
var t, n, r, o, i;
if (!v(e) && e.keyCode === um.BACKSPACE && (n = (t = d.getRng()).startContainer, r = t.startOffset, o = f.getRoot(), i = n, t.collapsed && 0 === r)) {
for (; i && i.parentNode && i.parentNode.firstChild === i && i.parentNode !== o;)i = i.parentNode;
"BLOCKQUOTE" === i.tagName && (u.formatter.toggle("blockquote", null, i), (t = f.createRng()).setStart(n, 0), t.setEnd(n, 0), d.setRng(t))
}
}), s = function (e) {
var t = f.create("body"), n = e.cloneContents();
return t.appendChild(n), d.serializer.serialize(t, {format: "html"})
}, u.on("keydown", function (e) {
var t, n, r, o, i, a = e.keyCode;
if (!v(e) && (a === l || a === c)) {
if (t = u.selection.isCollapsed(), n = u.getBody(), t && !f.isEmpty(n))return;
if (!t && (r = u.selection.getRng(), o = s(r), (i = f.createRng()).selectNode(u.getBody()), o !== s(i)))return;
e.preventDefault(), u.setContent(""), n.firstChild && f.isBlock(n.firstChild) ? u.selection.setCursorLocation(n.firstChild, 0) : u.selection.setCursorLocation(n, 0), u.nodeChanged()
}
}), fe.windowsPhone || u.on("keyup focusin mouseup", function (e) {
um.modifierPressed(e) || d.normalize()
}, !0), m && (u.inline || f.bind(u.getDoc(), "mousedown mouseup", function (e) {
var t;
if (e.target === u.getDoc().documentElement)if (t = d.getRng(), u.getBody().focus(), "mousedown" === e.type) {
if (va(t.startContainer))return;
d.placeCaretAt(e.clientX, e.clientY)
} else d.setRng(t)
}), u.on("click", function (e) {
var t = e.target;
/^(IMG|HR)$/.test(t.nodeName) && "false" !== f.getContentEditableParent(t) && (e.preventDefault(), u.selection.select(t), u.nodeChanged()), "A" === t.nodeName && f.hasClass(t, "mce-item-anchor") && (e.preventDefault(), d.select(t))
}), e.forced_root_block && u.on("init", function () {
h("DefaultParagraphSeparator", nl(u))
}), u.on("init", function () {
u.dom.bind(u.getBody(), "submit", function (e) {
e.preventDefault()
})
}), y(), t.addNodeFilter("br", function (e) {
for (var t = e.length; t--;)"Apple-interchange-newline" === e[t].attr("class") && e[t].remove()
}), fe.iOS ? (u.inline || u.on("keydown", function () {
document.activeElement === document.body && u.getWin().focus()
}), C(), u.on("click", function (e) {
var t = e.target;
do {
if ("A" === t.tagName)return void e.preventDefault()
} while (t = t.parentNode)
}), u.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")) : b()), 11 <= fe.ie && (C(), y()), fe.ie && (b(), h("AutoUrlDetect", !1), u.on("dragstart", function (e) {
var t, n, r;
(t = e).dataTransfer && (u.selection.isCollapsed() && "IMG" === t.target.tagName && d.select(t.target), 0 < (n = u.selection.getContent()).length && (r = g + escape(u.id) + "," + escape(n), t.dataTransfer.setData(p, r)))
}), u.on("drop", function (e) {
if (!v(e)) {
var t = (i = e).dataTransfer && (a = i.dataTransfer.getData(p)) && 0 <= a.indexOf(g) ? (a = a.substr(g.length).split(","), {
id: unescape(a[0]),
html: unescape(a[1])
}) : null;
if (t && t.id !== u.id) {
e.preventDefault();
var n = Xp(e.x, e.y, u.getDoc());
d.setRng(n), r = t.html, o = !0, u.queryCommandSupported("mceInsertClipboardContent") ? u.execCommand("mceInsertClipboardContent", !1, {
content: r,
internal: o
}) : u.execCommand("mceInsertContent", !1, r)
}
}
var r, o, i, a
})), i && (u.on("keydown", function (e) {
if (!v(e) && e.keyCode === c) {
if (!u.getBody().getElementsByTagName("hr").length)return;
if (d.isCollapsed() && 0 === d.getRng().startOffset) {
var t = d.getNode(), n = t.previousSibling;
if ("HR" === t.nodeName)return f.remove(t), void e.preventDefault();
n && n.nodeName && "hr" === n.nodeName.toLowerCase() && (f.remove(n), e.preventDefault())
}
}
}), Range.prototype.getClientRects || u.on("mousedown", function (e) {
if (!v(e) && "HTML" === e.target.nodeName) {
var t = u.getBody();
t.blur(), he.setEditorTimeout(u, function () {
t.focus()
})
}
}), n = function () {
var e = f.getAttribs(d.getStart().cloneNode(!1));
return function () {
var t = d.getStart();
t !== u.getBody() && (f.setAttrib(t, "style", null), o(e, function (e) {
t.setAttributeNode(e.cloneNode(!0))
}))
}
}, r = function () {
return !d.isCollapsed() && f.getParent(d.getStart(), f.isBlock) !== f.getParent(d.getEnd(), f.isBlock)
}, u.on("keypress", function (e) {
var t;
if (!v(e) && (8 === e.keyCode || 46 === e.keyCode) && r())return t = n(), u.getDoc().execCommand("delete", !1, null), t(), e.preventDefault(), !1
}), f.bind(u.getDoc(), "cut", function (e) {
var t;
!v(e) && r() && (t = n(), he.setEditorTimeout(u, function () {
t()
}))
}), e.readonly || u.on("BeforeExecCommand MouseDown", function () {
h("StyleWithCSS", !1), h("enableInlineTableEditing", !1), e.object_resizing || h("enableObjectResizing", !1)
}), u.on("SetContent ExecCommand", function (e) {
"setcontent" !== e.type && "mceInsertLink" !== e.command || o(f.select("a"), function (e) {
var t = e.parentNode, n = f.getRoot();
if (t.lastChild === e) {
for (; t && !f.isBlock(t);) {
if (t.parentNode.lastChild !== t || t === n)return;
t = t.parentNode
}
f.add(t, "br", {"data-mce-bogus": 1})
}
})
}), u.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"), fe.mac && u.on("keydown", function (e) {
!um.metaKeyPressed(e) || e.shiftKey || 37 !== e.keyCode && 39 !== e.keyCode || (e.preventDefault(), u.selection.getSel().modify("move", 37 === e.keyCode ? "backward" : "forward", "lineboundary"))
}), y()), {
refreshContentEditable: function () {
}, isHidden: function () {
var e;
return !i || u.removed ? 0 : !(e = u.selection.getSel()) || !e.rangeCount || 0 === e.rangeCount
}
}
}
var qC = function (e) {
return Ao.isElement(e) && lo(nr.fromDom(e))
}, $C = function (t) {
t.on("click", function (e) {
3 <= e.detail && function (e) {
var t = e.selection.getRng(), n = du.fromRangeStart(t), r = du.fromRangeEnd(t);
if (du.isElementPosition(n)) {
var o = n.container();
qC(o) && ec.firstPositionIn(o).each(function (e) {
return t.setStart(e.container(), e.offset())
})
}
du.isElementPosition(r) && (o = n.container(), qC(o) && ec.lastPositionIn(o).each(function (e) {
return t.setEnd(e.container(), e.offset())
})), e.selection.setRng(ep(t))
}(t)
})
}, WC = function (e) {
var t, n;
(t = e).on("click", function (e) {
t.dom.getParent(e.target, "details") && e.preventDefault()
}), (n = e).parser.addNodeFilter("details", function (e) {
M(e, function (e) {
e.attr("data-mce-open", e.attr("open")), e.attr("open", "open")
})
}), n.serializer.addNodeFilter("details", function (e) {
M(e, function (e) {
var t = e.attr("data-mce-open");
e.attr("open", k(t) ? t : null), e.attr("data-mce-open", null)
})
})
}, KC = di.DOM, XC = function (e) {
var t;
e.bindPendingEventDelegates(), e.initialized = !0, e.fire("init"), e.focus(!0), e.nodeChanged({initial: !0}), e.execCallback("init_instance_callback", e), (t = e).settings.auto_focus && he.setEditorTimeout(t, function () {
var e;
(e = !0 === t.settings.auto_focus ? t : t.editorManager.get(t.settings.auto_focus)).destroyed || e.focus()
}, 100)
}, YC = function (t, e) {
var n, r, u, o, i, a, s, c, l, f = t.settings, d = t.getElement(), m = t.getDoc();
f.inline || (t.getElement().style.visibility = t.orgVisibility), e || t.inline || (m.open(), m.write(t.iframeHTML), m.close()), t.inline && (t.on("remove", function () {
var e = this.getBody();
KC.removeClass(e, "mce-content-body"), KC.removeClass(e, "mce-edit-focus"), KC.setAttrib(e, "contentEditable", null)
}), KC.addClass(d, "mce-content-body"), t.contentDocument = m = f.content_document || document, t.contentWindow = f.content_window || window, t.bodyElement = d, t.contentAreaContainer = d, f.content_document = f.content_window = null, f.root_name = d.nodeName.toLowerCase()), (n = t.getBody()).disabled = !0, t.readonly = f.readonly, t.readonly || (t.inline && "static" === KC.getStyle(n, "position", !0) && (n.style.position = "relative"), n.contentEditable = t.getParam("content_editable_state", !0)), n.disabled = !1, t.editorUpload = ld(t), t.schema = Zo(f), t.dom = di(m, {
keep_values: !0,
url_converter: t.convertURL,
url_converter_scope: t,
hex_colors: f.force_hex_style_colors,
class_filter: f.class_filter,
update_styles: !0,
root_element: t.inline ? t.getBody() : null,
collect: function () {
return t.inline
},
schema: t.schema,
contentCssCors: bl(t),
onSetAttrib: function (e) {
t.fire("SetAttrib", e)
}
}), t.parser = ((o = Bp((u = t).settings, u.schema)).addAttributeFilter("src,href,style,tabindex", function (e, t) {
for (var n, r, o, i = e.length, a = u.dom; i--;)if (r = (n = e[i]).attr(t), o = "data-mce-" + t, !n.attributes.map[o]) {
if (0 === r.indexOf("data:") || 0 === r.indexOf("blob:"))continue;
"style" === t ? ((r = a.serializeStyle(a.parseStyle(r), n.name)).length || (r = null), n.attr(o, r), n.attr(t, r)) : "tabindex" === t ? (n.attr(o, r), n.attr(t, null)) : n.attr(o, u.convertURL(r, t, n.name))
}
}), o.addNodeFilter("script", function (e) {
for (var t, n, r = e.length; r--;)0 !== (n = (t = e[r]).attr("type") || "no/type").indexOf("mce-") && t.attr("type", "mce-" + n)
}), o.addNodeFilter("#cdata", function (e) {
for (var t, n = e.length; n--;)(t = e[n]).type = 8, t.name = "#comment", t.value = "[CDATA[" + t.value + "]]"
}), o.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div", function (e) {
for (var t, n = e.length, r = u.schema.getNonEmptyElements(); n--;)(t = e[n]).isEmpty(r) && 0 === t.getAll("br").length && (t.append(new Hc("br", 1)).shortEnded = !0)
}), o), t.serializer = Ip(f, t), t.selection = Fh(t.dom, t.getWin(), t.serializer, t), t.annotator = Lc(t), t.formatter = pp(t), t.undoManager = Dm(t), t._nodeChangeDispatcher = new Td(t), t._selectionOverrides = mm(t), WC(t), $C(t), HC(t), yd(t), t.fire("PreInit"), f.browser_spellcheck || f.gecko_spellcheck || (m.body.spellcheck = !1, KC.setAttrib(n, "spellcheck", "false")), t.quirks = jC(t), t.fire("PostRender"), f.directionality && (n.dir = f.directionality), f.protect && t.on("BeforeSetContent", function (t) {
Xt.each(f.protect, function (e) {
t.content = t.content.replace(e, function (e) {
return "\x3c!--mce:protected " + escape(e) + "--\x3e"
})
})
}), t.on("SetContent", function () {
t.addVisual(t.getBody())
}), t.load({
initial: !0,
format: "html"
}), t.startContent = t.getContent({format: "raw"}), t.on("compositionstart compositionend", function (e) {
t.composing = "compositionstart" === e.type
}), 0 < t.contentStyles.length && (r = "", Xt.each(t.contentStyles, function (e) {
r += e + "\r\n"
}), t.dom.addStyle(r)), (i = t, i.inline ? KC.styleSheetLoader : i.dom.styleSheetLoader).loadAll(t.contentCSS, function (e) {
XC(t)
}, function (e) {
XC(t)
}), f.content_style && (a = t, s = f.content_style, c = nr.fromDom(a.getDoc().head), l = nr.fromTag("style"), vr(l, "type", "text/css"), ki(l, nr.fromText(s)), ki(c, l))
}, GC = di.DOM, JC = function (e, t) {
var n, r, o, i, a = e.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"), u = (n = e.id, r = a, t.height, o = Yc(e), i = nr.fromTag("iframe"), br(i, o), br(i, {
id: n + "_ifr",
frameBorder: "0",
allowTransparency: "true",
title: r
}), Mi(i, "tox-edit-area__iframe"), i).dom();
u.onload = function () {
u.onload = null, e.fire("load")
};
var s, c, l, f, d = function (e, t) {
if (document.domain !== window.location.hostname && fe.ie && fe.ie < 12) {
var n = cd.uuid("mce");
e[n] = function () {
YC(e)
};
var r = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinymce.get("' + e.id + '");document.write(ed.iframeHTML);document.close();ed.' + n + "(true);})()";
return GC.setAttrib(t, "src", r), !0
}
return !1
}(e, u);
return e.contentAreaContainer = t.iframeContainer, e.iframeElement = u, e.iframeHTML = (f = Gc(s = e) + "<html><head>", Jc(s) !== s.documentBaseUrl && (f += '<base href="' + s.documentBaseURI.getURI() + '" />'), f += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />', c = Qc(s), l = Zc(s), el(s) && (f += '<meta http-equiv="Content-Security-Policy" content="' + el(s) + '" />'), f += '</head><body id="' + c + '" class="mce-content-body ' + l + '" data-id="' + s.id + '"><br></body></html>'), GC.add(t.iframeContainer, u), d
}, QC = function (e, t) {
var n = JC(e, t);
t.editorContainer && (GC.get(t.editorContainer).style.display = e.orgDisplay, e.hidden = GC.isHidden(t.editorContainer)), e.getElement().style.display = "none", GC.setAttrib(e.id, "aria-hidden", "true"), n || YC(e)
}, ZC = di.DOM, ex = function (t, n, e) {
var r, o, i = Xf.get(e);
if (r = Xf.urls[e] || t.documentBaseUrl.replace(/\/$/, ""), e = Xt.trim(e), i && -1 === Xt.inArray(n, e)) {
if (Xt.each(Xf.dependencies(e), function (e) {
ex(t, n, e)
}), t.plugins[e])return;
o = new i(t, r, t.$), (t.plugins[e] = o).init && (o.init(t, r), n.push(e))
}
}, tx = function (e) {
return e.replace(/^\-/, "")
}, nx = function (e) {
return {editorContainer: e, iframeContainer: e}
}, rx = function (e) {
var t, n, r = e.getElement();
return e.inline ? nx(null) : (t = r, n = ZC.create("div"), ZC.insertAfter(n, t), nx(n))
}, ox = function (t) {
var e, n, r, o, i, a, u, s, c, l, f, d, m, g, p = t.settings;
return t.fire("ScriptsLoaded"), o = (n = t).settings.theme, k(o) ? (n.settings.theme = tx(o), r = Yf.get(o), n.theme = new r(n, Yf.urls[o]), n.theme.init && n.theme.init(n, Yf.urls[o] || n.documentBaseUrl.replace(/\/$/, ""), n.$)) : n.theme = {}, i = t, a = [], Xt.each(i.settings.plugins.split(/[ ,]/), function (e) {
ex(i, a, tx(e))
}), u = t, s = Xt.trim(u.settings.icons), dr(Kf.get(s).icons, function (e, t) {
u.ui.registry.addIcon(t, e)
}), m = (c = t).settings, g = c.getElement(), c.orgDisplay = g.style.display, e = k(m.theme) ? c.theme.renderUI() : O(m.theme) ? (d = (l = c).getElement(), (f = l.settings.theme(l, d)).editorContainer.nodeType && (f.editorContainer.id = f.editorContainer.id || l.id + "_parent"), f.iframeContainer && f.iframeContainer.nodeType && (f.iframeContainer.id = f.iframeContainer.id || l.id + "_iframecontainer"), f.height = f.iframeHeight ? f.iframeHeight : d.offsetHeight, f) : rx(c), t.editorContainer = e.editorContainer ? e.editorContainer : null, p.content_css && Xt.each(Xt.explode(p.content_css), function (e) {
t.contentCSS.push(t.documentBaseURI.toAbsolute(e))
}), t.inline ? YC(t) : QC(t, e)
}, ix = di.DOM, ax = function (e) {
return "-" === e.charAt(0)
}, ux = function (a, u) {
var s = vi.ScriptLoader;
!function (e, t, n, r) {
var o = t.settings, i = o.theme;
if (k(i)) {
if (!ax(i) && !Yf.urls.hasOwnProperty(i)) {
var a = o.theme_url;
a ? Yf.load(i, t.documentBaseURI.toAbsolute(a)) : Yf.load(i, "themes/" + i + "/theme" + n + ".js")
}
e.loadQueue(function () {
Yf.waitFor(i, r)
})
} else r()
}(s, a, u, function () {
var e, t, n, r, o, i;
e = s, n = yl(t = a), r = Cl(t), !1 === wi.hasCode(n) && "en" !== n && ("" !== r ? e.add(r) : e.add(t.editorManager.baseURL + "/langs/" + n + ".js")), function (e, t) {
var n = e.icons;
if (k(n)) {
var r = t.editorManager.baseURL + "/icons/" + Xt.trim(n) + "/icons.js";
vi.ScriptLoader.add(r)
}
}(a.settings, a), o = a.settings, i = u, Xt.isArray(o.plugins) && (o.plugins = o.plugins.join(" ")), Xt.each(o.external_plugins, function (e, t) {
Xf.load(t, e), o.plugins += " " + t
}), Xt.each(o.plugins.split(/[ ,]/), function (e) {
if ((e = Xt.trim(e)) && !Xf.urls[e])if (ax(e)) {
e = e.substr(1, e.length);
var t = Xf.dependencies(e);
Xt.each(t, function (e) {
var t = {prefix: "plugins/", resource: e, suffix: "/plugin" + i + ".js"};
e = Xf.createUrl(t, e), Xf.load(e.resource, e)
})
} else Xf.load(e, {prefix: "plugins/", resource: e, suffix: "/plugin" + i + ".js"})
}), s.loadQueue(function () {
a.removed || ox(a)
}, a, function (e) {
jf(a, e[0]), a.removed || ox(a)
})
})
}, sx = function (t) {
var e = t.settings, n = t.id;
wi.setCode(yl(t));
var r = function () {
ix.unbind(window, "ready", r), t.render()
};
if (Se.Event.domLoaded) {
if (t.getElement() && fe.contentEditable) {
e.inline ? t.inline = !0 : (t.orgVisibility = t.getElement().style.visibility, t.getElement().style.visibility = "hidden");
var o = t.getElement().form || ix.getParent(n, "form");
o && (t.formElement = o, e.hidden_input && !/TEXTAREA|INPUT/i.test(t.getElement().nodeName) && (ix.insertAfter(ix.create("input", {
type: "hidden",
name: n
}), n), t.hasHiddenInput = !0), t.formEventDelegate = function (e) {
t.fire(e.type, e)
}, ix.bind(o, "submit reset", t.formEventDelegate), t.on("reset", function () {
t.setContent(t.startContent, {format: "raw"})
}), !e.submit_patch || o.submit.nodeType || o.submit.length || o._mceOldSubmit || (o._mceOldSubmit = o.submit, o.submit = function () {
return t.editorManager.triggerSave(), t.setDirty(!1), o._mceOldSubmit(o)
})), t.windowManager = Mf(t), t.notificationManager = If(t), "xml" === e.encoding && t.on("GetContent", function (e) {
e.save && (e.content = ix.encode(e.content))
}), e.add_form_submit_trigger && t.on("submit", function () {
t.initialized && t.save()
}), e.add_unload_trigger && (t._beforeUnload = function () {
!t.initialized || t.destroyed || t.isHidden() || t.save({
format: "raw",
no_events: !0,
set_dirty: !1
})
}, t.editorManager.on("BeforeUnload", t._beforeUnload)), t.editorManager.add(t), ux(t, t.suffix)
}
} else ix.bind(window, "ready", r)
}, cx = function (e, t, n) {
try {
e.getDoc().execCommand(t, !1, n)
} catch (r) {
}
}, lx = function (e, t, n) {
var r, o;
Ui(e, t) && !1 === n ? (o = t, Pi(r = e) ? r.dom().classList.remove(o) : Ii(r, o), Fi(r)) : n && Mi(e, t)
}, fx = function (e, t) {
lx(nr.fromDom(e.getBody()), "mce-content-readonly", t), t ? (e.selection.controlSelection.hideResizeRect(), e.readonly = !0, e.getBody().contentEditable = "false") : (e.readonly = !1, e.getBody().contentEditable = "true", cx(e, "StyleWithCSS", !1), cx(e, "enableInlineTableEditing", !1), cx(e, "enableObjectResizing", !1), e.focus(), e.nodeChanged())
}, dx = function (e) {
return e.readonly ? "readonly" : "design"
}, mx = function (e) {
return Xt.grep(e.childNodes, function (e) {
return "LI" === e.nodeName
})
}, gx = function (e) {
return e && e.firstChild && e.firstChild === e.lastChild && ("\xa0" === (t = e.firstChild).data || Ao.isBr(t));
var t
}, px = function (e) {
return 0 < e.length && (!(t = e[e.length - 1]).firstChild || gx(t)) ? e.slice(0, -1) : e;
var t
}, hx = function (e, t) {
var n = e.getParent(t, e.isBlock);
return n && "LI" === n.nodeName ? n : null
}, vx = function (e, t) {
var n = hu.after(e), r = $s(t).prev(n);
return r ? r.toRange() : null
}, bx = function (t, e, n) {
var r, o, i, a, u = t.parentNode;
return Xt.each(e, function (e) {
u.insertBefore(e, t)
}), r = t, o = n, i = hu.before(r), (a = $s(o).next(i)) ? a.toRange() : null
}, yx = function (e, t) {
var n, r, o, i, a, u, s = t.firstChild, c = t.lastChild;
return s && "meta" === s.name && (s = s.next), c && "mce_marker" === c.attr("id") && (c = c.prev), r = c, u = (n = e).getNonEmptyElements(), r && (r.isEmpty(u) || (o = r, n.getBlockElements()[o.name] && (a = o).firstChild && a.firstChild === a.lastChild && ("br" === (i = o.firstChild).name || "\xa0" === i.value))) && (c = c.prev), !(!s || s !== c || "ul" !== s.name && "ol" !== s.name)
}, Cx = function (e, o, i, t) {
var n, r, a, u, s, c, l, f, d, m, g, p, h, v, b, y, C, x, w, N = (n = o, r = t, c = e.serialize(r), l = n.createFragment(c), u = (a = l).firstChild, s = a.lastChild, u && "META" === u.nodeName && u.parentNode.removeChild(u), s && "mce_marker" === s.id && s.parentNode.removeChild(s), a), E = hx(o, i.startContainer), S = px(mx(N.firstChild)), T = o.getRoot(), k = function (e) {
var t = hu.fromRangeStart(i), n = $s(o.getRoot()), r = 1 === e ? n.prev(t) : n.next(t);
return !r || hx(o, r.getNode()) !== E
};
return k(1) ? bx(E, S, T) : k(2) ? (f = E, d = S, m = T, o.insertAfter(d.reverse(), f), vx(d[0], m)) : (p = S, h = T, v = g = E, y = (b = i).cloneRange(), C = b.cloneRange(), y.setStartBefore(v), C.setEndAfter(v), x = [y.cloneContents(), C.cloneContents()], (w = g.parentNode).insertBefore(x[0], g), Xt.each(p, function (e) {
w.insertBefore(e, g)
}), w.insertBefore(x[1], g), w.removeChild(g), vx(p[p.length - 1], h))
}, xx = function (e, t) {
return !!hx(e, t)
}, wx = Ao.matchNodeNames("td th"), Nx = function (e, t) {
var n, r, o = e.selection.getRng(), i = o.startContainer, a = o.startOffset;
o.collapsed && (n = i, r = a, Ao.isText(n) && "\xa0" === n.nodeValue[r - 1]) && Ao.isText(i) && (i.insertData(a - 1, " "), i.deleteData(a, 1), o.setStart(i, a), o.setEnd(i, a), e.selection.setRng(o)), e.selection.setContent(t)
}, Ex = function (e, t, n) {
var r, o, i, a, u, s, c, l, f, d, m, g = e.selection, p = e.dom;
if (/^ | $/.test(t) && (t = function (e, t) {
var n, r;
n = e.startContainer, r = e.startOffset;
var o = function (e) {
return n[e] && 3 === n[e].nodeType
};
return 3 === n.nodeType && (0 < r ? t = t.replace(/^&nbsp;/, " ") : o("previousSibling") || (t = t.replace(/^ /, "&nbsp;")), r < n.length ? t = t.replace(/&nbsp;(<br>|)$/, " ") : o("nextSibling") || (t = t.replace(/(&nbsp;| )(<br>|)$/, "&nbsp;"))), t
}(g.getRng(), t)), r = e.parser, m = n.merge, o = El({validate: e.settings.validate}, e.schema), d = '<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#x200B;</span>', s = {
content: t,
format: "html",
selection: !0,
paste: n.paste
}, (s = e.fire("BeforeSetContent", s)).isDefaultPrevented())e.fire("SetContent", {
content: s.content,
format: "html",
selection: !0,
paste: n.paste
}); else {
-1 === (t = s.content).indexOf("{$caret}") && (t += "{$caret}"), t = t.replace(/\{\$caret\}/, d);
var h, v, b, y, C, x, w = (l = g.getRng()).startContainer || (l.parentElement ? l.parentElement() : null), N = e.getBody();
w === N && g.isCollapsed() && p.isBlock(N.firstChild) && (h = e, (v = N.firstChild) && !h.schema.getShortEndedElements()[v.nodeName]) && p.isEmpty(N.firstChild) && ((l = p.createRng()).setStart(N.firstChild, 0), l.setEnd(N.firstChild, 0), g.setRng(l)), g.isCollapsed() || (e.selection.setRng(ep(e.selection.getRng())), e.getDoc().execCommand("Delete", !1, null), b = e.selection.getRng(), y = t, C = b.startContainer, x = b.startOffset, 3 === C.nodeType && b.collapsed && ("\xa0" === C.data[x] ? (C.deleteData(x, 1), /[\u00a0| ]$/.test(y) || (y += " ")) : "\xa0" === C.data[x - 1] && (C.deleteData(x - 1, 1), /[\u00a0| ]$/.test(y) || (y = " " + y))), t = y);
var E, S, T, k = {context: (i = g.getNode()).nodeName.toLowerCase(), data: n.data, insert: !0};
if (u = r.parse(t, k), !0 === n.paste && yx(e.schema, u) && xx(p, i))return l = Cx(o, p, e.selection.getRng(), u), e.selection.setRng(l), void e.fire("SetContent", s);
if (function (e) {
for (var t = e; t = t.walk();)1 === t.type && t.attr("data-mce-fragment", "1")
}(u), "mce_marker" === (f = u.lastChild).attr("id"))for (f = (c = f).prev; f; f = f.walk(!0))if (3 === f.type || !p.isBlock(f.name)) {
e.schema.isValidChild(f.parent.name, "span") && f.parent.insert(c, f, "br" === f.name);
break
}
if (e._selectionOverrides.showBlockCaretContainer(i), k.invalid) {
for (Nx(e, d), i = g.getNode(), a = e.getBody(), 9 === i.nodeType ? i = f = a : f = i; f !== a;)f = (i = f).parentNode;
t = i === a ? a.innerHTML : p.getOuterHTML(i), t = o.serialize(r.parse(t.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i, function () {
return o.serialize(u)
}))), i === a ? p.setHTML(a, t) : p.setOuterHTML(i, t)
} else!function (e, t, n) {
if ("all" === n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t), n); else {
var r = n.firstChild, o = n.lastChild;
!r || r === o && "BR" === r.nodeName ? e.dom.setHTML(n, t) : Nx(e, t)
}
}(e, t = o.serialize(u), i);
!function (e, t) {
var n = e.schema.getTextInlineElements(), r = e.dom;
if (t) {
var o = e.getBody(), i = new kg(r);
Xt.each(r.select("*[data-mce-fragment]"), function (e) {
for (var t = e.parentNode; t && t !== o; t = t.parentNode)n[e.nodeName.toLowerCase()] && i.compare(t, e) && r.remove(e, !0)
})
}
}(e, m), function (n, e) {
var t, r, o, i, a, u = n.dom, s = n.selection;
if (e) {
if (n.selection.scrollIntoView(e), t = function (e) {
for (var t = n.getBody(); e && e !== t; e = e.parentNode)if ("false" === n.dom.getContentEditable(e))return e;
return null
}(e))return u.remove(e), s.select(t);
var c = u.createRng();
(i = e.previousSibling) && 3 === i.nodeType ? (c.setStart(i, i.nodeValue.length), fe.ie || (a = e.nextSibling) && 3 === a.nodeType && (i.appendData(a.data), a.parentNode.removeChild(a))) : (c.setStartBefore(e), c.setEndBefore(e)), r = u.getParent(e, u.isBlock), u.remove(e), r && u.isEmpty(r) && (n.$(r).empty(), c.setStart(r, 0), c.setEnd(r, 0), wx(r) || r.getAttribute("data-mce-fragment") || !(o = function (e) {
var t = hu.fromRangeStart(e);
if (t = $s(n.getBody()).next(t))return t.toRange()
}(c)) ? u.add(r, u.create("br", {"data-mce-bogus": "1"})) : (c = o, u.remove(r))), s.setRng(c)
}
}(e, p.get("mce_marker")), E = e.getBody(), Xt.each(E.getElementsByTagName("*"), function (e) {
e.removeAttribute("data-mce-fragment")
}), S = e.dom, T = e.selection.getStart(), A.from(S.getParent(T, "td,th")).map(nr.fromDom).each(Lm), e.fire("SetContent", s), e.addVisual()
}
}, Sx = function (e, t) {
var n, r, o = "string" != typeof(n = t) ? (r = Xt.extend({
paste: n.paste,
data: {paste: n.paste}
}, n), {content: n.content, details: r}) : {content: n, details: {}};
Ex(e, o.content, o.details)
}, Tx = function (e, t) {
e.getDoc().execCommand(t, !1, null)
}, kx = function (e) {
Wb(e, !1) || Jb(e, !1) || Rb(e, !1) || Sy(e) || Ob(e, !1) || (Tx(e, "Delete"), gb(e))
}, Ax = function (e) {
Wb(e, !0) || Jb(e, !0) || Rb(e, !0) || Sy(e) || Ob(e, !0) || Tx(e, "ForwardDelete")
}, Rx = function (o, t, e) {
var n = function (e) {
return t = o, n = e.dom(), r = wr(n, t), A.from(r).filter(function (e) {
return 0 < e.length
});
var t, n, r
};
return qi(nr.fromDom(e), function (e) {
return n(e).isSome()
}, function (e) {
return _r(nr.fromDom(t), e)
}).bind(n)
}, Dx = function (o) {
return function (r, e) {
return A.from(e).map(nr.fromDom).filter(sr).bind(function (e) {
return Rx(o, r, e.dom()).or((t = o, n = e.dom(), A.from(di.DOM.getStyle(n, t, !0))));
var t, n
}).getOr("")
}
}, Bx = {
getFontSize: Dx("font-size"), getFontFamily: j(function (e) {
return e.replace(/[\'\"\\]/g, "").replace(/,\s+/g, ",")
}, Dx("font-family")), toPt: function (e, t) {
return /[0-9.]+px$/.test(e) ? (n = 72 * parseInt(e, 10) / 96, r = t || 0, o = Math.pow(10, r), Math.round(n * o) / o + "pt") : e;
var n, r, o
}
}, _x = function (e) {
return ec.firstPositionIn(e.getBody()).map(function (e) {
var t = e.container();
return Ao.isText(t) ? t.parentNode : t
})
}, Ox = function (o) {
return A.from(o.selection.getRng()).bind(function (e) {
var t, n, r = o.getBody();
return n = r, (t = e).startContainer === n && 0 === t.startOffset ? A.none() : A.from(o.selection.getStart(!0))
})
}, Px = function (e, t) {
if (/^[0-9\.]+$/.test(t)) {
var n = parseInt(t, 10);
if (1 <= n && n <= 7) {
var r = sl(e), o = cl(e);
return o ? o[n - 1] || t : r[n - 1] || t
}
return t
}
return t
}, Lx = function (e) {
return fo(e) || mo(e)
}, Ix = function (e) {
return F(W(e.selection.getSelectedBlocks(), nr.fromDom), function (e) {
return !Lx(e) && !Lr(e).map(Lx).getOr(!1)
})
}, Mx = function (e, t) {
var n = e.settings, r = e.dom, o = e.selection, i = e.formatter, a = /[a-z%]+$/i.exec(n.indentation)[0], u = parseInt(n.indentation, 10), s = e.getParam("indent_use_margin", !1);
e.queryCommandState("InsertUnorderedList") || e.queryCommandState("InsertOrderedList") || n.forced_root_block || r.getParent(o.getNode(), r.isBlock) || i.apply("div"), M(Ix(e), function (e) {
!function (e, t, n, r, o, i) {
if ("false" !== e.getContentEditable(i)) {
var a = n ? "margin" : "padding";
if (a = "TABLE" === i.nodeName ? "margin" : a, a += "rtl" === e.getStyle(i, "direction", !0) ? "Right" : "Left", "outdent" === t) {
var u = Math.max(0, parseInt(i.style[a] || 0, 10) - r);
e.setStyle(i, a, u ? u + o : "")
} else u = parseInt(i.style[a] || 0, 10) + r + o, e.setStyle(i, a, u)
}
}(r, t, s, u, a, e.dom())
})
}, Fx = Xt.each, Ux = Xt.extend, zx = Xt.map, Vx = Xt.inArray;
function Hx(s) {
var o, i, a, t, c = {state: {}, exec: {}, value: {}}, n = s.settings;
s.on("PreInit", function () {
o = s.dom, i = s.selection, n = s.settings, a = s.formatter
});
var r = function (e) {
var t;
if (!s.quirks.isHidden() && !s.removed) {
if (e = e.toLowerCase(), t = c.state[e])return t(e);
try {
return s.getDoc().queryCommandState(e)
} catch (n) {
}
return !1
}
}, e = function (e, n) {
n = n || "exec", Fx(e, function (t, e) {
Fx(e.toLowerCase().split(","), function (e) {
c[n][e] = t
})
})
}, u = function (e, t, n) {
e = e.toLowerCase(), c.value[e] = function () {
return t.call(n || s)
}
};
Ux(this, {
execCommand: function (t, n, r, e) {
var o, i, a = !1;
if (!s.removed) {
if (/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(t) || e && e.skip_focus ? ql(s) : s.focus(), (e = s.fire("BeforeExecCommand", {
command: t,
ui: n,
value: r
})).isDefaultPrevented())return !1;
if (i = t.toLowerCase(), o = c.exec[i])return o(i, n, r), s.fire("ExecCommand", {
command: t,
ui: n,
value: r
}), !0;
if (Fx(s.plugins, function (e) {
if (e.execCommand && e.execCommand(t, n, r))return s.fire("ExecCommand", {
command: t,
ui: n,
value: r
}), !(a = !0)
}), a)return a;
if (s.theme && s.theme.execCommand && s.theme.execCommand(t, n, r))return s.fire("ExecCommand", {
command: t,
ui: n,
value: r
}), !0;
try {
a = s.getDoc().execCommand(t, n, r)
} catch (u) {
}
return !!a && (s.fire("ExecCommand", {command: t, ui: n, value: r}), !0)
}
}, queryCommandState: r, queryCommandValue: function (e) {
var t;
if (!s.quirks.isHidden() && !s.removed) {
if (e = e.toLowerCase(), t = c.value[e])return t(e);
try {
return s.getDoc().queryCommandValue(e)
} catch (n) {
}
}
}, queryCommandSupported: function (e) {
if (e = e.toLowerCase(), c.exec[e])return !0;
try {
return s.getDoc().queryCommandSupported(e)
} catch (t) {
}
return !1
}, addCommands: e, addCommand: function (e, o, i) {
e = e.toLowerCase(), c.exec[e] = function (e, t, n, r) {
return o.call(i || s, t, n, r)
}
}, addQueryStateHandler: function (e, t, n) {
e = e.toLowerCase(), c.state[e] = function () {
return t.call(n || s)
}
}, addQueryValueHandler: u, hasCustomCommand: function (e) {
return e = e.toLowerCase(), !!c.exec[e]
}
});
var l = function (e, t, n) {
return t === undefined && (t = !1), n === undefined && (n = null), s.getDoc().execCommand(e, t, n)
}, f = function (e) {
return a.match(e)
}, d = function (e, t) {
a.toggle(e, t ? {value: t} : undefined), s.nodeChanged()
}, m = function (e) {
t = i.getBookmark(e)
}, g = function () {
i.moveToBookmark(t)
};
e({
"mceResetDesignMode,mceBeginUndoLevel": function () {
}, "mceEndUndoLevel,mceAddUndoLevel": function () {
s.undoManager.add()
}, "Cut,Copy,Paste": function (e) {
var t, n = s.getDoc();
try {
l(e)
} catch (o) {
t = !0
}
if ("paste" !== e || n.queryCommandEnabled(e) || (t = !0), t || !n.queryCommandSupported(e)) {
var r = s.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");
fe.mac && (r = r.replace(/Ctrl\+/g, "\u2318+")), s.notificationManager.open({
text: r,
type: "error"
})
}
}, unlink: function () {
if (i.isCollapsed()) {
var e = s.dom.getParent(s.selection.getStart(), "a");
e && s.dom.remove(e, !0)
} else a.remove("link")
}, "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone": function (e) {
var t = e.substring(7);
"full" === t && (t = "justify"), Fx("left,center,right,justify".split(","), function (e) {
t !== e && a.remove("align" + e)
}), "none" !== t && d("align" + t)
}, "InsertUnorderedList,InsertOrderedList": function (e) {
var t, n;
l(e), (t = o.getParent(i.getNode(), "ol,ul")) && (n = t.parentNode, /^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName) && (m(), o.split(n, t), g()))
}, "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) {
d(e)
}, "ForeColor,HiliteColor": function (e, t, n) {
d(e, n)
}, FontName: function (e, t, n) {
var r, o;
o = n, (r = s).formatter.toggle("fontname", {value: Px(r, o)}), r.nodeChanged()
}, FontSize: function (e, t, n) {
var r, o;
o = n, (r = s).formatter.toggle("fontsize", {value: Px(r, o)}), r.nodeChanged()
}, RemoveFormat: function (e) {
a.remove(e)
}, mceBlockQuote: function () {
d("blockquote")
}, FormatBlock: function (e, t, n) {
return d(n || "p")
}, mceCleanup: function () {
var e = i.getBookmark();
s.setContent(s.getContent()), i.moveToBookmark(e)
}, mceRemoveNode: function (e, t, n) {
var r = n || i.getNode();
r !== s.getBody() && (m(), s.dom.remove(r, !0), g())
}, mceSelectNodeDepth: function (e, t, n) {
var r = 0;
o.getParent(i.getNode(), function (e) {
if (1 === e.nodeType && r++ === n)return i.select(e), !1
}, s.getBody())
}, mceSelectNode: function (e, t, n) {
i.select(n)
}, mceInsertContent: function (e, t, n) {
Sx(s, n)
}, mceInsertRawHTML: function (e, t, n) {
i.setContent("tiny_mce_marker");
var r = s.getContent();
s.setContent(r.replace(/tiny_mce_marker/g, function () {
return n
}))
}, mceToggleFormat: function (e, t, n) {
d(n)
}, mceSetContent: function (e, t, n) {
s.setContent(n)
}, "Indent,Outdent": function (e) {
Mx(s, e)
}, mceRepaint: function () {
}, InsertHorizontalRule: function () {
s.execCommand("mceInsertContent", !1, "<hr />")
}, mceToggleVisualAid: function () {
s.hasVisual = !s.hasVisual, s.addVisual()
}, mceReplaceContent: function (e, t, n) {
s.execCommand("mceInsertContent", !1, n.replace(/\{\$selection\}/g, i.getContent({format: "text"})))
}, mceInsertLink: function (e, t, n) {
var r;
"string" == typeof n && (n = {href: n}), r = o.getParent(i.getNode(), "a"), n.href = n.href.replace(" ", "%20"), r && n.href || a.remove("link"), n.href && a.apply("link", n, r)
}, selectAll: function () {
var e = o.getParent(i.getStart(), Ao.isContentEditableTrue);
if (e) {
var t = o.createRng();
t.selectNodeContents(e), i.setRng(t)
}
}, "delete": function () {
kx(s)
}, forwardDelete: function () {
Ax(s)
}, mceNewDocument: function () {
s.setContent("")
}, InsertLineBreak: function (e, t, n) {
return eC(s, n), !0
}
});
var p = function (n) {
return function () {
var e = i.isCollapsed() ? [o.getParent(i.getNode(), o.isBlock)] : i.getSelectedBlocks(), t = zx(e, function (e) {
return !!a.matchNode(e, n)
});
return -1 !== Vx(t, !0)
}
};
e({
JustifyLeft: p("alignleft"),
JustifyCenter: p("aligncenter"),
JustifyRight: p("alignright"),
JustifyFull: p("alignjustify"),
"Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) {
return f(e)
},
mceBlockQuote: function () {
return f("blockquote")
},
Outdent: function () {
var e;
if (n.inline_styles) {
if ((e = o.getParent(i.getStart(), o.isBlock)) && 0 < parseInt(e.style.paddingLeft, 10))return !0;
if ((e = o.getParent(i.getEnd(), o.isBlock)) && 0 < parseInt(e.style.paddingLeft, 10))return !0
}
return r("InsertUnorderedList") || r("InsertOrderedList") || !n.inline_styles && !!o.getParent(i.getNode(), "BLOCKQUOTE")
},
"InsertUnorderedList,InsertOrderedList": function (e) {
var t = o.getParent(i.getNode(), "ul,ol");
return t && ("insertunorderedlist" === e && "UL" === t.tagName || "insertorderedlist" === e && "OL" === t.tagName)
}
}, "state"), e({
Undo: function () {
s.undoManager.undo()
}, Redo: function () {
s.undoManager.redo()
}
}), u("FontName", function () {
return Ox(t = s).fold(function () {
return _x(t).map(function (e) {
return Bx.getFontFamily(t.getBody(), e)
}).getOr("")
}, function (e) {
return Bx.getFontFamily(t.getBody(), e)
});
var t
}, this), u("FontSize", function () {
return Ox(t = s).fold(function () {
return _x(t).map(function (e) {
return Bx.getFontSize(t.getBody(), e)
}).getOr("")
}, function (e) {
return Bx.getFontSize(t.getBody(), e)
});
var t
}, this)
}
var jx = Xt.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend", " "), qx = function (a) {
var u, s, c = this, l = {}, f = function () {
return !1
}, d = function () {
return !0
};
u = (a = a || {}).scope || c, s = a.toggleEvent || f;
var r = function (e, t, n, r) {
var o, i, a;
if (!1 === t && (t = f), t)for (t = {func: t}, r && Xt.extend(t, r), a = (i = e.toLowerCase().split(" ")).length; a--;)e = i[a], (o = l[e]) || (o = l[e] = [], s(e, !0)), n ? o.unshift(t) : o.push(t);
return c
}, m = function (e, t) {
var n, r, o, i, a;
if (e)for (n = (i = e.toLowerCase().split(" ")).length; n--;) {
if (e = i[n], r = l[e], !e) {
for (o in l)s(o, !1), delete l[o];
return c
}
if (r) {
if (t)for (a = r.length; a--;)r[a].func === t && (r = r.slice(0, a).concat(r.slice(a + 1)), l[e] = r); else r.length = 0;
r.length || (s(e, !1), delete l[e])
}
} else {
for (e in l)s(e, !1);
l = {}
}
return c
};
c.fire = function (e, t) {
var n, r, o, i;
if (e = e.toLowerCase(), (t = t || {}).type = e, t.target || (t.target = u), t.preventDefault || (t.preventDefault = function () {
t.isDefaultPrevented = d
}, t.stopPropagation = function () {
t.isPropagationStopped = d
}, t.stopImmediatePropagation = function () {
t.isImmediatePropagationStopped = d
}, t.isDefaultPrevented = f, t.isPropagationStopped = f, t.isImmediatePropagationStopped = f), a.beforeFire && a.beforeFire(t), n = l[e])for (r = 0, o = n.length; r < o; r++) {
if ((i = n[r]).once && m(e, i.func), t.isImmediatePropagationStopped())return t.stopPropagation(), t;
if (!1 === i.func.call(u, t))return t.preventDefault(), t
}
return t
}, c.on = r, c.off = m, c.once = function (e, t, n) {
return r(e, t, n, {once: !0})
}, c.has = function (e) {
return e = e.toLowerCase(), !(!l[e] || 0 === l[e].length)
}
};
qx.isNative = function (e) {
return !!jx[e.toLowerCase()]
};
var $x, Wx = function (n) {
return n._eventDispatcher || (n._eventDispatcher = new qx({
scope: n, toggleEvent: function (e, t) {
qx.isNative(e) && n.toggleNativeEvent && n.toggleNativeEvent(e, t)
}
})), n._eventDispatcher
}, Kx = {
fire: function (e, t, n) {
if (this.removed && "remove" !== e)return t;
if (t = Wx(this).fire(e, t, n), !1 !== n && this.parent)for (var r = this.parent(); r && !t.isPropagationStopped();)r.fire(e, t, !1), r = r.parent();
return t
}, on: function (e, t, n) {
return Wx(this).on(e, t, n)
}, off: function (e, t) {
return Wx(this).off(e, t)
}, once: function (e, t) {
return Wx(this).once(e, t)
}, hasEventListeners: function (e) {
return Wx(this).has(e)
}
}, Xx = di.DOM, Yx = function (e, t) {
return "selectionchange" === t ? e.getDoc() : !e.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t) ? e.getDoc().documentElement : e.settings.event_root ? (e.eventRoot || (e.eventRoot = Xx.select(e.settings.event_root)[0]), e.eventRoot) : e.getBody()
}, Gx = function (e, t, n) {
var r;
(r = e).hidden || r.readonly ? !0 === e.readonly && n.preventDefault() : e.fire(t, n)
}, Jx = function (i, a) {
var e, t;
if (i.delegates || (i.delegates = {}), !i.delegates[a] && !i.removed)if (e = Yx(i, a), i.settings.event_root) {
if ($x || ($x = {}, i.editorManager.on("removeEditor", function () {
var e;
if (!i.editorManager.activeEditor && $x) {
for (e in $x)i.dom.unbind(Yx(i, e));
$x = null
}
})), $x[a])return;
t = function (e) {
for (var t = e.target, n = i.editorManager.get(), r = n.length; r--;) {
var o = n[r].getBody();
(o === t || Xx.isChildOf(t, o)) && Gx(n[r], a, e)
}
}, $x[a] = t, Xx.bind(e, a, t)
} else t = function (e) {
Gx(i, a, e)
}, Xx.bind(e, a, t), i.delegates[a] = t
}, Qx = {
bindPendingEventDelegates: function () {
var t = this;
Xt.each(t._pendingNativeEvents, function (e) {
Jx(t, e)
})
}, toggleNativeEvent: function (e, t) {
var n = this;
"focus" !== e && "blur" !== e && (t ? n.initialized ? Jx(n, e) : n._pendingNativeEvents ? n._pendingNativeEvents.push(e) : n._pendingNativeEvents = [e] : n.initialized && (n.dom.unbind(Yx(n, e), e, n.delegates[e]), delete n.delegates[e]))
}, unbindAllNativeEvents: function () {
var e, t = this, n = t.getBody(), r = t.dom;
if (t.delegates) {
for (e in t.delegates)t.dom.unbind(Yx(t, e), e, t.delegates[e]);
delete t.delegates
}
!t.inline && n && r && (n.onload = null, r.unbind(t.getWin()), r.unbind(t.getDoc())), r && (r.unbind(n), r.unbind(t.getContainer()))
}
}, Zx = Qx = Xt.extend({}, Kx, Qx), ew = Xt.each, tw = Xt.explode, nw = {
f9: 120,
f10: 121,
f11: 122
}, rw = Xt.makeMap("alt,ctrl,shift,meta,access");
function ow(i) {
var a = {}, r = [], u = function (e) {
var t, n, r = {};
for (n in ew(tw(e, "+"), function (e) {
e in rw ? r[e] = !0 : /^[0-9]{2,}$/.test(e) ? r.keyCode = parseInt(e, 10) : (r.charCode = e.charCodeAt(0), r.keyCode = nw[e] || e.toUpperCase().charCodeAt(0))
}), t = [r.keyCode], rw)r[n] ? t.push(n) : r[n] = !1;
return r.id = t.join(","), r.access && (r.alt = !0, fe.mac ? r.ctrl = !0 : r.shift = !0), r.meta && (fe.mac ? r.meta = !0 : (r.ctrl = !0, r.meta = !1)), r
}, s = function (e, t, n, r) {
var o;
return (o = Xt.map(tw(e, ">"), u))[o.length - 1] = Xt.extend(o[o.length - 1], {
func: n,
scope: r || i
}), Xt.extend(o[0], {desc: i.translate(t), subpatterns: o.slice(1)})
}, o = function (e, t) {
return !!t && t.ctrl === e.ctrlKey && t.meta === e.metaKey && t.alt === e.altKey && t.shift === e.shiftKey && !!(e.keyCode === t.keyCode || e.charCode && e.charCode === t.charCode) && (e.preventDefault(), !0)
}, c = function (e) {
return e.func ? e.func.call(e.scope) : null
};
i.on("keyup keypress keydown", function (t) {
var e, n;
((n = t).altKey || n.ctrlKey || n.metaKey || "keydown" === (e = t).type && 112 <= e.keyCode && e.keyCode <= 123) && !t.isDefaultPrevented() && (ew(a, function (e) {
if (o(t, e))return r = e.subpatterns.slice(0), "keydown" === t.type && c(e), !0
}), o(t, r[0]) && (1 === r.length && "keydown" === t.type && c(r[0]), r.shift()))
}), this.add = function (e, n, r, o) {
var t;
return "string" == typeof(t = r) ? r = function () {
i.execCommand(t, !1, null)
} : Xt.isArray(t) && (r = function () {
i.execCommand(t[0], t[1], t[2])
}), ew(tw(Xt.trim(e.toLowerCase())), function (e) {
var t = s(e, n, r, o);
a[t.id] = t
}), !0
}, this.remove = function (e) {
var t = s(e);
return !!a[t.id] && (delete a[t.id], !0)
}
}
var iw = Xt.each, aw = Xt.trim, uw = "source protocol authority userInfo user password host port relative path directory file query anchor".split(" "), sw = {
ftp: 21,
http: 80,
https: 443,
mailto: 25
}, cw = function (r, e) {
var t, n, o = this;
if (r = aw(r), t = (e = o.settings = e || {}).base_uri, /^([\w\-]+):([^\/]{2})/i.test(r) || /^\s*#/.test(r))o.source = r; else {
var i = 0 === r.indexOf("//");
0 !== r.indexOf("/") || i || (r = (t && t.protocol || "http") + "://mce_host" + r), /^[\w\-]*:?\/\//.test(r) || (n = e.base_uri ? e.base_uri.path : new cw(document.location.href).directory, r = "" == e.base_uri.protocol ? "//mce_host" + o.toAbsPath(n, r) : (r = /([^#?]*)([#?]?.*)/.exec(r), (t && t.protocol || "http") + "://mce_host" + o.toAbsPath(n, r[1]) + r[2])), r = r.replace(/@@/g, "(mce_at)"), r = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(r), iw(uw, function (e, t) {
var n = r[t];
n && (n = n.replace(/\(mce_at\)/g, "@@")), o[e] = n
}), t && (o.protocol || (o.protocol = t.protocol), o.userInfo || (o.userInfo = t.userInfo), o.port || "mce_host" !== o.host || (o.port = t.port), o.host && "mce_host" !== o.host || (o.host = t.host), o.source = ""), i && (o.protocol = "")
}
};
cw.prototype = {
setPath: function (e) {
e = /^(.*?)\/?(\w+)?$/.exec(e), this.path = e[0], this.directory = e[1], this.file = e[2], this.source = "", this.getURI()
}, toRelative: function (e) {
var t;
if ("./" === e)return e;
if ("mce_host" !== (e = new cw(e, {base_uri: this})).host && this.host !== e.host && e.host || this.port !== e.port || this.protocol !== e.protocol && "" !== e.protocol)return e.getURI();
var n = this.getURI(), r = e.getURI();
return n === r || "/" === n.charAt(n.length - 1) && n.substr(0, n.length - 1) === r ? n : (t = this.toRelPath(this.path, e.path), e.query && (t += "?" + e.query), e.anchor && (t += "#" + e.anchor), t)
}, toAbsolute: function (e, t) {
return (e = new cw(e, {base_uri: this})).getURI(t && this.isSameOrigin(e))
}, isSameOrigin: function (e) {
if (this.host == e.host && this.protocol == e.protocol) {
if (this.port == e.port)return !0;
var t = sw[this.protocol];
if (t && (this.port || t) == (e.port || t))return !0
}
return !1
}, toRelPath: function (e, t) {
var n, r, o, i = 0, a = "";
if (e = (e = e.substring(0, e.lastIndexOf("/"))).split("/"), n = t.split("/"), e.length >= n.length)for (r = 0, o = e.length; r < o; r++)if (r >= n.length || e[r] !== n[r]) {
i = r + 1;
break
}
if (e.length < n.length)for (r = 0, o = n.length; r < o; r++)if (r >= e.length || e[r] !== n[r]) {
i = r + 1;
break
}
if (1 === i)return t;
for (r = 0, o = e.length - (i - 1); r < o; r++)a += "../";
for (r = i - 1, o = n.length; r < o; r++)a += r !== i - 1 ? "/" + n[r] : n[r];
return a
}, toAbsPath: function (e, t) {
var n, r, o, i = 0, a = [];
for (r = /\/$/.test(t) ? "/" : "", e = e.split("/"), t = t.split("/"), iw(e, function (e) {
e && a.push(e)
}), e = a, n = t.length - 1, a = []; 0 <= n; n--)0 !== t[n].length && "." !== t[n] && (".." !== t[n] ? 0 < i ? i-- : a.push(t[n]) : i++);
return 0 !== (o = (n = e.length - i) <= 0 ? a.reverse().join("/") : e.slice(0, n).join("/") + "/" + a.reverse().join("/")).indexOf("/") && (o = "/" + o), r && o.lastIndexOf("/") !== o.length - 1 && (o += r), o
}, getURI: function (e) {
var t, n = this;
return n.source && !e || (t = "", e || (n.protocol ? t += n.protocol + "://" : t += "//", n.userInfo && (t += n.userInfo + "@"), n.host && (t += n.host), n.port && (t += ":" + n.port)), n.path && (t += n.path), n.query && (t += "?" + n.query), n.anchor && (t += "#" + n.anchor), n.source = t), n.source
}
}, cw.parseDataUri = function (e) {
var t, n;
return e = decodeURIComponent(e).split(","), (n = /data:([^;]+)/.exec(e[0])) && (t = n[1]), {
type: t,
data: e[1]
}
}, cw.getDocumentBaseUrl = function (e) {
var t;
return t = 0 !== e.protocol.indexOf("http") && "file:" !== e.protocol ? e.href : e.protocol + "//" + e.host + e.pathname, /^[^:]+:\/\/\/?[^\/]+\//.test(t) && (t = t.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""), /[\/\\]$/.test(t) || (t += "/")), t
};
var lw = function (n, t, e) {
var r = function () {
return A.from(n.queryCommandValue("ToggleSidebar")).is(t)
}, o = n.sidebars ? n.sidebars : [];
o.push({name: t, settings: e}), n.sidebars = o, n.ui.registry.addToggleButton(t, {
icon: e.icon,
tooltip: e.tooltip,
onAction: function (e) {
n.execCommand("ToggleSidebar", !1, t), e.setActive(r())
},
onSetup: function (e) {
var t = function () {
return e.setActive(r())
};
return n.on("ToggleSidebar", t), function () {
n.off("ToggleSidebar", t)
}
}
})
}, fw = di.DOM, dw = Xt.extend, mw = Xt.each, gw = Xt.resolve, pw = fe.ie, hw = function (e, t, n) {
var r, o, i, a, u, s, c, l = this, f = l.documentBaseUrl = n.documentBaseURL, d = n.baseURI;
r = l, o = e, i = f, a = n.defaultSettings, u = t, c = {
id: o,
theme: "silver",
popup_css: "",
plugins: "",
document_base_url: i,
add_form_submit_trigger: !0,
submit_patch: !0,
add_unload_trigger: !0,
convert_urls: !0,
relative_urls: !0,
remove_script_host: !0,
object_resizing: !0,
doctype: "<!DOCTYPE html>",
visual: !0,
font_size_style_values: "xx-small,x-small,small,medium,large,x-large,xx-large",
font_size_legacy_values: "xx-small,small,medium,large,x-large,xx-large,300%",
forced_root_block: "p",
hidden_input: !0,
render_ui: !0,
indentation: "40px",
inline_styles: !0,
convert_fonts_to_spans: !0,
indent: "simple",
indent_before: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",
indent_after: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",
entity_encoding: "named",
url_converter: (s = r).convertURL,
url_converter_scope: s,
ie7_compat: !0
}, t = Ef(hf, c, a, u), l.settings = t, Ei.languageLoad = t.language_load, Ei.baseURL = n.baseURL, l.id = e, l.setDirty(!1), l.plugins = {}, l.documentBaseURI = new cw(t.document_base_url, {base_uri: d}), l.baseURI = d, l.contentCSS = [], l.contentStyles = [], l.shortcuts = new ow(l), l.loadedCSS = {}, l.editorCommands = new Hx(l), l.suffix = n.suffix, l.editorManager = n, l.inline = t.inline, l.buttons = {}, l.menuItems = {}, t.cache_suffix && (fe.cacheSuffix = t.cache_suffix.replace(/^[\?\&]+/, "")), !1 === t.override_viewport && (fe.overrideViewPort = !1);
var m, g, p, h, v, b, y, C = (g = {}, p = {}, h = {}, v = {}, b = {}, {
addButton: (y = function (n, r) {
return function (e, t) {
return n[e.toLowerCase()] = Fc({type: r}, t)
}
})(m = {}, "button"),
addToggleButton: y(m, "togglebutton"),
addMenuButton: y(m, "menubutton"),
addSplitButton: y(m, "splitbutton"),
addMenuItem: y(g, "menuitem"),
addToggleMenuItem: y(g, "togglemenuitem"),
addAutocompleter: y(p, "autocompleter"),
addContextMenu: y(v, "contextmenu"),
addContextToolbar: y(b, "contexttoolbar"),
addContextForm: y(b, "contextform"),
addIcon: function (e, t) {
return h[e.toLowerCase()] = t
},
getAll: function () {
return {buttons: m, menuItems: g, icons: h, popups: p, contextMenus: v, contextToolbars: b}
}
});
l.ui = {
registry: C,
dialog: {open: x, confirm: x, alert: x},
notification: {open: x, close: x, getNotifications: x}
}, n.fire("SetupEditor", {editor: l}), l.execCallback("setup", l), l.$ = gn.overrideDefaults(function () {
return {context: l.inline ? l.getBody() : l.getDoc(), element: l.getBody()}
})
};
dw(hw.prototype = {
render: function () {
sx(this)
}, focus: function (e) {
Ql(this, e)
}, hasFocus: function () {
return Zl(this)
}, execCallback: function (e) {
for (var t = [], n = 1; n < arguments.length; n++)t[n - 1] = arguments[n];
var r, o = this.settings[e];
if (o)return this.callbackLookup && (r = this.callbackLookup[e]) && (o = r.func, r = r.scope), "string" == typeof o && (r = (r = o.replace(/\.\w+$/, "")) ? gw(r) : 0, o = gw(o), this.callbackLookup = this.callbackLookup || {}, this.callbackLookup[e] = {
func: o,
scope: r
}), o.apply(r || this, Array.prototype.slice.call(arguments, 1))
}, translate: function (e) {
return wi.translate(e)
}, getParam: function (e, t, n) {
return kf(this, e, t, n)
}, nodeChanged: function (e) {
this._nodeChangeDispatcher.nodeChanged(e)
}, addButton: function (e, t) {
console.error("editor.addButton is deprecated in tinymce 5x, use editor.ui.registry.addButton or editor.ui.registry.addToggleButton or editor.ui.registry.addSplitButton instead")
}, addSidebar: function (e, t) {
return lw(this, e, t)
}, addMenuItem: function (e, t) {
console.error("editor.addMenuItem is deprecated in tinymce 5x, use editor.ui.registry.addMenuItem instead")
}, addContextToolbar: function (e, t) {
console.error("editor.addContextToolbar is deprecated in tinymce 5x, use editor.ui.registry.addContextToolbar instead")
}, addCommand: function (e, t, n) {
this.editorCommands.addCommand(e, t, n)
}, addQueryStateHandler: function (e, t, n) {
this.editorCommands.addQueryStateHandler(e, t, n)
}, addQueryValueHandler: function (e, t, n) {
this.editorCommands.addQueryValueHandler(e, t, n)
}, addShortcut: function (e, t, n, r) {
this.shortcuts.add(e, t, n, r)
}, execCommand: function (e, t, n, r) {
return this.editorCommands.execCommand(e, t, n, r)
}, queryCommandState: function (e) {
return this.editorCommands.queryCommandState(e)
}, queryCommandValue: function (e) {
return this.editorCommands.queryCommandValue(e)
}, queryCommandSupported: function (e) {
return this.editorCommands.queryCommandSupported(e)
}, show: function () {
this.hidden && (this.hidden = !1, this.inline ? this.getBody().contentEditable = !0 : (fw.show(this.getContainer()), fw.hide(this.id)), this.load(), this.fire("show"))
}, hide: function () {
var e = this, t = e.getDoc();
e.hidden || (pw && t && !e.inline && t.execCommand("SelectAll"), e.save(), e.inline ? (e.getBody().contentEditable = !1, e === e.editorManager.focusedEditor && (e.editorManager.focusedEditor = null)) : (fw.hide(e.getContainer()), fw.setStyle(e.id, "display", e.orgDisplay)), e.hidden = !0, e.fire("hide"))
}, isHidden: function () {
return !!this.hidden
}, setProgressState: function (e, t) {
this.fire("ProgressState", {state: e, time: t})
}, load: function (e) {
var t, n = this.getElement();
return this.removed ? "" : n ? ((e = e || {}).load = !0, t = this.setContent(n.value !== undefined ? n.value : n.innerHTML, e), e.element = n, e.no_events || this.fire("LoadContent", e), e.element = n = null, t) : void 0
}, save: function (e) {
var t, n, r = this, o = r.getElement();
if (o && r.initialized && !r.removed)return (e = e || {}).save = !0, e.element = o, e.content = r.getContent(e), e.no_events || r.fire("SaveContent", e), "raw" === e.format && r.fire("RawSaveContent", e), t = e.content, /TEXTAREA|INPUT/i.test(o.nodeName) ? o.value = t : (o.innerHTML = t, (n = fw.getParent(r.id, "form")) && mw(n.elements, function (e) {
if (e.name === r.id)return e.value = t, !1
})), e.element = o = null, !1 !== e.set_dirty && r.setDirty(!1), t
}, setContent: function (e, t) {
return nf(this, e, t)
}, getContent: function (e) {
return t = this, void 0 === (n = e) && (n = {}), A.from(t.getBody()).fold(q("tree" === n.format ? new Hc("body", 11) : ""), function (e) {
return xl(t, n, e)
});
var t, n
}, insertContent: function (e, t) {
t && (e = dw({content: e}, t)), this.execCommand("mceInsertContent", !1, e)
}, isDirty: function () {
return !this.isNotDirty
}, setDirty: function (e) {
var t = !this.isNotDirty;
this.isNotDirty = !e, e && e !== t && this.fire("dirty")
}, setMode: function (e) {
var t, n;
(n = e) !== dx(t = this) && (t.initialized ? fx(t, "readonly" === n) : t.on("init", function () {
fx(t, "readonly" === n)
}), uf(t, n))
}, getContainer: function () {
return this.container || (this.container = fw.get(this.editorContainer || this.id + "_parent")), this.container
}, getContentAreaContainer: function () {
return this.contentAreaContainer
}, getElement: function () {
return this.targetElm || (this.targetElm = fw.get(this.id)), this.targetElm
}, getWin: function () {
var e;
return this.contentWindow || (e = this.iframeElement) && (this.contentWindow = e.contentWindow), this.contentWindow
}, getDoc: function () {
var e;
return this.contentDocument || (e = this.getWin()) && (this.contentDocument = e.document), this.contentDocument
}, getBody: function () {
var e = this.getDoc();
return this.bodyElement || (e ? e.body : null)
}, convertURL: function (e, t, n) {
var r = this.settings;
return r.urlconverter_callback ? this.execCallback("urlconverter_callback", e, n, !0, t) : !r.convert_urls || n && "LINK" === n.nodeName || 0 === e.indexOf("file:") || 0 === e.length ? e : r.relative_urls ? this.documentBaseURI.toRelative(e) : e = this.documentBaseURI.toAbsolute(e, r.remove_script_host)
}, addVisual: function (e) {
var n, r = this, o = r.settings, i = r.dom;
e = e || r.getBody(), r.hasVisual === undefined && (r.hasVisual = o.visual), mw(i.select("table,a", e), function (e) {
var t;
switch (e.nodeName) {
case"TABLE":
return n = o.visual_table_class || "mce-item-table", void((t = i.getAttrib(e, "border")) && "0" !== t || !r.hasVisual ? i.removeClass(e, n) : i.addClass(e, n));
case"A":
return void(i.getAttrib(e, "href") || (t = i.getAttrib(e, "name") || e.id, n = o.visual_anchor_class || "mce-item-anchor", t && r.hasVisual ? i.addClass(e, n) : i.removeClass(e, n)))
}
}), r.fire("VisualAid", {element: e, hasVisual: r.hasVisual})
}, remove: function () {
df(this)
}, destroy: function (e) {
mf(this, e)
}, uploadImages: function (e) {
return this.editorUpload.uploadImages(e)
}, _scanForImages: function () {
return this.editorUpload.scanForImages()
}
}, Zx);
var vw, bw, yw, Cw = {
isEditorUIElement: function (e) {
return -1 !== e.className.toString().indexOf("tox-") || -1 !== e.className.toString().indexOf("mce-")
}
}, xw = function (n, e) {
var t, r;
er.detect().browser.isIE() ? (r = n).on("focusout", function () {
jl(r)
}) : (t = e, n.on("mouseup touchend", function (e) {
t.throttle()
})), n.on("keyup nodechange", function (e) {
var t;
"nodechange" === (t = e).type && t.selectionChange || jl(n)
})
}, ww = function (e) {
var t, n, r, o = _i(function () {
jl(e)
}, 0);
e.inline && (t = e, n = o, r = function () {
n.throttle()
}, di.DOM.bind(document, "mouseup", r), t.on("remove", function () {
di.DOM.unbind(document, "mouseup", r)
})), e.on("init", function () {
xw(e, o)
}), e.on("remove", function () {
o.cancel()
})
}, Nw = di.DOM, Ew = function (e) {
return Cw.isEditorUIElement(e)
}, Sw = function (t, e) {
var n = t ? t.settings.custom_ui_selector : "";
return null !== Nw.getParent(e, function (e) {
return Ew(e) || !!n && t.dom.is(e, n)
})
}, Tw = function (r, e) {
var t = e.editor;
ww(t), t.on("focusin", function () {
var e = r.focusedEditor;
e !== this && (e && e.fire("blur", {focusedEditor: this}), r.setActive(this), (r.focusedEditor = this).fire("focus", {blurredEditor: e}), this.focus(!0))
}), t.on("focusout", function () {
var t = this;
he.setEditorTimeout(t, function () {
var e = r.focusedEditor;
Sw(t, function () {
try {
return document.activeElement
} catch (e) {
return document.body
}
}()) || e !== t || (t.fire("blur", {focusedEditor: null}), r.focusedEditor = null)
})
}), vw || (vw = function (e) {
var t, n = r.activeEditor;
t = e.target, n && t.ownerDocument === document && (t === document.body || Sw(n, t) || r.focusedEditor !== n || (n.fire("blur", {focusedEditor: null}), r.focusedEditor = null))
}, Nw.bind(document, "focusin", vw))
}, kw = function (e, t) {
e.focusedEditor === t.editor && (e.focusedEditor = null), e.activeEditor || (Nw.unbind(document, "focusin", vw), vw = null)
}, Aw = function (e) {
e.on("AddEditor", m(Tw, e)), e.on("RemoveEditor", m(kw, e))
}, Rw = di.DOM, Dw = Xt.explode, Bw = Xt.each, _w = Xt.extend, Ow = 0, Pw = !1, Lw = [], Iw = [], Mw = function (t) {
Bw(yw.get(), function (e) {
"scroll" === t.type ? e.fire("ScrollWindow", t) : e.fire("ResizeWindow", t)
})
}, Fw = function (e) {
e !== Pw && (e ? gn(window).on("resize scroll", Mw) : gn(window).off("resize scroll", Mw), Pw = e)
}, Uw = function (t) {
var e = Iw;
delete Lw[t.id];
for (var n = 0; n < Lw.length; n++)if (Lw[n] === t) {
Lw.splice(n, 1);
break
}
return Iw = F(Iw, function (e) {
return t !== e
}), yw.activeEditor === t && (yw.activeEditor = 0 < Iw.length ? Iw[0] : null), yw.focusedEditor === t && (yw.focusedEditor = null), e.length !== Iw.length
};
_w(yw = {
defaultSettings: {},
$: gn,
majorVersion: "5",
minorVersion: "0.0-preview-4-build.3",
releaseDate: "TBD",
editors: Lw,
i18n: wi,
activeEditor: null,
settings: {},
setup: function () {
var e, t, n, r, o = "";
if (t = cw.getDocumentBaseUrl(document.location), /^[^:]+:\/\/\/?[^\/]+\//.test(t) && (t = t.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""), /[\/\\]$/.test(t) || (t += "/")), n = window.tinymce || window.tinyMCEPreInit)e = n.base || n.baseURL, o = n.suffix; else {
for (var i = document.getElementsByTagName("script"), a = 0; a < i.length; a++) {
var u = (r = i[a].src).substring(r.lastIndexOf("/"));
if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(r)) {
-1 !== u.indexOf(".min") && (o = ".min"), e = r.substring(0, r.lastIndexOf("/"));
break
}
}
!e && document.currentScript && (-1 !== (r = document.currentScript.src).indexOf(".min") && (o = ".min"), e = r.substring(0, r.lastIndexOf("/")))
}
this.baseURL = new cw(t).toAbsolute(e), this.documentBaseURL = t, this.baseURI = new cw(this.baseURL), this.suffix = o, Aw(this)
},
overrideDefaults: function (e) {
var t, n;
(t = e.base_url) && (this.baseURL = new cw(this.documentBaseURL).toAbsolute(t.replace(/\/+$/, "")), this.baseURI = new cw(this.baseURL)), n = e.suffix, e.suffix && (this.suffix = n);
var r = (this.defaultSettings = e).plugin_base_urls;
for (var o in r)Ei.PluginManager.urls[o] = r[o]
},
init: function (r) {
var n, u, s = this;
u = Xt.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu", " ");
var c = function (e) {
var t = e.id;
return t || (t = (t = e.name) && !Rw.get(t) ? e.name : Rw.uniqueId(), e.setAttribute("id", t)), t
}, l = function (e, t) {
return t.constructor === RegExp ? t.test(e.className) : Rw.hasClass(e, t)
}, f = function (e) {
n = e
}, e = function () {
var o, i = 0, a = [], n = function (e, t, n) {
var r = new hw(e, t, s);
a.push(r), r.on("init", function () {
++i === o.length && f(a)
}), r.targetElm = r.targetElm || n, r.render()
};
Rw.unbind(window, "ready", e), function (e) {
var t = r[e];
t && t.apply(s, Array.prototype.slice.call(arguments, 2))
}("onpageload"), o = gn.unique(function (t) {
var e, n = [];
if (fe.ie && fe.ie < 11)return Wf("TinyMCE does not support the browser you are using. For a list of supported browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/"), [];
if (t.types)return Bw(t.types, function (e) {
n = n.concat(Rw.select(e.selector))
}), n;
if (t.selector)return Rw.select(t.selector);
if (t.target)return [t.target];
switch (t.mode) {
case"exact":
0 < (e = t.elements || "").length && Bw(Dw(e), function (t) {
var e;
(e = Rw.get(t)) ? n.push(e) : Bw(document.forms, function (e) {
Bw(e.elements, function (e) {
e.name === t && (t = "mce_editor_" + Ow++, Rw.setAttrib(e, "id", t), n.push(e))
})
})
});
break;
case"textareas":
case"specific_textareas":
Bw(Rw.select("textarea"), function (e) {
t.editor_deselector && l(e, t.editor_deselector) || t.editor_selector && !l(e, t.editor_selector) || n.push(e)
})
}
return n
}(r)), r.types ? Bw(r.types, function (t) {
Xt.each(o, function (e) {
return !Rw.is(e, t.selector) || (n(c(e), _w({}, r, t), e), !1)
})
}) : (Xt.each(o, function (e) {
var t;
(t = s.get(e.id)) && t.initialized && !(t.getContainer() || t.getBody()).parentNode && (Uw(t), t.unbindAllNativeEvents(), t.destroy(!0), t.removed = !0, t = null)
}), 0 === (o = Xt.grep(o, function (e) {
return !s.get(e.id)
})).length ? f([]) : Bw(o, function (e) {
var t;
t = e, r.inline && t.tagName.toLowerCase()in u ? Wf("Could not initialize inline editor on invalid inline target element", e) : n(c(e), r, e)
}))
};
return s.settings = r, Rw.bind(window, "ready", e), new de(function (t) {
n ? t(n) : f = function (e) {
t(e)
}
})
},
get: function (t) {
return 0 === arguments.length ? Iw.slice(0) : k(t) ? z(Iw, function (e) {
return e.id === t
}).getOr(null) : P(t) && Iw[t] ? Iw[t] : null
},
add: function (e) {
var t = this;
return Lw[e.id] === e || (null === t.get(e.id) && ("length" !== e.id && (Lw[e.id] = e), Lw.push(e), Iw.push(e)), Fw(!0), t.activeEditor = e, t.fire("AddEditor", {editor: e}), bw || (bw = function () {
t.fire("BeforeUnload")
}, Rw.bind(window, "beforeunload", bw))), e
},
createEditor: function (e, t) {
return this.add(new hw(e, t, this))
},
remove: function (e) {
var t, n, r = this;
if (e) {
if (!k(e))return n = e, B(r.get(n.id)) ? null : (Uw(n) && r.fire("RemoveEditor", {editor: n}), 0 === Iw.length && Rw.unbind(window, "beforeunload", bw), n.remove(), Fw(0 < Iw.length), n);
Bw(Rw.select(e), function (e) {
(n = r.get(e.id)) && r.remove(n)
})
} else for (t = Iw.length - 1; 0 <= t; t--)r.remove(Iw[t])
},
execCommand: function (e, t, n) {
var r = this.get(n);
switch (e) {
case"mceAddEditor":
return this.get(n) || new hw(n, this.settings, this).render(), !0;
case"mceRemoveEditor":
return r && r.remove(), !0;
case"mceToggleEditor":
return r ? r.isHidden() ? r.show() : r.hide() : this.execCommand("mceAddEditor", 0, n), !0
}
return !!this.activeEditor && this.activeEditor.execCommand(e, t, n)
},
triggerSave: function () {
Bw(Iw, function (e) {
e.save()
})
},
addI18n: function (e, t) {
wi.add(e, t)
},
translate: function (e) {
return wi.translate(e)
},
setActive: function (e) {
var t = this.activeEditor;
this.activeEditor !== e && (t && t.fire("deactivate", {relatedTarget: e}), e.fire("activate", {relatedTarget: t})), this.activeEditor = e
}
}, Kx), yw.setup();
var zw, Vw = yw;
function Hw(n) {
return {
walk: function (e, t) {
return Ac(n, e, t)
}, split: qm, normalize: function (t) {
return Rh(n, t).fold(q(!1), function (e) {
return t.setStart(e.startContainer, e.startOffset), t.setEnd(e.endContainer, e.endOffset), !0
})
}
}
}
(zw = Hw || (Hw = {})).compareRanges = Cd, zw.getCaretRangeFromPoint = Xp, zw.getSelectedNode = ja, zw.getNode = qa;
var jw, qw, $w = Hw, Ww = Math.min, Kw = Math.max, Xw = Math.round, Yw = function (e, t, n) {
var r, o, i, a, u, s;
return r = t.x, o = t.y, i = e.w, a = e.h, u = t.w, s = t.h, "b" === (n = (n || "").split(""))[0] && (o += s), "r" === n[1] && (r += u), "c" === n[0] && (o += Xw(s / 2)), "c" === n[1] && (r += Xw(u / 2)), "b" === n[3] && (o -= a), "r" === n[4] && (r -= i), "c" === n[3] && (o -= Xw(a / 2)), "c" === n[4] && (r -= Xw(i / 2)), Gw(r, o, i, a)
}, Gw = function (e, t, n, r) {
return {x: e, y: t, w: n, h: r}
}, Jw = {
inflate: function (e, t, n) {
return Gw(e.x - t, e.y - n, e.w + 2 * t, e.h + 2 * n)
}, relativePosition: Yw, findBestRelativePosition: function (e, t, n, r) {
var o, i;
for (i = 0; i < r.length; i++)if ((o = Yw(e, t, r[i])).x >= n.x && o.x + o.w <= n.w + n.x && o.y >= n.y && o.y + o.h <= n.h + n.y)return r[i];
return null
}, intersect: function (e, t) {
var n, r, o, i;
return n = Kw(e.x, t.x), r = Kw(e.y, t.y), o = Ww(e.x + e.w, t.x + t.w), i = Ww(e.y + e.h, t.y + t.h), o - n < 0 || i - r < 0 ? null : Gw(n, r, o - n, i - r)
}, clamp: function (e, t, n) {
var r, o, i, a, u, s, c, l, f, d;
return u = e.x, s = e.y, c = e.x + e.w, l = e.y + e.h, f = t.x + t.w, d = t.y + t.h, r = Kw(0, t.x - u), o = Kw(0, t.y - s), i = Kw(0, c - f), a = Kw(0, l - d), u += r, s += o, n && (c += r, l += o, u -= i, s -= a), Gw(u, s, (c -= i) - u, (l -= a) - s)
}, create: Gw, fromClientRect: function (e) {
return Gw(e.left, e.top, e.width, e.height)
}
}, Qw = {}, Zw = {
add: function (e, t) {
Qw[e.toLowerCase()] = t
}, has: function (e) {
return !!Qw[e.toLowerCase()]
}, get: function (e) {
var t = e.toLowerCase(), n = Qw.hasOwnProperty(t) ? Qw[t] : null;
if (null === n)throw new Error("Could not find module for type: " + e);
return n
}, create: function (e, t) {
var n;
if ("string" == typeof e ? (t = t || {}).type = e : e = (t = e).type, e = e.toLowerCase(), !(n = Qw[e]))throw new Error("Could not find control by type: " + e);
return (n = new n(t)).type = e, n
}
}, eN = Xt.each, tN = Xt.extend, nN = function () {
};
nN.extend = jw = function (n) {
var e, t, r, o = this.prototype, i = function () {
var e, t, n;
if (!qw && (this.init && this.init.apply(this, arguments), t = this.Mixins))for (e = t.length; e--;)(n = t[e]).init && n.init.apply(this, arguments)
}, a = function () {
return this
}, u = function (n, r) {
return function () {
var e, t = this._super;
return this._super = o[n], e = r.apply(this, arguments), this._super = t, e
}
};
for (t in qw = !0, e = new this, qw = !1, n.Mixins && (eN(n.Mixins, function (e) {
for (var t in e)"init" !== t && (n[t] = e[t])
}), o.Mixins && (n.Mixins = o.Mixins.concat(n.Mixins))), n.Methods && eN(n.Methods.split(","), function (e) {
n[e] = a
}), n.Properties && eN(n.Properties.split(","), function (e) {
var t = "_" + e;
n[e] = function (e) {
return e !== undefined ? (this[t] = e, this) : this[t]
}
}), n.Statics && eN(n.Statics, function (e, t) {
i[t] = e
}), n.Defaults && o.Defaults && (n.Defaults = tN({}, o.Defaults, n.Defaults)), n)"function" == typeof(r = n[t]) && o[t] ? e[t] = u(t, r) : e[t] = r;
return i.prototype = e, (i.constructor = i).extend = jw, i
};
var rN = Math.min, oN = Math.max, iN = Math.round, aN = function (e, n) {
var r, o, t, i;
if (n = n || '"', null === e)return "null";
if ("string" == (t = typeof e))return o = "\bb\tt\nn\ff\rr\"\"''\\\\", n + e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function (e, t) {
return '"' === n && "'" === e ? e : (r = o.indexOf(t)) + 1 ? "\\" + o.charAt(r + 1) : (e = t.charCodeAt().toString(16), "\\u" + "0000".substring(e.length) + e)
}) + n;
if ("object" !== t)return "" + e;
if (e.hasOwnProperty && "[object Array]" === Object.prototype.toString.call(e)) {
for (r = 0, o = "["; r < e.length; r++)o += (0 < r ? "," : "") + aN(e[r], n);
return o + "]"
}
for (i in o = "{", e)e.hasOwnProperty(i) && (o += "function" != typeof e[i] ? (1 < o.length ? "," + n : n) + i + n + ":" + aN(e[i], n) : "");
return o + "}"
}, uN = {
serialize: aN, parse: function (e) {
try {
return JSON.parse(e)
} catch (t) {
}
}
}, sN = {
callbacks: {}, count: 0, send: function (t) {
var n = this, r = di.DOM, o = t.count !== undefined ? t.count : n.count, i = "tinymce_jsonp_" + o;
n.callbacks[o] = function (e) {
r.remove(i), delete n.callbacks[o], t.callback(e)
}, r.add(r.doc.body, "script", {id: i, src: t.url, type: "text/javascript"}), n.count++
}
}, cN = {
send: function (e) {
var t, n = 0, r = function () {
!e.async || 4 === t.readyState || 1e4 < n++ ? (e.success && n < 1e4 && 200 === t.status ? e.success.call(e.success_scope, "" + t.responseText, t, e) : e.error && e.error.call(e.error_scope, 1e4 < n ? "TIMED_OUT" : "GENERAL", t, e), t = null) : setTimeout(r, 10)
};
if (e.scope = e.scope || this, e.success_scope = e.success_scope || e.scope, e.error_scope = e.error_scope || e.scope, e.async = !1 !== e.async, e.data = e.data || "", cN.fire("beforeInitialize", {settings: e}), t = Gf()) {
if (t.overrideMimeType && t.overrideMimeType(e.content_type), t.open(e.type || (e.data ? "POST" : "GET"), e.url, e.async), e.crossDomain && (t.withCredentials = !0), e.content_type && t.setRequestHeader("Content-Type", e.content_type), e.requestheaders && Xt.each(e.requestheaders, function (e) {
t.setRequestHeader(e.key, e.value)
}), t.setRequestHeader("X-Requested-With", "XMLHttpRequest"), (t = cN.fire("beforeSend", {
xhr: t,
settings: e
}).xhr).send(e.data), !e.async)return r();
setTimeout(r, 10)
}
}
};
Xt.extend(cN, Kx);
var lN, fN, dN, mN, gN = Xt.extend, pN = function (e) {
this.settings = gN({}, e), this.count = 0
};
pN.sendRPC = function (e) {
return (new pN).send(e)
}, pN.prototype = {
send: function (n) {
var r = n.error, o = n.success;
(n = gN(this.settings, n)).success = function (e, t) {
void 0 === (e = uN.parse(e)) && (e = {error: "JSON Parse error."}), e.error ? r.call(n.error_scope || n.scope, e.error, t) : o.call(n.success_scope || n.scope, e.result)
}, n.error = function (e, t) {
r && r.call(n.error_scope || n.scope, e, t)
}, n.data = uN.serialize({
id: n.id || "c" + this.count++,
method: n.method,
params: n.params
}), n.content_type = "application/json", cN.send(n)
}
};
try {
lN = window.localStorage
} catch (CN) {
fN = {}, dN = [], mN = {
getItem: function (e) {
var t = fN[e];
return t || null
}, setItem: function (e, t) {
dN.push(e), fN[e] = String(t)
}, key: function (e) {
return dN[e]
}, removeItem: function (t) {
dN = dN.filter(function (e) {
return e === t
}), delete fN[t]
}, clear: function () {
dN = [], fN = {}
}, length: 0
}, Object.defineProperty(mN, "length", {
get: function () {
return dN.length
}, configurable: !1, enumerable: !1
}), lN = mN
}
var hN, vN = Vw, bN = {
geom: {Rect: Jw},
util: {
Promise: de,
Delay: he,
Tools: Xt,
VK: um,
URI: cw,
Class: nN,
EventDispatcher: qx,
Observable: Kx,
I18n: wi,
XHR: cN,
JSON: uN,
JSONRequest: pN,
JSONP: sN,
LocalStorage: lN,
Color: function (e) {
var n = {}, u = 0, s = 0, c = 0, t = function (e) {
var t;
return "object" == typeof e ? "r"in e ? (u = e.r, s = e.g, c = e.b) : "v"in e && function (e, t, n) {
var r, o, i, a;
if (e = (parseInt(e, 10) || 0) % 360, t = parseInt(t, 10) / 100, n = parseInt(n, 10) / 100, t = oN(0, rN(t, 1)), n = oN(0, rN(n, 1)), 0 !== t) {
switch (r = e / 60, i = (o = n * t) * (1 - Math.abs(r % 2 - 1)), a = n - o, Math.floor(r)) {
case 0:
u = o, s = i, c = 0;
break;
case 1:
u = i, s = o, c = 0;
break;
case 2:
u = 0, s = o, c = i;
break;
case 3:
u = 0, s = i, c = o;
break;
case 4:
u = i, s = 0, c = o;
break;
case 5:
u = o, s = 0, c = i;
break;
default:
u = s = c = 0
}
u = iN(255 * (u + a)), s = iN(255 * (s + a)), c = iN(255 * (c + a))
} else u = s = c = iN(255 * n)
}(e.h, e.s, e.v) : (t = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e)) ? (u = parseInt(t[1], 10), s = parseInt(t[2], 10), c = parseInt(t[3], 10)) : (t = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e)) ? (u = parseInt(t[1], 16), s = parseInt(t[2], 16), c = parseInt(t[3], 16)) : (t = /#([0-F])([0-F])([0-F])/gi.exec(e)) && (u = parseInt(t[1] + t[1], 16), s = parseInt(t[2] + t[2], 16), c = parseInt(t[3] + t[3], 16)), u = u < 0 ? 0 : 255 < u ? 255 : u, s = s < 0 ? 0 : 255 < s ? 255 : s, c = c < 0 ? 0 : 255 < c ? 255 : c, n
};
return e && t(e), n.toRgb = function () {
return {r: u, g: s, b: c}
}, n.toHsv = function () {
return e = u, t = s, n = c, o = 0, (i = rN(e /= 255, rN(t /= 255, n /= 255))) === (a = oN(e, oN(t, n))) ? {
h: 0,
s: 0,
v: 100 * (o = i)
} : (r = (a - i) / a, {
h: iN(60 * ((e === i ? 3 : n === i ? 1 : 5) - (e === i ? t - n : n === i ? e - t : n - e) / ((o = a) - i))),
s: iN(100 * r),
v: iN(100 * o)
});
var e, t, n, r, o, i, a
}, n.toHex = function () {
var e = function (e) {
return 1 < (e = parseInt(e, 10).toString(16)).length ? e : "0" + e
};
return "#" + e(u) + e(s) + e(c)
}, n.parse = t, n
}
},
dom: {
EventUtils: Se,
Sizzle: St,
DomQuery: gn,
TreeWalker: to,
DOMUtils: di,
ScriptLoader: vi,
RangeUtils: $w,
Serializer: Ip,
ControlSelection: jp,
BookmarkManager: zp,
Selection: Fh,
Event: Se.Event
},
html: {
Styles: ti,
Entities: Ho,
Node: Hc,
Schema: Zo,
SaxParser: $c,
DomParser: Bp,
Writer: Nl,
Serializer: El
},
ui: {Factory: Zw},
Env: fe,
AddOnManager: Ei,
Annotator: Lc,
Formatter: pp,
UndoManager: Dm,
EditorCommands: Hx,
WindowManager: Mf,
NotificationManager: If,
EditorObservable: Zx,
Shortcuts: ow,
Editor: hw,
FocusManager: Cw,
EditorManager: Vw,
DOM: di.DOM,
ScriptLoader: vi.ScriptLoader,
PluginManager: Ei.PluginManager,
ThemeManager: Ei.ThemeManager,
IconManager: Kf,
trim: Xt.trim,
isArray: Xt.isArray,
is: Xt.is,
toArray: Xt.toArray,
makeMap: Xt.makeMap,
each: Xt.each,
map: Xt.map,
grep: Xt.grep,
inArray: Xt.inArray,
extend: Xt.extend,
create: Xt.create,
walk: Xt.walk,
createNS: Xt.createNS,
resolve: Xt.resolve,
explode: Xt.explode,
_addCacheSuffix: Xt._addCacheSuffix,
isOpera: fe.opera,
isWebKit: fe.webkit,
isIE: fe.ie,
isGecko: fe.gecko,
isMac: fe.mac
}, yN = vN = Xt.extend(vN, bN);
hN = yN, window.tinymce = hN, window.tinyMCE = hN, function (e) {
if ("object" == typeof module)try {
module.exports = e
} catch (t) {
}
}(yN)
}();