diff --git a/server/src/main/resources/static/drawio/js/app.min.js b/server/src/main/resources/static/drawio/js/app.min.js
new file mode 100644
index 00000000..f2eb7277
--- /dev/null
+++ b/server/src/main/resources/static/drawio/js/app.min.js
@@ -0,0 +1,114722 @@
+//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('