function diff_match_patch() { this.Diff_Timeout = 1, this.Diff_EditCost = 4, this.Match_Threshold = .5, this.Match_Distance = 1e3, this.Patch_DeleteThreshold = .5, this.Patch_Margin = 4, this.Match_MaxBits = 32; } !function(e, t) { function n(e) { var t = e.length, n = rt.type(e); return !rt.isWindow(e) && (!(1 !== e.nodeType || !t) || "array" === n || "function" !== n && (0 === t || "number" == typeof t && t > 0 && t - 1 in e)); } function i(e) { var t = ht[e] = {}; return rt.each(e.match(at) || [], function(e, n) { t[n] = !0; }), t; } function r() { Object.defineProperty(this.cache = {}, 0, { get: function() { return {}; } }), this.expando = rt.expando + Math.random(); } function o(e, n, i) { var r; if (i === t && 1 === e.nodeType) if (r = "data-" + n.replace(vt, "-$1").toLowerCase(), "string" == typeof (i = e.getAttribute(r))) { try { i = "true" === i || "false" !== i && ("null" === i ? null : +i + "" === i ? +i : gt.test(i) ? JSON.parse(i) : i); } catch (e) {} ft.set(e, n, i); } else i = t; return i; } function a() { return !0; } function s() { return !1; } function l() { try { return z.activeElement; } catch (e) {} } function c(e, t) { for (;(e = e[t]) && 1 !== e.nodeType; ) ; return e; } function u(e, t, n) { if (rt.isFunction(t)) return rt.grep(e, function(e, i) { return !!t.call(e, i, e) !== n; }); if (t.nodeType) return rt.grep(e, function(e) { return e === t !== n; }); if ("string" == typeof t) { if (Et.test(t)) return rt.filter(t, e, n); t = rt.filter(t, e); } return rt.grep(e, function(e) { return et.call(t, e) >= 0 !== n; }); } function d(e, t) { return rt.nodeName(e, "table") && rt.nodeName(1 === t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e; } function p(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e; } function h(e) { var t = Ft.exec(e.type); return t ? e.type = t[1] : e.removeAttribute("type"), e; } function f(e, t) { for (var n = e.length, i = 0; n > i; i++) mt.set(e[i], "globalEval", !t || mt.get(t[i], "globalEval")); } function m(e, t) { var n, i, r, o, a, s, l, c; if (1 === t.nodeType) { if (mt.hasData(e) && (o = mt.access(e), a = mt.set(t, o), c = o.events)) { delete a.handle, a.events = {}; for (r in c) for (n = 0, i = c[r].length; i > n; n++) rt.event.add(t, r, c[r][n]); } ft.hasData(e) && (s = ft.access(e), l = rt.extend({}, s), ft.set(t, l)); } } function g(e, n) { var i = e.getElementsByTagName ? e.getElementsByTagName(n || "*") : e.querySelectorAll ? e.querySelectorAll(n || "*") : []; return n === t || n && rt.nodeName(e, n) ? rt.merge([ e ], i) : i; } function v(e, t) { var n = t.nodeName.toLowerCase(); "input" === n && Rt.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue); } function b(e, t) { if (t in e) return t; for (var n = t.charAt(0).toUpperCase() + t.slice(1), i = t, r = Kt.length; r--; ) if ((t = Kt[r] + n) in e) return t; return i; } function y(e, t) { return e = t || e, "none" === rt.css(e, "display") || !rt.contains(e.ownerDocument, e); } function x(t) { return e.getComputedStyle(t, null); } function w(e, t) { for (var n, i, r, o = [], a = 0, s = e.length; s > a; a++) i = e[a], i.style && (o[a] = mt.get(i, "olddisplay"), n = i.style.display, t ? (o[a] || "none" !== n || (i.style.display = ""), "" === i.style.display && y(i) && (o[a] = mt.access(i, "olddisplay", k(i.nodeName)))) : o[a] || (r = y(i), (n && "none" !== n || !r) && mt.set(i, "olddisplay", r ? n : rt.css(i, "display")))); for (a = 0; s > a; a++) i = e[a], i.style && (t && "none" !== i.style.display && "" !== i.style.display || (i.style.display = t ? o[a] || "" : "none")); return e; } function S(e, t, n) { var i = Ut.exec(t); return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : t; } function C(e, t, n, i, r) { for (var o = n === (i ? "border" : "content") ? 4 : "width" === t ? 1 : 0, a = 0; 4 > o; o += 2) "margin" === n && (a += rt.css(e, n + Yt[o], !0, r)), i ? ("content" === n && (a -= rt.css(e, "padding" + Yt[o], !0, r)), "margin" !== n && (a -= rt.css(e, "border" + Yt[o] + "Width", !0, r))) : (a += rt.css(e, "padding" + Yt[o], !0, r), "padding" !== n && (a += rt.css(e, "border" + Yt[o] + "Width", !0, r))); return a; } function _(e, t, n) { var i = !0, r = "width" === t ? e.offsetWidth : e.offsetHeight, o = x(e), a = rt.support.boxSizing && "border-box" === rt.css(e, "boxSizing", !1, o); if (0 >= r || null == r) { if (r = $t(e, t, o), (0 > r || null == r) && (r = e.style[t]), zt.test(r)) return r; i = a && (rt.support.boxSizingReliable || r === e.style[t]), r = parseFloat(r) || 0; } return r + C(e, t, n || (a ? "border" : "content"), i, o) + "px"; } function k(e) { var t = z, n = Wt[e]; return n || (n = E(e, t), "none" !== n && n || (Gt = (Gt || rt("