//fgnass.github.com/spin.js#v2.0.0
!function(a, b) {
"object" == typeof exports ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : a.Spinner = b()
}(this, function() {
"use strict";
function a(a, b) {
var c, d = document.createElement(a || "div");
for (c in b)
d[c] = b[c];
return d
}
function b(a) {
for (var b = 1, c = arguments.length; c > b; b++)
a.appendChild(arguments[b]);
return a
}
function c(a, b, c, d) {
var e = ["opacity", b, ~~(100 * a), c, d].join("-")
, f = .01 + c / d * 100
, g = Math.max(1 - (1 - a) / b * (100 - f), a)
, h = j.substring(0, j.indexOf("Animation")).toLowerCase()
, i = h && "-" + h + "-" || "";
return l[e] || (m.insertRule("@" + i + "keyframes " + e + "{0%{opacity:" + g + "}" + f + "%{opacity:" + a + "}" + (f + .01) + "%{opacity:1}" + (f + b) % 100 + "%{opacity:" + a + "}100%{opacity:" + g + "}}", m.cssRules.length),
l[e] = 1),
e
}
function d(a, b) {
var c, d, e = a.style;
for (b = b.charAt(0).toUpperCase() + b.slice(1),
d = 0; d < k.length; d++)
if (c = k[d] + b,
void 0 !== e[c])
return c;
return void 0 !== e[b] ? b : void 0
}
function e(a, b) {
for (var c in b)
a.style[d(a, c) || c] = b[c];
return a
}
function f(a) {
for (var b = 1; b < arguments.length; b++) {
var c = arguments[b];
for (var d in c)
void 0 === a[d] && (a[d] = c[d])
}
return a
}
function g(a, b) {
return "string" == typeof a ? a : a[b % a.length]
}
function h(a) {
this.opts = f(a || {}, h.defaults, n)
}
function i() {
function c(b, c) {
return a("<" + b + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', c)
}
m.addRule(".spin-vml", "behavior:url(#default#VML)"),
h.prototype.lines = function(a, d) {
function f() {
return e(c("group", {
coordsize: k + " " + k,
coordorigin: -j + " " + -j
}), {
width: k,
height: k
})
}
function h(a, h, i) {
b(m, b(e(f(), {
rotation: 360 / d.lines * a + "deg",
left: ~~h
}), b(e(c("roundrect", {
arcsize: d.corners
}), {
width: j,
height: d.width,
left: d.radius,
top: -d.width >> 1,
filter: i
}), c("fill", {
color: g(d.color, a),
opacity: d.opacity
}), c("stroke", {
opacity: 0
}))))
}
var i, j = d.length + d.width, k = 2 * j, l = 2 * -(d.width + d.length) + "px", m = e(f(), {
position: "absolute",
top: l,
left: l
});
if (d.shadow)
for (i = 1; i <= d.lines; i++)
h(i, -2, "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");
for (i = 1; i <= d.lines; i++)
h(i);
return b(a, m)
}
,
h.prototype.opacity = function(a, b, c, d) {
var e = a.firstChild;
d = d.shadow && d.lines || 0,
e && b + d < e.childNodes.length && (e = e.childNodes[b + d],
e = e && e.firstChild,
e = e && e.firstChild,
e && (e.opacity = c))
}
}
var j, k = ["webkit", "Moz", "ms", "O"], l = {}, m = function() {
var c = a("style", {
type: "text/css"
});
return b(document.getElementsByTagName("head")[0], c),
c.sheet || c.styleSheet
}(), n = {
lines: 12,
length: 7,
width: 5,
radius: 10,
rotate: 0,
corners: 1,
color: "#000",
direction: 1,
speed: 1,
trail: 100,
opacity: .25,
fps: 20,
zIndex: 2e9,
className: "spinner",
top: "50%",
left: "50%",
position: "absolute"
};
h.defaults = {},
f(h.prototype, {
spin: function(b) {
this.stop();
{
var c = this
, d = c.opts
, f = c.el = e(a(0, {
className: d.className
}), {
position: d.position,
width: 0,
zIndex: d.zIndex
});
d.radius + d.length + d.width
}
if (b && (b.insertBefore(f, b.firstChild || null),
e(f, {
left: d.left,
top: d.top
})),
f.setAttribute("role", "progressbar"),
c.lines(f, c.opts),
!j) {
var g, h = 0, i = (d.lines - 1) * (1 - d.direction) / 2, k = d.fps, l = k / d.speed, m = (1 - d.opacity) / (l * d.trail / 100), n = l / d.lines;
!function o() {
h++;
for (var a = 0; a < d.lines; a++)
g = Math.max(1 - (h + (d.lines - a) * n) % l * m, d.opacity),
c.opacity(f, a * d.direction + i, g, d);
c.timeout = c.el && setTimeout(o, ~~(1e3 / k))
}()
}
return c
},
stop: function() {
var a = this.el;
return a && (clearTimeout(this.timeout),
a.parentNode && a.parentNode.removeChild(a),
this.el = void 0),
this
},
lines: function(d, f) {
function h(b, c) {
return e(a(), {
position: "absolute",
width: f.length + f.width + "px",
height: f.width + "px",
background: b,
boxShadow: c,
transformOrigin: "left",
transform: "rotate(" + ~~(360 / f.lines * k + f.rotate) + "deg) translate(" + f.radius + "px,0)",
borderRadius: (f.corners * f.width >> 1) + "px"
})
}
for (var i, k = 0, l = (f.lines - 1) * (1 - f.direction) / 2; k < f.lines; k++)
i = e(a(), {
position: "absolute",
top: 1 + ~(f.width / 2) + "px",
transform: f.hwaccel ? "translate3d(0,0,0)" : "",
opacity: f.opacity,
animation: j && c(f.opacity, f.trail, l + k * f.direction, f.lines) + " " + 1 / f.speed + "s linear infinite"
}),
f.shadow && b(i, e(h("#000", "0 0 4px #000"), {
top: "2px"
})),
b(d, b(i, h(g(f.color, k), "0 0 1px rgba(0,0,0,.1)")));
return d
},
opacity: function(a, b, c) {
b < a.childNodes.length && (a.childNodes[b].style.opacity = c)
}
});
var o = e(a("group"), {
behavior: "url(#default#VML)"
});
return !d(o, "transform") && o.adj ? i() : j = d(o, "animation"),
h
});
/*! @license DOMPurify 2.4.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.3/LICENSE */
!function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).DOMPurify = t()
}(this, (function() {
"use strict";
function e(t) {
return e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
}
: function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
}
,
e(t)
}
function t(e, n) {
return t = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t,
e
}
,
t(e, n)
}
function n() {
if ("undefined" == typeof Reflect || !Reflect.construct)
return !1;
if (Reflect.construct.sham)
return !1;
if ("function" == typeof Proxy)
return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}
))),
!0
} catch (e) {
return !1
}
}
function r(e, o, a) {
return r = n() ? Reflect.construct : function(e, n, r) {
var o = [null];
o.push.apply(o, n);
var a = new (Function.bind.apply(e, o));
return r && t(a, r.prototype),
a
}
,
r.apply(null, arguments)
}
function o(e) {
return function(e) {
if (Array.isArray(e))
return a(e)
}(e) || function(e) {
if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
return Array.from(e)
}(e) || function(e, t) {
if (!e)
return;
if ("string" == typeof e)
return a(e, t);
var n = Object.prototype.toString.call(e).slice(8, -1);
"Object" === n && e.constructor && (n = e.constructor.name);
if ("Map" === n || "Set" === n)
return Array.from(e);
if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
return a(e, t)
}(e) || function() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}()
}
function a(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var n = 0, r = new Array(t); n < t; n++)
r[n] = e[n];
return r
}
var i = Object.hasOwnProperty
, l = Object.setPrototypeOf
, c = Object.isFrozen
, u = Object.getPrototypeOf
, s = Object.getOwnPropertyDescriptor
, m = Object.freeze
, f = Object.seal
, p = Object.create
, d = "undefined" != typeof Reflect && Reflect
, h = d.apply
, g = d.construct;
h || (h = function(e, t, n) {
return e.apply(t, n)
}
),
m || (m = function(e) {
return e
}
),
f || (f = function(e) {
return e
}
),
g || (g = function(e, t) {
return r(e, o(t))
}
);
var y, b = O(Array.prototype.forEach), v = O(Array.prototype.pop), T = O(Array.prototype.push), N = O(String.prototype.toLowerCase), A = O(String.prototype.toString), E = O(String.prototype.match), w = O(String.prototype.replace), S = O(String.prototype.indexOf), x = O(String.prototype.trim), _ = O(RegExp.prototype.test), k = (y = TypeError,
function() {
for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)
t[n] = arguments[n];
return g(y, t)
}
);
function O(e) {
return function(t) {
for (var n = arguments.length, r = new Array(n > 1 ? n - 1 : 0), o = 1; o < n; o++)
r[o - 1] = arguments[o];
return h(e, t, r)
}
}
function D(e, t, n) {
n = n || N,
l && l(e, null);
for (var r = t.length; r--; ) {
var o = t[r];
if ("string" == typeof o) {
var a = n(o);
a !== o && (c(t) || (t[r] = a),
o = a)
}
e[o] = !0
}
return e
}
function L(e) {
var t, n = p(null);
for (t in e)
!0 === h(i, e, [t]) && (n[t] = e[t]);
return n
}
function R(e, t) {
for (; null !== e; ) {
var n = s(e, t);
if (n) {
if (n.get)
return O(n.get);
if ("function" == typeof n.value)
return O(n.value)
}
e = u(e)
}
return function(e) {
return console.warn("fallback value for", e),
null
}
}
var M = m(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"])
, C = m(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"])
, I = m(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"])
, F = m(["animate", "color-profile", "cursor", "discard", "fedropshadow", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"])
, U = m(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover"])
, H = m(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"])
, z = m(["#text"])
, P = m(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"])
, j = m(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"])
, B = m(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"])
, G = m(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"])
, W = f(/\{\{[\w\W]*|[\w\W]*\}\}/gm)
, q = f(/<%[\w\W]*|[\w\W]*%>/gm)
, Y = f(/\${[\w\W]*}/gm)
, $ = f(/^data-[\-\w.\u00B7-\uFFFF]/)
, K = f(/^aria-[\-\w]+$/)
, V = f(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i)
, X = f(/^(?:\w+script|data):/i)
, Z = f(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g)
, J = f(/^html$/i)
, Q = function() {
return "undefined" == typeof window ? null : window
}
, ee = function(t, n) {
if ("object" !== e(t) || "function" != typeof t.createPolicy)
return null;
var r = null
, o = "data-tt-policy-suffix";
n.currentScript && n.currentScript.hasAttribute(o) && (r = n.currentScript.getAttribute(o));
var a = "dompurify" + (r ? "#" + r : "");
try {
return t.createPolicy(a, {
createHTML: function(e) {
return e
},
createScriptURL: function(e) {
return e
}
})
} catch (e) {
return console.warn("TrustedTypes policy " + a + " could not be created."),
null
}
};
var te = function t() {
var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Q()
, r = function(e) {
return t(e)
};
if (r.version = "2.4.3",
r.removed = [],
!n || !n.document || 9 !== n.document.nodeType)
return r.isSupported = !1,
r;
var a = n.document
, i = n.document
, l = n.DocumentFragment
, c = n.HTMLTemplateElement
, u = n.Node
, s = n.Element
, f = n.NodeFilter
, p = n.NamedNodeMap
, d = void 0 === p ? n.NamedNodeMap || n.MozNamedAttrMap : p
, h = n.HTMLFormElement
, g = n.DOMParser
, y = n.trustedTypes
, O = s.prototype
, te = R(O, "cloneNode")
, ne = R(O, "nextSibling")
, re = R(O, "childNodes")
, oe = R(O, "parentNode");
if ("function" == typeof c) {
var ae = i.createElement("template");
ae.content && ae.content.ownerDocument && (i = ae.content.ownerDocument)
}
var ie = ee(y, a)
, le = ie ? ie.createHTML("") : ""
, ce = i
, ue = ce.implementation
, se = ce.createNodeIterator
, me = ce.createDocumentFragment
, fe = ce.getElementsByTagName
, pe = a.importNode
, de = {};
try {
de = L(i).documentMode ? i.documentMode : {}
} catch (e) {}
var he = {};
r.isSupported = "function" == typeof oe && ue && void 0 !== ue.createHTMLDocument && 9 !== de;
var ge, ye, be = W, ve = q, Te = Y, Ne = $, Ae = K, Ee = X, we = Z, Se = V, xe = null, _e = D({}, [].concat(o(M), o(C), o(I), o(U), o(z))), ke = null, Oe = D({}, [].concat(o(P), o(j), o(B), o(G))), De = Object.seal(Object.create(null, {
tagNameCheck: {
writable: !0,
configurable: !1,
enumerable: !0,
value: null
},
attributeNameCheck: {
writable: !0,
configurable: !1,
enumerable: !0,
value: null
},
allowCustomizedBuiltInElements: {
writable: !0,
configurable: !1,
enumerable: !0,
value: !1
}
})), Le = null, Re = null, Me = !0, Ce = !0, Ie = !1, Fe = !1, Ue = !1, He = !1, ze = !1, Pe = !1, je = !1, Be = !1, Ge = !0, We = !1, qe = "user-content-", Ye = !0, $e = !1, Ke = {}, Ve = null, Xe = D({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]), Ze = null, Je = D({}, ["audio", "video", "img", "source", "image", "track"]), Qe = null, et = D({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), tt = "http://www.w3.org/1998/Math/MathML", nt = "http://www.w3.org/2000/svg", rt = "http://www.w3.org/1999/xhtml", ot = rt, at = !1, it = null, lt = D({}, [tt, nt, rt], A), ct = ["application/xhtml+xml", "text/html"], ut = "text/html", st = null, mt = i.createElement("form"), ft = function(e) {
return e instanceof RegExp || e instanceof Function
}, pt = function(t) {
st && st === t || (t && "object" === e(t) || (t = {}),
t = L(t),
ge = ge = -1 === ct.indexOf(t.PARSER_MEDIA_TYPE) ? ut : t.PARSER_MEDIA_TYPE,
ye = "application/xhtml+xml" === ge ? A : N,
xe = "ALLOWED_TAGS"in t ? D({}, t.ALLOWED_TAGS, ye) : _e,
ke = "ALLOWED_ATTR"in t ? D({}, t.ALLOWED_ATTR, ye) : Oe,
it = "ALLOWED_NAMESPACES"in t ? D({}, t.ALLOWED_NAMESPACES, A) : lt,
Qe = "ADD_URI_SAFE_ATTR"in t ? D(L(et), t.ADD_URI_SAFE_ATTR, ye) : et,
Ze = "ADD_DATA_URI_TAGS"in t ? D(L(Je), t.ADD_DATA_URI_TAGS, ye) : Je,
Ve = "FORBID_CONTENTS"in t ? D({}, t.FORBID_CONTENTS, ye) : Xe,
Le = "FORBID_TAGS"in t ? D({}, t.FORBID_TAGS, ye) : {},
Re = "FORBID_ATTR"in t ? D({}, t.FORBID_ATTR, ye) : {},
Ke = "USE_PROFILES"in t && t.USE_PROFILES,
Me = !1 !== t.ALLOW_ARIA_ATTR,
Ce = !1 !== t.ALLOW_DATA_ATTR,
Ie = t.ALLOW_UNKNOWN_PROTOCOLS || !1,
Fe = t.SAFE_FOR_TEMPLATES || !1,
Ue = t.WHOLE_DOCUMENT || !1,
Pe = t.RETURN_DOM || !1,
je = t.RETURN_DOM_FRAGMENT || !1,
Be = t.RETURN_TRUSTED_TYPE || !1,
ze = t.FORCE_BODY || !1,
Ge = !1 !== t.SANITIZE_DOM,
We = t.SANITIZE_NAMED_PROPS || !1,
Ye = !1 !== t.KEEP_CONTENT,
$e = t.IN_PLACE || !1,
Se = t.ALLOWED_URI_REGEXP || Se,
ot = t.NAMESPACE || rt,
t.CUSTOM_ELEMENT_HANDLING && ft(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (De.tagNameCheck = t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),
t.CUSTOM_ELEMENT_HANDLING && ft(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (De.attributeNameCheck = t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),
t.CUSTOM_ELEMENT_HANDLING && "boolean" == typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (De.allowCustomizedBuiltInElements = t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),
Fe && (Ce = !1),
je && (Pe = !0),
Ke && (xe = D({}, o(z)),
ke = [],
!0 === Ke.html && (D(xe, M),
D(ke, P)),
!0 === Ke.svg && (D(xe, C),
D(ke, j),
D(ke, G)),
!0 === Ke.svgFilters && (D(xe, I),
D(ke, j),
D(ke, G)),
!0 === Ke.mathMl && (D(xe, U),
D(ke, B),
D(ke, G))),
t.ADD_TAGS && (xe === _e && (xe = L(xe)),
D(xe, t.ADD_TAGS, ye)),
t.ADD_ATTR && (ke === Oe && (ke = L(ke)),
D(ke, t.ADD_ATTR, ye)),
t.ADD_URI_SAFE_ATTR && D(Qe, t.ADD_URI_SAFE_ATTR, ye),
t.FORBID_CONTENTS && (Ve === Xe && (Ve = L(Ve)),
D(Ve, t.FORBID_CONTENTS, ye)),
Ye && (xe["#text"] = !0),
Ue && D(xe, ["html", "head", "body"]),
xe.table && (D(xe, ["tbody"]),
delete Le.tbody),
m && m(t),
st = t)
}, dt = D({}, ["mi", "mo", "mn", "ms", "mtext"]), ht = D({}, ["foreignobject", "desc", "title", "annotation-xml"]), gt = D({}, ["title", "style", "font", "a", "script"]), yt = D({}, C);
D(yt, I),
D(yt, F);
var bt = D({}, U);
D(bt, H);
var vt = function(e) {
var t = oe(e);
t && t.tagName || (t = {
namespaceURI: ot,
tagName: "template"
});
var n = N(e.tagName)
, r = N(t.tagName);
return !!it[e.namespaceURI] && (e.namespaceURI === nt ? t.namespaceURI === rt ? "svg" === n : t.namespaceURI === tt ? "svg" === n && ("annotation-xml" === r || dt[r]) : Boolean(yt[n]) : e.namespaceURI === tt ? t.namespaceURI === rt ? "math" === n : t.namespaceURI === nt ? "math" === n && ht[r] : Boolean(bt[n]) : e.namespaceURI === rt ? !(t.namespaceURI === nt && !ht[r]) && (!(t.namespaceURI === tt && !dt[r]) && (!bt[n] && (gt[n] || !yt[n]))) : !("application/xhtml+xml" !== ge || !it[e.namespaceURI]))
}
, Tt = function(e) {
T(r.removed, {
element: e
});
try {
e.parentNode.removeChild(e)
} catch (t) {
try {
e.outerHTML = le
} catch (t) {
e.remove()
}
}
}
, Nt = function(e, t) {
try {
T(r.removed, {
attribute: t.getAttributeNode(e),
from: t
})
} catch (e) {
T(r.removed, {
attribute: null,
from: t
})
}
if (t.removeAttribute(e),
"is" === e && !ke[e])
if (Pe || je)
try {
Tt(t)
} catch (e) {}
else
try {
t.setAttribute(e, "")
} catch (e) {}
}
, At = function(e) {
var t, n;
if (ze)
e = "" + e;
else {
var r = E(e, /^[\r\n\t ]+/);
n = r && r[0]
}
"application/xhtml+xml" === ge && ot === rt && (e = '
' + e + "");
var o = ie ? ie.createHTML(e) : e;
if (ot === rt)
try {
t = (new g).parseFromString(o, ge)
} catch (e) {}
if (!t || !t.documentElement) {
t = ue.createDocument(ot, "template", null);
try {
t.documentElement.innerHTML = at ? le : o
} catch (e) {}
}
var a = t.body || t.documentElement;
return e && n && a.insertBefore(i.createTextNode(n), a.childNodes[0] || null),
ot === rt ? fe.call(t, Ue ? "html" : "body")[0] : Ue ? t.documentElement : a
}
, Et = function(e) {
return se.call(e.ownerDocument || e, e, f.SHOW_ELEMENT | f.SHOW_COMMENT | f.SHOW_TEXT, null, !1)
}
, wt = function(e) {
return e instanceof h && ("string" != typeof e.nodeName || "string" != typeof e.textContent || "function" != typeof e.removeChild || !(e.attributes instanceof d) || "function" != typeof e.removeAttribute || "function" != typeof e.setAttribute || "string" != typeof e.namespaceURI || "function" != typeof e.insertBefore || "function" != typeof e.hasChildNodes)
}
, St = function(t) {
return "object" === e(u) ? t instanceof u : t && "object" === e(t) && "number" == typeof t.nodeType && "string" == typeof t.nodeName
}
, xt = function(e, t, n) {
he[e] && b(he[e], (function(e) {
e.call(r, t, n, st)
}
))
}
, _t = function(e) {
var t;
if (xt("beforeSanitizeElements", e, null),
wt(e))
return Tt(e),
!0;
if (_(/[\u0080-\uFFFF]/, e.nodeName))
return Tt(e),
!0;
var n = ye(e.nodeName);
if (xt("uponSanitizeElement", e, {
tagName: n,
allowedTags: xe
}),
e.hasChildNodes() && !St(e.firstElementChild) && (!St(e.content) || !St(e.content.firstElementChild)) && _(/<[/\w]/g, e.innerHTML) && _(/<[/\w]/g, e.textContent))
return Tt(e),
!0;
if ("select" === n && _(/= 0; --i)
o.insertBefore(te(a[i], !0), ne(e))
}
return Tt(e),
!0
}
return e instanceof s && !vt(e) ? (Tt(e),
!0) : "noscript" !== n && "noembed" !== n || !_(/<\/no(script|embed)/i, e.innerHTML) ? (Fe && 3 === e.nodeType && (t = e.textContent,
t = w(t, be, " "),
t = w(t, ve, " "),
t = w(t, Te, " "),
e.textContent !== t && (T(r.removed, {
element: e.cloneNode()
}),
e.textContent = t)),
xt("afterSanitizeElements", e, null),
!1) : (Tt(e),
!0)
}
, kt = function(e, t, n) {
if (Ge && ("id" === t || "name" === t) && (n in i || n in mt))
return !1;
if (Ce && !Re[t] && _(Ne, t))
;
else if (Me && _(Ae, t))
;
else if (!ke[t] || Re[t]) {
if (!(Ot(e) && (De.tagNameCheck instanceof RegExp && _(De.tagNameCheck, e) || De.tagNameCheck instanceof Function && De.tagNameCheck(e)) && (De.attributeNameCheck instanceof RegExp && _(De.attributeNameCheck, t) || De.attributeNameCheck instanceof Function && De.attributeNameCheck(t)) || "is" === t && De.allowCustomizedBuiltInElements && (De.tagNameCheck instanceof RegExp && _(De.tagNameCheck, n) || De.tagNameCheck instanceof Function && De.tagNameCheck(n))))
return !1
} else if (Qe[t])
;
else if (_(Se, w(n, we, "")))
;
else if ("src" !== t && "xlink:href" !== t && "href" !== t || "script" === e || 0 !== S(n, "data:") || !Ze[e]) {
if (Ie && !_(Ee, w(n, we, "")))
;
else if (n)
return !1
} else
;return !0
}
, Ot = function(e) {
return e.indexOf("-") > 0
}
, Dt = function(t) {
var n, o, a, i;
xt("beforeSanitizeAttributes", t, null);
var l = t.attributes;
if (l) {
var c = {
attrName: "",
attrValue: "",
keepAttr: !0,
allowedAttributes: ke
};
for (i = l.length; i--; ) {
var u = n = l[i]
, s = u.name
, m = u.namespaceURI;
if (o = "value" === s ? n.value : x(n.value),
a = ye(s),
c.attrName = a,
c.attrValue = o,
c.keepAttr = !0,
c.forceKeepAttr = void 0,
xt("uponSanitizeAttribute", t, c),
o = c.attrValue,
!c.forceKeepAttr && (Nt(s, t),
c.keepAttr))
if (_(/\/>/i, o))
Nt(s, t);
else {
Fe && (o = w(o, be, " "),
o = w(o, ve, " "),
o = w(o, Te, " "));
var f = ye(t.nodeName);
if (kt(f, a, o)) {
if (!We || "id" !== a && "name" !== a || (Nt(s, t),
o = qe + o),
ie && "object" === e(y) && "function" == typeof y.getAttributeType)
if (m)
;
else
switch (y.getAttributeType(f, a)) {
case "TrustedHTML":
o = ie.createHTML(o);
break;
case "TrustedScriptURL":
o = ie.createScriptURL(o)
}
try {
m ? t.setAttributeNS(m, s, o) : t.setAttribute(s, o),
v(r.removed)
} catch (e) {}
}
}
}
xt("afterSanitizeAttributes", t, null)
}
}
, Lt = function e(t) {
var n, r = Et(t);
for (xt("beforeSanitizeShadowDOM", t, null); n = r.nextNode(); )
xt("uponSanitizeShadowNode", n, null),
_t(n) || (n.content instanceof l && e(n.content),
Dt(n));
xt("afterSanitizeShadowDOM", t, null)
};
return r.sanitize = function(t) {
var o, i, c, s, m, f = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
if ((at = !t) && (t = "\x3c!--\x3e"),
"string" != typeof t && !St(t)) {
if ("function" != typeof t.toString)
throw k("toString is not a function");
if ("string" != typeof (t = t.toString()))
throw k("dirty is not a string, aborting")
}
if (!r.isSupported) {
if ("object" === e(n.toStaticHTML) || "function" == typeof n.toStaticHTML) {
if ("string" == typeof t)
return n.toStaticHTML(t);
if (St(t))
return n.toStaticHTML(t.outerHTML)
}
return t
}
if (He || pt(f),
r.removed = [],
"string" == typeof t && ($e = !1),
$e) {
if (t.nodeName) {
var p = ye(t.nodeName);
if (!xe[p] || Le[p])
throw k("root node is forbidden and cannot be sanitized in-place")
}
} else if (t instanceof u)
1 === (i = (o = At("\x3c!----\x3e")).ownerDocument.importNode(t, !0)).nodeType && "BODY" === i.nodeName || "HTML" === i.nodeName ? o = i : o.appendChild(i);
else {
if (!Pe && !Fe && !Ue && -1 === t.indexOf("<"))
return ie && Be ? ie.createHTML(t) : t;
if (!(o = At(t)))
return Pe ? null : Be ? le : ""
}
o && ze && Tt(o.firstChild);
for (var d = Et($e ? t : o); c = d.nextNode(); )
3 === c.nodeType && c === s || _t(c) || (c.content instanceof l && Lt(c.content),
Dt(c),
s = c);
if (s = null,
$e)
return t;
if (Pe) {
if (je)
for (m = me.call(o.ownerDocument); o.firstChild; )
m.appendChild(o.firstChild);
else
m = o;
return ke.shadowroot && (m = pe.call(a, m, !0)),
m
}
var h = Ue ? o.outerHTML : o.innerHTML;
return Ue && xe["!doctype"] && o.ownerDocument && o.ownerDocument.doctype && o.ownerDocument.doctype.name && _(J, o.ownerDocument.doctype.name) && (h = "\n" + h),
Fe && (h = w(h, be, " "),
h = w(h, ve, " "),
h = w(h, Te, " ")),
ie && Be ? ie.createHTML(h) : h
}
,
r.setConfig = function(e) {
pt(e),
He = !0
}
,
r.clearConfig = function() {
st = null,
He = !1
}
,
r.isValidAttribute = function(e, t, n) {
st || pt({});
var r = ye(e)
, o = ye(t);
return kt(r, o, n)
}
,
r.addHook = function(e, t) {
"function" == typeof t && (he[e] = he[e] || [],
T(he[e], t))
}
,
r.removeHook = function(e) {
if (he[e])
return v(he[e])
}
,
r.removeHooks = function(e) {
he[e] && (he[e] = [])
}
,
r.removeAllHooks = function() {
he = {}
}
,
r
}();
return te
}
));
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
var CryptoJS = CryptoJS || function(u, p) {
var d = {}
, l = d.lib = {}
, s = function() {}
, t = l.Base = {
extend: function(a) {
s.prototype = this;
var c = new s;
a && c.mixIn(a);
c.hasOwnProperty("init") || (c.init = function() {
c.$super.init.apply(this, arguments)
}
);
c.init.prototype = c;
c.$super = this;
return c
},
create: function() {
var a = this.extend();
a.init.apply(a, arguments);
return a
},
init: function() {},
mixIn: function(a) {
for (var c in a)
a.hasOwnProperty(c) && (this[c] = a[c]);
a.hasOwnProperty("toString") && (this.toString = a.toString)
},
clone: function() {
return this.init.prototype.extend(this)
}
}
, r = l.WordArray = t.extend({
init: function(a, c) {
a = this.words = a || [];
this.sigBytes = c != p ? c : 4 * a.length
},
toString: function(a) {
return (a || v).stringify(this)
},
concat: function(a) {
var c = this.words
, e = a.words
, j = this.sigBytes;
a = a.sigBytes;
this.clamp();
if (j % 4)
for (var k = 0; k < a; k++)
c[j + k >>> 2] |= (e[k >>> 2] >>> 24 - 8 * (k % 4) & 255) << 24 - 8 * ((j + k) % 4);
else if (65535 < e.length)
for (k = 0; k < a; k += 4)
c[j + k >>> 2] = e[k >>> 2];
else
c.push.apply(c, e);
this.sigBytes += a;
return this
},
clamp: function() {
var a = this.words
, c = this.sigBytes;
a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4);
a.length = u.ceil(c / 4)
},
clone: function() {
var a = t.clone.call(this);
a.words = this.words.slice(0);
return a
},
random: function(a) {
for (var c = [], e = 0; e < a; e += 4)
c.push(4294967296 * u.random() | 0);
return new r.init(c,a)
}
})
, w = d.enc = {}
, v = w.Hex = {
stringify: function(a) {
var c = a.words;
a = a.sigBytes;
for (var e = [], j = 0; j < a; j++) {
var k = c[j >>> 2] >>> 24 - 8 * (j % 4) & 255;
e.push((k >>> 4).toString(16));
e.push((k & 15).toString(16))
}
return e.join("")
},
parse: function(a) {
for (var c = a.length, e = [], j = 0; j < c; j += 2)
e[j >>> 3] |= parseInt(a.substr(j, 2), 16) << 24 - 4 * (j % 8);
return new r.init(e,c / 2)
}
}
, b = w.Latin1 = {
stringify: function(a) {
var c = a.words;
a = a.sigBytes;
for (var e = [], j = 0; j < a; j++)
e.push(String.fromCharCode(c[j >>> 2] >>> 24 - 8 * (j % 4) & 255));
return e.join("")
},
parse: function(a) {
for (var c = a.length, e = [], j = 0; j < c; j++)
e[j >>> 2] |= (a.charCodeAt(j) & 255) << 24 - 8 * (j % 4);
return new r.init(e,c)
}
}
, x = w.Utf8 = {
stringify: function(a) {
try {
return decodeURIComponent(escape(b.stringify(a)))
} catch (c) {
throw Error("Malformed UTF-8 data");
}
},
parse: function(a) {
return b.parse(unescape(encodeURIComponent(a)))
}
}
, q = l.BufferedBlockAlgorithm = t.extend({
reset: function() {
this._data = new r.init;
this._nDataBytes = 0
},
_append: function(a) {
"string" == typeof a && (a = x.parse(a));
this._data.concat(a);
this._nDataBytes += a.sigBytes
},
_process: function(a) {
var c = this._data
, e = c.words
, j = c.sigBytes
, k = this.blockSize
, b = j / (4 * k)
, b = a ? u.ceil(b) : u.max((b | 0) - this._minBufferSize, 0);
a = b * k;
j = u.min(4 * a, j);
if (a) {
for (var q = 0; q < a; q += k)
this._doProcessBlock(e, q);
q = e.splice(0, a);
c.sigBytes -= j
}
return new r.init(q,j)
},
clone: function() {
var a = t.clone.call(this);
a._data = this._data.clone();
return a
},
_minBufferSize: 0
});
l.Hasher = q.extend({
cfg: t.extend(),
init: function(a) {
this.cfg = this.cfg.extend(a);
this.reset()
},
reset: function() {
q.reset.call(this);
this._doReset()
},
update: function(a) {
this._append(a);
this._process();
return this
},
finalize: function(a) {
a && this._append(a);
return this._doFinalize()
},
blockSize: 16,
_createHelper: function(a) {
return function(b, e) {
return (new a.init(e)).finalize(b)
}
},
_createHmacHelper: function(a) {
return function(b, e) {
return (new n.HMAC.init(a,e)).finalize(b)
}
}
});
var n = d.algo = {};
return d
}(Math);
(function() {
var u = CryptoJS
, p = u.lib.WordArray;
u.enc.Base64 = {
stringify: function(d) {
var l = d.words
, p = d.sigBytes
, t = this._map;
d.clamp();
d = [];
for (var r = 0; r < p; r += 3)
for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++)
d.push(t.charAt(w >>> 6 * (3 - v) & 63));
if (l = t.charAt(64))
for (; d.length % 4; )
d.push(l);
return d.join("")
},
parse: function(d) {
var l = d.length
, s = this._map
, t = s.charAt(64);
t && (t = d.indexOf(t),
-1 != t && (l = t));
for (var t = [], r = 0, w = 0; w < l; w++)
if (w % 4) {
var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4)
, b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4);
t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4);
r++
}
return p.create(t, r)
},
_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
}
}
)();
(function(u) {
function p(b, n, a, c, e, j, k) {
b = b + (n & a | ~n & c) + e + k;
return (b << j | b >>> 32 - j) + n
}
function d(b, n, a, c, e, j, k) {
b = b + (n & c | a & ~c) + e + k;
return (b << j | b >>> 32 - j) + n
}
function l(b, n, a, c, e, j, k) {
b = b + (n ^ a ^ c) + e + k;
return (b << j | b >>> 32 - j) + n
}
function s(b, n, a, c, e, j, k) {
b = b + (a ^ (n | ~c)) + e + k;
return (b << j | b >>> 32 - j) + n
}
for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++)
b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0;
r = r.MD5 = v.extend({
_doReset: function() {
this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878])
},
_doProcessBlock: function(q, n) {
for (var a = 0; 16 > a; a++) {
var c = n + a
, e = q[c];
q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360
}
var a = this._hash.words
, c = q[n + 0]
, e = q[n + 1]
, j = q[n + 2]
, k = q[n + 3]
, z = q[n + 4]
, r = q[n + 5]
, t = q[n + 6]
, w = q[n + 7]
, v = q[n + 8]
, A = q[n + 9]
, B = q[n + 10]
, C = q[n + 11]
, u = q[n + 12]
, D = q[n + 13]
, E = q[n + 14]
, x = q[n + 15]
, f = a[0]
, m = a[1]
, g = a[2]
, h = a[3]
, f = p(f, m, g, h, c, 7, b[0])
, h = p(h, f, m, g, e, 12, b[1])
, g = p(g, h, f, m, j, 17, b[2])
, m = p(m, g, h, f, k, 22, b[3])
, f = p(f, m, g, h, z, 7, b[4])
, h = p(h, f, m, g, r, 12, b[5])
, g = p(g, h, f, m, t, 17, b[6])
, m = p(m, g, h, f, w, 22, b[7])
, f = p(f, m, g, h, v, 7, b[8])
, h = p(h, f, m, g, A, 12, b[9])
, g = p(g, h, f, m, B, 17, b[10])
, m = p(m, g, h, f, C, 22, b[11])
, f = p(f, m, g, h, u, 7, b[12])
, h = p(h, f, m, g, D, 12, b[13])
, g = p(g, h, f, m, E, 17, b[14])
, m = p(m, g, h, f, x, 22, b[15])
, f = d(f, m, g, h, e, 5, b[16])
, h = d(h, f, m, g, t, 9, b[17])
, g = d(g, h, f, m, C, 14, b[18])
, m = d(m, g, h, f, c, 20, b[19])
, f = d(f, m, g, h, r, 5, b[20])
, h = d(h, f, m, g, B, 9, b[21])
, g = d(g, h, f, m, x, 14, b[22])
, m = d(m, g, h, f, z, 20, b[23])
, f = d(f, m, g, h, A, 5, b[24])
, h = d(h, f, m, g, E, 9, b[25])
, g = d(g, h, f, m, k, 14, b[26])
, m = d(m, g, h, f, v, 20, b[27])
, f = d(f, m, g, h, D, 5, b[28])
, h = d(h, f, m, g, j, 9, b[29])
, g = d(g, h, f, m, w, 14, b[30])
, m = d(m, g, h, f, u, 20, b[31])
, f = l(f, m, g, h, r, 4, b[32])
, h = l(h, f, m, g, v, 11, b[33])
, g = l(g, h, f, m, C, 16, b[34])
, m = l(m, g, h, f, E, 23, b[35])
, f = l(f, m, g, h, e, 4, b[36])
, h = l(h, f, m, g, z, 11, b[37])
, g = l(g, h, f, m, w, 16, b[38])
, m = l(m, g, h, f, B, 23, b[39])
, f = l(f, m, g, h, D, 4, b[40])
, h = l(h, f, m, g, c, 11, b[41])
, g = l(g, h, f, m, k, 16, b[42])
, m = l(m, g, h, f, t, 23, b[43])
, f = l(f, m, g, h, A, 4, b[44])
, h = l(h, f, m, g, u, 11, b[45])
, g = l(g, h, f, m, x, 16, b[46])
, m = l(m, g, h, f, j, 23, b[47])
, f = s(f, m, g, h, c, 6, b[48])
, h = s(h, f, m, g, w, 10, b[49])
, g = s(g, h, f, m, E, 15, b[50])
, m = s(m, g, h, f, r, 21, b[51])
, f = s(f, m, g, h, u, 6, b[52])
, h = s(h, f, m, g, k, 10, b[53])
, g = s(g, h, f, m, B, 15, b[54])
, m = s(m, g, h, f, e, 21, b[55])
, f = s(f, m, g, h, v, 6, b[56])
, h = s(h, f, m, g, x, 10, b[57])
, g = s(g, h, f, m, t, 15, b[58])
, m = s(m, g, h, f, D, 21, b[59])
, f = s(f, m, g, h, z, 6, b[60])
, h = s(h, f, m, g, C, 10, b[61])
, g = s(g, h, f, m, j, 15, b[62])
, m = s(m, g, h, f, A, 21, b[63]);
a[0] = a[0] + f | 0;
a[1] = a[1] + m | 0;
a[2] = a[2] + g | 0;
a[3] = a[3] + h | 0
},
_doFinalize: function() {
var b = this._data
, n = b.words
, a = 8 * this._nDataBytes
, c = 8 * b.sigBytes;
n[c >>> 5] |= 128 << 24 - c % 32;
var e = u.floor(a / 4294967296);
n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360;
n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360;
b.sigBytes = 4 * (n.length + 1);
this._process();
b = this._hash;
n = b.words;
for (a = 0; 4 > a; a++)
c = n[a],
n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360;
return b
},
clone: function() {
var b = v.clone.call(this);
b._hash = this._hash.clone();
return b
}
});
t.MD5 = v._createHelper(r);
t.HmacMD5 = v._createHmacHelper(r)
}
)(Math);
(function() {
var u = CryptoJS
, p = u.lib
, d = p.Base
, l = p.WordArray
, p = u.algo
, s = p.EvpKDF = d.extend({
cfg: d.extend({
keySize: 4,
hasher: p.MD5,
iterations: 1
}),
init: function(d) {
this.cfg = this.cfg.extend(d)
},
compute: function(d, r) {
for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q; ) {
n && s.update(n);
var n = s.update(d).finalize(r);
s.reset();
for (var a = 1; a < p; a++)
n = s.finalize(n),
s.reset();
b.concat(n)
}
b.sigBytes = 4 * q;
return b
}
});
u.EvpKDF = function(d, l, p) {
return s.create(p).compute(d, l)
}
}
)();
CryptoJS.lib.Cipher || function(u) {
var p = CryptoJS
, d = p.lib
, l = d.Base
, s = d.WordArray
, t = d.BufferedBlockAlgorithm
, r = p.enc.Base64
, w = p.algo.EvpKDF
, v = d.Cipher = t.extend({
cfg: l.extend(),
createEncryptor: function(e, a) {
return this.create(this._ENC_XFORM_MODE, e, a)
},
createDecryptor: function(e, a) {
return this.create(this._DEC_XFORM_MODE, e, a)
},
init: function(e, a, b) {
this.cfg = this.cfg.extend(b);
this._xformMode = e;
this._key = a;
this.reset()
},
reset: function() {
t.reset.call(this);
this._doReset()
},
process: function(e) {
this._append(e);
return this._process()
},
finalize: function(e) {
e && this._append(e);
return this._doFinalize()
},
keySize: 4,
ivSize: 4,
_ENC_XFORM_MODE: 1,
_DEC_XFORM_MODE: 2,
_createHelper: function(e) {
return {
encrypt: function(b, k, d) {
return ("string" == typeof k ? c : a).encrypt(e, b, k, d)
},
decrypt: function(b, k, d) {
return ("string" == typeof k ? c : a).decrypt(e, b, k, d)
}
}
}
});
d.StreamCipher = v.extend({
_doFinalize: function() {
return this._process(!0)
},
blockSize: 1
});
var b = p.mode = {}
, x = function(e, a, b) {
var c = this._iv;
c ? this._iv = u : c = this._prevBlock;
for (var d = 0; d < b; d++)
e[a + d] ^= c[d]
}
, q = (d.BlockCipherMode = l.extend({
createEncryptor: function(e, a) {
return this.Encryptor.create(e, a)
},
createDecryptor: function(e, a) {
return this.Decryptor.create(e, a)
},
init: function(e, a) {
this._cipher = e;
this._iv = a
}
})).extend();
q.Encryptor = q.extend({
processBlock: function(e, a) {
var b = this._cipher
, c = b.blockSize;
x.call(this, e, a, c);
b.encryptBlock(e, a);
this._prevBlock = e.slice(a, a + c)
}
});
q.Decryptor = q.extend({
processBlock: function(e, a) {
var b = this._cipher
, c = b.blockSize
, d = e.slice(a, a + c);
b.decryptBlock(e, a);
x.call(this, e, a, c);
this._prevBlock = d
}
});
b = b.CBC = q;
q = (p.pad = {}).Pkcs7 = {
pad: function(a, b) {
for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4)
l.push(d);
c = s.create(l, c);
a.concat(c)
},
unpad: function(a) {
a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255
}
};
d.BlockCipher = v.extend({
cfg: v.cfg.extend({
mode: b,
padding: q
}),
reset: function() {
v.reset.call(this);
var a = this.cfg
, b = a.iv
, a = a.mode;
if (this._xformMode == this._ENC_XFORM_MODE)
var c = a.createEncryptor;
else
c = a.createDecryptor,
this._minBufferSize = 1;
this._mode = c.call(a, this, b && b.words)
},
_doProcessBlock: function(a, b) {
this._mode.processBlock(a, b)
},
_doFinalize: function() {
var a = this.cfg.padding;
if (this._xformMode == this._ENC_XFORM_MODE) {
a.pad(this._data, this.blockSize);
var b = this._process(!0)
} else
b = this._process(!0),
a.unpad(b);
return b
},
blockSize: 4
});
var n = d.CipherParams = l.extend({
init: function(a) {
this.mixIn(a)
},
toString: function(a) {
return (a || this.formatter).stringify(this)
}
})
, b = (p.format = {}).OpenSSL = {
stringify: function(a) {
var b = a.ciphertext;
a = a.salt;
return (a ? s.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r)
},
parse: function(a) {
a = r.parse(a);
var b = a.words;
if (1398893684 == b[0] && 1701076831 == b[1]) {
var c = s.create(b.slice(2, 4));
b.splice(0, 4);
a.sigBytes -= 16
}
return n.create({
ciphertext: a,
salt: c
})
}
}
, a = d.SerializableCipher = l.extend({
cfg: l.extend({
format: b
}),
encrypt: function(a, b, c, d) {
d = this.cfg.extend(d);
var l = a.createEncryptor(c, d);
b = l.finalize(b);
l = l.cfg;
return n.create({
ciphertext: b,
key: c,
iv: l.iv,
algorithm: a,
mode: l.mode,
padding: l.padding,
blockSize: a.blockSize,
formatter: d.format
})
},
decrypt: function(a, b, c, d) {
d = this.cfg.extend(d);
b = this._parse(b, d.format);
return a.createDecryptor(c, d).finalize(b.ciphertext)
},
_parse: function(a, b) {
return "string" == typeof a ? b.parse(a, this) : a
}
})
, p = (p.kdf = {}).OpenSSL = {
execute: function(a, b, c, d) {
d || (d = s.random(8));
a = w.create({
keySize: b + c
}).compute(a, d);
c = s.create(a.words.slice(b), 4 * c);
a.sigBytes = 4 * b;
return n.create({
key: a,
iv: c,
salt: d
})
}
}
, c = d.PasswordBasedCipher = a.extend({
cfg: a.cfg.extend({
kdf: p
}),
encrypt: function(b, c, d, l) {
l = this.cfg.extend(l);
d = l.kdf.execute(d, b.keySize, b.ivSize);
l.iv = d.iv;
b = a.encrypt.call(this, b, c, d.key, l);
b.mixIn(d);
return b
},
decrypt: function(b, c, d, l) {
l = this.cfg.extend(l);
c = this._parse(c, l.format);
d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt);
l.iv = d.iv;
return a.decrypt.call(this, b, c, d.key, l)
}
})
}();
(function() {
for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++)
a[c] = 128 > c ? c << 1 : c << 1 ^ 283;
for (var e = 0, j = 0, c = 0; 256 > c; c++) {
var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4
, k = k >>> 8 ^ k & 255 ^ 99;
l[e] = k;
s[k] = e;
var z = a[e]
, F = a[z]
, G = a[F]
, y = 257 * a[k] ^ 16843008 * k;
t[e] = y << 24 | y >>> 8;
r[e] = y << 16 | y >>> 16;
w[e] = y << 8 | y >>> 24;
v[e] = y;
y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e;
b[k] = y << 24 | y >>> 8;
x[k] = y << 16 | y >>> 16;
q[k] = y << 8 | y >>> 24;
n[k] = y;
e ? (e = z ^ a[a[a[G ^ z]]],
j ^= a[a[j]]) : e = j = 1
}
var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]
, d = d.AES = p.extend({
_doReset: function() {
for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++)
if (j < d)
e[j] = c[j];
else {
var k = e[j - 1];
j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24,
k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255],
k ^= H[j / d | 0] << 24);
e[j] = e[j - d] ^ k
}
c = this._invKeySchedule = [];
for (d = 0; d < a; d++)
j = a - d,
k = d % 4 ? e[j] : e[j - 4],
c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>> 8 & 255]] ^ n[l[k & 255]]
},
encryptBlock: function(a, b) {
this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l)
},
decryptBlock: function(a, c) {
var d = a[c + 1];
a[c + 1] = a[c + 3];
a[c + 3] = d;
this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s);
d = a[c + 1];
a[c + 1] = a[c + 3];
a[c + 3] = d
},
_doCryptBlock: function(a, b, c, d, e, j, l, f) {
for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++)
var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++]
, s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++]
, t = d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++]
, n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++]
, g = q
, h = s
, k = t;
q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++];
s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++];
t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++];
n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++];
a[b] = q;
a[b + 1] = s;
a[b + 2] = t;
a[b + 3] = n
},
keySize: 8
});
u.AES = p._createHelper(d)
}
)();
/*! pako 2.0.3 https://github.com/nodeca/pako @license (MIT AND Zlib) */
!function(t, e) {
"object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).pako = {})
}(this, (function(t) {
"use strict";
function e(t) {
for (var e = t.length; --e >= 0; )
t[e] = 0
}
var a = 256
, i = 286
, n = 30
, r = 15
, s = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0])
, o = new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13])
, l = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7])
, h = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15])
, d = new Array(576);
e(d);
var _ = new Array(60);
e(_);
var f = new Array(512);
e(f);
var u = new Array(256);
e(u);
var c = new Array(29);
e(c);
var w, b, g, p = new Array(n);
function m(t, e, a, i, n) {
this.static_tree = t,
this.extra_bits = e,
this.extra_base = a,
this.elems = i,
this.max_length = n,
this.has_stree = t && t.length
}
function v(t, e) {
this.dyn_tree = t,
this.max_code = 0,
this.stat_desc = e
}
e(p);
var k = function(t) {
return t < 256 ? f[t] : f[256 + (t >>> 7)]
}
, y = function(t, e) {
t.pending_buf[t.pending++] = 255 & e,
t.pending_buf[t.pending++] = e >>> 8 & 255
}
, x = function(t, e, a) {
t.bi_valid > 16 - a ? (t.bi_buf |= e << t.bi_valid & 65535,
y(t, t.bi_buf),
t.bi_buf = e >> 16 - t.bi_valid,
t.bi_valid += a - 16) : (t.bi_buf |= e << t.bi_valid & 65535,
t.bi_valid += a)
}
, z = function(t, e, a) {
x(t, a[2 * e], a[2 * e + 1])
}
, A = function(t, e) {
var a = 0;
do {
a |= 1 & t,
t >>>= 1,
a <<= 1
} while (--e > 0);
return a >>> 1
}
, E = function(t, e, a) {
var i, n, s = new Array(16), o = 0;
for (i = 1; i <= r; i++)
s[i] = o = o + a[i - 1] << 1;
for (n = 0; n <= e; n++) {
var l = t[2 * n + 1];
0 !== l && (t[2 * n] = A(s[l]++, l))
}
}
, R = function(t) {
var e;
for (e = 0; e < i; e++)
t.dyn_ltree[2 * e] = 0;
for (e = 0; e < n; e++)
t.dyn_dtree[2 * e] = 0;
for (e = 0; e < 19; e++)
t.bl_tree[2 * e] = 0;
t.dyn_ltree[512] = 1,
t.opt_len = t.static_len = 0,
t.last_lit = t.matches = 0
}
, Z = function(t) {
t.bi_valid > 8 ? y(t, t.bi_buf) : t.bi_valid > 0 && (t.pending_buf[t.pending++] = t.bi_buf),
t.bi_buf = 0,
t.bi_valid = 0
}
, S = function(t, e, a, i) {
var n = 2 * e
, r = 2 * a;
return t[n] < t[r] || t[n] === t[r] && i[e] <= i[a]
}
, U = function(t, e, a) {
for (var i = t.heap[a], n = a << 1; n <= t.heap_len && (n < t.heap_len && S(e, t.heap[n + 1], t.heap[n], t.depth) && n++,
!S(e, i, t.heap[n], t.depth)); )
t.heap[a] = t.heap[n],
a = n,
n <<= 1;
t.heap[a] = i
}
, D = function(t, e, i) {
var n, r, l, h, d = 0;
if (0 !== t.last_lit)
do {
n = t.pending_buf[t.d_buf + 2 * d] << 8 | t.pending_buf[t.d_buf + 2 * d + 1],
r = t.pending_buf[t.l_buf + d],
d++,
0 === n ? z(t, r, e) : (l = u[r],
z(t, l + a + 1, e),
0 !== (h = s[l]) && (r -= c[l],
x(t, r, h)),
n--,
l = k(n),
z(t, l, i),
0 !== (h = o[l]) && (n -= p[l],
x(t, n, h)))
} while (d < t.last_lit);
z(t, 256, e)
}
, O = function(t, e) {
var a, i, n, s = e.dyn_tree, o = e.stat_desc.static_tree, l = e.stat_desc.has_stree, h = e.stat_desc.elems, d = -1;
for (t.heap_len = 0,
t.heap_max = 573,
a = 0; a < h; a++)
0 !== s[2 * a] ? (t.heap[++t.heap_len] = d = a,
t.depth[a] = 0) : s[2 * a + 1] = 0;
for (; t.heap_len < 2; )
s[2 * (n = t.heap[++t.heap_len] = d < 2 ? ++d : 0)] = 1,
t.depth[n] = 0,
t.opt_len--,
l && (t.static_len -= o[2 * n + 1]);
for (e.max_code = d,
a = t.heap_len >> 1; a >= 1; a--)
U(t, s, a);
n = h;
do {
a = t.heap[1],
t.heap[1] = t.heap[t.heap_len--],
U(t, s, 1),
i = t.heap[1],
t.heap[--t.heap_max] = a,
t.heap[--t.heap_max] = i,
s[2 * n] = s[2 * a] + s[2 * i],
t.depth[n] = (t.depth[a] >= t.depth[i] ? t.depth[a] : t.depth[i]) + 1,
s[2 * a + 1] = s[2 * i + 1] = n,
t.heap[1] = n++,
U(t, s, 1)
} while (t.heap_len >= 2);
t.heap[--t.heap_max] = t.heap[1],
function(t, e) {
var a, i, n, s, o, l, h = e.dyn_tree, d = e.max_code, _ = e.stat_desc.static_tree, f = e.stat_desc.has_stree, u = e.stat_desc.extra_bits, c = e.stat_desc.extra_base, w = e.stat_desc.max_length, b = 0;
for (s = 0; s <= r; s++)
t.bl_count[s] = 0;
for (h[2 * t.heap[t.heap_max] + 1] = 0,
a = t.heap_max + 1; a < 573; a++)
(s = h[2 * h[2 * (i = t.heap[a]) + 1] + 1] + 1) > w && (s = w,
b++),
h[2 * i + 1] = s,
i > d || (t.bl_count[s]++,
o = 0,
i >= c && (o = u[i - c]),
l = h[2 * i],
t.opt_len += l * (s + o),
f && (t.static_len += l * (_[2 * i + 1] + o)));
if (0 !== b) {
do {
for (s = w - 1; 0 === t.bl_count[s]; )
s--;
t.bl_count[s]--,
t.bl_count[s + 1] += 2,
t.bl_count[w]--,
b -= 2
} while (b > 0);
for (s = w; 0 !== s; s--)
for (i = t.bl_count[s]; 0 !== i; )
(n = t.heap[--a]) > d || (h[2 * n + 1] !== s && (t.opt_len += (s - h[2 * n + 1]) * h[2 * n],
h[2 * n + 1] = s),
i--)
}
}(t, e),
E(s, d, t.bl_count)
}
, T = function(t, e, a) {
var i, n, r = -1, s = e[1], o = 0, l = 7, h = 4;
for (0 === s && (l = 138,
h = 3),
e[2 * (a + 1) + 1] = 65535,
i = 0; i <= a; i++)
n = s,
s = e[2 * (i + 1) + 1],
++o < l && n === s || (o < h ? t.bl_tree[2 * n] += o : 0 !== n ? (n !== r && t.bl_tree[2 * n]++,
t.bl_tree[32]++) : o <= 10 ? t.bl_tree[34]++ : t.bl_tree[36]++,
o = 0,
r = n,
0 === s ? (l = 138,
h = 3) : n === s ? (l = 6,
h = 3) : (l = 7,
h = 4))
}
, I = function(t, e, a) {
var i, n, r = -1, s = e[1], o = 0, l = 7, h = 4;
for (0 === s && (l = 138,
h = 3),
i = 0; i <= a; i++)
if (n = s,
s = e[2 * (i + 1) + 1],
!(++o < l && n === s)) {
if (o < h)
do {
z(t, n, t.bl_tree)
} while (0 != --o);
else
0 !== n ? (n !== r && (z(t, n, t.bl_tree),
o--),
z(t, 16, t.bl_tree),
x(t, o - 3, 2)) : o <= 10 ? (z(t, 17, t.bl_tree),
x(t, o - 3, 3)) : (z(t, 18, t.bl_tree),
x(t, o - 11, 7));
o = 0,
r = n,
0 === s ? (l = 138,
h = 3) : n === s ? (l = 6,
h = 3) : (l = 7,
h = 4)
}
}
, F = !1
, L = function(t, e, a, i) {
x(t, 0 + (i ? 1 : 0), 3),
function(t, e, a, i) {
Z(t),
i && (y(t, a),
y(t, ~a)),
t.pending_buf.set(t.window.subarray(e, e + a), t.pending),
t.pending += a
}(t, e, a, !0)
}
, N = {
_tr_init: function(t) {
F || (!function() {
var t, e, a, h, v, k = new Array(16);
for (a = 0,
h = 0; h < 28; h++)
for (c[h] = a,
t = 0; t < 1 << s[h]; t++)
u[a++] = h;
for (u[a - 1] = h,
v = 0,
h = 0; h < 16; h++)
for (p[h] = v,
t = 0; t < 1 << o[h]; t++)
f[v++] = h;
for (v >>= 7; h < n; h++)
for (p[h] = v << 7,
t = 0; t < 1 << o[h] - 7; t++)
f[256 + v++] = h;
for (e = 0; e <= r; e++)
k[e] = 0;
for (t = 0; t <= 143; )
d[2 * t + 1] = 8,
t++,
k[8]++;
for (; t <= 255; )
d[2 * t + 1] = 9,
t++,
k[9]++;
for (; t <= 279; )
d[2 * t + 1] = 7,
t++,
k[7]++;
for (; t <= 287; )
d[2 * t + 1] = 8,
t++,
k[8]++;
for (E(d, 287, k),
t = 0; t < n; t++)
_[2 * t + 1] = 5,
_[2 * t] = A(t, 5);
w = new m(d,s,257,i,r),
b = new m(_,o,0,n,r),
g = new m(new Array(0),l,0,19,7)
}(),
F = !0),
t.l_desc = new v(t.dyn_ltree,w),
t.d_desc = new v(t.dyn_dtree,b),
t.bl_desc = new v(t.bl_tree,g),
t.bi_buf = 0,
t.bi_valid = 0,
R(t)
},
_tr_stored_block: L,
_tr_flush_block: function(t, e, i, n) {
var r, s, o = 0;
t.level > 0 ? (2 === t.strm.data_type && (t.strm.data_type = function(t) {
var e, i = 4093624447;
for (e = 0; e <= 31; e++,
i >>>= 1)
if (1 & i && 0 !== t.dyn_ltree[2 * e])
return 0;
if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26])
return 1;
for (e = 32; e < a; e++)
if (0 !== t.dyn_ltree[2 * e])
return 1;
return 0
}(t)),
O(t, t.l_desc),
O(t, t.d_desc),
o = function(t) {
var e;
for (T(t, t.dyn_ltree, t.l_desc.max_code),
T(t, t.dyn_dtree, t.d_desc.max_code),
O(t, t.bl_desc),
e = 18; e >= 3 && 0 === t.bl_tree[2 * h[e] + 1]; e--)
;
return t.opt_len += 3 * (e + 1) + 5 + 5 + 4,
e
}(t),
r = t.opt_len + 3 + 7 >>> 3,
(s = t.static_len + 3 + 7 >>> 3) <= r && (r = s)) : r = s = i + 5,
i + 4 <= r && -1 !== e ? L(t, e, i, n) : 4 === t.strategy || s === r ? (x(t, 2 + (n ? 1 : 0), 3),
D(t, d, _)) : (x(t, 4 + (n ? 1 : 0), 3),
function(t, e, a, i) {
var n;
for (x(t, e - 257, 5),
x(t, a - 1, 5),
x(t, i - 4, 4),
n = 0; n < i; n++)
x(t, t.bl_tree[2 * h[n] + 1], 3);
I(t, t.dyn_ltree, e - 1),
I(t, t.dyn_dtree, a - 1)
}(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, o + 1),
D(t, t.dyn_ltree, t.dyn_dtree)),
R(t),
n && Z(t)
},
_tr_tally: function(t, e, i) {
return t.pending_buf[t.d_buf + 2 * t.last_lit] = e >>> 8 & 255,
t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e,
t.pending_buf[t.l_buf + t.last_lit] = 255 & i,
t.last_lit++,
0 === e ? t.dyn_ltree[2 * i]++ : (t.matches++,
e--,
t.dyn_ltree[2 * (u[i] + a + 1)]++,
t.dyn_dtree[2 * k(e)]++),
t.last_lit === t.lit_bufsize - 1
},
_tr_align: function(t) {
x(t, 2, 3),
z(t, 256, d),
function(t) {
16 === t.bi_valid ? (y(t, t.bi_buf),
t.bi_buf = 0,
t.bi_valid = 0) : t.bi_valid >= 8 && (t.pending_buf[t.pending++] = 255 & t.bi_buf,
t.bi_buf >>= 8,
t.bi_valid -= 8)
}(t)
}
}
, B = function(t, e, a, i) {
for (var n = 65535 & t | 0, r = t >>> 16 & 65535 | 0, s = 0; 0 !== a; ) {
a -= s = a > 2e3 ? 2e3 : a;
do {
r = r + (n = n + e[i++] | 0) | 0
} while (--s);
n %= 65521,
r %= 65521
}
return n | r << 16 | 0
}
, C = new Uint32Array(function() {
for (var t, e = [], a = 0; a < 256; a++) {
t = a;
for (var i = 0; i < 8; i++)
t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1;
e[a] = t
}
return e
}())
, M = function(t, e, a, i) {
var n = C
, r = i + a;
t ^= -1;
for (var s = i; s < r; s++)
t = t >>> 8 ^ n[255 & (t ^ e[s])];
return -1 ^ t
}
, H = {
2: "need dictionary",
1: "stream end",
0: "",
"-1": "file error",
"-2": "stream error",
"-3": "data error",
"-4": "insufficient memory",
"-5": "buffer error",
"-6": "incompatible version"
}
, j = {
Z_NO_FLUSH: 0,
Z_PARTIAL_FLUSH: 1,
Z_SYNC_FLUSH: 2,
Z_FULL_FLUSH: 3,
Z_FINISH: 4,
Z_BLOCK: 5,
Z_TREES: 6,
Z_OK: 0,
Z_STREAM_END: 1,
Z_NEED_DICT: 2,
Z_ERRNO: -1,
Z_STREAM_ERROR: -2,
Z_DATA_ERROR: -3,
Z_MEM_ERROR: -4,
Z_BUF_ERROR: -5,
Z_NO_COMPRESSION: 0,
Z_BEST_SPEED: 1,
Z_BEST_COMPRESSION: 9,
Z_DEFAULT_COMPRESSION: -1,
Z_FILTERED: 1,
Z_HUFFMAN_ONLY: 2,
Z_RLE: 3,
Z_FIXED: 4,
Z_DEFAULT_STRATEGY: 0,
Z_BINARY: 0,
Z_TEXT: 1,
Z_UNKNOWN: 2,
Z_DEFLATED: 8
}
, K = N._tr_init
, P = N._tr_stored_block
, Y = N._tr_flush_block
, G = N._tr_tally
, X = N._tr_align
, W = j.Z_NO_FLUSH
, q = j.Z_PARTIAL_FLUSH
, J = j.Z_FULL_FLUSH
, Q = j.Z_FINISH
, V = j.Z_BLOCK
, $ = j.Z_OK
, tt = j.Z_STREAM_END
, et = j.Z_STREAM_ERROR
, at = j.Z_DATA_ERROR
, it = j.Z_BUF_ERROR
, nt = j.Z_DEFAULT_COMPRESSION
, rt = j.Z_FILTERED
, st = j.Z_HUFFMAN_ONLY
, ot = j.Z_RLE
, lt = j.Z_FIXED
, ht = j.Z_DEFAULT_STRATEGY
, dt = j.Z_UNKNOWN
, _t = j.Z_DEFLATED
, ft = 258
, ut = 262
, ct = 103
, wt = 113
, bt = 666
, gt = function(t, e) {
return t.msg = H[e],
e
}
, pt = function(t) {
return (t << 1) - (t > 4 ? 9 : 0)
}
, mt = function(t) {
for (var e = t.length; --e >= 0; )
t[e] = 0
}
, vt = function(t, e, a) {
return (e << t.hash_shift ^ a) & t.hash_mask
}
, kt = function(t) {
var e = t.state
, a = e.pending;
a > t.avail_out && (a = t.avail_out),
0 !== a && (t.output.set(e.pending_buf.subarray(e.pending_out, e.pending_out + a), t.next_out),
t.next_out += a,
e.pending_out += a,
t.total_out += a,
t.avail_out -= a,
e.pending -= a,
0 === e.pending && (e.pending_out = 0))
}
, yt = function(t, e) {
Y(t, t.block_start >= 0 ? t.block_start : -1, t.strstart - t.block_start, e),
t.block_start = t.strstart,
kt(t.strm)
}
, xt = function(t, e) {
t.pending_buf[t.pending++] = e
}
, zt = function(t, e) {
t.pending_buf[t.pending++] = e >>> 8 & 255,
t.pending_buf[t.pending++] = 255 & e
}
, At = function(t, e) {
var a, i, n = t.max_chain_length, r = t.strstart, s = t.prev_length, o = t.nice_match, l = t.strstart > t.w_size - ut ? t.strstart - (t.w_size - ut) : 0, h = t.window, d = t.w_mask, _ = t.prev, f = t.strstart + ft, u = h[r + s - 1], c = h[r + s];
t.prev_length >= t.good_match && (n >>= 2),
o > t.lookahead && (o = t.lookahead);
do {
if (h[(a = e) + s] === c && h[a + s - 1] === u && h[a] === h[r] && h[++a] === h[r + 1]) {
r += 2,
a++;
do {} while (h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && r < f);
if (i = ft - (f - r),
r = f - ft,
i > s) {
if (t.match_start = e,
s = i,
i >= o)
break;
u = h[r + s - 1],
c = h[r + s]
}
}
} while ((e = _[e & d]) > l && 0 != --n);
return s <= t.lookahead ? s : t.lookahead
}
, Et = function(t) {
var e, a, i, n, r, s, o, l, h, d, _ = t.w_size;
do {
if (n = t.window_size - t.lookahead - t.strstart,
t.strstart >= _ + (_ - ut)) {
t.window.set(t.window.subarray(_, _ + _), 0),
t.match_start -= _,
t.strstart -= _,
t.block_start -= _,
e = a = t.hash_size;
do {
i = t.head[--e],
t.head[e] = i >= _ ? i - _ : 0
} while (--a);
e = a = _;
do {
i = t.prev[--e],
t.prev[e] = i >= _ ? i - _ : 0
} while (--a);
n += _
}
if (0 === t.strm.avail_in)
break;
if (s = t.strm,
o = t.window,
l = t.strstart + t.lookahead,
h = n,
d = void 0,
(d = s.avail_in) > h && (d = h),
a = 0 === d ? 0 : (s.avail_in -= d,
o.set(s.input.subarray(s.next_in, s.next_in + d), l),
1 === s.state.wrap ? s.adler = B(s.adler, o, d, l) : 2 === s.state.wrap && (s.adler = M(s.adler, o, d, l)),
s.next_in += d,
s.total_in += d,
d),
t.lookahead += a,
t.lookahead + t.insert >= 3)
for (r = t.strstart - t.insert,
t.ins_h = t.window[r],
t.ins_h = vt(t, t.ins_h, t.window[r + 1]); t.insert && (t.ins_h = vt(t, t.ins_h, t.window[r + 3 - 1]),
t.prev[r & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = r,
r++,
t.insert--,
!(t.lookahead + t.insert < 3)); )
;
} while (t.lookahead < ut && 0 !== t.strm.avail_in)
}
, Rt = function(t, e) {
for (var a, i; ; ) {
if (t.lookahead < ut) {
if (Et(t),
t.lookahead < ut && e === W)
return 1;
if (0 === t.lookahead)
break
}
if (a = 0,
t.lookahead >= 3 && (t.ins_h = vt(t, t.ins_h, t.window[t.strstart + 3 - 1]),
a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = t.strstart),
0 !== a && t.strstart - a <= t.w_size - ut && (t.match_length = At(t, a)),
t.match_length >= 3)
if (i = G(t, t.strstart - t.match_start, t.match_length - 3),
t.lookahead -= t.match_length,
t.match_length <= t.max_lazy_match && t.lookahead >= 3) {
t.match_length--;
do {
t.strstart++,
t.ins_h = vt(t, t.ins_h, t.window[t.strstart + 3 - 1]),
a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = t.strstart
} while (0 != --t.match_length);
t.strstart++
} else
t.strstart += t.match_length,
t.match_length = 0,
t.ins_h = t.window[t.strstart],
t.ins_h = vt(t, t.ins_h, t.window[t.strstart + 1]);
else
i = G(t, 0, t.window[t.strstart]),
t.lookahead--,
t.strstart++;
if (i && (yt(t, !1),
0 === t.strm.avail_out))
return 1
}
return t.insert = t.strstart < 2 ? t.strstart : 2,
e === Q ? (yt(t, !0),
0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (yt(t, !1),
0 === t.strm.avail_out) ? 1 : 2
}
, Zt = function(t, e) {
for (var a, i, n; ; ) {
if (t.lookahead < ut) {
if (Et(t),
t.lookahead < ut && e === W)
return 1;
if (0 === t.lookahead)
break
}
if (a = 0,
t.lookahead >= 3 && (t.ins_h = vt(t, t.ins_h, t.window[t.strstart + 3 - 1]),
a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = t.strstart),
t.prev_length = t.match_length,
t.prev_match = t.match_start,
t.match_length = 2,
0 !== a && t.prev_length < t.max_lazy_match && t.strstart - a <= t.w_size - ut && (t.match_length = At(t, a),
t.match_length <= 5 && (t.strategy === rt || 3 === t.match_length && t.strstart - t.match_start > 4096) && (t.match_length = 2)),
t.prev_length >= 3 && t.match_length <= t.prev_length) {
n = t.strstart + t.lookahead - 3,
i = G(t, t.strstart - 1 - t.prev_match, t.prev_length - 3),
t.lookahead -= t.prev_length - 1,
t.prev_length -= 2;
do {
++t.strstart <= n && (t.ins_h = vt(t, t.ins_h, t.window[t.strstart + 3 - 1]),
a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = t.strstart)
} while (0 != --t.prev_length);
if (t.match_available = 0,
t.match_length = 2,
t.strstart++,
i && (yt(t, !1),
0 === t.strm.avail_out))
return 1
} else if (t.match_available) {
if ((i = G(t, 0, t.window[t.strstart - 1])) && yt(t, !1),
t.strstart++,
t.lookahead--,
0 === t.strm.avail_out)
return 1
} else
t.match_available = 1,
t.strstart++,
t.lookahead--
}
return t.match_available && (i = G(t, 0, t.window[t.strstart - 1]),
t.match_available = 0),
t.insert = t.strstart < 2 ? t.strstart : 2,
e === Q ? (yt(t, !0),
0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (yt(t, !1),
0 === t.strm.avail_out) ? 1 : 2
};
function St(t, e, a, i, n) {
this.good_length = t,
this.max_lazy = e,
this.nice_length = a,
this.max_chain = i,
this.func = n
}
var Ut = [new St(0,0,0,0,(function(t, e) {
var a = 65535;
for (a > t.pending_buf_size - 5 && (a = t.pending_buf_size - 5); ; ) {
if (t.lookahead <= 1) {
if (Et(t),
0 === t.lookahead && e === W)
return 1;
if (0 === t.lookahead)
break
}
t.strstart += t.lookahead,
t.lookahead = 0;
var i = t.block_start + a;
if ((0 === t.strstart || t.strstart >= i) && (t.lookahead = t.strstart - i,
t.strstart = i,
yt(t, !1),
0 === t.strm.avail_out))
return 1;
if (t.strstart - t.block_start >= t.w_size - ut && (yt(t, !1),
0 === t.strm.avail_out))
return 1
}
return t.insert = 0,
e === Q ? (yt(t, !0),
0 === t.strm.avail_out ? 3 : 4) : (t.strstart > t.block_start && (yt(t, !1),
t.strm.avail_out),
1)
}
)), new St(4,4,8,4,Rt), new St(4,5,16,8,Rt), new St(4,6,32,32,Rt), new St(4,4,16,16,Zt), new St(8,16,32,32,Zt), new St(8,16,128,128,Zt), new St(8,32,128,256,Zt), new St(32,128,258,1024,Zt), new St(32,258,258,4096,Zt)];
function Dt() {
this.strm = null,
this.status = 0,
this.pending_buf = null,
this.pending_buf_size = 0,
this.pending_out = 0,
this.pending = 0,
this.wrap = 0,
this.gzhead = null,
this.gzindex = 0,
this.method = _t,
this.last_flush = -1,
this.w_size = 0,
this.w_bits = 0,
this.w_mask = 0,
this.window = null,
this.window_size = 0,
this.prev = null,
this.head = null,
this.ins_h = 0,
this.hash_size = 0,
this.hash_bits = 0,
this.hash_mask = 0,
this.hash_shift = 0,
this.block_start = 0,
this.match_length = 0,
this.prev_match = 0,
this.match_available = 0,
this.strstart = 0,
this.match_start = 0,
this.lookahead = 0,
this.prev_length = 0,
this.max_chain_length = 0,
this.max_lazy_match = 0,
this.level = 0,
this.strategy = 0,
this.good_match = 0,
this.nice_match = 0,
this.dyn_ltree = new Uint16Array(1146),
this.dyn_dtree = new Uint16Array(122),
this.bl_tree = new Uint16Array(78),
mt(this.dyn_ltree),
mt(this.dyn_dtree),
mt(this.bl_tree),
this.l_desc = null,
this.d_desc = null,
this.bl_desc = null,
this.bl_count = new Uint16Array(16),
this.heap = new Uint16Array(573),
mt(this.heap),
this.heap_len = 0,
this.heap_max = 0,
this.depth = new Uint16Array(573),
mt(this.depth),
this.l_buf = 0,
this.lit_bufsize = 0,
this.last_lit = 0,
this.d_buf = 0,
this.opt_len = 0,
this.static_len = 0,
this.matches = 0,
this.insert = 0,
this.bi_buf = 0,
this.bi_valid = 0
}
var Ot = function(t) {
if (!t || !t.state)
return gt(t, et);
t.total_in = t.total_out = 0,
t.data_type = dt;
var e = t.state;
return e.pending = 0,
e.pending_out = 0,
e.wrap < 0 && (e.wrap = -e.wrap),
e.status = e.wrap ? 42 : wt,
t.adler = 2 === e.wrap ? 0 : 1,
e.last_flush = W,
K(e),
$
}
, Tt = function(t) {
var e, a = Ot(t);
return a === $ && ((e = t.state).window_size = 2 * e.w_size,
mt(e.head),
e.max_lazy_match = Ut[e.level].max_lazy,
e.good_match = Ut[e.level].good_length,
e.nice_match = Ut[e.level].nice_length,
e.max_chain_length = Ut[e.level].max_chain,
e.strstart = 0,
e.block_start = 0,
e.lookahead = 0,
e.insert = 0,
e.match_length = e.prev_length = 2,
e.match_available = 0,
e.ins_h = 0),
a
}
, It = function(t, e, a, i, n, r) {
if (!t)
return et;
var s = 1;
if (e === nt && (e = 6),
i < 0 ? (s = 0,
i = -i) : i > 15 && (s = 2,
i -= 16),
n < 1 || n > 9 || a !== _t || i < 8 || i > 15 || e < 0 || e > 9 || r < 0 || r > lt)
return gt(t, et);
8 === i && (i = 9);
var o = new Dt;
return t.state = o,
o.strm = t,
o.wrap = s,
o.gzhead = null,
o.w_bits = i,
o.w_size = 1 << o.w_bits,
o.w_mask = o.w_size - 1,
o.hash_bits = n + 7,
o.hash_size = 1 << o.hash_bits,
o.hash_mask = o.hash_size - 1,
o.hash_shift = ~~((o.hash_bits + 3 - 1) / 3),
o.window = new Uint8Array(2 * o.w_size),
o.head = new Uint16Array(o.hash_size),
o.prev = new Uint16Array(o.w_size),
o.lit_bufsize = 1 << n + 6,
o.pending_buf_size = 4 * o.lit_bufsize,
o.pending_buf = new Uint8Array(o.pending_buf_size),
o.d_buf = 1 * o.lit_bufsize,
o.l_buf = 3 * o.lit_bufsize,
o.level = e,
o.strategy = r,
o.method = a,
Tt(t)
}
, Ft = {
deflateInit: function(t, e) {
return It(t, e, _t, 15, 8, ht)
},
deflateInit2: It,
deflateReset: Tt,
deflateResetKeep: Ot,
deflateSetHeader: function(t, e) {
return t && t.state ? 2 !== t.state.wrap ? et : (t.state.gzhead = e,
$) : et
},
deflate: function(t, e) {
var a, i;
if (!t || !t.state || e > V || e < 0)
return t ? gt(t, et) : et;
var n = t.state;
if (!t.output || !t.input && 0 !== t.avail_in || n.status === bt && e !== Q)
return gt(t, 0 === t.avail_out ? it : et);
n.strm = t;
var r = n.last_flush;
if (n.last_flush = e,
42 === n.status)
if (2 === n.wrap)
t.adler = 0,
xt(n, 31),
xt(n, 139),
xt(n, 8),
n.gzhead ? (xt(n, (n.gzhead.text ? 1 : 0) + (n.gzhead.hcrc ? 2 : 0) + (n.gzhead.extra ? 4 : 0) + (n.gzhead.name ? 8 : 0) + (n.gzhead.comment ? 16 : 0)),
xt(n, 255 & n.gzhead.time),
xt(n, n.gzhead.time >> 8 & 255),
xt(n, n.gzhead.time >> 16 & 255),
xt(n, n.gzhead.time >> 24 & 255),
xt(n, 9 === n.level ? 2 : n.strategy >= st || n.level < 2 ? 4 : 0),
xt(n, 255 & n.gzhead.os),
n.gzhead.extra && n.gzhead.extra.length && (xt(n, 255 & n.gzhead.extra.length),
xt(n, n.gzhead.extra.length >> 8 & 255)),
n.gzhead.hcrc && (t.adler = M(t.adler, n.pending_buf, n.pending, 0)),
n.gzindex = 0,
n.status = 69) : (xt(n, 0),
xt(n, 0),
xt(n, 0),
xt(n, 0),
xt(n, 0),
xt(n, 9 === n.level ? 2 : n.strategy >= st || n.level < 2 ? 4 : 0),
xt(n, 3),
n.status = wt);
else {
var s = _t + (n.w_bits - 8 << 4) << 8;
s |= (n.strategy >= st || n.level < 2 ? 0 : n.level < 6 ? 1 : 6 === n.level ? 2 : 3) << 6,
0 !== n.strstart && (s |= 32),
s += 31 - s % 31,
n.status = wt,
zt(n, s),
0 !== n.strstart && (zt(n, t.adler >>> 16),
zt(n, 65535 & t.adler)),
t.adler = 1
}
if (69 === n.status)
if (n.gzhead.extra) {
for (a = n.pending; n.gzindex < (65535 & n.gzhead.extra.length) && (n.pending !== n.pending_buf_size || (n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)),
kt(t),
a = n.pending,
n.pending !== n.pending_buf_size)); )
xt(n, 255 & n.gzhead.extra[n.gzindex]),
n.gzindex++;
n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)),
n.gzindex === n.gzhead.extra.length && (n.gzindex = 0,
n.status = 73)
} else
n.status = 73;
if (73 === n.status)
if (n.gzhead.name) {
a = n.pending;
do {
if (n.pending === n.pending_buf_size && (n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)),
kt(t),
a = n.pending,
n.pending === n.pending_buf_size)) {
i = 1;
break
}
i = n.gzindex < n.gzhead.name.length ? 255 & n.gzhead.name.charCodeAt(n.gzindex++) : 0,
xt(n, i)
} while (0 !== i);
n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)),
0 === i && (n.gzindex = 0,
n.status = 91)
} else
n.status = 91;
if (91 === n.status)
if (n.gzhead.comment) {
a = n.pending;
do {
if (n.pending === n.pending_buf_size && (n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)),
kt(t),
a = n.pending,
n.pending === n.pending_buf_size)) {
i = 1;
break
}
i = n.gzindex < n.gzhead.comment.length ? 255 & n.gzhead.comment.charCodeAt(n.gzindex++) : 0,
xt(n, i)
} while (0 !== i);
n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)),
0 === i && (n.status = ct)
} else
n.status = ct;
if (n.status === ct && (n.gzhead.hcrc ? (n.pending + 2 > n.pending_buf_size && kt(t),
n.pending + 2 <= n.pending_buf_size && (xt(n, 255 & t.adler),
xt(n, t.adler >> 8 & 255),
t.adler = 0,
n.status = wt)) : n.status = wt),
0 !== n.pending) {
if (kt(t),
0 === t.avail_out)
return n.last_flush = -1,
$
} else if (0 === t.avail_in && pt(e) <= pt(r) && e !== Q)
return gt(t, it);
if (n.status === bt && 0 !== t.avail_in)
return gt(t, it);
if (0 !== t.avail_in || 0 !== n.lookahead || e !== W && n.status !== bt) {
var o = n.strategy === st ? function(t, e) {
for (var a; ; ) {
if (0 === t.lookahead && (Et(t),
0 === t.lookahead)) {
if (e === W)
return 1;
break
}
if (t.match_length = 0,
a = G(t, 0, t.window[t.strstart]),
t.lookahead--,
t.strstart++,
a && (yt(t, !1),
0 === t.strm.avail_out))
return 1
}
return t.insert = 0,
e === Q ? (yt(t, !0),
0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (yt(t, !1),
0 === t.strm.avail_out) ? 1 : 2
}(n, e) : n.strategy === ot ? function(t, e) {
for (var a, i, n, r, s = t.window; ; ) {
if (t.lookahead <= ft) {
if (Et(t),
t.lookahead <= ft && e === W)
return 1;
if (0 === t.lookahead)
break
}
if (t.match_length = 0,
t.lookahead >= 3 && t.strstart > 0 && (i = s[n = t.strstart - 1]) === s[++n] && i === s[++n] && i === s[++n]) {
r = t.strstart + ft;
do {} while (i === s[++n] && i === s[++n] && i === s[++n] && i === s[++n] && i === s[++n] && i === s[++n] && i === s[++n] && i === s[++n] && n < r);
t.match_length = ft - (r - n),
t.match_length > t.lookahead && (t.match_length = t.lookahead)
}
if (t.match_length >= 3 ? (a = G(t, 1, t.match_length - 3),
t.lookahead -= t.match_length,
t.strstart += t.match_length,
t.match_length = 0) : (a = G(t, 0, t.window[t.strstart]),
t.lookahead--,
t.strstart++),
a && (yt(t, !1),
0 === t.strm.avail_out))
return 1
}
return t.insert = 0,
e === Q ? (yt(t, !0),
0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (yt(t, !1),
0 === t.strm.avail_out) ? 1 : 2
}(n, e) : Ut[n.level].func(n, e);
if (3 !== o && 4 !== o || (n.status = bt),
1 === o || 3 === o)
return 0 === t.avail_out && (n.last_flush = -1),
$;
if (2 === o && (e === q ? X(n) : e !== V && (P(n, 0, 0, !1),
e === J && (mt(n.head),
0 === n.lookahead && (n.strstart = 0,
n.block_start = 0,
n.insert = 0))),
kt(t),
0 === t.avail_out))
return n.last_flush = -1,
$
}
return e !== Q ? $ : n.wrap <= 0 ? tt : (2 === n.wrap ? (xt(n, 255 & t.adler),
xt(n, t.adler >> 8 & 255),
xt(n, t.adler >> 16 & 255),
xt(n, t.adler >> 24 & 255),
xt(n, 255 & t.total_in),
xt(n, t.total_in >> 8 & 255),
xt(n, t.total_in >> 16 & 255),
xt(n, t.total_in >> 24 & 255)) : (zt(n, t.adler >>> 16),
zt(n, 65535 & t.adler)),
kt(t),
n.wrap > 0 && (n.wrap = -n.wrap),
0 !== n.pending ? $ : tt)
},
deflateEnd: function(t) {
if (!t || !t.state)
return et;
var e = t.state.status;
return 42 !== e && 69 !== e && 73 !== e && 91 !== e && e !== ct && e !== wt && e !== bt ? gt(t, et) : (t.state = null,
e === wt ? gt(t, at) : $)
},
deflateSetDictionary: function(t, e) {
var a = e.length;
if (!t || !t.state)
return et;
var i = t.state
, n = i.wrap;
if (2 === n || 1 === n && 42 !== i.status || i.lookahead)
return et;
if (1 === n && (t.adler = B(t.adler, e, a, 0)),
i.wrap = 0,
a >= i.w_size) {
0 === n && (mt(i.head),
i.strstart = 0,
i.block_start = 0,
i.insert = 0);
var r = new Uint8Array(i.w_size);
r.set(e.subarray(a - i.w_size, a), 0),
e = r,
a = i.w_size
}
var s = t.avail_in
, o = t.next_in
, l = t.input;
for (t.avail_in = a,
t.next_in = 0,
t.input = e,
Et(i); i.lookahead >= 3; ) {
var h = i.strstart
, d = i.lookahead - 2;
do {
i.ins_h = vt(i, i.ins_h, i.window[h + 3 - 1]),
i.prev[h & i.w_mask] = i.head[i.ins_h],
i.head[i.ins_h] = h,
h++
} while (--d);
i.strstart = h,
i.lookahead = 2,
Et(i)
}
return i.strstart += i.lookahead,
i.block_start = i.strstart,
i.insert = i.lookahead,
i.lookahead = 0,
i.match_length = i.prev_length = 2,
i.match_available = 0,
t.next_in = o,
t.input = l,
t.avail_in = s,
i.wrap = n,
$
},
deflateInfo: "pako deflate (from Nodeca project)"
};
function Lt(t) {
return (Lt = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
return typeof t
}
: function(t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
}
)(t)
}
var Nt = function(t, e) {
return Object.prototype.hasOwnProperty.call(t, e)
}
, Bt = function(t) {
for (var e = Array.prototype.slice.call(arguments, 1); e.length; ) {
var a = e.shift();
if (a) {
if ("object" !== Lt(a))
throw new TypeError(a + "must be non-object");
for (var i in a)
Nt(a, i) && (t[i] = a[i])
}
}
return t
}
, Ct = function(t) {
for (var e = 0, a = 0, i = t.length; a < i; a++)
e += t[a].length;
for (var n = new Uint8Array(e), r = 0, s = 0, o = t.length; r < o; r++) {
var l = t[r];
n.set(l, s),
s += l.length
}
return n
}
, Mt = !0;
try {
String.fromCharCode.apply(null, new Uint8Array(1))
} catch (t) {
Mt = !1
}
for (var Ht = new Uint8Array(256), jt = 0; jt < 256; jt++)
Ht[jt] = jt >= 252 ? 6 : jt >= 248 ? 5 : jt >= 240 ? 4 : jt >= 224 ? 3 : jt >= 192 ? 2 : 1;
Ht[254] = Ht[254] = 1;
var Kt = function(t) {
var e, a, i, n, r, s = t.length, o = 0;
for (n = 0; n < s; n++)
55296 == (64512 & (a = t.charCodeAt(n))) && n + 1 < s && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (a = 65536 + (a - 55296 << 10) + (i - 56320),
n++),
o += a < 128 ? 1 : a < 2048 ? 2 : a < 65536 ? 3 : 4;
for (e = new Uint8Array(o),
r = 0,
n = 0; r < o; n++)
55296 == (64512 & (a = t.charCodeAt(n))) && n + 1 < s && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (a = 65536 + (a - 55296 << 10) + (i - 56320),
n++),
a < 128 ? e[r++] = a : a < 2048 ? (e[r++] = 192 | a >>> 6,
e[r++] = 128 | 63 & a) : a < 65536 ? (e[r++] = 224 | a >>> 12,
e[r++] = 128 | a >>> 6 & 63,
e[r++] = 128 | 63 & a) : (e[r++] = 240 | a >>> 18,
e[r++] = 128 | a >>> 12 & 63,
e[r++] = 128 | a >>> 6 & 63,
e[r++] = 128 | 63 & a);
return e
}
, Pt = function(t, e) {
var a, i, n = e || t.length, r = new Array(2 * n);
for (i = 0,
a = 0; a < n; ) {
var s = t[a++];
if (s < 128)
r[i++] = s;
else {
var o = Ht[s];
if (o > 4)
r[i++] = 65533,
a += o - 1;
else {
for (s &= 2 === o ? 31 : 3 === o ? 15 : 7; o > 1 && a < n; )
s = s << 6 | 63 & t[a++],
o--;
o > 1 ? r[i++] = 65533 : s < 65536 ? r[i++] = s : (s -= 65536,
r[i++] = 55296 | s >> 10 & 1023,
r[i++] = 56320 | 1023 & s)
}
}
}
return function(t, e) {
if (e < 65534 && t.subarray && Mt)
return String.fromCharCode.apply(null, t.length === e ? t : t.subarray(0, e));
for (var a = "", i = 0; i < e; i++)
a += String.fromCharCode(t[i]);
return a
}(r, i)
}
, Yt = function(t, e) {
(e = e || t.length) > t.length && (e = t.length);
for (var a = e - 1; a >= 0 && 128 == (192 & t[a]); )
a--;
return a < 0 || 0 === a ? e : a + Ht[t[a]] > e ? a : e
};
var Gt = function() {
this.input = null,
this.next_in = 0,
this.avail_in = 0,
this.total_in = 0,
this.output = null,
this.next_out = 0,
this.avail_out = 0,
this.total_out = 0,
this.msg = "",
this.state = null,
this.data_type = 2,
this.adler = 0
}
, Xt = Object.prototype.toString
, Wt = j.Z_NO_FLUSH
, qt = j.Z_SYNC_FLUSH
, Jt = j.Z_FULL_FLUSH
, Qt = j.Z_FINISH
, Vt = j.Z_OK
, $t = j.Z_STREAM_END
, te = j.Z_DEFAULT_COMPRESSION
, ee = j.Z_DEFAULT_STRATEGY
, ae = j.Z_DEFLATED;
function ie(t) {
this.options = Bt({
level: te,
method: ae,
chunkSize: 16384,
windowBits: 15,
memLevel: 8,
strategy: ee
}, t || {});
var e = this.options;
e.raw && e.windowBits > 0 ? e.windowBits = -e.windowBits : e.gzip && e.windowBits > 0 && e.windowBits < 16 && (e.windowBits += 16),
this.err = 0,
this.msg = "",
this.ended = !1,
this.chunks = [],
this.strm = new Gt,
this.strm.avail_out = 0;
var a = Ft.deflateInit2(this.strm, e.level, e.method, e.windowBits, e.memLevel, e.strategy);
if (a !== Vt)
throw new Error(H[a]);
if (e.header && Ft.deflateSetHeader(this.strm, e.header),
e.dictionary) {
var i;
if (i = "string" == typeof e.dictionary ? Kt(e.dictionary) : "[object ArrayBuffer]" === Xt.call(e.dictionary) ? new Uint8Array(e.dictionary) : e.dictionary,
(a = Ft.deflateSetDictionary(this.strm, i)) !== Vt)
throw new Error(H[a]);
this._dict_set = !0
}
}
function ne(t, e) {
var a = new ie(e);
if (a.push(t, !0),
a.err)
throw a.msg || H[a.err];
return a.result
}
ie.prototype.push = function(t, e) {
var a, i, n = this.strm, r = this.options.chunkSize;
if (this.ended)
return !1;
for (i = e === ~~e ? e : !0 === e ? Qt : Wt,
"string" == typeof t ? n.input = Kt(t) : "[object ArrayBuffer]" === Xt.call(t) ? n.input = new Uint8Array(t) : n.input = t,
n.next_in = 0,
n.avail_in = n.input.length; ; )
if (0 === n.avail_out && (n.output = new Uint8Array(r),
n.next_out = 0,
n.avail_out = r),
(i === qt || i === Jt) && n.avail_out <= 6)
this.onData(n.output.subarray(0, n.next_out)),
n.avail_out = 0;
else {
if ((a = Ft.deflate(n, i)) === $t)
return n.next_out > 0 && this.onData(n.output.subarray(0, n.next_out)),
a = Ft.deflateEnd(this.strm),
this.onEnd(a),
this.ended = !0,
a === Vt;
if (0 !== n.avail_out) {
if (i > 0 && n.next_out > 0)
this.onData(n.output.subarray(0, n.next_out)),
n.avail_out = 0;
else if (0 === n.avail_in)
break
} else
this.onData(n.output)
}
return !0
}
,
ie.prototype.onData = function(t) {
this.chunks.push(t)
}
,
ie.prototype.onEnd = function(t) {
t === Vt && (this.result = Ct(this.chunks)),
this.chunks = [],
this.err = t,
this.msg = this.strm.msg
}
;
var re = {
Deflate: ie,
deflate: ne,
deflateRaw: function(t, e) {
return (e = e || {}).raw = !0,
ne(t, e)
},
gzip: function(t, e) {
return (e = e || {}).gzip = !0,
ne(t, e)
},
constants: j
}
, se = function(t, e) {
var a, i, n, r, s, o, l, h, d, _, f, u, c, w, b, g, p, m, v, k, y, x, z, A, E = t.state;
a = t.next_in,
z = t.input,
i = a + (t.avail_in - 5),
n = t.next_out,
A = t.output,
r = n - (e - t.avail_out),
s = n + (t.avail_out - 257),
o = E.dmax,
l = E.wsize,
h = E.whave,
d = E.wnext,
_ = E.window,
f = E.hold,
u = E.bits,
c = E.lencode,
w = E.distcode,
b = (1 << E.lenbits) - 1,
g = (1 << E.distbits) - 1;
t: do {
u < 15 && (f += z[a++] << u,
u += 8,
f += z[a++] << u,
u += 8),
p = c[f & b];
e: for (; ; ) {
if (f >>>= m = p >>> 24,
u -= m,
0 === (m = p >>> 16 & 255))
A[n++] = 65535 & p;
else {
if (!(16 & m)) {
if (0 == (64 & m)) {
p = c[(65535 & p) + (f & (1 << m) - 1)];
continue e
}
if (32 & m) {
E.mode = 12;
break t
}
t.msg = "invalid literal/length code",
E.mode = 30;
break t
}
v = 65535 & p,
(m &= 15) && (u < m && (f += z[a++] << u,
u += 8),
v += f & (1 << m) - 1,
f >>>= m,
u -= m),
u < 15 && (f += z[a++] << u,
u += 8,
f += z[a++] << u,
u += 8),
p = w[f & g];
a: for (; ; ) {
if (f >>>= m = p >>> 24,
u -= m,
!(16 & (m = p >>> 16 & 255))) {
if (0 == (64 & m)) {
p = w[(65535 & p) + (f & (1 << m) - 1)];
continue a
}
t.msg = "invalid distance code",
E.mode = 30;
break t
}
if (k = 65535 & p,
u < (m &= 15) && (f += z[a++] << u,
(u += 8) < m && (f += z[a++] << u,
u += 8)),
(k += f & (1 << m) - 1) > o) {
t.msg = "invalid distance too far back",
E.mode = 30;
break t
}
if (f >>>= m,
u -= m,
k > (m = n - r)) {
if ((m = k - m) > h && E.sane) {
t.msg = "invalid distance too far back",
E.mode = 30;
break t
}
if (y = 0,
x = _,
0 === d) {
if (y += l - m,
m < v) {
v -= m;
do {
A[n++] = _[y++]
} while (--m);
y = n - k,
x = A
}
} else if (d < m) {
if (y += l + d - m,
(m -= d) < v) {
v -= m;
do {
A[n++] = _[y++]
} while (--m);
if (y = 0,
d < v) {
v -= m = d;
do {
A[n++] = _[y++]
} while (--m);
y = n - k,
x = A
}
}
} else if (y += d - m,
m < v) {
v -= m;
do {
A[n++] = _[y++]
} while (--m);
y = n - k,
x = A
}
for (; v > 2; )
A[n++] = x[y++],
A[n++] = x[y++],
A[n++] = x[y++],
v -= 3;
v && (A[n++] = x[y++],
v > 1 && (A[n++] = x[y++]))
} else {
y = n - k;
do {
A[n++] = A[y++],
A[n++] = A[y++],
A[n++] = A[y++],
v -= 3
} while (v > 2);
v && (A[n++] = A[y++],
v > 1 && (A[n++] = A[y++]))
}
break
}
}
break
}
} while (a < i && n < s);
a -= v = u >> 3,
f &= (1 << (u -= v << 3)) - 1,
t.next_in = a,
t.next_out = n,
t.avail_in = a < i ? i - a + 5 : 5 - (a - i),
t.avail_out = n < s ? s - n + 257 : 257 - (n - s),
E.hold = f,
E.bits = u
}
, oe = 15
, le = new Uint16Array([3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0])
, he = new Uint8Array([16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78])
, de = new Uint16Array([1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0])
, _e = new Uint8Array([16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64])
, fe = function(t, e, a, i, n, r, s, o) {
var l, h, d, _, f, u, c, w, b, g = o.bits, p = 0, m = 0, v = 0, k = 0, y = 0, x = 0, z = 0, A = 0, E = 0, R = 0, Z = null, S = 0, U = new Uint16Array(16), D = new Uint16Array(16), O = null, T = 0;
for (p = 0; p <= oe; p++)
U[p] = 0;
for (m = 0; m < i; m++)
U[e[a + m]]++;
for (y = g,
k = oe; k >= 1 && 0 === U[k]; k--)
;
if (y > k && (y = k),
0 === k)
return n[r++] = 20971520,
n[r++] = 20971520,
o.bits = 1,
0;
for (v = 1; v < k && 0 === U[v]; v++)
;
for (y < v && (y = v),
A = 1,
p = 1; p <= oe; p++)
if (A <<= 1,
(A -= U[p]) < 0)
return -1;
if (A > 0 && (0 === t || 1 !== k))
return -1;
for (D[1] = 0,
p = 1; p < oe; p++)
D[p + 1] = D[p] + U[p];
for (m = 0; m < i; m++)
0 !== e[a + m] && (s[D[e[a + m]]++] = m);
if (0 === t ? (Z = O = s,
u = 19) : 1 === t ? (Z = le,
S -= 257,
O = he,
T -= 257,
u = 256) : (Z = de,
O = _e,
u = -1),
R = 0,
m = 0,
p = v,
f = r,
x = y,
z = 0,
d = -1,
_ = (E = 1 << y) - 1,
1 === t && E > 852 || 2 === t && E > 592)
return 1;
for (; ; ) {
c = p - z,
s[m] < u ? (w = 0,
b = s[m]) : s[m] > u ? (w = O[T + s[m]],
b = Z[S + s[m]]) : (w = 96,
b = 0),
l = 1 << p - z,
v = h = 1 << x;
do {
n[f + (R >> z) + (h -= l)] = c << 24 | w << 16 | b | 0
} while (0 !== h);
for (l = 1 << p - 1; R & l; )
l >>= 1;
if (0 !== l ? (R &= l - 1,
R += l) : R = 0,
m++,
0 == --U[p]) {
if (p === k)
break;
p = e[a + s[m]]
}
if (p > y && (R & _) !== d) {
for (0 === z && (z = y),
f += v,
A = 1 << (x = p - z); x + z < k && !((A -= U[x + z]) <= 0); )
x++,
A <<= 1;
if (E += 1 << x,
1 === t && E > 852 || 2 === t && E > 592)
return 1;
n[d = R & _] = y << 24 | x << 16 | f - r | 0
}
}
return 0 !== R && (n[f + R] = p - z << 24 | 64 << 16 | 0),
o.bits = y,
0
}
, ue = j.Z_FINISH
, ce = j.Z_BLOCK
, we = j.Z_TREES
, be = j.Z_OK
, ge = j.Z_STREAM_END
, pe = j.Z_NEED_DICT
, me = j.Z_STREAM_ERROR
, ve = j.Z_DATA_ERROR
, ke = j.Z_MEM_ERROR
, ye = j.Z_BUF_ERROR
, xe = j.Z_DEFLATED
, ze = 12
, Ae = 30
, Ee = function(t) {
return (t >>> 24 & 255) + (t >>> 8 & 65280) + ((65280 & t) << 8) + ((255 & t) << 24)
};
function Re() {
this.mode = 0,
this.last = !1,
this.wrap = 0,
this.havedict = !1,
this.flags = 0,
this.dmax = 0,
this.check = 0,
this.total = 0,
this.head = null,
this.wbits = 0,
this.wsize = 0,
this.whave = 0,
this.wnext = 0,
this.window = null,
this.hold = 0,
this.bits = 0,
this.length = 0,
this.offset = 0,
this.extra = 0,
this.lencode = null,
this.distcode = null,
this.lenbits = 0,
this.distbits = 0,
this.ncode = 0,
this.nlen = 0,
this.ndist = 0,
this.have = 0,
this.next = null,
this.lens = new Uint16Array(320),
this.work = new Uint16Array(288),
this.lendyn = null,
this.distdyn = null,
this.sane = 0,
this.back = 0,
this.was = 0
}
var Ze, Se, Ue = function(t) {
if (!t || !t.state)
return me;
var e = t.state;
return t.total_in = t.total_out = e.total = 0,
t.msg = "",
e.wrap && (t.adler = 1 & e.wrap),
e.mode = 1,
e.last = 0,
e.havedict = 0,
e.dmax = 32768,
e.head = null,
e.hold = 0,
e.bits = 0,
e.lencode = e.lendyn = new Int32Array(852),
e.distcode = e.distdyn = new Int32Array(592),
e.sane = 1,
e.back = -1,
be
}, De = function(t) {
if (!t || !t.state)
return me;
var e = t.state;
return e.wsize = 0,
e.whave = 0,
e.wnext = 0,
Ue(t)
}, Oe = function(t, e) {
var a;
if (!t || !t.state)
return me;
var i = t.state;
return e < 0 ? (a = 0,
e = -e) : (a = 1 + (e >> 4),
e < 48 && (e &= 15)),
e && (e < 8 || e > 15) ? me : (null !== i.window && i.wbits !== e && (i.window = null),
i.wrap = a,
i.wbits = e,
De(t))
}, Te = function(t, e) {
if (!t)
return me;
var a = new Re;
t.state = a,
a.window = null;
var i = Oe(t, e);
return i !== be && (t.state = null),
i
}, Ie = !0, Fe = function(t) {
if (Ie) {
Ze = new Int32Array(512),
Se = new Int32Array(32);
for (var e = 0; e < 144; )
t.lens[e++] = 8;
for (; e < 256; )
t.lens[e++] = 9;
for (; e < 280; )
t.lens[e++] = 7;
for (; e < 288; )
t.lens[e++] = 8;
for (fe(1, t.lens, 0, 288, Ze, 0, t.work, {
bits: 9
}),
e = 0; e < 32; )
t.lens[e++] = 5;
fe(2, t.lens, 0, 32, Se, 0, t.work, {
bits: 5
}),
Ie = !1
}
t.lencode = Ze,
t.lenbits = 9,
t.distcode = Se,
t.distbits = 5
}, Le = function(t, e, a, i) {
var n, r = t.state;
return null === r.window && (r.wsize = 1 << r.wbits,
r.wnext = 0,
r.whave = 0,
r.window = new Uint8Array(r.wsize)),
i >= r.wsize ? (r.window.set(e.subarray(a - r.wsize, a), 0),
r.wnext = 0,
r.whave = r.wsize) : ((n = r.wsize - r.wnext) > i && (n = i),
r.window.set(e.subarray(a - i, a - i + n), r.wnext),
(i -= n) ? (r.window.set(e.subarray(a - i, a), 0),
r.wnext = i,
r.whave = r.wsize) : (r.wnext += n,
r.wnext === r.wsize && (r.wnext = 0),
r.whave < r.wsize && (r.whave += n))),
0
}, Ne = {
inflateReset: De,
inflateReset2: Oe,
inflateResetKeep: Ue,
inflateInit: function(t) {
return Te(t, 15)
},
inflateInit2: Te,
inflate: function(t, e) {
var a, i, n, r, s, o, l, h, d, _, f, u, c, w, b, g, p, m, v, k, y, x, z, A, E = 0, R = new Uint8Array(4), Z = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
if (!t || !t.state || !t.output || !t.input && 0 !== t.avail_in)
return me;
(a = t.state).mode === ze && (a.mode = 13),
s = t.next_out,
n = t.output,
l = t.avail_out,
r = t.next_in,
i = t.input,
o = t.avail_in,
h = a.hold,
d = a.bits,
_ = o,
f = l,
x = be;
t: for (; ; )
switch (a.mode) {
case 1:
if (0 === a.wrap) {
a.mode = 13;
break
}
for (; d < 16; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if (2 & a.wrap && 35615 === h) {
a.check = 0,
R[0] = 255 & h,
R[1] = h >>> 8 & 255,
a.check = M(a.check, R, 2, 0),
h = 0,
d = 0,
a.mode = 2;
break
}
if (a.flags = 0,
a.head && (a.head.done = !1),
!(1 & a.wrap) || (((255 & h) << 8) + (h >> 8)) % 31) {
t.msg = "incorrect header check",
a.mode = Ae;
break
}
if ((15 & h) !== xe) {
t.msg = "unknown compression method",
a.mode = Ae;
break
}
if (d -= 4,
y = 8 + (15 & (h >>>= 4)),
0 === a.wbits)
a.wbits = y;
else if (y > a.wbits) {
t.msg = "invalid window size",
a.mode = Ae;
break
}
a.dmax = 1 << a.wbits,
t.adler = a.check = 1,
a.mode = 512 & h ? 10 : ze,
h = 0,
d = 0;
break;
case 2:
for (; d < 16; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if (a.flags = h,
(255 & a.flags) !== xe) {
t.msg = "unknown compression method",
a.mode = Ae;
break
}
if (57344 & a.flags) {
t.msg = "unknown header flags set",
a.mode = Ae;
break
}
a.head && (a.head.text = h >> 8 & 1),
512 & a.flags && (R[0] = 255 & h,
R[1] = h >>> 8 & 255,
a.check = M(a.check, R, 2, 0)),
h = 0,
d = 0,
a.mode = 3;
case 3:
for (; d < 32; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
a.head && (a.head.time = h),
512 & a.flags && (R[0] = 255 & h,
R[1] = h >>> 8 & 255,
R[2] = h >>> 16 & 255,
R[3] = h >>> 24 & 255,
a.check = M(a.check, R, 4, 0)),
h = 0,
d = 0,
a.mode = 4;
case 4:
for (; d < 16; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
a.head && (a.head.xflags = 255 & h,
a.head.os = h >> 8),
512 & a.flags && (R[0] = 255 & h,
R[1] = h >>> 8 & 255,
a.check = M(a.check, R, 2, 0)),
h = 0,
d = 0,
a.mode = 5;
case 5:
if (1024 & a.flags) {
for (; d < 16; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
a.length = h,
a.head && (a.head.extra_len = h),
512 & a.flags && (R[0] = 255 & h,
R[1] = h >>> 8 & 255,
a.check = M(a.check, R, 2, 0)),
h = 0,
d = 0
} else
a.head && (a.head.extra = null);
a.mode = 6;
case 6:
if (1024 & a.flags && ((u = a.length) > o && (u = o),
u && (a.head && (y = a.head.extra_len - a.length,
a.head.extra || (a.head.extra = new Uint8Array(a.head.extra_len)),
a.head.extra.set(i.subarray(r, r + u), y)),
512 & a.flags && (a.check = M(a.check, i, u, r)),
o -= u,
r += u,
a.length -= u),
a.length))
break t;
a.length = 0,
a.mode = 7;
case 7:
if (2048 & a.flags) {
if (0 === o)
break t;
u = 0;
do {
y = i[r + u++],
a.head && y && a.length < 65536 && (a.head.name += String.fromCharCode(y))
} while (y && u < o);
if (512 & a.flags && (a.check = M(a.check, i, u, r)),
o -= u,
r += u,
y)
break t
} else
a.head && (a.head.name = null);
a.length = 0,
a.mode = 8;
case 8:
if (4096 & a.flags) {
if (0 === o)
break t;
u = 0;
do {
y = i[r + u++],
a.head && y && a.length < 65536 && (a.head.comment += String.fromCharCode(y))
} while (y && u < o);
if (512 & a.flags && (a.check = M(a.check, i, u, r)),
o -= u,
r += u,
y)
break t
} else
a.head && (a.head.comment = null);
a.mode = 9;
case 9:
if (512 & a.flags) {
for (; d < 16; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if (h !== (65535 & a.check)) {
t.msg = "header crc mismatch",
a.mode = Ae;
break
}
h = 0,
d = 0
}
a.head && (a.head.hcrc = a.flags >> 9 & 1,
a.head.done = !0),
t.adler = a.check = 0,
a.mode = ze;
break;
case 10:
for (; d < 32; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
t.adler = a.check = Ee(h),
h = 0,
d = 0,
a.mode = 11;
case 11:
if (0 === a.havedict)
return t.next_out = s,
t.avail_out = l,
t.next_in = r,
t.avail_in = o,
a.hold = h,
a.bits = d,
pe;
t.adler = a.check = 1,
a.mode = ze;
case ze:
if (e === ce || e === we)
break t;
case 13:
if (a.last) {
h >>>= 7 & d,
d -= 7 & d,
a.mode = 27;
break
}
for (; d < 3; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
switch (a.last = 1 & h,
d -= 1,
3 & (h >>>= 1)) {
case 0:
a.mode = 14;
break;
case 1:
if (Fe(a),
a.mode = 20,
e === we) {
h >>>= 2,
d -= 2;
break t
}
break;
case 2:
a.mode = 17;
break;
case 3:
t.msg = "invalid block type",
a.mode = Ae
}
h >>>= 2,
d -= 2;
break;
case 14:
for (h >>>= 7 & d,
d -= 7 & d; d < 32; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if ((65535 & h) != (h >>> 16 ^ 65535)) {
t.msg = "invalid stored block lengths",
a.mode = Ae;
break
}
if (a.length = 65535 & h,
h = 0,
d = 0,
a.mode = 15,
e === we)
break t;
case 15:
a.mode = 16;
case 16:
if (u = a.length) {
if (u > o && (u = o),
u > l && (u = l),
0 === u)
break t;
n.set(i.subarray(r, r + u), s),
o -= u,
r += u,
l -= u,
s += u,
a.length -= u;
break
}
a.mode = ze;
break;
case 17:
for (; d < 14; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if (a.nlen = 257 + (31 & h),
h >>>= 5,
d -= 5,
a.ndist = 1 + (31 & h),
h >>>= 5,
d -= 5,
a.ncode = 4 + (15 & h),
h >>>= 4,
d -= 4,
a.nlen > 286 || a.ndist > 30) {
t.msg = "too many length or distance symbols",
a.mode = Ae;
break
}
a.have = 0,
a.mode = 18;
case 18:
for (; a.have < a.ncode; ) {
for (; d < 3; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
a.lens[Z[a.have++]] = 7 & h,
h >>>= 3,
d -= 3
}
for (; a.have < 19; )
a.lens[Z[a.have++]] = 0;
if (a.lencode = a.lendyn,
a.lenbits = 7,
z = {
bits: a.lenbits
},
x = fe(0, a.lens, 0, 19, a.lencode, 0, a.work, z),
a.lenbits = z.bits,
x) {
t.msg = "invalid code lengths set",
a.mode = Ae;
break
}
a.have = 0,
a.mode = 19;
case 19:
for (; a.have < a.nlen + a.ndist; ) {
for (; g = (E = a.lencode[h & (1 << a.lenbits) - 1]) >>> 16 & 255,
p = 65535 & E,
!((b = E >>> 24) <= d); ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if (p < 16)
h >>>= b,
d -= b,
a.lens[a.have++] = p;
else {
if (16 === p) {
for (A = b + 2; d < A; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if (h >>>= b,
d -= b,
0 === a.have) {
t.msg = "invalid bit length repeat",
a.mode = Ae;
break
}
y = a.lens[a.have - 1],
u = 3 + (3 & h),
h >>>= 2,
d -= 2
} else if (17 === p) {
for (A = b + 3; d < A; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
d -= b,
y = 0,
u = 3 + (7 & (h >>>= b)),
h >>>= 3,
d -= 3
} else {
for (A = b + 7; d < A; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
d -= b,
y = 0,
u = 11 + (127 & (h >>>= b)),
h >>>= 7,
d -= 7
}
if (a.have + u > a.nlen + a.ndist) {
t.msg = "invalid bit length repeat",
a.mode = Ae;
break
}
for (; u--; )
a.lens[a.have++] = y
}
}
if (a.mode === Ae)
break;
if (0 === a.lens[256]) {
t.msg = "invalid code -- missing end-of-block",
a.mode = Ae;
break
}
if (a.lenbits = 9,
z = {
bits: a.lenbits
},
x = fe(1, a.lens, 0, a.nlen, a.lencode, 0, a.work, z),
a.lenbits = z.bits,
x) {
t.msg = "invalid literal/lengths set",
a.mode = Ae;
break
}
if (a.distbits = 6,
a.distcode = a.distdyn,
z = {
bits: a.distbits
},
x = fe(2, a.lens, a.nlen, a.ndist, a.distcode, 0, a.work, z),
a.distbits = z.bits,
x) {
t.msg = "invalid distances set",
a.mode = Ae;
break
}
if (a.mode = 20,
e === we)
break t;
case 20:
a.mode = 21;
case 21:
if (o >= 6 && l >= 258) {
t.next_out = s,
t.avail_out = l,
t.next_in = r,
t.avail_in = o,
a.hold = h,
a.bits = d,
se(t, f),
s = t.next_out,
n = t.output,
l = t.avail_out,
r = t.next_in,
i = t.input,
o = t.avail_in,
h = a.hold,
d = a.bits,
a.mode === ze && (a.back = -1);
break
}
for (a.back = 0; g = (E = a.lencode[h & (1 << a.lenbits) - 1]) >>> 16 & 255,
p = 65535 & E,
!((b = E >>> 24) <= d); ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if (g && 0 == (240 & g)) {
for (m = b,
v = g,
k = p; g = (E = a.lencode[k + ((h & (1 << m + v) - 1) >> m)]) >>> 16 & 255,
p = 65535 & E,
!(m + (b = E >>> 24) <= d); ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
h >>>= m,
d -= m,
a.back += m
}
if (h >>>= b,
d -= b,
a.back += b,
a.length = p,
0 === g) {
a.mode = 26;
break
}
if (32 & g) {
a.back = -1,
a.mode = ze;
break
}
if (64 & g) {
t.msg = "invalid literal/length code",
a.mode = Ae;
break
}
a.extra = 15 & g,
a.mode = 22;
case 22:
if (a.extra) {
for (A = a.extra; d < A; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
a.length += h & (1 << a.extra) - 1,
h >>>= a.extra,
d -= a.extra,
a.back += a.extra
}
a.was = a.length,
a.mode = 23;
case 23:
for (; g = (E = a.distcode[h & (1 << a.distbits) - 1]) >>> 16 & 255,
p = 65535 & E,
!((b = E >>> 24) <= d); ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if (0 == (240 & g)) {
for (m = b,
v = g,
k = p; g = (E = a.distcode[k + ((h & (1 << m + v) - 1) >> m)]) >>> 16 & 255,
p = 65535 & E,
!(m + (b = E >>> 24) <= d); ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
h >>>= m,
d -= m,
a.back += m
}
if (h >>>= b,
d -= b,
a.back += b,
64 & g) {
t.msg = "invalid distance code",
a.mode = Ae;
break
}
a.offset = p,
a.extra = 15 & g,
a.mode = 24;
case 24:
if (a.extra) {
for (A = a.extra; d < A; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
a.offset += h & (1 << a.extra) - 1,
h >>>= a.extra,
d -= a.extra,
a.back += a.extra
}
if (a.offset > a.dmax) {
t.msg = "invalid distance too far back",
a.mode = Ae;
break
}
a.mode = 25;
case 25:
if (0 === l)
break t;
if (u = f - l,
a.offset > u) {
if ((u = a.offset - u) > a.whave && a.sane) {
t.msg = "invalid distance too far back",
a.mode = Ae;
break
}
u > a.wnext ? (u -= a.wnext,
c = a.wsize - u) : c = a.wnext - u,
u > a.length && (u = a.length),
w = a.window
} else
w = n,
c = s - a.offset,
u = a.length;
u > l && (u = l),
l -= u,
a.length -= u;
do {
n[s++] = w[c++]
} while (--u);
0 === a.length && (a.mode = 21);
break;
case 26:
if (0 === l)
break t;
n[s++] = a.length,
l--,
a.mode = 21;
break;
case 27:
if (a.wrap) {
for (; d < 32; ) {
if (0 === o)
break t;
o--,
h |= i[r++] << d,
d += 8
}
if (f -= l,
t.total_out += f,
a.total += f,
f && (t.adler = a.check = a.flags ? M(a.check, n, f, s - f) : B(a.check, n, f, s - f)),
f = l,
(a.flags ? h : Ee(h)) !== a.check) {
t.msg = "incorrect data check",
a.mode = Ae;
break
}
h = 0,
d = 0
}
a.mode = 28;
case 28:
if (a.wrap && a.flags) {
for (; d < 32; ) {
if (0 === o)
break t;
o--,
h += i[r++] << d,
d += 8
}
if (h !== (4294967295 & a.total)) {
t.msg = "incorrect length check",
a.mode = Ae;
break
}
h = 0,
d = 0
}
a.mode = 29;
case 29:
x = ge;
break t;
case Ae:
x = ve;
break t;
case 31:
return ke;
case 32:
default:
return me
}
return t.next_out = s,
t.avail_out = l,
t.next_in = r,
t.avail_in = o,
a.hold = h,
a.bits = d,
(a.wsize || f !== t.avail_out && a.mode < Ae && (a.mode < 27 || e !== ue)) && Le(t, t.output, t.next_out, f - t.avail_out),
_ -= t.avail_in,
f -= t.avail_out,
t.total_in += _,
t.total_out += f,
a.total += f,
a.wrap && f && (t.adler = a.check = a.flags ? M(a.check, n, f, t.next_out - f) : B(a.check, n, f, t.next_out - f)),
t.data_type = a.bits + (a.last ? 64 : 0) + (a.mode === ze ? 128 : 0) + (20 === a.mode || 15 === a.mode ? 256 : 0),
(0 === _ && 0 === f || e === ue) && x === be && (x = ye),
x
},
inflateEnd: function(t) {
if (!t || !t.state)
return me;
var e = t.state;
return e.window && (e.window = null),
t.state = null,
be
},
inflateGetHeader: function(t, e) {
if (!t || !t.state)
return me;
var a = t.state;
return 0 == (2 & a.wrap) ? me : (a.head = e,
e.done = !1,
be)
},
inflateSetDictionary: function(t, e) {
var a, i = e.length;
return t && t.state ? 0 !== (a = t.state).wrap && 11 !== a.mode ? me : 11 === a.mode && B(1, e, i, 0) !== a.check ? ve : Le(t, e, i, i) ? (a.mode = 31,
ke) : (a.havedict = 1,
be) : me
},
inflateInfo: "pako inflate (from Nodeca project)"
};
var Be = function() {
this.text = 0,
this.time = 0,
this.xflags = 0,
this.os = 0,
this.extra = null,
this.extra_len = 0,
this.name = "",
this.comment = "",
this.hcrc = 0,
this.done = !1
}
, Ce = Object.prototype.toString
, Me = j.Z_NO_FLUSH
, He = j.Z_FINISH
, je = j.Z_OK
, Ke = j.Z_STREAM_END
, Pe = j.Z_NEED_DICT
, Ye = j.Z_STREAM_ERROR
, Ge = j.Z_DATA_ERROR
, Xe = j.Z_MEM_ERROR;
function We(t) {
this.options = Bt({
chunkSize: 65536,
windowBits: 15,
to: ""
}, t || {});
var e = this.options;
e.raw && e.windowBits >= 0 && e.windowBits < 16 && (e.windowBits = -e.windowBits,
0 === e.windowBits && (e.windowBits = -15)),
!(e.windowBits >= 0 && e.windowBits < 16) || t && t.windowBits || (e.windowBits += 32),
e.windowBits > 15 && e.windowBits < 48 && 0 == (15 & e.windowBits) && (e.windowBits |= 15),
this.err = 0,
this.msg = "",
this.ended = !1,
this.chunks = [],
this.strm = new Gt,
this.strm.avail_out = 0;
var a = Ne.inflateInit2(this.strm, e.windowBits);
if (a !== je)
throw new Error(H[a]);
if (this.header = new Be,
Ne.inflateGetHeader(this.strm, this.header),
e.dictionary && ("string" == typeof e.dictionary ? e.dictionary = Kt(e.dictionary) : "[object ArrayBuffer]" === Ce.call(e.dictionary) && (e.dictionary = new Uint8Array(e.dictionary)),
e.raw && (a = Ne.inflateSetDictionary(this.strm, e.dictionary)) !== je))
throw new Error(H[a])
}
function qe(t, e) {
var a = new We(e);
if (a.push(t),
a.err)
throw a.msg || H[a.err];
return a.result
}
We.prototype.push = function(t, e) {
var a, i, n, r = this.strm, s = this.options.chunkSize, o = this.options.dictionary;
if (this.ended)
return !1;
for (i = e === ~~e ? e : !0 === e ? He : Me,
"[object ArrayBuffer]" === Ce.call(t) ? r.input = new Uint8Array(t) : r.input = t,
r.next_in = 0,
r.avail_in = r.input.length; ; ) {
for (0 === r.avail_out && (r.output = new Uint8Array(s),
r.next_out = 0,
r.avail_out = s),
(a = Ne.inflate(r, i)) === Pe && o && ((a = Ne.inflateSetDictionary(r, o)) === je ? a = Ne.inflate(r, i) : a === Ge && (a = Pe)); r.avail_in > 0 && a === Ke && r.state.wrap > 0 && 0 !== t[r.next_in]; )
Ne.inflateReset(r),
a = Ne.inflate(r, i);
switch (a) {
case Ye:
case Ge:
case Pe:
case Xe:
return this.onEnd(a),
this.ended = !0,
!1
}
if (n = r.avail_out,
r.next_out && (0 === r.avail_out || a === Ke))
if ("string" === this.options.to) {
var l = Yt(r.output, r.next_out)
, h = r.next_out - l
, d = Pt(r.output, l);
r.next_out = h,
r.avail_out = s - h,
h && r.output.set(r.output.subarray(l, l + h), 0),
this.onData(d)
} else
this.onData(r.output.length === r.next_out ? r.output : r.output.subarray(0, r.next_out));
if (a !== je || 0 !== n) {
if (a === Ke)
return a = Ne.inflateEnd(this.strm),
this.onEnd(a),
this.ended = !0,
!0;
if (0 === r.avail_in)
break
}
}
return !0
}
,
We.prototype.onData = function(t) {
this.chunks.push(t)
}
,
We.prototype.onEnd = function(t) {
t === je && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = Ct(this.chunks)),
this.chunks = [],
this.err = t,
this.msg = this.strm.msg
}
;
var Je = {
Inflate: We,
inflate: qe,
inflateRaw: function(t, e) {
return (e = e || {}).raw = !0,
qe(t, e)
},
ungzip: qe,
constants: j
}
, Qe = re.Deflate
, Ve = re.deflate
, $e = re.deflateRaw
, ta = re.gzip
, ea = Je.Inflate
, aa = Je.inflate
, ia = Je.inflateRaw
, na = Je.ungzip
, ra = j
, sa = {
Deflate: Qe,
deflate: Ve,
deflateRaw: $e,
gzip: ta,
Inflate: ea,
inflate: aa,
inflateRaw: ia,
ungzip: na,
constants: ra
};
t.Deflate = Qe,
t.Inflate = ea,
t.constants = ra,
t.default = sa,
t.deflate = Ve,
t.deflateRaw = $e,
t.gzip = ta,
t.inflate = aa,
t.inflateRaw = ia,
t.ungzip = na,
Object.defineProperty(t, "__esModule", {
value: !0
})
}
));
var $jscomp = {
scope: {}
};
$jscomp.defineProperty = "function" == typeof Object.defineProperties ? Object.defineProperty : function(d, h, l) {
if (l.get || l.set)
throw new TypeError("ES3 does not support getters and setters.");
d != Array.prototype && d != Object.prototype && (d[h] = l.value)
}
;
$jscomp.getGlobal = function(d) {
return "undefined" != typeof window && window === d ? d : "undefined" != typeof global && null != global ? global : d
}
;
$jscomp.global = $jscomp.getGlobal(this);
$jscomp.polyfill = function(d, h, l, p) {
if (h) {
l = $jscomp.global;
d = d.split(".");
for (p = 0; p < d.length - 1; p++) {
var v = d[p];
v in l || (l[v] = {});
l = l[v]
}
d = d[d.length - 1];
p = l[d];
h = h(p);
h != p && null != h && $jscomp.defineProperty(l, d, {
configurable: !0,
writable: !0,
value: h
})
}
}
;
$jscomp.polyfill("Math.imul", function(d) {
return d ? d : function(d, l) {
d = Number(d);
l = Number(l);
var h = d & 65535
, v = l & 65535;
return h * v + ((d >>> 16 & 65535) * v + h * (l >>> 16 & 65535) << 16 >>> 0) | 0
}
}, "es6-impl", "es3");
$jscomp.polyfill("Object.setPrototypeOf", function(d) {
return d ? d : "object" != typeof "".__proto__ ? null : function(d, l) {
d.__proto__ = l;
if (d.__proto__ !== l)
throw new TypeError(d + " is not extensible");
return d
}
}, "es6", "es5");
$jscomp.polyfill("Reflect.apply", function(d) {
if (d)
return d;
var h = Function.prototype.apply;
return function(d, p, v) {
return h.call(d, p, v)
}
}, "es6", "es3");
$jscomp.polyfill("Reflect.construct", function(d) {
return d ? d : function(d, l, p) {
void 0 === p && (p = d);
p = Object.create(p.prototype || Object.prototype);
return Reflect.apply(d, p, l) || p
}
}, "es6", "es5");
$jscomp.SYMBOL_PREFIX = "jscomp_symbol_";
$jscomp.initSymbol = function() {
$jscomp.initSymbol = function() {}
;
$jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol)
}
;
$jscomp.symbolCounter_ = 0;
$jscomp.Symbol = function(d) {
return $jscomp.SYMBOL_PREFIX + (d || "") + $jscomp.symbolCounter_++
}
;
$jscomp.initSymbolIterator = function() {
$jscomp.initSymbol();
var d = $jscomp.global.Symbol.iterator;
d || (d = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("iterator"));
"function" != typeof Array.prototype[d] && $jscomp.defineProperty(Array.prototype, d, {
configurable: !0,
writable: !0,
value: function() {
return $jscomp.arrayIterator(this)
}
});
$jscomp.initSymbolIterator = function() {}
}
;
$jscomp.arrayIterator = function(d) {
var h = 0;
return $jscomp.iteratorPrototype(function() {
return h < d.length ? {
done: !1,
value: d[h++]
} : {
done: !0
}
})
}
;
$jscomp.iteratorPrototype = function(d) {
$jscomp.initSymbolIterator();
d = {
next: d
};
d[$jscomp.global.Symbol.iterator] = function() {
return this
}
;
return d
}
;
$jscomp.polyfill("Array.from", function(d) {
return d ? d : function(d, l, p) {
$jscomp.initSymbolIterator();
l = null != l ? l : function(d) {
return d
}
;
var h = []
, z = d[Symbol.iterator];
if ("function" == typeof z)
for (d = z.call(d); !(z = d.next()).done; )
h.push(l.call(p, z.value));
else
for (var z = d.length, B = 0; B < z; B++)
h.push(l.call(p, d[B]));
return h
}
}, "es6-impl", "es3");
$jscomp.polyfill("Number.MAX_SAFE_INTEGER", function() {
return 9007199254740991
}, "es6-impl", "es3");
$jscomp.owns = function(d, h) {
return Object.prototype.hasOwnProperty.call(d, h)
}
;
$jscomp.polyfill("Object.assign", function(d) {
return d ? d : function(d, l) {
for (var h = 1; h < arguments.length; h++) {
var v = arguments[h];
if (v)
for (var z in v)
$jscomp.owns(v, z) && (d[z] = v[z])
}
return d
}
}, "es6-impl", "es3");
$jscomp.polyfill("Array.prototype.fill", function(d) {
return d ? d : function(d, l, p) {
var h = this.length || 0;
0 > l && (l = Math.max(0, h + l));
if (null == p || p > h)
p = h;
p = Number(p);
0 > p && (p = Math.max(0, h + p));
for (l = Number(l || 0); l < p; l++)
this[l] = d;
return this
}
}, "es6-impl", "es3");
Array.from || (Array.from = function(d) {
return [].slice.call(d)
}
);
Math.imul = Math.imul || function(d, h) {
var l = d & 65535
, p = h & 65535;
return l * p + ((d >>> 16 & 65535) * p + l * (h >>> 16 & 65535) << 16 >>> 0) | 0
}
;
function _instanceof(d, h) {
return null != h && "undefined" !== typeof Symbol && h[Symbol.hasInstance] ? !!h[Symbol.hasInstance](d) : d instanceof h
}
function _inherits(d, h) {
if ("function" !== typeof h && null !== h)
throw new TypeError("Super expression must either be null or a function");
d.prototype = Object.create(h && h.prototype, {
constructor: {
value: d,
writable: !0,
configurable: !0
}
});
h && _setPrototypeOf(d, h)
}
function _setPrototypeOf(d, h) {
_setPrototypeOf = Object.setPrototypeOf || function(d, h) {
d.__proto__ = h;
return d
}
;
return _setPrototypeOf(d, h)
}
function _createSuper(d) {
var h = _isNativeReflectConstruct();
return function() {
var l = _getPrototypeOf(d);
if (h)
var p = _getPrototypeOf(this).constructor
, l = Reflect.construct(l, arguments, p);
else
l = l.apply(this, arguments);
return _possibleConstructorReturn(this, l)
}
}
function _possibleConstructorReturn(d, h) {
return !h || "object" !== _typeof(h) && "function" !== typeof h ? _assertThisInitialized(d) : h
}
function _assertThisInitialized(d) {
if (void 0 === d)
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return d
}
function _isNativeReflectConstruct() {
if ("undefined" === typeof Reflect || !Reflect.construct || Reflect.construct.sham)
return !1;
if ("function" === typeof Proxy)
return !0;
try {
return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})),
!0
} catch (d) {
return !1
}
}
function _getPrototypeOf(d) {
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(d) {
return d.__proto__ || Object.getPrototypeOf(d)
}
;
return _getPrototypeOf(d)
}
function _createForOfIteratorHelper(d, h) {
var l;
if ("undefined" === typeof Symbol || null == d[Symbol.iterator]) {
if (Array.isArray(d) || (l = _unsupportedIterableToArray(d)) || h && d && "number" === typeof d.length) {
l && (d = l);
var p = 0
, v = function() {};
return {
s: v,
n: function() {
return p >= d.length ? {
done: !0
} : {
done: !1,
value: d[p++]
}
},
e: function(d) {
throw d;
},
f: v
}
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var z = !0, B = !1, C;
return {
s: function() {
l = d[Symbol.iterator]()
},
n: function() {
var d = l.next();
z = d.done;
return d
},
e: function(d) {
B = !0;
C = d
},
f: function() {
try {
z || null == l["return"] || l["return"]()
} finally {
if (B)
throw C;
}
}
}
}
function _classCallCheck(d, h) {
if (!_instanceof(d, h))
throw new TypeError("Cannot call a class as a function");
}
function _defineProperties(d, h) {
for (var l = 0; l < h.length; l++) {
var p = h[l];
p.enumerable = p.enumerable || !1;
p.configurable = !0;
"value"in p && (p.writable = !0);
Object.defineProperty(d, p.key, p)
}
}
function _createClass(d, h, l) {
h && _defineProperties(d.prototype, h);
l && _defineProperties(d, l);
return d
}
function _typeof(d) {
"@babel/helpers - typeof";
_typeof = "function" === typeof Symbol && "symbol" === typeof Symbol.iterator ? function(d) {
return typeof d
}
: function(d) {
return d && "function" === typeof Symbol && d.constructor === Symbol && d !== Symbol.prototype ? "symbol" : typeof d
}
;
return _typeof(d)
}
function _toConsumableArray(d) {
return _arrayWithoutHoles(d) || _iterableToArray(d) || _unsupportedIterableToArray(d) || _nonIterableSpread()
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _iterableToArray(d) {
if ("undefined" !== typeof Symbol && Symbol.iterator in Object(d))
return Array.from(d)
}
function _arrayWithoutHoles(d) {
if (Array.isArray(d))
return _arrayLikeToArray(d)
}
function _slicedToArray(d, h) {
return _arrayWithHoles(d) || _iterableToArrayLimit(d, h) || _unsupportedIterableToArray(d, h) || _nonIterableRest()
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _unsupportedIterableToArray(d, h) {
if (d) {
if ("string" === typeof d)
return _arrayLikeToArray(d, h);
var l = Object.prototype.toString.call(d).slice(8, -1);
"Object" === l && d.constructor && (l = d.constructor.name);
if ("Map" === l || "Set" === l)
return Array.from(d);
if ("Arguments" === l || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l))
return _arrayLikeToArray(d, h)
}
}
function _arrayLikeToArray(d, h) {
if (null == h || h > d.length)
h = d.length;
for (var l = 0, p = Array(h); l < h; l++)
p[l] = d[l];
return p
}
function _iterableToArrayLimit(d, h) {
if ("undefined" !== typeof Symbol && Symbol.iterator in Object(d)) {
var l = []
, p = !0
, v = !1
, z = void 0;
try {
for (var B = d[Symbol.iterator](), C; !(p = (C = B.next()).done) && (l.push(C.value),
!h || l.length !== h); p = !0)
;
} catch (H) {
v = !0,
z = H
} finally {
try {
if (!p && null != B["return"])
B["return"]()
} finally {
if (v)
throw z;
}
}
return l
}
}
function _arrayWithHoles(d) {
if (Array.isArray(d))
return d
}
var rough = function() {
function d(b, a, e) {
if (b && b.length) {
a = _slicedToArray(a, 2);
var c = a[0]
, f = a[1];
e *= Math.PI / 180;
var k = Math.cos(e)
, d = Math.sin(e);
b.forEach(function(a) {
var e = _slicedToArray(a, 2)
, b = e[0]
, e = e[1];
a[0] = (b - c) * k - (e - f) * d + c;
a[1] = (b - c) * d + (e - f) * k + f
})
}
}
function h(b) {
var a = b[0];
b = b[1];
return Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2))
}
function l(b, a, e, c) {
var f = a[1] - b[1];
a = b[0] - a[0];
b = f * b[0] + a * b[1];
var k = c[1] - e[1];
c = e[0] - c[0];
e = k * e[0] + c * e[1];
var d = f * c - k * a;
return d ? [(c * b - a * e) / d, (f * e - k * b) / d] : null
}
function p(b, a, e) {
var c = b.length;
if (3 > c)
return !1;
var f = [Number.MAX_SAFE_INTEGER, e];
a = [a, e];
for (var k = e = 0; k < c; k++) {
var d = b[k]
, g = b[(k + 1) % c];
if (B(d, g, a, f)) {
if (0 === z(d, a, g))
return v(d, a, g);
e++
}
}
return 1 == e % 2
}
function v(b, a, e) {
return a[0] <= Math.max(b[0], e[0]) && a[0] >= Math.min(b[0], e[0]) && a[1] <= Math.max(b[1], e[1]) && a[1] >= Math.min(b[1], e[1])
}
function z(b, a, e) {
b = (a[1] - b[1]) * (e[0] - a[0]) - (a[0] - b[0]) * (e[1] - a[1]);
return 0 === b ? 0 : 0 < b ? 1 : 2
}
function B(b, a, e, c) {
var f = z(b, a, e)
, k = z(b, a, c)
, d = z(e, c, b)
, g = z(e, c, a);
return f !== k && d !== g || !(0 !== f || !v(b, e, a)) || !(0 !== k || !v(b, c, a)) || !(0 !== d || !v(e, b, c)) || !(0 !== g || !v(e, a, c))
}
function C(b, a) {
var e = [0, 0]
, c = Math.round(a.hachureAngle + 90);
c && d(b, e, c);
var f = function(a, e) {
var c = _toConsumableArray(a);
c[0].join(",") !== c[c.length - 1].join(",") && c.push([c[0][0], c[0][1]]);
var f = [];
if (c && 2 < c.length) {
var b = function() {
var a = e.hachureGap;
0 > a && (a = 4 * e.strokeWidth);
for (var a = Math.max(a, .1), b = [], k = 0; k < c.length - 1; k++) {
var g = c[k]
, d = c[k + 1];
if (g[1] !== d[1]) {
var n = Math.min(g[1], d[1]);
b.push({
ymin: n,
ymax: Math.max(g[1], d[1]),
x: n === g[1] ? g[0] : d[0],
islope: (d[0] - g[0]) / (d[1] - g[1])
})
}
}
if (b.sort(function(a, c) {
return a.ymin < c.ymin ? -1 : a.ymin > c.ymin ? 1 : a.x < c.x ? -1 : a.x > c.x ? 1 : a.ymax === c.ymax ? 0 : (a.ymax - c.ymax) / Math.abs(a.ymax - c.ymax)
}),
!b.length)
return {
v: f
};
for (var m = [], r = b[0].ymin; m.length || b.length; ) {
if (b.length) {
k = -1;
for (g = 0; g < b.length && !(b[g].ymin > r); g++)
k = g;
b.splice(0, k + 1).forEach(function(a) {
m.push({
s: r,
edge: a
})
})
}
if (m = m.filter(function(a) {
return !(a.edge.ymax <= r)
}),
m.sort(function(a, c) {
return a.edge.x === c.edge.x ? 0 : (a.edge.x - c.edge.x) / Math.abs(a.edge.x - c.edge.x)
}),
1 < m.length)
for (k = 0; k < m.length; k += 2) {
g = k + 1;
if (g >= m.length)
break;
f.push([[Math.round(m[k].edge.x), r], [Math.round(m[g].edge.x), r]])
}
r += a;
m.forEach(function(c) {
c.edge.x += a * c.edge.islope
})
}
}();
if ("object" === _typeof(b))
return b.v
}
return f
}(b, a);
return c && (d(b, e, -c),
function(a, c, e) {
var f = [];
a.forEach(function(a) {
return f.push.apply(f, _toConsumableArray(a))
});
d(f, c, e)
}(f, e, -c)),
f
}
function H(b) {
var a = [], e;
a: {
e = b;
for (var c = []; "" !== e; ) {
if (!e.match(/^([ \t\r\n,]+)/))
if (e.match(/^([aAcChHlLmMqQsStTvVzZ])/))
c[c.length] = {
type: 0,
text: RegExp.$1
};
else {
if (!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/)) {
e = [];
break a
}
c[c.length] = {
type: 1,
text: "".concat(parseFloat(RegExp.$1))
}
}
e = e.substr(RegExp.$1.length)
}
e = (c[c.length] = {
type: 2,
text: ""
},
c)
}
for (var c = "BOD", f = 0, k = e[f]; 2 !== k.type; ) {
var d = 0
, g = [];
if ("BOD" === c) {
if ("M" !== k.text && "m" !== k.text)
return H("M0,0" + b);
f++;
d = K[k.text];
c = k.text
} else
1 === k.type ? d = K[c] : (f++,
d = K[k.text],
c = k.text);
if (!(f + d < e.length))
throw Error("Path data ended short");
for (k = f; k < f + d; k++) {
var n = e[k];
if (1 !== n.type)
throw Error("Param not a number: " + c + "," + n.text);
g[g.length] = +n.text
}
if ("number" != typeof K[c])
throw Error("Bad segment: " + c);
a.push({
key: c,
data: g
});
f += d;
k = e[f];
"M" === c && (c = "L");
"m" === c && (c = "l")
}
return a
}
function W(b) {
var a, e, c, f, k, d, g = 0, n = 0, m = 0, x = 0, w = [];
b = _createForOfIteratorHelper(b);
var t;
try {
for (b.s(); !(t = b.n()).done; ) {
var h = t.value
, q = h.data;
switch (h.key) {
case "M":
w.push({
key: "M",
data: _toConsumableArray(q)
});
a = q;
e = _slicedToArray(a, 2);
g = e[0];
n = e[1];
a;
c = q;
f = _slicedToArray(c, 2);
m = f[0];
x = f[1];
c;
break;
case "m":
g += q[0];
n += q[1];
w.push({
key: "M",
data: [g, n]
});
m = g;
x = n;
break;
case "L":
w.push({
key: "L",
data: _toConsumableArray(q)
});
k = q;
d = _slicedToArray(k, 2);
g = d[0];
n = d[1];
k;
break;
case "l":
g += q[0];
n += q[1];
w.push({
key: "L",
data: [g, n]
});
break;
case "C":
w.push({
key: "C",
data: _toConsumableArray(q)
});
g = q[4];
n = q[5];
break;
case "c":
var l = q.map(function(a, c) {
return c % 2 ? a + n : a + g
});
w.push({
key: "C",
data: l
});
g = l[4];
n = l[5];
break;
case "Q":
w.push({
key: "Q",
data: _toConsumableArray(q)
});
g = q[2];
n = q[3];
break;
case "q":
var p = q.map(function(a, c) {
return c % 2 ? a + n : a + g
});
w.push({
key: "Q",
data: p
});
g = p[2];
n = p[3];
break;
case "A":
w.push({
key: "A",
data: _toConsumableArray(q)
});
g = q[5];
n = q[6];
break;
case "a":
g += q[5];
n += q[6];
w.push({
key: "A",
data: [q[0], q[1], q[2], q[3], q[4], g, n]
});
break;
case "H":
w.push({
key: "H",
data: _toConsumableArray(q)
});
g = q[0];
break;
case "h":
g += q[0];
w.push({
key: "H",
data: [g]
});
break;
case "V":
w.push({
key: "V",
data: _toConsumableArray(q)
});
n = q[0];
break;
case "v":
n += q[0];
w.push({
key: "V",
data: [n]
});
break;
case "S":
w.push({
key: "S",
data: _toConsumableArray(q)
});
g = q[2];
n = q[3];
break;
case "s":
var u = q.map(function(a, c) {
return c % 2 ? a + n : a + g
});
w.push({
key: "S",
data: u
});
g = u[2];
n = u[3];
break;
case "T":
w.push({
key: "T",
data: _toConsumableArray(q)
});
g = q[0];
n = q[1];
break;
case "t":
g += q[0];
n += q[1];
w.push({
key: "T",
data: [g, n]
});
break;
case "Z":
case "z":
w.push({
key: "Z",
data: []
}),
g = m,
n = x
}
}
} catch (y) {
b.e(y)
} finally {
b.f()
}
return w
}
function X(b) {
var a, e, c, f, k, d, g = [], n = "", m = 0, x = 0, w = 0, t = 0, h = 0, q = 0;
b = _createForOfIteratorHelper(b);
var l;
try {
for (b.s(); !(l = b.n()).done; ) {
var p = l.value
, u = p.key
, y = p.data;
switch (u) {
case "M":
g.push({
key: "M",
data: _toConsumableArray(y)
});
a = y;
e = _slicedToArray(a, 2);
m = e[0];
x = e[1];
a;
c = y;
f = _slicedToArray(c, 2);
w = f[0];
t = f[1];
c;
break;
case "C":
g.push({
key: "C",
data: _toConsumableArray(y)
});
m = y[4];
x = y[5];
h = y[2];
q = y[3];
break;
case "L":
g.push({
key: "L",
data: _toConsumableArray(y)
});
k = y;
d = _slicedToArray(k, 2);
m = d[0];
x = d[1];
k;
break;
case "H":
m = y[0];
g.push({
key: "L",
data: [m, x]
});
break;
case "V":
x = y[0];
g.push({
key: "L",
data: [m, x]
});
break;
case "S":
var F = 0
, v = 0;
"C" === n || "S" === n ? (F = m + (m - h),
v = x + (x - q)) : (F = m,
v = x);
g.push({
key: "C",
data: [F, v].concat(_toConsumableArray(y))
});
h = y[0];
q = y[1];
m = y[2];
x = y[3];
break;
case "T":
var z = _slicedToArray(y, 2)
, A = z[0]
, B = z[1]
, v = F = 0;
"Q" === n || "T" === n ? (F = m + (m - h),
v = x + (x - q)) : (F = m,
v = x);
g.push({
key: "C",
data: [m + 2 * (F - m) / 3, x + 2 * (v - x) / 3, A + 2 * (F - A) / 3, B + 2 * (v - B) / 3, A, B]
});
h = F;
q = v;
m = A;
x = B;
break;
case "Q":
var C = _slicedToArray(y, 4)
, D = C[0]
, G = C[1]
, E = C[2]
, H = C[3];
g.push({
key: "C",
data: [m + 2 * (D - m) / 3, x + 2 * (G - x) / 3, E + 2 * (D - E) / 3, H + 2 * (G - H) / 3, E, H]
});
h = D;
q = G;
m = E;
x = H;
break;
case "A":
var I = Math.abs(y[0])
, J = Math.abs(y[1])
, K = y[2]
, N = y[3]
, O = y[4]
, L = y[5]
, M = y[6];
if (0 === I || 0 === J)
g.push({
key: "C",
data: [m, x, L, M, L, M]
}),
m = L,
x = M;
else if (m !== L || x !== M)
Y(m, x, L, M, I, J, K, N, O).forEach(function(a) {
g.push({
key: "C",
data: a
})
}),
m = L,
x = M;
break;
case "Z":
g.push({
key: "Z",
data: []
}),
m = w,
x = t
}
n = u
}
} catch (ka) {
b.e(ka)
} finally {
b.f()
}
return g
}
function I(b, a, e) {
return [b * Math.cos(e) - a * Math.sin(e), b * Math.sin(e) + a * Math.cos(e)]
}
function Y(b, a, e, c, f, k, d, g, n, m) {
var r = (w = d,
Math.PI * w / 180), w;
w = [];
var t, h, q;
if (m)
q = _slicedToArray(m, 4),
t = q[0],
g = q[1],
h = q[2],
q = q[3];
else {
t = I(b, a, -r);
a = _slicedToArray(t, 2);
b = a[0];
a = a[1];
t;
t = I(e, c, -r);
c = _slicedToArray(t, 2);
e = c[0];
c = c[1];
t;
t = (b - e) / 2;
h = (a - c) / 2;
q = t * t / (f * f) + h * h / (k * k);
1 < q && (q = Math.sqrt(q),
f *= q,
k *= q);
q = f * f;
var l = k * k;
g = (g === n ? -1 : 1) * Math.sqrt(Math.abs((q * l - q * h * h - l * t * t) / (q * h * h + l * t * t)));
h = g * f * h / k + (b + e) / 2;
q = g * -k * t / f + (a + c) / 2;
t = Math.asin(parseFloat(((a - q) / k).toFixed(9)));
g = Math.asin(parseFloat(((c - q) / k).toFixed(9)));
b < h && (t = Math.PI - t);
e < h && (g = Math.PI - g);
0 > t && (t = 2 * Math.PI + t);
0 > g && (g = 2 * Math.PI + g);
n && t > g && (t -= 2 * Math.PI);
!n && g > t && (g -= 2 * Math.PI)
}
Math.abs(g - t) > 120 * Math.PI / 180 && (g = n && g > t ? t + 120 * Math.PI / 180 * 1 : t + 120 * Math.PI / 180 * -1,
w = Y(e = h + f * Math.cos(g), c = q + k * Math.sin(g), e, c, f, k, d, 0, n, [g, g, h, q]));
d = Math.tan((g - t) / 4);
f = 4 / 3 * f * d;
d *= 4 / 3 * k;
k = [b, a];
b = [b + f * Math.sin(t), a - d * Math.cos(t)];
a = [e + f * Math.sin(g), c - d * Math.cos(g)];
e = [e, c];
if (b[0] = 2 * k[0] - b[0],
b[1] = 2 * k[1] - b[1],
m)
return [b, a, e].concat(w);
w = [b, a, e].concat(w);
m = [];
for (e = 0; e < w.length; e += 3)
c = I(w[e][0], w[e][1], r),
b = I(w[e + 1][0], w[e + 1][1], r),
a = I(w[e + 2][0], w[e + 2][1], r),
m.push([c[0], c[1], b[0], b[1], a[0], a[1]]);
return m
}
function N(b, a, e) {
var c = (b || []).length;
if (2 < c) {
for (var f = [], k = 0; k < c - 1; k++)
f.push.apply(f, _toConsumableArray(D(b[k][0], b[k][1], b[k + 1][0], b[k + 1][1], e)));
return a && f.push.apply(f, _toConsumableArray(D(b[c - 1][0], b[c - 1][1], b[0][0], b[0][1], e))),
{
type: "path",
ops: f
}
}
return 2 === c ? {
type: "path",
ops: D(b[0][0], b[0][1], b[1][0], b[1][1], e)
} : {
type: "path",
ops: []
}
}
function la(b, a) {
var e = Z(b, 1 * (1 + .2 * a.roughness), a);
if (!a.disableMultiStroke) {
var c = 1.5 * (1 + .22 * a.roughness)
, f = Object.assign({}, a);
f.randomizer = void 0;
a.seed && (f.seed = a.seed + 1);
c = Z(b, c, f);
e = e.concat(c)
}
return {
type: "path",
ops: e
}
}
function aa(b, a, e) {
var c = 2 * Math.PI / Math.max(e.curveStepCount, e.curveStepCount / Math.sqrt(200) * Math.sqrt(2 * Math.PI * Math.sqrt((Math.pow(b / 2, 2) + Math.pow(a / 2, 2)) / 2)));
b = Math.abs(b / 2);
a = Math.abs(a / 2);
var f = 1 - e.curveFitting;
return b += u(b * f, e),
a += u(a * f, e),
{
increment: c,
rx: b,
ry: a
}
}
function T(b, a, e, c) {
var f = ba(c.increment, b, a, c.rx, c.ry, 1, c.increment * O(.1, O(.4, 1, e), e), e)
, k = _slicedToArray(f, 2)
, f = k[1]
, k = P(k[0], null, e);
e.disableMultiStroke || (b = ba(c.increment, b, a, c.rx, c.ry, 1.5, 0, e),
b = _slicedToArray(b, 1)[0],
e = P(b, null, e),
k = k.concat(e));
return {
estimatedPoints: f,
opset: {
type: "path",
ops: k
}
}
}
function ca(b, a, e, c, f, k, d, g, n) {
e = Math.abs(e / 2);
c = Math.abs(c / 2);
e += u(.01 * e, n);
for (c += u(.01 * c, n); 0 > f; )
f += 2 * Math.PI,
k += 2 * Math.PI;
k - f > 2 * Math.PI && (f = 0,
k = 2 * Math.PI);
var m = Math.min(2 * Math.PI / n.curveStepCount / 2, (k - f) / 2)
, r = da(m, b, a, e, c, f, k, 1, n);
n.disableMultiStroke || (m = da(m, b, a, e, c, f, k, 1.5, n),
r.push.apply(r, _toConsumableArray(m)));
return d && (g ? r.push.apply(r, _toConsumableArray(D(b, a, b + e * Math.cos(f), a + c * Math.sin(f), n)).concat(_toConsumableArray(D(b, a, b + e * Math.cos(k), a + c * Math.sin(k), n)))) : r.push({
op: "lineTo",
data: [b, a]
}, {
op: "lineTo",
data: [b + e * Math.cos(f), a + c * Math.sin(f)]
})),
{
type: "path",
ops: r
}
}
function J(b, a) {
var e = [];
if (b.length) {
var c = a.maxRandomnessOffset || 0
, f = b.length;
if (2 < f) {
e.push({
op: "move",
data: [b[0][0] + u(c, a), b[0][1] + u(c, a)]
});
for (var k = 1; k < f; k++)
e.push({
op: "lineTo",
data: [b[k][0] + u(c, a), b[k][1] + u(c, a)]
})
}
}
return {
type: "fillPath",
ops: e
}
}
function G(b, a) {
var e = ma
, c = a.fillStyle || "hachure";
if (!A[c])
switch (c) {
case "zigzag":
A[c] || (A[c] = new na(e));
break;
case "cross-hatch":
A[c] || (A[c] = new oa(e));
break;
case "dots":
A[c] || (A[c] = new pa(e));
break;
case "dashed":
A[c] || (A[c] = new qa(e));
break;
case "zigzag-line":
A[c] || (A[c] = new ra(e));
break;
default:
c = "hachure",
A[c] || (A[c] = new U(e))
}
return A[c].fillPolygon(b, a)
}
function ea(b) {
return b.randomizer || (b.randomizer = new sa(b.seed || 0)),
b.randomizer.next()
}
function O(b, a, e) {
return e.roughness * (3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : 1) * (ea(e) * (a - b) + b)
}
function u(b, a) {
return O(-b, b, a, 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1)
}
function D(b, a, e, c, f) {
var k = 5 < arguments.length && void 0 !== arguments[5] && arguments[5] ? f.disableMultiStrokeFill : f.disableMultiStroke
, d = fa(b, a, e, c, f, !0, !1);
if (k)
return d;
k = fa(b, a, e, c, f, !0, !0);
return d.concat(k)
}
function fa(b, a, e, c, f, k, d) {
var g = Math.pow(b - e, 2) + Math.pow(a - c, 2)
, n = Math.sqrt(g)
, m = 1
, m = 200 > n ? 1 : 500 < n ? .4 : -.0016668 * n + 1.233334
, r = f.maxRandomnessOffset || 0;
r * r * 100 > g && (r = n / 10);
var h = r / 2
, g = .2 + .2 * ea(f)
, n = f.bowing * f.maxRandomnessOffset * (c - a) / 200
, t = f.bowing * f.maxRandomnessOffset * (b - e) / 200
, n = u(n, f, m)
, t = u(t, f, m)
, l = []
, q = function() {
return u(h, f, m)
}
, p = function() {
return u(r, f, m)
}
, v = f.preserveVertices;
return k && (d ? l.push({
op: "move",
data: [b + (v ? 0 : q()), a + (v ? 0 : q())]
}) : l.push({
op: "move",
data: [b + (v ? 0 : u(r, f, m)), a + (v ? 0 : u(r, f, m))]
})),
d ? l.push({
op: "bcurveTo",
data: [n + b + (e - b) * g + q(), t + a + (c - a) * g + q(), n + b + 2 * (e - b) * g + q(), t + a + 2 * (c - a) * g + q(), e + (v ? 0 : q()), c + (v ? 0 : q())]
}) : l.push({
op: "bcurveTo",
data: [n + b + (e - b) * g + p(), t + a + (c - a) * g + p(), n + b + 2 * (e - b) * g + p(), t + a + 2 * (c - a) * g + p(), e + (v ? 0 : p()), c + (v ? 0 : p())]
}),
l
}
function Z(b, a, e) {
var c = [];
c.push([b[0][0] + u(a, e), b[0][1] + u(a, e)]);
c.push([b[0][0] + u(a, e), b[0][1] + u(a, e)]);
for (var f = 1; f < b.length; f++)
c.push([b[f][0] + u(a, e), b[f][1] + u(a, e)]),
f === b.length - 1 && c.push([b[f][0] + u(a, e), b[f][1] + u(a, e)]);
return P(c, null, e)
}
function P(b, a, e) {
var c = b.length
, f = [];
if (3 < c) {
var k = []
, d = 1 - e.curveTightness;
f.push({
op: "move",
data: [b[1][0], b[1][1]]
});
for (var g = 1; g + 2 < c; g++) {
var n = b[g];
k[0] = [n[0], n[1]];
k[1] = [n[0] + (d * b[g + 1][0] - d * b[g - 1][0]) / 6, n[1] + (d * b[g + 1][1] - d * b[g - 1][1]) / 6];
k[2] = [b[g + 1][0] + (d * b[g][0] - d * b[g + 2][0]) / 6, b[g + 1][1] + (d * b[g][1] - d * b[g + 2][1]) / 6];
k[3] = [b[g + 1][0], b[g + 1][1]];
f.push({
op: "bcurveTo",
data: [k[1][0], k[1][1], k[2][0], k[2][1], k[3][0], k[3][1]]
})
}
a && 2 === a.length && (b = e.maxRandomnessOffset,
f.push({
op: "lineTo",
data: [a[0] + u(b, e), a[1] + u(b, e)]
}))
} else
3 === c ? (f.push({
op: "move",
data: [b[1][0], b[1][1]]
}),
f.push({
op: "bcurveTo",
data: [b[1][0], b[1][1], b[2][0], b[2][1], b[2][0], b[2][1]]
})) : 2 === c && f.push.apply(f, _toConsumableArray(D(b[0][0], b[0][1], b[1][0], b[1][1], e)));
return f
}
function ba(b, a, e, c, f, k, d, g) {
var n = []
, m = []
, r = u(.5, g) - Math.PI / 2;
m.push([u(k, g) + a + .9 * c * Math.cos(r - b), u(k, g) + e + .9 * f * Math.sin(r - b)]);
for (var h = r; h < 2 * Math.PI + r - .01; h += b) {
var t = [u(k, g) + a + c * Math.cos(h), u(k, g) + e + f * Math.sin(h)];
n.push(t);
m.push(t)
}
return m.push([u(k, g) + a + c * Math.cos(r + 2 * Math.PI + .5 * d), u(k, g) + e + f * Math.sin(r + 2 * Math.PI + .5 * d)]),
m.push([u(k, g) + a + .98 * c * Math.cos(r + d), u(k, g) + e + .98 * f * Math.sin(r + d)]),
m.push([u(k, g) + a + .9 * c * Math.cos(r + .5 * d), u(k, g) + e + .9 * f * Math.sin(r + .5 * d)]),
[m, n]
}
function da(b, a, e, c, f, k, d, g, n) {
var m = k + u(.1, n);
k = [];
for (k.push([u(g, n) + a + .9 * c * Math.cos(m - b), u(g, n) + e + .9 * f * Math.sin(m - b)]); m <= d; m += b)
k.push([u(g, n) + a + c * Math.cos(m), u(g, n) + e + f * Math.sin(m)]);
return k.push([a + c * Math.cos(d), e + f * Math.sin(d)]),
k.push([a + c * Math.cos(d), e + f * Math.sin(d)]),
P(k, null, n)
}
function ta(b, a, e, c, f, d, r, g) {
for (var k = [], m = [g.maxRandomnessOffset || 1, (g.maxRandomnessOffset || 1) + .3], h, w = g.disableMultiStroke ? 1 : 2, t = g.preserveVertices, l = 0; l < w; l++)
0 === l ? k.push({
op: "move",
data: [r[0], r[1]]
}) : k.push({
op: "move",
data: [r[0] + (t ? 0 : u(m[0], g)), r[1] + (t ? 0 : u(m[0], g))]
}),
h = t ? [f, d] : [f + u(m[l], g), d + u(m[l], g)],
k.push({
op: "bcurveTo",
data: [b + u(m[l], g), a + u(m[l], g), e + u(m[l], g), c + u(m[l], g), h[0], h[1]]
});
return k
}
function Q(b, a) {
return Math.pow(b[0] - a[0], 2) + Math.pow(b[1] - a[1], 2)
}
function E(b, a, e) {
return [b[0] + (a[0] - b[0]) * e, b[1] + (a[1] - b[1]) * e]
}
function V(b, a, e, c) {
c = c || [];
var f = b[a + 0]
, d = b[a + 1]
, r = b[a + 2]
, g = b[a + 3]
, n = 3 * d[0] - 2 * f[0] - g[0]
, n = n * n
, d = 3 * d[1] - 2 * f[1] - g[1]
, d = d * d
, m = 3 * r[0] - 2 * g[0] - f[0]
, m = m * m
, f = 3 * r[1] - 2 * g[1] - f[1];
(f *= f,
n < m && (n = m),
d < f && (d = f),
n + d) < e ? (e = b[a + 0],
c.length ? 1 < (h = c[c.length - 1],
l = e,
Math.sqrt(Q(h, l))) && c.push(e) : c.push(e),
c.push(b[a + 3])) : (h = b[a + 0],
n = b[a + 1],
l = b[a + 2],
b = b[a + 3],
a = E(h, n, .5),
f = E(n, l, .5),
l = E(l, b, .5),
n = E(a, f, .5),
f = E(f, l, .5),
r = E(n, f, .5),
V([h, a, n, r], 0, e, c),
V([r, f, l, b], 0, e, c));
var h, l;
return c
}
function R(b, a, e, c, f) {
f = f || [];
for (var d = b[a], r = b[e - 1], g = 0, n = 1, m = a + 1; m < e - 1; ++m) {
var h;
h = b[m];
var l = d
, t = r
, p = Q(l, t);
0 === p ? h = Q(h, l) : (p = ((h[0] - l[0]) * (t[0] - l[0]) + (h[1] - l[1]) * (t[1] - l[1])) / p,
h = (p = Math.max(0, Math.min(1, p)),
Q(h, E(l, t, p))));
h > g && (g = h,
n = m)
}
return Math.sqrt(g) > c ? (R(b, a, n + 1, c, f),
R(b, n, e, c, f)) : (f.length || f.push(d),
f.push(r)),
f
}
function ga(b) {
for (var a = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : .15, e = 2 < arguments.length ? arguments[2] : void 0, c = [], f = (b.length - 1) / 3, d = 0; d < f; d++)
V(b, 3 * d, a, c);
return e && 0 < e ? R(c, 0, c.length, e) : c
}
var U = function() {
function b(a) {
_classCallCheck(this, b);
this.helper = a
}
_createClass(b, [{
key: "fillPolygon",
value: function(a, e) {
return this._fillPolygon(a, e)
}
}, {
key: "_fillPolygon",
value: function(a, e) {
var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : !1
, f = C(a, e);
c && (c = this.connectingLines(a, f),
f = f.concat(c));
return {
type: "fillSketch",
ops: this.renderLines(f, e)
}
}
}, {
key: "renderLines",
value: function(a, e) {
var c = [], f = _createForOfIteratorHelper(a), b;
try {
for (f.s(); !(b = f.n()).done; ) {
var d = b.value;
c.push.apply(c, _toConsumableArray(this.helper.doubleLineOps(d[0][0], d[0][1], d[1][0], d[1][1], e)))
}
} catch (g) {
f.e(g)
} finally {
f.f()
}
return c
}
}, {
key: "connectingLines",
value: function(a, e) {
var c = [];
if (1 < e.length)
for (var f = 1; f < e.length; f++) {
var b = e[f - 1];
3 > h(b) || (b = [e[f][0], b[1]],
3 < h(b) && (b = this.splitOnIntersections(a, b),
c.push.apply(c, _toConsumableArray(b))))
}
return c
}
}, {
key: "midPointInPolygon",
value: function(a, e) {
return p(a, (e[0][0] + e[1][0]) / 2, (e[0][1] + e[1][1]) / 2)
}
}, {
key: "splitOnIntersections",
value: function(a, e) {
for (var c = Math.max(5, .1 * h(e)), b = [], d = 0; d < a.length; d++) {
var r = a[d]
, g = a[(d + 1) % a.length];
if (B.apply(void 0, [r, g].concat(_toConsumableArray(e))) && (r = l(r, g, e[0], e[1]))) {
var g = h([r, e[0]])
, n = h([r, e[1]]);
g > c && n > c && b.push({
point: r,
distance: g
})
}
}
if (1 < b.length) {
c = b.sort(function(a, c) {
return a.distance - c.distance
}).map(function(a) {
return a.point
});
if (p.apply(void 0, [a].concat(_toConsumableArray(e[0]))) || c.shift(),
p.apply(void 0, [a].concat(_toConsumableArray(e[1]))) || c.pop(),
1 >= c.length)
return this.midPointInPolygon(a, e) ? [e] : [];
c = [e[0]].concat(_toConsumableArray(c), [e[1]]);
b = [];
for (d = 0; d < c.length - 1; d += 2)
r = [c[d], c[d + 1]],
this.midPointInPolygon(a, r) && b.push(r);
return b
}
return this.midPointInPolygon(a, e) ? [e] : []
}
}]);
return b
}()
, na = function(b) {
function a() {
_classCallCheck(this, a);
return e.apply(this, arguments)
}
_inherits(a, b);
var e = _createSuper(a);
_createClass(a, [{
key: "fillPolygon",
value: function(a, e) {
return this._fillPolygon(a, e, !0)
}
}]);
return a
}(U)
, oa = function(b) {
function a() {
_classCallCheck(this, a);
return e.apply(this, arguments)
}
_inherits(a, b);
var e = _createSuper(a);
_createClass(a, [{
key: "fillPolygon",
value: function(a, e) {
var c = this._fillPolygon(a, e)
, b = Object.assign({}, e, {
hachureAngle: e.hachureAngle + 90
})
, b = this._fillPolygon(a, b);
return c.ops = c.ops.concat(b.ops),
c
}
}]);
return a
}(U)
, pa = function() {
function b(a) {
_classCallCheck(this, b);
this.helper = a
}
_createClass(b, [{
key: "fillPolygon",
value: function(a, e) {
var c = C(a, e = Object.assign({}, e, {
curveStepCount: 4,
hachureAngle: 0,
roughness: 1
}));
return this.dotsOnLines(c, e)
}
}, {
key: "dotsOnLines",
value: function(a, e) {
var c = []
, b = e.hachureGap;
0 > b && (b = 4 * e.strokeWidth);
var b = Math.max(b, .1)
, d = e.fillWeight;
0 > d && (d = e.strokeWidth / 2);
var r = b / 4, g = _createForOfIteratorHelper(a), n;
try {
for (g.s(); !(n = g.n()).done; )
for (var m = n.value, l = h(m), w = Math.ceil(l / b) - 1, t = l - w * b, p = (m[0][0] + m[1][0]) / 2 - b / 4, q = Math.min(m[0][1], m[1][1]), u = 0; u < w; u++) {
var v = q + t + u * b
, z = this.helper.randOffsetWithRange(p - r, p + r, e)
, y = this.helper.randOffsetWithRange(v - r, v + r, e)
, F = this.helper.ellipse(z, y, d, d, e);
c.push.apply(c, _toConsumableArray(F.ops))
}
} catch (ha) {
g.e(ha)
} finally {
g.f()
}
return {
type: "fillSketch",
ops: c
}
}
}]);
return b
}()
, qa = function() {
function b(a) {
_classCallCheck(this, b);
this.helper = a
}
_createClass(b, [{
key: "fillPolygon",
value: function(a, e) {
var c = C(a, e);
return {
type: "fillSketch",
ops: this.dashedLine(c, e)
}
}
}, {
key: "dashedLine",
value: function(a, e) {
var c = this
, b = 0 > e.dashOffset ? 0 > e.hachureGap ? 4 * e.strokeWidth : e.hachureGap : e.dashOffset
, d = 0 > e.dashGap ? 0 > e.hachureGap ? 4 * e.strokeWidth : e.hachureGap : e.dashGap
, r = [];
return a.forEach(function(a) {
var f = h(a)
, g = Math.floor(f / (b + d))
, f = (f + d - g * (b + d)) / 2
, k = a[0]
, l = a[1];
k[0] > l[0] && (k = a[1],
l = a[0]);
a = Math.atan((l[1] - k[1]) / (l[0] - k[0]));
for (l = 0; l < g; l++) {
var t = l * (b + d)
, p = t + b
, t = [k[0] + t * Math.cos(a) + f * Math.cos(a), k[1] + t * Math.sin(a) + f * Math.sin(a)]
, p = [k[0] + p * Math.cos(a) + f * Math.cos(a), k[1] + p * Math.sin(a) + f * Math.sin(a)];
r.push.apply(r, _toConsumableArray(c.helper.doubleLineOps(t[0], t[1], p[0], p[1], e)))
}
}),
r
}
}]);
return b
}()
, ra = function() {
function b(a) {
_classCallCheck(this, b);
this.helper = a
}
_createClass(b, [{
key: "fillPolygon",
value: function(a, e) {
var c = 0 > e.hachureGap ? 4 * e.strokeWidth : e.hachureGap
, b = 0 > e.zigzagOffset ? c : e.zigzagOffset
, c = C(a, e = Object.assign({}, e, {
hachureGap: c + b
}));
return {
type: "fillSketch",
ops: this.zigzagLines(c, b, e)
}
}
}, {
key: "zigzagLines",
value: function(a, e, c) {
var b = this
, d = [];
return a.forEach(function(a) {
var f = h(a)
, f = Math.round(f / (2 * e))
, k = a[0]
, m = a[1];
k[0] > m[0] && (k = a[1],
m = a[0]);
a = Math.atan((m[1] - k[1]) / (m[0] - k[0]));
for (m = 0; m < f; m++) {
var l = 2 * m * e
, r = 2 * (m + 1) * e
, t = Math.sqrt(2 * Math.pow(e, 2))
, l = [k[0] + l * Math.cos(a), k[1] + l * Math.sin(a)]
, r = [k[0] + r * Math.cos(a), k[1] + r * Math.sin(a)]
, t = [l[0] + t * Math.cos(a + Math.PI / 4), l[1] + t * Math.sin(a + Math.PI / 4)];
d.push.apply(d, _toConsumableArray(b.helper.doubleLineOps(l[0], l[1], t[0], t[1], c)).concat(_toConsumableArray(b.helper.doubleLineOps(t[0], t[1], r[0], r[1], c))))
}
}),
d
}
}]);
return b
}()
, A = {}
, sa = function() {
function b(a) {
_classCallCheck(this, b);
this.seed = a
}
_createClass(b, [{
key: "next",
value: function() {
return this.seed ? (Math.pow(2, 31) - 1 & (this.seed = Math.imul(48271, this.seed))) / Math.pow(2, 31) : Math.random()
}
}]);
return b
}()
, K = {
A: 7,
a: 7,
C: 6,
c: 6,
H: 1,
h: 1,
L: 2,
l: 2,
M: 2,
m: 2,
Q: 4,
q: 4,
S: 4,
s: 4,
T: 2,
t: 2,
V: 1,
v: 1,
Z: 0,
z: 0
}
, ma = {
randOffset: function(b, a) {
return u(b, a)
},
randOffsetWithRange: function(b, a, e) {
return O(b, a, e)
},
ellipse: function(b, a, e, c, d) {
e = aa(e, c, d);
return T(b, a, d, e).opset
},
doubleLineOps: function(b, a, e, c, d) {
return D(b, a, e, c, d, !0)
}
}
, S = function() {
function b(a) {
_classCallCheck(this, b);
this.defaultOptions = {
maxRandomnessOffset: 2,
roughness: 1,
bowing: 1,
stroke: "#000",
strokeWidth: 1,
curveTightness: 0,
curveFitting: .95,
curveStepCount: 9,
fillStyle: "hachure",
fillWeight: -1,
hachureAngle: -41,
hachureGap: -1,
dashOffset: -1,
dashGap: -1,
zigzagOffset: -1,
seed: 0,
combineNestedSvgPaths: !1,
disableMultiStroke: !1,
disableMultiStrokeFill: !1,
preserveVertices: !1
};
this.config = a || {};
this.config.options && (this.defaultOptions = this._o(this.config.options))
}
_createClass(b, [{
key: "_o",
value: function(a) {
return a ? Object.assign({}, this.defaultOptions, a) : this.defaultOptions
}
}, {
key: "_d",
value: function(a, e, c) {
return {
shape: a,
sets: e || [],
options: c || this.defaultOptions
}
}
}, {
key: "line",
value: function(a, e, c, b, d) {
d = this._o(d);
return this._d("line", [{
type: "path",
ops: D(a, e, c, b, d)
}], d)
}
}, {
key: "rectangle",
value: function(a, e, c, b, d) {
d = this._o(d);
var f = [], g;
g = N([[a, e], [a + c, e], [a + c, e + b], [a, e + b]], !0, d);
d.fill && (a = [[a, e], [a + c, e], [a + c, e + b], [a, e + b]],
"solid" === d.fillStyle ? f.push(J(a, d)) : f.push(G(a, d)));
return "none" !== d.stroke && f.push(g),
this._d("rectangle", f, d)
}
}, {
key: "ellipse",
value: function(a, e, c, b, d) {
d = this._o(d);
var f = [];
b = aa(c, b, d);
c = T(a, e, d, b);
d.fill && ("solid" === d.fillStyle ? (a = T(a, e, d, b).opset,
a.type = "fillPath",
f.push(a)) : f.push(G(c.estimatedPoints, d)));
return "none" !== d.stroke && f.push(c.opset),
this._d("ellipse", f, d)
}
}, {
key: "circle",
value: function(a, e, c, b) {
a = this.ellipse(a, e, c, c, b);
return a.shape = "circle",
a
}
}, {
key: "linearPath",
value: function(a, e) {
var c = this._o(e);
return this._d("linearPath", [N(a, !1, c)], c)
}
}, {
key: "arc",
value: function(a, e, c, b, d, h) {
var f = 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : !1
, k = this._o(7 < arguments.length ? arguments[7] : void 0)
, m = []
, l = ca(a, e, c, b, d, h, f, !0, k);
f && k.fill && ("solid" === k.fillStyle ? (f = ca(a, e, c, b, d, h, !0, !1, k),
f.type = "fillPath",
m.push(f)) : m.push(function(a, c, e, b, d, f, g) {
e = Math.abs(e / 2);
b = Math.abs(b / 2);
e += u(.01 * e, g);
for (b += u(.01 * b, g); 0 > d; )
d += 2 * Math.PI,
f += 2 * Math.PI;
f - d > 2 * Math.PI && (d = 0,
f = 2 * Math.PI);
for (var k = (f - d) / g.curveStepCount, m = []; d <= f; d += k)
m.push([a + e * Math.cos(d), c + b * Math.sin(d)]);
return m.push([a + e * Math.cos(f), c + b * Math.sin(f)]),
m.push([a, c]),
G(m, g)
}(a, e, c, b, d, h, k)));
return "none" !== k.stroke && m.push(l),
this._d("arc", m, k)
}
}, {
key: "curve",
value: function(a, e) {
var c = this._o(e)
, b = []
, d = la(a, c);
if (c.fill && "none" !== c.fill && 3 <= a.length) {
var h = ga(function(a) {
var c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0
, e = a.length;
if (3 > e)
throw Error("A curve must have at least three points.");
var b = [];
if (3 === e)
b.push(_toConsumableArray(a[0]), _toConsumableArray(a[1]), _toConsumableArray(a[2]), _toConsumableArray(a[2]));
else {
e = [];
e.push(a[0], a[0]);
for (var d = 1; d < a.length; d++)
e.push(a[d]),
d === a.length - 1 && e.push(a[d]);
d = [];
c = 1 - c;
b.push(_toConsumableArray(e[0]));
for (var f = 1; f + 2 < e.length; f++) {
var g = e[f];
d[0] = [g[0], g[1]];
d[1] = [g[0] + (c * e[f + 1][0] - c * e[f - 1][0]) / 6, g[1] + (c * e[f + 1][1] - c * e[f - 1][1]) / 6];
d[2] = [e[f + 1][0] + (c * e[f][0] - c * e[f + 2][0]) / 6, e[f + 1][1] + (c * e[f][1] - c * e[f + 2][1]) / 6];
d[3] = [e[f + 1][0], e[f + 1][1]];
b.push(d[1], d[2], d[3])
}
}
return b
}(a), 10, (1 + c.roughness) / 2);
"solid" === c.fillStyle ? b.push(J(h, c)) : b.push(G(h, c))
}
return "none" !== c.stroke && b.push(d),
this._d("curve", b, c)
}
}, {
key: "polygon",
value: function(a, e) {
var c = this._o(e)
, b = []
, d = N(a, !0, c);
return c.fill && ("solid" === c.fillStyle ? b.push(J(a, c)) : b.push(G(a, c))),
"none" !== c.stroke && b.push(d),
this._d("polygon", b, c)
}
}, {
key: "path",
value: function(a, e) {
var c = this._o(e)
, b = [];
if (!a)
return this._d("path", b, c);
a = (a || "").replace(/\n/g, " ").replace(/(-\s)/g, "-").replace("/(ss)/g", " ");
var d = c.fill && "transparent" !== c.fill && "none" !== c.fill
, h = "none" !== c.stroke
, g = !!(c.simplification && 1 > c.simplification)
, l = function(a, c, e) {
var b = X(W(H(a)))
, d = []
, f = [];
a = [0, 0];
var g = [], k = function() {
var a;
4 <= g.length && (a = f).push.apply(a, _toConsumableArray(ga(g, c)));
g = []
}, h = function() {
k();
f.length && (d.push(f),
f = [])
}, b = _createForOfIteratorHelper(b), l;
try {
for (b.s(); !(l = b.n()).done; ) {
var m = l.value
, n = m.data;
switch (m.key) {
case "M":
h();
a = [n[0], n[1]];
f.push(a);
break;
case "L":
k();
f.push([n[0], n[1]]);
break;
case "C":
if (!g.length) {
var r = f.length ? f[f.length - 1] : a;
g.push([r[0], r[1]])
}
g.push([n[0], n[1]]);
g.push([n[2], n[3]]);
g.push([n[4], n[5]]);
break;
case "Z":
k(),
f.push([a[0], a[1]])
}
}
} catch (ja) {
b.e(ja)
} finally {
b.f()
}
if (h(),
!e)
return d;
l = [];
for (m = 0; m < d.length; m++)
n = d[m],
n = R(n, 0, n.length, e),
n.length && l.push(n);
return l
}(a, 1, g ? 4 - 4 * c.simplification : (1 + c.roughness) / 2);
if (d)
if (c.combineNestedSvgPaths) {
var m = [];
l.forEach(function(a) {
return m.push.apply(m, _toConsumableArray(a))
});
"solid" === c.fillStyle ? b.push(J(m, c)) : b.push(G(m, c))
} else
l.forEach(function(a) {
"solid" === c.fillStyle ? b.push(J(a, c)) : b.push(G(a, c))
});
return h && (g ? l.forEach(function(a) {
b.push(N(a, !1, c))
}) : b.push(function(a, c) {
var e = X(W(H(a))), b = [], d = [0, 0], f = [0, 0], e = _createForOfIteratorHelper(e), g;
try {
for (e.s(); !(g = e.n()).done; ) {
var k = g.value
, h = k.data;
switch (k.key) {
case "M":
if ("break" === function() {
var a = 1 * (c.maxRandomnessOffset || 0)
, e = c.preserveVertices;
b.push({
op: "move",
data: h.map(function(b) {
return b + (e ? 0 : u(a, c))
})
});
f = [h[0], h[1]];
d = [h[0], h[1]];
return "break"
}())
break;
case "L":
b.push.apply(b, _toConsumableArray(D(f[0], f[1], h[0], h[1], c)));
f = [h[0], h[1]];
break;
case "C":
var l = _slicedToArray(h, 6)
, m = l[4]
, n = l[5];
b.push.apply(b, _toConsumableArray(ta(l[0], l[1], l[2], l[3], m, n, f, c)));
f = [m, n];
break;
case "Z":
b.push.apply(b, _toConsumableArray(D(f[0], f[1], d[0], d[1], c))),
f = [d[0], d[1]]
}
}
} catch (ia) {
e.e(ia)
} finally {
e.f()
}
return {
type: "path",
ops: b
}
}(a, c))),
this._d("path", b, c)
}
}, {
key: "opsToPath",
value: function(a, e) {
var c = "", b = _createForOfIteratorHelper(a.ops), d;
try {
for (b.s(); !(d = b.n()).done; ) {
var h = d.value
, g = "number" == typeof e && 0 <= e ? h.data.map(function(a) {
return +a.toFixed(e)
}) : h.data;
switch (h.op) {
case "move":
c += "M".concat(g[0], " ").concat(g[1], " ");
break;
case "bcurveTo":
c += "C".concat(g[0], " ").concat(g[1], ", ").concat(g[2], " ").concat(g[3], ", ").concat(g[4], " ").concat(g[5], " ");
break;
case "lineTo":
c += "L".concat(g[0], " ").concat(g[1], " ")
}
}
} catch (n) {
b.e(n)
} finally {
b.f()
}
return c.trim()
}
}, {
key: "toPaths",
value: function(a) {
var e = a.options || this.defaultOptions
, c = [];
a = _createForOfIteratorHelper(a.sets || []);
var b;
try {
for (a.s(); !(b = a.n()).done; ) {
var d = b.value
, h = null;
switch (d.type) {
case "path":
h = {
d: this.opsToPath(d),
stroke: e.stroke,
strokeWidth: e.strokeWidth,
fill: "none"
};
break;
case "fillPath":
h = {
d: this.opsToPath(d),
stroke: "none",
strokeWidth: 0,
fill: e.fill || "none"
};
break;
case "fillSketch":
h = this.fillSketch(d, e)
}
h && c.push(h)
}
} catch (g) {
a.e(g)
} finally {
a.f()
}
return c
}
}, {
key: "fillSketch",
value: function(a, e) {
var c = e.fillWeight;
return 0 > c && (c = e.strokeWidth / 2),
{
d: this.opsToPath(a),
stroke: e.fill || "none",
strokeWidth: c,
fill: "none"
}
}
}], [{
key: "newSeed",
value: function() {
return Math.floor(Math.random() * Math.pow(2, 31))
}
}]);
return b
}()
, ua = function() {
function b(a, e) {
_classCallCheck(this, b);
this.canvas = a;
this.ctx = this.canvas.getContext("2d");
this.gen = new S(e)
}
_createClass(b, [{
key: "draw",
value: function(a) {
var e = a.sets || [], c = a.options || this.getDefaultOptions(), b = this.ctx, e = _createForOfIteratorHelper(e), d;
try {
for (e.s(); !(d = e.n()).done; ) {
var h = d.value;
switch (h.type) {
case "path":
b.save();
b.strokeStyle = "none" === c.stroke ? "transparent" : c.stroke;
b.lineWidth = c.strokeWidth;
c.strokeLineDash && b.setLineDash(c.strokeLineDash);
c.strokeLineDashOffset && (b.lineDashOffset = c.strokeLineDashOffset);
this._drawToContext(b, h);
b.restore();
break;
case "fillPath":
b.save();
b.fillStyle = c.fill || "";
this._drawToContext(b, h, "curve" === a.shape || "polygon" === a.shape ? "evenodd" : "nonzero");
b.restore();
break;
case "fillSketch":
this.fillSketch(b, h, c)
}
}
} catch (g) {
e.e(g)
} finally {
e.f()
}
}
}, {
key: "fillSketch",
value: function(a, e, c) {
var b = c.fillWeight;
0 > b && (b = c.strokeWidth / 2);
a.save();
c.fillLineDash && a.setLineDash(c.fillLineDash);
c.fillLineDashOffset && (a.lineDashOffset = c.fillLineDashOffset);
a.strokeStyle = c.fill || "";
a.lineWidth = b;
this._drawToContext(a, e);
a.restore()
}
}, {
key: "_drawToContext",
value: function(a, e) {
var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "nonzero";
a.beginPath();
var b = _createForOfIteratorHelper(e.ops), d;
try {
for (b.s(); !(d = b.n()).done; ) {
var h = d.value
, g = h.data;
switch (h.op) {
case "move":
a.moveTo(g[0], g[1]);
break;
case "bcurveTo":
a.bezierCurveTo(g[0], g[1], g[2], g[3], g[4], g[5]);
break;
case "lineTo":
a.lineTo(g[0], g[1])
}
}
} catch (n) {
b.e(n)
} finally {
b.f()
}
"fillPath" === e.type ? a.fill(c) : a.stroke()
}
}, {
key: "getDefaultOptions",
value: function() {
return this.gen.defaultOptions
}
}, {
key: "line",
value: function(a, b, c, d, k) {
a = this.gen.line(a, b, c, d, k);
return this.draw(a),
a
}
}, {
key: "rectangle",
value: function(a, b, c, d, k) {
a = this.gen.rectangle(a, b, c, d, k);
return this.draw(a),
a
}
}, {
key: "ellipse",
value: function(a, b, c, d, k) {
a = this.gen.ellipse(a, b, c, d, k);
return this.draw(a),
a
}
}, {
key: "circle",
value: function(a, b, c, d) {
a = this.gen.circle(a, b, c, d);
return this.draw(a),
a
}
}, {
key: "linearPath",
value: function(a, b) {
var c = this.gen.linearPath(a, b);
return this.draw(c),
c
}
}, {
key: "polygon",
value: function(a, b) {
var c = this.gen.polygon(a, b);
return this.draw(c),
c
}
}, {
key: "arc",
value: function(a, b, c, d, k, h) {
var e = this.gen.arc(a, b, c, d, k, h, 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : !1, 7 < arguments.length ? arguments[7] : void 0);
return this.draw(e),
e
}
}, {
key: "curve",
value: function(a, b) {
var c = this.gen.curve(a, b);
return this.draw(c),
c
}
}, {
key: "path",
value: function(a, b) {
var c = this.gen.path(a, b);
return this.draw(c),
c
}
}, {
key: "generator",
get: function() {
return this.gen
}
}]);
return b
}()
, va = function() {
function b(a, e) {
_classCallCheck(this, b);
this.svg = a;
this.gen = new S(e)
}
_createClass(b, [{
key: "draw",
value: function(a) {
var b = a.sets || [], c = a.options || this.getDefaultOptions(), d = this.svg.ownerDocument || window.document, k = d.createElementNS("http://www.w3.org/2000/svg", "g"), h = a.options.fixedDecimalPlaceDigits, b = _createForOfIteratorHelper(b), g;
try {
for (b.s(); !(g = b.n()).done; ) {
var l = g.value
, m = null;
switch (l.type) {
case "path":
m = d.createElementNS("http://www.w3.org/2000/svg", "path");
m.setAttribute("d", this.opsToPath(l, h));
m.setAttribute("stroke", c.stroke);
m.setAttribute("stroke-width", c.strokeWidth + "");
m.setAttribute("fill", "none");
c.strokeLineDash && m.setAttribute("stroke-dasharray", c.strokeLineDash.join(" ").trim());
c.strokeLineDashOffset && m.setAttribute("stroke-dashoffset", "".concat(c.strokeLineDashOffset));
break;
case "fillPath":
m = d.createElementNS("http://www.w3.org/2000/svg", "path");
m.setAttribute("d", this.opsToPath(l, h));
m.setAttribute("stroke", "none");
m.setAttribute("stroke-width", "0");
m.setAttribute("fill", c.fill || "");
"curve" !== a.shape && "polygon" !== a.shape || m.setAttribute("fill-rule", "evenodd");
break;
case "fillSketch":
m = this.fillSketch(d, l, c)
}
m && k.appendChild(m)
}
} catch (x) {
b.e(x)
} finally {
b.f()
}
return k
}
}, {
key: "fillSketch",
value: function(a, b, c) {
var e = c.fillWeight;
0 > e && (e = c.strokeWidth / 2);
a = a.createElementNS("http://www.w3.org/2000/svg", "path");
return a.setAttribute("d", this.opsToPath(b, c.fixedDecimalPlaceDigits)),
a.setAttribute("stroke", c.fill || ""),
a.setAttribute("stroke-width", e + ""),
a.setAttribute("fill", "none"),
c.fillLineDash && a.setAttribute("stroke-dasharray", c.fillLineDash.join(" ").trim()),
c.fillLineDashOffset && a.setAttribute("stroke-dashoffset", "".concat(c.fillLineDashOffset)),
a
}
}, {
key: "getDefaultOptions",
value: function() {
return this.gen.defaultOptions
}
}, {
key: "opsToPath",
value: function(a, b) {
return this.gen.opsToPath(a, b)
}
}, {
key: "line",
value: function(a, b, c, d, h) {
a = this.gen.line(a, b, c, d, h);
return this.draw(a)
}
}, {
key: "rectangle",
value: function(a, b, c, d, h) {
a = this.gen.rectangle(a, b, c, d, h);
return this.draw(a)
}
}, {
key: "ellipse",
value: function(a, b, c, d, h) {
a = this.gen.ellipse(a, b, c, d, h);
return this.draw(a)
}
}, {
key: "circle",
value: function(a, b, c, d) {
a = this.gen.circle(a, b, c, d);
return this.draw(a)
}
}, {
key: "linearPath",
value: function(a, b) {
var c = this.gen.linearPath(a, b);
return this.draw(c)
}
}, {
key: "polygon",
value: function(a, b) {
var c = this.gen.polygon(a, b);
return this.draw(c)
}
}, {
key: "arc",
value: function(a, b, c, d, h, l) {
var e = this.gen.arc(a, b, c, d, h, l, 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : !1, 7 < arguments.length ? arguments[7] : void 0);
return this.draw(e)
}
}, {
key: "curve",
value: function(a, b) {
var c = this.gen.curve(a, b);
return this.draw(c)
}
}, {
key: "path",
value: function(a, b) {
var c = this.gen.path(a, b);
return this.draw(c)
}
}, {
key: "generator",
get: function() {
return this.gen
}
}]);
return b
}();
return {
canvas: function(b, a) {
return new ua(b,a)
},
svg: function(b, a) {
return new va(b,a)
},
generator: function(b) {
return new S(b)
},
newSeed: function() {
return S.newSeed()
}
}
}();
(()=>{
"use strict";
var t = {};
function e(t, e, n, r=(t=>t)) {
return t * r(.5 - e * (.5 - n))
}
function n(t, e) {
return [t[0] + e[0], t[1] + e[1]]
}
function r(t, e) {
return [t[0] - e[0], t[1] - e[1]]
}
function i(t, e) {
return [t[0] * e, t[1] * e]
}
function u(t) {
return [t[1], -t[0]]
}
function o(t, e) {
return t[0] * e[0] + t[1] * e[1]
}
function l(t, e) {
return t[0] === e[0] && t[1] === e[1]
}
function s(t, e) {
return function(t) {
return t[0] * t[0] + t[1] * t[1]
}(r(t, e))
}
function c(t) {
return function(t, e) {
return [t[0] / e, t[1] / e]
}(t, function(t) {
return Math.hypot(t[0], t[1])
}(t))
}
function h(t, e) {
return Math.hypot(t[1] - e[1], t[0] - e[0])
}
function f(t, e, n) {
let r = Math.sin(n)
, i = Math.cos(n)
, u = t[0] - e[0]
, o = t[1] - e[1]
, l = u * r + o * i;
return [u * i - o * r + e[0], l + e[1]]
}
function p(t, e, u) {
return n(t, i(r(e, t), u))
}
function a(t, e, r) {
return n(t, i(e, r))
}
t.g = function() {
if ("object" == typeof globalThis)
return globalThis;
try {
return this || new Function("return this")()
} catch (t) {
if ("object" == typeof window)
return window
}
}();
var {min: g, PI: v} = Math
, d = v + 1e-4;
function M(t, v={}) {
return function(t, l={}) {
let {size: h=16, smoothing: v=.5, thinning: M=.5, simulatePressure: m=!0, easing: y=(t=>t), start: w={}, end: P={}, last: F=!1} = l
, {cap: b=!0, easing: x=(t=>t * (2 - t))} = w
, {cap: L=!0, easing: j=(t=>--t * t * t + 1)} = P;
if (0 === t.length || h <= 0)
return [];
let S, k = t[t.length - 1].runningLength, z = !1 === w.taper ? 0 : !0 === w.taper ? Math.max(h, k) : w.taper, A = !1 === P.taper ? 0 : !0 === P.taper ? Math.max(h, k) : P.taper, T = Math.pow(h * v, 2), I = [], Q = [], Z = t.slice(0, 10).reduce(((t,e)=>{
let n = e.pressure;
if (m) {
let r = g(1, e.distance / h)
, i = g(1, 1 - r);
n = g(1, t + .275 * r * (i - t))
}
return (t + n) / 2
}
), t[0].pressure), q = e(h, M, t[t.length - 1].pressure, y), B = t[0].vector, C = t[0].point, D = C, E = C, G = D;
for (let l = 0; l < t.length; l++) {
let {pressure: c} = t[l]
, {point: a, vector: v, distance: w, runningLength: P} = t[l];
if (l < t.length - 1 && k - P < 3)
continue;
if (M) {
if (m) {
let t = g(1, w / h)
, e = g(1, 1 - t);
c = g(1, Z + .275 * t * (e - Z))
}
q = e(h, M, c, y)
} else
q = h / 2;
void 0 === S && (S = q);
let F = P < z ? x(P / z) : 1
, b = k - P < A ? j((k - P) / A) : 1;
if (q = Math.max(.01, q * Math.min(F, b)),
l === t.length - 1) {
let t = i(u(v), q);
I.push(r(a, t)),
Q.push(n(a, t));
continue
}
let L = t[l + 1].vector
, H = o(v, L);
if (H < 0) {
let t = i(u(B), q);
for (let e = 1 / 13, i = 0; i <= 1; i += e)
E = f(r(a, t), a, d * i),
I.push(E),
G = f(n(a, t), a, d * -i),
Q.push(G);
C = E,
D = G;
continue
}
let J = i(u(p(L, v, H)), q);
E = r(a, J),
(l <= 1 || s(C, E) > T) && (I.push(E),
C = E),
G = n(a, J),
(l <= 1 || s(D, G) > T) && (Q.push(G),
D = G),
Z = c,
B = v
}
let H = t[0].point.slice(0, 2)
, J = t.length > 1 ? t[t.length - 1].point.slice(0, 2) : n(t[0].point, [1, 1])
, K = []
, N = [];
if (1 === t.length) {
if (!z && !A || F) {
let t = a(H, c(u(r(H, J))), -(S || q))
, e = [];
for (let n = 1 / 13, r = n; r <= 1; r += n)
e.push(f(t, H, 2 * d * r));
return e
}
} else {
if (!(z || A && 1 === t.length))
if (b)
for (let t = 1 / 13, e = t; e <= 1; e += t) {
let t = f(Q[0], H, d * e);
K.push(t)
}
else {
let t = r(I[0], Q[0])
, e = i(t, .5)
, u = i(t, .51);
K.push(r(H, e), r(H, u), n(H, u), n(H, e))
}
let e = u(function(t) {
return [-t[0], -t[1]]
}(t[t.length - 1].vector));
if (A || z && 1 === t.length)
N.push(J);
else if (L) {
let t = a(J, e, q);
for (let e = 1 / 29, n = e; n < 1; n += e)
N.push(f(t, J, 3 * d * n))
} else
N.push(n(J, i(e, q)), n(J, i(e, .99 * q)), r(J, i(e, .99 * q)), r(J, i(e, q)))
}
return I.concat(N, Q.reverse(), K)
}(function(t, e={}) {
var i;
let {streamline: u=.5, size: o=16, last: s=!1} = e;
if (0 === t.length)
return [];
let f = .15 + .85 * (1 - u)
, a = Array.isArray(t[0]) ? t : t.map((({x: t, y: e, pressure: n=.5})=>[t, e, n]));
if (2 === a.length) {
let t = a[1];
a = a.slice(0, -1);
for (let e = 1; e < 5; e++)
a.push(p(a[0], t, e / 4))
}
1 === a.length && (a = [...a, [...n(a[0], [1, 1]), ...a[0].slice(2)]]);
let g = [{
point: [a[0][0], a[0][1]],
pressure: a[0][2] >= 0 ? a[0][2] : .25,
vector: [1, 1],
distance: 0,
runningLength: 0
}]
, v = !1
, d = 0
, M = g[0]
, m = a.length - 1;
for (let t = 1; t < a.length; t++) {
let e = s && t === m ? a[t].slice(0, 2) : p(M.point, a[t], f);
if (l(M.point, e))
continue;
let n = h(e, M.point);
if (d += n,
t < m && !v) {
if (d < o)
continue;
v = !0
}
M = {
point: e,
pressure: a[t][2] >= 0 ? a[t][2] : .5,
vector: c(r(M.point, e)),
distance: n,
runningLength: d
},
g.push(M)
}
return g[0].vector = (null == (i = g[1]) ? void 0 : i.vector) || [0, 0],
g
}(t, v), v)
}
t.g.PerfectFreehand = {},
PerfectFreehand.getStroke = function(t, e) {
return M(t, e)
}
,
PerfectFreehand.getSvgPathFromStroke = function(t, e) {
let n = M(t, e);
const r = n.reduce(((t,[e,n],r,i)=>{
const [u,o] = i[(r + 1) % i.length];
return t.push(e, n, (e + u) / 2, (n + o) / 2),
t
}
), ["M", ...n[0], "Q"]);
return r.push("Z"),
r.join(" ")
}
}
)();
var Base64 = {
_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
encode: function(a, b) {
var c = ""
, d = 0;
for (null != b && b || (a = Base64._utf8_encode(a)); d < a.length; ) {
var e = a.charCodeAt(d++);
b = a.charCodeAt(d++);
var f = a.charCodeAt(d++);
var g = e >> 2;
e = (e & 3) << 4 | b >> 4;
var k = (b & 15) << 2 | f >> 6;
var l = f & 63;
isNaN(b) ? k = l = 64 : isNaN(f) && (l = 64);
c = c + this._keyStr.charAt(g) + this._keyStr.charAt(e) + this._keyStr.charAt(k) + this._keyStr.charAt(l)
}
return c
},
decode: function(a, b) {
b = null != b ? b : !1;
var c = ""
, d = 0;
for (a = a.replace(/[^A-Za-z0-9\+\/=]/g, ""); d < a.length; ) {
var e = this._keyStr.indexOf(a.charAt(d++));
var f = this._keyStr.indexOf(a.charAt(d++));
var g = this._keyStr.indexOf(a.charAt(d++));
var k = this._keyStr.indexOf(a.charAt(d++));
e = e << 2 | f >> 4;
f = (f & 15) << 4 | g >> 2;
var l = (g & 3) << 6 | k;
c += String.fromCharCode(e);
64 != g && (c += String.fromCharCode(f));
64 != k && (c += String.fromCharCode(l))
}
b || (c = Base64._utf8_decode(c));
return c
},
_utf8_encode: function(a) {
a = a.replace(/\r\n/g, "\n");
for (var b = "", c = 0; c < a.length; c++) {
var d = a.charCodeAt(c);
128 > d ? b += String.fromCharCode(d) : (127 < d && 2048 > d ? b += String.fromCharCode(d >> 6 | 192) : (b += String.fromCharCode(d >> 12 | 224),
b += String.fromCharCode(d >> 6 & 63 | 128)),
b += String.fromCharCode(d & 63 | 128))
}
return b
},
_utf8_decode: function(a) {
var b = ""
, c = 0;
for (c1 = c2 = 0; c < a.length; ) {
var d = a.charCodeAt(c);
128 > d ? (b += String.fromCharCode(d),
c++) : 191 < d && 224 > d ? (c2 = a.charCodeAt(c + 1),
b += String.fromCharCode((d & 31) << 6 | c2 & 63),
c += 2) : (c2 = a.charCodeAt(c + 1),
c3 = a.charCodeAt(c + 2),
b += String.fromCharCode((d & 15) << 12 | (c2 & 63) << 6 | c3 & 63),
c += 3)
}
return b
}
};
window.urlParams = window.urlParams || {};
window.isLocalStorage = window.isLocalStorage || !1;
window.mxLoadSettings = window.mxLoadSettings || "1" != urlParams.configure;
window.isSvgBrowser = !0;
window.DRAWIO_BASE_URL = window.DRAWIO_BASE_URL || (/.*\.draw\.io$/.test(window.location.hostname) || /.*\.diagrams\.net$/.test(window.location.hostname) ? window.location.protocol + "//" + window.location.hostname : "https://app.diagrams.net");
window.DRAWIO_LIGHTBOX_URL = window.DRAWIO_LIGHTBOX_URL || "https://viewer.diagrams.net";
window.EXPORT_URL = window.EXPORT_URL || "https://convert.diagrams.net/node/export";
window.PLANT_URL = window.PLANT_URL || "https://plant-aws.diagrams.net";
window.DRAW_MATH_URL = window.DRAW_MATH_URL || window.DRAWIO_BASE_URL + "/math/es5";
window.VSD_CONVERT_URL = window.VSD_CONVERT_URL || "https://convert.diagrams.net/VsdConverter/api/converter";
window.EMF_CONVERT_URL = window.EMF_CONVERT_URL || "https://convert.diagrams.net/emf2png/convertEMF";
window.REALTIME_URL = window.REALTIME_URL || ("test.draw.io" == window.location.hostname && "local" != urlParams.cache ? "https://app.diagrams.net/cache" : "cache");
window.DRAWIO_GITLAB_URL = window.DRAWIO_GITLAB_URL || "https://gitlab.com";
window.DRAWIO_GITLAB_ID = window.DRAWIO_GITLAB_ID || "2b14debc5feeb18ba65358d863ec870e4cc9294b28c3c941cb3014eb4af9a9b4";
window.DRAWIO_GITHUB_URL = window.DRAWIO_GITHUB_URL || "https://github.com";
window.DRAWIO_GITHUB_API_URL = window.DRAWIO_GITHUB_API_URL || "https://api.github.com";
window.DRAWIO_GITHUB_ID = window.DRAWIO_GITHUB_ID || "Iv1.98d62f0431e40543";
window.DRAWIO_DROPBOX_ID = window.DRAWIO_DROPBOX_ID || "jg02tc0onwmhlgm";
window.SAVE_URL = window.SAVE_URL || "save";
window.OPEN_URL = window.OPEN_URL || "import";
window.PROXY_URL = window.PROXY_URL || "proxy";
window.DRAWIO_VIEWER_URL = window.DRAWIO_VIEWER_URL || null;
window.NOTIFICATIONS_URL = window.NOTIFICATIONS_URL || "https://www.draw.io/notifications";
window.RT_WEBSOCKET_URL = window.RT_WEBSOCKET_URL || "wss://" + ("test.draw.io" == window.location.hostname ? "app.diagrams.net" : window.location.hostname) + "/rt";
window.SHAPES_PATH = window.SHAPES_PATH || "shapes";
window.GRAPH_IMAGE_PATH = window.GRAPH_IMAGE_PATH || "img";
window.ICONSEARCH_PATH = window.ICONSEARCH_PATH || ((null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("MSIE") || urlParams.dev) && "file:" != window.location.protocol ? "iconSearch" : window.DRAWIO_BASE_URL + "/iconSearch");
window.TEMPLATE_PATH = window.TEMPLATE_PATH || "templates";
window.NEW_DIAGRAM_CATS_PATH = window.NEW_DIAGRAM_CATS_PATH || "newDiagramCats";
window.PLUGINS_BASE_PATH = window.PLUGINS_BASE_PATH || "";
window.ALLOW_CUSTOM_PLUGINS = window.ALLOW_CUSTOM_PLUGINS || !1;
window.RESOURCES_PATH = window.RESOURCES_PATH || "resources";
window.RESOURCE_BASE = window.RESOURCE_BASE || RESOURCES_PATH + "/dia";
window.DRAWIO_CONFIG = window.DRAWIO_CONFIG || null;
window.mxLoadResources = window.mxLoadResources || !1;
window.mxLanguage = window.mxLanguage || function() {
var a = urlParams.lang;
if (null == a && "undefined" != typeof JSON && isLocalStorage)
try {
var b = localStorage.getItem(".drawio-config");
null != b && (a = JSON.parse(b).language || null);
if (!a && window.mxIsElectron && (a = urlParams.appLang,
null != a)) {
var c = a.indexOf("-");
0 <= c && (a = a.substring(0, c));
a = a.toLowerCase()
}
} catch (d) {
isLocalStorage = !1
}
return a
}();
window.mxLanguageMap = window.mxLanguageMap || {
i18n: "",
id: "Bahasa Indonesia",
ms: "Bahasa Melayu",
bs: "Bosanski",
bg: "Bulgarian",
ca: "Català",
cs: "Čeština",
da: "Dansk",
de: "Deutsch",
et: "Eesti",
en: "English",
es: "Español",
eu: "Euskara",
fil: "Filipino",
fr: "Français",
gl: "Galego",
it: "Italiano",
hu: "Magyar",
lt: "Lietuvių",
lv: "Latviešu",
nl: "Nederlands",
no: "Norsk",
pl: "Polski",
"pt-br": "Português (Brasil)",
pt: "Português (Portugal)",
ro: "Română",
fi: "Suomi",
sv: "Svenska",
vi: "Tiếng Việt",
tr: "Türkçe",
el: "Ελληνικά",
ru: "Русский",
sr: "Српски",
uk: "Українська",
he: "עברית",
ar: "العربية",
fa: "فارسی",
th: "ไทย",
ko: "한국어",
ja: "日本語",
zh: "简体中文",
"zh-tw": "繁體中文"
};
"undefined" === typeof window.mxBasePath && (window.mxBasePath = "mxgraph",
window.mxImageBasePath = "mxgraph/images");
if (null == window.mxLanguages) {
window.mxLanguages = [];
for (var lang in mxLanguageMap)
"en" != lang && window.mxLanguages.push(lang);
if (null == window.mxLanguage && ("test.draw.io" == window.location.hostname || "www.draw.io" == window.location.hostname || "viewer.diagrams.net" == window.location.hostname || "embed.diagrams.net" == window.location.hostname || "app.diagrams.net" == window.location.hostname || "jgraph.github.io" == window.location.hostname) && (lang = navigator.language,
null != lang)) {
var dash = lang.indexOf("-");
0 < dash && (lang = lang.substring(0, dash));
0 <= window.mxLanguages.indexOf(lang) && (window.mxLanguage = lang)
}
}
"1" == urlParams.extAuth && /((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent) && (urlParams.gapi = "0",
urlParams.noDevice = "1",
"1" != urlParams.lightbox && (urlParams.lightbox = "1",
urlParams.layers = "1",
urlParams.viewerOnlyMsg = "1"));
window.location.hostname == DRAWIO_LIGHTBOX_URL.substring(DRAWIO_LIGHTBOX_URL.indexOf("//") + 2) && (urlParams.lightbox = "1");
"1" == urlParams.lightbox && (urlParams.chrome = "0");
"1" == urlParams.embedInline && (urlParams.embed = "1",
urlParams.ui = "sketch",
urlParams.plugins = "0",
urlParams.proto = "json",
urlParams.prefetchFonts = "1");
function setCurrentXml(a, b) {
null != window.parent && null != window.parent.openFile && window.parent.openFile.setData(a, b)
}
window.uiTheme = window.uiTheme || function() {
var a = urlParams.ui;
"1" == urlParams.extAuth && (a = "sketch");
if (null == a && isLocalStorage && "undefined" !== typeof JSON && "1" != urlParams.lightbox)
try {
var b = localStorage.getItem(".drawio-config");
null != b && (a = JSON.parse(b).ui || null)
} catch (c) {
isLocalStorage = !1
}
try {
null != a || "1" == urlParams.embed || "test.draw.io" !== window.location.hostname && "www.draw.io" !== window.location.hostname && "stage.diagrams.net" !== window.location.hostname && "app.diagrams.net" !== window.location.hostname && "jgraph.github.io" !== window.location.hostname || 800 >= (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) && (a = "simple")
} catch (c) {}
"sketch" == a && null == urlParams.sketch && "ac.draw.io" === window.location.hostname ? urlParams.sketch = "1" : "1" != urlParams.dark || "" != a && "kennedy" != a || (a = "dark");
return a
}();
(function() {
if ("undefined" !== typeof JSON && isLocalStorage)
try {
var a = localStorage.getItem("1" == urlParams.sketch ? ".sketch-config" : ".drawio-config")
, b = !0;
null != a && (b = JSON.parse(a).showStartScreen);
0 == b && (urlParams.splash = "0")
} catch (d) {}
a = urlParams["export"];
null != a && (a = decodeURIComponent(a),
"http://" != a.substring(0, 7) && "https://" != a.substring(0, 8) && (a = "http://" + a),
EXPORT_URL = a);
a = urlParams.gitlab;
null != a && (a = decodeURIComponent(a),
"http://" != a.substring(0, 7) && "https://" != a.substring(0, 8) && (a = "http://" + a),
DRAWIO_GITLAB_URL = a);
a = urlParams["gitlab-id"];
null != a && (DRAWIO_GITLAB_ID = a);
window.DRAWIO_LOG_URL = window.DRAWIO_LOG_URL || "";
a = window.location.host;
if ("test.draw.io" != a) {
var c = "diagrams.net";
b = a.length - c.length;
c = a.lastIndexOf(c, b);
-1 !== c && c === b ? window.DRAWIO_LOG_URL = "https://log.diagrams.net" : (c = "draw.io",
b = a.length - c.length,
c = a.lastIndexOf(c, b),
-1 !== c && c === b && (window.DRAWIO_LOG_URL = "https://log.draw.io"))
}
}
)();
if ("1" == urlParams.offline || "1" == urlParams.demo || "1" == urlParams.stealth || "1" == urlParams.local || "1" == urlParams.lockdown)
urlParams.picker = "0",
urlParams.gapi = "0",
urlParams.db = "0",
urlParams.od = "0",
urlParams.gh = "0",
urlParams.gl = "0",
urlParams.tr = "0";
"se.diagrams.net" == window.location.hostname && (urlParams.db = "0",
urlParams.od = "0",
urlParams.gh = "0",
urlParams.gl = "0",
urlParams.tr = "0",
urlParams.plugins = "0",
urlParams.mode = "google",
urlParams.lockdown = "1",
window.DRAWIO_GOOGLE_APP_ID = window.DRAWIO_GOOGLE_APP_ID || "184079235871",
window.DRAWIO_GOOGLE_CLIENT_ID = window.DRAWIO_GOOGLE_CLIENT_ID || "184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");
"trello" == urlParams.mode && (urlParams.tr = "1");
"embed.diagrams.net" == window.location.hostname && (urlParams.embed = "1");
(null == window.location.hash || 1 >= window.location.hash.length) && null != urlParams.open && (window.location.hash = urlParams.open);
window.urlParams = window.urlParams || {};
window.DOM_PURIFY_CONFIG = window.DOM_PURIFY_CONFIG || {
ADD_TAGS: ["use"],
FORBID_TAGS: ["form"],
ALLOWED_URI_REGEXP: /^((?!javascript:).)*$/i,
ADD_ATTR: ["target", "content"]
};
window.MAX_REQUEST_SIZE = window.MAX_REQUEST_SIZE || 10485760;
window.MAX_AREA = window.MAX_AREA || 225E6;
window.EXPORT_URL = window.EXPORT_URL || "/export";
window.SAVE_URL = window.SAVE_URL || "/save";
window.OPEN_URL = window.OPEN_URL || "/open";
window.RESOURCES_PATH = window.RESOURCES_PATH || "resources";
window.RESOURCE_BASE = window.RESOURCE_BASE || window.RESOURCES_PATH + "/grapheditor";
window.STENCIL_PATH = window.STENCIL_PATH || "stencils";
window.IMAGE_PATH = window.IMAGE_PATH || "images";
window.STYLE_PATH = window.STYLE_PATH || "styles";
window.CSS_PATH = window.CSS_PATH || "styles";
window.OPEN_FORM = window.OPEN_FORM || "open.html";
window.mxBasePath = window.mxBasePath || "mxgraph";
window.mxImageBasePath = window.mxImageBasePath || "mxgraph/images";
window.mxLanguage = window.mxLanguage || urlParams.lang;
window.mxLanguages = window.mxLanguages || ["de", "se"];
var mxClient = {
VERSION: "21.0.6",
IS_IE: null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("MSIE"),
IS_IE11: null != navigator.userAgent && !!navigator.userAgent.match(/Trident\/7\./),
IS_EDGE: null != navigator.userAgent && !!navigator.userAgent.match(/Edge\//),
IS_EM: "spellcheck"in document.createElement("textarea") && 8 == document.documentMode,
VML_PREFIX: "v",
OFFICE_PREFIX: "o",
IS_NS: null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("Mozilla/") && 0 > navigator.userAgent.indexOf("MSIE") && 0 > navigator.userAgent.indexOf("Edge/"),
IS_OP: null != navigator.userAgent && (0 <= navigator.userAgent.indexOf("Opera/") || 0 <= navigator.userAgent.indexOf("OPR/")),
IS_OT: null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("Presto/") && 0 > navigator.userAgent.indexOf("Presto/2.4.") && 0 > navigator.userAgent.indexOf("Presto/2.3.") && 0 > navigator.userAgent.indexOf("Presto/2.2.") && 0 > navigator.userAgent.indexOf("Presto/2.1.") && 0 > navigator.userAgent.indexOf("Presto/2.0.") && 0 > navigator.userAgent.indexOf("Presto/1."),
IS_SF: /Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID: 0 <= navigator.appVersion.indexOf("Android"),
IS_IOS: /iP(hone|od|ad)/.test(navigator.platform) || navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && 2 < navigator.maxTouchPoints,
IS_WEBVIEW: /((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),
IS_GC: /Google Inc/.test(navigator.vendor),
IS_CHROMEAPP: null != window.chrome && null != chrome.app && null != chrome.app.runtime,
IS_FF: "undefined" !== typeof InstallTrigger,
IS_MT: 0 <= navigator.userAgent.indexOf("Firefox/") && 0 > navigator.userAgent.indexOf("Firefox/1.") && 0 > navigator.userAgent.indexOf("Firefox/2.") || 0 <= navigator.userAgent.indexOf("Iceweasel/") && 0 > navigator.userAgent.indexOf("Iceweasel/1.") && 0 > navigator.userAgent.indexOf("Iceweasel/2.") || 0 <= navigator.userAgent.indexOf("SeaMonkey/") && 0 > navigator.userAgent.indexOf("SeaMonkey/1.") || 0 <= navigator.userAgent.indexOf("Iceape/") && 0 > navigator.userAgent.indexOf("Iceape/1."),
IS_SVG: "MICROSOFT INTERNET EXPLORER" != navigator.appName.toUpperCase(),
NO_FO: !document.createElementNS || "[object SVGForeignObjectElement]" !== document.createElementNS("http://www.w3.org/2000/svg", "foreignObject").toString() || 0 <= navigator.userAgent.indexOf("Opera/"),
IS_WIN: 0 < navigator.appVersion.indexOf("Win"),
IS_MAC: 0 < navigator.appVersion.indexOf("Mac"),
IS_CHROMEOS: /\bCrOS\b/.test(navigator.appVersion),
IS_LINUX: /\bLinux\b/.test(navigator.appVersion),
IS_TOUCH: "ontouchstart"in document.documentElement,
IS_POINTER: null != window.PointerEvent && !(0 < navigator.appVersion.indexOf("Mac")),
IS_LOCAL: 0 > document.location.href.indexOf("http://") && 0 > document.location.href.indexOf("https://"),
defaultBundles: [],
isBrowserSupported: function() {
return mxClient.IS_SVG
},
link: function(a, b, c, d) {
c = c || document;
var e = c.createElement("link");
e.setAttribute("rel", a);
e.setAttribute("href", b);
e.setAttribute("charset", "UTF-8");
e.setAttribute("type", "text/css");
d && e.setAttribute("id", d);
c.getElementsByTagName("head")[0].appendChild(e)
},
loadResources: function(a, b) {
function c() {
0 == --d && a()
}
for (var d = mxClient.defaultBundles.length, e = 0; e < mxClient.defaultBundles.length; e++)
mxResources.add(mxClient.defaultBundles[e], b, c)
},
include: function(a) {
document.write('