/*!
 * Material Design for Bootstrap 4
 *   Version: MDB PRO 4.18.0
 * 
 * 
 *   Copyright: Material Design for Bootstrap
 *   https://mdbootstrap.com/
 * 
 *   Read the license: https://mdbootstrap.com/general/license/
 * 
 * 
 *   Documentation: https://mdbootstrap.com/
 * 
 *   Getting started: https://mdbootstrap.com/docs/jquery/getting-started/download/
 * 
 *   Tutorials: https://mdbootstrap.com/education/bootstrap/
 * 
 *   Templates: https://mdbootstrap.com/templates/
 * 
 *   Support: https://mdbootstrap.com/support/
 * 
 *   Contact: office@mdbootstrap.com
 * 
 *   Attribution: Animate CSS, Twitter Bootstrap, Materialize CSS, Normalize CSS, Waves JS, WOW JS, Toastr, Chart.js, jquery.easing.js, velocity.js, chart.js, wow.js, scrolling-navbar.js, waves.js, forms-free.js, preloading.js, cards.js, character-counter.js, toastr.js, smooth-scroll.js, dropdown.js, buttons.js, sidenav.js, collapsible.js, range-input.js, file-input.js, material-select.js, picker.js, picker-date.js, picker-time.js, lightbox.js, jquery.sticky.js, scrollbar.js, chips.js, ofi.js, jarallax.js, jarallax-video.js, mdb-autocomplete.js, enhanced-modals.js, treeview.js
 */
! function(t) {
    var e = {};

    function i(n) {
        if (e[n]) return e[n].exports;
        var l = e[n] = {
            i: n,
            l: !1,
            exports: {}
        };
        return t[n].call(l.exports, l, l.exports, i), l.l = !0, l.exports
    }
    i.m = t, i.c = e, i.d = function(t, e, n) {
        i.o(t, e) || Object.defineProperty(t, e, {
            enumerable: !0,
            get: n
        })
    }, i.r = function(t) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
            value: "Module"
        }), Object.defineProperty(t, "__esModule", {
            value: !0
        })
    }, i.t = function(t, e) {
        if (1 & e && (t = i(t)), 8 & e) return t;
        if (4 & e && "object" == typeof t && t && t.__esModule) return t;
        var n = Object.create(null);
        if (i.r(n), Object.defineProperty(n, "default", {
                enumerable: !0,
                value: t
            }), 2 & e && "string" != typeof t)
            for (var l in t) i.d(n, l, function(e) {
                return t[e]
            }.bind(null, l));
        return n
    }, i.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        } : function() {
            return t
        };
        return i.d(e, "a", e), e
    }, i.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }, i.p = "", i(i.s = 227)
}([function(t, e, i) {
    (function(e) {
        var i = function(t) {
            return t && t.Math == Math && t
        };
        t.exports = i("object" == typeof globalThis && globalThis) || i("object" == typeof window && window) || i("object" == typeof self && self) || i("object" == typeof e && e) || Function("return this")()
    }).call(this, i(55))
}, function(t, e) {
    t.exports = function(t) {
        try {
            return !!t()
        } catch (t) {
            return !0
        }
    }
}, function(t, e, i) {
    var n = i(0),
        l = i(12),
        o = i(26),
        a = i(47),
        r = n.Symbol,
        s = l("wks");
    t.exports = function(t) {
        return s[t] || (s[t] = a && r[t] || (a ? r : o)("Symbol." + t))
    }
}, function(t, e, i) {
    var n = i(0),
        l = i(22).f,
        o = i(6),
        a = i(14),
        r = i(21),
        s = i(48),
        c = i(50);
    t.exports = function(t, e) {
        var i, u, h, d, p, f = t.target,
            m = t.global,
            v = t.stat;
        if (i = m ? n : v ? n[f] || r(f, {}) : (n[f] || {}).prototype)
            for (u in e) {
                if (d = e[u], h = t.noTargetGet ? (p = l(i, u)) && p.value : i[u], !c(m ? u : f + (v ? "." : "#") + u, t.forced) && void 0 !== h) {
                    if (typeof d == typeof h) continue;
                    s(d, h)
                }(t.sham || h && h.sham) && o(d, "sham", !0), a(i, u, d, t)
            }
    }
}, function(t, e) {
    var i = {}.hasOwnProperty;
    t.exports = function(t, e) {
        return i.call(t, e)
    }
}, function(t, e) {
    t.exports = function(t) {
        return "object" == typeof t ? null !== t : "function" == typeof t
    }
}, function(t, e, i) {
    var n = i(7),
        l = i(9),
        o = i(18);
    t.exports = n ? function(t, e, i) {
        return l.f(t, e, o(1, i))
    } : function(t, e, i) {
        return t[e] = i, t
    }
}, function(t, e, i) {
    var n = i(1);
    t.exports = !n((function() {
        return 7 != Object.defineProperty({}, "a", {
            get: function() {
                return 7
            }
        }).a
    }))
}, function(t, e, i) {
    var n = i(5);
    t.exports = function(t) {
        if (!n(t)) throw TypeError(String(t) + " is not an object");
        return t
    }
}, function(t, e, i) {
    var n = i(7),
        l = i(34),
        o = i(8),
        a = i(20),
        r = Object.defineProperty;
    e.f = n ? r : function(t, e, i) {
        if (o(t), e = a(e, !0), o(i), l) try {
            return r(t, e, i)
        } catch (t) {}
        if ("get" in i || "set" in i) throw TypeError("Accessors not supported");
        return "value" in i && (t[e] = i.value), t
    }
}, function(t, e, i) {
    var n = i(27),
        l = i(13);
    t.exports = function(t) {
        return n(l(t))
    }
}, function(t, e, i) {
    var n = i(15),
        l = Math.min;
    t.exports = function(t) {
        return t > 0 ? l(n(t), 9007199254740991) : 0
    }
}, function(t, e, i) {
    var n = i(30),
        l = i(57);
    (t.exports = function(t, e) {
        return l[t] || (l[t] = void 0 !== e ? e : {})
    })("versions", []).push({
        version: "3.3.2",
        mode: n ? "pure" : "global",
        copyright: "© 2019 Denis Pushkarev (zloirock.ru)"
    })
}, function(t, e) {
    t.exports = function(t) {
        if (null == t) throw TypeError("Can't call method on " + t);
        return t
    }
}, function(t, e, i) {
    var n = i(0),
        l = i(12),
        o = i(6),
        a = i(4),
        r = i(21),
        s = i(35),
        c = i(28),
        u = c.get,
        h = c.enforce,
        d = String(s).split("toString");
    l("inspectSource", (function(t) {
        return s.call(t)
    })), (t.exports = function(t, e, i, l) {
        var s = !!l && !!l.unsafe,
            c = !!l && !!l.enumerable,
            u = !!l && !!l.noTargetGet;
        "function" == typeof i && ("string" != typeof e || a(i, "name") || o(i, "name", e), h(i).source = d.join("string" == typeof e ? e : "")), t !== n ? (s ? !u && t[e] && (c = !0) : delete t[e], c ? t[e] = i : o(t, e, i)) : c ? t[e] = i : r(e, i)
    })(Function.prototype, "toString", (function() {
        return "function" == typeof this && u(this).source || s.call(this)
    }))
}, function(t, e) {
    var i = Math.ceil,
        n = Math.floor;
    t.exports = function(t) {
        return isNaN(t = +t) ? 0 : (t > 0 ? n : i)(t)
    }
}, function(t, e, i) {
    var n = i(13);
    t.exports = function(t) {
        return Object(n(t))
    }
}, function(t, e) {
    var i = {}.toString;
    t.exports = function(t) {
        return i.call(t).slice(8, -1)
    }
}, function(t, e) {
    t.exports = function(t, e) {
        return {
            enumerable: !(1 & t),
            configurable: !(2 & t),
            writable: !(4 & t),
            value: e
        }
    }
}, function(t, e) {
    t.exports = {}
}, function(t, e, i) {
    var n = i(5);
    t.exports = function(t, e) {
        if (!n(t)) return t;
        var i, l;
        if (e && "function" == typeof(i = t.toString) && !n(l = i.call(t))) return l;
        if ("function" == typeof(i = t.valueOf) && !n(l = i.call(t))) return l;
        if (!e && "function" == typeof(i = t.toString) && !n(l = i.call(t))) return l;
        throw TypeError("Can't convert object to primitive value")
    }
}, function(t, e, i) {
    var n = i(0),
        l = i(6);
    t.exports = function(t, e) {
        try {
            l(n, t, e)
        } catch (i) {
            n[t] = e
        }
        return e
    }
}, function(t, e, i) {
    var n = i(7),
        l = i(40),
        o = i(18),
        a = i(10),
        r = i(20),
        s = i(4),
        c = i(34),
        u = Object.getOwnPropertyDescriptor;
    e.f = n ? u : function(t, e) {
        if (t = a(t), e = r(e, !0), c) try {
            return u(t, e)
        } catch (t) {}
        if (s(t, e)) return o(!l.f.call(t, e), t[e])
    }
}, function(t, e, i) {
    var n = i(61),
        l = i(27),
        o = i(16),
        a = i(11),
        r = i(42),
        s = [].push,
        c = function(t) {
            var e = 1 == t,
                i = 2 == t,
                c = 3 == t,
                u = 4 == t,
                h = 6 == t,
                d = 5 == t || h;
            return function(p, f, m, v) {
                for (var g, y, b = o(p), x = l(b), w = n(f, m, 3), k = a(x.length), S = 0, M = v || r, C = e ? M(p, k) : i ? M(p, 0) : void 0; k > S; S++)
                    if ((d || S in x) && (y = w(g = x[S], S, b), t))
                        if (e) C[S] = y;
                        else if (y) switch (t) {
                    case 3:
                        return !0;
                    case 5:
                        return g;
                    case 6:
                        return S;
                    case 2:
                        s.call(C, g)
                } else if (u) return !1;
                return h ? -1 : c || u ? u : C
            }
        };
    t.exports = {
        forEach: c(0),
        map: c(1),
        filter: c(2),
        some: c(3),
        every: c(4),
        find: c(5),
        findIndex: c(6)
    }
}, function(t, e, i) {
    var n = i(12),
        l = i(26),
        o = n("keys");
    t.exports = function(t) {
        return o[t] || (o[t] = l(t))
    }
}, function(t, e) {
    t.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
}, function(t, e) {
    var i = 0,
        n = Math.random();
    t.exports = function(t) {
        return "Symbol(" + String(void 0 === t ? "" : t) + ")_" + (++i + n).toString(36)
    }
}, function(t, e, i) {
    var n = i(1),
        l = i(17),
        o = "".split;
    t.exports = n((function() {
        return !Object("z").propertyIsEnumerable(0)
    })) ? function(t) {
        return "String" == l(t) ? o.call(t, "") : Object(t)
    } : Object
}, function(t, e, i) {
    var n, l, o, a = i(58),
        r = i(0),
        s = i(5),
        c = i(6),
        u = i(4),
        h = i(24),
        d = i(19),
        p = r.WeakMap;
    if (a) {
        var f = new p,
            m = f.get,
            v = f.has,
            g = f.set;
        n = function(t, e) {
            return g.call(f, t, e), e
        }, l = function(t) {
            return m.call(f, t) || {}
        }, o = function(t) {
            return v.call(f, t)
        }
    } else {
        var y = h("state");
        d[y] = !0, n = function(t, e) {
            return c(t, y, e), e
        }, l = function(t) {
            return u(t, y) ? t[y] : {}
        }, o = function(t) {
            return u(t, y)
        }
    }
    t.exports = {
        set: n,
        get: l,
        has: o,
        enforce: function(t) {
            return o(t) ? l(t) : n(t, {})
        },
        getterFor: function(t) {
            return function(e) {
                var i;
                if (!s(e) || (i = l(e)).type !== t) throw TypeError("Incompatible receiver, " + t + " required");
                return i
            }
        }
    }
}, function(t, e, i) {
    var n = i(37),
        l = i(25).concat("length", "prototype");
    e.f = Object.getOwnPropertyNames || function(t) {
        return n(t, l)
    }
}, function(t, e) {
    t.exports = !1
}, function(t, e, i) {
    var n = i(17);
    t.exports = Array.isArray || function(t) {
        return "Array" == n(t)
    }
}, function(t, e, i) {
    var n = i(46),
        l = i(0),
        o = function(t) {
            return "function" == typeof t ? t : void 0
        };
    t.exports = function(t, e) {
        return arguments.length < 2 ? o(n[t]) || o(l[t]) : n[t] && n[t][e] || l[t] && l[t][e]
    }
}, function(t, e, i) {
    var n = i(8),
        l = i(62),
        o = i(25),
        a = i(19),
        r = i(63),
        s = i(36),
        c = i(24)("IE_PROTO"),
        u = function() {},
        h = function() {
            var t, e = s("iframe"),
                i = o.length;
            for (e.style.display = "none", r.appendChild(e), e.src = String("javascript:"), (t = e.contentWindow.document).open(), t.write("<script>document.F=Object<\/script>"), t.close(), h = t.F; i--;) delete h.prototype[o[i]];
            return h()
        };
    t.exports = Object.create || function(t, e) {
        var i;
        return null !== t ? (u.prototype = n(t), i = new u, u.prototype = null, i[c] = t) : i = h(), void 0 === e ? i : l(i, e)
    }, a[c] = !0
}, function(t, e, i) {
    var n = i(7),
        l = i(1),
        o = i(36);
    t.exports = !n && !l((function() {
        return 7 != Object.defineProperty(o("div"), "a", {
            get: function() {
                return 7
            }
        }).a
    }))
}, function(t, e, i) {
    var n = i(12);
    t.exports = n("native-function-to-string", Function.toString)
}, function(t, e, i) {
    var n = i(0),
        l = i(5),
        o = n.document,
        a = l(o) && l(o.createElement);
    t.exports = function(t) {
        return a ? o.createElement(t) : {}
    }
}, function(t, e, i) {
    var n = i(4),
        l = i(10),
        o = i(39).indexOf,
        a = i(19);
    t.exports = function(t, e) {
        var i, r = l(t),
            s = 0,
            c = [];
        for (i in r) !n(a, i) && n(r, i) && c.push(i);
        for (; e.length > s;) n(r, i = e[s++]) && (~o(c, i) || c.push(i));
        return c
    }
}, function(t, e, i) {
    var n = i(15),
        l = Math.max,
        o = Math.min;
    t.exports = function(t, e) {
        var i = n(t);
        return i < 0 ? l(i + e, 0) : o(i, e)
    }
}, function(t, e, i) {
    var n = i(10),
        l = i(11),
        o = i(38),
        a = function(t) {
            return function(e, i, a) {
                var r, s = n(e),
                    c = l(s.length),
                    u = o(a, c);
                if (t && i != i) {
                    for (; c > u;)
                        if ((r = s[u++]) != r) return !0
                } else
                    for (; c > u; u++)
                        if ((t || u in s) && s[u] === i) return t || u || 0;
                return !t && -1
            }
        };
    t.exports = {
        includes: a(!0),
        indexOf: a(!1)
    }
}, function(t, e, i) {
    "use strict";
    var n = {}.propertyIsEnumerable,
        l = Object.getOwnPropertyDescriptor,
        o = l && !n.call({
            1: 2
        }, 1);
    e.f = o ? function(t) {
        var e = l(this, t);
        return !!e && e.enumerable
    } : n
}, function(t, e, i) {
    var n = i(37),
        l = i(25);
    t.exports = Object.keys || function(t) {
        return n(t, l)
    }
}, function(t, e, i) {
    var n = i(5),
        l = i(31),
        o = i(2)("species");
    t.exports = function(t, e) {
        var i;
        return l(t) && ("function" != typeof(i = t.constructor) || i !== Array && !l(i.prototype) ? n(i) && null === (i = i[o]) && (i = void 0) : i = void 0), new(void 0 === i ? Array : i)(0 === e ? 0 : e)
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(23).find,
        o = i(52),
        a = !0;
    "find" in [] && Array(1).find((function() {
        a = !1
    })), n({
        target: "Array",
        proto: !0,
        forced: a
    }, {
        find: function(t) {
            return l(this, t, arguments.length > 1 ? arguments[1] : void 0)
        }
    }), o("find")
}, function(t, e) {
    e.f = Object.getOwnPropertySymbols
}, function(t, e, i) {
    var n = i(1),
        l = i(2)("species");
    t.exports = function(t) {
        return !n((function() {
            var e = [];
            return (e.constructor = {})[l] = function() {
                return {
                    foo: 1
                }
            }, 1 !== e[t](Boolean).foo
        }))
    }
}, function(t, e, i) {
    t.exports = i(0)
}, function(t, e, i) {
    var n = i(1);
    t.exports = !!Object.getOwnPropertySymbols && !n((function() {
        return !String(Symbol())
    }))
}, function(t, e, i) {
    var n = i(4),
        l = i(53),
        o = i(22),
        a = i(9);
    t.exports = function(t, e) {
        for (var i = l(e), r = a.f, s = o.f, c = 0; c < i.length; c++) {
            var u = i[c];
            n(t, u) || r(t, u, s(e, u))
        }
    }
}, function(t, e) {
    t.exports = function(t) {
        if ("function" != typeof t) throw TypeError(String(t) + " is not a function");
        return t
    }
}, function(t, e, i) {
    var n = i(1),
        l = /#|\.prototype\./,
        o = function(t, e) {
            var i = r[a(t)];
            return i == c || i != s && ("function" == typeof e ? n(e) : !!e)
        },
        a = o.normalize = function(t) {
            return String(t).replace(l, ".").toLowerCase()
        },
        r = o.data = {},
        s = o.NATIVE = "N",
        c = o.POLYFILL = "P";
    t.exports = o
}, function(t, e, i) {
    "use strict";
    var n = i(1);
    t.exports = function(t, e) {
        var i = [][t];
        return !i || !n((function() {
            i.call(null, e || function() {
                throw 1
            }, 1)
        }))
    }
}, function(t, e, i) {
    var n = i(2),
        l = i(33),
        o = i(6),
        a = n("unscopables"),
        r = Array.prototype;
    null == r[a] && o(r, a, l(null)), t.exports = function(t) {
        r[a][t] = !0
    }
}, function(t, e, i) {
    var n = i(32),
        l = i(29),
        o = i(44),
        a = i(8);
    t.exports = n("Reflect", "ownKeys") || function(t) {
        var e = l.f(a(t)),
            i = o.f;
        return i ? e.concat(i(t)) : e
    }
}, function(t, e, i) {
    "use strict";
    var n = i(10),
        l = i(52),
        o = i(60),
        a = i(28),
        r = i(87),
        s = a.set,
        c = a.getterFor("Array Iterator");
    t.exports = r(Array, "Array", (function(t, e) {
        s(this, {
            type: "Array Iterator",
            target: n(t),
            index: 0,
            kind: e
        })
    }), (function() {
        var t = c(this),
            e = t.target,
            i = t.kind,
            n = t.index++;
        return !e || n >= e.length ? (t.target = void 0, {
            value: void 0,
            done: !0
        }) : "keys" == i ? {
            value: n,
            done: !1
        } : "values" == i ? {
            value: e[n],
            done: !1
        } : {
            value: [n, e[n]],
            done: !1
        }
    }), "values"), o.Arguments = o.Array, l("keys"), l("values"), l("entries")
}, function(t, e) {
    var i;
    i = function() {
        return this
    }();
    try {
        i = i || new Function("return this")()
    } catch (t) {
        "object" == typeof window && (i = window)
    }
    t.exports = i
}, function(t, e, i) {
    "use strict";
    var n, l, o = i(81),
        a = RegExp.prototype.exec,
        r = String.prototype.replace,
        s = a,
        c = (n = /a/, l = /b*/g, a.call(n, "a"), a.call(l, "a"), 0 !== n.lastIndex || 0 !== l.lastIndex),
        u = void 0 !== /()??/.exec("")[1];
    (c || u) && (s = function(t) {
        var e, i, n, l, s = this;
        return u && (i = new RegExp("^" + s.source + "$(?!\\s)", o.call(s))), c && (e = s.lastIndex), n = a.call(s, t), c && n && (s.lastIndex = s.global ? n.index + n[0].length : e), u && n && n.length > 1 && r.call(n[0], i, (function() {
            for (l = 1; l < arguments.length - 2; l++) void 0 === arguments[l] && (n[l] = void 0)
        })), n
    }), t.exports = s
}, function(t, e, i) {
    var n = i(0),
        l = i(21),
        o = n["__core-js_shared__"] || l("__core-js_shared__", {});
    t.exports = o
}, function(t, e, i) {
    var n = i(0),
        l = i(35),
        o = n.WeakMap;
    t.exports = "function" == typeof o && /native code/.test(l.call(o))
}, function(t, e, i) {
    var n = i(9).f,
        l = i(4),
        o = i(2)("toStringTag");
    t.exports = function(t, e, i) {
        t && !l(t = i ? t : t.prototype, o) && n(t, o, {
            configurable: !0,
            value: e
        })
    }
}, function(t, e) {
    t.exports = {}
}, function(t, e, i) {
    var n = i(49);
    t.exports = function(t, e, i) {
        if (n(t), void 0 === e) return t;
        switch (i) {
            case 0:
                return function() {
                    return t.call(e)
                };
            case 1:
                return function(i) {
                    return t.call(e, i)
                };
            case 2:
                return function(i, n) {
                    return t.call(e, i, n)
                };
            case 3:
                return function(i, n, l) {
                    return t.call(e, i, n, l)
                }
        }
        return function() {
            return t.apply(e, arguments)
        }
    }
}, function(t, e, i) {
    var n = i(7),
        l = i(9),
        o = i(8),
        a = i(41);
    t.exports = n ? Object.defineProperties : function(t, e) {
        o(t);
        for (var i, n = a(e), r = n.length, s = 0; r > s;) l.f(t, i = n[s++], e[i]);
        return t
    }
}, function(t, e, i) {
    var n = i(32);
    t.exports = n("document", "documentElement")
}, function(t, e, i) {
    var n = i(14),
        l = i(101),
        o = Object.prototype;
    l !== o.toString && n(o, "toString", l, {
        unsafe: !0
    })
}, function(t, e, i) {
    "use strict";
    var n, l = i(7),
        o = i(0),
        a = i(5),
        r = i(4),
        s = i(94),
        c = i(6),
        u = i(14),
        h = i(9).f,
        d = i(80),
        p = i(83),
        f = i(2),
        m = i(26),
        v = o.DataView,
        g = v && v.prototype,
        y = o.Int8Array,
        b = y && y.prototype,
        x = o.Uint8ClampedArray,
        w = x && x.prototype,
        k = y && d(y),
        S = b && d(b),
        M = Object.prototype,
        C = M.isPrototypeOf,
        T = f("toStringTag"),
        A = m("TYPED_ARRAY_TAG"),
        O = !(!o.ArrayBuffer || !v),
        P = O && !!p && "Opera" !== s(o.opera),
        E = !1,
        I = {
            Int8Array: 1,
            Uint8Array: 1,
            Uint8ClampedArray: 1,
            Int16Array: 2,
            Uint16Array: 2,
            Int32Array: 4,
            Uint32Array: 4,
            Float32Array: 4,
            Float64Array: 8
        },
        _ = function(t) {
            return a(t) && r(I, s(t))
        };
    for (n in I) o[n] || (P = !1);
    if ((!P || "function" != typeof k || k === Function.prototype) && (k = function() {
            throw TypeError("Incorrect invocation")
        }, P))
        for (n in I) o[n] && p(o[n], k);
    if ((!P || !S || S === M) && (S = k.prototype, P))
        for (n in I) o[n] && p(o[n].prototype, S);
    if (P && d(w) !== S && p(w, S), l && !r(S, T))
        for (n in E = !0, h(S, T, {
                get: function() {
                    return a(this) ? this[A] : void 0
                }
            }), I) o[n] && c(o[n], A, n);
    O && p && d(g) !== M && p(g, M), t.exports = {
        NATIVE_ARRAY_BUFFER: O,
        NATIVE_ARRAY_BUFFER_VIEWS: P,
        TYPED_ARRAY_TAG: E && A,
        aTypedArray: function(t) {
            if (_(t)) return t;
            throw TypeError("Target is not a typed array")
        },
        aTypedArrayConstructor: function(t) {
            if (p) {
                if (C.call(k, t)) return t
            } else
                for (var e in I)
                    if (r(I, n)) {
                        var i = o[e];
                        if (i && (t === i || C.call(i, t))) return t
                    } throw TypeError("Target is not a typed array constructor")
        },
        exportProto: function(t, e, i) {
            if (l) {
                if (i)
                    for (var n in I) {
                        var a = o[n];
                        a && r(a.prototype, t) && delete a.prototype[t]
                    }
                S[t] && !i || u(S, t, i ? e : P && b[t] || e)
            }
        },
        exportStatic: function(t, e, i) {
            var n, a;
            if (l) {
                if (p) {
                    if (i)
                        for (n in I)(a = o[n]) && r(a, t) && delete a[t];
                    if (k[t] && !i) return;
                    try {
                        return u(k, t, i ? e : P && y[t] || e)
                    } catch (t) {}
                }
                for (n in I) !(a = o[n]) || a[t] && !i || u(a, t, e)
            }
        },
        isView: function(t) {
            var e = s(t);
            return "DataView" === e || r(I, e)
        },
        isTypedArray: _,
        TypedArray: k,
        TypedArrayPrototype: S
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(39).indexOf,
        o = i(51),
        a = [].indexOf,
        r = !!a && 1 / [1].indexOf(1, -0) < 0,
        s = o("indexOf");
    n({
        target: "Array",
        proto: !0,
        forced: r || s
    }, {
        indexOf: function(t) {
            return r ? a.apply(this, arguments) || 0 : l(this, t, arguments.length > 1 ? arguments[1] : void 0)
        }
    })
}, function(t, e, i) {
    "use strict";
    var n = i(20),
        l = i(9),
        o = i(18);
    t.exports = function(t, e, i) {
        var a = n(e);
        a in t ? l.f(t, a, o(0, i)) : t[a] = i
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(56);
    n({
        target: "RegExp",
        proto: !0,
        forced: /./.exec !== l
    }, {
        exec: l
    })
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(0),
        o = i(30),
        a = i(7),
        r = i(47),
        s = i(1),
        c = i(4),
        u = i(31),
        h = i(5),
        d = i(8),
        p = i(16),
        f = i(10),
        m = i(20),
        v = i(18),
        g = i(33),
        y = i(41),
        b = i(29),
        x = i(103),
        w = i(44),
        k = i(22),
        S = i(9),
        M = i(40),
        C = i(6),
        T = i(14),
        A = i(12),
        O = i(24),
        P = i(19),
        E = i(26),
        I = i(2),
        _ = i(76),
        D = i(77),
        $ = i(59),
        L = i(28),
        R = i(23).forEach,
        V = O("hidden"),
        F = I("toPrimitive"),
        j = L.set,
        W = L.getterFor("Symbol"),
        H = Object.prototype,
        N = l.Symbol,
        z = l.JSON,
        B = z && z.stringify,
        Z = k.f,
        Y = S.f,
        X = x.f,
        U = M.f,
        q = A("symbols"),
        G = A("op-symbols"),
        K = A("string-to-symbol-registry"),
        Q = A("symbol-to-string-registry"),
        J = A("wks"),
        tt = l.QObject,
        et = !tt || !tt.prototype || !tt.prototype.findChild,
        it = a && s((function() {
            return 7 != g(Y({}, "a", {
                get: function() {
                    return Y(this, "a", {
                        value: 7
                    }).a
                }
            })).a
        })) ? function(t, e, i) {
            var n = Z(H, e);
            n && delete H[e], Y(t, e, i), n && t !== H && Y(H, e, n)
        } : Y,
        nt = function(t, e) {
            var i = q[t] = g(N.prototype);
            return j(i, {
                type: "Symbol",
                tag: t,
                description: e
            }), a || (i.description = e), i
        },
        lt = r && "symbol" == typeof N.iterator ? function(t) {
            return "symbol" == typeof t
        } : function(t) {
            return Object(t) instanceof N
        },
        ot = function(t, e, i) {
            t === H && ot(G, e, i), d(t);
            var n = m(e, !0);
            return d(i), c(q, n) ? (i.enumerable ? (c(t, V) && t[V][n] && (t[V][n] = !1), i = g(i, {
                enumerable: v(0, !1)
            })) : (c(t, V) || Y(t, V, v(1, {})), t[V][n] = !0), it(t, n, i)) : Y(t, n, i)
        },
        at = function(t, e) {
            d(t);
            var i = f(e),
                n = y(i).concat(ut(i));
            return R(n, (function(e) {
                a && !rt.call(i, e) || ot(t, e, i[e])
            })), t
        },
        rt = function(t) {
            var e = m(t, !0),
                i = U.call(this, e);
            return !(this === H && c(q, e) && !c(G, e)) && (!(i || !c(this, e) || !c(q, e) || c(this, V) && this[V][e]) || i)
        },
        st = function(t, e) {
            var i = f(t),
                n = m(e, !0);
            if (i !== H || !c(q, n) || c(G, n)) {
                var l = Z(i, n);
                return !l || !c(q, n) || c(i, V) && i[V][n] || (l.enumerable = !0), l
            }
        },
        ct = function(t) {
            var e = X(f(t)),
                i = [];
            return R(e, (function(t) {
                c(q, t) || c(P, t) || i.push(t)
            })), i
        },
        ut = function(t) {
            var e = t === H,
                i = X(e ? G : f(t)),
                n = [];
            return R(i, (function(t) {
                !c(q, t) || e && !c(H, t) || n.push(q[t])
            })), n
        };
    r || (T((N = function() {
        if (this instanceof N) throw TypeError("Symbol is not a constructor");
        var t = arguments.length && void 0 !== arguments[0] ? String(arguments[0]) : void 0,
            e = E(t),
            i = function(t) {
                this === H && i.call(G, t), c(this, V) && c(this[V], e) && (this[V][e] = !1), it(this, e, v(1, t))
            };
        return a && et && it(H, e, {
            configurable: !0,
            set: i
        }), nt(e, t)
    }).prototype, "toString", (function() {
        return W(this).tag
    })), M.f = rt, S.f = ot, k.f = st, b.f = x.f = ct, w.f = ut, a && (Y(N.prototype, "description", {
        configurable: !0,
        get: function() {
            return W(this).description
        }
    }), o || T(H, "propertyIsEnumerable", rt, {
        unsafe: !0
    })), _.f = function(t) {
        return nt(I(t), t)
    }), n({
        global: !0,
        wrap: !0,
        forced: !r,
        sham: !r
    }, {
        Symbol: N
    }), R(y(J), (function(t) {
        D(t)
    })), n({
        target: "Symbol",
        stat: !0,
        forced: !r
    }, {
        for: function(t) {
            var e = String(t);
            if (c(K, e)) return K[e];
            var i = N(e);
            return K[e] = i, Q[i] = e, i
        },
        keyFor: function(t) {
            if (!lt(t)) throw TypeError(t + " is not a symbol");
            if (c(Q, t)) return Q[t]
        },
        useSetter: function() {
            et = !0
        },
        useSimple: function() {
            et = !1
        }
    }), n({
        target: "Object",
        stat: !0,
        forced: !r,
        sham: !a
    }, {
        create: function(t, e) {
            return void 0 === e ? g(t) : at(g(t), e)
        },
        defineProperty: ot,
        defineProperties: at,
        getOwnPropertyDescriptor: st
    }), n({
        target: "Object",
        stat: !0,
        forced: !r
    }, {
        getOwnPropertyNames: ct,
        getOwnPropertySymbols: ut
    }), n({
        target: "Object",
        stat: !0,
        forced: s((function() {
            w.f(1)
        }))
    }, {
        getOwnPropertySymbols: function(t) {
            return w.f(p(t))
        }
    }), z && n({
        target: "JSON",
        stat: !0,
        forced: !r || s((function() {
            var t = N();
            return "[null]" != B([t]) || "{}" != B({
                a: t
            }) || "{}" != B(Object(t))
        }))
    }, {
        stringify: function(t) {
            for (var e, i, n = [t], l = 1; arguments.length > l;) n.push(arguments[l++]);
            if (i = e = n[1], (h(e) || void 0 !== t) && !lt(t)) return u(e) || (e = function(t, e) {
                if ("function" == typeof i && (e = i.call(this, t, e)), !lt(e)) return e
            }), n[1] = e, B.apply(z, n)
        }
    }), N.prototype[F] || C(N.prototype, F, N.prototype.valueOf), $(N, "Symbol"), P[V] = !0
}, function(t, e) {
    t.exports = "\t\n\v\f\r                　\u2028\u2029\ufeff"
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(7),
        o = i(0),
        a = i(4),
        r = i(5),
        s = i(9).f,
        c = i(48),
        u = o.Symbol;
    if (l && "function" == typeof u && (!("description" in u.prototype) || void 0 !== u().description)) {
        var h = {},
            d = function() {
                var t = arguments.length < 1 || void 0 === arguments[0] ? void 0 : String(arguments[0]),
                    e = this instanceof d ? new u(t) : void 0 === t ? u() : u(t);
                return "" === t && (h[e] = !0), e
            };
        c(d, u);
        var p = d.prototype = u.prototype;
        p.constructor = d;
        var f = p.toString,
            m = "Symbol(test)" == String(u("test")),
            v = /^Symbol\((.*)\)[^)]+$/;
        s(p, "description", {
            configurable: !0,
            get: function() {
                var t = r(this) ? this.valueOf() : this,
                    e = f.call(t);
                if (a(h, t)) return "";
                var i = m ? e.slice(7, -1) : e.replace(v, "$1");
                return "" === i ? void 0 : i
            }
        }), n({
            global: !0,
            forced: !0
        }, {
            Symbol: d
        })
    }
}, function(t, e, i) {
    i(77)("iterator")
}, function(t, e, i) {
    "use strict";
    var n = i(79).charAt,
        l = i(28),
        o = i(87),
        a = l.set,
        r = l.getterFor("String Iterator");
    o(String, "String", (function(t) {
        a(this, {
            type: "String Iterator",
            string: String(t),
            index: 0
        })
    }), (function() {
        var t, e = r(this),
            i = e.string,
            l = e.index;
        return l >= i.length ? {
            value: void 0,
            done: !0
        } : (t = n(i, l), e.index += t.length, {
            value: t,
            done: !1
        })
    }))
}, function(t, e, i) {
    var n = i(0),
        l = i(93),
        o = i(54),
        a = i(6),
        r = i(2),
        s = r("iterator"),
        c = r("toStringTag"),
        u = o.values;
    for (var h in l) {
        var d = n[h],
            p = d && d.prototype;
        if (p) {
            if (p[s] !== u) try {
                a(p, s, u)
            } catch (t) {
                p[s] = u
            }
            if (p[c] || a(p, c, h), l[h])
                for (var f in o)
                    if (p[f] !== o[f]) try {
                        a(p, f, o[f])
                    } catch (t) {
                        p[f] = o[f]
                    }
        }
    }
}, function(t, e) {
    (function(e) {
        t.exports = e
    }).call(this, {})
}, function(t, e, i) {
    e.f = i(2)
}, function(t, e, i) {
    var n = i(46),
        l = i(4),
        o = i(76),
        a = i(9).f;
    t.exports = function(t) {
        var e = n.Symbol || (n.Symbol = {});
        l(e, t) || a(e, t, {
            value: o.f(t)
        })
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(27),
        o = i(10),
        a = i(51),
        r = [].join,
        s = l != Object,
        c = a("join", ",");
    n({
        target: "Array",
        proto: !0,
        forced: s || c
    }, {
        join: function(t) {
            return r.call(o(this), void 0 === t ? "," : t)
        }
    })
}, function(t, e, i) {
    var n = i(15),
        l = i(13),
        o = function(t) {
            return function(e, i) {
                var o, a, r = String(l(e)),
                    s = n(i),
                    c = r.length;
                return s < 0 || s >= c ? t ? "" : void 0 : (o = r.charCodeAt(s)) < 55296 || o > 56319 || s + 1 === c || (a = r.charCodeAt(s + 1)) < 56320 || a > 57343 ? t ? r.charAt(s) : o : t ? r.slice(s, s + 2) : a - 56320 + (o - 55296 << 10) + 65536
            }
        };
    t.exports = {
        codeAt: o(!1),
        charAt: o(!0)
    }
}, function(t, e, i) {
    var n = i(4),
        l = i(16),
        o = i(24),
        a = i(105),
        r = o("IE_PROTO"),
        s = Object.prototype;
    t.exports = a ? Object.getPrototypeOf : function(t) {
        return t = l(t), n(t, r) ? t[r] : "function" == typeof t.constructor && t instanceof t.constructor ? t.constructor.prototype : t instanceof Object ? s : null
    }
}, function(t, e, i) {
    "use strict";
    var n = i(8);
    t.exports = function() {
        var t = n(this),
            e = "";
        return t.global && (e += "g"), t.ignoreCase && (e += "i"), t.multiline && (e += "m"), t.dotAll && (e += "s"), t.unicode && (e += "u"), t.sticky && (e += "y"), e
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(1),
        o = i(31),
        a = i(5),
        r = i(16),
        s = i(11),
        c = i(67),
        u = i(42),
        h = i(45),
        d = i(2)("isConcatSpreadable"),
        p = !l((function() {
            var t = [];
            return t[d] = !1, t.concat()[0] !== t
        })),
        f = h("concat"),
        m = function(t) {
            if (!a(t)) return !1;
            var e = t[d];
            return void 0 !== e ? !!e : o(t)
        };
    n({
        target: "Array",
        proto: !0,
        forced: !p || !f
    }, {
        concat: function(t) {
            var e, i, n, l, o, a = r(this),
                h = u(a, 0),
                d = 0;
            for (e = -1, n = arguments.length; e < n; e++)
                if (o = -1 === e ? a : arguments[e], m(o)) {
                    if (d + (l = s(o.length)) > 9007199254740991) throw TypeError("Maximum allowed index exceeded");
                    for (i = 0; i < l; i++, d++) i in o && c(h, d, o[i])
                } else {
                    if (d >= 9007199254740991) throw TypeError("Maximum allowed index exceeded");
                    c(h, d++, o)
                } return h.length = d, h
        }
    })
}, function(t, e, i) {
    var n = i(8),
        l = i(99);
    t.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() {
        var t, e = !1,
            i = {};
        try {
            (t = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set).call(i, []), e = i instanceof Array
        } catch (t) {}
        return function(i, o) {
            return n(i), l(o), e ? t.call(i, o) : i.__proto__ = o, i
        }
    }() : void 0)
}, function(t, e, i) {
    "use strict";
    var n = i(6),
        l = i(14),
        o = i(1),
        a = i(2),
        r = i(56),
        s = a("species"),
        c = !o((function() {
            var t = /./;
            return t.exec = function() {
                var t = [];
                return t.groups = {
                    a: "7"
                }, t
            }, "7" !== "".replace(t, "$<a>")
        })),
        u = !o((function() {
            var t = /(?:)/,
                e = t.exec;
            t.exec = function() {
                return e.apply(this, arguments)
            };
            var i = "ab".split(t);
            return 2 !== i.length || "a" !== i[0] || "b" !== i[1]
        }));
    t.exports = function(t, e, i, h) {
        var d = a(t),
            p = !o((function() {
                var e = {};
                return e[d] = function() {
                    return 7
                }, 7 != "" [t](e)
            })),
            f = p && !o((function() {
                var e = !1,
                    i = /a/;
                return i.exec = function() {
                    return e = !0, null
                }, "split" === t && (i.constructor = {}, i.constructor[s] = function() {
                    return i
                }), i[d](""), !e
            }));
        if (!p || !f || "replace" === t && !c || "split" === t && !u) {
            var m = /./ [d],
                v = i(d, "" [t], (function(t, e, i, n, l) {
                    return e.exec === r ? p && !l ? {
                        done: !0,
                        value: m.call(e, i, n)
                    } : {
                        done: !0,
                        value: t.call(i, e, n)
                    } : {
                        done: !1
                    }
                })),
                g = v[0],
                y = v[1];
            l(String.prototype, t, g), l(RegExp.prototype, d, 2 == e ? function(t, e) {
                return y.call(t, this, e)
            } : function(t) {
                return y.call(t, this)
            }), h && n(RegExp.prototype[d], "sham", !0)
        }
    }
}, function(t, e, i) {
    var n = i(17),
        l = i(56);
    t.exports = function(t, e) {
        var i = t.exec;
        if ("function" == typeof i) {
            var o = i.call(t, e);
            if ("object" != typeof o) throw TypeError("RegExp exec method returned something other than an Object or null");
            return o
        }
        if ("RegExp" !== n(t)) throw TypeError("RegExp#exec called on incompatible receiver");
        return l.call(t, e)
    }
}, function(t, e, i) {
    "use strict";
    var n = i(84),
        l = i(8),
        o = i(16),
        a = i(11),
        r = i(15),
        s = i(13),
        c = i(92),
        u = i(85),
        h = Math.max,
        d = Math.min,
        p = Math.floor,
        f = /\$([$&'`]|\d\d?|<[^>]*>)/g,
        m = /\$([$&'`]|\d\d?)/g;
    n("replace", 2, (function(t, e, i) {
        return [function(i, n) {
            var l = s(this),
                o = null == i ? void 0 : i[t];
            return void 0 !== o ? o.call(i, l, n) : e.call(String(l), i, n)
        }, function(t, o) {
            var s = i(e, t, this, o);
            if (s.done) return s.value;
            var p = l(t),
                f = String(this),
                m = "function" == typeof o;
            m || (o = String(o));
            var v = p.global;
            if (v) {
                var g = p.unicode;
                p.lastIndex = 0
            }
            for (var y = [];;) {
                var b = u(p, f);
                if (null === b) break;
                if (y.push(b), !v) break;
                "" === String(b[0]) && (p.lastIndex = c(f, a(p.lastIndex), g))
            }
            for (var x, w = "", k = 0, S = 0; S < y.length; S++) {
                b = y[S];
                for (var M = String(b[0]), C = h(d(r(b.index), f.length), 0), T = [], A = 1; A < b.length; A++) T.push(void 0 === (x = b[A]) ? x : String(x));
                var O = b.groups;
                if (m) {
                    var P = [M].concat(T, C, f);
                    void 0 !== O && P.push(O);
                    var E = String(o.apply(void 0, P))
                } else E = n(M, f, C, T, O, o);
                C >= k && (w += f.slice(k, C) + E, k = C + M.length)
            }
            return w + f.slice(k)
        }];

        function n(t, i, n, l, a, r) {
            var s = n + t.length,
                c = l.length,
                u = m;
            return void 0 !== a && (a = o(a), u = f), e.call(r, u, (function(e, o) {
                var r;
                switch (o.charAt(0)) {
                    case "$":
                        return "$";
                    case "&":
                        return t;
                    case "`":
                        return i.slice(0, n);
                    case "'":
                        return i.slice(s);
                    case "<":
                        r = a[o.slice(1, -1)];
                        break;
                    default:
                        var u = +o;
                        if (0 === u) return e;
                        if (u > c) {
                            var h = p(u / 10);
                            return 0 === h ? e : h <= c ? void 0 === l[h - 1] ? o.charAt(1) : l[h - 1] + o.charAt(1) : e
                        }
                        r = l[u - 1]
                }
                return void 0 === r ? "" : r
            }))
        }
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(104),
        o = i(80),
        a = i(83),
        r = i(59),
        s = i(6),
        c = i(14),
        u = i(2),
        h = i(30),
        d = i(60),
        p = i(88),
        f = p.IteratorPrototype,
        m = p.BUGGY_SAFARI_ITERATORS,
        v = u("iterator"),
        g = function() {
            return this
        };
    t.exports = function(t, e, i, u, p, y, b) {
        l(i, e, u);
        var x, w, k, S = function(t) {
                if (t === p && O) return O;
                if (!m && t in T) return T[t];
                switch (t) {
                    case "keys":
                    case "values":
                    case "entries":
                        return function() {
                            return new i(this, t)
                        }
                }
                return function() {
                    return new i(this)
                }
            },
            M = e + " Iterator",
            C = !1,
            T = t.prototype,
            A = T[v] || T["@@iterator"] || p && T[p],
            O = !m && A || S(p),
            P = "Array" == e && T.entries || A;
        if (P && (x = o(P.call(new t)), f !== Object.prototype && x.next && (h || o(x) === f || (a ? a(x, f) : "function" != typeof x[v] && s(x, v, g)), r(x, M, !0, !0), h && (d[M] = g))), "values" == p && A && "values" !== A.name && (C = !0, O = function() {
                return A.call(this)
            }), h && !b || T[v] === O || s(T, v, O), d[e] = O, p)
            if (w = {
                    values: S("values"),
                    keys: y ? O : S("keys"),
                    entries: S("entries")
                }, b)
                for (k in w) !m && !C && k in T || c(T, k, w[k]);
            else n({
                target: e,
                proto: !0,
                forced: m || C
            }, w);
        return w
    }
}, function(t, e, i) {
    "use strict";
    var n, l, o, a = i(80),
        r = i(6),
        s = i(4),
        c = i(2),
        u = i(30),
        h = c("iterator"),
        d = !1;
    [].keys && ("next" in (o = [].keys()) ? (l = a(a(o))) !== Object.prototype && (n = l) : d = !0), null == n && (n = {}), u || s(n, h) || r(n, h, (function() {
        return this
    })), t.exports = {
        IteratorPrototype: n,
        BUGGY_SAFARI_ITERATORS: d
    }
}, function(t, e, i) {
    var n = i(14),
        l = Date.prototype,
        o = l.toString,
        a = l.getTime;
    new Date(NaN) + "" != "Invalid Date" && n(l, "toString", (function() {
        var t = a.call(this);
        return t == t ? o.call(this) : "Invalid Date"
    }))
}, function(t, e, i) {
    var n = i(13),
        l = "[" + i(70) + "]",
        o = RegExp("^" + l + l + "*"),
        a = RegExp(l + l + "*$"),
        r = function(t) {
            return function(e) {
                var i = String(n(e));
                return 1 & t && (i = i.replace(o, "")), 2 & t && (i = i.replace(a, "")), i
            }
        };
    t.exports = {
        start: r(1),
        end: r(2),
        trim: r(3)
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(23).filter;
    n({
        target: "Array",
        proto: !0,
        forced: !i(45)("filter")
    }, {
        filter: function(t) {
            return l(this, t, arguments.length > 1 ? arguments[1] : void 0)
        }
    })
}, function(t, e, i) {
    "use strict";
    var n = i(79).charAt;
    t.exports = function(t, e, i) {
        return e + (i ? n(t, e).length : 1)
    }
}, function(t, e) {
    t.exports = {
        CSSRuleList: 0,
        CSSStyleDeclaration: 0,
        CSSValueList: 0,
        ClientRectList: 0,
        DOMRectList: 0,
        DOMStringList: 0,
        DOMTokenList: 1,
        DataTransferItemList: 0,
        FileList: 0,
        HTMLAllCollection: 0,
        HTMLCollection: 0,
        HTMLFormElement: 0,
        HTMLSelectElement: 0,
        MediaList: 0,
        MimeTypeArray: 0,
        NamedNodeMap: 0,
        NodeList: 1,
        PaintRequestList: 0,
        Plugin: 0,
        PluginArray: 0,
        SVGLengthList: 0,
        SVGNumberList: 0,
        SVGPathSegList: 0,
        SVGPointList: 0,
        SVGStringList: 0,
        SVGTransformList: 0,
        SourceBufferList: 0,
        StyleSheetList: 0,
        TextTrackCueList: 0,
        TextTrackList: 0,
        TouchList: 0
    }
}, function(t, e, i) {
    var n = i(17),
        l = i(2)("toStringTag"),
        o = "Arguments" == n(function() {
            return arguments
        }());
    t.exports = function(t) {
        var e, i, a;
        return void 0 === t ? "Undefined" : null === t ? "Null" : "string" == typeof(i = function(t, e) {
            try {
                return t[e]
            } catch (t) {}
        }(e = Object(t), l)) ? i : o ? n(e) : "Object" == (a = n(e)) && "function" == typeof e.callee ? "Arguments" : a
    }
}, function(t, e) {
    t.exports = function(t) {
        if (!t.webpackPolyfill) {
            var e = Object.create(t);
            e.children || (e.children = []), Object.defineProperty(e, "loaded", {
                enumerable: !0,
                get: function() {
                    return e.l
                }
            }), Object.defineProperty(e, "id", {
                enumerable: !0,
                get: function() {
                    return e.i
                }
            }), Object.defineProperty(e, "exports", {
                enumerable: !0
            }), e.webpackPolyfill = 1
        }
        return e
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(23).map;
    n({
        target: "Array",
        proto: !0,
        forced: !i(45)("map")
    }, {
        map: function(t) {
            return l(this, t, arguments.length > 1 ? arguments[1] : void 0)
        }
    })
}, function(t, e, i) {
    "use strict";
    var n = i(14),
        l = i(8),
        o = i(1),
        a = i(81),
        r = RegExp.prototype,
        s = r.toString,
        c = o((function() {
            return "/a/b" != s.call({
                source: "a",
                flags: "b"
            })
        })),
        u = "toString" != s.name;
    (c || u) && n(RegExp.prototype, "toString", (function() {
        var t = l(this),
            e = String(t.source),
            i = t.flags;
        return "/" + e + "/" + String(void 0 === i && t instanceof RegExp && !("flags" in r) ? a.call(t) : i)
    }), {
        unsafe: !0
    })
}, function(t, e, i) {
    "use strict";
    var n = i(84),
        l = i(102),
        o = i(8),
        a = i(13),
        r = i(106),
        s = i(92),
        c = i(11),
        u = i(85),
        h = i(56),
        d = i(1),
        p = [].push,
        f = Math.min,
        m = !d((function() {
            return !RegExp(4294967295, "y")
        }));
    n("split", 2, (function(t, e, i) {
        var n;
        return n = "c" == "abbc".split(/(b)*/)[1] || 4 != "test".split(/(?:)/, -1).length || 2 != "ab".split(/(?:ab)*/).length || 4 != ".".split(/(.?)(.?)/).length || ".".split(/()()/).length > 1 || "".split(/.?/).length ? function(t, i) {
            var n = String(a(this)),
                o = void 0 === i ? 4294967295 : i >>> 0;
            if (0 === o) return [];
            if (void 0 === t) return [n];
            if (!l(t)) return e.call(n, t, o);
            for (var r, s, c, u = [], d = (t.ignoreCase ? "i" : "") + (t.multiline ? "m" : "") + (t.unicode ? "u" : "") + (t.sticky ? "y" : ""), f = 0, m = new RegExp(t.source, d + "g");
                (r = h.call(m, n)) && !((s = m.lastIndex) > f && (u.push(n.slice(f, r.index)), r.length > 1 && r.index < n.length && p.apply(u, r.slice(1)), c = r[0].length, f = s, u.length >= o));) m.lastIndex === r.index && m.lastIndex++;
            return f === n.length ? !c && m.test("") || u.push("") : u.push(n.slice(f)), u.length > o ? u.slice(0, o) : u
        } : "0".split(void 0, 0).length ? function(t, i) {
            return void 0 === t && 0 === i ? [] : e.call(this, t, i)
        } : e, [function(e, i) {
            var l = a(this),
                o = null == e ? void 0 : e[t];
            return void 0 !== o ? o.call(e, l, i) : n.call(String(l), e, i)
        }, function(t, l) {
            var a = i(n, t, this, l, n !== e);
            if (a.done) return a.value;
            var h = o(t),
                d = String(this),
                p = r(h, RegExp),
                v = h.unicode,
                g = (h.ignoreCase ? "i" : "") + (h.multiline ? "m" : "") + (h.unicode ? "u" : "") + (m ? "y" : "g"),
                y = new p(m ? h : "^(?:" + h.source + ")", g),
                b = void 0 === l ? 4294967295 : l >>> 0;
            if (0 === b) return [];
            if (0 === d.length) return null === u(y, d) ? [d] : [];
            for (var x = 0, w = 0, k = []; w < d.length;) {
                y.lastIndex = m ? w : 0;
                var S, M = u(y, m ? d : d.slice(w));
                if (null === M || (S = f(c(y.lastIndex + (m ? 0 : w)), d.length)) === x) w = s(d, w, v);
                else {
                    if (k.push(d.slice(x, w)), k.length === b) return k;
                    for (var C = 1; C <= M.length - 1; C++)
                        if (k.push(M[C]), k.length === b) return k;
                    w = x = S
                }
            }
            return k.push(d.slice(x)), k
        }]
    }), !m)
}, function(t, e, i) {
    var n = i(5);
    t.exports = function(t) {
        if (!n(t) && null !== t) throw TypeError("Can't set " + String(t) + " as a prototype");
        return t
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(5),
        o = i(31),
        a = i(38),
        r = i(11),
        s = i(10),
        c = i(67),
        u = i(45),
        h = i(2)("species"),
        d = [].slice,
        p = Math.max;
    n({
        target: "Array",
        proto: !0,
        forced: !u("slice")
    }, {
        slice: function(t, e) {
            var i, n, u, f = s(this),
                m = r(f.length),
                v = a(t, m),
                g = a(void 0 === e ? m : e, m);
            if (o(f) && ("function" != typeof(i = f.constructor) || i !== Array && !o(i.prototype) ? l(i) && null === (i = i[h]) && (i = void 0) : i = void 0, i === Array || void 0 === i)) return d.call(f, v, g);
            for (n = new(void 0 === i ? Array : i)(p(g - v, 0)), u = 0; v < g; v++, u++) v in f && c(n, u, f[v]);
            return n.length = u, n
        }
    })
}, function(t, e, i) {
    "use strict";
    var n = i(94),
        l = {};
    l[i(2)("toStringTag")] = "z", t.exports = "[object z]" !== String(l) ? function() {
        return "[object " + n(this) + "]"
    } : l.toString
}, function(t, e, i) {
    var n = i(5),
        l = i(17),
        o = i(2)("match");
    t.exports = function(t) {
        var e;
        return n(t) && (void 0 !== (e = t[o]) ? !!e : "RegExp" == l(t))
    }
}, function(t, e, i) {
    var n = i(10),
        l = i(29).f,
        o = {}.toString,
        a = "object" == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
    t.exports.f = function(t) {
        return a && "[object Window]" == o.call(t) ? function(t) {
            try {
                return l(t)
            } catch (t) {
                return a.slice()
            }
        }(t) : l(n(t))
    }
}, function(t, e, i) {
    "use strict";
    var n = i(88).IteratorPrototype,
        l = i(33),
        o = i(18),
        a = i(59),
        r = i(60),
        s = function() {
            return this
        };
    t.exports = function(t, e, i) {
        var c = e + " Iterator";
        return t.prototype = l(n, {
            next: o(1, i)
        }), a(t, c, !1, !0), r[c] = s, t
    }
}, function(t, e, i) {
    var n = i(1);
    t.exports = !n((function() {
        function t() {}
        return t.prototype.constructor = null, Object.getPrototypeOf(new t) !== t.prototype
    }))
}, function(t, e, i) {
    var n = i(8),
        l = i(49),
        o = i(2)("species");
    t.exports = function(t, e) {
        var i, a = n(t).constructor;
        return void 0 === a || null == (i = n(a)[o]) ? e : l(i)
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(110);
    n({
        target: "Array",
        proto: !0,
        forced: [].forEach != l
    }, {
        forEach: l
    })
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(38),
        o = i(15),
        a = i(11),
        r = i(16),
        s = i(42),
        c = i(67),
        u = i(45),
        h = Math.max,
        d = Math.min;
    n({
        target: "Array",
        proto: !0,
        forced: !u("splice")
    }, {
        splice: function(t, e) {
            var i, n, u, p, f, m, v = r(this),
                g = a(v.length),
                y = l(t, g),
                b = arguments.length;
            if (0 === b ? i = n = 0 : 1 === b ? (i = 0, n = g - y) : (i = b - 2, n = d(h(o(e), 0), g - y)), g + i - n > 9007199254740991) throw TypeError("Maximum allowed length exceeded");
            for (u = s(v, n), p = 0; p < n; p++)(f = y + p) in v && c(u, p, v[f]);
            if (u.length = n, i < n) {
                for (p = y; p < g - n; p++) m = p + i, (f = p + n) in v ? v[m] = v[f] : delete v[m];
                for (p = g; p > g - n + i; p--) delete v[p - 1]
            } else if (i > n)
                for (p = g - n; p > y; p--) m = p + i - 1, (f = p + n - 1) in v ? v[m] = v[f] : delete v[m];
            for (p = 0; p < i; p++) v[p + y] = arguments[p + 2];
            return v.length = g - n + i, u
        }
    })
}, function(t, e, i) {
    var n = i(0),
        l = i(93),
        o = i(110),
        a = i(6);
    for (var r in l) {
        var s = n[r],
            c = s && s.prototype;
        if (c && c.forEach !== o) try {
            a(c, "forEach", o)
        } catch (t) {
            c.forEach = o
        }
    }
}, function(t, e, i) {
    "use strict";
    var n = i(23).forEach,
        l = i(51);
    t.exports = l("forEach") ? function(t) {
        return n(this, t, arguments.length > 1 ? arguments[1] : void 0)
    } : [].forEach
}, function(t, e, i) {
    "use strict";
    var n = i(7),
        l = i(0),
        o = i(50),
        a = i(14),
        r = i(4),
        s = i(17),
        c = i(114),
        u = i(20),
        h = i(1),
        d = i(33),
        p = i(29).f,
        f = i(22).f,
        m = i(9).f,
        v = i(90).trim,
        g = l.Number,
        y = g.prototype,
        b = "Number" == s(d(y)),
        x = function(t) {
            var e, i, n, l, o, a, r, s, c = u(t, !1);
            if ("string" == typeof c && c.length > 2)
                if (43 === (e = (c = v(c)).charCodeAt(0)) || 45 === e) {
                    if (88 === (i = c.charCodeAt(2)) || 120 === i) return NaN
                } else if (48 === e) {
                switch (c.charCodeAt(1)) {
                    case 66:
                    case 98:
                        n = 2, l = 49;
                        break;
                    case 79:
                    case 111:
                        n = 8, l = 55;
                        break;
                    default:
                        return +c
                }
                for (a = (o = c.slice(2)).length, r = 0; r < a; r++)
                    if ((s = o.charCodeAt(r)) < 48 || s > l) return NaN;
                return parseInt(o, n)
            }
            return +c
        };
    if (o("Number", !g(" 0o1") || !g("0b1") || g("+0x1"))) {
        for (var w, k = function(t) {
                var e = arguments.length < 1 ? 0 : t,
                    i = this;
                return i instanceof k && (b ? h((function() {
                    y.valueOf.call(i)
                })) : "Number" != s(i)) ? c(new g(x(e)), i, k) : x(e)
            }, S = n ? p(g) : "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","), M = 0; S.length > M; M++) r(g, w = S[M]) && !r(k, w) && m(k, w, f(g, w));
        k.prototype = y, y.constructor = k, a(l, "Number", k)
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(90).trim;
    n({
        target: "String",
        proto: !0,
        forced: i(120)("trim")
    }, {
        trim: function() {
            return l(this)
        }
    })
}, function(t, e, i) {
    var n = i(3),
        l = i(16),
        o = i(41);
    n({
        target: "Object",
        stat: !0,
        forced: i(1)((function() {
            o(1)
        }))
    }, {
        keys: function(t) {
            return o(l(t))
        }
    })
}, function(t, e, i) {
    var n = i(5),
        l = i(83);
    t.exports = function(t, e, i) {
        var o, a;
        return l && "function" == typeof(o = e.constructor) && o !== i && n(a = o.prototype) && a !== i.prototype && l(t, a), t
    }
}, function(t, e, i) {
    var n = i(3),
        l = i(124);
    n({
        global: !0,
        forced: parseFloat != l
    }, {
        parseFloat: l
    })
}, function(t, e) {
    t.exports = jQuery
}, function(t, e, i) {
    "use strict";
    var n = i(84),
        l = i(8),
        o = i(11),
        a = i(13),
        r = i(92),
        s = i(85);
    n("match", 1, (function(t, e, i) {
        return [function(e) {
            var i = a(this),
                n = null == e ? void 0 : e[t];
            return void 0 !== n ? n.call(e, i) : new RegExp(e)[t](String(i))
        }, function(t) {
            var n = i(e, t, this);
            if (n.done) return n.value;
            var a = l(t),
                c = String(this);
            if (!a.global) return s(a, c);
            var u = a.unicode;
            a.lastIndex = 0;
            for (var h, d = [], p = 0; null !== (h = s(a, c));) {
                var f = String(h[0]);
                d[p] = f, "" === f && (a.lastIndex = r(c, o(a.lastIndex), u)), p++
            }
            return 0 === p ? null : d
        }]
    }))
}, function(t, e, i) {
    var n = i(7),
        l = i(9).f,
        o = Function.prototype,
        a = o.toString,
        r = /^\s*function ([^ (]*)/;
    !n || "name" in o || l(o, "name", {
        configurable: !0,
        get: function() {
            try {
                return a.call(this).match(r)[1]
            } catch (t) {
                return ""
            }
        }
    })
}, function(t, e, i) {
    var n = i(3),
        l = i(137);
    n({
        global: !0,
        forced: parseInt != l
    }, {
        parseInt: l
    })
}, function(t, e, i) {
    var n = i(1),
        l = i(70);
    t.exports = function(t) {
        return n((function() {
            return !!l[t]() || "​᠎" != "​᠎" [t]() || l[t].name !== t
        }))
    }
}, function(t, e, i) {
    "use strict";
    i.r(e), i.d(e, "default", (function() {
        return l
    }));
    i(82), i(91), i(43), i(66), i(78), i(68), i(86), i(98), i(112);

    function n(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }
    var l = function() {
        function t(e) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.view = e
        }
        var e, i, l;
        return e = t, (i = [{
            key: "destroy",
            value: function() {
                var t = this.view.$nativeSelect.data("select-id");
                this.view.$nativeSelect.data("select-id", null).removeClass("initialized"), this.view.$nativeSelect.parent().find("span.caret").remove(), this.view.$nativeSelect.parent().find("input").remove(), this.view.$nativeSelect.hasClass("select-wrapper") && this.view.$nativeSelect.find("select").unwrap(), $("ul#select-options-".concat(t)).remove()
            }
        }, {
            key: "render",
            value: function() {
                this.setWrapperClasses(), this.setMaterialSelectInitialValue(), this.view.$nativeSelect.data("select-id", this.view.properties.id), this.view.$nativeSelect.before(this.view.$selectWrapper), this.view.options.showResetButton && this.appendResetButton(), this.appendDropdownIcon(), this.appendMaterialSelect(), this.appendMaterialOptionsList(), this.appendNativeSelect(), this.appendSelectLabel(), this.appendCustomTemplateParts(), this.shouldValidate && this.appendValidationFeedbackElements(), this.isRequired && this.enableValidation(), this.isDisabled || (this.setMaterialOptionsListMaxHeight(), this.view.dropdown = this.view.$materialSelect.dropdown({
                    hover: !1,
                    closeOnClick: !1,
                    resetScroll: !1
                })), this.shouldInheritTabindex && this.view.$materialSelect.attr("tabindex", this.view.$nativeSelect.attr("tabindex")), this.isDefaultMaterialInput && this.view.$mainLabel.css("top", "-7px"), this.isCustomSelect && this.view.$materialSelect.css({
                    display: "inline-block",
                    width: "100%",
                    height: "calc(1.5em + .75rem + 2px)",
                    padding: ".375rem 1.75rem .375rem .75rem",
                    fontSize: "1rem",
                    lineHeight: "1.5",
                    backgroundColor: "#fff",
                    border: "1px solid #ced4da"
                }), this.addAccessibilityAttributes(), this.markInitialized()
            }
        }, {
            key: "setWrapperClasses",
            value: function() {
                this.isDefaultMaterialInput ? this.view.$selectWrapper.addClass(this.view.$nativeSelect.attr("class").split(" ").filter((function(t) {
                    return "md-form" !== t
                })).join(" ")).css({
                    marginTop: "1.5rem",
                    marginBottom: "1.5rem"
                }) : this.view.$selectWrapper.addClass(this.view.$nativeSelect.attr("class"))
            }
        }, {
            key: "setMaterialSelectInitialValue",
            value: function() {
                if (this.view.options.placeholder) this.view.$materialSelect.attr("placeholder", this.view.options.placeholder), this.view.$nativeSelect.find('option[value=""][selected][disabled][data-mdb-placeholder]').length || this.view.$nativeSelect.prepend('<option value="" selected disabled data-mdb-placeholder></option>');
                else {
                    var t = this.view.$materialSelectInitialOption.replace(/"/g, "&quot;").replace(/  +/g, " ").trim();
                    this.view.$materialSelect.val(t)
                }
            }
        }, {
            key: "appendDropdownIcon",
            value: function() {
                this.isDisabled && this.view.$dropdownIcon.addClass("disabled"), this.view.$selectWrapper.append(this.view.$dropdownIcon)
            }
        }, {
            key: "appendResetButton",
            value: function() {
                this.isDisabled && this.view.$btnReset.addClass("disabled"), -1 === this.view.$nativeSelect.get(0).selectedIndex && this.view.$btnReset.hide(), this.view.$selectWrapper.append(this.view.$btnReset)
            }
        }, {
            key: "appendMaterialSelect",
            value: function() {
                this.view.$selectWrapper.append(this.view.$materialSelect)
            }
        }, {
            key: "appendMaterialOptionsList",
            value: function() {
                this.isSearchable && this.appendSearchInputOption(), this.isEditable && this.isSearchable && this.appendAddOptionBtn(), this.buildMaterialOptions(), this.isMultiple && this.appendToggleAllCheckbox(), this.view.$selectWrapper.append(this.view.$materialOptionsList)
            }
        }, {
            key: "appendNativeSelect",
            value: function() {
                this.view.$nativeSelect.appendTo(this.view.$selectWrapper)
            }
        }, {
            key: "appendSelectLabel",
            value: function() {
                (this.view.$materialSelect.val() || this.view.options.placeholder) && this.view.$mainLabel.addClass("active"), this.view.$mainLabel[this.isDisabled ? "addClass" : "removeClass"]("disabled"), this.view.$mainLabel.appendTo(this.view.$selectWrapper)
            }
        }, {
            key: "appendCustomTemplateParts",
            value: function() {
                var t = this;
                this.view.$customTemplateParts.each((function(e, i) {
                    $(i).appendTo(t.view.$materialOptionsList).wrap("<li></li>")
                })), this.view.$btnSave.appendTo(this.view.$selectWrapper).clone().appendTo(this.view.$materialOptionsList)
            }
        }, {
            key: "appendValidationFeedbackElements",
            value: function() {
                this.view.$validFeedback.insertAfter(this.view.$selectWrapper), this.view.$invalidFeedback.insertAfter(this.view.$selectWrapper)
            }
        }, {
            key: "enableValidation",
            value: function() {
                this.view.$nativeSelect.css({
                    position: "absolute",
                    top: "1rem",
                    left: "0",
                    height: "0",
                    width: "0",
                    opacity: "0",
                    padding: "0",
                    "pointer-events": "none"
                }), -1 === this.view.$nativeSelect.attr("style").indexOf("inline!important") && this.view.$nativeSelect.attr("style", "".concat(this.view.$nativeSelect.attr("style"), " display: inline!important;")), this.view.$nativeSelect.attr("tabindex", -1), this.view.$nativeSelect.data("inherit-tabindex", !1)
            }
        }, {
            key: "setMaterialOptionsListMaxHeight",
            value: function() {
                var t = $("<div />").appendTo($("body"));
                t.css({
                    position: "absolute !important",
                    visibility: "hidden !important",
                    display: "block !important"
                }), this.view.$materialOptionsList.show();
                var e = this.view.$materialOptionsList.clone().appendTo(t),
                    i = this.view.options.visibleOptions,
                    n = 0,
                    l = e.find("li").not(".disabled"),
                    o = "" === l.first().text().trim() ? l.eq(1).height() : l.first().height(),
                    a = l.length;
                if (this.isSearchable && (n += this.view.$searchInput.height()), this.isMultiple && (n += this.view.$toggleAll.height()), this.view.$materialOptionsList.hide(), t.remove(), i >= 0 && i < a) {
                    var r = o * i + n;
                    this.view.$materialOptionsList.css("max-height", r), this.view.$materialSelect.data("maxheight", r)
                }
            }
        }, {
            key: "addAccessibilityAttributes",
            value: function() {
                this.view.$materialSelect.attr({
                    role: this.isSearchable ? "combobox" : "listbox",
                    "aria-multiselectable": this.isMultiple,
                    "aria-disabled": this.isDisabled,
                    "aria-required": this.isRequired,
                    "aria-labelledby": this.view.$mainLabel.attr("id"),
                    "aria-haspopup": !0,
                    "aria-expanded": !1
                }), this.view.$searchInput && this.view.$searchInput.attr("role", "searchbox"), this.view.$materialOptionsList.find("li").each((function() {
                    var t = $(this);
                    t.attr({
                        role: "option",
                        "aria-selected": t.hasClass("active"),
                        "aria-disabled": t.hasClass("disabled")
                    })
                }))
            }
        }, {
            key: "markInitialized",
            value: function() {
                this.view.$nativeSelect.addClass("initialized")
            }
        }, {
            key: "appendSearchInputOption",
            value: function() {
                var t = this.view.$nativeSelect.attr("searchable"),
                    e = this.isDefaultMaterialInput ? "" : "md-form",
                    i = this.isDefaultMaterialInput ? "select-default mb-2" : "";
                this.view.$searchInput = $('<span class="search-wrap ml-2"><div class="'.concat(e, ' mt-0"><input type="text" class="search w-100 d-block ').concat(i, '" tabindex="-1" placeholder="').concat(t, '"></div></span>')), this.view.$materialOptionsList.append(this.view.$searchInput), this.view.$searchInput.on("click", (function(t) {
                    return t.stopPropagation()
                }))
            }
        }, {
            key: "appendAddOptionBtn",
            value: function() {
                this.view.$searchInput.append(this.view.$addOptionBtn)
            }
        }, {
            key: "buildMaterialOptions",
            value: function() {
                var t = this;
                this.view.$nativeSelectChildren.each((function(e, i) {
                    var n = $(i);
                    if (n.is("option")) t.buildSingleOption(n, t.isMultiple ? "multiple" : "");
                    else if (n.is("optgroup")) {
                        var l = $('<li class="optgroup"><span>'.concat(n.attr("label"), "</span></li>"));
                        t.view.$materialOptionsList.append(l), n.children("option").each((function(e, i) {
                            t.buildSingleOption($(i), "optgroup-option")
                        }))
                    }
                }))
            }
        }, {
            key: "appendToggleAllCheckbox",
            value: function() {
                var t = this.view.$materialOptionsList.find("li").first();
                t.hasClass("disabled") && t.find("input").prop("disabled") ? t.after(this.view.$toggleAll) : this.view.$materialOptionsList.find("li").first().before(this.view.$toggleAll)
            }
        }, {
            key: "addNewOption",
            value: function() {
                var t = this.view.$searchInput.find("input").val(),
                    e = $('<option value="'.concat(t.toLowerCase(), '" selected>').concat(t, "</option>")).prop("selected", !0);
                this.isMultiple || this.view.$nativeSelectChildren.each((function(t, e) {
                    $(e).attr("selected", !1)
                })), this.view.$nativeSelect.append(e)
            }
        }, {
            key: "buildSingleOption",
            value: function(t, e) {
                var i = t.is(":disabled") ? "disabled" : "",
                    n = t.is(":selected") ? "active" : "",
                    l = "optgroup-option" === e ? "optgroup-option" : "",
                    o = t.data("icon"),
                    a = t.data("fas") ? '<i class="fa-pull-right m-2 fas fa-'.concat(t.data("fas"), " ").concat(this.view.options.fasClasses, '"></i> ') : "",
                    r = t.data("far") ? '<i class="fa-pull-right m-2 far fa-'.concat(t.data("far"), " ").concat(this.view.options.farClasses, '"></i> ') : "",
                    s = t.data("fab") ? '<i class="fa-pull-right m-2 fab fa-'.concat(t.data("fab"), " ").concat(this.view.options.fabClasses, '"></i> ') : "",
                    c = t.attr("class"),
                    u = o ? '<img alt="" src="'.concat(o, '" class="').concat(c, '">') : "",
                    h = this.isMultiple ? '<input type="checkbox" class="form-check-input" '.concat(i, "/><label></label>") : "",
                    d = t.data("secondary-text") ? '<p class="text-muted pt-0 mb-0" disabled>'.concat(t.data("secondary-text"), "</p>") : "";
                this.view.$materialOptionsList.append($('<li class="'.concat(i, " ").concat(n, " ").concat(l, '">').concat(u, '<span class="filtrable ').concat(this.view.options.copyClassesOption ? c : "", '">').concat(h, " ").concat(t.html(), " ").concat(a, " ").concat(r, " ").concat(s, " ").concat(d, "</span></li>")))
            }
        }, {
            key: "shouldValidate",
            get: function() {
                return this.view.options.validate
            }
        }, {
            key: "shouldInheritTabindex",
            get: function() {
                return !1 !== this.view.$nativeSelect.data("inherit-tabindex")
            }
        }, {
            key: "isMultiple",
            get: function() {
                return this.view.isMultiple
            }
        }, {
            key: "isSearchable",
            get: function() {
                return this.view.isSearchable
            }
        }, {
            key: "isRequired",
            get: function() {
                return this.view.isRequired
            }
        }, {
            key: "isEditable",
            get: function() {
                return this.view.isEditable
            }
        }, {
            key: "isDisabled",
            get: function() {
                return this.view.isDisabled
            }
        }, {
            key: "isDefaultMaterialInput",
            get: function() {
                return this.view.options.defaultMaterialInput
            }
        }, {
            key: "isCustomSelect",
            get: function() {
                return this.view.$materialSelect.hasClass("custom-select") && this.view.$materialSelect.hasClass("select-dropdown")
            }
        }]) && n(e.prototype, i), l && n(e, l), t
    }()
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(39).includes,
        o = i(52);
    n({
        target: "Array",
        proto: !0
    }, {
        includes: function(t) {
            return l(this, t, arguments.length > 1 ? arguments[1] : void 0)
        }
    }), o("includes")
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(129),
        o = i(13);
    n({
        target: "String",
        proto: !0,
        forced: !i(130)("includes")
    }, {
        includes: function(t) {
            return !!~String(o(this)).indexOf(l(t), arguments.length > 1 ? arguments[1] : void 0)
        }
    })
}, function(t, e, i) {
    var n = i(0),
        l = i(90).trim,
        o = i(70),
        a = n.parseFloat,
        r = 1 / a(o + "-0") != -1 / 0;
    t.exports = r ? function(t) {
        var e = l(String(t)),
            i = a(e);
        return 0 === i && "-" == e.charAt(0) ? -0 : i
    } : a
}, function(t, e, i) {
    var n = i(49),
        l = i(16),
        o = i(27),
        a = i(11),
        r = function(t) {
            return function(e, i, r, s) {
                n(i);
                var c = l(e),
                    u = o(c),
                    h = a(c.length),
                    d = t ? h - 1 : 0,
                    p = t ? -1 : 1;
                if (r < 2)
                    for (;;) {
                        if (d in u) {
                            s = u[d], d += p;
                            break
                        }
                        if (d += p, t ? d < 0 : h <= d) throw TypeError("Reduce of empty array with no initial value")
                    }
                for (; t ? d >= 0 : h > d; d += p) d in u && (s = i(s, u[d], d, c));
                return s
            }
        };
    t.exports = {
        left: r(!1),
        right: r(!0)
    }
}, function(t, e, i) {
    "use strict";
    i.r(e), i.d(e, "default", (function() {
        return o
    }));
    i(82), i(91), i(43), i(122), i(66), i(96), i(113), i(68), i(123), i(86), i(112);
    var n = i(121);

    function l(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }
    var o = function() {
        function t(e, i) {
            var l = i.options,
                o = i.properties.id;
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.properties = {
                id: o,
                isMultiple: Boolean(e.attr("multiple")),
                isSearchable: Boolean(e.attr("searchable")),
                isRequired: Boolean(e.attr("required")),
                isEditable: Boolean(e.attr("editable"))
            }, this.options = this._copyOptions(l), this.$nativeSelect = e, this.$selectWrapper = $('<div class="select-wrapper"></div>'), this.$materialOptionsList = $('<ul id="select-options-'.concat(this.properties.id, '" class="dropdown-content select-dropdown w-100 ').concat(this.properties.isMultiple ? "multiple-select-dropdown" : "", '"></ul>')), this.$materialSelectInitialOption = e.find("option:selected").text() || e.find("option:first").text() || "", this.$nativeSelectChildren = this.$nativeSelect.children("option, optgroup"), this.$materialSelect = $('<input type="text" class="'.concat(this.options.defaultMaterialInput ? "browser-default custom-select multi-bs-select select-dropdown form-control" : "select-dropdown form-control", '" ').concat(!this.options.validate && 'readonly="true"', ' required="').concat(this.options.validate ? "true" : "false", '" ').concat(this.$nativeSelect.is(" :disabled") ? "disabled" : "", ' data-activates="select-options-').concat(this.properties.id, '" value=""/>')), this.$dropdownIcon = this.options.defaultMaterialInput ? "" : $('<span class="caret">&#9660;</span>'), this.$searchInput = null, this.$noSearchResultsInfo = $("<li><span><i>".concat(this.options.labels.noSearchResults, "</i></span></li>")), this.$toggleAll = $('<li class="select-toggle-all"><span><input type="checkbox" class="form-check-input"><label>'.concat(this.options.labels.selectAll, "</label></span></li>")), this.$addOptionBtn = $('<i class="select-add-option fas fa-plus"></i>'), this.$mainLabel = this._jQueryFallback(this.$nativeSelect.next("label.mdb-main-label"), $("label[for='".concat(this.properties.id, "']"))), this.$customTemplateParts = this._jQueryFallback(this.$nativeSelect.nextUntil("select", ".mdb-select-template-part"), $("[data-mdb-select-template-part-for='".concat(this.properties.id, "']"))), this.$btnSave = this.$nativeSelect.nextUntil("select", ".btn-save"), this.$btnReset = $('<span class="reset-select-btn">&times;</span>'), this.$validFeedback = $('<div class="valid-feedback">'.concat(this.options.labels.validFeedback, "</div>")), this.$invalidFeedback = $('<div class="invalid-feedback">'.concat(this.options.labels.invalidFeedback, "</div>")), this.keyCodes = {
                tab: 9,
                enter: 13,
                shift: 16,
                alt: 18,
                esc: 27,
                space: 32,
                end: 35,
                home: 36,
                arrowUp: 38,
                arrowDown: 40
            }, this.renderer = new n.default(this), this.dropdown = null
        }
        var e, i, o;
        return e = t, o = [{
            key: "isMobileDevice",
            get: function() {
                return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
            }
        }], (i = [{
            key: "destroy",
            value: function() {
                this.renderer.destroy()
            }
        }, {
            key: "render",
            value: function() {
                this.renderer.render()
            }
        }, {
            key: "selectPreselectedOptions",
            value: function(t) {
                var e = this;
                if (this.isMultiple) this.$nativeSelect.find("option:selected:not(:disabled)").each((function(i, n) {
                    var l = n.index;
                    t(l), e._isPlaceholderPresent() && (l -= 1), e.$materialOptionsList.find("li:not(.optgroup):not(.select-toggle-all)").eq(l).addClass("selected active").find(":checkbox").prop("checked", !0)
                }));
                else {
                    var i = this.$nativeSelect.find("option:selected").first(),
                        n = this.$nativeSelect.find("option").index(i.get(0));
                    i.get(0) && "disabled" !== i.attr("disabled") && t(n)
                }
            }
        }, {
            key: "bindResetButtonClick",
            value: function(t) {
                var e = this;
                this.$btnReset.on("click", (function(i) {
                    i.preventDefault(), e.$nativeSelect.find('option[value=""][selected][disabled][data-mdb-novalue]').length || (e._toggleResetButton(!0), e.$materialSelect.val(e.isMultiple ? [] : ""), e.$materialSelect.trigger("close"), e.$mainLabel.removeClass("active"), e.$materialOptionsList.find("li.active, li.selected").removeClass("active").removeClass("selected"), e.$materialOptionsList.find('li[aria-selected="true"]').attr("aria-selected", "false"), e.$materialOptionsList.find('input[type="checkbox"]').prop("checked", !1), t())
                }))
            }
        }, {
            key: "bindAddNewOptionClick",
            value: function() {
                this.$addOptionBtn.on("click", this.renderer.addNewOption.bind(this.renderer))
            }
        }, {
            key: "bindMaterialSelectFocus",
            value: function() {
                var t = this;
                this.$materialSelect.on("focus", (function(e) {
                    var i = $(e.target);
                    if (i.parent().addClass("active"), $("ul.select-dropdown").not(t.$materialOptionsList.get(0)).is(":visible") && $("input.select-dropdown").trigger("close"), t.$mainLabel.addClass("active"), !t.$materialOptionsList.is(":visible")) {
                        var n = i.val(),
                            l = t.$materialOptionsList.find("li").filter((function() {
                                return $(this).text().toLowerCase() === n.toLowerCase()
                            })).get(0);
                        t._selectSingleOption(l)
                    }
                    t.isMultiple || t.$mainLabel.addClass("active")
                }))
            }
        }, {
            key: "bindMaterialSelectClick",
            value: function() {
                var t = this;
                this.$materialSelect.on("mousedown", (function(t) {
                    3 === t.which && t.preventDefault()
                })), this.$materialSelect.on("click", (function(e) {
                    e.stopPropagation(), t.$mainLabel.addClass("active"), t._updateDropdownScrollTop()
                }))
            }
        }, {
            key: "bindMaterialSelectBlur",
            value: function() {
                var t = this;
                this.$materialSelect.on("blur", (function(e) {
                    var i = $(e.target);
                    i.parent().removeClass("active"), t.isMultiple || t.isSearchable || i.trigger("close"), t.$materialOptionsList.find("li.selected").removeClass("selected")
                }))
            }
        }, {
            key: "bindMaterialOptionsListTouchstart",
            value: function() {
                this.$materialOptionsList.on("touchstart", (function(t) {
                    return t.stopPropagation()
                }))
            }
        }, {
            key: "bindMaterialSelectKeydown",
            value: function() {
                var t = this;
                this.$materialSelect.on("keydown", (function(e) {
                    var i = $(e.target),
                        n = e.which === t.keyCodes.tab,
                        l = e.which === t.keyCodes.arrowUp,
                        o = e.which === t.keyCodes.arrowDown,
                        a = e.which === t.keyCodes.enter,
                        r = e.which === t.keyCodes.esc,
                        s = o && e.altKey,
                        c = l && e.altKey,
                        u = e.which === t.keyCodes.home,
                        h = e.which === t.keyCodes.end,
                        d = e.which === t.keyCodes.space,
                        p = t.$materialOptionsList.is(":visible");
                    switch (!0) {
                        case n:
                            return t._handleTabKey(i);
                        case !p && (a || s):
                        case t.isMultiple && !p && (o || l):
                            return i.trigger("open"), t._updateDropdownScrollTop();
                        case p && (r || c):
                            return i.trigger("close");
                        case !p && (o || l):
                            return t._handleClosedArrowUpDownKey(e.which);
                        case p && (o || l):
                            return t._handleArrowUpDownKey(e.which);
                        case p && u:
                            return t._handleHomeKey();
                        case p && h:
                            return t._handleEndKey();
                        case p && (a || d):
                            return t._handleEnterKey(i);
                        default:
                            return t._handleLetterKey(e)
                    }
                }))
            }
        }, {
            key: "bindMaterialSelectDropdownToggle",
            value: function() {
                var t = this;
                this.$materialSelect.on("open", (function() {
                    return t.$materialSelect.attr("aria-expanded", "true")
                })), this.$materialSelect.on("close", (function() {
                    return t.$materialSelect.attr("aria-expanded", "false")
                }))
            }
        }, {
            key: "bindToggleAllClick",
            value: function(t) {
                var e = this;
                this.$toggleAll.on("click", (function(i) {
                    var n = $(e.$toggleAll).find('input[type="checkbox"]').first(),
                        l = Boolean($(n).prop("checked")),
                        o = !l;
                    $(n).prop("checked", !l), e.$materialOptionsList.find("li:not(.optgroup):not(.select-toggle-all)").each((function(i, n) {
                        var l = $(n),
                            a = l.find('input[type="checkbox"]');
                        l.attr("aria-selected", o), o && a.is(":checked") || !o && !a.is(":checked") || $(n).is(":hidden") || $(n).is(".disabled") || (a.prop("checked", o), e.$nativeSelect.find("option").eq(i).prop("selected", o), l.toggleClass("active"), e._selectOption(n), t(i))
                    })), e.$nativeSelect.data("stop-refresh", !0), e._triggerChangeOnNativeSelect(), e.$nativeSelect.removeData("stop-refresh"), i.stopPropagation()
                }))
            }
        }, {
            key: "bindMaterialOptionMousedown",
            value: function() {
                var t = this;
                this.$materialOptionsList.on("mousedown", (function(e) {
                    var i = e.target;
                    $(".modal-content").find(t.$materialOptionsList).length && i.scrollHeight > i.offsetHeight && e.preventDefault()
                }))
            }
        }, {
            key: "bindMaterialOptionClick",
            value: function(t) {
                var e = this;
                this.$materialOptionsList.find("li:not(.optgroup)").not(this.$toggleAll).each((function(i, n) {
                    $(n).on("click", (function(l) {
                        l.stopPropagation(), e._toggleResetButton(!1);
                        var o = $(n);
                        if (!o.hasClass("disabled") && !o.hasClass("optgroup")) {
                            var a = !0;
                            if (e.isMultiple) {
                                o.find('input[type="checkbox"]').prop("checked", (function(t, e) {
                                    return !e
                                }));
                                var r = Boolean(e.$nativeSelect.find("optgroup").length),
                                    s = e._isToggleAllPresent() && !e._isPlaceholderPresent() ? o.index() - 1 : o.index();
                                switch (!0) {
                                    case e.isSearchable && r:
                                        a = t(s - o.prevAll(".optgroup").length - 1);
                                        break;
                                    case e.isSearchable:
                                        a = t(s - 1);
                                        break;
                                    case r:
                                        a = t(s - o.prevAll(".optgroup").length);
                                        break;
                                    default:
                                        a = t(s)
                                }
                                e._isToggleAllPresent() && e._updateToggleAllOption(), e.$materialSelect.trigger("focus")
                            } else {
                                e.$materialOptionsList.find("li").removeClass("active").attr("aria-selected", "false");
                                var c = o.children().last()[0].childNodes[0];
                                e.$materialSelect.val($(c).text().replace(/  +/g, " ").trim()), e.$materialSelect.trigger("close")
                            }
                            o.toggleClass("active");
                            var u = o.attr("aria-selected");
                            o.attr("aria-selected", "true" === u ? "false" : "true"), e._selectSingleOption(o), e.$nativeSelect.data("stop-refresh", !0);
                            var h = e._isPlaceholderPresent() ? i + 1 : i;
                            e.$nativeSelect.find("option").eq(h).prop("selected", a), e.$nativeSelect.removeData("stop-refresh"), e._triggerChangeOnNativeSelect(), e.$materialSelect.val() && e.$mainLabel.addClass("active"), o.hasClass("li-added") && e.renderer.buildSingleOption(o, "")
                        }
                    }))
                }))
            }
        }, {
            key: "bindSingleMaterialOptionClick",
            value: function() {
                var t = this;
                this.$materialOptionsList.find("li").on("click", (function() {
                    t.$materialSelect.trigger("close")
                }))
            }
        }, {
            key: "bindSearchInputKeyup",
            value: function() {
                var t = this;
                this.$searchInput.find(".search").on("keyup", (function(e) {
                    var i = $(e.target),
                        n = e.which === t.keyCodes.tab,
                        l = e.which === t.keyCodes.esc,
                        o = e.which === t.keyCodes.enter,
                        a = o && e.shiftKey,
                        r = e.which === t.keyCodes.arrowUp;
                    if (e.which === t.keyCodes.arrowDown || n || l || r) return t.$materialSelect.focus(), void t._handleArrowUpDownKey(e.which);
                    var s = i.closest("ul"),
                        c = i.val(),
                        u = s.find("li span.filtrable"),
                        h = !1;
                    if (u.each((function() {
                            var t = $(this);
                            if ("string" == typeof this.outerHTML) {
                                var e = this.textContent.toLowerCase();
                                e.includes(c.toLowerCase()) ? t.show().parent().show() : t.hide().parent().hide(), e.trim() === c.toLowerCase() && (h = !0)
                            }
                        })), o) return t.isEditable && !h ? void t.renderer.addNewOption() : (a && t._handleEnterWithShiftKey(i), void t.$materialSelect.trigger("open"));
                    t.$addOptionBtn[c && t.isEditable && !h ? "show" : "hide"](), 0 !== u.filter((function(t, e) {
                        return $(e).is(":visible") && !$(e).parent().hasClass("disabled")
                    })).length ? (t.$toggleAll.show(), t.$materialOptionsList.find(t.$noSearchResultsInfo).remove(), t._updateToggleAllOption()) : (t.$toggleAll.hide(), t.$materialOptionsList.append(t.$noSearchResultsInfo)), t.dropdown.updatePosition(t.$materialSelect, t.$materialOptionsList)
                }))
            }
        }, {
            key: "bindHtmlClick",
            value: function() {
                var t = this;
                $("html").on("click", (function(e) {
                    $(e.target).closest("#select-options-".concat(t.properties.id)).length || $(e.target).hasClass("mdb-select") || !$("#select-options-".concat(t.properties.id)).hasClass("active") || (t.$materialSelect.trigger("close"), t.$materialSelect.val() || t.options.placeholder || t.$mainLabel.removeClass("active")), t.isSearchable && null !== t.$searchInput && t.$materialOptionsList.hasClass("active") && t.$materialOptionsList.find(".search-wrap input.search").focus()
                }))
            }
        }, {
            key: "bindMobileDevicesMousedown",
            value: function() {
                $("select").siblings("input.select-dropdown", "input.multi-bs-select").on("mousedown", (function(e) {
                    t.isMobileDevice && (e.clientX >= e.target.clientWidth || e.clientY >= e.target.clientHeight) && e.preventDefault()
                }))
            }
        }, {
            key: "bindSaveBtnClick",
            value: function() {
                var t = this;
                this.$btnSave.on("click", (function() {
                    t.$materialSelect.trigger("close")
                }))
            }
        }, {
            key: "_toggleResetButton",
            value: function(t) {
                var e = this.$nativeSelect.data("stop-refresh");
                this.$nativeSelect.attr("data-stop-refresh", "true"), t ? this.$nativeSelect.prepend('<option value="" selected disabled data-mdb-novalue></option>') : this.$nativeSelect.find("option[data-mdb-novalue]").remove(), this.$nativeSelect.attr("data-stop-refresh", e), this.$btnReset[t ? "hide" : "show"]()
            }
        }, {
            key: "_isToggleAllPresent",
            value: function() {
                return this.$materialOptionsList.find(this.$toggleAll).length
            }
        }, {
            key: "_isPlaceholderPresent",
            value: function() {
                return !(!this.$nativeSelect.attr("data-placeholder") && !this.options.placeholder)
            }
        }, {
            key: "_updateToggleAllOption",
            value: function() {
                var t = this.$materialOptionsList.find("li").not(".select-toggle-all, .disabled, :hidden").find("[type=checkbox]"),
                    e = t.filter(":checked"),
                    i = this.$toggleAll.find("[type=checkbox]").is(":checked");
                e.length !== t.length || i ? e.length < t.length && i && this.$toggleAll.find("[type=checkbox]").prop("checked", !1) : this.$toggleAll.find("[type=checkbox]").prop("checked", !0)
            }
        }, {
            key: "_handleTabKey",
            value: function(t) {
                this._handleEscKey(t)
            }
        }, {
            key: "_handleEnterWithShiftKey",
            value: function(t) {
                this.isMultiple ? this.$toggleAll.trigger("click") : this._handleEnterKey(t)
            }
        }, {
            key: "_handleEnterKey",
            value: function(t) {
                this.$materialOptionsList.find("li.selected:not(.disabled)").trigger("click").addClass("active"), this._removeKeyboardActiveClass(), this.isMultiple || t.trigger("close")
            }
        }, {
            key: "_handleArrowUpDownKey",
            value: function(t) {
                var e = this._getArrowMatchedActiveOptions(t, !1),
                    i = e.$matchedMaterialOption,
                    n = e.$activeOption;
                this._selectSingleOption(i), this._removeKeyboardActiveClass(), i.find("input").is(":checked") || i.removeClass(this.options.keyboardActiveClass), n.hasClass("selected") || n.find("input").is(":checked") || !this.isMultiple || n.removeClass("active", this.options.keyboardActiveClass), i.addClass(this.options.keyboardActiveClass), i.position() && this.$materialOptionsList.scrollTop(this.$materialOptionsList.scrollTop() + i.position().top)
            }
        }, {
            key: "_handleClosedArrowUpDownKey",
            value: function(t) {
                var e = this._getArrowMatchedActiveOptions(t, !0).$matchedMaterialOption;
                e.trigger("click").addClass("active"), this._updateDropdownScrollTop(), this._selectSingleOption(e)
            }
        }, {
            key: "_getArrowMatchedActiveOptions",
            value: function(t, e) {
                var i = this,
                    n = e ? "" : ":visible",
                    l = this.$materialOptionsList.find("li".concat(n)).not(".disabled, .select-toggle-all"),
                    o = l.first(),
                    a = l.last(),
                    r = this.$materialOptionsList.find("li.selected").length > 0,
                    s = null,
                    c = null;
                if (t === this.keyCodes.arrowUp) {
                    var u = r ? this.$materialOptionsList.find("li.selected").first() : a,
                        h = u.prev("li".concat(n, ":not(.disabled, .select-toggle-all)"));
                    c = h, l.each((function(t, e) {
                        $(e).hasClass(i.options.keyboardActiveClass) && (h = l.eq(t - 1), c = l.eq(t))
                    })), s = u.is(o) || !r ? u : h
                } else {
                    var d = r ? this.$materialOptionsList.find("li.selected").first() : o,
                        p = d.next("li".concat(n, ":not(.disabled, .select-toggle-all)"));
                    c = p, l.each((function(t, e) {
                        $(e).hasClass(i.options.keyboardActiveClass) && (p = l.eq(t + 1), c = l.eq(t))
                    })), s = d.is(a) || !r ? d : p
                }
                return {
                    $matchedMaterialOption: s,
                    $activeOption: c
                }
            }
        }, {
            key: "_handleHomeKey",
            value: function() {
                this._selectBoundaryOption("first")
            }
        }, {
            key: "_handleEndKey",
            value: function() {
                this._selectBoundaryOption("last")
            }
        }, {
            key: "_selectBoundaryOption",
            value: function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "",
                    e = this.$materialOptionsList.find("li:visible").not(".disabled, .select-toggle-all")[t]();
                this._selectSingleOption(e), this._removeKeyboardActiveClass(), e.find("input").is(":checked") || e.removeClass(this.options.keyboardActiveClass), e.addClass(this.options.keyboardActiveClass), e.position() && this.$materialOptionsList.scrollTop(this.$materialOptionsList.scrollTop() + e.position().top)
            }
        }, {
            key: "_handleEscKey",
            value: function(t) {
                this._removeKeyboardActiveClass(), t.trigger("close")
            }
        }, {
            key: "_handleLetterKey",
            value: function(t) {
                var e = this;
                if (this._removeKeyboardActiveClass(), this.isSearchable) {
                    var i = t.which > 46 && t.which < 91,
                        n = t.which > 93 && t.which < 106,
                        l = 8 === t.which;
                    (i || n) && this.$searchInput.find("input").focus(), l && this.$searchInput.find("input").val("").focus()
                } else {
                    var o = "",
                        a = String.fromCharCode(t.which).toLowerCase(),
                        r = Object.keys(this.keyCodes).map((function(t) {
                            return e.keyCodes[t]
                        }));
                    if (a && -1 === r.indexOf(t.which)) {
                        o += a;
                        var s = this.$materialOptionsList.find("li").filter((function(t, e) {
                            return $(e).text().toLowerCase().includes(o)
                        })).first();
                        this.isMultiple || this.$materialOptionsList.find("li").removeClass("active"), s.addClass("active"), this._selectSingleOption(s), this._updateDropdownScrollTop()
                    }
                }
            }
        }, {
            key: "_removeKeyboardActiveClass",
            value: function() {
                this.$materialOptionsList.find("li").removeClass(this.options.keyboardActiveClass)
            }
        }, {
            key: "_triggerChangeOnNativeSelect",
            value: function() {
                var t = new KeyboardEvent("change", {
                    bubbles: !0,
                    cancelable: !0
                });
                this.$nativeSelect.get(0).dispatchEvent(t)
            }
        }, {
            key: "_selectSingleOption",
            value: function(t) {
                this.$materialOptionsList.find("li.selected").removeClass("selected"), this._selectOption(t)
            }
        }, {
            key: "_updateDropdownScrollTop",
            value: function() {
                var t = this.$materialOptionsList.find("li.active").not(".disabled").first();
                t.length ? this.$materialOptionsList.scrollTo(t) : this.$materialOptionsList.scrollTop(0)
            }
        }, {
            key: "_selectOption",
            value: function(t) {
                $(t).addClass("selected")
            }
        }, {
            key: "_copyOptions",
            value: function(t) {
                return $.extend({}, t)
            }
        }, {
            key: "_jQueryFallback",
            value: function() {
                for (var t = null, e = 0; e < arguments.length; e++)
                    if ((t = e < 0 || arguments.length <= e ? void 0 : arguments[e]).length) return t;
                return t
            }
        }, {
            key: "isMultiple",
            get: function() {
                return this.properties.isMultiple
            }
        }, {
            key: "isSearchable",
            get: function() {
                return this.properties.isSearchable
            }
        }, {
            key: "isRequired",
            get: function() {
                return this.properties.isRequired
            }
        }, {
            key: "isEditable",
            get: function() {
                return this.properties.isEditable
            }
        }, {
            key: "isDisabled",
            get: function() {
                return this.$nativeSelect.is(":disabled")
            }
        }]) && l(e.prototype, i), o && l(e, o), t
    }()
}, function(t, e, i) {
    var n = i(7),
        l = i(0),
        o = i(50),
        a = i(114),
        r = i(9).f,
        s = i(29).f,
        c = i(102),
        u = i(81),
        h = i(14),
        d = i(1),
        p = i(128),
        f = i(2)("match"),
        m = l.RegExp,
        v = m.prototype,
        g = /a/g,
        y = /a/g,
        b = new m(g) !== g;
    if (n && o("RegExp", !b || d((function() {
            return y[f] = !1, m(g) != g || m(y) == y || "/a/i" != m(g, "i")
        })))) {
        for (var x = function(t, e) {
                var i = this instanceof x,
                    n = c(t),
                    l = void 0 === e;
                return !i && n && t.constructor === x && l ? t : a(b ? new m(n && !l ? t.source : t, e) : m((n = t instanceof x) ? t.source : t, n && l ? u.call(t) : e), i ? this : v, x)
            }, w = function(t) {
                t in x || r(x, t, {
                    configurable: !0,
                    get: function() {
                        return m[t]
                    },
                    set: function(e) {
                        m[t] = e
                    }
                })
            }, k = s(m), S = 0; k.length > S;) w(k[S++]);
        v.constructor = x, x.prototype = v, h(l, "RegExp", x)
    }
    p("RegExp")
}, function(t, e, i) {
    "use strict";
    var n = i(32),
        l = i(9),
        o = i(2),
        a = i(7),
        r = o("species");
    t.exports = function(t) {
        var e = n(t),
            i = l.f;
        a && e && !e[r] && i(e, r, {
            configurable: !0,
            get: function() {
                return this
            }
        })
    }
}, function(t, e, i) {
    var n = i(102);
    t.exports = function(t) {
        if (n(t)) throw TypeError("The method doesn't accept regular expressions");
        return t
    }
}, function(t, e, i) {
    var n = i(2)("match");
    t.exports = function(t) {
        var e = /./;
        try {
            "/./" [t](e)
        } catch (i) {
            try {
                return e[n] = !1, "/./" [t](e)
            } catch (t) {}
        }
        return !1
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(49),
        o = i(16),
        a = i(1),
        r = i(51),
        s = [].sort,
        c = [1, 2, 3],
        u = a((function() {
            c.sort(void 0)
        })),
        h = a((function() {
            c.sort(null)
        })),
        d = r("sort");
    n({
        target: "Array",
        proto: !0,
        forced: u || !h || d
    }, {
        sort: function(t) {
            return void 0 === t ? s.call(o(this)) : s.call(o(this), l(t))
        }
    })
}, function(t, e, i) {
    "use strict";
    var n = i(10),
        l = i(15),
        o = i(11),
        a = i(51),
        r = Math.min,
        s = [].lastIndexOf,
        c = !!s && 1 / [1].lastIndexOf(1, -0) < 0,
        u = a("lastIndexOf");
    t.exports = c || u ? function(t) {
        if (c) return s.apply(this, arguments) || 0;
        var e = n(this),
            i = o(e.length),
            a = i - 1;
        for (arguments.length > 1 && (a = r(a, l(arguments[1]))), a < 0 && (a = i + a); a >= 0; a--)
            if (a in e && e[a] === t) return a || 0;
        return -1
    } : s
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(31),
        o = [].reverse,
        a = [1, 2];
    n({
        target: "Array",
        proto: !0,
        forced: String(a) === String(a.reverse())
    }, {
        reverse: function() {
            return l(this) && (this.length = this.length), o.call(this)
        }
    })
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(15),
        o = i(135),
        a = i(136),
        r = i(1),
        s = 1..toFixed,
        c = Math.floor,
        u = function(t, e, i) {
            return 0 === e ? i : e % 2 == 1 ? u(t, e - 1, i * t) : u(t * t, e / 2, i)
        };
    n({
        target: "Number",
        proto: !0,
        forced: s && ("0.000" !== 8e-5.toFixed(3) || "1" !== .9.toFixed(0) || "1.25" !== 1.255.toFixed(2) || "1000000000000000128" !== (0xde0b6b3a7640080).toFixed(0)) || !r((function() {
            s.call({})
        }))
    }, {
        toFixed: function(t) {
            var e, i, n, r, s = o(this),
                h = l(t),
                d = [0, 0, 0, 0, 0, 0],
                p = "",
                f = "0",
                m = function(t, e) {
                    for (var i = -1, n = e; ++i < 6;) n += t * d[i], d[i] = n % 1e7, n = c(n / 1e7)
                },
                v = function(t) {
                    for (var e = 6, i = 0; --e >= 0;) i += d[e], d[e] = c(i / t), i = i % t * 1e7
                },
                g = function() {
                    for (var t = 6, e = ""; --t >= 0;)
                        if ("" !== e || 0 === t || 0 !== d[t]) {
                            var i = String(d[t]);
                            e = "" === e ? i : e + a.call("0", 7 - i.length) + i
                        } return e
                };
            if (h < 0 || h > 20) throw RangeError("Incorrect fraction digits");
            if (s != s) return "NaN";
            if (s <= -1e21 || s >= 1e21) return String(s);
            if (s < 0 && (p = "-", s = -s), s > 1e-21)
                if (i = (e = function(t) {
                        for (var e = 0, i = t; i >= 4096;) e += 12, i /= 4096;
                        for (; i >= 2;) e += 1, i /= 2;
                        return e
                    }(s * u(2, 69, 1)) - 69) < 0 ? s * u(2, -e, 1) : s / u(2, e, 1), i *= 4503599627370496, (e = 52 - e) > 0) {
                    for (m(0, i), n = h; n >= 7;) m(1e7, 0), n -= 7;
                    for (m(u(10, n, 1), 0), n = e - 1; n >= 23;) v(1 << 23), n -= 23;
                    v(1 << n), m(1, 1), v(2), f = g()
                } else m(0, i), m(1 << -e, 0), f = g() + a.call("0", h);
            return f = h > 0 ? p + ((r = f.length) <= h ? "0." + a.call("0", h - r) + f : f.slice(0, r - h) + "." + f.slice(r - h)) : p + f
        }
    })
}, function(t, e, i) {
    var n = i(17);
    t.exports = function(t) {
        if ("number" != typeof t && "Number" != n(t)) throw TypeError("Incorrect invocation");
        return +t
    }
}, function(t, e, i) {
    "use strict";
    var n = i(15),
        l = i(13);
    t.exports = "".repeat || function(t) {
        var e = String(l(this)),
            i = "",
            o = n(t);
        if (o < 0 || o == 1 / 0) throw RangeError("Wrong number of repetitions");
        for (; o > 0;
            (o >>>= 1) && (e += e)) 1 & o && (i += e);
        return i
    }
}, function(t, e, i) {
    var n = i(0),
        l = i(90).trim,
        o = i(70),
        a = n.parseInt,
        r = /^[+-]?0[Xx]/,
        s = 8 !== a(o + "08") || 22 !== a(o + "0x16");
    t.exports = s ? function(t, e) {
        var i = l(String(t));
        return a(i, e >>> 0 || (r.test(i) ? 16 : 10))
    } : a
}, function(t, e, i) {
    var n = i(3),
        l = i(139).values;
    n({
        target: "Object",
        stat: !0
    }, {
        values: function(t) {
            return l(t)
        }
    })
}, function(t, e, i) {
    var n = i(7),
        l = i(41),
        o = i(10),
        a = i(40).f,
        r = function(t) {
            return function(e) {
                for (var i, r = o(e), s = l(r), c = s.length, u = 0, h = []; c > u;) i = s[u++], n && !a.call(r, i) || h.push(t ? [i, r[i]] : r[i]);
                return h
            }
        };
    t.exports = {
        entries: r(!0),
        values: r(!1)
    }
}, , function(t, e, i) {
    "use strict";
    var n = i(16),
        l = i(38),
        o = i(11);
    t.exports = function(t) {
        for (var e = n(this), i = o(e.length), a = arguments.length, r = l(a > 1 ? arguments[1] : void 0, i), s = a > 2 ? arguments[2] : void 0, c = void 0 === s ? i : l(s, i); c > r;) e[r++] = t;
        return e
    }
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(125).left;
    n({
        target: "Array",
        proto: !0,
        forced: i(51)("reduce")
    }, {
        reduce: function(t) {
            return l(this, t, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
        }
    })
}, function(t, e, i) {
    "use strict";
    var n = i(0),
        l = i(7),
        o = i(65).NATIVE_ARRAY_BUFFER,
        a = i(6),
        r = i(178),
        s = i(1),
        c = i(144),
        u = i(15),
        h = i(11),
        d = i(145),
        p = i(29).f,
        f = i(9).f,
        m = i(141),
        v = i(59),
        g = i(28),
        y = g.get,
        b = g.set,
        x = n.ArrayBuffer,
        w = x,
        k = n.DataView,
        S = n.Math,
        M = n.RangeError,
        C = S.abs,
        T = S.pow,
        A = S.floor,
        O = S.log,
        P = S.LN2,
        E = function(t, e, i) {
            var n, l, o, a = new Array(i),
                r = 8 * i - e - 1,
                s = (1 << r) - 1,
                c = s >> 1,
                u = 23 === e ? T(2, -24) - T(2, -77) : 0,
                h = t < 0 || 0 === t && 1 / t < 0 ? 1 : 0,
                d = 0;
            for ((t = C(t)) != t || t === 1 / 0 ? (l = t != t ? 1 : 0, n = s) : (n = A(O(t) / P), t * (o = T(2, -n)) < 1 && (n--, o *= 2), (t += n + c >= 1 ? u / o : u * T(2, 1 - c)) * o >= 2 && (n++, o /= 2), n + c >= s ? (l = 0, n = s) : n + c >= 1 ? (l = (t * o - 1) * T(2, e), n += c) : (l = t * T(2, c - 1) * T(2, e), n = 0)); e >= 8; a[d++] = 255 & l, l /= 256, e -= 8);
            for (n = n << e | l, r += e; r > 0; a[d++] = 255 & n, n /= 256, r -= 8);
            return a[--d] |= 128 * h, a
        },
        I = function(t, e) {
            var i, n = t.length,
                l = 8 * n - e - 1,
                o = (1 << l) - 1,
                a = o >> 1,
                r = l - 7,
                s = n - 1,
                c = t[s--],
                u = 127 & c;
            for (c >>= 7; r > 0; u = 256 * u + t[s], s--, r -= 8);
            for (i = u & (1 << -r) - 1, u >>= -r, r += e; r > 0; i = 256 * i + t[s], s--, r -= 8);
            if (0 === u) u = 1 - a;
            else {
                if (u === o) return i ? NaN : c ? -1 / 0 : 1 / 0;
                i += T(2, e), u -= a
            }
            return (c ? -1 : 1) * i * T(2, u - e)
        },
        _ = function(t) {
            return t[3] << 24 | t[2] << 16 | t[1] << 8 | t[0]
        },
        D = function(t) {
            return [255 & t]
        },
        $ = function(t) {
            return [255 & t, t >> 8 & 255]
        },
        L = function(t) {
            return [255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255]
        },
        R = function(t) {
            return E(t, 23, 4)
        },
        V = function(t) {
            return E(t, 52, 8)
        },
        F = function(t, e) {
            f(t.prototype, e, {
                get: function() {
                    return y(this)[e]
                }
            })
        },
        j = function(t, e, i, n) {
            var l = d(+i),
                o = y(t);
            if (l + e > o.byteLength) throw M("Wrong index");
            var a = y(o.buffer).bytes,
                r = l + o.byteOffset,
                s = a.slice(r, r + e);
            return n ? s : s.reverse()
        },
        W = function(t, e, i, n, l, o) {
            var a = d(+i),
                r = y(t);
            if (a + e > r.byteLength) throw M("Wrong index");
            for (var s = y(r.buffer).bytes, c = a + r.byteOffset, u = n(+l), h = 0; h < e; h++) s[c + h] = u[o ? h : e - h - 1]
        };
    if (o) {
        if (!s((function() {
                x(1)
            })) || !s((function() {
                new x(-1)
            })) || s((function() {
                return new x, new x(1.5), new x(NaN), "ArrayBuffer" != x.name
            }))) {
            for (var H, N = (w = function(t) {
                    return c(this, w), new x(d(t))
                }).prototype = x.prototype, z = p(x), B = 0; z.length > B;)(H = z[B++]) in w || a(w, H, x[H]);
            N.constructor = w
        }
        var Z = new k(new w(2)),
            Y = k.prototype.setInt8;
        Z.setInt8(0, 2147483648), Z.setInt8(1, 2147483649), !Z.getInt8(0) && Z.getInt8(1) || r(k.prototype, {
            setInt8: function(t, e) {
                Y.call(this, t, e << 24 >> 24)
            },
            setUint8: function(t, e) {
                Y.call(this, t, e << 24 >> 24)
            }
        }, {
            unsafe: !0
        })
    } else w = function(t) {
        c(this, w, "ArrayBuffer");
        var e = d(t);
        b(this, {
            bytes: m.call(new Array(e), 0),
            byteLength: e
        }), l || (this.byteLength = e)
    }, k = function(t, e, i) {
        c(this, k, "DataView"), c(t, w, "DataView");
        var n = y(t).byteLength,
            o = u(e);
        if (o < 0 || o > n) throw M("Wrong offset");
        if (o + (i = void 0 === i ? n - o : h(i)) > n) throw M("Wrong length");
        b(this, {
            buffer: t,
            byteLength: i,
            byteOffset: o
        }), l || (this.buffer = t, this.byteLength = i, this.byteOffset = o)
    }, l && (F(w, "byteLength"), F(k, "buffer"), F(k, "byteLength"), F(k, "byteOffset")), r(k.prototype, {
        getInt8: function(t) {
            return j(this, 1, t)[0] << 24 >> 24
        },
        getUint8: function(t) {
            return j(this, 1, t)[0]
        },
        getInt16: function(t) {
            var e = j(this, 2, t, arguments.length > 1 ? arguments[1] : void 0);
            return (e[1] << 8 | e[0]) << 16 >> 16
        },
        getUint16: function(t) {
            var e = j(this, 2, t, arguments.length > 1 ? arguments[1] : void 0);
            return e[1] << 8 | e[0]
        },
        getInt32: function(t) {
            return _(j(this, 4, t, arguments.length > 1 ? arguments[1] : void 0))
        },
        getUint32: function(t) {
            return _(j(this, 4, t, arguments.length > 1 ? arguments[1] : void 0)) >>> 0
        },
        getFloat32: function(t) {
            return I(j(this, 4, t, arguments.length > 1 ? arguments[1] : void 0), 23)
        },
        getFloat64: function(t) {
            return I(j(this, 8, t, arguments.length > 1 ? arguments[1] : void 0), 52)
        },
        setInt8: function(t, e) {
            W(this, 1, t, D, e)
        },
        setUint8: function(t, e) {
            W(this, 1, t, D, e)
        },
        setInt16: function(t, e) {
            W(this, 2, t, $, e, arguments.length > 2 ? arguments[2] : void 0)
        },
        setUint16: function(t, e) {
            W(this, 2, t, $, e, arguments.length > 2 ? arguments[2] : void 0)
        },
        setInt32: function(t, e) {
            W(this, 4, t, L, e, arguments.length > 2 ? arguments[2] : void 0)
        },
        setUint32: function(t, e) {
            W(this, 4, t, L, e, arguments.length > 2 ? arguments[2] : void 0)
        },
        setFloat32: function(t, e) {
            W(this, 4, t, R, e, arguments.length > 2 ? arguments[2] : void 0)
        },
        setFloat64: function(t, e) {
            W(this, 8, t, V, e, arguments.length > 2 ? arguments[2] : void 0)
        }
    });
    v(w, "ArrayBuffer"), v(k, "DataView"), t.exports = {
        ArrayBuffer: w,
        DataView: k
    }
}, function(t, e) {
    t.exports = function(t, e, i) {
        if (!(t instanceof e)) throw TypeError("Incorrect " + (i ? i + " " : "") + "invocation");
        return t
    }
}, function(t, e, i) {
    var n = i(15),
        l = i(11);
    t.exports = function(t) {
        if (void 0 === t) return 0;
        var e = n(t),
            i = l(e);
        if (e !== i) throw RangeError("Wrong length or index");
        return i
    }
}, function(t, e, i) {
    var n = i(2)("iterator"),
        l = !1;
    try {
        var o = 0,
            a = {
                next: function() {
                    return {
                        done: !!o++
                    }
                },
                return: function() {
                    l = !0
                }
            };
        a[n] = function() {
            return this
        }, Array.from(a, (function() {
            throw 2
        }))
    } catch (t) {}
    t.exports = function(t, e) {
        if (!e && !l) return !1;
        var i = !1;
        try {
            var o = {};
            o[n] = function() {
                return {
                    next: function() {
                        return {
                            done: i = !0
                        }
                    }
                }
            }, t(o)
        } catch (t) {}
        return i
    }
}, function(t, e, i) {
    var n = i(182);
    t.exports = function(t, e) {
        var i = n(t);
        if (i % e) throw RangeError("Wrong offset");
        return i
    }
}, function(t, e, i) {
    var n = i(94),
        l = i(60),
        o = i(2)("iterator");
    t.exports = function(t) {
        if (null != t) return t[o] || t["@@iterator"] || l[n(t)]
    }
}, function(t, e, i) {
    var n = i(2),
        l = i(60),
        o = n("iterator"),
        a = Array.prototype;
    t.exports = function(t) {
        return void 0 !== t && (l.Array === t || a[o] === t)
    }
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(43), i(78), i(96), i(111), i(68), i(86);

    function n(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }
    jQuery((function(t) {
        (new(function() {
            function e() {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), this.inputSelector = "".concat(["text", "password", "email", "url", "tel", "number", "search", "search-md"].map((function(t) {
                    return "input[type=".concat(t, "]")
                })).join(", "), ", textarea"), this.textAreaSelector = ".materialize-textarea", this.$text = t(".md-textarea-auto"), this.$body = t("body"), this.$document = t(document)
            }
            var i, l, o;
            return i = e, (l = [{
                key: "init",
                value: function() {
                    var e, i = this;
                    this.$text.length && (e = window.attachEvent ? function(t, e, i) {
                        t.attachEvent("on".concat(e), i)
                    } : function(t, e, i) {
                        t.addEventListener(e, i, !1)
                    }, this.$text.each((function() {
                        var t = this;

                        function i() {
                            t.style.height = "auto", t.style.height = "".concat(t.scrollHeight, "px")
                        }

                        function n() {
                            window.setTimeout(i, 0)
                        }
                        e(t, "change", i), e(t, "cut", n), e(t, "paste", n), e(t, "drop", n), e(t, "keydown", n), i()
                    }))), t(this.inputSelector).each((function(e, n) {
                        var l = t(n),
                            o = n.validity.badInput;
                        i.updateTextFields(l), o && i.toggleActiveClass(l, "add")
                    })), this.addOnFocusEvent(), this.addOnBlurEvent(), this.addOnChangeEvent(), this.addOnResetEvent(), this.appendHiddenDiv(), this.ChangeDateInputType(), this.makeActiveAutofocus(), t(this.textAreaSelector).each(this.textAreaAutoResize), this.$body.on("keyup keydown", this.textAreaSelector, this.textAreaAutoResize)
                }
            }, {
                key: "makeActiveAutofocus",
                value: function() {
                    this.toggleActiveClass(t("input[autofocus]"), "add")
                }
            }, {
                key: "toggleActiveClass",
                value: function(t, e) {
                    var i;
                    e = "".concat(e, "Class"), i = t.parent().hasClass("timepicker") ? "label" : "label, i, .input-prefix", t.siblings(i)[e]("active")
                }
            }, {
                key: "addOnFocusEvent",
                value: function() {
                    var e = this;
                    this.$document.on("focus", this.inputSelector, (function(i) {
                        e.toggleActiveClass(t(i.target), "add")
                    }))
                }
            }, {
                key: "addOnBlurEvent",
                value: function() {
                    var e = this;
                    this.$document.on("blur", this.inputSelector, (function(i) {
                        var n = t(i.target),
                            l = !n.val(),
                            o = !i.target.validity.badInput,
                            a = void 0 === n.attr("placeholder");
                        l && o && a && e.toggleActiveClass(n, "remove"), !l && o && a && n.siblings("i, .input-prefix").removeClass("active"), e.validateField(n)
                    }))
                }
            }, {
                key: "addOnChangeEvent",
                value: function() {
                    var e = this;
                    this.$document.on("change", this.inputSelector, (function(i) {
                        var n = t(i.target);
                        e.updateTextFields(n), e.validateField(n)
                    }))
                }
            }, {
                key: "addOnResetEvent",
                value: function() {
                    var e = this;
                    this.$document.on("reset", (function(i) {
                        var n = t(i.target);
                        n.is("form") && (n.find(e.inputSelector).removeClass("valid invalid").each((function(i, n) {
                            var l = t(n),
                                o = !l.val(),
                                a = !l.attr("placeholder");
                            o && a && e.toggleActiveClass(l, "remove")
                        })), n.find("select.initialized").each((function(e, i) {
                            var n = t(i),
                                l = n.siblings("input.select-dropdown"),
                                o = n.children("[selected]").val();
                            n.val(o), l.val(o)
                        })))
                    }))
                }
            }, {
                key: "appendHiddenDiv",
                value: function() {
                    if (!t(".hiddendiv").first().length) {
                        var e = t('<div class="hiddendiv common"></div>');
                        this.$body.append(e)
                    }
                }
            }, {
                key: "updateTextFields",
                value: function(t) {
                    var e = Boolean(t.val().length),
                        i = Boolean(t.attr("placeholder")),
                        n = e || i ? "add" : "remove";
                    this.toggleActiveClass(t, n)
                }
            }, {
                key: "validateField",
                value: function(t) {
                    if (t.hasClass("validate")) {
                        var e = t.val(),
                            i = !e.length,
                            n = !t[0].validity.badInput;
                        if (i && n) t.removeClass("valid").removeClass("invalid");
                        else {
                            var l = t[0].validity.valid,
                                o = Number(t.attr("length")) || 0;
                            l && (!o || o > e.length) ? t.removeClass("invalid").addClass("valid") : t.removeClass("valid").addClass("invalid")
                        }
                    }
                }
            }, {
                key: "ChangeDateInputType",
                value: function() {
                    var e = t('input[type="date"]');
                    e.each((function(t, e) {
                        e.type = "text"
                    })), e.on("focus", (function(t) {
                        t.target.type = "date"
                    })), e.on("blur", (function(e) {
                        e.target.type = "text", 0 === e.target.value.length && t("label[for=".concat(e.target.id, "]")).removeClass("active")
                    }))
                }
            }, {
                key: "textAreaAutoResize",
                value: function() {
                    var e = t(this);
                    if (e.val().length) {
                        var i = t(".hiddendiv"),
                            n = e.css("font-family"),
                            l = e.css("font-size");
                        l && i.css("font-size", l), n && i.css("font-family", n), "off" === e.attr("wrap") && i.css("overflow-wrap", "normal").css("white-space", "pre"), i.text("".concat(e.val(), "\n"));
                        var o = i.html().replace(/\n/g, "<br>");
                        i.html(o), i.css("width", e.is(":visible") ? e.width() : t(window).width() / 2), e.css("height", i.height())
                    }
                }
            }]) && n(i.prototype, l), o && n(i, o), e
        }())).init()
    }))
}, function(t, e) {
    jQuery((function(t) {
        t(window).on("scroll", (function() {
            var e = t(".navbar");
            e.length && t(".scrolling-navbar")[e.offset().top > 50 ? "addClass" : "removeClass"]("top-nav-collapse")
        }))
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(43);
    jQuery((function(t) {
        t.fn.mdbTreeview = function() {
            var e = t(this);
            e.hasClass("treeview") && function(e) {
                e.find(".rotate").each((function() {
                    var e = t(this);
                    e.off("click"), e.on("click", (function() {
                        var e = t(this);
                        e.siblings(".nested").toggleClass("active"), e.toggleClass("down")
                    }))
                }))
            }(e), e.hasClass("treeview-animated") && function(e) {
                var i = e.find(".treeview-animated-element"),
                    n = e.find(".closed");
                e.find(".nested").hide(), n.off("click"), n.on("click", (function() {
                    var e = t(this),
                        i = e.siblings(".nested"),
                        n = e.children(".fa-angle-right");
                    e.toggleClass("open"), n.toggleClass("down"), i.hasClass("active") ? i.removeClass("active").slideUp() : i.addClass("active").slideDown()
                })), i.off("click"), i.on("click", (function() {
                    var e = t(this);
                    e.hasClass("opened") ? e.removeClass("opened") : (i.removeClass("opened"), e.addClass("opened"))
                }))
            }(e), e.hasClass("treeview-colorful") && function(e) {
                var i = e.find(".treeview-colorful-element"),
                    n = e.find(".treeview-colorful-items-header");
                e.find(".nested").hide(), n.off("click"), n.on("click", (function() {
                    var e = t(this),
                        i = e.siblings(".nested"),
                        n = e.children(".fa-plus-circle"),
                        l = e.children(".fa-minus-circle");
                    e.toggleClass("open"), n.removeClass("fa-plus-circle"), n.addClass("fa-minus-circle"), l.removeClass("fa-minus-circle"), l.addClass("fa-plus-circle"), i.hasClass("active") ? i.removeClass("active").slideUp() : i.addClass("active").slideDown()
                })), i.off("click"), i.on("click", (function() {
                    var e = t(this);
                    e.hasClass("opened") ? i.removeClass("opened") : (i.removeClass("opened"), e.addClass("opened"))
                }))
            }(e)
        }
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(100), i(89), i(64), i(97);

    function n(t, e) {
        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
    }

    function l(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }

    function o(t, e, i) {
        return e && l(t.prototype, e), i && l(t, i), t
    }
    jQuery((function(t) {
        var e = function() {
                function e() {
                    n(this, e)
                }
                return o(e, [{
                    key: "init",
                    value: function() {
                        t(".wow").wow()
                    }
                }]), e
            }(),
            i = function() {
                function e(t, i) {
                    n(this, e), this.$wowElement = t, this.customization = i, this.animated = !0, this.options = this.assignElementCustomization()
                }
                return o(e, [{
                    key: "init",
                    value: function() {
                        var e = this;
                        t(window).scroll((function() {
                            e.animated ? e.hide() : e.mdbWow()
                        })), this.appear()
                    }
                }, {
                    key: "assignElementCustomization",
                    value: function() {
                        return {
                            animationName: this.$wowElement.css("animation-name"),
                            offset: 100,
                            iteration: this.fallback().or(this.$wowElement.data("wow-iteration")).or(1).value(),
                            duration: this.fallback().or(this.$wowElement.data("wow-duration")).or(1e3).value(),
                            delay: this.fallback().or(this.$wowElement.data("wow-delay")).or(0).value()
                        }
                    }
                }, {
                    key: "mdbWow",
                    value: function() {
                        var t = this;
                        "visible" !== this.$wowElement.css("visibility") && this.shouldElementBeVisible(!0) && (setTimeout((function() {
                            return t.$wowElement.removeClass("animated")
                        }), this.countRemoveTime()), this.appear())
                    }
                }, {
                    key: "appear",
                    value: function() {
                        this.$wowElement.addClass("animated"), this.$wowElement.css({
                            visibility: "visible",
                            "animation-name": this.options.animationName,
                            "animation-iteration-count": this.options.iteration,
                            "animation-duration": this.options.duration,
                            "animation-delay": this.options.delay
                        })
                    }
                }, {
                    key: "hide",
                    value: function() {
                        var t = this;
                        this.shouldElementBeVisible(!1) ? (this.$wowElement.removeClass("animated"), this.$wowElement.css({
                            "animation-name": "none",
                            visibility: "hidden"
                        })) : setTimeout((function() {
                            t.$wowElement.removeClass("animated")
                        }), this.countRemoveTime()), this.mdbWow(), this.animated = !this.animated
                    }
                }, {
                    key: "shouldElementBeVisible",
                    value: function(e) {
                        var i = this.getOffset(this.$wowElement[0]),
                            n = this.$wowElement.height(),
                            l = t(document).height(),
                            o = window.innerHeight,
                            a = window.scrollY,
                            r = o + a - this.options.offset > i,
                            s = o + a - this.options.offset > i + n,
                            c = a < i,
                            u = a < i + n,
                            h = o + a === l,
                            d = i + this.options.offset > l,
                            p = o + a - this.options.offset < i,
                            f = a > i + this.options.offset,
                            m = a < i + this.options.offset,
                            v = i + n > l - this.options.offset;
                        return e ? r && c || s && u || h && d : r && f || p && m || v
                    }
                }, {
                    key: "countRemoveTime",
                    value: function() {
                        var t = 1e3 * this.$wowElement.css("animation-duration").slice(0, -1),
                            e = 0;
                        return this.options.duration && (e = t + this.checkOptionsStringFormat(this.options.duration)), this.options.delay && (e += this.checkOptionsStringFormat(this.options.delay)), e
                    }
                }, {
                    key: "checkOptionsStringFormat",
                    value: function(t) {
                        var e;
                        if ("s" === t.toString().slice(-1)) e = t.toString().slice(0, -1);
                        else {
                            if (isNaN(t.toString().slice(-1))) return console.log("Not supported animation customization format.");
                            e = t
                        }
                        return e
                    }
                }, {
                    key: "getOffset",
                    value: function(t) {
                        var e = t.getBoundingClientRect(),
                            i = document.body,
                            n = document.documentElement,
                            l = window.pageYOffset || n.scrollTop || i.scrollTop,
                            o = n.clientTop || i.clientTop || 0,
                            a = e.top + l - o;
                        return Math.round(a)
                    }
                }, {
                    key: "fallback",
                    value: function() {
                        return {
                            _value: void 0,
                            or: function(t) {
                                return void 0 !== t && void 0 === this._value && (this._value = t), this
                            },
                            value: function() {
                                return this._value
                            }
                        }
                    }
                }]), e
            }();
        t.fn.wow = function(e) {
            this.each((function() {
                new i(t(this), e).init()
            }))
        }, window.WOW = e
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(84),
        l = i(8),
        o = i(13),
        a = i(155),
        r = i(85);
    n("search", 1, (function(t, e, i) {
        return [function(e) {
            var i = o(this),
                n = null == e ? void 0 : e[t];
            return void 0 !== n ? n.call(e, i) : new RegExp(e)[t](String(i))
        }, function(t) {
            var n = i(e, t, this);
            if (n.done) return n.value;
            var o = l(t),
                s = String(this),
                c = o.lastIndex;
            a(c, 0) || (o.lastIndex = 0);
            var u = r(o, s);
            return a(o.lastIndex, c) || (o.lastIndex = c), null === u ? -1 : u.index
        }]
    }))
}, function(t, e) {
    t.exports = Object.is || function(t, e) {
        return t === e ? 0 !== t || 1 / t == 1 / e : t != t && e != e
    }
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(107), i(109);
    jQuery((function(t) {
        var e = "ontouchstart" in document.documentElement,
            i = function(t, e) {
                (e && !t.hasClass("active") || !e && t.hasClass("active")) && (t[e ? "addClass" : "removeClass"]("active"), document.querySelectorAll("ul .btn-floating").forEach((function(t) {
                    return t.classList[e ? "add" : "remove"]("shown")
                })))
            },
            n = t(".fixed-action-btn:not(.smooth-scroll) > .btn-floating");
        n.on("mouseenter", (function(n) {
            e || i(t(n.currentTarget).parent(), !0)
        })), n.parent().on("mouseleave", (function(e) {
            return i(t(e.currentTarget), !1)
        })), n.on("click", (function(e) {
            var n;
            e.preventDefault(), (n = t(e.currentTarget).parent()).hasClass("active") ? i(n, !1) : i(n, !0)
        })), t.fn.extend({
            openFAB: function() {
                i(t(this), !0)
            },
            closeFAB: function() {
                i(t(this), !1)
            }
        })
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(43);
    jQuery((function(t) {
        t(document).on("click.card", ".card", (function(n) {
            var l = t(this).find(".card-reveal");
            if (l.length) {
                var o = t(n.target),
                    a = o.is(".card-reveal .card-title"),
                    r = o.is(".card-reveal .card-title i"),
                    s = o.is(".card .activator"),
                    c = o.is(".card .activator i");
                a || r ? i(l) : (s || c) && e(l)
            }
        }));
        var e = function(t) {
                t.css({
                    display: "block"
                }).velocity({
                    translateY: "-100%"
                }, {
                    duration: 300,
                    queue: !1,
                    easing: "easeInOutQuad"
                })
            },
            i = function(t) {
                t.velocity({
                    translateY: 0
                }, {
                    duration: 225,
                    queue: !1,
                    easing: "easeInOutQuad",
                    complete: function() {
                        t.css({
                            display: "none"
                        })
                    }
                })
            };
        t(".rotate-btn").on("click", (function() {
            t(this).closest(".card").toggleClass("flipped")
        })), t(window).on("load", (function() {
            t(".card-rotating").each((function() {
                var e = t(this),
                    i = e.parent(),
                    n = e.find(".front"),
                    l = e.find(".back"),
                    o = e.find(".front").outerHeight(),
                    a = e.find(".back").outerHeight();
                o > a ? t(i, l).height(o) : o < a ? t(i, n).height(a) : t(i).height(a)
            }))
        })), t(".card-share > a").on("click", (function(e) {
            e.preventDefault(), t(this).toggleClass("share-expanded").parent().find("div").toggleClass("social-reveal-active")
        })), t(".map-card").on("click", (function() {
            t(this).find(".card-body").toggleClass("closed")
        }))
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(82), i(43), i(111);
    jQuery((function(t) {
        function e() {
            var e = t(this),
                i = Number(e.attr("length")),
                n = Number(e.val().length),
                l = n <= i;
            e.parent().find('span[class="character-counter"]').html("".concat(n, "/").concat(i)),
                function(t, e) {
                    var i = e.hasClass("invalid");
                    t && i ? e.removeClass("invalid") : t || i || (e.removeClass("valid"), e.addClass("invalid"))
                }(l, e)
        }

        function i() {
            t(this).parent().find('span[class="character-counter"]').html("")
        }
        t.fn.characterCounter = function() {
            return this.each((function() {
                var n, l, o = t(this);
                void 0 !== o.attr("length") && (o.on("input focus", e), o.on("blur", i), n = o, l = t("<span/>").addClass("character-counter").css("float", "right").css("font-size", "12px").css("height", 1), n.parent().append(l))
            }))
        }, t(document).ready((function() {
            t("input, textarea").characterCounter()
        }))
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(91), i(43);
    jQuery((function(t) {
        function e(e, n) {
            var l = e.find("> li > .collapsible-header");
            i(n), l.not(n).removeClass("active").parent().removeClass("active").children(".collapsible-body").stop(!0, !1).slideUp({
                duration: 350,
                easing: "easeOutQuart",
                queue: !1,
                complete: function() {
                    t(this).css("height", "")
                }
            })
        }

        function i(e) {
            e.hasClass("active") ? e.parent().addClass("active") : e.parent().removeClass("active"), e.parent().hasClass("active") ? e.siblings(".collapsible-body").stop(!0, !1).slideDown({
                duration: 350,
                easing: "easeOutQuart",
                queue: !1,
                complete: function() {
                    t(this).css("height", "")
                }
            }) : e.siblings(".collapsible-body").stop(!0, !1).slideUp({
                duration: 350,
                easing: "easeOutQuart",
                queue: !1,
                complete: function() {
                    t(this).css("height", "")
                }
            })
        }

        function n(t) {
            return l(t).length > 0
        }

        function l(t) {
            return t.closest("li > .collapsible-header")
        }
        t.fn.collapsible = function(o) {
            var a = {
                accordion: void 0
            };
            return o = t.extend(a, o), this.each((function() {
                var a = t(this),
                    r = a.find("> li > .collapsible-header"),
                    s = a.data("collapsible");
                a.off("click.collapse", ".collapsible-header"), r.off("click.collapse"), o.accordion || "accordion" === s || void 0 === s ? (r.on("click.collapse", (function(i) {
                    var o = t(i.target);
                    n(o) && (o = l(o)), o.toggleClass("active"), e(a, o)
                })), e(a, r.filter(".active").first())) : r.each((function() {
                    t(this).on("click.collapse", (function(e) {
                        var o = t(e.target);
                        n(o) && (o = l(o)), o.toggleClass("active"), i(o)
                    })), t(this).hasClass("active") && i(t(this))
                }))
            }))
        }, t(".collapsible").collapsible()
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(43), i(78), i(96), i(118), i(138);
    jQuery((function(t) {
        t(document).on("change", '.file-field input[type="file"]', (function() {
            var e = t(this);
            console.log(e);
            var i = e.closest(".file-field").find("input.file-path"),
                n = e.get(0).files,
                l = [];
            l = Array.isArray(n) ? n.map((function(t) {
                return t.name
            })) : Object.values(n).map((function(t) {
                return t.name
            })), i.val(l.join(", ")), i.trigger("change")
        }))
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(43), i(122), i(66), i(113), i(123);

    function n(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }! function(t) {
        var e = function() {
            function e(i, n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), this.defaults = {
                    data: {},
                    dataColor: "",
                    closeColor: "#4285f4",
                    closeBlurColor: "#ced4da",
                    inputFocus: "1px solid #4285f4",
                    inputBlur: "1px solid #ced4da",
                    inputFocusShadow: "0 1px 0 0 #4285f4",
                    inputBlurShadow: "",
                    visibleOptions: 5
                }, this.enterCharCode = 13, this.homeCharCode = 36, this.endCharCode = 35, this.arrowUpCharCode = 38, this.arrowDownCharCode = 40, this.count = -1, this.nextScrollHeight = -45, this.$input = i, this.options = this.assignOptions(n), this.$clearButton = this.$input.next(".mdb-autocomplete-clear"), this.$autocompleteWrap = t('<ul class="mdb-autocomplete-wrap"></ul>')
            }
            var i, l, o;
            return i = e, (l = [{
                key: "init",
                value: function() {
                    this.handleEvents()
                }
            }, {
                key: "handleEvents",
                value: function() {
                    this.setData(), this.inputFocus(), this.inputBlur(), this.inputKeyupData(), this.inputLiClick(), this.clearAutocomplete(), this.setAutocompleteWrapHeight()
                }
            }, {
                key: "assignOptions",
                value: function(e) {
                    return t.extend({}, this.defaults, e)
                }
            }, {
                key: "setAutocompleteWrapHeight",
                value: function() {
                    this.$autocompleteWrap.css("max-height", "".concat(45 * this.options.visibleOptions, "px"))
                }
            }, {
                key: "setData",
                value: function() {
                    Object.keys(this.options.data).length && this.$autocompleteWrap.insertAfter(this.$input)
                }
            }, {
                key: "inputFocus",
                value: function() {
                    var t = this;
                    this.$input.on("focus", (function() {
                        t.changeSVGcolors(), t.$input.css("border-bottom", t.options.inputFocus), t.$input.css("box-shadow", t.options.inputFocusShadow)
                    }))
                }
            }, {
                key: "inputBlur",
                value: function() {
                    var t = this;
                    this.$input.on("blur", (function() {
                        t.$input.css("border-bottom", t.options.inputBlur), t.$input.css("box-shadow", t.options.inputBlurShadow)
                    }))
                }
            }, {
                key: "inputKeyupData",
                value: function() {
                    var t = this;
                    this.$input.on("keyup", (function(e) {
                        if (e.which === t.enterCharCode) return t.options.data.includes(t.$input.val()) || t.options.data.push(t.$input.val()), t.$autocompleteWrap.find(".selected").trigger("click"), t.$autocompleteWrap.empty(), t.inputBlur(), t.count = -1, t.nextScrollHeight = -45, t.count;
                        var i = t.$input.val();
                        if (t.$autocompleteWrap.empty(), i.length) {
                            t.appendOptions(t.options.data, i);
                            var n = t.$autocompleteWrap,
                                l = t.$autocompleteWrap.find("li"),
                                o = l.eq(t.count).outerHeight(),
                                a = l.eq(t.count - 1).outerHeight();
                            e.which === t.homeCharCode && t.homeHandler(n, l), e.which === t.endCharCode && t.endHandler(n, l), e.which === t.arrowDownCharCode ? t.arrowDownHandler(n, l, o) : e.which === t.arrowUpCharCode && t.arrowUpHandler(n, l, o, a), 0 === i.length ? t.$clearButton.css("visibility", "hidden") : t.$clearButton.css("visibility", "visible"), t.$autocompleteWrap.children().css("color", t.options.dataColor)
                        } else t.$clearButton.css("visibility", "hidden")
                    }))
                }
            }, {
                key: "endHandler",
                value: function(t, e) {
                    this.count = e.length - 1, this.nextScrollHeight = 45 * e.length - 45, t.scrollTop(45 * e.length), e.eq(-1).addClass("selected")
                }
            }, {
                key: "homeHandler",
                value: function(t, e) {
                    this.count = 0, this.nextScrollHeight = -45, t.scrollTop(0), e.eq(0).addClass("selected")
                }
            }, {
                key: "arrowDownHandler",
                value: function(t, e, i) {
                    if (this.count > e.length - 2) return this.count = -1, e.scrollTop(0), void(this.nextScrollHeight = -45);
                    this.count++, this.nextScrollHeight += i, t.scrollTop(this.nextScrollHeight), e.eq(this.count).addClass("selected")
                }
            }, {
                key: "arrowUpHandler",
                value: function(t, e, i, n) {
                    this.count < 1 ? (this.count = e.length, t.scrollTop(t.prop("scrollHeight")), this.nextScrollHeight = t.prop("scrollHeight") - i) : this.count--, this.nextScrollHeight -= n, t.scrollTop(this.nextScrollHeight), e.eq(this.count).addClass("selected")
                }
            }, {
                key: "appendOptions",
                value: function(e, i) {
                    for (var n in e)
                        if (-1 !== e[n].toLowerCase().indexOf(i.toLowerCase())) {
                            var l = t("<li>".concat(e[n], "</li>"));
                            this.$autocompleteWrap.append(l)
                        }
                }
            }, {
                key: "inputLiClick",
                value: function() {
                    var e = this;
                    this.$autocompleteWrap.on("click", "li", (function(i) {
                        i.preventDefault(), e.$input.val(t(i.target).text()), e.$autocompleteWrap.empty()
                    }))
                }
            }, {
                key: "clearAutocomplete",
                value: function() {
                    var e = this;
                    this.$clearButton.on("click", (function(i) {
                        i.preventDefault(), e.count = -1, e.nextScrollHeight = -45;
                        var n = t(i.currentTarget);
                        n.parent().find(".mdb-autocomplete").val(""), n.css("visibility", "hidden"), e.$autocompleteWrap.empty(), n.parent().find("label").removeClass("active")
                    }))
                }
            }, {
                key: "changeSVGcolors",
                value: function() {
                    var t = this;
                    this.$input.hasClass("mdb-autocomplete") && (this.$input.on("keyup", (function(e) {
                        t.fillSVG(e, t.options.closeColor)
                    })), this.$input.on("blur", (function(e) {
                        t.fillSVG(e, t.options.closeBlurColor)
                    })))
                }
            }, {
                key: "fillSVG",
                value: function(e, i) {
                    e.preventDefault(), t(e.target).parent().find(".mdb-autocomplete-clear").find("svg").css("fill", i)
                }
            }]) && n(i.prototype, l), o && n(i, o), e
        }();
        t.fn.mdbAutocomplete = function(i) {
            return this.each((function() {
                new e(t(this), i).init()
            }))
        }
    }(jQuery)
}, function(t, e) {
    var i = !1;

    function n() {
        $("#mdb-preloader").fadeOut("slow"), $("body").removeAttr("aria-busy")
    }
    $(window).on("load", (function() {
        i = !0
    })), jQuery((function(t) {
        t("body").attr("aria-busy", !0), t("#preloader-markup").load("./dev/dist/mdb-addons/preloader.html", (function() {
            i ? n() : t(window).on("load", (function() {
                n()
            }))
        }))
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(43);
    jQuery((function(t) {
        var e = "input[type=range]:not(.custom-range):not(.multi-range)",
            i = '<span class="thumb" style="margin-left: 7px"><span class="value"></span></span>',
            n = !1;

        function l(t, e) {
            var i = t.attr("min"),
                n = t.attr("max"),
                l = t.width() - 13.5,
                o = l / (n - i),
                a = o * t.val() - o * i;
            a < 0 ? a = 0 : a > l && (a = l), e.addClass("active").css("left", a)
        }

        function o(t, e, i, n, l, o, a) {
            t.velocity({
                height: e,
                width: i,
                top: n,
                marginLeft: l
            }, {
                duration: o,
                easing: a || "swing"
            })
        }

        function a(t) {
            o(t, "30px", "30px", "-27px", "-7px", 200, "easeOutExpo")
        }

        function r(t) {
            o(t, "0", "0", "10px", "7px", 200)
        }
        t(document).on("change", e, (function() {
            var e = t(this);
            e.siblings(".thumb").find(".value").html(e.val())
        })), t(document).on("mousedown touchstart contextmenu", e, (function(o) {
            var r = t(this),
                s = !r.siblings(".thumb").length,
                c = "contextmenu" === o.type;
            s && function() {
                var n = t(i);
                t(e).after(n)
            }();
            var u = r.siblings(".thumb");
            n = !c, r.addClass("active"), u.hasClass("active") || a(u), l(t(this), u), u.find(".value").html(r.val())
        })), t(document).on("mouseup touchend", ".range-field", (function() {
            var e = t(this).children(".thumb");
            n = !1, e.hasClass("active") && r(e), e.removeClass("active")
        })), t(document).on("input mousemove touchmove", ".range-field", (function() {
            var i = t(this).children(".thumb");
            n && (i.hasClass("active") || a(i), l(t(this).children(e), i), i.find(".value").html(i.siblings(e).val()))
        })), t(document).on("mouseout touchleave", ".range-field", (function() {
            if (!n) {
                var e = t(this).children(".thumb");
                e.hasClass("active") && r(e), e.removeClass("active")
            }
        }))
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(69), i(71), i(72), i(43), i(54), i(89), i(111), i(64), i(97), i(73), i(74);

    function n(t, e) {
        return function(t) {
            if (Array.isArray(t)) return t
        }(t) || function(t, e) {
            if (!(Symbol.iterator in Object(t) || "[object Arguments]" === Object.prototype.toString.call(t))) return;
            var i = [],
                n = !0,
                l = !1,
                o = void 0;
            try {
                for (var a, r = t[Symbol.iterator](); !(n = (a = r.next()).done) && (i.push(a.value), !e || i.length !== e); n = !0);
            } catch (t) {
                l = !0, o = t
            } finally {
                try {
                    n || null == r.return || r.return()
                } finally {
                    if (l) throw o
                }
            }
            return i
        }(t, e) || function() {
            throw new TypeError("Invalid attempt to destructure non-iterable instance")
        }()
    }

    function l(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }
    jQuery((function(t) {
        var e = function() {
            function e(i, n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), this.settings = {
                    menuLeftMinBorder: .3,
                    menuLeftMaxBorder: -.5,
                    menuRightMinBorder: -.3,
                    menuRightMaxBorder: .5,
                    menuVelocityOffset: 10
                }, this.defaults = {
                    menuWidth: 240,
                    edge: "left",
                    closeOnClick: !1,
                    breakpoint: 1440,
                    timeDurationOpen: 500,
                    timeDurationClose: 500,
                    timeDurationOverlayOpen: 200,
                    timeDurationOverlayClose: 200,
                    easingOpen: "easeInOutQuad",
                    easingClose: "easeInOutQuad",
                    showOverlay: !0,
                    showCloseButton: !1,
                    slim: !1,
                    onOpen: null,
                    onClose: null
                }, this.$element = i, this.$elementCloned = i.clone().css({
                    display: "inline-block",
                    lineHeight: "24px"
                }).html('<i class="fas fa-times"></i>'), this.options = this.assignOptions(n), this.menuOut = !1, this.lastTouchVelocity = {
                    x: {
                        startPosition: 0,
                        startTime: 0,
                        endPosition: 0,
                        endTime: 0
                    }
                }, this.$body = t("body"), this.$menu = t("#".concat(this.$element.attr("data-activates"))), this.$sidenavOverlay = t("#sidenav-overlay"), this.$dragTarget = t('<div class="drag-target"></div>'), this.$body.append(this.$dragTarget)
            }
            var i, o, a;
            return i = e, (o = [{
                key: "assignOptions",
                value: function(e) {
                    return t.extend({}, this.defaults, e)
                }
            }, {
                key: "init",
                value: function() {
                    this.setMenuWidth(), this.setMenuTranslation(), this.closeOnClick(), this.openOnClick(), this.bindTouchEvents(), this.showCloseButton(), this.inputOnClick(), !0 === this.options.slim && this.handleSlim(), this.onOpen(), this.onClose(), this.options[0] + this.options[1] + this.options[2] + this.options[3] === "show" && !1 === this.menuOut && this.$element.trigger("click"), this.options[0] + this.options[1] + this.options[2] + this.options[3] === "hide" && !0 === this.menuOut && this.removeMenu()
                }
            }, {
                key: "setMenuWidth",
                value: function() {
                    var e = t("#".concat(this.$menu.attr("id"))).find("> .sidenav-bg");
                    this.$menu.css("width", this.options.menuWidth), e.css("width", this.options.menuWidth)
                }
            }, {
                key: "setMenuTranslation",
                value: function() {
                    var e = this;
                    "left" === this.options.edge ? (this.$menu.css("transform", "translateX(-100%)"), this.$dragTarget.css({
                        left: 0
                    })) : (this.$menu.addClass("right-aligned").css("transform", "translateX(100%)"), this.$dragTarget.css({
                        right: 0
                    })), this.$menu.hasClass("fixed") && (window.innerWidth > this.options.breakpoint ? (this.menuOut = !0, this.$menu.css("transform", "translateX(0)")) : this.menuOut = !1, this.$menu.find("input[type=text]").on("touchstart", (function() {
                        e.$menu.addClass("transform-fix-input")
                    })), t(window).on("resize", (function() {
                        if (t(".fixed-sn main, .fixed-sn footer").css("padding-left", e.options.menuWidth), window.innerWidth > e.options.breakpoint) e.$sidenavOverlay.length ? (e.removeMenu(!0), t(".fixed-sn main, .fixed-sn footer").css("padding-left", e.options.menuWidth)) : (!1 === e.menuOut && t(e).trigger("sidenav_open", [e.options.onOpen]), e.$menu.css("transform", "translateX(0%)"), e.menuOut = !0);
                        else if (!1 === e.menuOut) {
                            var i = "left" === e.options.edge ? "-100" : "100";
                            e.$menu.css("transform", "translateX(".concat(i, "%)")), e.removeMenu(!0)
                        } else e.menuOut = !1, e.removeMenu(!0)
                    })))
                }
            }, {
                key: "closeOnClick",
                value: function() {
                    var t = this;
                    !0 === this.options.closeOnClick && (this.$menu.on("click", "a:not(.collapsible-header)", (function() {
                        return t.removeMenu()
                    })), "translateX(0)" === this.$menu.css("transform") && this.$menu.on("click", (function() {
                        return t.removeMenu()
                    })))
                }
            }, {
                key: "onOpen",
                value: function(e) {
                    t(this).on("sidenav_open", (function(t, e) {
                        "function" == typeof e && e()
                    }))
                }
            }, {
                key: "onClose",
                value: function(e) {
                    t(this).on("sidenav_close", (function(t, e) {
                        "function" == typeof e && e()
                    }))
                }
            }, {
                key: "openOnClick",
                value: function() {
                    var e = this;
                    this.$element.on("click", (function(i) {
                        if (i.preventDefault(), !0 === e.menuOut) return e.removeMenu();
                        t(e).trigger("sidenav_open", [e.options.onOpen]), !0 === e.options.showOverlay ? t("#sidenav-overlay").length || e.showSidenavOverlay() : e.showCloseButton();
                        var n = [];
                        n = "left" === e.options.edge ? [0, -1 * e.options.menuWidth] : [0, e.options.menuWidth], "matrix(1, 0, 0, 1, 0, 0)" !== e.$menu.css("transform") && e.$menu.velocity({
                            translateX: n
                        }, {
                            duration: e.options.timeDurationOpen,
                            queue: !1,
                            easing: e.options.easingOpen
                        }), e.$sidenavOverlay.on("touchmove", e.touchmoveEventHandler.bind(e)), e.$menu.on("touchmove", (function(t) {
                            t.preventDefault(), e.$menu.find(".custom-scrollbar").css("padding-bottom", "30px")
                        })), !1 === e.options.showOverlay && (e.menuOut = !0)
                    }))
                }
            }, {
                key: "bindTouchEvents",
                value: function() {
                    var t = this;
                    this.$dragTarget.on("click", (function() {
                        t.menuOut && t.removeMenu()
                    })), this.$dragTarget.on("touchstart", (function(e) {
                        t.lastTouchVelocity.x.startPosition = e.touches[0].clientX, t.lastTouchVelocity.x.startTime = Date.now()
                    })), this.$dragTarget.on("touchmove", this.touchmoveEventHandler.bind(this)), this.$dragTarget.on("touchend", this.touchendEventHandler.bind(this))
                }
            }, {
                key: "showCloseButton",
                value: function() {
                    !0 === this.options.showCloseButton && (this.$menu.prepend(this.$elementCloned), this.$menu.find(".logo-wrapper").css({
                        borderTop: "1px solid rgba(153,153,153,.3)"
                    }))
                }
            }, {
                key: "inputOnClick",
                value: function() {
                    var t = this;
                    this.$menu.find("input[type=text]").on("touchstart", (function() {
                        return t.$menu.css("transform", "translateX(0)")
                    }))
                }
            }, {
                key: "removeMenu",
                value: function(e) {
                    var i = this;
                    this.$body.css({
                        overflow: "",
                        width: ""
                    }), this.$menu.velocity({
                        translateX: "left" === this.options.edge ? "-100%" : "100%"
                    }, {
                        duration: this.options.timeDurationClose,
                        queue: !1,
                        easing: this.options.easingClose,
                        complete: function() {
                            !0 === e && (i.$menu.removeAttr("style"), i.$menu.css("width", i.options.menuWidth))
                        }
                    }), this.$menu.removeClass("transform-fix-input"), this.hideSidenavOverlay(), this.menuOut = !1, t(".fixed-sn .double-nav").css("padding-left", "unset"), t(".fixed-sn main, .fixed-sn footer").css({
                        "padding-left": "0"
                    }), t(this).trigger("sidenav_close", [this.options.onClose])
                }
            }, {
                key: "handleSlim",
                value: function() {
                    var e = this;
                    t("#toggle").on("click", (function() {
                        e.$menu.hasClass("slim") ? (e.$menu.removeClass("slim"), t(".sv-slim-icon").removeClass("fa-angle-double-right").addClass("fa-angle-double-left"), t(".fixed-sn .double-nav").css({
                            transition: "all .3s ease-in-out",
                            "padding-left": "15.9rem"
                        }), t(".fixed-sn main, .fixed-sn footer").css({
                            transition: "all .3s ease-in-out",
                            "padding-left": "15rem"
                        })) : (e.$menu.addClass("slim"), t(".sv-slim-icon").removeClass("fa-angle-double-left").addClass("fa-angle-double-right"), t(".fixed-sn .double-nav").css("padding-left", "4.6rem"), t(".fixed-sn main, .fixed-sn footer").css({
                            "padding-left": "3.7rem"
                        }))
                    }))
                }
            }, {
                key: "touchmoveEventHandler",
                value: function(t) {
                    if ("touchmove" === t.type) {
                        var e = n(t.touches, 1)[0],
                            i = e.clientX;
                        Date.now() - this.lastTouchVelocity.x.startTime > 20 && (this.lastTouchVelocity.x.startPosition = e.clientX, this.lastTouchVelocity.x.startTime = Date.now()), this.disableScrolling(), 0 !== this.$sidenavOverlay.length || this.buildSidenavOverlay(), "left" === this.options.edge && (i > this.options.menuWidth ? i = this.options.menuWidth : i < 0 && (i = 0)), this.translateSidenavX(i), this.updateOverlayOpacity(i)
                    }
                }
            }, {
                key: "calculateTouchVelocityX",
                value: function() {
                    return Math.abs(this.lastTouchVelocity.x.endPosition - this.lastTouchVelocity.x.startPosition) / Math.abs(this.lastTouchVelocity.x.endTime - this.lastTouchVelocity.x.startTime)
                }
            }, {
                key: "touchendEventHandler",
                value: function(t) {
                    if ("touchend" === t.type) {
                        var e = t.changedTouches[0];
                        this.lastTouchVelocity.x.endTime = Date.now(), this.lastTouchVelocity.x.endPosition = e.clientX;
                        var i = this.calculateTouchVelocityX(),
                            n = e.clientX,
                            l = n - this.options.menuWidth,
                            o = n - this.options.menuWidth / 2;
                        l > 0 && (l = 0), o < 0 && (o = 0), "left" === this.options.edge ? (this.menuOut || i <= this.settings.menuLeftMinBorder || i < this.options.menuLeftMaxBorder ? (0 !== l && this.translateMenuX([0, l], "300"), this.showSidenavOverlay()) : (!this.menuOut || i > this.settings.menuLeftMinBorder) && (this.enableScrolling(), this.translateMenuX([-1 * this.options.menuWidth - this.options.menuVelocityOffset, l], "200"), this.hideSidenavOverlay()), this.$dragTarget.css({
                            width: "10px",
                            right: "",
                            left: 0
                        })) : this.menuOut && i >= this.settings.menuRightMinBorder || i > this.settings.menuRightMaxBorder ? (this.translateMenuX([0, o], "300"), this.showSidenavOverlay(), this.$dragTarget.css({
                            width: "50%",
                            right: "",
                            left: 0
                        })) : (!this.menuOut || i < this.settings.menuRightMinBorder) && (this.enableScrolling(), this.translateMenuX([this.options.menuWidth + this.options.menuVelocityOffset, o], "200"), this.hideSidenavOverlay(), this.$dragTarget.css({
                            width: "10px",
                            right: 0,
                            left: ""
                        }))
                    }
                }
            }, {
                key: "buildSidenavOverlay",
                value: function() {
                    var e = this;
                    !0 === this.options.showOverlay && (this.$sidenavOverlay = t('<div id="sidenav-overlay"></div>'), this.$sidenavOverlay.css("opacity", 0).on("click", (function() {
                        return e.removeMenu()
                    })), this.$body.append(this.$sidenavOverlay))
                }
            }, {
                key: "disableScrolling",
                value: function() {
                    var t = this.$body.innerWidth();
                    this.$body.css("overflow", "hidden"), this.$body.width(t)
                }
            }, {
                key: "enableScrolling",
                value: function() {
                    this.$body.css({
                        overflow: "",
                        width: ""
                    })
                }
            }, {
                key: "translateMenuX",
                value: function(t, e) {
                    this.$menu.velocity({
                        translateX: t
                    }, {
                        duration: "string" == typeof e ? Number(e) : e,
                        queue: !1,
                        easing: this.options.easingOpen
                    })
                }
            }, {
                key: "translateSidenavX",
                value: function(t) {
                    if ("left" === this.options.edge) {
                        var e = t >= this.options.menuWidth / 2;
                        this.menuOut = e, this.$menu.css("transform", "translateX(".concat(t - this.options.menuWidth, "px)"))
                    } else {
                        var i = t < window.innerWidth - this.options.menuWidth / 2;
                        this.menuOut = i;
                        var n = t - this.options.menuWidth / 2;
                        n < 0 && (n = 0), this.$menu.css("transform", "translateX(".concat(n, "px)"))
                    }
                }
            }, {
                key: "updateOverlayOpacity",
                value: function(t) {
                    var e;
                    e = "left" === this.options.edge ? t / this.options.menuWidth : Math.abs((t - window.innerWidth) / this.options.menuWidth), this.$sidenavOverlay.velocity({
                        opacity: e
                    }, {
                        duration: 10,
                        queue: !1,
                        easing: this.options.easingOpen
                    })
                }
            }, {
                key: "showSidenavOverlay",
                value: function() {
                    !0 !== this.options.showOverlay || t("#sidenav-overlay").length || this.buildSidenavOverlay(), this.$sidenavOverlay.velocity({
                        opacity: 1
                    }, {
                        duration: this.options.timeDurationOverlayOpen,
                        queue: !1,
                        easing: this.options.easingOpen
                    })
                }
            }, {
                key: "hideSidenavOverlay",
                value: function() {
                    this.$sidenavOverlay.velocity({
                        opacity: 0
                    }, {
                        duration: this.options.timeDurationOverlayClose,
                        queue: !1,
                        easing: this.options.easingOpen,
                        complete: function() {
                            t(this).remove()
                        }
                    })
                }
            }]) && l(i.prototype, o), a && l(i, a), e
        }();
        t.fn.sideNav = function(i) {
            t(this).each((function() {
                new e(t(this), i).init()
            }))
        }, t(".side-nav").on("touchmove", (function(t) {
            t.stopPropagation()
        }), !1)
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(69), i(71), i(72), i(66), i(54), i(64), i(73), i(74);

    function n(t) {
        return (n = "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)
    }
    jQuery((function() {
        $(".smooth-scroll").on("click", "a", (function(t) {
            t.preventDefault();
            var e = $(this),
                i = e.attr("href");
            if (void 0 !== n(i) && 0 === i.indexOf("#")) {
                var l = $(this).attr("data-offset") || 0;
                $("body,html").animate({
                    scrollTop: $(i).offset().top - l
                }, 700);
                var o = e.parentsUntil(".smooth-scroll").last().parent().attr("data-allow-hashes");
                void 0 !== n(o) && !1 !== o && history.replaceState(null, null, i)
            }
        }))
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(69), i(82), i(91), i(43), i(107), i(78), i(167), i(168), i(113), i(109);

    function n(t, e) {
        var i = Object.keys(t);
        if (Object.getOwnPropertySymbols) {
            var n = Object.getOwnPropertySymbols(t);
            e && (n = n.filter((function(e) {
                return Object.getOwnPropertyDescriptor(t, e).enumerable
            }))), i.push.apply(i, n)
        }
        return i
    }

    function l(t, e, i) {
        return e in t ? Object.defineProperty(t, e, {
            value: i,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : t[e] = i, t
    }

    function o(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }
    jQuery((function(t) {
        var e = function() {
            function e(i) {
                var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), this.$activator = i, this.$activates = t("#".concat(i.attr("data-activates"))), this.options = {
                    inDuration: this.fallback().or(i.data("induration")).or(i.attr("data-in-duration")).or(n.inDuration).or(300).value(),
                    outDuration: this.fallback().or(i.data("outduration")).or(i.attr("data-out-duration")).or(n.outDuration).or(225).value(),
                    easingEffectIn: this.fallback().or(i.data("easingeffectin")).or(i.attr("data-easing-effect-in")).or(n.easingEffectIn).or("easeOutCubic").value(),
                    easingEffectOut: this.fallback().or(i.data("easingeffectout")).or(i.attr("data-easing-effect-out")).or(n.easingEffectOut).or("swing").value(),
                    constrainWidth: this.fallback().or(i.data("constrainwidth")).or(i.attr("data-constrain-width")).or(n.constrainWidth).or(!0).value(),
                    hover: this.fallback().or(i.data("hover")).or(i.attr("data-hover")).or(n.hover).or(!1).value(),
                    gutter: this.fallback().or(i.data("gutter")).or(i.attr("data-gutter")).or(n.gutter).or(0).value(),
                    belowOrigin: this.fallback().or(i.data("beloworigin")).or(i.attr("data-below-origin")).or(n.belowOrigin).or(!1).value(),
                    alignment: this.fallback().or(i.data("alignment")).or(i.attr("data-alignment")).or(n.alignment).or("left").value(),
                    maxHeight: this.fallback().or(i.data("maxheight")).or(i.attr("data-max-height")).or(n.maxHeight).or("").value(),
                    resetScroll: this.fallback().or(i.data("resetscroll")).or(i.attr("data-reset-scroll")).or(n.resetScroll).or(!0).value()
                }, this.isFocused = !1
            }
            var i, a, r;
            return i = e, r = [{
                key: "mdbDropdownAutoInit",
                value: function() {
                    t(".dropdown-button").dropdown(), this.bindMultiLevelDropdownEvents(), this.bindBootstrapEvents()
                }
            }, {
                key: "bindMultiLevelDropdownEvents",
                value: function() {
                    t(".multi-level-dropdown .dropdown-submenu > a").on("mouseenter", (function(e) {
                        var i = t(this);
                        t(".multi-level-dropdown .dropdown-submenu .dropdown-menu").removeClass("show"), i.next(".dropdown-menu").addClass("show"), e.stopPropagation()
                    })), t(".multi-level-dropdown .dropdown").on("hidden.bs.dropdown", (function() {
                        t(".multi-level-dropdown .dropdown-menu.show").removeClass("show")
                    }))
                }
            }, {
                key: "bindBootstrapEvents",
                value: function() {
                    var e = this;
                    t(".dropdown, .dropup").on({
                        "show.bs.dropdown": function(i) {
                            var n = t(i.target),
                                l = e._getDropdownEffects(n);
                            e._dropdownEffectStart(n, l.effectIn)
                        },
                        "shown.bs.dropdown": function(i) {
                            var n = t(i.target),
                                l = e._getDropdownEffects(n);
                            l.effectIn && l.effectOut && e._dropdownEffectEnd(n, l)
                        },
                        "hide.bs.dropdown": function(i) {
                            var n = window.matchMedia("(prefers-reduced-motion: reduce)").matches,
                                l = t(i.target),
                                o = e._getDropdownEffects(l);
                            o.effectOut && (n || i.preventDefault(), e._dropdownEffectStart(l, o.effectOut), e._dropdownEffectEnd(l, o, (function() {
                                l.removeClass("show"), l.find(".dropdown-menu").removeClass("show")
                            })))
                        }
                    })
                }
            }, {
                key: "_getDropdownEffects",
                value: function(t) {
                    var e = "fadeIn",
                        i = "fadeOut",
                        n = t.find(".dropdown-menu"),
                        l = t.parents("ul.nav");
                    return l.height > 0 && (e = l.data("dropdown-in") || null, i = l.data("dropdown-out") || null), {
                        effectIn: n.data("dropdown-in") || e,
                        effectOut: n.data("dropdown-out") || i
                    }
                }
            }, {
                key: "_dropdownEffectStart",
                value: function(t, e) {
                    e && (t.addClass("dropdown-animating"), t.find(".dropdown-menu").addClass(["animated", e].join(" ")))
                }
            }, {
                key: "_dropdownEffectEnd",
                value: function(t, e, i) {
                    t.one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", (function() {
                        t.removeClass("dropdown-animating"), t.find(".dropdown-menu").removeClass(["animated", e.effectIn, e.effectOut].join(" ")), "function" == typeof i && i()
                    }))
                }
            }], (a = [{
                key: "returnPublicInterface",
                value: function() {
                    return {
                        $activator: this.$activator,
                        $activates: this.$activates,
                        updatePosition: this.updatePosition.bind(this)
                    }
                }
            }, {
                key: "init",
                value: function() {
                    this.appendDropdownToActivator(), this.options.hover ? this.handleHoverableDropdown() : this.handleClickableDropdown(), this.bindEvents()
                }
            }, {
                key: "appendDropdownToActivator",
                value: function() {
                    this.$activator.after(this.$activates)
                }
            }, {
                key: "handleHoverableDropdown",
                value: function() {
                    var e = this,
                        i = !1;
                    this.$activator.unbind("click.".concat(this.$activator.attr("id"))), this.$activator.on("mouseenter", (function() {
                        !1 === i && (e.placeDropdown(), i = !0)
                    })), this.$activator.on("mouseleave", (function(n) {
                        var l = n.toElement || n.relatedTarget;
                        t(l).closest(".dropdown-content").is(e.$activates) || (e.$activates.stop(!0, !0), e.hideDropdown(), i = !1)
                    })), this.$activates.on("mouseleave", (function(n) {
                        var l = n.toElement || n.relatedTarget;
                        t(l).closest(".dropdown-button").is(e.$activator) || (e.$activates.stop(!0, !0), e.hideDropdown(), i = !1)
                    }))
                }
            }, {
                key: "handleClickableDropdown",
                value: function() {
                    var e = this;
                    this.$activator.unbind("click.".concat(this.$activator.attr("id"))), this.$activator.bind("click.".concat(this.$activator.attr("id")), (function(i) {
                        if (!e.isFocused) {
                            var n = e.$activator.get(0) === i.currentTarget,
                                l = e.$activator.hasClass("active"),
                                o = 0 !== t(i.target).closest(".dropdown-content").length;
                            !n || l || o ? l && (e.hideDropdown(), t(document).unbind("click.".concat(e.$activates.attr("id"), " touchstart.").concat(e.$activates.attr("id")))) : (i.preventDefault(), e.placeDropdown("click")), e.$activates.hasClass("active") && t(document).bind("click.".concat(e.$activates.attr("id"), " touchstart.").concat(e.$activates.attr("id")), (function(i) {
                                !e.$activates.is(i.target) && !e.$activator.is(i.target) && !e.$activator.find(i.target).length && (e.hideDropdown(), t(document).unbind("click.".concat(e.$activates.attr("id"), " touchstart.").concat(e.$activates.attr("id"))))
                            }))
                        }
                    }))
                }
            }, {
                key: "bindEvents",
                value: function() {
                    var t = this;
                    this.$activator.on("open", (function(e, i) {
                        t.placeDropdown(i)
                    })), this.$activator.on("close", this.hideDropdown.bind(this))
                }
            }, {
                key: "placeDropdown",
                value: function(t) {
                    "focus" === t && (this.isFocused = !0), this.$activates.addClass("active"), this.$activator.addClass("active"), !0 === this.options.constrainWidth ? this.$activates.css("width", this.$activator.outerWidth()) : this.$activates.css("white-space", "nowrap"), this.updatePosition(), this.showDropdown()
                }
            }, {
                key: "showDropdown",
                value: function() {
                    this.$activates.stop(!0, !0).css("opacity", 0).slideDown({
                        queue: !1,
                        duration: this.options.inDuration,
                        easing: this.options.easingEffectIn,
                        complete: function() {
                            t(this).css("height", "")
                        }
                    }).animate(function(t) {
                        for (var e = 1; e < arguments.length; e++) {
                            var i = null != arguments[e] ? arguments[e] : {};
                            e % 2 ? n(i, !0).forEach((function(e) {
                                l(t, e, i[e])
                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(i)) : n(i).forEach((function(e) {
                                Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(i, e))
                            }))
                        }
                        return t
                    }({
                        opacity: 1
                    }, this.options.resetScroll && {
                        scrollTop: 0
                    }), {
                        queue: !1,
                        duration: this.options.inDuration,
                        easing: "easeOutSine"
                    })
                }
            }, {
                key: "hideDropdown",
                value: function() {
                    var t = this;
                    this.isFocused = !1, this.$activates.fadeOut({
                        durations: this.options.outDuration,
                        easing: this.options.easingEffectOut
                    }), this.$activates.removeClass("active"), this.$activator.removeClass("active"), setTimeout((function() {
                        t.$activates.css("max-height", t.options.maxHeight)
                    }), this.options.outDuration)
                }
            }, {
                key: "updatePosition",
                value: function() {
                    var e = window.innerHeight,
                        i = this.$activator.innerHeight(),
                        n = this.$activator.offset().top - t(window).scrollTop(),
                        l = this._getHorizontalAlignment(),
                        o = 0,
                        a = 0,
                        r = this.$activator.parent(),
                        s = this.options.belowOrigin ? i : 0,
                        c = !r.is("body") && r.get(0).scrollHeight > r.get(0).clientHeight ? r.get(0).scrollTop : 0,
                        u = n + this.$activates.innerHeight() > e,
                        h = n + i - this.$activates.innerHeight() < 0;
                    if (u && h) {
                        var d = e - n - s;
                        this.$activates.css("max-height", d)
                    } else u && (s || (s += i), s -= this.$activates.innerHeight());
                    "left" === l ? (o = this.options.gutter, a = this.$activator.position().left + o) : "right" === l && (a = this.$activator.position().left + this.$activator.outerWidth() - this.$activates.outerWidth() + (o = -this.options.gutter)), this.$activates.css({
                        position: "absolute",
                        top: this.$activator.position().top + s + c,
                        left: a
                    })
                }
            }, {
                key: "_getHorizontalAlignment",
                value: function() {
                    var e = this.$activator.offset().left;
                    return e + this.$activates.innerWidth() > t(window).width() ? "right" : e - this.$activates.innerWidth() + this.$activator.innerWidth() < 0 ? "left" : this.options.alignment
                }
            }, {
                key: "fallback",
                value: function() {
                    return {
                        _value: void 0,
                        or: function(t) {
                            return void 0 !== t && void 0 === this._value && (this._value = t), this
                        },
                        value: function() {
                            return this._value
                        }
                    }
                }
            }]) && o(i.prototype, a), r && o(i, r), e
        }();
        t.fn.scrollTo = function(e) {
            return this.scrollTop(this.scrollTop() - this.offset().top + t(e).offset().top), this
        }, t.fn.dropdown = function(t) {
            if (this.length > 1) {
                var i = [];
                return this.each((function() {
                    var n = new e(this, t);
                    n.init(), i.push(n.returnPublicInterface())
                })), i
            }
            var n = new e(this, t);
            return n.init(), n.returnPublicInterface()
        }, t.dropdown = {
            initAnimations: function() {
                e.bindBootstrapEvents()
            }
        }, e.mdbDropdownAutoInit()
    }))
}, function(t, e, i) {
    var n = i(3),
        l = i(1),
        o = i(10),
        a = i(22).f,
        r = i(7),
        s = l((function() {
            a(1)
        }));
    n({
        target: "Object",
        stat: !0,
        forced: !r || s,
        sham: !r
    }, {
        getOwnPropertyDescriptor: function(t, e) {
            return a(o(t), e)
        }
    })
}, function(t, e, i) {
    var n = i(3),
        l = i(7),
        o = i(53),
        a = i(10),
        r = i(22),
        s = i(67);
    n({
        target: "Object",
        stat: !0,
        sham: !l
    }, {
        getOwnPropertyDescriptors: function(t) {
            for (var e, i, n = a(t), l = r.f, c = o(n), u = {}, h = 0; c.length > h;) void 0 !== (i = l(n, e = c[h++])) && s(u, e, i);
            return u
        }
    })
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(43), i(66);

    function n(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }
    jQuery((function(t) {
        var e = function() {
            function e(t) {
                var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), this.$searchWrappers = t, this.options = {
                    color: this.fallback().or(i.color).or("#000").value(),
                    backgroundColor: this.fallback().or(i.backgroundColor).or("").value(),
                    fontSize: this.fallback().or(i.fontSize).or(".9rem").value(),
                    fontWeight: this.fallback().or(i.fontWeight).or("400").value(),
                    borderRadius: this.fallback().or(i.borderRadius).or("").value(),
                    borderColor: this.fallback().or(i.borderColor).or("").value(),
                    margin: this.fallback().or(i.margin).or("").value()
                }
            }
            var i, l, o;
            return i = e, (l = [{
                key: "init",
                value: function() {
                    return this.bindSearchEvents(), this.$searchWrappers.css({
                        color: this.options.color,
                        backgroundColor: this.options.backgroundColor,
                        fontSize: this.options.fontSize,
                        fontWeight: this.options.fontWeight,
                        borderRadius: this.options.borderRadius,
                        borderColor: this.options.borderColor,
                        margin: this.options.margin
                    })
                }
            }, {
                key: "bindSearchEvents",
                value: function() {
                    this.$searchWrappers.each((function() {
                        var e = t(this).find("input").first();
                        e.on("keyup", (function() {
                            e.closest("div[id]").find("a, li").each((function() {
                                var i = t(this);
                                i.html().toLowerCase().indexOf(e.val().toLowerCase()) > -1 ? i.css({
                                    display: ""
                                }) : i.css({
                                    display: "none"
                                })
                            }))
                        }))
                    }))
                }
            }, {
                key: "fallback",
                value: function() {
                    return {
                        _value: void 0,
                        or: function(t) {
                            return void 0 !== t && void 0 === this._value && (this._value = t), this
                        },
                        value: function() {
                            return this._value
                        }
                    }
                }
            }]) && n(i.prototype, l), o && n(i, o), e
        }();
        t.fn.mdbDropSearch = function(t) {
            return new e(this, t).init()
        }
    }))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(82), i(43), i(107), i(66), i(108), i(89), i(64), i(68), i(97), i(86), i(112), i(109);
    var n = i(126);

    function l(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }
    jQuery((function(t) {
        var e, i = function() {
            function e(t) {
                var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), this.options = {
                    destroy: this.fallback().or(i.destroy).or(!1).value(),
                    validate: this.fallback().or(t.attr("data-validate")).or(i.validate).or(!1).value(),
                    selectId: this.fallback().or(t.attr("data-select-id")).or(i.selectId).or(null).value(),
                    defaultMaterialInput: this.fallback().or(t.attr("data-default-material-input")).or(i.defaultMaterialInput).or(!1).value(),
                    fasClasses: this.fallback().or(t.attr("data-fas-classes")).or(i.fasClasses).or("").value(),
                    farClasses: this.fallback().or(t.attr("data-far-classes")).or(i.farClasses).or("").value(),
                    fabClasses: this.fallback().or(t.attr("data-fab-classes")).or(i.fabClasses).or("").value(),
                    copyClassesOption: this.fallback().or(t.attr("data-copy-classes-option")).or(i.copyClassesOption).or(!1).value(),
                    labels: {
                        selectAll: this.fallback().or(t.attr("data-label-select-all")).or((i.labels || {}).selectAll).or("Select all").value(),
                        optionsSelected: this.fallback().or(t.attr("data-label-options-selected")).or((i.labels || {}).optionsSelected).or("options selected").value(),
                        validFeedback: this.fallback().or(t.attr("data-label-valid-feedback")).or((i.labels || {}).validFeedback).or("Ok").value(),
                        invalidFeedback: this.fallback().or(t.attr("data-label-invalid-feedback")).or((i.labels || {}).invalidFeedback).or("Incorrect value").value(),
                        noSearchResults: this.fallback().or(t.attr("data-label-no-search-results")).or((i.labels || {}).noSearchResults).or("No results").value()
                    },
                    keyboardActiveClass: this.fallback().or(t.attr("data-keyboard-active-class")).or(i.keyboardActiveClass).or("heavy-rain-gradient").value(),
                    placeholder: this.fallback().or(t.attr("data-placeholder")).or(i.placeholder).or(null).value(),
                    visibleOptions: this.fallback().or(t.attr("data-visible-options")).or(i.visibleOptions).or(5).value(),
                    maxSelectedOptions: this.fallback().or(t.attr("data-max-selected-options")).or(i.maxSelectedOptions).or(5).value(),
                    showResetButton: this.fallback().or(t.attr("data-show-reset-button")).or(i.showResetButton).or(!1).value()
                }, this.uuid = t.attr("id") || this.options.selectId || this._randomUUID(), this.view = new n.default(t, {
                    options: this.options,
                    properties: {
                        id: this.uuid
                    }
                }), this.selectedOptionsIndexes = [], e.mutationObservers = []
            }
            var i, o, a;
            return i = e, a = [{
                key: "clearMutationObservers",
                value: function() {
                    e.mutationObservers.forEach((function(t) {
                        t.disconnect(), t.customStatus = "stopped"
                    }))
                }
            }, {
                key: "mdbSelectAutoInit",
                value: function() {
                    t(".mdb-select.mdb-select-autoinit").materialSelect()
                }
            }], (o = [{
                key: "init",
                value: function() {
                    var t = this;
                    this.options.destroy ? this.view.destroy() : (this.isInitialized && this.view.destroy(), this.view.render(), this.view.selectPreselectedOptions((function(e) {
                        return t._toggleSelectedValue(e)
                    })), this.bindEvents())
                }
            }, {
                key: "bindEvents",
                value: function() {
                    var t = this;
                    this.bindMutationObserverChange(), this.view.isEditable && this.view.isSearchable && this.view.bindResetButtonClick((function() {
                        return t._resetSelection()
                    })), this.view.bindAddNewOptionClick(), this.view.bindMaterialSelectFocus(), this.view.bindMaterialSelectClick(), this.view.bindMaterialSelectBlur(), this.view.bindMaterialOptionsListTouchstart(), this.view.bindMaterialSelectKeydown(), this.view.bindMaterialSelectDropdownToggle(), this.view.bindToggleAllClick((function(e) {
                        return t._toggleSelectedValue(e)
                    })), this.view.bindMaterialOptionMousedown(), this.view.bindMaterialOptionClick((function(e) {
                        return t._toggleSelectedValue(e)
                    })), !this.view.isMultiple && this.view.isSearchable && this.view.bindSingleMaterialOptionClick(), this.view.isSearchable && this.view.bindSearchInputKeyup(), this.view.bindHtmlClick(), this.view.bindMobileDevicesMousedown(), this.view.bindSaveBtnClick()
                }
            }, {
                key: "bindMutationObserverChange",
                value: function() {
                    var t = new MutationObserver(this._onMutationObserverChange.bind(this));
                    t.observe(this.view.$nativeSelect.get(0), {
                        attributes: !0,
                        childList: !0,
                        characterData: !0,
                        subtree: !0
                    }), t.customId = this.uuid, t.customStatus = "observing", e.clearMutationObservers(), e.mutationObservers.push(t)
                }
            }, {
                key: "_onMutationObserverChange",
                value: function(e) {
                    e.forEach((function(e) {
                        var i = t(e.target).closest("select");
                        !0 !== i.data("stop-refresh") && ("childList" === e.type || "attributes" === e.type && t(e.target).is("option")) && (i.materialSelect({
                            destroy: !0
                        }), i.materialSelect())
                    }))
                }
            }, {
                key: "_resetSelection",
                value: function() {
                    this.selectedOptionsIndexes = [], this.view.$nativeSelect.find("option").prop("selected", !1)
                }
            }, {
                key: "_toggleSelectedValue",
                value: function(t) {
                    var e = this.selectedOptionsIndexes.indexOf(t),
                        i = -1 !== e;
                    return i ? this.selectedOptionsIndexes.splice(e, 1) : this.selectedOptionsIndexes.push(t), this.view.$nativeSelect.find("option").eq(t).prop("selected", !i), this._setValueToMaterialSelect(), !i
                }
            }, {
                key: "_setValueToMaterialSelect",
                value: function() {
                    var t = this,
                        e = "",
                        i = this.selectedOptionsIndexes.length;
                    this.selectedOptionsIndexes.forEach((function(i) {
                        return e += ", ".concat(t.view.$nativeSelect.find("option").eq(i).text().replace(/  +/g, " ").trim())
                    })), 0 === (e = this.options.maxSelectedOptions >= 0 && i > this.options.maxSelectedOptions ? "".concat(i, " ").concat(this.options.labels.optionsSelected) : e.substring(2)).length && (e = this.view.$nativeSelect.find("option:disabled").eq(0).text()), this.view.$nativeSelect.siblings("".concat(this.options.defaultMaterialInput ? "input.multi-bs-select" : "input.select-dropdown")).val(e)
                }
            }, {
                key: "_randomUUID",
                value: function() {
                    var t = (new Date).getTime();
                    return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (function(e) {
                        var i = (t + 16 * Math.random()) % 16 | 0;
                        return t = Math.floor(t / 16), ("x" === e ? i : 3 & i | 8).toString(16)
                    }))
                }
            }, {
                key: "fallback",
                value: function() {
                    return {
                        _value: void 0,
                        or: function(t) {
                            return void 0 !== t && void 0 === this._value && (this._value = t), this
                        },
                        value: function() {
                            return this._value
                        }
                    }
                }
            }, {
                key: "isInitialized",
                get: function() {
                    return Boolean(this.view.$nativeSelect.data("select-id")) && this.view.$nativeSelect.hasClass("initialized")
                }
            }]) && l(i.prototype, o), a && l(i, a), e
        }();
        t.fn.materialSelect = function(e) {
            t(this).not(".browser-default").not(".custom-select").each((function() {
                new i(t(this), e).init()
            }))
        }, e = t.fn.val, t.fn.val = function(t) {
            if (!arguments.length) return e.call(this);
            if (!0 !== this.data("stop-refresh") && this.hasClass("mdb-select") && this.hasClass("initialized")) {
                i.clearMutationObservers(), this.materialSelect({
                    destroy: !0
                });
                var n = e.call(this, t);
                return this.materialSelect(), n
            }
            return e.call(this, t)
        }, i.mdbSelectAutoInit()
    }))
}, , , function(t, e, i) {
    var n = i(3),
        l = i(141),
        o = i(52);
    n({
        target: "Array",
        proto: !0
    }, {
        fill: l
    }), o("fill")
}, function(t, e) {
    ! function(t) {
        t("body").on("shown.bs.modal", ".modal", (function() {
            t(".modal-backdrop").length || ($modal_dialog = t(this).children(".modal-dialog"), $modal_dialog.hasClass("modal-side") && (t(this).addClass("modal-scrolling"), t("body").addClass("scrollable")), $modal_dialog.hasClass("modal-frame") && (t(this).addClass("modal-content-clickable"), t("body").addClass("scrollable")))
        })), t("body").on("hidden.bs.modal", ".modal", (function() {
            t("body").removeClass("scrollable")
        }))
    }(jQuery)
}, function(t, e) {
    jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, {
        def: "easeOutQuad",
        swing: function(t, e, i, n, l) {
            return jQuery.easing[jQuery.easing.def](t, e, i, n, l)
        },
        easeInQuad: function(t, e, i, n, l) {
            return n * (e /= l) * e + i
        },
        easeOutQuad: function(t, e, i, n, l) {
            return -n * (e /= l) * (e - 2) + i
        },
        easeInOutQuad: function(t, e, i, n, l) {
            return (e /= l / 2) < 1 ? n / 2 * e * e + i : -n / 2 * (--e * (e - 2) - 1) + i
        },
        easeInCubic: function(t, e, i, n, l) {
            return n * (e /= l) * e * e + i
        },
        easeOutCubic: function(t, e, i, n, l) {
            return n * ((e = e / l - 1) * e * e + 1) + i
        },
        easeInOutCubic: function(t, e, i, n, l) {
            return (e /= l / 2) < 1 ? n / 2 * e * e * e + i : n / 2 * ((e -= 2) * e * e + 2) + i
        },
        easeInQuart: function(t, e, i, n, l) {
            return n * (e /= l) * e * e * e + i
        },
        easeOutQuart: function(t, e, i, n, l) {
            return -n * ((e = e / l - 1) * e * e * e - 1) + i
        },
        easeInOutQuart: function(t, e, i, n, l) {
            return (e /= l / 2) < 1 ? n / 2 * e * e * e * e + i : -n / 2 * ((e -= 2) * e * e * e - 2) + i
        },
        easeInQuint: function(t, e, i, n, l) {
            return n * (e /= l) * e * e * e * e + i
        },
        easeOutQuint: function(t, e, i, n, l) {
            return n * ((e = e / l - 1) * e * e * e * e + 1) + i
        },
        easeInOutQuint: function(t, e, i, n, l) {
            return (e /= l / 2) < 1 ? n / 2 * e * e * e * e * e + i : n / 2 * ((e -= 2) * e * e * e * e + 2) + i
        },
        easeInSine: function(t, e, i, n, l) {
            return -n * Math.cos(e / l * (Math.PI / 2)) + n + i
        },
        easeOutSine: function(t, e, i, n, l) {
            return n * Math.sin(e / l * (Math.PI / 2)) + i
        },
        easeInOutSine: function(t, e, i, n, l) {
            return -n / 2 * (Math.cos(Math.PI * e / l) - 1) + i
        },
        easeInExpo: function(t, e, i, n, l) {
            return 0 == e ? i : n * Math.pow(2, 10 * (e / l - 1)) + i
        },
        easeOutExpo: function(t, e, i, n, l) {
            return e == l ? i + n : n * (1 - Math.pow(2, -10 * e / l)) + i
        },
        easeInOutExpo: function(t, e, i, n, l) {
            return 0 == e ? i : e == l ? i + n : (e /= l / 2) < 1 ? n / 2 * Math.pow(2, 10 * (e - 1)) + i : n / 2 * (2 - Math.pow(2, -10 * --e)) + i
        },
        easeInCirc: function(t, e, i, n, l) {
            return -n * (Math.sqrt(1 - (e /= l) * e) - 1) + i
        },
        easeOutCirc: function(t, e, i, n, l) {
            return n * Math.sqrt(1 - (e = e / l - 1) * e) + i
        },
        easeInOutCirc: function(t, e, i, n, l) {
            return (e /= l / 2) < 1 ? -n / 2 * (Math.sqrt(1 - e * e) - 1) + i : n / 2 * (Math.sqrt(1 - (e -= 2) * e) + 1) + i
        },
        easeInElastic: function(t, e, i, n, l) {
            var o = 1.70158,
                a = 0,
                r = n;
            if (0 == e) return i;
            if (1 == (e /= l)) return i + n;
            if (a || (a = .3 * l), r < Math.abs(n)) {
                r = n;
                o = a / 4
            } else o = a / (2 * Math.PI) * Math.asin(n / r);
            return -r * Math.pow(2, 10 * (e -= 1)) * Math.sin((e * l - o) * (2 * Math.PI) / a) + i
        },
        easeOutElastic: function(t, e, i, n, l) {
            var o = 1.70158,
                a = 0,
                r = n;
            if (0 == e) return i;
            if (1 == (e /= l)) return i + n;
            if (a || (a = .3 * l), r < Math.abs(n)) {
                r = n;
                o = a / 4
            } else o = a / (2 * Math.PI) * Math.asin(n / r);
            return r * Math.pow(2, -10 * e) * Math.sin((e * l - o) * (2 * Math.PI) / a) + n + i
        },
        easeInOutElastic: function(t, e, i, n, l) {
            var o = 1.70158,
                a = 0,
                r = n;
            if (0 == e) return i;
            if (2 == (e /= l / 2)) return i + n;
            if (a || (a = l * (.3 * 1.5)), r < Math.abs(n)) {
                r = n;
                o = a / 4
            } else o = a / (2 * Math.PI) * Math.asin(n / r);
            return e < 1 ? r * Math.pow(2, 10 * (e -= 1)) * Math.sin((e * l - o) * (2 * Math.PI) / a) * -.5 + i : r * Math.pow(2, -10 * (e -= 1)) * Math.sin((e * l - o) * (2 * Math.PI) / a) * .5 + n + i
        },
        easeInBack: function(t, e, i, n, l, o) {
            return null == o && (o = 1.70158), n * (e /= l) * e * ((o + 1) * e - o) + i
        },
        easeOutBack: function(t, e, i, n, l, o) {
            return null == o && (o = 1.70158), n * ((e = e / l - 1) * e * ((o + 1) * e + o) + 1) + i
        },
        easeInOutBack: function(t, e, i, n, l, o) {
            return null == o && (o = 1.70158), (e /= l / 2) < 1 ? n / 2 * (e * e * ((1 + (o *= 1.525)) * e - o)) + i : n / 2 * ((e -= 2) * e * ((1 + (o *= 1.525)) * e + o) + 2) + i
        },
        easeInBounce: function(t, e, i, n, l) {
            return n - jQuery.easing.easeOutBounce(t, l - e, 0, n, l) + i
        },
        easeOutBounce: function(t, e, i, n, l) {
            return (e /= l) < 1 / 2.75 ? n * (7.5625 * e * e) + i : e < 2 / 2.75 ? n * (7.5625 * (e -= 1.5 / 2.75) * e + .75) + i : e < 2.5 / 2.75 ? n * (7.5625 * (e -= 2.25 / 2.75) * e + .9375) + i : n * (7.5625 * (e -= 2.625 / 2.75) * e + .984375) + i
        },
        easeInOutBounce: function(t, e, i, n, l) {
            return e < l / 2 ? .5 * jQuery.easing.easeInBounce(t, 2 * e, 0, n, l) + i : .5 * jQuery.easing.easeOutBounce(t, 2 * e - l, 0, n, l) + .5 * n + i
        }
    })
}, function(t, e, i) {
    "use strict";
    (function(t) {
        var e;
        i(69), i(71), i(72), i(82), i(54), i(78), i(133), i(100), i(177), i(89), i(64), i(115), i(119), i(127), i(68), i(97), i(73), i(117), i(86), i(98), i(179), i(184), i(186), i(187), i(188), i(189), i(190), i(191), i(192), i(193), i(194), i(195), i(196), i(197), i(198), i(199), i(200), i(201), i(202), i(203), i(204), i(205), i(206), i(207), i(74);

        function n(t) {
            return (n = "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)
        }
        /*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */
        /*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */
        /*! Note that this has been modified by Materialize to confirm that Velocity is not already being imported. */
        jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity.") : (function(t) {
            function e(t) {
                var e = t.length,
                    n = i.type(t);
                return "function" !== n && !i.isWindow(t) && (!(1 !== t.nodeType || !e) || ("array" === n || 0 === e || "number" == typeof e && e > 0 && e - 1 in t))
            }
            if (!t.jQuery) {
                var i = function t(e, i) {
                    return new t.fn.init(e, i)
                };
                i.isWindow = function(t) {
                    return null != t && t == t.window
                }, i.type = function(t) {
                    return null == t ? t + "" : "object" == n(t) || "function" == typeof t ? o[r.call(t)] || "object" : n(t)
                }, i.isArray = Array.isArray || function(t) {
                    return "array" === i.type(t)
                }, i.isPlainObject = function(t) {
                    var e;
                    if (!t || "object" !== i.type(t) || t.nodeType || i.isWindow(t)) return !1;
                    try {
                        if (t.constructor && !a.call(t, "constructor") && !a.call(t.constructor.prototype, "isPrototypeOf")) return !1
                    } catch (t) {
                        return !1
                    }
                    for (e in t);
                    return void 0 === e || a.call(t, e)
                }, i.each = function(t, i, n) {
                    var l = 0,
                        o = t.length,
                        a = e(t);
                    if (n) {
                        if (a)
                            for (; o > l && !1 !== i.apply(t[l], n); l++);
                        else
                            for (l in t)
                                if (!1 === i.apply(t[l], n)) break
                    } else if (a)
                        for (; o > l && !1 !== i.call(t[l], l, t[l]); l++);
                    else
                        for (l in t)
                            if (!1 === i.call(t[l], l, t[l])) break;
                    return t
                }, i.data = function(t, e, n) {
                    if (void 0 === n) {
                        var o = (a = t[i.expando]) && l[a];
                        if (void 0 === e) return o;
                        if (o && e in o) return o[e]
                    } else if (void 0 !== e) {
                        var a = t[i.expando] || (t[i.expando] = ++i.uuid);
                        return l[a] = l[a] || {}, l[a][e] = n, n
                    }
                }, i.removeData = function(t, e) {
                    var n = t[i.expando],
                        o = n && l[n];
                    o && i.each(e, (function(t, e) {
                        delete o[e]
                    }))
                }, i.extend = function() {
                    var t, e, l, o, a, r, s = arguments[0] || {},
                        c = 1,
                        u = arguments.length,
                        h = !1;
                    for ("boolean" == typeof s && (h = s, s = arguments[c] || {}, c++), "object" != n(s) && "function" !== i.type(s) && (s = {}), c === u && (s = this, c--); u > c; c++)
                        if (null != (a = arguments[c]))
                            for (o in a) t = s[o], s !== (l = a[o]) && (h && l && (i.isPlainObject(l) || (e = i.isArray(l))) ? (e ? (e = !1, r = t && i.isArray(t) ? t : []) : r = t && i.isPlainObject(t) ? t : {}, s[o] = i.extend(h, r, l)) : void 0 !== l && (s[o] = l));
                    return s
                }, i.queue = function(t, n, l) {
                    if (t) {
                        n = (n || "fx") + "queue";
                        var o = i.data(t, n);
                        return l ? (!o || i.isArray(l) ? o = i.data(t, n, function(t, i) {
                            var n = i || [];
                            return null != t && (e(Object(t)) ? function(t, e) {
                                for (var i = +e.length, n = 0, l = t.length; i > n;) t[l++] = e[n++];
                                if (i != i)
                                    for (; void 0 !== e[n];) t[l++] = e[n++];
                                t.length = l
                            }(n, "string" == typeof t ? [t] : t) : [].push.call(n, t)), n
                        }(l)) : o.push(l), o) : o || []
                    }
                }, i.dequeue = function(t, e) {
                    i.each(t.nodeType ? [t] : t, (function(t, n) {
                        e = e || "fx";
                        var l = i.queue(n, e),
                            o = l.shift();
                        "inprogress" === o && (o = l.shift()), o && ("fx" === e && l.unshift("inprogress"), o.call(n, (function() {
                            i.dequeue(n, e)
                        })))
                    }))
                }, i.fn = i.prototype = {
                    init: function(t) {
                        if (t.nodeType) return this[0] = t, this;
                        throw new Error("Not a DOM node.")
                    },
                    offset: function() {
                        var e = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {
                            top: 0,
                            left: 0
                        };
                        return {
                            top: e.top + (t.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),
                            left: e.left + (t.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)
                        }
                    },
                    position: function() {
                        function t() {
                            for (var t = this.offsetParent || document; t && "html" === !t.nodeType.toLowerCase && "static" === t.style.position;) t = t.offsetParent;
                            return t || document
                        }
                        var e = this[0],
                            t = t.apply(e),
                            n = this.offset(),
                            l = /^(?:body|html)$/i.test(t.nodeName) ? {
                                top: 0,
                                left: 0
                            } : i(t).offset();
                        return n.top -= parseFloat(e.style.marginTop) || 0, n.left -= parseFloat(e.style.marginLeft) || 0, t.style && (l.top += parseFloat(t.style.borderTopWidth) || 0, l.left += parseFloat(t.style.borderLeftWidth) || 0), {
                            top: n.top - l.top,
                            left: n.left - l.left
                        }
                    }
                };
                var l = {};
                i.expando = "velocity" + (new Date).getTime(), i.uuid = 0;
                for (var o = {}, a = o.hasOwnProperty, r = o.toString, s = "Boolean Number String Function Array Date RegExp Object Error".split(" "), c = 0; c < s.length; c++) o["[object " + s[c] + "]"] = s[c].toLowerCase();
                i.fn.init.prototype = i.fn, t.Velocity = {
                    Utilities: i
                }
            }
        }(window), e = function() {
            return function(t, e, i, l) {
                function o(t) {
                    return m.isWrapped(t) ? t = [].slice.call(t) : m.isNode(t) && (t = [t]), t
                }

                function a(t) {
                    var e = d.data(t, "velocity");
                    return null === e ? l : e
                }

                function r(t) {
                    return function(e) {
                        return Math.round(e * t) * (1 / t)
                    }
                }

                function s(t, i, n, l) {
                    function o(t, e) {
                        return 1 - 3 * e + 3 * t
                    }

                    function a(t, e) {
                        return 3 * e - 6 * t
                    }

                    function r(t) {
                        return 3 * t
                    }

                    function s(t, e, i) {
                        return ((o(e, i) * t + a(e, i)) * t + r(e)) * t
                    }

                    function c(t, e, i) {
                        return 3 * o(e, i) * t * t + 2 * a(e, i) * t + r(e)
                    }

                    function u(e, i) {
                        for (var l = 0; p > l; ++l) {
                            var o = c(i, t, n);
                            if (0 === o) return i;
                            i -= (s(i, t, n) - e) / o
                        }
                        return i
                    }

                    function h(e, i, l) {
                        var o, a, r = 0;
                        do {
                            (o = s(a = i + (l - i) / 2, t, n) - e) > 0 ? l = a : i = a
                        } while (Math.abs(o) > m && ++r < v);
                        return a
                    }

                    function d() {
                        k = !0, (t != i || n != l) && function() {
                            for (var e = 0; g > e; ++e) w[e] = s(e * y, t, n)
                        }()
                    }
                    var p = 4,
                        f = .001,
                        m = 1e-7,
                        v = 10,
                        g = 11,
                        y = 1 / (g - 1),
                        b = "Float32Array" in e;
                    if (4 !== arguments.length) return !1;
                    for (var x = 0; 4 > x; ++x)
                        if ("number" != typeof arguments[x] || isNaN(arguments[x]) || !isFinite(arguments[x])) return !1;
                    t = Math.min(t, 1), n = Math.min(n, 1), t = Math.max(t, 0), n = Math.max(n, 0);
                    var w = b ? new Float32Array(g) : new Array(g),
                        k = !1,
                        S = function(e) {
                            return k || d(), t === i && n === l ? e : 0 === e ? 0 : 1 === e ? 1 : s(function(e) {
                                for (var i = 0, l = 1, o = g - 1; l != o && w[l] <= e; ++l) i += y;
                                var a = i + (e - w[--l]) / (w[l + 1] - w[l]) * y,
                                    r = c(a, t, n);
                                return r >= f ? u(e, a) : 0 == r ? a : h(e, i, i + y)
                            }(e), i, l)
                        };
                    S.getControlPoints = function() {
                        return [{
                            x: t,
                            y: i
                        }, {
                            x: n,
                            y: l
                        }]
                    };
                    var M = "generateBezier(" + [t, i, n, l] + ")";
                    return S.toString = function() {
                        return M
                    }, S
                }

                function c(t, e) {
                    var i = t;
                    return m.isString(t) ? b.Easings[t] || (i = !1) : i = m.isArray(t) && 1 === t.length ? r.apply(null, t) : m.isArray(t) && 2 === t.length ? x.apply(null, t.concat([e])) : !(!m.isArray(t) || 4 !== t.length) && s.apply(null, t), !1 === i && (i = b.Easings[b.defaults.easing] ? b.defaults.easing : y), i
                }

                function u(t) {
                    if (t) {
                        var e = (new Date).getTime(),
                            i = b.State.calls.length;
                        i > 1e4 && (b.State.calls = function(t) {
                            for (var e = -1, i = t ? t.length : 0, n = []; ++e < i;) {
                                var l = t[e];
                                l && n.push(l)
                            }
                            return n
                        }(b.State.calls));
                        for (var n = 0; i > n; n++)
                            if (b.State.calls[n]) {
                                var o = b.State.calls[n],
                                    r = o[0],
                                    s = o[2],
                                    c = o[3],
                                    p = !!c,
                                    f = null;
                                c || (c = b.State.calls[n][3] = e - 16);
                                for (var v = Math.min((e - c) / s.duration, 1), g = 0, y = r.length; y > g; g++) {
                                    var x = r[g],
                                        k = x.element;
                                    if (a(k)) {
                                        var M = !1;
                                        for (var C in s.display !== l && null !== s.display && "none" !== s.display && ("flex" === s.display && d.each(["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex"], (function(t, e) {
                                                w.setPropertyValue(k, "display", e)
                                            })), w.setPropertyValue(k, "display", s.display)), s.visibility !== l && "hidden" !== s.visibility && w.setPropertyValue(k, "visibility", s.visibility), x)
                                            if ("element" !== C) {
                                                var T, A = x[C],
                                                    O = m.isString(A.easing) ? b.Easings[A.easing] : A.easing;
                                                if (1 === v) T = A.endValue;
                                                else {
                                                    var P = A.endValue - A.startValue;
                                                    if (T = A.startValue + P * O(v, s, P), !p && T === A.currentValue) continue
                                                }
                                                if (A.currentValue = T, "tween" === C) f = T;
                                                else {
                                                    if (w.Hooks.registered[C]) {
                                                        var E = w.Hooks.getRoot(C),
                                                            I = a(k).rootPropertyValueCache[E];
                                                        I && (A.rootPropertyValue = I)
                                                    }
                                                    var _ = w.setPropertyValue(k, C, A.currentValue + (0 === parseFloat(T) ? "" : A.unitType), A.rootPropertyValue, A.scrollData);
                                                    w.Hooks.registered[C] && (a(k).rootPropertyValueCache[E] = w.Normalizations.registered[E] ? w.Normalizations.registered[E]("extract", null, _[1]) : _[1]), "transform" === _[0] && (M = !0)
                                                }
                                            } s.mobileHA && a(k).transformCache.translate3d === l && (a(k).transformCache.translate3d = "(0px, 0px, 0px)", M = !0), M && w.flushTransformCache(k)
                                    }
                                }
                                s.display !== l && "none" !== s.display && (b.State.calls[n][2].display = !1), s.visibility !== l && "hidden" !== s.visibility && (b.State.calls[n][2].visibility = !1), s.progress && s.progress.call(o[1], o[1], v, Math.max(0, c + s.duration - e), c, f), 1 === v && h(n)
                            }
                    }
                    b.State.isTicking && S(u)
                }

                function h(t, e) {
                    if (!b.State.calls[t]) return !1;
                    for (var i = b.State.calls[t][0], n = b.State.calls[t][1], o = b.State.calls[t][2], r = b.State.calls[t][4], s = !1, c = 0, u = i.length; u > c; c++) {
                        var h = i[c].element;
                        if (e || o.loop || ("none" === o.display && w.setPropertyValue(h, "display", o.display), "hidden" === o.visibility && w.setPropertyValue(h, "visibility", o.visibility)), !0 !== o.loop && (d.queue(h)[1] === l || !/\.velocityQueueEntryFlag/i.test(d.queue(h)[1])) && a(h)) {
                            a(h).isAnimating = !1, a(h).rootPropertyValueCache = {};
                            var p = !1;
                            d.each(w.Lists.transforms3D, (function(t, e) {
                                var i = /^scale/.test(e) ? 1 : 0,
                                    n = a(h).transformCache[e];
                                a(h).transformCache[e] !== l && new RegExp("^\\(" + i + "[^.]").test(n) && (p = !0, delete a(h).transformCache[e])
                            })), o.mobileHA && (p = !0, delete a(h).transformCache.translate3d), p && w.flushTransformCache(h), w.Values.removeClass(h, "velocity-animating")
                        }
                        if (!e && o.complete && !o.loop && c === u - 1) try {
                            o.complete.call(n, n)
                        } catch (t) {
                            setTimeout((function() {
                                throw t
                            }), 1)
                        }
                        r && !0 !== o.loop && r(n), a(h) && !0 === o.loop && !e && (d.each(a(h).tweensContainer, (function(t, e) {
                            /^rotate/.test(t) && 360 === parseFloat(e.endValue) && (e.endValue = 0, e.startValue = 360), /^backgroundPosition/.test(t) && 100 === parseFloat(e.endValue) && "%" === e.unitType && (e.endValue = 0, e.startValue = 100)
                        })), b(h, "reverse", {
                            loop: !0,
                            delay: o.delay
                        })), !1 !== o.queue && d.dequeue(h, o.queue)
                    }
                    b.State.calls[t] = !1;
                    for (var f = 0, m = b.State.calls.length; m > f; f++)
                        if (!1 !== b.State.calls[f]) {
                            s = !0;
                            break
                        }! 1 === s && (b.State.isTicking = !1, delete b.State.calls, b.State.calls = [])
                }
                var d, p = function() {
                        if (i.documentMode) return i.documentMode;
                        for (var t = 7; t > 4; t--) {
                            var e = i.createElement("div");
                            if (e.innerHTML = "\x3c!--[if IE " + t + "]><span></span><![endif]--\x3e", e.getElementsByTagName("span").length) return e = null, t
                        }
                        return l
                    }(),
                    f = function() {
                        var t = 0;
                        return e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || function(e) {
                            var i, n = (new Date).getTime();
                            return i = Math.max(0, 16 - (n - t)), t = n + i, setTimeout((function() {
                                e(n + i)
                            }), i)
                        }
                    }(),
                    m = {
                        isString: function(t) {
                            return "string" == typeof t
                        },
                        isArray: Array.isArray || function(t) {
                            return "[object Array]" === Object.prototype.toString.call(t)
                        },
                        isFunction: function(t) {
                            return "[object Function]" === Object.prototype.toString.call(t)
                        },
                        isNode: function(t) {
                            return t && t.nodeType
                        },
                        isNodeList: function(t) {
                            return "object" == n(t) && /^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(t)) && t.length !== l && (0 === t.length || "object" == n(t[0]) && t[0].nodeType > 0)
                        },
                        isWrapped: function(t) {
                            return t && (t.jquery || e.Zepto && e.Zepto.zepto.isZ(t))
                        },
                        isSVG: function(t) {
                            return e.SVGElement && t instanceof e.SVGElement
                        },
                        isEmptyObject: function(t) {
                            for (var e in t) return !1;
                            return !0
                        }
                    },
                    v = !1;
                if (t.fn && t.fn.jquery ? (d = t, v = !0) : d = e.Velocity.Utilities, 8 >= p && !v) throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");
                if (!(7 >= p)) {
                    var g = 400,
                        y = "swing",
                        b = {
                            State: {
                                isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
                                isAndroid: /Android/i.test(navigator.userAgent),
                                isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent),
                                isChrome: e.chrome,
                                isFirefox: /Firefox/i.test(navigator.userAgent),
                                prefixElement: i.createElement("div"),
                                prefixMatches: {},
                                scrollAnchor: null,
                                scrollPropertyLeft: null,
                                scrollPropertyTop: null,
                                isTicking: !1,
                                calls: []
                            },
                            CSS: {},
                            Utilities: d,
                            Redirects: {},
                            Easings: {},
                            Promise: e.Promise,
                            defaults: {
                                queue: "",
                                duration: g,
                                easing: y,
                                begin: l,
                                complete: l,
                                progress: l,
                                display: l,
                                visibility: l,
                                loop: !1,
                                delay: !1,
                                mobileHA: !0,
                                _cacheValues: !0
                            },
                            init: function(t) {
                                d.data(t, "velocity", {
                                    isSVG: m.isSVG(t),
                                    isAnimating: !1,
                                    computedStyle: null,
                                    tweensContainer: null,
                                    rootPropertyValueCache: {},
                                    transformCache: {}
                                })
                            },
                            hook: null,
                            mock: !1,
                            version: {
                                major: 1,
                                minor: 2,
                                patch: 2
                            },
                            debug: !1
                        };
                    e.pageYOffset !== l ? (b.State.scrollAnchor = e, b.State.scrollPropertyLeft = "pageXOffset", b.State.scrollPropertyTop = "pageYOffset") : (b.State.scrollAnchor = i.documentElement || i.body.parentNode || i.body, b.State.scrollPropertyLeft = "scrollLeft", b.State.scrollPropertyTop = "scrollTop");
                    var x = function() {
                        function t(t) {
                            return -t.tension * t.x - t.friction * t.v
                        }

                        function e(e, i, n) {
                            var l = {
                                x: e.x + n.dx * i,
                                v: e.v + n.dv * i,
                                tension: e.tension,
                                friction: e.friction
                            };
                            return {
                                dx: l.v,
                                dv: t(l)
                            }
                        }

                        function i(i, n) {
                            var l = {
                                    dx: i.v,
                                    dv: t(i)
                                },
                                o = e(i, .5 * n, l),
                                a = e(i, .5 * n, o),
                                r = e(i, n, a),
                                s = 1 / 6 * (l.dx + 2 * (o.dx + a.dx) + r.dx),
                                c = 1 / 6 * (l.dv + 2 * (o.dv + a.dv) + r.dv);
                            return i.x = i.x + s * n, i.v = i.v + c * n, i
                        }
                        return function t(e, n, l) {
                            var o, a, r, s = {
                                    x: -1,
                                    v: 0,
                                    tension: null,
                                    friction: null
                                },
                                c = [0],
                                u = 0;
                            for (e = parseFloat(e) || 500, n = parseFloat(n) || 20, l = l || null, s.tension = e, s.friction = n, a = (o = null !== l) ? (u = t(e, n)) / l * .016 : .016; r = i(r || s, a), c.push(1 + r.x), u += 16, Math.abs(r.x) > 1e-4 && Math.abs(r.v) > 1e-4;);
                            return o ? function(t) {
                                return c[t * (c.length - 1) | 0]
                            } : u
                        }
                    }();
                    b.Easings = {
                        linear: function(t) {
                            return t
                        },
                        swing: function(t) {
                            return .5 - Math.cos(t * Math.PI) / 2
                        },
                        spring: function(t) {
                            return 1 - Math.cos(4.5 * t * Math.PI) * Math.exp(6 * -t)
                        }
                    }, d.each([
                        ["ease", [.25, .1, .25, 1]],
                        ["ease-in", [.42, 0, 1, 1]],
                        ["ease-out", [0, 0, .58, 1]],
                        ["ease-in-out", [.42, 0, .58, 1]],
                        ["easeInSine", [.47, 0, .745, .715]],
                        ["easeOutSine", [.39, .575, .565, 1]],
                        ["easeInOutSine", [.445, .05, .55, .95]],
                        ["easeInQuad", [.55, .085, .68, .53]],
                        ["easeOutQuad", [.25, .46, .45, .94]],
                        ["easeInOutQuad", [.455, .03, .515, .955]],
                        ["easeInCubic", [.55, .055, .675, .19]],
                        ["easeOutCubic", [.215, .61, .355, 1]],
                        ["easeInOutCubic", [.645, .045, .355, 1]],
                        ["easeInQuart", [.895, .03, .685, .22]],
                        ["easeOutQuart", [.165, .84, .44, 1]],
                        ["easeInOutQuart", [.77, 0, .175, 1]],
                        ["easeInQuint", [.755, .05, .855, .06]],
                        ["easeOutQuint", [.23, 1, .32, 1]],
                        ["easeInOutQuint", [.86, 0, .07, 1]],
                        ["easeInExpo", [.95, .05, .795, .035]],
                        ["easeOutExpo", [.19, 1, .22, 1]],
                        ["easeInOutExpo", [1, 0, 0, 1]],
                        ["easeInCirc", [.6, .04, .98, .335]],
                        ["easeOutCirc", [.075, .82, .165, 1]],
                        ["easeInOutCirc", [.785, .135, .15, .86]]
                    ], (function(t, e) {
                        b.Easings[e[0]] = s.apply(null, e[1])
                    }));
                    var w = b.CSS = {
                        RegEx: {
                            isHex: /^#([A-f\d]{3}){1,2}$/i,
                            valueUnwrap: /^[A-z]+\((.*)\)$/i,
                            wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,
                            valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi
                        },
                        Lists: {
                            colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"],
                            transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"],
                            transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"]
                        },
                        Hooks: {
                            templates: {
                                textShadow: ["Color X Y Blur", "black 0px 0px 0px"],
                                boxShadow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"],
                                clip: ["Top Right Bottom Left", "0px 0px 0px 0px"],
                                backgroundPosition: ["X Y", "0% 0%"],
                                transformOrigin: ["X Y Z", "50% 50% 0px"],
                                perspectiveOrigin: ["X Y", "50% 50%"]
                            },
                            registered: {},
                            register: function() {
                                for (var t = 0; t < w.Lists.colors.length; t++) {
                                    var e = "color" === w.Lists.colors[t] ? "0 0 0 1" : "255 255 255 1";
                                    w.Hooks.templates[w.Lists.colors[t]] = ["Red Green Blue Alpha", e]
                                }
                                var i, n, l;
                                if (p)
                                    for (i in w.Hooks.templates) {
                                        l = (n = w.Hooks.templates[i])[0].split(" ");
                                        var o = n[1].match(w.RegEx.valueSplit);
                                        "Color" === l[0] && (l.push(l.shift()), o.push(o.shift()), w.Hooks.templates[i] = [l.join(" "), o.join(" ")])
                                    }
                                for (i in w.Hooks.templates)
                                    for (var t in l = (n = w.Hooks.templates[i])[0].split(" ")) {
                                        var a = i + l[t],
                                            r = t;
                                        w.Hooks.registered[a] = [i, r]
                                    }
                            },
                            getRoot: function(t) {
                                var e = w.Hooks.registered[t];
                                return e ? e[0] : t
                            },
                            cleanRootPropertyValue: function(t, e) {
                                return w.RegEx.valueUnwrap.test(e) && (e = e.match(w.RegEx.valueUnwrap)[1]), w.Values.isCSSNullValue(e) && (e = w.Hooks.templates[t][1]), e
                            },
                            extractValue: function(t, e) {
                                var i = w.Hooks.registered[t];
                                if (i) {
                                    var n = i[0],
                                        l = i[1];
                                    return (e = w.Hooks.cleanRootPropertyValue(n, e)).toString().match(w.RegEx.valueSplit)[l]
                                }
                                return e
                            },
                            injectValue: function(t, e, i) {
                                var n = w.Hooks.registered[t];
                                if (n) {
                                    var l, o = n[0],
                                        a = n[1];
                                    return (l = (i = w.Hooks.cleanRootPropertyValue(o, i)).toString().match(w.RegEx.valueSplit))[a] = e, l.join(" ")
                                }
                                return i
                            }
                        },
                        Normalizations: {
                            registered: {
                                clip: function(t, e, i) {
                                    switch (t) {
                                        case "name":
                                            return "clip";
                                        case "extract":
                                            var n;
                                            return n = w.RegEx.wrappedValueAlreadyExtracted.test(i) ? i : (n = i.toString().match(w.RegEx.valueUnwrap)) ? n[1].replace(/,(\s+)?/g, " ") : i;
                                        case "inject":
                                            return "rect(" + i + ")"
                                    }
                                },
                                blur: function(t, e, i) {
                                    switch (t) {
                                        case "name":
                                            return b.State.isFirefox ? "filter" : "-webkit-filter";
                                        case "extract":
                                            var n = parseFloat(i);
                                            if (!n && 0 !== n) {
                                                var l = i.toString().match(/blur\(([0-9]+[A-z]+)\)/i);
                                                n = l ? l[1] : 0
                                            }
                                            return n;
                                        case "inject":
                                            return parseFloat(i) ? "blur(" + i + ")" : "none"
                                    }
                                },
                                opacity: function(t, e, i) {
                                    if (8 >= p) switch (t) {
                                        case "name":
                                            return "filter";
                                        case "extract":
                                            var n = i.toString().match(/alpha\(opacity=(.*)\)/i);
                                            return n ? n[1] / 100 : 1;
                                        case "inject":
                                            return e.style.zoom = 1, parseFloat(i) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(i), 10) + ")"
                                    } else switch (t) {
                                        case "name":
                                            return "opacity";
                                        case "extract":
                                        case "inject":
                                            return i
                                    }
                                }
                            },
                            register: function() {
                                9 >= p || b.State.isGingerbread || (w.Lists.transformsBase = w.Lists.transformsBase.concat(w.Lists.transforms3D));
                                for (var t = 0; t < w.Lists.transformsBase.length; t++) ! function() {
                                    var e = w.Lists.transformsBase[t];
                                    w.Normalizations.registered[e] = function(t, i, n) {
                                        switch (t) {
                                            case "name":
                                                return "transform";
                                            case "extract":
                                                return a(i) === l || a(i).transformCache[e] === l ? /^scale/i.test(e) ? 1 : 0 : a(i).transformCache[e].replace(/[()]/g, "");
                                            case "inject":
                                                var o = !1;
                                                switch (e.substr(0, e.length - 1)) {
                                                    case "translate":
                                                        o = !/(%|px|em|rem|vw|vh|\d)$/i.test(n);
                                                        break;
                                                    case "scal":
                                                    case "scale":
                                                        b.State.isAndroid && a(i).transformCache[e] === l && 1 > n && (n = 1), o = !/(\d)$/i.test(n);
                                                        break;
                                                    case "skew":
                                                        o = !/(deg|\d)$/i.test(n);
                                                        break;
                                                    case "rotate":
                                                        o = !/(deg|\d)$/i.test(n)
                                                }
                                                return o || (a(i).transformCache[e] = "(" + n + ")"), a(i).transformCache[e]
                                        }
                                    }
                                }();
                                for (t = 0; t < w.Lists.colors.length; t++) ! function() {
                                    var e = w.Lists.colors[t];
                                    w.Normalizations.registered[e] = function(t, i, n) {
                                        switch (t) {
                                            case "name":
                                                return e;
                                            case "extract":
                                                var o;
                                                if (w.RegEx.wrappedValueAlreadyExtracted.test(n)) o = n;
                                                else {
                                                    var a, r = {
                                                        black: "rgb(0, 0, 0)",
                                                        blue: "rgb(0, 0, 255)",
                                                        gray: "rgb(128, 128, 128)",
                                                        green: "rgb(0, 128, 0)",
                                                        red: "rgb(255, 0, 0)",
                                                        white: "rgb(255, 255, 255)"
                                                    };
                                                    /^[A-z]+$/i.test(n) ? a = r[n] !== l ? r[n] : r.black : w.RegEx.isHex.test(n) ? a = "rgb(" + w.Values.hexToRgb(n).join(" ") + ")" : /^rgba?\(/i.test(n) || (a = r.black), o = (a || n).toString().match(w.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " ")
                                                }
                                                return 8 >= p || 3 !== o.split(" ").length || (o += " 1"), o;
                                            case "inject":
                                                return 8 >= p ? 4 === n.split(" ").length && (n = n.split(/\s+/).slice(0, 3).join(" ")) : 3 === n.split(" ").length && (n += " 1"), (8 >= p ? "rgb" : "rgba") + "(" + n.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")"
                                        }
                                    }
                                }()
                            }
                        },
                        Names: {
                            camelCase: function(t) {
                                return t.replace(/-(\w)/g, (function(t, e) {
                                    return e.toUpperCase()
                                }))
                            },
                            SVGAttribute: function(t) {
                                var e = "width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";
                                return (p || b.State.isAndroid && !b.State.isChrome) && (e += "|transform"), new RegExp("^(" + e + ")$", "i").test(t)
                            },
                            prefixCheck: function(t) {
                                if (b.State.prefixMatches[t]) return [b.State.prefixMatches[t], !0];
                                for (var e = ["", "Webkit", "Moz", "ms", "O"], i = 0, n = e.length; n > i; i++) {
                                    var l;
                                    if (l = 0 === i ? t : e[i] + t.replace(/^\w/, (function(t) {
                                            return t.toUpperCase()
                                        })), m.isString(b.State.prefixElement.style[l])) return b.State.prefixMatches[t] = l, [l, !0]
                                }
                                return [t, !1]
                            }
                        },
                        Values: {
                            hexToRgb: function(t) {
                                var e;
                                return t = t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (function(t, e, i, n) {
                                    return e + e + i + i + n + n
                                })), (e = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t)) ? [parseInt(e[1], 16), parseInt(e[2], 16), parseInt(e[3], 16)] : [0, 0, 0]
                            },
                            isCSSNullValue: function(t) {
                                return 0 == t || /^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(t)
                            },
                            getUnitType: function(t) {
                                return /^(rotate|skew)/i.test(t) ? "deg" : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(t) ? "" : "px"
                            },
                            getDisplayType: function(t) {
                                var e = t && t.tagName.toString().toLowerCase();
                                return /^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(e) ? "inline" : /^(li)$/i.test(e) ? "list-item" : /^(tr)$/i.test(e) ? "table-row" : /^(table)$/i.test(e) ? "table" : /^(tbody)$/i.test(e) ? "table-row-group" : "block"
                            },
                            addClass: function(t, e) {
                                t.classList ? t.classList.add(e) : t.className += (t.className.length ? " " : "") + e
                            },
                            removeClass: function(t, e) {
                                t.classList ? t.classList.remove(e) : t.className = t.className.toString().replace(new RegExp("(^|\\s)" + e.split(" ").join("|") + "(\\s|$)", "gi"), " ")
                            }
                        },
                        getPropertyValue: function(t, i, n, o) {
                            function r(t, i) {
                                function n() {
                                    u && w.setPropertyValue(t, "display", "none")
                                }
                                var s = 0;
                                if (8 >= p) s = d.css(t, i);
                                else {
                                    var c, u = !1;
                                    if (/^(width|height)$/.test(i) && 0 === w.getPropertyValue(t, "display") && (u = !0, w.setPropertyValue(t, "display", w.Values.getDisplayType(t))), !o) {
                                        if ("height" === i && "border-box" !== w.getPropertyValue(t, "boxSizing").toString().toLowerCase()) {
                                            var h = t.offsetHeight - (parseFloat(w.getPropertyValue(t, "borderTopWidth")) || 0) - (parseFloat(w.getPropertyValue(t, "borderBottomWidth")) || 0) - (parseFloat(w.getPropertyValue(t, "paddingTop")) || 0) - (parseFloat(w.getPropertyValue(t, "paddingBottom")) || 0);
                                            return n(), h
                                        }
                                        if ("width" === i && "border-box" !== w.getPropertyValue(t, "boxSizing").toString().toLowerCase()) {
                                            var f = t.offsetWidth - (parseFloat(w.getPropertyValue(t, "borderLeftWidth")) || 0) - (parseFloat(w.getPropertyValue(t, "borderRightWidth")) || 0) - (parseFloat(w.getPropertyValue(t, "paddingLeft")) || 0) - (parseFloat(w.getPropertyValue(t, "paddingRight")) || 0);
                                            return n(), f
                                        }
                                    }
                                    c = a(t) === l ? e.getComputedStyle(t, null) : a(t).computedStyle ? a(t).computedStyle : a(t).computedStyle = e.getComputedStyle(t, null), "borderColor" === i && (i = "borderTopColor"), ("" === (s = 9 === p && "filter" === i ? c.getPropertyValue(i) : c[i]) || null === s) && (s = t.style[i]), n()
                                }
                                if ("auto" === s && /^(top|right|bottom|left)$/i.test(i)) {
                                    var m = r(t, "position");
                                    ("fixed" === m || "absolute" === m && /top|left/i.test(i)) && (s = d(t).position()[i] + "px")
                                }
                                return s
                            }
                            var s;
                            if (w.Hooks.registered[i]) {
                                var c = i,
                                    u = w.Hooks.getRoot(c);
                                n === l && (n = w.getPropertyValue(t, w.Names.prefixCheck(u)[0])), w.Normalizations.registered[u] && (n = w.Normalizations.registered[u]("extract", t, n)), s = w.Hooks.extractValue(c, n)
                            } else if (w.Normalizations.registered[i]) {
                                var h, f;
                                "transform" !== (h = w.Normalizations.registered[i]("name", t)) && (f = r(t, w.Names.prefixCheck(h)[0]), w.Values.isCSSNullValue(f) && w.Hooks.templates[i] && (f = w.Hooks.templates[i][1])), s = w.Normalizations.registered[i]("extract", t, f)
                            }
                            if (!/^[\d-]/.test(s))
                                if (a(t) && a(t).isSVG && w.Names.SVGAttribute(i))
                                    if (/^(height|width)$/i.test(i)) try {
                                        s = t.getBBox()[i]
                                    } catch (t) {
                                        s = 0
                                    } else s = t.getAttribute(i);
                                    else s = r(t, w.Names.prefixCheck(i)[0]);
                            return w.Values.isCSSNullValue(s) && (s = 0), b.debug >= 2 && console.log("Get " + i + ": " + s), s
                        },
                        setPropertyValue: function(t, i, n, l, o) {
                            var r = i;
                            if ("scroll" === i) o.container ? o.container["scroll" + o.direction] = n : "Left" === o.direction ? e.scrollTo(n, o.alternateValue) : e.scrollTo(o.alternateValue, n);
                            else if (w.Normalizations.registered[i] && "transform" === w.Normalizations.registered[i]("name", t)) w.Normalizations.registered[i]("inject", t, n), r = "transform", n = a(t).transformCache[i];
                            else {
                                if (w.Hooks.registered[i]) {
                                    var s = i,
                                        c = w.Hooks.getRoot(i);
                                    l = l || w.getPropertyValue(t, c), n = w.Hooks.injectValue(s, n, l), i = c
                                }
                                if (w.Normalizations.registered[i] && (n = w.Normalizations.registered[i]("inject", t, n), i = w.Normalizations.registered[i]("name", t)), r = w.Names.prefixCheck(i)[0], 8 >= p) try {
                                    t.style[r] = n
                                } catch (t) {
                                    b.debug && console.log("Browser does not support [" + n + "] for [" + r + "]")
                                } else a(t) && a(t).isSVG && w.Names.SVGAttribute(i) ? t.setAttribute(i, n) : t.style[r] = n;
                                b.debug >= 2 && console.log("Set " + i + " (" + r + "): " + n)
                            }
                            return [r, n]
                        },
                        flushTransformCache: function(t) {
                            function e(e) {
                                return parseFloat(w.getPropertyValue(t, e))
                            }
                            var i = "";
                            if ((p || b.State.isAndroid && !b.State.isChrome) && a(t).isSVG) {
                                var n = {
                                    translate: [e("translateX"), e("translateY")],
                                    skewX: [e("skewX")],
                                    skewY: [e("skewY")],
                                    scale: 1 !== e("scale") ? [e("scale"), e("scale")] : [e("scaleX"), e("scaleY")],
                                    rotate: [e("rotateZ"), 0, 0]
                                };
                                d.each(a(t).transformCache, (function(t) {
                                    /^translate/i.test(t) ? t = "translate" : /^scale/i.test(t) ? t = "scale" : /^rotate/i.test(t) && (t = "rotate"), n[t] && (i += t + "(" + n[t].join(" ") + ") ", delete n[t])
                                }))
                            } else {
                                var l, o;
                                d.each(a(t).transformCache, (function(e) {
                                    return l = a(t).transformCache[e], "transformPerspective" === e ? (o = l, !0) : (9 === p && "rotateZ" === e && (e = "rotate"), void(i += e + l + " "))
                                })), o && (i = "perspective" + o + " " + i)
                            }
                            w.setPropertyValue(t, "transform", i)
                        }
                    };
                    w.Hooks.register(), w.Normalizations.register(), b.hook = function(t, e, i) {
                        var n = l;
                        return t = o(t), d.each(t, (function(t, o) {
                            if (a(o) === l && b.init(o), i === l) n === l && (n = b.CSS.getPropertyValue(o, e));
                            else {
                                var r = b.CSS.setPropertyValue(o, e, i);
                                "transform" === r[0] && b.CSS.flushTransformCache(o), n = r
                            }
                        })), n
                    };
                    var k = function t() {
                        function n() {
                            return s ? O.promise || null : p
                        }

                        function r() {
                            function t(t) {
                                function h(t, e) {
                                    var i = l,
                                        n = l,
                                        a = l;
                                    return m.isArray(t) ? (i = t[0], !m.isArray(t[1]) && /^[\d-]/.test(t[1]) || m.isFunction(t[1]) || w.RegEx.isHex.test(t[1]) ? a = t[1] : (m.isString(t[1]) && !w.RegEx.isHex.test(t[1]) || m.isArray(t[1])) && (n = e ? t[1] : c(t[1], r.duration), t[2] !== l && (a = t[2]))) : i = t, e || (n = n || r.easing), m.isFunction(i) && (i = i.call(o, M, S)), m.isFunction(a) && (a = a.call(o, M, S)), [i || 0, n, a]
                                }

                                function p(t, e) {
                                    var i, n;
                                    return n = (e || "0").toString().toLowerCase().replace(/[%A-z]+$/, (function(t) {
                                        return i = t, ""
                                    })), i || (i = w.Values.getUnitType(t)), [n, i]
                                }

                                function f() {
                                    var t = {
                                            myParent: o.parentNode || i.body,
                                            position: w.getPropertyValue(o, "position"),
                                            fontSize: w.getPropertyValue(o, "fontSize")
                                        },
                                        n = t.position === L.lastPosition && t.myParent === L.lastParent,
                                        l = t.fontSize === L.lastFontSize;
                                    L.lastParent = t.myParent, L.lastPosition = t.position, L.lastFontSize = t.fontSize;
                                    var r = 100,
                                        s = {};
                                    if (l && n) s.emToPx = L.lastEmToPx, s.percentToPxWidth = L.lastPercentToPxWidth, s.percentToPxHeight = L.lastPercentToPxHeight;
                                    else {
                                        var c = a(o).isSVG ? i.createElementNS("http://www.w3.org/2000/svg", "rect") : i.createElement("div");
                                        b.init(c), t.myParent.appendChild(c), d.each(["overflow", "overflowX", "overflowY"], (function(t, e) {
                                            b.CSS.setPropertyValue(c, e, "hidden")
                                        })), b.CSS.setPropertyValue(c, "position", t.position), b.CSS.setPropertyValue(c, "fontSize", t.fontSize), b.CSS.setPropertyValue(c, "boxSizing", "content-box"), d.each(["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], (function(t, e) {
                                            b.CSS.setPropertyValue(c, e, r + "%")
                                        })), b.CSS.setPropertyValue(c, "paddingLeft", r + "em"), s.percentToPxWidth = L.lastPercentToPxWidth = (parseFloat(w.getPropertyValue(c, "width", null, !0)) || 1) / r, s.percentToPxHeight = L.lastPercentToPxHeight = (parseFloat(w.getPropertyValue(c, "height", null, !0)) || 1) / r, s.emToPx = L.lastEmToPx = (parseFloat(w.getPropertyValue(c, "paddingLeft")) || 1) / r, t.myParent.removeChild(c)
                                    }
                                    return null === L.remToPx && (L.remToPx = parseFloat(w.getPropertyValue(i.body, "fontSize")) || 16), null === L.vwToPx && (L.vwToPx = parseFloat(e.innerWidth) / 100, L.vhToPx = parseFloat(e.innerHeight) / 100), s.remToPx = L.remToPx, s.vwToPx = L.vwToPx, s.vhToPx = L.vhToPx, b.debug >= 1 && console.log("Unit ratios: " + JSON.stringify(s), o), s
                                }
                                if (r.begin && 0 === M) try {
                                    r.begin.call(v, v)
                                } catch (t) {
                                    setTimeout((function() {
                                        throw t
                                    }), 1)
                                }
                                if ("scroll" === A) {
                                    var g, k, C, T = /^x$/i.test(r.axis) ? "Left" : "Top",
                                        P = parseFloat(r.offset) || 0;
                                    r.container ? m.isWrapped(r.container) || m.isNode(r.container) ? (r.container = r.container[0] || r.container, C = (g = r.container["scroll" + T]) + d(o).position()[T.toLowerCase()] + P) : r.container = null : (g = b.State.scrollAnchor[b.State["scrollProperty" + T]], k = b.State.scrollAnchor[b.State["scrollProperty" + ("Left" === T ? "Top" : "Left")]], C = d(o).offset()[T.toLowerCase()] + P), s = {
                                        scroll: {
                                            rootPropertyValue: !1,
                                            startValue: g,
                                            currentValue: g,
                                            endValue: C,
                                            unitType: "",
                                            easing: r.easing,
                                            scrollData: {
                                                container: r.container,
                                                direction: T,
                                                alternateValue: k
                                            }
                                        },
                                        element: o
                                    }, b.debug && console.log("tweensContainer (scroll): ", s.scroll, o)
                                } else if ("reverse" === A) {
                                    if (!a(o).tweensContainer) return void d.dequeue(o, r.queue);
                                    "none" === a(o).opts.display && (a(o).opts.display = "auto"), "hidden" === a(o).opts.visibility && (a(o).opts.visibility = "visible"), a(o).opts.loop = !1, a(o).opts.begin = null, a(o).opts.complete = null, x.easing || delete r.easing, x.duration || delete r.duration, r = d.extend({}, a(o).opts, r);
                                    var E = d.extend(!0, {}, a(o).tweensContainer);
                                    for (var I in E)
                                        if ("element" !== I) {
                                            var _ = E[I].startValue;
                                            E[I].startValue = E[I].currentValue = E[I].endValue, E[I].endValue = _, m.isEmptyObject(x) || (E[I].easing = r.easing), b.debug && console.log("reverse tweensContainer (" + I + "): " + JSON.stringify(E[I]), o)
                                        } s = E
                                } else if ("start" === A) {
                                    for (var D in a(o).tweensContainer && !0 === a(o).isAnimating && (E = a(o).tweensContainer), d.each(y, (function(t, e) {
                                            if (RegExp("^" + w.Lists.colors.join("$|^") + "$").test(t)) {
                                                var i = h(e, !0),
                                                    n = i[0],
                                                    o = i[1],
                                                    a = i[2];
                                                if (w.RegEx.isHex.test(n)) {
                                                    for (var r = ["Red", "Green", "Blue"], s = w.Values.hexToRgb(n), c = a ? w.Values.hexToRgb(a) : l, u = 0; u < r.length; u++) {
                                                        var d = [s[u]];
                                                        o && d.push(o), c !== l && d.push(c[u]), y[t + r[u]] = d
                                                    }
                                                    delete y[t]
                                                }
                                            }
                                        })), y) {
                                        var $ = h(y[D]),
                                            V = $[0],
                                            F = $[1],
                                            j = $[2];
                                        D = w.Names.camelCase(D);
                                        var W = w.Hooks.getRoot(D),
                                            H = !1;
                                        if (a(o).isSVG || "tween" === W || !1 !== w.Names.prefixCheck(W)[1] || w.Normalizations.registered[W] !== l) {
                                            (r.display !== l && null !== r.display && "none" !== r.display || r.visibility !== l && "hidden" !== r.visibility) && /opacity|filter/.test(D) && !j && 0 !== V && (j = 0), r._cacheValues && E && E[D] ? (j === l && (j = E[D].endValue + E[D].unitType), H = a(o).rootPropertyValueCache[W]) : w.Hooks.registered[D] ? j === l ? (H = w.getPropertyValue(o, W), j = w.getPropertyValue(o, D, H)) : H = w.Hooks.templates[W][1] : j === l && (j = w.getPropertyValue(o, D));
                                            var N, z, B, Z = !1;
                                            if (j = (N = p(D, j))[0], B = N[1], V = (N = p(D, V))[0].replace(/^([+-\/*])=/, (function(t, e) {
                                                    return Z = e, ""
                                                })), z = N[1], j = parseFloat(j) || 0, V = parseFloat(V) || 0, "%" === z && (/^(fontSize|lineHeight)$/.test(D) ? (V /= 100, z = "em") : /^scale/.test(D) ? (V /= 100, z = "") : /(Red|Green|Blue)$/i.test(D) && (V = V / 100 * 255, z = "")), /[\/*]/.test(Z)) z = B;
                                            else if (B !== z && 0 !== j)
                                                if (0 === V) z = B;
                                                else {
                                                    n = n || f();
                                                    var Y = /margin|padding|left|right|width|text|word|letter/i.test(D) || /X$/.test(D) || "x" === D ? "x" : "y";
                                                    switch (B) {
                                                        case "%":
                                                            j *= "x" === Y ? n.percentToPxWidth : n.percentToPxHeight;
                                                            break;
                                                        case "px":
                                                            break;
                                                        default:
                                                            j *= n[B + "ToPx"]
                                                    }
                                                    switch (z) {
                                                        case "%":
                                                            j *= 1 / ("x" === Y ? n.percentToPxWidth : n.percentToPxHeight);
                                                            break;
                                                        case "px":
                                                            break;
                                                        default:
                                                            j *= 1 / n[z + "ToPx"]
                                                    }
                                                } switch (Z) {
                                                case "+":
                                                    V = j + V;
                                                    break;
                                                case "-":
                                                    V = j - V;
                                                    break;
                                                case "*":
                                                    V *= j;
                                                    break;
                                                case "/":
                                                    V = j / V
                                            }
                                            s[D] = {
                                                rootPropertyValue: H,
                                                startValue: j,
                                                currentValue: j,
                                                endValue: V,
                                                unitType: z,
                                                easing: F
                                            }, b.debug && console.log("tweensContainer (" + D + "): " + JSON.stringify(s[D]), o)
                                        } else b.debug && console.log("Skipping [" + W + "] due to a lack of browser support.")
                                    }
                                    s.element = o
                                }
                                s.element && (w.Values.addClass(o, "velocity-animating"), R.push(s), "" === r.queue && (a(o).tweensContainer = s, a(o).opts = r), a(o).isAnimating = !0, M === S - 1 ? (b.State.calls.push([R, v, r, null, O.resolver]), !1 === b.State.isTicking && (b.State.isTicking = !0, u())) : M++)
                            }
                            var n, o = this,
                                r = d.extend({}, b.defaults, x),
                                s = {};
                            switch (a(o) === l && b.init(o), parseFloat(r.delay) && !1 !== r.queue && d.queue(o, r.queue, (function(t) {
                                b.velocityQueueEntryFlag = !0, a(o).delayTimer = {
                                    setTimeout: setTimeout(t, parseFloat(r.delay)),
                                    next: t
                                }
                            })), r.duration.toString().toLowerCase()) {
                                case "fast":
                                    r.duration = 200;
                                    break;
                                case "normal":
                                    r.duration = g;
                                    break;
                                case "slow":
                                    r.duration = 600;
                                    break;
                                default:
                                    r.duration = parseFloat(r.duration) || 1
                            }!1 !== b.mock && (!0 === b.mock ? r.duration = r.delay = 1 : (r.duration *= parseFloat(b.mock) || 1, r.delay *= parseFloat(b.mock) || 1)), r.easing = c(r.easing, r.duration), r.begin && !m.isFunction(r.begin) && (r.begin = null), r.progress && !m.isFunction(r.progress) && (r.progress = null), r.complete && !m.isFunction(r.complete) && (r.complete = null), r.display !== l && null !== r.display && (r.display = r.display.toString().toLowerCase(), "auto" === r.display && (r.display = b.CSS.Values.getDisplayType(o))), r.visibility !== l && null !== r.visibility && (r.visibility = r.visibility.toString().toLowerCase()), r.mobileHA = r.mobileHA && b.State.isMobile && !b.State.isGingerbread, !1 === r.queue ? r.delay ? setTimeout(t, r.delay) : t() : d.queue(o, r.queue, (function(e, i) {
                                return !0 === i ? (O.promise && O.resolver(v), !0) : (b.velocityQueueEntryFlag = !0, void t())
                            })), "" !== r.queue && "fx" !== r.queue || "inprogress" === d.queue(o)[0] || d.dequeue(o)
                        }
                        var s, p, f, v, y, x, k = arguments[0] && (arguments[0].p || d.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || m.isString(arguments[0].properties));
                        if (m.isWrapped(this) ? (s = !1, f = 0, v = this, p = this) : (s = !0, f = 1, v = k ? arguments[0].elements || arguments[0].e : arguments[0]), v = o(v)) {
                            k ? (y = arguments[0].properties || arguments[0].p, x = arguments[0].options || arguments[0].o) : (y = arguments[f], x = arguments[f + 1]);
                            var S = v.length,
                                M = 0;
                            if (!/^(stop|finish)$/i.test(y) && !d.isPlainObject(x)) {
                                var C = f + 1;
                                x = {};
                                for (var T = C; T < arguments.length; T++) m.isArray(arguments[T]) || !/^(fast|normal|slow)$/i.test(arguments[T]) && !/^\d/.test(arguments[T]) ? m.isString(arguments[T]) || m.isArray(arguments[T]) ? x.easing = arguments[T] : m.isFunction(arguments[T]) && (x.complete = arguments[T]) : x.duration = arguments[T]
                            }
                            var A, O = {
                                promise: null,
                                resolver: null,
                                rejecter: null
                            };
                            switch (s && b.Promise && (O.promise = new b.Promise((function(t, e) {
                                O.resolver = t, O.rejecter = e
                            }))), y) {
                                case "scroll":
                                    A = "scroll";
                                    break;
                                case "reverse":
                                    A = "reverse";
                                    break;
                                case "finish":
                                case "stop":
                                    d.each(v, (function(t, e) {
                                        a(e) && a(e).delayTimer && (clearTimeout(a(e).delayTimer.setTimeout), a(e).delayTimer.next && a(e).delayTimer.next(), delete a(e).delayTimer)
                                    }));
                                    var P = [];
                                    return d.each(b.State.calls, (function(t, e) {
                                        e && d.each(e[1], (function(i, n) {
                                            var o = x === l ? "" : x;
                                            return !0 !== o && e[2].queue !== o && (x !== l || !1 !== e[2].queue) || void d.each(v, (function(i, l) {
                                                l === n && ((!0 === x || m.isString(x)) && (d.each(d.queue(l, m.isString(x) ? x : ""), (function(t, e) {
                                                    m.isFunction(e) && e(null, !0)
                                                })), d.queue(l, m.isString(x) ? x : "", [])), "stop" === y ? (a(l) && a(l).tweensContainer && !1 !== o && d.each(a(l).tweensContainer, (function(t, e) {
                                                    e.endValue = e.currentValue
                                                })), P.push(t)) : "finish" === y && (e[2].duration = 1))
                                            }))
                                        }))
                                    })), "stop" === y && (d.each(P, (function(t, e) {
                                        h(e, !0)
                                    })), O.promise && O.resolver(v)), n();
                                default:
                                    if (!d.isPlainObject(y) || m.isEmptyObject(y)) {
                                        if (m.isString(y) && b.Redirects[y]) {
                                            var E = ($ = d.extend({}, x)).duration,
                                                I = $.delay || 0;
                                            return !0 === $.backwards && (v = d.extend(!0, [], v).reverse()), d.each(v, (function(t, e) {
                                                parseFloat($.stagger) ? $.delay = I + parseFloat($.stagger) * t : m.isFunction($.stagger) && ($.delay = I + $.stagger.call(e, t, S)), $.drag && ($.duration = parseFloat(E) || (/^(callout|transition)/.test(y) ? 1e3 : g), $.duration = Math.max($.duration * ($.backwards ? 1 - t / S : (t + 1) / S), .75 * $.duration, 200)), b.Redirects[y].call(e, e, $ || {}, t, S, v, O.promise ? O : l)
                                            })), n()
                                        }
                                        var _ = "Velocity: First argument (" + y + ") was not a property map, a known action, or a registered redirect. Aborting.";
                                        return O.promise ? O.rejecter(new Error(_)) : console.log(_), n()
                                    }
                                    A = "start"
                            }
                            var D, $, L = {
                                    lastParent: null,
                                    lastPosition: null,
                                    lastFontSize: null,
                                    lastPercentToPxWidth: null,
                                    lastPercentToPxHeight: null,
                                    lastEmToPx: null,
                                    remToPx: null,
                                    vwToPx: null,
                                    vhToPx: null
                                },
                                R = [];
                            if (d.each(v, (function(t, e) {
                                    m.isNode(e) && r.call(e)
                                })), ($ = d.extend({}, b.defaults, x)).loop = parseInt($.loop), D = 2 * $.loop - 1, $.loop)
                                for (var V = 0; D > V; V++) {
                                    var F = {
                                        delay: $.delay,
                                        progress: $.progress
                                    };
                                    V === D - 1 && (F.display = $.display, F.visibility = $.visibility, F.complete = $.complete), t(v, "reverse", F)
                                }
                            return n()
                        }
                    };
                    (b = d.extend(k, b)).animate = k;
                    var S = e.requestAnimationFrame || f;
                    return b.State.isMobile || i.hidden === l || i.addEventListener("visibilitychange", (function() {
                        i.hidden ? (S = function(t) {
                            return setTimeout((function() {
                                t(!0)
                            }), 16)
                        }, u()) : S = e.requestAnimationFrame || f
                    })), t.Velocity = b, t !== e && (t.fn.velocity = k, t.fn.velocity.defaults = b.defaults), d.each(["Down", "Up"], (function(t, e) {
                        b.Redirects["slide" + e] = function(t, i, n, o, a, r) {
                            var s = d.extend({}, i),
                                c = s.begin,
                                u = s.complete,
                                h = {
                                    height: "",
                                    marginTop: "",
                                    marginBottom: "",
                                    paddingTop: "",
                                    paddingBottom: ""
                                },
                                p = {};
                            s.display === l && (s.display = "Down" === e ? "inline" === b.CSS.Values.getDisplayType(t) ? "inline-block" : "block" : "none"), s.begin = function() {
                                for (var i in c && c.call(a, a), h) {
                                    p[i] = t.style[i];
                                    var n = b.CSS.getPropertyValue(t, i);
                                    h[i] = "Down" === e ? [n, 0] : [0, n]
                                }
                                p.overflow = t.style.overflow, t.style.overflow = "hidden"
                            }, s.complete = function() {
                                for (var e in p) t.style[e] = p[e];
                                u && u.call(a, a), r && r.resolver(a)
                            }, b(t, h, s)
                        }
                    })), d.each(["In", "Out"], (function(t, e) {
                        b.Redirects["fade" + e] = function(t, i, n, o, a, r) {
                            var s = d.extend({}, i),
                                c = {
                                    opacity: "In" === e ? 1 : 0
                                },
                                u = s.complete;
                            s.complete = n !== o - 1 ? s.begin = null : function() {
                                u && u.call(a, a), r && r.resolver(a)
                            }, s.display === l && (s.display = "In" === e ? "auto" : "none"), b(this, c, s)
                        }
                    })), b
                }
                jQuery.fn.velocity = jQuery.fn.animate
            }(window.jQuery || window.Zepto || window, window, document)
        }, "object" == n(t) && "object" == n(t.exports) ? t.exports = e() : "function" == typeof define && i(75) ? define(e) : e())
    }).call(this, i(95)(t))
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(1),
        o = i(143),
        a = i(8),
        r = i(38),
        s = i(11),
        c = i(106),
        u = o.ArrayBuffer,
        h = o.DataView,
        d = u.prototype.slice;
    n({
        target: "ArrayBuffer",
        proto: !0,
        unsafe: !0,
        forced: l((function() {
            return !new u(2).slice(1, void 0).byteLength
        }))
    }, {
        slice: function(t, e) {
            if (void 0 !== d && void 0 === e) return d.call(a(this), t);
            for (var i = a(this).byteLength, n = r(t, i), l = r(void 0 === e ? i : e, i), o = new(c(this, u))(s(l - n)), p = new h(this), f = new h(o), m = 0; n < l;) f.setUint8(m++, p.getUint8(n++));
            return o
        }
    })
}, function(t, e, i) {
    var n = i(14);
    t.exports = function(t, e, i) {
        for (var l in e) n(t, l, e[l], i);
        return t
    }
}, function(t, e, i) {
    i(180)("Float32", 4, (function(t) {
        return function(e, i, n) {
            return t(this, e, i, n)
        }
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(0),
        o = i(7),
        a = i(181),
        r = i(65),
        s = i(143),
        c = i(144),
        u = i(18),
        h = i(6),
        d = i(11),
        p = i(145),
        f = i(147),
        m = i(20),
        v = i(4),
        g = i(94),
        y = i(5),
        b = i(33),
        x = i(83),
        w = i(29).f,
        k = i(183),
        S = i(23).forEach,
        M = i(128),
        C = i(9),
        T = i(22),
        A = i(28),
        O = A.get,
        P = A.set,
        E = C.f,
        I = T.f,
        _ = Math.round,
        D = l.RangeError,
        $ = s.ArrayBuffer,
        L = s.DataView,
        R = r.NATIVE_ARRAY_BUFFER_VIEWS,
        V = r.TYPED_ARRAY_TAG,
        F = r.TypedArray,
        j = r.TypedArrayPrototype,
        W = r.aTypedArrayConstructor,
        H = r.isTypedArray,
        N = function(t, e) {
            for (var i = 0, n = e.length, l = new(W(t))(n); n > i;) l[i] = e[i++];
            return l
        },
        z = function(t, e) {
            E(t, e, {
                get: function() {
                    return O(this)[e]
                }
            })
        },
        B = function(t) {
            var e;
            return t instanceof $ || "ArrayBuffer" == (e = g(t)) || "SharedArrayBuffer" == e
        },
        Z = function(t, e) {
            return H(t) && "symbol" != typeof e && e in t && String(+e) == String(e)
        },
        Y = function(t, e) {
            return Z(t, e = m(e, !0)) ? u(2, t[e]) : I(t, e)
        },
        X = function(t, e, i) {
            return !(Z(t, e = m(e, !0)) && y(i) && v(i, "value")) || v(i, "get") || v(i, "set") || i.configurable || v(i, "writable") && !i.writable || v(i, "enumerable") && !i.enumerable ? E(t, e, i) : (t[e] = i.value, t)
        };
    o ? (R || (T.f = Y, C.f = X, z(j, "buffer"), z(j, "byteOffset"), z(j, "byteLength"), z(j, "length")), n({
        target: "Object",
        stat: !0,
        forced: !R
    }, {
        getOwnPropertyDescriptor: Y,
        defineProperty: X
    }), t.exports = function(t, e, i, o) {
        var r = t + (o ? "Clamped" : "") + "Array",
            s = "get" + t,
            u = "set" + t,
            m = l[r],
            v = m,
            g = v && v.prototype,
            C = {},
            T = function(t, i) {
                E(t, i, {
                    get: function() {
                        return function(t, i) {
                            var n = O(t);
                            return n.view[s](i * e + n.byteOffset, !0)
                        }(this, i)
                    },
                    set: function(t) {
                        return function(t, i, n) {
                            var l = O(t);
                            o && (n = (n = _(n)) < 0 ? 0 : n > 255 ? 255 : 255 & n), l.view[u](i * e + l.byteOffset, n, !0)
                        }(this, i, t)
                    },
                    enumerable: !0
                })
            };
        R ? a && (v = i((function(t, i, n, l) {
            return c(t, v, r), y(i) ? B(i) ? void 0 !== l ? new m(i, f(n, e), l) : void 0 !== n ? new m(i, f(n, e)) : new m(i) : H(i) ? N(v, i) : k.call(v, i) : new m(p(i))
        })), x && x(v, F), S(w(m), (function(t) {
            t in v || h(v, t, m[t])
        })), v.prototype = g) : (v = i((function(t, i, n, l) {
            c(t, v, r);
            var o, a, s, u = 0,
                h = 0;
            if (y(i)) {
                if (!B(i)) return H(i) ? N(v, i) : k.call(v, i);
                o = i, h = f(n, e);
                var m = i.byteLength;
                if (void 0 === l) {
                    if (m % e) throw D("Wrong length");
                    if ((a = m - h) < 0) throw D("Wrong length")
                } else if ((a = d(l) * e) + h > m) throw D("Wrong length");
                s = a / e
            } else s = p(i), o = new $(a = s * e);
            for (P(t, {
                    buffer: o,
                    byteOffset: h,
                    byteLength: a,
                    length: s,
                    view: new L(o)
                }); u < s;) T(t, u++)
        })), x && x(v, F), g = v.prototype = b(j)), g.constructor !== v && h(g, "constructor", v), V && h(g, V, r), C[r] = v, n({
            global: !0,
            forced: v != m,
            sham: !R
        }, C), "BYTES_PER_ELEMENT" in v || h(v, "BYTES_PER_ELEMENT", e), "BYTES_PER_ELEMENT" in g || h(g, "BYTES_PER_ELEMENT", e), M(r)
    }) : t.exports = function() {}
}, function(t, e, i) {
    var n = i(0),
        l = i(1),
        o = i(146),
        a = i(65).NATIVE_ARRAY_BUFFER_VIEWS,
        r = n.ArrayBuffer,
        s = n.Int8Array;
    t.exports = !a || !l((function() {
        s(1)
    })) || !l((function() {
        new s(-1)
    })) || !o((function(t) {
        new s, new s(null), new s(1.5), new s(t)
    }), !0) || l((function() {
        return 1 !== new s(new r(2), 1, void 0).length
    }))
}, function(t, e, i) {
    var n = i(15);
    t.exports = function(t) {
        var e = n(t);
        if (e < 0) throw RangeError("The argument can't be less than 0");
        return e
    }
}, function(t, e, i) {
    var n = i(16),
        l = i(11),
        o = i(148),
        a = i(149),
        r = i(61),
        s = i(65).aTypedArrayConstructor;
    t.exports = function(t) {
        var e, i, c, u, h, d, p = n(t),
            f = arguments.length,
            m = f > 1 ? arguments[1] : void 0,
            v = void 0 !== m,
            g = o(p);
        if (null != g && !a(g))
            for (d = (h = g.call(p)).next, p = []; !(u = d.call(h)).done;) p.push(u.value);
        for (v && f > 2 && (m = r(m, arguments[2], 2)), i = l(p.length), c = new(s(this))(i), e = 0; i > e; e++) c[e] = v ? m(p[e], e) : p[e];
        return c
    }
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(185),
        o = n.aTypedArray;
    n.exportProto("copyWithin", (function(t, e) {
        return l.call(o(this), t, e, arguments.length > 2 ? arguments[2] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(16),
        l = i(38),
        o = i(11),
        a = Math.min;
    t.exports = [].copyWithin || function(t, e) {
        var i = n(this),
            r = o(i.length),
            s = l(t, r),
            c = l(e, r),
            u = arguments.length > 2 ? arguments[2] : void 0,
            h = a((void 0 === u ? r : l(u, r)) - c, r - s),
            d = 1;
        for (c < s && s < c + h && (d = -1, c += h - 1, s += h - 1); h-- > 0;) c in i ? i[s] = i[c] : delete i[s], s += d, c += d;
        return i
    }
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(23).every,
        o = n.aTypedArray;
    n.exportProto("every", (function(t) {
        return l(o(this), t, arguments.length > 1 ? arguments[1] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(141),
        o = n.aTypedArray;
    n.exportProto("fill", (function(t) {
        return l.apply(o(this), arguments)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(23).filter,
        o = i(106),
        a = n.aTypedArray,
        r = n.aTypedArrayConstructor;
    n.exportProto("filter", (function(t) {
        for (var e = l(a(this), t, arguments.length > 1 ? arguments[1] : void 0), i = o(this, this.constructor), n = 0, s = e.length, c = new(r(i))(s); s > n;) c[n] = e[n++];
        return c
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(23).find,
        o = n.aTypedArray;
    n.exportProto("find", (function(t) {
        return l(o(this), t, arguments.length > 1 ? arguments[1] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(23).findIndex,
        o = n.aTypedArray;
    n.exportProto("findIndex", (function(t) {
        return l(o(this), t, arguments.length > 1 ? arguments[1] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(23).forEach,
        o = n.aTypedArray;
    n.exportProto("forEach", (function(t) {
        l(o(this), t, arguments.length > 1 ? arguments[1] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(39).includes,
        o = n.aTypedArray;
    n.exportProto("includes", (function(t) {
        return l(o(this), t, arguments.length > 1 ? arguments[1] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(39).indexOf,
        o = n.aTypedArray;
    n.exportProto("indexOf", (function(t) {
        return l(o(this), t, arguments.length > 1 ? arguments[1] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(0),
        l = i(65),
        o = i(54),
        a = i(2)("iterator"),
        r = n.Uint8Array,
        s = o.values,
        c = o.keys,
        u = o.entries,
        h = l.aTypedArray,
        d = l.exportProto,
        p = r && r.prototype[a],
        f = !!p && ("values" == p.name || null == p.name),
        m = function() {
            return s.call(h(this))
        };
    d("entries", (function() {
        return u.call(h(this))
    })), d("keys", (function() {
        return c.call(h(this))
    })), d("values", m, !f), d(a, m, !f)
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = n.aTypedArray,
        o = [].join;
    n.exportProto("join", (function(t) {
        return o.apply(l(this), arguments)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(132),
        o = n.aTypedArray;
    n.exportProto("lastIndexOf", (function(t) {
        return l.apply(o(this), arguments)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(23).map,
        o = i(106),
        a = n.aTypedArray,
        r = n.aTypedArrayConstructor;
    n.exportProto("map", (function(t) {
        return l(a(this), t, arguments.length > 1 ? arguments[1] : void 0, (function(t, e) {
            return new(r(o(t, t.constructor)))(e)
        }))
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(125).left,
        o = n.aTypedArray;
    n.exportProto("reduce", (function(t) {
        return l(o(this), t, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(125).right,
        o = n.aTypedArray;
    n.exportProto("reduceRight", (function(t) {
        return l(o(this), t, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = n.aTypedArray,
        o = Math.floor;
    n.exportProto("reverse", (function() {
        for (var t, e = l(this).length, i = o(e / 2), n = 0; n < i;) t = this[n], this[n++] = this[--e], this[e] = t;
        return this
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(11),
        o = i(147),
        a = i(16),
        r = i(1),
        s = n.aTypedArray,
        c = r((function() {
            new Int8Array(1).set({})
        }));
    n.exportProto("set", (function(t) {
        s(this);
        var e = o(arguments.length > 1 ? arguments[1] : void 0, 1),
            i = this.length,
            n = a(t),
            r = l(n.length),
            c = 0;
        if (r + e > i) throw RangeError("Wrong length");
        for (; c < r;) this[e + c] = n[c++]
    }), c)
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(106),
        o = i(1),
        a = n.aTypedArray,
        r = n.aTypedArrayConstructor,
        s = [].slice,
        c = o((function() {
            new Int8Array(1).slice()
        }));
    n.exportProto("slice", (function(t, e) {
        for (var i = s.call(a(this), t, e), n = l(this, this.constructor), o = 0, c = i.length, u = new(r(n))(c); c > o;) u[o] = i[o++];
        return u
    }), c)
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(23).some,
        o = n.aTypedArray;
    n.exportProto("some", (function(t) {
        return l(o(this), t, arguments.length > 1 ? arguments[1] : void 0)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = n.aTypedArray,
        o = [].sort;
    n.exportProto("sort", (function(t) {
        return o.call(l(this), t)
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(65),
        l = i(11),
        o = i(38),
        a = i(106),
        r = n.aTypedArray;
    n.exportProto("subarray", (function(t, e) {
        var i = r(this),
            n = i.length,
            s = o(t, n);
        return new(a(i, i.constructor))(i.buffer, i.byteOffset + s * i.BYTES_PER_ELEMENT, l((void 0 === e ? n : o(e, n)) - s))
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(0),
        l = i(65),
        o = i(1),
        a = n.Int8Array,
        r = l.aTypedArray,
        s = [].toLocaleString,
        c = [].slice,
        u = !!a && o((function() {
            s.call(new a(1))
        })),
        h = o((function() {
            return [1, 2].toLocaleString() != new a([1, 2]).toLocaleString()
        })) || !o((function() {
            a.prototype.toLocaleString.call([1, 2])
        }));
    l.exportProto("toLocaleString", (function() {
        return s.apply(u ? c.call(r(this)) : r(this), arguments)
    }), h)
}, function(t, e, i) {
    "use strict";
    var n = i(0),
        l = i(65),
        o = i(1),
        a = n.Uint8Array,
        r = a && a.prototype,
        s = [].toString,
        c = [].join;
    o((function() {
        s.call({})
    })) && (s = function() {
        return c.call(this)
    }), l.exportProto("toString", s, (r || {}).toString != s)
}, function(t, e, i) {
    "use strict";
    (function(t) {
        i(69), i(71), i(72), i(66), i(54), i(78), i(89), i(111), i(64), i(97), i(73), i(74);

        function e(t) {
            return (e = "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)
        }
        /*!
         * Waves v0.7.6
         * http://fian.my.id/Waves
         *
         * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
         * Released under the MIT license
         * https://github.com/fians/Waves/blob/master/LICENSE
         */
        ! function(n, l) {
            "function" == typeof define && i(75) ? define([], (function() {
                return n.Waves = l.call(n), n.Waves
            })) : "object" === ("undefined" == typeof exports ? "undefined" : e(exports)) ? t.exports = l.call(n) : n.Waves = l.call(n)
        }("object" === ("undefined" == typeof window ? "undefined" : e(window)) ? window : void 0, (function() {
            var t = t || {},
                i = document.querySelectorAll.bind(document),
                n = Object.prototype.toString,
                l = "ontouchstart" in window;

            function o(t) {
                var i = e(t);
                return "function" === i || "object" === i && !!t
            }

            function a(t) {
                var e, l = n.call(t);
                return "[object String]" === l ? i(t) : o(t) && /^\[object (Array|HTMLCollection|NodeList|Object)\]$/.test(l) && t.hasOwnProperty("length") ? t : o(e = t) && e.nodeType > 0 ? [t] : []
            }

            function r(t) {
                var i, n, l = {
                        top: 0,
                        left: 0
                    },
                    o = t && t.ownerDocument;
                return i = o.documentElement, "undefined" !== e(t.getBoundingClientRect) && (l = t.getBoundingClientRect()), n = function(t) {
                    return null !== (e = t) && e === e.window ? t : 9 === t.nodeType && t.defaultView;
                    var e
                }(o), {
                    top: l.top + n.pageYOffset - i.clientTop,
                    left: l.left + n.pageXOffset - i.clientLeft
                }
            }

            function s(t) {
                var e = "";
                for (var i in t) t.hasOwnProperty(i) && (e += i + ":" + t[i] + ";");
                return e
            }
            var c = {
                    duration: 750,
                    delay: 200,
                    show: function(t, e, i) {
                        if (2 === t.button) return !1;
                        e = e || this;
                        var n = document.createElement("div");
                        n.className = "waves-ripple waves-rippling", e.appendChild(n);
                        var l = r(e),
                            o = 0,
                            a = 0;
                        "touches" in t && t.touches.length ? (o = t.touches[0].pageY - l.top, a = t.touches[0].pageX - l.left) : (o = t.pageY - l.top, a = t.pageX - l.left), a = a >= 0 ? a : 0, o = o >= 0 ? o : 0;
                        var u = "scale(" + e.clientWidth / 100 * 3 + ")",
                            h = "translate(0,0)";
                        i && (h = "translate(" + i.x + "px, " + i.y + "px)"), n.setAttribute("data-hold", Date.now()), n.setAttribute("data-x", a), n.setAttribute("data-y", o), n.setAttribute("data-scale", u), n.setAttribute("data-translate", h);
                        var d = {
                            top: o + "px",
                            left: a + "px"
                        };
                        n.classList.add("waves-notransition"), n.setAttribute("style", s(d)), n.classList.remove("waves-notransition"), d["-webkit-transform"] = u + " " + h, d["-moz-transform"] = u + " " + h, d["-ms-transform"] = u + " " + h, d["-o-transform"] = u + " " + h, d.transform = u + " " + h, d.opacity = "1";
                        var p = "mousemove" === t.type ? 2500 : c.duration;
                        d["-webkit-transition-duration"] = p + "ms", d["-moz-transition-duration"] = p + "ms", d["-o-transition-duration"] = p + "ms", d["transition-duration"] = p + "ms", n.setAttribute("style", s(d))
                    },
                    hide: function(t, e) {
                        for (var i = (e = e || this).getElementsByClassName("waves-rippling"), n = 0, o = i.length; n < o; n++) h(t, e, i[n]);
                        l && (e.removeEventListener("touchend", c.hide), e.removeEventListener("touchcancel", c.hide)), e.removeEventListener("mouseup", c.hide), e.removeEventListener("mouseleave", c.hide)
                    }
                },
                u = {
                    input: function(t) {
                        var e = t.parentNode;
                        if ("span" !== e.tagName.toLowerCase() || !e.classList.contains("waves-effect")) {
                            var i = document.createElement("span");
                            i.className = "waves-input-wrapper", e.replaceChild(i, t), i.appendChild(t)
                        }
                    },
                    img: function(t) {
                        var e = t.parentNode;
                        if ("i" !== e.tagName.toLowerCase() || !e.classList.contains("waves-effect")) {
                            var i = document.createElement("i");
                            e.replaceChild(i, t), i.appendChild(t)
                        }
                    }
                };

            function h(t, e, i) {
                if (i) {
                    i.classList.remove("waves-rippling");
                    var n = i.getAttribute("data-x"),
                        l = i.getAttribute("data-y"),
                        o = i.getAttribute("data-scale"),
                        a = i.getAttribute("data-translate"),
                        r = 350 - (Date.now() - Number(i.getAttribute("data-hold")));
                    r < 0 && (r = 0), "mousemove" === t.type && (r = 150);
                    var u = "mousemove" === t.type ? 2500 : c.duration;
                    setTimeout((function() {
                        var t = {
                            top: l + "px",
                            left: n + "px",
                            opacity: "0",
                            "-webkit-transition-duration": u + "ms",
                            "-moz-transition-duration": u + "ms",
                            "-o-transition-duration": u + "ms",
                            "transition-duration": u + "ms",
                            "-webkit-transform": o + " " + a,
                            "-moz-transform": o + " " + a,
                            "-ms-transform": o + " " + a,
                            "-o-transform": o + " " + a,
                            transform: o + " " + a
                        };
                        i.setAttribute("style", s(t)), setTimeout((function() {
                            try {
                                e.removeChild(i)
                            } catch (t) {
                                return !1
                            }
                        }), u)
                    }), r)
                }
            }
            var d = {
                touches: 0,
                allowEvent: function(t) {
                    var e = !0;
                    return /^(mousedown|mousemove)$/.test(t.type) && d.touches && (e = !1), e
                },
                registerEvent: function(t) {
                    var e = t.type;
                    "touchstart" === e ? d.touches += 1 : /^(touchend|touchcancel)$/.test(e) && setTimeout((function() {
                        d.touches && (d.touches -= 1)
                    }), 500)
                }
            };

            function p(t) {
                var e = function(t) {
                    if (!1 === d.allowEvent(t)) return null;
                    for (var e = null, i = t.target || t.srcElement; i.parentElement;) {
                        if (!(i instanceof SVGElement) && i.classList.contains("waves-effect")) {
                            e = i;
                            break
                        }
                        i = i.parentElement
                    }
                    return e
                }(t);
                if (null !== e) {
                    if (e.disabled || e.getAttribute("disabled") || e.classList.contains("disabled")) return;
                    if (d.registerEvent(t), "touchstart" === t.type && c.delay) {
                        var i = !1,
                            n = setTimeout((function() {
                                n = null, c.show(t, e)
                            }), c.delay),
                            o = function(l) {
                                n && (clearTimeout(n), n = null, c.show(t, e)), i || (i = !0, c.hide(l, e)), r()
                            },
                            a = function(t) {
                                n && (clearTimeout(n), n = null), o(t), r()
                            };
                        e.addEventListener("touchmove", a, !1), e.addEventListener("touchend", o, !1), e.addEventListener("touchcancel", o, !1);
                        var r = function() {
                            e.removeEventListener("touchmove", a), e.removeEventListener("touchend", o), e.removeEventListener("touchcancel", o)
                        }
                    } else c.show(t, e), l && (e.addEventListener("touchend", c.hide, !1), e.addEventListener("touchcancel", c.hide, !1)), e.addEventListener("mouseup", c.hide, !1), e.addEventListener("mouseleave", c.hide, !1)
                }
            }
            return t.init = function(t) {
                var e = document.body;
                "duration" in (t = t || {}) && (c.duration = t.duration), "delay" in t && (c.delay = t.delay), l && (e.addEventListener("touchstart", p, !1), e.addEventListener("touchcancel", d.registerEvent, !1), e.addEventListener("touchend", d.registerEvent, !1)), e.addEventListener("mousedown", p, !1)
            }, t.attach = function(t, e) {
                var i, l;
                t = a(t), "[object Array]" === n.call(e) && (e = e.join(" ")), e = e ? " " + e : "";
                for (var o = 0, r = t.length; o < r; o++) l = (i = t[o]).tagName.toLowerCase(), -1 !== ["input", "img"].indexOf(l) && (u[l](i), i = i.parentElement), -1 === i.className.indexOf("waves-effect") && (i.className += " waves-effect" + e)
            }, t.ripple = function(t, e) {
                var i = (t = a(t)).length;
                if ((e = e || {}).wait = e.wait || 0, e.position = e.position || null, i)
                    for (var n, l, o, s = {}, u = 0, h = {
                            type: "mousedown",
                            button: 1
                        }, d = function(t, e) {
                            return function() {
                                c.hide(t, e)
                            }
                        }; u < i; u++)
                        if (n = t[u], l = e.position || {
                                x: n.clientWidth / 2,
                                y: n.clientHeight / 2
                            }, o = r(n), s.x = o.left + l.x, s.y = o.top + l.y, h.pageX = s.x, h.pageY = s.y, c.show(h, n), e.wait >= 0 && null !== e.wait) {
                            setTimeout(d({
                                type: "mouseup",
                                button: 1
                            }, n), e.wait)
                        }
            }, t.calm = function(t) {
                for (var e = {
                        type: "mouseup",
                        button: 1
                    }, i = 0, n = (t = a(t)).length; i < n; i++) c.hide(e, t[i])
            }, t.displayEffect = function(e) {
                console.error("Waves.displayEffect() has been deprecated and will be removed in future version. Please use Waves.init() to initialize Waves effect"), t.init(e)
            }, t
        })), $(document).ready((function() {
            Waves.attach(".btn:not(.btn-flat), .btn-floating", ["waves-light"]), Waves.attach(".btn-flat", ["waves-effect"]), Waves.attach(".chip", ["waves-effect"]), Waves.attach(".view a .mask", ["waves-light"]), Waves.attach(".waves-light", ["waves-light"]), Waves.attach(".navbar-nav a:not(.navbar-brand), .nav-icons li a, .nav-tabs .nav-item:not(.dropdown)", ["waves-light"]), Waves.attach(".pager li a", ["waves-light"]), Waves.attach(".pagination .page-item .page-link", ["waves-effect"]), Waves.init()
        }))
    }).call(this, i(95)(t))
}, function(t, e) {
    ! function(t) {
        t.fn.sticky = function(e) {
            var i = t.extend({}, {
                topSpacing: 0,
                zIndex: "",
                stopper: ".sticky-stopper",
                stickyClass: !1
            }, e);
            var n = "number" == typeof i.zIndex;
            var l = 0 < t(i.stopper).length || "number" == typeof i.stopper;
            return this.each((function() {
                var e = t(this),
                    o = e.outerHeight(),
                    a = e.outerWidth(),
                    r = i.topSpacing,
                    s = i.zIndex,
                    c = e.offset().top - r,
                    u = t("<div></div>").width(a).height(o).addClass("sticky-placeholder"),
                    h = i.stopper,
                    d = t(window);

                function p() {
                    var a = d.scrollTop(),
                        p = h,
                        f = e.parent().width();
                    (u.width(f), l && "string" == typeof h) && (p = t(h).offset().top - o - r);
                    if (c < a) {
                        if (i.stickyClass && e.addClass(i.stickyClass), e.after(u).css({
                                position: "fixed",
                                top: r,
                                width: f
                            }), n && e.css({
                                zIndex: s
                            }), l && p < a) {
                            var m = p - a + r;
                            e.css({
                                top: m
                            })
                        }
                    } else i.stickyClass && e.removeClass(i.stickyClass), e.css({
                        position: "static",
                        top: null,
                        left: null,
                        width: "auto"
                    }), u.remove()
                }
                d.innerHeight() > o && (d.bind("scroll", p), d.bind("load", p), d.bind("resize", p))
            }))
        }
    }(jQuery)
}, function(t, e, i) {
    "use strict";
    (function(t) {
        var e, n;
        i(69), i(71), i(72), i(211), i(91), i(107), i(66), i(54), i(78), i(108), i(89), i(113), i(64), i(119), i(68), i(73), i(117), i(98), i(109), i(74);

        function l(t) {
            return (l = "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)
        }
        /*!
         * perfect-scrollbar v1.5.0
         * Copyright 2020 Hyunje Jun, MDBootstrap and Contributors
         * Licensed under MIT
         */
        e = void 0, n = function() {
            function t(t) {
                return getComputedStyle(t)
            }

            function e(t, e) {
                for (var i in e) {
                    var n = e[i];
                    "number" == typeof n && (n += "px"), t.style[i] = n
                }
                return t
            }

            function i(t) {
                var e = document.createElement("div");
                return e.className = t, e
            }
            var n = "undefined" != typeof Element && (Element.prototype.matches || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector);

            function l(t, e) {
                if (!n) throw new Error("No element matching method supported");
                return n.call(t, e)
            }

            function o(t) {
                t.remove ? t.remove() : t.parentNode && t.parentNode.removeChild(t)
            }

            function a(t, e) {
                return Array.prototype.filter.call(t.children, (function(t) {
                    return l(t, e)
                }))
            }
            var r = {
                    main: "ps",
                    rtl: "ps__rtl",
                    element: {
                        thumb: function(t) {
                            return "ps__thumb-" + t
                        },
                        rail: function(t) {
                            return "ps__rail-" + t
                        },
                        consuming: "ps__child--consume"
                    },
                    state: {
                        focus: "ps--focus",
                        clicking: "ps--clicking",
                        active: function(t) {
                            return "ps--active-" + t
                        },
                        scrolling: function(t) {
                            return "ps--scrolling-" + t
                        }
                    }
                },
                s = {
                    x: null,
                    y: null
                };

            function c(t, e) {
                var i = t.element.classList,
                    n = r.state.scrolling(e);
                i.contains(n) ? clearTimeout(s[e]) : i.add(n)
            }

            function u(t, e) {
                s[e] = setTimeout((function() {
                    return t.isAlive && t.element.classList.remove(r.state.scrolling(e))
                }), t.settings.scrollingThreshold)
            }
            var h = function(t) {
                    this.element = t, this.handlers = {}
                },
                d = {
                    isEmpty: {
                        configurable: !0
                    }
                };
            h.prototype.bind = function(t, e) {
                void 0 === this.handlers[t] && (this.handlers[t] = []), this.handlers[t].push(e), this.element.addEventListener(t, e, !1)
            }, h.prototype.unbind = function(t, e) {
                var i = this;
                this.handlers[t] = this.handlers[t].filter((function(n) {
                    return !(!e || n === e) || (i.element.removeEventListener(t, n, !1), !1)
                }))
            }, h.prototype.unbindAll = function() {
                for (var t in this.handlers) this.unbind(t)
            }, d.isEmpty.get = function() {
                var t = this;
                return Object.keys(this.handlers).every((function(e) {
                    return 0 === t.handlers[e].length
                }))
            }, Object.defineProperties(h.prototype, d);
            var p = function() {
                this.eventElements = []
            };

            function f(t) {
                if ("function" == typeof window.CustomEvent) return new CustomEvent(t);
                var e = document.createEvent("CustomEvent");
                return e.initCustomEvent(t, !1, !1, void 0), e
            }

            function m(t, e, i, n, l) {
                var o;
                if (void 0 === n && (n = !0), void 0 === l && (l = !1), "top" === e) o = ["contentHeight", "containerHeight", "scrollTop", "y", "up", "down"];
                else {
                    if ("left" !== e) throw new Error("A proper axis should be provided");
                    o = ["contentWidth", "containerWidth", "scrollLeft", "x", "left", "right"]
                }! function(t, e, i, n, l) {
                    var o = i[0],
                        a = i[1],
                        r = i[2],
                        s = i[3],
                        h = i[4],
                        d = i[5];
                    void 0 === n && (n = !0), void 0 === l && (l = !1);
                    var p = t.element;
                    t.reach[s] = null, p[r] < 1 && (t.reach[s] = "start"), p[r] > t[o] - t[a] - 1 && (t.reach[s] = "end"), e && (p.dispatchEvent(f("ps-scroll-" + s)), e < 0 ? p.dispatchEvent(f("ps-scroll-" + h)) : e > 0 && p.dispatchEvent(f("ps-scroll-" + d)), n && function(t, e) {
                        c(t, e), u(t, e)
                    }(t, s)), t.reach[s] && (e || l) && p.dispatchEvent(f("ps-" + s + "-reach-" + t.reach[s]))
                }(t, i, o, n, l)
            }

            function v(t) {
                return parseInt(t, 10) || 0
            }
            p.prototype.eventElement = function(t) {
                var e = this.eventElements.filter((function(e) {
                    return e.element === t
                }))[0];
                return e || (e = new h(t), this.eventElements.push(e)), e
            }, p.prototype.bind = function(t, e, i) {
                this.eventElement(t).bind(e, i)
            }, p.prototype.unbind = function(t, e, i) {
                var n = this.eventElement(t);
                n.unbind(e, i), n.isEmpty && this.eventElements.splice(this.eventElements.indexOf(n), 1)
            }, p.prototype.unbindAll = function() {
                this.eventElements.forEach((function(t) {
                    return t.unbindAll()
                })), this.eventElements = []
            }, p.prototype.once = function(t, e, i) {
                var n = this.eventElement(t);
                n.bind(e, (function t(l) {
                    n.unbind(e, t), i(l)
                }))
            };
            var g = {
                isWebKit: "undefined" != typeof document && "WebkitAppearance" in document.documentElement.style,
                supportsTouch: "undefined" != typeof window && ("ontouchstart" in window || "maxTouchPoints" in window.navigator && window.navigator.maxTouchPoints > 0 || window.DocumentTouch && document instanceof window.DocumentTouch),
                supportsIePointer: "undefined" != typeof navigator && navigator.msMaxTouchPoints,
                isChrome: "undefined" != typeof navigator && /Chrome/i.test(navigator && navigator.userAgent)
            };

            function y(t) {
                var i = t.element,
                    n = Math.floor(i.scrollTop),
                    l = i.getBoundingClientRect();
                t.containerWidth = Math.ceil(l.width), t.containerHeight = Math.ceil(l.height), t.contentWidth = i.scrollWidth, t.contentHeight = i.scrollHeight, i.contains(t.scrollbarXRail) || (a(i, r.element.rail("x")).forEach((function(t) {
                        return o(t)
                    })), i.appendChild(t.scrollbarXRail)), i.contains(t.scrollbarYRail) || (a(i, r.element.rail("y")).forEach((function(t) {
                        return o(t)
                    })), i.appendChild(t.scrollbarYRail)), !t.settings.suppressScrollX && t.containerWidth + t.settings.scrollXMarginOffset < t.contentWidth ? (t.scrollbarXActive = !0, t.railXWidth = t.containerWidth - t.railXMarginWidth, t.railXRatio = t.containerWidth / t.railXWidth, t.scrollbarXWidth = b(t, v(t.railXWidth * t.containerWidth / t.contentWidth)), t.scrollbarXLeft = v((t.negativeScrollAdjustment + i.scrollLeft) * (t.railXWidth - t.scrollbarXWidth) / (t.contentWidth - t.containerWidth))) : t.scrollbarXActive = !1, !t.settings.suppressScrollY && t.containerHeight + t.settings.scrollYMarginOffset < t.contentHeight ? (t.scrollbarYActive = !0, t.railYHeight = t.containerHeight - t.railYMarginHeight, t.railYRatio = t.containerHeight / t.railYHeight, t.scrollbarYHeight = b(t, v(t.railYHeight * t.containerHeight / t.contentHeight)), t.scrollbarYTop = v(n * (t.railYHeight - t.scrollbarYHeight) / (t.contentHeight - t.containerHeight))) : t.scrollbarYActive = !1, t.scrollbarXLeft >= t.railXWidth - t.scrollbarXWidth && (t.scrollbarXLeft = t.railXWidth - t.scrollbarXWidth), t.scrollbarYTop >= t.railYHeight - t.scrollbarYHeight && (t.scrollbarYTop = t.railYHeight - t.scrollbarYHeight),
                    function(t, i) {
                        var n = {
                                width: i.railXWidth
                            },
                            l = Math.floor(t.scrollTop);
                        i.isRtl ? n.left = i.negativeScrollAdjustment + t.scrollLeft + i.containerWidth - i.contentWidth : n.left = t.scrollLeft, i.isScrollbarXUsingBottom ? n.bottom = i.scrollbarXBottom - l : n.top = i.scrollbarXTop + l, e(i.scrollbarXRail, n);
                        var o = {
                            top: l,
                            height: i.railYHeight
                        };
                        i.isScrollbarYUsingRight ? i.isRtl ? o.right = i.contentWidth - (i.negativeScrollAdjustment + t.scrollLeft) - i.scrollbarYRight - i.scrollbarYOuterWidth - 9 : o.right = i.scrollbarYRight - t.scrollLeft : i.isRtl ? o.left = i.negativeScrollAdjustment + t.scrollLeft + 2 * i.containerWidth - i.contentWidth - i.scrollbarYLeft - i.scrollbarYOuterWidth : o.left = i.scrollbarYLeft + t.scrollLeft, e(i.scrollbarYRail, o), e(i.scrollbarX, {
                            left: i.scrollbarXLeft,
                            width: i.scrollbarXWidth - i.railBorderXWidth
                        }), e(i.scrollbarY, {
                            top: i.scrollbarYTop,
                            height: i.scrollbarYHeight - i.railBorderYWidth
                        })
                    }(i, t), t.scrollbarXActive ? i.classList.add(r.state.active("x")) : (i.classList.remove(r.state.active("x")), t.scrollbarXWidth = 0, t.scrollbarXLeft = 0, i.scrollLeft = !0 === t.isRtl ? t.contentWidth : 0), t.scrollbarYActive ? i.classList.add(r.state.active("y")) : (i.classList.remove(r.state.active("y")), t.scrollbarYHeight = 0, t.scrollbarYTop = 0, i.scrollTop = 0)
            }

            function b(t, e) {
                return t.settings.minScrollbarLength && (e = Math.max(e, t.settings.minScrollbarLength)), t.settings.maxScrollbarLength && (e = Math.min(e, t.settings.maxScrollbarLength)), e
            }

            function x(t, e) {
                var i = e[0],
                    n = e[1],
                    l = e[2],
                    o = e[3],
                    a = e[4],
                    s = e[5],
                    h = e[6],
                    d = e[7],
                    p = e[8],
                    f = t.element,
                    m = null,
                    v = null,
                    g = null;

                function b(e) {
                    e.touches && e.touches[0] && (e[l] = e.touches[0].pageY), f[h] = m + g * (e[l] - v), c(t, d), y(t), e.stopPropagation(), e.preventDefault()
                }

                function x() {
                    u(t, d), t[p].classList.remove(r.state.clicking), t.event.unbind(t.ownerDocument, "mousemove", b)
                }

                function w(e, a) {
                    m = f[h], a && e.touches && (e[l] = e.touches[0].pageY), v = e[l], g = (t[n] - t[i]) / (t[o] - t[s]), a ? t.event.bind(t.ownerDocument, "touchmove", b) : (t.event.bind(t.ownerDocument, "mousemove", b), t.event.once(t.ownerDocument, "mouseup", x), e.preventDefault()), t[p].classList.add(r.state.clicking), e.stopPropagation()
                }
                t.event.bind(t[a], "mousedown", (function(t) {
                    w(t)
                })), t.event.bind(t[a], "touchstart", (function(t) {
                    w(t, !0)
                }))
            }
            var w = {
                    "click-rail": function(t) {
                        t.element, t.event.bind(t.scrollbarY, "mousedown", (function(t) {
                            return t.stopPropagation()
                        })), t.event.bind(t.scrollbarYRail, "mousedown", (function(e) {
                            var i = e.pageY - window.pageYOffset - t.scrollbarYRail.getBoundingClientRect().top > t.scrollbarYTop ? 1 : -1;
                            t.element.scrollTop += i * t.containerHeight, y(t), e.stopPropagation()
                        })), t.event.bind(t.scrollbarX, "mousedown", (function(t) {
                            return t.stopPropagation()
                        })), t.event.bind(t.scrollbarXRail, "mousedown", (function(e) {
                            var i = e.pageX - window.pageXOffset - t.scrollbarXRail.getBoundingClientRect().left > t.scrollbarXLeft ? 1 : -1;
                            t.element.scrollLeft += i * t.containerWidth, y(t), e.stopPropagation()
                        }))
                    },
                    "drag-thumb": function(t) {
                        x(t, ["containerWidth", "contentWidth", "pageX", "railXWidth", "scrollbarX", "scrollbarXWidth", "scrollLeft", "x", "scrollbarXRail"]), x(t, ["containerHeight", "contentHeight", "pageY", "railYHeight", "scrollbarY", "scrollbarYHeight", "scrollTop", "y", "scrollbarYRail"])
                    },
                    keyboard: function(t) {
                        var e = t.element;
                        t.event.bind(t.ownerDocument, "keydown", (function(i) {
                            if (!(i.isDefaultPrevented && i.isDefaultPrevented() || i.defaultPrevented) && (l(e, ":hover") || l(t.scrollbarX, ":focus") || l(t.scrollbarY, ":focus"))) {
                                var n, o = document.activeElement ? document.activeElement : t.ownerDocument.activeElement;
                                if (o) {
                                    if ("IFRAME" === o.tagName) o = o.contentDocument.activeElement;
                                    else
                                        for (; o.shadowRoot;) o = o.shadowRoot.activeElement;
                                    if (l(n = o, "input,[contenteditable]") || l(n, "select,[contenteditable]") || l(n, "textarea,[contenteditable]") || l(n, "button,[contenteditable]")) return
                                }
                                var a = 0,
                                    r = 0;
                                switch (i.which) {
                                    case 37:
                                        a = i.metaKey ? -t.contentWidth : i.altKey ? -t.containerWidth : -30;
                                        break;
                                    case 38:
                                        r = i.metaKey ? t.contentHeight : i.altKey ? t.containerHeight : 30;
                                        break;
                                    case 39:
                                        a = i.metaKey ? t.contentWidth : i.altKey ? t.containerWidth : 30;
                                        break;
                                    case 40:
                                        r = i.metaKey ? -t.contentHeight : i.altKey ? -t.containerHeight : -30;
                                        break;
                                    case 32:
                                        r = i.shiftKey ? t.containerHeight : -t.containerHeight;
                                        break;
                                    case 33:
                                        r = t.containerHeight;
                                        break;
                                    case 34:
                                        r = -t.containerHeight;
                                        break;
                                    case 36:
                                        r = t.contentHeight;
                                        break;
                                    case 35:
                                        r = -t.contentHeight;
                                        break;
                                    default:
                                        return
                                }
                                t.settings.suppressScrollX && 0 !== a || t.settings.suppressScrollY && 0 !== r || (e.scrollTop -= r, e.scrollLeft += a, y(t), function(i, n) {
                                    var l = Math.floor(e.scrollTop);
                                    if (0 === i) {
                                        if (!t.scrollbarYActive) return !1;
                                        if (0 === l && n > 0 || l >= t.contentHeight - t.containerHeight && n < 0) return !t.settings.wheelPropagation
                                    }
                                    var o = e.scrollLeft;
                                    if (0 === n) {
                                        if (!t.scrollbarXActive) return !1;
                                        if (0 === o && i < 0 || o >= t.contentWidth - t.containerWidth && i > 0) return !t.settings.wheelPropagation
                                    }
                                    return !0
                                }(a, r) && i.preventDefault())
                            }
                        }))
                    },
                    wheel: function(e) {
                        var i = e.element;

                        function n(n) {
                            var l = function(t) {
                                    var e = t.deltaX,
                                        i = -1 * t.deltaY;
                                    return void 0 !== e && void 0 !== i || (e = -1 * t.wheelDeltaX / 6, i = t.wheelDeltaY / 6), t.deltaMode && 1 === t.deltaMode && (e *= 10, i *= 10), e != e && i != i && (e = 0, i = t.wheelDelta), t.shiftKey ? [-i, -e] : [e, i]
                                }(n),
                                o = l[0],
                                a = l[1];
                            if (! function(e, n, l) {
                                    if (!g.isWebKit && i.querySelector("select:focus")) return !0;
                                    if (!i.contains(e)) return !1;
                                    for (var o = e; o && o !== i;) {
                                        if (o.classList.contains(r.element.consuming)) return !0;
                                        var a = t(o);
                                        if (l && a.overflowY.match(/(scroll|auto)/)) {
                                            var s = o.scrollHeight - o.clientHeight;
                                            if (s > 0 && (o.scrollTop > 0 && l < 0 || o.scrollTop < s && l > 0)) return !0
                                        }
                                        if (n && a.overflowX.match(/(scroll|auto)/)) {
                                            var c = o.scrollWidth - o.clientWidth;
                                            if (c > 0 && (o.scrollLeft > 0 && n < 0 || o.scrollLeft < c && n > 0)) return !0
                                        }
                                        o = o.parentNode
                                    }
                                    return !1
                                }(n.target, o, a)) {
                                var s = !1;
                                e.settings.useBothWheelAxes ? e.scrollbarYActive && !e.scrollbarXActive ? (a ? i.scrollTop -= a * e.settings.wheelSpeed : i.scrollTop += o * e.settings.wheelSpeed, s = !0) : e.scrollbarXActive && !e.scrollbarYActive && (o ? i.scrollLeft += o * e.settings.wheelSpeed : i.scrollLeft -= a * e.settings.wheelSpeed, s = !0) : (i.scrollTop -= a * e.settings.wheelSpeed, i.scrollLeft += o * e.settings.wheelSpeed), y(e), (s = s || function(t, n) {
                                    var l = Math.floor(i.scrollTop),
                                        o = 0 === i.scrollTop,
                                        a = l + i.offsetHeight === i.scrollHeight,
                                        r = 0 === i.scrollLeft,
                                        s = i.scrollLeft + i.offsetWidth === i.scrollWidth;
                                    return !(Math.abs(n) > Math.abs(t) ? o || a : r || s) || !e.settings.wheelPropagation
                                }(o, a)) && !n.ctrlKey && (n.stopPropagation(), n.preventDefault())
                            }
                        }
                        void 0 !== window.onwheel ? e.event.bind(i, "wheel", n) : void 0 !== window.onmousewheel && e.event.bind(i, "mousewheel", n)
                    },
                    touch: function(e) {
                        if (g.supportsTouch || g.supportsIePointer) {
                            var i = e.element,
                                n = {},
                                l = 0,
                                o = {},
                                a = null;
                            g.supportsTouch ? (e.event.bind(i, "touchstart", h), e.event.bind(i, "touchmove", d), e.event.bind(i, "touchend", p)) : g.supportsIePointer && (window.PointerEvent ? (e.event.bind(i, "pointerdown", h), e.event.bind(i, "pointermove", d), e.event.bind(i, "pointerup", p)) : window.MSPointerEvent && (e.event.bind(i, "MSPointerDown", h), e.event.bind(i, "MSPointerMove", d), e.event.bind(i, "MSPointerUp", p)))
                        }

                        function s(t, n) {
                            i.scrollTop -= n, i.scrollLeft -= t, y(e)
                        }

                        function c(t) {
                            return t.targetTouches ? t.targetTouches[0] : t
                        }

                        function u(t) {
                            return !(t.pointerType && "pen" === t.pointerType && 0 === t.buttons || (!t.targetTouches || 1 !== t.targetTouches.length) && (!t.pointerType || "mouse" === t.pointerType || t.pointerType === t.MSPOINTER_TYPE_MOUSE))
                        }

                        function h(t) {
                            if (u(t)) {
                                var e = c(t);
                                n.pageX = e.pageX, n.pageY = e.pageY, l = (new Date).getTime(), null !== a && clearInterval(a)
                            }
                        }

                        function d(a) {
                            if (u(a)) {
                                var h = c(a),
                                    d = {
                                        pageX: h.pageX,
                                        pageY: h.pageY
                                    },
                                    p = d.pageX - n.pageX,
                                    f = d.pageY - n.pageY;
                                if (function(e, n, l) {
                                        if (!i.contains(e)) return !1;
                                        for (var o = e; o && o !== i;) {
                                            if (o.classList.contains(r.element.consuming)) return !0;
                                            var a = t(o);
                                            if (l && a.overflowY.match(/(scroll|auto)/)) {
                                                var s = o.scrollHeight - o.clientHeight;
                                                if (s > 0 && (o.scrollTop > 0 && l < 0 || o.scrollTop < s && l > 0)) return !0
                                            }
                                            if (n && a.overflowX.match(/(scroll|auto)/)) {
                                                var c = o.scrollWidth - o.clientWidth;
                                                if (c > 0 && (o.scrollLeft > 0 && n < 0 || o.scrollLeft < c && n > 0)) return !0
                                            }
                                            o = o.parentNode
                                        }
                                        return !1
                                    }(a.target, p, f)) return;
                                s(p, f), n = d;
                                var m = (new Date).getTime(),
                                    v = m - l;
                                v > 0 && (o.x = p / v, o.y = f / v, l = m),
                                    function(t, n) {
                                        var l = Math.floor(i.scrollTop),
                                            o = i.scrollLeft,
                                            a = Math.abs(t),
                                            r = Math.abs(n);
                                        if (r > a) {
                                            if (n < 0 && l === e.contentHeight - e.containerHeight || n > 0 && 0 === l) return 0 === window.scrollY && n > 0 && g.isChrome
                                        } else if (a > r && (t < 0 && o === e.contentWidth - e.containerWidth || t > 0 && 0 === o)) return !0;
                                        return !0
                                    }(p, f) && a.preventDefault()
                            }
                        }

                        function p() {
                            e.settings.swipeEasing && (clearInterval(a), a = setInterval((function() {
                                e.isInitialized ? clearInterval(a) : o.x || o.y ? Math.abs(o.x) < .01 && Math.abs(o.y) < .01 ? clearInterval(a) : (s(30 * o.x, 30 * o.y), o.x *= .8, o.y *= .8) : clearInterval(a)
                            }), 10))
                        }
                    }
                },
                k = function(n, l) {
                    var o = this;
                    if (void 0 === l && (l = {}), "string" == typeof n && (n = document.querySelector(n)), !n || !n.nodeName) throw new Error("no element is specified to initialize PerfectScrollbar");
                    for (var a in this.element = n, n.classList.add(r.main), this.settings = {
                            handlers: ["click-rail", "drag-thumb", "keyboard", "wheel", "touch"],
                            maxScrollbarLength: null,
                            minScrollbarLength: null,
                            scrollingThreshold: 1e3,
                            scrollXMarginOffset: 0,
                            scrollYMarginOffset: 0,
                            suppressScrollX: !1,
                            suppressScrollY: !1,
                            swipeEasing: !0,
                            useBothWheelAxes: !1,
                            wheelPropagation: !0,
                            wheelSpeed: 1
                        }, l) this.settings[a] = l[a];
                    this.containerWidth = null, this.containerHeight = null, this.contentWidth = null, this.contentHeight = null;
                    var s, c, u = function() {
                            return n.classList.add(r.state.focus)
                        },
                        h = function() {
                            return n.classList.remove(r.state.focus)
                        };
                    this.isRtl = "rtl" === t(n).direction, !0 === this.isRtl && n.classList.add(r.rtl), this.isNegativeScroll = (c = n.scrollLeft, n.scrollLeft = -1, s = n.scrollLeft < 0, n.scrollLeft = c, s), this.negativeScrollAdjustment = this.isNegativeScroll ? n.scrollWidth - n.clientWidth : 0, this.event = new p, this.ownerDocument = n.ownerDocument || document, this.scrollbarXRail = i(r.element.rail("x")), n.appendChild(this.scrollbarXRail), this.scrollbarX = i(r.element.thumb("x")), this.scrollbarXRail.appendChild(this.scrollbarX), this.scrollbarX.setAttribute("tabindex", 0), this.event.bind(this.scrollbarX, "focus", u), this.event.bind(this.scrollbarX, "blur", h), this.scrollbarXActive = null, this.scrollbarXWidth = null, this.scrollbarXLeft = null;
                    var d = t(this.scrollbarXRail);
                    this.scrollbarXBottom = parseInt(d.bottom, 10), isNaN(this.scrollbarXBottom) ? (this.isScrollbarXUsingBottom = !1, this.scrollbarXTop = v(d.top)) : this.isScrollbarXUsingBottom = !0, this.railBorderXWidth = v(d.borderLeftWidth) + v(d.borderRightWidth), e(this.scrollbarXRail, {
                        display: "block"
                    }), this.railXMarginWidth = v(d.marginLeft) + v(d.marginRight), e(this.scrollbarXRail, {
                        display: ""
                    }), this.railXWidth = null, this.railXRatio = null, this.scrollbarYRail = i(r.element.rail("y")), n.appendChild(this.scrollbarYRail), this.scrollbarY = i(r.element.thumb("y")), this.scrollbarYRail.appendChild(this.scrollbarY), this.scrollbarY.setAttribute("tabindex", 0), this.event.bind(this.scrollbarY, "focus", u), this.event.bind(this.scrollbarY, "blur", h), this.scrollbarYActive = null, this.scrollbarYHeight = null, this.scrollbarYTop = null;
                    var f = t(this.scrollbarYRail);
                    this.scrollbarYRight = parseInt(f.right, 10), isNaN(this.scrollbarYRight) ? (this.isScrollbarYUsingRight = !1, this.scrollbarYLeft = v(f.left)) : this.isScrollbarYUsingRight = !0, this.scrollbarYOuterWidth = this.isRtl ? function(e) {
                        var i = t(e);
                        return v(i.width) + v(i.paddingLeft) + v(i.paddingRight) + v(i.borderLeftWidth) + v(i.borderRightWidth)
                    }(this.scrollbarY) : null, this.railBorderYWidth = v(f.borderTopWidth) + v(f.borderBottomWidth), e(this.scrollbarYRail, {
                        display: "block"
                    }), this.railYMarginHeight = v(f.marginTop) + v(f.marginBottom), e(this.scrollbarYRail, {
                        display: ""
                    }), this.railYHeight = null, this.railYRatio = null, this.reach = {
                        x: n.scrollLeft <= 0 ? "start" : n.scrollLeft >= this.contentWidth - this.containerWidth ? "end" : null,
                        y: n.scrollTop <= 0 ? "start" : n.scrollTop >= this.contentHeight - this.containerHeight ? "end" : null
                    }, this.isAlive = !0, this.settings.handlers.forEach((function(t) {
                        return w[t](o)
                    })), this.lastScrollTop = Math.floor(n.scrollTop), this.lastScrollLeft = n.scrollLeft, this.event.bind(this.element, "scroll", (function(t) {
                        return o.onScroll(t)
                    })), y(this)
                };
            return k.prototype.update = function() {
                this.isAlive && (this.negativeScrollAdjustment = this.isNegativeScroll ? this.element.scrollWidth - this.element.clientWidth : 0, e(this.scrollbarXRail, {
                    display: "block"
                }), e(this.scrollbarYRail, {
                    display: "block"
                }), this.railXMarginWidth = v(t(this.scrollbarXRail).marginLeft) + v(t(this.scrollbarXRail).marginRight), this.railYMarginHeight = v(t(this.scrollbarYRail).marginTop) + v(t(this.scrollbarYRail).marginBottom), e(this.scrollbarXRail, {
                    display: "none"
                }), e(this.scrollbarYRail, {
                    display: "none"
                }), y(this), m(this, "top", 0, !1, !0), m(this, "left", 0, !1, !0), e(this.scrollbarXRail, {
                    display: ""
                }), e(this.scrollbarYRail, {
                    display: ""
                }))
            }, k.prototype.onScroll = function(t) {
                this.isAlive && (y(this), m(this, "top", this.element.scrollTop - this.lastScrollTop), m(this, "left", this.element.scrollLeft - this.lastScrollLeft), this.lastScrollTop = Math.floor(this.element.scrollTop), this.lastScrollLeft = this.element.scrollLeft)
            }, k.prototype.destroy = function() {
                this.isAlive && (this.event.unbindAll(), o(this.scrollbarX), o(this.scrollbarY), o(this.scrollbarXRail), o(this.scrollbarYRail), this.removePsClasses(), this.element = null, this.scrollbarX = null, this.scrollbarY = null, this.scrollbarXRail = null, this.scrollbarYRail = null, this.isAlive = !1)
            }, k.prototype.removePsClasses = function() {
                this.element.className = this.element.className.split(" ").filter((function(t) {
                    return !t.match(/^ps([-_].+|)$/)
                })).join(" ")
            }, k
        }, "object" === ("undefined" == typeof exports ? "undefined" : l(exports)) && void 0 !== t ? t.exports = n() : "function" == typeof define && i(75) ? define(n) : (e = e || self).PerfectScrollbar = n()
    }).call(this, i(95)(t))
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(23).every;
    n({
        target: "Array",
        proto: !0,
        forced: i(51)("every")
    }, {
        every: function(t) {
            return l(this, t, arguments.length > 1 ? arguments[1] : void 0)
        }
    })
}, function(t, e, i) {
    "use strict";
    (function(t) {
        i(89), i(115);
        ! function(t) {
            t(["jquery"], (function(t) {
                return function() {
                    var e, i, n, l = 0,
                        o = {
                            error: "error",
                            info: "info",
                            success: "success",
                            warning: "warning"
                        },
                        a = {
                            clear: function(i, n) {
                                var l = h();
                                e || r(l);
                                s(i, l, n) || function(i) {
                                    for (var n = e.children(), l = n.length - 1; l >= 0; l--) s(t(n[l]), i)
                                }(l)
                            },
                            remove: function(i) {
                                var n = h();
                                e || r(n);
                                if (i && 0 === t(":focus", i).length) return void d(i);
                                e.children().length && e.remove()
                            },
                            error: function(t, e, i) {
                                return u({
                                    type: o.error,
                                    iconClass: h().iconClasses.error,
                                    message: t,
                                    optionsOverride: i,
                                    title: e
                                })
                            },
                            getContainer: r,
                            info: function(t, e, i) {
                                return u({
                                    type: o.info,
                                    iconClass: h().iconClasses.info,
                                    message: t,
                                    optionsOverride: i,
                                    title: e
                                })
                            },
                            options: {},
                            subscribe: function(t) {
                                i = t
                            },
                            success: function(t, e, i) {
                                return u({
                                    type: o.success,
                                    iconClass: h().iconClasses.success,
                                    message: t,
                                    optionsOverride: i,
                                    title: e
                                })
                            },
                            version: "2.1.1",
                            warning: function(t, e, i) {
                                return u({
                                    type: o.warning,
                                    iconClass: h().iconClasses.warning,
                                    message: t,
                                    optionsOverride: i,
                                    title: e
                                })
                            }
                        };
                    return a;

                    function r(i, n) {
                        return i || (i = h()), (e = t("#" + i.containerId)).length ? e : (n && (e = function(i) {
                            return (e = t("<div/>").attr("id", i.containerId).addClass(i.positionClass).attr("aria-live", "polite").attr("role", "alert")).appendTo(t(i.target)), e
                        }(i)), e)
                    }

                    function s(e, i, n) {
                        var l = !(!n || !n.force) && n.force;
                        return !(!e || !l && 0 !== t(":focus", e).length) && (e[i.hideMethod]({
                            duration: i.hideDuration,
                            easing: i.hideEasing,
                            complete: function() {
                                d(e)
                            }
                        }), !0)
                    }

                    function c(t) {
                        i && i(t)
                    }

                    function u(i) {
                        var o = h(),
                            a = i.iconClass || o.iconClass;
                        if (void 0 !== i.optionsOverride && (o = t.extend(o, i.optionsOverride), a = i.optionsOverride.iconClass || a), ! function(t, e) {
                                if (t.preventDuplicates) {
                                    if (e.message === n) return !0;
                                    n = e.message
                                }
                                return !1
                            }(o, i)) {
                            l++, e = r(o, !0);
                            var s = null,
                                u = t("<div/>"),
                                p = t("<div/>"),
                                f = t("<div/>"),
                                m = t("<div/>"),
                                v = t(o.closeHtml),
                                g = {
                                    intervalId: null,
                                    hideEta: null,
                                    maxHideTime: null
                                },
                                y = {
                                    toastId: l,
                                    state: "visible",
                                    startTime: new Date,
                                    options: o,
                                    map: i
                                };
                            return i.iconClass && u.addClass(o.toastClass).addClass(a), i.title && (p.append(i.title).addClass(o.titleClass), u.append(p)), i.message && (f.append(i.message).addClass(o.messageClass), u.append(f)), o.closeButton && (v.addClass("md-toast-close-button").attr("role", "button"), u.prepend(v)), o.progressBar && (m.addClass("md-toast-progress"), u.prepend(m)), o.newestOnTop ? e.prepend(u) : e.append(u), u.hide(), u[o.showMethod]({
                                    duration: o.showDuration,
                                    easing: o.showEasing,
                                    complete: o.onShown
                                }), o.timeOut > 0 && (s = setTimeout(b, o.timeOut), g.maxHideTime = parseFloat(o.timeOut), g.hideEta = (new Date).getTime() + g.maxHideTime, o.progressBar && (g.intervalId = setInterval(k, 10))),
                                function() {
                                    u.hover(w, x), !o.onclick && o.tapToDismiss && u.click(b);
                                    o.closeButton && v && v.click((function(t) {
                                        t.stopPropagation ? t.stopPropagation() : void 0 !== t.cancelBubble && !0 !== t.cancelBubble && (t.cancelBubble = !0), b(!0)
                                    }));
                                    o.onclick && u.click((function() {
                                        o.onclick(), b()
                                    }))
                                }(), c(y), o.debug && console && console.log(y), u
                        }

                        function b(e) {
                            if (!t(":focus", u).length || e) return clearTimeout(g.intervalId), u[o.hideMethod]({
                                duration: o.hideDuration,
                                easing: o.hideEasing,
                                complete: function() {
                                    d(u), o.onHidden && "hidden" !== y.state && o.onHidden(), y.state = "hidden", y.endTime = new Date, c(y)
                                }
                            })
                        }

                        function x() {
                            (o.timeOut > 0 || o.extendedTimeOut > 0) && (s = setTimeout(b, o.extendedTimeOut), g.maxHideTime = parseFloat(o.extendedTimeOut), g.hideEta = (new Date).getTime() + g.maxHideTime)
                        }

                        function w() {
                            clearTimeout(s), g.hideEta = 0, u.stop(!0, !0)[o.showMethod]({
                                duration: o.showDuration,
                                easing: o.showEasing
                            })
                        }

                        function k() {
                            var t = (g.hideEta - (new Date).getTime()) / g.maxHideTime * 100;
                            m.width(t + "%")
                        }
                    }

                    function h() {
                        return t.extend({}, {
                            tapToDismiss: !0,
                            toastClass: "md-toast",
                            containerId: "toast-container",
                            debug: !1,
                            showMethod: "fadeIn",
                            showDuration: 300,
                            showEasing: "swing",
                            onShown: void 0,
                            hideMethod: "fadeOut",
                            hideDuration: 1e3,
                            hideEasing: "swing",
                            onHidden: void 0,
                            extendedTimeOut: 1e3,
                            iconClasses: {
                                error: "md-toast-error",
                                info: "md-toast-info",
                                success: "md-toast-success",
                                warning: "md-toast-warning"
                            },
                            iconClass: "md-toast-info",
                            positionClass: "md-toast-top-right",
                            timeOut: 5e3,
                            titleClass: "md-toast-title",
                            messageClass: "md-toast-message",
                            target: "body",
                            closeHtml: '<button type="button">&times;</button>',
                            newestOnTop: !0,
                            preventDuplicates: !1,
                            progressBar: !1
                        }, a.options)
                    }

                    function d(t) {
                        e || (e = r()), t.is(":visible") || (t.remove(), t = null, 0 === e.children().length && (e.remove(), n = void 0))
                    }
                }()
            }))
        }("function" == typeof define && i(75) ? define : function(e, n) {
            t.exports ? t.exports = n(i(116)) : window.toastr = n(window.jQuery)
        })
    }).call(this, i(95)(t))
}, function(t, e, i) {
    "use strict";
    i.r(e);
    i(43), i(107), i(122), i(100), i(214), i(131), i(108), i(215), i(123), i(109);

    function n(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }
    jQuery((function(t) {
        t(document).on("click", ".chip .close", (function() {
            var e = t(this);
            e.closest(".chips").data("initialized") || e.closest(".chip").remove()
        }));
        var e = function() {
            function e(i) {
                var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), this.$chipsWrapper = i, this.options = "string" == typeof n ? n : {
                    data: this.fallback().or(n.data).or([]).value(),
                    dataChip: this.fallback().or(n.dataChip).or([]).value(),
                    placeholder: this.fallback().or(i.attr("data-placeholder")).or(n.placeholder).or("").value(),
                    secondaryPlaceholder: this.fallback().or(i.attr("data-secondary-placeholder")).or(n.secondaryPlaceholder).or("").value(),
                    sortAutocompleteData: this.fallback().or(i.attr("data-sort-autocomplete-data")).or(n.sortAutocompleteData).or(!0).value(),
                    autocompleteDataCompareFn: this.fallback().or(n.autocompleteDataCompareFn).or(void 0).value()
                }, this.$autocompleteList = t('<ul class="chip-ul z-depth-1" tabindex="0"></ul>'), this.keyCodes = {
                    backspace: 8,
                    enter: 13,
                    arrowLeft: 37,
                    arrowRight: 39,
                    delete: 46,
                    comma: 188
                }
            }
            var i, l, o;
            return i = e, (l = [{
                key: "getSelectedChip",
                value: function() {
                    return this.$chipsWrapper.find(".chip.selected")
                }
            }, {
                key: "returnPublicInterface",
                value: function() {
                    return "data" === this.options ? this.$chipsWrapper.data("chips") : "options" === this.options ? this.$chipsWrapper.data("options") : this.$chipsWrapper
                }
            }, {
                key: "init",
                value: function() {
                    this.isPublicInterfaceCall || (this.assignOptions(), this.isInitialized || (this.$chipsWrapper.data({
                        chips: this.options.data.slice(),
                        index: this.$chipsWrapper.index(),
                        initialized: !0
                    }), this.$chipsWrapper.attr("tabindex", 0), this.$chipsWrapper.hasClass(".chips") || this.$chipsWrapper.addClass("chips"), this.renderChips(), this.bindEvents()))
                }
            }, {
                key: "assignOptions",
                value: function() {
                    Array.isArray(this.options.data) || (this.options.data = []), this.$chipsWrapper.data("options", Object.assign({}, this.options))
                }
            }, {
                key: "bindEvents",
                value: function() {
                    this.bindChipsWrapperClick(), this.bindChipsWrapperBlur(), this.bindSingleChipClick(), this.bindChipsWrapperKeydown(), this.bindChipsInputClick(), this.bindChipsInputFocusout(), this.bindChipsInputKeydown(), this.bindDeleteButtonClick(), this.bindAutocompleteInputKeyup(), this.bindAutocompleteOptionClick()
                }
            }, {
                key: "bindChipsWrapperClick",
                value: function() {
                    this.$chipsWrapper.on("click", (function(e) {
                        return t(e.target).find("input").focus().addClass("active")
                    }))
                }
            }, {
                key: "bindChipsWrapperBlur",
                value: function() {
                    var e = this;
                    this.$chipsWrapper.on("blur", (function(i) {
                        setTimeout((function() {
                            return e.$autocompleteList.removeClass("active").hide()
                        }), 100), t(i.target).removeClass("active"), e.getSelectedChip().removeClass("selected")
                    }))
                }
            }, {
                key: "bindSingleChipClick",
                value: function() {
                    var e = this;
                    this.$chipsWrapper.on("click", ".chip", (function(i) {
                        var n = t(i.target),
                            l = n.index();
                        e.$chipsWrapper.find(".chip.selected").not(n).removeClass("selected"), e.selectChip(l)
                    }))
                }
            }, {
                key: "bindChipsWrapperKeydown",
                value: function() {
                    var t = this;
                    this.$chipsWrapper.on("keydown", (function(e) {
                        var i = e.which === t.keyCodes.backspace,
                            n = e.which === t.keyCodes.delete,
                            l = e.which === t.keyCodes.arrowLeft,
                            o = e.which === t.keyCodes.arrowRight;
                        if ((i || n) && t.getSelectedChip().length) {
                            e.preventDefault();
                            var a = t.deleteSelectedChip();
                            t.selectChip(a)
                        } else l ? t.selectLeftChip() : o && t.selectRightChip()
                    }))
                }
            }, {
                key: "bindChipsInputClick",
                value: function() {
                    var e = this;
                    this.$chipsWrapper.find("input").on("click", (function(i) {
                        t(i.target).addClass("active"), e.$chipsWrapper.addClass("focus"), e.$chipsWrapper.find(".chip").removeClass("selected")
                    }))
                }
            }, {
                key: "bindChipsInputFocusout",
                value: function() {
                    var t = this;
                    this.$chipsWrapper.on("focusout", "input", (function() {
                        return t.$chipsWrapper.removeClass("focus")
                    }))
                }
            }, {
                key: "bindChipsInputKeydown",
                value: function() {
                    var e = this;
                    this.$chipsWrapper.on("keydown", "input", (function(i) {
                        var n = t(i.target),
                            l = i.which === e.keyCodes.enter,
                            o = i.which === e.keyCodes.comma,
                            a = i.which === e.keyCodes.backspace;
                        if ((l || o) && !e.$autocompleteList.find("li").hasClass("selected")) return i.preventDefault(), e.addChip({
                            tag: n.val()
                        }), void n.val("");
                        if ("" === n.val() && a && !e.$chipsWrapper.find(".chip").hasClass("selected")) {
                            var r = e.$chipsWrapper.find(".chip-position-wrapper .chip").last().index();
                            e.deleteChip(r)
                        }
                    }))
                }
            }, {
                key: "bindDeleteButtonClick",
                value: function() {
                    var e = this;
                    this.$chipsWrapper.on("click", ".chip i.close", (function(i) {
                        i.stopPropagation();
                        var n = t(i.target).closest(".chip").index();
                        e.deleteChip(n), e.$chipsWrapper.find("input").focus()
                    }))
                }
            }, {
                key: "bindAutocompleteInputKeyup",
                value: function() {
                    var e = this,
                        i = this.$chipsWrapper.find(".chip-position-wrapper").find("input");
                    i.on("keyup", (function(n) {
                        var l = i.val();
                        e.$autocompleteList.empty(), l.length ? (e.options.dataChip.forEach((function(i) {
                            i.toLowerCase().includes(l.toLowerCase()) && e.$chipsWrapper.find(".chip-position-wrapper").append(e.$autocompleteList.append(t("<li>".concat(i, "</li>"))))
                        })), e.$autocompleteList.addClass("active").show()) : e.$autocompleteList.removeClass("active").hide();
                        var o = n.which === e.keyCodes.enter,
                            a = n.which === e.keyCodes.comma,
                            r = e.$chipsWrapper.find(".chip-position-wrapper .chip").last().text();
                        !o && !a || e.options.dataChip.includes(r) ? (o || a) && e.$autocompleteList.remove() : (e.options.dataChip.push(r), e.options.sortAutocompleteData && e.options.dataChip.sort(e.options.autocompleteDataCompareFn))
                    }))
                }
            }, {
                key: "bindAutocompleteOptionClick",
                value: function() {
                    var e = this;
                    this.$chipsWrapper.on("click", "li", (function(i) {
                        i.preventDefault();
                        var n = t(i.target);
                        e.addChip({
                            tag: n.text()
                        }), e.$chipsWrapper.find(".chip-position-wrapper").find("input").val(""), e.$autocompleteList.remove()
                    }))
                }
            }, {
                key: "deleteSelectedChip",
                value: function() {
                    var t = this.getSelectedChip(),
                        e = t.siblings(".chip").length,
                        i = t.index();
                    this.deleteChip(i);
                    var n = -1;
                    return i < e - 1 ? n = i : i !== e && i !== e - 1 || (n = e - 1), e || this.$chipsWrapper.find("input").focus(), n
                }
            }, {
                key: "selectLeftChip",
                value: function() {
                    this.selectLeftRightChip(!0)
                }
            }, {
                key: "selectRightChip",
                value: function() {
                    this.selectLeftRightChip(!1)
                }
            }, {
                key: "selectLeftRightChip",
                value: function(t) {
                    var e = this.getSelectedChip(),
                        i = e.index(),
                        n = e.siblings(".chip").length,
                        l = t ? i - 1 : i + 1;
                    if (t && l < 0) l = this.$chipsWrapper.find(".chip").length - 1;
                    else if (!t && l > n) return void this.$chipsWrapper.find("input").focus();
                    this.$chipsWrapper.find(".chip").removeClass("selected"), this.selectChip(l)
                }
            }, {
                key: "renderChips",
                value: function() {
                    var t = this,
                        e = "";
                    this.$chipsWrapper.data("chips").forEach((function(i) {
                        e += t.getSingleChipTemplate(i)
                    })), this.$chipsWrapper.hasClass("chips-autocomplete") ? e += '<span class="chip-position-wrapper position-relative"><input class="input" placeholder=""></span>' : e += '<input class="input" placeholder="">', this.$chipsWrapper.html(e), this.setPlaceholder()
                }
            }, {
                key: "getSingleChipTemplate",
                value: function(t) {
                    if (!t.tag) return "";
                    var e = '<div class="chip">'.concat(t.tag);
                    return t.image && (e += ' <img src="'.concat(t.image, '" /> ')), e += '<i class="close fas fa-times"></i>', e += "</div>"
                }
            }, {
                key: "setPlaceholder",
                value: function() {
                    this.$chipsWrapper.find("input").prop("placeholder", this.options.data.length ? this.options.placeholder : this.options.secondaryPlaceholder)
                }
            }, {
                key: "addChip",
                value: function(e) {
                    if (this.isValid(e)) {
                        var i = t(this.getSingleChipTemplate(e));
                        this.$chipsWrapper.data("chips").push(e), this.options.data.push(e), this.$chipsWrapper.hasClass("chips-autocomplete") && this.$chipsWrapper.find(".chip").length > 0 ? i.insertAfter(this.$chipsWrapper.find(".chip").last()) : i.insertBefore(this.$chipsWrapper.find("input")), this.$chipsWrapper.trigger("chip.add", e), this.setPlaceholder()
                    }
                }
            }, {
                key: "isValid",
                value: function(t) {
                    return "" !== t.tag && !this.options.data.some((function(e) {
                        return e.tag === t.tag
                    }))
                }
            }, {
                key: "deleteChip",
                value: function(t) {
                    var e = this.$chipsWrapper.data("chips")[t];
                    this.$chipsWrapper.find(".chip").eq(t).remove(), this.$chipsWrapper.data("chips").splice(t, 1), this.options.data.splice(t, 1), this.$chipsWrapper.trigger("chip.delete", e), this.setPlaceholder()
                }
            }, {
                key: "selectChip",
                value: function(t) {
                    var e = this.$chipsWrapper.find(".chip").eq(t);
                    e && !e.hasClass("selected") && (e.addClass("selected"), this.$chipsWrapper.trigger("chip.select", this.$chipsWrapper.data("chips")[t]))
                }
            }, {
                key: "fallback",
                value: function() {
                    return {
                        _value: void 0,
                        or: function(t) {
                            return void 0 !== t && void 0 === this._value && (this._value = t), this
                        },
                        value: function() {
                            return this._value
                        }
                    }
                }
            }, {
                key: "isPublicInterfaceCall",
                get: function() {
                    return "string" == typeof this.options
                }
            }, {
                key: "isInitialized",
                get: function() {
                    return this.$chipsWrapper.data("initialized")
                }
            }]) && n(i.prototype, l), o && n(i, o), e
        }();
        t.fn.materialChip = function(i) {
            if (this.length > 1) {
                var n = [];
                return this.each((function() {
                    var l = new e(t(this), i);
                    l.init(), n.push(l.returnPublicInterface())
                })), n
            }
            var l = new e(t(this), i);
            return l.init(), l.returnPublicInterface()
        }
    }))
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(23).some;
    n({
        target: "Array",
        proto: !0,
        forced: i(51)("some")
    }, {
        some: function(t) {
            return l(this, t, arguments.length > 1 ? arguments[1] : void 0)
        }
    })
}, function(t, e, i) {
    var n = i(3),
        l = i(216);
    n({
        target: "Object",
        stat: !0,
        forced: Object.assign !== l
    }, {
        assign: l
    })
}, function(t, e, i) {
    "use strict";
    var n = i(7),
        l = i(1),
        o = i(41),
        a = i(44),
        r = i(40),
        s = i(16),
        c = i(27),
        u = Object.assign;
    t.exports = !u || l((function() {
        var t = {},
            e = {},
            i = Symbol();
        return t[i] = 7, "abcdefghijklmnopqrst".split("").forEach((function(t) {
            e[t] = t
        })), 7 != u({}, t)[i] || "abcdefghijklmnopqrst" != o(u({}, e)).join("")
    })) ? function(t, e) {
        for (var i = s(t), l = arguments.length, u = 1, h = a.f, d = r.f; l > u;)
            for (var p, f = c(arguments[u++]), m = h ? o(f).concat(h(f)) : o(f), v = m.length, g = 0; v > g;) p = m[g++], n && !d.call(f, p) || (i[p] = f[p]);
        return i
    } : u
}, function(t, e) {
    function i(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
        }
    }
    jQuery((function(t) {
        var e = function() {
            function e(i, n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), this.defaults = {
                    topSpacing: 0,
                    zIndex: !1,
                    stopper: "#footer",
                    stickyClass: !1,
                    startScrolling: "top",
                    minWidth: !1
                }, this.$element = i, this.options = this.assignOptions(n), this.$window = t(window), this.stopper = this.options.stopper, this.elementWidth = this.$element.outerWidth(), this.elementHeight = this.$element.outerHeight(!0), this.initialScrollTop = this.$element.offset().top, this.$placeholder = t('<div class="sticky-placeholder"></div>'), this.scrollTop = 0, this.setPushPoint(), this.setStopperPosition(), this.bindEvents()
            }
            var n, l, o;
            return n = e, (l = [{
                key: "hasZIndex",
                value: function() {
                    return "number" == typeof this.options.zIndex
                }
            }, {
                key: "hasStopper",
                value: function() {
                    return t(this.options.stopper).length || "number" == typeof this.options.stopper
                }
            }, {
                key: "isScreenHeightEnough",
                value: function() {
                    return this.$element.outerHeight() + this.options.topSpacing < this.$window.height()
                }
            }, {
                key: "assignOptions",
                value: function(e) {
                    return t.extend({}, this.defaults, e)
                }
            }, {
                key: "setPushPoint",
                value: function() {
                    "bottom" !== this.options.startScrolling || this.isScreenHeightEnough() ? this.$pushPoint = this.initialScrollTop - this.options.topSpacing : this.$pushPoint = this.initialScrollTop + this.$element.outerHeight(!0) - this.$window.height()
                }
            }, {
                key: "setStopperPosition",
                value: function() {
                    "string" == typeof this.options.stopper ? this.stopPoint = t(this.stopper).offset().top - this.options.topSpacing : "number" == typeof this.options.stopper && (this.stopPoint = this.options.stopper)
                }
            }, {
                key: "bindEvents",
                value: function() {
                    this.$window.on("resize", this.handleResize.bind(this)), this.$window.on("scroll", this.init.bind(this))
                }
            }, {
                key: "handleResize",
                value: function() {
                    var t = this.$element.parent();
                    this.elementWidth = t.width(), this.elementHeight = this.$element.outerHeight(!0), this.setPushPoint(), this.setStopperPosition(), this.init()
                }
            }, {
                key: "init",
                value: function() {
                    if (this.options.minWidth && this.options.minWidth > this.$window.innerWidth()) return !1;
                    "bottom" !== this.options.startScrolling || this.isScreenHeightEnough() ? this.scrollTop = this.$window.scrollTop() : this.scrollTop = this.$window.scrollTop() + this.$window.height(), this.$pushPoint < this.scrollTop ? (this.appendPlaceholder(), this.stickyStart()) : this.stickyEnd(), this.$window.scrollTop() > this.$pushPoint ? this.stop() : this.stickyEnd()
                }
            }, {
                key: "appendPlaceholder",
                value: function() {
                    this.$element.after(this.$placeholder), this.$placeholder.css({
                        width: this.elementWidth,
                        height: this.elementHeight
                    })
                }
            }, {
                key: "stickyStart",
                value: function() {
                    this.options.stickyClass && this.$element.addClass(this.options.stickyClass), this.$element.get(0).style.overflow = "scroll";
                    var t = this.$element.get(0).scrollHeight;
                    this.$element.get(0).style.overflow = "", this.$element.css({
                        position: "fixed",
                        width: this.elementWidth,
                        height: t
                    }), "bottom" !== this.options.startScrolling || this.isScreenHeightEnough() ? this.$element.css({
                        top: this.options.topSpacing
                    }) : this.$element.css({
                        bottom: 0,
                        top: ""
                    }), this.hasZIndex() && this.$element.css({
                        zIndex: this.options.zIndex
                    })
                }
            }, {
                key: "stickyEnd",
                value: function() {
                    this.options.stickyClass && this.$element.removeClass(this.options.stickyClass), this.$placeholder.remove(), this.$element.css({
                        position: "static",
                        top: this.options.topSpacing,
                        width: "",
                        height: ""
                    })
                }
            }, {
                key: "stop",
                value: function() {
                    this.stopPoint < t(this.$element).offset().top - this.options.topSpacing + this.$element.outerHeight(!0) && this.$element.css({
                        position: "absolute",
                        bottom: 0,
                        top: ""
                    })
                }
            }]) && i(n.prototype, l), o && i(n, o), e
        }();
        t.fn.sticky = function(i) {
            t(this).each((function() {
                new e(t(this), i).init()
            }))
        }
    }))
}, , , function(t, e, i) {
    i(3)({
        target: "Number",
        stat: !0
    }, {
        MAX_SAFE_INTEGER: 9007199254740991
    })
}, function(t, e, i) {
    i(3)({
        target: "Number",
        stat: !0
    }, {
        MIN_SAFE_INTEGER: -9007199254740991
    })
}, function(t, e, i) {
    i(77)("toStringTag")
}, function(t, e, i) {
    var n = i(0);
    i(59)(n.JSON, "JSON", !0)
}, function(t, e, i) {
    i(59)(Math, "Math", !0)
}, function(t, e, i) {
    "use strict";
    i.r(e),
        function(t) {
            var e;
            i(69), i(71), i(72), i(43), i(66), i(54), i(78), i(96), i(89), i(118), i(64), i(97), i(73), i(74);

            function n(t) {
                return (n = "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)
            }
            /*!
             * pickadate.js v3.6.3, 2019/04/03
             * By Amsul, http://amsul.ca
             * Hosted on http://amsul.github.io/pickadate.js
             * Licensed under MIT
             */
            e = function(t) {
                var e = t(window),
                    i = t(document),
                    n = t(document.documentElement),
                    l = null != document.documentElement.style.transition;

                function o(e, n, c, h) {
                    if (!e) return o;
                    var d = !1,
                        p = {
                            id: e.id || "P" + Math.abs(~~(Math.random() * new Date)),
                            handlingOpen: !1
                        },
                        f = c ? t.extend(!0, {}, c.defaults, h) : h || {},
                        m = t.extend({}, o.klasses(), f.klass),
                        v = t(e),
                        g = 2,
                        y = function() {
                            return this.start()
                        },
                        b = y.prototype = {
                            constructor: y,
                            $node: v,
                            start: function() {
                                return p && p.start ? b : (p.methods = {}, p.start = !0, p.open = !1, p.type = e.type, e.autofocus = e == u(), e.readOnly = !f.editable, e.id = e.id || p.id, "text" != e.type && (e.type = "text"), b.component = new c(b, f), b.$root = t('<div class="' + m.picker + '" id="' + e.id + '_root" />'), s(b.$root[0], "hidden", !0), b.$holder = t(x()).appendTo(b.$root), w(), f.formatSubmit && (!0 === f.hiddenName ? (g = e.name, e.name = "") : g = (g = ["string" == typeof f.hiddenPrefix ? f.hiddenPrefix : "", "string" == typeof f.hiddenSuffix ? f.hiddenSuffix : "_submit"])[0] + e.name + g[1], b._hidden = t('<input type=hidden name="' + g + '"' + (v.data("value") || e.value ? ' value="' + b.get("select", f.formatSubmit) + '"' : "") + ">")[0], v.on("change." + p.id, (function() {
                                    b._hidden.value = e.value ? b.get("select", f.formatSubmit) : ""
                                }))), v.data(n, b).addClass(m.input).val(v.data("value") ? b.get("select", f.format) : e.value).on("focus." + p.id + " click." + p.id, (o = function(t) {
                                    t.preventDefault(), b.open()
                                }, a = 100, function() {
                                    var t = this,
                                        e = arguments,
                                        i = function() {
                                            h = null, r || o.apply(t, e)
                                        },
                                        n = r && !h;
                                    clearTimeout(h), h = setTimeout(i, a), n && o.apply(t, e)
                                })).on("mousedown", (function() {
                                    p.handlingOpen = !0, t(document).on("mouseup", (function e() {
                                        setTimeout((function() {
                                            t(document).off("mouseup", e), p.handlingOpen = !1
                                        }), 0)
                                    }))
                                })), f.editable || v.on("keydown." + p.id, S), s(e, {
                                    haspopup: !0,
                                    expanded: !1,
                                    readonly: !1,
                                    owns: e.id + "_root"
                                }), f.containerHidden ? t(f.containerHidden).append(b._hidden) : v.after(b._hidden), f.container ? t(f.container).append(b.$root) : v.after(b.$root), b.on({
                                    start: b.component.onStart,
                                    render: b.component.onRender,
                                    stop: b.component.onStop,
                                    open: b.component.onOpen,
                                    close: b.component.onClose,
                                    set: b.component.onSet
                                }).on({
                                    start: f.onStart,
                                    render: f.onRender,
                                    stop: f.onStop,
                                    open: f.onOpen,
                                    close: f.onClose,
                                    set: f.onSet
                                }), (i = b.$holder[0]).currentStyle ? l = i.currentStyle.position : window.getComputedStyle && (l = getComputedStyle(i).position), d = "fixed" == l, e.autofocus && b.open(), b.trigger("start").trigger("render"));
                                var i, l, o, a, r, h, g
                            },
                            render: function(e) {
                                return e ? (b.$holder = t(x()), w(), b.$root.html(b.$holder)) : b.$root.find("." + m.box).html(b.component.nodes(p.open)), b.trigger("render")
                            },
                            stop: function() {
                                return p.start ? (b.close(), b._hidden && b._hidden.parentNode.removeChild(b._hidden), b.$root.remove(), v.removeClass(m.input).removeData(n), setTimeout((function() {
                                    v.off("." + p.id)
                                }), 0), e.type = p.type, e.readOnly = !1, b.trigger("stop"), p.methods = {}, p.start = !1, b) : b
                            },
                            open: function(n) {
                                return g++, p.open ? b : g < 4 && f.editable ? b : (setTimeout((function() {
                                    b.$root.addClass(m.opened), s(b.$root[0], "hidden", !1)
                                }), 0), !1 !== n && (p.open = !0, d && t("body").css("overflow", "hidden").css("padding-right", "+=" + a()), d && l ? b.$holder.find("." + m.frame).one("transitionend", (function() {
                                    b.$holder.eq(0).focus()
                                })) : setTimeout((function() {
                                    b.$holder.eq(0).focus()
                                }), 0), i.on("click." + p.id + " focusin." + p.id, (function(t) {
                                    if (!p.handlingOpen) {
                                        var i = r(t, e);
                                        t.isSimulated || i == e || i == document || 3 == t.which || b.close(i === b.$holder[0])
                                    }
                                })).on("keydown." + p.id, (function(i) {
                                    var n = i.keyCode,
                                        l = b.component.key[n],
                                        a = r(i, e);
                                    27 == n ? b.close(!0) : a != b.$holder[0] || !l && 13 != n ? t.contains(b.$root[0], a) && 13 == n && (i.preventDefault(), a.click()) : (i.preventDefault(), l ? o._.trigger(b.component.key.go, b, [o._.trigger(l)]) : b.$root.find("." + m.highlighted).hasClass(m.disabled) || (b.set("select", b.component.item.highlight), f.closeOnSelect && b.close(!0)))
                                }))), b.trigger("open"))
                            },
                            close: function(n) {
                                return g = 0, p.open ? (n && (f.editable ? e.click() : (b.$holder.off("focus.toOpen").focus(), setTimeout((function() {
                                    b.$holder.on("focus.toOpen", k)
                                }), 0))), v.removeClass(m.active), s(e, "expanded", !1), setTimeout((function() {
                                    b.$root.removeClass(m.opened + " " + m.focused), s(b.$root[0], "hidden", !0)
                                }), 0), d && t("body").css("overflow", "").css("padding-right", "-=" + a()), document.activeElement.blur(), i.off("." + p.id), p.open = !1, b.trigger("close")) : b
                            },
                            clear: function(t) {
                                return document.activeElement.blur(), b.set("clear", null, t)
                            },
                            set: function(e, i, n) {
                                var l, o, a = t.isPlainObject(e),
                                    r = a ? e : {};
                                if (n = a && t.isPlainObject(i) ? i : n || {}, e) {
                                    for (l in a || (r[e] = i), r) o = r[l], l in b.component.item && (void 0 === o && (o = null), b.component.set(l, o, n)), "select" != l && "clear" != l || !f.updateInput || v.val("clear" == l ? "" : b.get(l, f.format)).trigger("change");
                                    b.render()
                                }
                                return n.muted ? b : b.trigger("set", r)
                            },
                            get: function(t, i) {
                                if (null != p[t = t || "value"]) return p[t];
                                if ("valueSubmit" == t) {
                                    if (b._hidden) return b._hidden.value;
                                    t = "value"
                                }
                                if ("value" == t) return e.value;
                                if (t in b.component.item) {
                                    if ("string" == typeof i) {
                                        var n = b.component.get(t);
                                        return n ? o._.trigger(b.component.formats.toString, b.component, [i, n]) : ""
                                    }
                                    return b.component.get(t)
                                }
                            },
                            on: function(e, i, n) {
                                var l, o, a = t.isPlainObject(e),
                                    r = a ? e : {};
                                if (e)
                                    for (l in a || (r[e] = i), r) o = r[l], n && (l = "_" + l), p.methods[l] = p.methods[l] || [], p.methods[l].push(o);
                                return b
                            },
                            off: function() {
                                var t, e, i = arguments;
                                for (t = 0, namesCount = i.length; t < namesCount; t += 1)(e = i[t]) in p.methods && delete p.methods[e];
                                return b
                            },
                            trigger: function(t, e) {
                                var i = function(t) {
                                    var i = p.methods[t];
                                    i && i.map((function(t) {
                                        o._.trigger(t, b, [e])
                                    }))
                                };
                                return i("_" + t), i(t), b
                            }
                        };

                    function x() {
                        return o._.node("div", o._.node("div", o._.node("div", o._.node("div", b.component.nodes(p.open), m.box), m.wrap), m.frame), m.holder, 'tabindex="-1"')
                    }

                    function w() {
                        b.$holder.on({
                            keydown: S,
                            "focus.toOpen": k,
                            blur: function() {
                                v.removeClass(m.target)
                            },
                            focusin: function(t) {
                                b.$root.removeClass(m.focused), t.stopPropagation()
                            },
                            "mousedown click": function(i) {
                                var n = r(i, e);
                                n != b.$holder[0] && (i.stopPropagation(), "mousedown" != i.type || t(n).is("input, select, textarea, button, option") || (i.preventDefault(), b.$holder.eq(0).focus()))
                            }
                        }).on("click", "[data-pick], [data-nav], [data-clear], [data-close]", (function() {
                            var e = t(this),
                                i = e.data(),
                                n = e.hasClass(m.navDisabled) || e.hasClass(m.disabled),
                                l = u();
                            l = l && (l.type || l.href ? l : null), (n || l && !t.contains(b.$root[0], l)) && b.$holder.eq(0).focus(), !n && i.nav ? b.set("highlight", b.component.item.highlight, {
                                nav: i.nav
                            }) : !n && "pick" in i ? (b.set("select", i.pick), f.closeOnSelect && b.close(!0)) : i.clear ? (b.clear(), f.closeOnClear && b.close(!0)) : i.close && b.close(!0)
                        }))
                    }

                    function k(t) {
                        t.stopPropagation(), v.addClass(m.target), b.$root.addClass(m.focused), b.open()
                    }

                    function S(t) {
                        var e = t.keyCode,
                            i = /^(8|46)$/.test(e);
                        if (27 == e) return b.close(!0), !1;
                        (32 == e || i || !p.open && b.component.key[e]) && (t.preventDefault(), t.stopPropagation(), i ? b.clear().close() : b.open())
                    }
                    return new y
                }

                function a() {
                    if (n.height() <= e.height()) return 0;
                    var i = t('<div style="visibility:hidden;width:100px" />').appendTo("body"),
                        l = i[0].offsetWidth;
                    i.css("overflow", "scroll");
                    var o = t('<div style="width:100%" />').appendTo(i)[0].offsetWidth;
                    return i.remove(), l - o
                }

                function r(t, e) {
                    var i = [];
                    return t.path && (i = t.path), t.originalEvent && t.originalEvent.path && (i = t.originalEvent.path), i && i.length > 0 ? e && i.indexOf(e) >= 0 ? e : i[0] : t.target
                }

                function s(e, i, n) {
                    if (t.isPlainObject(i))
                        for (var l in i) c(e, l, i[l]);
                    else c(e, i, n)
                }

                function c(t, e, i) {
                    t.setAttribute(("role" == e ? "" : "aria-") + e, i)
                }

                function u() {
                    try {
                        return document.activeElement
                    } catch (t) {}
                }
                return o.klasses = function(t) {
                    return {
                        picker: t = t || "picker",
                        opened: t + "--opened",
                        focused: t + "--focused",
                        input: t + "__input",
                        active: t + "__input--active",
                        target: t + "__input--target",
                        holder: t + "__holder",
                        frame: t + "__frame",
                        wrap: t + "__wrap",
                        box: t + "__box"
                    }
                }, o._ = {
                    group: function(t) {
                        for (var e, i = "", n = o._.trigger(t.min, t); n <= o._.trigger(t.max, t, [n]); n += t.i) e = o._.trigger(t.item, t, [n]), i += o._.node(t.node, e[0], e[1], e[2]);
                        return i
                    },
                    node: function(e, i, n, l) {
                        return i ? "<" + e + (n = n ? ' class="' + n + '"' : "") + (l = l ? " " + l : "") + ">" + (i = t.isArray(i) ? i.join("") : i) + "</" + e + ">" : ""
                    },
                    lead: function(t) {
                        return (t < 10 ? "0" : "") + t
                    },
                    trigger: function(t, e, i) {
                        return "function" == typeof t ? t.apply(e, i || []) : t
                    },
                    digits: function(t) {
                        return /\d/.test(t[1]) ? 2 : 1
                    },
                    isDate: function(t) {
                        return {}.toString.call(t).indexOf("Date") > -1 && this.isInteger(t.getDate())
                    },
                    isInteger: function(t) {
                        return {}.toString.call(t).indexOf("Number") > -1 && t % 1 == 0
                    },
                    ariaAttr: function(e, i) {
                        for (var n in t.isPlainObject(e) || (e = {
                                attribute: i
                            }), i = "", e) {
                            var l = ("role" == n ? "" : "aria-") + n,
                                o = e[n];
                            i += null == o ? "" : l + '="' + e[n] + '"'
                        }
                        return i
                    }
                }, o.extend = function(e, i) {
                    t.fn[e] = function(n, l) {
                        var a = this.data(e);
                        return "picker" == n ? a : a && "string" == typeof n ? o._.trigger(a[n], a, [l]) : this.each((function() {
                            t(this).data(e) || new o(this, e, i, n)
                        }))
                    }, t.fn[e].defaults = i.defaults
                }, o
            }, "function" == typeof define && i(75) ? define("picker", ["jquery"], e) : "object" == ("undefined" == typeof exports ? "undefined" : n(exports)) ? t.exports = e(i(116)) : window.Picker = e(jQuery)
        }.call(this, i(95)(t))
}, function(t, e, i) {
    "use strict";
    i.r(e),
        function(t) {
            var e;
            i(69), i(71), i(72), i(82), i(43), i(66), i(54), i(78), i(96), i(89), i(118), i(64), i(97), i(73), i(74);

            function n(t) {
                return (n = "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)
            }
            /*!
             * pickadate.js v3.6.3, 2019/04/03
             * By Amsul, http://amsul.ca
             * Hosted on http://amsul.github.io/pickadate.js
             * Licensed under MIT
             */
            e = function(t) {
                var e = t(window),
                    i = t(document),
                    n = t(document.documentElement),
                    l = null != document.documentElement.style.transition;

                function o(e, n, c, h) {
                    if (!e) return o;
                    var d = !1,
                        p = {
                            id: e.id || "P" + Math.abs(~~(Math.random() * new Date)),
                            handlingOpen: !1
                        },
                        f = c ? t.extend(!0, {}, c.defaults, h) : h || {},
                        m = t.extend({}, o.klasses(), f.klass),
                        v = t(e).find("input"),
                        g = 2,
                        y = function() {
                            return this.start()
                        },
                        b = y.prototype = {
                            constructor: y,
                            $node: v,
                            start: function() {
                                return p && p.start ? b : (p.methods = {}, p.start = !0, p.open = !1, p.type = e.type, e.autofocus = e == u(), e.readOnly = !f.editable, e.id = e.id || p.id, "text" != e.type && (e.type = "text"), b.component = new c(b, f), b.$root = t('\n                    <div class="'.concat(m.picker, ' datepicker" id="').concat(e.id, '_root" />\n                ')), s(b.$root[0], "hidden", !0), b.$holder = t(x()).appendTo(b.$root), w(), f.formatSubmit && (!0 === f.hiddenName ? (g = e.name, e.name = "") : g = (g = ["string" == typeof f.hiddenPrefix ? f.hiddenPrefix : "", "string" == typeof f.hiddenSuffix ? f.hiddenSuffix : "_submit"])[0] + e.name + g[1], b._hidden = t('<input type=hidden name="' + g + '"' + (v.data("value") || e.value ? ' value="' + b.get("select", f.formatSubmit) + '"' : "") + ">")[0], v.on("change." + p.id, (function() {
                                    b._hidden.value = e.value ? b.get("select", f.formatSubmit) : ""
                                }))), v.data(n, b).addClass(m.input).val(v.data("value") ? b.get("select", f.format) : t(e).find("input").val()), f.inline ? v.siblings("i").on("click", (function() {
                                    new Popper(t(e), b.$root, {
                                        placement: "bottom-end",
                                        modifiers: {
                                            offset: {
                                                enabled: !0,
                                                offset: "-300, 0"
                                            }
                                        }
                                    }), b.open()
                                })) : v.siblings("i").on("click", (o = function(t) {
                                    t.preventDefault(), b.open()
                                }, a = 100, function() {
                                    var t = this,
                                        e = arguments,
                                        i = function() {
                                            h = null, r || o.apply(t, e)
                                        },
                                        n = r && !h;
                                    clearTimeout(h), h = setTimeout(i, a), n && o.apply(t, e)
                                })), v.siblings("i").on("mousedown", (function() {
                                    p.handlingOpen = !0, t(document).on("mouseup", (function e() {
                                        setTimeout((function() {
                                            t(document).off("mouseup", e), p.handlingOpen = !1
                                        }), 0)
                                    }))
                                })), f.editable || v.siblings("i").on("keyup." + p.id, S), s(e, {
                                    haspopup: !0,
                                    expanded: !1,
                                    readonly: !1,
                                    owns: e.id + "_root"
                                }), f.containerHidden ? t(f.containerHidden).append(b._hidden) : v.after(b._hidden), t("body").append(b.$root), f.inline && b.$root.hide(), b.on({
                                    start: b.component.onStart,
                                    render: b.component.onRender,
                                    stop: b.component.onStop,
                                    open: b.component.onOpen,
                                    close: b.component.onClose,
                                    set: b.component.onSet
                                }).on({
                                    start: f.onStart,
                                    render: f.onRender,
                                    stop: f.onStop,
                                    open: f.onOpen,
                                    close: f.onClose,
                                    set: f.onSet
                                }), (i = b.$holder[0]).currentStyle ? l = i.currentStyle.position : window.getComputedStyle && (l = getComputedStyle(i).position), d = "fixed" == l, e.autofocus && b.open(), b.trigger("start").trigger("render"));
                                var i, l, o, a, r, h, g
                            },
                            render: function(e) {
                                return e ? (b.$holder = t(x()), w(), b.$root.html(b.$holder)) : b.$root.find("." + m.box).html(b.component.nodes(p.open)), b.trigger("render")
                            },
                            stop: function() {
                                return p.start ? (b.close(), b._hidden && b._hidden.parentNode.removeChild(b._hidden), b.$root.remove(), v.removeClass(m.input).removeData(n), setTimeout((function() {
                                    v.off("." + p.id)
                                }), 0), e.type = p.type, e.readOnly = !1, b.trigger("stop"), p.methods = {}, p.start = !1, b) : b
                            },
                            open: function(n) {
                                return g++, p.open ? b : g < 4 && f.editable ? b : (b.set("currentView", "days"), setTimeout((function() {
                                    b.$root.addClass(m.opened), s(b.$root[0], "hidden", !1)
                                }), 0), !1 !== n && (p.open = !0, f.inline && b.$root.show(), d && t("body").css("overflow", "hidden").css("padding-right", "+=" + a()), d && l ? b.$holder.find("." + m.frame).one("transitionend", (function() {
                                    b.$holder.eq(0).focus()
                                })) : setTimeout((function() {
                                    b.$holder.eq(0).focus()
                                }), 0), i.on("click." + p.id + " focusin." + p.id, (function(t) {
                                    if (!p.handlingOpen) {
                                        var i = r(t, e);
                                        t.isSimulated || i == e || i == document || 3 == t.which || b.close(i === b.$holder[0])
                                    }
                                })).on("keydown." + p.id, (function(i) {
                                    var n = i.keyCode,
                                        l = b.component.key[n],
                                        a = r(i, e);
                                    27 == n ? b.close(!0) : a != b.$holder[0] || !l && 13 != n ? t.contains(b.$root[0], a) && 13 == n && (i.preventDefault(), a.click()) : (i.preventDefault(), l ? o._.trigger(b.component.key.go, b, [o._.trigger(l)]) : b.$root.find("." + m.highlighted).hasClass(m.disabled) || (b.set("select", b.component.item.highlight), f.closeOnSelect && b.close(!0)))
                                }))), b.trigger("open"))
                            },
                            close: function(n) {
                                return g = 0, p.open ? (n && (f.editable ? e.click() : (b.$holder.off("focus.toOpen").focus(), setTimeout((function() {
                                    b.$holder.on("focus.toOpen", k)
                                }), 0))), v.removeClass(m.active), s(e, "expanded", !1), setTimeout((function() {
                                    b.$root.removeClass(m.opened + " " + m.focused), s(b.$root[0], "hidden", !0)
                                }), 0), d && t("body").css("overflow", "").css("padding-right", "-=" + a()), document.activeElement.blur(), i.off("." + p.id), p.open = !1, f.inline && b.$root.hide(), b.trigger("close")) : b
                            },
                            clear: function(t) {
                                return document.activeElement.blur(), b.set("clear", null, t)
                            },
                            set: function(e, i, n) {
                                var l, o, a = t.isPlainObject(e),
                                    r = a ? e : {};
                                if (n = a && t.isPlainObject(i) ? i : n || {}, e) {
                                    for (l in a || (r[e] = i), r) o = r[l], l in b.component.item && (void 0 === o && (o = null), b.component.set(l, o, n)), "select" != l && "clear" != l || !f.updateInput || v.val("clear" == l ? "" : b.get(l, f.format)).trigger("change");
                                    b.render()
                                }
                                return n.muted ? b : b.trigger("set", r)
                            },
                            get: function(t, i) {
                                if (null != p[t = t || "value"]) return p[t];
                                if ("valueSubmit" == t) {
                                    if (b._hidden) return b._hidden.value;
                                    t = "value"
                                }
                                if ("value" == t) return e.value;
                                if (t in b.component.item) {
                                    if ("string" == typeof i) {
                                        var n = b.component.get(t);
                                        return n ? o._.trigger(b.component.formats.toString, b.component, [i, n]) : ""
                                    }
                                    return b.component.get(t)
                                }
                            },
                            on: function(e, i, n) {
                                var l, o, a = t.isPlainObject(e),
                                    r = a ? e : {};
                                if (e)
                                    for (l in a || (r[e] = i), r) o = r[l], n && (l = "_" + l), p.methods[l] = p.methods[l] || [], p.methods[l].push(o);
                                return b
                            },
                            off: function() {
                                var t, e, i = arguments;
                                for (t = 0, namesCount = i.length; t < namesCount; t += 1)(e = i[t]) in p.methods && delete p.methods[e];
                                return b
                            },
                            trigger: function(t, e) {
                                var i = function(t) {
                                    var i = p.methods[t];
                                    i && i.map((function(t) {
                                        o._.trigger(t, b, [e])
                                    }))
                                };
                                return i("_" + t), i(t), b
                            }
                        };

                    function x() {
                        return '<div class="'.concat(m.holder, " ").concat(f.inline ? "inline" : "", '" tabindex="-1">\n                    <div class="').concat(m.frame, '">\n                        <div class="').concat(m.wrap, '">\n                            <div class="').concat(m.box, '">\n                            ').concat(b.component.nodes(p.open), "\n                            </div>\n                        </div>\n                    </div>\n                </div>")
                    }

                    function w() {
                        b.$holder.on({
                            keydown: S,
                            "focus.toOpen": k,
                            blur: function() {
                                v.removeClass(m.target)
                            },
                            focusin: function(t) {
                                b.$root.removeClass(m.focused), t.stopPropagation()
                            },
                            "mousedown click": function(i) {
                                var n = r(i, e);
                                n != b.$holder[0] && (i.stopPropagation(), "mousedown" != i.type || t(n).is("input, select, textarea, button, option") || (i.preventDefault(), b.$holder.eq(0).focus()))
                            }
                        }).on("click", "[data-pick], [data-nav], [data-clear], [data-close], [data-select-year]", (function(e) {
                            var i = t(this),
                                n = i.data(),
                                l = i.hasClass(m.navDisabled) || i.hasClass(m.disabled),
                                o = u();
                            o = o && (o.type || o.href ? o : null), (l || o && !t.contains(b.$root[0], o)) && b.$holder.eq(0).focus(), !l && n.nav ? b.set("highlight", b.component.item.highlight, {
                                nav: n.nav
                            }) : !l && "pick" in n ? (b.set("select", n.pick), f.closeOnSelect && "days" === b.component.item.currentView ? b.close(!0) : b.set("currentView", b.component.item.highlight)) : n.clear ? (b.clear(), f.closeOnClear && b.close(!0)) : n.close ? b.close(!0) : n.selectYear && b.set("currentView", b.component.item.highlight)
                        })).on("keydown", ".".concat(f.klass.buttonOk), (function(e) {
                            9 != e.keyCode || e.shiftKey || (e.preventDefault(), t(e.target).closest(".".concat(m.box)).find(".".concat(f.klass.selectYear)).focus())
                        })).on("keydown", ".".concat(f.klass.selectYear), (function(e) {
                            9 == e.keyCode && e.shiftKey && (e.preventDefault(), t(e.target).closest(".".concat(m.box)).find(".".concat(f.klass.buttonOk)).focus())
                        }))
                    }

                    function k(t) {
                        t.stopPropagation(), v.addClass(m.target), b.$root.addClass(m.focused), b.open()
                    }

                    function S(t) {
                        var e = t.keyCode;
                        if (27 == e) return b.close(!0), !1;
                        32 != e && 13 != e || (t.preventDefault(), t.stopPropagation(), b.open())
                    }
                    return f.inline = t(e).attr("inline"), new y
                }

                function a() {
                    if (n.height() <= e.height()) return 0;
                    var i = t('<div style="visibility:hidden;width:100px" />').appendTo("body"),
                        l = i[0].offsetWidth;
                    i.css("overflow", "scroll");
                    var o = t('<div style="width:100%" />').appendTo(i)[0].offsetWidth;
                    return i.remove(), l - o
                }

                function r(t, e) {
                    var i = [];
                    return t.path && (i = t.path), t.originalEvent && t.originalEvent.path && (i = t.originalEvent.path), i && i.length > 0 ? e && i.indexOf(e) >= 0 ? e : i[0] : t.target
                }

                function s(e, i, n) {
                    if (t.isPlainObject(i))
                        for (var l in i) c(e, l, i[l]);
                    else c(e, i, n)
                }

                function c(t, e, i) {
                    t.setAttribute(("role" == e ? "" : "aria-") + e, i)
                }

                function u() {
                    try {
                        return document.activeElement
                    } catch (t) {}
                }
                return o.klasses = function(t) {
                    return {
                        picker: t = t || "picker",
                        opened: t + "--opened",
                        focused: t + "--focused",
                        input: t + "__input",
                        active: t + "__input--active",
                        target: t + "__input--target",
                        holder: t + "__holder",
                        frame: t + "__frame",
                        wrap: t + "__wrap",
                        box: t + "__box"
                    }
                }, o._ = {
                    group: function(t) {
                        for (var e, i = "", n = o._.trigger(t.min, t); n <= o._.trigger(t.max, t, [n]); n += t.i) e = o._.trigger(t.item, t, [n]), i += o._.node(t.node, e[0], e[1], e[2]);
                        return i
                    },
                    node: function(e, i, n, l) {
                        return i ? "<" + e + (n = n ? ' class="' + n + '"' : "") + (l = l ? " " + l : "") + ">" + (i = t.isArray(i) ? i.join("") : i) + "</" + e + ">" : ""
                    },
                    lead: function(t) {
                        return (t < 10 ? "0" : "") + t
                    },
                    trigger: function(t, e, i) {
                        return "function" == typeof t ? t.apply(e, i || []) : t
                    },
                    digits: function(t) {
                        return /\d/.test(t[1]) ? 2 : 1
                    },
                    isDate: function(t) {
                        return {}.toString.call(t).indexOf("Date") > -1 && this.isInteger(t.getDate())
                    },
                    isInteger: function(t) {
                        return {}.toString.call(t).indexOf("Number") > -1 && t % 1 == 0
                    },
                    ariaAttr: function(e, i) {
                        for (var n in t.isPlainObject(e) || (e = {
                                attribute: i
                            }), i = "", e) {
                            var l = ("role" == n ? "" : "aria-") + n,
                                o = e[n];
                            i += null == o ? "" : l + '="' + e[n] + '"'
                        }
                        return i
                    }
                }, o.extend = function(e, i) {
                    t.fn[e] = function(n, l) {
                        var a = this.data(e);
                        return "picker" == n ? a : a && "string" == typeof n ? o._.trigger(a[n], a, [l]) : this.each((function() {
                            t(this).data(e) || new o(this, e, i, n)
                        }))
                    }, t.fn[e].defaults = i.defaults
                }, o
            }, "function" == typeof define && i(75) ? define("picker", ["jquery"], e) : "object" == ("undefined" == typeof exports ? "undefined" : n(exports)) ? t.exports = e(i(116)) : window.Picker = e(jQuery)
        }.call(this, i(95)(t))
}, function(t, e, i) {
    i(228), t.exports = i(299)
}, function(t, e, i) {}, function(t, e, i) {
    "use strict";
    (function(t) {
        var e, n;
        i(69), i(71), i(72), i(91), i(66), i(54), i(78), i(96), i(100), i(118), i(64), i(68), i(73), i(98), i(74);

        function l(t) {
            return (l = "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)
        }
        /*!
         * bsCustomFileInput v1.3.2 (https://github.com/Johann-S/bs-custom-file-input)
         * Copyright 2018 - 2019 Johann-S <johann.servoire@gmail.com>
         * Licensed under MIT (https://github.com/Johann-S/bs-custom-file-input/blob/master/LICENSE)
         */
        e = void 0, n = function() {
            var t = {
                    CUSTOMFILE: '.custom-file input[type="file"]',
                    CUSTOMFILELABEL: ".custom-file-label",
                    FORM: "form",
                    INPUT: "input"
                },
                e = function(e) {
                    var i = "",
                        n = e.parentNode.querySelector(t.CUSTOMFILELABEL);
                    return n && (i = n.innerHTML), i
                },
                i = function(t) {
                    if (t.childNodes.length > 0)
                        for (var e = [].slice.call(t.childNodes), i = 0; i < e.length; i++) {
                            var n = e[i];
                            if (3 !== n.nodeType) return n
                        }
                    return t
                },
                n = function(e) {
                    var n = e.bsCustomFileInput.defaultText,
                        l = e.parentNode.querySelector(t.CUSTOMFILELABEL);
                    l && (i(l).innerHTML = n)
                },
                l = !!window.File,
                o = function(t) {
                    if (t.hasAttribute("multiple") && l) return [].slice.call(t.files).map((function(t) {
                        return t.name
                    })).join(", ");
                    if (-1 !== t.value.indexOf("fakepath")) {
                        var e = t.value.split("\\");
                        return e[e.length - 1]
                    }
                    return t.value
                };

            function a() {
                var e = this.parentNode.querySelector(t.CUSTOMFILELABEL);
                if (e) {
                    var l = i(e),
                        a = o(this);
                    a.length ? l.innerHTML = a : n(this)
                }
            }

            function r() {
                for (var e = [].slice.call(this.querySelectorAll(t.INPUT)).filter((function(t) {
                        return !!t.bsCustomFileInput
                    })), i = 0, l = e.length; i < l; i++) n(e[i])
            }
            var s = "reset",
                c = "change";
            return {
                init: function(i, n) {
                    void 0 === i && (i = t.CUSTOMFILE), void 0 === n && (n = t.FORM);
                    for (var l = [].slice.call(document.querySelectorAll(i)), o = [].slice.call(document.querySelectorAll(n)), u = 0, h = l.length; u < h; u++) {
                        var d = l[u];
                        Object.defineProperty(d, "bsCustomFileInput", {
                            value: {
                                defaultText: e(d)
                            },
                            writable: !0
                        }), a.call(d), d.addEventListener(c, a)
                    }
                    for (var p = 0, f = o.length; p < f; p++) o[p].addEventListener(s, r), Object.defineProperty(o[p], "bsCustomFileInput", {
                        value: !0,
                        writable: !0
                    })
                },
                destroy: function() {
                    for (var e = [].slice.call(document.querySelectorAll(t.FORM)).filter((function(t) {
                            return !!t.bsCustomFileInput
                        })), i = [].slice.call(document.querySelectorAll(t.INPUT)).filter((function(t) {
                            return !!t.bsCustomFileInput
                        })), l = 0, o = i.length; l < o; l++) {
                        var u = i[l];
                        n(u), u.bsCustomFileInput = void 0, u.removeEventListener(c, a)
                    }
                    for (var h = 0, d = e.length; h < d; h++) e[h].removeEventListener(s, r), e[h].bsCustomFileInput = void 0
                }
            }
        }, "object" === ("undefined" == typeof exports ? "undefined" : l(exports)) && void 0 !== t ? t.exports = n() : "function" == typeof define && i(75) ? define(n) : (e = e || self).bsCustomFileInput = n(), document.addEventListener("DOMContentLoaded", (function() {
            bsCustomFileInput.init()
        }))
    }).call(this, i(95)(t))
}, function(t, e, i) {
    "use strict";
    (function(t, e) {
        var n;
        i(69), i(71), i(72), i(82), i(173), i(91), i(231), i(107), i(66), i(54), i(78), i(96), i(142), i(133), i(100), i(131), i(108), i(89), i(232), i(233), i(111), i(235), i(220), i(221), i(134), i(113), i(64), i(115), i(119), i(68), i(97), i(73), i(117), i(98), i(109), i(74);

        function l(t) {
            return (l = "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)
        }
        /*!
         * Chart.js
         * http://chartjs.org/
         * Version: 2.7.3
         *
         * Copyright 2018 Chart.js Contributors
         * Released under the MIT license
         * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
         */
        ! function(n) {
            if ("object" === ("undefined" == typeof exports ? "undefined" : l(exports)) && void 0 !== t) t.exports = n();
            else if ("function" == typeof define && i(75)) define([], n);
            else {
                ("undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : this).Chart = n()
            }
        }((function() {
            return function t(e, i, l) {
                function o(r, s) {
                    if (!i[r]) {
                        if (!e[r]) {
                            if (!s && "function" == typeof n && n) return n(r, !0);
                            if (a) return a(r, !0);
                            var c = new Error("Cannot find module '" + r + "'");
                            throw c.code = "MODULE_NOT_FOUND", c
                        }
                        var u = i[r] = {
                            exports: {}
                        };
                        e[r][0].call(u.exports, (function(t) {
                            return o(e[r][1][t] || t)
                        }), u, u.exports, t, e, i, l)
                    }
                    return i[r].exports
                }
                for (var a = "function" == typeof n && n, r = 0; r < l.length; r++) o(l[r]);
                return o
            }({
                1: [function(t, e, i) {}, {}],
                2: [function(t, e, i) {
                    var n = t(6);

                    function l(t) {
                        if (t) {
                            var e = [0, 0, 0],
                                i = 1,
                                l = t.match(/^#([a-fA-F0-9]{3})$/i);
                            if (l) {
                                l = l[1];
                                for (var o = 0; o < e.length; o++) e[o] = parseInt(l[o] + l[o], 16)
                            } else if (l = t.match(/^#([a-fA-F0-9]{6})$/i)) {
                                l = l[1];
                                for (o = 0; o < e.length; o++) e[o] = parseInt(l.slice(2 * o, 2 * o + 2), 16)
                            } else if (l = t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)) {
                                for (o = 0; o < e.length; o++) e[o] = parseInt(l[o + 1]);
                                i = parseFloat(l[4])
                            } else if (l = t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)) {
                                for (o = 0; o < e.length; o++) e[o] = Math.round(2.55 * parseFloat(l[o + 1]));
                                i = parseFloat(l[4])
                            } else if (l = t.match(/(\w+)/)) {
                                if ("transparent" == l[1]) return [0, 0, 0, 0];
                                if (!(e = n[l[1]])) return
                            }
                            for (o = 0; o < e.length; o++) e[o] = u(e[o], 0, 255);
                            return i = i || 0 == i ? u(i, 0, 1) : 1, e[3] = i, e
                        }
                    }

                    function o(t) {
                        if (t) {
                            var e = t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);
                            if (e) {
                                var i = parseFloat(e[4]);
                                return [u(parseInt(e[1]), 0, 360), u(parseFloat(e[2]), 0, 100), u(parseFloat(e[3]), 0, 100), u(isNaN(i) ? 1 : i, 0, 1)]
                            }
                        }
                    }

                    function a(t) {
                        if (t) {
                            var e = t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);
                            if (e) {
                                var i = parseFloat(e[4]);
                                return [u(parseInt(e[1]), 0, 360), u(parseFloat(e[2]), 0, 100), u(parseFloat(e[3]), 0, 100), u(isNaN(i) ? 1 : i, 0, 1)]
                            }
                        }
                    }

                    function r(t, e) {
                        return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "rgba(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + e + ")"
                    }

                    function s(t, e) {
                        return "rgba(" + Math.round(t[0] / 255 * 100) + "%, " + Math.round(t[1] / 255 * 100) + "%, " + Math.round(t[2] / 255 * 100) + "%, " + (e || t[3] || 1) + ")"
                    }

                    function c(t, e) {
                        return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "hsla(" + t[0] + ", " + t[1] + "%, " + t[2] + "%, " + e + ")"
                    }

                    function u(t, e, i) {
                        return Math.min(Math.max(e, t), i)
                    }

                    function h(t) {
                        var e = t.toString(16).toUpperCase();
                        return e.length < 2 ? "0" + e : e
                    }
                    e.exports = {
                        getRgba: l,
                        getHsla: o,
                        getRgb: function(t) {
                            var e = l(t);
                            return e && e.slice(0, 3)
                        },
                        getHsl: function(t) {
                            var e = o(t);
                            return e && e.slice(0, 3)
                        },
                        getHwb: a,
                        getAlpha: function(t) {
                            var e = l(t);
                            if (e) return e[3];
                            if (e = o(t)) return e[3];
                            if (e = a(t)) return e[3]
                        },
                        hexString: function(t) {
                            return "#" + h(t[0]) + h(t[1]) + h(t[2])
                        },
                        rgbString: function(t, e) {
                            if (e < 1 || t[3] && t[3] < 1) return r(t, e);
                            return "rgb(" + t[0] + ", " + t[1] + ", " + t[2] + ")"
                        },
                        rgbaString: r,
                        percentString: function(t, e) {
                            if (e < 1 || t[3] && t[3] < 1) return s(t, e);
                            var i = Math.round(t[0] / 255 * 100),
                                n = Math.round(t[1] / 255 * 100),
                                l = Math.round(t[2] / 255 * 100);
                            return "rgb(" + i + "%, " + n + "%, " + l + "%)"
                        },
                        percentaString: s,
                        hslString: function(t, e) {
                            if (e < 1 || t[3] && t[3] < 1) return c(t, e);
                            return "hsl(" + t[0] + ", " + t[1] + "%, " + t[2] + "%)"
                        },
                        hslaString: c,
                        hwbString: function(t, e) {
                            void 0 === e && (e = void 0 !== t[3] ? t[3] : 1);
                            return "hwb(" + t[0] + ", " + t[1] + "%, " + t[2] + "%" + (void 0 !== e && 1 !== e ? ", " + e : "") + ")"
                        },
                        keyword: function(t) {
                            return d[t.slice(0, 3)]
                        }
                    };
                    var d = {};
                    for (var p in n) d[n[p]] = p
                }, {
                    6: 6
                }],
                3: [function(t, e, i) {
                    var n = t(5),
                        o = t(2),
                        a = function t(e) {
                            return e instanceof t ? e : this instanceof t ? (this.valid = !1, this.values = {
                                rgb: [0, 0, 0],
                                hsl: [0, 0, 0],
                                hsv: [0, 0, 0],
                                hwb: [0, 0, 0],
                                cmyk: [0, 0, 0, 0],
                                alpha: 1
                            }, void("string" == typeof e ? (i = o.getRgba(e)) ? this.setValues("rgb", i) : (i = o.getHsla(e)) ? this.setValues("hsl", i) : (i = o.getHwb(e)) && this.setValues("hwb", i) : "object" === l(e) && (void 0 !== (i = e).r || void 0 !== i.red ? this.setValues("rgb", i) : void 0 !== i.l || void 0 !== i.lightness ? this.setValues("hsl", i) : void 0 !== i.v || void 0 !== i.value ? this.setValues("hsv", i) : void 0 !== i.w || void 0 !== i.whiteness ? this.setValues("hwb", i) : void 0 === i.c && void 0 === i.cyan || this.setValues("cmyk", i)))) : new t(e);
                            var i
                        };
                    (a.prototype = {
                        isValid: function() {
                            return this.valid
                        },
                        rgb: function() {
                            return this.setSpace("rgb", arguments)
                        },
                        hsl: function() {
                            return this.setSpace("hsl", arguments)
                        },
                        hsv: function() {
                            return this.setSpace("hsv", arguments)
                        },
                        hwb: function() {
                            return this.setSpace("hwb", arguments)
                        },
                        cmyk: function() {
                            return this.setSpace("cmyk", arguments)
                        },
                        rgbArray: function() {
                            return this.values.rgb
                        },
                        hslArray: function() {
                            return this.values.hsl
                        },
                        hsvArray: function() {
                            return this.values.hsv
                        },
                        hwbArray: function() {
                            var t = this.values;
                            return 1 !== t.alpha ? t.hwb.concat([t.alpha]) : t.hwb
                        },
                        cmykArray: function() {
                            return this.values.cmyk
                        },
                        rgbaArray: function() {
                            var t = this.values;
                            return t.rgb.concat([t.alpha])
                        },
                        hslaArray: function() {
                            var t = this.values;
                            return t.hsl.concat([t.alpha])
                        },
                        alpha: function(t) {
                            return void 0 === t ? this.values.alpha : (this.setValues("alpha", t), this)
                        },
                        red: function(t) {
                            return this.setChannel("rgb", 0, t)
                        },
                        green: function(t) {
                            return this.setChannel("rgb", 1, t)
                        },
                        blue: function(t) {
                            return this.setChannel("rgb", 2, t)
                        },
                        hue: function(t) {
                            return t && (t = (t %= 360) < 0 ? 360 + t : t), this.setChannel("hsl", 0, t)
                        },
                        saturation: function(t) {
                            return this.setChannel("hsl", 1, t)
                        },
                        lightness: function(t) {
                            return this.setChannel("hsl", 2, t)
                        },
                        saturationv: function(t) {
                            return this.setChannel("hsv", 1, t)
                        },
                        whiteness: function(t) {
                            return this.setChannel("hwb", 1, t)
                        },
                        blackness: function(t) {
                            return this.setChannel("hwb", 2, t)
                        },
                        value: function(t) {
                            return this.setChannel("hsv", 2, t)
                        },
                        cyan: function(t) {
                            return this.setChannel("cmyk", 0, t)
                        },
                        magenta: function(t) {
                            return this.setChannel("cmyk", 1, t)
                        },
                        yellow: function(t) {
                            return this.setChannel("cmyk", 2, t)
                        },
                        black: function(t) {
                            return this.setChannel("cmyk", 3, t)
                        },
                        hexString: function() {
                            return o.hexString(this.values.rgb)
                        },
                        rgbString: function() {
                            return o.rgbString(this.values.rgb, this.values.alpha)
                        },
                        rgbaString: function() {
                            return o.rgbaString(this.values.rgb, this.values.alpha)
                        },
                        percentString: function() {
                            return o.percentString(this.values.rgb, this.values.alpha)
                        },
                        hslString: function() {
                            return o.hslString(this.values.hsl, this.values.alpha)
                        },
                        hslaString: function() {
                            return o.hslaString(this.values.hsl, this.values.alpha)
                        },
                        hwbString: function() {
                            return o.hwbString(this.values.hwb, this.values.alpha)
                        },
                        keyword: function() {
                            return o.keyword(this.values.rgb, this.values.alpha)
                        },
                        rgbNumber: function() {
                            var t = this.values.rgb;
                            return t[0] << 16 | t[1] << 8 | t[2]
                        },
                        luminosity: function() {
                            for (var t = this.values.rgb, e = [], i = 0; i < t.length; i++) {
                                var n = t[i] / 255;
                                e[i] = n <= .03928 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4)
                            }
                            return .2126 * e[0] + .7152 * e[1] + .0722 * e[2]
                        },
                        contrast: function(t) {
                            var e = this.luminosity(),
                                i = t.luminosity();
                            return e > i ? (e + .05) / (i + .05) : (i + .05) / (e + .05)
                        },
                        level: function(t) {
                            var e = this.contrast(t);
                            return e >= 7.1 ? "AAA" : e >= 4.5 ? "AA" : ""
                        },
                        dark: function() {
                            var t = this.values.rgb;
                            return (299 * t[0] + 587 * t[1] + 114 * t[2]) / 1e3 < 128
                        },
                        light: function() {
                            return !this.dark()
                        },
                        negate: function() {
                            for (var t = [], e = 0; e < 3; e++) t[e] = 255 - this.values.rgb[e];
                            return this.setValues("rgb", t), this
                        },
                        lighten: function(t) {
                            var e = this.values.hsl;
                            return e[2] += e[2] * t, this.setValues("hsl", e), this
                        },
                        darken: function(t) {
                            var e = this.values.hsl;
                            return e[2] -= e[2] * t, this.setValues("hsl", e), this
                        },
                        saturate: function(t) {
                            var e = this.values.hsl;
                            return e[1] += e[1] * t, this.setValues("hsl", e), this
                        },
                        desaturate: function(t) {
                            var e = this.values.hsl;
                            return e[1] -= e[1] * t, this.setValues("hsl", e), this
                        },
                        whiten: function(t) {
                            var e = this.values.hwb;
                            return e[1] += e[1] * t, this.setValues("hwb", e), this
                        },
                        blacken: function(t) {
                            var e = this.values.hwb;
                            return e[2] += e[2] * t, this.setValues("hwb", e), this
                        },
                        greyscale: function() {
                            var t = this.values.rgb,
                                e = .3 * t[0] + .59 * t[1] + .11 * t[2];
                            return this.setValues("rgb", [e, e, e]), this
                        },
                        clearer: function(t) {
                            var e = this.values.alpha;
                            return this.setValues("alpha", e - e * t), this
                        },
                        opaquer: function(t) {
                            var e = this.values.alpha;
                            return this.setValues("alpha", e + e * t), this
                        },
                        rotate: function(t) {
                            var e = this.values.hsl,
                                i = (e[0] + t) % 360;
                            return e[0] = i < 0 ? 360 + i : i, this.setValues("hsl", e), this
                        },
                        mix: function(t, e) {
                            var i = t,
                                n = void 0 === e ? .5 : e,
                                l = 2 * n - 1,
                                o = this.alpha() - i.alpha(),
                                a = ((l * o == -1 ? l : (l + o) / (1 + l * o)) + 1) / 2,
                                r = 1 - a;
                            return this.rgb(a * this.red() + r * i.red(), a * this.green() + r * i.green(), a * this.blue() + r * i.blue()).alpha(this.alpha() * n + i.alpha() * (1 - n))
                        },
                        toJSON: function() {
                            return this.rgb()
                        },
                        clone: function() {
                            var t, e, i = new a,
                                n = this.values,
                                l = i.values;
                            for (var o in n) n.hasOwnProperty(o) && (t = n[o], "[object Array]" === (e = {}.toString.call(t)) ? l[o] = t.slice(0) : "[object Number]" === e ? l[o] = t : console.error("unexpected color value:", t));
                            return i
                        }
                    }).spaces = {
                        rgb: ["red", "green", "blue"],
                        hsl: ["hue", "saturation", "lightness"],
                        hsv: ["hue", "saturation", "value"],
                        hwb: ["hue", "whiteness", "blackness"],
                        cmyk: ["cyan", "magenta", "yellow", "black"]
                    }, a.prototype.maxes = {
                        rgb: [255, 255, 255],
                        hsl: [360, 100, 100],
                        hsv: [360, 100, 100],
                        hwb: [360, 100, 100],
                        cmyk: [100, 100, 100, 100]
                    }, a.prototype.getValues = function(t) {
                        for (var e = this.values, i = {}, n = 0; n < t.length; n++) i[t.charAt(n)] = e[t][n];
                        return 1 !== e.alpha && (i.a = e.alpha), i
                    }, a.prototype.setValues = function(t, e) {
                        var i, l, o = this.values,
                            a = this.spaces,
                            r = this.maxes,
                            s = 1;
                        if (this.valid = !0, "alpha" === t) s = e;
                        else if (e.length) o[t] = e.slice(0, t.length), s = e[t.length];
                        else if (void 0 !== e[t.charAt(0)]) {
                            for (i = 0; i < t.length; i++) o[t][i] = e[t.charAt(i)];
                            s = e.a
                        } else if (void 0 !== e[a[t][0]]) {
                            var c = a[t];
                            for (i = 0; i < t.length; i++) o[t][i] = e[c[i]];
                            s = e.alpha
                        }
                        if (o.alpha = Math.max(0, Math.min(1, void 0 === s ? o.alpha : s)), "alpha" === t) return !1;
                        for (i = 0; i < t.length; i++) l = Math.max(0, Math.min(r[t][i], o[t][i])), o[t][i] = Math.round(l);
                        for (var u in a) u !== t && (o[u] = n[t][u](o[t]));
                        return !0
                    }, a.prototype.setSpace = function(t, e) {
                        var i = e[0];
                        return void 0 === i ? this.getValues(t) : ("number" == typeof i && (i = Array.prototype.slice.call(e)), this.setValues(t, i), this)
                    }, a.prototype.setChannel = function(t, e, i) {
                        var n = this.values[t];
                        return void 0 === i ? n[e] : i === n[e] ? this : (n[e] = i, this.setValues(t, n), this)
                    }, "undefined" != typeof window && (window.Color = a), e.exports = a
                }, {
                    2: 2,
                    5: 5
                }],
                4: [function(t, e, i) {
                    function n(t) {
                        var e, i, n = t[0] / 255,
                            l = t[1] / 255,
                            o = t[2] / 255,
                            a = Math.min(n, l, o),
                            r = Math.max(n, l, o),
                            s = r - a;
                        return r == a ? e = 0 : n == r ? e = (l - o) / s : l == r ? e = 2 + (o - n) / s : o == r && (e = 4 + (n - l) / s), (e = Math.min(60 * e, 360)) < 0 && (e += 360), i = (a + r) / 2, [e, 100 * (r == a ? 0 : i <= .5 ? s / (r + a) : s / (2 - r - a)), 100 * i]
                    }

                    function l(t) {
                        var e, i, n = t[0],
                            l = t[1],
                            o = t[2],
                            a = Math.min(n, l, o),
                            r = Math.max(n, l, o),
                            s = r - a;
                        return i = 0 == r ? 0 : s / r * 1e3 / 10, r == a ? e = 0 : n == r ? e = (l - o) / s : l == r ? e = 2 + (o - n) / s : o == r && (e = 4 + (n - l) / s), (e = Math.min(60 * e, 360)) < 0 && (e += 360), [e, i, r / 255 * 1e3 / 10]
                    }

                    function o(t) {
                        var e = t[0],
                            i = t[1],
                            l = t[2];
                        return [n(t)[0], 100 * (1 / 255 * Math.min(e, Math.min(i, l))), 100 * (l = 1 - 1 / 255 * Math.max(e, Math.max(i, l)))]
                    }

                    function a(t) {
                        var e, i = t[0] / 255,
                            n = t[1] / 255,
                            l = t[2] / 255;
                        return [100 * ((1 - i - (e = Math.min(1 - i, 1 - n, 1 - l))) / (1 - e) || 0), 100 * ((1 - n - e) / (1 - e) || 0), 100 * ((1 - l - e) / (1 - e) || 0), 100 * e]
                    }

                    function s(t) {
                        return C[JSON.stringify(t)]
                    }

                    function c(t) {
                        var e = t[0] / 255,
                            i = t[1] / 255,
                            n = t[2] / 255;
                        return [100 * (.4124 * (e = e > .04045 ? Math.pow((e + .055) / 1.055, 2.4) : e / 12.92) + .3576 * (i = i > .04045 ? Math.pow((i + .055) / 1.055, 2.4) : i / 12.92) + .1805 * (n = n > .04045 ? Math.pow((n + .055) / 1.055, 2.4) : n / 12.92)), 100 * (.2126 * e + .7152 * i + .0722 * n), 100 * (.0193 * e + .1192 * i + .9505 * n)]
                    }

                    function u(t) {
                        var e = c(t),
                            i = e[0],
                            n = e[1],
                            l = e[2];
                        return n /= 100, l /= 108.883, i = (i /= 95.047) > .008856 ? Math.pow(i, 1 / 3) : 7.787 * i + 16 / 116, [116 * (n = n > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116) - 16, 500 * (i - n), 200 * (n - (l = l > .008856 ? Math.pow(l, 1 / 3) : 7.787 * l + 16 / 116))]
                    }

                    function h(t) {
                        var e, i, n, l, o, a = t[0] / 360,
                            r = t[1] / 100,
                            s = t[2] / 100;
                        if (0 == r) return [o = 255 * s, o, o];
                        e = 2 * s - (i = s < .5 ? s * (1 + r) : s + r - s * r), l = [0, 0, 0];
                        for (var c = 0; c < 3; c++)(n = a + 1 / 3 * -(c - 1)) < 0 && n++, n > 1 && n--, o = 6 * n < 1 ? e + 6 * (i - e) * n : 2 * n < 1 ? i : 3 * n < 2 ? e + (i - e) * (2 / 3 - n) * 6 : e, l[c] = 255 * o;
                        return l
                    }

                    function d(t) {
                        var e = t[0] / 60,
                            i = t[1] / 100,
                            n = t[2] / 100,
                            l = Math.floor(e) % 6,
                            o = e - Math.floor(e),
                            a = 255 * n * (1 - i),
                            r = 255 * n * (1 - i * o),
                            s = 255 * n * (1 - i * (1 - o));
                        n *= 255;
                        switch (l) {
                            case 0:
                                return [n, s, a];
                            case 1:
                                return [r, n, a];
                            case 2:
                                return [a, n, s];
                            case 3:
                                return [a, r, n];
                            case 4:
                                return [s, a, n];
                            case 5:
                                return [n, a, r]
                        }
                    }

                    function p(t) {
                        var e, i, n, l, o = t[0] / 360,
                            a = t[1] / 100,
                            s = t[2] / 100,
                            c = a + s;
                        switch (c > 1 && (a /= c, s /= c), n = 6 * o - (e = Math.floor(6 * o)), 0 != (1 & e) && (n = 1 - n), l = a + n * ((i = 1 - s) - a), e) {
                            default:
                            case 6:
                            case 0:
                                r = i, g = l, b = a;
                                break;
                            case 1:
                                r = l, g = i, b = a;
                                break;
                            case 2:
                                r = a, g = i, b = l;
                                break;
                            case 3:
                                r = a, g = l, b = i;
                                break;
                            case 4:
                                r = l, g = a, b = i;
                                break;
                            case 5:
                                r = i, g = a, b = l
                        }
                        return [255 * r, 255 * g, 255 * b]
                    }

                    function f(t) {
                        var e = t[0] / 100,
                            i = t[1] / 100,
                            n = t[2] / 100,
                            l = t[3] / 100;
                        return [255 * (1 - Math.min(1, e * (1 - l) + l)), 255 * (1 - Math.min(1, i * (1 - l) + l)), 255 * (1 - Math.min(1, n * (1 - l) + l))]
                    }

                    function m(t) {
                        var e, i, n, l = t[0] / 100,
                            o = t[1] / 100,
                            a = t[2] / 100;
                        return i = -.9689 * l + 1.8758 * o + .0415 * a, n = .0557 * l + -.204 * o + 1.057 * a, e = (e = 3.2406 * l + -1.5372 * o + -.4986 * a) > .0031308 ? 1.055 * Math.pow(e, 1 / 2.4) - .055 : e *= 12.92, i = i > .0031308 ? 1.055 * Math.pow(i, 1 / 2.4) - .055 : i *= 12.92, n = n > .0031308 ? 1.055 * Math.pow(n, 1 / 2.4) - .055 : n *= 12.92, [255 * (e = Math.min(Math.max(0, e), 1)), 255 * (i = Math.min(Math.max(0, i), 1)), 255 * (n = Math.min(Math.max(0, n), 1))]
                    }

                    function v(t) {
                        var e = t[0],
                            i = t[1],
                            n = t[2];
                        return i /= 100, n /= 108.883, e = (e /= 95.047) > .008856 ? Math.pow(e, 1 / 3) : 7.787 * e + 16 / 116, [116 * (i = i > .008856 ? Math.pow(i, 1 / 3) : 7.787 * i + 16 / 116) - 16, 500 * (e - i), 200 * (i - (n = n > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116))]
                    }

                    function y(t) {
                        var e, i, n, l, o = t[0],
                            a = t[1],
                            r = t[2];
                        return o <= 8 ? l = (i = 100 * o / 903.3) / 100 * 7.787 + 16 / 116 : (i = 100 * Math.pow((o + 16) / 116, 3), l = Math.pow(i / 100, 1 / 3)), [e = e / 95.047 <= .008856 ? e = 95.047 * (a / 500 + l - 16 / 116) / 7.787 : 95.047 * Math.pow(a / 500 + l, 3), i, n = n / 108.883 <= .008859 ? n = 108.883 * (l - r / 200 - 16 / 116) / 7.787 : 108.883 * Math.pow(l - r / 200, 3)]
                    }

                    function x(t) {
                        var e, i = t[0],
                            n = t[1],
                            l = t[2];
                        return (e = 360 * Math.atan2(l, n) / 2 / Math.PI) < 0 && (e += 360), [i, Math.sqrt(n * n + l * l), e]
                    }

                    function w(t) {
                        return m(y(t))
                    }

                    function k(t) {
                        var e, i = t[0],
                            n = t[1];
                        return e = t[2] / 360 * 2 * Math.PI, [i, n * Math.cos(e), n * Math.sin(e)]
                    }

                    function S(t) {
                        return M[t]
                    }
                    e.exports = {
                        rgb2hsl: n,
                        rgb2hsv: l,
                        rgb2hwb: o,
                        rgb2cmyk: a,
                        rgb2keyword: s,
                        rgb2xyz: c,
                        rgb2lab: u,
                        rgb2lch: function(t) {
                            return x(u(t))
                        },
                        hsl2rgb: h,
                        hsl2hsv: function(t) {
                            var e = t[0],
                                i = t[1] / 100,
                                n = t[2] / 100;
                            if (0 === n) return [0, 0, 0];
                            return [e, 100 * (2 * (i *= (n *= 2) <= 1 ? n : 2 - n) / (n + i)), 100 * ((n + i) / 2)]
                        },
                        hsl2hwb: function(t) {
                            return o(h(t))
                        },
                        hsl2cmyk: function(t) {
                            return a(h(t))
                        },
                        hsl2keyword: function(t) {
                            return s(h(t))
                        },
                        hsv2rgb: d,
                        hsv2hsl: function(t) {
                            var e, i, n = t[0],
                                l = t[1] / 100,
                                o = t[2] / 100;
                            return e = l * o, [n, 100 * (e = (e /= (i = (2 - l) * o) <= 1 ? i : 2 - i) || 0), 100 * (i /= 2)]
                        },
                        hsv2hwb: function(t) {
                            return o(d(t))
                        },
                        hsv2cmyk: function(t) {
                            return a(d(t))
                        },
                        hsv2keyword: function(t) {
                            return s(d(t))
                        },
                        hwb2rgb: p,
                        hwb2hsl: function(t) {
                            return n(p(t))
                        },
                        hwb2hsv: function(t) {
                            return l(p(t))
                        },
                        hwb2cmyk: function(t) {
                            return a(p(t))
                        },
                        hwb2keyword: function(t) {
                            return s(p(t))
                        },
                        cmyk2rgb: f,
                        cmyk2hsl: function(t) {
                            return n(f(t))
                        },
                        cmyk2hsv: function(t) {
                            return l(f(t))
                        },
                        cmyk2hwb: function(t) {
                            return o(f(t))
                        },
                        cmyk2keyword: function(t) {
                            return s(f(t))
                        },
                        keyword2rgb: S,
                        keyword2hsl: function(t) {
                            return n(S(t))
                        },
                        keyword2hsv: function(t) {
                            return l(S(t))
                        },
                        keyword2hwb: function(t) {
                            return o(S(t))
                        },
                        keyword2cmyk: function(t) {
                            return a(S(t))
                        },
                        keyword2lab: function(t) {
                            return u(S(t))
                        },
                        keyword2xyz: function(t) {
                            return c(S(t))
                        },
                        xyz2rgb: m,
                        xyz2lab: v,
                        xyz2lch: function(t) {
                            return x(v(t))
                        },
                        lab2xyz: y,
                        lab2rgb: w,
                        lab2lch: x,
                        lch2lab: k,
                        lch2xyz: function(t) {
                            return y(k(t))
                        },
                        lch2rgb: function(t) {
                            return w(k(t))
                        }
                    };
                    var M = {
                            aliceblue: [240, 248, 255],
                            antiquewhite: [250, 235, 215],
                            aqua: [0, 255, 255],
                            aquamarine: [127, 255, 212],
                            azure: [240, 255, 255],
                            beige: [245, 245, 220],
                            bisque: [255, 228, 196],
                            black: [0, 0, 0],
                            blanchedalmond: [255, 235, 205],
                            blue: [0, 0, 255],
                            blueviolet: [138, 43, 226],
                            brown: [165, 42, 42],
                            burlywood: [222, 184, 135],
                            cadetblue: [95, 158, 160],
                            chartreuse: [127, 255, 0],
                            chocolate: [210, 105, 30],
                            coral: [255, 127, 80],
                            cornflowerblue: [100, 149, 237],
                            cornsilk: [255, 248, 220],
                            crimson: [220, 20, 60],
                            cyan: [0, 255, 255],
                            darkblue: [0, 0, 139],
                            darkcyan: [0, 139, 139],
                            darkgoldenrod: [184, 134, 11],
                            darkgray: [169, 169, 169],
                            darkgreen: [0, 100, 0],
                            darkgrey: [169, 169, 169],
                            darkkhaki: [189, 183, 107],
                            darkmagenta: [139, 0, 139],
                            darkolivegreen: [85, 107, 47],
                            darkorange: [255, 140, 0],
                            darkorchid: [153, 50, 204],
                            darkred: [139, 0, 0],
                            darksalmon: [233, 150, 122],
                            darkseagreen: [143, 188, 143],
                            darkslateblue: [72, 61, 139],
                            darkslategray: [47, 79, 79],
                            darkslategrey: [47, 79, 79],
                            darkturquoise: [0, 206, 209],
                            darkviolet: [148, 0, 211],
                            deeppink: [255, 20, 147],
                            deepskyblue: [0, 191, 255],
                            dimgray: [105, 105, 105],
                            dimgrey: [105, 105, 105],
                            dodgerblue: [30, 144, 255],
                            firebrick: [178, 34, 34],
                            floralwhite: [255, 250, 240],
                            forestgreen: [34, 139, 34],
                            fuchsia: [255, 0, 255],
                            gainsboro: [220, 220, 220],
                            ghostwhite: [248, 248, 255],
                            gold: [255, 215, 0],
                            goldenrod: [218, 165, 32],
                            gray: [128, 128, 128],
                            green: [0, 128, 0],
                            greenyellow: [173, 255, 47],
                            grey: [128, 128, 128],
                            honeydew: [240, 255, 240],
                            hotpink: [255, 105, 180],
                            indianred: [205, 92, 92],
                            indigo: [75, 0, 130],
                            ivory: [255, 255, 240],
                            khaki: [240, 230, 140],
                            lavender: [230, 230, 250],
                            lavenderblush: [255, 240, 245],
                            lawngreen: [124, 252, 0],
                            lemonchiffon: [255, 250, 205],
                            lightblue: [173, 216, 230],
                            lightcoral: [240, 128, 128],
                            lightcyan: [224, 255, 255],
                            lightgoldenrodyellow: [250, 250, 210],
                            lightgray: [211, 211, 211],
                            lightgreen: [144, 238, 144],
                            lightgrey: [211, 211, 211],
                            lightpink: [255, 182, 193],
                            lightsalmon: [255, 160, 122],
                            lightseagreen: [32, 178, 170],
                            lightskyblue: [135, 206, 250],
                            lightslategray: [119, 136, 153],
                            lightslategrey: [119, 136, 153],
                            lightsteelblue: [176, 196, 222],
                            lightyellow: [255, 255, 224],
                            lime: [0, 255, 0],
                            limegreen: [50, 205, 50],
                            linen: [250, 240, 230],
                            magenta: [255, 0, 255],
                            maroon: [128, 0, 0],
                            mediumaquamarine: [102, 205, 170],
                            mediumblue: [0, 0, 205],
                            mediumorchid: [186, 85, 211],
                            mediumpurple: [147, 112, 219],
                            mediumseagreen: [60, 179, 113],
                            mediumslateblue: [123, 104, 238],
                            mediumspringgreen: [0, 250, 154],
                            mediumturquoise: [72, 209, 204],
                            mediumvioletred: [199, 21, 133],
                            midnightblue: [25, 25, 112],
                            mintcream: [245, 255, 250],
                            mistyrose: [255, 228, 225],
                            moccasin: [255, 228, 181],
                            navajowhite: [255, 222, 173],
                            navy: [0, 0, 128],
                            oldlace: [253, 245, 230],
                            olive: [128, 128, 0],
                            olivedrab: [107, 142, 35],
                            orange: [255, 165, 0],
                            orangered: [255, 69, 0],
                            orchid: [218, 112, 214],
                            palegoldenrod: [238, 232, 170],
                            palegreen: [152, 251, 152],
                            paleturquoise: [175, 238, 238],
                            palevioletred: [219, 112, 147],
                            papayawhip: [255, 239, 213],
                            peachpuff: [255, 218, 185],
                            peru: [205, 133, 63],
                            pink: [255, 192, 203],
                            plum: [221, 160, 221],
                            powderblue: [176, 224, 230],
                            purple: [128, 0, 128],
                            rebeccapurple: [102, 51, 153],
                            red: [255, 0, 0],
                            rosybrown: [188, 143, 143],
                            royalblue: [65, 105, 225],
                            saddlebrown: [139, 69, 19],
                            salmon: [250, 128, 114],
                            sandybrown: [244, 164, 96],
                            seagreen: [46, 139, 87],
                            seashell: [255, 245, 238],
                            sienna: [160, 82, 45],
                            silver: [192, 192, 192],
                            skyblue: [135, 206, 235],
                            slateblue: [106, 90, 205],
                            slategray: [112, 128, 144],
                            slategrey: [112, 128, 144],
                            snow: [255, 250, 250],
                            springgreen: [0, 255, 127],
                            steelblue: [70, 130, 180],
                            tan: [210, 180, 140],
                            teal: [0, 128, 128],
                            thistle: [216, 191, 216],
                            tomato: [255, 99, 71],
                            turquoise: [64, 224, 208],
                            violet: [238, 130, 238],
                            wheat: [245, 222, 179],
                            white: [255, 255, 255],
                            whitesmoke: [245, 245, 245],
                            yellow: [255, 255, 0],
                            yellowgreen: [154, 205, 50]
                        },
                        C = {};
                    for (var T in M) C[JSON.stringify(M[T])] = T
                }, {}],
                5: [function(t, e, i) {
                    var n = t(4),
                        l = function() {
                            return new c
                        };
                    for (var o in n) {
                        l[o + "Raw"] = function(t) {
                            return function(e) {
                                return "number" == typeof e && (e = Array.prototype.slice.call(arguments)), n[t](e)
                            }
                        }(o);
                        var a = /(\w+)2(\w+)/.exec(o),
                            r = a[1],
                            s = a[2];
                        (l[r] = l[r] || {})[s] = l[o] = function(t) {
                            return function(e) {
                                "number" == typeof e && (e = Array.prototype.slice.call(arguments));
                                var i = n[t](e);
                                if ("string" == typeof i || void 0 === i) return i;
                                for (var l = 0; l < i.length; l++) i[l] = Math.round(i[l]);
                                return i
                            }
                        }(o)
                    }
                    var c = function() {
                        this.convs = {}
                    };
                    c.prototype.routeSpace = function(t, e) {
                        var i = e[0];
                        return void 0 === i ? this.getValues(t) : ("number" == typeof i && (i = Array.prototype.slice.call(e)), this.setValues(t, i))
                    }, c.prototype.setValues = function(t, e) {
                        return this.space = t, this.convs = {}, this.convs[t] = e, this
                    }, c.prototype.getValues = function(t) {
                        var e = this.convs[t];
                        if (!e) {
                            var i = this.space,
                                n = this.convs[i];
                            e = l[i][t](n), this.convs[t] = e
                        }
                        return e
                    }, ["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach((function(t) {
                        c.prototype[t] = function(e) {
                            return this.routeSpace(t, arguments)
                        }
                    })), e.exports = l
                }, {
                    4: 4
                }],
                6: [function(t, e, i) {
                    e.exports = {
                        aliceblue: [240, 248, 255],
                        antiquewhite: [250, 235, 215],
                        aqua: [0, 255, 255],
                        aquamarine: [127, 255, 212],
                        azure: [240, 255, 255],
                        beige: [245, 245, 220],
                        bisque: [255, 228, 196],
                        black: [0, 0, 0],
                        blanchedalmond: [255, 235, 205],
                        blue: [0, 0, 255],
                        blueviolet: [138, 43, 226],
                        brown: [165, 42, 42],
                        burlywood: [222, 184, 135],
                        cadetblue: [95, 158, 160],
                        chartreuse: [127, 255, 0],
                        chocolate: [210, 105, 30],
                        coral: [255, 127, 80],
                        cornflowerblue: [100, 149, 237],
                        cornsilk: [255, 248, 220],
                        crimson: [220, 20, 60],
                        cyan: [0, 255, 255],
                        darkblue: [0, 0, 139],
                        darkcyan: [0, 139, 139],
                        darkgoldenrod: [184, 134, 11],
                        darkgray: [169, 169, 169],
                        darkgreen: [0, 100, 0],
                        darkgrey: [169, 169, 169],
                        darkkhaki: [189, 183, 107],
                        darkmagenta: [139, 0, 139],
                        darkolivegreen: [85, 107, 47],
                        darkorange: [255, 140, 0],
                        darkorchid: [153, 50, 204],
                        darkred: [139, 0, 0],
                        darksalmon: [233, 150, 122],
                        darkseagreen: [143, 188, 143],
                        darkslateblue: [72, 61, 139],
                        darkslategray: [47, 79, 79],
                        darkslategrey: [47, 79, 79],
                        darkturquoise: [0, 206, 209],
                        darkviolet: [148, 0, 211],
                        deeppink: [255, 20, 147],
                        deepskyblue: [0, 191, 255],
                        dimgray: [105, 105, 105],
                        dimgrey: [105, 105, 105],
                        dodgerblue: [30, 144, 255],
                        firebrick: [178, 34, 34],
                        floralwhite: [255, 250, 240],
                        forestgreen: [34, 139, 34],
                        fuchsia: [255, 0, 255],
                        gainsboro: [220, 220, 220],
                        ghostwhite: [248, 248, 255],
                        gold: [255, 215, 0],
                        goldenrod: [218, 165, 32],
                        gray: [128, 128, 128],
                        green: [0, 128, 0],
                        greenyellow: [173, 255, 47],
                        grey: [128, 128, 128],
                        honeydew: [240, 255, 240],
                        hotpink: [255, 105, 180],
                        indianred: [205, 92, 92],
                        indigo: [75, 0, 130],
                        ivory: [255, 255, 240],
                        khaki: [240, 230, 140],
                        lavender: [230, 230, 250],
                        lavenderblush: [255, 240, 245],
                        lawngreen: [124, 252, 0],
                        lemonchiffon: [255, 250, 205],
                        lightblue: [173, 216, 230],
                        lightcoral: [240, 128, 128],
                        lightcyan: [224, 255, 255],
                        lightgoldenrodyellow: [250, 250, 210],
                        lightgray: [211, 211, 211],
                        lightgreen: [144, 238, 144],
                        lightgrey: [211, 211, 211],
                        lightpink: [255, 182, 193],
                        lightsalmon: [255, 160, 122],
                        lightseagreen: [32, 178, 170],
                        lightskyblue: [135, 206, 250],
                        lightslategray: [119, 136, 153],
                        lightslategrey: [119, 136, 153],
                        lightsteelblue: [176, 196, 222],
                        lightyellow: [255, 255, 224],
                        lime: [0, 255, 0],
                        limegreen: [50, 205, 50],
                        linen: [250, 240, 230],
                        magenta: [255, 0, 255],
                        maroon: [128, 0, 0],
                        mediumaquamarine: [102, 205, 170],
                        mediumblue: [0, 0, 205],
                        mediumorchid: [186, 85, 211],
                        mediumpurple: [147, 112, 219],
                        mediumseagreen: [60, 179, 113],
                        mediumslateblue: [123, 104, 238],
                        mediumspringgreen: [0, 250, 154],
                        mediumturquoise: [72, 209, 204],
                        mediumvioletred: [199, 21, 133],
                        midnightblue: [25, 25, 112],
                        mintcream: [245, 255, 250],
                        mistyrose: [255, 228, 225],
                        moccasin: [255, 228, 181],
                        navajowhite: [255, 222, 173],
                        navy: [0, 0, 128],
                        oldlace: [253, 245, 230],
                        olive: [128, 128, 0],
                        olivedrab: [107, 142, 35],
                        orange: [255, 165, 0],
                        orangered: [255, 69, 0],
                        orchid: [218, 112, 214],
                        palegoldenrod: [238, 232, 170],
                        palegreen: [152, 251, 152],
                        paleturquoise: [175, 238, 238],
                        palevioletred: [219, 112, 147],
                        papayawhip: [255, 239, 213],
                        peachpuff: [255, 218, 185],
                        peru: [205, 133, 63],
                        pink: [255, 192, 203],
                        plum: [221, 160, 221],
                        powderblue: [176, 224, 230],
                        purple: [128, 0, 128],
                        rebeccapurple: [102, 51, 153],
                        red: [255, 0, 0],
                        rosybrown: [188, 143, 143],
                        royalblue: [65, 105, 225],
                        saddlebrown: [139, 69, 19],
                        salmon: [250, 128, 114],
                        sandybrown: [244, 164, 96],
                        seagreen: [46, 139, 87],
                        seashell: [255, 245, 238],
                        sienna: [160, 82, 45],
                        silver: [192, 192, 192],
                        skyblue: [135, 206, 235],
                        slateblue: [106, 90, 205],
                        slategray: [112, 128, 144],
                        slategrey: [112, 128, 144],
                        snow: [255, 250, 250],
                        springgreen: [0, 255, 127],
                        steelblue: [70, 130, 180],
                        tan: [210, 180, 140],
                        teal: [0, 128, 128],
                        thistle: [216, 191, 216],
                        tomato: [255, 99, 71],
                        turquoise: [64, 224, 208],
                        violet: [238, 130, 238],
                        wheat: [245, 222, 179],
                        white: [255, 255, 255],
                        whitesmoke: [245, 245, 245],
                        yellow: [255, 255, 0],
                        yellowgreen: [154, 205, 50]
                    }
                }, {}],
                7: [function(t, e, i) {
                    var n = t(30)();
                    n.helpers = t(46), t(28)(n), n.Animation = t(22), n.animationService = t(23), n.defaults = t(26), n.Element = t(27), n.elements = t(41), n.Interaction = t(29), n.layouts = t(31), n.platform = t(49), n.plugins = t(32), n.Scale = t(33), n.scaleService = t(34), n.Ticks = t(35), n.Tooltip = t(36), t(24)(n), t(25)(n), t(56)(n), t(54)(n), t(55)(n), t(57)(n), t(58)(n), t(59)(n), t(15)(n), t(16)(n), t(17)(n), t(18)(n), t(19)(n), t(20)(n), t(21)(n), t(8)(n), t(9)(n), t(10)(n), t(11)(n), t(12)(n), t(13)(n), t(14)(n);
                    var l = t(50);
                    for (var o in l) l.hasOwnProperty(o) && n.plugins.register(l[o]);
                    n.platform.initialize(), e.exports = n, "undefined" != typeof window && (window.Chart = n), n.Legend = l.legend._element, n.Title = l.title._element, n.pluginService = n.plugins, n.PluginBase = n.Element.extend({}), n.canvasHelpers = n.helpers.canvas, n.layoutService = n.layouts
                }, {
                    10: 10,
                    11: 11,
                    12: 12,
                    13: 13,
                    14: 14,
                    15: 15,
                    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,
                    30: 30,
                    31: 31,
                    32: 32,
                    33: 33,
                    34: 34,
                    35: 35,
                    36: 36,
                    41: 41,
                    46: 46,
                    49: 49,
                    50: 50,
                    54: 54,
                    55: 55,
                    56: 56,
                    57: 57,
                    58: 58,
                    59: 59,
                    8: 8,
                    9: 9
                }],
                8: [function(t, e, i) {
                    e.exports = function(t) {
                        t.Bar = function(e, i) {
                            return i.type = "bar", new t(e, i)
                        }
                    }
                }, {}],
                9: [function(t, e, i) {
                    e.exports = function(t) {
                        t.Bubble = function(e, i) {
                            return i.type = "bubble", new t(e, i)
                        }
                    }
                }, {}],
                10: [function(t, e, i) {
                    e.exports = function(t) {
                        t.Doughnut = function(e, i) {
                            return i.type = "doughnut", new t(e, i)
                        }
                    }
                }, {}],
                11: [function(t, e, i) {
                    e.exports = function(t) {
                        t.Line = function(e, i) {
                            return i.type = "line", new t(e, i)
                        }
                    }
                }, {}],
                12: [function(t, e, i) {
                    e.exports = function(t) {
                        t.PolarArea = function(e, i) {
                            return i.type = "polarArea", new t(e, i)
                        }
                    }
                }, {}],
                13: [function(t, e, i) {
                    e.exports = function(t) {
                        t.Radar = function(e, i) {
                            return i.type = "radar", new t(e, i)
                        }
                    }
                }, {}],
                14: [function(t, e, i) {
                    e.exports = function(t) {
                        t.Scatter = function(e, i) {
                            return i.type = "scatter", new t(e, i)
                        }
                    }
                }, {}],
                15: [function(t, e, i) {
                    var n = t(26),
                        l = t(41),
                        o = t(46);
                    n._set("bar", {
                        hover: {
                            mode: "label"
                        },
                        scales: {
                            xAxes: [{
                                type: "category",
                                categoryPercentage: .8,
                                barPercentage: .9,
                                offset: !0,
                                gridLines: {
                                    offsetGridLines: !0
                                }
                            }],
                            yAxes: [{
                                type: "linear"
                            }]
                        }
                    }), n._set("horizontalBar", {
                        hover: {
                            mode: "index",
                            axis: "y"
                        },
                        scales: {
                            xAxes: [{
                                type: "linear",
                                position: "bottom"
                            }],
                            yAxes: [{
                                position: "left",
                                type: "category",
                                categoryPercentage: .8,
                                barPercentage: .9,
                                offset: !0,
                                gridLines: {
                                    offsetGridLines: !0
                                }
                            }]
                        },
                        elements: {
                            rectangle: {
                                borderSkipped: "left"
                            }
                        },
                        tooltips: {
                            callbacks: {
                                title: function(t, e) {
                                    var i = "";
                                    return t.length > 0 && (t[0].yLabel ? i = t[0].yLabel : e.labels.length > 0 && t[0].index < e.labels.length && (i = e.labels[t[0].index])), i
                                },
                                label: function(t, e) {
                                    return (e.datasets[t.datasetIndex].label || "") + ": " + t.xLabel
                                }
                            },
                            mode: "index",
                            axis: "y"
                        }
                    }), e.exports = function(t) {
                        t.controllers.bar = t.DatasetController.extend({
                            dataElementType: l.Rectangle,
                            initialize: function() {
                                var e, i = this;
                                t.DatasetController.prototype.initialize.apply(i, arguments), (e = i.getMeta()).stack = i.getDataset().stack, e.bar = !0
                            },
                            update: function(t) {
                                var e, i, n = this.getMeta().data;
                                for (this._ruler = this.getRuler(), e = 0, i = n.length; e < i; ++e) this.updateElement(n[e], e, t)
                            },
                            updateElement: function(t, e, i) {
                                var n = this,
                                    l = n.chart,
                                    a = n.getMeta(),
                                    r = n.getDataset(),
                                    s = t.custom || {},
                                    c = l.options.elements.rectangle;
                                t._xScale = n.getScaleForId(a.xAxisID), t._yScale = n.getScaleForId(a.yAxisID), t._datasetIndex = n.index, t._index = e, t._model = {
                                    datasetLabel: r.label,
                                    label: l.data.labels[e],
                                    borderSkipped: s.borderSkipped ? s.borderSkipped : c.borderSkipped,
                                    backgroundColor: s.backgroundColor ? s.backgroundColor : o.valueAtIndexOrDefault(r.backgroundColor, e, c.backgroundColor),
                                    borderColor: s.borderColor ? s.borderColor : o.valueAtIndexOrDefault(r.borderColor, e, c.borderColor),
                                    borderWidth: s.borderWidth ? s.borderWidth : o.valueAtIndexOrDefault(r.borderWidth, e, c.borderWidth)
                                }, n.updateElementGeometry(t, e, i), t.pivot()
                            },
                            updateElementGeometry: function(t, e, i) {
                                var n = this,
                                    l = t._model,
                                    o = n.getValueScale(),
                                    a = o.getBasePixel(),
                                    r = o.isHorizontal(),
                                    s = n._ruler || n.getRuler(),
                                    c = n.calculateBarValuePixels(n.index, e),
                                    u = n.calculateBarIndexPixels(n.index, e, s);
                                l.horizontal = r, l.base = i ? a : c.base, l.x = r ? i ? a : c.head : u.center, l.y = r ? u.center : i ? a : c.head, l.height = r ? u.size : void 0, l.width = r ? void 0 : u.size
                            },
                            getValueScaleId: function() {
                                return this.getMeta().yAxisID
                            },
                            getIndexScaleId: function() {
                                return this.getMeta().xAxisID
                            },
                            getValueScale: function() {
                                return this.getScaleForId(this.getValueScaleId())
                            },
                            getIndexScale: function() {
                                return this.getScaleForId(this.getIndexScaleId())
                            },
                            _getStacks: function(t) {
                                var e, i, n = this.chart,
                                    l = this.getIndexScale().options.stacked,
                                    o = void 0 === t ? n.data.datasets.length : t + 1,
                                    a = [];
                                for (e = 0; e < o; ++e)(i = n.getDatasetMeta(e)).bar && n.isDatasetVisible(e) && (!1 === l || !0 === l && -1 === a.indexOf(i.stack) || void 0 === l && (void 0 === i.stack || -1 === a.indexOf(i.stack))) && a.push(i.stack);
                                return a
                            },
                            getStackCount: function() {
                                return this._getStacks().length
                            },
                            getStackIndex: function(t, e) {
                                var i = this._getStacks(t),
                                    n = void 0 !== e ? i.indexOf(e) : -1;
                                return -1 === n ? i.length - 1 : n
                            },
                            getRuler: function() {
                                var t, e, i = this.getIndexScale(),
                                    n = this.getStackCount(),
                                    l = this.index,
                                    a = i.isHorizontal(),
                                    r = a ? i.left : i.top,
                                    s = r + (a ? i.width : i.height),
                                    c = [];
                                for (t = 0, e = this.getMeta().data.length; t < e; ++t) c.push(i.getPixelForValue(null, t, l));
                                return {
                                    min: o.isNullOrUndef(i.options.barThickness) ? function(t, e) {
                                        var i, n, l, o, a = t.isHorizontal() ? t.width : t.height,
                                            r = t.getTicks();
                                        for (l = 1, o = e.length; l < o; ++l) a = Math.min(a, e[l] - e[l - 1]);
                                        for (l = 0, o = r.length; l < o; ++l) n = t.getPixelForTick(l), a = l > 0 ? Math.min(a, n - i) : a, i = n;
                                        return a
                                    }(i, c) : -1,
                                    pixels: c,
                                    start: r,
                                    end: s,
                                    stackCount: n,
                                    scale: i
                                }
                            },
                            calculateBarValuePixels: function(t, e) {
                                var i, n, l, o, a, r, s = this.chart,
                                    c = this.getMeta(),
                                    u = this.getValueScale(),
                                    h = s.data.datasets,
                                    d = u.getRightValue(h[t].data[e]),
                                    p = u.options.stacked,
                                    f = c.stack,
                                    m = 0;
                                if (p || void 0 === p && void 0 !== f)
                                    for (i = 0; i < t; ++i)(n = s.getDatasetMeta(i)).bar && n.stack === f && n.controller.getValueScaleId() === u.id && s.isDatasetVisible(i) && (l = u.getRightValue(h[i].data[e]), (d < 0 && l < 0 || d >= 0 && l > 0) && (m += l));
                                return o = u.getPixelForValue(m), {
                                    size: r = ((a = u.getPixelForValue(m + d)) - o) / 2,
                                    base: o,
                                    head: a,
                                    center: a + r / 2
                                }
                            },
                            calculateBarIndexPixels: function(t, e, i) {
                                var n = i.scale.options,
                                    l = "flex" === n.barThickness ? function(t, e, i) {
                                        var n, l = e.pixels,
                                            o = l[t],
                                            a = t > 0 ? l[t - 1] : null,
                                            r = t < l.length - 1 ? l[t + 1] : null,
                                            s = i.categoryPercentage;
                                        return null === a && (a = o - (null === r ? e.end - o : r - o)), null === r && (r = o + o - a), n = o - (o - a) / 2 * s, {
                                            chunk: (r - a) / 2 * s / e.stackCount,
                                            ratio: i.barPercentage,
                                            start: n
                                        }
                                    }(e, i, n) : function(t, e, i) {
                                        var n, l, a = i.barThickness,
                                            r = e.stackCount,
                                            s = e.pixels[t];
                                        return o.isNullOrUndef(a) ? (n = e.min * i.categoryPercentage, l = i.barPercentage) : (n = a * r, l = 1), {
                                            chunk: n / r,
                                            ratio: l,
                                            start: s - n / 2
                                        }
                                    }(e, i, n),
                                    a = this.getStackIndex(t, this.getMeta().stack),
                                    r = l.start + l.chunk * a + l.chunk / 2,
                                    s = Math.min(o.valueOrDefault(n.maxBarThickness, 1 / 0), l.chunk * l.ratio);
                                return {
                                    base: r - s / 2,
                                    head: r + s / 2,
                                    center: r,
                                    size: s
                                }
                            },
                            draw: function() {
                                var t = this.chart,
                                    e = this.getValueScale(),
                                    i = this.getMeta().data,
                                    n = this.getDataset(),
                                    l = i.length,
                                    a = 0;
                                for (o.canvas.clipArea(t.ctx, t.chartArea); a < l; ++a) isNaN(e.getRightValue(n.data[a])) || i[a].draw();
                                o.canvas.unclipArea(t.ctx)
                            }
                        }), t.controllers.horizontalBar = t.controllers.bar.extend({
                            getValueScaleId: function() {
                                return this.getMeta().xAxisID
                            },
                            getIndexScaleId: function() {
                                return this.getMeta().yAxisID
                            }
                        })
                    }
                }, {
                    26: 26,
                    41: 41,
                    46: 46
                }],
                16: [function(t, e, i) {
                    var n = t(26),
                        o = t(41),
                        a = t(46);
                    n._set("bubble", {
                        hover: {
                            mode: "single"
                        },
                        scales: {
                            xAxes: [{
                                type: "linear",
                                position: "bottom",
                                id: "x-axis-0"
                            }],
                            yAxes: [{
                                type: "linear",
                                position: "left",
                                id: "y-axis-0"
                            }]
                        },
                        tooltips: {
                            callbacks: {
                                title: function() {
                                    return ""
                                },
                                label: function(t, e) {
                                    var i = e.datasets[t.datasetIndex].label || "",
                                        n = e.datasets[t.datasetIndex].data[t.index];
                                    return i + ": (" + t.xLabel + ", " + t.yLabel + ", " + n.r + ")"
                                }
                            }
                        }
                    }), e.exports = function(t) {
                        t.controllers.bubble = t.DatasetController.extend({
                            dataElementType: o.Point,
                            update: function(t) {
                                var e = this,
                                    i = e.getMeta().data;
                                a.each(i, (function(i, n) {
                                    e.updateElement(i, n, t)
                                }))
                            },
                            updateElement: function(t, e, i) {
                                var n = this,
                                    o = n.getMeta(),
                                    a = t.custom || {},
                                    r = n.getScaleForId(o.xAxisID),
                                    s = n.getScaleForId(o.yAxisID),
                                    c = n._resolveElementOptions(t, e),
                                    u = n.getDataset().data[e],
                                    h = n.index,
                                    d = i ? r.getPixelForDecimal(.5) : r.getPixelForValue("object" === l(u) ? u : NaN, e, h),
                                    p = i ? s.getBasePixel() : s.getPixelForValue(u, e, h);
                                t._xScale = r, t._yScale = s, t._options = c, t._datasetIndex = h, t._index = e, t._model = {
                                    backgroundColor: c.backgroundColor,
                                    borderColor: c.borderColor,
                                    borderWidth: c.borderWidth,
                                    hitRadius: c.hitRadius,
                                    pointStyle: c.pointStyle,
                                    rotation: c.rotation,
                                    radius: i ? 0 : c.radius,
                                    skip: a.skip || isNaN(d) || isNaN(p),
                                    x: d,
                                    y: p
                                }, t.pivot()
                            },
                            setHoverStyle: function(t) {
                                var e = t._model,
                                    i = t._options;
                                t.$previousStyle = {
                                    backgroundColor: e.backgroundColor,
                                    borderColor: e.borderColor,
                                    borderWidth: e.borderWidth,
                                    radius: e.radius
                                }, e.backgroundColor = a.valueOrDefault(i.hoverBackgroundColor, a.getHoverColor(i.backgroundColor)), e.borderColor = a.valueOrDefault(i.hoverBorderColor, a.getHoverColor(i.borderColor)), e.borderWidth = a.valueOrDefault(i.hoverBorderWidth, i.borderWidth), e.radius = i.radius + i.hoverRadius
                            },
                            _resolveElementOptions: function(t, e) {
                                var i, n, l, o = this.chart,
                                    r = o.data.datasets[this.index],
                                    s = t.custom || {},
                                    c = o.options.elements.point,
                                    u = a.options.resolve,
                                    h = r.data[e],
                                    d = {},
                                    p = {
                                        chart: o,
                                        dataIndex: e,
                                        dataset: r,
                                        datasetIndex: this.index
                                    },
                                    f = ["backgroundColor", "borderColor", "borderWidth", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth", "hoverRadius", "hitRadius", "pointStyle", "rotation"];
                                for (i = 0, n = f.length; i < n; ++i) d[l = f[i]] = u([s[l], r[l], c[l]], p, e);
                                return d.radius = u([s.radius, h ? h.r : void 0, r.radius, c.radius], p, e), d
                            }
                        })
                    }
                }, {
                    26: 26,
                    41: 41,
                    46: 46
                }],
                17: [function(t, e, i) {
                    var n = t(26),
                        l = t(41),
                        o = t(46);
                    n._set("doughnut", {
                        animation: {
                            animateRotate: !0,
                            animateScale: !1
                        },
                        hover: {
                            mode: "single"
                        },
                        legendCallback: function(t) {
                            var e = [];
                            e.push('<ul class="' + t.id + '-legend">');
                            var i = t.data,
                                n = i.datasets,
                                l = i.labels;
                            if (n.length)
                                for (var o = 0; o < n[0].data.length; ++o) e.push('<li><span style="background-color:' + n[0].backgroundColor[o] + '"></span>'), l[o] && e.push(l[o]), e.push("</li>");
                            return e.push("</ul>"), e.join("")
                        },
                        legend: {
                            labels: {
                                generateLabels: function(t) {
                                    var e = t.data;
                                    return e.labels.length && e.datasets.length ? e.labels.map((function(i, n) {
                                        var l = t.getDatasetMeta(0),
                                            a = e.datasets[0],
                                            r = l.data[n],
                                            s = r && r.custom || {},
                                            c = o.valueAtIndexOrDefault,
                                            u = t.options.elements.arc;
                                        return {
                                            text: i,
                                            fillStyle: s.backgroundColor ? s.backgroundColor : c(a.backgroundColor, n, u.backgroundColor),
                                            strokeStyle: s.borderColor ? s.borderColor : c(a.borderColor, n, u.borderColor),
                                            lineWidth: s.borderWidth ? s.borderWidth : c(a.borderWidth, n, u.borderWidth),
                                            hidden: isNaN(a.data[n]) || l.data[n].hidden,
                                            index: n
                                        }
                                    })) : []
                                }
                            },
                            onClick: function(t, e) {
                                var i, n, l, o = e.index,
                                    a = this.chart;
                                for (i = 0, n = (a.data.datasets || []).length; i < n; ++i)(l = a.getDatasetMeta(i)).data[o] && (l.data[o].hidden = !l.data[o].hidden);
                                a.update()
                            }
                        },
                        cutoutPercentage: 50,
                        rotation: -.5 * Math.PI,
                        circumference: 2 * Math.PI,
                        tooltips: {
                            callbacks: {
                                title: function() {
                                    return ""
                                },
                                label: function(t, e) {
                                    var i = e.labels[t.index],
                                        n = ": " + e.datasets[t.datasetIndex].data[t.index];
                                    return o.isArray(i) ? (i = i.slice())[0] += n : i += n, i
                                }
                            }
                        }
                    }), n._set("pie", o.clone(n.doughnut)), n._set("pie", {
                        cutoutPercentage: 0
                    }), e.exports = function(t) {
                        t.controllers.doughnut = t.controllers.pie = t.DatasetController.extend({
                            dataElementType: l.Arc,
                            linkScales: o.noop,
                            getRingIndex: function(t) {
                                for (var e = 0, i = 0; i < t; ++i) this.chart.isDatasetVisible(i) && ++e;
                                return e
                            },
                            update: function(t) {
                                var e = this,
                                    i = e.chart,
                                    n = i.chartArea,
                                    l = i.options,
                                    a = l.elements.arc,
                                    r = n.right - n.left - a.borderWidth,
                                    s = n.bottom - n.top - a.borderWidth,
                                    c = Math.min(r, s),
                                    u = {
                                        x: 0,
                                        y: 0
                                    },
                                    h = e.getMeta(),
                                    d = l.cutoutPercentage,
                                    p = l.circumference;
                                if (p < 2 * Math.PI) {
                                    var f = l.rotation % (2 * Math.PI),
                                        m = (f += 2 * Math.PI * (f >= Math.PI ? -1 : f < -Math.PI ? 1 : 0)) + p,
                                        v = {
                                            x: Math.cos(f),
                                            y: Math.sin(f)
                                        },
                                        g = {
                                            x: Math.cos(m),
                                            y: Math.sin(m)
                                        },
                                        y = f <= 0 && m >= 0 || f <= 2 * Math.PI && 2 * Math.PI <= m,
                                        b = f <= .5 * Math.PI && .5 * Math.PI <= m || f <= 2.5 * Math.PI && 2.5 * Math.PI <= m,
                                        x = f <= -Math.PI && -Math.PI <= m || f <= Math.PI && Math.PI <= m,
                                        w = f <= .5 * -Math.PI && .5 * -Math.PI <= m || f <= 1.5 * Math.PI && 1.5 * Math.PI <= m,
                                        k = d / 100,
                                        S = {
                                            x: x ? -1 : Math.min(v.x * (v.x < 0 ? 1 : k), g.x * (g.x < 0 ? 1 : k)),
                                            y: w ? -1 : Math.min(v.y * (v.y < 0 ? 1 : k), g.y * (g.y < 0 ? 1 : k))
                                        },
                                        M = {
                                            x: y ? 1 : Math.max(v.x * (v.x > 0 ? 1 : k), g.x * (g.x > 0 ? 1 : k)),
                                            y: b ? 1 : Math.max(v.y * (v.y > 0 ? 1 : k), g.y * (g.y > 0 ? 1 : k))
                                        },
                                        C = {
                                            width: .5 * (M.x - S.x),
                                            height: .5 * (M.y - S.y)
                                        };
                                    c = Math.min(r / C.width, s / C.height), u = {
                                        x: -.5 * (M.x + S.x),
                                        y: -.5 * (M.y + S.y)
                                    }
                                }
                                i.borderWidth = e.getMaxBorderWidth(h.data), i.outerRadius = Math.max((c - i.borderWidth) / 2, 0), i.innerRadius = Math.max(d ? i.outerRadius / 100 * d : 0, 0), i.radiusLength = (i.outerRadius - i.innerRadius) / i.getVisibleDatasetCount(), i.offsetX = u.x * i.outerRadius, i.offsetY = u.y * i.outerRadius, h.total = e.calculateTotal(), e.outerRadius = i.outerRadius - i.radiusLength * e.getRingIndex(e.index), e.innerRadius = Math.max(e.outerRadius - i.radiusLength, 0), o.each(h.data, (function(i, n) {
                                    e.updateElement(i, n, t)
                                }))
                            },
                            updateElement: function(t, e, i) {
                                var n = this,
                                    l = n.chart,
                                    a = l.chartArea,
                                    r = l.options,
                                    s = r.animation,
                                    c = (a.left + a.right) / 2,
                                    u = (a.top + a.bottom) / 2,
                                    h = r.rotation,
                                    d = r.rotation,
                                    p = n.getDataset(),
                                    f = i && s.animateRotate ? 0 : t.hidden ? 0 : n.calculateCircumference(p.data[e]) * (r.circumference / (2 * Math.PI)),
                                    m = i && s.animateScale ? 0 : n.innerRadius,
                                    v = i && s.animateScale ? 0 : n.outerRadius,
                                    g = o.valueAtIndexOrDefault;
                                o.extend(t, {
                                    _datasetIndex: n.index,
                                    _index: e,
                                    _model: {
                                        x: c + l.offsetX,
                                        y: u + l.offsetY,
                                        startAngle: h,
                                        endAngle: d,
                                        circumference: f,
                                        outerRadius: v,
                                        innerRadius: m,
                                        label: g(p.label, e, l.data.labels[e])
                                    }
                                });
                                var y = t._model,
                                    b = t.custom || {},
                                    x = o.valueAtIndexOrDefault,
                                    w = this.chart.options.elements.arc;
                                y.backgroundColor = b.backgroundColor ? b.backgroundColor : x(p.backgroundColor, e, w.backgroundColor), y.borderColor = b.borderColor ? b.borderColor : x(p.borderColor, e, w.borderColor), y.borderWidth = b.borderWidth ? b.borderWidth : x(p.borderWidth, e, w.borderWidth), i && s.animateRotate || (y.startAngle = 0 === e ? r.rotation : n.getMeta().data[e - 1]._model.endAngle, y.endAngle = y.startAngle + y.circumference), t.pivot()
                            },
                            calculateTotal: function() {
                                var t, e = this.getDataset(),
                                    i = this.getMeta(),
                                    n = 0;
                                return o.each(i.data, (function(i, l) {
                                    t = e.data[l], isNaN(t) || i.hidden || (n += Math.abs(t))
                                })), n
                            },
                            calculateCircumference: function(t) {
                                var e = this.getMeta().total;
                                return e > 0 && !isNaN(t) ? 2 * Math.PI * (Math.abs(t) / e) : 0
                            },
                            getMaxBorderWidth: function(t) {
                                for (var e, i, n = 0, l = this.index, o = t.length, a = 0; a < o; a++) e = t[a]._model ? t[a]._model.borderWidth : 0, n = (i = t[a]._chart ? t[a]._chart.config.data.datasets[l].hoverBorderWidth : 0) > (n = e > n ? e : n) ? i : n;
                                return n
                            }
                        })
                    }
                }, {
                    26: 26,
                    41: 41,
                    46: 46
                }],
                18: [function(t, e, i) {
                    var n = t(26),
                        o = t(41),
                        a = t(46);
                    n._set("line", {
                        showLines: !0,
                        spanGaps: !1,
                        hover: {
                            mode: "label"
                        },
                        scales: {
                            xAxes: [{
                                type: "category",
                                id: "x-axis-0"
                            }],
                            yAxes: [{
                                type: "linear",
                                id: "y-axis-0"
                            }]
                        }
                    }), e.exports = function(t) {
                        function e(t, e) {
                            return a.valueOrDefault(t.showLine, e.showLines)
                        }
                        t.controllers.line = t.DatasetController.extend({
                            datasetElementType: o.Line,
                            dataElementType: o.Point,
                            update: function(t) {
                                var i, n, l, o = this,
                                    r = o.getMeta(),
                                    s = r.dataset,
                                    c = r.data || [],
                                    u = o.chart.options,
                                    h = u.elements.line,
                                    d = o.getScaleForId(r.yAxisID),
                                    p = o.getDataset(),
                                    f = e(p, u);
                                for (f && (l = s.custom || {}, void 0 !== p.tension && void 0 === p.lineTension && (p.lineTension = p.tension), s._scale = d, s._datasetIndex = o.index, s._children = c, s._model = {
                                        spanGaps: p.spanGaps ? p.spanGaps : u.spanGaps,
                                        tension: l.tension ? l.tension : a.valueOrDefault(p.lineTension, h.tension),
                                        backgroundColor: l.backgroundColor ? l.backgroundColor : p.backgroundColor || h.backgroundColor,
                                        borderWidth: l.borderWidth ? l.borderWidth : p.borderWidth || h.borderWidth,
                                        borderColor: l.borderColor ? l.borderColor : p.borderColor || h.borderColor,
                                        borderCapStyle: l.borderCapStyle ? l.borderCapStyle : p.borderCapStyle || h.borderCapStyle,
                                        borderDash: l.borderDash ? l.borderDash : p.borderDash || h.borderDash,
                                        borderDashOffset: l.borderDashOffset ? l.borderDashOffset : p.borderDashOffset || h.borderDashOffset,
                                        borderJoinStyle: l.borderJoinStyle ? l.borderJoinStyle : p.borderJoinStyle || h.borderJoinStyle,
                                        fill: l.fill ? l.fill : void 0 !== p.fill ? p.fill : h.fill,
                                        steppedLine: l.steppedLine ? l.steppedLine : a.valueOrDefault(p.steppedLine, h.stepped),
                                        cubicInterpolationMode: l.cubicInterpolationMode ? l.cubicInterpolationMode : a.valueOrDefault(p.cubicInterpolationMode, h.cubicInterpolationMode)
                                    }, s.pivot()), i = 0, n = c.length; i < n; ++i) o.updateElement(c[i], i, t);
                                for (f && 0 !== s._model.tension && o.updateBezierControlPoints(), i = 0, n = c.length; i < n; ++i) c[i].pivot()
                            },
                            getPointBackgroundColor: function(t, e) {
                                var i = this.chart.options.elements.point.backgroundColor,
                                    n = this.getDataset(),
                                    l = t.custom || {};
                                return l.backgroundColor ? i = l.backgroundColor : n.pointBackgroundColor ? i = a.valueAtIndexOrDefault(n.pointBackgroundColor, e, i) : n.backgroundColor && (i = n.backgroundColor), i
                            },
                            getPointBorderColor: function(t, e) {
                                var i = this.chart.options.elements.point.borderColor,
                                    n = this.getDataset(),
                                    l = t.custom || {};
                                return l.borderColor ? i = l.borderColor : n.pointBorderColor ? i = a.valueAtIndexOrDefault(n.pointBorderColor, e, i) : n.borderColor && (i = n.borderColor), i
                            },
                            getPointBorderWidth: function(t, e) {
                                var i = this.chart.options.elements.point.borderWidth,
                                    n = this.getDataset(),
                                    l = t.custom || {};
                                return isNaN(l.borderWidth) ? !isNaN(n.pointBorderWidth) || a.isArray(n.pointBorderWidth) ? i = a.valueAtIndexOrDefault(n.pointBorderWidth, e, i) : isNaN(n.borderWidth) || (i = n.borderWidth) : i = l.borderWidth, i
                            },
                            getPointRotation: function(t, e) {
                                var i = this.chart.options.elements.point.rotation,
                                    n = this.getDataset(),
                                    l = t.custom || {};
                                return isNaN(l.rotation) ? isNaN(n.pointRotation) && !a.isArray(n.pointRotation) || (i = a.valueAtIndexOrDefault(n.pointRotation, e, i)) : i = l.rotation, i
                            },
                            updateElement: function(t, e, i) {
                                var n, o, r = this,
                                    s = r.getMeta(),
                                    c = t.custom || {},
                                    u = r.getDataset(),
                                    h = r.index,
                                    d = u.data[e],
                                    p = r.getScaleForId(s.yAxisID),
                                    f = r.getScaleForId(s.xAxisID),
                                    m = r.chart.options.elements.point;
                                void 0 !== u.radius && void 0 === u.pointRadius && (u.pointRadius = u.radius), void 0 !== u.hitRadius && void 0 === u.pointHitRadius && (u.pointHitRadius = u.hitRadius), n = f.getPixelForValue("object" === l(d) ? d : NaN, e, h), o = i ? p.getBasePixel() : r.calculatePointY(d, e, h), t._xScale = f, t._yScale = p, t._datasetIndex = h, t._index = e, t._model = {
                                    x: n,
                                    y: o,
                                    skip: c.skip || isNaN(n) || isNaN(o),
                                    radius: c.radius || a.valueAtIndexOrDefault(u.pointRadius, e, m.radius),
                                    pointStyle: c.pointStyle || a.valueAtIndexOrDefault(u.pointStyle, e, m.pointStyle),
                                    rotation: r.getPointRotation(t, e),
                                    backgroundColor: r.getPointBackgroundColor(t, e),
                                    borderColor: r.getPointBorderColor(t, e),
                                    borderWidth: r.getPointBorderWidth(t, e),
                                    tension: s.dataset._model ? s.dataset._model.tension : 0,
                                    steppedLine: !!s.dataset._model && s.dataset._model.steppedLine,
                                    hitRadius: c.hitRadius || a.valueAtIndexOrDefault(u.pointHitRadius, e, m.hitRadius)
                                }
                            },
                            calculatePointY: function(t, e, i) {
                                var n, l, o, a = this.chart,
                                    r = this.getMeta(),
                                    s = this.getScaleForId(r.yAxisID),
                                    c = 0,
                                    u = 0;
                                if (s.options.stacked) {
                                    for (n = 0; n < i; n++)
                                        if (l = a.data.datasets[n], "line" === (o = a.getDatasetMeta(n)).type && o.yAxisID === s.id && a.isDatasetVisible(n)) {
                                            var h = Number(s.getRightValue(l.data[e]));
                                            h < 0 ? u += h || 0 : c += h || 0
                                        } var d = Number(s.getRightValue(t));
                                    return d < 0 ? s.getPixelForValue(u + d) : s.getPixelForValue(c + d)
                                }
                                return s.getPixelForValue(t)
                            },
                            updateBezierControlPoints: function() {
                                var t, e, i, n, l = this.getMeta(),
                                    o = this.chart.chartArea,
                                    r = l.data || [];

                                function s(t, e, i) {
                                    return Math.max(Math.min(t, i), e)
                                }
                                if (l.dataset._model.spanGaps && (r = r.filter((function(t) {
                                        return !t._model.skip
                                    }))), "monotone" === l.dataset._model.cubicInterpolationMode) a.splineCurveMonotone(r);
                                else
                                    for (t = 0, e = r.length; t < e; ++t) i = r[t]._model, n = a.splineCurve(a.previousItem(r, t)._model, i, a.nextItem(r, t)._model, l.dataset._model.tension), i.controlPointPreviousX = n.previous.x, i.controlPointPreviousY = n.previous.y, i.controlPointNextX = n.next.x, i.controlPointNextY = n.next.y;
                                if (this.chart.options.elements.line.capBezierPoints)
                                    for (t = 0, e = r.length; t < e; ++t)(i = r[t]._model).controlPointPreviousX = s(i.controlPointPreviousX, o.left, o.right), i.controlPointPreviousY = s(i.controlPointPreviousY, o.top, o.bottom), i.controlPointNextX = s(i.controlPointNextX, o.left, o.right), i.controlPointNextY = s(i.controlPointNextY, o.top, o.bottom)
                            },
                            draw: function() {
                                var t, i = this.chart,
                                    n = this.getMeta(),
                                    l = n.data || [],
                                    o = i.chartArea,
                                    r = l.length,
                                    s = 0;
                                for (e(this.getDataset(), i.options) && (t = (n.dataset._model.borderWidth || 0) / 2, a.canvas.clipArea(i.ctx, {
                                        left: o.left,
                                        right: o.right,
                                        top: o.top - t,
                                        bottom: o.bottom + t
                                    }), n.dataset.draw(), a.canvas.unclipArea(i.ctx)); s < r; ++s) l[s].draw(o)
                            },
                            setHoverStyle: function(t) {
                                var e = this.chart.data.datasets[t._datasetIndex],
                                    i = t._index,
                                    n = t.custom || {},
                                    l = t._model;
                                t.$previousStyle = {
                                    backgroundColor: l.backgroundColor,
                                    borderColor: l.borderColor,
                                    borderWidth: l.borderWidth,
                                    radius: l.radius
                                }, l.backgroundColor = n.hoverBackgroundColor || a.valueAtIndexOrDefault(e.pointHoverBackgroundColor, i, a.getHoverColor(l.backgroundColor)), l.borderColor = n.hoverBorderColor || a.valueAtIndexOrDefault(e.pointHoverBorderColor, i, a.getHoverColor(l.borderColor)), l.borderWidth = n.hoverBorderWidth || a.valueAtIndexOrDefault(e.pointHoverBorderWidth, i, l.borderWidth), l.radius = n.hoverRadius || a.valueAtIndexOrDefault(e.pointHoverRadius, i, this.chart.options.elements.point.hoverRadius)
                            }
                        })
                    }
                }, {
                    26: 26,
                    41: 41,
                    46: 46
                }],
                19: [function(t, e, i) {
                    var n = t(26),
                        l = t(41),
                        o = t(46);
                    n._set("polarArea", {
                        scale: {
                            type: "radialLinear",
                            angleLines: {
                                display: !1
                            },
                            gridLines: {
                                circular: !0
                            },
                            pointLabels: {
                                display: !1
                            },
                            ticks: {
                                beginAtZero: !0
                            }
                        },
                        animation: {
                            animateRotate: !0,
                            animateScale: !0
                        },
                        startAngle: -.5 * Math.PI,
                        legendCallback: function(t) {
                            var e = [];
                            e.push('<ul class="' + t.id + '-legend">');
                            var i = t.data,
                                n = i.datasets,
                                l = i.labels;
                            if (n.length)
                                for (var o = 0; o < n[0].data.length; ++o) e.push('<li><span style="background-color:' + n[0].backgroundColor[o] + '"></span>'), l[o] && e.push(l[o]), e.push("</li>");
                            return e.push("</ul>"), e.join("")
                        },
                        legend: {
                            labels: {
                                generateLabels: function(t) {
                                    var e = t.data;
                                    return e.labels.length && e.datasets.length ? e.labels.map((function(i, n) {
                                        var l = t.getDatasetMeta(0),
                                            a = e.datasets[0],
                                            r = l.data[n].custom || {},
                                            s = o.valueAtIndexOrDefault,
                                            c = t.options.elements.arc;
                                        return {
                                            text: i,
                                            fillStyle: r.backgroundColor ? r.backgroundColor : s(a.backgroundColor, n, c.backgroundColor),
                                            strokeStyle: r.borderColor ? r.borderColor : s(a.borderColor, n, c.borderColor),
                                            lineWidth: r.borderWidth ? r.borderWidth : s(a.borderWidth, n, c.borderWidth),
                                            hidden: isNaN(a.data[n]) || l.data[n].hidden,
                                            index: n
                                        }
                                    })) : []
                                }
                            },
                            onClick: function(t, e) {
                                var i, n, l, o = e.index,
                                    a = this.chart;
                                for (i = 0, n = (a.data.datasets || []).length; i < n; ++i)(l = a.getDatasetMeta(i)).data[o].hidden = !l.data[o].hidden;
                                a.update()
                            }
                        },
                        tooltips: {
                            callbacks: {
                                title: function() {
                                    return ""
                                },
                                label: function(t, e) {
                                    return e.labels[t.index] + ": " + t.yLabel
                                }
                            }
                        }
                    }), e.exports = function(t) {
                        t.controllers.polarArea = t.DatasetController.extend({
                            dataElementType: l.Arc,
                            linkScales: o.noop,
                            update: function(t) {
                                var e, i, n, l = this,
                                    a = l.getDataset(),
                                    r = l.getMeta(),
                                    s = l.chart.options.startAngle || 0,
                                    c = l._starts = [],
                                    u = l._angles = [];
                                for (l._updateRadius(), r.count = l.countVisibleElements(), e = 0, i = a.data.length; e < i; e++) c[e] = s, n = l._computeAngle(e), u[e] = n, s += n;
                                o.each(r.data, (function(e, i) {
                                    l.updateElement(e, i, t)
                                }))
                            },
                            _updateRadius: function() {
                                var t = this,
                                    e = t.chart,
                                    i = e.chartArea,
                                    n = e.options,
                                    l = n.elements.arc,
                                    o = Math.min(i.right - i.left, i.bottom - i.top);
                                e.outerRadius = Math.max((o - l.borderWidth / 2) / 2, 0), e.innerRadius = Math.max(n.cutoutPercentage ? e.outerRadius / 100 * n.cutoutPercentage : 1, 0), e.radiusLength = (e.outerRadius - e.innerRadius) / e.getVisibleDatasetCount(), t.outerRadius = e.outerRadius - e.radiusLength * t.index, t.innerRadius = t.outerRadius - e.radiusLength
                            },
                            updateElement: function(t, e, i) {
                                var n = this,
                                    l = n.chart,
                                    a = n.getDataset(),
                                    r = l.options,
                                    s = r.animation,
                                    c = l.scale,
                                    u = l.data.labels,
                                    h = c.xCenter,
                                    d = c.yCenter,
                                    p = r.startAngle,
                                    f = t.hidden ? 0 : c.getDistanceFromCenterForValue(a.data[e]),
                                    m = n._starts[e],
                                    v = m + (t.hidden ? 0 : n._angles[e]),
                                    g = s.animateScale ? 0 : c.getDistanceFromCenterForValue(a.data[e]);
                                o.extend(t, {
                                    _datasetIndex: n.index,
                                    _index: e,
                                    _scale: c,
                                    _model: {
                                        x: h,
                                        y: d,
                                        innerRadius: 0,
                                        outerRadius: i ? g : f,
                                        startAngle: i && s.animateRotate ? p : m,
                                        endAngle: i && s.animateRotate ? p : v,
                                        label: o.valueAtIndexOrDefault(u, e, u[e])
                                    }
                                });
                                var y = this.chart.options.elements.arc,
                                    b = t.custom || {},
                                    x = o.valueAtIndexOrDefault,
                                    w = t._model;
                                w.backgroundColor = b.backgroundColor ? b.backgroundColor : x(a.backgroundColor, e, y.backgroundColor), w.borderColor = b.borderColor ? b.borderColor : x(a.borderColor, e, y.borderColor), w.borderWidth = b.borderWidth ? b.borderWidth : x(a.borderWidth, e, y.borderWidth), t.pivot()
                            },
                            countVisibleElements: function() {
                                var t = this.getDataset(),
                                    e = this.getMeta(),
                                    i = 0;
                                return o.each(e.data, (function(e, n) {
                                    isNaN(t.data[n]) || e.hidden || i++
                                })), i
                            },
                            _computeAngle: function(t) {
                                var e = this,
                                    i = this.getMeta().count,
                                    n = e.getDataset(),
                                    l = e.getMeta();
                                if (isNaN(n.data[t]) || l.data[t].hidden) return 0;
                                var a = {
                                    chart: e.chart,
                                    dataIndex: t,
                                    dataset: n,
                                    datasetIndex: e.index
                                };
                                return o.options.resolve([e.chart.options.elements.arc.angle, 2 * Math.PI / i], a, t)
                            }
                        })
                    }
                }, {
                    26: 26,
                    41: 41,
                    46: 46
                }],
                20: [function(t, e, i) {
                    var n = t(26),
                        l = t(41),
                        o = t(46);
                    n._set("radar", {
                        scale: {
                            type: "radialLinear"
                        },
                        elements: {
                            line: {
                                tension: 0
                            }
                        }
                    }), e.exports = function(t) {
                        t.controllers.radar = t.DatasetController.extend({
                            datasetElementType: l.Line,
                            dataElementType: l.Point,
                            linkScales: o.noop,
                            update: function(t) {
                                var e = this,
                                    i = e.getMeta(),
                                    n = i.dataset,
                                    l = i.data,
                                    a = n.custom || {},
                                    r = e.getDataset(),
                                    s = e.chart.options.elements.line,
                                    c = e.chart.scale;
                                void 0 !== r.tension && void 0 === r.lineTension && (r.lineTension = r.tension), o.extend(i.dataset, {
                                    _datasetIndex: e.index,
                                    _scale: c,
                                    _children: l,
                                    _loop: !0,
                                    _model: {
                                        tension: a.tension ? a.tension : o.valueOrDefault(r.lineTension, s.tension),
                                        backgroundColor: a.backgroundColor ? a.backgroundColor : r.backgroundColor || s.backgroundColor,
                                        borderWidth: a.borderWidth ? a.borderWidth : r.borderWidth || s.borderWidth,
                                        borderColor: a.borderColor ? a.borderColor : r.borderColor || s.borderColor,
                                        fill: a.fill ? a.fill : void 0 !== r.fill ? r.fill : s.fill,
                                        borderCapStyle: a.borderCapStyle ? a.borderCapStyle : r.borderCapStyle || s.borderCapStyle,
                                        borderDash: a.borderDash ? a.borderDash : r.borderDash || s.borderDash,
                                        borderDashOffset: a.borderDashOffset ? a.borderDashOffset : r.borderDashOffset || s.borderDashOffset,
                                        borderJoinStyle: a.borderJoinStyle ? a.borderJoinStyle : r.borderJoinStyle || s.borderJoinStyle
                                    }
                                }), i.dataset.pivot(), o.each(l, (function(i, n) {
                                    e.updateElement(i, n, t)
                                }), e), e.updateBezierControlPoints()
                            },
                            updateElement: function(t, e, i) {
                                var n = this,
                                    l = t.custom || {},
                                    a = n.getDataset(),
                                    r = n.chart.scale,
                                    s = n.chart.options.elements.point,
                                    c = r.getPointPositionForValue(e, a.data[e]);
                                void 0 !== a.radius && void 0 === a.pointRadius && (a.pointRadius = a.radius), void 0 !== a.hitRadius && void 0 === a.pointHitRadius && (a.pointHitRadius = a.hitRadius), o.extend(t, {
                                    _datasetIndex: n.index,
                                    _index: e,
                                    _scale: r,
                                    _model: {
                                        x: i ? r.xCenter : c.x,
                                        y: i ? r.yCenter : c.y,
                                        tension: l.tension ? l.tension : o.valueOrDefault(a.lineTension, n.chart.options.elements.line.tension),
                                        radius: l.radius ? l.radius : o.valueAtIndexOrDefault(a.pointRadius, e, s.radius),
                                        backgroundColor: l.backgroundColor ? l.backgroundColor : o.valueAtIndexOrDefault(a.pointBackgroundColor, e, s.backgroundColor),
                                        borderColor: l.borderColor ? l.borderColor : o.valueAtIndexOrDefault(a.pointBorderColor, e, s.borderColor),
                                        borderWidth: l.borderWidth ? l.borderWidth : o.valueAtIndexOrDefault(a.pointBorderWidth, e, s.borderWidth),
                                        pointStyle: l.pointStyle ? l.pointStyle : o.valueAtIndexOrDefault(a.pointStyle, e, s.pointStyle),
                                        rotation: l.rotation ? l.rotation : o.valueAtIndexOrDefault(a.pointRotation, e, s.rotation),
                                        hitRadius: l.hitRadius ? l.hitRadius : o.valueAtIndexOrDefault(a.pointHitRadius, e, s.hitRadius)
                                    }
                                }), t._model.skip = l.skip ? l.skip : isNaN(t._model.x) || isNaN(t._model.y)
                            },
                            updateBezierControlPoints: function() {
                                var t = this.chart.chartArea,
                                    e = this.getMeta();
                                o.each(e.data, (function(i, n) {
                                    var l = i._model,
                                        a = o.splineCurve(o.previousItem(e.data, n, !0)._model, l, o.nextItem(e.data, n, !0)._model, l.tension);
                                    l.controlPointPreviousX = Math.max(Math.min(a.previous.x, t.right), t.left), l.controlPointPreviousY = Math.max(Math.min(a.previous.y, t.bottom), t.top), l.controlPointNextX = Math.max(Math.min(a.next.x, t.right), t.left), l.controlPointNextY = Math.max(Math.min(a.next.y, t.bottom), t.top), i.pivot()
                                }))
                            },
                            setHoverStyle: function(t) {
                                var e = this.chart.data.datasets[t._datasetIndex],
                                    i = t.custom || {},
                                    n = t._index,
                                    l = t._model;
                                t.$previousStyle = {
                                    backgroundColor: l.backgroundColor,
                                    borderColor: l.borderColor,
                                    borderWidth: l.borderWidth,
                                    radius: l.radius
                                }, l.radius = i.hoverRadius ? i.hoverRadius : o.valueAtIndexOrDefault(e.pointHoverRadius, n, this.chart.options.elements.point.hoverRadius), l.backgroundColor = i.hoverBackgroundColor ? i.hoverBackgroundColor : o.valueAtIndexOrDefault(e.pointHoverBackgroundColor, n, o.getHoverColor(l.backgroundColor)), l.borderColor = i.hoverBorderColor ? i.hoverBorderColor : o.valueAtIndexOrDefault(e.pointHoverBorderColor, n, o.getHoverColor(l.borderColor)), l.borderWidth = i.hoverBorderWidth ? i.hoverBorderWidth : o.valueAtIndexOrDefault(e.pointHoverBorderWidth, n, l.borderWidth)
                            }
                        })
                    }
                }, {
                    26: 26,
                    41: 41,
                    46: 46
                }],
                21: [function(t, e, i) {
                    t(26)._set("scatter", {
                        hover: {
                            mode: "single"
                        },
                        scales: {
                            xAxes: [{
                                id: "x-axis-1",
                                type: "linear",
                                position: "bottom"
                            }],
                            yAxes: [{
                                id: "y-axis-1",
                                type: "linear",
                                position: "left"
                            }]
                        },
                        showLines: !1,
                        tooltips: {
                            callbacks: {
                                title: function() {
                                    return ""
                                },
                                label: function(t) {
                                    return "(" + t.xLabel + ", " + t.yLabel + ")"
                                }
                            }
                        }
                    }), e.exports = function(t) {
                        t.controllers.scatter = t.controllers.line
                    }
                }, {
                    26: 26
                }],
                22: [function(t, e, i) {
                    var n = t(27);
                    i = e.exports = n.extend({
                        chart: null,
                        currentStep: 0,
                        numSteps: 60,
                        easing: "",
                        render: null,
                        onAnimationProgress: null,
                        onAnimationComplete: null
                    });
                    Object.defineProperty(i.prototype, "animationObject", {
                        get: function() {
                            return this
                        }
                    }), Object.defineProperty(i.prototype, "chartInstance", {
                        get: function() {
                            return this.chart
                        },
                        set: function(t) {
                            this.chart = t
                        }
                    })
                }, {
                    27: 27
                }],
                23: [function(t, e, i) {
                    var n = t(26),
                        l = t(46);
                    n._set("global", {
                        animation: {
                            duration: 1e3,
                            easing: "easeOutQuart",
                            onProgress: l.noop,
                            onComplete: l.noop
                        }
                    }), e.exports = {
                        frameDuration: 17,
                        animations: [],
                        dropFrames: 0,
                        request: null,
                        addAnimation: function(t, e, i, n) {
                            var l, o, a = this.animations;
                            for (e.chart = t, n || (t.animating = !0), l = 0, o = a.length; l < o; ++l)
                                if (a[l].chart === t) return void(a[l] = e);
                            a.push(e), 1 === a.length && this.requestAnimationFrame()
                        },
                        cancelAnimation: function(t) {
                            var e = l.findIndex(this.animations, (function(e) {
                                return e.chart === t
                            })); - 1 !== e && (this.animations.splice(e, 1), t.animating = !1)
                        },
                        requestAnimationFrame: function() {
                            var t = this;
                            null === t.request && (t.request = l.requestAnimFrame.call(window, (function() {
                                t.request = null, t.startDigest()
                            })))
                        },
                        startDigest: function() {
                            var t = this,
                                e = Date.now(),
                                i = 0;
                            t.dropFrames > 1 && (i = Math.floor(t.dropFrames), t.dropFrames = t.dropFrames % 1), t.advance(1 + i);
                            var n = Date.now();
                            t.dropFrames += (n - e) / t.frameDuration, t.animations.length > 0 && t.requestAnimationFrame()
                        },
                        advance: function(t) {
                            for (var e, i, n = this.animations, o = 0; o < n.length;) i = (e = n[o]).chart, e.currentStep = (e.currentStep || 0) + t, e.currentStep = Math.min(e.currentStep, e.numSteps), l.callback(e.render, [i, e], i), l.callback(e.onAnimationProgress, [e], i), e.currentStep >= e.numSteps ? (l.callback(e.onAnimationComplete, [e], i), i.animating = !1, n.splice(o, 1)) : ++o
                        }
                    }
                }, {
                    26: 26,
                    46: 46
                }],
                24: [function(t, e, i) {
                    var n = t(22),
                        o = t(23),
                        a = t(26),
                        r = t(46),
                        s = t(29),
                        c = t(31),
                        u = t(49),
                        h = t(32),
                        d = t(34),
                        p = t(36);
                    e.exports = function(t) {
                        function e(e) {
                            var i = e.options;
                            r.each(e.scales, (function(t) {
                                c.removeBox(e, t)
                            })), i = r.configMerge(t.defaults.global, t.defaults[e.config.type], i), e.options = e.config.options = i, e.ensureScalesHaveIDs(), e.buildOrUpdateScales(), e.tooltip._options = i.tooltips, e.tooltip.initialize()
                        }

                        function i(t) {
                            return "top" === t || "bottom" === t
                        }
                        t.types = {}, t.instances = {}, t.controllers = {}, r.extend(t.prototype, {
                            construct: function(e, i) {
                                var n = this;
                                i = function(t) {
                                    var e = (t = t || {}).data = t.data || {};
                                    return e.datasets = e.datasets || [], e.labels = e.labels || [], t.options = r.configMerge(a.global, a[t.type], t.options || {}), t
                                }(i);
                                var l = u.acquireContext(e, i),
                                    o = l && l.canvas,
                                    s = o && o.height,
                                    c = o && o.width;
                                n.id = r.uid(), n.ctx = l, n.canvas = o, n.config = i, n.width = c, n.height = s, n.aspectRatio = s ? c / s : null, n.options = i.options, n._bufferedRender = !1, n.chart = n, n.controller = n, t.instances[n.id] = n, Object.defineProperty(n, "data", {
                                    get: function() {
                                        return n.config.data
                                    },
                                    set: function(t) {
                                        n.config.data = t
                                    }
                                }), l && o ? (n.initialize(), n.update()) : console.error("Failed to create chart: can't acquire context from the given item")
                            },
                            initialize: function() {
                                var t = this;
                                return h.notify(t, "beforeInit"), r.retinaScale(t, t.options.devicePixelRatio), t.bindEvents(), t.options.responsive && t.resize(!0), t.ensureScalesHaveIDs(), t.buildOrUpdateScales(), t.initToolTip(), h.notify(t, "afterInit"), t
                            },
                            clear: function() {
                                return r.canvas.clear(this), this
                            },
                            stop: function() {
                                return o.cancelAnimation(this), this
                            },
                            resize: function(t) {
                                var e = this,
                                    i = e.options,
                                    n = e.canvas,
                                    l = i.maintainAspectRatio && e.aspectRatio || null,
                                    o = Math.max(0, Math.floor(r.getMaximumWidth(n))),
                                    a = Math.max(0, Math.floor(l ? o / l : r.getMaximumHeight(n)));
                                if ((e.width !== o || e.height !== a) && (n.width = e.width = o, n.height = e.height = a, n.style.width = o + "px", n.style.height = a + "px", r.retinaScale(e, i.devicePixelRatio), !t)) {
                                    var s = {
                                        width: o,
                                        height: a
                                    };
                                    h.notify(e, "resize", [s]), e.options.onResize && e.options.onResize(e, s), e.stop(), e.update({
                                        duration: e.options.responsiveAnimationDuration
                                    })
                                }
                            },
                            ensureScalesHaveIDs: function() {
                                var t = this.options,
                                    e = t.scales || {},
                                    i = t.scale;
                                r.each(e.xAxes, (function(t, e) {
                                    t.id = t.id || "x-axis-" + e
                                })), r.each(e.yAxes, (function(t, e) {
                                    t.id = t.id || "y-axis-" + e
                                })), i && (i.id = i.id || "scale")
                            },
                            buildOrUpdateScales: function() {
                                var t = this,
                                    e = t.options,
                                    n = t.scales || {},
                                    l = [],
                                    o = Object.keys(n).reduce((function(t, e) {
                                        return t[e] = !1, t
                                    }), {});
                                e.scales && (l = l.concat((e.scales.xAxes || []).map((function(t) {
                                    return {
                                        options: t,
                                        dtype: "category",
                                        dposition: "bottom"
                                    }
                                })), (e.scales.yAxes || []).map((function(t) {
                                    return {
                                        options: t,
                                        dtype: "linear",
                                        dposition: "left"
                                    }
                                })))), e.scale && l.push({
                                    options: e.scale,
                                    dtype: "radialLinear",
                                    isDefault: !0,
                                    dposition: "chartArea"
                                }), r.each(l, (function(e) {
                                    var l = e.options,
                                        a = l.id,
                                        s = r.valueOrDefault(l.type, e.dtype);
                                    i(l.position) !== i(e.dposition) && (l.position = e.dposition), o[a] = !0;
                                    var c = null;
                                    if (a in n && n[a].type === s)(c = n[a]).options = l, c.ctx = t.ctx, c.chart = t;
                                    else {
                                        var u = d.getScaleConstructor(s);
                                        if (!u) return;
                                        c = new u({
                                            id: a,
                                            type: s,
                                            options: l,
                                            ctx: t.ctx,
                                            chart: t
                                        }), n[c.id] = c
                                    }
                                    c.mergeTicksOptions(), e.isDefault && (t.scale = c)
                                })), r.each(o, (function(t, e) {
                                    t || delete n[e]
                                })), t.scales = n, d.addScalesToLayout(this)
                            },
                            buildOrUpdateControllers: function() {
                                var e = this,
                                    i = [],
                                    n = [];
                                return r.each(e.data.datasets, (function(l, o) {
                                    var a = e.getDatasetMeta(o),
                                        r = l.type || e.config.type;
                                    if (a.type && a.type !== r && (e.destroyDatasetMeta(o), a = e.getDatasetMeta(o)), a.type = r, i.push(a.type), a.controller) a.controller.updateIndex(o), a.controller.linkScales();
                                    else {
                                        var s = t.controllers[a.type];
                                        if (void 0 === s) throw new Error('"' + a.type + '" is not a chart type.');
                                        a.controller = new s(e, o), n.push(a.controller)
                                    }
                                }), e), n
                            },
                            resetElements: function() {
                                var t = this;
                                r.each(t.data.datasets, (function(e, i) {
                                    t.getDatasetMeta(i).controller.reset()
                                }), t)
                            },
                            reset: function() {
                                this.resetElements(), this.tooltip.initialize()
                            },
                            update: function(t) {
                                var i = this;
                                if (t && "object" === l(t) || (t = {
                                        duration: t,
                                        lazy: arguments[1]
                                    }), e(i), h._invalidate(i), !1 !== h.notify(i, "beforeUpdate")) {
                                    i.tooltip._data = i.data;
                                    var n = i.buildOrUpdateControllers();
                                    r.each(i.data.datasets, (function(t, e) {
                                        i.getDatasetMeta(e).controller.buildOrUpdateElements()
                                    }), i), i.updateLayout(), i.options.animation && i.options.animation.duration && r.each(n, (function(t) {
                                        t.reset()
                                    })), i.updateDatasets(), i.tooltip.initialize(), i.lastActive = [], h.notify(i, "afterUpdate"), i._bufferedRender ? i._bufferedRequest = {
                                        duration: t.duration,
                                        easing: t.easing,
                                        lazy: t.lazy
                                    } : i.render(t)
                                }
                            },
                            updateLayout: function() {
                                !1 !== h.notify(this, "beforeLayout") && (c.update(this, this.width, this.height), h.notify(this, "afterScaleUpdate"), h.notify(this, "afterLayout"))
                            },
                            updateDatasets: function() {
                                if (!1 !== h.notify(this, "beforeDatasetsUpdate")) {
                                    for (var t = 0, e = this.data.datasets.length; t < e; ++t) this.updateDataset(t);
                                    h.notify(this, "afterDatasetsUpdate")
                                }
                            },
                            updateDataset: function(t) {
                                var e = this.getDatasetMeta(t),
                                    i = {
                                        meta: e,
                                        index: t
                                    };
                                !1 !== h.notify(this, "beforeDatasetUpdate", [i]) && (e.controller.update(), h.notify(this, "afterDatasetUpdate", [i]))
                            },
                            render: function(t) {
                                var e = this;
                                t && "object" === l(t) || (t = {
                                    duration: t,
                                    lazy: arguments[1]
                                });
                                var i = t.duration,
                                    a = t.lazy;
                                if (!1 !== h.notify(e, "beforeRender")) {
                                    var s = e.options.animation,
                                        c = function(t) {
                                            h.notify(e, "afterRender"), r.callback(s && s.onComplete, [t], e)
                                        };
                                    if (s && (void 0 !== i && 0 !== i || void 0 === i && 0 !== s.duration)) {
                                        var u = new n({
                                            numSteps: (i || s.duration) / 16.66,
                                            easing: t.easing || s.easing,
                                            render: function(t, e) {
                                                var i = r.easing.effects[e.easing],
                                                    n = e.currentStep,
                                                    l = n / e.numSteps;
                                                t.draw(i(l), l, n)
                                            },
                                            onAnimationProgress: s.onProgress,
                                            onAnimationComplete: c
                                        });
                                        o.addAnimation(e, u, i, a)
                                    } else e.draw(), c(new n({
                                        numSteps: 0,
                                        chart: e
                                    }));
                                    return e
                                }
                            },
                            draw: function(t) {
                                var e = this;
                                e.clear(), r.isNullOrUndef(t) && (t = 1), e.transition(t), e.width <= 0 || e.height <= 0 || !1 !== h.notify(e, "beforeDraw", [t]) && (r.each(e.boxes, (function(t) {
                                    t.draw(e.chartArea)
                                }), e), e.scale && e.scale.draw(), e.drawDatasets(t), e._drawTooltip(t), h.notify(e, "afterDraw", [t]))
                            },
                            transition: function(t) {
                                for (var e = 0, i = (this.data.datasets || []).length; e < i; ++e) this.isDatasetVisible(e) && this.getDatasetMeta(e).controller.transition(t);
                                this.tooltip.transition(t)
                            },
                            drawDatasets: function(t) {
                                var e = this;
                                if (!1 !== h.notify(e, "beforeDatasetsDraw", [t])) {
                                    for (var i = (e.data.datasets || []).length - 1; i >= 0; --i) e.isDatasetVisible(i) && e.drawDataset(i, t);
                                    h.notify(e, "afterDatasetsDraw", [t])
                                }
                            },
                            drawDataset: function(t, e) {
                                var i = this.getDatasetMeta(t),
                                    n = {
                                        meta: i,
                                        index: t,
                                        easingValue: e
                                    };
                                !1 !== h.notify(this, "beforeDatasetDraw", [n]) && (i.controller.draw(e), h.notify(this, "afterDatasetDraw", [n]))
                            },
                            _drawTooltip: function(t) {
                                var e = this.tooltip,
                                    i = {
                                        tooltip: e,
                                        easingValue: t
                                    };
                                !1 !== h.notify(this, "beforeTooltipDraw", [i]) && (e.draw(), h.notify(this, "afterTooltipDraw", [i]))
                            },
                            getElementAtEvent: function(t) {
                                return s.modes.single(this, t)
                            },
                            getElementsAtEvent: function(t) {
                                return s.modes.label(this, t, {
                                    intersect: !0
                                })
                            },
                            getElementsAtXAxis: function(t) {
                                return s.modes["x-axis"](this, t, {
                                    intersect: !0
                                })
                            },
                            getElementsAtEventForMode: function(t, e, i) {
                                var n = s.modes[e];
                                return "function" == typeof n ? n(this, t, i) : []
                            },
                            getDatasetAtEvent: function(t) {
                                return s.modes.dataset(this, t, {
                                    intersect: !0
                                })
                            },
                            getDatasetMeta: function(t) {
                                var e = this.data.datasets[t];
                                e._meta || (e._meta = {});
                                var i = e._meta[this.id];
                                return i || (i = e._meta[this.id] = {
                                    type: null,
                                    data: [],
                                    dataset: null,
                                    controller: null,
                                    hidden: null,
                                    xAxisID: null,
                                    yAxisID: null
                                }), i
                            },
                            getVisibleDatasetCount: function() {
                                for (var t = 0, e = 0, i = this.data.datasets.length; e < i; ++e) this.isDatasetVisible(e) && t++;
                                return t
                            },
                            isDatasetVisible: function(t) {
                                var e = this.getDatasetMeta(t);
                                return "boolean" == typeof e.hidden ? !e.hidden : !this.data.datasets[t].hidden
                            },
                            generateLegend: function() {
                                return this.options.legendCallback(this)
                            },
                            destroyDatasetMeta: function(t) {
                                var e = this.id,
                                    i = this.data.datasets[t],
                                    n = i._meta && i._meta[e];
                                n && (n.controller.destroy(), delete i._meta[e])
                            },
                            destroy: function() {
                                var e, i, n = this,
                                    l = n.canvas;
                                for (n.stop(), e = 0, i = n.data.datasets.length; e < i; ++e) n.destroyDatasetMeta(e);
                                l && (n.unbindEvents(), r.canvas.clear(n), u.releaseContext(n.ctx), n.canvas = null, n.ctx = null), h.notify(n, "destroy"), delete t.instances[n.id]
                            },
                            toBase64Image: function() {
                                return this.canvas.toDataURL.apply(this.canvas, arguments)
                            },
                            initToolTip: function() {
                                var t = this;
                                t.tooltip = new p({
                                    _chart: t,
                                    _chartInstance: t,
                                    _data: t.data,
                                    _options: t.options.tooltips
                                }, t)
                            },
                            bindEvents: function() {
                                var t = this,
                                    e = t._listeners = {},
                                    i = function() {
                                        t.eventHandler.apply(t, arguments)
                                    };
                                r.each(t.options.events, (function(n) {
                                    u.addEventListener(t, n, i), e[n] = i
                                })), t.options.responsive && (i = function() {
                                    t.resize()
                                }, u.addEventListener(t, "resize", i), e.resize = i)
                            },
                            unbindEvents: function() {
                                var t = this,
                                    e = t._listeners;
                                e && (delete t._listeners, r.each(e, (function(e, i) {
                                    u.removeEventListener(t, i, e)
                                })))
                            },
                            updateHoverStyle: function(t, e, i) {
                                var n, l, o, a = i ? "setHoverStyle" : "removeHoverStyle";
                                for (l = 0, o = t.length; l < o; ++l)(n = t[l]) && this.getDatasetMeta(n._datasetIndex).controller[a](n)
                            },
                            eventHandler: function(t) {
                                var e = this,
                                    i = e.tooltip;
                                if (!1 !== h.notify(e, "beforeEvent", [t])) {
                                    e._bufferedRender = !0, e._bufferedRequest = null;
                                    var n = e.handleEvent(t);
                                    i && (n = i._start ? i.handleEvent(t) : n | i.handleEvent(t)), h.notify(e, "afterEvent", [t]);
                                    var l = e._bufferedRequest;
                                    return l ? e.render(l) : n && !e.animating && (e.stop(), e.render({
                                        duration: e.options.hover.animationDuration,
                                        lazy: !0
                                    })), e._bufferedRender = !1, e._bufferedRequest = null, e
                                }
                            },
                            handleEvent: function(t) {
                                var e, i = this,
                                    n = i.options || {},
                                    l = n.hover;
                                return i.lastActive = i.lastActive || [], "mouseout" === t.type ? i.active = [] : i.active = i.getElementsAtEventForMode(t, l.mode, l), r.callback(n.onHover || n.hover.onHover, [t.native, i.active], i), "mouseup" !== t.type && "click" !== t.type || n.onClick && n.onClick.call(i, t.native, i.active), i.lastActive.length && i.updateHoverStyle(i.lastActive, l.mode, !1), i.active.length && l.mode && i.updateHoverStyle(i.active, l.mode, !0), e = !r.arrayEquals(i.active, i.lastActive), i.lastActive = i.active, e
                            }
                        }), t.Controller = t
                    }
                }, {
                    22: 22,
                    23: 23,
                    26: 26,
                    29: 29,
                    31: 31,
                    32: 32,
                    34: 34,
                    36: 36,
                    46: 46,
                    49: 49
                }],
                25: [function(t, e, i) {
                    var n = t(46);
                    e.exports = function(t) {
                        var e = ["push", "pop", "shift", "splice", "unshift"];

                        function i(t, i) {
                            var n = t._chartjs;
                            if (n) {
                                var l = n.listeners,
                                    o = l.indexOf(i); - 1 !== o && l.splice(o, 1), l.length > 0 || (e.forEach((function(e) {
                                    delete t[e]
                                })), delete t._chartjs)
                            }
                        }
                        t.DatasetController = function(t, e) {
                            this.initialize(t, e)
                        }, n.extend(t.DatasetController.prototype, {
                            datasetElementType: null,
                            dataElementType: null,
                            initialize: function(t, e) {
                                this.chart = t, this.index = e, this.linkScales(), this.addElements()
                            },
                            updateIndex: function(t) {
                                this.index = t
                            },
                            linkScales: function() {
                                var t = this,
                                    e = t.getMeta(),
                                    i = t.getDataset();
                                null !== e.xAxisID && e.xAxisID in t.chart.scales || (e.xAxisID = i.xAxisID || t.chart.options.scales.xAxes[0].id), null !== e.yAxisID && e.yAxisID in t.chart.scales || (e.yAxisID = i.yAxisID || t.chart.options.scales.yAxes[0].id)
                            },
                            getDataset: function() {
                                return this.chart.data.datasets[this.index]
                            },
                            getMeta: function() {
                                return this.chart.getDatasetMeta(this.index)
                            },
                            getScaleForId: function(t) {
                                return this.chart.scales[t]
                            },
                            reset: function() {
                                this.update(!0)
                            },
                            destroy: function() {
                                this._data && i(this._data, this)
                            },
                            createMetaDataset: function() {
                                var t = this.datasetElementType;
                                return t && new t({
                                    _chart: this.chart,
                                    _datasetIndex: this.index
                                })
                            },
                            createMetaData: function(t) {
                                var e = this.dataElementType;
                                return e && new e({
                                    _chart: this.chart,
                                    _datasetIndex: this.index,
                                    _index: t
                                })
                            },
                            addElements: function() {
                                var t, e, i = this.getMeta(),
                                    n = this.getDataset().data || [],
                                    l = i.data;
                                for (t = 0, e = n.length; t < e; ++t) l[t] = l[t] || this.createMetaData(t);
                                i.dataset = i.dataset || this.createMetaDataset()
                            },
                            addElementAndReset: function(t) {
                                var e = this.createMetaData(t);
                                this.getMeta().data.splice(t, 0, e), this.updateElement(e, t, !0)
                            },
                            buildOrUpdateElements: function() {
                                var t, l, o = this,
                                    a = o.getDataset(),
                                    r = a.data || (a.data = []);
                                o._data !== r && (o._data && i(o._data, o), l = o, (t = r)._chartjs ? t._chartjs.listeners.push(l) : (Object.defineProperty(t, "_chartjs", {
                                    configurable: !0,
                                    enumerable: !1,
                                    value: {
                                        listeners: [l]
                                    }
                                }), e.forEach((function(e) {
                                    var i = "onData" + e.charAt(0).toUpperCase() + e.slice(1),
                                        l = t[e];
                                    Object.defineProperty(t, e, {
                                        configurable: !0,
                                        enumerable: !1,
                                        value: function() {
                                            var e = Array.prototype.slice.call(arguments),
                                                o = l.apply(this, e);
                                            return n.each(t._chartjs.listeners, (function(t) {
                                                "function" == typeof t[i] && t[i].apply(t, e)
                                            })), o
                                        }
                                    })
                                }))), o._data = r), o.resyncElements()
                            },
                            update: n.noop,
                            transition: function(t) {
                                for (var e = this.getMeta(), i = e.data || [], n = i.length, l = 0; l < n; ++l) i[l].transition(t);
                                e.dataset && e.dataset.transition(t)
                            },
                            draw: function() {
                                var t = this.getMeta(),
                                    e = t.data || [],
                                    i = e.length,
                                    n = 0;
                                for (t.dataset && t.dataset.draw(); n < i; ++n) e[n].draw()
                            },
                            removeHoverStyle: function(t) {
                                n.merge(t._model, t.$previousStyle || {}), delete t.$previousStyle
                            },
                            setHoverStyle: function(t) {
                                var e = this.chart.data.datasets[t._datasetIndex],
                                    i = t._index,
                                    l = t.custom || {},
                                    o = n.valueAtIndexOrDefault,
                                    a = n.getHoverColor,
                                    r = t._model;
                                t.$previousStyle = {
                                    backgroundColor: r.backgroundColor,
                                    borderColor: r.borderColor,
                                    borderWidth: r.borderWidth
                                }, r.backgroundColor = l.hoverBackgroundColor ? l.hoverBackgroundColor : o(e.hoverBackgroundColor, i, a(r.backgroundColor)), r.borderColor = l.hoverBorderColor ? l.hoverBorderColor : o(e.hoverBorderColor, i, a(r.borderColor)), r.borderWidth = l.hoverBorderWidth ? l.hoverBorderWidth : o(e.hoverBorderWidth, i, r.borderWidth)
                            },
                            resyncElements: function() {
                                var t = this.getMeta(),
                                    e = this.getDataset().data,
                                    i = t.data.length,
                                    n = e.length;
                                n < i ? t.data.splice(n, i - n) : n > i && this.insertElements(i, n - i)
                            },
                            insertElements: function(t, e) {
                                for (var i = 0; i < e; ++i) this.addElementAndReset(t + i)
                            },
                            onDataPush: function() {
                                this.insertElements(this.getDataset().data.length - 1, arguments.length)
                            },
                            onDataPop: function() {
                                this.getMeta().data.pop()
                            },
                            onDataShift: function() {
                                this.getMeta().data.shift()
                            },
                            onDataSplice: function(t, e) {
                                this.getMeta().data.splice(t, e), this.insertElements(t, arguments.length - 2)
                            },
                            onDataUnshift: function() {
                                this.insertElements(0, arguments.length)
                            }
                        }), t.DatasetController.extend = n.inherits
                    }
                }, {
                    46: 46
                }],
                26: [function(t, e, i) {
                    var n = t(46);
                    e.exports = {
                        _set: function(t, e) {
                            return n.merge(this[t] || (this[t] = {}), e)
                        }
                    }
                }, {
                    46: 46
                }],
                27: [function(t, e, i) {
                    var n = t(3),
                        o = t(46);
                    var a = function(t) {
                        o.extend(this, t), this.initialize.apply(this, arguments)
                    };
                    o.extend(a.prototype, {
                        initialize: function() {
                            this.hidden = !1
                        },
                        pivot: function() {
                            var t = this;
                            return t._view || (t._view = o.clone(t._model)), t._start = {}, t
                        },
                        transition: function(t) {
                            var e = this,
                                i = e._model,
                                o = e._start,
                                a = e._view;
                            return i && 1 !== t ? (a || (a = e._view = {}), o || (o = e._start = {}), function(t, e, i, o) {
                                var a, r, s, c, u, h, d, p, f, m = Object.keys(i);
                                for (a = 0, r = m.length; a < r; ++a)
                                    if (h = i[s = m[a]], e.hasOwnProperty(s) || (e[s] = h), (c = e[s]) !== h && "_" !== s[0]) {
                                        if (t.hasOwnProperty(s) || (t[s] = c), u = t[s], (d = l(h)) === l(u))
                                            if ("string" === d) {
                                                if ((p = n(u)).valid && (f = n(h)).valid) {
                                                    e[s] = f.mix(p, o).rgbString();
                                                    continue
                                                }
                                            } else if ("number" === d && isFinite(u) && isFinite(h)) {
                                            e[s] = u + (h - u) * o;
                                            continue
                                        }
                                        e[s] = h
                                    }
                            }(o, a, i, t), e) : (e._view = i, e._start = null, e)
                        },
                        tooltipPosition: function() {
                            return {
                                x: this._model.x,
                                y: this._model.y
                            }
                        },
                        hasValue: function() {
                            return o.isNumber(this._model.x) && o.isNumber(this._model.y)
                        }
                    }), a.extend = o.inherits, e.exports = a
                }, {
                    3: 3,
                    46: 46
                }],
                28: [function(t, e, i) {
                    var n = t(3),
                        l = t(26),
                        o = t(46),
                        a = t(34);
                    e.exports = function() {
                        function t(t, e, i) {
                            var n;
                            return "string" == typeof t ? (n = parseInt(t, 10), -1 !== t.indexOf("%") && (n = n / 100 * e.parentNode[i])) : n = t, n
                        }

                        function e(t) {
                            return null != t && "none" !== t
                        }

                        function i(i, n, l) {
                            var a = document.defaultView,
                                r = o._getParentNode(i),
                                s = a.getComputedStyle(i)[n],
                                c = a.getComputedStyle(r)[n],
                                u = e(s),
                                h = e(c),
                                d = Number.POSITIVE_INFINITY;
                            return u || h ? Math.min(u ? t(s, i, l) : d, h ? t(c, r, l) : d) : "none"
                        }
                        o.configMerge = function() {
                            return o.merge(o.clone(arguments[0]), [].slice.call(arguments, 1), {
                                merger: function(t, e, i, n) {
                                    var l = e[t] || {},
                                        r = i[t];
                                    "scales" === t ? e[t] = o.scaleMerge(l, r) : "scale" === t ? e[t] = o.merge(l, [a.getScaleDefaults(r.type), r]) : o._merger(t, e, i, n)
                                }
                            })
                        }, o.scaleMerge = function() {
                            return o.merge(o.clone(arguments[0]), [].slice.call(arguments, 1), {
                                merger: function(t, e, i, n) {
                                    if ("xAxes" === t || "yAxes" === t) {
                                        var l, r, s, c = i[t].length;
                                        for (e[t] || (e[t] = []), l = 0; l < c; ++l) s = i[t][l], r = o.valueOrDefault(s.type, "xAxes" === t ? "category" : "linear"), l >= e[t].length && e[t].push({}), !e[t][l].type || s.type && s.type !== e[t][l].type ? o.merge(e[t][l], [a.getScaleDefaults(r), s]) : o.merge(e[t][l], s)
                                    } else o._merger(t, e, i, n)
                                }
                            })
                        }, o.where = function(t, e) {
                            if (o.isArray(t) && Array.prototype.filter) return t.filter(e);
                            var i = [];
                            return o.each(t, (function(t) {
                                e(t) && i.push(t)
                            })), i
                        }, o.findIndex = Array.prototype.findIndex ? function(t, e, i) {
                            return t.findIndex(e, i)
                        } : function(t, e, i) {
                            i = void 0 === i ? t : i;
                            for (var n = 0, l = t.length; n < l; ++n)
                                if (e.call(i, t[n], n, t)) return n;
                            return -1
                        }, o.findNextWhere = function(t, e, i) {
                            o.isNullOrUndef(i) && (i = -1);
                            for (var n = i + 1; n < t.length; n++) {
                                var l = t[n];
                                if (e(l)) return l
                            }
                        }, o.findPreviousWhere = function(t, e, i) {
                            o.isNullOrUndef(i) && (i = t.length);
                            for (var n = i - 1; n >= 0; n--) {
                                var l = t[n];
                                if (e(l)) return l
                            }
                        }, o.isNumber = function(t) {
                            return !isNaN(parseFloat(t)) && isFinite(t)
                        }, o.almostEquals = function(t, e, i) {
                            return Math.abs(t - e) < i
                        }, o.almostWhole = function(t, e) {
                            var i = Math.round(t);
                            return i - e < t && i + e > t
                        }, o.max = function(t) {
                            return t.reduce((function(t, e) {
                                return isNaN(e) ? t : Math.max(t, e)
                            }), Number.NEGATIVE_INFINITY)
                        }, o.min = function(t) {
                            return t.reduce((function(t, e) {
                                return isNaN(e) ? t : Math.min(t, e)
                            }), Number.POSITIVE_INFINITY)
                        }, o.sign = Math.sign ? function(t) {
                            return Math.sign(t)
                        } : function(t) {
                            return 0 === (t = +t) || isNaN(t) ? t : t > 0 ? 1 : -1
                        }, o.log10 = Math.log10 ? function(t) {
                            return Math.log10(t)
                        } : function(t) {
                            var e = Math.log(t) * Math.LOG10E,
                                i = Math.round(e);
                            return t === Math.pow(10, i) ? i : e
                        }, o.toRadians = function(t) {
                            return t * (Math.PI / 180)
                        }, o.toDegrees = function(t) {
                            return t * (180 / Math.PI)
                        }, o.getAngleFromPoint = function(t, e) {
                            var i = e.x - t.x,
                                n = e.y - t.y,
                                l = Math.sqrt(i * i + n * n),
                                o = Math.atan2(n, i);
                            return o < -.5 * Math.PI && (o += 2 * Math.PI), {
                                angle: o,
                                distance: l
                            }
                        }, o.distanceBetweenPoints = function(t, e) {
                            return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2))
                        }, o.aliasPixel = function(t) {
                            return t % 2 == 0 ? 0 : .5
                        }, o.splineCurve = function(t, e, i, n) {
                            var l = t.skip ? e : t,
                                o = e,
                                a = i.skip ? e : i,
                                r = Math.sqrt(Math.pow(o.x - l.x, 2) + Math.pow(o.y - l.y, 2)),
                                s = Math.sqrt(Math.pow(a.x - o.x, 2) + Math.pow(a.y - o.y, 2)),
                                c = r / (r + s),
                                u = s / (r + s),
                                h = n * (c = isNaN(c) ? 0 : c),
                                d = n * (u = isNaN(u) ? 0 : u);
                            return {
                                previous: {
                                    x: o.x - h * (a.x - l.x),
                                    y: o.y - h * (a.y - l.y)
                                },
                                next: {
                                    x: o.x + d * (a.x - l.x),
                                    y: o.y + d * (a.y - l.y)
                                }
                            }
                        }, o.EPSILON = Number.EPSILON || 1e-14, o.splineCurveMonotone = function(t) {
                            var e, i, n, l, a, r, s, c, u, h = (t || []).map((function(t) {
                                    return {
                                        model: t._model,
                                        deltaK: 0,
                                        mK: 0
                                    }
                                })),
                                d = h.length;
                            for (e = 0; e < d; ++e)
                                if (!(n = h[e]).model.skip) {
                                    if (i = e > 0 ? h[e - 1] : null, (l = e < d - 1 ? h[e + 1] : null) && !l.model.skip) {
                                        var p = l.model.x - n.model.x;
                                        n.deltaK = 0 !== p ? (l.model.y - n.model.y) / p : 0
                                    }!i || i.model.skip ? n.mK = n.deltaK : !l || l.model.skip ? n.mK = i.deltaK : this.sign(i.deltaK) !== this.sign(n.deltaK) ? n.mK = 0 : n.mK = (i.deltaK + n.deltaK) / 2
                                } for (e = 0; e < d - 1; ++e) n = h[e], l = h[e + 1], n.model.skip || l.model.skip || (o.almostEquals(n.deltaK, 0, this.EPSILON) ? n.mK = l.mK = 0 : (a = n.mK / n.deltaK, r = l.mK / n.deltaK, (c = Math.pow(a, 2) + Math.pow(r, 2)) <= 9 || (s = 3 / Math.sqrt(c), n.mK = a * s * n.deltaK, l.mK = r * s * n.deltaK)));
                            for (e = 0; e < d; ++e)(n = h[e]).model.skip || (i = e > 0 ? h[e - 1] : null, l = e < d - 1 ? h[e + 1] : null, i && !i.model.skip && (u = (n.model.x - i.model.x) / 3, n.model.controlPointPreviousX = n.model.x - u, n.model.controlPointPreviousY = n.model.y - u * n.mK), l && !l.model.skip && (u = (l.model.x - n.model.x) / 3, n.model.controlPointNextX = n.model.x + u, n.model.controlPointNextY = n.model.y + u * n.mK))
                        }, o.nextItem = function(t, e, i) {
                            return i ? e >= t.length - 1 ? t[0] : t[e + 1] : e >= t.length - 1 ? t[t.length - 1] : t[e + 1]
                        }, o.previousItem = function(t, e, i) {
                            return i ? e <= 0 ? t[t.length - 1] : t[e - 1] : e <= 0 ? t[0] : t[e - 1]
                        }, o.niceNum = function(t, e) {
                            var i = Math.floor(o.log10(t)),
                                n = t / Math.pow(10, i);
                            return (e ? n < 1.5 ? 1 : n < 3 ? 2 : n < 7 ? 5 : 10 : n <= 1 ? 1 : n <= 2 ? 2 : n <= 5 ? 5 : 10) * Math.pow(10, i)
                        }, o.requestAnimFrame = "undefined" == typeof window ? function(t) {
                            t()
                        } : window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(t) {
                            return window.setTimeout(t, 1e3 / 60)
                        }, o.getRelativePosition = function(t, e) {
                            var i, n, l = t.originalEvent || t,
                                a = t.target || t.srcElement,
                                r = a.getBoundingClientRect(),
                                s = l.touches;
                            s && s.length > 0 ? (i = s[0].clientX, n = s[0].clientY) : (i = l.clientX, n = l.clientY);
                            var c = parseFloat(o.getStyle(a, "padding-left")),
                                u = parseFloat(o.getStyle(a, "padding-top")),
                                h = parseFloat(o.getStyle(a, "padding-right")),
                                d = parseFloat(o.getStyle(a, "padding-bottom")),
                                p = r.right - r.left - c - h,
                                f = r.bottom - r.top - u - d;
                            return {
                                x: i = Math.round((i - r.left - c) / p * a.width / e.currentDevicePixelRatio),
                                y: n = Math.round((n - r.top - u) / f * a.height / e.currentDevicePixelRatio)
                            }
                        }, o.getConstraintWidth = function(t) {
                            return i(t, "max-width", "clientWidth")
                        }, o.getConstraintHeight = function(t) {
                            return i(t, "max-height", "clientHeight")
                        }, o._calculatePadding = function(t, e, i) {
                            return (e = o.getStyle(t, e)).indexOf("%") > -1 ? i / parseInt(e, 10) : parseInt(e, 10)
                        }, o._getParentNode = function(t) {
                            var e = t.parentNode;
                            return e && e.host && (e = e.host), e
                        }, o.getMaximumWidth = function(t) {
                            var e = o._getParentNode(t);
                            if (!e) return t.clientWidth;
                            var i = e.clientWidth,
                                n = i - o._calculatePadding(e, "padding-left", i) - o._calculatePadding(e, "padding-right", i),
                                l = o.getConstraintWidth(t);
                            return isNaN(l) ? n : Math.min(n, l)
                        }, o.getMaximumHeight = function(t) {
                            var e = o._getParentNode(t);
                            if (!e) return t.clientHeight;
                            var i = e.clientHeight,
                                n = i - o._calculatePadding(e, "padding-top", i) - o._calculatePadding(e, "padding-bottom", i),
                                l = o.getConstraintHeight(t);
                            return isNaN(l) ? n : Math.min(n, l)
                        }, o.getStyle = function(t, e) {
                            return t.currentStyle ? t.currentStyle[e] : document.defaultView.getComputedStyle(t, null).getPropertyValue(e)
                        }, o.retinaScale = function(t, e) {
                            var i = t.currentDevicePixelRatio = e || "undefined" != typeof window && window.devicePixelRatio || 1;
                            if (1 !== i) {
                                var n = t.canvas,
                                    l = t.height,
                                    o = t.width;
                                n.height = l * i, n.width = o * i, t.ctx.scale(i, i), n.style.height || n.style.width || (n.style.height = l + "px", n.style.width = o + "px")
                            }
                        }, o.fontString = function(t, e, i) {
                            return e + " " + t + "px " + i
                        }, o.longestText = function(t, e, i, n) {
                            var l = (n = n || {}).data = n.data || {},
                                a = n.garbageCollect = n.garbageCollect || [];
                            n.font !== e && (l = n.data = {}, a = n.garbageCollect = [], n.font = e), t.font = e;
                            var r = 0;
                            o.each(i, (function(e) {
                                null != e && !0 !== o.isArray(e) ? r = o.measureText(t, l, a, r, e) : o.isArray(e) && o.each(e, (function(e) {
                                    null == e || o.isArray(e) || (r = o.measureText(t, l, a, r, e))
                                }))
                            }));
                            var s = a.length / 2;
                            if (s > i.length) {
                                for (var c = 0; c < s; c++) delete l[a[c]];
                                a.splice(0, s)
                            }
                            return r
                        }, o.measureText = function(t, e, i, n, l) {
                            var o = e[l];
                            return o || (o = e[l] = t.measureText(l).width, i.push(l)), o > n && (n = o), n
                        }, o.numberOfLabelLines = function(t) {
                            var e = 1;
                            return o.each(t, (function(t) {
                                o.isArray(t) && t.length > e && (e = t.length)
                            })), e
                        }, o.color = n ? function(t) {
                            return t instanceof CanvasGradient && (t = l.global.defaultColor), n(t)
                        } : function(t) {
                            return console.error("Color.js not found!"), t
                        }, o.getHoverColor = function(t) {
                            return t instanceof CanvasPattern ? t : o.color(t).saturate(.5).darken(.1).rgbString()
                        }
                    }
                }, {
                    26: 26,
                    3: 3,
                    34: 34,
                    46: 46
                }],
                29: [function(t, e, i) {
                    var n = t(46);

                    function l(t, e) {
                        return t.native ? {
                            x: t.x,
                            y: t.y
                        } : n.getRelativePosition(t, e)
                    }

                    function o(t, e) {
                        var i, n, l, o, a;
                        for (n = 0, o = t.data.datasets.length; n < o; ++n)
                            if (t.isDatasetVisible(n))
                                for (l = 0, a = (i = t.getDatasetMeta(n)).data.length; l < a; ++l) {
                                    var r = i.data[l];
                                    r._view.skip || e(r)
                                }
                    }

                    function a(t, e) {
                        var i = [];
                        return o(t, (function(t) {
                            t.inRange(e.x, e.y) && i.push(t)
                        })), i
                    }

                    function r(t, e, i, n) {
                        var l = Number.POSITIVE_INFINITY,
                            a = [];
                        return o(t, (function(t) {
                            if (!i || t.inRange(e.x, e.y)) {
                                var o = t.getCenterPoint(),
                                    r = n(e, o);
                                r < l ? (a = [t], l = r) : r === l && a.push(t)
                            }
                        })), a
                    }

                    function s(t) {
                        var e = -1 !== t.indexOf("x"),
                            i = -1 !== t.indexOf("y");
                        return function(t, n) {
                            var l = e ? Math.abs(t.x - n.x) : 0,
                                o = i ? Math.abs(t.y - n.y) : 0;
                            return Math.sqrt(Math.pow(l, 2) + Math.pow(o, 2))
                        }
                    }

                    function c(t, e, i) {
                        var n = l(e, t);
                        i.axis = i.axis || "x";
                        var o = s(i.axis),
                            c = i.intersect ? a(t, n) : r(t, n, !1, o),
                            u = [];
                        return c.length ? (t.data.datasets.forEach((function(e, i) {
                            if (t.isDatasetVisible(i)) {
                                var n = t.getDatasetMeta(i).data[c[0]._index];
                                n && !n._view.skip && u.push(n)
                            }
                        })), u) : []
                    }
                    e.exports = {
                        modes: {
                            single: function(t, e) {
                                var i = l(e, t),
                                    n = [];
                                return o(t, (function(t) {
                                    if (t.inRange(i.x, i.y)) return n.push(t), n
                                })), n.slice(0, 1)
                            },
                            label: c,
                            index: c,
                            dataset: function(t, e, i) {
                                var n = l(e, t);
                                i.axis = i.axis || "xy";
                                var o = s(i.axis),
                                    c = i.intersect ? a(t, n) : r(t, n, !1, o);
                                return c.length > 0 && (c = t.getDatasetMeta(c[0]._datasetIndex).data), c
                            },
                            "x-axis": function(t, e) {
                                return c(t, e, {
                                    intersect: !1
                                })
                            },
                            point: function(t, e) {
                                return a(t, l(e, t))
                            },
                            nearest: function(t, e, i) {
                                var n = l(e, t);
                                i.axis = i.axis || "xy";
                                var o = s(i.axis),
                                    a = r(t, n, i.intersect, o);
                                return a.length > 1 && a.sort((function(t, e) {
                                    var i = t.getArea() - e.getArea();
                                    return 0 === i && (i = t._datasetIndex - e._datasetIndex), i
                                })), a.slice(0, 1)
                            },
                            x: function(t, e, i) {
                                var n = l(e, t),
                                    a = [],
                                    r = !1;
                                return o(t, (function(t) {
                                    t.inXRange(n.x) && a.push(t), t.inRange(n.x, n.y) && (r = !0)
                                })), i.intersect && !r && (a = []), a
                            },
                            y: function(t, e, i) {
                                var n = l(e, t),
                                    a = [],
                                    r = !1;
                                return o(t, (function(t) {
                                    t.inYRange(n.y) && a.push(t), t.inRange(n.x, n.y) && (r = !0)
                                })), i.intersect && !r && (a = []), a
                            }
                        }
                    }
                }, {
                    46: 46
                }],
                30: [function(t, e, i) {
                    t(26)._set("global", {
                        responsive: !0,
                        responsiveAnimationDuration: 0,
                        maintainAspectRatio: !0,
                        events: ["mousemove", "mouseout", "click", "touchstart", "touchmove"],
                        hover: {
                            onHover: null,
                            mode: "nearest",
                            intersect: !0,
                            animationDuration: 400
                        },
                        onClick: null,
                        defaultColor: "rgba(0,0,0,0.1)",
                        defaultFontColor: "#666",
                        defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
                        defaultFontSize: 12,
                        defaultFontStyle: "normal",
                        showLines: !0,
                        elements: {},
                        layout: {
                            padding: {
                                top: 0,
                                right: 0,
                                bottom: 0,
                                left: 0
                            }
                        }
                    }), e.exports = function() {
                        var t = function(t, e) {
                            return this.construct(t, e), this
                        };
                        return t.Chart = t, t
                    }
                }, {
                    26: 26
                }],
                31: [function(t, e, i) {
                    var n = t(46);

                    function l(t, e) {
                        return n.where(t, (function(t) {
                            return t.position === e
                        }))
                    }

                    function o(t, e) {
                        t.forEach((function(t, e) {
                            return t._tmpIndex_ = e, t
                        })), t.sort((function(t, i) {
                            var n = e ? i : t,
                                l = e ? t : i;
                            return n.weight === l.weight ? n._tmpIndex_ - l._tmpIndex_ : n.weight - l.weight
                        })), t.forEach((function(t) {
                            delete t._tmpIndex_
                        }))
                    }
                    e.exports = {
                        defaults: {},
                        addBox: function(t, e) {
                            t.boxes || (t.boxes = []), e.fullWidth = e.fullWidth || !1, e.position = e.position || "top", e.weight = e.weight || 0, t.boxes.push(e)
                        },
                        removeBox: function(t, e) {
                            var i = t.boxes ? t.boxes.indexOf(e) : -1; - 1 !== i && t.boxes.splice(i, 1)
                        },
                        configure: function(t, e, i) {
                            for (var n, l = ["fullWidth", "position", "weight"], o = l.length, a = 0; a < o; ++a) n = l[a], i.hasOwnProperty(n) && (e[n] = i[n])
                        },
                        update: function(t, e, i) {
                            if (t) {
                                var a = t.options.layout || {},
                                    r = n.options.toPadding(a.padding),
                                    s = r.left,
                                    c = r.right,
                                    u = r.top,
                                    h = r.bottom,
                                    d = l(t.boxes, "left"),
                                    p = l(t.boxes, "right"),
                                    f = l(t.boxes, "top"),
                                    m = l(t.boxes, "bottom"),
                                    v = l(t.boxes, "chartArea");
                                o(d, !0), o(p, !1), o(f, !0), o(m, !1);
                                var g = e - s - c,
                                    y = i - u - h,
                                    b = y / 2,
                                    x = (e - g / 2) / (d.length + p.length),
                                    w = (i - b) / (f.length + m.length),
                                    k = g,
                                    S = y,
                                    M = [];
                                n.each(d.concat(p, f, m), (function(t) {
                                    var e, i = t.isHorizontal();
                                    i ? (e = t.update(t.fullWidth ? g : k, w), S -= e.height) : (e = t.update(x, S), k -= e.width), M.push({
                                        horizontal: i,
                                        minSize: e,
                                        box: t
                                    })
                                }));
                                var C = 0,
                                    T = 0,
                                    A = 0,
                                    O = 0;
                                n.each(f.concat(m), (function(t) {
                                    if (t.getPadding) {
                                        var e = t.getPadding();
                                        C = Math.max(C, e.left), T = Math.max(T, e.right)
                                    }
                                })), n.each(d.concat(p), (function(t) {
                                    if (t.getPadding) {
                                        var e = t.getPadding();
                                        A = Math.max(A, e.top), O = Math.max(O, e.bottom)
                                    }
                                }));
                                var P = s,
                                    E = c,
                                    I = u,
                                    _ = h;
                                n.each(d.concat(p), j), n.each(d, (function(t) {
                                    P += t.width
                                })), n.each(p, (function(t) {
                                    E += t.width
                                })), n.each(f.concat(m), j), n.each(f, (function(t) {
                                    I += t.height
                                })), n.each(m, (function(t) {
                                    _ += t.height
                                })), n.each(d.concat(p), (function(t) {
                                    var e = n.findNextWhere(M, (function(e) {
                                            return e.box === t
                                        })),
                                        i = {
                                            left: 0,
                                            right: 0,
                                            top: I,
                                            bottom: _
                                        };
                                    e && t.update(e.minSize.width, S, i)
                                })), P = s, E = c, I = u, _ = h, n.each(d, (function(t) {
                                    P += t.width
                                })), n.each(p, (function(t) {
                                    E += t.width
                                })), n.each(f, (function(t) {
                                    I += t.height
                                })), n.each(m, (function(t) {
                                    _ += t.height
                                }));
                                var D = Math.max(C - P, 0);
                                P += D, E += Math.max(T - E, 0);
                                var $ = Math.max(A - I, 0);
                                I += $, _ += Math.max(O - _, 0);
                                var L = i - I - _,
                                    R = e - P - E;
                                R === k && L === S || (n.each(d, (function(t) {
                                    t.height = L
                                })), n.each(p, (function(t) {
                                    t.height = L
                                })), n.each(f, (function(t) {
                                    t.fullWidth || (t.width = R)
                                })), n.each(m, (function(t) {
                                    t.fullWidth || (t.width = R)
                                })), S = L, k = R);
                                var V = s + D,
                                    F = u + $;
                                n.each(d.concat(f), W), V += k, F += S, n.each(p, W), n.each(m, W), t.chartArea = {
                                    left: P,
                                    top: I,
                                    right: P + k,
                                    bottom: I + S
                                }, n.each(v, (function(e) {
                                    e.left = t.chartArea.left, e.top = t.chartArea.top, e.right = t.chartArea.right, e.bottom = t.chartArea.bottom, e.update(k, S)
                                }))
                            }

                            function j(t) {
                                var e = n.findNextWhere(M, (function(e) {
                                    return e.box === t
                                }));
                                if (e)
                                    if (t.isHorizontal()) {
                                        var i = {
                                            left: Math.max(P, C),
                                            right: Math.max(E, T),
                                            top: 0,
                                            bottom: 0
                                        };
                                        t.update(t.fullWidth ? g : k, y / 2, i)
                                    } else t.update(e.minSize.width, S)
                            }

                            function W(t) {
                                t.isHorizontal() ? (t.left = t.fullWidth ? s : P, t.right = t.fullWidth ? e - c : P + k, t.top = F, t.bottom = F + t.height, F = t.bottom) : (t.left = V, t.right = V + t.width, t.top = I, t.bottom = I + S, V = t.right)
                            }
                        }
                    }
                }, {
                    46: 46
                }],
                32: [function(t, e, i) {
                    var n = t(26),
                        l = t(46);
                    n._set("global", {
                        plugins: {}
                    }), e.exports = {
                        _plugins: [],
                        _cacheId: 0,
                        register: function(t) {
                            var e = this._plugins;
                            [].concat(t).forEach((function(t) {
                                -1 === e.indexOf(t) && e.push(t)
                            })), this._cacheId++
                        },
                        unregister: function(t) {
                            var e = this._plugins;
                            [].concat(t).forEach((function(t) {
                                var i = e.indexOf(t); - 1 !== i && e.splice(i, 1)
                            })), this._cacheId++
                        },
                        clear: function() {
                            this._plugins = [], this._cacheId++
                        },
                        count: function() {
                            return this._plugins.length
                        },
                        getAll: function() {
                            return this._plugins
                        },
                        notify: function(t, e, i) {
                            var n, l, o, a, r, s = this.descriptors(t),
                                c = s.length;
                            for (n = 0; n < c; ++n)
                                if ("function" == typeof(r = (o = (l = s[n]).plugin)[e]) && ((a = [t].concat(i || [])).push(l.options), !1 === r.apply(o, a))) return !1;
                            return !0
                        },
                        descriptors: function(t) {
                            var e = t.$plugins || (t.$plugins = {});
                            if (e.id === this._cacheId) return e.descriptors;
                            var i = [],
                                o = [],
                                a = t && t.config || {},
                                r = a.options && a.options.plugins || {};
                            return this._plugins.concat(a.plugins || []).forEach((function(t) {
                                if (-1 === i.indexOf(t)) {
                                    var e = t.id,
                                        a = r[e];
                                    !1 !== a && (!0 === a && (a = l.clone(n.global.plugins[e])), i.push(t), o.push({
                                        plugin: t,
                                        options: a || {}
                                    }))
                                }
                            })), e.descriptors = o, e.id = this._cacheId, o
                        },
                        _invalidate: function(t) {
                            delete t.$plugins
                        }
                    }
                }, {
                    26: 26,
                    46: 46
                }],
                33: [function(t, e, i) {
                    var n = t(26),
                        l = t(27),
                        o = t(46),
                        a = t(35);

                    function r(t) {
                        var e, i, n = [];
                        for (e = 0, i = t.length; e < i; ++e) n.push(t[e].label);
                        return n
                    }

                    function s(t, e, i) {
                        var n = t.getPixelForTick(e);
                        return i && (n -= 0 === e ? (t.getPixelForTick(1) - n) / 2 : (n - t.getPixelForTick(e - 1)) / 2), n
                    }

                    function c(t, e, i) {
                        return o.isArray(e) ? o.longestText(t, i, e) : t.measureText(e).width
                    }

                    function u(t) {
                        var e = o.valueOrDefault,
                            i = n.global,
                            l = e(t.fontSize, i.defaultFontSize),
                            a = e(t.fontStyle, i.defaultFontStyle),
                            r = e(t.fontFamily, i.defaultFontFamily);
                        return {
                            size: l,
                            style: a,
                            family: r,
                            font: o.fontString(l, a, r)
                        }
                    }

                    function h(t) {
                        return o.options.toLineHeight(o.valueOrDefault(t.lineHeight, 1.2), o.valueOrDefault(t.fontSize, n.global.defaultFontSize))
                    }
                    n._set("scale", {
                        display: !0,
                        position: "left",
                        offset: !1,
                        gridLines: {
                            display: !0,
                            color: "rgba(0, 0, 0, 0.1)",
                            lineWidth: 1,
                            drawBorder: !0,
                            drawOnChartArea: !0,
                            drawTicks: !0,
                            tickMarkLength: 10,
                            zeroLineWidth: 1,
                            zeroLineColor: "rgba(0,0,0,0.25)",
                            zeroLineBorderDash: [],
                            zeroLineBorderDashOffset: 0,
                            offsetGridLines: !1,
                            borderDash: [],
                            borderDashOffset: 0
                        },
                        scaleLabel: {
                            display: !1,
                            labelString: "",
                            lineHeight: 1.2,
                            padding: {
                                top: 4,
                                bottom: 4
                            }
                        },
                        ticks: {
                            beginAtZero: !1,
                            minRotation: 0,
                            maxRotation: 50,
                            mirror: !1,
                            padding: 0,
                            reverse: !1,
                            display: !0,
                            autoSkip: !0,
                            autoSkipPadding: 0,
                            labelOffset: 0,
                            callback: a.formatters.values,
                            minor: {},
                            major: {}
                        }
                    }), e.exports = l.extend({
                        getPadding: function() {
                            return {
                                left: this.paddingLeft || 0,
                                top: this.paddingTop || 0,
                                right: this.paddingRight || 0,
                                bottom: this.paddingBottom || 0
                            }
                        },
                        getTicks: function() {
                            return this._ticks
                        },
                        mergeTicksOptions: function() {
                            var t = this.options.ticks;
                            for (var e in !1 === t.minor && (t.minor = {
                                    display: !1
                                }), !1 === t.major && (t.major = {
                                    display: !1
                                }), t) "major" !== e && "minor" !== e && (void 0 === t.minor[e] && (t.minor[e] = t[e]), void 0 === t.major[e] && (t.major[e] = t[e]))
                        },
                        beforeUpdate: function() {
                            o.callback(this.options.beforeUpdate, [this])
                        },
                        update: function(t, e, i) {
                            var n, l, a, r, s, c, u = this;
                            for (u.beforeUpdate(), u.maxWidth = t, u.maxHeight = e, u.margins = o.extend({
                                    left: 0,
                                    right: 0,
                                    top: 0,
                                    bottom: 0
                                }, i), u.longestTextCache = u.longestTextCache || {}, u.beforeSetDimensions(), u.setDimensions(), u.afterSetDimensions(), u.beforeDataLimits(), u.determineDataLimits(), u.afterDataLimits(), u.beforeBuildTicks(), s = u.buildTicks() || [], u.afterBuildTicks(), u.beforeTickToLabelConversion(), a = u.convertTicksToLabels(s) || u.ticks, u.afterTickToLabelConversion(), u.ticks = a, n = 0, l = a.length; n < l; ++n) r = a[n], (c = s[n]) ? c.label = r : s.push(c = {
                                label: r,
                                major: !1
                            });
                            return u._ticks = s, u.beforeCalculateTickRotation(), u.calculateTickRotation(), u.afterCalculateTickRotation(), u.beforeFit(), u.fit(), u.afterFit(), u.afterUpdate(), u.minSize
                        },
                        afterUpdate: function() {
                            o.callback(this.options.afterUpdate, [this])
                        },
                        beforeSetDimensions: function() {
                            o.callback(this.options.beforeSetDimensions, [this])
                        },
                        setDimensions: function() {
                            var t = this;
                            t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0
                        },
                        afterSetDimensions: function() {
                            o.callback(this.options.afterSetDimensions, [this])
                        },
                        beforeDataLimits: function() {
                            o.callback(this.options.beforeDataLimits, [this])
                        },
                        determineDataLimits: o.noop,
                        afterDataLimits: function() {
                            o.callback(this.options.afterDataLimits, [this])
                        },
                        beforeBuildTicks: function() {
                            o.callback(this.options.beforeBuildTicks, [this])
                        },
                        buildTicks: o.noop,
                        afterBuildTicks: function() {
                            o.callback(this.options.afterBuildTicks, [this])
                        },
                        beforeTickToLabelConversion: function() {
                            o.callback(this.options.beforeTickToLabelConversion, [this])
                        },
                        convertTicksToLabels: function() {
                            var t = this.options.ticks;
                            this.ticks = this.ticks.map(t.userCallback || t.callback, this)
                        },
                        afterTickToLabelConversion: function() {
                            o.callback(this.options.afterTickToLabelConversion, [this])
                        },
                        beforeCalculateTickRotation: function() {
                            o.callback(this.options.beforeCalculateTickRotation, [this])
                        },
                        calculateTickRotation: function() {
                            var t = this,
                                e = t.ctx,
                                i = t.options.ticks,
                                n = r(t._ticks),
                                l = u(i);
                            e.font = l.font;
                            var a = i.minRotation || 0;
                            if (n.length && t.options.display && t.isHorizontal())
                                for (var s, c = o.longestText(e, l.font, n, t.longestTextCache), h = c, d = t.getPixelForTick(1) - t.getPixelForTick(0) - 6; h > d && a < i.maxRotation;) {
                                    var p = o.toRadians(a);
                                    if (s = Math.cos(p), Math.sin(p) * c > t.maxHeight) {
                                        a--;
                                        break
                                    }
                                    a++, h = s * c
                                }
                            t.labelRotation = a
                        },
                        afterCalculateTickRotation: function() {
                            o.callback(this.options.afterCalculateTickRotation, [this])
                        },
                        beforeFit: function() {
                            o.callback(this.options.beforeFit, [this])
                        },
                        fit: function() {
                            var t = this,
                                e = t.minSize = {
                                    width: 0,
                                    height: 0
                                },
                                i = r(t._ticks),
                                n = t.options,
                                l = n.ticks,
                                a = n.scaleLabel,
                                s = n.gridLines,
                                d = n.display,
                                p = t.isHorizontal(),
                                f = u(l),
                                m = n.gridLines.tickMarkLength;
                            if (e.width = p ? t.isFullWidth() ? t.maxWidth - t.margins.left - t.margins.right : t.maxWidth : d && s.drawTicks ? m : 0, e.height = p ? d && s.drawTicks ? m : 0 : t.maxHeight, a.display && d) {
                                var v = h(a) + o.options.toPadding(a.padding).height;
                                p ? e.height += v : e.width += v
                            }
                            if (l.display && d) {
                                var g = o.longestText(t.ctx, f.font, i, t.longestTextCache),
                                    y = o.numberOfLabelLines(i),
                                    b = .5 * f.size,
                                    x = t.options.ticks.padding;
                                if (p) {
                                    t.longestLabelWidth = g;
                                    var w = o.toRadians(t.labelRotation),
                                        k = Math.cos(w),
                                        S = Math.sin(w) * g + f.size * y + b * (y - 1) + b;
                                    e.height = Math.min(t.maxHeight, e.height + S + x), t.ctx.font = f.font;
                                    var M = c(t.ctx, i[0], f.font),
                                        C = c(t.ctx, i[i.length - 1], f.font);
                                    0 !== t.labelRotation ? (t.paddingLeft = "bottom" === n.position ? k * M + 3 : k * b + 3, t.paddingRight = "bottom" === n.position ? k * b + 3 : k * C + 3) : (t.paddingLeft = M / 2 + 3, t.paddingRight = C / 2 + 3)
                                } else l.mirror ? g = 0 : g += x + b, e.width = Math.min(t.maxWidth, e.width + g), t.paddingTop = f.size / 2, t.paddingBottom = f.size / 2
                            }
                            t.handleMargins(), t.width = e.width, t.height = e.height
                        },
                        handleMargins: function() {
                            var t = this;
                            t.margins && (t.paddingLeft = Math.max(t.paddingLeft - t.margins.left, 0), t.paddingTop = Math.max(t.paddingTop - t.margins.top, 0), t.paddingRight = Math.max(t.paddingRight - t.margins.right, 0), t.paddingBottom = Math.max(t.paddingBottom - t.margins.bottom, 0))
                        },
                        afterFit: function() {
                            o.callback(this.options.afterFit, [this])
                        },
                        isHorizontal: function() {
                            return "top" === this.options.position || "bottom" === this.options.position
                        },
                        isFullWidth: function() {
                            return this.options.fullWidth
                        },
                        getRightValue: function(t) {
                            if (o.isNullOrUndef(t)) return NaN;
                            if ("number" == typeof t && !isFinite(t)) return NaN;
                            if (t)
                                if (this.isHorizontal()) {
                                    if (void 0 !== t.x) return this.getRightValue(t.x)
                                } else if (void 0 !== t.y) return this.getRightValue(t.y);
                            return t
                        },
                        getLabelForIndex: o.noop,
                        getPixelForValue: o.noop,
                        getValueForPixel: o.noop,
                        getPixelForTick: function(t) {
                            var e = this,
                                i = e.options.offset;
                            if (e.isHorizontal()) {
                                var n = (e.width - (e.paddingLeft + e.paddingRight)) / Math.max(e._ticks.length - (i ? 0 : 1), 1),
                                    l = n * t + e.paddingLeft;
                                i && (l += n / 2);
                                var o = e.left + Math.round(l);
                                return o += e.isFullWidth() ? e.margins.left : 0
                            }
                            var a = e.height - (e.paddingTop + e.paddingBottom);
                            return e.top + t * (a / (e._ticks.length - 1))
                        },
                        getPixelForDecimal: function(t) {
                            var e = this;
                            if (e.isHorizontal()) {
                                var i = (e.width - (e.paddingLeft + e.paddingRight)) * t + e.paddingLeft,
                                    n = e.left + Math.round(i);
                                return n += e.isFullWidth() ? e.margins.left : 0
                            }
                            return e.top + t * e.height
                        },
                        getBasePixel: function() {
                            return this.getPixelForValue(this.getBaseValue())
                        },
                        getBaseValue: function() {
                            var t = this.min,
                                e = this.max;
                            return this.beginAtZero ? 0 : t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0
                        },
                        _autoSkip: function(t) {
                            var e, i, n, l, a = this,
                                r = a.isHorizontal(),
                                s = a.options.ticks.minor,
                                c = t.length,
                                u = o.toRadians(a.labelRotation),
                                h = Math.cos(u),
                                d = a.longestLabelWidth * h,
                                p = [];
                            for (s.maxTicksLimit && (l = s.maxTicksLimit), r && (e = !1, (d + s.autoSkipPadding) * c > a.width - (a.paddingLeft + a.paddingRight) && (e = 1 + Math.floor((d + s.autoSkipPadding) * c / (a.width - (a.paddingLeft + a.paddingRight)))), l && c > l && (e = Math.max(e, Math.floor(c / l)))), i = 0; i < c; i++) n = t[i], (e > 1 && i % e > 0 || i % e == 0 && i + e >= c) && i !== c - 1 && delete n.label, p.push(n);
                            return p
                        },
                        draw: function(t) {
                            var e = this,
                                i = e.options;
                            if (i.display) {
                                var l = e.ctx,
                                    a = n.global,
                                    r = i.ticks.minor,
                                    c = i.ticks.major || r,
                                    d = i.gridLines,
                                    p = i.scaleLabel,
                                    f = 0 !== e.labelRotation,
                                    m = e.isHorizontal(),
                                    v = r.autoSkip ? e._autoSkip(e.getTicks()) : e.getTicks(),
                                    g = o.valueOrDefault(r.fontColor, a.defaultFontColor),
                                    y = u(r),
                                    b = o.valueOrDefault(c.fontColor, a.defaultFontColor),
                                    x = u(c),
                                    w = d.drawTicks ? d.tickMarkLength : 0,
                                    k = o.valueOrDefault(p.fontColor, a.defaultFontColor),
                                    S = u(p),
                                    M = o.options.toPadding(p.padding),
                                    C = o.toRadians(e.labelRotation),
                                    T = [],
                                    A = e.options.gridLines.lineWidth,
                                    O = "right" === i.position ? e.left : e.right - A - w,
                                    P = "right" === i.position ? e.left + w : e.right,
                                    E = "bottom" === i.position ? e.top + A : e.bottom - w - A,
                                    I = "bottom" === i.position ? e.top + A + w : e.bottom + A;
                                if (o.each(v, (function(n, l) {
                                        if (!o.isNullOrUndef(n.label)) {
                                            var c, u, h, p, g, y, b, x, k, S, M, _, D, $, L = n.label;
                                            l === e.zeroLineIndex && i.offset === d.offsetGridLines ? (c = d.zeroLineWidth, u = d.zeroLineColor, h = d.zeroLineBorderDash, p = d.zeroLineBorderDashOffset) : (c = o.valueAtIndexOrDefault(d.lineWidth, l), u = o.valueAtIndexOrDefault(d.color, l), h = o.valueOrDefault(d.borderDash, a.borderDash), p = o.valueOrDefault(d.borderDashOffset, a.borderDashOffset));
                                            var R = "middle",
                                                V = "middle",
                                                F = r.padding;
                                            if (m) {
                                                var j = w + F;
                                                "bottom" === i.position ? (V = f ? "middle" : "top", R = f ? "right" : "center", $ = e.top + j) : (V = f ? "middle" : "bottom", R = f ? "left" : "center", $ = e.bottom - j);
                                                var W = s(e, l, d.offsetGridLines && v.length > 1);
                                                W < e.left && (u = "rgba(0,0,0,0)"), W += o.aliasPixel(c), D = e.getPixelForTick(l) + r.labelOffset, g = b = k = M = W, y = E, x = I, S = t.top, _ = t.bottom + A
                                            } else {
                                                var H, N = "left" === i.position;
                                                r.mirror ? (R = N ? "left" : "right", H = F) : (R = N ? "right" : "left", H = w + F), D = N ? e.right - H : e.left + H;
                                                var z = s(e, l, d.offsetGridLines && v.length > 1);
                                                z < e.top && (u = "rgba(0,0,0,0)"), z += o.aliasPixel(c), $ = e.getPixelForTick(l) + r.labelOffset, g = O, b = P, k = t.left, M = t.right + A, y = x = S = _ = z
                                            }
                                            T.push({
                                                tx1: g,
                                                ty1: y,
                                                tx2: b,
                                                ty2: x,
                                                x1: k,
                                                y1: S,
                                                x2: M,
                                                y2: _,
                                                labelX: D,
                                                labelY: $,
                                                glWidth: c,
                                                glColor: u,
                                                glBorderDash: h,
                                                glBorderDashOffset: p,
                                                rotation: -1 * C,
                                                label: L,
                                                major: n.major,
                                                textBaseline: V,
                                                textAlign: R
                                            })
                                        }
                                    })), o.each(T, (function(t) {
                                        if (d.display && (l.save(), l.lineWidth = t.glWidth, l.strokeStyle = t.glColor, l.setLineDash && (l.setLineDash(t.glBorderDash), l.lineDashOffset = t.glBorderDashOffset), l.beginPath(), d.drawTicks && (l.moveTo(t.tx1, t.ty1), l.lineTo(t.tx2, t.ty2)), d.drawOnChartArea && (l.moveTo(t.x1, t.y1), l.lineTo(t.x2, t.y2)), l.stroke(), l.restore()), r.display) {
                                            l.save(), l.translate(t.labelX, t.labelY), l.rotate(t.rotation), l.font = t.major ? x.font : y.font, l.fillStyle = t.major ? b : g, l.textBaseline = t.textBaseline, l.textAlign = t.textAlign;
                                            var i = t.label;
                                            if (o.isArray(i))
                                                for (var n = i.length, a = 1.5 * y.size, s = e.isHorizontal() ? 0 : -a * (n - 1) / 2, c = 0; c < n; ++c) l.fillText("" + i[c], 0, s), s += a;
                                            else l.fillText(i, 0, 0);
                                            l.restore()
                                        }
                                    })), p.display) {
                                    var _, D, $ = 0,
                                        L = h(p) / 2;
                                    if (m) _ = e.left + (e.right - e.left) / 2, D = "bottom" === i.position ? e.bottom - L - M.bottom : e.top + L + M.top;
                                    else {
                                        var R = "left" === i.position;
                                        _ = R ? e.left + L + M.top : e.right - L - M.top, D = e.top + (e.bottom - e.top) / 2, $ = R ? -.5 * Math.PI : .5 * Math.PI
                                    }
                                    l.save(), l.translate(_, D), l.rotate($), l.textAlign = "center", l.textBaseline = "middle", l.fillStyle = k, l.font = S.font, l.fillText(p.labelString, 0, 0), l.restore()
                                }
                                if (d.drawBorder) {
                                    l.lineWidth = o.valueAtIndexOrDefault(d.lineWidth, 0), l.strokeStyle = o.valueAtIndexOrDefault(d.color, 0);
                                    var V = e.left,
                                        F = e.right + A,
                                        j = e.top,
                                        W = e.bottom + A,
                                        H = o.aliasPixel(l.lineWidth);
                                    m ? (j = W = "top" === i.position ? e.bottom : e.top, j += H, W += H) : (V = F = "left" === i.position ? e.right : e.left, V += H, F += H), l.beginPath(), l.moveTo(V, j), l.lineTo(F, W), l.stroke()
                                }
                            }
                        }
                    })
                }, {
                    26: 26,
                    27: 27,
                    35: 35,
                    46: 46
                }],
                34: [function(t, e, i) {
                    var n = t(26),
                        l = t(46),
                        o = t(31);
                    e.exports = {
                        constructors: {},
                        defaults: {},
                        registerScaleType: function(t, e, i) {
                            this.constructors[t] = e, this.defaults[t] = l.clone(i)
                        },
                        getScaleConstructor: function(t) {
                            return this.constructors.hasOwnProperty(t) ? this.constructors[t] : void 0
                        },
                        getScaleDefaults: function(t) {
                            return this.defaults.hasOwnProperty(t) ? l.merge({}, [n.scale, this.defaults[t]]) : {}
                        },
                        updateScaleDefaults: function(t, e) {
                            this.defaults.hasOwnProperty(t) && (this.defaults[t] = l.extend(this.defaults[t], e))
                        },
                        addScalesToLayout: function(t) {
                            l.each(t.scales, (function(e) {
                                e.fullWidth = e.options.fullWidth, e.position = e.options.position, e.weight = e.options.weight, o.addBox(t, e)
                            }))
                        }
                    }
                }, {
                    26: 26,
                    31: 31,
                    46: 46
                }],
                35: [function(t, e, i) {
                    var n = t(46);
                    e.exports = {
                        formatters: {
                            values: function(t) {
                                return n.isArray(t) ? t : "" + t
                            },
                            linear: function(t, e, i) {
                                var l = i.length > 3 ? i[2] - i[1] : i[1] - i[0];
                                Math.abs(l) > 1 && t !== Math.floor(t) && (l = t - Math.floor(t));
                                var o = n.log10(Math.abs(l)),
                                    a = "";
                                if (0 !== t)
                                    if (Math.max(Math.abs(i[0]), Math.abs(i[i.length - 1])) < 1e-4) {
                                        var r = n.log10(Math.abs(t));
                                        a = t.toExponential(Math.floor(r) - Math.floor(o))
                                    } else {
                                        var s = -1 * Math.floor(o);
                                        s = Math.max(Math.min(s, 20), 0), a = t.toFixed(s)
                                    }
                                else a = "0";
                                return a
                            },
                            logarithmic: function(t, e, i) {
                                var l = t / Math.pow(10, Math.floor(n.log10(t)));
                                return 0 === t ? "0" : 1 === l || 2 === l || 5 === l || 0 === e || e === i.length - 1 ? t.toExponential() : ""
                            }
                        }
                    }
                }, {
                    46: 46
                }],
                36: [function(t, e, i) {
                    var n = t(26),
                        l = t(27),
                        o = t(46);
                    n._set("global", {
                        tooltips: {
                            enabled: !0,
                            custom: null,
                            mode: "nearest",
                            position: "average",
                            intersect: !0,
                            backgroundColor: "rgba(0,0,0,0.8)",
                            titleFontStyle: "bold",
                            titleSpacing: 2,
                            titleMarginBottom: 6,
                            titleFontColor: "#fff",
                            titleAlign: "left",
                            bodySpacing: 2,
                            bodyFontColor: "#fff",
                            bodyAlign: "left",
                            footerFontStyle: "bold",
                            footerSpacing: 2,
                            footerMarginTop: 6,
                            footerFontColor: "#fff",
                            footerAlign: "left",
                            yPadding: 6,
                            xPadding: 6,
                            caretPadding: 2,
                            caretSize: 5,
                            cornerRadius: 6,
                            multiKeyBackground: "#fff",
                            displayColors: !0,
                            borderColor: "rgba(0,0,0,0)",
                            borderWidth: 0,
                            callbacks: {
                                beforeTitle: o.noop,
                                title: function(t, e) {
                                    var i = "",
                                        n = e.labels,
                                        l = n ? n.length : 0;
                                    if (t.length > 0) {
                                        var o = t[0];
                                        o.xLabel ? i = o.xLabel : l > 0 && o.index < l && (i = n[o.index])
                                    }
                                    return i
                                },
                                afterTitle: o.noop,
                                beforeBody: o.noop,
                                beforeLabel: o.noop,
                                label: function(t, e) {
                                    var i = e.datasets[t.datasetIndex].label || "";
                                    return i && (i += ": "), i += t.yLabel, i
                                },
                                labelColor: function(t, e) {
                                    var i = e.getDatasetMeta(t.datasetIndex).data[t.index]._view;
                                    return {
                                        borderColor: i.borderColor,
                                        backgroundColor: i.backgroundColor
                                    }
                                },
                                labelTextColor: function() {
                                    return this._options.bodyFontColor
                                },
                                afterLabel: o.noop,
                                afterBody: o.noop,
                                beforeFooter: o.noop,
                                footer: o.noop,
                                afterFooter: o.noop
                            }
                        }
                    });
                    var a = {
                        average: function(t) {
                            if (!t.length) return !1;
                            var e, i, n = 0,
                                l = 0,
                                o = 0;
                            for (e = 0, i = t.length; e < i; ++e) {
                                var a = t[e];
                                if (a && a.hasValue()) {
                                    var r = a.tooltipPosition();
                                    n += r.x, l += r.y, ++o
                                }
                            }
                            return {
                                x: Math.round(n / o),
                                y: Math.round(l / o)
                            }
                        },
                        nearest: function(t, e) {
                            var i, n, l, a = e.x,
                                r = e.y,
                                s = Number.POSITIVE_INFINITY;
                            for (i = 0, n = t.length; i < n; ++i) {
                                var c = t[i];
                                if (c && c.hasValue()) {
                                    var u = c.getCenterPoint(),
                                        h = o.distanceBetweenPoints(e, u);
                                    h < s && (s = h, l = c)
                                }
                            }
                            if (l) {
                                var d = l.tooltipPosition();
                                a = d.x, r = d.y
                            }
                            return {
                                x: a,
                                y: r
                            }
                        }
                    };

                    function r(t, e) {
                        var i = o.color(t);
                        return i.alpha(e * i.alpha()).rgbaString()
                    }

                    function s(t, e) {
                        return e && (o.isArray(e) ? Array.prototype.push.apply(t, e) : t.push(e)), t
                    }

                    function c(t) {
                        return ("string" == typeof t || t instanceof String) && t.indexOf("\n") > -1 ? t.split("\n") : t
                    }

                    function u(t) {
                        var e = n.global,
                            i = o.valueOrDefault;
                        return {
                            xPadding: t.xPadding,
                            yPadding: t.yPadding,
                            xAlign: t.xAlign,
                            yAlign: t.yAlign,
                            bodyFontColor: t.bodyFontColor,
                            _bodyFontFamily: i(t.bodyFontFamily, e.defaultFontFamily),
                            _bodyFontStyle: i(t.bodyFontStyle, e.defaultFontStyle),
                            _bodyAlign: t.bodyAlign,
                            bodyFontSize: i(t.bodyFontSize, e.defaultFontSize),
                            bodySpacing: t.bodySpacing,
                            titleFontColor: t.titleFontColor,
                            _titleFontFamily: i(t.titleFontFamily, e.defaultFontFamily),
                            _titleFontStyle: i(t.titleFontStyle, e.defaultFontStyle),
                            titleFontSize: i(t.titleFontSize, e.defaultFontSize),
                            _titleAlign: t.titleAlign,
                            titleSpacing: t.titleSpacing,
                            titleMarginBottom: t.titleMarginBottom,
                            footerFontColor: t.footerFontColor,
                            _footerFontFamily: i(t.footerFontFamily, e.defaultFontFamily),
                            _footerFontStyle: i(t.footerFontStyle, e.defaultFontStyle),
                            footerFontSize: i(t.footerFontSize, e.defaultFontSize),
                            _footerAlign: t.footerAlign,
                            footerSpacing: t.footerSpacing,
                            footerMarginTop: t.footerMarginTop,
                            caretSize: t.caretSize,
                            cornerRadius: t.cornerRadius,
                            backgroundColor: t.backgroundColor,
                            opacity: 0,
                            legendColorBackground: t.multiKeyBackground,
                            displayColors: t.displayColors,
                            borderColor: t.borderColor,
                            borderWidth: t.borderWidth
                        }
                    }

                    function h(t) {
                        return s([], c(t))
                    }(e.exports = l.extend({
                        initialize: function() {
                            this._model = u(this._options), this._lastActive = []
                        },
                        getTitle: function() {
                            var t = this,
                                e = t._options,
                                i = e.callbacks,
                                n = i.beforeTitle.apply(t, arguments),
                                l = i.title.apply(t, arguments),
                                o = i.afterTitle.apply(t, arguments),
                                a = [];
                            return a = s(a, c(n)), a = s(a, c(l)), a = s(a, c(o))
                        },
                        getBeforeBody: function() {
                            return h(this._options.callbacks.beforeBody.apply(this, arguments))
                        },
                        getBody: function(t, e) {
                            var i = this,
                                n = i._options.callbacks,
                                l = [];
                            return o.each(t, (function(t) {
                                var o = {
                                    before: [],
                                    lines: [],
                                    after: []
                                };
                                s(o.before, c(n.beforeLabel.call(i, t, e))), s(o.lines, n.label.call(i, t, e)), s(o.after, c(n.afterLabel.call(i, t, e))), l.push(o)
                            })), l
                        },
                        getAfterBody: function() {
                            return h(this._options.callbacks.afterBody.apply(this, arguments))
                        },
                        getFooter: function() {
                            var t = this,
                                e = t._options.callbacks,
                                i = e.beforeFooter.apply(t, arguments),
                                n = e.footer.apply(t, arguments),
                                l = e.afterFooter.apply(t, arguments),
                                o = [];
                            return o = s(o, c(i)), o = s(o, c(n)), o = s(o, c(l))
                        },
                        update: function(t) {
                            var e, i, n, l, r, s, c, h = this,
                                d = h._options,
                                p = h._model,
                                f = h._model = u(d),
                                m = h._active,
                                v = h._data,
                                g = {
                                    xAlign: p.xAlign,
                                    yAlign: p.yAlign
                                },
                                y = {
                                    x: p.x,
                                    y: p.y
                                },
                                b = {
                                    width: p.width,
                                    height: p.height
                                },
                                x = {
                                    x: p.caretX,
                                    y: p.caretY
                                };
                            if (m.length) {
                                f.opacity = 1;
                                var w = [],
                                    k = [];
                                x = a[d.position].call(h, m, h._eventPosition);
                                var S = [];
                                for (e = 0, i = m.length; e < i; ++e) S.push((n = m[e], l = void 0, r = void 0, s = void 0, c = void 0, l = n._xScale, r = n._yScale || n._scale, s = n._index, c = n._datasetIndex, {
                                    xLabel: l ? l.getLabelForIndex(s, c) : "",
                                    yLabel: r ? r.getLabelForIndex(s, c) : "",
                                    index: s,
                                    datasetIndex: c,
                                    x: n._model.x,
                                    y: n._model.y
                                }));
                                d.filter && (S = S.filter((function(t) {
                                    return d.filter(t, v)
                                }))), d.itemSort && (S = S.sort((function(t, e) {
                                    return d.itemSort(t, e, v)
                                }))), o.each(S, (function(t) {
                                    w.push(d.callbacks.labelColor.call(h, t, h._chart)), k.push(d.callbacks.labelTextColor.call(h, t, h._chart))
                                })), f.title = h.getTitle(S, v), f.beforeBody = h.getBeforeBody(S, v), f.body = h.getBody(S, v), f.afterBody = h.getAfterBody(S, v), f.footer = h.getFooter(S, v), f.x = Math.round(x.x), f.y = Math.round(x.y), f.caretPadding = d.caretPadding, f.labelColors = w, f.labelTextColors = k, f.dataPoints = S, b = function(t, e) {
                                    var i = t._chart.ctx,
                                        n = 2 * e.yPadding,
                                        l = 0,
                                        a = e.body,
                                        r = a.reduce((function(t, e) {
                                            return t + e.before.length + e.lines.length + e.after.length
                                        }), 0);
                                    r += e.beforeBody.length + e.afterBody.length;
                                    var s = e.title.length,
                                        c = e.footer.length,
                                        u = e.titleFontSize,
                                        h = e.bodyFontSize,
                                        d = e.footerFontSize;
                                    n += s * u, n += s ? (s - 1) * e.titleSpacing : 0, n += s ? e.titleMarginBottom : 0, n += r * h, n += r ? (r - 1) * e.bodySpacing : 0, n += c ? e.footerMarginTop : 0, n += c * d, n += c ? (c - 1) * e.footerSpacing : 0;
                                    var p = 0,
                                        f = function(t) {
                                            l = Math.max(l, i.measureText(t).width + p)
                                        };
                                    return i.font = o.fontString(u, e._titleFontStyle, e._titleFontFamily), o.each(e.title, f), i.font = o.fontString(h, e._bodyFontStyle, e._bodyFontFamily), o.each(e.beforeBody.concat(e.afterBody), f), p = e.displayColors ? h + 2 : 0, o.each(a, (function(t) {
                                        o.each(t.before, f), o.each(t.lines, f), o.each(t.after, f)
                                    })), p = 0, i.font = o.fontString(d, e._footerFontStyle, e._footerFontFamily), o.each(e.footer, f), {
                                        width: l += 2 * e.xPadding,
                                        height: n
                                    }
                                }(this, f), y = function(t, e, i, n) {
                                    var l = t.x,
                                        o = t.y,
                                        a = t.caretSize,
                                        r = t.caretPadding,
                                        s = t.cornerRadius,
                                        c = i.xAlign,
                                        u = i.yAlign,
                                        h = a + r,
                                        d = s + r;
                                    return "right" === c ? l -= e.width : "center" === c && ((l -= e.width / 2) + e.width > n.width && (l = n.width - e.width), l < 0 && (l = 0)), "top" === u ? o += h : o -= "bottom" === u ? e.height + h : e.height / 2, "center" === u ? "left" === c ? l += h : "right" === c && (l -= h) : "left" === c ? l -= d : "right" === c && (l += d), {
                                        x: l,
                                        y: o
                                    }
                                }(f, b, g = function(t, e) {
                                    var i, n, l, o, a, r = t._model,
                                        s = t._chart,
                                        c = t._chart.chartArea,
                                        u = "center",
                                        h = "center";
                                    r.y < e.height ? h = "top" : r.y > s.height - e.height && (h = "bottom");
                                    var d = (c.left + c.right) / 2,
                                        p = (c.top + c.bottom) / 2;
                                    "center" === h ? (i = function(t) {
                                        return t <= d
                                    }, n = function(t) {
                                        return t > d
                                    }) : (i = function(t) {
                                        return t <= e.width / 2
                                    }, n = function(t) {
                                        return t >= s.width - e.width / 2
                                    }), l = function(t) {
                                        return t + e.width + r.caretSize + r.caretPadding > s.width
                                    }, o = function(t) {
                                        return t - e.width - r.caretSize - r.caretPadding < 0
                                    }, a = function(t) {
                                        return t <= p ? "top" : "bottom"
                                    }, i(r.x) ? (u = "left", l(r.x) && (u = "center", h = a(r.y))) : n(r.x) && (u = "right", o(r.x) && (u = "center", h = a(r.y)));
                                    var f = t._options;
                                    return {
                                        xAlign: f.xAlign ? f.xAlign : u,
                                        yAlign: f.yAlign ? f.yAlign : h
                                    }
                                }(this, b), h._chart)
                            } else f.opacity = 0;
                            return f.xAlign = g.xAlign, f.yAlign = g.yAlign, f.x = y.x, f.y = y.y, f.width = b.width, f.height = b.height, f.caretX = x.x, f.caretY = x.y, h._model = f, t && d.custom && d.custom.call(h, f), h
                        },
                        drawCaret: function(t, e) {
                            var i = this._chart.ctx,
                                n = this._view,
                                l = this.getCaretPosition(t, e, n);
                            i.lineTo(l.x1, l.y1), i.lineTo(l.x2, l.y2), i.lineTo(l.x3, l.y3)
                        },
                        getCaretPosition: function(t, e, i) {
                            var n, l, o, a, r, s, c = i.caretSize,
                                u = i.cornerRadius,
                                h = i.xAlign,
                                d = i.yAlign,
                                p = t.x,
                                f = t.y,
                                m = e.width,
                                v = e.height;
                            if ("center" === d) r = f + v / 2, "left" === h ? (l = (n = p) - c, o = n, a = r + c, s = r - c) : (l = (n = p + m) + c, o = n, a = r - c, s = r + c);
                            else if ("left" === h ? (n = (l = p + u + c) - c, o = l + c) : "right" === h ? (n = (l = p + m - u - c) - c, o = l + c) : (n = (l = i.caretX) - c, o = l + c), "top" === d) r = (a = f) - c, s = a;
                            else {
                                r = (a = f + v) + c, s = a;
                                var g = o;
                                o = n, n = g
                            }
                            return {
                                x1: n,
                                x2: l,
                                x3: o,
                                y1: a,
                                y2: r,
                                y3: s
                            }
                        },
                        drawTitle: function(t, e, i, n) {
                            var l = e.title;
                            if (l.length) {
                                i.textAlign = e._titleAlign, i.textBaseline = "top";
                                var a, s, c = e.titleFontSize,
                                    u = e.titleSpacing;
                                for (i.fillStyle = r(e.titleFontColor, n), i.font = o.fontString(c, e._titleFontStyle, e._titleFontFamily), a = 0, s = l.length; a < s; ++a) i.fillText(l[a], t.x, t.y), t.y += c + u, a + 1 === l.length && (t.y += e.titleMarginBottom - u)
                            }
                        },
                        drawBody: function(t, e, i, n) {
                            var l = e.bodyFontSize,
                                a = e.bodySpacing,
                                s = e.body;
                            i.textAlign = e._bodyAlign, i.textBaseline = "top", i.font = o.fontString(l, e._bodyFontStyle, e._bodyFontFamily);
                            var c = 0,
                                u = function(e) {
                                    i.fillText(e, t.x + c, t.y), t.y += l + a
                                };
                            i.fillStyle = r(e.bodyFontColor, n), o.each(e.beforeBody, u);
                            var h = e.displayColors;
                            c = h ? l + 2 : 0, o.each(s, (function(a, s) {
                                var c = r(e.labelTextColors[s], n);
                                i.fillStyle = c, o.each(a.before, u), o.each(a.lines, (function(o) {
                                    h && (i.fillStyle = r(e.legendColorBackground, n), i.fillRect(t.x, t.y, l, l), i.lineWidth = 1, i.strokeStyle = r(e.labelColors[s].borderColor, n), i.strokeRect(t.x, t.y, l, l), i.fillStyle = r(e.labelColors[s].backgroundColor, n), i.fillRect(t.x + 1, t.y + 1, l - 2, l - 2), i.fillStyle = c), u(o)
                                })), o.each(a.after, u)
                            })), c = 0, o.each(e.afterBody, u), t.y -= a
                        },
                        drawFooter: function(t, e, i, n) {
                            var l = e.footer;
                            l.length && (t.y += e.footerMarginTop, i.textAlign = e._footerAlign, i.textBaseline = "top", i.fillStyle = r(e.footerFontColor, n), i.font = o.fontString(e.footerFontSize, e._footerFontStyle, e._footerFontFamily), o.each(l, (function(n) {
                                i.fillText(n, t.x, t.y), t.y += e.footerFontSize + e.footerSpacing
                            })))
                        },
                        drawBackground: function(t, e, i, n, l) {
                            i.fillStyle = r(e.backgroundColor, l), i.strokeStyle = r(e.borderColor, l), i.lineWidth = e.borderWidth;
                            var o = e.xAlign,
                                a = e.yAlign,
                                s = t.x,
                                c = t.y,
                                u = n.width,
                                h = n.height,
                                d = e.cornerRadius;
                            i.beginPath(), i.moveTo(s + d, c), "top" === a && this.drawCaret(t, n), i.lineTo(s + u - d, c), i.quadraticCurveTo(s + u, c, s + u, c + d), "center" === a && "right" === o && this.drawCaret(t, n), i.lineTo(s + u, c + h - d), i.quadraticCurveTo(s + u, c + h, s + u - d, c + h), "bottom" === a && this.drawCaret(t, n), i.lineTo(s + d, c + h), i.quadraticCurveTo(s, c + h, s, c + h - d), "center" === a && "left" === o && this.drawCaret(t, n), i.lineTo(s, c + d), i.quadraticCurveTo(s, c, s + d, c), i.closePath(), i.fill(), e.borderWidth > 0 && i.stroke()
                        },
                        draw: function() {
                            var t = this._chart.ctx,
                                e = this._view;
                            if (0 !== e.opacity) {
                                var i = {
                                        width: e.width,
                                        height: e.height
                                    },
                                    n = {
                                        x: e.x,
                                        y: e.y
                                    },
                                    l = Math.abs(e.opacity < .001) ? 0 : e.opacity,
                                    o = e.title.length || e.beforeBody.length || e.body.length || e.afterBody.length || e.footer.length;
                                this._options.enabled && o && (this.drawBackground(n, e, t, i, l), n.x += e.xPadding, n.y += e.yPadding, this.drawTitle(n, e, t, l), this.drawBody(n, e, t, l), this.drawFooter(n, e, t, l))
                            }
                        },
                        handleEvent: function(t) {
                            var e, i = this,
                                n = i._options;
                            return i._lastActive = i._lastActive || [], "mouseout" === t.type ? i._active = [] : i._active = i._chart.getElementsAtEventForMode(t, n.mode, n), (e = !o.arrayEquals(i._active, i._lastActive)) && (i._lastActive = i._active, (n.enabled || n.custom) && (i._eventPosition = {
                                x: t.x,
                                y: t.y
                            }, i.update(!0), i.pivot())), e
                        }
                    })).positioners = a
                }, {
                    26: 26,
                    27: 27,
                    46: 46
                }],
                37: [function(t, e, i) {
                    var n = t(26),
                        l = t(27),
                        o = t(46);
                    n._set("global", {
                        elements: {
                            arc: {
                                backgroundColor: n.global.defaultColor,
                                borderColor: "#fff",
                                borderWidth: 2
                            }
                        }
                    }), e.exports = l.extend({
                        inLabelRange: function(t) {
                            var e = this._view;
                            return !!e && Math.pow(t - e.x, 2) < Math.pow(e.radius + e.hoverRadius, 2)
                        },
                        inRange: function(t, e) {
                            var i = this._view;
                            if (i) {
                                for (var n = o.getAngleFromPoint(i, {
                                        x: t,
                                        y: e
                                    }), l = n.angle, a = n.distance, r = i.startAngle, s = i.endAngle; s < r;) s += 2 * Math.PI;
                                for (; l > s;) l -= 2 * Math.PI;
                                for (; l < r;) l += 2 * Math.PI;
                                var c = l >= r && l <= s,
                                    u = a >= i.innerRadius && a <= i.outerRadius;
                                return c && u
                            }
                            return !1
                        },
                        getCenterPoint: function() {
                            var t = this._view,
                                e = (t.startAngle + t.endAngle) / 2,
                                i = (t.innerRadius + t.outerRadius) / 2;
                            return {
                                x: t.x + Math.cos(e) * i,
                                y: t.y + Math.sin(e) * i
                            }
                        },
                        getArea: function() {
                            var t = this._view;
                            return Math.PI * ((t.endAngle - t.startAngle) / (2 * Math.PI)) * (Math.pow(t.outerRadius, 2) - Math.pow(t.innerRadius, 2))
                        },
                        tooltipPosition: function() {
                            var t = this._view,
                                e = t.startAngle + (t.endAngle - t.startAngle) / 2,
                                i = (t.outerRadius - t.innerRadius) / 2 + t.innerRadius;
                            return {
                                x: t.x + Math.cos(e) * i,
                                y: t.y + Math.sin(e) * i
                            }
                        },
                        draw: function() {
                            var t = this._chart.ctx,
                                e = this._view,
                                i = e.startAngle,
                                n = e.endAngle;
                            t.beginPath(), t.arc(e.x, e.y, e.outerRadius, i, n), t.arc(e.x, e.y, e.innerRadius, n, i, !0), t.closePath(), t.strokeStyle = e.borderColor, t.lineWidth = e.borderWidth, t.fillStyle = e.backgroundColor, t.fill(), t.lineJoin = "bevel", e.borderWidth && t.stroke()
                        }
                    })
                }, {
                    26: 26,
                    27: 27,
                    46: 46
                }],
                38: [function(t, e, i) {
                    var n = t(26),
                        l = t(27),
                        o = t(46),
                        a = n.global;
                    n._set("global", {
                        elements: {
                            line: {
                                tension: .4,
                                backgroundColor: a.defaultColor,
                                borderWidth: 3,
                                borderColor: a.defaultColor,
                                borderCapStyle: "butt",
                                borderDash: [],
                                borderDashOffset: 0,
                                borderJoinStyle: "miter",
                                capBezierPoints: !0,
                                fill: !0
                            }
                        }
                    }), e.exports = l.extend({
                        draw: function() {
                            var t, e, i, n, l = this._view,
                                r = this._chart.ctx,
                                s = l.spanGaps,
                                c = this._children.slice(),
                                u = a.elements.line,
                                h = -1;
                            for (this._loop && c.length && c.push(c[0]), r.save(), r.lineCap = l.borderCapStyle || u.borderCapStyle, r.setLineDash && r.setLineDash(l.borderDash || u.borderDash), r.lineDashOffset = l.borderDashOffset || u.borderDashOffset, r.lineJoin = l.borderJoinStyle || u.borderJoinStyle, r.lineWidth = l.borderWidth || u.borderWidth, r.strokeStyle = l.borderColor || a.defaultColor, r.beginPath(), h = -1, t = 0; t < c.length; ++t) e = c[t], i = o.previousItem(c, t), n = e._view, 0 === t ? n.skip || (r.moveTo(n.x, n.y), h = t) : (i = -1 === h ? i : c[h], n.skip || (h !== t - 1 && !s || -1 === h ? r.moveTo(n.x, n.y) : o.canvas.lineTo(r, i._view, e._view), h = t));
                            r.stroke(), r.restore()
                        }
                    })
                }, {
                    26: 26,
                    27: 27,
                    46: 46
                }],
                39: [function(t, e, i) {
                    var n = t(26),
                        l = t(27),
                        o = t(46),
                        a = n.global.defaultColor;

                    function r(t) {
                        var e = this._view;
                        return !!e && Math.abs(t - e.x) < e.radius + e.hitRadius
                    }
                    n._set("global", {
                        elements: {
                            point: {
                                radius: 3,
                                pointStyle: "circle",
                                backgroundColor: a,
                                borderColor: a,
                                borderWidth: 1,
                                hitRadius: 1,
                                hoverRadius: 4,
                                hoverBorderWidth: 1
                            }
                        }
                    }), e.exports = l.extend({
                        inRange: function(t, e) {
                            var i = this._view;
                            return !!i && Math.pow(t - i.x, 2) + Math.pow(e - i.y, 2) < Math.pow(i.hitRadius + i.radius, 2)
                        },
                        inLabelRange: r,
                        inXRange: r,
                        inYRange: function(t) {
                            var e = this._view;
                            return !!e && Math.abs(t - e.y) < e.radius + e.hitRadius
                        },
                        getCenterPoint: function() {
                            var t = this._view;
                            return {
                                x: t.x,
                                y: t.y
                            }
                        },
                        getArea: function() {
                            return Math.PI * Math.pow(this._view.radius, 2)
                        },
                        tooltipPosition: function() {
                            var t = this._view;
                            return {
                                x: t.x,
                                y: t.y,
                                padding: t.radius + t.borderWidth
                            }
                        },
                        draw: function(t) {
                            var e = this._view,
                                i = this._model,
                                l = this._chart.ctx,
                                r = e.pointStyle,
                                s = e.rotation,
                                c = e.radius,
                                u = e.x,
                                h = e.y;
                            e.skip || (void 0 === t || i.x >= t.left && 1.01 * t.right >= i.x && i.y >= t.top && 1.01 * t.bottom >= i.y) && (l.strokeStyle = e.borderColor || a, l.lineWidth = o.valueOrDefault(e.borderWidth, n.global.elements.point.borderWidth), l.fillStyle = e.backgroundColor || a, o.canvas.drawPoint(l, r, c, u, h, s))
                        }
                    })
                }, {
                    26: 26,
                    27: 27,
                    46: 46
                }],
                40: [function(t, e, i) {
                    var n = t(26),
                        l = t(27);

                    function o(t) {
                        return void 0 !== t._view.width
                    }

                    function a(t) {
                        var e, i, n, l, a = t._view;
                        if (o(t)) {
                            var r = a.width / 2;
                            e = a.x - r, i = a.x + r, n = Math.min(a.y, a.base), l = Math.max(a.y, a.base)
                        } else {
                            var s = a.height / 2;
                            e = Math.min(a.x, a.base), i = Math.max(a.x, a.base), n = a.y - s, l = a.y + s
                        }
                        return {
                            left: e,
                            top: n,
                            right: i,
                            bottom: l
                        }
                    }
                    n._set("global", {
                        elements: {
                            rectangle: {
                                backgroundColor: n.global.defaultColor,
                                borderColor: n.global.defaultColor,
                                borderSkipped: "bottom",
                                borderWidth: 0
                            }
                        }
                    }), e.exports = l.extend({
                        draw: function() {
                            var t, e, i, n, l, o, a, r = this._chart.ctx,
                                s = this._view,
                                c = s.borderWidth;
                            if (s.horizontal ? (t = s.base, e = s.x, i = s.y - s.height / 2, n = s.y + s.height / 2, l = e > t ? 1 : -1, o = 1, a = s.borderSkipped || "left") : (t = s.x - s.width / 2, e = s.x + s.width / 2, i = s.y, l = 1, o = (n = s.base) > i ? 1 : -1, a = s.borderSkipped || "bottom"), c) {
                                var u = Math.min(Math.abs(t - e), Math.abs(i - n)),
                                    h = (c = c > u ? u : c) / 2,
                                    d = t + ("left" !== a ? h * l : 0),
                                    p = e + ("right" !== a ? -h * l : 0),
                                    f = i + ("top" !== a ? h * o : 0),
                                    m = n + ("bottom" !== a ? -h * o : 0);
                                d !== p && (i = f, n = m), f !== m && (t = d, e = p)
                            }
                            r.beginPath(), r.fillStyle = s.backgroundColor, r.strokeStyle = s.borderColor, r.lineWidth = c;
                            var v = [
                                    [t, n],
                                    [t, i],
                                    [e, i],
                                    [e, n]
                                ],
                                g = ["bottom", "left", "top", "right"].indexOf(a, 0);

                            function y(t) {
                                return v[(g + t) % 4]
                            } - 1 === g && (g = 0);
                            var b = y(0);
                            r.moveTo(b[0], b[1]);
                            for (var x = 1; x < 4; x++) b = y(x), r.lineTo(b[0], b[1]);
                            r.fill(), c && r.stroke()
                        },
                        height: function() {
                            var t = this._view;
                            return t.base - t.y
                        },
                        inRange: function(t, e) {
                            var i = !1;
                            if (this._view) {
                                var n = a(this);
                                i = t >= n.left && t <= n.right && e >= n.top && e <= n.bottom
                            }
                            return i
                        },
                        inLabelRange: function(t, e) {
                            if (!this._view) return !1;
                            var i = a(this);
                            return o(this) ? t >= i.left && t <= i.right : e >= i.top && e <= i.bottom
                        },
                        inXRange: function(t) {
                            var e = a(this);
                            return t >= e.left && t <= e.right
                        },
                        inYRange: function(t) {
                            var e = a(this);
                            return t >= e.top && t <= e.bottom
                        },
                        getCenterPoint: function() {
                            var t, e, i = this._view;
                            return o(this) ? (t = i.x, e = (i.y + i.base) / 2) : (t = (i.x + i.base) / 2, e = i.y), {
                                x: t,
                                y: e
                            }
                        },
                        getArea: function() {
                            var t = this._view;
                            return t.width * Math.abs(t.y - t.base)
                        },
                        tooltipPosition: function() {
                            var t = this._view;
                            return {
                                x: t.x,
                                y: t.y
                            }
                        }
                    })
                }, {
                    26: 26,
                    27: 27
                }],
                41: [function(t, e, i) {
                    e.exports = {}, e.exports.Arc = t(37), e.exports.Line = t(38), e.exports.Point = t(39), e.exports.Rectangle = t(40)
                }, {
                    37: 37,
                    38: 38,
                    39: 39,
                    40: 40
                }],
                42: [function(t, e, i) {
                    var n = t(43);
                    i = e.exports = {
                        clear: function(t) {
                            t.ctx.clearRect(0, 0, t.width, t.height)
                        },
                        roundedRect: function(t, e, i, n, l, o) {
                            if (o) {
                                var a = Math.min(o, l / 2 - 1e-7, n / 2 - 1e-7);
                                t.moveTo(e + a, i), t.lineTo(e + n - a, i), t.arcTo(e + n, i, e + n, i + a, a), t.lineTo(e + n, i + l - a), t.arcTo(e + n, i + l, e + n - a, i + l, a), t.lineTo(e + a, i + l), t.arcTo(e, i + l, e, i + l - a, a), t.lineTo(e, i + a), t.arcTo(e, i, e + a, i, a), t.closePath(), t.moveTo(e, i)
                            } else t.rect(e, i, n, l)
                        },
                        drawPoint: function(t, e, i, n, o, a) {
                            var r, s, c, u, h, d;
                            if (a = a || 0, !e || "object" !== l(e) || "[object HTMLImageElement]" !== (r = e.toString()) && "[object HTMLCanvasElement]" !== r) {
                                if (!(isNaN(i) || i <= 0)) {
                                    switch (t.save(), t.translate(n, o), t.rotate(a * Math.PI / 180), t.beginPath(), e) {
                                        default:
                                            t.arc(0, 0, i, 0, 2 * Math.PI), t.closePath();
                                            break;
                                        case "triangle":
                                            h = (s = 3 * i / Math.sqrt(3)) * Math.sqrt(3) / 2, t.moveTo(-s / 2, h / 3), t.lineTo(s / 2, h / 3), t.lineTo(0, -2 * h / 3), t.closePath();
                                            break;
                                        case "rect":
                                            d = 1 / Math.SQRT2 * i, t.rect(-d, -d, 2 * d, 2 * d);
                                            break;
                                        case "rectRounded":
                                            var p = i / Math.SQRT2,
                                                f = -p,
                                                m = -p,
                                                v = Math.SQRT2 * i;
                                            this.roundedRect(t, f, m, v, v, .425 * i);
                                            break;
                                        case "rectRot":
                                            d = 1 / Math.SQRT2 * i, t.moveTo(-d, 0), t.lineTo(0, d), t.lineTo(d, 0), t.lineTo(0, -d), t.closePath();
                                            break;
                                        case "cross":
                                            t.moveTo(0, i), t.lineTo(0, -i), t.moveTo(-i, 0), t.lineTo(i, 0);
                                            break;
                                        case "crossRot":
                                            c = Math.cos(Math.PI / 4) * i, u = Math.sin(Math.PI / 4) * i, t.moveTo(-c, -u), t.lineTo(c, u), t.moveTo(-c, u), t.lineTo(c, -u);
                                            break;
                                        case "star":
                                            t.moveTo(0, i), t.lineTo(0, -i), t.moveTo(-i, 0), t.lineTo(i, 0), c = Math.cos(Math.PI / 4) * i, u = Math.sin(Math.PI / 4) * i, t.moveTo(-c, -u), t.lineTo(c, u), t.moveTo(-c, u), t.lineTo(c, -u);
                                            break;
                                        case "line":
                                            t.moveTo(-i, 0), t.lineTo(i, 0);
                                            break;
                                        case "dash":
                                            t.moveTo(0, 0), t.lineTo(i, 0)
                                    }
                                    t.fill(), t.stroke(), t.restore()
                                }
                            } else t.drawImage(e, n - e.width / 2, o - e.height / 2, e.width, e.height)
                        },
                        clipArea: function(t, e) {
                            t.save(), t.beginPath(), t.rect(e.left, e.top, e.right - e.left, e.bottom - e.top), t.clip()
                        },
                        unclipArea: function(t) {
                            t.restore()
                        },
                        lineTo: function(t, e, i, n) {
                            if (i.steppedLine) return "after" === i.steppedLine && !n || "after" !== i.steppedLine && n ? t.lineTo(e.x, i.y) : t.lineTo(i.x, e.y), void t.lineTo(i.x, i.y);
                            i.tension ? t.bezierCurveTo(n ? e.controlPointPreviousX : e.controlPointNextX, n ? e.controlPointPreviousY : e.controlPointNextY, n ? i.controlPointNextX : i.controlPointPreviousX, n ? i.controlPointNextY : i.controlPointPreviousY, i.x, i.y) : t.lineTo(i.x, i.y)
                        }
                    };
                    n.clear = i.clear, n.drawRoundedRectangle = function(t) {
                        t.beginPath(), i.roundedRect.apply(i, arguments)
                    }
                }, {
                    43: 43
                }],
                43: [function(t, e, i) {
                    var n, l = {
                        noop: function() {},
                        uid: (n = 0, function() {
                            return n++
                        }),
                        isNullOrUndef: function(t) {
                            return null == t
                        },
                        isArray: Array.isArray ? Array.isArray : function(t) {
                            return "[object Array]" === Object.prototype.toString.call(t)
                        },
                        isObject: function(t) {
                            return null !== t && "[object Object]" === Object.prototype.toString.call(t)
                        },
                        valueOrDefault: function(t, e) {
                            return void 0 === t ? e : t
                        },
                        valueAtIndexOrDefault: function(t, e, i) {
                            return l.valueOrDefault(l.isArray(t) ? t[e] : t, i)
                        },
                        callback: function(t, e, i) {
                            if (t && "function" == typeof t.call) return t.apply(i, e)
                        },
                        each: function(t, e, i, n) {
                            var o, a, r;
                            if (l.isArray(t))
                                if (a = t.length, n)
                                    for (o = a - 1; o >= 0; o--) e.call(i, t[o], o);
                                else
                                    for (o = 0; o < a; o++) e.call(i, t[o], o);
                            else if (l.isObject(t))
                                for (a = (r = Object.keys(t)).length, o = 0; o < a; o++) e.call(i, t[r[o]], r[o])
                        },
                        arrayEquals: function(t, e) {
                            var i, n, o, a;
                            if (!t || !e || t.length !== e.length) return !1;
                            for (i = 0, n = t.length; i < n; ++i)
                                if (o = t[i], a = e[i], o instanceof Array && a instanceof Array) {
                                    if (!l.arrayEquals(o, a)) return !1
                                } else if (o !== a) return !1;
                            return !0
                        },
                        clone: function(t) {
                            if (l.isArray(t)) return t.map(l.clone);
                            if (l.isObject(t)) {
                                for (var e = {}, i = Object.keys(t), n = i.length, o = 0; o < n; ++o) e[i[o]] = l.clone(t[i[o]]);
                                return e
                            }
                            return t
                        },
                        _merger: function(t, e, i, n) {
                            var o = e[t],
                                a = i[t];
                            l.isObject(o) && l.isObject(a) ? l.merge(o, a, n) : e[t] = l.clone(a)
                        },
                        _mergerIf: function(t, e, i) {
                            var n = e[t],
                                o = i[t];
                            l.isObject(n) && l.isObject(o) ? l.mergeIf(n, o) : e.hasOwnProperty(t) || (e[t] = l.clone(o))
                        },
                        merge: function(t, e, i) {
                            var n, o, a, r, s, c = l.isArray(e) ? e : [e],
                                u = c.length;
                            if (!l.isObject(t)) return t;
                            for (n = (i = i || {}).merger || l._merger, o = 0; o < u; ++o)
                                if (e = c[o], l.isObject(e))
                                    for (s = 0, r = (a = Object.keys(e)).length; s < r; ++s) n(a[s], t, e, i);
                            return t
                        },
                        mergeIf: function(t, e) {
                            return l.merge(t, e, {
                                merger: l._mergerIf
                            })
                        },
                        extend: function(t) {
                            for (var e = function(e, i) {
                                    t[i] = e
                                }, i = 1, n = arguments.length; i < n; ++i) l.each(arguments[i], e);
                            return t
                        },
                        inherits: function(t) {
                            var e = this,
                                i = t && t.hasOwnProperty("constructor") ? t.constructor : function() {
                                    return e.apply(this, arguments)
                                },
                                n = function() {
                                    this.constructor = i
                                };
                            return n.prototype = e.prototype, i.prototype = new n, i.extend = l.inherits, t && l.extend(i.prototype, t), i.__super__ = e.prototype, i
                        }
                    };
                    e.exports = l, l.callCallback = l.callback, l.indexOf = function(t, e, i) {
                        return Array.prototype.indexOf.call(t, e, i)
                    }, l.getValueOrDefault = l.valueOrDefault, l.getValueAtIndexOrDefault = l.valueAtIndexOrDefault
                }, {}],
                44: [function(t, e, i) {
                    var n = t(43),
                        l = {
                            linear: function(t) {
                                return t
                            },
                            easeInQuad: function(t) {
                                return t * t
                            },
                            easeOutQuad: function(t) {
                                return -t * (t - 2)
                            },
                            easeInOutQuad: function(t) {
                                return (t /= .5) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1)
                            },
                            easeInCubic: function(t) {
                                return t * t * t
                            },
                            easeOutCubic: function(t) {
                                return (t -= 1) * t * t + 1
                            },
                            easeInOutCubic: function(t) {
                                return (t /= .5) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2)
                            },
                            easeInQuart: function(t) {
                                return t * t * t * t
                            },
                            easeOutQuart: function(t) {
                                return -((t -= 1) * t * t * t - 1)
                            },
                            easeInOutQuart: function(t) {
                                return (t /= .5) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2)
                            },
                            easeInQuint: function(t) {
                                return t * t * t * t * t
                            },
                            easeOutQuint: function(t) {
                                return (t -= 1) * t * t * t * t + 1
                            },
                            easeInOutQuint: function(t) {
                                return (t /= .5) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2)
                            },
                            easeInSine: function(t) {
                                return 1 - Math.cos(t * (Math.PI / 2))
                            },
                            easeOutSine: function(t) {
                                return Math.sin(t * (Math.PI / 2))
                            },
                            easeInOutSine: function(t) {
                                return -.5 * (Math.cos(Math.PI * t) - 1)
                            },
                            easeInExpo: function(t) {
                                return 0 === t ? 0 : Math.pow(2, 10 * (t - 1))
                            },
                            easeOutExpo: function(t) {
                                return 1 === t ? 1 : 1 - Math.pow(2, -10 * t)
                            },
                            easeInOutExpo: function(t) {
                                return 0 === t ? 0 : 1 === t ? 1 : (t /= .5) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * --t))
                            },
                            easeInCirc: function(t) {
                                return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1)
                            },
                            easeOutCirc: function(t) {
                                return Math.sqrt(1 - (t -= 1) * t)
                            },
                            easeInOutCirc: function(t) {
                                return (t /= .5) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1)
                            },
                            easeInElastic: function(t) {
                                var e = 1.70158,
                                    i = 0,
                                    n = 1;
                                return 0 === t ? 0 : 1 === t ? 1 : (i || (i = .3), n < 1 ? (n = 1, e = i / 4) : e = i / (2 * Math.PI) * Math.asin(1 / n), -n * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / i))
                            },
                            easeOutElastic: function(t) {
                                var e = 1.70158,
                                    i = 0,
                                    n = 1;
                                return 0 === t ? 0 : 1 === t ? 1 : (i || (i = .3), n < 1 ? (n = 1, e = i / 4) : e = i / (2 * Math.PI) * Math.asin(1 / n), n * Math.pow(2, -10 * t) * Math.sin((t - e) * (2 * Math.PI) / i) + 1)
                            },
                            easeInOutElastic: function(t) {
                                var e = 1.70158,
                                    i = 0,
                                    n = 1;
                                return 0 === t ? 0 : 2 == (t /= .5) ? 1 : (i || (i = .45), n < 1 ? (n = 1, e = i / 4) : e = i / (2 * Math.PI) * Math.asin(1 / n), t < 1 ? n * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / i) * -.5 : n * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / i) * .5 + 1)
                            },
                            easeInBack: function(t) {
                                var e = 1.70158;
                                return t * t * ((e + 1) * t - e)
                            },
                            easeOutBack: function(t) {
                                var e = 1.70158;
                                return (t -= 1) * t * ((e + 1) * t + e) + 1
                            },
                            easeInOutBack: function(t) {
                                var e = 1.70158;
                                return (t /= .5) < 1 ? t * t * ((1 + (e *= 1.525)) * t - e) * .5 : .5 * ((t -= 2) * t * ((1 + (e *= 1.525)) * t + e) + 2)
                            },
                            easeInBounce: function(t) {
                                return 1 - l.easeOutBounce(1 - t)
                            },
                            easeOutBounce: function(t) {
                                return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
                            },
                            easeInOutBounce: function(t) {
                                return t < .5 ? .5 * l.easeInBounce(2 * t) : .5 * l.easeOutBounce(2 * t - 1) + .5
                            }
                        };
                    e.exports = {
                        effects: l
                    }, n.easingEffects = l
                }, {
                    43: 43
                }],
                45: [function(t, e, i) {
                    var n = t(43);
                    e.exports = {
                        toLineHeight: function(t, e) {
                            var i = ("" + t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);
                            if (!i || "normal" === i[1]) return 1.2 * e;
                            switch (t = +i[2], i[3]) {
                                case "px":
                                    return t;
                                case "%":
                                    t /= 100
                            }
                            return e * t
                        },
                        toPadding: function(t) {
                            var e, i, l, o;
                            return n.isObject(t) ? (e = +t.top || 0, i = +t.right || 0, l = +t.bottom || 0, o = +t.left || 0) : e = i = l = o = +t || 0, {
                                top: e,
                                right: i,
                                bottom: l,
                                left: o,
                                height: e + l,
                                width: o + i
                            }
                        },
                        resolve: function(t, e, i) {
                            var l, o, a;
                            for (l = 0, o = t.length; l < o; ++l)
                                if (void 0 !== (a = t[l]) && (void 0 !== e && "function" == typeof a && (a = a(e)), void 0 !== i && n.isArray(a) && (a = a[i]), void 0 !== a)) return a
                        }
                    }
                }, {
                    43: 43
                }],
                46: [function(t, e, i) {
                    e.exports = t(43), e.exports.easing = t(44), e.exports.canvas = t(42), e.exports.options = t(45)
                }, {
                    42: 42,
                    43: 43,
                    44: 44,
                    45: 45
                }],
                47: [function(t, e, i) {
                    e.exports = {
                        acquireContext: function(t) {
                            return t && t.canvas && (t = t.canvas), t && t.getContext("2d") || null
                        }
                    }
                }, {}],
                48: [function(t, e, i) {
                    var n = t(46),
                        l = "$chartjs",
                        o = "chartjs-",
                        a = o + "render-monitor",
                        r = o + "render-animation",
                        s = ["animationstart", "webkitAnimationStart"],
                        c = {
                            touchstart: "mousedown",
                            touchmove: "mousemove",
                            touchend: "mouseup",
                            pointerenter: "mouseenter",
                            pointerdown: "mousedown",
                            pointermove: "mousemove",
                            pointerup: "mouseup",
                            pointerleave: "mouseout",
                            pointerout: "mouseout"
                        };

                    function u(t, e) {
                        var i = n.getStyle(t, e),
                            l = i && i.match(/^(\d+)(\.\d+)?px$/);
                        return l ? Number(l[1]) : void 0
                    }
                    var h = !! function() {
                        var t = !1;
                        try {
                            var e = Object.defineProperty({}, "passive", {
                                get: function() {
                                    t = !0
                                }
                            });
                            window.addEventListener("e", null, e)
                        } catch (t) {}
                        return t
                    }() && {
                        passive: !0
                    };

                    function d(t, e, i) {
                        t.addEventListener(e, i, h)
                    }

                    function p(t, e, i) {
                        t.removeEventListener(e, i, h)
                    }

                    function f(t, e, i, n, l) {
                        return {
                            type: t,
                            chart: e,
                            native: l || null,
                            x: void 0 !== i ? i : null,
                            y: void 0 !== n ? n : null
                        }
                    }

                    function m(t, e, i) {
                        var c, u, h, p, m = t[l] || (t[l] = {}),
                            v = m.resizer = function(t) {
                                var e = document.createElement("div"),
                                    i = o + "size-monitor",
                                    n = "position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";
                                e.style.cssText = n, e.className = i, e.innerHTML = '<div class="' + i + '-expand" style="' + n + '"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="' + i + '-shrink" style="' + n + '"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div>';
                                var l = e.childNodes[0],
                                    a = e.childNodes[1];
                                e._reset = function() {
                                    l.scrollLeft = 1e6, l.scrollTop = 1e6, a.scrollLeft = 1e6, a.scrollTop = 1e6
                                };
                                var r = function() {
                                    e._reset(), t()
                                };
                                return d(l, "scroll", r.bind(l, "expand")), d(a, "scroll", r.bind(a, "shrink")), e
                            }((c = function() {
                                if (m.resizer) return e(f("resize", i))
                            }, h = !1, p = [], function() {
                                p = Array.prototype.slice.call(arguments), u = u || this, h || (h = !0, n.requestAnimFrame.call(window, (function() {
                                    h = !1, c.apply(u, p)
                                })))
                            }));
                        ! function(t, e) {
                            var i = t[l] || (t[l] = {}),
                                o = i.renderProxy = function(t) {
                                    t.animationName === r && e()
                                };
                            n.each(s, (function(e) {
                                d(t, e, o)
                            })), i.reflow = !!t.offsetParent, t.classList.add(a)
                        }(t, (function() {
                            if (m.resizer) {
                                var e = t.parentNode;
                                e && e !== v.parentNode && e.insertBefore(v, e.firstChild), v._reset()
                            }
                        }))
                    }

                    function v(t) {
                        var e = t[l] || {},
                            i = e.resizer;
                        delete e.resizer,
                            function(t) {
                                var e = t[l] || {},
                                    i = e.renderProxy;
                                i && (n.each(s, (function(e) {
                                    p(t, e, i)
                                })), delete e.renderProxy), t.classList.remove(a)
                            }(t), i && i.parentNode && i.parentNode.removeChild(i)
                    }
                    e.exports = {
                        _enabled: "undefined" != typeof window && "undefined" != typeof document,
                        initialize: function() {
                            var t, e, i, n = "from{opacity:0.99}to{opacity:1}";
                            e = "@-webkit-keyframes " + r + "{" + n + "}@keyframes " + r + "{" + n + "}." + a + "{-webkit-animation:" + r + " 0.001s;animation:" + r + " 0.001s;}", i = (t = this)._style || document.createElement("style"), t._style || (t._style = i, e = "/* Chart.js */\n" + e, i.setAttribute("type", "text/css"), document.getElementsByTagName("head")[0].appendChild(i)), i.appendChild(document.createTextNode(e))
                        },
                        acquireContext: function(t, e) {
                            "string" == typeof t ? t = document.getElementById(t) : t.length && (t = t[0]), t && t.canvas && (t = t.canvas);
                            var i = t && t.getContext && t.getContext("2d");
                            return i && i.canvas === t ? (function(t, e) {
                                var i = t.style,
                                    n = t.getAttribute("height"),
                                    o = t.getAttribute("width");
                                if (t[l] = {
                                        initial: {
                                            height: n,
                                            width: o,
                                            style: {
                                                display: i.display,
                                                height: i.height,
                                                width: i.width
                                            }
                                        }
                                    }, i.display = i.display || "block", null === o || "" === o) {
                                    var a = u(t, "width");
                                    void 0 !== a && (t.width = a)
                                }
                                if (null === n || "" === n)
                                    if ("" === t.style.height) t.height = t.width / (e.options.aspectRatio || 2);
                                    else {
                                        var r = u(t, "height");
                                        void 0 !== a && (t.height = r)
                                    }
                            }(t, e), i) : null
                        },
                        releaseContext: function(t) {
                            var e = t.canvas;
                            if (e[l]) {
                                var i = e[l].initial;
                                ["height", "width"].forEach((function(t) {
                                    var l = i[t];
                                    n.isNullOrUndef(l) ? e.removeAttribute(t) : e.setAttribute(t, l)
                                })), n.each(i.style || {}, (function(t, i) {
                                    e.style[i] = t
                                })), e.width = e.width, delete e[l]
                            }
                        },
                        addEventListener: function(t, e, i) {
                            var o = t.canvas;
                            if ("resize" !== e) {
                                var a = i[l] || (i[l] = {});
                                d(o, e, (a.proxies || (a.proxies = {}))[t.id + "_" + e] = function(e) {
                                    i(function(t, e) {
                                        var i = c[t.type] || t.type,
                                            l = n.getRelativePosition(t, e);
                                        return f(i, e, l.x, l.y, t)
                                    }(e, t))
                                })
                            } else m(o, i, t)
                        },
                        removeEventListener: function(t, e, i) {
                            var n = t.canvas;
                            if ("resize" !== e) {
                                var o = ((i[l] || {}).proxies || {})[t.id + "_" + e];
                                o && p(n, e, o)
                            } else v(n)
                        }
                    }, n.addEvent = d, n.removeEvent = p
                }, {
                    46: 46
                }],
                49: [function(t, e, i) {
                    var n = t(46),
                        l = t(47),
                        o = t(48),
                        a = o._enabled ? o : l;
                    e.exports = n.extend({
                        initialize: function() {},
                        acquireContext: function() {},
                        releaseContext: function() {},
                        addEventListener: function() {},
                        removeEventListener: function() {}
                    }, a)
                }, {
                    46: 46,
                    47: 47,
                    48: 48
                }],
                50: [function(t, e, i) {
                    e.exports = {}, e.exports.filler = t(51), e.exports.legend = t(52), e.exports.title = t(53)
                }, {
                    51: 51,
                    52: 52,
                    53: 53
                }],
                51: [function(t, e, i) {
                    var n = t(26),
                        l = t(41),
                        o = t(46);
                    n._set("global", {
                        plugins: {
                            filler: {
                                propagate: !0
                            }
                        }
                    });
                    var a = {
                        dataset: function(t) {
                            var e = t.fill,
                                i = t.chart,
                                n = i.getDatasetMeta(e),
                                l = n && i.isDatasetVisible(e) && n.dataset._children || [],
                                o = l.length || 0;
                            return o ? function(t, e) {
                                return e < o && l[e]._view || null
                            } : null
                        },
                        boundary: function(t) {
                            var e = t.boundary,
                                i = e ? e.x : null,
                                n = e ? e.y : null;
                            return function(t) {
                                return {
                                    x: null === i ? t.x : i,
                                    y: null === n ? t.y : n
                                }
                            }
                        }
                    };

                    function r(t, e, i) {
                        var n, l = t._model || {},
                            o = l.fill;
                        if (void 0 === o && (o = !!l.backgroundColor), !1 === o || null === o) return !1;
                        if (!0 === o) return "origin";
                        if (n = parseFloat(o, 10), isFinite(n) && Math.floor(n) === n) return "-" !== o[0] && "+" !== o[0] || (n = e + n), !(n === e || n < 0 || n >= i) && n;
                        switch (o) {
                            case "bottom":
                                return "start";
                            case "top":
                                return "end";
                            case "zero":
                                return "origin";
                            case "origin":
                            case "start":
                            case "end":
                                return o;
                            default:
                                return !1
                        }
                    }

                    function s(t) {
                        var e, i = t.el._model || {},
                            n = t.el._scale || {},
                            l = t.fill,
                            o = null;
                        if (isFinite(l)) return null;
                        if ("start" === l ? o = void 0 === i.scaleBottom ? n.bottom : i.scaleBottom : "end" === l ? o = void 0 === i.scaleTop ? n.top : i.scaleTop : void 0 !== i.scaleZero ? o = i.scaleZero : n.getBasePosition ? o = n.getBasePosition() : n.getBasePixel && (o = n.getBasePixel()), null != o) {
                            if (void 0 !== o.x && void 0 !== o.y) return o;
                            if ("number" == typeof o && isFinite(o)) return {
                                x: (e = n.isHorizontal()) ? o : null,
                                y: e ? null : o
                            }
                        }
                        return null
                    }

                    function c(t, e, i) {
                        var n, l = t[e].fill,
                            o = [e];
                        if (!i) return l;
                        for (; !1 !== l && -1 === o.indexOf(l);) {
                            if (!isFinite(l)) return l;
                            if (!(n = t[l])) return !1;
                            if (n.visible) return l;
                            o.push(l), l = n.fill
                        }
                        return !1
                    }

                    function u(t) {
                        var e = t.fill,
                            i = "dataset";
                        return !1 === e ? null : (isFinite(e) || (i = "boundary"), a[i](t))
                    }

                    function h(t) {
                        return t && !t.skip
                    }

                    function d(t, e, i, n, l) {
                        var a;
                        if (n && l) {
                            for (t.moveTo(e[0].x, e[0].y), a = 1; a < n; ++a) o.canvas.lineTo(t, e[a - 1], e[a]);
                            for (t.lineTo(i[l - 1].x, i[l - 1].y), a = l - 1; a > 0; --a) o.canvas.lineTo(t, i[a], i[a - 1], !0)
                        }
                    }
                    e.exports = {
                        id: "filler",
                        afterDatasetsUpdate: function(t, e) {
                            var i, n, o, a, h = (t.data.datasets || []).length,
                                d = e.propagate,
                                p = [];
                            for (n = 0; n < h; ++n) a = null, (o = (i = t.getDatasetMeta(n)).dataset) && o._model && o instanceof l.Line && (a = {
                                visible: t.isDatasetVisible(n),
                                fill: r(o, n, h),
                                chart: t,
                                el: o
                            }), i.$filler = a, p.push(a);
                            for (n = 0; n < h; ++n)(a = p[n]) && (a.fill = c(p, n, d), a.boundary = s(a), a.mapper = u(a))
                        },
                        beforeDatasetDraw: function(t, e) {
                            var i = e.meta.$filler;
                            if (i) {
                                var l = t.ctx,
                                    a = i.el,
                                    r = a._view,
                                    s = a._children || [],
                                    c = i.mapper,
                                    u = r.backgroundColor || n.global.defaultColor;
                                c && u && s.length && (o.canvas.clipArea(l, t.chartArea), function(t, e, i, n, l, o) {
                                    var a, r, s, c, u, p, f, m = e.length,
                                        v = n.spanGaps,
                                        g = [],
                                        y = [],
                                        b = 0,
                                        x = 0;
                                    for (t.beginPath(), a = 0, r = m + !!o; a < r; ++a) u = i(c = e[s = a % m]._view, s, n), p = h(c), f = h(u), p && f ? (b = g.push(c), x = y.push(u)) : b && x && (v ? (p && g.push(c), f && y.push(u)) : (d(t, g, y, b, x), b = x = 0, g = [], y = []));
                                    d(t, g, y, b, x), t.closePath(), t.fillStyle = l, t.fill()
                                }(l, s, c, r, u, a._loop), o.canvas.unclipArea(l))
                            }
                        }
                    }
                }, {
                    26: 26,
                    41: 41,
                    46: 46
                }],
                52: [function(t, e, i) {
                    var n = t(26),
                        l = t(27),
                        o = t(46),
                        a = t(31),
                        r = o.noop;

                    function s(t, e) {
                        return t.usePointStyle ? e * Math.SQRT2 : t.boxWidth
                    }
                    n._set("global", {
                        legend: {
                            display: !0,
                            position: "top",
                            fullWidth: !0,
                            reverse: !1,
                            weight: 1e3,
                            onClick: function(t, e) {
                                var i = e.datasetIndex,
                                    n = this.chart,
                                    l = n.getDatasetMeta(i);
                                l.hidden = null === l.hidden ? !n.data.datasets[i].hidden : null, n.update()
                            },
                            onHover: null,
                            labels: {
                                boxWidth: 40,
                                padding: 10,
                                generateLabels: function(t) {
                                    var e = t.data;
                                    return o.isArray(e.datasets) ? e.datasets.map((function(e, i) {
                                        return {
                                            text: e.label,
                                            fillStyle: o.isArray(e.backgroundColor) ? e.backgroundColor[0] : e.backgroundColor,
                                            hidden: !t.isDatasetVisible(i),
                                            lineCap: e.borderCapStyle,
                                            lineDash: e.borderDash,
                                            lineDashOffset: e.borderDashOffset,
                                            lineJoin: e.borderJoinStyle,
                                            lineWidth: e.borderWidth,
                                            strokeStyle: e.borderColor,
                                            pointStyle: e.pointStyle,
                                            datasetIndex: i
                                        }
                                    }), this) : []
                                }
                            }
                        },
                        legendCallback: function(t) {
                            var e = [];
                            e.push('<ul class="' + t.id + '-legend">');
                            for (var i = 0; i < t.data.datasets.length; i++) e.push('<li><span style="background-color:' + t.data.datasets[i].backgroundColor + '"></span>'), t.data.datasets[i].label && e.push(t.data.datasets[i].label), e.push("</li>");
                            return e.push("</ul>"), e.join("")
                        }
                    });
                    var c = l.extend({
                        initialize: function(t) {
                            o.extend(this, t), this.legendHitBoxes = [], this.doughnutMode = !1
                        },
                        beforeUpdate: r,
                        update: function(t, e, i) {
                            var n = this;
                            return n.beforeUpdate(), n.maxWidth = t, n.maxHeight = e, n.margins = i, n.beforeSetDimensions(), n.setDimensions(), n.afterSetDimensions(), n.beforeBuildLabels(), n.buildLabels(), n.afterBuildLabels(), n.beforeFit(), n.fit(), n.afterFit(), n.afterUpdate(), n.minSize
                        },
                        afterUpdate: r,
                        beforeSetDimensions: r,
                        setDimensions: function() {
                            var t = this;
                            t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0, t.minSize = {
                                width: 0,
                                height: 0
                            }
                        },
                        afterSetDimensions: r,
                        beforeBuildLabels: r,
                        buildLabels: function() {
                            var t = this,
                                e = t.options.labels || {},
                                i = o.callback(e.generateLabels, [t.chart], t) || [];
                            e.filter && (i = i.filter((function(i) {
                                return e.filter(i, t.chart.data)
                            }))), t.options.reverse && i.reverse(), t.legendItems = i
                        },
                        afterBuildLabels: r,
                        beforeFit: r,
                        fit: function() {
                            var t = this,
                                e = t.options,
                                i = e.labels,
                                l = e.display,
                                a = t.ctx,
                                r = n.global,
                                c = o.valueOrDefault,
                                u = c(i.fontSize, r.defaultFontSize),
                                h = c(i.fontStyle, r.defaultFontStyle),
                                d = c(i.fontFamily, r.defaultFontFamily),
                                p = o.fontString(u, h, d),
                                f = t.legendHitBoxes = [],
                                m = t.minSize,
                                v = t.isHorizontal();
                            if (v ? (m.width = t.maxWidth, m.height = l ? 10 : 0) : (m.width = l ? 10 : 0, m.height = t.maxHeight), l)
                                if (a.font = p, v) {
                                    var g = t.lineWidths = [0],
                                        y = t.legendItems.length ? u + i.padding : 0;
                                    a.textAlign = "left", a.textBaseline = "top", o.each(t.legendItems, (function(e, n) {
                                        var l = s(i, u) + u / 2 + a.measureText(e.text).width;
                                        g[g.length - 1] + l + i.padding >= t.width && (y += u + i.padding, g[g.length] = t.left), f[n] = {
                                            left: 0,
                                            top: 0,
                                            width: l,
                                            height: u
                                        }, g[g.length - 1] += l + i.padding
                                    })), m.height += y
                                } else {
                                    var b = i.padding,
                                        x = t.columnWidths = [],
                                        w = i.padding,
                                        k = 0,
                                        S = 0,
                                        M = u + b;
                                    o.each(t.legendItems, (function(t, e) {
                                        var n = s(i, u) + u / 2 + a.measureText(t.text).width;
                                        S + M > m.height && (w += k + i.padding, x.push(k), k = 0, S = 0), k = Math.max(k, n), S += M, f[e] = {
                                            left: 0,
                                            top: 0,
                                            width: n,
                                            height: u
                                        }
                                    })), w += k, x.push(k), m.width += w
                                } t.width = m.width, t.height = m.height
                        },
                        afterFit: r,
                        isHorizontal: function() {
                            return "top" === this.options.position || "bottom" === this.options.position
                        },
                        draw: function() {
                            var t = this,
                                e = t.options,
                                i = e.labels,
                                l = n.global,
                                a = l.elements.line,
                                r = t.width,
                                c = t.lineWidths;
                            if (e.display) {
                                var u, h = t.ctx,
                                    d = o.valueOrDefault,
                                    p = d(i.fontColor, l.defaultFontColor),
                                    f = d(i.fontSize, l.defaultFontSize),
                                    m = d(i.fontStyle, l.defaultFontStyle),
                                    v = d(i.fontFamily, l.defaultFontFamily),
                                    g = o.fontString(f, m, v);
                                h.textAlign = "left", h.textBaseline = "middle", h.lineWidth = .5, h.strokeStyle = p, h.fillStyle = p, h.font = g;
                                var y = s(i, f),
                                    b = t.legendHitBoxes,
                                    x = t.isHorizontal();
                                u = x ? {
                                    x: t.left + (r - c[0]) / 2,
                                    y: t.top + i.padding,
                                    line: 0
                                } : {
                                    x: t.left + i.padding,
                                    y: t.top + i.padding,
                                    line: 0
                                };
                                var w = f + i.padding;
                                o.each(t.legendItems, (function(n, s) {
                                    var p = h.measureText(n.text).width,
                                        m = y + f / 2 + p,
                                        v = u.x,
                                        g = u.y;
                                    x ? v + m >= r && (g = u.y += w, u.line++, v = u.x = t.left + (r - c[u.line]) / 2) : g + w > t.bottom && (v = u.x = v + t.columnWidths[u.line] + i.padding, g = u.y = t.top + i.padding, u.line++),
                                        function(t, i, n) {
                                            if (!(isNaN(y) || y <= 0)) {
                                                h.save(), h.fillStyle = d(n.fillStyle, l.defaultColor), h.lineCap = d(n.lineCap, a.borderCapStyle), h.lineDashOffset = d(n.lineDashOffset, a.borderDashOffset), h.lineJoin = d(n.lineJoin, a.borderJoinStyle), h.lineWidth = d(n.lineWidth, a.borderWidth), h.strokeStyle = d(n.strokeStyle, l.defaultColor);
                                                var r = 0 === d(n.lineWidth, a.borderWidth);
                                                if (h.setLineDash && h.setLineDash(d(n.lineDash, a.borderDash)), e.labels && e.labels.usePointStyle) {
                                                    var s = f * Math.SQRT2 / 2,
                                                        c = s / Math.SQRT2,
                                                        u = t + c,
                                                        p = i + c;
                                                    o.canvas.drawPoint(h, n.pointStyle, s, u, p)
                                                } else r || h.strokeRect(t, i, y, f), h.fillRect(t, i, y, f);
                                                h.restore()
                                            }
                                        }(v, g, n), b[s].left = v, b[s].top = g,
                                        function(t, e, i, n) {
                                            var l = f / 2,
                                                o = y + l + t,
                                                a = e + l;
                                            h.fillText(i.text, o, a), i.hidden && (h.beginPath(), h.lineWidth = 2, h.moveTo(o, a), h.lineTo(o + n, a), h.stroke())
                                        }(v, g, n, p), x ? u.x += m + i.padding : u.y += w
                                }))
                            }
                        },
                        handleEvent: function(t) {
                            var e = this,
                                i = e.options,
                                n = "mouseup" === t.type ? "click" : t.type,
                                l = !1;
                            if ("mousemove" === n) {
                                if (!i.onHover) return
                            } else {
                                if ("click" !== n) return;
                                if (!i.onClick) return
                            }
                            var o = t.x,
                                a = t.y;
                            if (o >= e.left && o <= e.right && a >= e.top && a <= e.bottom)
                                for (var r = e.legendHitBoxes, s = 0; s < r.length; ++s) {
                                    var c = r[s];
                                    if (o >= c.left && o <= c.left + c.width && a >= c.top && a <= c.top + c.height) {
                                        if ("click" === n) {
                                            i.onClick.call(e, t.native, e.legendItems[s]), l = !0;
                                            break
                                        }
                                        if ("mousemove" === n) {
                                            i.onHover.call(e, t.native, e.legendItems[s]), l = !0;
                                            break
                                        }
                                    }
                                }
                            return l
                        }
                    });

                    function u(t, e) {
                        var i = new c({
                            ctx: t.ctx,
                            options: e,
                            chart: t
                        });
                        a.configure(t, i, e), a.addBox(t, i), t.legend = i
                    }
                    e.exports = {
                        id: "legend",
                        _element: c,
                        beforeInit: function(t) {
                            var e = t.options.legend;
                            e && u(t, e)
                        },
                        beforeUpdate: function(t) {
                            var e = t.options.legend,
                                i = t.legend;
                            e ? (o.mergeIf(e, n.global.legend), i ? (a.configure(t, i, e), i.options = e) : u(t, e)) : i && (a.removeBox(t, i), delete t.legend)
                        },
                        afterEvent: function(t, e) {
                            var i = t.legend;
                            i && i.handleEvent(e)
                        }
                    }
                }, {
                    26: 26,
                    27: 27,
                    31: 31,
                    46: 46
                }],
                53: [function(t, e, i) {
                    var n = t(26),
                        l = t(27),
                        o = t(46),
                        a = t(31),
                        r = o.noop;
                    n._set("global", {
                        title: {
                            display: !1,
                            fontStyle: "bold",
                            fullWidth: !0,
                            lineHeight: 1.2,
                            padding: 10,
                            position: "top",
                            text: "",
                            weight: 2e3
                        }
                    });
                    var s = l.extend({
                        initialize: function(t) {
                            o.extend(this, t), this.legendHitBoxes = []
                        },
                        beforeUpdate: r,
                        update: function(t, e, i) {
                            var n = this;
                            return n.beforeUpdate(), n.maxWidth = t, n.maxHeight = e, n.margins = i, n.beforeSetDimensions(), n.setDimensions(), n.afterSetDimensions(), n.beforeBuildLabels(), n.buildLabels(), n.afterBuildLabels(), n.beforeFit(), n.fit(), n.afterFit(), n.afterUpdate(), n.minSize
                        },
                        afterUpdate: r,
                        beforeSetDimensions: r,
                        setDimensions: function() {
                            var t = this;
                            t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0, t.minSize = {
                                width: 0,
                                height: 0
                            }
                        },
                        afterSetDimensions: r,
                        beforeBuildLabels: r,
                        buildLabels: r,
                        afterBuildLabels: r,
                        beforeFit: r,
                        fit: function() {
                            var t = this,
                                e = o.valueOrDefault,
                                i = t.options,
                                l = i.display,
                                a = e(i.fontSize, n.global.defaultFontSize),
                                r = t.minSize,
                                s = o.isArray(i.text) ? i.text.length : 1,
                                c = o.options.toLineHeight(i.lineHeight, a),
                                u = l ? s * c + 2 * i.padding : 0;
                            t.isHorizontal() ? (r.width = t.maxWidth, r.height = u) : (r.width = u, r.height = t.maxHeight), t.width = r.width, t.height = r.height
                        },
                        afterFit: r,
                        isHorizontal: function() {
                            var t = this.options.position;
                            return "top" === t || "bottom" === t
                        },
                        draw: function() {
                            var t = this,
                                e = t.ctx,
                                i = o.valueOrDefault,
                                l = t.options,
                                a = n.global;
                            if (l.display) {
                                var r, s, c, u = i(l.fontSize, a.defaultFontSize),
                                    h = i(l.fontStyle, a.defaultFontStyle),
                                    d = i(l.fontFamily, a.defaultFontFamily),
                                    p = o.fontString(u, h, d),
                                    f = o.options.toLineHeight(l.lineHeight, u),
                                    m = f / 2 + l.padding,
                                    v = 0,
                                    g = t.top,
                                    y = t.left,
                                    b = t.bottom,
                                    x = t.right;
                                e.fillStyle = i(l.fontColor, a.defaultFontColor), e.font = p, t.isHorizontal() ? (s = y + (x - y) / 2, c = g + m, r = x - y) : (s = "left" === l.position ? y + m : x - m, c = g + (b - g) / 2, r = b - g, v = Math.PI * ("left" === l.position ? -.5 : .5)), e.save(), e.translate(s, c), e.rotate(v), e.textAlign = "center", e.textBaseline = "middle";
                                var w = l.text;
                                if (o.isArray(w))
                                    for (var k = 0, S = 0; S < w.length; ++S) e.fillText(w[S], 0, k, r), k += f;
                                else e.fillText(w, 0, 0, r);
                                e.restore()
                            }
                        }
                    });

                    function c(t, e) {
                        var i = new s({
                            ctx: t.ctx,
                            options: e,
                            chart: t
                        });
                        a.configure(t, i, e), a.addBox(t, i), t.titleBlock = i
                    }
                    e.exports = {
                        id: "title",
                        _element: s,
                        beforeInit: function(t) {
                            var e = t.options.title;
                            e && c(t, e)
                        },
                        beforeUpdate: function(t) {
                            var e = t.options.title,
                                i = t.titleBlock;
                            e ? (o.mergeIf(e, n.global.title), i ? (a.configure(t, i, e), i.options = e) : c(t, e)) : i && (a.removeBox(t, i), delete t.titleBlock)
                        }
                    }
                }, {
                    26: 26,
                    27: 27,
                    31: 31,
                    46: 46
                }],
                54: [function(t, e, i) {
                    var n = t(33),
                        l = t(34);
                    e.exports = function() {
                        var t = n.extend({
                            getLabels: function() {
                                var t = this.chart.data;
                                return this.options.labels || (this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels
                            },
                            determineDataLimits: function() {
                                var t, e = this,
                                    i = e.getLabels();
                                e.minIndex = 0, e.maxIndex = i.length - 1, void 0 !== e.options.ticks.min && (t = i.indexOf(e.options.ticks.min), e.minIndex = -1 !== t ? t : e.minIndex), void 0 !== e.options.ticks.max && (t = i.indexOf(e.options.ticks.max), e.maxIndex = -1 !== t ? t : e.maxIndex), e.min = i[e.minIndex], e.max = i[e.maxIndex]
                            },
                            buildTicks: function() {
                                var t = this,
                                    e = t.getLabels();
                                t.ticks = 0 === t.minIndex && t.maxIndex === e.length - 1 ? e : e.slice(t.minIndex, t.maxIndex + 1)
                            },
                            getLabelForIndex: function(t, e) {
                                var i = this,
                                    n = i.chart.data,
                                    l = i.isHorizontal();
                                return n.yLabels && !l ? i.getRightValue(n.datasets[e].data[t]) : i.ticks[t - i.minIndex]
                            },
                            getPixelForValue: function(t, e) {
                                var i, n = this,
                                    l = n.options.offset,
                                    o = Math.max(n.maxIndex + 1 - n.minIndex - (l ? 0 : 1), 1);
                                if (null != t && (i = n.isHorizontal() ? t.x : t.y), void 0 !== i || void 0 !== t && isNaN(e)) {
                                    t = i || t;
                                    var a = n.getLabels().indexOf(t);
                                    e = -1 !== a ? a : e
                                }
                                if (n.isHorizontal()) {
                                    var r = n.width / o,
                                        s = r * (e - n.minIndex);
                                    return l && (s += r / 2), n.left + Math.round(s)
                                }
                                var c = n.height / o,
                                    u = c * (e - n.minIndex);
                                return l && (u += c / 2), n.top + Math.round(u)
                            },
                            getPixelForTick: function(t) {
                                return this.getPixelForValue(this.ticks[t], t + this.minIndex, null)
                            },
                            getValueForPixel: function(t) {
                                var e = this,
                                    i = e.options.offset,
                                    n = Math.max(e._ticks.length - (i ? 0 : 1), 1),
                                    l = e.isHorizontal(),
                                    o = (l ? e.width : e.height) / n;
                                return t -= l ? e.left : e.top, i && (t -= o / 2), (t <= 0 ? 0 : Math.round(t / o)) + e.minIndex
                            },
                            getBasePixel: function() {
                                return this.bottom
                            }
                        });
                        l.registerScaleType("category", t, {
                            position: "bottom"
                        })
                    }
                }, {
                    33: 33,
                    34: 34
                }],
                55: [function(t, e, i) {
                    var n = t(26),
                        l = t(46),
                        o = t(34),
                        a = t(35);
                    e.exports = function(t) {
                        var e = {
                                position: "left",
                                ticks: {
                                    callback: a.formatters.linear
                                }
                            },
                            i = t.LinearScaleBase.extend({
                                determineDataLimits: function() {
                                    var t = this,
                                        e = t.options,
                                        i = t.chart,
                                        n = i.data.datasets,
                                        o = t.isHorizontal();

                                    function a(e) {
                                        return o ? e.xAxisID === t.id : e.yAxisID === t.id
                                    }
                                    t.min = null, t.max = null;
                                    var r = e.stacked;
                                    if (void 0 === r && l.each(n, (function(t, e) {
                                            if (!r) {
                                                var n = i.getDatasetMeta(e);
                                                i.isDatasetVisible(e) && a(n) && void 0 !== n.stack && (r = !0)
                                            }
                                        })), e.stacked || r) {
                                        var s = {};
                                        l.each(n, (function(n, o) {
                                            var r = i.getDatasetMeta(o),
                                                c = [r.type, void 0 === e.stacked && void 0 === r.stack ? o : "", r.stack].join(".");
                                            void 0 === s[c] && (s[c] = {
                                                positiveValues: [],
                                                negativeValues: []
                                            });
                                            var u = s[c].positiveValues,
                                                h = s[c].negativeValues;
                                            i.isDatasetVisible(o) && a(r) && l.each(n.data, (function(i, n) {
                                                var l = +t.getRightValue(i);
                                                isNaN(l) || r.data[n].hidden || (u[n] = u[n] || 0, h[n] = h[n] || 0, e.relativePoints ? u[n] = 100 : l < 0 ? h[n] += l : u[n] += l)
                                            }))
                                        })), l.each(s, (function(e) {
                                            var i = e.positiveValues.concat(e.negativeValues),
                                                n = l.min(i),
                                                o = l.max(i);
                                            t.min = null === t.min ? n : Math.min(t.min, n), t.max = null === t.max ? o : Math.max(t.max, o)
                                        }))
                                    } else l.each(n, (function(e, n) {
                                        var o = i.getDatasetMeta(n);
                                        i.isDatasetVisible(n) && a(o) && l.each(e.data, (function(e, i) {
                                            var n = +t.getRightValue(e);
                                            isNaN(n) || o.data[i].hidden || (null === t.min ? t.min = n : n < t.min && (t.min = n), null === t.max ? t.max = n : n > t.max && (t.max = n))
                                        }))
                                    }));
                                    t.min = isFinite(t.min) && !isNaN(t.min) ? t.min : 0, t.max = isFinite(t.max) && !isNaN(t.max) ? t.max : 1, this.handleTickRangeOptions()
                                },
                                getTickLimit: function() {
                                    var t, e = this.options.ticks;
                                    if (this.isHorizontal()) t = Math.min(e.maxTicksLimit ? e.maxTicksLimit : 11, Math.ceil(this.width / 50));
                                    else {
                                        var i = l.valueOrDefault(e.fontSize, n.global.defaultFontSize);
                                        t = Math.min(e.maxTicksLimit ? e.maxTicksLimit : 11, Math.ceil(this.height / (2 * i)))
                                    }
                                    return t
                                },
                                handleDirectionalChanges: function() {
                                    this.isHorizontal() || this.ticks.reverse()
                                },
                                getLabelForIndex: function(t, e) {
                                    return +this.getRightValue(this.chart.data.datasets[e].data[t])
                                },
                                getPixelForValue: function(t) {
                                    var e = this,
                                        i = e.start,
                                        n = +e.getRightValue(t),
                                        l = e.end - i;
                                    return e.isHorizontal() ? e.left + e.width / l * (n - i) : e.bottom - e.height / l * (n - i)
                                },
                                getValueForPixel: function(t) {
                                    var e = this,
                                        i = e.isHorizontal(),
                                        n = i ? e.width : e.height,
                                        l = (i ? t - e.left : e.bottom - t) / n;
                                    return e.start + (e.end - e.start) * l
                                },
                                getPixelForTick: function(t) {
                                    return this.getPixelForValue(this.ticksAsNumbers[t])
                                }
                            });
                        o.registerScaleType("linear", i, e)
                    }
                }, {
                    26: 26,
                    34: 34,
                    35: 35,
                    46: 46
                }],
                56: [function(t, e, i) {
                    var n = t(46),
                        l = t(33);
                    e.exports = function(t) {
                        var e = n.noop;
                        t.LinearScaleBase = l.extend({
                            getRightValue: function(t) {
                                return "string" == typeof t ? +t : l.prototype.getRightValue.call(this, t)
                            },
                            handleTickRangeOptions: function() {
                                var t = this,
                                    e = t.options.ticks;
                                if (e.beginAtZero) {
                                    var i = n.sign(t.min),
                                        l = n.sign(t.max);
                                    i < 0 && l < 0 ? t.max = 0 : i > 0 && l > 0 && (t.min = 0)
                                }
                                var o = void 0 !== e.min || void 0 !== e.suggestedMin,
                                    a = void 0 !== e.max || void 0 !== e.suggestedMax;
                                void 0 !== e.min ? t.min = e.min : void 0 !== e.suggestedMin && (null === t.min ? t.min = e.suggestedMin : t.min = Math.min(t.min, e.suggestedMin)), void 0 !== e.max ? t.max = e.max : void 0 !== e.suggestedMax && (null === t.max ? t.max = e.suggestedMax : t.max = Math.max(t.max, e.suggestedMax)), o !== a && t.min >= t.max && (o ? t.max = t.min + 1 : t.min = t.max - 1), t.min === t.max && (t.max++, e.beginAtZero || t.min--)
                            },
                            getTickLimit: e,
                            handleDirectionalChanges: e,
                            buildTicks: function() {
                                var t = this,
                                    e = t.options.ticks,
                                    i = t.getTickLimit(),
                                    l = {
                                        maxTicks: i = Math.max(2, i),
                                        min: e.min,
                                        max: e.max,
                                        precision: e.precision,
                                        stepSize: n.valueOrDefault(e.fixedStepSize, e.stepSize)
                                    },
                                    o = t.ticks = function(t, e) {
                                        var i, l, o, a = [];
                                        if (t.stepSize && t.stepSize > 0) o = t.stepSize;
                                        else {
                                            var r = n.niceNum(e.max - e.min, !1);
                                            o = n.niceNum(r / (t.maxTicks - 1), !0), void 0 !== (l = t.precision) && (i = Math.pow(10, l), o = Math.ceil(o * i) / i)
                                        }
                                        var s = Math.floor(e.min / o) * o,
                                            c = Math.ceil(e.max / o) * o;
                                        n.isNullOrUndef(t.min) || n.isNullOrUndef(t.max) || !t.stepSize || n.almostWhole((t.max - t.min) / t.stepSize, o / 1e3) && (s = t.min, c = t.max);
                                        var u = (c - s) / o;
                                        u = n.almostEquals(u, Math.round(u), o / 1e3) ? Math.round(u) : Math.ceil(u), l = 1, o < 1 && (l = Math.pow(10, 1 - Math.floor(n.log10(o))), s = Math.round(s * l) / l, c = Math.round(c * l) / l), a.push(void 0 !== t.min ? t.min : s);
                                        for (var h = 1; h < u; ++h) a.push(Math.round((s + h * o) * l) / l);
                                        return a.push(void 0 !== t.max ? t.max : c), a
                                    }(l, t);
                                t.handleDirectionalChanges(), t.max = n.max(o), t.min = n.min(o), e.reverse ? (o.reverse(), t.start = t.max, t.end = t.min) : (t.start = t.min, t.end = t.max)
                            },
                            convertTicksToLabels: function() {
                                var t = this;
                                t.ticksAsNumbers = t.ticks.slice(), t.zeroLineIndex = t.ticks.indexOf(0), l.prototype.convertTicksToLabels.call(t)
                            }
                        })
                    }
                }, {
                    33: 33,
                    46: 46
                }],
                57: [function(t, e, i) {
                    var n = t(46),
                        l = t(33),
                        o = t(34),
                        a = t(35);
                    e.exports = function(t) {
                        var e = {
                                position: "left",
                                ticks: {
                                    callback: a.formatters.logarithmic
                                }
                            },
                            i = l.extend({
                                determineDataLimits: function() {
                                    var t = this,
                                        e = t.options,
                                        i = t.chart,
                                        l = i.data.datasets,
                                        o = t.isHorizontal();

                                    function a(e) {
                                        return o ? e.xAxisID === t.id : e.yAxisID === t.id
                                    }
                                    t.min = null, t.max = null, t.minNotZero = null;
                                    var r = e.stacked;
                                    if (void 0 === r && n.each(l, (function(t, e) {
                                            if (!r) {
                                                var n = i.getDatasetMeta(e);
                                                i.isDatasetVisible(e) && a(n) && void 0 !== n.stack && (r = !0)
                                            }
                                        })), e.stacked || r) {
                                        var s = {};
                                        n.each(l, (function(l, o) {
                                            var r = i.getDatasetMeta(o),
                                                c = [r.type, void 0 === e.stacked && void 0 === r.stack ? o : "", r.stack].join(".");
                                            i.isDatasetVisible(o) && a(r) && (void 0 === s[c] && (s[c] = []), n.each(l.data, (function(e, i) {
                                                var n = s[c],
                                                    l = +t.getRightValue(e);
                                                isNaN(l) || r.data[i].hidden || l < 0 || (n[i] = n[i] || 0, n[i] += l)
                                            })))
                                        })), n.each(s, (function(e) {
                                            if (e.length > 0) {
                                                var i = n.min(e),
                                                    l = n.max(e);
                                                t.min = null === t.min ? i : Math.min(t.min, i), t.max = null === t.max ? l : Math.max(t.max, l)
                                            }
                                        }))
                                    } else n.each(l, (function(e, l) {
                                        var o = i.getDatasetMeta(l);
                                        i.isDatasetVisible(l) && a(o) && n.each(e.data, (function(e, i) {
                                            var n = +t.getRightValue(e);
                                            isNaN(n) || o.data[i].hidden || n < 0 || (null === t.min ? t.min = n : n < t.min && (t.min = n), null === t.max ? t.max = n : n > t.max && (t.max = n), 0 !== n && (null === t.minNotZero || n < t.minNotZero) && (t.minNotZero = n))
                                        }))
                                    }));
                                    this.handleTickRangeOptions()
                                },
                                handleTickRangeOptions: function() {
                                    var t = this,
                                        e = t.options.ticks,
                                        i = n.valueOrDefault;
                                    t.min = i(e.min, t.min), t.max = i(e.max, t.max), t.min === t.max && (0 !== t.min && null !== t.min ? (t.min = Math.pow(10, Math.floor(n.log10(t.min)) - 1), t.max = Math.pow(10, Math.floor(n.log10(t.max)) + 1)) : (t.min = 1, t.max = 10)), null === t.min && (t.min = Math.pow(10, Math.floor(n.log10(t.max)) - 1)), null === t.max && (t.max = 0 !== t.min ? Math.pow(10, Math.floor(n.log10(t.min)) + 1) : 10), null === t.minNotZero && (t.min > 0 ? t.minNotZero = t.min : t.max < 1 ? t.minNotZero = Math.pow(10, Math.floor(n.log10(t.max))) : t.minNotZero = 1)
                                },
                                buildTicks: function() {
                                    var t = this,
                                        e = t.options.ticks,
                                        i = !t.isHorizontal(),
                                        l = {
                                            min: e.min,
                                            max: e.max
                                        },
                                        o = t.ticks = function(t, e) {
                                            var i, l, o = [],
                                                a = n.valueOrDefault,
                                                r = a(t.min, Math.pow(10, Math.floor(n.log10(e.min)))),
                                                s = Math.floor(n.log10(e.max)),
                                                c = Math.ceil(e.max / Math.pow(10, s));
                                            0 === r ? (i = Math.floor(n.log10(e.minNotZero)), l = Math.floor(e.minNotZero / Math.pow(10, i)), o.push(r), r = l * Math.pow(10, i)) : (i = Math.floor(n.log10(r)), l = Math.floor(r / Math.pow(10, i)));
                                            var u = i < 0 ? Math.pow(10, Math.abs(i)) : 1;
                                            do {
                                                o.push(r), 10 === ++l && (l = 1, u = ++i >= 0 ? 1 : u), r = Math.round(l * Math.pow(10, i) * u) / u
                                            } while (i < s || i === s && l < c);
                                            var h = a(t.max, r);
                                            return o.push(h), o
                                        }(l, t);
                                    t.max = n.max(o), t.min = n.min(o), e.reverse ? (i = !i, t.start = t.max, t.end = t.min) : (t.start = t.min, t.end = t.max), i && o.reverse()
                                },
                                convertTicksToLabels: function() {
                                    this.tickValues = this.ticks.slice(), l.prototype.convertTicksToLabels.call(this)
                                },
                                getLabelForIndex: function(t, e) {
                                    return +this.getRightValue(this.chart.data.datasets[e].data[t])
                                },
                                getPixelForTick: function(t) {
                                    return this.getPixelForValue(this.tickValues[t])
                                },
                                _getFirstTickValue: function(t) {
                                    var e = Math.floor(n.log10(t));
                                    return Math.floor(t / Math.pow(10, e)) * Math.pow(10, e)
                                },
                                getPixelForValue: function(e) {
                                    var i, l, o, a, r, s = this,
                                        c = s.options.ticks.reverse,
                                        u = n.log10,
                                        h = s._getFirstTickValue(s.minNotZero),
                                        d = 0;
                                    return e = +s.getRightValue(e), c ? (o = s.end, a = s.start, r = -1) : (o = s.start, a = s.end, r = 1), s.isHorizontal() ? (i = s.width, l = c ? s.right : s.left) : (i = s.height, r *= -1, l = c ? s.top : s.bottom), e !== o && (0 === o && (i -= d = n.getValueOrDefault(s.options.ticks.fontSize, t.defaults.global.defaultFontSize), o = h), 0 !== e && (d += i / (u(a) - u(o)) * (u(e) - u(o))), l += r * d), l
                                },
                                getValueForPixel: function(e) {
                                    var i, l, o, a, r = this,
                                        s = r.options.ticks.reverse,
                                        c = n.log10,
                                        u = r._getFirstTickValue(r.minNotZero);
                                    if (s ? (l = r.end, o = r.start) : (l = r.start, o = r.end), r.isHorizontal() ? (i = r.width, a = s ? r.right - e : e - r.left) : (i = r.height, a = s ? e - r.top : r.bottom - e), a !== l) {
                                        if (0 === l) {
                                            var h = n.getValueOrDefault(r.options.ticks.fontSize, t.defaults.global.defaultFontSize);
                                            a -= h, i -= h, l = u
                                        }
                                        a *= c(o) - c(l), a /= i, a = Math.pow(10, c(l) + a)
                                    }
                                    return a
                                }
                            });
                        o.registerScaleType("logarithmic", i, e)
                    }
                }, {
                    33: 33,
                    34: 34,
                    35: 35,
                    46: 46
                }],
                58: [function(t, e, i) {
                    var n = t(26),
                        l = t(46),
                        o = t(34),
                        a = t(35);
                    e.exports = function(t) {
                        var e = n.global,
                            i = {
                                display: !0,
                                animate: !0,
                                position: "chartArea",
                                angleLines: {
                                    display: !0,
                                    color: "rgba(0, 0, 0, 0.1)",
                                    lineWidth: 1
                                },
                                gridLines: {
                                    circular: !1
                                },
                                ticks: {
                                    showLabelBackdrop: !0,
                                    backdropColor: "rgba(255,255,255,0.75)",
                                    backdropPaddingY: 2,
                                    backdropPaddingX: 2,
                                    callback: a.formatters.linear
                                },
                                pointLabels: {
                                    display: !0,
                                    fontSize: 10,
                                    callback: function(t) {
                                        return t
                                    }
                                }
                            };

                        function r(t) {
                            var e = t.options;
                            return e.angleLines.display || e.pointLabels.display ? t.chart.data.labels.length : 0
                        }

                        function s(t) {
                            var i = t.options.pointLabels,
                                n = l.valueOrDefault(i.fontSize, e.defaultFontSize),
                                o = l.valueOrDefault(i.fontStyle, e.defaultFontStyle),
                                a = l.valueOrDefault(i.fontFamily, e.defaultFontFamily);
                            return {
                                size: n,
                                style: o,
                                family: a,
                                font: l.fontString(n, o, a)
                            }
                        }

                        function c(t, e, i, n, l) {
                            return t === n || t === l ? {
                                start: e - i / 2,
                                end: e + i / 2
                            } : t < n || t > l ? {
                                start: e - i - 5,
                                end: e
                            } : {
                                start: e,
                                end: e + i + 5
                            }
                        }

                        function u(t) {
                            return 0 === t || 180 === t ? "center" : t < 180 ? "left" : "right"
                        }

                        function h(t, e, i, n) {
                            if (l.isArray(e))
                                for (var o = i.y, a = 1.5 * n, r = 0; r < e.length; ++r) t.fillText(e[r], i.x, o), o += a;
                            else t.fillText(e, i.x, i.y)
                        }

                        function d(t, e, i) {
                            90 === t || 270 === t ? i.y -= e.h / 2 : (t > 270 || t < 90) && (i.y -= e.h)
                        }

                        function p(t) {
                            return l.isNumber(t) ? t : 0
                        }
                        var f = t.LinearScaleBase.extend({
                            setDimensions: function() {
                                var t = this,
                                    i = t.options,
                                    n = i.ticks;
                                t.width = t.maxWidth, t.height = t.maxHeight, t.xCenter = Math.round(t.width / 2), t.yCenter = Math.round(t.height / 2);
                                var o = l.min([t.height, t.width]),
                                    a = l.valueOrDefault(n.fontSize, e.defaultFontSize);
                                t.drawingArea = i.display ? o / 2 - (a / 2 + n.backdropPaddingY) : o / 2
                            },
                            determineDataLimits: function() {
                                var t = this,
                                    e = t.chart,
                                    i = Number.POSITIVE_INFINITY,
                                    n = Number.NEGATIVE_INFINITY;
                                l.each(e.data.datasets, (function(o, a) {
                                    if (e.isDatasetVisible(a)) {
                                        var r = e.getDatasetMeta(a);
                                        l.each(o.data, (function(e, l) {
                                            var o = +t.getRightValue(e);
                                            isNaN(o) || r.data[l].hidden || (i = Math.min(o, i), n = Math.max(o, n))
                                        }))
                                    }
                                })), t.min = i === Number.POSITIVE_INFINITY ? 0 : i, t.max = n === Number.NEGATIVE_INFINITY ? 0 : n, t.handleTickRangeOptions()
                            },
                            getTickLimit: function() {
                                var t = this.options.ticks,
                                    i = l.valueOrDefault(t.fontSize, e.defaultFontSize);
                                return Math.min(t.maxTicksLimit ? t.maxTicksLimit : 11, Math.ceil(this.drawingArea / (1.5 * i)))
                            },
                            convertTicksToLabels: function() {
                                var e = this;
                                t.LinearScaleBase.prototype.convertTicksToLabels.call(e), e.pointLabels = e.chart.data.labels.map(e.options.pointLabels.callback, e)
                            },
                            getLabelForIndex: function(t, e) {
                                return +this.getRightValue(this.chart.data.datasets[e].data[t])
                            },
                            fit: function() {
                                var t, e;
                                this.options.pointLabels.display ? function(t) {
                                    var e, i, n, o = s(t),
                                        a = Math.min(t.height / 2, t.width / 2),
                                        u = {
                                            r: t.width,
                                            l: 0,
                                            t: t.height,
                                            b: 0
                                        },
                                        h = {};
                                    t.ctx.font = o.font, t._pointLabelSizes = [];
                                    var d, p, f, m = r(t);
                                    for (e = 0; e < m; e++) {
                                        n = t.getPointPosition(e, a), d = t.ctx, p = o.size, f = t.pointLabels[e] || "", i = l.isArray(f) ? {
                                            w: l.longestText(d, d.font, f),
                                            h: f.length * p + 1.5 * (f.length - 1) * p
                                        } : {
                                            w: d.measureText(f).width,
                                            h: p
                                        }, t._pointLabelSizes[e] = i;
                                        var v = t.getIndexAngle(e),
                                            g = l.toDegrees(v) % 360,
                                            y = c(g, n.x, i.w, 0, 180),
                                            b = c(g, n.y, i.h, 90, 270);
                                        y.start < u.l && (u.l = y.start, h.l = v), y.end > u.r && (u.r = y.end, h.r = v), b.start < u.t && (u.t = b.start, h.t = v), b.end > u.b && (u.b = b.end, h.b = v)
                                    }
                                    t.setReductions(a, u, h)
                                }(this) : (t = this, e = Math.min(t.height / 2, t.width / 2), t.drawingArea = Math.round(e), t.setCenterPoint(0, 0, 0, 0))
                            },
                            setReductions: function(t, e, i) {
                                var n = e.l / Math.sin(i.l),
                                    l = Math.max(e.r - this.width, 0) / Math.sin(i.r),
                                    o = -e.t / Math.cos(i.t),
                                    a = -Math.max(e.b - this.height, 0) / Math.cos(i.b);
                                n = p(n), l = p(l), o = p(o), a = p(a), this.drawingArea = Math.min(Math.round(t - (n + l) / 2), Math.round(t - (o + a) / 2)), this.setCenterPoint(n, l, o, a)
                            },
                            setCenterPoint: function(t, e, i, n) {
                                var l = this,
                                    o = l.width - e - l.drawingArea,
                                    a = t + l.drawingArea,
                                    r = i + l.drawingArea,
                                    s = l.height - n - l.drawingArea;
                                l.xCenter = Math.round((a + o) / 2 + l.left), l.yCenter = Math.round((r + s) / 2 + l.top)
                            },
                            getIndexAngle: function(t) {
                                return t * (2 * Math.PI / r(this)) + (this.chart.options && this.chart.options.startAngle ? this.chart.options.startAngle : 0) * Math.PI * 2 / 360
                            },
                            getDistanceFromCenterForValue: function(t) {
                                var e = this;
                                if (null === t) return 0;
                                var i = e.drawingArea / (e.max - e.min);
                                return e.options.ticks.reverse ? (e.max - t) * i : (t - e.min) * i
                            },
                            getPointPosition: function(t, e) {
                                var i = this.getIndexAngle(t) - Math.PI / 2;
                                return {
                                    x: Math.round(Math.cos(i) * e) + this.xCenter,
                                    y: Math.round(Math.sin(i) * e) + this.yCenter
                                }
                            },
                            getPointPositionForValue: function(t, e) {
                                return this.getPointPosition(t, this.getDistanceFromCenterForValue(e))
                            },
                            getBasePosition: function() {
                                var t = this.min,
                                    e = this.max;
                                return this.getPointPositionForValue(0, this.beginAtZero ? 0 : t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0)
                            },
                            draw: function() {
                                var t = this,
                                    i = t.options,
                                    n = i.gridLines,
                                    o = i.ticks,
                                    a = l.valueOrDefault;
                                if (i.display) {
                                    var c = t.ctx,
                                        p = this.getIndexAngle(0),
                                        f = a(o.fontSize, e.defaultFontSize),
                                        m = a(o.fontStyle, e.defaultFontStyle),
                                        v = a(o.fontFamily, e.defaultFontFamily),
                                        g = l.fontString(f, m, v);
                                    l.each(t.ticks, (function(i, s) {
                                        if (s > 0 || o.reverse) {
                                            var u = t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);
                                            if (n.display && 0 !== s && function(t, e, i, n) {
                                                    var o = t.ctx;
                                                    if (o.strokeStyle = l.valueAtIndexOrDefault(e.color, n - 1), o.lineWidth = l.valueAtIndexOrDefault(e.lineWidth, n - 1), t.options.gridLines.circular) o.beginPath(), o.arc(t.xCenter, t.yCenter, i, 0, 2 * Math.PI), o.closePath(), o.stroke();
                                                    else {
                                                        var a = r(t);
                                                        if (0 === a) return;
                                                        o.beginPath();
                                                        var s = t.getPointPosition(0, i);
                                                        o.moveTo(s.x, s.y);
                                                        for (var c = 1; c < a; c++) s = t.getPointPosition(c, i), o.lineTo(s.x, s.y);
                                                        o.closePath(), o.stroke()
                                                    }
                                                }(t, n, u, s), o.display) {
                                                var h = a(o.fontColor, e.defaultFontColor);
                                                if (c.font = g, c.save(), c.translate(t.xCenter, t.yCenter), c.rotate(p), o.showLabelBackdrop) {
                                                    var d = c.measureText(i).width;
                                                    c.fillStyle = o.backdropColor, c.fillRect(-d / 2 - o.backdropPaddingX, -u - f / 2 - o.backdropPaddingY, d + 2 * o.backdropPaddingX, f + 2 * o.backdropPaddingY)
                                                }
                                                c.textAlign = "center", c.textBaseline = "middle", c.fillStyle = h, c.fillText(i, 0, -u), c.restore()
                                            }
                                        }
                                    })), (i.angleLines.display || i.pointLabels.display) && function(t) {
                                        var i = t.ctx,
                                            n = t.options,
                                            o = n.angleLines,
                                            a = n.pointLabels;
                                        i.lineWidth = o.lineWidth, i.strokeStyle = o.color;
                                        var c = t.getDistanceFromCenterForValue(n.ticks.reverse ? t.min : t.max),
                                            p = s(t);
                                        i.textBaseline = "top";
                                        for (var f = r(t) - 1; f >= 0; f--) {
                                            if (o.display) {
                                                var m = t.getPointPosition(f, c);
                                                i.beginPath(), i.moveTo(t.xCenter, t.yCenter), i.lineTo(m.x, m.y), i.stroke(), i.closePath()
                                            }
                                            if (a.display) {
                                                var v = t.getPointPosition(f, c + 5),
                                                    g = l.valueAtIndexOrDefault(a.fontColor, f, e.defaultFontColor);
                                                i.font = p.font, i.fillStyle = g;
                                                var y = t.getIndexAngle(f),
                                                    b = l.toDegrees(y);
                                                i.textAlign = u(b), d(b, t._pointLabelSizes[f], v), h(i, t.pointLabels[f] || "", v, p.size)
                                            }
                                        }
                                    }(t)
                                }
                            }
                        });
                        o.registerScaleType("radialLinear", f, i)
                    }
                }, {
                    26: 26,
                    34: 34,
                    35: 35,
                    46: 46
                }],
                59: [function(t, e, i) {
                    var n = t(1);
                    n = "function" == typeof n ? n : window.moment;
                    var l = t(26),
                        o = t(46),
                        a = t(33),
                        r = t(34),
                        s = Number.MIN_SAFE_INTEGER || -9007199254740991,
                        c = Number.MAX_SAFE_INTEGER || 9007199254740991,
                        u = {
                            millisecond: {
                                common: !0,
                                size: 1,
                                steps: [1, 2, 5, 10, 20, 50, 100, 250, 500]
                            },
                            second: {
                                common: !0,
                                size: 1e3,
                                steps: [1, 2, 5, 10, 15, 30]
                            },
                            minute: {
                                common: !0,
                                size: 6e4,
                                steps: [1, 2, 5, 10, 15, 30]
                            },
                            hour: {
                                common: !0,
                                size: 36e5,
                                steps: [1, 2, 3, 6, 12]
                            },
                            day: {
                                common: !0,
                                size: 864e5,
                                steps: [1, 2, 5]
                            },
                            week: {
                                common: !1,
                                size: 6048e5,
                                steps: [1, 2, 3, 4]
                            },
                            month: {
                                common: !0,
                                size: 2628e6,
                                steps: [1, 2, 3]
                            },
                            quarter: {
                                common: !1,
                                size: 7884e6,
                                steps: [1, 2, 3, 4]
                            },
                            year: {
                                common: !0,
                                size: 3154e7
                            }
                        },
                        h = Object.keys(u);

                    function d(t, e) {
                        return t - e
                    }

                    function p(t) {
                        var e, i, n, l = {},
                            o = [];
                        for (e = 0, i = t.length; e < i; ++e) l[n = t[e]] || (l[n] = !0, o.push(n));
                        return o
                    }

                    function f(t, e, i, n) {
                        var l = function(t, e, i) {
                                for (var n, l, o, a = 0, r = t.length - 1; a >= 0 && a <= r;) {
                                    if (l = t[(n = a + r >> 1) - 1] || null, o = t[n], !l) return {
                                        lo: null,
                                        hi: o
                                    };
                                    if (o[e] < i) a = n + 1;
                                    else {
                                        if (!(l[e] > i)) return {
                                            lo: l,
                                            hi: o
                                        };
                                        r = n - 1
                                    }
                                }
                                return {
                                    lo: o,
                                    hi: null
                                }
                            }(t, e, i),
                            o = l.lo ? l.hi ? l.lo : t[t.length - 2] : t[0],
                            a = l.lo ? l.hi ? l.hi : t[t.length - 1] : t[1],
                            r = a[e] - o[e],
                            s = r ? (i - o[e]) / r : 0,
                            c = (a[n] - o[n]) * s;
                        return o[n] + c
                    }

                    function m(t, e) {
                        var i = e.parser,
                            l = e.parser || e.format;
                        return "function" == typeof i ? i(t) : "string" == typeof t && "string" == typeof l ? n(t, l) : (t instanceof n || (t = n(t)), t.isValid() ? t : "function" == typeof l ? l(t) : t)
                    }

                    function v(t, e) {
                        if (o.isNullOrUndef(t)) return null;
                        var i = e.options.time,
                            n = m(e.getRightValue(t), i);
                        return n.isValid() ? (i.round && n.startOf(i.round), n.valueOf()) : null
                    }

                    function g(t) {
                        for (var e = h.indexOf(t) + 1, i = h.length; e < i; ++e)
                            if (u[h[e]].common) return h[e]
                    }

                    function y(t, e, i, l) {
                        var a, r = l.time,
                            s = r.unit || function(t, e, i, n) {
                                var l, o, a, r = h.length;
                                for (l = h.indexOf(t); l < r - 1; ++l)
                                    if (a = (o = u[h[l]]).steps ? o.steps[o.steps.length - 1] : c, o.common && Math.ceil((i - e) / (a * o.size)) <= n) return h[l];
                                return h[r - 1]
                            }(r.minUnit, t, e, i),
                            d = g(s),
                            p = o.valueOrDefault(r.stepSize, r.unitStepSize),
                            f = "week" === s && r.isoWeekday,
                            m = l.ticks.major.enabled,
                            v = u[s],
                            y = n(t),
                            b = n(e),
                            x = [];
                        for (p || (p = function(t, e, i, n) {
                                var l, o, a, r = e - t,
                                    s = u[i],
                                    c = s.size,
                                    h = s.steps;
                                if (!h) return Math.ceil(r / (n * c));
                                for (l = 0, o = h.length; l < o && (a = h[l], !(Math.ceil(r / (c * a)) <= n)); ++l);
                                return a
                            }(t, e, s, i)), f && (y = y.isoWeekday(f), b = b.isoWeekday(f)), y = y.startOf(f ? "day" : s), (b = b.startOf(f ? "day" : s)) < e && b.add(1, s), a = n(y), m && d && !f && !r.round && (a.startOf(d), a.add(~~((y - a) / (v.size * p)) * p, s)); a < b; a.add(p, s)) x.push(+a);
                        return x.push(+a), x
                    }
                    e.exports = function() {
                        var t = a.extend({
                            initialize: function() {
                                if (!n) throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");
                                this.mergeTicksOptions(), a.prototype.initialize.call(this)
                            },
                            update: function() {
                                var t = this,
                                    e = t.options;
                                return e.time && e.time.format && console.warn("options.time.format is deprecated and replaced by options.time.parser."), a.prototype.update.apply(t, arguments)
                            },
                            getRightValue: function(t) {
                                return t && void 0 !== t.t && (t = t.t), a.prototype.getRightValue.call(this, t)
                            },
                            determineDataLimits: function() {
                                var t, e, i, l, a, r, u = this,
                                    h = u.chart,
                                    f = u.options.time,
                                    m = f.unit || "day",
                                    g = c,
                                    y = s,
                                    b = [],
                                    x = [],
                                    w = [];
                                for (t = 0, i = h.data.labels.length; t < i; ++t) w.push(v(h.data.labels[t], u));
                                for (t = 0, i = (h.data.datasets || []).length; t < i; ++t)
                                    if (h.isDatasetVisible(t))
                                        if (a = h.data.datasets[t].data, o.isObject(a[0]))
                                            for (x[t] = [], e = 0, l = a.length; e < l; ++e) r = v(a[e], u), b.push(r), x[t][e] = r;
                                        else b.push.apply(b, w), x[t] = w.slice(0);
                                else x[t] = [];
                                w.length && (w = p(w).sort(d), g = Math.min(g, w[0]), y = Math.max(y, w[w.length - 1])), b.length && (b = p(b).sort(d), g = Math.min(g, b[0]), y = Math.max(y, b[b.length - 1])), g = v(f.min, u) || g, y = v(f.max, u) || y, g = g === c ? +n().startOf(m) : g, y = y === s ? +n().endOf(m) + 1 : y, u.min = Math.min(g, y), u.max = Math.max(g + 1, y), u._horizontal = u.isHorizontal(), u._table = [], u._timestamps = {
                                    data: b,
                                    datasets: x,
                                    labels: w
                                }
                            },
                            buildTicks: function() {
                                var t, e, i, l = this,
                                    o = l.min,
                                    a = l.max,
                                    r = l.options,
                                    s = r.time,
                                    c = [],
                                    d = [];
                                switch (r.ticks.source) {
                                    case "data":
                                        c = l._timestamps.data;
                                        break;
                                    case "labels":
                                        c = l._timestamps.labels;
                                        break;
                                    case "auto":
                                    default:
                                        c = y(o, a, l.getLabelCapacity(o), r)
                                }
                                for ("ticks" === r.bounds && c.length && (o = c[0], a = c[c.length - 1]), o = v(s.min, l) || o, a = v(s.max, l) || a, t = 0, e = c.length; t < e; ++t)(i = c[t]) >= o && i <= a && d.push(i);
                                return l.min = o, l.max = a, l._unit = s.unit || function(t, e, i, l) {
                                        var o, a, r = n.duration(n(l).diff(n(i)));
                                        for (o = h.length - 1; o >= h.indexOf(e); o--)
                                            if (a = h[o], u[a].common && r.as(a) >= t.length) return a;
                                        return h[e ? h.indexOf(e) : 0]
                                    }(d, s.minUnit, l.min, l.max), l._majorUnit = g(l._unit), l._table = function(t, e, i, n) {
                                        if ("linear" === n || !t.length) return [{
                                            time: e,
                                            pos: 0
                                        }, {
                                            time: i,
                                            pos: 1
                                        }];
                                        var l, o, a, r, s, c = [],
                                            u = [e];
                                        for (l = 0, o = t.length; l < o; ++l)(r = t[l]) > e && r < i && u.push(r);
                                        for (u.push(i), l = 0, o = u.length; l < o; ++l) s = u[l + 1], a = u[l - 1], r = u[l], void 0 !== a && void 0 !== s && Math.round((s + a) / 2) === r || c.push({
                                            time: r,
                                            pos: l / (o - 1)
                                        });
                                        return c
                                    }(l._timestamps.data, o, a, r.distribution), l._offsets = function(t, e, i, n, l) {
                                        var o, a, r = 0,
                                            s = 0;
                                        return l.offset && e.length && (l.time.min || (o = e.length > 1 ? e[1] : n, a = e[0], r = (f(t, "time", o, "pos") - f(t, "time", a, "pos")) / 2), l.time.max || (o = e[e.length - 1], a = e.length > 1 ? e[e.length - 2] : i, s = (f(t, "time", o, "pos") - f(t, "time", a, "pos")) / 2)), {
                                            left: r,
                                            right: s
                                        }
                                    }(l._table, d, o, a, r), l._labelFormat = function(t, e) {
                                        var i, n, l, o = t.length;
                                        for (i = 0; i < o; i++) {
                                            if (0 !== (n = m(t[i], e)).millisecond()) return "MMM D, YYYY h:mm:ss.SSS a";
                                            0 === n.second() && 0 === n.minute() && 0 === n.hour() || (l = !0)
                                        }
                                        return l ? "MMM D, YYYY h:mm:ss a" : "MMM D, YYYY"
                                    }(l._timestamps.data, s),
                                    function(t, e) {
                                        var i, l, o, a, r = [];
                                        for (i = 0, l = t.length; i < l; ++i) o = t[i], a = !!e && o === +n(o).startOf(e), r.push({
                                            value: o,
                                            major: a
                                        });
                                        return r
                                    }(d, l._majorUnit)
                            },
                            getLabelForIndex: function(t, e) {
                                var i = this.chart.data,
                                    n = this.options.time,
                                    l = i.labels && t < i.labels.length ? i.labels[t] : "",
                                    a = i.datasets[e].data[t];
                                return o.isObject(a) && (l = this.getRightValue(a)), n.tooltipFormat ? m(l, n).format(n.tooltipFormat) : "string" == typeof l ? l : m(l, n).format(this._labelFormat)
                            },
                            tickFormatFunction: function(t, e, i, n) {
                                var l = this.options,
                                    a = t.valueOf(),
                                    r = l.time.displayFormats,
                                    s = r[this._unit],
                                    c = this._majorUnit,
                                    u = r[c],
                                    h = t.clone().startOf(c).valueOf(),
                                    d = l.ticks.major,
                                    p = d.enabled && c && u && a === h,
                                    f = t.format(n || (p ? u : s)),
                                    m = p ? d : l.ticks.minor,
                                    v = o.valueOrDefault(m.callback, m.userCallback);
                                return v ? v(f, e, i) : f
                            },
                            convertTicksToLabels: function(t) {
                                var e, i, l = [];
                                for (e = 0, i = t.length; e < i; ++e) l.push(this.tickFormatFunction(n(t[e].value), e, t));
                                return l
                            },
                            getPixelForOffset: function(t) {
                                var e = this,
                                    i = e._horizontal ? e.width : e.height,
                                    n = e._horizontal ? e.left : e.top,
                                    l = f(e._table, "time", t, "pos");
                                return n + i * (e._offsets.left + l) / (e._offsets.left + 1 + e._offsets.right)
                            },
                            getPixelForValue: function(t, e, i) {
                                var n = null;
                                if (void 0 !== e && void 0 !== i && (n = this._timestamps.datasets[i][e]), null === n && (n = v(t, this)), null !== n) return this.getPixelForOffset(n)
                            },
                            getPixelForTick: function(t) {
                                var e = this.getTicks();
                                return t >= 0 && t < e.length ? this.getPixelForOffset(e[t].value) : null
                            },
                            getValueForPixel: function(t) {
                                var e = this,
                                    i = e._horizontal ? e.width : e.height,
                                    l = e._horizontal ? e.left : e.top,
                                    o = (i ? (t - l) / i : 0) * (e._offsets.left + 1 + e._offsets.left) - e._offsets.right,
                                    a = f(e._table, "pos", o, "time");
                                return n(a)
                            },
                            getLabelWidth: function(t) {
                                var e = this.options.ticks,
                                    i = this.ctx.measureText(t).width,
                                    n = o.toRadians(e.maxRotation),
                                    a = Math.cos(n),
                                    r = Math.sin(n);
                                return i * a + o.valueOrDefault(e.fontSize, l.global.defaultFontSize) * r
                            },
                            getLabelCapacity: function(t) {
                                var e = this,
                                    i = e.options.time.displayFormats.millisecond,
                                    l = e.tickFormatFunction(n(t), 0, [], i),
                                    o = e.getLabelWidth(l),
                                    a = e.isHorizontal() ? e.width : e.height,
                                    r = Math.floor(a / o);
                                return r > 0 ? r : 1
                            }
                        });
                        r.registerScaleType("time", t, {
                            position: "bottom",
                            distribution: "linear",
                            bounds: "data",
                            time: {
                                parser: !1,
                                format: !1,
                                unit: !1,
                                round: !1,
                                displayFormat: !1,
                                isoWeekday: !1,
                                minUnit: "millisecond",
                                displayFormats: {
                                    millisecond: "h:mm:ss.SSS a",
                                    second: "h:mm:ss a",
                                    minute: "h:mm a",
                                    hour: "hA",
                                    day: "MMM D",
                                    week: "ll",
                                    month: "MMM YYYY",
                                    quarter: "[Q]Q - YYYY",
                                    year: "YYYY"
                                }
                            },
                            ticks: {
                                autoSkip: !1,
                                source: "auto",
                                major: {
                                    enabled: !1
                                }
                            }
                        })
                    }
                }, {
                    1: 1,
                    26: 26,
                    33: 33,
                    34: 34,
                    46: 46
                }]
            }, {}, [7])(7)
        }))
    }).call(this, i(95)(t), i(55))
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(23).findIndex,
        o = i(52),
        a = !0;
    "findIndex" in [] && Array(1).findIndex((function() {
        a = !1
    })), n({
        target: "Array",
        proto: !0,
        forced: a
    }, {
        findIndex: function(t) {
            return l(this, t, arguments.length > 1 ? arguments[1] : void 0)
        }
    }), o("findIndex")
}, function(t, e, i) {
    var n = i(3),
        l = Math.log,
        o = Math.LOG10E;
    n({
        target: "Math",
        stat: !0
    }, {
        log10: function(t) {
            return l(t) * o
        }
    })
}, function(t, e, i) {
    i(3)({
        target: "Math",
        stat: !0
    }, {
        sign: i(234)
    })
}, function(t, e) {
    t.exports = Math.sign || function(t) {
        return 0 == (t = +t) || t != t ? t : t < 0 ? -1 : 1
    }
}, function(t, e, i) {
    i(3)({
        target: "Number",
        stat: !0
    }, {
        EPSILON: Math.pow(2, -52)
    })
}, function(t, e, i) {
    "use strict";
    (function(t) {
        var e, n;
        i(69), i(71), i(72), i(82), i(173), i(107), i(66), i(54), i(142), i(100), i(131), i(108), i(111), i(220), i(221), i(113), i(64), i(68), i(73), i(98), i(237), i(109), i(74);

        function l(t) {
            return (l = "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)
        }
        /*!
         * chartjs-plugin-datalabels v0.7.0
         * https://chartjs-plugin-datalabels.netlify.com
         * (c) 2019 Chart.js Contributors
         * Released under the MIT license
         */
        e = void 0, n = function(t) {
            var e = (t = t && t.hasOwnProperty("default") ? t.default : t).helpers,
                i = function() {
                    if ("undefined" != typeof window) {
                        if (window.devicePixelRatio) return window.devicePixelRatio;
                        var t = window.screen;
                        if (t) return (t.deviceXDPI || 1) / (t.logicalXDPI || 1)
                    }
                    return 1
                }(),
                n = {
                    toTextLines: function(t) {
                        var i, n = [];
                        for (t = [].concat(t); t.length;) "string" == typeof(i = t.pop()) ? n.unshift.apply(n, i.split("\n")) : Array.isArray(i) ? t.push.apply(t, i) : e.isNullOrUndef(t) || n.unshift("" + i);
                        return n
                    },
                    toFontString: function(t) {
                        return !t || e.isNullOrUndef(t.size) || e.isNullOrUndef(t.family) ? null : (t.style ? t.style + " " : "") + (t.weight ? t.weight + " " : "") + t.size + "px " + t.family
                    },
                    textSize: function(t, e, i) {
                        var n, l = [].concat(e),
                            o = l.length,
                            a = t.font,
                            r = 0;
                        for (t.font = i.string, n = 0; n < o; ++n) r = Math.max(t.measureText(l[n]).width, r);
                        return t.font = a, {
                            height: o * i.lineHeight,
                            width: r
                        }
                    },
                    parseFont: function(i) {
                        var l = t.defaults.global,
                            o = e.valueOrDefault(i.size, l.defaultFontSize),
                            a = {
                                family: e.valueOrDefault(i.family, l.defaultFontFamily),
                                lineHeight: e.options.toLineHeight(i.lineHeight, o),
                                size: o,
                                style: e.valueOrDefault(i.style, l.defaultFontStyle),
                                weight: e.valueOrDefault(i.weight, null),
                                string: ""
                            };
                        return a.string = n.toFontString(a), a
                    },
                    bound: function(t, e, i) {
                        return Math.max(t, Math.min(e, i))
                    },
                    arrayDiff: function(t, e) {
                        var i, n, l, o, a = t.slice(),
                            r = [];
                        for (i = 0, l = e.length; i < l; ++i) o = e[i], -1 === (n = a.indexOf(o)) ? r.push([o, 1]) : a.splice(n, 1);
                        for (i = 0, l = a.length; i < l; ++i) r.push([a[i], -1]);
                        return r
                    },
                    rasterize: function(t) {
                        return Math.round(t * i) / i
                    }
                };

            function l(t, e) {
                var i = e.x,
                    n = e.y;
                if (null === i) return {
                    x: 0,
                    y: -1
                };
                if (null === n) return {
                    x: 1,
                    y: 0
                };
                var l = t.x - i,
                    o = t.y - n,
                    a = Math.sqrt(l * l + o * o);
                return {
                    x: a ? l / a : 0,
                    y: a ? o / a : -1
                }
            }
            var o = 0,
                a = 1,
                r = 2,
                s = 4,
                c = 8;

            function u(t, e, i) {
                var n = o;
                return t < i.left ? n |= a : t > i.right && (n |= r), e < i.top ? n |= c : e > i.bottom && (n |= s), n
            }

            function h(t, e) {
                var i, n, l = e.anchor,
                    o = t;
                return e.clamp && (o = function(t, e) {
                        for (var i, n, l, o = t.x0, h = t.y0, d = t.x1, p = t.y1, f = u(o, h, e), m = u(d, p, e); f | m && !(f & m);)(i = f || m) & c ? (n = o + (d - o) * (e.top - h) / (p - h), l = e.top) : i & s ? (n = o + (d - o) * (e.bottom - h) / (p - h), l = e.bottom) : i & r ? (l = h + (p - h) * (e.right - o) / (d - o), n = e.right) : i & a && (l = h + (p - h) * (e.left - o) / (d - o), n = e.left), i === f ? f = u(o = n, h = l, e) : m = u(d = n, p = l, e);
                        return {
                            x0: o,
                            x1: d,
                            y0: h,
                            y1: p
                        }
                    }(o, e.area)), "start" === l ? (i = o.x0, n = o.y0) : "end" === l ? (i = o.x1, n = o.y1) : (i = (o.x0 + o.x1) / 2, n = (o.y0 + o.y1) / 2),
                    function(t, e, i, n, l) {
                        switch (l) {
                            case "center":
                                i = n = 0;
                                break;
                            case "bottom":
                                i = 0, n = 1;
                                break;
                            case "right":
                                i = 1, n = 0;
                                break;
                            case "left":
                                i = -1, n = 0;
                                break;
                            case "top":
                                i = 0, n = -1;
                                break;
                            case "start":
                                i = -i, n = -n;
                                break;
                            case "end":
                                break;
                            default:
                                l *= Math.PI / 180, i = Math.cos(l), n = Math.sin(l)
                        }
                        return {
                            x: t,
                            y: e,
                            vx: i,
                            vy: n
                        }
                    }(i, n, t.vx, t.vy, e.align)
            }
            var d = {
                    arc: function(t, e) {
                        var i = (t.startAngle + t.endAngle) / 2,
                            n = Math.cos(i),
                            l = Math.sin(i),
                            o = t.innerRadius,
                            a = t.outerRadius;
                        return h({
                            x0: t.x + n * o,
                            y0: t.y + l * o,
                            x1: t.x + n * a,
                            y1: t.y + l * a,
                            vx: n,
                            vy: l
                        }, e)
                    },
                    point: function(t, e) {
                        var i = l(t, e.origin),
                            n = i.x * t.radius,
                            o = i.y * t.radius;
                        return h({
                            x0: t.x - n,
                            y0: t.y - o,
                            x1: t.x + n,
                            y1: t.y + o,
                            vx: i.x,
                            vy: i.y
                        }, e)
                    },
                    rect: function(t, e) {
                        var i = l(t, e.origin),
                            n = t.x,
                            o = t.y,
                            a = 0,
                            r = 0;
                        return t.horizontal ? (n = Math.min(t.x, t.base), a = Math.abs(t.base - t.x)) : (o = Math.min(t.y, t.base), r = Math.abs(t.base - t.y)), h({
                            x0: n,
                            y0: o + r,
                            x1: n + a,
                            y1: o,
                            vx: i.x,
                            vy: i.y
                        }, e)
                    },
                    fallback: function(t, e) {
                        var i = l(t, e.origin);
                        return h({
                            x0: t.x,
                            y0: t.y,
                            x1: t.x,
                            y1: t.y,
                            vx: i.x,
                            vy: i.y
                        }, e)
                    }
                },
                p = t.helpers,
                f = n.rasterize;

            function m(t) {
                var e = t._model.horizontal,
                    i = t._scale || e && t._xScale || t._yScale;
                if (!i) return null;
                if (void 0 !== i.xCenter && void 0 !== i.yCenter) return {
                    x: i.xCenter,
                    y: i.yCenter
                };
                var n = i.getBasePixel();
                return e ? {
                    x: n,
                    y: null
                } : {
                    x: null,
                    y: n
                }
            }

            function v(t, e, i) {
                var n = t.shadowBlur,
                    l = i.stroked,
                    o = f(i.x),
                    a = f(i.y),
                    r = f(i.w);
                l && t.strokeText(e, o, a, r), i.filled && (n && l && (t.shadowBlur = 0), t.fillText(e, o, a, r), n && l && (t.shadowBlur = n))
            }
            var g = function(t, e, i, n) {
                var l = this;
                l._config = t, l._index = n, l._model = null, l._rects = null, l._ctx = e, l._el = i
            };
            p.extend(g.prototype, {
                _modelize: function(e, i, l, o) {
                    var a, r = this._index,
                        s = p.options.resolve,
                        c = n.parseFont(s([l.font, {}], o, r)),
                        u = s([l.color, t.defaults.global.defaultFontColor], o, r);
                    return {
                        align: s([l.align, "center"], o, r),
                        anchor: s([l.anchor, "center"], o, r),
                        area: o.chart.chartArea,
                        backgroundColor: s([l.backgroundColor, null], o, r),
                        borderColor: s([l.borderColor, null], o, r),
                        borderRadius: s([l.borderRadius, 0], o, r),
                        borderWidth: s([l.borderWidth, 0], o, r),
                        clamp: s([l.clamp, !1], o, r),
                        clip: s([l.clip, !1], o, r),
                        color: u,
                        display: e,
                        font: c,
                        lines: i,
                        offset: s([l.offset, 0], o, r),
                        opacity: s([l.opacity, 1], o, r),
                        origin: m(this._el),
                        padding: p.options.toPadding(s([l.padding, 0], o, r)),
                        positioner: (a = this._el, a instanceof t.elements.Arc ? d.arc : a instanceof t.elements.Point ? d.point : a instanceof t.elements.Rectangle ? d.rect : d.fallback),
                        rotation: s([l.rotation, 0], o, r) * (Math.PI / 180),
                        size: n.textSize(this._ctx, i, c),
                        textAlign: s([l.textAlign, "start"], o, r),
                        textShadowBlur: s([l.textShadowBlur, 0], o, r),
                        textShadowColor: s([l.textShadowColor, u], o, r),
                        textStrokeColor: s([l.textStrokeColor, u], o, r),
                        textStrokeWidth: s([l.textStrokeWidth, 0], o, r)
                    }
                },
                update: function(t) {
                    var e, i, l, o = this,
                        a = null,
                        r = null,
                        s = o._index,
                        c = o._config,
                        u = p.options.resolve([c.display, !0], t, s);
                    u && (e = t.dataset.data[s], i = p.valueOrDefault(p.callback(c.formatter, [e, t]), e), (l = p.isNullOrUndef(i) ? [] : n.toTextLines(i)).length && (r = function(t) {
                        var e = t.borderWidth || 0,
                            i = t.padding,
                            n = t.size.height,
                            l = t.size.width,
                            o = -l / 2,
                            a = -n / 2;
                        return {
                            frame: {
                                x: o - i.left - e,
                                y: a - i.top - e,
                                w: l + i.width + 2 * e,
                                h: n + i.height + 2 * e
                            },
                            text: {
                                x: o,
                                y: a,
                                w: l,
                                h: n
                            }
                        }
                    }(a = o._modelize(u, l, c, t)))), o._model = a, o._rects = r
                },
                geometry: function() {
                    return this._rects ? this._rects.frame : {}
                },
                rotation: function() {
                    return this._model ? this._model.rotation : 0
                },
                visible: function() {
                    return this._model && this._model.opacity
                },
                model: function() {
                    return this._model
                },
                draw: function(t, e) {
                    var i, l = t.ctx,
                        o = this._model,
                        a = this._rects;
                    this.visible() && (l.save(), o.clip && (i = o.area, l.beginPath(), l.rect(i.left, i.top, i.right - i.left, i.bottom - i.top), l.clip()), l.globalAlpha = n.bound(0, o.opacity, 1), l.translate(f(e.x), f(e.y)), l.rotate(o.rotation), function(t, e, i) {
                        var n = i.backgroundColor,
                            l = i.borderColor,
                            o = i.borderWidth;
                        (n || l && o) && (t.beginPath(), p.canvas.roundedRect(t, f(e.x) + o / 2, f(e.y) + o / 2, f(e.w) - o, f(e.h) - o, i.borderRadius), t.closePath(), n && (t.fillStyle = n, t.fill()), l && o && (t.strokeStyle = l, t.lineWidth = o, t.lineJoin = "miter", t.stroke()))
                    }(l, a.frame, o), function(t, e, i, n) {
                        var l, o = n.textAlign,
                            a = n.color,
                            r = !!a,
                            s = n.font,
                            c = e.length,
                            u = n.textStrokeColor,
                            h = n.textStrokeWidth,
                            d = u && h;
                        if (c && (r || d))
                            for (i = function(t, e, i) {
                                    var n = i.lineHeight,
                                        l = t.w,
                                        o = t.x;
                                    return "center" === e ? o += l / 2 : "end" !== e && "right" !== e || (o += l), {
                                        h: n,
                                        w: l,
                                        x: o,
                                        y: t.y + n / 2
                                    }
                                }(i, o, s), t.font = s.string, t.textAlign = o, t.textBaseline = "middle", t.shadowBlur = n.textShadowBlur, t.shadowColor = n.textShadowColor, r && (t.fillStyle = a), d && (t.lineJoin = "round", t.lineWidth = h, t.strokeStyle = u), l = 0, c = e.length; l < c; ++l) v(t, e[l], {
                                stroked: d,
                                filled: r,
                                w: i.w,
                                x: i.x,
                                y: i.y + i.h * l
                            })
                    }(l, o.lines, a.text, o), l.restore())
                }
            });
            var y = t.helpers,
                b = Number.MIN_SAFE_INTEGER || -9007199254740991,
                x = Number.MAX_SAFE_INTEGER || 9007199254740991;

            function w(t, e, i) {
                var n = Math.cos(i),
                    l = Math.sin(i),
                    o = e.x,
                    a = e.y;
                return {
                    x: o + n * (t.x - o) - l * (t.y - a),
                    y: a + l * (t.x - o) + n * (t.y - a)
                }
            }

            function k(t, e) {
                var i, n, l, o, a, r = x,
                    s = b,
                    c = e.origin;
                for (i = 0; i < t.length; ++i) l = (n = t[i]).x - c.x, o = n.y - c.y, a = e.vx * l + e.vy * o, r = Math.min(r, a), s = Math.max(s, a);
                return {
                    min: r,
                    max: s
                }
            }

            function S(t, e) {
                var i = e.x - t.x,
                    n = e.y - t.y,
                    l = Math.sqrt(i * i + n * n);
                return {
                    vx: (e.x - t.x) / l,
                    vy: (e.y - t.y) / l,
                    origin: t,
                    ln: l
                }
            }
            var M = function() {
                this._rotation = 0, this._rect = {
                    x: 0,
                    y: 0,
                    w: 0,
                    h: 0
                }
            };

            function C(t, e, i) {
                var n = e.positioner(t, e),
                    l = n.vx,
                    o = n.vy;
                if (!l && !o) return {
                    x: n.x,
                    y: n.y
                };
                var a = i.w,
                    r = i.h,
                    s = e.rotation,
                    c = Math.abs(a / 2 * Math.cos(s)) + Math.abs(r / 2 * Math.sin(s)),
                    u = Math.abs(a / 2 * Math.sin(s)) + Math.abs(r / 2 * Math.cos(s)),
                    h = 1 / Math.max(Math.abs(l), Math.abs(o));
                return c *= l * h, u *= o * h, c += e.offset * l, u += e.offset * o, {
                    x: n.x + c,
                    y: n.y + u
                }
            }
            y.extend(M.prototype, {
                center: function() {
                    var t = this._rect;
                    return {
                        x: t.x + t.w / 2,
                        y: t.y + t.h / 2
                    }
                },
                update: function(t, e, i) {
                    this._rotation = i, this._rect = {
                        x: e.x + t.x,
                        y: e.y + t.y,
                        w: e.w,
                        h: e.h
                    }
                },
                contains: function(t) {
                    var e = this._rect;
                    return !((t = w(t, this.center(), -this._rotation)).x < e.x - 1 || t.y < e.y - 1 || t.x > e.x + e.w + 2 || t.y > e.y + e.h + 2)
                },
                intersects: function(t) {
                    var e, i, n, l = this._points(),
                        o = t._points(),
                        a = [S(l[0], l[1]), S(l[0], l[3])];
                    for (this._rotation !== t._rotation && a.push(S(o[0], o[1]), S(o[0], o[3])), e = 0; e < a.length; ++e)
                        if (i = k(l, a[e]), n = k(o, a[e]), i.max < n.min || n.max < i.min) return !1;
                    return !0
                },
                _points: function() {
                    var t = this._rect,
                        e = this._rotation,
                        i = this.center();
                    return [w({
                        x: t.x,
                        y: t.y
                    }, i, e), w({
                        x: t.x + t.w,
                        y: t.y
                    }, i, e), w({
                        x: t.x + t.w,
                        y: t.y + t.h
                    }, i, e), w({
                        x: t.x,
                        y: t.y + t.h
                    }, i, e)]
                }
            });
            var T = {
                    prepare: function(t) {
                        var e, i, n, l, o, a = [];
                        for (e = 0, n = t.length; e < n; ++e)
                            for (i = 0, l = t[e].length; i < l; ++i) o = t[e][i], a.push(o), o.$layout = {
                                _box: new M,
                                _hidable: !1,
                                _visible: !0,
                                _set: e,
                                _idx: i
                            };
                        return a.sort((function(t, e) {
                            var i = t.$layout,
                                n = e.$layout;
                            return i._idx === n._idx ? n._set - i._set : n._idx - i._idx
                        })), this.update(a), a
                    },
                    update: function(t) {
                        var e, i, n, l, o, a = !1;
                        for (e = 0, i = t.length; e < i; ++e) l = (n = t[e]).model(), (o = n.$layout)._hidable = l && "auto" === l.display, o._visible = n.visible(), a |= o._hidable;
                        a && function(t) {
                            var e, i, n, l, o, a;
                            for (e = 0, i = t.length; e < i; ++e)(l = (n = t[e]).$layout)._visible && (o = n.geometry(), a = C(n._el._model, n.model(), o), l._box.update(a, o, n.rotation()));
                            ! function(t, e) {
                                var i, n, l, o;
                                for (i = t.length - 1; i >= 0; --i)
                                    for (l = t[i].$layout, n = i - 1; n >= 0 && l._visible; --n)(o = t[n].$layout)._visible && l._box.intersects(o._box) && e(l, o)
                            }(t, (function(t, e) {
                                var i = t._hidable,
                                    n = e._hidable;
                                i && n || n ? e._visible = !1 : i && (t._visible = !1)
                            }))
                        }(t)
                    },
                    lookup: function(t, e) {
                        var i, n;
                        for (i = t.length - 1; i >= 0; --i)
                            if ((n = t[i].$layout) && n._visible && n._box.contains(e)) return t[i];
                        return null
                    },
                    draw: function(t, e) {
                        var i, n, l, o, a, r;
                        for (i = 0, n = e.length; i < n; ++i)(o = (l = e[i]).$layout)._visible && (a = l.geometry(), r = C(l._el._view, l.model(), a), o._box.update(r, a, l.rotation()), l.draw(t, r))
                    }
                },
                A = t.helpers,
                O = {
                    align: "center",
                    anchor: "center",
                    backgroundColor: null,
                    borderColor: null,
                    borderRadius: 0,
                    borderWidth: 0,
                    clamp: !1,
                    clip: !1,
                    color: void 0,
                    display: !0,
                    font: {
                        family: void 0,
                        lineHeight: 1.2,
                        size: void 0,
                        style: void 0,
                        weight: null
                    },
                    formatter: function(t) {
                        if (A.isNullOrUndef(t)) return null;
                        var e, i, n, l = t;
                        if (A.isObject(t))
                            if (A.isNullOrUndef(t.label))
                                if (A.isNullOrUndef(t.r))
                                    for (l = "", n = 0, i = (e = Object.keys(t)).length; n < i; ++n) l += (0 !== n ? ", " : "") + e[n] + ": " + t[e[n]];
                                else l = t.r;
                        else l = t.label;
                        return "" + l
                    },
                    labels: void 0,
                    listeners: {},
                    offset: 4,
                    opacity: 1,
                    padding: {
                        top: 4,
                        right: 4,
                        bottom: 4,
                        left: 4
                    },
                    rotation: 0,
                    textAlign: "start",
                    textStrokeColor: void 0,
                    textStrokeWidth: 0,
                    textShadowBlur: 0,
                    textShadowColor: void 0
                },
                P = t.helpers,
                E = "$datalabels",
                I = "$default";

            function _(t, e, i) {
                if (e) {
                    var n, l = i.$context,
                        o = i.$groups;
                    e[o._set] && (n = e[o._set][o._key]) && !0 === P.callback(n, [l]) && (t[E]._dirty = !0, i.update(l))
                }
            }

            function D(t, e) {
                var i, n, l = t[E],
                    o = l._listeners;
                if (o.enter || o.leave) {
                    if ("mousemove" === e.type) n = T.lookup(l._labels, e);
                    else if ("mouseout" !== e.type) return;
                    i = l._hovered, l._hovered = n,
                        function(t, e, i, n) {
                            var l, o;
                            (i || n) && (i ? n ? i !== n && (o = l = !0) : o = !0 : l = !0, o && _(t, e.leave, i), l && _(t, e.enter, n))
                        }(t, o, i, n)
                }
            }
            t.defaults.global.plugins.datalabels = O;
            var $ = {
                id: "datalabels",
                beforeInit: function(t) {
                    t[E] = {
                        _actives: []
                    }
                },
                beforeUpdate: function(t) {
                    var e = t[E];
                    e._listened = !1, e._listeners = {}, e._datasets = [], e._labels = []
                },
                afterDatasetUpdate: function(t, e, i) {
                    var n, l, o, a, r, s, c, u, h = e.index,
                        d = t[E],
                        p = d._datasets[h] = [],
                        f = t.isDatasetVisible(h),
                        m = t.data.datasets[h],
                        v = function(t, e) {
                            var i, n, l, o = t.datalabels,
                                a = [];
                            return !1 === o ? null : (!0 === o && (o = {}), e = P.merge({}, [e, o]), n = e.labels || {}, l = Object.keys(n), delete e.labels, l.length ? l.forEach((function(t) {
                                n[t] && a.push(P.merge({}, [e, n[t], {
                                    _key: t
                                }]))
                            })) : a.push(e), i = a.reduce((function(t, e) {
                                return P.each(e.listeners || {}, (function(i, n) {
                                    t[n] = t[n] || {}, t[n][e._key || I] = i
                                })), delete e.listeners, t
                            }), {}), {
                                labels: a,
                                listeners: i
                            })
                        }(m, i),
                        y = e.meta.data || [],
                        b = t.ctx;
                    for (b.save(), n = 0, o = y.length; n < o; ++n)
                        if ((c = y[n])[E] = [], f && c && !c.hidden && !c._model.skip)
                            for (l = 0, a = v.labels.length; l < a; ++l) s = (r = v.labels[l])._key, (u = new g(r, b, c, n)).$groups = {
                                _set: h,
                                _key: s || I
                            }, u.$context = {
                                active: !1,
                                chart: t,
                                dataIndex: n,
                                dataset: m,
                                datasetIndex: h
                            }, u.update(u.$context), c[E].push(u), p.push(u);
                    b.restore(), P.merge(d._listeners, v.listeners, {
                        merger: function(t, i, n) {
                            i[t] = i[t] || {}, i[t][e.index] = n[t], d._listened = !0
                        }
                    })
                },
                afterUpdate: function(t, e) {
                    t[E]._labels = T.prepare(t[E]._datasets, e)
                },
                afterDatasetsDraw: function(t) {
                    T.draw(t, t[E]._labels)
                },
                beforeEvent: function(t, e) {
                    if (t[E]._listened) switch (e.type) {
                        case "mousemove":
                        case "mouseout":
                            D(t, e);
                            break;
                        case "click":
                            ! function(t, e) {
                                var i = t[E],
                                    n = i._listeners.click,
                                    l = n && T.lookup(i._labels, e);
                                l && _(t, n, l)
                            }(t, e)
                    }
                },
                afterEvent: function(e) {
                    var i, l, o, a, r, s, c, u = e[E],
                        h = u._actives,
                        d = u._actives = e.lastActive || [],
                        p = n.arrayDiff(h, d);
                    for (i = 0, l = p.length; i < l; ++i)
                        if ((r = p[i])[1])
                            for (o = 0, a = (c = r[0][E] || []).length; o < a; ++o)(s = c[o]).$context.active = 1 === r[1], s.update(s.$context);
                    (u._dirty || p.length) && (T.update(u._labels), function(e) {
                        if (!e.animating) {
                            for (var i = t.animationService.animations, n = 0, l = i.length; n < l; ++n)
                                if (i[n].chart === e) return;
                            e.render({
                                duration: 1,
                                lazy: !0
                            })
                        }
                    }(e)), delete u._dirty
                }
            };
            return t.plugins.unregister($), $
        }, "object" === ("undefined" == typeof exports ? "undefined" : l(exports)) && void 0 !== t ? t.exports = n(i(240)) : "function" == typeof define && i(75) ? define(["chart.js"], n) : (e = e || self).ChartDataLabels = n(e.Chart)
    }).call(this, i(95)(t))
}, function(t, e, i) {
    "use strict";
    var n = i(3),
        l = i(238);
    n({
        target: "String",
        proto: !0,
        forced: i(239)("anchor")
    }, {
        anchor: function(t) {
            return l(this, "a", "name", t)
        }
    })
}, function(t, e, i) {
    var n = i(13),
        l = /"/g;
    t.exports = function(t, e, i, o) {
        var a = String(n(t)),
            r = "<" + e;
        return "" !== i && (r += " " + i + '="' + String(o).replace(l, "&quot;") + '"'), r + ">" + a + "</" + e + ">"
    }
}, function(t, e, i) {
    var n = i(1);
    t.exports = function(t) {
        return n((function() {
            var e = "" [t]('"');
            return e !== e.toLowerCase() || e.split('"').length > 3
        }))
    }
}, function(t, e) {
    t.exports = chart
}, function(t, e, i) {
    "use strict";
    (function(t) {
        i(69), i(71), i(72), i(107), i(66), i(54), i(100), i(108), i(89), i(118), i(64), i(115), i(119), i(127), i(68), i(97), i(73), i(117), i(86), i(154), i(98), i(74);

        function e(t) {
            return (e = "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)
        }
        /*! PhotoSwipe - v4.1.1 - 2015-12-24
         * http://photoswipe.com
         * Copyright (c) 2015 Dmitry Semenov; */
        ! function(n, l) {
            "function" == typeof define && i(75) ? define(l) : "object" == ("undefined" == typeof exports ? "undefined" : e(exports)) ? t.exports = l() : window.PhotoSwipe = l()
        }(0, (function() {
            return function(t, i, n, l) {
                var o = {
                    features: null,
                    bind: function(t, e, i, n) {
                        var l = (n ? "remove" : "add") + "EventListener";
                        e = e.split(" ");
                        for (var o = 0; o < e.length; o++) e[o] && t[l](e[o], i, !1)
                    },
                    isArray: function(t) {
                        return t instanceof Array
                    },
                    createEl: function(t, e) {
                        var i = document.createElement(e || "div");
                        return t && (i.className = t), i
                    },
                    getScrollY: function() {
                        var t = window.pageYOffset;
                        return void 0 !== t ? t : document.documentElement.scrollTop
                    },
                    unbind: function(t, e, i) {
                        o.bind(t, e, i, !0)
                    },
                    removeClass: function(t, e) {
                        var i = new RegExp("(\\s|^)" + e + "(\\s|$)");
                        t.className = t.className.replace(i, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "")
                    },
                    addClass: function(t, e) {
                        o.hasClass(t, e) || (t.className += (t.className ? " " : "") + e)
                    },
                    hasClass: function(t, e) {
                        return t.className && new RegExp("(^|\\s)" + e + "(\\s|$)").test(t.className)
                    },
                    getChildByClass: function(t, e) {
                        for (var i = t.firstChild; i;) {
                            if (o.hasClass(i, e)) return i;
                            i = i.nextSibling
                        }
                    },
                    arraySearch: function(t, e, i) {
                        for (var n = t.length; n--;)
                            if (t[n][i] === e) return n;
                        return -1
                    },
                    extend: function(t, e, i) {
                        for (var n in e)
                            if (e.hasOwnProperty(n)) {
                                if (i && t.hasOwnProperty(n)) continue;
                                t[n] = e[n]
                            }
                    },
                    easing: {
                        sine: {
                            out: function(t) {
                                return Math.sin(t * (Math.PI / 2))
                            },
                            inOut: function(t) {
                                return -(Math.cos(Math.PI * t) - 1) / 2
                            }
                        },
                        cubic: {
                            out: function(t) {
                                return --t * t * t + 1
                            }
                        }
                    },
                    detectFeatures: function() {
                        if (o.features) return o.features;
                        var t = o.createEl().style,
                            e = "",
                            i = {};
                        if (i.oldIE = document.all && !document.addEventListener, i.touch = "ontouchstart" in window, window.requestAnimationFrame && (i.raf = window.requestAnimationFrame, i.caf = window.cancelAnimationFrame), i.pointerEvent = navigator.pointerEnabled || navigator.msPointerEnabled, !i.pointerEvent) {
                            var n = navigator.userAgent;
                            if (/iP(hone|od)/.test(navigator.platform)) {
                                var l = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);
                                l && l.length > 0 && ((l = parseInt(l[1], 10)) >= 1 && 8 > l && (i.isOldIOSPhone = !0))
                            }
                            var a = n.match(/Android\s([0-9\.]*)/),
                                r = a ? a[1] : 0;
                            (r = parseFloat(r)) >= 1 && (4.4 > r && (i.isOldAndroid = !0), i.androidVersion = r), i.isMobileOpera = /opera mini|opera mobi/i.test(n)
                        }
                        for (var s, c, u = ["transform", "perspective", "animationName"], h = ["", "webkit", "Moz", "ms", "O"], d = 0; 4 > d; d++) {
                            e = h[d];
                            for (var p = 0; 3 > p; p++) s = u[p], c = e + (e ? s.charAt(0).toUpperCase() + s.slice(1) : s), !i[s] && c in t && (i[s] = c);
                            e && !i.raf && (e = e.toLowerCase(), i.raf = window[e + "RequestAnimationFrame"], i.raf && (i.caf = window[e + "CancelAnimationFrame"] || window[e + "CancelRequestAnimationFrame"]))
                        }
                        if (!i.raf) {
                            var f = 0;
                            i.raf = function(t) {
                                var e = (new Date).getTime(),
                                    i = Math.max(0, 16 - (e - f)),
                                    n = window.setTimeout((function() {
                                        t(e + i)
                                    }), i);
                                return f = e + i, n
                            }, i.caf = function(t) {
                                clearTimeout(t)
                            }
                        }
                        return i.svg = !!document.createElementNS && !!document.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGRect, o.features = i, i
                    }
                };
                o.detectFeatures(), o.features.oldIE && (o.bind = function(t, i, n, l) {
                    i = i.split(" ");
                    for (var o, a = (l ? "detach" : "attach") + "Event", r = function() {
                            n.handleEvent.call(n)
                        }, s = 0; s < i.length; s++)
                        if (o = i[s])
                            if ("object" == e(n) && n.handleEvent) {
                                if (l) {
                                    if (!n["oldIE" + o]) return !1
                                } else n["oldIE" + o] = r;
                                t[a]("on" + o, n["oldIE" + o])
                            } else t[a]("on" + o, n)
                });
                var a = this,
                    r = {
                        allowPanToNext: !0,
                        spacing: .12,
                        bgOpacity: 1,
                        mouseUsed: !1,
                        loop: !0,
                        pinchToClose: !0,
                        closeOnScroll: !0,
                        closeOnVerticalDrag: !0,
                        verticalDragRange: .75,
                        hideAnimationDuration: 333,
                        showAnimationDuration: 333,
                        showHideOpacity: !1,
                        focus: !0,
                        escKey: !0,
                        arrowKeys: !0,
                        mainScrollEndFriction: .35,
                        panEndFriction: .35,
                        isClickableElement: function(t) {
                            return "A" === t.tagName
                        },
                        getDoubleTapZoom: function(t, e) {
                            return t ? 1 : e.initialZoomLevel < .7 ? 1 : 1.33
                        },
                        maxSpreadZoom: 1.33,
                        modal: !0,
                        scaleMode: "fit"
                    };
                o.extend(r, l);
                var s, c, u, h, d, p, f, m, v, g, y, b, x, w, k, S, M, C, T, A, O, P, E, I, _, D, $, L, R, V, F, j, W, H, N, z, B, Z, Y, X, U, q, G, K, Q, J, tt, et, it, nt, lt, ot, at, rt, st, ct = {
                        x: 0,
                        y: 0
                    },
                    ut = {
                        x: 0,
                        y: 0
                    },
                    ht = {
                        x: 0,
                        y: 0
                    },
                    dt = {},
                    pt = 0,
                    ft = {},
                    mt = {
                        x: 0,
                        y: 0
                    },
                    vt = 0,
                    gt = !0,
                    yt = [],
                    bt = {},
                    xt = !1,
                    wt = function(t, e) {
                        o.extend(a, e.publicMethods), yt.push(t)
                    },
                    kt = function(t) {
                        var e = je();
                        return t > e - 1 ? t - e : 0 > t ? e + t : t
                    },
                    St = {},
                    Mt = function(t, e) {
                        return St[t] || (St[t] = []), St[t].push(e)
                    },
                    Ct = function(t) {
                        var e = St[t];
                        if (e) {
                            var i = Array.prototype.slice.call(arguments);
                            i.shift();
                            for (var n = 0; n < e.length; n++) e[n].apply(a, i)
                        }
                    },
                    Tt = function() {
                        return (new Date).getTime()
                    },
                    At = function(t) {
                        at = t, a.bg.style.opacity = t * r.bgOpacity
                    },
                    Ot = function(t, e, i, n, l) {
                        (!xt || l && l !== a.currItem) && (n /= l ? l.fitRatio : a.currItem.fitRatio), t[P] = b + e + "px, " + i + "px" + x + " scale(" + n + ")"
                    },
                    Pt = function(t) {
                        et && (t && (g > a.currItem.fitRatio ? xt || (Ue(a.currItem, !1, !0), xt = !0) : xt && (Ue(a.currItem), xt = !1)), Ot(et, ht.x, ht.y, g))
                    },
                    Et = function(t) {
                        t.container && Ot(t.container.style, t.initialPosition.x, t.initialPosition.y, t.initialZoomLevel, t)
                    },
                    It = function(t, e) {
                        e[P] = b + t + "px, 0px" + x
                    },
                    _t = function(t, e) {
                        if (!r.loop && e) {
                            var i = h + (mt.x * pt - t) / mt.x,
                                n = Math.round(t - ue.x);
                            (0 > i && n > 0 || i >= je() - 1 && 0 > n) && (t = ue.x + n * r.mainScrollEndFriction)
                        }
                        ue.x = t, It(t, d)
                    },
                    Dt = function(t, e) {
                        var i = he[t] - ft[t];
                        return ut[t] + ct[t] + i - i * (e / y)
                    },
                    $t = function(t, e) {
                        t.x = e.x, t.y = e.y, e.id && (t.id = e.id)
                    },
                    Lt = function(t) {
                        t.x = Math.round(t.x), t.y = Math.round(t.y)
                    },
                    Rt = null,
                    Vt = function e() {
                        Rt && (o.unbind(document, "mousemove", e), o.addClass(t, "pswp--has_mouse"), r.mouseUsed = !0, Ct("mouseUsed")), Rt = setTimeout((function() {
                            Rt = null
                        }), 100)
                    },
                    Ft = function(t, e) {
                        var i = Be(a.currItem, dt, t);
                        return e && (tt = i), i
                    },
                    jt = function(t) {
                        return t || (t = a.currItem), t.initialZoomLevel
                    },
                    Wt = function(t) {
                        return t || (t = a.currItem), t.w > 0 ? r.maxSpreadZoom : 1
                    },
                    Ht = function(t, e, i, n) {
                        return n === a.currItem.initialZoomLevel ? (i[t] = a.currItem.initialPosition[t], !0) : (i[t] = Dt(t, n), i[t] > e.min[t] ? (i[t] = e.min[t], !0) : i[t] < e.max[t] && (i[t] = e.max[t], !0))
                    },
                    Nt = function(t) {
                        var e = "";
                        r.escKey && 27 === t.keyCode ? e = "close" : r.arrowKeys && (37 === t.keyCode ? e = "prev" : 39 === t.keyCode && (e = "next")), e && (t.ctrlKey || t.altKey || t.shiftKey || t.metaKey || (t.preventDefault ? t.preventDefault() : t.returnValue = !1, a[e]()))
                    },
                    zt = function(t) {
                        t && (U || X || it || z) && (t.preventDefault(), t.stopPropagation())
                    },
                    Bt = function() {
                        a.setScrollOffset(0, o.getScrollY())
                    },
                    Zt = {},
                    Yt = 0,
                    Xt = function(t) {
                        Zt[t] && (Zt[t].raf && D(Zt[t].raf), Yt--, delete Zt[t])
                    },
                    Ut = function(t) {
                        Zt[t] && Xt(t), Zt[t] || (Yt++, Zt[t] = {})
                    },
                    qt = function() {
                        for (var t in Zt) Zt.hasOwnProperty(t) && Xt(t)
                    },
                    Gt = function(t, e, i, n, l, o, a) {
                        var r, s = Tt();
                        Ut(t);
                        ! function c() {
                            if (Zt[t]) {
                                if ((r = Tt() - s) >= n) return Xt(t), o(i), void(a && a());
                                o((i - e) * l(r / n) + e), Zt[t].raf = _(c)
                            }
                        }()
                    },
                    Kt = {
                        shout: Ct,
                        listen: Mt,
                        viewportSize: dt,
                        options: r,
                        isMainScrollAnimating: function() {
                            return it
                        },
                        getZoomLevel: function() {
                            return g
                        },
                        getCurrentIndex: function() {
                            return h
                        },
                        isDragging: function() {
                            return Z
                        },
                        isZooming: function() {
                            return Q
                        },
                        setScrollOffset: function(t, e) {
                            ft.x = t, V = ft.y = e, Ct("updateScrollOffset", ft)
                        },
                        applyZoomPan: function(t, e, i, n) {
                            ht.x = e, ht.y = i, g = t, Pt(n)
                        },
                        init: function() {
                            if (!s && !c) {
                                var e;
                                a.framework = o, a.template = t, a.bg = o.getChildByClass(t, "pswp__bg"), $ = t.className, s = !0, F = o.detectFeatures(), _ = F.raf, D = F.caf, P = F.transform, R = F.oldIE, a.scrollWrap = o.getChildByClass(t, "pswp__scroll-wrap"), a.container = o.getChildByClass(a.scrollWrap, "pswp__container"), d = a.container.style, a.itemHolders = S = [{
                                        el: a.container.children[0],
                                        wrap: 0,
                                        index: -1
                                    }, {
                                        el: a.container.children[1],
                                        wrap: 0,
                                        index: -1
                                    }, {
                                        el: a.container.children[2],
                                        wrap: 0,
                                        index: -1
                                    }], S[0].el.style.display = S[2].el.style.display = "none",
                                    function() {
                                        if (P) {
                                            var e = F.perspective && !I;
                                            return b = "translate" + (e ? "3d(" : "("), void(x = F.perspective ? ", 0px)" : ")")
                                        }
                                        P = "left", o.addClass(t, "pswp--ie"), It = function(t, e) {
                                            e.left = t + "px"
                                        }, Et = function(t) {
                                            var e = t.fitRatio > 1 ? 1 : t.fitRatio,
                                                i = t.container.style,
                                                n = e * t.w,
                                                l = e * t.h;
                                            i.width = n + "px", i.height = l + "px", i.left = t.initialPosition.x + "px", i.top = t.initialPosition.y + "px"
                                        }, Pt = function() {
                                            if (et) {
                                                var t = et,
                                                    e = a.currItem,
                                                    i = e.fitRatio > 1 ? 1 : e.fitRatio,
                                                    n = i * e.w,
                                                    l = i * e.h;
                                                t.width = n + "px", t.height = l + "px", t.left = ht.x + "px", t.top = ht.y + "px"
                                            }
                                        }
                                    }(), v = {
                                        resize: a.updateSize,
                                        scroll: Bt,
                                        keydown: Nt,
                                        click: zt
                                    };
                                var n = F.isOldIOSPhone || F.isOldAndroid || F.isMobileOpera;
                                for (F.animationName && F.transform && !n || (r.showAnimationDuration = r.hideAnimationDuration = 0), e = 0; e < yt.length; e++) a["init" + yt[e]]();
                                if (i)(a.ui = new i(a, o)).init();
                                Ct("firstUpdate"), h = h || r.index || 0, (isNaN(h) || 0 > h || h >= je()) && (h = 0), a.currItem = Fe(h), (F.isOldIOSPhone || F.isOldAndroid) && (gt = !1), t.setAttribute("aria-hidden", "false"), r.modal && (gt ? t.style.position = "fixed" : (t.style.position = "absolute", t.style.top = o.getScrollY() + "px")), void 0 === V && (Ct("initialLayout"), V = L = o.getScrollY());
                                var l = "pswp--open ";
                                for (r.mainClass && (l += r.mainClass + " "), r.showHideOpacity && (l += "pswp--animate_opacity "), l += I ? "pswp--touch" : "pswp--notouch", l += F.animationName ? " pswp--css_animation" : "", l += F.svg ? " pswp--svg" : "", o.addClass(t, l), a.updateSize(), p = -1, vt = null, e = 0; 3 > e; e++) It((e + p) * mt.x, S[e].el.style);
                                R || o.bind(a.scrollWrap, m, a), Mt("initialZoomInEnd", (function() {
                                    a.setContent(S[0], h - 1), a.setContent(S[2], h + 1), S[0].el.style.display = S[2].el.style.display = "block", r.focus && t.focus(), o.bind(document, "keydown", a), F.transform && o.bind(a.scrollWrap, "click", a), r.mouseUsed || o.bind(document, "mousemove", Vt), o.bind(window, "resize scroll", a), Ct("bindEvents")
                                })), a.setContent(S[1], h), a.updateCurrItem(), Ct("afterInit"), gt || (w = setInterval((function() {
                                    Yt || Z || Q || g !== a.currItem.initialZoomLevel || a.updateSize()
                                }), 1e3)), o.addClass(t, "pswp--visible")
                            }
                        },
                        close: function() {
                            s && (s = !1, c = !0, Ct("close"), o.unbind(window, "resize", a), o.unbind(window, "scroll", v.scroll), o.unbind(document, "keydown", a), o.unbind(document, "mousemove", Vt), F.transform && o.unbind(a.scrollWrap, "click", a), Z && o.unbind(window, f, a), Ct("unbindEvents"), We(a.currItem, null, !0, a.destroy))
                        },
                        destroy: function() {
                            Ct("destroy"), $e && clearTimeout($e), t.setAttribute("aria-hidden", "true"), t.className = $, w && clearInterval(w), o.unbind(a.scrollWrap, m, a), o.unbind(window, "scroll", a), fe(), qt(), St = null
                        },
                        panTo: function(t, e, i) {
                            i || (t > tt.min.x ? t = tt.min.x : t < tt.max.x && (t = tt.max.x), e > tt.min.y ? e = tt.min.y : e < tt.max.y && (e = tt.max.y)), ht.x = t, ht.y = e, Pt()
                        },
                        handleEvent: function(t) {
                            t = t || window.event, v[t.type] && v[t.type](t)
                        },
                        goTo: function(t) {
                            var e = (t = kt(t)) - h;
                            vt = e, h = t, a.currItem = Fe(h), pt -= e, _t(mt.x * pt), qt(), it = !1, a.updateCurrItem()
                        },
                        next: function() {
                            a.goTo(h + 1)
                        },
                        prev: function() {
                            a.goTo(h - 1)
                        },
                        updateCurrZoomItem: function(t) {
                            if (t && Ct("beforeChange", 0), S[1].el.children.length) {
                                var e = S[1].el.children[0];
                                et = o.hasClass(e, "pswp__zoom-wrap") ? e.style : null
                            } else et = null;
                            tt = a.currItem.bounds, y = g = a.currItem.initialZoomLevel, ht.x = tt.center.x, ht.y = tt.center.y, t && Ct("afterChange")
                        },
                        invalidateCurrItems: function() {
                            k = !0;
                            for (var t = 0; 3 > t; t++) S[t].item && (S[t].item.needsUpdate = !0)
                        },
                        updateCurrItem: function(t) {
                            if (0 !== vt) {
                                var e, i = Math.abs(vt);
                                if (!(t && 2 > i)) {
                                    a.currItem = Fe(h), xt = !1, Ct("beforeChange", vt), i >= 3 && (p += vt + (vt > 0 ? -3 : 3), i = 3);
                                    for (var n = 0; i > n; n++) vt > 0 ? (e = S.shift(), S[2] = e, It((++p + 2) * mt.x, e.el.style), a.setContent(e, h - i + n + 1 + 1)) : (e = S.pop(), S.unshift(e), It(--p * mt.x, e.el.style), a.setContent(e, h + i - n - 1 - 1));
                                    if (et && 1 === Math.abs(vt)) {
                                        var l = Fe(M);
                                        l.initialZoomLevel !== g && (Be(l, dt), Ue(l), Et(l))
                                    }
                                    vt = 0, a.updateCurrZoomItem(), M = h, Ct("afterChange")
                                }
                            }
                        },
                        updateSize: function(e) {
                            if (!gt && r.modal) {
                                var i = o.getScrollY();
                                if (V !== i && (t.style.top = i + "px", V = i), !e && bt.x === window.innerWidth && bt.y === window.innerHeight) return;
                                bt.x = window.innerWidth, bt.y = window.innerHeight, t.style.height = bt.y + "px"
                            }
                            if (dt.x = a.scrollWrap.clientWidth, dt.y = a.scrollWrap.clientHeight, Bt(), mt.x = dt.x + Math.round(dt.x * r.spacing), mt.y = dt.y, _t(mt.x * pt), Ct("beforeResize"), void 0 !== p) {
                                for (var n, l, s, c = 0; 3 > c; c++) n = S[c], It((c + p) * mt.x, n.el.style), s = h + c - 1, r.loop && je() > 2 && (s = kt(s)), (l = Fe(s)) && (k || l.needsUpdate || !l.bounds) ? (a.cleanSlide(l), a.setContent(n, s), 1 === c && (a.currItem = l, a.updateCurrZoomItem(!0)), l.needsUpdate = !1) : -1 === n.index && s >= 0 && a.setContent(n, s), l && l.container && (Be(l, dt), Ue(l), Et(l));
                                k = !1
                            }
                            y = g = a.currItem.initialZoomLevel, (tt = a.currItem.bounds) && (ht.x = tt.center.x, ht.y = tt.center.y, Pt(!0)), Ct("resize")
                        },
                        zoomTo: function(t, e, i, n, l) {
                            e && (y = g, he.x = Math.abs(e.x) - ht.x, he.y = Math.abs(e.y) - ht.y, $t(ut, ht));
                            var a = Ft(t, !1),
                                r = {};
                            Ht("x", a, r, t), Ht("y", a, r, t);
                            var s = g,
                                c = ht.x,
                                u = ht.y;
                            Lt(r);
                            var h = function(e) {
                                1 === e ? (g = t, ht.x = r.x, ht.y = r.y) : (g = (t - s) * e + s, ht.x = (r.x - c) * e + c, ht.y = (r.y - u) * e + u), l && l(e), Pt(1 === e)
                            };
                            i ? Gt("customZoomTo", 0, 1, i, n || o.easing.sine.inOut, h) : h(1)
                        }
                    },
                    Qt = {},
                    Jt = {},
                    te = {},
                    ee = {},
                    ie = {},
                    ne = [],
                    le = {},
                    oe = [],
                    ae = {},
                    re = 0,
                    se = {
                        x: 0,
                        y: 0
                    },
                    ce = 0,
                    ue = {
                        x: 0,
                        y: 0
                    },
                    he = {
                        x: 0,
                        y: 0
                    },
                    de = {
                        x: 0,
                        y: 0
                    },
                    pe = function(t, e) {
                        return ae.x = Math.abs(t.x - e.x), ae.y = Math.abs(t.y - e.y), Math.sqrt(ae.x * ae.x + ae.y * ae.y)
                    },
                    fe = function() {
                        q && (D(q), q = null)
                    },
                    me = {},
                    ve = function(t, e) {
                        return me.prevent = ! function t(e, i) {
                            return !(!e || e === document) && (!(e.getAttribute("class") && e.getAttribute("class").indexOf("pswp__scroll-wrap") > -1) && (i(e) ? e : t(e.parentNode, i)))
                        }(t.target, r.isClickableElement), Ct("preventDragEvent", t, e, me), me.prevent
                    },
                    ge = function(t, e) {
                        return e.x = t.pageX, e.y = t.pageY, e.id = t.identifier, e
                    },
                    ye = function(t, e, i) {
                        i.x = .5 * (t.x + e.x), i.y = .5 * (t.y + e.y)
                    },
                    be = function() {
                        var t = ht.y - a.currItem.initialPosition.y;
                        return 1 - Math.abs(t / (dt.y / 2))
                    },
                    xe = {},
                    we = {},
                    ke = [],
                    Se = function(t) {
                        for (; ke.length > 0;) ke.pop();
                        return E ? (st = 0, ne.forEach((function(t) {
                            0 === st ? ke[0] = t : 1 === st && (ke[1] = t), st++
                        }))) : t.type.indexOf("touch") > -1 ? t.touches && t.touches.length > 0 && (ke[0] = ge(t.touches[0], xe), t.touches.length > 1 && (ke[1] = ge(t.touches[1], we))) : (xe.x = t.pageX, xe.y = t.pageY, xe.id = "", ke[0] = xe), ke
                    },
                    Me = function(t, e) {
                        var i, n, l, o, s = ht[t] + e[t],
                            c = e[t] > 0,
                            u = ue.x + e.x,
                            h = ue.x - le.x;
                        return i = s > tt.min[t] || s < tt.max[t] ? r.panEndFriction : 1, s = ht[t] + e[t] * i, !r.allowPanToNext && g !== a.currItem.initialZoomLevel || (et ? "h" !== nt || "x" !== t || X || (c ? (s > tt.min[t] && (i = r.panEndFriction, tt.min[t] - s, n = tt.min[t] - ut[t]), (0 >= n || 0 > h) && je() > 1 ? (o = u, 0 > h && u > le.x && (o = le.x)) : tt.min.x !== tt.max.x && (l = s)) : (s < tt.max[t] && (i = r.panEndFriction, s - tt.max[t], n = ut[t] - tt.max[t]), (0 >= n || h > 0) && je() > 1 ? (o = u, h > 0 && u < le.x && (o = le.x)) : tt.min.x !== tt.max.x && (l = s))) : o = u, "x" !== t) ? void(it || G || g > a.currItem.fitRatio && (ht[t] += e[t] * i)) : (void 0 !== o && (_t(o, !0), G = o !== le.x), tt.min.x !== tt.max.x && (void 0 !== l ? ht.x = l : G || (ht.x += e.x * i)), void 0 !== o)
                    },
                    Ce = function(t) {
                        if (!("mousedown" === t.type && t.button > 0)) {
                            if (Ve) return void t.preventDefault();
                            if (!B || "mousedown" !== t.type) {
                                if (ve(t, !0) && t.preventDefault(), Ct("pointerDown"), E) {
                                    var e = o.arraySearch(ne, t.pointerId, "id");
                                    0 > e && (e = ne.length), ne[e] = {
                                        x: t.pageX,
                                        y: t.pageY,
                                        id: t.pointerId
                                    }
                                }
                                var i = Se(t),
                                    n = i.length;
                                K = null, qt(), Z && 1 !== n || (Z = lt = !0, o.bind(window, f, a), N = rt = ot = z = G = U = Y = X = !1, nt = null, Ct("firstTouchStart", i), $t(ut, ht), ct.x = ct.y = 0, $t(ee, i[0]), $t(ie, ee), le.x = mt.x * pt, oe = [{
                                    x: ee.x,
                                    y: ee.y
                                }], W = j = Tt(), Ft(g, !0), fe(), function t() {
                                    Z && (q = _(t), Ae())
                                }()), !Q && n > 1 && !it && !G && (y = g, X = !1, Q = Y = !0, ct.y = ct.x = 0, $t(ut, ht), $t(Qt, i[0]), $t(Jt, i[1]), ye(Qt, Jt, de), he.x = Math.abs(de.x) - ht.x, he.y = Math.abs(de.y) - ht.y, J = pe(Qt, Jt))
                            }
                        }
                    },
                    Te = function(t) {
                        if (t.preventDefault(), E) {
                            var e = o.arraySearch(ne, t.pointerId, "id");
                            if (e > -1) {
                                var i = ne[e];
                                i.x = t.pageX, i.y = t.pageY
                            }
                        }
                        if (Z) {
                            var n = Se(t);
                            if (nt || U || Q) K = n;
                            else if (ue.x !== mt.x * pt) nt = "h";
                            else {
                                var l = Math.abs(n[0].x - ee.x) - Math.abs(n[0].y - ee.y);
                                Math.abs(l) >= 10 && (nt = l > 0 ? "h" : "v", K = n)
                            }
                        }
                    },
                    Ae = function() {
                        if (K) {
                            var t = K.length;
                            if (0 !== t)
                                if ($t(Qt, K[0]), te.x = Qt.x - ee.x, te.y = Qt.y - ee.y, Q && t > 1) {
                                    if (ee.x = Qt.x, ee.y = Qt.y, !te.x && !te.y && function(t, e) {
                                            return t.x === e.x && t.y === e.y
                                        }(K[1], Jt)) return;
                                    $t(Jt, K[1]), X || (X = !0, Ct("zoomGestureStarted"));
                                    var e = pe(Qt, Jt),
                                        i = _e(e);
                                    i > a.currItem.initialZoomLevel + a.currItem.initialZoomLevel / 15 && (rt = !0);
                                    var n = 1,
                                        l = jt(),
                                        o = Wt();
                                    if (l > i)
                                        if (r.pinchToClose && !rt && y <= a.currItem.initialZoomLevel) {
                                            var s = 1 - (l - i) / (l / 1.2);
                                            At(s), Ct("onPinchClose", s), ot = !0
                                        } else(n = (l - i) / l) > 1 && (n = 1), i = l - n * (l / 3);
                                    else i > o && ((n = (i - o) / (6 * l)) > 1 && (n = 1), i = o + n * l);
                                    0 > n && (n = 0), e, ye(Qt, Jt, se), ct.x += se.x - de.x, ct.y += se.y - de.y, $t(de, se), ht.x = Dt("x", i), ht.y = Dt("y", i), N = i > g, g = i, Pt()
                                } else {
                                    if (!nt) return;
                                    if (lt && (lt = !1, Math.abs(te.x) >= 10 && (te.x -= K[0].x - ie.x), Math.abs(te.y) >= 10 && (te.y -= K[0].y - ie.y)), ee.x = Qt.x, ee.y = Qt.y, 0 === te.x && 0 === te.y) return;
                                    if ("v" === nt && r.closeOnVerticalDrag && "fit" === r.scaleMode && g === a.currItem.initialZoomLevel) {
                                        ct.y += te.y, ht.y += te.y;
                                        var c = be();
                                        return z = !0, Ct("onVerticalDrag", c), At(c), void Pt()
                                    }(function(t, e, i) {
                                        if (t - W > 50) {
                                            var n = oe.length > 2 ? oe.shift() : {};
                                            n.x = e, n.y = i, oe.push(n), W = t
                                        }
                                    })(Tt(), Qt.x, Qt.y), U = !0, tt = a.currItem.bounds, Me("x", te) || (Me("y", te), Lt(ht), Pt())
                                }
                        }
                    },
                    Oe = function(t) {
                        if (F.isOldAndroid) {
                            if (B && "mouseup" === t.type) return;
                            t.type.indexOf("touch") > -1 && (clearTimeout(B), B = setTimeout((function() {
                                B = 0
                            }), 600))
                        }
                        var e;
                        if (Ct("pointerUp"), ve(t, !1) && t.preventDefault(), E) {
                            var i = o.arraySearch(ne, t.pointerId, "id");
                            if (i > -1)
                                if (e = ne.splice(i, 1)[0], navigator.pointerEnabled) e.type = t.pointerType || "mouse";
                                else {
                                    e.type = {
                                        4: "mouse",
                                        2: "touch",
                                        3: "pen"
                                    } [t.pointerType], e.type || (e.type = t.pointerType || "mouse")
                                }
                        }
                        var n, l = Se(t),
                            s = l.length;
                        if ("mouseup" === t.type && (s = 0), 2 === s) return K = null, !0;
                        1 === s && $t(ie, l[0]), 0 !== s || nt || it || (e || ("mouseup" === t.type ? e = {
                            x: t.pageX,
                            y: t.pageY,
                            type: "mouse"
                        } : t.changedTouches && t.changedTouches[0] && (e = {
                            x: t.changedTouches[0].pageX,
                            y: t.changedTouches[0].pageY,
                            type: "touch"
                        })), Ct("touchRelease", t, e));
                        var c = -1;
                        if (0 === s && (Z = !1, o.unbind(window, f, a), fe(), Q ? c = 0 : -1 !== ce && (c = Tt() - ce)), ce = 1 === s ? Tt() : -1, n = -1 !== c && 150 > c ? "zoom" : "swipe", Q && 2 > s && (Q = !1, 1 === s && (n = "zoomPointerUp"), Ct("zoomGestureEnded")), K = null, U || X || it || z)
                            if (qt(), H || (H = Pe()), H.calculateSwipeSpeed("x"), z) {
                                if (be() < r.verticalDragRange) a.close();
                                else {
                                    var u = ht.y,
                                        h = at;
                                    Gt("verticalDrag", 0, 1, 300, o.easing.cubic.out, (function(t) {
                                        ht.y = (a.currItem.initialPosition.y - u) * t + u, At((1 - h) * t + h), Pt()
                                    })), Ct("onVerticalDrag", 1)
                                }
                            } else {
                                if ((G || it) && 0 === s) {
                                    if (Ie(n, H)) return;
                                    n = "zoomPointerUp"
                                }
                                if (!it) return "swipe" !== n ? void De() : void(!G && g > a.currItem.fitRatio && Ee(H))
                            }
                    },
                    Pe = function() {
                        var t, e, i = {
                            lastFlickOffset: {},
                            lastFlickDist: {},
                            lastFlickSpeed: {},
                            slowDownRatio: {},
                            slowDownRatioReverse: {},
                            speedDecelerationRatio: {},
                            speedDecelerationRatioAbs: {},
                            distanceOffset: {},
                            backAnimDestination: {},
                            backAnimStarted: {},
                            calculateSwipeSpeed: function(n) {
                                oe.length > 1 ? (t = Tt() - W + 50, e = oe[oe.length - 2][n]) : (t = Tt() - j, e = ie[n]), i.lastFlickOffset[n] = ee[n] - e, i.lastFlickDist[n] = Math.abs(i.lastFlickOffset[n]), i.lastFlickDist[n] > 20 ? i.lastFlickSpeed[n] = i.lastFlickOffset[n] / t : i.lastFlickSpeed[n] = 0, Math.abs(i.lastFlickSpeed[n]) < .1 && (i.lastFlickSpeed[n] = 0), i.slowDownRatio[n] = .95, i.slowDownRatioReverse[n] = 1 - i.slowDownRatio[n], i.speedDecelerationRatio[n] = 1
                            },
                            calculateOverBoundsAnimOffset: function(t, e) {
                                i.backAnimStarted[t] || (ht[t] > tt.min[t] ? i.backAnimDestination[t] = tt.min[t] : ht[t] < tt.max[t] && (i.backAnimDestination[t] = tt.max[t]), void 0 !== i.backAnimDestination[t] && (i.slowDownRatio[t] = .7, i.slowDownRatioReverse[t] = 1 - i.slowDownRatio[t], i.speedDecelerationRatioAbs[t] < .05 && (i.lastFlickSpeed[t] = 0, i.backAnimStarted[t] = !0, Gt("bounceZoomPan" + t, ht[t], i.backAnimDestination[t], e || 300, o.easing.sine.out, (function(e) {
                                    ht[t] = e, Pt()
                                })))))
                            },
                            calculateAnimOffset: function(t) {
                                i.backAnimStarted[t] || (i.speedDecelerationRatio[t] = i.speedDecelerationRatio[t] * (i.slowDownRatio[t] + i.slowDownRatioReverse[t] - i.slowDownRatioReverse[t] * i.timeDiff / 10), i.speedDecelerationRatioAbs[t] = Math.abs(i.lastFlickSpeed[t] * i.speedDecelerationRatio[t]), i.distanceOffset[t] = i.lastFlickSpeed[t] * i.speedDecelerationRatio[t] * i.timeDiff, ht[t] += i.distanceOffset[t])
                            },
                            panAnimLoop: function() {
                                return Zt.zoomPan && (Zt.zoomPan.raf = _(i.panAnimLoop), i.now = Tt(), i.timeDiff = i.now - i.lastNow, i.lastNow = i.now, i.calculateAnimOffset("x"), i.calculateAnimOffset("y"), Pt(), i.calculateOverBoundsAnimOffset("x"), i.calculateOverBoundsAnimOffset("y"), i.speedDecelerationRatioAbs.x < .05 && i.speedDecelerationRatioAbs.y < .05) ? (ht.x = Math.round(ht.x), ht.y = Math.round(ht.y), Pt(), void Xt("zoomPan")) : void 0
                            }
                        };
                        return i
                    },
                    Ee = function(t) {
                        return t.calculateSwipeSpeed("y"), tt = a.currItem.bounds, t.backAnimDestination = {}, t.backAnimStarted = {}, Math.abs(t.lastFlickSpeed.x) <= .05 && Math.abs(t.lastFlickSpeed.y) <= .05 ? (t.speedDecelerationRatioAbs.x = t.speedDecelerationRatioAbs.y = 0, t.calculateOverBoundsAnimOffset("x"), t.calculateOverBoundsAnimOffset("y"), !0) : (Ut("zoomPan"), t.lastNow = Tt(), void t.panAnimLoop())
                    },
                    Ie = function(t, e) {
                        var i, n, l;
                        if (it || (re = h), "swipe" === t) {
                            var s = ee.x - ie.x,
                                c = e.lastFlickDist.x < 10;
                            s > 30 && (c || e.lastFlickOffset.x > 20) ? n = -1 : -30 > s && (c || e.lastFlickOffset.x < -20) && (n = 1)
                        }
                        n && (0 > (h += n) ? (h = r.loop ? je() - 1 : 0, l = !0) : h >= je() && (h = r.loop ? 0 : je() - 1, l = !0), (!l || r.loop) && (vt += n, pt -= n, i = !0));
                        var u, d = mt.x * pt,
                            p = Math.abs(d - ue.x);
                        return i || d > ue.x == e.lastFlickSpeed.x > 0 ? (u = Math.abs(e.lastFlickSpeed.x) > 0 ? p / Math.abs(e.lastFlickSpeed.x) : 333, u = Math.min(u, 400), u = Math.max(u, 250)) : u = 333, re === h && (i = !1), it = !0, Ct("mainScrollAnimStart"), Gt("mainScroll", ue.x, d, u, o.easing.cubic.out, _t, (function() {
                            qt(), it = !1, re = -1, (i || re !== h) && a.updateCurrItem(), Ct("mainScrollAnimComplete")
                        })), i && a.updateCurrItem(!0), i
                    },
                    _e = function(t) {
                        return 1 / J * t * y
                    },
                    De = function() {
                        var t = g,
                            e = jt(),
                            i = Wt();
                        e > g ? t = e : g > i && (t = i);
                        var n, l = at;
                        return ot && !N && !rt && e > g ? (a.close(), !0) : (ot && (n = function(t) {
                            At((1 - l) * t + l)
                        }), a.zoomTo(t, 0, 200, o.easing.cubic.out, n), !0)
                    };
                wt("Gestures", {
                    publicMethods: {
                        initGestures: function() {
                            var t = function(t, e, i, n, l) {
                                C = t + e, T = t + i, A = t + n, O = l ? t + l : ""
                            };
                            (E = F.pointerEvent) && F.touch && (F.touch = !1), E ? navigator.pointerEnabled ? t("pointer", "down", "move", "up", "cancel") : t("MSPointer", "Down", "Move", "Up", "Cancel") : F.touch ? (t("touch", "start", "move", "end", "cancel"), I = !0) : t("mouse", "down", "move", "up"), f = T + " " + A + " " + O, m = C, E && !I && (I = navigator.maxTouchPoints > 1 || navigator.msMaxTouchPoints > 1), a.likelyTouchDevice = I, v[C] = Ce, v[T] = Te, v[A] = Oe, O && (v[O] = v[A]), F.touch && (m += " mousedown", f += " mousemove mouseup", v.mousedown = v[C], v.mousemove = v[T], v.mouseup = v[A]), I || (r.allowPanToNext = !1)
                        }
                    }
                });
                var $e, Le, Re, Ve, Fe, je, We = function(e, i, n, l) {
                        var s;
                        $e && clearTimeout($e), Ve = !0, Re = !0, e.initialLayout ? (s = e.initialLayout, e.initialLayout = null) : s = r.getThumbBoundsFn && r.getThumbBoundsFn(h);
                        var c = n ? r.hideAnimationDuration : r.showAnimationDuration,
                            d = function() {
                                Xt("initialZoom"), n ? (a.template.removeAttribute("style"), a.bg.removeAttribute("style")) : (At(1), i && (i.style.display = "block"), o.addClass(t, "pswp--animated-in"), Ct("initialZoom" + (n ? "OutEnd" : "InEnd"))), l && l(), Ve = !1
                            };
                        if (!c || !s || void 0 === s.x) return Ct("initialZoom" + (n ? "Out" : "In")), g = e.initialZoomLevel, $t(ht, e.initialPosition), Pt(), t.style.opacity = n ? 0 : 1, At(1), void(c ? setTimeout((function() {
                            d()
                        }), c) : d());
                        ! function() {
                            var i = u,
                                l = !a.currItem.src || a.currItem.loadError || r.showHideOpacity;
                            e.miniImg && (e.miniImg.style.webkitBackfaceVisibility = "hidden"), n || (g = s.w / e.w, ht.x = s.x, ht.y = s.y - L, a[l ? "template" : "bg"].style.opacity = .001, Pt()), Ut("initialZoom"), n && !i && o.removeClass(t, "pswp--animated-in"), l && (n ? o[(i ? "remove" : "add") + "Class"](t, "pswp--animate_opacity") : setTimeout((function() {
                                o.addClass(t, "pswp--animate_opacity")
                            }), 30)), $e = setTimeout((function() {
                                if (Ct("initialZoom" + (n ? "Out" : "In")), n) {
                                    var a = s.w / e.w,
                                        r = {
                                            x: ht.x,
                                            y: ht.y
                                        },
                                        u = g,
                                        h = at,
                                        p = function(e) {
                                            1 === e ? (g = a, ht.x = s.x, ht.y = s.y - V) : (g = (a - u) * e + u, ht.x = (s.x - r.x) * e + r.x, ht.y = (s.y - V - r.y) * e + r.y), Pt(), l ? t.style.opacity = 1 - e : At(h - e * h)
                                        };
                                    i ? Gt("initialZoom", 0, 1, c, o.easing.cubic.out, p, d) : (p(1), $e = setTimeout(d, c + 20))
                                } else g = e.initialZoomLevel, $t(ht, e.initialPosition), Pt(), At(1), l ? t.style.opacity = 1 : At(1), $e = setTimeout(d, c + 20)
                            }), n ? 25 : 90)
                        }()
                    },
                    He = {},
                    Ne = [],
                    ze = {
                        index: 0,
                        errorMsg: '<div class="pswp__error-msg"><a href="%url%" target="_blank">The image</a> could not be loaded.</div>',
                        forceProgressiveLoading: !1,
                        preload: [1, 1],
                        getNumItemsFn: function() {
                            return Le.length
                        }
                    },
                    Be = function(t, e, i) {
                        if (t.src && !t.loadError) {
                            var n = !i;
                            if (n && (t.vGap || (t.vGap = {
                                    top: 0,
                                    bottom: 0
                                }), Ct("parseVerticalMargin", t)), He.x = e.x, He.y = e.y - t.vGap.top - t.vGap.bottom, n) {
                                var l = He.x / t.w,
                                    o = He.y / t.h;
                                t.fitRatio = o > l ? l : o;
                                var a = r.scaleMode;
                                "orig" === a ? i = 1 : "fit" === a && (i = t.fitRatio), i > 1 && (i = 1), t.initialZoomLevel = i, t.bounds || (t.bounds = {
                                    center: {
                                        x: 0,
                                        y: 0
                                    },
                                    max: {
                                        x: 0,
                                        y: 0
                                    },
                                    min: {
                                        x: 0,
                                        y: 0
                                    }
                                })
                            }
                            if (!i) return;
                            return function(t, e, i) {
                                var n = t.bounds;
                                n.center.x = Math.round((He.x - e) / 2), n.center.y = Math.round((He.y - i) / 2) + t.vGap.top, n.max.x = e > He.x ? Math.round(He.x - e) : n.center.x, n.max.y = i > He.y ? Math.round(He.y - i) + t.vGap.top : n.center.y, n.min.x = e > He.x ? 0 : n.center.x, n.min.y = i > He.y ? t.vGap.top : n.center.y
                            }(t, t.w * i, t.h * i), n && i === t.initialZoomLevel && (t.initialPosition = t.bounds.center), t.bounds
                        }
                        return t.w = t.h = 0, t.initialZoomLevel = t.fitRatio = 1, t.bounds = {
                            center: {
                                x: 0,
                                y: 0
                            },
                            max: {
                                x: 0,
                                y: 0
                            },
                            min: {
                                x: 0,
                                y: 0
                            }
                        }, t.initialPosition = t.bounds.center, t.bounds
                    },
                    Ze = function(t, e, i, n, l, o) {
                        e.loadError || n && (e.imageAppended = !0, Ue(e, n, e === a.currItem && xt), i.appendChild(n), o && setTimeout((function() {
                            e && e.loaded && e.placeholder && (e.placeholder.style.display = "none", e.placeholder = null)
                        }), 500))
                    },
                    Ye = function(t) {
                        t.loading = !0, t.loaded = !1;
                        var e = t.img = o.createEl("pswp__img", "img"),
                            i = function() {
                                t.loading = !1, t.loaded = !0, t.loadComplete ? t.loadComplete(t) : t.img = null, e.onload = e.onerror = null, e = null
                            };
                        return e.onload = i, e.onerror = function() {
                            t.loadError = !0, i()
                        }, e.src = t.src, e
                    },
                    Xe = function(t, e) {
                        return t.src && t.loadError && t.container ? (e && (t.container.innerHTML = ""), t.container.innerHTML = r.errorMsg.replace("%url%", t.src), !0) : void 0
                    },
                    Ue = function(t, e, i) {
                        if (t.src) {
                            e || (e = t.container.lastChild);
                            var n = i ? t.w : Math.round(t.w * t.fitRatio),
                                l = i ? t.h : Math.round(t.h * t.fitRatio);
                            t.placeholder && !t.loaded && (t.placeholder.style.width = n + "px", t.placeholder.style.height = l + "px"), e.style.width = n + "px", e.style.height = l + "px"
                        }
                    },
                    qe = function() {
                        if (Ne.length) {
                            for (var t, e = 0; e < Ne.length; e++)(t = Ne[e]).holder.index === t.index && Ze(t.index, t.item, t.baseDiv, t.img, 0, t.clearPlaceholder);
                            Ne = []
                        }
                    };
                wt("Controller", {
                    publicMethods: {
                        lazyLoadItem: function(t) {
                            t = kt(t);
                            var e = Fe(t);
                            e && (!e.loaded && !e.loading || k) && (Ct("gettingData", t, e), e.src && Ye(e))
                        },
                        initController: function() {
                            o.extend(r, ze, !0), a.items = Le = n, Fe = a.getItemAt, je = r.getNumItemsFn, r.loop, je() < 3 && (r.loop = !1), Mt("beforeChange", (function(t) {
                                var e, i = r.preload,
                                    n = null === t || t >= 0,
                                    l = Math.min(i[0], je()),
                                    o = Math.min(i[1], je());
                                for (e = 1;
                                    (n ? o : l) >= e; e++) a.lazyLoadItem(h + e);
                                for (e = 1;
                                    (n ? l : o) >= e; e++) a.lazyLoadItem(h - e)
                            })), Mt("initialLayout", (function() {
                                a.currItem.initialLayout = r.getThumbBoundsFn && r.getThumbBoundsFn(h)
                            })), Mt("mainScrollAnimComplete", qe), Mt("initialZoomInEnd", qe), Mt("destroy", (function() {
                                for (var t, e = 0; e < Le.length; e++)(t = Le[e]).container && (t.container = null), t.placeholder && (t.placeholder = null), t.img && (t.img = null), t.preloader && (t.preloader = null), t.loadError && (t.loaded = t.loadError = !1);
                                Ne = null
                            }))
                        },
                        getItemAt: function(t) {
                            return t >= 0 && void 0 !== Le[t] && Le[t]
                        },
                        allowProgressiveImg: function() {
                            return r.forceProgressiveLoading || !I || r.mouseUsed || screen.width > 1200
                        },
                        setContent: function(t, e) {
                            r.loop && (e = kt(e));
                            var i = a.getItemAt(t.index);
                            i && (i.container = null);
                            var n, l = a.getItemAt(e);
                            if (l) {
                                Ct("gettingData", e, l), t.index = e, t.item = l;
                                var c = l.container = o.createEl("pswp__zoom-wrap");
                                if (!l.src && l.html && (l.html.tagName ? c.appendChild(l.html) : c.innerHTML = l.html), Xe(l), Be(l, dt), !l.src || l.loadError || l.loaded) l.src && !l.loadError && ((n = o.createEl("pswp__img", "img")).style.opacity = 1, n.src = l.src, Ue(l, n), Ze(0, l, c, n));
                                else {
                                    if (l.loadComplete = function(i) {
                                            if (s) {
                                                if (t && t.index === e) {
                                                    if (Xe(i, !0)) return i.loadComplete = i.img = null, Be(i, dt), Et(i), void(t.index === h && a.updateCurrZoomItem());
                                                    i.imageAppended ? !Ve && i.placeholder && (i.placeholder.style.display = "none", i.placeholder = null) : F.transform && (it || Ve) ? Ne.push({
                                                        item: i,
                                                        baseDiv: c,
                                                        img: i.img,
                                                        index: e,
                                                        holder: t,
                                                        clearPlaceholder: !0
                                                    }) : Ze(0, i, c, i.img, 0, !0)
                                                }
                                                i.loadComplete = null, i.img = null, Ct("imageLoadComplete", e, i)
                                            }
                                        }, o.features.transform) {
                                        var u = "pswp__img pswp__img--placeholder";
                                        u += l.msrc ? "" : " pswp__img--placeholder--blank";
                                        var d = o.createEl(u, l.msrc ? "img" : "");
                                        l.msrc && (d.src = l.msrc), Ue(l, d), c.appendChild(d), l.placeholder = d
                                    }
                                    l.loading || Ye(l), a.allowProgressiveImg() && (!Re && F.transform ? Ne.push({
                                        item: l,
                                        baseDiv: c,
                                        img: l.img,
                                        index: e,
                                        holder: t
                                    }) : Ze(0, l, c, l.img, 0, !0))
                                }
                                Re || e !== h ? Et(l) : (et = c.style, We(l, n || l.img)), t.el.innerHTML = "", t.el.appendChild(c)
                            } else t.el.innerHTML = ""
                        },
                        cleanSlide: function(t) {
                            t.img && (t.img.onload = t.img.onerror = null), t.loaded = t.loading = t.img = t.imageAppended = !1
                        }
                    }
                });
                var Ge, Ke, Qe = {},
                    Je = function(t, e, i) {
                        var n = document.createEvent("CustomEvent"),
                            l = {
                                origEvent: t,
                                target: t.target,
                                releasePoint: e,
                                pointerType: i || "touch"
                            };
                        n.initCustomEvent("pswpTap", !0, !0, l), t.target.dispatchEvent(n)
                    };
                wt("Tap", {
                    publicMethods: {
                        initTap: function() {
                            Mt("firstTouchStart", a.onTapStart), Mt("touchRelease", a.onTapRelease), Mt("destroy", (function() {
                                Qe = {}, Ge = null
                            }))
                        },
                        onTapStart: function(t) {
                            t.length > 1 && (clearTimeout(Ge), Ge = null)
                        },
                        onTapRelease: function(t, e) {
                            if (e && !U && !Y && !Yt) {
                                var i = e;
                                if (Ge && (clearTimeout(Ge), Ge = null, function(t, e) {
                                        return Math.abs(t.x - e.x) < 25 && Math.abs(t.y - e.y) < 25
                                    }(i, Qe))) return void Ct("doubleTap", i);
                                if ("mouse" === e.type) return void Je(t, e, "mouse");
                                if ("BUTTON" === t.target.tagName.toUpperCase() || o.hasClass(t.target, "pswp__single-tap")) return void Je(t, e);
                                $t(Qe, i), Ge = setTimeout((function() {
                                    Je(t, e), Ge = null
                                }), 300)
                            }
                        }
                    }
                }), wt("DesktopZoom", {
                    publicMethods: {
                        initDesktopZoom: function() {
                            R || (I ? Mt("mouseUsed", (function() {
                                a.setupDesktopZoom()
                            })) : a.setupDesktopZoom(!0))
                        },
                        setupDesktopZoom: function(e) {
                            Ke = {};
                            var i = "wheel mousewheel DOMMouseScroll";
                            Mt("bindEvents", (function() {
                                o.bind(t, i, a.handleMouseWheel)
                            })), Mt("unbindEvents", (function() {
                                Ke && o.unbind(t, i, a.handleMouseWheel)
                            })), a.mouseZoomedIn = !1;
                            var n, l = function() {
                                    a.mouseZoomedIn && (o.removeClass(t, "pswp--zoomed-in"), a.mouseZoomedIn = !1), 1 > g ? o.addClass(t, "pswp--zoom-allowed") : o.removeClass(t, "pswp--zoom-allowed"), r()
                                },
                                r = function() {
                                    n && (o.removeClass(t, "pswp--dragging"), n = !1)
                                };
                            Mt("resize", l), Mt("afterChange", l), Mt("pointerDown", (function() {
                                a.mouseZoomedIn && (n = !0, o.addClass(t, "pswp--dragging"))
                            })), Mt("pointerUp", r), e || l()
                        },
                        handleMouseWheel: function(t) {
                            if (g <= a.currItem.fitRatio) return r.modal && (!r.closeOnScroll || Yt || Z ? t.preventDefault() : P && Math.abs(t.deltaY) > 2 && (u = !0, a.close())), !0;
                            if (t.stopPropagation(), Ke.x = 0, "deltaX" in t) 1 === t.deltaMode ? (Ke.x = 18 * t.deltaX, Ke.y = 18 * t.deltaY) : (Ke.x = t.deltaX, Ke.y = t.deltaY);
                            else if ("wheelDelta" in t) t.wheelDeltaX && (Ke.x = -.16 * t.wheelDeltaX), t.wheelDeltaY ? Ke.y = -.16 * t.wheelDeltaY : Ke.y = -.16 * t.wheelDelta;
                            else {
                                if (!("detail" in t)) return;
                                Ke.y = t.detail
                            }
                            Ft(g, !0);
                            var e = ht.x - Ke.x,
                                i = ht.y - Ke.y;
                            (r.modal || e <= tt.min.x && e >= tt.max.x && i <= tt.min.y && i >= tt.max.y) && t.preventDefault(), a.panTo(e, i)
                        },
                        toggleDesktopZoom: function(e) {
                            e = e || {
                                x: dt.x / 2 + ft.x,
                                y: dt.y / 2 + ft.y
                            };
                            var i = r.getDoubleTapZoom(!0, a.currItem),
                                n = g === i;
                            a.mouseZoomedIn = !n, a.zoomTo(n ? a.currItem.initialZoomLevel : i, e, 333), o[(n ? "remove" : "add") + "Class"](t, "pswp--zoomed-in")
                        }
                    }
                });
                var ti, ei, ii, ni, li, oi, ai, ri, si, ci, ui, hi, di = {
                        history: !0,
                        galleryUID: 1
                    },
                    pi = function() {
                        return ui.hash.substring(1)
                    },
                    fi = function() {
                        ti && clearTimeout(ti), ii && clearTimeout(ii)
                    },
                    mi = function() {
                        var t = pi(),
                            e = {};
                        if (t.length < 5) return e;
                        var i, n = t.split("&");
                        for (i = 0; i < n.length; i++)
                            if (n[i]) {
                                var l = n[i].split("=");
                                l.length < 2 || (e[l[0]] = l[1])
                            } if (r.galleryPIDs) {
                            var o = e.pid;
                            for (e.pid = 0, i = 0; i < Le.length; i++)
                                if (Le[i].pid === o) {
                                    e.pid = i;
                                    break
                                }
                        } else e.pid = parseInt(e.pid, 10) - 1;
                        return e.pid < 0 && (e.pid = 0), e
                    },
                    vi = function t() {
                        if (ii && clearTimeout(ii), Yt || Z) ii = setTimeout(t, 500);
                        else {
                            ni ? clearTimeout(ei) : ni = !0;
                            var e = h + 1,
                                i = Fe(h);
                            i.hasOwnProperty("pid") && (e = i.pid);
                            var n = ai + "&gid=" + r.galleryUID + "&pid=" + e;
                            ri || -1 === ui.hash.indexOf(n) && (ci = !0);
                            var l = ui.href.split("#")[0] + "#" + n;
                            hi ? "#" + n !== window.location.hash && history[ri ? "replaceState" : "pushState"]("", document.title, l) : ri ? ui.replace(l) : ui.hash = n, ri = !0, ei = setTimeout((function() {
                                ni = !1
                            }), 60)
                        }
                    };
                wt("History", {
                    publicMethods: {
                        initHistory: function() {
                            if (o.extend(r, di, !0), r.history) {
                                ui = window.location, ci = !1, si = !1, ri = !1, ai = pi(), hi = "pushState" in history, ai.indexOf("gid=") > -1 && (ai = (ai = ai.split("&gid=")[0]).split("?gid=")[0]), Mt("afterChange", a.updateURL), Mt("unbindEvents", (function() {
                                    o.unbind(window, "hashchange", a.onHashChange)
                                }));
                                var t = function() {
                                    oi = !0, si || (ci ? history.back() : ai ? ui.hash = ai : hi ? history.pushState("", document.title, ui.pathname + ui.search) : ui.hash = ""), fi()
                                };
                                Mt("unbindEvents", (function() {
                                    u && t()
                                })), Mt("destroy", (function() {
                                    oi || t()
                                })), Mt("firstUpdate", (function() {
                                    h = mi().pid
                                }));
                                var e = ai.indexOf("pid=");
                                e > -1 && ("&" === (ai = ai.substring(0, e)).slice(-1) && (ai = ai.slice(0, -1))), setTimeout((function() {
                                    s && o.bind(window, "hashchange", a.onHashChange)
                                }), 40)
                            }
                        },
                        onHashChange: function() {
                            return pi() === ai ? (si = !0, void a.close()) : void(ni || (li = !0, a.goTo(mi().pid), li = !1))
                        },
                        updateURL: function() {
                            fi(), li || (ri ? ti = setTimeout(vi, 800) : vi())
                        }
                    }
                }), o.extend(a, Kt)
            }
        })),
        function(n, l) {
            "function" == typeof define && i(75) ? define(l) : "object" == ("undefined" == typeof exports ? "undefined" : e(exports)) ? t.exports = l() : window.PhotoSwipeUI_Default = l()
        }(0, (function() {
            return function(t, e) {
                var i, n, l, o, a, r, s, c, u, h, d, p, f, m, v, g, y, b, x = this,
                    w = !1,
                    k = !0,
                    S = !0,
                    M = {
                        barsSize: {
                            top: 44,
                            bottom: "auto"
                        },
                        closeElClasses: ["item", "caption", "zoom-wrap", "ui", "top-bar"],
                        timeToIdle: 4e3,
                        timeToIdleOutside: 1e3,
                        loadingIndicatorDelay: 1e3,
                        addCaptionHTMLFn: function(t, e) {
                            return t.title ? (e.children[0].innerHTML = t.title, !0) : (e.children[0].innerHTML = "", !1)
                        },
                        closeEl: !0,
                        captionEl: !0,
                        fullscreenEl: !0,
                        zoomEl: !0,
                        shareEl: !0,
                        counterEl: !0,
                        arrowEl: !0,
                        preloaderEl: !0,
                        tapToClose: !1,
                        tapToToggleControls: !0,
                        clickToCloseNonZoomable: !0,
                        shareButtons: [{
                            id: "facebook",
                            label: "Share on Facebook",
                            url: "https://www.facebook.com/sharer/sharer.php?u={{url}}"
                        }, {
                            id: "twitter",
                            label: "Tweet",
                            url: "https://twitter.com/intent/tweet?text={{text}}&url={{url}}"
                        }, {
                            id: "pinterest",
                            label: "Pin it",
                            url: "http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}"
                        }, {
                            id: "download",
                            label: "Download image",
                            url: "{{raw_image_url}}",
                            download: !0
                        }],
                        getImageURLForShare: function() {
                            return t.currItem.src || ""
                        },
                        getPageURLForShare: function() {
                            return window.location.href
                        },
                        getTextForShare: function() {
                            return t.currItem.title || ""
                        },
                        indexIndicatorSep: " / ",
                        fitControlsWidth: 1200
                    },
                    C = function(t) {
                        if (g) return !0;
                        t = t || window.event, v.timeToIdle && v.mouseUsed && !u && $();
                        for (var i, n, l = (t.target || t.srcElement).getAttribute("class") || "", o = 0; o < F.length; o++)(i = F[o]).onTap && l.indexOf("pswp__" + i.name) > -1 && (i.onTap(), n = !0);
                        if (n) {
                            t.stopPropagation && t.stopPropagation(), g = !0;
                            var a = e.features.isOldAndroid ? 600 : 30;
                            setTimeout((function() {
                                g = !1
                            }), a)
                        }
                    },
                    T = function(t, i, n) {
                        e[(n ? "add" : "remove") + "Class"](t, "pswp__" + i)
                    },
                    A = function() {
                        var t = 1 === v.getNumItemsFn();
                        t !== m && (T(n, "ui--one-slide", t), m = t)
                    },
                    O = function() {
                        T(s, "share-modal--hidden", S)
                    },
                    P = function() {
                        return (S = !S) ? (e.removeClass(s, "pswp__share-modal--fade-in"), setTimeout((function() {
                            S && O()
                        }), 300)) : (O(), setTimeout((function() {
                            S || e.addClass(s, "pswp__share-modal--fade-in")
                        }), 30)), S || I(), !1
                    },
                    E = function(e) {
                        var i = (e = e || window.event).target || e.srcElement;
                        return t.shout("shareLinkClick", e, i), !!i.href && (!!i.hasAttribute("download") || (window.open(i.href, "pswp_share", "scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,top=100,left=" + (window.screen ? Math.round(screen.width / 2 - 275) : 100)), S || P(), !1))
                    },
                    I = function() {
                        for (var t, e, i, n, l = "", o = 0; o < v.shareButtons.length; o++) t = v.shareButtons[o], e = v.getImageURLForShare(t), i = v.getPageURLForShare(t), n = v.getTextForShare(t), l += '<a href="' + t.url.replace("{{url}}", encodeURIComponent(i)).replace("{{image_url}}", encodeURIComponent(e)).replace("{{raw_image_url}}", e).replace("{{text}}", encodeURIComponent(n)) + '" target="_blank" class="pswp__share--' + t.id + '"' + (t.download ? "download" : "") + ">" + t.label + "</a>", v.parseShareButtonOut && (l = v.parseShareButtonOut(t, l));
                        s.children[0].innerHTML = l, s.children[0].onclick = E
                    },
                    _ = function(t) {
                        for (var i = 0; i < v.closeElClasses.length; i++)
                            if (e.hasClass(t, "pswp__" + v.closeElClasses[i])) return !0
                    },
                    D = 0,
                    $ = function() {
                        clearTimeout(b), D = 0, u && x.setIdle(!1)
                    },
                    L = function(t) {
                        var e = (t = t || window.event).relatedTarget || t.toElement;
                        e && "HTML" !== e.nodeName || (clearTimeout(b), b = setTimeout((function() {
                            x.setIdle(!0)
                        }), v.timeToIdleOutside))
                    },
                    R = function(t) {
                        p !== t && (T(d, "preloader--active", !t), p = t)
                    },
                    V = function(i) {
                        var a = i.vGap;
                        if (!t.likelyTouchDevice || v.mouseUsed || screen.width > v.fitControlsWidth) {
                            var r = v.barsSize;
                            if (v.captionEl && "auto" === r.bottom)
                                if (o || ((o = e.createEl("pswp__caption pswp__caption--fake")).appendChild(e.createEl("pswp__caption__center")), n.insertBefore(o, l), e.addClass(n, "pswp__ui--fit")), v.addCaptionHTMLFn(i, o, !0)) {
                                    var s = o.clientHeight;
                                    a.bottom = parseInt(s, 10) || 44
                                } else a.bottom = r.top;
                            else a.bottom = "auto" === r.bottom ? 0 : r.bottom;
                            a.top = r.top
                        } else a.top = a.bottom = 0
                    },
                    F = [{
                        name: "caption",
                        option: "captionEl",
                        onInit: function(t) {
                            l = t
                        }
                    }, {
                        name: "share-modal",
                        option: "shareEl",
                        onInit: function(t) {
                            s = t
                        },
                        onTap: function() {
                            P()
                        }
                    }, {
                        name: "button--share",
                        option: "shareEl",
                        onInit: function(t) {
                            r = t
                        },
                        onTap: function() {
                            P()
                        }
                    }, {
                        name: "button--zoom",
                        option: "zoomEl",
                        onTap: t.toggleDesktopZoom
                    }, {
                        name: "counter",
                        option: "counterEl",
                        onInit: function(t) {
                            a = t
                        }
                    }, {
                        name: "button--close",
                        option: "closeEl",
                        onTap: t.close
                    }, {
                        name: "button--arrow--left",
                        option: "arrowEl",
                        onTap: t.prev
                    }, {
                        name: "button--arrow--right",
                        option: "arrowEl",
                        onTap: t.next
                    }, {
                        name: "button--fs",
                        option: "fullscreenEl",
                        onTap: function() {
                            i.isFullscreen() ? i.exit() : i.enter()
                        }
                    }, {
                        name: "preloader",
                        option: "preloaderEl",
                        onInit: function(t) {
                            d = t
                        }
                    }];
                x.init = function() {
                    e.extend(t.options, M, !0), v = t.options, n = e.getChildByClass(t.scrollWrap, "pswp__ui"), h = t.listen,
                        function() {
                            var t;
                            h("onVerticalDrag", (function(t) {
                                k && .95 > t ? x.hideControls() : !k && t >= .95 && x.showControls()
                            })), h("onPinchClose", (function(e) {
                                k && .9 > e ? (x.hideControls(), t = !0) : t && !k && e > .9 && x.showControls()
                            })), h("zoomGestureEnded", (function() {
                                (t = !1) && !k && x.showControls()
                            }))
                        }(), h("beforeChange", x.update), h("doubleTap", (function(e) {
                            var i = t.currItem.initialZoomLevel;
                            t.getZoomLevel() !== i ? t.zoomTo(i, e, 333) : t.zoomTo(v.getDoubleTapZoom(!1, t.currItem), e, 333)
                        })), h("preventDragEvent", (function(t, e, i) {
                            var n = t.target || t.srcElement;
                            n && n.getAttribute("class") && t.type.indexOf("mouse") > -1 && (n.getAttribute("class").indexOf("__caption") > 0 || /(SMALL|STRONG|EM)/i.test(n.tagName)) && (i.prevent = !1)
                        })), h("bindEvents", (function() {
                            e.bind(n, "pswpTap click", C), e.bind(t.scrollWrap, "pswpTap", x.onGlobalTap), t.likelyTouchDevice || e.bind(t.scrollWrap, "mouseover", x.onMouseOver)
                        })), h("unbindEvents", (function() {
                            S || P(), y && clearInterval(y), e.unbind(document, "mouseout", L), e.unbind(document, "mousemove", $), e.unbind(n, "pswpTap click", C), e.unbind(t.scrollWrap, "pswpTap", x.onGlobalTap), e.unbind(t.scrollWrap, "mouseover", x.onMouseOver), i && (e.unbind(document, i.eventK, x.updateFullscreen), i.isFullscreen() && (v.hideAnimationDuration = 0, i.exit()), i = null)
                        })), h("destroy", (function() {
                            v.captionEl && (o && n.removeChild(o), e.removeClass(l, "pswp__caption--empty")), s && (s.children[0].onclick = null), e.removeClass(n, "pswp__ui--over-close"), e.addClass(n, "pswp__ui--hidden"), x.setIdle(!1)
                        })), v.showAnimationDuration || e.removeClass(n, "pswp__ui--hidden"), h("initialZoomIn", (function() {
                            v.showAnimationDuration && e.removeClass(n, "pswp__ui--hidden")
                        })), h("initialZoomOut", (function() {
                            e.addClass(n, "pswp__ui--hidden")
                        })), h("parseVerticalMargin", V),
                        function() {
                            var t, i, l, o = function(n) {
                                if (n)
                                    for (var o = n.length, a = 0; o > a; a++) {
                                        t = n[a], i = t.className;
                                        for (var r = 0; r < F.length; r++) l = F[r], i.indexOf("pswp__" + l.name) > -1 && (v[l.option] ? (e.removeClass(t, "pswp__element--disabled"), l.onInit && l.onInit(t)) : e.addClass(t, "pswp__element--disabled"))
                                    }
                            };
                            o(n.children);
                            var a = e.getChildByClass(n, "pswp__top-bar");
                            a && o(a.children)
                        }(), v.shareEl && r && s && (S = !0), A(), v.timeToIdle && h("mouseUsed", (function() {
                            e.bind(document, "mousemove", $), e.bind(document, "mouseout", L), y = setInterval((function() {
                                2 == ++D && x.setIdle(!0)
                            }), v.timeToIdle / 2)
                        })), v.fullscreenEl && !e.features.isOldAndroid && (i || (i = x.getFullscreenAPI()), i ? (e.bind(document, i.eventK, x.updateFullscreen), x.updateFullscreen(), e.addClass(t.template, "pswp--supports-fs")) : e.removeClass(t.template, "pswp--supports-fs")), v.preloaderEl && (R(!0), h("beforeChange", (function() {
                            clearTimeout(f), f = setTimeout((function() {
                                t.currItem && t.currItem.loading ? (!t.allowProgressiveImg() || t.currItem.img && !t.currItem.img.naturalWidth) && R(!1) : R(!0)
                            }), v.loadingIndicatorDelay)
                        })), h("imageLoadComplete", (function(e, i) {
                            t.currItem === i && R(!0)
                        })))
                }, x.setIdle = function(t) {
                    u = t, T(n, "ui--idle", t)
                }, x.update = function() {
                    k && t.currItem ? (x.updateIndexIndicator(), v.captionEl && (v.addCaptionHTMLFn(t.currItem, l), T(l, "caption--empty", !t.currItem.title)), w = !0) : w = !1, S || P(), A()
                }, x.updateFullscreen = function(n) {
                    n && setTimeout((function() {
                        t.setScrollOffset(0, e.getScrollY())
                    }), 50), e[(i.isFullscreen() ? "add" : "remove") + "Class"](t.template, "pswp--fs")
                }, x.updateIndexIndicator = function() {
                    v.counterEl && (a.innerHTML = t.getCurrentIndex() + 1 + v.indexIndicatorSep + v.getNumItemsFn())
                }, x.onGlobalTap = function(i) {
                    var n = (i = i || window.event).target || i.srcElement;
                    if (!g)
                        if (i.detail && "mouse" === i.detail.pointerType) {
                            if (_(n)) return void t.close();
                            e.hasClass(n, "pswp__img") && (1 === t.getZoomLevel() && t.getZoomLevel() <= t.currItem.fitRatio ? v.clickToCloseNonZoomable && t.close() : t.toggleDesktopZoom(i.detail.releasePoint))
                        } else if (v.tapToToggleControls && (k ? x.hideControls() : x.showControls()), v.tapToClose && (e.hasClass(n, "pswp__img") || _(n))) return void t.close()
                }, x.onMouseOver = function(t) {
                    var e = (t = t || window.event).target || t.srcElement;
                    T(n, "ui--over-close", _(e))
                }, x.hideControls = function() {
                    e.addClass(n, "pswp__ui--hidden"), k = !1
                }, x.showControls = function() {
                    k = !0, w || x.update(), e.removeClass(n, "pswp__ui--hidden")
                }, x.supportsFullscreen = function() {
                    var t = document;
                    return !!(t.exitFullscreen || t.mozCancelFullScreen || t.webkitExitFullscreen || t.msExitFullscreen)
                }, x.getFullscreenAPI = function() {
                    var e, i = document.documentElement,
                        n = "fullscreenchange";
                    return i.requestFullscreen ? e = {
                        enterK: "requestFullscreen",
                        exitK: "exitFullscreen",
                        elementK: "fullscreenElement",
                        eventK: n
                    } : i.mozRequestFullScreen ? e = {
                        enterK: "mozRequestFullScreen",
                        exitK: "mozCancelFullScreen",
                        elementK: "mozFullScreenElement",
                        eventK: "moz" + n
                    } : i.webkitRequestFullscreen ? e = {
                        enterK: "webkitRequestFullscreen",
                        exitK: "webkitExitFullscreen",
                        elementK: "webkitFullscreenElement",
                        eventK: "webkit" + n
                    } : i.msRequestFullscreen && (e = {
                        enterK: "msRequestFullscreen",
                        exitK: "msExitFullscreen",
                        elementK: "msFullscreenElement",
                        eventK: "MSFullscreenChange"
                    }), e && (e.enter = function() {
                        return c = v.closeOnScroll, v.closeOnScroll = !1, "webkitRequestFullscreen" !== this.enterK ? t.template[this.enterK]() : void t.template[this.enterK](Element.ALLOW_KEYBOARD_INPUT)
                    }, e.exit = function() {
                        return v.closeOnScroll = c, document[this.exitK]()
                    }, e.isFullscreen = function() {
                        return document[this.elementK]
                    }), e
                }
            }
        }));
        ! function(t) {
            for (var e = function(t) {
                    (t = t || window.event).preventDefault ? t.preventDefault() : t.returnValue = !1;
                    var e = function t(e, i) {
                        return e && (i(e) ? e : t(e.parentNode, i))
                    }(t.target || t.srcElement, (function(t) {
                        return t.tagName && "FIGURE" === t.tagName.toUpperCase()
                    }));
                    if (e) {
                        for (var n, l = e.parentNode, o = e.parentNode.childNodes, a = o.length, r = 0, s = 0; s < a; s++)
                            if (1 === o[s].nodeType) {
                                if (o[s] === e) {
                                    n = r;
                                    break
                                }
                                r++
                            } return n >= 0 && i(n, l), !1
                    }
                }, i = function(t, e, i, n) {
                    var l, o, a = document.querySelectorAll(".pswp")[0];
                    if (o = function(t) {
                            for (var e, i, n, l, o = t.childNodes, a = o.length, r = [], s = 0; s < a; s++) 1 === (e = o[s]).nodeType && (n = (i = e.children[0]).getAttribute("data-size").split("x"), l = {
                                src: i.getAttribute("href"),
                                w: parseInt(n[0], 10),
                                h: parseInt(n[1], 10)
                            }, e.children.length > 1 && (l.title = e.children[1].innerHTML), i.children.length > 0 && (l.msrc = i.children[0].getAttribute("src")), l.el = e, r.push(l));
                            return r
                        }(e), l = {
                            galleryUID: e.getAttribute("data-pswp-uid"),
                            getThumbBoundsFn: function(t) {
                                var e = o[t].el.getElementsByTagName("img")[0],
                                    i = window.pageYOffset || document.documentElement.scrollTop,
                                    n = e.getBoundingClientRect();
                                return {
                                    x: n.left,
                                    y: n.top + i,
                                    w: n.width
                                }
                            }
                        }, n)
                        if (l.galleryPIDs) {
                            for (var r = 0; r < o.length; r++)
                                if (o[r].pid == t) {
                                    l.index = r;
                                    break
                                }
                        } else l.index = parseInt(t, 10) - 1;
                    else l.index = parseInt(t, 10);
                    isNaN(l.index) || (i && (l.showAnimationDuration = 0), new PhotoSwipe(a, PhotoSwipeUI_Default, o, l).init())
                }, n = document.querySelectorAll(t), l = 0, o = n.length; l < o; l++) n[l].setAttribute("data-pswp-uid", l + 1), n[l].onclick = e;
            var a = function() {
                var t = window.location.hash.substring(1),
                    e = {};
                if (t.length < 5) return e;
                for (var i = t.split("&"), n = 0; n < i.length; n++)
                    if (i[n]) {
                        var l = i[n].split("=");
                        l.length < 2 || (e[l[0]] = l[1])
                    } return e.gid && (e.gid = parseInt(e.gid, 10)), e
            }();
            a.pid && a.gid && i(a.pid, n[a.gid - 1], !0, !0)
        }(".mdb-lightbox")
    }).call(this, i(95)(t))
}, function(t, e, i) {
    "use strict";
    (function(t) {
        var e;
        i(69), i(71), i(72), i(91), i(43), i(66), i(54), i(78), i(96), i(100), i(89), i(64), i(68), i(97), i(73), i(117), i(86), i(98), i(74);

        function n(t) {
            return (n = "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)
        }
        /*!
         * Date picker for pickadate.js v3.6.3
         * http://amsul.github.io/pickadate.js/date.htm
         */
        e = function(t, e) {
            var i, n = t._;

            function l(t, e) {
                var i, n = this,
                    l = t.$node[0],
                    o = l.value,
                    a = t.$node.data("value"),
                    r = a || o,
                    s = a ? e.formatSubmit : e.format,
                    c = function() {
                        return l.currentStyle ? "rtl" == l.currentStyle.direction : "rtl" == getComputedStyle(t.$root[0]).direction
                    };
                n.settings = e, n.$node = t.$node, n.queue = {
                    min: "measure create",
                    max: "measure create",
                    now: "now create",
                    select: "parse create validate",
                    highlight: "parse navigate create validate",
                    view: "parse create validate viewset",
                    disable: "deactivate",
                    enable: "activate"
                }, n.item = {}, n.item.clear = null, n.item.disable = (e.disable || []).slice(0), n.item.enable = -(!0 === (i = n.item.disable)[0] ? i.shift() : -1), n.set("min", e.min).set("max", e.max).set("now"), r ? n.set("select", r, {
                    format: s,
                    defaultValue: !0
                }) : n.set("select", null).set("highlight", n.item.now), n.key = {
                    40: 7,
                    38: -7,
                    39: function() {
                        return c() ? -1 : 1
                    },
                    37: function() {
                        return c() ? 1 : -1
                    },
                    go: function(t) {
                        var e = n.item.highlight,
                            i = new Date(e.year, e.month, e.date + t);
                        n.set("highlight", i, {
                            interval: t
                        }), this.render()
                    }
                }, t.on("render", (function() {
                    t.$root.find("." + e.klass.selectMonth).on("change", (function() {
                        var i = this.value;
                        i && (t.set("highlight", [t.get("view").year, i, t.get("highlight").date]), t.$root.find("." + e.klass.selectMonth).trigger("focus"))
                    })), t.$root.find("." + e.klass.selectYear).on("change", (function() {
                        var i = this.value;
                        i && (t.set("highlight", [i, t.get("view").month, t.get("highlight").date]), t.$root.find("." + e.klass.selectYear).trigger("focus"))
                    }))
                }), 1).on("open", (function() {
                    var i = "";
                    n.disabled(n.get("now")) && (i = ":not(." + e.klass.buttonToday + ")"), t.$root.find("button" + i + ", select").attr("disabled", !1)
                }), 1).on("close", (function() {
                    t.$root.find("button, select").attr("disabled", !0)
                }), 1)
            }
            l.prototype.set = function(t, e, i) {
                var n = this,
                    l = n.item;
                return null === e ? ("clear" == t && (t = "select"), l[t] = e, n) : (l["enable" == t ? "disable" : "flip" == t ? "enable" : t] = n.queue[t].split(" ").map((function(l) {
                    return e = n[l](t, e, i)
                })).pop(), "select" == t ? n.set("highlight", l.select, i) : "highlight" == t ? n.set("view", l.highlight, i) : t.match(/^(flip|min|max|disable|enable)$/) && (l.select && n.disabled(l.select) && n.set("select", l.select, i), l.highlight && n.disabled(l.highlight) && n.set("highlight", l.highlight, i)), n)
            }, l.prototype.get = function(t) {
                return this.item[t]
            }, l.prototype.create = function(t, i, l) {
                var o;
                return (i = void 0 === i ? t : i) == -1 / 0 || i == 1 / 0 ? o = i : e.isPlainObject(i) && n.isInteger(i.pick) ? i = i.obj : e.isArray(i) ? (i = new Date(i[0], i[1], i[2]), i = n.isDate(i) ? i : this.create().obj) : i = n.isInteger(i) || n.isDate(i) ? this.normalize(new Date(i), l) : this.now(t, i, l), {
                    year: o || i.getFullYear(),
                    month: o || i.getMonth(),
                    date: o || i.getDate(),
                    day: o || i.getDay(),
                    obj: o || i,
                    pick: o || i.getTime()
                }
            }, l.prototype.createRange = function(t, i) {
                var l = this,
                    o = function(t) {
                        return !0 === t || e.isArray(t) || n.isDate(t) ? l.create(t) : t
                    };
                return n.isInteger(t) || (t = o(t)), n.isInteger(i) || (i = o(i)), n.isInteger(t) && e.isPlainObject(i) ? t = [i.year, i.month, i.date + t] : n.isInteger(i) && e.isPlainObject(t) && (i = [t.year, t.month, t.date + i]), {
                    from: o(t),
                    to: o(i)
                }
            }, l.prototype.withinRange = function(t, e) {
                return t = this.createRange(t.from, t.to), e.pick >= t.from.pick && e.pick <= t.to.pick
            }, l.prototype.overlapRanges = function(t, e) {
                return t = this.createRange(t.from, t.to), e = this.createRange(e.from, e.to), this.withinRange(t, e.from) || this.withinRange(t, e.to) || this.withinRange(e, t.from) || this.withinRange(e, t.to)
            }, l.prototype.now = function(t, e, i) {
                return e = new Date, i && i.rel && e.setDate(e.getDate() + i.rel), this.normalize(e, i)
            }, l.prototype.navigate = function(t, i, n) {
                var l, o, a, r, s = e.isArray(i),
                    c = e.isPlainObject(i),
                    u = this.item.view;
                if (s || c) {
                    for (c ? (o = i.year, a = i.month, r = i.date) : (o = +i[0], a = +i[1], r = +i[2]), n && n.nav && u && u.month !== a && (o = u.year, a = u.month), o = (l = new Date(o, a + (n && n.nav ? n.nav : 0), 1)).getFullYear(), a = l.getMonth(); new Date(o, a, r).getMonth() !== a;) r -= 1;
                    i = [o, a, r]
                }
                return i
            }, l.prototype.normalize = function(t) {
                return t.setHours(0, 0, 0, 0), t
            }, l.prototype.measure = function(t, e) {
                return n.isInteger(e) ? e = this.now(t, e, {
                    rel: e
                }) : e ? "string" == typeof e && (e = this.parse(t, e)) : e = "min" == t ? -1 / 0 : 1 / 0, e
            }, l.prototype.viewset = function(t, e) {
                return this.create([e.year, e.month, 1])
            }, l.prototype.validate = function(t, i, l) {
                var o, a, r, s, c = this,
                    u = i,
                    h = l && l.interval ? l.interval : 1,
                    d = -1 === c.item.enable,
                    p = c.item.min,
                    f = c.item.max,
                    m = d && c.item.disable.filter((function(t) {
                        if (e.isArray(t)) {
                            var l = c.create(t).pick;
                            l < i.pick ? o = !0 : l > i.pick && (a = !0)
                        }
                        return n.isInteger(t)
                    })).length;
                if ((!l || !l.nav && !l.defaultValue) && (!d && c.disabled(i) || d && c.disabled(i) && (m || o || a) || !d && (i.pick <= p.pick || i.pick >= f.pick)))
                    for (d && !m && (!a && h > 0 || !o && h < 0) && (h *= -1); c.disabled(i) && (Math.abs(h) > 1 && (i.month < u.month || i.month > u.month) && (i = u, h = h > 0 ? 1 : -1), i.pick <= p.pick ? (r = !0, h = 1, i = c.create([p.year, p.month, p.date + (i.pick === p.pick ? 0 : -1)])) : i.pick >= f.pick && (s = !0, h = -1, i = c.create([f.year, f.month, f.date + (i.pick === f.pick ? 0 : 1)])), !r || !s);) i = c.create([i.year, i.month, i.date + h]);
                return i
            }, l.prototype.disabled = function(t) {
                var i = this,
                    l = i.item.disable.filter((function(l) {
                        return n.isInteger(l) ? t.day === (i.settings.firstDay ? l : l - 1) % 7 : e.isArray(l) || n.isDate(l) ? t.pick === i.create(l).pick : e.isPlainObject(l) ? i.withinRange(l, t) : void 0
                    }));
                return l = l.length && !l.filter((function(t) {
                    return e.isArray(t) && "inverted" == t[3] || e.isPlainObject(t) && t.inverted
                })).length, -1 === i.item.enable ? !l : l || t.pick < i.item.min.pick || t.pick > i.item.max.pick
            }, l.prototype.parse = function(t, e, i) {
                var l = this,
                    o = {};
                return e && "string" == typeof e ? (i && i.format || ((i = i || {}).format = l.settings.format), l.formats.toArray(i.format).map((function(t) {
                    var i = l.formats[t],
                        a = i ? n.trigger(i, l, [e, o]) : t.replace(/^!/, "").length;
                    i && (o[t] = e.substr(0, a)), e = e.substr(a)
                })), [o.yyyy || o.yy, +(o.mm || o.m) - 1, o.dd || o.d]) : e
            }, l.prototype.formats = function() {
                function t(t, e, i) {
                    var n = t.match(/[^\x00-\x7F]+|\w+/)[0];
                    return i.mm || i.m || (i.m = e.indexOf(n) + 1), n.length
                }

                function e(t) {
                    return t.match(/\w+/)[0].length
                }
                return {
                    d: function(t, e) {
                        return t ? n.digits(t) : e.date
                    },
                    dd: function(t, e) {
                        return t ? 2 : n.lead(e.date)
                    },
                    ddd: function(t, i) {
                        return t ? e(t) : this.settings.weekdaysShort[i.day]
                    },
                    dddd: function(t, i) {
                        return t ? e(t) : this.settings.weekdaysFull[i.day]
                    },
                    m: function(t, e) {
                        return t ? n.digits(t) : e.month + 1
                    },
                    mm: function(t, e) {
                        return t ? 2 : n.lead(e.month + 1)
                    },
                    mmm: function(e, i) {
                        var n = this.settings.monthsShort;
                        return e ? t(e, n, i) : n[i.month]
                    },
                    mmmm: function(e, i) {
                        var n = this.settings.monthsFull;
                        return e ? t(e, n, i) : n[i.month]
                    },
                    yy: function(t, e) {
                        return t ? 2 : ("" + e.year).slice(2)
                    },
                    yyyy: function(t, e) {
                        return t ? 4 : e.year
                    },
                    toArray: function(t) {
                        return t.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)
                    },
                    toString: function(t, e) {
                        var i = this;
                        return i.formats.toArray(t).map((function(t) {
                            return n.trigger(i.formats[t], i, [0, e]) || t.replace(/^!/, "")
                        })).join("")
                    }
                }
            }(), l.prototype.isDateExact = function(t, i) {
                return n.isInteger(t) && n.isInteger(i) || "boolean" == typeof t && "boolean" == typeof i ? t === i : (n.isDate(t) || e.isArray(t)) && (n.isDate(i) || e.isArray(i)) ? this.create(t).pick === this.create(i).pick : !(!e.isPlainObject(t) || !e.isPlainObject(i)) && this.isDateExact(t.from, i.from) && this.isDateExact(t.to, i.to)
            }, l.prototype.isDateOverlap = function(t, i) {
                var l = this.settings.firstDay ? 1 : 0;
                return n.isInteger(t) && (n.isDate(i) || e.isArray(i)) ? (t = t % 7 + l) === this.create(i).day + 1 : n.isInteger(i) && (n.isDate(t) || e.isArray(t)) ? (i = i % 7 + l) === this.create(t).day + 1 : !(!e.isPlainObject(t) || !e.isPlainObject(i)) && this.overlapRanges(t, i)
            }, l.prototype.flipEnable = function(t) {
                var e = this.item;
                e.enable = t || (-1 == e.enable ? 1 : -1)
            }, l.prototype.deactivate = function(t, i) {
                var l = this,
                    o = l.item.disable.slice(0);
                return "flip" == i ? l.flipEnable() : !1 === i ? (l.flipEnable(1), o = []) : !0 === i ? (l.flipEnable(-1), o = []) : i.map((function(t) {
                    for (var i, a = 0; a < o.length; a += 1)
                        if (l.isDateExact(t, o[a])) {
                            i = !0;
                            break
                        } i || (n.isInteger(t) || n.isDate(t) || e.isArray(t) || e.isPlainObject(t) && t.from && t.to) && o.push(t)
                })), o
            }, l.prototype.activate = function(t, i) {
                var l = this,
                    o = l.item.disable,
                    a = o.length;
                return "flip" == i ? l.flipEnable() : !0 === i ? (l.flipEnable(1), o = []) : !1 === i ? (l.flipEnable(-1), o = []) : i.map((function(t) {
                    var i, r, s, c;
                    for (s = 0; s < a; s += 1) {
                        if (r = o[s], l.isDateExact(r, t)) {
                            i = o[s] = null, c = !0;
                            break
                        }
                        if (l.isDateOverlap(r, t)) {
                            e.isPlainObject(t) ? (t.inverted = !0, i = t) : e.isArray(t) ? (i = t)[3] || i.push("inverted") : n.isDate(t) && (i = [t.getFullYear(), t.getMonth(), t.getDate(), "inverted"]);
                            break
                        }
                    }
                    if (i)
                        for (s = 0; s < a; s += 1)
                            if (l.isDateExact(o[s], t)) {
                                o[s] = null;
                                break
                            } if (c)
                        for (s = 0; s < a; s += 1)
                            if (l.isDateOverlap(o[s], t)) {
                                o[s] = null;
                                break
                            } i && o.push(i)
                })), o.filter((function(t) {
                    return null != t
                }))
            }, l.prototype.nodes = function(t) {
                var e, i, l = this,
                    o = l.settings,
                    a = l.item,
                    r = a.now,
                    s = a.select,
                    c = a.highlight,
                    u = a.view,
                    h = a.disable,
                    d = a.min,
                    p = a.max,
                    f = (e = (o.showWeekdaysFull ? o.weekdaysFull : o.weekdaysShort).slice(0), i = o.weekdaysFull.slice(0), o.firstDay && (e.push(e.shift()), i.push(i.shift())), n.node("thead", n.node("tr", n.group({
                        min: 0,
                        max: 6,
                        i: 1,
                        node: "th",
                        item: function(t) {
                            return [e[t], o.klass.weekdays, 'scope=col title="' + i[t] + '"']
                        }
                    })))),
                    m = function(t) {
                        return n.node("button", " ", o.klass["nav" + (t ? "Next" : "Prev")] + (t && u.year >= p.year && u.month >= p.month || !t && u.year <= d.year && u.month <= d.month ? " " + o.klass.navDisabled : ""), "data-nav=" + (t || -1) + " " + n.ariaAttr({
                            role: "button",
                            controls: l.$node[0].id + "_table"
                        }) + ' title="' + (t ? o.labelMonthNext : o.labelMonthPrev) + '"')
                    },
                    v = function() {
                        var e = o.showMonthsShort ? o.monthsShort : o.monthsFull;
                        return o.selectMonths ? n.node("select", n.group({
                            min: 0,
                            max: 11,
                            i: 1,
                            node: "option",
                            item: function(t) {
                                return [e[t], 0, "value=" + t + (u.month == t ? " selected" : "") + (u.year == d.year && t < d.month || u.year == p.year && t > p.month ? " disabled" : "")]
                            }
                        }), o.klass.selectMonth, (t ? "" : "disabled") + " " + n.ariaAttr({
                            controls: l.$node[0].id + "_table"
                        }) + ' title="' + o.labelMonthSelect + '"') : n.node("div", e[u.month], o.klass.month)
                    },
                    g = function() {
                        var e = u.year,
                            i = !0 === o.selectYears ? 5 : ~~(o.selectYears / 2);
                        if (i) {
                            var a = d.year,
                                r = p.year,
                                s = e - i,
                                c = e + i;
                            if (a > s && (c += a - s, s = a), r < c) {
                                var h = s - a,
                                    f = c - r;
                                s -= h > f ? f : h, c = r
                            }
                            return n.node("select", n.group({
                                min: s,
                                max: c,
                                i: 1,
                                node: "option",
                                item: function(t) {
                                    return [t, 0, "value=" + t + (e == t ? " selected" : "")]
                                }
                            }), o.klass.selectYear, (t ? "" : "disabled") + " " + n.ariaAttr({
                                controls: l.$node[0].id + "_table"
                            }) + ' title="' + o.labelYearSelect + '"')
                        }
                        return n.node("div", e, o.klass.year)
                    };
                return n.node("div", (o.selectYears ? g() + v() : v() + g()) + m() + m(1), o.klass.header) + n.node("table", f + n.node("tbody", n.group({
                    min: 0,
                    max: 5,
                    i: 1,
                    node: "tr",
                    item: function(t) {
                        var e = o.firstDay && 0 === l.create([u.year, u.month, 1]).day ? -7 : 0;
                        return [n.group({
                            min: 7 * t - u.day + e + 1,
                            max: function() {
                                return this.min + 7 - 1
                            },
                            i: 1,
                            node: "td",
                            item: function(t) {
                                t = l.create([u.year, u.month, t + (o.firstDay ? 1 : 0)]);
                                var e, i = s && s.pick == t.pick,
                                    a = c && c.pick == t.pick,
                                    f = h && l.disabled(t) || t.pick < d.pick || t.pick > p.pick,
                                    m = n.trigger(l.formats.toString, l, [o.format, t]);
                                return [n.node("div", t.date, (e = [o.klass.day], e.push(u.month == t.month ? o.klass.infocus : o.klass.outfocus), r.pick == t.pick && e.push(o.klass.now), i && e.push(o.klass.selected), a && e.push(o.klass.highlighted), f && e.push(o.klass.disabled), e.join(" ")), "data-pick=" + t.pick + " " + n.ariaAttr({
                                    role: "gridcell",
                                    label: m,
                                    selected: !(!i || l.$node.val() !== m) || null,
                                    activedescendant: !!a || null,
                                    disabled: !!f || null
                                })), "", n.ariaAttr({
                                    role: "presentation"
                                })]
                            }
                        })]
                    }
                })), o.klass.table, 'id="' + l.$node[0].id + '_table" ' + n.ariaAttr({
                    role: "grid",
                    controls: l.$node[0].id,
                    readonly: !0
                })) + n.node("div", n.node("button", o.today, o.klass.buttonToday, "type=button data-pick=" + r.pick + (t && !l.disabled(r) ? "" : " disabled") + " " + n.ariaAttr({
                    controls: l.$node[0].id
                })) + n.node("button", o.clear, o.klass.buttonClear, "type=button data-clear=1" + (t ? "" : " disabled") + " " + n.ariaAttr({
                    controls: l.$node[0].id
                })) + n.node("button", o.close, o.klass.buttonClose, "type=button data-close=true " + (t ? "" : " disabled") + " " + n.ariaAttr({
                    controls: l.$node[0].id
                })), o.klass.footer)
            }, l.defaults = {
                labelMonthNext: "Next month",
                labelMonthPrev: "Previous month",
                labelMonthSelect: "Select a month",
                labelYearSelect: "Select a year",
                monthsFull: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
                monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                weekdaysFull: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                today: "Today",
                clear: "Clear",
                close: "Close",
                closeOnSelect: !0,
                closeOnClear: !0,
                updateInput: !0,
                format: "d mmmm, yyyy",
                klass: {
                    table: (i = t.klasses().picker + "__") + "table",
                    header: i + "header",
                    navPrev: i + "nav--prev btn btn-flat",
                    navNext: i + "nav--next btn btn-flat",
                    navDisabled: i + "nav--disabled",
                    month: i + "month",
                    year: i + "year",
                    selectMonth: i + "select--month",
                    selectYear: i + "select--year",
                    weekdays: i + "weekday",
                    day: i + "day",
                    disabled: i + "day--disabled",
                    selected: i + "day--selected",
                    highlighted: i + "day--highlighted",
                    now: i + "day--today",
                    infocus: i + "day--infocus",
                    outfocus: i + "day--outfocus",
                    footer: i + "footer",
                    buttonClear: i + "button--clear",
                    buttonToday: i + "button--today",
                    buttonClose: i + "button--close"
                }
            }, t.extend("pickadate", l)
        }, "function" == typeof define && i(75) ? define(["picker", "jquery"], e) : "object" == ("undefined" == typeof exports ? "undefined" : n(exports)) ? t.exports = e(i(225), i(116)) : e(Picker, jQuery), $.extend($.fn.pickadate.defaults, {
            selectMonths: !0,
            selectYears: 15,
            onRender: function() {
                var t = this.$root,
                    e = this.get("highlight", "yyyy"),
                    i = this.get("highlight", "dd"),
                    n = this.get("highlight", "mmm"),
                    l = this.get("highlight", "dddd").slice(0, 3),
                    o = n.charAt(0).toUpperCase() + n.slice(1);
                t.find(".picker__header").prepend('<div class="picker__date-display"><div class="picker__weekday-display">' + l + ', </div><div class="picker__month-display"><div>' + o + '</div></div><div class="picker__day-display"><div>' + i + '</div></div><div    class="picker__year-display"><div>' + e + "</div></div></div>")
            }
        }), $(".picker-opener").on("click", (function(t) {
            t.preventDefault(), t.stopPropagation();
            var e = t.target.dataset.open;
            $("#".concat(e)).pickadate().pickadate("picker").open()
        }))
    }).call(this, i(95)(t))
}, function(t, e, i) {
    "use strict";
    (function(t) {
        var e;
        i(69), i(71), i(72), i(173), i(43), i(66), i(54), i(78), i(96), i(100), i(89), i(118), i(111), i(64), i(115), i(119), i(68), i(97), i(73), i(86), i(98), i(74);

        function n(t) {
            return (n = "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)
        }! function(t) {
            var e = {
                set: {
                    colors: 1,
                    values: 1,
                    backgroundColor: 1,
                    scaleColors: 1,
                    normalizeFunction: 1,
                    focus: 1
                },
                get: {
                    selectedRegions: 1,
                    selectedMarkers: 1,
                    mapObject: 1,
                    regionName: 1
                }
            };
            t.fn.vectorMap = function(t) {
                var i = this.children(".jvectormap-container").data("mapObject");
                if ("addMap" === t) l.Map.maps[arguments[1]] = arguments[2];
                else {
                    if (("set" === t || "get" === t) && e[t][arguments[1]]) return i[t + (arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1))].apply(i, Array.prototype.slice.call(arguments, 2));
                    (t = t || {}).container = this, i = new l.Map(t)
                }
                return this
            }
        }(jQuery), e = function(t) {
            function e(e) {
                var a = e || window.event,
                    r = s.call(arguments, 1),
                    c = 0,
                    u = 0,
                    h = 0,
                    d = 0;
                if ((e = t.event.fix(a)).type = "mousewheel", "detail" in a && (h = -1 * a.detail), "wheelDelta" in a && (h = a.wheelDelta), "wheelDeltaY" in a && (h = a.wheelDeltaY), "wheelDeltaX" in a && (u = -1 * a.wheelDeltaX), "axis" in a && a.axis === a.HORIZONTAL_AXIS && (u = -1 * h, h = 0), c = 0 === h ? u : h, "deltaY" in a && (c = h = -1 * a.deltaY), "deltaX" in a && (u = a.deltaX, 0 === h && (c = -1 * u)), 0 !== h || 0 !== u) {
                    if (1 === a.deltaMode) {
                        var p = t.data(this, "mousewheel-line-height");
                        c *= p, h *= p, u *= p
                    } else if (2 === a.deltaMode) {
                        var f = t.data(this, "mousewheel-page-height");
                        c *= f, h *= f, u *= f
                    }
                    return d = Math.max(Math.abs(h), Math.abs(u)), (!o || o > d) && (o = d, n(a, d) && (o /= 40)), n(a, d) && (c /= 40, u /= 40, h /= 40), c = Math[c >= 1 ? "floor" : "ceil"](c / o), u = Math[u >= 1 ? "floor" : "ceil"](u / o), h = Math[h >= 1 ? "floor" : "ceil"](h / o), e.deltaX = u, e.deltaY = h, e.deltaFactor = o, e.deltaMode = 0, r.unshift(e, c, u, h), l && clearTimeout(l), l = setTimeout(i, 200), (t.event.dispatch || t.event.handle).apply(this, r)
                }
            }

            function i() {
                o = null
            }

            function n(t, e) {
                return u.settings.adjustOldDeltas && "mousewheel" === t.type && e % 120 == 0
            }
            var l, o, a = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
                r = "onwheel" in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
                s = Array.prototype.slice;
            if (t.event.fixHooks)
                for (var c = a.length; c;) t.event.fixHooks[a[--c]] = t.event.mouseHooks;
            var u = t.event.special.mousewheel = {
                version: "3.1.9",
                setup: function() {
                    if (this.addEventListener)
                        for (var i = r.length; i;) this.addEventListener(r[--i], e, !1);
                    else this.onmousewheel = e;
                    t.data(this, "mousewheel-line-height", u.getLineHeight(this)), t.data(this, "mousewheel-page-height", u.getPageHeight(this))
                },
                teardown: function() {
                    if (this.removeEventListener)
                        for (var t = r.length; t;) this.removeEventListener(r[--t], e, !1);
                    else this.onmousewheel = null
                },
                getLineHeight: function(e) {
                    return parseInt(t(e)["offsetParent" in t.fn ? "offsetParent" : "parent"]().css("fontSize"), 10)
                },
                getPageHeight: function(e) {
                    return t(e).height()
                },
                settings: {
                    adjustOldDeltas: !0
                }
            };
            t.fn.extend({
                mousewheel: function(t) {
                    return t ? this.bind("mousewheel", t) : this.trigger("mousewheel")
                },
                unmousewheel: function(t) {
                    return this.unbind("mousewheel", t)
                }
            })
        }, "function" == typeof define && i(75) ? define(["jquery"], e) : "object" == ("undefined" == typeof exports ? "undefined" : n(exports)) ? t.exports = e : e(jQuery);
        var l = {
            inherits: function(t, e) {
                function i() {}
                i.prototype = e.prototype, t.prototype = new i, t.prototype.constructor = t, t.parentClass = e
            },
            mixin: function(t, e) {
                var i;
                for (i in e.prototype) e.prototype.hasOwnProperty(i) && (t.prototype[i] = e.prototype[i])
            },
            min: function(t) {
                var e, i = Number.MAX_VALUE;
                if (t instanceof Array)
                    for (e = 0; e < t.length; e++) t[e] < i && (i = t[e]);
                else
                    for (e in t) t[e] < i && (i = t[e]);
                return i
            },
            max: function(t) {
                var e, i = Number.MIN_VALUE;
                if (t instanceof Array)
                    for (e = 0; e < t.length; e++) t[e] > i && (i = t[e]);
                else
                    for (e in t) t[e] > i && (i = t[e]);
                return i
            },
            keys: function(t) {
                var e, i = [];
                for (e in t) i.push(e);
                return i
            },
            values: function(t) {
                var e, i, n = [];
                for (i = 0; i < arguments.length; i++)
                    for (e in t = arguments[i]) n.push(t[e]);
                return n
            },
            whenImageLoaded: function(t) {
                var e = new l.$.Deferred,
                    i = l.$("<img/>");
                return i.error((function() {
                    e.reject()
                })).load((function() {
                    e.resolve(i)
                })), i.attr("src", t), e
            },
            isImageUrl: function(t) {
                return /\.\w{3,4}$/.test(t)
            }
        };
        l.$ = jQuery, Array.prototype.indexOf || (Array.prototype.indexOf = function(t, e) {
            var i;
            if (null == this) throw new TypeError('"this" is null or not defined');
            var n = Object(this),
                l = n.length >>> 0;
            if (0 === l) return -1;
            var o = +e || 0;
            if (1 / 0 === Math.abs(o) && (o = 0), o >= l) return -1;
            for (i = Math.max(o >= 0 ? o : l - Math.abs(o), 0); l > i;) {
                if (i in n && n[i] === t) return i;
                i++
            }
            return -1
        }), l.AbstractElement = function(t, e) {
            this.node = this.createElement(t), this.name = t, this.properties = {}, e && this.set(e)
        }, l.AbstractElement.prototype.set = function(t, e) {
            var i;
            if ("object" == n(t))
                for (i in t) this.properties[i] = t[i], this.applyAttr(i, t[i]);
            else this.properties[t] = e, this.applyAttr(t, e)
        }, l.AbstractElement.prototype.get = function(t) {
            return this.properties[t]
        }, l.AbstractElement.prototype.applyAttr = function(t, e) {
            this.node.setAttribute(t, e)
        }, l.AbstractElement.prototype.remove = function() {
            l.$(this.node).remove()
        }, l.AbstractCanvasElement = function(t, e, i) {
            this.container = t, this.setSize(e, i), this.rootElement = new l[this.classPrefix + "GroupElement"], this.node.appendChild(this.rootElement.node), this.container.appendChild(this.node)
        }, l.AbstractCanvasElement.prototype.add = function(t, e) {
            (e = e || this.rootElement).add(t), t.canvas = this
        }, l.AbstractCanvasElement.prototype.addPath = function(t, e, i) {
            var n = new l[this.classPrefix + "PathElement"](t, e);
            return this.add(n, i), n
        }, l.AbstractCanvasElement.prototype.addCircle = function(t, e, i) {
            var n = new l[this.classPrefix + "CircleElement"](t, e);
            return this.add(n, i), n
        }, l.AbstractCanvasElement.prototype.addImage = function(t, e, i) {
            var n = new l[this.classPrefix + "ImageElement"](t, e);
            return this.add(n, i), n
        }, l.AbstractCanvasElement.prototype.addText = function(t, e, i) {
            var n = new l[this.classPrefix + "TextElement"](t, e);
            return this.add(n, i), n
        }, l.AbstractCanvasElement.prototype.addGroup = function(t) {
            var e = new l[this.classPrefix + "GroupElement"];
            return t ? t.node.appendChild(e.node) : this.node.appendChild(e.node), e.canvas = this, e
        }, l.AbstractShapeElement = function(t, e, i) {
            this.style = i || {}, this.style.current = this.style.current || {}, this.isHovered = !1, this.isSelected = !1, this.updateStyle()
        }, l.AbstractShapeElement.prototype.setStyle = function(t, e) {
            var i = {};
            "object" == n(t) ? i = t : i[t] = e, l.$.extend(this.style.current, i), this.updateStyle()
        }, l.AbstractShapeElement.prototype.updateStyle = function() {
            var t = {};
            l.AbstractShapeElement.mergeStyles(t, this.style.initial), l.AbstractShapeElement.mergeStyles(t, this.style.current), this.isHovered && l.AbstractShapeElement.mergeStyles(t, this.style.hover), this.isSelected && (l.AbstractShapeElement.mergeStyles(t, this.style.selected), this.isHovered && l.AbstractShapeElement.mergeStyles(t, this.style.selectedHover)), this.set(t)
        }, l.AbstractShapeElement.mergeStyles = function(t, e) {
            var i;
            for (i in e = e || {}) null === e[i] ? delete t[i] : t[i] = e[i]
        }, l.SVGElement = function() {
            l.SVGElement.parentClass.apply(this, arguments)
        }, l.inherits(l.SVGElement, l.AbstractElement), l.SVGElement.svgns = "http://www.w3.org/2000/svg", l.SVGElement.prototype.createElement = function(t) {
            return document.createElementNS(l.SVGElement.svgns, t)
        }, l.SVGElement.prototype.addClass = function(t) {
            this.node.setAttribute("class", t)
        }, l.SVGElement.prototype.getElementCtr = function(t) {
            return l["SVG" + t]
        }, l.SVGElement.prototype.getBBox = function() {
            return this.node.getBBox()
        }, l.SVGGroupElement = function() {
            l.SVGGroupElement.parentClass.call(this, "g")
        }, l.inherits(l.SVGGroupElement, l.SVGElement), l.SVGGroupElement.prototype.add = function(t) {
            this.node.appendChild(t.node)
        }, l.SVGCanvasElement = function() {
            this.classPrefix = "SVG", l.SVGCanvasElement.parentClass.call(this, "svg"), this.defsElement = new l.SVGElement("defs"), this.node.appendChild(this.defsElement.node), l.AbstractCanvasElement.apply(this, arguments)
        }, l.inherits(l.SVGCanvasElement, l.SVGElement), l.mixin(l.SVGCanvasElement, l.AbstractCanvasElement), l.SVGCanvasElement.prototype.setSize = function(t, e) {
            this.width = t, this.height = e, this.node.setAttribute("width", t), this.node.setAttribute("height", e)
        }, l.SVGCanvasElement.prototype.applyTransformParams = function(t, e, i) {
            this.scale = t, this.transX = e, this.transY = i, this.rootElement.node.setAttribute("transform", "scale(" + t + ") translate(" + e + ", " + i + ")")
        }, l.SVGShapeElement = function(t, e) {
            l.SVGShapeElement.parentClass.call(this, t, e), l.AbstractShapeElement.apply(this, arguments)
        }, l.inherits(l.SVGShapeElement, l.SVGElement), l.mixin(l.SVGShapeElement, l.AbstractShapeElement), l.SVGShapeElement.prototype.applyAttr = function(t, e) {
            var i, n, o = this;
            "fill" === t && l.isImageUrl(e) ? l.SVGShapeElement.images[e] ? this.applyAttr("fill", "url(#image" + l.SVGShapeElement.images[e] + ")") : l.whenImageLoaded(e).then((function(t) {
                (n = new l.SVGElement("image")).node.setAttributeNS("http://www.w3.org/1999/xlink", "href", e), n.applyAttr("x", "0"), n.applyAttr("y", "0"), n.applyAttr("width", t[0].width), n.applyAttr("height", t[0].height), (i = new l.SVGElement("pattern")).applyAttr("id", "image" + l.SVGShapeElement.imageCounter), i.applyAttr("x", 0), i.applyAttr("y", 0), i.applyAttr("width", t[0].width / 2), i.applyAttr("height", t[0].height / 2), i.applyAttr("viewBox", "0 0 " + t[0].width + " " + t[0].height), i.applyAttr("patternUnits", "userSpaceOnUse"), i.node.appendChild(n.node), o.canvas.defsElement.node.appendChild(i.node), l.SVGShapeElement.images[e] = l.SVGShapeElement.imageCounter++, o.applyAttr("fill", "url(#image" + l.SVGShapeElement.images[e] + ")")
            })) : l.SVGShapeElement.parentClass.prototype.applyAttr.apply(this, arguments)
        }, l.SVGShapeElement.imageCounter = 1, l.SVGShapeElement.images = {}, l.SVGPathElement = function(t, e) {
            l.SVGPathElement.parentClass.call(this, "path", t, e), this.node.setAttribute("fill-rule", "evenodd")
        }, l.inherits(l.SVGPathElement, l.SVGShapeElement), l.SVGCircleElement = function(t, e) {
            l.SVGCircleElement.parentClass.call(this, "circle", t, e)
        }, l.inherits(l.SVGCircleElement, l.SVGShapeElement), l.SVGImageElement = function(t, e) {
            l.SVGImageElement.parentClass.call(this, "image", t, e)
        }, l.inherits(l.SVGImageElement, l.SVGShapeElement), l.SVGImageElement.prototype.applyAttr = function(t, e) {
            var i = this;
            "image" == t ? l.whenImageLoaded(e).then((function(t) {
                i.node.setAttributeNS("http://www.w3.org/1999/xlink", "href", e), i.width = t[0].width, i.height = t[0].height, i.applyAttr("width", i.width), i.applyAttr("height", i.height), i.applyAttr("x", i.cx - i.width / 2), i.applyAttr("y", i.cy - i.height / 2), l.$(i.node).trigger("imageloaded", [t])
            })) : "cx" == t ? (this.cx = e, this.width && this.applyAttr("x", e - this.width / 2)) : "cy" == t ? (this.cy = e, this.height && this.applyAttr("y", e - this.height / 2)) : l.SVGImageElement.parentClass.prototype.applyAttr.apply(this, arguments)
        }, l.SVGTextElement = function(t, e) {
            l.SVGTextElement.parentClass.call(this, "text", t, e)
        }, l.inherits(l.SVGTextElement, l.SVGShapeElement), l.SVGTextElement.prototype.applyAttr = function(t, e) {
            "text" === t ? this.node.textContent = e : l.SVGTextElement.parentClass.prototype.applyAttr.apply(this, arguments)
        }, l.VMLElement = function() {
            l.VMLElement.VMLInitialized || l.VMLElement.initializeVML(), l.VMLElement.parentClass.apply(this, arguments)
        }, l.inherits(l.VMLElement, l.AbstractElement), l.VMLElement.VMLInitialized = !1, l.VMLElement.initializeVML = function() {
            try {
                document.namespaces.rvml || document.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"), l.VMLElement.prototype.createElement = function(t) {
                    return document.createElement("<rvml:" + t + ' class="rvml">')
                }
            } catch (t) {
                l.VMLElement.prototype.createElement = function(t) {
                    return document.createElement("<" + t + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')
                }
            }
            document.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"), l.VMLElement.VMLInitialized = !0
        }, l.VMLElement.prototype.getElementCtr = function(t) {
            return l["VML" + t]
        }, l.VMLElement.prototype.addClass = function(t) {
            l.$(this.node).addClass(t)
        }, l.VMLElement.prototype.applyAttr = function(t, e) {
            this.node[t] = e
        }, l.VMLElement.prototype.getBBox = function() {
            var t = l.$(this.node);
            return {
                x: t.position().left / this.canvas.scale,
                y: t.position().top / this.canvas.scale,
                width: t.width() / this.canvas.scale,
                height: t.height() / this.canvas.scale
            }
        }, l.VMLGroupElement = function() {
            l.VMLGroupElement.parentClass.call(this, "group"), this.node.style.left = "0px", this.node.style.top = "0px", this.node.coordorigin = "0 0"
        }, l.inherits(l.VMLGroupElement, l.VMLElement), l.VMLGroupElement.prototype.add = function(t) {
            this.node.appendChild(t.node)
        }, l.VMLCanvasElement = function() {
            this.classPrefix = "VML", l.VMLCanvasElement.parentClass.call(this, "group"), l.AbstractCanvasElement.apply(this, arguments), this.node.style.position = "absolute"
        }, l.inherits(l.VMLCanvasElement, l.VMLElement), l.mixin(l.VMLCanvasElement, l.AbstractCanvasElement), l.VMLCanvasElement.prototype.setSize = function(t, e) {
            var i, n, l, o;
            if (this.width = t, this.height = e, this.node.style.width = t + "px", this.node.style.height = e + "px", this.node.coordsize = t + " " + e, this.node.coordorigin = "0 0", this.rootElement) {
                for (l = 0, o = (i = this.rootElement.node.getElementsByTagName("shape")).length; o > l; l++) i[l].coordsize = t + " " + e, i[l].style.width = t + "px", i[l].style.height = e + "px";
                for (l = 0, o = (n = this.node.getElementsByTagName("group")).length; o > l; l++) n[l].coordsize = t + " " + e, n[l].style.width = t + "px", n[l].style.height = e + "px"
            }
        }, l.VMLCanvasElement.prototype.applyTransformParams = function(t, e, i) {
            this.scale = t, this.transX = e, this.transY = i, this.rootElement.node.coordorigin = this.width - e - this.width / 100 + "," + (this.height - i - this.height / 100), this.rootElement.node.coordsize = this.width / t + "," + this.height / t
        }, l.VMLShapeElement = function(t, e) {
            l.VMLShapeElement.parentClass.call(this, t, e), this.fillElement = new l.VMLElement("fill"), this.strokeElement = new l.VMLElement("stroke"), this.node.appendChild(this.fillElement.node), this.node.appendChild(this.strokeElement.node), this.node.stroked = !1, l.AbstractShapeElement.apply(this, arguments)
        }, l.inherits(l.VMLShapeElement, l.VMLElement), l.mixin(l.VMLShapeElement, l.AbstractShapeElement), l.VMLShapeElement.prototype.applyAttr = function(t, e) {
            switch (t) {
                case "fill":
                    this.node.fillcolor = e;
                    break;
                case "fill-opacity":
                    this.fillElement.node.opacity = Math.round(100 * e) + "%";
                    break;
                case "stroke":
                    this.node.stroked = "none" !== e, this.node.strokecolor = e;
                    break;
                case "stroke-opacity":
                    this.strokeElement.node.opacity = Math.round(100 * e) + "%";
                    break;
                case "stroke-width":
                    this.node.stroked = 0 !== parseInt(e, 10), this.node.strokeweight = e;
                    break;
                case "d":
                    this.node.path = l.VMLPathElement.pathSvgToVml(e);
                    break;
                default:
                    l.VMLShapeElement.parentClass.prototype.applyAttr.apply(this, arguments)
            }
        }, l.VMLPathElement = function(t, e) {
            var i = new l.VMLElement("skew");
            l.VMLPathElement.parentClass.call(this, "shape", t, e), this.node.coordorigin = "0 0", i.node.on = !0, i.node.matrix = "0.01,0,0,0.01,0,0", i.node.offset = "0,0", this.node.appendChild(i.node)
        }, l.inherits(l.VMLPathElement, l.VMLShapeElement), l.VMLPathElement.prototype.applyAttr = function(t, e) {
            "d" === t ? this.node.path = l.VMLPathElement.pathSvgToVml(e) : l.VMLShapeElement.prototype.applyAttr.call(this, t, e)
        }, l.VMLPathElement.pathSvgToVml = function(t) {
            var e, i, n = 0,
                l = 0;
            return (t = t.replace(/(-?\d+)e(-?\d+)/g, "0")).replace(/([MmLlHhVvCcSs])\s*((?:-?\d*(?:\.\d+)?\s*,?\s*)+)/g, (function(t, o, a) {
                (a = a.replace(/(\d)-/g, "$1,-").replace(/^\s+/g, "").replace(/\s+$/g, "").replace(/\s+/g, ",").split(","))[0] || a.shift();
                for (var r = 0, s = a.length; s > r; r++) a[r] = Math.round(100 * a[r]);
                switch (o) {
                    case "m":
                        return n += a[0], l += a[1], "t" + a.join(",");
                    case "M":
                        return n = a[0], l = a[1], "m" + a.join(",");
                    case "l":
                        return n += a[0], l += a[1], "r" + a.join(",");
                    case "L":
                        return n = a[0], l = a[1], "l" + a.join(",");
                    case "h":
                        return n += a[0], "r" + a[0] + ",0";
                    case "H":
                        return "l" + (n = a[0]) + "," + l;
                    case "v":
                        return l += a[0], "r0," + a[0];
                    case "V":
                        return l = a[0], "l" + n + "," + l;
                    case "c":
                        return e = n + a[a.length - 4], i = l + a[a.length - 3], n += a[a.length - 2], l += a[a.length - 1], "v" + a.join(",");
                    case "C":
                        return e = a[a.length - 4], i = a[a.length - 3], n = a[a.length - 2], l = a[a.length - 1], "c" + a.join(",");
                    case "s":
                        return a.unshift(l - i), a.unshift(n - e), e = n + a[a.length - 4], i = l + a[a.length - 3], n += a[a.length - 2], l += a[a.length - 1], "v" + a.join(",");
                    case "S":
                        return a.unshift(l + l - i), a.unshift(n + n - e), e = a[a.length - 4], i = a[a.length - 3], n = a[a.length - 2], l = a[a.length - 1], "c" + a.join(",")
                }
                return ""
            })).replace(/z/g, "e")
        }, l.VMLCircleElement = function(t, e) {
            l.VMLCircleElement.parentClass.call(this, "oval", t, e)
        }, l.inherits(l.VMLCircleElement, l.VMLShapeElement), l.VMLCircleElement.prototype.applyAttr = function(t, e) {
            switch (t) {
                case "r":
                    this.node.style.width = 2 * e + "px", this.node.style.height = 2 * e + "px", this.applyAttr("cx", this.get("cx") || 0), this.applyAttr("cy", this.get("cy") || 0);
                    break;
                case "cx":
                    if (!e) return;
                    this.node.style.left = e - (this.get("r") || 0) + "px";
                    break;
                case "cy":
                    if (!e) return;
                    this.node.style.top = e - (this.get("r") || 0) + "px";
                    break;
                default:
                    l.VMLCircleElement.parentClass.prototype.applyAttr.call(this, t, e)
            }
        }, l.VectorCanvas = function(t, e, i) {
            return this.mode = window.SVGAngle ? "svg" : "vml", this.impl = "svg" == this.mode ? new l.SVGCanvasElement(t, e, i) : new l.VMLCanvasElement(t, e, i), this.impl.mode = this.mode, this.impl
        }, l.SimpleScale = function(t) {
            this.scale = t
        }, l.SimpleScale.prototype.getValue = function(t) {
            return t
        }, l.OrdinalScale = function(t) {
            this.scale = t
        }, l.OrdinalScale.prototype.getValue = function(t) {
            return this.scale[t]
        }, l.OrdinalScale.prototype.getTicks = function() {
            var t, e = [];
            for (t in this.scale) e.push({
                label: t,
                value: this.scale[t]
            });
            return e
        }, l.NumericScale = function(t, e, i, n) {
            this.scale = [], e = e || "linear", t && this.setScale(t), e && this.setNormalizeFunction(e), void 0 !== i && this.setMin(i), void 0 !== n && this.setMax(n)
        }, l.NumericScale.prototype = {
            setMin: function(t) {
                this.clearMinValue = t, this.minValue = "function" == typeof this.normalize ? this.normalize(t) : t
            },
            setMax: function(t) {
                this.clearMaxValue = t, this.maxValue = "function" == typeof this.normalize ? this.normalize(t) : t
            },
            setScale: function(t) {
                var e;
                for (this.scale = [], e = 0; e < t.length; e++) this.scale[e] = [t[e]]
            },
            setNormalizeFunction: function(t) {
                "polynomial" === t ? this.normalize = function(t) {
                    return Math.pow(t, .2)
                } : "linear" === t ? delete this.normalize : this.normalize = t, this.setMin(this.clearMinValue), this.setMax(this.clearMaxValue)
            },
            getValue: function(t) {
                var e, i, n = [],
                    l = 0,
                    o = 0;
                for ("function" == typeof this.normalize && (t = this.normalize(t)), o = 0; o < this.scale.length - 1; o++) e = this.vectorLength(this.vectorSubtract(this.scale[o + 1], this.scale[o])), n.push(e), l += e;
                for (i = (this.maxValue - this.minValue) / l, o = 0; o < n.length; o++) n[o] *= i;
                for (o = 0, t -= this.minValue; t - n[o] >= 0;) t -= n[o], o++;
                return this.vectorToNum(o == this.scale.length - 1 ? this.scale[o] : this.vectorAdd(this.scale[o], this.vectorMult(this.vectorSubtract(this.scale[o + 1], this.scale[o]), t / n[o])))
            },
            vectorToNum: function(t) {
                var e, i = 0;
                for (e = 0; e < t.length; e++) i += Math.round(t[e]) * Math.pow(256, t.length - e - 1);
                return i
            },
            vectorSubtract: function(t, e) {
                var i, n = [];
                for (i = 0; i < t.length; i++) n[i] = t[i] - e[i];
                return n
            },
            vectorAdd: function(t, e) {
                var i, n = [];
                for (i = 0; i < t.length; i++) n[i] = t[i] + e[i];
                return n
            },
            vectorMult: function(t, e) {
                var i, n = [];
                for (i = 0; i < t.length; i++) n[i] = t[i] * e;
                return n
            },
            vectorLength: function(t) {
                var e, i = 0;
                for (e = 0; e < t.length; e++) i += t[e] * t[e];
                return Math.sqrt(i)
            },
            getTicks: function() {
                var t, e, i = [this.clearMinValue, this.clearMaxValue],
                    n = i[1] - i[0],
                    l = Math.pow(10, Math.floor(Math.log(n / 5) / Math.LN10)),
                    o = 5 / n * l,
                    a = [];
                for (.15 >= o ? l *= 10 : .35 >= o ? l *= 5 : .75 >= o && (l *= 2), i[0] = Math.floor(i[0] / l) * l, i[1] = Math.ceil(i[1] / l) * l, t = i[0]; t <= i[1];) e = t == i[0] ? this.clearMinValue : t == i[1] ? this.clearMaxValue : t, a.push({
                    label: t,
                    value: this.getValue(e)
                }), t += l;
                return a
            }
        }, l.ColorScale = function() {
            l.ColorScale.parentClass.apply(this, arguments)
        }, l.inherits(l.ColorScale, l.NumericScale), l.ColorScale.prototype.setScale = function(t) {
            var e;
            for (e = 0; e < t.length; e++) this.scale[e] = l.ColorScale.rgbToArray(t[e])
        }, l.ColorScale.prototype.getValue = function(t) {
            return l.ColorScale.numToRgb(l.ColorScale.parentClass.prototype.getValue.call(this, t))
        }, l.ColorScale.arrayToRgb = function(t) {
            var e, i, n = "#";
            for (i = 0; i < t.length; i++) n += 1 == (e = t[i].toString(16)).length ? "0" + e : e;
            return n
        }, l.ColorScale.numToRgb = function(t) {
            for (t = t.toString(16); t.length < 6;) t = "0" + t;
            return "#" + t
        }, l.ColorScale.rgbToArray = function(t) {
            return t = t.substr(1), [parseInt(t.substr(0, 2), 16), parseInt(t.substr(2, 2), 16), parseInt(t.substr(4, 2), 16)]
        }, l.Legend = function(t) {
            this.params = t || {}, this.map = this.params.map, this.series = this.params.series, this.body = l.$("<div/>"), this.body.addClass("jvectormap-legend"), this.params.cssClass && this.body.addClass(this.params.cssClass), t.vertical ? this.map.legendCntVertical.append(this.body) : this.map.legendCntHorizontal.append(this.body), this.render()
        }, l.Legend.prototype.render = function() {
            var t, e, i, n, o = this.series.scale.getTicks(),
                a = l.$("<div/>").addClass("jvectormap-legend-inner");
            for (this.body.html(""), this.params.title && this.body.append(l.$("<div/>").addClass("jvectormap-legend-title").html(this.params.title)), this.body.append(a), t = 0; t < o.length; t++) {
                switch (e = l.$("<div/>").addClass("jvectormap-legend-tick"), i = l.$("<div/>").addClass("jvectormap-legend-tick-sample"), this.series.params.attribute) {
                    case "fill":
                        l.isImageUrl(o[t].value) ? i.css("background", "url(" + o[t].value + ")") : i.css("background", o[t].value);
                        break;
                    case "stroke":
                        i.css("background", o[t].value);
                        break;
                    case "image":
                        i.css("background", "url(" + o[t].value + ") no-repeat center center");
                        break;
                    case "r":
                        l.$("<div/>").css({
                            "border-radius": o[t].value,
                            border: this.map.params.markerStyle.initial["stroke-width"] + "px " + this.map.params.markerStyle.initial.stroke + " solid",
                            width: 2 * o[t].value + "px",
                            height: 2 * o[t].value + "px",
                            background: this.map.params.markerStyle.initial.fill
                        }).appendTo(i)
                }
                e.append(i), n = o[t].label, this.params.labelRender && (n = this.params.labelRender(n)), e.append(l.$("<div>" + n + " </div>").addClass("jvectormap-legend-tick-text")), a.append(e)
            }
            a.append(l.$("<div/>").css("clear", "both"))
        }, l.DataSeries = function(t, e, i) {
            var n;
            (t = t || {}).attribute = t.attribute || "fill", this.elements = e, this.params = t, this.map = i, t.attributes && this.setAttributes(t.attributes), l.$.isArray(t.scale) ? (n = "fill" === t.attribute || "stroke" === t.attribute ? l.ColorScale : l.NumericScale, this.scale = new n(t.scale, t.normalizeFunction, t.min, t.max)) : this.scale = t.scale ? new l.OrdinalScale(t.scale) : new l.SimpleScale(t.scale), this.values = t.values || {}, this.setValues(this.values), this.params.legend && (this.legend = new l.Legend($.extend({
                map: this.map,
                series: this
            }, this.params.legend)))
        }, l.DataSeries.prototype = {
            setAttributes: function(t, e) {
                var i, n = t;
                if ("string" == typeof t) this.elements[t] && this.elements[t].setStyle(this.params.attribute, e);
                else
                    for (i in n) this.elements[i] && this.elements[i].element.setStyle(this.params.attribute, n[i])
            },
            setValues: function(t) {
                var e, i, n = -Number.MAX_VALUE,
                    o = Number.MAX_VALUE,
                    a = {};
                if (this.scale instanceof l.OrdinalScale || this.scale instanceof l.SimpleScale)
                    for (i in t) a[i] = t[i] ? this.scale.getValue(t[i]) : this.elements[i].element.style.initial[this.params.attribute];
                else {
                    if (void 0 === this.params.min || void 0 === this.params.max)
                        for (i in t)(e = parseFloat(t[i])) > n && (n = e), o > e && (o = e);
                    for (i in void 0 === this.params.min ? (this.scale.setMin(o), this.params.min = o) : this.scale.setMin(this.params.min), void 0 === this.params.max ? (this.scale.setMax(n), this.params.max = n) : this.scale.setMax(this.params.max), t) "indexOf" != i && (e = parseFloat(t[i]), a[i] = isNaN(e) ? this.elements[i].element.style.initial[this.params.attribute] : this.scale.getValue(e))
                }
                this.setAttributes(a), l.$.extend(this.values, t)
            },
            clear: function() {
                var t, e = {};
                for (t in this.values) this.elements[t] && (e[t] = this.elements[t].element.shape.style.initial[this.params.attribute]);
                this.setAttributes(e), this.values = {}
            },
            setScale: function(t) {
                this.scale.setScale(t), this.values && this.setValues(this.values)
            },
            setNormalizeFunction: function(t) {
                this.scale.setNormalizeFunction(t), this.values && this.setValues(this.values)
            }
        }, l.Proj = {
            degRad: 180 / Math.PI,
            radDeg: Math.PI / 180,
            radius: 6381372,
            sgn: function(t) {
                return t > 0 ? 1 : 0 > t ? -1 : t
            },
            mill: function(t, e, i) {
                return {
                    x: this.radius * (e - i) * this.radDeg,
                    y: -this.radius * Math.log(Math.tan((45 + .4 * t) * this.radDeg)) / .8
                }
            },
            mill_inv: function(t, e, i) {
                return {
                    lat: (2.5 * Math.atan(Math.exp(.8 * e / this.radius)) - 5 * Math.PI / 8) * this.degRad,
                    lng: (i * this.radDeg + t / this.radius) * this.degRad
                }
            },
            merc: function(t, e, i) {
                return {
                    x: this.radius * (e - i) * this.radDeg,
                    y: -this.radius * Math.log(Math.tan(Math.PI / 4 + t * Math.PI / 360))
                }
            },
            merc_inv: function(t, e, i) {
                return {
                    lat: (2 * Math.atan(Math.exp(e / this.radius)) - Math.PI / 2) * this.degRad,
                    lng: (i * this.radDeg + t / this.radius) * this.degRad
                }
            },
            aea: function(t, e, i) {
                var n = i * this.radDeg,
                    l = 29.5 * this.radDeg,
                    o = 45.5 * this.radDeg,
                    a = t * this.radDeg,
                    r = e * this.radDeg,
                    s = (Math.sin(l) + Math.sin(o)) / 2,
                    c = Math.cos(l) * Math.cos(l) + 2 * s * Math.sin(l),
                    u = s * (r - n),
                    h = Math.sqrt(c - 2 * s * Math.sin(a)) / s,
                    d = Math.sqrt(c - 2 * s * Math.sin(0)) / s;
                return {
                    x: h * Math.sin(u) * this.radius,
                    y: -(d - h * Math.cos(u)) * this.radius
                }
            },
            aea_inv: function(t, e, i) {
                var n = t / this.radius,
                    l = e / this.radius,
                    o = i * this.radDeg,
                    a = 29.5 * this.radDeg,
                    r = 45.5 * this.radDeg,
                    s = (Math.sin(a) + Math.sin(r)) / 2,
                    c = Math.cos(a) * Math.cos(a) + 2 * s * Math.sin(a),
                    u = Math.sqrt(c - 2 * s * Math.sin(0)) / s,
                    h = Math.sqrt(n * n + (u - l) * (u - l)),
                    d = Math.atan(n / (u - l));
                return {
                    lat: Math.asin((c - h * h * s * s) / (2 * s)) * this.degRad,
                    lng: (o + d / s) * this.degRad
                }
            },
            lcc: function(t, e, i) {
                var n = i * this.radDeg,
                    l = e * this.radDeg,
                    o = 33 * this.radDeg,
                    a = 45 * this.radDeg,
                    r = t * this.radDeg,
                    s = Math.log(Math.cos(o) * (1 / Math.cos(a))) / Math.log(Math.tan(Math.PI / 4 + a / 2) * (1 / Math.tan(Math.PI / 4 + o / 2))),
                    c = Math.cos(o) * Math.pow(Math.tan(Math.PI / 4 + o / 2), s) / s,
                    u = c * Math.pow(1 / Math.tan(Math.PI / 4 + r / 2), s),
                    h = c * Math.pow(1 / Math.tan(Math.PI / 4 + 0), s);
                return {
                    x: u * Math.sin(s * (l - n)) * this.radius,
                    y: -(h - u * Math.cos(s * (l - n))) * this.radius
                }
            },
            lcc_inv: function(t, e, i) {
                var n = t / this.radius,
                    l = e / this.radius,
                    o = i * this.radDeg,
                    a = 33 * this.radDeg,
                    r = 45 * this.radDeg,
                    s = Math.log(Math.cos(a) * (1 / Math.cos(r))) / Math.log(Math.tan(Math.PI / 4 + r / 2) * (1 / Math.tan(Math.PI / 4 + a / 2))),
                    c = Math.cos(a) * Math.pow(Math.tan(Math.PI / 4 + a / 2), s) / s,
                    u = c * Math.pow(1 / Math.tan(Math.PI / 4 + 0), s),
                    h = this.sgn(s) * Math.sqrt(n * n + (u - l) * (u - l)),
                    d = Math.atan(n / (u - l));
                return {
                    lat: (2 * Math.atan(Math.pow(c / h, 1 / s)) - Math.PI / 2) * this.degRad,
                    lng: (o + d / s) * this.degRad
                }
            }
        }, l.MapObject = function() {}, l.MapObject.prototype.getLabelText = function(t) {
            return this.config.label ? "function" == typeof this.config.label.render ? this.config.label.render(t) : t : null
        }, l.MapObject.prototype.getLabelOffsets = function(t) {
            var e;
            return this.config.label && ("function" == typeof this.config.label.offsets ? e = this.config.label.offsets(t) : "object" == n(this.config.label.offsets) && (e = this.config.label.offsets[t])), e || [0, 0]
        }, l.MapObject.prototype.setHovered = function(t) {
            this.isHovered !== t && (this.isHovered = t, this.shape.isHovered = t, this.shape.updateStyle(), this.label && (this.label.isHovered = t, this.label.updateStyle()))
        }, l.MapObject.prototype.setSelected = function(t) {
            this.isSelected !== t && (this.isSelected = t, this.shape.isSelected = t, this.shape.updateStyle(), this.label && (this.label.isSelected = t, this.label.updateStyle()), l.$(this.shape).trigger("selected", [t]))
        }, l.MapObject.prototype.setStyle = function() {
            this.shape.setStyle.apply(this.shape, arguments)
        }, l.MapObject.prototype.remove = function() {
            this.shape.remove(), this.label && this.label.remove()
        }, l.Region = function(t) {
            var e, i, n;
            this.config = t, this.map = this.config.map, this.shape = t.canvas.addPath({
                d: t.path,
                "data-code": t.code
            }, t.style, t.canvas.rootElement), this.shape.addClass("jvectormap-region jvectormap-element"), e = this.shape.getBBox(), i = this.getLabelText(t.code), this.config.label && i && (n = this.getLabelOffsets(t.code), this.labelX = e.x + e.width / 2 + n[0], this.labelY = e.y + e.height / 2 + n[1], this.label = t.canvas.addText({
                text: i,
                "text-anchor": "middle",
                "alignment-baseline": "central",
                x: this.labelX,
                y: this.labelY,
                "data-code": t.code
            }, t.labelStyle, t.labelsGroup), this.label.addClass("jvectormap-region jvectormap-element"))
        }, l.inherits(l.Region, l.MapObject), l.Region.prototype.updateLabelPosition = function() {
            this.label && this.label.set({
                x: this.labelX * this.map.scale + this.map.transX * this.map.scale,
                y: this.labelY * this.map.scale + this.map.transY * this.map.scale
            })
        }, l.Marker = function(t) {
            var e;
            this.config = t, this.map = this.config.map, this.isImage = !!this.config.style.initial.image, this.createShape(), e = this.getLabelText(t.index), this.config.label && e && (this.offsets = this.getLabelOffsets(t.index), this.labelX = t.cx / this.map.scale - this.map.transX, this.labelY = t.cy / this.map.scale - this.map.transY, this.label = t.canvas.addText({
                text: e,
                "data-index": t.index,
                dy: "0.6ex",
                x: this.labelX,
                y: this.labelY
            }, t.labelStyle, t.labelsGroup), this.label.addClass("jvectormap-marker jvectormap-element"))
        }, l.inherits(l.Marker, l.MapObject), l.Marker.prototype.createShape = function() {
            var t = this;
            this.shape && this.shape.remove(), this.shape = this.config.canvas[this.isImage ? "addImage" : "addCircle"]({
                "data-index": this.config.index,
                cx: this.config.cx,
                cy: this.config.cy
            }, this.config.style, this.config.group), this.shape.addClass("jvectormap-marker jvectormap-element"), this.isImage && l.$(this.shape.node).on("imageloaded", (function() {
                t.updateLabelPosition()
            }))
        }, l.Marker.prototype.updateLabelPosition = function() {
            this.label && this.label.set({
                x: this.labelX * this.map.scale + this.offsets[0] + this.map.transX * this.map.scale + 5 + (this.isImage ? (this.shape.width || 0) / 2 : this.shape.properties.r),
                y: this.labelY * this.map.scale + this.map.transY * this.map.scale + this.offsets[1]
            })
        }, l.Marker.prototype.setStyle = function(t) {
            var e;
            l.Marker.parentClass.prototype.setStyle.apply(this, arguments), "r" === t && this.updateLabelPosition(), (e = !!this.shape.get("image")) != this.isImage && (this.isImage = e, this.config.style = l.$.extend(!0, {}, this.shape.style), this.createShape())
        }, l.Map = function(t) {
            var e, i = this;
            if (this.params = l.$.extend(!0, {}, l.Map.defaultParams, t), !l.Map.maps[this.params.map]) throw new Error("Attempt to use map which was not loaded: " + this.params.map);
            for (e in this.mapData = l.Map.maps[this.params.map], this.markers = {}, this.regions = {}, this.regionsColors = {}, this.regionsData = {}, this.container = l.$("<div>").addClass("jvectormap-container"), this.params.container && this.params.container.append(this.container), this.container.data("mapObject", this), this.defaultWidth = this.mapData.width, this.defaultHeight = this.mapData.height, this.setBackgroundColor(this.params.backgroundColor), this.onResize = function() {
                    i.updateSize()
                }, l.$(window).resize(this.onResize), l.Map.apiEvents) this.params[e] && this.container.bind(l.Map.apiEvents[e] + ".jvectormap", this.params[e]);
            this.canvas = new l.VectorCanvas(this.container[0], this.width, this.height), this.params.bindTouchEvents && ("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch ? this.bindContainerTouchEvents() : window.MSGesture && this.bindContainerPointerEvents()), this.bindContainerEvents(), this.bindElementEvents(), this.createTip(), this.params.zoomButtons && this.bindZoomButtons(), this.createRegions(), this.createMarkers(this.params.markers || {}), this.updateSize(), this.params.focusOn && ("string" == typeof this.params.focusOn ? this.params.focusOn = {
                region: this.params.focusOn
            } : l.$.isArray(this.params.focusOn) && (this.params.focusOn = {
                regions: this.params.focusOn
            }), this.setFocus(this.params.focusOn)), this.params.selectedRegions && this.setSelectedRegions(this.params.selectedRegions), this.params.selectedMarkers && this.setSelectedMarkers(this.params.selectedMarkers), this.legendCntHorizontal = l.$("<div/>").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-h"), this.legendCntVertical = l.$("<div/>").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-v"), this.container.append(this.legendCntHorizontal), this.container.append(this.legendCntVertical), this.params.series && this.createSeries()
        }, l.Map.prototype = {
            transX: 0,
            transY: 0,
            scale: 1,
            baseTransX: 0,
            baseTransY: 0,
            baseScale: 1,
            width: 0,
            height: 0,
            setBackgroundColor: function(t) {
                this.container.css("background-color", t)
            },
            resize: function() {
                var t = this.baseScale;
                this.width / this.height > this.defaultWidth / this.defaultHeight ? (this.baseScale = this.height / this.defaultHeight, this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale)) : (this.baseScale = this.width / this.defaultWidth, this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale)), this.scale *= this.baseScale / t, this.transX *= this.baseScale / t, this.transY *= this.baseScale / t
            },
            updateSize: function() {
                this.width = this.container.width(), this.height = this.container.height(), this.resize(), this.canvas.setSize(this.width, this.height), this.applyTransform()
            },
            reset: function() {
                var t, e;
                for (t in this.series)
                    for (e = 0; e < this.series[t].length; e++) this.series[t][e].clear();
                this.scale = this.baseScale, this.transX = this.baseTransX, this.transY = this.baseTransY, this.applyTransform()
            },
            applyTransform: function() {
                var t, e, i, n;
                this.defaultWidth * this.scale <= this.width ? (t = (this.width - this.defaultWidth * this.scale) / (2 * this.scale), i = (this.width - this.defaultWidth * this.scale) / (2 * this.scale)) : (t = 0, i = (this.width - this.defaultWidth * this.scale) / this.scale), this.defaultHeight * this.scale <= this.height ? (e = (this.height - this.defaultHeight * this.scale) / (2 * this.scale), n = (this.height - this.defaultHeight * this.scale) / (2 * this.scale)) : (e = 0, n = (this.height - this.defaultHeight * this.scale) / this.scale), this.transY > e ? this.transY = e : this.transY < n && (this.transY = n), this.transX > t ? this.transX = t : this.transX < i && (this.transX = i), this.canvas.applyTransformParams(this.scale, this.transX, this.transY), this.markers && this.repositionMarkers(), this.repositionLabels(), this.container.trigger("viewportChange", [this.scale / this.baseScale, this.transX, this.transY])
            },
            bindContainerEvents: function() {
                var t, e, i = !1,
                    n = this;
                this.params.panOnDrag && (this.container.mousemove((function(l) {
                    return i && (n.transX -= (t - l.pageX) / n.scale, n.transY -= (e - l.pageY) / n.scale, n.applyTransform(), t = l.pageX, e = l.pageY), !1
                })).mousedown((function(n) {
                    return i = !0, t = n.pageX, e = n.pageY, !1
                })), this.onContainerMouseUp = function() {
                    i = !1
                }, l.$("body").mouseup(this.onContainerMouseUp)), this.params.zoomOnScroll && this.container.mousewheel((function(t) {
                    var e = l.$(n.container).offset(),
                        i = t.pageX - e.left,
                        o = t.pageY - e.top,
                        a = Math.pow(1 + n.params.zoomOnScrollSpeed / 1e3, t.deltaFactor * t.deltaY);
                    n.tip.hide(), n.setScale(n.scale * a, i, o), t.preventDefault()
                }))
            },
            bindContainerTouchEvents: function() {
                var t, e, i, n, o, a, r, s = this,
                    c = function(c) {
                        var u, h, d, p, f = c.originalEvent.touches;
                        "touchstart" == c.type && (r = 0), 1 == f.length ? (1 == r && (d = s.transX, p = s.transY, s.transX -= (i - f[0].pageX) / s.scale, s.transY -= (n - f[0].pageY) / s.scale, s.applyTransform(), s.tip.hide(), (d != s.transX || p != s.transY) && c.preventDefault()), i = f[0].pageX, n = f[0].pageY) : 2 == f.length && (2 == r ? (h = Math.sqrt(Math.pow(f[0].pageX - f[1].pageX, 2) + Math.pow(f[0].pageY - f[1].pageY, 2)) / e, s.setScale(t * h, o, a), s.tip.hide(), c.preventDefault()) : (u = l.$(s.container).offset(), o = f[0].pageX > f[1].pageX ? f[1].pageX + (f[0].pageX - f[1].pageX) / 2 : f[0].pageX + (f[1].pageX - f[0].pageX) / 2, a = f[0].pageY > f[1].pageY ? f[1].pageY + (f[0].pageY - f[1].pageY) / 2 : f[0].pageY + (f[1].pageY - f[0].pageY) / 2, o -= u.left, a -= u.top, t = s.scale, e = Math.sqrt(Math.pow(f[0].pageX - f[1].pageX, 2) + Math.pow(f[0].pageY - f[1].pageY, 2)))), r = f.length
                    };
                l.$(this.container).bind("touchstart", c), l.$(this.container).bind("touchmove", c)
            },
            bindContainerPointerEvents: function() {
                var t = this,
                    e = new MSGesture,
                    i = this.container[0];
                e.target = i, i.addEventListener("MSGestureChange", (function(e) {
                    var i, n;
                    (0 != e.translationX || 0 != e.translationY) && (i = t.transX, n = t.transY, t.transX += e.translationX / t.scale, t.transY += e.translationY / t.scale, t.applyTransform(), t.tip.hide(), (i != t.transX || n != t.transY) && e.preventDefault()), 1 != e.scale && (t.setScale(t.scale * e.scale, e.offsetX, e.offsetY), t.tip.hide(), e.preventDefault())
                }), !1), i.addEventListener("pointerdown", (function(t) {
                    e.addPointer(t.pointerId)
                }), !1)
            },
            bindElementEvents: function() {
                var t, e, i, n = this;
                this.container.mousemove((function(n) {
                    Math.abs(t - n.pageX) + Math.abs(e - n.pageY) > 2 && (i = !0)
                })), this.container.delegate("[class~='jvectormap-element']", "mouseover mouseout", (function(t) {
                    var e = -1 === (l.$(this).attr("class").baseVal || l.$(this).attr("class")).indexOf("jvectormap-region") ? "marker" : "region",
                        i = l.$(this).attr("region" == e ? "data-code" : "data-index"),
                        o = "region" == e ? n.regions[i].element : n.markers[i].element,
                        a = "region" == e ? n.mapData.paths[i].name : n.markers[i].config.name || "",
                        r = l.$.Event(e + "TipShow.jvectormap"),
                        s = l.$.Event(e + "Over.jvectormap");
                    "mouseover" == t.type ? (n.container.trigger(s, [i]), s.isDefaultPrevented() || o.setHovered(!0), n.tip.text(a), n.container.trigger(r, [n.tip, i]), r.isDefaultPrevented() || (n.tip.show(), n.tipWidth = n.tip.width(), n.tipHeight = n.tip.height())) : (o.setHovered(!1), n.tip.hide(), n.container.trigger(e + "Out.jvectormap", [i]))
                })), this.container.delegate("[class~='jvectormap-element']", "mousedown", (function(n) {
                    t = n.pageX, e = n.pageY, i = !1
                })), this.container.delegate("[class~='jvectormap-element']", "mouseup", (function() {
                    var t = -1 === (l.$(this).attr("class").baseVal ? l.$(this).attr("class").baseVal : l.$(this).attr("class")).indexOf("jvectormap-region") ? "marker" : "region",
                        e = l.$(this).attr("region" == t ? "data-code" : "data-index"),
                        o = l.$.Event(t + "Click.jvectormap"),
                        a = "region" == t ? n.regions[e].element : n.markers[e].element;
                    i || (n.container.trigger(o, [e]), ("region" === t && n.params.regionsSelectable || "marker" === t && n.params.markersSelectable) && (o.isDefaultPrevented() || (n.params[t + "sSelectableOne"] && n.clearSelected(t + "s"), a.setSelected(!a.isSelected))))
                }))
            },
            bindZoomButtons: function() {
                var t = this;
                l.$("<div/>").addClass("jvectormap-zoomin").text("+").appendTo(this.container), l.$("<div/>").addClass("jvectormap-zoomout").html("&#x2212;").appendTo(this.container), this.container.find(".jvectormap-zoomin").click((function() {
                    t.setScale(t.scale * t.params.zoomStep, t.width / 2, t.height / 2, !1, t.params.zoomAnimate)
                })), this.container.find(".jvectormap-zoomout").click((function() {
                    t.setScale(t.scale / t.params.zoomStep, t.width / 2, t.height / 2, !1, t.params.zoomAnimate)
                }))
            },
            createTip: function() {
                var t = this;
                this.tip = l.$("<div/>").addClass("jvectormap-tip").appendTo(l.$("body")), this.container.mousemove((function(e) {
                    var i = e.pageX - 15 - t.tipWidth,
                        n = e.pageY - 15 - t.tipHeight;
                    5 > i && (i = e.pageX + 15), 5 > n && (n = e.pageY + 15), t.tip.css({
                        left: i,
                        top: n
                    })
                }))
            },
            setScale: function(t, e, i, n, o) {
                var a, r, s, c, u, h, d, p, f, m = l.$.Event("zoom.jvectormap"),
                    v = this,
                    g = 0,
                    y = Math.abs(Math.round(60 * (t - this.scale) / Math.max(t, this.scale))),
                    b = new l.$.Deferred;
                return t > this.params.zoomMax * this.baseScale ? t = this.params.zoomMax * this.baseScale : t < this.params.zoomMin * this.baseScale && (t = this.params.zoomMin * this.baseScale), void 0 !== e && void 0 !== i && (zoomStep = t / this.scale, n ? (p = e + this.defaultWidth * (this.width / (this.defaultWidth * t)) / 2, f = i + this.defaultHeight * (this.height / (this.defaultHeight * t)) / 2) : (p = this.transX - (zoomStep - 1) / t * e, f = this.transY - (zoomStep - 1) / t * i)), o && y > 0 ? (r = this.scale, s = (t - r) / y, c = this.transX * this.scale, h = this.transY * this.scale, u = (p * t - c) / y, d = (f * t - h) / y, a = setInterval((function() {
                    g += 1, v.scale = r + s * g, v.transX = (c + u * g) / v.scale, v.transY = (h + d * g) / v.scale, v.applyTransform(), g == y && (clearInterval(a), v.container.trigger(m, [t / v.baseScale]), b.resolve())
                }), 10)) : (this.transX = p, this.transY = f, this.scale = t, this.applyTransform(), this.container.trigger(m, [t / this.baseScale]), b.resolve()), b
            },
            setFocus: function(t) {
                var e, i, n, l, o;
                if ((t = t || {}).region ? n = [t.region] : t.regions && (n = t.regions), n) {
                    for (l = 0; l < n.length; l++) this.regions[n[l]] && ((i = this.regions[n[l]].element.shape.getBBox()) && (void 0 === e ? e = i : e = {
                        x: Math.min(e.x, i.x),
                        y: Math.min(e.y, i.y),
                        width: Math.max(e.x + e.width, i.x + i.width) - Math.min(e.x, i.x),
                        height: Math.max(e.y + e.height, i.y + i.height) - Math.min(e.y, i.y)
                    }));
                    return this.setScale(Math.min(this.width / e.width, this.height / e.height), -(e.x + e.width / 2), -(e.y + e.height / 2), !0, t.animate)
                }
                return t.lat && t.lng ? (o = this.latLngToPoint(t.lat, t.lng), t.x = this.transX - o.x / this.scale, t.y = this.transY - o.y / this.scale) : t.x && t.y && (t.x *= -this.defaultWidth, t.y *= -this.defaultHeight), this.setScale(t.scale * this.baseScale, t.x, t.y, !0, t.animate)
            },
            getSelected: function(t) {
                var e, i = [];
                for (e in this[t]) this[t][e].element.isSelected && i.push(e);
                return i
            },
            getSelectedRegions: function() {
                return this.getSelected("regions")
            },
            getSelectedMarkers: function() {
                return this.getSelected("markers")
            },
            setSelected: function(t, e) {
                var i;
                if ("object" != n(e) && (e = [e]), l.$.isArray(e))
                    for (i = 0; i < e.length; i++) this[t][e[i]].element.setSelected(!0);
                else
                    for (i in e) this[t][i].element.setSelected(!!e[i])
            },
            setSelectedRegions: function(t) {
                this.setSelected("regions", t)
            },
            setSelectedMarkers: function(t) {
                this.setSelected("markers", t)
            },
            clearSelected: function(t) {
                var e, i = {},
                    n = this.getSelected(t);
                for (e = 0; e < n.length; e++) i[n[e]] = !1;
                this.setSelected(t, i)
            },
            clearSelectedRegions: function() {
                this.clearSelected("regions")
            },
            clearSelectedMarkers: function() {
                this.clearSelected("markers")
            },
            getMapObject: function() {
                return this
            },
            getRegionName: function(t) {
                return this.mapData.paths[t].name
            },
            createRegions: function() {
                var t, e, i = this;
                for (t in this.regionLabelsGroup = this.regionLabelsGroup || this.canvas.addGroup(), this.mapData.paths) e = new l.Region({
                    map: this,
                    path: this.mapData.paths[t].path,
                    code: t,
                    style: l.$.extend(!0, {}, this.params.regionStyle),
                    labelStyle: l.$.extend(!0, {}, this.params.regionLabelStyle),
                    canvas: this.canvas,
                    labelsGroup: this.regionLabelsGroup,
                    label: "vml" != this.canvas.mode ? this.params.labels && this.params.labels.regions : null
                }), l.$(e.shape).bind("selected", (function(t, e) {
                    i.container.trigger("regionSelected.jvectormap", [l.$(this.node).attr("data-code"), e, i.getSelectedRegions()])
                })), this.regions[t] = {
                    element: e,
                    config: this.mapData.paths[t]
                }
            },
            createMarkers: function(t) {
                var e, i, n, o, a, r = this;
                if (this.markersGroup = this.markersGroup || this.canvas.addGroup(), this.markerLabelsGroup = this.markerLabelsGroup || this.canvas.addGroup(), l.$.isArray(t))
                    for (a = t.slice(), t = {}, e = 0; e < a.length; e++) t[e] = a[e];
                for (e in t) o = t[e] instanceof Array ? {
                    latLng: t[e]
                } : t[e], !1 !== (n = this.getMarkerPosition(o)) && (i = new l.Marker({
                    map: this,
                    style: l.$.extend(!0, {}, this.params.markerStyle, {
                        initial: o.style || {}
                    }),
                    labelStyle: l.$.extend(!0, {}, this.params.markerLabelStyle),
                    index: e,
                    cx: n.x,
                    cy: n.y,
                    group: this.markersGroup,
                    canvas: this.canvas,
                    labelsGroup: this.markerLabelsGroup,
                    label: "vml" != this.canvas.mode ? this.params.labels && this.params.labels.markers : null
                }), l.$(i.shape).bind("selected", (function(t, e) {
                    r.container.trigger("markerSelected.jvectormap", [l.$(this.node).attr("data-index"), e, r.getSelectedMarkers()])
                })), this.markers[e] && this.removeMarkers([e]), this.markers[e] = {
                    element: i,
                    config: o
                })
            },
            repositionMarkers: function() {
                var t, e;
                for (t in this.markers) !1 !== (e = this.getMarkerPosition(this.markers[t].config)) && this.markers[t].element.setStyle({
                    cx: e.x,
                    cy: e.y
                })
            },
            repositionLabels: function() {
                var t;
                for (t in this.regions) this.regions[t].element.updateLabelPosition();
                for (t in this.markers) this.markers[t].element.updateLabelPosition()
            },
            getMarkerPosition: function(t) {
                return l.Map.maps[this.params.map].projection ? this.latLngToPoint.apply(this, t.latLng || [0, 0]) : {
                    x: t.coords[0] * this.scale + this.transX * this.scale,
                    y: t.coords[1] * this.scale + this.transY * this.scale
                }
            },
            addMarker: function(t, e, i) {
                var n, l, o = {},
                    a = [];
                i = i || [];
                for (o[t] = e, l = 0; l < i.length; l++) n = {}, void 0 !== i[l] && (n[t] = i[l]), a.push(n);
                this.addMarkers(o, a)
            },
            addMarkers: function(t, e) {
                var i;
                for (e = e || [], this.createMarkers(t), i = 0; i < e.length; i++) this.series.markers[i].setValues(e[i] || {})
            },
            removeMarkers: function(t) {
                var e;
                for (e = 0; e < t.length; e++) this.markers[t[e]].element.remove(), delete this.markers[t[e]]
            },
            removeAllMarkers: function() {
                var t, e = [];
                for (t in this.markers) e.push(t);
                this.removeMarkers(e)
            },
            latLngToPoint: function(t, e) {
                var i, n, o, a = l.Map.maps[this.params.map].projection,
                    r = a.centralMeridian;
                return -180 + r > e && (e += 360), i = l.Proj[a.type](t, e, r), !!(n = this.getInsetForPoint(i.x, i.y)) && (o = n.bbox, i.x = (i.x - o[0].x) / (o[1].x - o[0].x) * n.width * this.scale, i.y = (i.y - o[0].y) / (o[1].y - o[0].y) * n.height * this.scale, {
                    x: i.x + this.transX * this.scale + n.left * this.scale,
                    y: i.y + this.transY * this.scale + n.top * this.scale
                })
            },
            pointToLatLng: function(t, e) {
                var i, n, o, a, r, s = l.Map.maps[this.params.map].projection,
                    c = s.centralMeridian,
                    u = l.Map.maps[this.params.map].insets;
                for (i = 0; i < u.length; i++)
                    if (o = (n = u[i]).bbox, a = t - (this.transX * this.scale + n.left * this.scale), r = e - (this.transY * this.scale + n.top * this.scale), a = a / (n.width * this.scale) * (o[1].x - o[0].x) + o[0].x, r = r / (n.height * this.scale) * (o[1].y - o[0].y) + o[0].y, a > o[0].x && a < o[1].x && r > o[0].y && r < o[1].y) return l.Proj[s.type + "_inv"](a, -r, c);
                return !1
            },
            getInsetForPoint: function(t, e) {
                var i, n, o = l.Map.maps[this.params.map].insets;
                for (i = 0; i < o.length; i++)
                    if (t > (n = o[i].bbox)[0].x && t < n[1].x && e > n[0].y && e < n[1].y) return o[i]
            },
            createSeries: function() {
                var t, e;
                for (e in this.series = {
                        markers: [],
                        regions: []
                    }, this.params.series)
                    for (t = 0; t < this.params.series[e].length; t++) this.series[e][t] = new l.DataSeries(this.params.series[e][t], this[e], this)
            },
            remove: function() {
                this.tip.remove(), this.container.remove(), l.$(window).unbind("resize", this.onResize), l.$("body").unbind("mouseup", this.onContainerMouseUp)
            }
        }, l.Map.maps = {}, l.Map.defaultParams = {
            map: "world_mill_en",
            backgroundColor: "#505050",
            zoomButtons: !0,
            zoomOnScroll: !0,
            zoomOnScrollSpeed: 3,
            panOnDrag: !0,
            zoomMax: 8,
            zoomMin: 1,
            zoomStep: 1.6,
            zoomAnimate: !0,
            regionsSelectable: !1,
            markersSelectable: !1,
            bindTouchEvents: !0,
            regionStyle: {
                initial: {
                    fill: "white",
                    "fill-opacity": 1,
                    stroke: "none",
                    "stroke-width": 0,
                    "stroke-opacity": 1
                },
                hover: {
                    "fill-opacity": .8,
                    cursor: "pointer"
                },
                selected: {
                    fill: "yellow"
                },
                selectedHover: {}
            },
            regionLabelStyle: {
                initial: {
                    "font-family": "Verdana",
                    "font-size": "12",
                    "font-weight": "bold",
                    cursor: "default",
                    fill: "black"
                },
                hover: {
                    cursor: "pointer"
                }
            },
            markerStyle: {
                initial: {
                    fill: "grey",
                    stroke: "#505050",
                    "fill-opacity": 1,
                    "stroke-width": 1,
                    "stroke-opacity": 1,
                    r: 5
                },
                hover: {
                    stroke: "black",
                    "stroke-width": 2,
                    cursor: "pointer"
                },
                selected: {
                    fill: "blue"
                },
                selectedHover: {}
            },
            markerLabelStyle: {
                initial: {
                    "font-family": "Verdana",
                    "font-size": "12",
                    "font-weight": "bold",
                    cursor: "default",
                    fill: "black"
                },
                hover: {
                    cursor: "pointer"
                }
            }
        }, l.Map.apiEvents = {
            onRegionTipShow: "regionTipShow",
            onRegionOver: "regionOver",
            onRegionOut: "regionOut",
            onRegionClick: "regionClick",
            onRegionSelected: "regionSelected",
            onMarkerTipShow: "markerTipShow",
            onMarkerOver: "markerOver",
            onMarkerOut: "markerOut",
            onMarkerClick: "markerClick",
            onMarkerSelected: "markerSelected",
            onViewportChange: "viewportChange"
        }, l.MultiMap = function(t) {
            var e = this;
            this.maps = {}, this.params = l.$.extend(!0, {}, l.MultiMap.defaultParams, t), this.params.maxLevel = this.params.maxLevel || Number.MAX_VALUE, this.params.main = this.params.main || {}, this.params.main.multiMapLevel = 0, this.history = [this.addMap(this.params.main.map, this.params.main)], this.defaultProjection = this.history[0].mapData.projection.type, this.mapsLoaded = {}, this.params.container.css({
                position: "relative"
            }), this.backButton = l.$("<div/>").addClass("jvectormap-goback").text("Back").appendTo(this.params.container), this.backButton.hide(), this.backButton.click((function() {
                e.goBack()
            })), this.spinner = l.$("<div/>").addClass("jvectormap-spinner").appendTo(this.params.container), this.spinner.hide()
        }, l.MultiMap.prototype = {
            addMap: function(t, e) {
                var i = l.$("<div/>").css({
                    width: "100%",
                    height: "100%"
                });
                return this.params.container.append(i), this.maps[t] = new l.Map(l.$.extend(e, {
                    container: i
                })), this.params.maxLevel > e.multiMapLevel && this.maps[t].container.on("regionClick.jvectormap", {
                    scope: this
                }, (function(t, e) {
                    var i = t.data.scope,
                        n = i.params.mapNameByCode(e, i);
                    i.drillDownPromise && "pending" === i.drillDownPromise.state() || i.drillDown(n, e)
                })), this.maps[t]
            },
            downloadMap: function(t) {
                var e = this,
                    i = l.$.Deferred();
                return this.mapsLoaded[t] ? i.resolve() : l.$.get(this.params.mapUrlByCode(t, this)).then((function() {
                    e.mapsLoaded[t] = !0, i.resolve()
                }), (function() {
                    i.reject()
                })), i
            },
            drillDown: function(t, e) {
                var i = this.history[this.history.length - 1],
                    n = this,
                    o = i.setFocus({
                        region: e,
                        animate: !0
                    }),
                    a = this.downloadMap(e);
                o.then((function() {
                    "pending" === a.state() && n.spinner.show()
                })), a.always((function() {
                    n.spinner.hide()
                })), this.drillDownPromise = l.$.when(a, o), this.drillDownPromise.then((function() {
                    i.params.container.hide(), n.maps[t] ? n.maps[t].params.container.show() : n.addMap(t, {
                        map: t,
                        multiMapLevel: i.params.multiMapLevel + 1
                    }), n.history.push(n.maps[t]), n.backButton.show()
                }))
            },
            goBack: function() {
                var t = this.history.pop(),
                    e = this.history[this.history.length - 1],
                    i = this;
                t.setFocus({
                    scale: 1,
                    x: .5,
                    y: .5,
                    animate: !0
                }).then((function() {
                    t.params.container.hide(), e.params.container.show(), e.updateSize(), 1 === i.history.length && i.backButton.hide(), e.setFocus({
                        scale: 1,
                        x: .5,
                        y: .5,
                        animate: !0
                    })
                }))
            }
        }, l.MultiMap.defaultParams = {
            mapNameByCode: function(t, e) {
                return t.toLowerCase() + "_" + e.defaultProjection + "_en"
            },
            mapUrlByCode: function(t, e) {
                return "jquery-jvectormap-data-" + t.toLowerCase() + "-" + e.defaultProjection + "-en.js"
            }
        }
    }).call(this, i(95)(t))
}, function(t, e) {
    jQuery.fn.vectorMap("addMap", "world_mill_en", {
        insets: [{
            width: 900,
            top: 0,
            height: 440.70631074413296,
            bbox: [{
                y: -12671671.123330014,
                x: -20004297.151525836
            }, {
                y: 6930392.025135122,
                x: 20026572.39474939
            }],
            left: 0
        }],
        paths: {
            BD: {
                path: "M651.84,230.21l-0.6,-2.0l-1.36,-1.71l-2.31,-0.11l-0.41,0.48l0.2,0.94l-0.53,0.99l-0.72,-0.36l-0.68,0.35l-1.2,-0.36l-0.37,-2.0l-0.81,-1.86l0.39,-1.46l-0.22,-0.47l-1.14,-0.53l0.29,-0.5l1.48,-0.94l0.03,-0.65l-1.55,-1.22l0.55,-1.14l1.61,0.94l1.04,0.15l0.18,1.54l0.34,0.35l5.64,0.63l-0.84,1.64l-1.22,0.34l-0.77,1.51l0.07,0.47l1.37,1.37l0.67,-0.19l0.42,-1.39l1.21,3.84l-0.03,1.21l-0.33,-0.15l-0.4,0.28Z",
                name: "Bangladesh"
            },
            BE: {
                path: "M429.29,144.05l1.91,0.24l2.1,-0.63l2.63,1.99l-0.21,1.66l-0.69,0.4l-0.18,1.2l-1.66,-1.13l-1.39,0.15l-2.73,-2.7l-1.17,-0.18l-0.16,-0.52l1.54,-0.5Z",
                name: "Belgium"
            },
            BF: {
                path: "M421.42,247.64l-0.11,0.95l0.34,1.16l1.4,1.71l0.07,1.1l0.32,0.37l2.55,0.51l-0.04,1.28l-0.38,0.53l-1.07,0.21l-0.72,1.18l-0.63,0.21l-3.22,-0.25l-0.94,0.39l-5.4,-0.05l-0.39,0.38l0.16,2.73l-1.23,-0.43l-1.17,0.1l-0.89,0.57l-2.27,-1.72l-0.13,-1.11l0.61,-0.96l0.02,-0.93l1.87,-1.98l0.44,-1.81l0.43,-0.39l1.28,0.26l1.05,-0.52l0.47,-0.73l1.84,-1.09l0.55,-0.83l2.2,-1.0l1.15,-0.3l0.72,0.45l1.13,-0.01Z",
                name: "Burkina Faso"
            },
            BG: {
                path: "M491.65,168.18l-0.86,0.88l-0.91,2.17l0.48,1.34l-1.6,-0.24l-2.55,0.95l-0.28,1.51l-1.8,0.22l-2.0,-1.0l-1.92,0.79l-1.42,-0.07l-0.15,-1.63l-1.05,-0.97l0.0,-0.8l1.2,-1.57l0.01,-0.56l-1.14,-1.23l-0.05,-0.94l0.88,0.97l0.88,-0.2l1.91,0.47l3.68,0.16l1.42,-0.81l2.72,-0.66l2.55,1.24Z",
                name: "Bulgaria"
            },
            BA: {
                path: "M463.49,163.65l2.1,0.5l1.72,-0.03l1.52,0.68l-0.36,0.78l0.08,0.45l1.04,1.02l-0.25,0.98l-1.81,1.15l-0.38,1.38l-1.67,-0.87l-0.89,-1.2l-2.11,-1.83l-1.63,-2.22l0.23,-0.57l0.48,0.38l0.55,-0.06l0.43,-0.51l0.94,-0.06Z",
                name: "Bosnia and Herz."
            },
            BN: {
                path: "M707.48,273.58l0.68,-0.65l1.41,-0.91l-0.15,1.63l-0.81,-0.05l-0.61,0.58l-0.53,-0.6Z",
                name: "Brunei"
            },
            BO: {
                path: "M263.83,340.69l-3.09,-0.23l-0.38,0.23l-0.7,1.52l-1.31,-1.53l-3.28,-0.64l-2.37,2.4l-1.31,0.26l-0.88,-3.26l-1.3,-2.86l0.74,-2.37l-0.13,-0.43l-1.2,-1.01l-0.37,-1.89l-1.08,-1.55l1.45,-2.56l-0.96,-2.33l0.47,-1.06l-0.34,-0.73l0.91,-1.32l0.16,-3.84l0.5,-1.18l-1.81,-3.41l2.46,0.07l0.8,-0.85l3.4,-1.91l2.66,-0.35l-0.19,1.38l0.3,1.07l-0.05,1.97l2.72,2.27l2.88,0.49l0.89,0.86l1.79,0.58l0.98,0.7l1.71,0.05l1.17,0.61l0.6,2.7l-0.7,0.54l0.96,2.99l0.37,0.28l4.3,0.1l-0.25,1.2l0.27,1.02l1.43,0.9l0.5,1.35l-0.41,1.86l-0.65,1.08l0.12,1.35l-2.69,-1.65l-2.4,-0.03l-4.36,0.76l-1.49,2.5l-0.11,1.52l-0.75,2.37Z",
                name: "Bolivia"
            },
            JP: {
                path: "M781.12,166.87l1.81,0.68l1.62,-0.97l0.39,2.42l-3.35,0.75l-2.23,2.88l-3.63,-1.9l-0.56,0.2l-1.26,3.05l-2.16,0.03l-0.29,-2.51l1.08,-2.03l2.45,-0.16l0.37,-0.33l1.25,-5.94l2.47,2.71l2.03,1.12ZM773.56,187.34l-0.91,2.22l0.37,1.52l-1.14,1.75l-3.02,1.26l-4.58,0.27l-3.34,3.01l-1.25,-0.8l-0.09,-1.9l-0.46,-0.38l-4.35,0.62l-3.0,1.32l-2.85,0.05l-0.37,0.27l0.13,0.44l2.32,1.89l-1.54,4.34l-1.26,0.9l-0.79,-0.7l0.56,-2.27l-0.21,-0.45l-1.47,-0.75l-0.74,-1.4l2.12,-0.84l1.26,-1.7l2.45,-1.42l1.83,-1.91l4.78,-0.81l2.6,0.57l0.44,-0.21l2.39,-4.66l1.29,1.06l0.5,0.01l5.1,-4.02l1.69,-3.73l-0.38,-3.4l0.9,-1.61l2.14,-0.44l1.23,3.72l-0.07,2.18l-2.23,2.84l-0.04,3.16ZM757.78,196.26l0.19,0.56l-1.01,1.21l-1.16,-0.68l-1.28,0.65l-0.69,1.45l-1.02,-0.5l0.01,-0.93l1.14,-1.38l1.57,0.14l0.85,-0.98l1.4,0.46Z",
                name: "Japan"
            },
            BI: {
                path: "M495.45,295.49l-1.08,-2.99l1.14,-0.11l0.64,-1.19l0.76,0.09l0.65,1.83l-2.1,2.36Z",
                name: "Burundi"
            },
            BJ: {
                path: "M429.57,255.75l-0.05,0.8l0.5,1.34l-0.42,0.86l0.17,0.79l-1.81,2.12l-0.57,1.76l-0.08,5.42l-1.41,0.2l-0.48,-1.36l0.11,-5.71l-0.52,-0.7l-0.2,-1.35l-1.48,-1.48l0.21,-0.9l0.89,-0.43l0.42,-0.92l1.27,-0.36l1.22,-1.34l0.61,-0.0l1.62,1.24Z",
                name: "Benin"
            },
            BT: {
                path: "M650.32,213.86l0.84,0.71l-0.12,1.1l-3.76,-0.11l-1.57,0.4l-1.93,-0.87l1.48,-1.96l1.13,-0.57l1.63,0.57l1.33,0.08l0.99,0.65Z",
                name: "Bhutan"
            },
            JM: {
                path: "M228.38,239.28l-0.8,0.4l-2.26,-1.06l0.84,-0.23l2.14,0.3l1.17,0.56l-1.08,0.03Z",
                name: "Jamaica"
            },
            BW: {
                path: "M483.92,330.07l2.27,4.01l2.83,2.86l0.96,0.31l0.78,2.43l2.13,0.61l1.02,0.76l-3.0,1.64l-2.32,2.02l-1.54,2.69l-1.52,0.45l-0.64,1.94l-1.34,0.52l-1.85,-0.12l-1.21,-0.74l-1.35,-0.3l-1.22,0.62l-0.75,1.37l-2.31,1.9l-1.4,0.21l-0.35,-0.59l0.16,-1.75l-1.48,-2.54l-0.62,-0.43l-0.0,-7.1l2.08,-0.08l0.39,-0.4l0.07,-8.9l5.19,-0.93l0.8,0.89l0.51,0.07l1.5,-0.95l2.21,-0.49Z",
                name: "Botswana"
            },
            BR: {
                path: "M259.98,275.05l3.24,0.7l0.65,-0.53l4.55,-1.32l1.08,-1.06l-0.02,-0.63l0.55,-0.05l0.28,0.28l-0.26,0.87l0.22,0.48l0.73,0.32l0.4,0.81l-0.62,0.86l-0.4,2.13l0.82,2.56l1.69,1.43l1.43,0.2l3.17,-1.68l3.18,0.3l0.65,-0.75l-0.27,-0.92l1.9,-0.09l2.39,0.99l1.06,-0.61l0.84,0.78l1.2,-0.18l1.18,-1.06l0.84,-1.94l1.36,-2.11l0.37,-0.05l1.89,5.45l1.33,0.59l0.05,1.28l-1.77,1.94l0.02,0.56l1.02,0.87l4.07,0.36l0.08,2.16l0.66,0.29l1.74,-1.5l6.97,2.32l1.02,1.22l-0.35,1.18l0.49,0.5l2.81,-0.74l4.77,1.3l3.75,-0.08l3.57,2.0l3.29,2.86l1.93,0.72l2.12,0.12l0.71,0.62l1.21,4.51l-0.95,3.98l-4.72,5.06l-1.64,2.92l-1.72,2.05l-0.8,0.3l-0.72,2.03l0.18,4.75l-0.94,5.53l-0.81,1.13l-0.43,3.36l-2.55,3.5l-0.4,2.51l-1.86,1.04l-0.67,1.53l-2.54,0.01l-3.94,1.01l-1.83,1.2l-2.87,0.82l-3.03,2.19l-2.2,2.83l-0.36,2.0l0.4,1.58l-0.44,2.6l-0.51,1.2l-1.77,1.54l-2.75,4.78l-3.83,3.42l-1.24,2.74l-1.18,1.15l-0.36,-0.83l0.95,-1.14l0.01,-0.5l-1.52,-1.97l-4.56,-3.32l-1.03,-0.0l-2.38,-2.02l-0.81,-0.0l5.34,-5.45l3.77,-2.58l0.22,-2.46l-1.35,-1.81l-0.91,0.07l0.58,-2.33l0.01,-1.54l-1.11,-0.83l-1.75,0.3l-0.44,-3.11l-0.52,-0.95l-1.88,-0.88l-1.24,0.47l-2.17,-0.41l0.15,-3.21l-0.62,-1.34l0.66,-0.73l-0.22,-1.34l0.66,-1.13l0.44,-2.04l-0.61,-1.83l-1.4,-0.86l-0.2,-0.75l0.34,-1.39l-0.38,-0.5l-4.52,-0.1l-0.72,-2.22l0.59,-0.42l-0.03,-1.1l-0.5,-0.87l-0.32,-1.7l-1.45,-0.76l-1.63,-0.02l-1.05,-0.72l-1.6,-0.48l-1.13,-0.99l-2.69,-0.4l-2.47,-2.06l0.13,-4.35l-0.45,-0.45l-3.46,0.5l-3.44,1.94l-0.6,0.74l-2.9,-0.17l-1.47,0.42l-0.72,-0.18l0.15,-3.52l-0.63,-0.34l-1.94,1.41l-1.87,-0.06l-0.83,-1.18l-1.37,-0.26l0.21,-1.01l-1.35,-1.49l-0.88,-1.91l0.56,-0.6l-0.0,-0.81l1.29,-0.62l0.22,-0.43l-0.22,-1.19l0.61,-0.91l0.15,-0.99l2.65,-1.58l1.99,-0.47l0.42,-0.36l2.06,0.11l0.42,-0.33l1.19,-8.0l-0.41,-1.56l-1.1,-1.0l0.01,-1.33l1.91,-0.42l0.08,-0.96l-0.33,-0.43l-1.14,-0.2l-0.02,-0.83l4.47,0.05l0.82,-0.67l0.82,1.81l0.8,0.07l1.15,1.1l2.26,-0.05l0.71,-0.83l2.78,-0.96l0.48,-1.13l1.6,-0.64l0.24,-0.47l-0.48,-0.82l-1.83,-0.19l-0.36,-3.22Z",
                name: "Brazil"
            },
            BS: {
                path: "M226.4,223.87l-0.48,-1.15l-0.84,-0.75l0.36,-1.11l0.95,1.95l0.01,1.06ZM225.56,216.43l-1.87,0.29l-0.04,-0.22l0.74,-0.14l1.17,0.06Z",
                name: "Bahamas"
            },
            BY: {
                path: "M493.84,128.32l0.29,0.7l0.49,0.23l1.19,-0.38l2.09,0.72l0.19,1.26l-0.45,1.24l1.57,2.26l0.89,0.59l0.17,0.81l1.58,0.56l0.4,0.5l-0.53,0.41l-1.87,-0.11l-0.73,0.38l-0.13,0.52l1.04,2.74l-1.91,0.26l-0.89,0.99l-0.11,1.18l-2.73,-0.04l-0.53,-0.62l-0.52,-0.08l-0.75,0.46l-0.91,-0.42l-1.92,-0.07l-2.75,-0.79l-2.6,-0.28l-2.0,0.07l-1.5,0.92l-0.67,0.07l-0.08,-1.22l-0.59,-1.19l1.36,-0.88l0.01,-1.35l-0.7,-1.41l-0.07,-1.0l2.16,-0.02l2.72,-1.3l0.75,-2.04l1.91,-1.04l0.2,-0.41l-0.19,-1.25l3.8,-1.78l2.3,0.77Z",
                name: "Belarus"
            },
            BZ: {
                path: "M198.03,244.38l0.1,-4.49l0.69,-0.06l0.74,-1.3l0.34,0.28l-0.4,1.3l0.17,0.58l-0.34,2.25l-1.3,1.42Z",
                name: "Belize"
            },
            RU: {
                path: "M491.55,115.25l2.55,-1.85l-0.01,-0.65l-2.2,-1.5l7.32,-6.76l1.03,-2.11l-0.13,-0.49l-3.46,-2.52l0.86,-2.7l-2.11,-2.81l1.56,-3.67l-2.77,-4.52l2.15,-2.99l-0.08,-0.55l-3.65,-2.73l0.3,-2.54l1.81,-0.37l4.26,-1.77l2.42,-1.45l4.06,2.61l6.79,1.04l9.34,4.85l1.78,1.88l0.14,2.46l-2.55,2.02l-3.9,1.06l-11.07,-3.14l-2.06,0.53l-0.13,0.7l3.94,2.94l0.31,5.86l0.26,0.36l5.14,2.24l0.58,-0.29l0.32,-1.94l-1.35,-1.78l1.13,-1.09l6.13,2.42l2.11,-0.98l0.18,-0.56l-1.51,-2.67l5.41,-3.76l2.07,0.22l2.26,1.41l0.57,-0.16l1.46,-2.87l-0.05,-0.44l-1.92,-2.32l1.12,-2.32l-1.32,-2.27l5.87,1.16l1.04,1.75l-2.59,0.43l-0.33,0.4l0.02,2.36l2.46,1.83l3.87,-0.91l0.86,-2.8l13.69,-5.65l0.99,0.11l-1.92,2.06l0.23,0.67l3.11,0.45l2.0,-1.48l4.56,-0.12l3.64,-1.73l2.65,2.44l0.56,-0.01l2.85,-2.88l-0.01,-0.57l-2.35,-2.29l0.9,-1.01l7.14,1.3l3.41,1.36l9.05,4.97l0.51,-0.11l1.67,-2.27l-0.05,-0.53l-2.43,-2.21l-0.06,-0.78l-0.34,-0.36l-2.52,-0.36l0.64,-1.93l-1.32,-3.46l-0.06,-1.21l4.48,-4.06l1.69,-4.29l1.6,-0.81l6.23,1.18l0.44,2.21l-2.29,3.64l0.06,0.5l1.47,1.39l0.76,3.0l-0.56,6.03l2.69,2.82l-0.96,2.57l-4.86,5.95l0.23,0.64l2.86,0.61l0.42,-0.17l0.93,-1.4l2.64,-1.03l0.87,-2.24l2.09,-1.96l0.07,-0.5l-1.36,-2.28l1.09,-2.69l-0.32,-0.55l-2.47,-0.33l-0.5,-2.06l1.94,-4.38l-0.06,-0.42l-2.96,-3.4l4.12,-2.88l0.16,-0.4l-0.51,-2.93l0.54,-0.05l1.13,2.25l-0.96,4.35l0.27,0.47l2.68,0.84l0.5,-0.51l-1.02,-2.99l3.79,-1.66l5.01,-0.24l4.53,2.61l0.48,-0.06l0.07,-0.48l-2.18,-3.82l-0.23,-4.67l3.98,-0.9l5.97,0.21l5.49,-0.64l0.27,-0.65l-1.83,-2.31l2.56,-2.9l2.87,-0.17l4.8,-2.47l6.54,-0.67l1.03,-1.42l6.25,-0.45l2.32,1.11l5.53,-2.7l4.5,0.08l0.39,-0.28l0.66,-2.15l2.26,-2.12l5.69,-2.11l3.21,1.29l-2.46,0.94l-0.25,0.42l0.34,0.35l5.41,0.77l0.61,2.33l0.58,0.25l2.2,-1.22l7.13,0.07l5.51,2.47l1.79,1.72l-0.53,2.24l-9.16,4.15l-1.97,1.52l0.16,0.71l6.77,1.91l2.16,-0.78l1.13,2.74l0.67,0.11l1.01,-1.15l3.81,-0.73l7.7,0.77l0.54,1.99l0.36,0.29l10.47,0.71l0.43,-0.38l0.13,-3.23l4.87,0.78l3.95,-0.02l3.83,2.4l1.03,2.71l-1.35,1.79l0.02,0.5l3.15,3.64l4.07,1.96l0.53,-0.18l2.23,-4.47l3.95,1.93l4.16,-1.21l4.73,1.39l2.05,-1.26l3.94,0.62l0.43,-0.55l-1.68,-4.02l2.89,-1.8l22.31,3.03l2.16,2.75l6.55,3.51l10.29,-0.81l4.82,0.73l1.85,1.66l-0.29,3.08l0.25,0.41l3.08,1.26l3.56,-0.88l4.35,-0.11l4.8,0.87l4.57,-0.47l4.23,3.79l0.43,0.07l3.1,-1.4l0.16,-0.6l-1.88,-2.62l0.85,-1.52l7.71,1.21l5.22,-0.26l7.09,2.09l9.59,5.22l6.35,4.11l-0.2,2.38l1.88,1.41l0.6,-0.42l-0.48,-2.53l6.15,0.57l4.4,3.51l-1.97,1.43l-4.0,0.41l-0.36,0.39l-0.06,3.79l-0.74,0.62l-2.07,-0.11l-1.91,-1.39l-3.14,-1.11l-0.78,-1.85l-2.72,-0.68l-2.63,0.49l-1.04,-1.1l0.46,-1.31l-0.5,-0.51l-3.0,0.98l-0.22,0.58l0.99,1.7l-1.21,1.48l-3.04,1.68l-3.12,-0.28l-0.4,0.23l0.09,0.46l2.2,2.09l1.46,3.2l1.15,1.1l0.24,1.33l-0.42,0.67l-4.63,-0.77l-6.96,2.9l-2.19,0.44l-7.6,5.06l-0.84,1.45l-3.61,-2.37l-6.24,2.82l-0.94,-1.15l-0.53,-0.08l-2.28,1.52l-3.2,-0.49l-0.44,0.27l-0.78,2.37l-3.05,3.78l0.09,1.47l0.29,0.36l2.54,0.72l-0.29,4.53l-1.97,0.11l-0.35,0.26l-1.07,2.94l0.8,1.45l-3.91,1.58l-1.05,3.95l-3.48,0.77l-0.3,0.3l-0.72,3.29l-3.09,2.65l-0.7,-1.74l-2.44,-12.44l1.16,-4.71l2.04,-2.06l0.22,-1.64l3.8,-0.86l4.46,-4.61l4.28,-3.81l4.48,-3.01l2.17,-5.63l-0.42,-0.54l-3.04,0.33l-1.77,3.31l-5.86,3.86l-1.86,-4.25l-0.45,-0.23l-6.46,1.3l-6.47,6.44l-0.01,0.55l1.58,1.74l-8.24,1.17l0.15,-2.2l-0.34,-0.42l-3.89,-0.56l-3.25,1.81l-7.62,-0.62l-8.45,1.19l-17.71,15.41l0.22,0.7l3.74,0.41l1.36,2.17l2.43,0.76l1.88,-1.68l2.4,0.2l3.4,3.54l0.08,2.6l-1.95,3.42l-0.21,3.9l-1.1,5.06l-3.71,4.54l-0.87,2.21l-8.29,8.89l-3.19,1.7l-1.32,0.03l-1.45,-1.36l-0.49,-0.04l-2.27,1.5l0.41,-3.65l-0.59,-2.47l1.75,-0.89l2.91,0.53l0.42,-0.2l1.68,-3.03l0.87,-3.46l0.97,-1.18l1.32,-2.88l-0.45,-0.56l-4.14,0.95l-2.19,1.25l-3.41,-0.0l-1.06,-2.93l-2.97,-2.3l-4.28,-1.06l-1.75,-5.07l-2.66,-5.01l-2.29,-1.29l-3.75,-1.01l-3.44,0.08l-3.18,0.62l-2.24,1.77l0.05,0.66l1.18,0.69l0.02,1.43l-1.33,1.05l-2.26,3.51l-0.04,1.43l-3.16,1.84l-2.82,-1.16l-3.01,0.23l-1.35,-1.07l-1.5,-0.35l-3.9,2.31l-3.22,0.52l-2.27,0.79l-3.05,-0.51l-2.21,0.03l-1.48,-1.6l-2.6,-1.63l-2.63,-0.43l-5.46,1.01l-3.23,-1.25l-0.72,-2.57l-5.2,-1.24l-2.75,-1.36l-0.5,0.12l-2.59,3.45l0.84,2.1l-2.06,1.93l-3.41,-0.77l-2.42,-0.12l-1.83,-1.54l-2.53,-0.05l-2.42,-0.98l-3.86,1.57l-4.72,2.78l-3.3,0.75l-1.55,-1.92l-3.0,0.41l-1.11,-1.33l-1.62,-0.59l-1.31,-1.94l-1.38,-0.6l-3.7,0.79l-3.31,-1.83l-0.51,0.11l-0.99,1.29l-5.29,-8.05l-2.96,-2.48l0.65,-0.77l0.01,-0.51l-0.5,-0.11l-6.2,3.21l-1.84,0.15l0.15,-1.39l-0.26,-0.42l-3.22,-1.17l-2.46,0.7l-0.69,-3.16l-0.32,-0.31l-4.5,-0.75l-2.47,1.47l-6.19,1.27l-1.29,0.86l-9.51,1.3l-1.15,1.17l-0.03,0.53l1.47,1.9l-1.89,0.69l-0.22,0.56l0.31,0.6l-2.11,1.44l0.03,0.68l3.75,2.12l-0.39,0.98l-3.23,-0.13l-0.86,0.86l-3.09,-1.59l-3.97,0.07l-2.66,1.35l-8.32,-3.56l-4.07,0.06l-5.39,3.68l-0.39,2.0l-2.03,-1.5l-0.59,0.13l-2.0,3.59l0.57,0.93l-1.28,2.16l0.06,0.48l2.13,2.17l1.95,0.04l1.37,1.82l-0.23,1.46l0.25,0.43l0.83,0.33l-0.8,1.31l-2.49,0.62l-2.49,3.2l0.0,0.49l2.17,2.78l-0.15,2.18l2.5,3.24l-1.58,1.59l-0.7,-0.13l-1.63,-1.72l-2.29,-0.84l-0.94,-1.31l-2.34,-0.63l-1.48,0.4l-0.43,-0.47l-3.51,-1.48l-5.76,-1.01l-0.45,0.19l-2.89,-2.34l-2.9,-1.2l-1.53,-1.29l1.29,-0.43l2.08,-2.61l-0.05,-0.55l-0.89,-0.79l3.05,-1.06l0.27,-0.42l-0.07,-0.69l-0.49,-0.35l-1.73,0.39l0.04,-0.68l1.04,-0.72l2.66,-0.48l0.4,-1.32l-0.5,-1.6l0.92,-1.54l0.03,-1.17l-0.29,-0.37l-3.69,-1.06l-1.41,0.02l-1.42,-1.41l-2.19,0.38l-2.77,-1.01l-0.03,-0.59l-0.89,-1.43l-2.0,-0.32l-0.11,-0.54l0.49,-0.53l0.01,-0.53l-1.6,-1.9l-3.58,0.02l-0.88,0.73l-0.46,-0.07l-1.0,-2.79l2.22,-0.02l0.97,-0.74l0.07,-0.57l-0.9,-1.04l-1.35,-0.48l-0.11,-0.7l-0.95,-0.58l-1.38,-1.99l0.46,-0.98l-0.51,-1.96l-2.45,-0.84l-1.21,0.3l-0.46,-0.76l-2.46,-0.83l-0.72,-1.87l-0.21,-1.69l-0.99,-0.85l0.85,-1.17l-0.7,-3.21l1.66,-1.97l-0.16,-0.79ZM749.2,170.72l-0.6,0.4l-0.13,0.16l-0.01,-0.51l0.74,-0.05ZM874.85,67.94l-5.63,0.48l-0.26,-0.84l3.15,-1.89l1.94,0.01l3.19,1.16l-2.39,1.09ZM797.39,48.49l-2.0,1.36l-3.8,-0.42l-4.25,-1.8l0.35,-0.97l9.69,1.83ZM783.67,46.12l-1.63,3.09l-8.98,-0.13l-4.09,1.14l-4.54,-2.97l1.16,-3.01l3.05,-0.89l6.5,0.22l8.54,2.56ZM778.2,134.98l-0.56,-0.9l0.27,-0.12l0.29,1.01ZM778.34,135.48l0.94,3.53l-0.05,3.38l1.05,3.39l2.18,5.0l-2.89,-0.83l-0.49,0.26l-1.54,4.65l2.42,3.5l-0.04,1.13l-1.24,-1.24l-0.61,0.06l-1.09,1.61l-0.28,-1.61l0.27,-3.1l-0.28,-3.4l0.58,-2.47l0.11,-4.39l-1.46,-3.36l0.21,-4.32l2.15,-1.46l0.07,-0.34ZM771.95,56.61l1.76,-1.42l2.89,-0.42l3.28,1.71l0.14,0.6l-3.27,0.03l-4.81,-0.5ZM683.76,31.09l-13.01,1.93l4.03,-6.35l1.82,-0.56l1.73,0.34l5.99,2.98l-0.56,1.66ZM670.85,27.93l-5.08,0.64l-6.86,-1.57l-3.99,-2.05l-2.1,-4.16l-2.6,-0.87l5.72,-3.5l5.2,-1.28l4.69,2.85l5.59,5.4l-0.56,4.53ZM564.15,68.94l-0.64,0.17l-7.85,-0.57l-0.86,-2.04l-4.28,-1.17l-0.28,-1.94l2.27,-0.89l0.25,-0.39l-0.08,-2.38l4.81,-3.97l-0.15,-0.7l-1.47,-0.38l5.3,-3.81l0.15,-0.44l-0.58,-1.94l5.28,-2.51l8.21,-3.27l8.28,-0.96l4.35,-1.94l4.6,-0.64l1.36,1.61l-1.34,1.28l-16.43,4.94l-7.97,4.88l-7.74,9.63l0.66,4.14l4.16,3.27ZM548.81,18.48l-5.5,1.18l-0.58,1.02l-2.59,0.84l-2.13,-1.07l1.12,-1.42l-0.3,-0.65l-2.33,-0.07l1.68,-0.36l3.47,-0.06l0.42,1.29l0.66,0.16l1.38,-1.34l2.15,-0.88l2.94,1.01l-0.39,0.36ZM477.37,133.15l-4.08,0.05l-2.56,-0.32l0.33,-0.87l3.17,-1.03l3.24,0.96l-0.09,1.23Z",
                name: "Russia"
            },
            RW: {
                path: "M497.0,288.25l0.71,1.01l-0.11,1.09l-1.63,0.03l-1.04,1.39l-0.83,-0.11l0.51,-1.2l0.08,-1.34l0.42,-0.41l0.7,0.14l1.19,-0.61Z",
                name: "Rwanda"
            },
            RS: {
                path: "M469.4,163.99l0.42,-0.5l-0.01,-0.52l-1.15,-1.63l1.43,-0.62l1.33,0.12l1.17,1.06l0.46,1.13l1.34,0.64l0.35,1.35l1.46,0.9l0.76,-0.29l0.2,0.69l-0.48,0.78l0.22,1.12l1.05,1.22l-0.77,0.8l-0.37,1.52l-1.21,0.08l0.24,-0.64l-0.39,-0.54l-2.08,-1.64l-0.9,0.05l-0.48,0.94l-2.12,-1.37l0.53,-1.6l-1.11,-1.37l0.51,-1.1l-0.41,-0.57Z",
                name: "Serbia"
            },
            LT: {
                path: "M486.93,129.3l0.17,1.12l-1.81,0.98l-0.72,2.02l-2.47,1.18l-2.1,-0.02l-0.73,-1.05l-1.06,-0.3l-0.09,-1.87l-3.56,-1.13l-0.43,-2.36l2.48,-0.94l4.12,0.22l2.25,-0.31l0.52,0.69l1.24,0.21l2.19,1.56Z",
                name: "Lithuania"
            },
            LU: {
                path: "M436.08,149.45l-0.48,-0.07l0.3,-1.28l0.27,0.4l-0.09,0.96Z",
                name: "Luxembourg"
            },
            LR: {
                path: "M399.36,265.97l0.18,1.54l-0.48,0.99l0.08,0.47l2.47,1.8l-0.33,2.8l-2.65,-1.13l-5.78,-4.61l0.58,-1.32l2.1,-2.33l0.86,-0.22l0.77,1.14l-0.14,0.85l0.59,0.87l1.0,0.14l0.76,-0.99Z",
                name: "Liberia"
            },
            RO: {
                path: "M487.53,154.23l0.6,0.24l2.87,3.98l-0.17,2.69l0.45,1.42l1.32,0.81l1.35,-0.42l0.76,0.36l0.02,0.31l-0.83,0.45l-0.59,-0.22l-0.54,0.3l-0.62,3.3l-1.0,-0.22l-2.07,-1.13l-2.95,0.71l-1.25,0.76l-3.51,-0.15l-1.89,-0.47l-0.87,0.16l-0.82,-1.3l0.29,-0.26l-0.06,-0.64l-1.09,-0.34l-0.56,0.5l-1.05,-0.64l-0.39,-1.39l-1.36,-0.65l-0.35,-1.0l-0.83,-0.75l1.54,-0.54l2.66,-4.21l2.4,-1.24l2.96,0.34l1.48,0.73l0.79,-0.45l1.78,-0.3l0.75,-0.74l0.79,0.0Z",
                name: "Romania"
            },
            GW: {
                path: "M386.23,253.6l-0.29,0.84l0.15,0.6l-2.21,0.59l-0.86,0.96l-1.04,-0.83l-1.09,-0.23l-0.54,-1.06l-0.66,-0.49l2.41,-0.48l4.13,0.1Z",
                name: "Guinea-Bissau"
            },
            GT: {
                path: "M195.08,249.77l-2.48,-0.37l-1.03,-0.45l-1.14,-0.89l0.3,-0.99l-0.24,-0.68l0.96,-1.66l2.98,-0.01l0.4,-0.37l-0.19,-1.28l-1.67,-1.4l0.51,-0.4l0.0,-1.05l3.85,0.02l-0.21,4.53l0.4,0.43l1.46,0.38l-1.48,0.98l-0.35,0.7l0.12,0.57l-2.2,1.96Z",
                name: "Guatemala"
            },
            GR: {
                path: "M487.07,174.59l-0.59,1.43l-0.37,0.21l-2.84,-0.35l-3.03,0.77l-0.18,0.68l1.28,1.23l-0.61,0.23l-1.14,0.0l-1.2,-1.39l-0.63,0.03l-0.53,1.01l0.56,1.76l1.03,1.19l-0.56,0.38l-0.05,0.62l2.52,2.12l0.02,0.87l-1.78,-0.59l-0.48,0.56l0.5,1.0l-1.07,0.2l-0.3,0.53l0.75,2.01l-0.98,0.02l-1.84,-1.12l-1.37,-4.2l-2.21,-2.95l-0.11,-0.56l1.04,-1.28l0.2,-0.95l0.85,-0.66l0.03,-0.46l1.32,-0.21l1.01,-0.64l1.22,0.05l0.65,-0.56l2.26,-0.0l1.82,-0.75l1.85,1.0l2.28,-0.28l0.35,-0.39l0.01,-0.77l0.34,0.22ZM480.49,192.16l0.58,0.4l-0.68,-0.12l0.11,-0.28ZM482.52,192.82l2.51,0.06l0.24,0.32l-1.99,0.13l-0.77,-0.51Z",
                name: "Greece"
            },
            GQ: {
                path: "M448.79,279.62l0.02,2.22l-4.09,0.0l0.69,-2.27l3.38,0.05Z",
                name: "Eq. Guinea"
            },
            GY: {
                path: "M277.42,270.07l-0.32,1.83l-1.32,0.57l-0.23,0.46l-0.28,2.0l1.11,1.82l0.83,0.19l0.32,1.25l1.13,1.62l-1.21,-0.19l-1.08,0.71l-1.77,0.5l-0.44,0.46l-0.86,-0.09l-1.32,-1.01l-0.77,-2.27l0.36,-1.9l0.68,-1.23l-0.57,-1.17l-0.74,-0.43l0.12,-1.16l-0.9,-0.69l-1.1,0.09l-1.31,-1.48l0.53,-0.72l-0.04,-0.84l1.99,-0.86l0.05,-0.59l-0.71,-0.78l0.14,-0.57l1.66,-1.24l1.36,0.77l1.41,1.49l0.06,1.15l0.37,0.38l0.8,0.05l2.06,1.86Z",
                name: "Guyana"
            },
            GE: {
                path: "M521.71,168.93l5.29,0.89l4.07,2.01l1.41,-0.44l2.07,0.56l0.68,1.1l1.07,0.55l-0.12,0.59l0.98,1.29l-1.01,-0.13l-1.81,-0.83l-0.94,0.47l-3.23,0.43l-2.29,-1.39l-2.33,0.05l0.21,-0.97l-0.76,-2.26l-1.45,-1.12l-1.43,-0.39l-0.41,-0.42Z",
                name: "Georgia"
            },
            GB: {
                path: "M412.61,118.72l-2.19,3.22l-0.0,0.45l5.13,-0.3l-0.53,2.37l-2.2,3.12l0.29,0.63l2.37,0.21l2.33,4.3l1.76,0.69l2.2,5.12l2.94,0.77l-0.23,1.62l-1.15,0.88l-0.1,0.52l0.82,1.42l-1.86,1.43l-3.3,-0.02l-4.12,0.87l-1.04,-0.58l-0.47,0.06l-1.51,1.41l-2.12,-0.34l-1.86,1.18l-0.6,-0.29l3.19,-3.0l2.16,-0.69l0.28,-0.41l-0.34,-0.36l-3.73,-0.53l-0.4,-0.76l2.2,-0.87l0.17,-0.61l-1.26,-1.67l0.36,-1.7l3.38,0.28l0.43,-0.33l0.37,-1.99l-1.79,-2.49l-3.11,-0.72l-0.38,-0.59l0.79,-1.35l-0.04,-0.46l-0.82,-0.97l-0.61,0.01l-0.68,0.84l-0.1,-2.34l-1.23,-1.88l0.85,-3.47l1.77,-2.68l1.85,0.26l2.17,-0.22ZM406.26,132.86l-1.01,1.77l-1.57,-0.59l-1.16,0.01l0.37,-1.54l-0.39,-1.39l1.45,-0.1l2.3,1.84Z",
                name: "United Kingdom"
            },
            GA: {
                path: "M453.24,279.52l-0.08,0.98l0.7,1.29l2.36,0.24l-0.98,2.63l1.18,1.79l0.25,1.78l-0.29,1.52l-0.6,0.93l-1.84,-0.09l-1.23,-1.11l-0.66,0.23l-0.15,0.84l-1.42,0.26l-1.02,0.7l-0.11,0.52l0.77,1.35l-1.34,0.97l-3.94,-4.3l-1.44,-2.45l0.06,-0.6l0.54,-0.81l1.05,-3.46l4.17,-0.07l0.4,-0.4l-0.02,-2.66l2.39,0.21l1.25,-0.27Z",
                name: "Gabon"
            },
            GN: {
                path: "M391.8,254.11l0.47,0.8l1.11,-0.32l0.98,0.7l1.07,0.2l2.26,-1.22l0.64,0.44l1.13,1.56l-0.48,1.4l0.8,0.3l-0.08,0.48l0.46,0.68l-0.35,1.36l1.05,2.61l-1.0,0.69l0.03,1.41l-0.72,-0.06l-1.08,1.0l-0.24,-0.27l0.07,-1.11l-1.05,-1.54l-1.79,0.21l-0.35,-2.01l-1.6,-2.18l-2.0,-0.0l-1.31,0.54l-1.95,2.18l-1.86,-2.19l-1.2,-0.78l-0.3,-1.11l-0.8,-0.85l0.65,-0.72l0.81,-0.03l1.64,-0.8l0.23,-1.87l2.67,0.64l0.89,-0.3l1.21,0.15Z",
                name: "Guinea"
            },
            GM: {
                path: "M379.31,251.39l0.1,-0.35l2.43,-0.07l0.74,-0.61l0.51,-0.03l0.77,0.49l-1.03,-0.3l-1.87,0.9l-1.65,-0.04ZM384.03,250.91l0.91,0.05l0.75,-0.24l-0.59,0.31l-1.08,-0.13Z",
                name: "Gambia"
            },
            GL: {
                path: "M353.02,1.2l14.69,4.67l-3.68,1.89l-22.97,0.86l-0.36,0.27l0.12,0.43l1.55,1.18l8.79,-0.66l7.48,2.07l4.86,-1.77l1.66,1.73l-2.53,3.19l-0.01,0.48l0.46,0.15l6.35,-2.2l12.06,-2.31l7.24,1.13l1.09,1.99l-9.79,4.01l-1.44,1.32l-7.87,0.98l-0.35,0.41l0.38,0.38l5.07,0.24l-2.53,3.58l-2.07,3.81l0.08,6.05l2.57,3.11l-3.22,0.2l-4.12,1.66l-0.05,0.72l4.45,2.65l0.51,3.75l-2.3,0.4l-0.25,0.64l2.79,3.69l-4.82,0.31l-0.36,0.29l0.16,0.44l2.62,1.8l-0.59,1.22l-3.3,0.7l-3.45,0.01l-0.29,0.68l3.03,3.12l0.02,1.34l-4.4,-1.73l-1.72,1.35l0.15,0.66l3.31,1.15l3.13,2.71l0.81,3.16l-3.85,0.75l-4.89,-4.26l-0.47,-0.03l-0.17,0.44l0.79,2.86l-2.71,2.21l-0.13,0.44l0.37,0.27l8.73,0.34l-12.32,6.64l-7.24,1.48l-2.94,0.08l-2.69,1.75l-3.43,4.41l-5.24,2.84l-1.73,0.18l-7.12,2.1l-2.15,2.52l-0.13,2.99l-1.19,2.45l-4.01,3.09l-0.14,0.44l0.97,2.9l-2.28,6.48l-3.1,0.2l-3.83,-3.07l-4.86,-0.02l-2.25,-1.93l-1.7,-3.79l-4.3,-4.84l-1.21,-2.49l-0.44,-3.8l-3.32,-3.63l0.84,-2.86l-1.56,-1.7l2.28,-4.6l3.83,-1.74l1.03,-1.96l0.52,-3.47l-0.59,-0.41l-4.17,2.21l-2.07,0.58l-2.72,-1.28l-0.15,-2.71l0.85,-2.09l2.01,-0.06l5.06,1.2l0.46,-0.23l-0.14,-0.49l-6.54,-4.47l-2.67,0.55l-1.58,-0.86l2.56,-4.01l-0.03,-0.48l-1.5,-1.74l-4.98,-8.5l-3.13,-1.96l0.03,-1.88l-0.24,-0.37l-6.85,-3.02l-5.36,-0.38l-12.7,0.58l-2.78,-1.57l-3.66,-2.77l5.73,-1.45l5.0,-0.28l0.38,-0.38l-0.35,-0.41l-10.67,-1.38l-5.3,-2.06l0.25,-1.54l18.41,-5.26l1.22,-2.27l-0.25,-0.55l-6.14,-1.86l1.68,-1.77l8.55,-4.03l3.59,-0.63l0.3,-0.54l-0.88,-2.27l5.47,-1.47l7.65,-0.95l7.55,-0.05l3.04,1.85l6.48,-3.27l5.81,2.22l3.56,0.5l5.16,1.94l0.5,-0.21l-0.17,-0.52l-5.71,-3.13l0.28,-2.13l8.12,-3.6l8.7,0.28l3.35,-2.34l8.71,-0.6l19.93,0.8Z",
                name: "Greenland"
            },
            KW: {
                path: "M540.81,207.91l0.37,0.86l-0.17,0.76l0.6,1.53l-0.95,0.04l-0.82,-1.28l-1.57,-0.18l1.31,-1.88l1.22,0.17Z",
                name: "Kuwait"
            },
            GH: {
                path: "M420.53,257.51l-0.01,0.72l0.96,1.2l0.24,3.73l0.59,0.95l-0.51,2.1l0.19,1.41l1.02,2.21l-6.97,2.84l-1.8,-0.57l0.04,-0.89l-1.02,-2.04l0.61,-2.65l1.07,-2.32l-0.96,-6.47l5.01,0.07l0.94,-0.39l0.61,0.11Z",
                name: "Ghana"
            },
            OM: {
                path: "M568.09,230.93l-0.91,1.67l-1.22,0.04l-0.6,0.76l-0.41,1.51l0.27,1.58l-1.16,0.05l-1.56,0.97l-0.76,1.74l-1.62,0.05l-0.98,0.65l-0.17,1.15l-0.89,0.52l-1.49,-0.18l-2.4,0.94l-2.47,-5.4l7.35,-2.71l1.67,-5.23l-1.12,-2.09l0.05,-0.83l0.67,-1.0l0.07,-1.05l0.9,-0.42l-0.05,-2.07l0.7,-0.01l1.0,1.62l1.51,1.08l3.3,0.84l1.73,2.29l0.81,0.37l-1.23,2.35l-0.99,0.79Z",
                name: "Oman"
            },
            _2: {
                path: "M531.15,258.94l1.51,0.12l5.13,-0.95l5.3,-1.48l-0.01,4.4l-2.67,3.39l-1.85,0.01l-8.04,-2.94l-2.55,-3.17l1.12,-1.71l2.04,2.34Z",
                name: "Somaliland"
            },
            _1: {
                path: "M472.77,172.64l-1.08,-1.29l0.96,-0.77l0.29,-0.83l1.98,1.64l-0.36,0.67l-1.79,0.58Z",
                name: "Kosovo"
            },
            _0: {
                path: "M504.91,192.87l0.34,0.01l0.27,-0.07l-0.29,0.26l-0.31,-0.2Z",
                name: "N. Cyprus"
            },
            JO: {
                path: "M518.64,201.38l-5.14,1.56l-0.19,0.65l2.16,2.39l-0.89,1.14l-1.71,0.34l-1.71,1.8l-2.34,-0.37l1.21,-4.32l0.56,-4.07l2.8,0.94l4.46,-2.71l0.79,2.66Z",
                name: "Jordan"
            },
            HR: {
                path: "M455.59,162.84l1.09,0.07l-0.82,0.94l-0.27,-1.01ZM456.96,162.92l0.62,-0.41l1.73,0.45l0.42,-0.4l-0.01,-0.59l0.86,-0.52l0.2,-1.05l1.63,-0.68l2.57,1.68l2.07,0.6l0.87,-0.31l1.05,1.57l-0.52,0.63l-1.05,-0.56l-1.68,0.04l-2.1,-0.5l-1.29,0.06l-0.57,0.49l-0.59,-0.47l-0.62,0.16l-0.46,1.7l1.79,2.42l2.79,2.75l-1.18,-0.87l-2.21,-0.87l-1.67,-1.78l0.13,-0.63l-1.05,-1.19l-0.32,-1.27l-1.42,-0.43Z",
                name: "Croatia"
            },
            HT: {
                path: "M237.05,238.38l-1.16,0.43l-0.91,-0.55l0.05,-0.2l2.02,0.31ZM237.53,238.43l1.06,0.12l-0.05,0.01l-1.01,-0.12ZM239.25,238.45l0.79,-0.51l0.06,-0.62l-1.02,-1.0l0.02,-0.82l-0.3,-0.4l-0.93,-0.32l3.16,0.45l0.02,1.84l-0.48,0.34l-0.08,0.58l0.54,0.72l-1.78,-0.26Z",
                name: "Haiti"
            },
            HU: {
                path: "M462.08,157.89l0.65,-1.59l-0.09,-0.44l0.64,-0.0l0.39,-0.34l0.1,-0.69l1.75,0.87l2.32,-0.37l0.43,-0.66l3.49,-0.78l0.69,-0.78l0.57,-0.14l2.57,0.93l0.67,-0.23l1.03,0.65l0.08,0.37l-1.42,0.71l-2.59,4.14l-1.8,0.53l-1.68,-0.1l-2.74,1.23l-1.85,-0.54l-2.54,-1.66l-0.66,-1.1Z",
                name: "Hungary"
            },
            HN: {
                path: "M199.6,249.52l-1.7,-1.21l0.06,-0.94l3.04,-2.14l2.37,0.28l1.27,-0.09l1.1,-0.52l1.3,0.28l1.14,-0.25l1.38,0.37l2.23,1.37l-2.36,0.93l-1.23,-0.39l-0.88,1.3l-1.28,0.99l-0.98,-0.22l-0.42,0.52l-0.96,0.05l-0.36,0.41l0.04,0.88l-0.52,0.6l-0.3,0.04l-0.3,-0.55l-0.66,-0.31l0.11,-0.67l-0.48,-0.65l-0.87,-0.26l-0.73,0.2Z",
                name: "Honduras"
            },
            PR: {
                path: "M256.17,238.73l-0.26,0.27l-2.83,0.05l-0.07,-0.55l1.95,-0.1l1.22,0.33Z",
                name: "Puerto Rico"
            },
            PS: {
                path: "M509.21,203.07l0.1,-0.06l-0.02,0.03l-0.09,0.03ZM509.36,202.91l-0.02,-0.63l-0.33,-0.16l0.31,-1.09l0.24,0.1l-0.2,1.78Z",
                name: "Palestine"
            },
            PT: {
                path: "M401.84,187.38l-0.64,0.47l-1.13,-0.35l-0.91,0.17l0.28,-1.78l-0.24,-1.78l-1.25,-0.56l-0.45,-0.84l0.17,-1.66l1.01,-1.18l0.69,-2.92l-0.04,-1.39l-0.59,-1.9l1.3,-0.85l0.84,1.35l3.1,-0.3l0.46,0.99l-1.05,0.94l-0.03,2.16l-0.41,0.57l-0.08,1.1l-0.79,0.18l-0.26,0.59l0.91,1.6l-0.63,1.75l0.76,1.09l-1.1,1.52l0.07,1.05Z",
                name: "Portugal"
            },
            PY: {
                path: "M274.9,336.12l0.74,1.52l-0.16,3.45l0.32,0.41l2.64,0.5l1.11,-0.47l1.4,0.59l0.36,0.6l0.53,3.42l1.27,0.4l0.98,-0.38l0.51,0.27l-0.0,1.18l-1.21,5.32l-2.09,1.9l-1.8,0.4l-4.71,-0.98l2.2,-3.63l-0.32,-1.5l-2.78,-1.28l-3.03,-1.94l-2.07,-0.44l-4.34,-4.06l0.91,-2.9l0.08,-1.42l1.07,-2.04l4.13,-0.72l2.18,0.03l2.05,1.17l0.03,0.59Z",
                name: "Paraguay"
            },
            PA: {
                path: "M213.8,263.68l0.26,-1.52l-0.36,-0.26l-0.01,-0.49l0.44,-0.1l0.93,1.4l1.26,0.03l0.77,0.49l1.38,-0.23l2.51,-1.11l0.86,-0.72l3.45,0.85l1.4,1.18l0.41,1.74l-0.21,0.34l-0.53,-0.12l-0.47,0.29l-0.16,0.6l-0.68,-1.28l0.45,-0.49l-0.19,-0.66l-0.47,-0.13l-0.54,-0.84l-1.5,-0.75l-1.1,0.16l-0.75,0.99l-1.62,0.84l-0.18,0.96l0.85,0.97l-0.58,0.45l-0.69,0.08l-0.34,-1.18l-1.27,0.03l-0.71,-1.05l-2.59,-0.46Z",
                name: "Panama"
            },
            PG: {
                path: "M808.58,298.86l2.54,2.56l-0.13,0.26l-0.33,0.12l-0.87,-0.78l-1.22,-2.16ZM801.41,293.04l0.5,0.29l0.26,0.27l-0.49,-0.35l-0.27,-0.21ZM803.17,294.58l0.59,0.5l0.08,1.06l-0.29,-0.91l-0.38,-0.65ZM796.68,298.41l0.52,0.75l1.43,-0.19l2.27,-1.81l-0.01,-1.43l1.12,0.16l-0.04,1.1l-0.7,1.28l-1.12,0.18l-0.62,0.79l-2.46,1.11l-1.17,-0.0l-3.08,-1.25l3.41,0.0l0.45,-0.68ZM789.15,303.55l2.31,1.8l1.59,2.61l1.34,0.13l-0.06,0.66l0.31,0.43l1.06,0.24l0.06,0.65l2.25,1.05l-1.22,0.13l-0.72,-0.63l-4.56,-0.65l-3.22,-2.87l-1.49,-2.34l-3.27,-1.1l-2.38,0.72l-1.59,0.86l-0.2,0.42l0.27,1.55l-1.55,0.68l-1.36,-0.4l-2.21,-0.09l-0.08,-15.41l8.39,2.93l2.95,2.4l0.6,1.64l4.02,1.49l0.31,0.68l-1.76,0.21l-0.33,0.52l0.55,1.68Z",
                name: "Papua New Guinea"
            },
            PE: {
                path: "M244.96,295.21l-1.26,-0.07l-0.57,0.42l-1.93,0.45l-2.98,1.75l-0.36,1.36l-0.58,0.8l0.12,1.37l-1.24,0.59l-0.22,1.22l-0.62,0.84l1.04,2.27l1.28,1.44l-0.41,0.84l0.32,0.57l1.48,0.13l1.16,1.37l2.21,0.07l1.63,-1.08l-0.13,3.02l0.3,0.4l1.14,0.29l1.31,-0.34l1.9,3.59l-0.48,0.85l-0.17,3.85l-0.94,1.59l0.35,0.75l-0.47,1.07l0.98,1.97l-2.1,3.82l-0.98,0.5l-2.17,-1.28l-0.39,-1.16l-4.95,-2.58l-4.46,-2.79l-1.84,-1.51l-0.91,-1.84l0.3,-0.96l-2.11,-3.33l-4.82,-9.68l-1.04,-1.2l-0.87,-1.94l-3.4,-2.48l0.58,-1.18l-1.13,-2.23l0.66,-1.49l1.45,-1.15l-0.6,0.98l0.07,0.92l0.47,0.36l1.74,0.03l0.97,1.17l0.54,0.07l1.42,-1.03l0.6,-1.84l1.42,-2.02l3.04,-1.04l2.73,-2.62l0.86,-1.74l-0.1,-1.87l1.44,1.02l0.9,1.25l1.06,0.59l1.7,2.73l1.86,0.31l1.45,-0.61l0.96,0.39l1.36,-0.19l1.45,0.89l-1.4,2.21l0.31,0.61l0.59,0.05l0.47,0.5Z",
                name: "Peru"
            },
            PK: {
                path: "M615.09,192.34l-1.83,1.81l-2.6,0.39l-3.73,-0.68l-1.58,1.33l-0.09,0.42l1.77,4.39l1.7,1.23l-1.69,1.27l-0.12,2.14l-2.33,2.64l-1.6,2.8l-2.46,2.67l-3.03,-0.07l-2.76,2.83l0.05,0.6l1.5,1.11l0.26,1.9l1.44,1.5l0.37,1.68l-5.01,-0.01l-1.78,1.7l-1.42,-0.52l-0.76,-1.87l-2.27,-2.15l-11.61,0.86l0.71,-2.34l3.43,-1.32l0.25,-0.44l-0.21,-1.24l-1.2,-0.65l-0.28,-2.46l-2.29,-1.14l-1.28,-1.94l2.82,0.94l2.62,-0.38l1.42,0.33l0.76,-0.56l1.71,0.19l3.25,-1.14l0.27,-0.36l0.08,-2.19l1.18,-1.32l1.68,0.0l0.58,-0.82l1.6,-0.3l1.19,0.16l0.98,-0.78l0.02,-1.88l0.93,-1.47l1.48,-0.66l0.19,-0.55l-0.66,-1.25l2.04,-0.11l0.69,-1.01l-0.02,-1.16l1.11,-1.06l-0.17,-1.78l-0.49,-1.03l1.15,-0.98l5.42,-0.91l2.6,-0.82l1.6,1.16l0.97,2.34l3.45,0.97Z",
                name: "Pakistan"
            },
            PH: {
                path: "M737.01,263.84l0.39,2.97l-0.44,1.18l-0.55,-1.53l-0.67,-0.14l-1.17,1.28l0.65,2.09l-0.42,0.69l-2.48,-1.23l-0.57,-1.49l0.65,-1.03l-0.1,-0.54l-1.59,-1.19l-0.56,0.08l-0.65,0.87l-1.23,0.0l-1.58,0.97l0.83,-1.8l2.56,-1.42l0.65,0.84l0.45,0.13l1.9,-0.69l0.56,-1.11l1.5,-0.06l0.38,-0.43l-0.09,-1.19l1.21,0.71l0.36,2.02ZM733.59,256.58l0.05,0.75l0.08,0.26l-0.8,-0.42l-0.18,-0.71l0.85,0.12ZM734.08,256.1l-0.12,-1.12l-1.0,-1.27l1.36,0.03l0.53,0.73l0.51,2.04l-1.27,-0.4ZM733.76,257.68l0.38,0.98l-0.32,0.15l-0.07,-1.13ZM724.65,238.43l1.46,0.7l0.72,-0.31l-0.32,1.17l0.79,1.71l-0.57,1.84l-1.53,1.04l-0.39,2.25l0.56,2.04l1.63,0.57l1.16,-0.27l2.71,1.23l-0.19,1.08l0.76,0.84l-0.08,0.36l-1.4,-0.9l-0.88,-1.27l-0.66,0.0l-0.38,0.55l-1.6,-1.31l-2.15,0.36l-0.87,-0.39l0.07,-0.61l0.66,-0.55l-0.01,-0.62l-0.75,-0.59l-0.72,0.44l-0.74,-0.87l-0.39,-2.49l0.32,0.27l0.66,-0.28l0.26,-3.97l0.7,-2.02l1.14,0.0ZM731.03,258.87l-0.88,0.85l-1.19,1.94l-1.05,-1.19l0.93,-1.1l0.32,-1.47l0.52,-0.06l-0.27,1.15l0.22,0.45l0.49,-0.12l1.0,-1.32l-0.08,0.85ZM726.83,255.78l0.83,0.38l1.17,-0.0l-0.02,0.48l-2.0,1.4l0.03,-2.26ZM724.81,252.09l-0.38,1.27l-1.42,-1.95l1.2,0.05l0.6,0.63ZM716.55,261.82l1.1,-0.95l0.03,-0.03l-0.28,0.36l-0.85,0.61ZM719.22,259.06l0.04,-0.06l0.8,-1.53l0.16,0.75l-1.0,0.84Z",
                name: "Philippines"
            },
            PL: {
                path: "M468.44,149.42l-1.11,-1.54l-1.86,-0.33l-0.48,-1.05l-1.72,-0.37l-0.65,0.69l-0.72,-0.36l0.11,-0.61l-0.33,-0.46l-1.75,-0.27l-1.04,-0.93l-0.94,-1.94l0.16,-1.22l-0.62,-1.8l-0.78,-1.07l0.57,-1.04l-0.48,-1.43l1.41,-0.83l6.91,-2.71l2.14,0.5l0.52,0.91l5.51,0.44l4.55,-0.05l1.07,0.31l0.48,0.84l0.15,1.58l0.65,1.2l-0.01,0.99l-1.27,0.58l-0.19,0.54l0.73,1.48l0.08,1.55l1.2,2.76l-0.17,0.58l-1.23,0.44l-2.27,2.72l0.18,0.95l-1.97,-1.03l-1.98,0.4l-1.36,-0.28l-1.24,0.58l-1.07,-0.97l-1.16,0.24Z",
                name: "Poland"
            },
            ZM: {
                path: "M481.47,313.3l0.39,0.31l2.52,0.14l0.99,1.17l2.01,0.35l1.4,-0.64l0.69,1.17l1.78,0.33l1.84,2.35l2.23,0.18l0.4,-0.43l-0.21,-2.74l-0.62,-0.3l-0.48,0.32l-1.98,-1.17l0.72,-5.29l-0.51,-1.18l0.57,-1.3l3.68,-0.62l0.26,0.63l1.21,0.63l0.9,-0.22l2.16,0.67l1.33,0.71l1.07,1.02l0.56,1.87l-0.88,2.7l0.43,2.09l-0.73,0.87l-0.76,2.37l0.59,0.68l-6.6,1.83l-0.29,0.44l0.19,1.45l-1.68,0.35l-1.43,1.02l-0.38,0.87l-0.87,0.26l-3.48,3.69l-4.16,-0.53l-1.52,-1.0l-1.77,-0.13l-1.83,0.52l-3.04,-3.4l0.11,-7.59l4.82,0.03l0.39,-0.49l-0.18,-0.76l0.33,-0.83l-0.4,-1.36l0.24,-1.05Z",
                name: "Zambia"
            },
            EH: {
                path: "M384.42,230.28l0.25,-0.79l1.06,-1.29l0.8,-3.51l3.38,-2.78l0.7,-1.81l0.06,4.84l-1.98,0.2l-0.94,1.59l0.39,3.56l-3.7,-0.01ZM392.01,218.1l0.7,-1.8l1.77,-0.24l2.09,0.34l0.95,-0.62l1.28,-0.07l-0.0,2.51l-6.79,-0.12Z",
                name: "W. Sahara"
            },
            EE: {
                path: "M485.71,115.04l2.64,0.6l2.56,0.11l-1.6,1.91l0.61,3.54l-0.81,0.87l-1.78,-0.01l-3.22,-1.76l-1.8,0.45l0.21,-1.53l-0.58,-0.41l-0.69,0.34l-1.26,-1.03l-0.17,-1.63l2.83,-0.92l3.05,-0.52Z",
                name: "Estonia"
            },
            EG: {
                path: "M492.06,205.03l1.46,0.42l2.95,-1.64l2.04,-0.21l1.53,0.3l0.59,1.19l0.69,0.04l0.41,-0.64l1.81,0.58l1.95,0.16l1.04,-0.51l1.42,4.08l-2.03,4.54l-1.66,-1.77l-1.76,-3.85l-0.64,-0.12l-0.36,0.67l1.04,2.88l3.44,6.95l1.78,3.04l2.03,2.65l-0.36,0.53l0.23,2.01l2.7,2.19l-28.41,0.0l0.0,-18.96l-0.73,-2.2l0.59,-1.56l-0.32,-1.26l0.68,-0.99l3.06,-0.04l4.82,1.52Z",
                name: "Egypt"
            },
            ZA: {
                path: "M467.14,373.21l-0.13,-1.96l-0.68,-1.56l0.7,-0.68l-0.13,-2.33l-4.56,-8.19l0.77,-0.86l0.6,0.45l0.69,1.31l2.83,0.72l1.5,-0.26l2.24,-1.39l0.19,-9.55l1.35,2.3l-0.21,1.5l0.61,1.2l0.4,0.19l1.79,-0.27l2.6,-2.07l0.69,-1.32l0.96,-0.48l2.19,1.04l2.04,0.13l1.77,-0.65l0.85,-2.12l1.38,-0.33l1.59,-2.76l2.15,-1.89l3.41,-1.87l2.0,0.45l1.02,-0.28l0.99,0.2l1.75,5.29l-0.38,3.25l-0.81,-0.23l-1.0,0.46l-0.87,1.68l-0.05,1.16l1.97,1.84l1.47,-0.29l0.69,-1.18l1.09,0.01l-0.76,3.69l-0.58,1.09l-2.2,1.79l-3.17,4.76l-2.8,2.83l-3.57,2.88l-2.53,1.05l-1.22,0.14l-0.51,0.7l-1.18,-0.32l-1.39,0.5l-2.59,-0.52l-1.61,0.33l-1.18,-0.11l-2.55,1.1l-2.1,0.44l-1.6,1.07l-0.85,0.05l-0.93,-0.89l-0.93,-0.15l-0.97,-1.13l-0.25,0.05ZM491.45,364.19l0.62,-0.93l1.48,-0.59l1.18,-2.19l-0.07,-0.49l-1.99,-1.69l-1.66,0.56l-1.43,1.14l-1.34,1.73l0.02,0.51l1.88,2.11l1.31,-0.16Z",
                name: "South Africa"
            },
            EC: {
                path: "M231.86,285.53l0.29,1.59l-0.69,1.45l-2.61,2.51l-3.13,1.11l-1.53,2.18l-0.49,1.68l-1.0,0.73l-1.02,-1.11l-1.78,-0.16l0.67,-1.15l-0.24,-0.86l1.25,-2.13l-0.54,-1.09l-0.67,-0.08l-0.72,0.87l-0.87,-0.64l0.35,-0.69l-0.36,-1.96l0.81,-0.51l0.45,-1.51l0.92,-1.57l-0.07,-0.97l2.65,-1.33l2.75,1.35l0.77,1.05l2.12,0.35l0.76,-0.32l1.96,1.21Z",
                name: "Ecuador"
            },
            AL: {
                path: "M470.32,171.8l0.74,0.03l0.92,0.89l-0.17,1.95l0.36,1.28l1.01,0.82l-1.82,2.83l-0.19,-0.61l-1.25,-0.89l-0.18,-1.2l0.53,-2.82l-0.54,-1.47l0.6,-0.83Z",
                name: "Albania"
            },
            AO: {
                path: "M461.55,300.03l1.26,3.15l1.94,2.36l2.47,-0.53l1.25,0.32l0.44,-0.18l0.93,-1.92l1.31,-0.08l0.41,-0.44l0.47,-0.0l-0.1,0.41l0.39,0.49l2.65,-0.02l0.03,1.19l0.48,1.01l-0.34,1.52l0.18,1.55l0.83,1.04l-0.13,2.85l0.54,0.39l3.96,-0.41l-0.1,1.79l0.39,1.05l-0.24,1.43l-4.7,-0.03l-0.4,0.39l-0.12,8.13l2.92,3.49l-3.83,0.88l-5.89,-0.36l-1.88,-1.24l-10.47,0.22l-1.3,-1.01l-1.85,-0.16l-2.4,0.77l-0.15,-1.06l0.33,-2.16l1.0,-3.45l1.35,-3.2l2.24,-2.8l0.33,-2.06l-0.13,-1.53l-0.8,-1.08l-1.21,-2.87l0.87,-1.62l-1.27,-4.12l-1.17,-1.53l2.47,-0.63l7.03,0.03ZM451.71,298.87l-0.47,-1.25l1.25,-1.11l0.32,0.3l-0.99,1.03l-0.12,1.03Z",
                name: "Angola"
            },
            KZ: {
                path: "M552.8,172.89l0.46,-1.27l-0.48,-1.05l-2.96,-1.19l-1.06,-2.58l-1.37,-0.87l-0.03,-0.3l1.95,0.23l0.45,-0.38l0.08,-1.96l1.75,-0.41l2.1,0.45l0.48,-0.33l0.45,-3.04l-0.45,-2.09l-0.41,-0.31l-2.42,0.15l-2.36,-0.73l-2.87,1.37l-2.17,0.61l-0.85,-0.34l0.13,-1.61l-1.6,-2.12l-2.02,-0.08l-1.78,-1.82l1.29,-2.18l-0.57,-0.95l1.62,-2.91l2.21,1.63l0.63,-0.27l0.29,-2.22l4.92,-3.43l3.71,-0.08l8.4,3.6l2.92,-1.36l3.77,-0.06l3.11,1.66l0.51,-0.11l0.6,-0.81l3.31,0.13l0.39,-0.25l0.63,-1.57l-0.17,-0.5l-3.5,-1.98l1.87,-1.27l-0.13,-1.03l1.98,-0.72l0.18,-0.62l-1.59,-2.06l0.81,-0.82l9.23,-1.18l1.33,-0.88l6.18,-1.26l2.26,-1.42l4.08,0.68l0.73,3.33l0.51,0.3l2.48,-0.8l2.79,1.02l-0.17,1.56l0.43,0.44l2.55,-0.24l4.89,-2.53l0.03,0.32l3.15,2.61l5.56,8.47l0.65,0.02l1.12,-1.46l3.15,1.74l3.76,-0.78l1.15,0.49l1.14,1.8l1.84,0.76l0.99,1.29l3.35,-0.25l1.02,1.52l-1.6,1.81l-1.93,0.28l-0.34,0.38l-0.11,3.05l-1.13,1.16l-4.75,-1.0l-0.46,0.27l-1.76,5.47l-1.1,0.59l-4.91,1.23l-0.27,0.54l2.1,4.97l-1.37,0.63l-0.23,0.41l0.13,1.13l-0.88,-0.25l-1.42,-1.13l-7.89,-0.4l-0.92,0.31l-3.73,-1.22l-1.42,0.63l-0.53,1.66l-3.72,-0.94l-1.85,0.43l-0.76,1.4l-4.65,2.62l-1.13,2.08l-0.44,0.01l-0.92,-1.4l-2.87,-0.09l-0.45,-2.14l-0.38,-0.32l-0.8,-0.01l0.0,-2.96l-3.0,-2.22l-7.31,0.58l-2.35,-2.68l-6.71,-3.69l-6.45,1.83l-0.29,0.39l0.1,10.85l-0.7,0.08l-1.62,-2.17l-1.83,-0.96l-3.11,0.59l-0.64,0.51Z",
                name: "Kazakhstan"
            },
            ET: {
                path: "M516.04,247.79l1.1,0.84l1.63,-0.45l0.68,0.47l1.63,0.03l2.01,0.94l1.73,1.66l1.64,2.07l-1.52,2.04l0.16,1.72l0.39,0.38l2.05,0.0l-0.36,1.03l2.86,3.58l8.32,3.08l1.31,0.02l-6.32,6.75l-3.1,0.11l-2.36,1.77l-1.47,0.04l-0.86,0.79l-1.38,-0.0l-1.32,-0.81l-2.29,1.05l-0.76,0.98l-3.29,-0.41l-3.07,-2.07l-1.8,-0.07l-0.62,-0.6l0.0,-1.24l-0.28,-0.38l-1.15,-0.37l-1.4,-2.59l-1.19,-0.68l-0.47,-1.0l-1.27,-1.23l-1.16,-0.22l0.43,-0.72l1.45,-0.28l0.41,-0.95l-0.03,-2.21l0.68,-2.44l1.05,-0.63l1.43,-3.06l1.57,-1.37l1.02,-2.51l0.35,-1.88l2.52,0.46l0.44,-0.24l0.58,-1.43Z",
                name: "Ethiopia"
            },
            ZW: {
                path: "M498.91,341.09l-1.11,-0.22l-0.92,0.28l-2.09,-0.44l-1.5,-1.11l-1.89,-0.43l-0.62,-1.4l-0.01,-0.84l-0.3,-0.38l-0.97,-0.25l-2.71,-2.74l-1.92,-3.32l3.83,0.45l3.73,-3.82l1.08,-0.44l0.26,-0.77l1.25,-0.9l1.41,-0.26l0.5,0.89l1.99,-0.05l1.72,1.17l1.11,0.17l1.05,0.66l0.01,2.99l-0.59,3.76l0.38,0.86l-0.23,1.23l-0.39,0.35l-0.63,1.81l-2.43,2.75Z",
                name: "Zimbabwe"
            },
            ES: {
                path: "M416.0,169.21l1.07,1.17l4.61,1.38l1.06,-0.57l2.6,1.26l2.71,-0.3l0.09,1.12l-2.14,1.8l-3.11,0.61l-0.31,0.31l-0.2,0.89l-1.54,1.69l-0.97,2.4l0.84,1.74l-1.32,1.27l-0.48,1.68l-1.88,0.65l-1.66,2.07l-5.36,-0.01l-1.79,1.08l-0.89,0.98l-0.88,-0.17l-0.79,-0.82l-0.68,-1.59l-2.37,-0.63l-0.11,-0.5l1.21,-1.82l-0.77,-1.13l0.61,-1.68l-0.76,-1.62l0.87,-0.49l0.09,-1.25l0.42,-0.6l0.03,-2.11l0.99,-0.69l0.13,-0.5l-1.03,-1.73l-1.46,-0.11l-0.61,0.38l-1.06,0.0l-0.52,-1.23l-0.53,-0.21l-1.32,0.67l-0.01,-1.49l-0.75,-0.96l3.03,-1.88l2.99,0.53l3.32,-0.02l2.63,0.51l6.01,-0.06Z",
                name: "Spain"
            },
            ER: {
                path: "M520.38,246.23l3.42,2.43l3.5,3.77l0.84,0.54l-0.95,-0.01l-3.51,-3.89l-2.33,-1.15l-1.73,-0.07l-0.91,-0.51l-1.26,0.51l-1.34,-1.02l-0.61,0.17l-0.66,1.61l-2.35,-0.43l-0.17,-0.67l1.29,-5.29l0.61,-0.61l1.95,-0.53l0.87,-1.01l1.17,2.41l0.68,2.33l1.49,1.43Z",
                name: "Eritrea"
            },
            ME: {
                path: "M468.91,172.53l-1.22,-1.02l0.47,-1.81l0.89,-0.72l2.26,1.51l-0.5,0.57l-0.75,-0.27l-1.14,1.73Z",
                name: "Montenegro"
            },
            MD: {
                path: "M488.41,153.73l1.4,-0.27l1.72,0.93l1.07,0.15l0.85,0.65l-0.14,0.84l0.96,0.85l1.12,2.47l-1.15,-0.07l-0.66,-0.41l-0.52,0.25l-0.09,0.86l-1.08,1.89l-0.27,-0.86l0.25,-1.34l-0.16,-1.6l-3.29,-4.34Z",
                name: "Moldova"
            },
            MG: {
                path: "M545.91,319.14l0.4,3.03l0.62,1.21l-0.21,1.02l-0.57,-0.8l-0.69,-0.01l-0.47,0.76l0.41,2.12l-0.18,0.87l-0.73,0.78l-0.15,2.14l-4.71,15.2l-1.06,2.88l-3.92,1.64l-3.12,-1.49l-0.6,-1.21l-0.19,-2.4l-0.86,-2.05l-0.21,-1.77l0.38,-1.62l1.21,-0.75l0.01,-0.76l1.19,-2.04l0.23,-1.66l-1.06,-2.99l-0.19,-2.21l0.81,-1.33l0.32,-1.46l4.63,-1.22l3.44,-3.0l0.85,-1.4l-0.08,-0.7l0.78,-0.04l1.38,-1.77l0.13,-1.64l0.45,-0.61l1.16,1.69l0.59,1.6Z",
                name: "Madagascar"
            },
            MA: {
                path: "M378.78,230.02l0.06,-0.59l0.92,-0.73l0.82,-1.37l-0.09,-1.04l0.79,-1.7l1.31,-1.58l0.96,-0.59l0.66,-1.55l0.09,-1.47l0.81,-1.48l1.72,-1.07l1.55,-2.69l1.16,-0.96l2.44,-0.39l1.94,-1.82l1.31,-0.78l2.09,-2.28l-0.51,-3.65l1.24,-3.7l1.5,-1.75l4.46,-2.57l2.37,-4.47l1.44,0.01l1.68,1.21l2.32,-0.19l3.47,0.65l0.8,1.54l0.16,1.71l0.86,2.96l0.56,0.59l-0.26,0.61l-3.05,0.44l-1.26,1.05l-1.33,0.22l-0.33,0.37l-0.09,1.78l-2.68,1.0l-1.07,1.42l-4.47,1.13l-4.04,2.01l-0.54,4.64l-1.15,0.06l-0.92,0.61l-1.96,-0.35l-2.42,0.54l-0.74,1.9l-0.86,0.4l-1.14,3.26l-3.53,3.01l-0.8,3.55l-0.96,1.1l-0.29,0.82l-4.95,0.18Z",
                name: "Morocco"
            },
            UZ: {
                path: "M598.64,172.75l-1.63,1.52l0.06,0.64l1.85,1.12l1.97,-0.64l2.21,1.17l-2.52,1.68l-2.59,-0.22l-0.18,-0.41l0.46,-1.23l-0.45,-0.53l-3.35,0.69l-2.1,3.51l-1.87,-0.12l-1.03,1.51l0.22,0.55l1.64,0.62l0.46,1.83l-1.19,2.49l-2.66,-0.53l0.05,-1.36l-0.26,-0.39l-3.3,-1.23l-2.56,-1.4l-4.4,-3.34l-1.34,-3.14l-1.08,-0.6l-2.58,0.13l-0.69,-0.44l-0.47,-2.52l-3.37,-1.6l-0.43,0.05l-2.07,1.72l-2.1,1.01l-0.21,0.47l0.28,1.01l-1.91,0.03l-0.09,-10.5l5.99,-1.7l6.19,3.54l2.71,2.84l7.05,-0.67l2.71,2.01l-0.17,2.81l0.39,0.42l0.9,0.02l0.44,2.14l0.38,0.32l2.94,0.09l0.95,1.42l1.28,-0.24l1.05,-2.04l4.43,-2.5Z",
                name: "Uzbekistan"
            },
            MM: {
                path: "M673.9,230.21l-1.97,1.57l-0.57,0.96l-1.4,0.6l-1.36,1.05l-1.99,0.36l-1.08,2.66l-0.91,0.4l-0.19,0.55l1.21,2.27l2.52,3.43l-0.79,1.91l-0.74,0.41l-0.17,0.52l0.65,1.37l1.61,1.95l0.25,2.58l0.9,2.13l-1.92,3.57l0.68,-2.25l-0.81,-1.74l0.19,-2.65l-1.05,-1.53l-1.24,-6.17l-1.12,-2.26l-0.6,-0.13l-4.34,3.02l-2.39,-0.65l0.77,-2.84l-0.52,-2.61l-1.91,-2.96l0.25,-0.75l-0.29,-0.51l-1.33,-0.3l-1.61,-1.93l-0.1,-1.3l0.82,-0.24l0.04,-1.64l1.02,-0.52l0.21,-0.45l-0.23,-0.95l0.54,-0.96l0.08,-2.22l1.46,0.45l0.47,-0.2l1.12,-2.19l0.16,-1.35l1.33,-2.16l-0.0,-1.52l2.89,-1.66l1.63,0.44l0.5,-0.44l-0.17,-1.4l0.64,-0.36l0.08,-1.04l0.77,-0.11l0.71,1.35l1.06,0.69l-0.03,3.86l-2.38,2.37l-0.3,3.15l0.46,0.43l2.28,-0.38l0.51,2.08l1.47,0.67l-0.6,1.8l0.19,0.48l2.97,1.48l1.64,-0.55l0.02,0.32Z",
                name: "Myanmar"
            },
            ML: {
                path: "M392.61,254.08l-0.19,-2.37l-0.99,-0.87l-0.44,-1.3l-0.09,-1.28l0.81,-0.58l0.35,-1.24l2.37,0.65l1.31,-0.47l0.86,0.15l0.66,-0.56l9.83,-0.04l0.38,-0.28l0.56,-1.8l-0.44,-0.65l-2.35,-21.95l3.27,-0.04l16.7,11.38l0.74,1.31l2.5,1.09l0.02,1.38l0.44,0.39l2.34,-0.21l0.01,5.38l-1.28,1.61l-0.26,1.49l-5.31,0.57l-1.07,0.92l-2.9,0.1l-0.86,-0.48l-1.38,0.36l-2.4,1.08l-0.6,0.87l-1.85,1.09l-0.43,0.7l-0.79,0.39l-1.44,-0.21l-0.81,0.84l-0.34,1.64l-1.91,2.02l-0.06,1.03l-0.67,1.22l0.13,1.16l-0.97,0.39l-0.23,-0.64l-0.52,-0.24l-1.35,0.4l-0.34,0.55l-2.69,-0.28l-0.37,-0.35l-0.02,-0.9l-0.65,-0.35l0.45,-0.64l-0.03,-0.53l-2.12,-2.44l-0.76,-0.01l-2.0,1.16l-0.78,-0.15l-0.8,-0.67l-1.21,0.23Z",
                name: "Mali"
            },
            MN: {
                path: "M676.61,146.48l3.81,1.68l5.67,-1.0l2.37,0.41l2.34,1.5l1.79,1.75l2.29,-0.03l3.12,0.52l2.47,-0.81l3.41,-0.59l3.53,-2.21l1.25,0.29l1.53,1.13l2.27,-0.21l-2.66,5.01l0.64,1.68l0.47,0.21l1.32,-0.38l2.38,0.48l2.02,-1.11l1.76,0.89l2.06,2.02l-0.13,0.53l-1.72,-0.29l-3.77,0.46l-1.88,0.99l-1.76,1.99l-3.71,1.17l-2.45,1.6l-3.83,-0.87l-0.41,0.17l-1.31,1.99l1.04,2.24l-1.52,0.9l-1.74,1.57l-2.79,1.02l-3.78,0.13l-4.05,1.05l-2.77,1.52l-1.16,-0.85l-2.94,0.0l-3.62,-1.79l-2.58,-0.49l-3.4,0.41l-5.12,-0.67l-2.63,0.06l-1.31,-1.6l-1.4,-3.0l-1.48,-0.33l-3.13,-1.94l-6.16,-0.93l-0.71,-1.06l0.86,-3.82l-1.93,-2.71l-3.5,-1.18l-1.95,-1.58l-0.5,-1.72l2.34,-0.52l4.75,-2.8l3.62,-1.47l2.18,0.97l2.46,0.05l1.81,1.53l2.46,0.12l3.95,0.71l2.43,-2.28l0.08,-0.48l-0.9,-1.72l2.24,-2.98l2.62,1.27l4.94,1.17l0.43,2.24Z",
                name: "Mongolia"
            },
            MK: {
                path: "M472.8,173.98l0.49,-0.71l3.57,-0.71l1.0,0.77l0.13,1.45l-0.65,0.53l-1.15,-0.05l-1.12,0.67l-1.39,0.22l-0.79,-0.55l-0.29,-1.03l0.19,-0.6Z",
                name: "Macedonia"
            },
            MW: {
                path: "M505.5,309.31l0.85,1.95l0.15,2.86l-0.69,1.65l0.71,1.8l0.06,1.28l0.49,0.64l0.07,1.06l0.4,0.55l0.8,-0.23l0.55,0.61l0.69,-0.21l0.34,0.6l0.19,2.94l-1.04,0.62l-0.54,1.25l-1.11,-1.08l-0.16,-1.56l0.51,-1.31l-0.32,-1.3l-0.99,-0.65l-0.82,0.12l-2.36,-1.64l0.63,-1.96l0.82,-1.18l-0.46,-2.01l0.9,-2.86l-0.94,-2.51l0.96,0.18l0.29,0.4Z",
                name: "Malawi"
            },
            MR: {
                path: "M407.36,220.66l-2.58,0.03l-0.39,0.44l2.42,22.56l0.36,0.43l-0.39,1.24l-9.75,0.04l-0.56,0.53l-0.91,-0.11l-1.27,0.45l-1.61,-0.66l-0.97,0.03l-0.36,0.29l-0.38,1.35l-0.42,0.23l-2.93,-3.4l-2.96,-1.52l-1.62,-0.03l-1.27,0.54l-1.12,-0.2l-0.65,0.4l-0.08,-0.49l0.68,-1.29l0.31,-2.43l-0.57,-3.91l0.23,-1.21l-0.69,-1.5l-1.15,-1.02l0.25,-0.39l9.58,0.02l0.4,-0.45l-0.46,-3.68l0.47,-1.04l2.12,-0.21l0.36,-0.4l-0.08,-6.4l7.81,0.13l0.41,-0.4l0.01,-3.31l7.76,5.35Z",
                name: "Mauritania"
            },
            UG: {
                path: "M498.55,276.32l0.7,-0.46l1.65,0.5l1.96,-0.57l1.7,0.01l1.45,-0.98l0.91,1.33l1.33,3.95l-2.57,4.03l-1.46,-0.4l-2.54,0.91l-1.37,1.61l-0.01,0.81l-2.42,-0.01l-2.26,1.01l-0.17,-1.59l0.58,-1.04l0.14,-1.94l1.37,-2.28l1.78,-1.58l-0.17,-0.65l-0.72,-0.24l0.13,-2.43Z",
                name: "Uganda"
            },
            MY: {
                path: "M717.47,273.46l-1.39,0.65l-2.12,-0.41l-2.88,-0.0l-0.38,0.28l-0.84,2.75l-0.99,0.96l-1.21,3.29l-1.73,0.45l-2.45,-0.68l-1.39,0.31l-1.33,1.15l-1.59,-0.14l-1.41,0.44l-1.44,-1.19l-0.18,-0.73l1.34,0.53l1.93,-0.47l0.75,-2.22l4.02,-1.03l2.75,-3.21l0.82,0.94l0.64,-0.05l0.4,-0.65l0.96,0.06l0.42,-0.36l0.24,-2.68l1.81,-1.64l1.21,-1.86l0.63,-0.01l1.07,1.05l0.34,1.28l3.44,1.35l-0.06,0.35l-1.37,0.1l-0.35,0.54l0.32,0.88ZM673.68,269.59l0.17,1.09l0.47,0.33l1.65,-0.3l0.87,-0.94l1.61,1.52l0.98,1.56l-0.12,2.81l0.41,2.29l0.95,0.9l0.88,2.44l-1.27,0.12l-5.1,-3.67l-0.34,-1.29l-1.37,-1.59l-0.33,-1.97l-0.88,-1.4l0.25,-1.68l-0.46,-1.05l1.63,0.84Z",
                name: "Malaysia"
            },
            MX: {
                path: "M133.12,200.41l0.2,0.47l9.63,3.33l6.96,-0.02l0.4,-0.4l0.0,-0.74l3.77,0.0l3.55,2.93l1.39,2.83l1.52,1.04l2.08,0.82l0.47,-0.14l1.46,-2.0l1.73,-0.04l1.59,0.98l2.05,3.35l1.47,1.56l1.26,3.14l2.18,1.02l2.26,0.58l-1.18,3.72l-0.42,5.04l1.79,4.89l1.62,1.89l0.61,1.52l1.2,1.42l2.55,0.66l1.37,1.1l7.54,-1.89l1.86,-1.3l1.14,-4.3l4.1,-1.21l3.57,-0.11l0.32,0.3l-0.06,0.94l-1.26,1.45l-0.67,1.71l0.38,0.7l-0.72,2.27l-0.49,-0.3l-1.0,0.08l-1.0,1.39l-0.47,-0.11l-0.53,0.47l-4.26,-0.02l-0.4,0.4l-0.0,1.06l-1.1,0.26l0.1,0.44l1.82,1.44l0.56,0.91l-3.19,0.21l-1.21,2.09l0.24,0.72l-0.2,0.44l-2.24,-2.18l-1.45,-0.93l-2.22,-0.69l-1.52,0.22l-3.07,1.16l-10.55,-3.85l-2.86,-1.96l-3.78,-0.92l-1.08,-1.19l-2.62,-1.43l-1.18,-1.54l-0.38,-0.81l0.66,-0.63l-0.18,-0.53l0.52,-0.76l0.01,-0.91l-2.0,-3.82l-2.21,-2.63l-2.53,-2.09l-1.19,-1.62l-2.2,-1.17l-0.3,-0.43l0.34,-1.48l-0.21,-0.45l-1.23,-0.6l-1.36,-1.2l-0.59,-1.78l-1.54,-0.47l-2.44,-2.55l-0.16,-0.9l-1.33,-2.03l-0.84,-1.99l-0.16,-1.33l-1.81,-1.1l-0.97,0.05l-1.31,-0.7l-0.57,0.22l-0.4,1.12l0.72,3.77l3.51,3.89l0.28,0.78l0.53,0.26l0.41,1.43l1.33,1.73l1.58,1.41l0.8,2.39l1.43,2.41l0.13,1.32l0.37,0.36l1.04,0.08l1.67,2.28l-0.85,0.76l-0.66,-1.51l-1.68,-1.54l-2.91,-1.87l0.06,-1.82l-0.54,-1.68l-2.91,-2.03l-0.55,0.09l-1.95,-1.1l-0.88,-0.94l0.68,-0.08l0.93,-1.01l0.08,-1.78l-1.93,-1.94l-1.46,-0.77l-3.75,-7.56l4.88,-0.42Z",
                name: "Mexico"
            },
            VU: {
                path: "M839.04,322.8l0.22,1.14l-0.44,0.03l-0.2,-1.45l0.42,0.27Z",
                name: "Vanuatu"
            },
            FR: {
                path: "M444.48,172.62l-0.64,1.78l-0.58,-0.31l-0.49,-1.72l0.4,-0.89l1.0,-0.72l0.3,1.85ZM429.64,147.1l1.78,1.58l1.46,-0.13l2.1,1.42l1.35,0.27l1.23,0.83l3.04,0.5l-1.03,1.85l-0.3,2.12l-0.41,0.32l-0.95,-0.24l-0.5,0.43l0.06,0.61l-1.81,1.92l-0.04,1.42l0.55,0.38l0.88,-0.36l0.61,0.97l-0.03,1.0l0.57,0.91l-0.75,1.09l0.65,2.39l1.27,0.57l-0.18,0.82l-2.01,1.53l-4.77,-0.8l-3.82,1.0l-0.53,1.85l-2.49,0.34l-2.71,-1.31l-1.16,0.57l-4.31,-1.29l-0.72,-0.86l1.19,-1.78l0.39,-6.45l-2.58,-3.3l-1.9,-1.66l-3.72,-1.23l-0.19,-1.72l2.81,-0.61l4.12,0.81l0.47,-0.48l-0.6,-2.77l1.94,0.95l5.83,-2.54l0.92,-2.74l1.6,-0.49l0.24,0.78l1.36,0.33l1.05,1.19ZM289.01,278.39l-0.81,0.8l-0.78,0.12l-0.5,-0.66l-0.56,-0.1l-0.91,0.6l-0.46,-0.22l1.09,-2.96l-0.96,-1.77l-0.17,-1.49l1.07,-1.77l2.32,0.75l2.51,2.01l0.3,0.74l-2.14,3.96Z",
                name: "France"
            },
            FI: {
                path: "M492.17,76.39l-0.23,3.5l3.52,2.63l-2.08,2.88l-0.02,0.44l2.8,4.56l-1.59,3.31l2.16,3.24l-0.94,2.39l0.14,0.47l3.44,2.51l-0.77,1.62l-7.52,6.95l-4.5,0.31l-4.38,1.37l-3.8,0.74l-1.44,-1.96l-2.17,-1.11l0.5,-3.66l-1.16,-3.33l1.09,-2.08l2.21,-2.42l5.67,-4.32l1.64,-0.83l0.21,-0.42l-0.46,-2.02l-3.38,-1.89l-0.75,-1.43l-0.22,-6.74l-6.79,-4.8l0.8,-0.62l2.54,2.12l3.46,-0.12l3.0,0.96l2.51,-2.11l1.17,-3.08l3.55,-1.38l2.76,1.53l-0.95,2.79Z",
                name: "Finland"
            },
            FJ: {
                path: "M871.53,326.34l-2.8,1.05l-0.08,-0.23l2.97,-1.21l-0.1,0.39ZM867.58,329.25l0.43,0.37l-0.27,0.88l-1.24,0.28l-1.04,-0.24l-0.14,-0.66l0.63,-0.58l0.92,0.26l0.7,-0.31Z",
                name: "Fiji"
            },
            FK: {
                path: "M274.36,425.85l1.44,1.08l-0.47,0.73l-3.0,0.89l-0.96,-1.0l-0.52,-0.05l-1.83,1.29l-0.73,-0.88l2.46,-1.64l1.93,0.76l1.67,-1.19Z",
                name: "Falkland Is."
            },
            NI: {
                path: "M202.33,252.67l0.81,-0.18l1.03,-1.02l-0.04,-0.88l0.68,-0.0l0.63,-0.54l0.97,0.22l1.53,-1.26l0.58,-0.99l1.17,0.34l2.41,-0.94l0.13,1.32l-0.81,1.94l0.1,2.74l-0.36,0.37l-0.11,1.75l-0.47,0.81l0.18,1.14l-1.73,-0.85l-0.71,0.27l-1.47,-0.6l-0.52,0.16l-4.01,-3.81Z",
                name: "Nicaragua"
            },
            NL: {
                path: "M430.31,143.39l0.6,-0.5l2.13,-4.8l3.2,-1.33l1.74,0.08l0.33,0.8l-0.59,2.92l-0.5,0.99l-1.26,0.0l-0.4,0.45l0.33,2.7l-2.2,-1.78l-2.62,0.58l-0.75,-0.11Z",
                name: "Netherlands"
            },
            NO: {
                path: "M491.44,67.41l6.8,2.89l-2.29,0.86l-0.15,0.65l2.33,2.38l-4.98,1.79l0.84,-2.45l-0.18,-0.48l-3.55,-1.8l-3.89,1.52l-1.42,3.38l-2.12,1.72l-2.64,-1.0l-3.11,0.21l-2.66,-2.22l-0.5,-0.01l-1.41,1.1l-1.44,0.17l-0.35,0.35l-0.32,2.47l-4.32,-0.64l-0.44,0.29l-0.58,2.11l-2.45,0.2l-4.15,7.68l-3.88,5.76l0.78,1.62l-0.64,1.16l-2.24,-0.06l-0.38,0.24l-1.66,3.89l0.15,5.17l1.57,2.04l-0.78,4.16l-2.02,2.48l-0.85,1.63l-1.3,-1.75l-0.58,-0.07l-4.87,4.19l-3.1,0.79l-3.16,-1.7l-0.85,-3.77l-0.77,-8.55l2.14,-2.31l6.55,-3.27l5.02,-4.17l10.63,-13.84l10.98,-8.7l5.35,-1.91l4.34,0.12l3.69,-3.64l4.49,0.19l4.37,-0.89ZM484.55,20.04l4.26,1.75l-3.1,2.55l-7.1,0.65l-7.08,-0.9l-0.37,-1.31l-0.37,-0.29l-3.44,-0.1l-2.08,-2.0l6.87,-1.44l3.9,1.31l2.39,-1.64l6.13,1.4ZM481.69,33.93l-4.45,1.74l-3.54,-0.99l1.12,-0.9l0.05,-0.58l-1.06,-1.22l4.22,-0.89l1.09,1.97l2.57,0.87ZM466.44,24.04l7.43,3.77l-5.41,1.86l-1.58,4.08l-2.26,1.2l-1.12,4.11l-2.61,0.18l-4.79,-2.86l1.84,-1.54l-0.1,-0.68l-3.69,-1.53l-4.77,-4.51l-1.73,-3.89l6.11,-1.82l1.54,1.92l3.57,-0.08l1.2,-1.96l3.32,-0.18l3.05,1.92Z",
                name: "Norway"
            },
            NA: {
                path: "M474.26,330.66l-0.97,0.04l-0.38,0.4l-0.07,8.9l-2.09,0.08l-0.39,0.4l-0.0,17.42l-1.98,1.23l-1.17,0.17l-2.44,-0.66l-0.48,-1.13l-0.99,-0.74l-0.54,0.05l-0.9,1.01l-1.53,-1.68l-0.93,-1.88l-1.99,-8.56l-0.06,-3.12l-0.33,-1.52l-2.3,-3.34l-1.91,-4.83l-1.96,-2.43l-0.12,-1.57l2.33,-0.79l1.43,0.07l1.81,1.13l10.23,-0.25l1.84,1.23l5.87,0.35ZM474.66,330.64l6.51,-1.6l1.9,0.39l-1.69,0.4l-1.31,0.83l-1.12,-0.94l-4.29,0.92Z",
                name: "Namibia"
            },
            NC: {
                path: "M838.78,341.24l-0.33,0.22l-2.9,-1.75l-3.26,-3.37l1.65,0.83l4.85,4.07Z",
                name: "New Caledonia"
            },
            NE: {
                path: "M454.75,226.53l1.33,1.37l0.48,0.07l1.27,-0.7l0.53,3.52l0.94,0.83l0.17,0.92l0.81,0.69l-0.44,0.95l-0.96,5.26l-0.13,3.22l-3.04,2.31l-1.22,3.57l1.02,1.24l-0.0,1.46l0.39,0.4l1.13,0.04l-0.9,1.25l-1.47,-2.42l-0.86,-0.29l-2.09,1.37l-1.74,-0.67l-1.45,-0.17l-0.85,0.35l-1.36,-0.07l-1.64,1.09l-1.06,0.05l-2.94,-1.28l-1.44,0.59l-1.01,-0.03l-0.97,-0.94l-2.7,-0.98l-2.69,0.3l-0.87,0.64l-0.47,1.6l-0.75,1.16l-0.12,1.53l-1.57,-1.1l-1.31,0.24l0.03,-0.81l-0.32,-0.41l-2.59,-0.52l-0.15,-1.16l-1.35,-1.6l-0.29,-1.0l0.13,-0.84l1.29,-0.08l1.08,-0.92l3.31,-0.22l2.22,-0.41l0.32,-0.34l0.2,-1.47l1.39,-1.88l-0.01,-5.66l3.36,-1.12l7.24,-5.12l8.42,-4.92l3.69,1.06Z",
                name: "Niger"
            },
            NG: {
                path: "M456.32,253.89l0.64,0.65l-0.28,1.04l-2.11,2.01l-2.03,5.18l-1.37,1.16l-1.15,3.18l-1.33,0.66l-1.46,-0.97l-1.21,0.16l-1.38,1.36l-0.91,0.24l-1.79,4.06l-2.33,0.81l-1.11,-0.07l-0.86,0.5l-1.71,-0.05l-1.19,-1.39l-0.89,-1.89l-1.77,-1.66l-3.95,-0.08l0.07,-5.21l0.42,-1.43l1.95,-2.3l-0.14,-0.91l0.43,-1.18l-0.53,-1.41l0.25,-2.92l0.72,-1.07l0.32,-1.34l0.46,-0.39l2.47,-0.28l2.34,0.89l1.15,1.02l1.28,0.04l1.22,-0.58l3.03,1.27l1.49,-0.14l1.36,-1.0l1.33,0.07l0.82,-0.35l3.45,0.8l1.82,-1.32l1.84,2.67l0.66,0.16Z",
                name: "Nigeria"
            },
            NZ: {
                path: "M857.8,379.65l1.86,3.12l0.44,0.18l0.3,-0.38l0.03,-1.23l0.38,0.27l0.57,2.31l2.02,0.94l1.81,0.27l1.57,-1.06l0.7,0.18l-1.15,3.59l-1.98,0.11l-0.74,1.2l0.2,1.11l-2.42,3.98l-1.49,0.92l-1.04,-0.85l1.21,-2.05l-0.81,-2.01l-2.63,-1.25l0.04,-0.57l1.82,-1.19l0.43,-2.34l-0.16,-2.03l-0.95,-1.82l-0.06,-0.72l-3.11,-3.64l-0.79,-1.52l1.56,1.45l1.76,0.66l0.65,2.34ZM853.83,393.59l0.57,1.24l0.59,0.16l1.42,-0.97l0.46,0.79l0.0,1.03l-2.47,3.48l-1.26,1.2l-0.06,0.5l0.55,0.87l-1.41,0.07l-2.33,1.38l-2.03,5.02l-3.02,2.16l-2.06,-0.06l-1.71,-1.04l-2.47,-0.2l-0.27,-0.73l1.22,-2.1l3.05,-2.94l1.62,-0.59l4.02,-2.82l1.57,-1.67l1.07,-2.16l0.88,-0.7l0.48,-1.75l1.24,-0.97l0.35,0.79Z",
                name: "New Zealand"
            },
            NP: {
                path: "M641.14,213.62l0.01,3.19l-1.74,0.04l-4.8,-0.86l-1.58,-1.39l-3.37,-0.34l-7.65,-3.7l0.8,-2.09l2.33,-1.7l1.77,0.75l2.49,1.76l1.38,0.41l0.99,1.35l1.9,0.52l1.99,1.17l5.49,0.9Z",
                name: "Nepal"
            },
            CI: {
                path: "M407.4,259.27l0.86,0.42l0.56,0.9l1.13,0.53l1.19,-0.61l0.97,-0.08l1.42,0.54l0.6,3.24l-1.03,2.08l-0.65,2.84l1.06,2.33l-0.06,0.53l-2.54,-0.47l-1.66,0.03l-3.06,0.46l-4.11,1.6l0.32,-3.06l-1.18,-1.31l-1.32,-0.66l0.42,-0.85l-0.2,-1.4l0.5,-0.67l0.01,-1.59l0.84,-0.32l0.26,-0.5l-1.15,-3.01l0.12,-0.5l0.51,-0.25l0.66,0.31l1.93,0.02l0.67,-0.71l0.71,-0.14l0.25,0.69l0.57,0.22l1.4,-0.61Z",
                name: "CÃ´te d'Ivoire"
            },
            CH: {
                path: "M444.62,156.35l-0.29,0.87l0.18,0.53l1.13,0.58l1.0,0.1l-0.1,0.65l-0.79,0.38l-1.72,-0.37l-0.45,0.23l-0.45,1.04l-0.75,0.06l-0.84,-0.4l-1.32,1.0l-0.96,0.12l-0.88,-0.55l-0.81,-1.3l-0.49,-0.16l-0.63,0.26l0.02,-0.65l1.71,-1.66l0.1,-0.56l0.93,0.08l0.58,-0.46l1.99,0.02l0.66,-0.61l2.19,0.79Z",
                name: "Switzerland"
            },
            CO: {
                path: "M242.07,254.93l-1.7,0.59l-0.59,1.18l-1.7,1.69l-0.38,1.93l-0.67,1.43l0.31,0.57l1.03,0.13l0.25,0.9l0.57,0.64l-0.04,2.34l1.64,1.42l3.16,-0.24l1.26,0.28l1.67,2.06l0.41,0.13l4.09,-0.39l0.45,0.22l-0.92,1.95l-0.2,1.8l0.52,1.83l0.75,1.05l-1.12,1.1l0.07,0.63l0.84,0.51l0.74,1.29l-0.39,-0.45l-0.59,-0.01l-0.71,0.74l-4.71,-0.05l-0.4,0.41l0.03,1.57l0.33,0.39l1.11,0.2l-1.68,0.4l-0.29,0.38l-0.01,1.82l1.16,1.14l0.34,1.25l-1.05,7.05l-1.04,-0.87l1.26,-1.99l-0.13,-0.56l-2.18,-1.23l-1.38,0.2l-1.14,-0.38l-1.27,0.61l-1.55,-0.26l-1.38,-2.46l-1.23,-0.75l-0.85,-1.2l-1.67,-1.19l-0.86,0.13l-2.11,-1.32l-1.01,0.31l-1.8,-0.29l-0.52,-0.91l-3.09,-1.68l0.77,-0.52l-0.1,-1.12l0.41,-0.64l1.34,-0.32l2.0,-2.88l-0.11,-0.57l-0.66,-0.43l0.39,-1.38l-0.52,-2.1l0.49,-0.83l-0.4,-2.13l-0.97,-1.35l0.17,-0.66l0.86,-0.08l0.47,-0.75l-0.46,-1.63l1.41,-0.07l1.8,-1.69l0.93,-0.24l0.3,-0.38l0.45,-2.76l1.22,-1.0l1.44,-0.04l0.45,-0.5l1.91,0.12l2.93,-1.84l1.15,-1.14l0.91,0.46l-0.25,0.45Z",
                name: "Colombia"
            },
            CN: {
                path: "M740.23,148.97l4.57,1.3l2.8,2.17l0.98,2.9l0.38,0.27l3.8,0.0l2.32,-1.28l3.29,-0.75l-0.96,2.09l-1.02,1.28l-0.85,3.4l-1.52,2.73l-2.76,-0.5l-2.4,1.13l-0.21,0.45l0.64,2.57l-0.32,3.2l-0.94,0.06l-0.37,0.89l-0.91,-1.01l-0.64,0.07l-0.92,1.57l-3.73,1.25l-0.26,0.48l0.26,1.06l-1.5,-0.08l-1.09,-0.86l-0.56,0.06l-1.67,2.06l-2.7,1.56l-2.03,1.88l-3.4,0.83l-1.93,1.4l-1.15,0.34l0.33,-0.7l-0.41,-0.89l1.79,-1.79l0.02,-0.54l-1.32,-1.56l-0.48,-0.1l-2.24,1.09l-2.83,2.06l-1.51,1.83l-2.28,0.13l-1.55,1.49l-0.04,0.5l1.32,1.97l2.0,0.58l0.31,1.35l1.98,0.84l3.0,-1.96l2.0,1.02l1.49,0.11l0.22,0.83l-3.37,0.86l-1.12,1.48l-2.5,1.52l-1.29,1.99l0.14,0.56l2.57,1.48l0.97,2.7l3.17,4.63l-0.03,1.66l-1.35,0.65l-0.2,0.51l0.6,1.47l1.4,0.91l-0.89,3.82l-1.43,0.38l-3.85,6.44l-2.27,3.11l-6.78,4.57l-2.73,0.29l-1.45,1.04l-0.62,-0.61l-0.55,-0.01l-1.36,1.25l-3.39,1.27l-2.61,0.4l-1.1,2.79l-0.81,0.09l-0.49,-1.42l0.5,-0.85l-0.25,-0.59l-3.36,-0.84l-1.3,0.4l-2.31,-0.62l-0.94,-0.84l0.33,-1.28l-0.3,-0.49l-2.19,-0.46l-1.13,-0.93l-0.47,-0.02l-2.06,1.36l-4.29,0.28l-2.76,1.05l-0.28,0.43l0.32,2.53l-0.59,-0.03l-0.19,-1.34l-0.55,-0.34l-1.68,0.7l-2.46,-1.23l0.62,-1.87l-0.26,-0.51l-1.37,-0.44l-0.54,-2.22l-0.45,-0.3l-2.13,0.35l0.24,-2.48l2.39,-2.4l0.03,-4.31l-1.19,-0.92l-0.78,-1.49l-0.41,-0.21l-1.41,0.19l-1.98,-0.3l0.46,-1.07l-1.17,-1.7l-0.55,-0.11l-1.63,1.05l-2.25,-0.57l-2.89,1.73l-2.25,1.98l-1.75,0.29l-1.17,-0.71l-3.31,-0.65l-1.48,0.79l-1.04,1.27l-0.12,-1.17l-0.54,-0.34l-1.44,0.54l-5.55,-0.86l-1.98,-1.16l-1.89,-0.54l-0.99,-1.35l-1.34,-0.37l-2.55,-1.79l-2.01,-0.84l-1.21,0.56l-5.57,-3.45l-0.53,-2.31l1.19,0.25l0.48,-0.37l0.08,-1.42l-0.98,-1.56l0.15,-2.44l-2.69,-3.32l-4.12,-1.23l-0.67,-2.0l-1.92,-1.48l-0.38,-0.7l-0.51,-3.01l-1.52,-0.66l-0.7,0.13l-0.48,-2.05l0.55,-0.51l-0.09,-0.82l2.03,-1.19l1.6,-0.54l2.56,0.38l0.42,-0.22l0.85,-1.7l3.0,-0.33l1.1,-1.26l4.05,-1.77l0.39,-0.91l-0.17,-1.44l1.45,-0.67l0.2,-0.52l-2.07,-4.9l4.51,-1.12l1.37,-0.73l1.89,-5.51l4.98,0.86l1.51,-1.7l0.11,-2.87l1.99,-0.38l1.83,-2.06l0.49,-0.13l0.68,2.08l2.23,1.77l3.44,1.16l1.55,2.29l-0.92,3.49l0.96,1.67l6.54,1.13l2.95,1.87l1.47,0.35l1.06,2.62l1.53,1.91l3.05,0.08l5.14,0.67l3.37,-0.41l2.36,0.43l3.65,1.8l3.06,0.04l1.45,0.88l2.87,-1.59l3.95,-1.02l3.83,-0.14l3.06,-1.14l1.77,-1.6l1.72,-1.01l0.17,-0.49l-1.1,-2.05l1.02,-1.54l4.02,0.8l2.45,-1.61l3.76,-1.19l1.96,-2.13l1.63,-0.83l3.51,-0.4l1.92,0.34l0.46,-0.3l0.17,-1.5l-2.27,-2.22l-2.11,-1.09l-2.18,1.11l-2.32,-0.47l-1.29,0.32l-0.4,-0.82l2.73,-5.16l3.02,1.06l3.53,-2.06l0.18,-1.68l2.16,-3.35l1.49,-1.35l-0.03,-1.85l-1.07,-0.85l1.54,-1.26l2.98,-0.59l3.23,-0.09l3.64,0.99l2.04,1.16l3.29,6.71l0.92,3.19ZM696.92,237.31l-1.87,1.08l-1.63,-0.64l-0.06,-1.79l1.03,-0.98l2.58,-0.69l1.16,0.05l0.3,0.54l-0.98,1.06l-0.53,1.37Z",
                name: "China"
            },
            CM: {
                path: "M457.92,257.49l1.05,1.91l-1.4,0.16l-1.05,-0.23l-0.45,0.22l-0.54,1.19l0.08,0.45l1.48,1.47l1.05,0.45l1.01,2.46l-1.52,2.99l-0.68,0.68l-0.13,3.69l2.38,3.84l1.09,0.8l0.24,2.48l-3.67,-1.14l-11.27,-0.13l0.23,-1.79l-0.98,-1.66l-1.19,-0.54l-0.44,-0.97l-0.6,-0.42l1.71,-4.27l0.75,-0.13l1.38,-1.36l0.65,-0.03l1.71,0.99l1.93,-1.12l1.14,-3.18l1.38,-1.17l2.0,-5.14l2.17,-2.13l0.3,-1.64l-0.86,-0.88l0.03,-0.33l0.94,1.28l0.07,3.22Z",
                name: "Cameroon"
            },
            CL: {
                path: "M246.5,429.18l-3.14,1.83l-0.57,3.16l-0.64,0.05l-2.68,-1.06l-2.82,-2.33l-3.04,-1.89l-0.69,-1.85l0.63,-2.14l-1.21,-2.11l-0.31,-5.37l1.01,-2.91l2.57,-2.38l-0.18,-0.68l-3.16,-0.77l2.05,-2.47l0.77,-4.65l2.32,0.9l0.54,-0.29l1.31,-6.31l-0.22,-0.44l-1.68,-0.8l-0.56,0.28l-0.7,3.36l-0.81,-0.22l1.56,-9.41l1.15,-2.24l-0.71,-2.82l-0.18,-2.84l1.01,-0.33l3.26,-9.14l1.07,-4.22l-0.56,-4.21l0.74,-2.34l-0.29,-3.27l1.46,-3.34l2.04,-16.59l-0.66,-7.76l1.03,-0.53l0.54,-0.9l0.79,1.14l0.32,1.78l1.25,1.16l-0.69,2.55l1.33,2.9l0.97,3.59l0.46,0.29l1.5,-0.3l0.11,0.23l-0.76,2.44l-2.57,1.23l-0.23,0.37l0.08,4.33l-0.46,0.77l0.56,1.21l-1.58,1.51l-1.68,2.62l-0.89,2.47l0.2,2.7l-1.48,2.73l1.12,5.09l0.64,0.61l-0.01,2.29l-1.38,2.68l0.01,2.4l-1.89,2.04l0.02,2.75l0.69,2.57l-1.43,1.13l-1.26,5.68l0.39,3.51l-0.97,0.89l0.58,3.5l1.02,1.14l-0.65,1.02l0.15,0.57l1.0,0.53l0.16,0.69l-1.03,0.85l0.26,1.75l-0.89,4.03l-1.31,2.66l0.24,1.75l-0.71,1.83l-1.99,1.7l0.3,3.67l0.88,1.19l1.58,0.01l0.01,2.21l1.04,1.95l5.98,0.63ZM248.69,430.79l0.0,7.33l0.4,0.4l3.52,0.05l-0.44,0.75l-1.94,0.98l-2.49,-0.37l-1.88,-1.06l-2.55,-0.49l-5.59,-3.71l-2.38,-2.63l4.1,2.48l3.32,1.23l0.45,-0.12l1.29,-1.57l0.83,-2.32l2.05,-1.24l1.31,0.29Z",
                name: "Chile"
            },
            CA: {
                path: "M280.06,145.6l-1.67,2.88l0.07,0.49l0.5,0.04l1.46,-0.98l1.0,0.42l-0.56,0.72l0.17,0.62l2.22,0.89l1.35,-0.71l1.95,0.78l-0.66,2.01l0.5,0.51l1.32,-0.42l0.98,3.17l-0.91,2.41l-0.8,0.08l-1.23,-0.45l0.47,-2.25l-0.89,-0.83l-0.48,0.06l-2.78,2.63l-0.34,-0.02l1.02,-0.85l-0.14,-0.69l-2.4,-0.77l-7.4,0.08l-0.17,-0.41l1.3,-0.94l0.02,-0.64l-0.73,-0.58l1.85,-1.74l2.57,-5.16l1.47,-1.79l1.99,-1.05l0.46,0.06l-1.53,2.45ZM68.32,74.16l4.13,0.95l4.02,2.14l2.61,0.4l2.47,-1.89l2.88,-1.31l3.85,0.48l3.71,-1.94l3.82,-1.04l1.56,1.68l0.49,0.08l1.87,-1.04l0.65,-1.98l1.24,0.35l4.16,3.94l0.54,0.01l2.75,-2.49l0.26,2.59l0.49,0.35l3.08,-0.73l1.04,-1.27l2.73,0.23l3.83,1.86l5.86,1.61l3.47,0.75l2.44,-0.26l2.73,1.78l-2.98,1.81l-0.19,0.41l0.31,0.32l4.53,0.92l6.87,-0.5l2.0,-0.69l2.49,2.39l0.53,0.02l2.72,-2.16l-0.02,-0.64l-2.16,-1.54l1.15,-1.06l4.83,-0.61l1.84,0.95l2.48,2.31l3.01,-0.23l4.55,1.92l3.85,-0.67l3.61,0.1l0.41,-0.44l-0.25,-2.36l1.79,-0.61l3.49,1.32l-0.01,3.77l0.31,0.39l0.45,-0.22l1.48,-3.16l1.74,0.1l0.41,-0.3l1.13,-4.37l-2.78,-3.11l-2.8,-1.74l0.19,-4.64l2.71,-3.07l2.98,0.67l2.41,1.95l3.19,4.8l-1.99,1.97l0.21,0.68l4.33,0.84l-0.01,4.15l0.25,0.37l0.44,-0.09l3.07,-3.15l2.54,2.39l-0.61,3.33l2.42,2.88l0.61,0.0l2.61,-3.08l1.88,-3.82l0.17,-4.58l6.72,0.94l3.13,2.04l0.13,1.82l-1.76,2.19l-0.01,0.49l1.66,2.16l-0.26,1.71l-4.68,2.8l-3.28,0.61l-2.47,-1.2l-0.55,0.23l-0.73,2.04l-2.38,3.43l-0.74,1.77l-2.74,2.57l-3.44,0.25l-2.21,1.78l-0.28,2.53l-2.82,0.55l-3.12,3.22l-2.72,4.31l-1.03,3.17l-0.14,4.31l0.33,0.41l3.44,0.57l2.24,5.95l0.45,0.23l3.4,-0.69l4.52,1.51l2.43,1.31l1.91,1.73l3.1,0.96l2.62,1.46l6.6,0.54l-0.35,2.74l0.81,3.53l1.81,3.78l3.83,3.3l0.45,0.04l2.1,-1.28l1.37,-3.69l-1.31,-5.38l-1.45,-1.58l3.57,-1.47l2.84,-2.46l1.52,-2.8l-0.25,-2.55l-1.7,-3.07l-2.85,-2.61l2.8,-3.95l-1.08,-3.37l-0.79,-5.67l1.36,-0.7l6.76,1.41l2.12,-0.96l5.12,3.36l1.05,1.61l4.08,0.26l-0.06,2.87l0.83,4.7l0.3,0.32l2.16,0.54l1.73,2.06l0.5,0.09l3.63,-2.03l2.52,-4.19l1.26,-1.32l7.6,11.72l-0.92,2.04l0.16,0.51l3.3,1.97l2.22,1.98l4.1,0.98l1.43,0.99l0.95,2.79l2.1,0.68l0.84,1.08l0.17,3.45l-3.37,2.26l-4.22,1.24l-3.06,2.63l-4.06,0.51l-5.35,-0.69l-6.39,0.2l-2.3,2.41l-3.26,1.51l-6.47,7.15l-0.06,0.48l0.44,0.19l2.13,-0.52l4.17,-4.24l5.12,-2.62l3.52,-0.3l1.69,1.21l-2.12,2.21l0.81,3.47l1.02,2.61l3.47,1.6l4.14,-0.45l2.15,-2.8l0.26,1.48l1.14,0.8l-2.56,1.69l-5.5,1.82l-2.54,1.27l-2.74,2.15l-1.4,-0.16l-0.07,-2.01l4.14,-2.44l0.18,-0.45l-0.39,-0.29l-6.63,0.45l-1.39,-1.49l-0.14,-4.43l-1.11,-0.91l-1.82,0.39l-0.66,-0.66l-0.6,0.03l-1.91,2.39l-0.82,2.52l-0.8,1.27l-1.67,0.56l-0.46,0.76l-8.31,0.07l-1.21,0.62l-2.35,1.97l-0.71,-0.14l-1.37,0.96l-1.12,-0.48l-4.74,1.26l-0.9,1.17l0.21,0.62l1.73,0.3l-1.81,0.31l-1.85,0.81l-2.11,-0.13l-2.95,1.78l-0.69,-0.09l1.39,-2.1l1.73,-1.21l0.1,-2.29l1.16,-1.99l0.49,0.53l2.03,0.42l1.2,-1.16l0.02,-0.47l-2.66,-3.51l-2.28,-0.61l-5.64,-0.71l-0.4,-0.57l-0.79,0.13l0.2,-0.41l-0.22,-0.55l-0.68,-0.26l0.19,-1.26l-0.78,-0.73l0.31,-0.64l-0.29,-0.57l-2.6,-0.44l-0.75,-1.63l-0.94,-0.66l-4.31,-0.65l-1.13,1.19l-1.48,0.59l-0.85,1.06l-2.83,-0.76l-2.09,0.39l-2.39,-0.97l-4.24,-0.7l-0.57,-0.4l-0.41,-1.63l-0.4,-0.3l-0.85,0.02l-0.39,0.4l-0.01,0.85l-69.13,-0.01l-6.51,-4.52l-4.5,-1.38l-1.26,-2.66l0.33,-1.93l-0.23,-0.43l-3.01,-1.35l-0.55,-2.77l-2.89,-2.38l-0.04,-1.45l1.39,-1.83l-0.28,-2.55l-4.16,-2.2l-4.07,-6.6l-4.02,-3.22l-1.3,-1.88l-0.5,-0.13l-2.51,1.21l-2.23,1.87l-3.85,-3.88l-2.44,-1.04l-2.22,-0.13l0.03,-37.49ZM260.37,148.65l3.04,0.76l2.26,1.2l-3.78,-0.95l-1.53,-1.01ZM249.4,3.81l6.68,0.49l5.32,0.79l4.26,1.57l-0.07,1.1l-5.85,2.53l-6.02,1.21l-2.39,1.39l-0.18,0.45l0.39,0.29l4.01,-0.02l-4.65,2.82l-4.2,1.74l-4.19,4.59l-5.03,0.92l-1.67,1.15l-7.47,0.59l-0.37,0.37l0.32,0.42l2.41,0.49l-0.81,0.47l-0.12,0.59l1.83,2.41l-2.02,1.59l-3.81,1.51l-1.32,2.16l-3.38,1.53l-0.22,0.48l0.35,1.19l0.4,0.29l3.88,-0.18l0.03,0.61l-6.33,2.95l-6.41,-1.4l-7.43,0.79l-3.72,-0.62l-4.4,-0.25l-0.23,-1.83l4.29,-1.11l0.28,-0.51l-1.1,-3.45l1.0,-0.25l6.58,2.28l0.47,-0.16l-0.05,-0.49l-3.41,-3.45l-3.58,-0.98l1.48,-1.55l4.34,-1.29l0.97,-2.19l-0.16,-0.48l-3.42,-2.13l-0.81,-2.26l6.2,0.22l2.24,0.58l3.91,-2.1l0.2,-0.43l-0.35,-0.32l-5.64,-0.67l-8.73,0.36l-4.26,-1.9l-2.12,-2.4l-2.78,-1.66l-0.41,-1.52l3.31,-1.03l2.93,-0.2l4.91,-0.99l3.7,-2.27l2.87,0.3l2.62,1.67l0.56,-0.14l1.82,-3.2l3.13,-0.94l4.44,-0.69l7.53,-0.26l1.48,0.67l7.19,-1.06l10.8,0.79ZM203.85,57.54l0.01,0.42l1.97,2.97l0.68,-0.02l2.24,-3.72l5.95,-1.86l4.01,4.64l-0.35,2.91l0.5,0.43l4.95,-1.36l2.32,-1.8l5.31,2.28l3.27,2.11l0.3,1.84l0.48,0.33l4.42,-0.99l2.64,2.87l5.97,1.77l2.06,1.72l2.11,3.71l-4.19,1.86l-0.01,0.73l5.9,2.83l3.94,0.94l3.78,3.95l3.46,0.25l-0.63,2.37l-4.11,4.47l-2.76,-1.56l-3.9,-3.94l-3.59,0.41l-0.33,0.34l-0.19,2.72l2.63,2.38l3.42,1.89l0.94,0.97l1.55,3.75l-0.7,2.29l-2.74,-0.92l-6.25,-3.15l-0.51,0.13l0.05,0.52l6.07,5.69l0.18,0.59l-6.09,-1.39l-5.31,-2.24l-2.63,-1.66l0.6,-0.77l-0.12,-0.6l-7.39,-4.01l-0.59,0.37l0.03,0.79l-6.73,0.6l-1.69,-1.1l1.36,-2.46l4.51,-0.07l5.15,-0.52l0.31,-0.6l-0.74,-1.3l0.78,-1.84l3.21,-4.05l-0.67,-2.35l-1.11,-1.6l-3.84,-2.1l-4.35,-1.28l0.91,-0.63l0.06,-0.61l-2.65,-2.75l-2.34,-0.36l-1.89,-1.46l-0.53,0.03l-1.24,1.23l-4.36,0.55l-9.04,-0.99l-9.26,-1.98l-1.6,-1.22l2.22,-1.77l0.13,-0.44l-0.38,-0.27l-3.22,-0.02l-0.72,-4.25l1.83,-4.04l2.42,-1.85l5.5,-1.1l-1.39,2.35ZM261.19,159.33l2.07,0.61l1.44,-0.04l-1.15,0.63l-2.94,-1.23l-0.4,-0.68l0.36,-0.37l0.61,1.07ZM230.83,84.39l-2.37,0.18l-0.49,-1.63l0.93,-2.09l1.94,-0.51l1.62,0.99l0.02,1.52l-1.66,1.54ZM229.43,58.25l0.11,0.65l-4.87,-0.21l-2.72,0.62l-3.1,-2.57l0.08,-1.26l0.86,-0.23l5.57,0.51l4.08,2.5ZM222.0,105.02l-0.72,1.49l-0.63,-0.19l-0.48,-0.84l0.81,-0.99l0.65,0.05l0.37,0.46ZM183.74,38.32l2.9,1.7l4.79,-0.01l1.84,1.46l-0.49,1.68l0.23,0.48l2.82,1.14l1.76,1.26l7.01,0.65l4.1,-1.1l5.03,-0.43l3.93,0.35l2.48,1.77l0.46,1.7l-1.3,1.1l-3.56,1.01l-3.23,-0.59l-7.17,0.76l-5.09,0.09l-3.99,-0.6l-6.42,-1.54l-0.79,-2.51l-0.3,-2.49l-2.64,-2.5l-5.32,-0.72l-2.52,-1.4l0.68,-1.57l4.78,0.31ZM207.38,91.35l0.4,1.56l0.56,0.26l1.06,-0.52l1.32,0.96l5.42,2.57l0.2,1.68l0.46,0.35l1.68,-0.28l1.15,0.85l-1.55,0.87l-3.61,-0.88l-1.32,-1.69l-0.57,-0.06l-2.45,2.1l-3.12,1.79l-0.7,-1.87l-0.42,-0.26l-2.16,0.24l1.39,-1.39l0.32,-3.14l0.76,-3.35l1.18,0.22ZM215.49,102.6l-2.67,1.95l-1.4,-0.07l-0.3,-0.58l1.53,-1.48l2.84,0.18ZM202.7,24.12l2.53,1.59l-2.87,1.4l-4.53,4.05l-4.25,0.38l-5.03,-0.68l-2.45,-2.04l0.03,-1.62l1.82,-1.37l0.14,-0.45l-0.38,-0.27l-4.45,0.04l-2.59,-1.76l-1.41,-2.29l1.57,-2.32l1.62,-1.66l2.44,-0.39l0.25,-0.65l-0.6,-0.74l4.86,-0.25l3.24,3.11l8.16,2.3l1.9,3.61ZM187.47,59.2l-2.76,3.49l-2.38,-0.15l-1.44,-3.84l0.04,-2.2l1.19,-1.88l2.3,-1.23l5.07,0.17l4.11,1.02l-3.24,3.72l-2.88,0.89ZM186.07,48.79l-1.08,1.53l-3.34,-0.34l-2.56,-1.1l1.03,-1.75l3.25,-1.23l1.95,1.58l0.75,1.3ZM185.71,35.32l-5.3,-0.2l-0.32,-0.71l4.31,0.07l1.3,0.84ZM180.68,32.48l-3.34,1.0l-1.79,-1.1l-0.98,-1.87l-0.15,-1.73l4.1,0.53l2.67,1.7l-0.51,1.47ZM180.9,76.31l-1.1,1.08l-3.13,-1.23l-2.12,0.43l-2.71,-1.57l1.72,-1.09l1.55,-1.72l3.81,1.9l1.98,2.2ZM169.74,54.87l2.96,0.97l4.17,-0.57l0.41,0.88l-2.14,2.11l0.09,0.64l3.55,1.92l-0.4,3.72l-3.79,1.65l-2.17,-0.35l-1.72,-1.74l-6.02,-3.5l0.03,-0.85l4.68,0.54l0.4,-0.21l-0.05,-0.45l-2.48,-2.81l2.46,-1.95ZM174.45,40.74l1.37,1.73l0.07,2.44l-1.05,3.45l-3.79,0.47l-2.32,-0.69l0.05,-2.64l-0.44,-0.41l-3.68,0.35l-0.12,-3.1l2.45,0.1l3.67,-1.73l3.41,0.29l0.37,-0.26ZM170.05,31.55l0.67,1.56l-3.33,-0.49l-4.22,-1.77l-4.35,-0.16l1.4,-0.94l-0.06,-0.7l-2.81,-1.23l-0.12,-1.39l4.39,0.68l6.62,1.98l1.81,2.47ZM134.5,58.13l-1.02,1.82l0.45,0.58l5.4,-1.39l3.33,2.29l0.49,-0.03l2.6,-2.23l1.94,1.32l2.0,4.5l0.7,0.06l1.3,-2.29l-1.63,-4.46l1.69,-0.54l2.31,0.71l2.65,1.81l2.49,7.92l8.48,4.27l-0.19,1.35l-3.79,0.33l-0.26,0.67l1.4,1.49l-0.58,1.1l-4.23,-0.64l-4.43,-1.19l-3.0,0.28l-4.66,1.47l-10.52,1.04l-1.43,-2.02l-3.42,-1.2l-2.21,0.43l-2.51,-2.86l4.84,-1.05l3.6,0.19l3.27,-0.78l0.31,-0.39l-0.31,-0.39l-4.84,-1.06l-8.79,0.27l-0.85,-1.07l5.26,-1.66l0.27,-0.45l-0.4,-0.34l-3.8,0.06l-3.81,-1.06l1.81,-3.01l1.66,-1.79l6.48,-2.81l1.97,0.71ZM158.7,56.61l-1.7,2.44l-3.2,-2.75l0.37,-0.3l3.11,-0.18l1.42,0.79ZM149.61,42.73l1.01,1.89l0.5,0.18l2.14,-0.82l2.23,0.19l0.36,2.04l-1.33,2.09l-8.28,0.76l-6.35,2.15l-3.41,0.1l-0.19,-0.96l4.9,-2.08l0.23,-0.46l-0.41,-0.31l-11.25,0.59l-2.89,-0.74l3.04,-4.44l2.14,-1.32l6.81,1.69l4.58,3.06l4.37,0.39l0.36,-0.63l-3.36,-4.6l1.85,-1.53l2.18,0.51l0.77,2.26ZM144.76,34.41l-4.36,1.44l-3.0,-1.4l1.46,-1.24l3.47,-0.52l2.96,0.71l-0.52,1.01ZM145.13,29.83l-1.9,0.66l-3.67,-0.0l2.27,-1.61l3.3,0.95ZM118.92,65.79l-6.03,2.02l-1.33,-1.9l-5.38,-2.28l2.59,-5.05l2.16,-3.14l-0.02,-0.48l-1.97,-2.41l7.64,-0.7l3.6,1.02l6.3,0.27l4.42,2.95l-2.53,0.98l-6.24,3.43l-3.1,3.28l-0.11,2.01ZM129.54,35.53l-0.28,3.37l-1.72,1.62l-2.33,0.28l-4.61,2.19l-3.86,0.76l-2.64,-0.87l3.72,-3.4l5.01,-3.34l3.72,0.07l3.0,-0.67ZM111.09,152.69l-0.67,0.24l-3.85,-1.37l-0.83,-1.17l-2.12,-1.07l-0.66,-1.02l-2.4,-0.55l-0.74,-1.71l6.02,1.45l2.0,2.55l2.52,1.39l0.73,1.27ZM87.8,134.64l0.89,0.29l1.86,-0.21l-0.65,3.34l1.69,2.33l-1.31,-1.33l-0.99,-1.62l-1.17,-0.98l-0.33,-1.82Z",
                name: "Canada"
            },
            CG: {
                path: "M466.72,276.48l-0.1,1.03l-1.25,2.97l-0.19,3.62l-0.46,1.78l-0.23,0.63l-1.61,1.19l-1.21,1.39l-1.09,2.43l0.04,2.09l-3.25,3.24l-0.5,-0.24l-0.5,-0.83l-1.36,-0.02l-0.98,0.89l-1.68,-0.99l-1.54,1.24l-1.52,-1.96l1.57,-1.14l0.11,-0.52l-0.77,-1.35l2.1,-0.66l0.39,-0.73l1.05,0.82l2.21,0.11l1.12,-1.37l0.37,-1.81l-0.27,-2.09l-1.13,-1.5l1.0,-2.69l-0.13,-0.45l-0.92,-0.58l-1.6,0.17l-0.51,-0.94l0.1,-0.61l2.75,0.09l3.97,1.24l0.51,-0.33l0.17,-1.28l1.24,-2.21l1.28,-1.14l2.76,0.49Z",
                name: "Congo"
            },
            CF: {
                path: "M461.16,278.2l-0.26,-1.19l-1.09,-0.77l-0.84,-1.17l-0.29,-1.0l-1.04,-1.15l0.08,-3.43l0.58,-0.49l1.16,-2.35l1.85,-0.17l0.61,-0.62l0.97,0.58l3.15,-0.96l2.48,-1.92l0.02,-0.96l2.81,0.02l2.36,-1.17l1.93,-2.85l1.16,-0.93l1.11,-0.3l0.27,0.86l1.34,1.47l-0.39,2.01l0.3,1.01l4.01,2.75l0.17,0.93l2.63,2.31l0.6,1.44l2.08,1.4l-3.84,-0.21l-1.94,0.88l-1.23,-0.49l-2.67,1.2l-1.29,-0.18l-0.51,0.36l-0.6,1.22l-3.35,-0.65l-1.57,-0.91l-2.42,-0.83l-1.45,0.91l-0.97,1.27l-0.26,1.56l-3.22,-0.43l-1.49,1.33l-0.94,1.62Z",
                name: "Central African Rep."
            },
            CD: {
                path: "M487.01,272.38l2.34,-0.14l1.35,1.84l1.34,0.45l0.86,-0.39l1.21,0.12l1.07,-0.41l0.54,0.89l2.04,1.54l-0.14,2.72l0.7,0.54l-1.38,1.13l-1.53,2.54l-0.17,2.05l-0.59,1.08l-0.02,1.72l-0.72,0.84l-0.66,3.01l0.63,1.32l-0.44,4.26l0.64,1.47l-0.37,1.22l0.86,1.8l1.53,1.41l0.3,1.26l0.44,0.5l-4.08,0.75l-0.92,1.81l0.51,1.34l-0.74,5.43l0.17,0.38l2.45,1.46l0.54,-0.1l0.12,1.62l-1.28,-0.01l-1.85,-2.35l-1.94,-0.45l-0.48,-1.13l-0.55,-0.2l-1.41,0.74l-1.71,-0.3l-1.01,-1.18l-2.49,-0.19l-0.44,-0.77l-1.98,-0.21l-2.88,0.36l0.11,-2.41l-0.85,-1.13l-0.16,-1.36l0.32,-1.73l-0.46,-0.89l-0.04,-1.49l-0.4,-0.39l-2.53,0.02l0.1,-0.41l-0.39,-0.49l-1.28,0.01l-0.43,0.45l-1.62,0.32l-0.83,1.79l-1.09,-0.28l-2.4,0.52l-1.37,-1.91l-1.3,-3.3l-0.38,-0.27l-7.39,-0.03l-2.46,0.42l0.5,-0.45l0.37,-1.47l0.66,-0.38l0.92,0.08l0.73,-0.82l0.87,0.02l0.31,0.68l1.4,0.36l3.59,-3.63l0.01,-2.23l1.02,-2.29l2.69,-2.39l0.43,-0.99l0.49,-1.96l0.17,-3.51l1.25,-2.95l0.36,-3.14l0.86,-1.13l1.1,-0.66l3.57,1.73l3.65,0.73l0.46,-0.21l0.8,-1.46l1.24,0.19l2.61,-1.17l0.81,0.44l1.04,-0.03l0.59,-0.66l0.7,-0.16l1.81,0.25Z",
                name: "Dem. Rep. Congo"
            },
            CZ: {
                path: "M458.46,144.88l1.22,1.01l1.47,0.23l0.13,0.93l1.36,0.68l0.54,-0.2l0.24,-0.55l1.15,0.25l0.53,1.09l1.68,0.18l0.6,0.84l-1.04,0.73l-0.96,1.28l-1.6,0.17l-0.55,0.56l-1.04,-0.46l-1.05,0.15l-2.12,-0.96l-1.05,0.34l-1.2,1.12l-1.56,-0.87l-2.57,-2.1l-0.53,-1.88l4.7,-2.52l0.71,0.26l0.9,-0.28Z",
                name: "Czech Rep."
            },
            CY: {
                path: "M504.36,193.47l0.43,0.28l-1.28,0.57l-0.92,-0.28l-0.24,-0.46l2.01,-0.13Z",
                name: "Cyprus"
            },
            CR: {
                path: "M211.34,258.05l0.48,0.99l1.6,1.6l-0.54,0.45l0.29,1.42l-0.25,1.19l-1.09,-0.59l-0.05,-1.25l-2.46,-1.42l-0.28,-0.77l-0.66,-0.45l-0.45,-0.0l-0.11,1.04l-1.32,-0.95l0.31,-1.3l-0.36,-0.6l0.31,-0.27l1.42,0.58l1.29,-0.14l0.56,0.56l0.74,0.17l0.55,-0.27Z",
                name: "Costa Rica"
            },
            CU: {
                path: "M221.21,227.25l1.27,1.02l2.19,-0.28l4.43,3.33l2.08,0.43l-0.1,0.38l0.36,0.5l1.75,0.1l1.48,0.84l-3.11,0.51l-4.15,-0.03l0.77,-0.67l-0.04,-0.64l-1.2,-0.74l-1.49,-0.16l-0.7,-0.61l-0.56,-1.4l-0.4,-0.25l-1.34,0.1l-2.2,-0.66l-0.88,-0.58l-3.18,-0.4l-0.27,-0.16l0.58,-0.74l-0.36,-0.29l-2.72,-0.05l-1.7,1.29l-0.91,0.03l-0.61,0.69l-1.01,0.22l1.11,-1.29l1.01,-0.52l3.69,-1.01l3.98,0.21l2.21,0.84Z",
                name: "Cuba"
            },
            SZ: {
                path: "M500.35,351.36l0.5,2.04l-0.38,0.89l-1.05,0.21l-1.23,-1.2l-0.02,-0.64l0.83,-1.57l1.34,0.27Z",
                name: "Swaziland"
            },
            SY: {
                path: "M511.0,199.79l0.05,-1.33l0.54,-1.36l1.28,-0.99l0.13,-0.45l-0.41,-1.11l-1.14,-0.36l-0.19,-1.74l0.52,-1.0l1.29,-1.21l0.2,-1.18l0.59,0.23l2.62,-0.76l1.36,0.52l2.06,-0.01l2.95,-1.08l3.25,-0.26l-0.67,0.94l-1.28,0.66l-0.21,0.4l0.23,2.01l-0.88,3.19l-10.15,5.73l-2.15,-0.85Z",
                name: "Syria"
            },
            KG: {
                path: "M621.35,172.32l-3.87,1.69l-0.96,1.18l-3.04,0.34l-1.13,1.86l-2.36,-0.35l-1.99,0.63l-2.39,1.4l0.06,0.95l-0.4,0.37l-4.52,0.43l-3.02,-0.93l-2.37,0.17l0.11,-0.79l2.32,0.42l1.13,-0.88l1.99,0.2l3.21,-2.14l-0.03,-0.69l-2.97,-1.57l-1.94,0.65l-1.22,-0.74l1.71,-1.58l-0.12,-0.67l-0.36,-0.15l0.32,-0.77l1.36,-0.35l4.02,1.02l0.49,-0.3l0.35,-1.59l1.09,-0.48l3.42,1.22l1.11,-0.31l7.64,0.39l1.16,1.0l1.23,0.39Z",
                name: "Kyrgyzstan"
            },
            KE: {
                path: "M506.26,284.69l1.87,-2.56l0.93,-2.15l-1.38,-4.08l-1.06,-1.6l2.82,-2.75l0.79,0.26l0.12,1.41l0.86,0.83l1.9,0.11l3.28,2.13l3.57,0.44l1.05,-1.12l1.96,-0.9l0.82,0.68l1.16,0.09l-1.78,2.45l0.03,9.12l1.3,1.94l-1.37,0.78l-0.67,1.03l-1.08,0.46l-0.34,1.67l-0.81,1.07l-0.45,1.55l-0.68,0.56l-3.2,-2.23l-0.35,-1.58l-8.86,-4.98l0.14,-1.6l-0.57,-1.04Z",
                name: "Kenya"
            },
            SS: {
                path: "M481.71,263.34l1.07,-0.72l1.2,-3.18l1.36,-0.26l1.61,1.99l0.87,0.34l1.1,-0.41l1.5,0.07l0.57,0.53l2.49,0.0l0.44,-0.63l1.07,-0.4l0.45,-0.84l0.59,-0.33l1.9,1.33l1.6,-0.2l2.83,-3.33l-0.32,-2.21l1.59,-0.52l-0.24,1.6l0.3,1.83l1.35,1.18l0.2,1.87l0.35,0.41l0.02,1.53l-0.23,0.47l-1.42,0.25l-0.85,1.44l0.3,0.6l1.4,0.16l1.11,1.08l0.59,1.13l1.03,0.53l1.28,2.36l-4.41,3.98l-1.74,0.01l-1.89,0.55l-1.47,-0.52l-1.15,0.57l-2.96,-2.62l-1.3,0.49l-1.06,-0.15l-0.79,0.39l-0.82,-0.22l-1.8,-2.7l-1.91,-1.1l-0.66,-1.5l-2.62,-2.32l-0.18,-0.94l-2.37,-1.6Z",
                name: "S. Sudan"
            },
            SR: {
                path: "M283.12,270.19l2.1,0.53l-1.08,1.95l0.2,1.72l0.93,1.49l-0.59,2.03l-0.43,0.71l-1.12,-0.42l-1.32,0.22l-0.93,-0.2l-0.46,0.26l-0.25,0.73l0.33,0.7l-0.89,-0.13l-1.39,-1.97l-0.31,-1.34l-0.97,-0.31l-0.89,-1.47l0.35,-1.61l1.45,-0.82l0.33,-1.87l2.61,0.44l0.57,-0.47l1.75,-0.16Z",
                name: "Suriname"
            },
            KH: {
                path: "M689.52,249.39l0.49,1.45l-0.28,2.74l-4.0,1.86l-0.16,0.6l0.68,0.95l-2.06,0.17l-2.05,0.97l-1.82,-0.32l-2.12,-3.7l-0.55,-2.85l1.4,-1.85l3.02,-0.45l2.23,0.35l2.01,0.98l0.51,-0.14l0.95,-1.48l1.74,0.74Z",
                name: "Cambodia"
            },
            SV: {
                path: "M195.8,250.13l1.4,-1.19l2.24,1.45l0.98,-0.27l0.44,0.2l-0.27,1.05l-1.14,-0.03l-3.64,-1.21Z",
                name: "El Salvador"
            },
            SK: {
                path: "M476.82,151.17l-1.14,1.9l-2.73,-0.92l-0.82,0.2l-0.74,0.8l-3.46,0.73l-0.47,0.69l-1.76,0.33l-1.88,-1.0l-0.18,-0.81l0.38,-0.75l1.87,-0.32l1.74,-1.89l0.83,0.16l0.79,-0.34l1.51,1.04l1.34,-0.63l1.25,0.3l1.65,-0.42l1.81,0.95Z",
                name: "Slovakia"
            },
            KR: {
                path: "M737.51,185.84l0.98,-0.1l0.87,-1.17l2.69,-0.32l0.33,-0.29l1.76,2.79l0.58,1.76l0.02,3.12l-0.8,1.32l-2.21,0.55l-1.93,1.13l-1.8,0.19l-0.2,-1.1l0.43,-2.28l-0.95,-2.56l1.43,-0.37l0.23,-0.62l-1.43,-2.06Z",
                name: "Korea"
            },
            SI: {
                path: "M456.18,162.07l-0.51,-1.32l0.18,-1.05l1.69,0.2l1.42,-0.71l2.09,-0.07l0.62,-0.51l0.21,0.47l-1.61,0.67l-0.44,1.34l-0.66,0.24l-0.26,0.82l-1.22,-0.49l-0.84,0.46l-0.69,-0.04Z",
                name: "Slovenia"
            },
            KP: {
                path: "M736.77,185.16l-0.92,-0.42l-0.88,0.62l-1.21,-0.88l0.96,-1.15l0.59,-2.59l-0.46,-0.74l-2.09,-0.77l1.64,-1.52l2.72,-1.58l1.58,-1.91l1.11,0.78l2.17,0.11l0.41,-0.5l-0.3,-1.22l3.52,-1.18l0.94,-1.4l0.98,1.08l-2.19,2.18l0.01,2.14l-1.06,0.54l-1.41,1.4l-1.7,0.52l-1.25,1.09l-0.14,1.98l0.94,0.45l1.15,1.04l-0.13,0.26l-2.6,0.29l-1.13,1.29l-1.22,0.08Z",
                name: "Dem. Rep. Korea"
            },
            SO: {
                path: "M525.13,288.48l-1.13,-1.57l-0.03,-8.86l2.66,-3.38l1.67,-0.13l2.13,-1.69l3.41,-0.23l7.08,-7.55l2.91,-3.69l0.08,-4.82l2.98,-0.67l1.24,-0.86l0.45,-0.0l-0.2,3.0l-1.21,3.62l-2.73,5.97l-2.13,3.65l-5.03,6.16l-8.56,6.4l-2.78,3.08l-0.8,1.56Z",
                name: "Somalia"
            },
            SN: {
                path: "M390.09,248.21l0.12,1.55l0.49,1.46l0.96,0.82l0.05,1.28l-1.26,-0.19l-0.75,0.33l-1.84,-0.61l-5.84,-0.13l-2.54,0.51l-0.22,-1.03l1.77,0.04l2.01,-0.91l1.03,0.48l1.09,0.04l1.29,-0.62l0.14,-0.58l-0.51,-0.74l-1.81,0.25l-1.13,-0.63l-0.79,0.04l-0.72,0.61l-2.31,0.06l-0.92,-1.77l-0.81,-0.64l0.64,-0.35l2.46,-3.74l1.04,0.19l1.38,-0.56l1.19,-0.02l2.72,1.37l3.03,3.48Z",
                name: "Senegal"
            },
            SL: {
                path: "M394.46,264.11l-1.73,1.98l-0.58,1.33l-2.07,-1.06l-1.22,-1.26l-0.65,-2.39l1.16,-0.96l0.67,-1.17l1.21,-0.52l1.66,0.0l1.03,1.64l0.52,2.41Z",
                name: "Sierra Leone"
            },
            SB: {
                path: "M826.69,311.6l-0.61,0.09l-0.2,-0.33l0.37,0.15l0.44,0.09ZM824.18,307.38l-0.26,-0.3l-0.31,-0.91l0.03,0.0l0.54,1.21ZM823.04,309.33l-1.66,-0.22l-0.2,-0.52l1.16,0.28l0.69,0.46ZM819.28,304.68l1.14,0.65l0.02,0.03l-0.81,-0.44l-0.35,-0.23Z",
                name: "Solomon Is."
            },
            SA: {
                path: "M537.53,210.34l2.0,0.24l0.9,1.32l1.49,-0.06l0.87,2.08l1.29,0.76l0.51,0.99l1.56,1.03l-0.1,1.9l0.32,0.9l1.58,2.47l0.76,0.53l0.7,-0.04l1.68,4.23l7.53,1.33l0.51,-0.29l0.77,1.25l-1.55,4.87l-7.29,2.52l-7.3,1.03l-2.34,1.17l-1.88,2.74l-0.76,0.28l-0.82,-0.78l-0.91,0.12l-2.88,-0.51l-3.51,0.25l-0.86,-0.56l-0.57,0.15l-0.66,1.27l0.16,1.11l-0.43,0.32l-0.93,-1.4l-0.33,-1.16l-1.23,-0.88l-1.27,-2.06l-0.78,-2.22l-1.73,-1.79l-1.14,-0.48l-1.54,-2.31l-0.21,-3.41l-1.44,-2.93l-1.27,-1.16l-1.33,-0.57l-1.31,-3.37l-0.77,-0.67l-0.97,-1.97l-2.8,-4.03l-1.06,-0.17l0.37,-1.96l0.2,-0.72l2.74,0.3l1.08,-0.84l0.6,-0.94l1.74,-0.35l0.65,-1.03l0.71,-0.4l0.1,-0.62l-2.06,-2.28l4.39,-1.22l0.48,-0.37l2.77,0.69l3.66,1.9l7.03,5.5l4.87,0.3Z",
                name: "Saudi Arabia"
            },
            SE: {
                path: "M480.22,89.3l-4.03,1.17l-2.43,2.86l0.26,2.57l-8.77,6.64l-1.78,5.79l1.78,2.68l2.22,1.96l-2.07,3.77l-2.72,1.13l-0.95,6.04l-1.29,3.01l-2.74,-0.31l-0.4,0.22l-1.31,2.59l-2.34,0.13l-0.75,-3.09l-2.08,-4.03l-1.83,-4.96l1.0,-1.93l2.14,-2.7l0.83,-4.45l-1.6,-2.17l-0.15,-4.94l1.48,-3.39l2.58,-0.15l0.87,-1.59l-0.78,-1.57l3.76,-5.59l4.04,-7.48l2.17,0.01l0.39,-0.29l0.57,-2.07l4.37,0.64l0.46,-0.34l0.33,-2.56l1.1,-0.13l6.94,4.87l0.06,6.32l0.66,1.36Z",
                name: "Sweden"
            },
            SD: {
                path: "M505.98,259.4l-0.34,-0.77l-1.17,-0.9l-0.26,-1.61l0.29,-1.81l-0.34,-0.46l-1.16,-0.17l-0.54,0.59l-1.23,0.11l-0.28,0.65l0.53,0.65l0.17,1.22l-2.44,3.0l-0.96,0.19l-2.39,-1.4l-0.95,0.52l-0.38,0.78l-1.11,0.41l-0.29,0.5l-1.94,0.0l-0.54,-0.52l-1.81,-0.09l-0.95,0.4l-2.45,-2.35l-2.07,0.54l-0.73,1.26l-0.6,2.1l-1.25,0.58l-0.75,-0.62l0.27,-2.65l-1.48,-1.78l-0.22,-1.48l-0.92,-0.96l-0.02,-1.29l-0.57,-1.16l-0.68,-0.16l0.69,-1.29l-0.18,-1.14l0.65,-0.62l0.03,-0.55l-0.36,-0.41l1.55,-2.97l1.91,0.16l0.43,-0.4l-0.1,-10.94l2.49,-0.01l0.4,-0.4l-0.0,-4.82l29.02,0.0l0.64,2.04l-0.49,0.66l0.36,2.69l0.93,3.16l2.12,1.55l-0.89,1.04l-1.72,0.39l-0.98,0.9l-1.43,5.65l0.24,1.15l-0.38,2.06l-0.96,2.38l-1.53,1.31l-1.32,2.91l-1.22,0.86l-0.37,1.34Z",
                name: "Sudan"
            },
            DO: {
                path: "M241.8,239.2l0.05,-0.65l-0.46,-0.73l0.42,-0.44l0.19,-1.0l-0.09,-1.53l1.66,0.01l1.99,0.63l0.33,0.67l1.28,0.19l0.33,0.76l1.0,0.08l0.8,0.62l-0.45,0.51l-1.13,-0.47l-1.88,-0.01l-1.27,0.59l-0.75,-0.55l-1.01,0.54l-0.79,1.4l-0.23,-0.61Z",
                name: "Dominican Rep."
            },
            DJ: {
                path: "M528.43,256.18l-0.45,0.66l-0.58,-0.25l-1.51,0.13l-0.18,-1.01l1.45,-1.95l0.83,0.17l0.77,-0.44l0.2,1.0l-1.2,0.51l-0.06,0.7l0.73,0.47Z",
                name: "Djibouti"
            },
            DK: {
                path: "M452.28,129.07l-1.19,2.24l-2.13,-1.6l-0.23,-0.95l2.98,-0.95l0.57,1.26ZM447.74,126.31l-0.26,0.57l-0.88,-0.07l-1.8,2.53l0.48,1.69l-1.09,0.36l-1.61,-0.39l-0.89,-1.69l-0.07,-3.43l0.96,-1.73l2.02,-0.2l1.09,-1.07l1.33,-0.67l-0.05,1.06l-0.73,1.41l0.3,1.0l1.2,0.64Z",
                name: "Denmark"
            },
            DE: {
                path: "M453.14,155.55l-0.55,-0.36l-1.2,-0.1l-1.87,0.57l-2.13,-0.13l-0.56,0.63l-0.86,-0.6l-0.96,0.09l-2.57,-0.93l-0.85,0.67l-1.47,-0.02l0.24,-1.75l1.23,-2.14l-0.28,-0.59l-3.52,-0.58l-0.92,-0.66l0.12,-1.2l-0.48,-0.88l0.27,-2.17l-0.37,-3.03l1.41,-0.22l0.63,-1.26l0.66,-3.19l-0.41,-1.18l0.26,-0.39l1.66,-0.15l0.33,0.54l0.62,0.07l1.7,-1.69l-0.54,-3.02l1.37,0.33l1.31,-0.37l0.31,1.18l2.25,0.71l-0.02,0.92l0.5,0.4l2.55,-0.65l1.34,-0.87l2.57,1.24l1.06,0.98l0.48,1.44l-0.57,0.74l-0.0,0.48l0.87,1.15l0.57,1.64l-0.14,1.29l0.82,1.7l-1.5,-0.07l-0.56,0.57l-4.47,2.15l-0.22,0.54l0.68,2.26l2.58,2.16l-0.66,1.11l-0.79,0.36l-0.23,0.43l0.32,1.87Z",
                name: "Germany"
            },
            YE: {
                path: "M528.27,246.72l0.26,-0.42l-0.22,-1.01l0.19,-1.5l0.92,-0.69l-0.07,-1.35l0.39,-0.75l1.01,0.47l3.34,-0.27l3.76,0.41l0.95,0.81l1.36,-0.58l1.74,-2.62l2.18,-1.09l6.86,-0.94l2.48,5.41l-1.64,0.76l-0.56,1.9l-6.23,2.16l-2.29,1.8l-1.93,0.05l-1.41,1.02l-4.24,0.74l-1.72,1.49l-3.28,0.19l-0.52,-1.18l0.02,-1.51l-1.34,-3.29Z",
                name: "Yemen"
            },
            AT: {
                path: "M462.89,152.8l0.04,2.25l-1.07,0.0l-0.33,0.63l0.36,0.51l-1.04,2.13l-2.02,0.07l-1.33,0.7l-5.29,-0.99l-0.47,-0.93l-0.44,-0.21l-2.47,0.55l-0.42,0.51l-3.18,-0.81l0.43,-0.91l1.12,0.78l0.6,-0.17l0.25,-0.58l1.93,0.12l1.86,-0.56l1.0,0.08l0.68,0.57l0.62,-0.15l0.26,-0.77l-0.3,-1.78l0.8,-0.44l0.68,-1.15l1.52,0.85l0.47,-0.06l1.34,-1.25l0.64,-0.17l1.81,0.92l1.28,-0.11l0.7,0.37Z",
                name: "Austria"
            },
            DZ: {
                path: "M441.46,188.44l-0.32,1.07l0.39,2.64l-0.54,2.16l-1.58,1.82l0.37,2.39l1.91,1.55l0.18,0.8l1.42,1.03l1.84,7.23l0.12,1.16l-0.57,5.0l0.2,1.51l-0.87,0.99l-0.02,0.51l1.41,1.86l0.14,1.2l0.89,1.48l0.5,0.16l0.98,-0.41l1.73,1.08l0.82,1.23l-8.22,4.81l-7.23,5.11l-3.43,1.13l-2.3,0.21l-0.28,-1.59l-2.56,-1.09l-0.67,-1.25l-26.12,-17.86l0.01,-3.47l3.77,-1.88l2.44,-0.41l2.12,-0.75l1.08,-1.42l2.81,-1.05l0.35,-2.08l1.33,-0.29l1.04,-0.94l3.47,-0.69l0.46,-1.08l-0.1,-0.45l-0.58,-0.52l-0.82,-2.81l-0.19,-1.83l-0.78,-1.49l2.03,-1.31l2.63,-0.48l1.7,-1.22l2.31,-0.84l8.24,-0.73l1.49,0.38l2.28,-1.1l2.46,-0.02l0.92,0.6l1.35,-0.05Z",
                name: "Algeria"
            },
            US: {
                path: "M892.72,99.2l1.31,0.53l1.41,-0.37l1.89,0.98l1.89,0.42l-1.32,0.58l-2.9,-1.53l-2.08,0.22l-0.26,-0.15l0.07,-0.67ZM183.22,150.47l0.37,1.47l1.12,0.85l4.23,0.7l2.39,0.98l2.17,-0.38l1.85,0.5l-1.55,0.65l-3.49,2.61l-0.16,0.77l0.5,0.39l2.33,-0.61l1.77,1.02l5.15,-2.4l-0.31,0.65l0.25,0.56l1.36,0.38l1.71,1.16l4.7,-0.88l0.67,0.85l1.31,0.21l0.58,0.58l-1.34,0.17l-2.18,-0.32l-3.6,0.89l-2.71,3.25l0.35,0.9l0.59,-0.0l0.55,-0.6l-1.36,4.65l0.29,3.09l0.67,1.58l0.61,0.45l1.77,-0.44l1.6,-1.96l0.14,-2.21l-0.82,-1.96l0.11,-1.13l1.19,-2.37l0.44,-0.33l0.48,0.75l0.4,-0.29l0.4,-1.37l0.6,-0.47l0.24,-0.8l1.69,0.49l1.65,1.08l-0.03,2.37l-1.27,1.13l-0.0,1.13l0.87,0.36l1.66,-1.29l0.5,0.17l0.5,2.6l-2.49,3.75l0.17,0.61l1.54,0.62l1.48,0.17l1.92,-0.44l4.72,-2.15l2.16,-1.8l-0.05,-1.24l0.75,-0.22l3.92,0.36l2.12,-1.05l0.21,-0.4l-0.28,-1.48l3.27,-2.4l8.32,-0.02l0.56,-0.82l1.9,-0.77l0.93,-1.51l0.74,-2.37l1.58,-1.98l0.92,0.62l1.47,-0.47l0.8,0.66l-0.0,4.09l1.96,2.6l-2.34,1.31l-5.37,2.09l-1.83,2.72l0.02,1.79l0.83,1.59l0.54,0.23l-6.19,0.94l-2.2,0.89l-0.23,0.48l0.45,0.29l2.99,-0.46l-2.19,0.56l-1.13,0.0l-0.15,-0.32l-0.48,0.08l-0.76,0.82l0.22,0.67l0.32,0.06l-0.41,1.62l-1.27,1.58l-1.48,-1.07l-0.49,-0.04l-0.16,0.46l0.52,1.58l0.61,0.59l0.03,0.79l-0.95,1.38l-1.21,-1.22l-0.27,-2.27l-0.35,-0.35l-0.42,0.25l-0.48,1.27l0.33,1.41l-0.97,-0.27l-0.48,0.24l0.18,0.5l1.52,0.83l0.1,2.52l0.79,0.51l0.52,3.42l-1.42,1.88l-2.47,0.8l-1.71,1.66l-1.31,0.25l-1.27,1.03l-0.43,0.99l-2.69,1.78l-2.64,3.03l-0.45,2.12l0.45,2.08l0.85,2.38l1.09,1.9l0.04,1.2l1.16,3.06l-0.18,2.69l-0.55,1.43l-0.47,0.21l-0.89,-0.23l-0.49,-1.18l-0.87,-0.56l-2.75,-5.16l0.48,-1.68l-0.72,-1.78l-2.01,-2.38l-1.12,-0.53l-2.72,1.18l-1.47,-1.35l-1.57,-0.68l-2.99,0.31l-2.17,-0.3l-2.0,0.19l-1.15,0.46l-0.19,0.58l0.39,0.63l0.14,1.34l-0.84,-0.2l-0.84,0.46l-1.58,-0.07l-2.08,-1.44l-2.09,0.33l-1.91,-0.62l-3.73,0.84l-2.39,2.07l-2.54,1.22l-1.45,1.41l-0.61,1.38l0.34,3.71l-0.29,0.02l-3.5,-1.33l-1.25,-3.11l-1.44,-1.5l-2.24,-3.56l-1.76,-1.09l-2.27,-0.01l-1.71,2.07l-1.76,-0.69l-1.16,-0.74l-1.52,-2.98l-3.93,-3.16l-4.34,-0.0l-0.4,0.4l-0.0,0.74l-6.5,0.02l-9.02,-3.14l-0.34,-0.71l-5.7,0.49l-0.43,-1.29l-1.62,-1.61l-1.14,-0.38l-0.55,-0.88l-1.28,-0.13l-1.01,-0.77l-2.22,-0.27l-0.43,-0.3l-0.36,-1.58l-2.4,-2.83l-2.01,-3.85l-0.06,-0.9l-2.92,-3.26l-0.33,-2.29l-1.3,-1.66l0.52,-2.37l-0.09,-2.57l-0.78,-2.3l0.95,-2.82l0.61,-5.68l-0.47,-4.27l-1.46,-4.08l3.19,0.79l1.26,2.83l0.69,0.08l0.69,-1.14l-1.1,-4.79l68.76,-0.0l0.4,-0.4l0.14,-0.86ZM32.44,67.52l1.73,1.97l0.55,0.05l0.99,-0.79l3.65,0.24l-0.09,0.62l0.32,0.45l3.83,0.77l2.61,-0.43l5.19,1.4l4.84,0.43l1.89,0.57l3.42,-0.7l6.14,1.87l-0.03,38.06l0.38,0.4l2.39,0.11l2.31,0.98l3.9,3.99l0.55,0.04l2.4,-2.03l2.16,-1.04l1.2,1.71l3.95,3.14l4.09,6.63l4.2,2.29l0.06,1.83l-1.02,1.23l-1.16,-1.08l-2.04,-1.03l-0.67,-2.89l-3.28,-3.03l-1.65,-3.57l-6.35,-0.32l-2.82,-1.01l-5.26,-3.85l-6.77,-2.04l-3.53,0.3l-4.81,-1.69l-3.25,-1.63l-2.78,0.8l-0.28,0.46l0.44,2.21l-3.91,0.96l-2.26,1.27l-2.3,0.65l-0.27,-1.65l1.05,-3.42l2.49,-1.09l0.16,-0.6l-0.69,-0.96l-0.55,-0.1l-3.19,2.12l-1.78,2.56l-3.55,2.61l-0.04,0.61l1.56,1.52l-2.07,2.29l-5.11,2.57l-0.77,1.66l-3.76,1.77l-0.92,1.73l-2.69,1.38l-1.81,-0.22l-6.95,3.32l-3.97,0.91l4.85,-2.5l2.59,-1.86l3.26,-0.52l1.19,-1.4l3.42,-2.1l2.59,-2.27l0.42,-2.68l1.23,-2.1l-0.04,-0.46l-0.45,-0.11l-2.68,1.03l-0.63,-0.49l-0.53,0.03l-1.05,1.04l-1.36,-1.54l-0.66,0.08l-0.32,0.62l-0.58,-1.14l-0.56,-0.16l-2.41,1.42l-1.07,-0.0l-0.17,-1.75l0.3,-1.71l-1.61,-1.33l-3.41,0.59l-1.96,-1.63l-1.57,-0.84l-0.15,-2.21l-1.7,-1.43l0.82,-1.88l1.99,-2.12l0.88,-1.92l1.71,-0.24l2.04,0.51l1.87,-1.77l1.91,0.25l1.91,-1.23l0.17,-0.43l-0.47,-1.82l-1.07,-0.7l1.39,-1.17l0.12,-0.45l-0.39,-0.26l-1.65,0.07l-2.66,0.88l-0.75,0.78l-1.92,-0.8l-3.46,0.44l-3.44,-0.91l-1.06,-1.61l-2.65,-1.99l2.91,-1.43l5.5,-2.0l1.52,0.0l-0.26,1.62l0.41,0.46l5.29,-0.16l0.3,-0.65l-2.03,-2.59l-3.14,-1.68l-1.79,-2.12l-2.4,-1.83l-3.09,-1.24l1.04,-1.69l4.23,-0.14l3.36,-2.07l0.73,-2.27l2.39,-1.99l2.42,-0.52l4.65,-1.97l2.46,0.23l3.71,-2.35l3.5,0.89ZM37.6,123.41l-2.25,1.23l-0.95,-0.69l-0.29,-1.24l3.21,-1.63l1.42,0.21l0.67,0.7l-1.8,1.42ZM31.06,234.03l0.98,0.47l0.74,0.87l-1.77,1.07l-0.44,-1.53l0.49,-0.89ZM29.34,232.07l0.18,0.05l0.08,0.05l-0.16,0.03l-0.11,-0.14ZM25.16,230.17l0.05,-0.03l0.18,0.22l-0.13,-0.01l-0.1,-0.18ZM5.89,113.26l-1.08,0.41l-2.21,-1.12l1.53,-0.4l1.62,0.28l0.14,0.83Z",
                name: "United States"
            },
            LV: {
                path: "M489.16,122.85l0.96,0.66l0.22,1.65l0.68,1.76l-3.65,1.7l-2.23,-1.58l-1.29,-0.26l-0.68,-0.77l-2.42,0.34l-4.16,-0.23l-2.47,0.9l0.06,-1.98l1.13,-2.06l1.95,-1.02l2.12,2.58l2.01,-0.07l0.38,-0.33l0.44,-2.52l1.76,-0.53l3.06,1.7l2.15,0.07Z",
                name: "Latvia"
            },
            UY: {
                path: "M286.85,372.74l-0.92,1.5l-2.59,1.44l-1.69,-0.52l-1.42,0.26l-2.39,-1.19l-1.52,0.08l-1.27,-1.3l0.16,-1.5l0.56,-0.79l-0.02,-2.73l1.21,-4.74l1.19,-0.21l2.37,2.0l1.08,0.03l4.36,3.17l1.22,1.6l-0.96,1.5l0.61,1.4Z",
                name: "Uruguay"
            },
            LB: {
                path: "M510.37,198.01l-0.88,0.51l1.82,-3.54l0.62,0.08l0.22,0.61l-1.13,0.88l-0.65,1.47Z",
                name: "Lebanon"
            },
            LA: {
                path: "M689.54,248.53l-1.76,-0.74l-0.49,0.15l-0.94,1.46l-1.32,-0.64l0.62,-0.98l0.11,-2.17l-2.04,-2.42l-0.25,-2.65l-1.9,-2.1l-2.15,-0.31l-0.78,0.91l-1.12,0.06l-1.05,-0.4l-2.06,1.2l-0.04,-1.59l0.61,-2.68l-0.36,-0.49l-1.35,-0.1l-0.11,-1.23l-0.96,-0.88l1.96,-1.89l0.39,0.36l1.33,0.07l0.42,-0.45l-0.34,-2.66l0.7,-0.21l1.28,1.81l1.11,2.35l0.36,0.23l2.82,0.02l0.71,1.67l-1.39,0.65l-0.72,0.93l0.13,0.6l2.91,1.51l3.6,5.25l1.88,1.78l0.56,1.62l-0.35,1.96Z",
                name: "Lao PDR"
            },
            TW: {
                path: "M724.01,226.68l-0.74,1.48l-0.9,-1.52l-0.25,-1.74l1.38,-2.44l1.73,-1.74l0.64,0.44l-1.85,5.52Z",
                name: "Taiwan"
            },
            TT: {
                path: "M266.64,259.32l0.28,-1.16l1.13,-0.22l-0.06,1.2l-1.35,0.18Z",
                name: "Trinidad and Tobago"
            },
            TR: {
                path: "M513.21,175.47l3.64,1.17l3.05,-0.44l2.1,0.26l3.11,-1.56l2.46,-0.13l2.19,1.33l0.33,0.82l-0.22,1.33l0.25,0.44l2.28,1.13l-1.17,0.57l-0.21,0.45l0.75,3.2l-0.41,1.16l1.13,1.92l-0.55,0.22l-0.9,-0.67l-2.91,-0.37l-1.24,0.46l-4.23,0.41l-2.81,1.05l-1.91,0.01l-1.52,-0.53l-2.58,0.75l-0.66,-0.45l-0.62,0.3l-0.12,1.45l-0.89,0.84l-0.47,-0.67l0.79,-1.3l-0.41,-0.2l-1.43,0.23l-2.0,-0.63l-2.02,1.65l-3.51,0.3l-2.13,-1.53l-2.7,-0.1l-0.86,1.24l-1.38,0.27l-2.29,-1.44l-2.71,-0.01l-1.37,-2.65l-1.68,-1.52l1.07,-1.99l-0.09,-0.49l-1.27,-1.12l2.37,-2.41l3.7,-0.11l1.28,-2.24l4.49,0.37l3.21,-1.97l2.81,-0.82l3.99,-0.06l4.29,2.07ZM488.79,176.72l-1.72,1.31l-0.5,-0.88l1.37,-2.57l-0.7,-0.85l1.7,-0.63l1.8,0.34l0.46,1.17l1.76,0.78l-2.87,0.32l-1.3,1.01Z",
                name: "Turkey"
            },
            LK: {
                path: "M624.16,268.99l-1.82,0.48l-0.99,-1.67l-0.42,-3.46l0.95,-3.43l1.21,0.98l2.26,4.19l-0.34,2.33l-0.85,0.58Z",
                name: "Sri Lanka"
            },
            TN: {
                path: "M448.1,188.24l-1.0,1.27l-0.02,1.32l0.84,0.88l-0.28,2.09l-1.53,1.32l-0.12,0.42l0.48,1.54l1.42,0.32l0.53,1.11l0.9,0.52l-0.11,1.67l-3.54,2.64l-0.1,2.38l-0.58,0.3l-0.96,-4.45l-1.54,-1.25l-0.16,-0.78l-1.92,-1.56l-0.18,-1.76l1.51,-1.62l0.59,-2.34l-0.38,-2.78l0.42,-1.21l2.45,-1.05l1.29,0.26l-0.06,1.11l0.58,0.38l1.47,-0.73Z",
                name: "Tunisia"
            },
            TL: {
                path: "M734.55,307.93l-0.1,-0.97l4.5,-0.86l-2.82,1.28l-1.59,0.55Z",
                name: "Timor-Leste"
            },
            TM: {
                path: "M553.03,173.76l-0.04,0.34l-0.09,-0.22l0.13,-0.12ZM555.87,172.66l0.45,-0.1l1.48,0.74l2.06,2.43l4.07,-0.18l0.38,-0.51l-0.32,-1.19l1.92,-0.94l1.91,-1.59l2.94,1.39l0.43,2.47l1.19,0.67l2.58,-0.13l0.62,0.4l1.32,3.12l4.54,3.44l2.67,1.45l3.06,1.14l-0.04,1.05l-1.33,-0.75l-0.59,0.19l-0.32,0.84l-2.2,0.81l-0.46,2.13l-1.21,0.74l-1.91,0.42l-0.73,1.33l-1.56,0.31l-2.22,-0.94l-0.2,-2.17l-0.38,-0.36l-1.73,-0.09l-2.76,-2.46l-2.14,-0.4l-2.84,-1.48l-1.78,-0.27l-1.24,0.53l-1.57,-0.08l-2.0,1.69l-1.7,0.43l-0.36,-1.58l0.36,-2.98l-0.22,-0.4l-1.65,-0.84l0.54,-1.69l-0.34,-0.52l-1.22,-0.13l0.36,-1.64l2.22,0.59l2.2,-0.95l0.12,-0.65l-1.77,-1.74l-0.66,-1.57Z",
                name: "Turkmenistan"
            },
            TJ: {
                path: "M597.75,178.82l-2.54,-0.44l-0.47,0.34l-0.24,1.7l0.43,0.45l2.64,-0.22l3.18,0.95l4.39,-0.41l0.56,2.37l0.52,0.29l0.67,-0.24l1.11,0.49l0.21,2.13l-3.76,-0.21l-1.8,1.32l-1.76,0.74l-0.61,-0.58l0.21,-2.23l-0.64,-0.49l-0.07,-0.93l-1.36,-0.66l-0.45,0.07l-1.08,1.01l-0.55,1.48l-1.31,-0.05l-0.95,1.16l-0.9,-0.35l-1.86,0.74l1.26,-2.83l-0.54,-2.17l-1.67,-0.82l0.33,-0.66l2.18,-0.04l1.19,-1.63l0.76,-1.79l2.43,-0.5l-0.26,1.0l0.73,1.05Z",
                name: "Tajikistan"
            },
            LS: {
                path: "M491.06,363.48l-0.49,0.15l-1.49,-1.67l1.1,-1.43l2.19,-1.44l1.51,1.27l-0.98,1.82l-1.23,0.38l-0.62,0.93Z",
                name: "Lesotho"
            },
            TH: {
                path: "M670.27,255.86l-1.41,3.87l0.15,2.0l0.38,0.36l1.38,0.07l0.9,2.04l0.55,2.34l1.4,1.44l1.61,0.38l0.96,0.97l-0.5,0.64l-1.1,0.2l-0.34,-1.18l-2.04,-1.1l-0.63,0.23l-0.63,-0.62l-0.48,-1.3l-2.56,-2.63l-0.73,0.41l0.95,-3.89l2.16,-4.22ZM670.67,254.77l-0.92,-2.18l-0.26,-2.61l-2.14,-3.06l0.71,-0.49l0.89,-2.59l-3.61,-5.45l0.87,-0.51l1.05,-2.58l1.74,-0.18l2.6,-1.59l0.76,0.56l0.13,1.39l0.37,0.36l1.23,0.09l-0.51,2.28l0.05,2.42l0.6,0.34l2.43,-1.42l0.77,0.39l1.47,-0.07l0.71,-0.88l1.48,0.14l1.71,1.88l0.25,2.65l1.92,2.11l-0.1,1.89l-0.61,0.86l-2.22,-0.33l-3.5,0.64l-1.6,2.12l0.36,2.58l-1.51,-0.79l-1.84,-0.01l0.28,-1.52l-0.4,-0.47l-2.21,0.01l-0.4,0.37l-0.19,2.74l-0.34,0.93Z",
                name: "Thailand"
            },
            TF: {
                path: "M596.68,420.38l-3.2,0.18l-0.05,-1.26l0.39,-1.41l1.3,0.78l2.08,0.35l-0.52,1.36Z",
                name: "Fr. S. Antarctic Lands"
            },
            TG: {
                path: "M422.7,257.63l-0.09,1.23l1.53,1.52l0.08,1.09l0.5,0.65l-0.11,5.62l0.49,1.47l-1.31,0.35l-1.02,-2.13l-0.18,-1.12l0.53,-2.19l-0.63,-1.16l-0.22,-3.68l-1.01,-1.4l0.07,-0.28l1.37,0.03Z",
                name: "Togo"
            },
            TD: {
                path: "M480.25,235.49l0.12,9.57l-2.1,0.05l-1.14,1.89l-0.69,1.63l0.34,0.73l-0.66,0.91l0.24,0.89l-0.86,1.95l0.45,0.5l0.6,-0.1l0.34,0.64l0.03,1.38l0.9,1.04l-1.45,0.43l-1.27,1.03l-1.83,2.76l-2.16,1.07l-2.31,-0.15l-0.86,0.25l-0.26,0.49l0.17,0.61l-2.11,1.68l-2.85,0.87l-1.09,-0.57l-0.73,0.66l-1.12,0.1l-1.1,-3.12l-1.25,-0.64l-1.22,-1.22l0.29,-0.64l3.01,0.04l0.35,-0.6l-1.3,-2.2l-0.08,-3.31l-0.97,-1.66l0.22,-1.04l-0.38,-0.48l-1.22,-0.04l0.0,-1.25l-0.98,-1.07l0.96,-3.01l3.25,-2.65l0.13,-3.33l0.95,-5.18l0.52,-1.07l-0.1,-0.48l-0.91,-0.78l-0.2,-0.96l-0.8,-0.58l-0.55,-3.65l2.1,-1.2l19.57,9.83Z",
                name: "Chad"
            },
            LY: {
                path: "M483.48,203.15l-0.75,1.1l0.29,1.39l-0.6,1.83l0.73,2.14l0.0,24.12l-2.48,0.01l-0.41,0.85l-19.41,-9.76l-4.41,2.28l-1.37,-1.33l-3.82,-1.1l-1.14,-1.65l-1.98,-1.23l-1.22,0.32l-0.66,-1.11l-0.17,-1.26l-1.28,-1.69l0.87,-1.19l-0.07,-4.34l0.43,-2.27l-0.86,-3.45l1.13,-0.76l0.22,-1.16l-0.2,-1.03l3.48,-2.61l0.29,-1.94l2.45,0.8l1.18,-0.21l1.98,0.44l3.15,1.18l1.37,2.54l5.72,1.67l2.64,1.35l1.61,-0.72l1.29,-1.34l-0.44,-2.34l0.66,-1.13l1.67,-1.21l1.57,-0.35l3.14,0.53l1.08,1.28l3.99,0.78l0.36,0.54Z",
                name: "Libya"
            },
            AE: {
                path: "M550.76,223.97l1.88,-0.4l3.84,0.02l4.78,-4.75l0.19,0.36l0.26,1.58l-0.81,0.01l-0.39,0.35l-0.08,2.04l-0.81,0.63l-0.01,0.96l-0.66,0.99l-0.39,1.41l-7.08,-1.25l-0.7,-1.96Z",
                name: "United Arab Emirates"
            },
            VE: {
                path: "M240.68,256.69l0.53,0.75l-0.02,1.06l-1.07,1.78l0.95,2.0l0.42,0.22l1.4,-0.44l0.56,-1.83l-0.77,-1.17l-0.1,-1.47l2.82,-0.93l0.26,-0.49l-0.28,-0.96l0.3,-0.28l0.66,1.31l1.96,0.26l1.4,1.22l0.08,0.68l0.39,0.35l4.81,-0.22l1.49,1.11l1.92,0.31l1.67,-0.84l0.22,-0.6l3.44,-0.14l-0.17,0.55l0.86,1.19l2.19,0.35l1.67,1.1l0.37,1.86l0.41,0.32l1.55,0.17l-1.66,1.35l-0.22,0.92l0.65,0.97l-1.67,0.54l-0.3,0.4l0.04,0.99l-0.56,0.57l-0.01,0.55l1.85,2.27l-0.66,0.69l-4.47,1.29l-0.72,0.54l-3.69,-0.9l-0.71,0.27l-0.02,0.7l0.91,0.53l-0.08,1.54l0.35,1.58l0.35,0.31l1.66,0.17l-1.3,0.52l-0.48,1.13l-2.68,0.91l-0.6,0.77l-1.57,0.13l-1.17,-1.13l-0.8,-2.52l-1.25,-1.26l1.02,-1.23l-1.29,-2.95l0.18,-1.62l1.0,-2.21l-0.2,-0.49l-1.14,-0.46l-4.02,0.36l-1.82,-2.1l-1.57,-0.33l-2.99,0.22l-1.06,-0.97l0.25,-1.23l-0.2,-1.01l-0.59,-0.69l-0.29,-1.06l-1.08,-0.39l0.78,-2.79l1.9,-2.11Z",
                name: "Venezuela"
            },
            AF: {
                path: "M600.7,188.88l-1.57,1.3l-0.1,0.48l0.8,2.31l-1.09,1.04l-0.03,1.27l-0.48,0.71l-2.16,-0.08l-0.37,0.59l0.78,1.48l-1.38,0.69l-1.06,1.69l0.06,1.7l-0.65,0.52l-0.91,-0.21l-1.91,0.36l-0.48,0.77l-1.88,0.13l-1.4,1.56l-0.18,2.32l-2.91,1.02l-1.65,-0.23l-0.71,0.55l-1.41,-0.3l-2.41,0.39l-3.52,-1.17l1.96,-2.35l-0.21,-1.78l-0.3,-0.34l-1.63,-0.4l-0.19,-1.58l-0.75,-2.03l0.95,-1.36l-0.19,-0.6l-0.73,-0.28l1.47,-4.8l2.14,0.9l2.12,-0.36l0.74,-1.34l1.77,-0.39l1.54,-0.92l0.63,-2.31l1.87,-0.5l0.49,-0.81l0.94,0.56l2.13,0.11l2.55,0.92l1.95,-0.83l0.65,0.43l0.56,-0.13l0.69,-1.12l1.57,-0.08l0.72,-1.66l0.79,-0.74l0.8,0.39l-0.17,0.56l0.71,0.58l-0.08,2.39l1.11,0.95ZM601.37,188.71l1.73,-0.71l1.43,-1.18l4.03,0.35l-2.23,0.74l-4.95,0.8Z",
                name: "Afghanistan"
            },
            IQ: {
                path: "M530.82,187.47l0.79,0.66l1.26,-0.28l1.46,3.08l1.63,0.94l0.14,1.23l-1.22,1.05l-0.53,2.52l1.73,2.67l3.12,1.62l1.15,1.88l-0.38,1.85l0.39,0.48l0.41,-0.0l0.02,1.07l0.76,0.94l-2.47,-0.1l-1.71,2.44l-4.31,-0.2l-7.02,-5.48l-3.73,-1.94l-2.88,-0.73l-0.85,-2.87l5.45,-3.02l0.95,-3.43l-0.19,-1.96l1.27,-0.7l1.22,-1.7l0.87,-0.36l2.69,0.34Z",
                name: "Iraq"
            },
            IS: {
                path: "M384.14,88.06l-0.37,2.61l2.54,2.51l-2.9,2.75l-9.19,3.4l-9.25,-1.66l1.7,-1.22l-0.1,-0.7l-4.05,-1.47l2.96,-0.53l0.33,-0.43l-0.11,-1.2l-0.33,-0.36l-4.67,-0.85l1.28,-2.04l3.45,-0.56l3.77,2.72l0.44,0.02l3.64,-2.16l3.3,1.08l3.98,-2.16l3.58,0.26Z",
                name: "Iceland"
            },
            IR: {
                path: "M533.43,187.16l-1.27,-2.15l0.42,-0.98l-0.71,-3.04l1.03,-0.5l0.33,0.83l1.26,1.35l2.05,0.51l1.11,-0.16l2.89,-2.11l0.62,-0.14l0.39,0.46l-0.72,1.2l0.06,0.49l1.56,1.53l0.65,0.04l0.67,1.81l2.56,0.83l1.87,1.48l3.69,0.49l3.91,-0.76l0.47,-0.73l2.17,-0.6l1.66,-1.54l1.51,0.08l1.18,-0.53l1.59,0.24l2.83,1.48l1.88,0.3l2.77,2.47l1.77,0.18l0.18,1.99l-1.68,5.49l0.24,0.5l0.61,0.23l-0.82,1.48l0.8,2.18l0.19,1.71l0.3,0.34l1.63,0.4l0.15,1.32l-2.15,2.35l-0.01,0.53l2.21,3.03l2.34,1.24l0.06,2.14l1.24,0.72l0.11,0.69l-3.31,1.27l-1.08,3.03l-9.68,-1.68l-0.99,-3.05l-1.43,-0.73l-2.17,0.46l-2.47,1.26l-2.83,-0.82l-2.46,-2.02l-2.41,-0.8l-3.42,-6.06l-0.48,-0.2l-1.18,0.39l-1.44,-0.82l-0.5,0.08l-0.65,0.74l-0.97,-1.01l-0.02,-1.31l-0.71,-0.39l0.26,-1.81l-1.29,-2.11l-3.13,-1.63l-1.58,-2.43l0.5,-1.9l1.31,-1.26l-0.19,-1.66l-1.74,-1.1l-1.57,-3.3Z",
                name: "Iran"
            },
            AM: {
                path: "M536.99,182.33l-0.28,0.03l-1.23,-2.13l-0.93,0.01l-0.62,-0.66l-0.69,-0.07l-0.96,-0.81l-1.56,-0.62l0.19,-1.12l-0.26,-0.79l2.72,-0.36l1.09,1.01l-0.17,0.92l1.02,0.78l-0.47,0.62l0.08,0.56l2.04,1.23l0.04,1.4Z",
                name: "Armenia"
            },
            IT: {
                path: "M451.59,158.63l3.48,0.94l-0.21,1.17l0.3,0.83l-1.49,-0.24l-2.04,1.1l-0.21,0.39l0.13,1.45l-0.25,1.12l0.82,1.57l2.39,1.63l1.31,2.54l2.79,2.43l2.05,0.08l0.21,0.23l-0.39,0.33l0.09,0.67l4.05,1.97l2.17,1.76l-0.16,0.36l-1.17,-1.08l-2.18,-0.49l-0.44,0.2l-1.05,1.91l0.14,0.54l1.57,0.95l-0.19,0.98l-1.06,0.33l-1.25,2.34l-0.37,0.08l0.0,-0.33l1.0,-2.45l-1.73,-3.17l-1.12,-0.51l-0.88,-1.33l-1.51,-0.51l-1.27,-1.25l-1.75,-0.18l-4.12,-3.21l-1.62,-1.65l-1.03,-3.19l-3.53,-1.36l-1.3,0.51l-1.69,1.41l0.16,-0.72l-0.28,-0.47l-1.14,-0.33l-0.53,-1.96l0.72,-0.78l0.04,-0.48l-0.65,-1.17l0.8,0.39l1.4,-0.23l1.11,-0.84l0.52,0.35l1.19,-0.1l0.75,-1.2l1.53,0.33l1.36,-0.56l0.35,-1.14l1.08,0.32l0.68,-0.64l1.98,-0.44l0.42,0.82ZM459.19,184.75l-0.65,1.65l0.32,1.05l-0.31,0.89l-1.5,-0.85l-4.5,-1.67l0.19,-0.82l2.67,0.23l3.78,-0.48ZM443.93,176.05l1.18,1.66l-0.3,3.32l-1.06,-0.01l-0.77,0.73l-0.53,-0.44l-0.1,-3.37l-0.39,-1.22l1.04,0.01l0.92,-0.68Z",
                name: "Italy"
            },
            VN: {
                path: "M690.56,230.25l-2.7,1.82l-2.09,2.46l-0.63,1.95l4.31,6.45l2.32,1.65l1.43,1.94l1.11,4.59l-0.32,4.24l-1.93,1.54l-2.84,1.61l-2.11,2.15l-2.73,2.06l-0.59,-1.05l0.63,-1.53l-0.13,-0.47l-1.34,-1.04l1.51,-0.71l2.55,-0.18l0.3,-0.63l-0.82,-1.14l4.0,-2.07l0.31,-3.05l-0.57,-1.77l0.42,-2.66l-0.73,-1.97l-1.86,-1.76l-3.63,-5.29l-2.72,-1.46l0.36,-0.47l1.5,-0.64l0.21,-0.52l-0.97,-2.27l-0.37,-0.24l-2.83,-0.02l-2.24,-3.9l0.83,-0.4l4.39,-0.29l2.06,-1.31l1.15,0.89l1.88,0.4l-0.17,1.51l1.35,1.16l1.67,0.45Z",
                name: "Vietnam"
            },
            AR: {
                path: "M249.29,428.93l-2.33,-0.52l-5.83,-0.43l-0.89,-1.66l0.05,-2.37l-0.45,-0.4l-1.43,0.18l-0.67,-0.91l-0.2,-3.13l1.88,-1.47l0.79,-2.04l-0.25,-1.7l1.3,-2.68l0.91,-4.15l-0.22,-1.69l0.85,-0.45l0.2,-0.44l-0.27,-1.16l-0.98,-0.68l0.59,-0.92l-0.05,-0.5l-1.04,-1.07l-0.52,-3.1l0.97,-0.86l-0.42,-3.58l1.2,-5.43l1.38,-0.98l0.16,-0.43l-0.75,-2.79l-0.01,-2.43l1.78,-1.75l0.06,-2.57l1.43,-2.85l0.01,-2.58l-0.69,-0.74l-1.09,-4.52l1.47,-2.7l-0.18,-2.79l0.85,-2.35l1.59,-2.46l1.73,-1.64l0.05,-0.52l-0.6,-0.84l0.44,-0.85l-0.07,-4.19l2.7,-1.44l0.86,-2.75l-0.21,-0.71l1.76,-2.01l2.9,0.57l1.38,1.78l0.68,-0.08l0.87,-1.87l2.39,0.09l4.95,4.77l2.17,0.49l3.0,1.92l2.47,1.0l0.25,0.82l-2.37,3.93l0.23,0.59l5.39,1.16l2.12,-0.44l2.45,-2.16l0.5,-2.38l0.76,-0.31l0.98,1.2l-0.04,1.8l-3.67,2.51l-2.85,2.66l-3.43,3.88l-1.3,5.07l0.01,2.72l-0.54,0.73l-0.36,3.28l3.14,2.64l-0.16,2.11l1.4,1.11l-0.1,1.09l-2.29,3.52l-3.55,1.49l-4.92,0.6l-2.71,-0.29l-0.43,0.51l0.5,1.65l-0.49,2.1l0.38,1.42l-1.19,0.83l-2.36,0.38l-2.3,-1.04l-1.38,0.83l0.41,3.64l1.69,0.91l1.4,-0.71l0.36,0.76l-2.04,0.86l-2.01,1.89l-0.97,4.63l-2.34,0.1l-2.09,1.78l-0.61,2.75l2.46,2.31l2.17,0.63l-0.7,2.32l-2.83,1.73l-1.73,3.86l-2.17,1.22l-1.16,1.67l0.75,3.76l1.04,1.28ZM256.71,438.88l-2.0,0.15l-1.4,-1.22l-3.82,-0.1l-0.0,-5.83l1.6,3.05l3.26,2.07l3.08,0.78l-0.71,1.1Z",
                name: "Argentina"
            },
            AU: {
                path: "M705.8,353.26l0.26,0.04l0.17,-0.47l-0.48,-1.42l0.92,1.11l0.45,0.15l0.27,-0.39l-0.1,-1.56l-1.98,-3.63l1.09,-3.31l-0.24,-1.57l0.34,-0.62l0.38,1.06l0.43,-0.19l0.99,-1.7l1.91,-0.83l1.29,-1.15l1.81,-0.91l0.96,-0.17l0.92,0.26l1.92,-0.95l1.47,-0.28l1.03,-0.8l1.43,0.04l2.78,-0.84l1.36,-1.15l0.71,-1.45l1.41,-1.26l0.3,-2.58l1.27,-1.59l0.78,1.65l0.54,0.19l1.07,-0.51l0.15,-0.6l-0.73,-1.0l0.45,-0.71l0.78,0.39l0.58,-0.3l0.28,-1.82l1.87,-2.14l1.12,-0.39l0.28,-0.58l0.62,0.17l0.53,-0.73l1.87,-0.57l1.65,1.05l1.35,1.48l3.39,0.38l0.43,-0.54l-0.46,-1.23l1.05,-1.79l1.04,-0.61l0.14,-0.55l-0.25,-0.41l0.88,-1.17l1.31,-0.77l1.3,0.27l2.1,-0.48l0.31,-0.4l-0.05,-1.3l-0.92,-0.77l1.48,0.56l1.41,1.07l2.11,0.65l0.81,-0.2l1.4,0.7l1.69,-0.66l0.8,0.19l0.64,-0.33l0.71,0.77l-1.33,1.94l-0.71,0.07l-0.35,0.51l0.24,0.86l-1.52,2.35l0.12,1.05l2.15,1.65l1.97,0.85l3.04,2.36l1.97,0.65l0.55,0.88l2.72,0.85l1.84,-1.1l2.07,-5.97l-0.42,-3.59l0.3,-1.73l0.47,-0.87l-0.31,-0.68l1.09,-3.28l0.46,-0.47l0.4,0.71l0.16,1.51l0.65,0.52l0.16,1.04l0.85,1.21l0.12,2.38l0.9,2.0l0.57,0.18l1.3,-0.78l1.69,1.7l-0.2,1.08l0.53,2.2l0.39,1.3l0.68,0.48l0.6,1.95l-0.19,1.48l0.81,1.76l6.01,3.69l-0.11,0.76l1.38,1.58l0.95,2.77l0.58,0.22l0.72,-0.41l0.8,0.9l0.61,0.01l0.46,2.41l4.81,4.71l0.66,2.02l-0.07,3.31l1.14,2.2l-0.13,2.24l-1.1,3.68l0.03,1.64l-0.47,1.89l-1.05,2.4l-1.9,1.47l-1.72,3.51l-2.38,6.09l-0.24,2.82l-1.14,0.8l-2.85,0.15l-2.31,1.19l-2.51,2.25l-3.09,-1.57l0.3,-1.15l-0.54,-0.47l-1.5,0.63l-2.01,1.94l-7.12,-2.18l-1.48,-1.63l-1.14,-3.74l-1.45,-1.26l-1.81,-0.26l0.56,-1.18l-0.61,-2.1l-0.72,-0.1l-1.14,1.82l-0.9,0.21l0.63,-0.82l0.36,-1.55l0.92,-1.31l-0.13,-2.34l-0.7,-0.22l-2.0,2.34l-1.51,0.93l-0.94,2.01l-1.35,-0.81l-0.02,-1.52l-1.57,-2.04l-1.09,-0.88l0.24,-0.33l-0.14,-0.59l-3.21,-1.69l-1.83,-0.12l-2.54,-1.35l-4.58,0.28l-6.02,1.9l-2.53,-0.13l-2.62,1.41l-2.13,0.63l-1.49,2.6l-3.49,0.31l-2.29,-0.5l-3.48,0.43l-1.6,1.47l-0.81,-0.04l-2.37,1.63l-3.26,-0.1l-3.72,-2.21l0.04,-1.05l1.19,-0.46l0.49,-0.89l0.21,-2.97l-0.28,-1.64l-1.34,-2.86l-0.38,-1.47l0.05,-1.72l-0.95,-1.7l-0.18,-0.97l-1.01,-0.99l-0.29,-1.98l-1.13,-1.75ZM784.92,393.44l2.65,1.02l3.23,-0.96l1.09,0.14l0.15,3.06l-0.85,1.13l-0.17,1.63l-0.87,-0.24l-1.57,1.91l-1.68,-0.18l-1.4,-2.36l-0.37,-2.04l-1.39,-2.51l0.04,-0.8l1.15,0.18Z",
                name: "Australia"
            },
            IL: {
                path: "M507.76,203.05l0.4,-0.78l0.18,0.4l-0.33,1.03l0.52,0.44l0.68,-0.22l-0.86,3.6l-1.16,-3.32l0.59,-0.74l-0.03,-0.41ZM508.73,200.34l0.37,-1.02l0.64,0.0l0.52,-0.51l-0.49,1.53l-0.56,-0.24l-0.48,0.23Z",
                name: "Israel"
            },
            IN: {
                path: "M623.34,207.03l-1.24,1.04l-0.97,2.55l0.22,0.51l8.04,3.87l3.42,0.37l1.57,1.38l4.92,0.88l2.18,-0.04l0.38,-0.3l0.29,-1.24l-0.32,-1.64l0.14,-0.87l0.82,-0.31l0.45,2.48l2.28,1.02l1.77,-0.38l4.14,0.1l0.38,-0.36l0.18,-1.66l-0.5,-0.65l1.37,-0.29l2.25,-1.99l2.7,-1.62l1.93,0.62l1.8,-0.98l0.79,1.14l-0.68,0.91l0.26,0.63l2.42,0.36l0.09,0.47l-0.83,0.75l0.13,1.07l-1.52,-0.29l-3.24,1.86l-0.13,1.78l-1.32,2.14l-0.18,1.39l-0.93,1.82l-1.64,-0.5l-0.52,0.37l-0.09,2.63l-0.56,1.11l0.19,0.81l-0.53,0.27l-1.18,-3.73l-1.08,-0.27l-0.38,0.31l-0.24,1.0l-0.66,-0.66l0.54,-1.06l1.22,-0.34l1.15,-2.25l-0.24,-0.56l-1.57,-0.47l-4.34,-0.28l-0.18,-1.56l-0.35,-0.35l-1.11,-0.12l-1.91,-1.12l-0.56,0.17l-0.88,1.82l0.11,0.49l1.36,1.07l-1.09,0.69l-0.69,1.11l0.18,0.56l1.24,0.57l-0.32,1.54l0.85,1.94l0.36,2.01l-0.22,0.59l-4.58,0.52l-0.33,0.42l0.13,1.8l-1.17,1.36l-3.65,1.81l-2.79,3.03l-4.32,3.28l-0.18,1.27l-4.65,1.79l-0.77,2.16l0.64,5.3l-1.06,2.49l-0.01,3.94l-1.24,0.28l-1.14,1.93l0.39,0.84l-1.68,0.53l-1.04,1.83l-0.65,0.47l-2.06,-2.05l-2.1,-6.02l-2.2,-3.64l-1.05,-4.75l-2.29,-3.57l-1.76,-8.2l0.01,-3.11l-0.49,-2.53l-0.55,-0.29l-3.53,1.52l-1.53,-0.27l-2.86,-2.77l0.85,-0.67l0.08,-0.55l-0.74,-1.03l-2.67,-2.06l1.24,-1.32l5.34,0.01l0.39,-0.49l-0.5,-2.29l-1.42,-1.46l-0.27,-1.93l-1.43,-1.2l2.31,-2.37l3.05,0.06l2.62,-2.85l1.6,-2.81l2.4,-2.73l0.07,-2.04l1.97,-1.48l-0.02,-0.65l-1.93,-1.31l-0.82,-1.78l-0.8,-2.21l0.9,-0.89l3.59,0.65l2.92,-0.42l2.33,-2.19l2.31,2.85l-0.24,2.13l0.99,1.59l-0.05,0.82l-1.34,-0.28l-0.47,0.48l0.7,3.06l2.62,1.99l2.99,1.65Z",
                name: "India"
            },
            TZ: {
                path: "M495.56,296.42l2.8,-3.12l-0.02,-0.81l-0.64,-1.3l0.68,-0.52l0.14,-1.47l-0.76,-1.25l0.31,-0.11l2.26,0.03l-0.51,2.76l0.76,1.3l0.5,0.12l1.05,-0.53l1.19,-0.12l0.61,0.24l1.43,-0.62l0.1,-0.67l-0.71,-0.62l1.57,-1.7l8.65,4.86l0.32,1.53l3.34,2.33l-1.05,2.8l0.13,1.61l1.63,1.12l-0.6,1.76l-0.01,2.33l1.89,4.03l0.57,0.43l-1.46,1.08l-2.61,0.94l-1.43,-0.04l-1.06,0.77l-2.29,0.36l-2.87,-0.68l-0.83,0.07l-0.63,-0.75l-0.31,-2.78l-1.32,-1.35l-3.25,-0.77l-3.96,-1.58l-1.18,-2.41l-0.32,-1.75l-1.76,-1.49l0.42,-1.05l-0.44,-0.89l0.08,-0.96l-0.46,-0.58l0.06,-0.56Z",
                name: "Tanzania"
            },
            AZ: {
                path: "M539.29,175.73l1.33,0.32l1.94,-1.8l2.3,3.34l1.43,0.43l-1.26,0.15l-0.35,0.32l-0.8,3.14l-0.99,0.96l0.05,1.11l-1.26,-1.13l0.7,-1.18l-0.04,-0.47l-0.74,-0.86l-1.48,0.15l-2.34,1.71l-0.03,-1.27l-2.03,-1.35l0.47,-0.62l-0.08,-0.56l-1.03,-0.79l0.29,-0.43l-0.14,-0.58l-1.13,-0.86l1.89,0.68l1.69,0.06l0.37,-0.87l-0.81,-1.37l0.42,0.06l1.63,1.72ZM533.78,180.57l0.61,0.46l0.69,-0.0l0.59,1.15l-0.68,-0.15l-1.21,-1.45Z",
                name: "Azerbaijan"
            },
            IE: {
                path: "M405.08,135.42l0.35,2.06l-1.75,2.78l-4.22,1.88l-2.84,-0.4l1.73,-3.0l-1.18,-3.53l4.6,-3.74l0.32,1.15l-0.49,1.74l0.4,0.51l1.47,-0.04l1.6,0.6Z",
                name: "Ireland"
            },
            ID: {
                path: "M756.47,287.89l0.69,4.01l2.79,1.78l0.51,-0.1l2.04,-2.59l2.71,-1.43l2.05,-0.0l3.9,1.73l2.46,0.45l0.08,15.12l-1.75,-1.54l-2.54,-0.51l-0.88,0.71l-2.32,0.06l0.69,-1.33l1.45,-0.64l0.23,-0.46l-0.65,-2.74l-1.24,-2.21l-5.04,-2.29l-2.09,-0.23l-3.68,-2.27l-0.55,0.13l-0.65,1.07l-0.52,0.12l-0.55,-1.89l-1.21,-0.78l1.84,-0.62l1.72,0.05l0.39,-0.52l-0.21,-0.66l-0.38,-0.28l-3.45,-0.0l-1.13,-1.48l-2.1,-0.43l-0.52,-0.6l2.69,-0.48l1.28,-0.78l3.66,0.94l0.3,0.71ZM757.91,300.34l-0.62,0.82l-0.1,-0.8l0.59,-1.12l0.13,1.1ZM747.38,292.98l0.34,0.72l-1.22,-0.57l-4.68,-0.1l0.27,-0.62l2.78,-0.09l2.52,0.67ZM741.05,285.25l-0.67,-2.88l0.64,-2.01l0.41,0.86l1.21,0.18l0.16,0.7l-0.1,1.68l-0.84,-0.16l-0.46,0.3l-0.34,1.34ZM739.05,293.5l-0.5,0.44l-1.34,-0.36l-0.17,-0.37l1.73,-0.08l0.27,0.36ZM721.45,284.51l-0.19,1.97l2.24,2.23l0.54,0.02l1.27,-1.07l2.75,-0.5l-0.9,1.21l-2.11,0.93l-0.16,0.6l2.22,3.01l-0.3,1.07l1.36,1.74l-2.26,0.85l-0.28,-0.31l0.12,-1.19l-1.64,-1.34l0.17,-2.23l-0.56,-0.39l-1.67,0.76l-0.23,0.39l0.3,6.17l-1.1,0.25l-0.69,-0.47l0.64,-2.21l-0.39,-2.42l-0.39,-0.34l-0.8,-0.01l-0.58,-1.29l0.98,-1.6l0.35,-1.96l1.32,-3.87ZM728.59,296.27l0.38,0.49l-0.02,1.28l-0.88,0.49l-0.53,-0.47l1.04,-1.79ZM729.04,286.98l0.27,-0.05l-0.02,0.13l-0.24,-0.08ZM721.68,284.05l0.16,-0.32l1.89,-1.65l1.83,0.68l3.16,0.35l2.94,-0.1l2.39,-1.66l-1.73,2.13l-1.66,0.43l-2.41,-0.48l-4.17,0.13l-2.39,0.51ZM730.55,310.47l1.11,-1.93l2.03,-0.82l0.08,0.62l-1.45,1.67l-1.77,0.46ZM728.12,305.88l-0.1,0.38l-3.46,0.66l-2.91,-0.27l-0.0,-0.25l1.54,-0.41l1.66,0.73l1.67,-0.19l1.61,-0.65ZM722.9,310.24l-0.64,0.03l-2.26,-1.2l1.11,-0.24l1.78,1.41ZM716.26,305.77l0.88,0.51l1.28,-0.17l0.2,0.35l-4.65,0.73l0.39,-0.67l1.15,-0.02l0.75,-0.73ZM711.66,293.84l-0.38,-0.16l-2.54,1.01l-1.12,-1.44l-1.69,-0.13l-1.16,-0.75l-3.04,0.77l-1.1,-1.15l-3.31,-0.11l-0.35,-3.05l-1.35,-0.95l-1.11,-1.98l-0.33,-2.06l0.27,-2.14l0.9,-1.01l0.37,1.15l2.09,1.49l1.53,-0.48l1.82,0.08l1.38,-1.19l1.0,-0.18l2.28,0.67l2.26,-0.53l1.52,-3.64l1.01,-0.99l0.78,-2.57l4.1,0.3l-1.11,1.77l0.02,0.46l1.7,2.2l-0.23,1.39l2.07,1.71l-2.33,0.42l-0.88,1.9l0.1,2.05l-2.4,1.9l-0.06,2.45l-0.7,2.79ZM692.58,302.03l0.35,0.26l4.8,0.25l0.78,-0.97l4.17,1.09l1.13,1.68l3.69,0.45l2.13,1.04l-1.8,0.6l-2.77,-0.99l-4.8,-0.12l-5.24,-1.41l-1.84,-0.25l-1.11,0.3l-4.26,-0.97l-0.7,-1.14l-1.59,-0.13l1.18,-1.65l2.74,0.13l2.87,1.13l0.26,0.68ZM685.53,299.17l-2.22,0.04l-2.06,-2.03l-3.15,-2.01l-2.93,-3.51l-3.11,-5.33l-2.2,-2.12l-1.64,-4.06l-2.32,-1.69l-1.27,-2.07l-1.96,-1.5l-2.51,-2.65l-0.11,-0.66l4.81,0.53l2.15,2.38l3.31,2.74l2.35,2.66l2.7,0.17l1.95,1.59l1.54,2.17l1.59,0.95l-0.84,1.71l0.15,0.52l1.44,0.87l0.79,0.1l0.4,1.58l0.87,1.4l1.96,0.39l1.0,1.31l-0.6,3.01l-0.09,3.5Z",
                name: "Indonesia"
            },
            UA: {
                path: "M492.5,162.44l1.28,-2.49l1.82,0.19l0.66,-0.23l0.09,-0.71l-0.25,-0.75l-0.79,-0.72l-0.33,-1.21l-0.86,-0.62l-0.02,-1.19l-1.13,-0.86l-1.15,-0.19l-2.04,-1.0l-1.66,0.32l-0.66,0.47l-0.92,-0.0l-0.84,0.78l-2.48,0.7l-1.18,-0.71l-3.07,-0.36l-0.89,0.43l-0.24,-0.55l-1.11,-0.7l0.35,-0.93l1.26,-1.02l-0.54,-1.23l2.04,-2.43l1.4,-0.62l0.25,-1.19l-1.04,-2.39l0.83,-0.13l1.28,-0.84l1.8,-0.07l2.47,0.26l2.86,0.81l1.88,0.06l0.86,0.44l1.04,-0.41l0.77,0.66l2.18,-0.15l0.92,0.3l0.52,-0.34l0.15,-1.53l0.56,-0.54l2.85,-0.05l0.84,-0.72l3.04,-0.18l1.23,1.46l-0.48,0.77l0.21,1.03l0.36,0.32l1.8,0.14l0.93,2.08l3.18,1.15l1.94,-0.45l1.67,1.49l1.4,-0.03l3.35,0.96l0.02,0.54l-0.96,1.59l0.47,1.97l-0.26,0.7l-2.36,0.28l-1.29,0.89l-0.23,1.38l-1.83,0.27l-1.58,0.97l-2.41,0.21l-2.16,1.17l-0.21,0.38l0.34,2.26l1.23,0.75l2.13,-0.08l-0.14,0.31l-2.65,0.53l-3.23,1.69l-0.87,-0.39l0.42,-1.1l-0.25,-0.52l-2.21,-0.73l2.35,-1.06l0.12,-0.65l-0.93,-0.82l-3.62,-0.74l-0.13,-0.89l-0.46,-0.34l-2.61,0.59l-0.91,1.69l-1.71,2.04l-0.86,-0.4l-1.62,0.27Z",
                name: "Ukraine"
            },
            QA: {
                path: "M549.33,221.64l-0.76,-0.23l-0.14,-1.64l0.84,-1.29l0.47,0.52l0.04,1.34l-0.45,1.3Z",
                name: "Qatar"
            },
            MZ: {
                path: "M508.58,318.75l-0.34,-2.57l0.51,-2.05l3.55,0.63l2.5,-0.38l1.02,-0.76l1.49,0.01l2.74,-0.98l1.66,-1.2l0.5,9.24l0.41,1.23l-0.68,1.67l-0.93,1.71l-1.5,1.5l-5.16,2.28l-2.78,2.73l-1.02,0.53l-1.71,1.8l-0.98,0.57l-0.35,2.41l1.16,1.94l0.49,2.17l0.43,0.31l-0.06,2.06l-0.39,1.17l0.5,0.72l-0.25,0.73l-0.92,0.83l-5.12,2.39l-1.22,1.36l0.21,1.13l0.58,0.39l-0.11,0.72l-1.22,-0.01l-0.73,-2.97l0.42,-3.09l-1.78,-5.37l2.49,-2.81l0.69,-1.89l0.44,-0.43l0.28,-1.53l-0.39,-0.93l0.59,-3.65l-0.01,-3.26l-1.49,-1.16l-1.2,-0.22l-1.74,-1.17l-1.92,0.01l-0.29,-2.08l7.06,-1.96l1.28,1.09l0.89,-0.1l0.67,0.44l0.1,0.73l-0.51,1.29l0.19,1.81l1.75,1.83l0.65,-0.13l0.71,-1.65l1.17,-0.86l-0.26,-3.47l-1.05,-1.85l-1.04,-0.94Z",
                name: "Mozambique"
            }
        },
        height: 440.70631074413296,
        projection: {
            type: "mill",
            centralMeridian: 11.5
        },
        width: 900
    })
}, function(t, e, i) {
    "use strict";
    (function(t) {
        var e;
        i(69), i(71), i(72), i(82), i(91), i(43), i(66), i(54), i(78), i(96), i(100), i(89), i(64), i(68), i(97), i(73), i(117), i(86), i(98), i(74);

        function n(t) {
            return (n = "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)
        }
        /*!
         * Date picker for pickadate.js v3.6.3
         * http://amsul.github.io/pickadate.js/date.htm
         */
        e = function(t, e) {
            var i, n = t._;

            function l(t, e) {
                var i, n = this,
                    l = t.$node[0],
                    o = l.value,
                    a = t.$node.data("value"),
                    r = a || o,
                    s = a ? e.formatSubmit : e.format,
                    c = function() {
                        return l.currentStyle ? "rtl" == l.currentStyle.direction : "rtl" == getComputedStyle(t.$root[0]).direction
                    };
                n.settings = e, n.$node = t.$node, n.queue = {
                    min: "measure create",
                    max: "measure create",
                    now: "now create",
                    select: "parse create validate",
                    highlight: "parse navigate create validate",
                    currentView: "toggleView",
                    view: "parse create validate viewset",
                    disable: "deactivate",
                    enable: "activate"
                }, n.item = {}, n.item.clear = null, n.item.disable = (e.disable || []).slice(0), n.item.enable = -(!0 === (i = n.item.disable)[0] ? i.shift() : -1), n.item.currentView = "days", n.item.currentVisibleMinYear, n.set("min", e.min).set("max", e.max).set("now"), r ? n.set("select", r, {
                    format: s,
                    defaultValue: !0
                }) : n.set("select", null).set("highlight", n.item.now), n.key = {
                    40: 7,
                    38: -7,
                    39: function() {
                        return c() ? -1 : 1
                    },
                    37: function() {
                        return c() ? 1 : -1
                    },
                    go: function(t) {
                        var e = n.item.highlight,
                            i = new Date(e.year, e.month, e.date + t);
                        n.set("highlight", i, {
                            interval: t
                        }), this.render()
                    }
                }, t.on("render", (function() {
                    var i = this.value;
                    i && (t.set("highlight", [i, t.get("view").month, t.get("highlight").date]), t.$root.find("." + e.klass.selectYear).trigger("focus"))
                }), 1).on("open", (function() {
                    var i = "";
                    n.disabled(n.get("now")) && (i = ":not(." + e.klass.buttonToday + ")"), t.$root.find("button" + i + ", select").attr("disabled", !1)
                }), 1).on("close", (function() {
                    t.$root.find("button, select").attr("disabled", !0)
                }), 1)
            }
            l.prototype.set = function(t, e, i) {
                var n = this,
                    l = n.item;
                return null === e ? ("clear" == t && (t = "select"), l[t] = e, n) : (l["enable" == t ? "disable" : "flip" == t ? "enable" : t] = n.queue[t].split(" ").map((function(l) {
                    return e = n[l](t, e, i)
                })).pop(), "select" == t ? n.set("highlight", l.select, i) : "highlight" == t ? n.set("view", l.highlight, i) : t.match(/^(flip|min|max|disable|enable)$/) && (l.select && n.disabled(l.select) && n.set("select", l.select, i), l.highlight && n.disabled(l.highlight) && n.set("highlight", l.highlight, i)), n)
            }, l.prototype.get = function(t) {
                return this.item[t]
            }, l.prototype.create = function(t, i, l) {
                var o;
                return (i = void 0 === i ? t : i) == -1 / 0 || i == 1 / 0 ? o = i : e.isPlainObject(i) && n.isInteger(i.pick) ? i = i.obj : e.isArray(i) ? (i = new Date(i[0], i[1], i[2]), i = n.isDate(i) ? i : this.create().obj) : i = n.isInteger(i) || n.isDate(i) ? this.normalize(new Date(i), l) : this.now(t, i, l), {
                    year: o || i.getFullYear(),
                    month: o || i.getMonth(),
                    date: o || i.getDate(),
                    day: o || i.getDay(),
                    obj: o || i,
                    pick: o || i.getTime()
                }
            }, l.prototype.createRange = function(t, i) {
                var l = this,
                    o = function(t) {
                        return !0 === t || e.isArray(t) || n.isDate(t) ? l.create(t) : t
                    };
                return n.isInteger(t) || (t = o(t)), n.isInteger(i) || (i = o(i)), n.isInteger(t) && e.isPlainObject(i) ? t = [i.year, i.month, i.date + t] : n.isInteger(i) && e.isPlainObject(t) && (i = [t.year, t.month, t.date + i]), {
                    from: o(t),
                    to: o(i)
                }
            }, l.prototype.withinRange = function(t, e) {
                return t = this.createRange(t.from, t.to), e.pick >= t.from.pick && e.pick <= t.to.pick
            }, l.prototype.overlapRanges = function(t, e) {
                return t = this.createRange(t.from, t.to), e = this.createRange(e.from, e.to), this.withinRange(t, e.from) || this.withinRange(t, e.to) || this.withinRange(e, t.from) || this.withinRange(e, t.to)
            }, l.prototype.now = function(t, e, i) {
                return e = new Date, i && i.rel && e.setDate(e.getDate() + i.rel), this.normalize(e, i)
            }, l.prototype.navigate = function(t, i, n) {
                var l, o, a, r, s = e.isArray(i),
                    c = e.isPlainObject(i),
                    u = this.item.view;
                if (s || c) {
                    for (c ? (o = i.year, a = i.month, r = i.date) : (o = +i[0], a = +i[1], r = +i[2]), n && n.nav && u && u.month !== a && (o = u.year, a = u.month), "months" === this.item.currentView ? l = new Date(o + (n && n.nav ? n.nav : 0), a, 1) : "years" === this.item.currentView ? l = new Date(o + (n && n.nav ? 24 * n.nav : 0), a, 1) : "days" === this.item.currentView && (l = new Date(o, a + (n && n.nav ? n.nav : 0), 1)), o = l.getFullYear(), a = l.getMonth(); new Date(o, a, r).getMonth() !== a;) r -= 1;
                    i = [o, a, r]
                }
                return i
            }, l.prototype.normalize = function(t) {
                return t.setHours(0, 0, 0, 0), t
            }, l.prototype.measure = function(t, e) {
                return n.isInteger(e) ? e = this.now(t, e, {
                    rel: e
                }) : e ? "string" == typeof e && (e = this.parse(t, e)) : e = "min" == t ? -1 / 0 : 1 / 0, e
            }, l.prototype.viewset = function(t, e) {
                return this.create([e.year, e.month, 1])
            }, l.prototype.validate = function(t, i, l) {
                var o, a, r, s, c = this,
                    u = i,
                    h = l && l.interval ? l.interval : 1,
                    d = -1 === c.item.enable,
                    p = c.item.min,
                    f = c.item.max,
                    m = d && c.item.disable.filter((function(t) {
                        if (e.isArray(t)) {
                            var l = c.create(t).pick;
                            l < i.pick ? o = !0 : l > i.pick && (a = !0)
                        }
                        return n.isInteger(t)
                    })).length;
                if ((!l || !l.nav && !l.defaultValue) && (!d && c.disabled(i) || d && c.disabled(i) && (m || o || a) || !d && (i.pick <= p.pick || i.pick >= f.pick)))
                    for (d && !m && (!a && h > 0 || !o && h < 0) && (h *= -1); c.disabled(i) && (Math.abs(h) > 1 && (i.month < u.month || i.month > u.month) && (i = u, h = h > 0 ? 1 : -1), i.pick <= p.pick ? (r = !0, h = 1, i = c.create([p.year, p.month, p.date + (i.pick === p.pick ? 0 : -1)])) : i.pick >= f.pick && (s = !0, h = -1, i = c.create([f.year, f.month, f.date + (i.pick === f.pick ? 0 : 1)])), !r || !s);) i = c.create([i.year, i.month, i.date + h]);
                return i
            }, l.prototype.disabled = function(t) {
                var i = this,
                    l = i.item.disable.filter((function(l) {
                        return n.isInteger(l) ? t.day === (i.settings.firstDay ? l : l - 1) % 7 : e.isArray(l) || n.isDate(l) ? t.pick === i.create(l).pick : e.isPlainObject(l) ? i.withinRange(l, t) : void 0
                    }));
                return l = l.length && !l.filter((function(t) {
                    return e.isArray(t) && "inverted" == t[3] || e.isPlainObject(t) && t.inverted
                })).length, -1 === i.item.enable ? !l : l || t.pick < i.item.min.pick || t.pick > i.item.max.pick
            }, l.prototype.parse = function(t, e, i) {
                var l = this,
                    o = {};
                return e && "string" == typeof e ? (i && i.format || ((i = i || {}).format = l.settings.format), l.formats.toArray(i.format).map((function(t) {
                    var i = l.formats[t],
                        a = i ? n.trigger(i, l, [e, o]) : t.replace(/^!/, "").length;
                    i && (o[t] = e.substr(0, a)), e = e.substr(a)
                })), [o.yyyy || o.yy, +(o.mm || o.m) - 1, o.dd || o.d]) : e
            }, l.prototype.formats = function() {
                function t(t, e, i) {
                    var n = t.match(/[^\x00-\x7F]+|\w+/)[0];
                    return i.mm || i.m || (i.m = e.indexOf(n) + 1), n.length
                }

                function e(t) {
                    return t.match(/\w+/)[0].length
                }
                return {
                    d: function(t, e) {
                        return t ? n.digits(t) : e.date
                    },
                    dd: function(t, e) {
                        return t ? 2 : n.lead(e.date)
                    },
                    ddd: function(t, i) {
                        return t ? e(t) : this.settings.weekdaysShort[i.day]
                    },
                    dddd: function(t, i) {
                        return t ? e(t) : this.settings.weekdaysFull[i.day]
                    },
                    m: function(t, e) {
                        return t ? n.digits(t) : e.month + 1
                    },
                    mm: function(t, e) {
                        return t ? 2 : n.lead(e.month + 1)
                    },
                    mmm: function(e, i) {
                        var n = this.settings.monthsShort;
                        return e ? t(e, n, i) : n[i.month]
                    },
                    mmmm: function(e, i) {
                        var n = this.settings.monthsFull;
                        return e ? t(e, n, i) : n[i.month]
                    },
                    yy: function(t, e) {
                        return t ? 2 : ("" + e.year).slice(2)
                    },
                    yyyy: function(t, e) {
                        return t ? 4 : e.year
                    },
                    toArray: function(t) {
                        return t.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)
                    },
                    toString: function(t, e) {
                        var i = this;
                        return i.formats.toArray(t).map((function(t) {
                            return n.trigger(i.formats[t], i, [0, e]) || t.replace(/^!/, "")
                        })).join("")
                    }
                }
            }(), l.prototype.isDateExact = function(t, i) {
                return n.isInteger(t) && n.isInteger(i) || "boolean" == typeof t && "boolean" == typeof i ? t === i : (n.isDate(t) || e.isArray(t)) && (n.isDate(i) || e.isArray(i)) ? this.create(t).pick === this.create(i).pick : !(!e.isPlainObject(t) || !e.isPlainObject(i)) && this.isDateExact(t.from, i.from) && this.isDateExact(t.to, i.to)
            }, l.prototype.isDateOverlap = function(t, i) {
                var l = this.settings.firstDay ? 1 : 0;
                return n.isInteger(t) && (n.isDate(i) || e.isArray(i)) ? (t = t % 7 + l) === this.create(i).day + 1 : n.isInteger(i) && (n.isDate(t) || e.isArray(t)) ? (i = i % 7 + l) === this.create(t).day + 1 : !(!e.isPlainObject(t) || !e.isPlainObject(i)) && this.overlapRanges(t, i)
            }, l.prototype.flipEnable = function(t) {
                var e = this.item;
                e.enable = t || (-1 == e.enable ? 1 : -1)
            }, l.prototype.deactivate = function(t, i) {
                var l = this,
                    o = l.item.disable.slice(0);
                return "flip" == i ? l.flipEnable() : !1 === i ? (l.flipEnable(1), o = []) : !0 === i ? (l.flipEnable(-1), o = []) : i.map((function(t) {
                    for (var i, a = 0; a < o.length; a += 1)
                        if (l.isDateExact(t, o[a])) {
                            i = !0;
                            break
                        } i || (n.isInteger(t) || n.isDate(t) || e.isArray(t) || e.isPlainObject(t) && t.from && t.to) && o.push(t)
                })), o
            }, l.prototype.activate = function(t, i) {
                var l = this,
                    o = l.item.disable,
                    a = o.length;
                return "flip" == i ? l.flipEnable() : !0 === i ? (l.flipEnable(1), o = []) : !1 === i ? (l.flipEnable(-1), o = []) : i.map((function(t) {
                    var i, r, s, c;
                    for (s = 0; s < a; s += 1) {
                        if (r = o[s], l.isDateExact(r, t)) {
                            i = o[s] = null, c = !0;
                            break
                        }
                        if (l.isDateOverlap(r, t)) {
                            e.isPlainObject(t) ? (t.inverted = !0, i = t) : e.isArray(t) ? (i = t)[3] || i.push("inverted") : n.isDate(t) && (i = [t.getFullYear(), t.getMonth(), t.getDate(), "inverted"]);
                            break
                        }
                    }
                    if (i)
                        for (s = 0; s < a; s += 1)
                            if (l.isDateExact(o[s], t)) {
                                o[s] = null;
                                break
                            } if (c)
                        for (s = 0; s < a; s += 1)
                            if (l.isDateOverlap(o[s], t)) {
                                o[s] = null;
                                break
                            } i && o.push(i)
                })), o.filter((function(t) {
                    return null != t
                }))
            }, l.prototype.nodes = function(t) {
                var e, i, l = this,
                    o = l.settings,
                    a = l.item,
                    r = a.now,
                    s = a.select,
                    c = a.highlight,
                    u = a.view,
                    h = a.disable,
                    d = a.min,
                    p = a.max,
                    f = (e = (o.showWeekdaysFull ? o.weekdaysFull : o.weekdaysShort).slice(0), i = o.weekdaysFull.slice(0), o.firstDay && (e.push(e.shift()), i.push(i.shift())), n.node("thead", n.node("tr", n.group({
                        min: 0,
                        max: 6,
                        i: 1,
                        node: "th",
                        item: function(t) {
                            return [e[t], o.klass.weekdays, 'scope=col title="' + i[t] + '"']
                        }
                    })))),
                    m = function(t) {
                        return n.node("button", " ", o.klass["nav" + (t ? "Next" : "Prev")] + (t && u.year >= p.year && u.month >= p.month || !t && u.year <= d.year && u.month <= d.month ? " " + o.klass.navDisabled : ""), "data-nav=" + (t || -1) + " " + n.ariaAttr({
                            role: "button",
                            controls: l.$node[0].id + "_table"
                        }) + ' title="' + (t ? o.labelMonthNext : o.labelMonthPrev) + '"')
                    };
                return '\n        <div class="'.concat(o.klass.header, '">\n          ').concat(function() {
                    var t = u.year,
                        e = !0 === o.selectYears ? 5 : ~~(o.selectYears / 2),
                        i = o.monthsFull[u.month];
                    if (e) {
                        var n = d.year,
                            l = p.year,
                            a = t - e,
                            r = t + e;
                        if (n > a && (r += n - a, a = n), l < r) {
                            var s = a - n,
                                c = r - l;
                            a -= s > c ? c : s, r = l
                        }
                        return '<div class="'.concat(o.klass.selectYear, '" tabindex="0" data-select-year="true"> ').concat(i, " ").concat(t, ' <i class="fas fa-caret-down"></i></div>')
                    }
                    return '<div class="'.concat(o.klass.selectYear, '" tabindex="0" data-select-year="true"> ').concat(t, ' <i class="fas fa-caret-down"></i></div>')
                }(), " \n          <div class=").concat(o.klass.nav, ">\n            ").concat(m(), "\n            ").concat(m(1), '\n          </div>\n        </div>\n        <table class="').concat(o.klass.table, '" id="').concat(l.$node[0].id, '_table" ').concat(n.ariaAttr({
                    role: "grid",
                    controls: l.$node[0].id,
                    readonly: !0
                }), ">\n          ").concat(function(t) {
                    switch (t) {
                        case "years":
                            return "\n              <tbody>".concat("\n          ".concat(n.group({
                                min: 1,
                                max: 6,
                                i: 1,
                                node: "tr",
                                item: function(t) {
                                    var e = l.item.currentVisibleMinYear || u.year,
                                        i = e + 4 * t - 4,
                                        a = e + 4 * t - 1;
                                    return [n.group({
                                        min: i,
                                        max: a,
                                        i: 1,
                                        node: "td",
                                        item: function(t) {
                                            var e = u.year < d.year || u.year > p.year ? "disabled" : "",
                                                i = t === u.year,
                                                n = s ? s.month : 0,
                                                a = s ? s.date : 1,
                                                r = l.create([t, n, a]);
                                            return ['<div class="picker__year picker__year--infocus '.concat(i ? o.klass.now : "", '" ').concat(e ? o.klass.disabled : "", " data-pick=").concat(r.pick, ' aria-label="').concat(t, '">').concat(t, "</div>")]
                                        }
                                    })]
                                }
                            }), "\n        "), "</tbody>\n            ");
                        case "months":
                            return "\n              <tbody>".concat((e = o.showMonthsShort ? o.monthsShort : o.monthsFull, "\n        ".concat(n.group({
                                min: 1,
                                max: 4,
                                i: 1,
                                node: "tr",
                                item: function(t) {
                                    var i = 3 * t - 3,
                                        a = 3 * t - 1;
                                    return [n.group({
                                        min: i,
                                        max: a,
                                        i: 1,
                                        node: "td",
                                        item: function(t) {
                                            var i = u.year == d.year && t < d.month || u.year == p.year && t > p.month ? "disabled" : "",
                                                n = t === u.month,
                                                a = s ? s.year : u.year,
                                                r = s ? s.date : 1,
                                                c = l.create([a, t, r]);
                                            return ['<div class="picker__year picker__year--infocus '.concat(n ? o.klass.now : "", '" ').concat(i ? o.klass.disabled : "", " data-pick=").concat(c.pick, ' aria-label="').concat(e[t], '">').concat(e[t], "</div>")]
                                        }
                                    })]
                                }
                            }), "\n      ")), "</tbody>\n            ");
                        default:
                            return "\n              ".concat(f, "\n              <tbody>").concat("\n          ".concat(n.group({
                                min: 0,
                                max: 5,
                                i: 1,
                                node: "tr",
                                item: function(t) {
                                    var e = o.firstDay && 0 === l.create([u.year, u.month, 1]).day ? -7 : 0;
                                    return [n.group({
                                        min: 7 * t - u.day + e + 1,
                                        max: function() {
                                            return this.min + 7 - 1
                                        },
                                        i: 1,
                                        node: "td",
                                        item: function(t) {
                                            t = l.create([u.year, u.month, t + (o.firstDay ? 1 : 0)]);
                                            var e, i = s && s.pick == t.pick,
                                                a = c && c.pick == t.pick,
                                                f = h && l.disabled(t) || t.pick < d.pick || t.pick > p.pick,
                                                m = n.trigger(l.formats.toString, l, [o.format, t]);
                                            return [n.node("div", t.date, (e = [o.klass.day], e.push(u.month == t.month ? o.klass.infocus : o.klass.outfocus), r.pick == t.pick && e.push(o.klass.now), i && e.push(o.klass.selected), a && e.push(o.klass.highlighted), f && e.push(o.klass.disabled), e.join(" ")), "data-pick=" + t.pick + " " + n.ariaAttr({
                                                role: "gridcell",
                                                label: m,
                                                selected: !(!i || l.$node.val() !== m) || null,
                                                activedescendant: !!a || null,
                                                disabled: !!f || null
                                            })), "", n.ariaAttr({
                                                role: "presentation"
                                            })]
                                        }
                                    })]
                                }
                            }), "\n        "), "</tbody>\n          ")
                    }
                    var e
                }(l.item.currentView), "\n        </table>\n        <div class=").concat(o.klass.footer, ">\n          ").concat('\n          <button class="btn btn-flat '.concat(o.klass.buttonClear, '" type="button" data-clear=1 ').concat(t ? "" : " disabled", " ").concat(n.ariaAttr({
                    controls: l.$node[0].id
                }), ">\n            ").concat(o.clear, '\n          </button> \n          <button class="btn btn-flat ').concat(o.klass.buttonClose, '" type="button" data-close="true" ').concat(t ? "" : " disabled", " ").concat(n.ariaAttr({
                    controls: l.$node[0].id
                }), ">\n            ").concat(o.close, '\n          </button> \n          <button class="btn btn-flat ').concat(o.klass.buttonOk, '" type="button" data-close="true" ').concat(n.ariaAttr({
                    controls: l.$node[0].id
                }), ">\n            ").concat(o.ok, "\n          </button>\n        "), "\n        </div>\n      ")
            }, l.prototype.toggleView = function(t, e) {
                var i = this.item;
                if ("days" === e) return e;
                switch (i.currentView) {
                    case "days":
                        return "years";
                    case "months":
                        return "days";
                    case "years":
                        return "months";
                    default:
                        return
                }
            }, l.defaults = {
                labelMonthNext: "Next month",
                labelMonthPrev: "Previous month",
                labelMonthSelect: "Select a month",
                labelYearSelect: "Select a year",
                monthsFull: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
                monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                weekdaysFull: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                weekdaysShort: ["S", "M", "T", "W", "T", "F", "S"],
                today: "Today",
                clear: "Clear",
                close: "Close",
                cancel: "Cancel",
                ok: "ok",
                closeOnSelect: !0,
                closeOnClear: !0,
                updateInput: !0,
                inline: !1,
                format: "d mmmm, yyyy",
                klass: {
                    table: (i = t.klasses().picker + "__") + "table",
                    header: i + "header datepicker__box",
                    nav: i + "nav",
                    navPrev: i + "nav--prev btn btn-flat",
                    navNext: i + "nav--next btn btn-flat",
                    navDisabled: i + "nav--disabled",
                    month: i + "month",
                    year: i + "year",
                    selectMonth: i + "select-month",
                    selectYear: i + "select-year",
                    weekdays: i + "weekday",
                    day: i + "day",
                    disabled: i + "day--disabled",
                    selected: i + "day--selected",
                    highlighted: i + "day--highlighted",
                    now: i + "day--today",
                    infocus: i + "day--infocus",
                    outfocus: i + "day--outfocus",
                    footer: i + "footer",
                    buttonClear: i + "picker-button--clear",
                    buttonClose: i + "picker-button--close",
                    buttonOk: i + "picker-button--ok"
                }
            }, t.extend("datepicker", l)
        }, "function" == typeof define && i(75) ? define(["picker", "jquery"], e) : "object" == ("undefined" == typeof exports ? "undefined" : n(exports)) ? t.exports = e(i(226), i(116)) : e(Picker, jQuery), $.extend($.fn.datepicker.defaults, {
            selectMonths: !0,
            selectYears: 15,
            onRender: function() {
                var t = this.$root,
                    e = this.get("highlight", "dd"),
                    i = this.get("highlight", "mmm"),
                    n = this.get("highlight", "dddd").slice(0, 3),
                    l = i.charAt(0).toUpperCase() + i.slice(1);
                this.component.settings.inline || t.find(".picker__header").prepend('\n        <div class="picker__date-display">\n          <div class="picker__title-display">SELECT DATE</div>\n          <div class="picker__date-container">\n            <span class="picker__weekday-display">'.concat(n, ',</span>\n            <span class="picker__month-display">').concat(l, '</span>\n            <span class="picker__day-display">').concat(e, "</span>\n          </div>\n        </div>\n      "))
            }
        }), $(".picker-opener").on("click", (function(t) {
            t.preventDefault(), t.stopPropagation();
            var e = t.target.dataset.open;
            $("#".concat(e)).datepicker().datepicker("picker").open()
        }))
    }).call(this, i(95)(t))
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(t, e, i) {
    "use strict";
    i.r(e);
    i(229), i(230), i(236), i(174), i(175), i(176), i(208), i(150), i(151), i(152), i(153), i(69), i(71), i(72), i(222), i(107), i(66), i(54), i(100), i(108), i(89), i(223), i(224), i(113), i(64), i(115), i(127), i(68), i(97), i(73), i(86), i(98), i(109), i(74);

    function n(t) {
        return (n = "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)
    }
    /*!
     * Name    : Just Another Parallax [Jarallax]
     * Version : 1.10.4
     * Author  : nK <https://nkdev.info>
     * GitHub  : https://github.com/nk-o/jarallax
     */
    ! function(t) {
        var e = {};

        function i(n) {
            if (e[n]) return e[n].exports;
            var l = e[n] = {
                i: n,
                l: !1,
                exports: {}
            };
            return t[n].call(l.exports, l, l.exports, i), l.l = !0, l.exports
        }
        i.m = t, i.c = e, i.d = function(t, e, n) {
            i.o(t, e) || Object.defineProperty(t, e, {
                enumerable: !0,
                get: n
            })
        }, i.r = function(t) {
            "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
                value: "Module"
            }), Object.defineProperty(t, "__esModule", {
                value: !0
            })
        }, i.t = function(t, e) {
            if (1 & e && (t = i(t)), 8 & e) return t;
            if (4 & e && "object" === n(t) && t && t.__esModule) return t;
            var l = Object.create(null);
            if (i.r(l), Object.defineProperty(l, "default", {
                    enumerable: !0,
                    value: t
                }), 2 & e && "string" != typeof t)
                for (var o in t) i.d(l, o, function(e) {
                    return t[e]
                }.bind(null, o));
            return l
        }, i.n = function(t) {
            var e = t && t.__esModule ? function() {
                return t.default
            } : function() {
                return t
            };
            return i.d(e, "a", e), e
        }, i.o = function(t, e) {
            return Object.prototype.hasOwnProperty.call(t, e)
        }, i.p = "", i(i.s = 11)
    }([, , function(t, e, i) {
        t.exports = function(t) {
            "complete" === document.readyState || "interactive" === document.readyState ? t.call() : document.attachEvent ? document.attachEvent("onreadystatechange", (function() {
                "interactive" === document.readyState && t.call()
            })) : document.addEventListener && document.addEventListener("DOMContentLoaded", t)
        }
    }, , function(t, e, i) {
        (function(e) {
            var i;
            i = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {}, t.exports = i
        }).call(this, i(5))
    }, function(t, e, i) {
        var l, o = "function" == typeof Symbol && "symbol" === n(Symbol.iterator) ? function(t) {
            return n(t)
        } : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : n(t)
        };
        l = function() {
            return this
        }();
        try {
            l = l || Function("return this")() || (0, eval)("this")
        } catch (t) {
            "object" === ("undefined" == typeof window ? "undefined" : o(window)) && (l = window)
        }
        t.exports = l
    }, , , , , , function(t, e, i) {
        t.exports = i(12)
    }, function(t, e, i) {
        var l = "function" == typeof Symbol && "symbol" === n(Symbol.iterator) ? function(t) {
                return n(t)
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : n(t)
            },
            o = s(i(2)),
            a = i(4),
            r = s(i(13));

        function s(t) {
            return t && t.__esModule ? t : {
                default: t
            }
        }
        var c = a.window.jarallax;
        if (a.window.jarallax = r.default, a.window.jarallax.noConflict = function() {
                return a.window.jarallax = c, this
            }, void 0 !== a.jQuery) {
            var u = function() {
                var t = arguments || [];
                Array.prototype.unshift.call(t, this);
                var e = r.default.apply(a.window, t);
                return "object" !== (void 0 === e ? "undefined" : l(e)) ? e : this
            };
            u.constructor = r.default.constructor;
            var h = a.jQuery.fn.jarallax;
            a.jQuery.fn.jarallax = u, a.jQuery.fn.jarallax.noConflict = function() {
                return a.jQuery.fn.jarallax = h, this
            }
        }(0, o.default)((function() {
            (0, r.default)(document.querySelectorAll("[data-jarallax]"))
        }))
    }, function(t, e, i) {
        (function(t) {
            Object.defineProperty(e, "__esModule", {
                value: !0
            });
            var l = function(t, e) {
                    if (Array.isArray(t)) return t;
                    if (Symbol.iterator in Object(t)) return function(t, e) {
                        var i = [],
                            n = !0,
                            l = !1,
                            o = void 0;
                        try {
                            for (var a, r = t[Symbol.iterator](); !(n = (a = r.next()).done) && (i.push(a.value), !e || i.length !== e); n = !0);
                        } catch (t) {
                            l = !0, o = t
                        } finally {
                            try {
                                !n && r.return && r.return()
                            } finally {
                                if (l) throw o
                            }
                        }
                        return i
                    }(t, e);
                    throw new TypeError("Invalid attempt to destructure non-iterable instance")
                },
                o = function() {
                    function t(t, e) {
                        for (var i = 0; i < e.length; i++) {
                            var n = e[i];
                            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
                        }
                    }
                    return function(e, i, n) {
                        return i && t(e.prototype, i), n && t(e, n), e
                    }
                }(),
                a = "function" == typeof Symbol && "symbol" === n(Symbol.iterator) ? function(t) {
                    return n(t)
                } : function(t) {
                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : n(t)
                },
                r = u(i(2)),
                s = u(i(14)),
                c = i(4);

            function u(t) {
                return t && t.__esModule ? t : {
                    default: t
                }
            }
            var h = navigator.userAgent.indexOf("MSIE ") > -1 || navigator.userAgent.indexOf("Trident/") > -1 || navigator.userAgent.indexOf("Edge/") > -1,
                d = function() {
                    for (var t = "transform WebkitTransform MozTransform".split(" "), e = document.createElement("div"), i = 0; i < t.length; i++)
                        if (e && void 0 !== e.style[t[i]]) return t[i];
                    return !1
                }(),
                p = void 0,
                f = void 0,
                m = void 0,
                v = !1,
                g = !1;

            function y(t) {
                p = c.window.innerWidth || document.documentElement.clientWidth, f = c.window.innerHeight || document.documentElement.clientHeight, "object" !== (void 0 === t ? "undefined" : a(t)) || "load" !== t.type && "dom-loaded" !== t.type || (v = !0)
            }
            y(), c.window.addEventListener("resize", y), c.window.addEventListener("orientationchange", y), c.window.addEventListener("load", y), (0, r.default)((function() {
                y({
                    type: "dom-loaded"
                })
            }));
            var b = [],
                x = !1;

            function w() {
                if (b.length) {
                    m = void 0 !== c.window.pageYOffset ? c.window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
                    var t = v || !x || x.width !== p || x.height !== f,
                        e = g || t || !x || x.y !== m;
                    v = !1, g = !1, (t || e) && (b.forEach((function(i) {
                        t && i.onResize(), e && i.onScroll()
                    })), x = {
                        width: p,
                        height: f,
                        y: m
                    }), (0, s.default)(w)
                }
            }
            var k = !!t.ResizeObserver && new t.ResizeObserver((function(t) {
                    t && t.length && (0, s.default)((function() {
                        t.forEach((function(t) {
                            t.target && t.target.jarallax && (v || t.target.jarallax.onResize(), g = !0)
                        }))
                    }))
                })),
                S = 0,
                M = function() {
                    function t(e, i) {
                        ! function(t, e) {
                            if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                        }(this, t);
                        var n = this;
                        n.instanceID = S++, n.$item = e, n.defaults = {
                            type: "scroll",
                            speed: .5,
                            imgSrc: null,
                            imgElement: ".jarallax-img",
                            imgSize: "cover",
                            imgPosition: "50% 50%",
                            imgRepeat: "no-repeat",
                            keepImg: !1,
                            elementInViewport: null,
                            zIndex: -100,
                            disableParallax: !1,
                            disableVideo: !1,
                            automaticResize: !0,
                            videoSrc: null,
                            videoStartTime: 0,
                            videoEndTime: 0,
                            videoVolume: 0,
                            videoPlayOnlyVisible: !0,
                            onScroll: null,
                            onInit: null,
                            onDestroy: null,
                            onCoverImage: null
                        };
                        var o = n.$item.getAttribute("data-jarallax"),
                            r = JSON.parse(o || "{}");
                        o && console.warn("Detected usage of deprecated data-jarallax JSON options, you should use pure data-attribute options. See info here - https://github.com/nk-o/jarallax/issues/53");
                        var s = n.$item.dataset || {},
                            c = {};
                        if (Object.keys(s).forEach((function(t) {
                                var e = t.substr(0, 1).toLowerCase() + t.substr(1);
                                e && void 0 !== n.defaults[e] && (c[e] = s[t])
                            })), n.options = n.extend({}, n.defaults, r, c, i), n.pureOptions = n.extend({}, n.options), Object.keys(n.options).forEach((function(t) {
                                "true" === n.options[t] ? n.options[t] = !0 : "false" === n.options[t] && (n.options[t] = !1)
                            })), n.options.speed = Math.min(2, Math.max(-1, parseFloat(n.options.speed))), (n.options.noAndroid || n.options.noIos) && (console.warn("Detected usage of deprecated noAndroid or noIos options, you should use disableParallax option. See info here - https://github.com/nk-o/jarallax/#disable-on-mobile-devices"), n.options.disableParallax || (n.options.noIos && n.options.noAndroid ? n.options.disableParallax = /iPad|iPhone|iPod|Android/ : n.options.noIos ? n.options.disableParallax = /iPad|iPhone|iPod/ : n.options.noAndroid && (n.options.disableParallax = /Android/))), "string" == typeof n.options.disableParallax && (n.options.disableParallax = new RegExp(n.options.disableParallax)), n.options.disableParallax instanceof RegExp) {
                            var u = n.options.disableParallax;
                            n.options.disableParallax = function() {
                                return u.test(navigator.userAgent)
                            }
                        }
                        if ("function" != typeof n.options.disableParallax && (n.options.disableParallax = function() {
                                return !1
                            }), "string" == typeof n.options.disableVideo && (n.options.disableVideo = new RegExp(n.options.disableVideo)), n.options.disableVideo instanceof RegExp) {
                            var h = n.options.disableVideo;
                            n.options.disableVideo = function() {
                                return h.test(navigator.userAgent)
                            }
                        }
                        "function" != typeof n.options.disableVideo && (n.options.disableVideo = function() {
                            return !1
                        });
                        var d = n.options.elementInViewport;
                        d && "object" === (void 0 === d ? "undefined" : a(d)) && void 0 !== d.length && (d = l(d, 1)[0]);
                        d instanceof Element || (d = null), n.options.elementInViewport = d, n.image = {
                            src: n.options.imgSrc || null,
                            $container: null,
                            useImgTag: !1,
                            position: /iPad|iPhone|iPod|Android/.test(navigator.userAgent) ? "absolute" : "fixed"
                        }, n.initImg() && n.canInitParallax() && n.init()
                    }
                    return o(t, [{
                        key: "css",
                        value: function(t, e) {
                            return "string" == typeof e ? c.window.getComputedStyle(t).getPropertyValue(e) : (e.transform && d && (e[d] = e.transform), Object.keys(e).forEach((function(i) {
                                t.style[i] = e[i]
                            })), t)
                        }
                    }, {
                        key: "extend",
                        value: function(t) {
                            var e = arguments;
                            return t = t || {}, Object.keys(arguments).forEach((function(i) {
                                e[i] && Object.keys(e[i]).forEach((function(n) {
                                    t[n] = e[i][n]
                                }))
                            })), t
                        }
                    }, {
                        key: "getWindowData",
                        value: function() {
                            return {
                                width: p,
                                height: f,
                                y: m
                            }
                        }
                    }, {
                        key: "initImg",
                        value: function() {
                            var t = this.options.imgElement;
                            return t && "string" == typeof t && (t = this.$item.querySelector(t)), t instanceof Element || (t = null), t && (this.options.keepImg ? this.image.$item = t.cloneNode(!0) : (this.image.$item = t, this.image.$itemParent = t.parentNode), this.image.useImgTag = !0), !!this.image.$item || (null === this.image.src && (this.image.src = this.css(this.$item, "background-image").replace(/^url\(['"]?/g, "").replace(/['"]?\)$/g, "")), !(!this.image.src || "none" === this.image.src))
                        }
                    }, {
                        key: "canInitParallax",
                        value: function() {
                            return d && !this.options.disableParallax()
                        }
                    }, {
                        key: "init",
                        value: function() {
                            var t = {
                                    position: "absolute",
                                    top: 0,
                                    left: 0,
                                    width: "100%",
                                    height: "100%",
                                    overflow: "hidden",
                                    pointerEvents: "none"
                                },
                                e = {};
                            if (!this.options.keepImg) {
                                var i = this.$item.getAttribute("style");
                                if (i && this.$item.setAttribute("data-jarallax-original-styles", i), this.image.useImgTag) {
                                    var n = this.image.$item.getAttribute("style");
                                    n && this.image.$item.setAttribute("data-jarallax-original-styles", n)
                                }
                            }
                            if ("static" === this.css(this.$item, "position") && this.css(this.$item, {
                                    position: "relative"
                                }), "auto" === this.css(this.$item, "z-index") && this.css(this.$item, {
                                    zIndex: 0
                                }), this.image.$container = document.createElement("div"), this.css(this.image.$container, t), this.css(this.image.$container, {
                                    "z-index": this.options.zIndex
                                }), h && this.css(this.image.$container, {
                                    opacity: .9999
                                }), this.image.$container.setAttribute("id", "jarallax-container-" + this.instanceID), this.$item.appendChild(this.image.$container), this.image.useImgTag ? e = this.extend({
                                    "object-fit": this.options.imgSize,
                                    "object-position": this.options.imgPosition,
                                    "font-family": "object-fit: " + this.options.imgSize + "; object-position: " + this.options.imgPosition + ";",
                                    "max-width": "none"
                                }, t, e) : (this.image.$item = document.createElement("div"), this.image.src && (e = this.extend({
                                    "background-position": this.options.imgPosition,
                                    "background-size": this.options.imgSize,
                                    "background-repeat": this.options.imgRepeat,
                                    "background-image": 'url("' + this.image.src + '")'
                                }, t, e))), "opacity" !== this.options.type && "scale" !== this.options.type && "scale-opacity" !== this.options.type && 1 !== this.options.speed || (this.image.position = "absolute"), "fixed" === this.image.position)
                                for (var l = 0, o = this.$item; null !== o && o !== document && 0 === l;) {
                                    var a = this.css(o, "-webkit-transform") || this.css(o, "-moz-transform") || this.css(o, "transform");
                                    a && "none" !== a && (l = 1, this.image.position = "absolute"), o = o.parentNode
                                }
                            e.position = this.image.position, this.css(this.image.$item, e), this.image.$container.appendChild(this.image.$item), this.onResize(), this.onScroll(!0), this.options.automaticResize && k && k.observe(this.$item), this.options.onInit && this.options.onInit.call(this), "none" !== this.css(this.$item, "background-image") && this.css(this.$item, {
                                "background-image": "none"
                            }), this.addToParallaxList()
                        }
                    }, {
                        key: "addToParallaxList",
                        value: function() {
                            b.push(this), 1 === b.length && w()
                        }
                    }, {
                        key: "removeFromParallaxList",
                        value: function() {
                            var t = this;
                            b.forEach((function(e, i) {
                                e.instanceID === t.instanceID && b.splice(i, 1)
                            }))
                        }
                    }, {
                        key: "destroy",
                        value: function() {
                            this.removeFromParallaxList();
                            var t = this.$item.getAttribute("data-jarallax-original-styles");
                            if (this.$item.removeAttribute("data-jarallax-original-styles"), t ? this.$item.setAttribute("style", t) : this.$item.removeAttribute("style"), this.image.useImgTag) {
                                var e = this.image.$item.getAttribute("data-jarallax-original-styles");
                                this.image.$item.removeAttribute("data-jarallax-original-styles"), e ? this.image.$item.setAttribute("style", t) : this.image.$item.removeAttribute("style"), this.image.$itemParent && this.image.$itemParent.appendChild(this.image.$item)
                            }
                            this.$clipStyles && this.$clipStyles.parentNode.removeChild(this.$clipStyles), this.image.$container && this.image.$container.parentNode.removeChild(this.image.$container), this.options.onDestroy && this.options.onDestroy.call(this), delete this.$item.jarallax
                        }
                    }, {
                        key: "clipContainer",
                        value: function() {
                            if ("fixed" === this.image.position) {
                                var t = this.image.$container.getBoundingClientRect(),
                                    e = t.width,
                                    i = t.height;
                                if (!this.$clipStyles) this.$clipStyles = document.createElement("style"), this.$clipStyles.setAttribute("type", "text/css"), this.$clipStyles.setAttribute("id", "jarallax-clip-" + this.instanceID), (document.head || document.getElementsByTagName("head")[0]).appendChild(this.$clipStyles);
                                var n = "#jarallax-container-" + this.instanceID + " {\n           clip: rect(0 " + e + "px " + i + "px 0);\n           clip: rect(0, " + e + "px, " + i + "px, 0);\n        }";
                                this.$clipStyles.styleSheet ? this.$clipStyles.styleSheet.cssText = n : this.$clipStyles.innerHTML = n
                            }
                        }
                    }, {
                        key: "coverImage",
                        value: function() {
                            var t = this.image.$container.getBoundingClientRect(),
                                e = t.height,
                                i = this.options.speed,
                                n = "scroll" === this.options.type || "scroll-opacity" === this.options.type,
                                l = 0,
                                o = e,
                                a = 0;
                            return n && (l = i < 0 ? i * Math.max(e, f) : i * (e + f), i > 1 ? o = Math.abs(l - f) : i < 0 ? o = l / i + Math.abs(l) : o += Math.abs(f - e) * (1 - i), l /= 2), this.parallaxScrollDistance = l, a = n ? (f - o) / 2 : (e - o) / 2, this.css(this.image.$item, {
                                height: o + "px",
                                marginTop: a + "px",
                                left: "fixed" === this.image.position ? t.left + "px" : "0",
                                width: t.width + "px"
                            }), this.options.onCoverImage && this.options.onCoverImage.call(this), {
                                image: {
                                    height: o,
                                    marginTop: a
                                },
                                container: t
                            }
                        }
                    }, {
                        key: "isVisible",
                        value: function() {
                            return this.isElementInViewport || !1
                        }
                    }, {
                        key: "onScroll",
                        value: function(t) {
                            var e = this.$item.getBoundingClientRect(),
                                i = e.top,
                                n = e.height,
                                l = {},
                                o = e;
                            if (this.options.elementInViewport && (o = this.options.elementInViewport.getBoundingClientRect()), this.isElementInViewport = o.bottom >= 0 && o.right >= 0 && o.top <= f && o.left <= p, t || this.isElementInViewport) {
                                var a = Math.max(0, i),
                                    r = Math.max(0, n + i),
                                    s = Math.max(0, -i),
                                    c = Math.max(0, i + n - f),
                                    u = Math.max(0, n - (i + n - f)),
                                    h = Math.max(0, -i + f - n),
                                    d = 1 - 2 * (f - i) / (f + n),
                                    m = 1;
                                if (n < f ? m = 1 - (s || c) / n : r <= f ? m = r / f : u <= f && (m = u / f), "opacity" !== this.options.type && "scale-opacity" !== this.options.type && "scroll-opacity" !== this.options.type || (l.transform = "translate3d(0,0,0)", l.opacity = m), "scale" === this.options.type || "scale-opacity" === this.options.type) {
                                    var v = 1;
                                    this.options.speed < 0 ? v -= this.options.speed * m : v += this.options.speed * (1 - m), l.transform = "scale(" + v + ") translate3d(0,0,0)"
                                }
                                if ("scroll" === this.options.type || "scroll-opacity" === this.options.type) {
                                    var g = this.parallaxScrollDistance * d;
                                    "absolute" === this.image.position && (g -= i), l.transform = "translate3d(0," + g + "px,0)"
                                }
                                this.css(this.image.$item, l), this.options.onScroll && this.options.onScroll.call(this, {
                                    section: e,
                                    beforeTop: a,
                                    beforeTopEnd: r,
                                    afterTop: s,
                                    beforeBottom: c,
                                    beforeBottomEnd: u,
                                    afterBottom: h,
                                    visiblePercent: m,
                                    fromViewportCenter: d
                                })
                            }
                        }
                    }, {
                        key: "onResize",
                        value: function() {
                            this.coverImage(), this.clipContainer()
                        }
                    }]), t
                }(),
                C = function(t) {
                    ("object" === ("undefined" == typeof HTMLElement ? "undefined" : a(HTMLElement)) ? t instanceof HTMLElement : t && "object" === (void 0 === t ? "undefined" : a(t)) && null !== t && 1 === t.nodeType && "string" == typeof t.nodeName) && (t = [t]);
                    for (var e = arguments[1], i = Array.prototype.slice.call(arguments, 2), n = t.length, l = 0, o = void 0; l < n; l++)
                        if ("object" === (void 0 === e ? "undefined" : a(e)) || void 0 === e ? t[l].jarallax || (t[l].jarallax = new M(t[l], e)) : t[l].jarallax && (o = t[l].jarallax[e].apply(t[l].jarallax, i)), void 0 !== o) return o;
                    return t
                };
            C.constructor = M, e.default = C
        }).call(this, i(5))
    }, function(t, e, i) {
        var n = i(4),
            l = n.requestAnimationFrame || n.webkitRequestAnimationFrame || n.mozRequestAnimationFrame || function(t) {
                var e = +new Date,
                    i = Math.max(0, 16 - (e - o)),
                    n = setTimeout(t, i);
                return o = e, n
            },
            o = +new Date;
        var a = n.cancelAnimationFrame || n.webkitCancelAnimationFrame || n.mozCancelAnimationFrame || clearTimeout;
        Function.prototype.bind && (l = l.bind(n), a = a.bind(n)), (t.exports = l).cancel = a
    }]);
    i(119), i(117);

    function l(t) {
        return (l = "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)
    }
    /*!
     * Name    : Video Background Extension for Jarallax
     * Version : 1.0.1
     * Author  : nK <https://nkdev.info>
     * GitHub  : https://github.com/nk-o/jarallax
     */
    ! function(t) {
        var e = {};

        function i(n) {
            if (e[n]) return e[n].exports;
            var l = e[n] = {
                i: n,
                l: !1,
                exports: {}
            };
            return t[n].call(l.exports, l, l.exports, i), l.l = !0, l.exports
        }
        i.m = t, i.c = e, i.d = function(t, e, n) {
            i.o(t, e) || Object.defineProperty(t, e, {
                enumerable: !0,
                get: n
            })
        }, i.r = function(t) {
            "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
                value: "Module"
            }), Object.defineProperty(t, "__esModule", {
                value: !0
            })
        }, i.t = function(t, e) {
            if (1 & e && (t = i(t)), 8 & e) return t;
            if (4 & e && "object" === l(t) && t && t.__esModule) return t;
            var n = Object.create(null);
            if (i.r(n), Object.defineProperty(n, "default", {
                    enumerable: !0,
                    value: t
                }), 2 & e && "string" != typeof t)
                for (var o in t) i.d(n, o, function(e) {
                    return t[e]
                }.bind(null, o));
            return n
        }, i.n = function(t) {
            var e = t && t.__esModule ? function() {
                return t.default
            } : function() {
                return t
            };
            return i.d(e, "a", e), e
        }, i.o = function(t, e) {
            return Object.prototype.hasOwnProperty.call(t, e)
        }, i.p = "", i(i.s = 6)
    }([, , function(t, e, i) {
        t.exports = function(t) {
            "complete" === document.readyState || "interactive" === document.readyState ? t.call() : document.attachEvent ? document.attachEvent("onreadystatechange", (function() {
                "interactive" === document.readyState && t.call()
            })) : document.addEventListener && document.addEventListener("DOMContentLoaded", t)
        }
    }, , function(t, e, i) {
        (function(e) {
            var i;
            i = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {}, t.exports = i
        }).call(this, i(5))
    }, function(t, e, i) {
        var n, o = "function" == typeof Symbol && "symbol" === l(Symbol.iterator) ? function(t) {
            return l(t)
        } : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : l(t)
        };
        n = function() {
            return this
        }();
        try {
            n = n || Function("return this")() || (0, eval)("this")
        } catch (t) {
            "object" === ("undefined" == typeof window ? "undefined" : o(window)) && (n = window)
        }
        t.exports = n
    }, function(t, e, i) {
        t.exports = i(7)
    }, function(t, e, i) {
        var n = r(i(8)),
            l = r(i(4)),
            o = r(i(2)),
            a = r(i(10));

        function r(t) {
            return t && t.__esModule ? t : {
                default: t
            }
        }
        l.default.VideoWorker = l.default.VideoWorker || n.default, (0, a.default)(), (0, o.default)((function() {
            "undefined" != typeof jarallax && jarallax(document.querySelectorAll("[data-jarallax-video]"))
        }))
    }, function(t, e, i) {
        t.exports = i(9)
    }, function(t, e, i) {
        Object.defineProperty(e, "__esModule", {
            value: !0
        });
        var n = "function" == typeof Symbol && "symbol" === l(Symbol.iterator) ? function(t) {
                return l(t)
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : l(t)
            },
            o = function() {
                function t(t, e) {
                    for (var i = 0; i < e.length; i++) {
                        var n = e[i];
                        n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
                    }
                }
                return function(e, i, n) {
                    return i && t(e.prototype, i), n && t(e, n), e
                }
            }();

        function a() {
            this._done = [], this._fail = []
        }
        a.prototype = {
            execute: function(t, e) {
                var i = t.length;
                for (e = Array.prototype.slice.call(e); i--;) t[i].apply(null, e)
            },
            resolve: function() {
                this.execute(this._done, arguments)
            },
            reject: function() {
                this.execute(this._fail, arguments)
            },
            done: function(t) {
                this._done.push(t)
            },
            fail: function(t) {
                this._fail.push(t)
            }
        };
        var r = 0,
            s = 0,
            c = 0,
            u = 0,
            h = 0,
            d = new a,
            p = new a,
            f = function() {
                function t(e, i) {
                    ! function(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }(this, t);
                    this.url = e, this.options_default = {
                        autoplay: !1,
                        loop: !1,
                        mute: !1,
                        volume: 100,
                        showContols: !0,
                        startTime: 0,
                        endTime: 0
                    }, this.options = this.extend({}, this.options_default, i), this.videoID = this.parseURL(e), this.videoID && (this.ID = r++, this.loadAPI(), this.init())
                }
                return o(t, [{
                    key: "extend",
                    value: function(t) {
                        var e = arguments;
                        return t = t || {}, Object.keys(arguments).forEach((function(i) {
                            e[i] && Object.keys(e[i]).forEach((function(n) {
                                t[n] = e[i][n]
                            }))
                        })), t
                    }
                }, {
                    key: "parseURL",
                    value: function(t) {
                        var e, i, n, l, o = !(!(e = t.match(/.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/)) || 11 !== e[1].length) && e[1],
                            a = function(t) {
                                var e = t.match(/https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)/);
                                return !(!e || !e[3]) && e[3]
                            }(t),
                            r = (i = t.split(/,(?=mp4\:|webm\:|ogv\:|ogg\:)/), n = {}, l = 0, i.forEach((function(t) {
                                var e = t.match(/^(mp4|webm|ogv|ogg)\:(.*)/);
                                e && e[1] && e[2] && (n["ogv" === e[1] ? "ogg" : e[1]] = e[2], l = 1)
                            })), !!l && n);
                        return o ? (this.type = "youtube", o) : a ? (this.type = "vimeo", a) : !!r && (this.type = "local", r)
                    }
                }, {
                    key: "isValid",
                    value: function() {
                        return !!this.videoID
                    }
                }, {
                    key: "on",
                    value: function(t, e) {
                        this.userEventsList = this.userEventsList || [], (this.userEventsList[t] || (this.userEventsList[t] = [])).push(e)
                    }
                }, {
                    key: "off",
                    value: function(t, e) {
                        var i = this;
                        this.userEventsList && this.userEventsList[t] && (e ? this.userEventsList[t].forEach((function(n, l) {
                            n === e && (i.userEventsList[t][l] = !1)
                        })) : delete this.userEventsList[t])
                    }
                }, {
                    key: "fire",
                    value: function(t) {
                        var e = this,
                            i = [].slice.call(arguments, 1);
                        this.userEventsList && void 0 !== this.userEventsList[t] && this.userEventsList[t].forEach((function(t) {
                            t && t.apply(e, i)
                        }))
                    }
                }, {
                    key: "play",
                    value: function(t) {
                        var e = this;
                        e.player && ("youtube" === e.type && e.player.playVideo && (void 0 !== t && e.player.seekTo(t || 0), YT.PlayerState.PLAYING !== e.player.getPlayerState() && e.player.playVideo()), "vimeo" === e.type && (void 0 !== t && e.player.setCurrentTime(t), e.player.getPaused().then((function(t) {
                            t && e.player.play()
                        }))), "local" === e.type && (void 0 !== t && (e.player.currentTime = t), e.player.paused && e.player.play()))
                    }
                }, {
                    key: "pause",
                    value: function() {
                        var t = this;
                        t.player && ("youtube" === t.type && t.player.pauseVideo && YT.PlayerState.PLAYING === t.player.getPlayerState() && t.player.pauseVideo(), "vimeo" === t.type && t.player.getPaused().then((function(e) {
                            e || t.player.pause()
                        })), "local" === t.type && (t.player.paused || t.player.pause()))
                    }
                }, {
                    key: "mute",
                    value: function() {
                        this.player && ("youtube" === this.type && this.player.mute && this.player.mute(), "vimeo" === this.type && this.player.setVolume && this.player.setVolume(0), "local" === this.type && (this.$video.muted = !0))
                    }
                }, {
                    key: "unmute",
                    value: function() {
                        this.player && ("youtube" === this.type && this.player.mute && this.player.unMute(), "vimeo" === this.type && this.player.setVolume && this.player.setVolume(this.options.volume), "local" === this.type && (this.$video.muted = !1))
                    }
                }, {
                    key: "setVolume",
                    value: function() {
                        var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0],
                            e = this;
                        e.player && t && ("youtube" === e.type && e.player.setVolume && e.player.setVolume(t), "vimeo" === e.type && e.player.setVolume && e.player.setVolume(t), "local" === e.type && (e.$video.volume = t / 100))
                    }
                }, {
                    key: "getVolume",
                    value: function(t) {
                        this.player ? ("youtube" === this.type && this.player.getVolume && t(this.player.getVolume()), "vimeo" === this.type && this.player.getVolume && this.player.getVolume().then((function(e) {
                            t(e)
                        })), "local" === this.type && t(100 * this.$video.volume)) : t(!1)
                    }
                }, {
                    key: "getMuted",
                    value: function(t) {
                        this.player ? ("youtube" === this.type && this.player.isMuted && t(this.player.isMuted()), "vimeo" === this.type && this.player.getVolume && this.player.getVolume().then((function(e) {
                            t(!!e)
                        })), "local" === this.type && t(this.$video.muted)) : t(null)
                    }
                }, {
                    key: "getImageURL",
                    value: function(t) {
                        var e = this;
                        if (e.videoImage) t(e.videoImage);
                        else {
                            if ("youtube" === e.type) {
                                var i = ["maxresdefault", "sddefault", "hqdefault", "0"],
                                    n = 0,
                                    l = new Image;
                                l.onload = function() {
                                    120 !== (this.naturalWidth || this.width) || n === i.length - 1 ? (e.videoImage = "https://img.youtube.com/vi/" + e.videoID + "/" + i[n] + ".jpg", t(e.videoImage)) : (n++, this.src = "https://img.youtube.com/vi/" + e.videoID + "/" + i[n] + ".jpg")
                                }, l.src = "https://img.youtube.com/vi/" + e.videoID + "/" + i[n] + ".jpg"
                            }
                            if ("vimeo" === e.type) {
                                var o = new XMLHttpRequest;
                                o.open("GET", "https://vimeo.com/api/v2/video/" + e.videoID + ".json", !0), o.onreadystatechange = function() {
                                    if (4 === this.readyState && this.status >= 200 && this.status < 400) {
                                        var i = JSON.parse(this.responseText);
                                        e.videoImage = i[0].thumbnail_large, t(e.videoImage)
                                    }
                                }, o.send(), o = null
                            }
                        }
                    }
                }, {
                    key: "getIframe",
                    value: function(t) {
                        this.getVideo(t)
                    }
                }, {
                    key: "getVideo",
                    value: function(t) {
                        var e = this;
                        e.$video ? t(e.$video) : e.onAPIready((function() {
                            var i = void 0;
                            if (e.$video || ((i = document.createElement("div")).style.display = "none"), "youtube" === e.type) {
                                e.playerOptions = {}, e.playerOptions.videoId = e.videoID, e.playerOptions.playerVars = {
                                    autohide: 1,
                                    rel: 0,
                                    autoplay: 0,
                                    playsinline: 1
                                }, e.options.showContols || (e.playerOptions.playerVars.iv_load_policy = 3, e.playerOptions.playerVars.modestbranding = 1, e.playerOptions.playerVars.controls = 0, e.playerOptions.playerVars.showinfo = 0, e.playerOptions.playerVars.disablekb = 1);
                                var n = void 0,
                                    l = void 0;
                                e.playerOptions.events = {
                                    onReady: function(t) {
                                        e.options.mute ? t.target.mute() : e.options.volume && t.target.setVolume(e.options.volume), e.options.autoplay && e.play(e.options.startTime), e.fire("ready", t), setInterval((function() {
                                            e.getVolume((function(i) {
                                                e.options.volume !== i && (e.options.volume = i, e.fire("volumechange", t))
                                            }))
                                        }), 150)
                                    },
                                    onStateChange: function(t) {
                                        e.options.loop && t.data === YT.PlayerState.ENDED && e.play(e.options.startTime), n || t.data !== YT.PlayerState.PLAYING || (n = 1, e.fire("started", t)), t.data === YT.PlayerState.PLAYING && e.fire("play", t), t.data === YT.PlayerState.PAUSED && e.fire("pause", t), t.data === YT.PlayerState.ENDED && e.fire("ended", t), t.data === YT.PlayerState.PLAYING ? l = setInterval((function() {
                                            e.fire("timeupdate", t), e.options.endTime && e.player.getCurrentTime() >= e.options.endTime && (e.options.loop ? e.play(e.options.startTime) : e.pause())
                                        }), 150) : clearInterval(l)
                                    }
                                };
                                var o = !e.$video;
                                if (o) {
                                    var a = document.createElement("div");
                                    a.setAttribute("id", e.playerID), i.appendChild(a), document.body.appendChild(i)
                                }
                                e.player = e.player || new window.YT.Player(e.playerID, e.playerOptions), o && (e.$video = document.getElementById(e.playerID), e.videoWidth = parseInt(e.$video.getAttribute("width"), 10) || 1280, e.videoHeight = parseInt(e.$video.getAttribute("height"), 10) || 720)
                            }
                            if ("vimeo" === e.type) {
                                e.playerOptions = "", e.playerOptions += "player_id=" + e.playerID, e.playerOptions += "&autopause=0", e.playerOptions += "&transparent=0", e.options.showContols || (e.playerOptions += "&badge=0&byline=0&portrait=0&title=0"), e.playerOptions += "&autoplay=" + (e.options.autoplay ? "1" : "0"), e.playerOptions += "&loop=" + (e.options.loop ? 1 : 0), e.$video || (e.$video = document.createElement("iframe"), e.$video.setAttribute("id", e.playerID), e.$video.setAttribute("src", "https://player.vimeo.com/video/" + e.videoID + "?" + e.playerOptions), e.$video.setAttribute("frameborder", "0"), i.appendChild(e.$video), document.body.appendChild(i)), e.player = e.player || new Vimeo.Player(e.$video), e.player.getVideoWidth().then((function(t) {
                                    e.videoWidth = t || 1280
                                })), e.player.getVideoHeight().then((function(t) {
                                    e.videoHeight = t || 720
                                })), e.options.startTime && e.options.autoplay && e.player.setCurrentTime(e.options.startTime), e.options.mute ? e.player.setVolume(0) : e.options.volume && e.player.setVolume(e.options.volume);
                                var r = void 0;
                                e.player.on("timeupdate", (function(t) {
                                    r || (e.fire("started", t), r = 1), e.fire("timeupdate", t), e.options.endTime && e.options.endTime && t.seconds >= e.options.endTime && (e.options.loop ? e.play(e.options.startTime) : e.pause())
                                })), e.player.on("play", (function(t) {
                                    e.fire("play", t), e.options.startTime && 0 === t.seconds && e.play(e.options.startTime)
                                })), e.player.on("pause", (function(t) {
                                    e.fire("pause", t)
                                })), e.player.on("ended", (function(t) {
                                    e.fire("ended", t)
                                })), e.player.on("loaded", (function(t) {
                                    e.fire("ready", t)
                                })), e.player.on("volumechange", (function(t) {
                                    e.fire("volumechange", t)
                                }))
                            }
                            if ("local" === e.type) {
                                e.$video || (e.$video = document.createElement("video"), e.options.showContols && (e.$video.controls = !0), e.options.mute ? e.$video.muted = !0 : e.$video.volume && (e.$video.volume = e.options.volume / 100), e.options.loop && (e.$video.loop = !0), e.$video.setAttribute("playsinline", ""), e.$video.setAttribute("webkit-playsinline", ""), e.$video.setAttribute("id", e.playerID), i.appendChild(e.$video), document.body.appendChild(i), Object.keys(e.videoID).forEach((function(t) {
                                    var i, n, l, o;
                                    i = e.$video, n = e.videoID[t], l = "video/" + t, (o = document.createElement("source")).src = n, o.type = l, i.appendChild(o)
                                }))), e.player = e.player || e.$video;
                                var s = void 0;
                                e.player.addEventListener("playing", (function(t) {
                                    s || e.fire("started", t), s = 1
                                })), e.player.addEventListener("timeupdate", (function(t) {
                                    e.fire("timeupdate", t), e.options.endTime && e.options.endTime && this.currentTime >= e.options.endTime && (e.options.loop ? e.play(e.options.startTime) : e.pause())
                                })), e.player.addEventListener("play", (function(t) {
                                    e.fire("play", t)
                                })), e.player.addEventListener("pause", (function(t) {
                                    e.fire("pause", t)
                                })), e.player.addEventListener("ended", (function(t) {
                                    e.fire("ended", t)
                                })), e.player.addEventListener("loadedmetadata", (function() {
                                    e.videoWidth = this.videoWidth || 1280, e.videoHeight = this.videoHeight || 720, e.fire("ready"), e.options.autoplay && e.play(e.options.startTime)
                                })), e.player.addEventListener("volumechange", (function(t) {
                                    e.getVolume((function(t) {
                                        e.options.volume = t
                                    })), e.fire("volumechange", t)
                                }))
                            }
                            t(e.$video)
                        }))
                    }
                }, {
                    key: "init",
                    value: function() {
                        this.playerID = "VideoWorker-" + this.ID
                    }
                }, {
                    key: "loadAPI",
                    value: function() {
                        if (!s || !c) {
                            var t = "";
                            if ("youtube" !== this.type || s || (s = 1, t = "https://www.youtube.com/iframe_api"), "vimeo" !== this.type || c || (c = 1, t = "https://player.vimeo.com/api/player.js"), t) {
                                var e = document.createElement("script"),
                                    i = document.getElementsByTagName("head")[0];
                                e.src = t, i.appendChild(e), i = null, e = null
                            }
                        }
                    }
                }, {
                    key: "onAPIready",
                    value: function(t) {
                        if ("youtube" === this.type && ("undefined" != typeof YT && 0 !== YT.loaded || u ? "object" === ("undefined" == typeof YT ? "undefined" : n(YT)) && 1 === YT.loaded ? t() : d.done((function() {
                                t()
                            })) : (u = 1, window.onYouTubeIframeAPIReady = function() {
                                window.onYouTubeIframeAPIReady = null, d.resolve("done"), t()
                            })), "vimeo" === this.type)
                            if ("undefined" != typeof Vimeo || h) "undefined" != typeof Vimeo ? t() : p.done((function() {
                                t()
                            }));
                            else {
                                h = 1;
                                var e = setInterval((function() {
                                    "undefined" != typeof Vimeo && (clearInterval(e), p.resolve("done"), t())
                                }), 20)
                            }
                        "local" === this.type && t()
                    }
                }]), t
            }();
        e.default = f
    }, function(t, e, i) {
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.default = function() {
            var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : l.default.jarallax;
            if (void 0 === t) return;
            var e = t.constructor,
                i = e.prototype.init;
            e.prototype.init = function() {
                var t = this;
                i.apply(t), t.video && !t.options.disableVideo() && t.video.getVideo((function(e) {
                    var i = e.parentNode;
                    t.css(e, {
                        position: t.image.position,
                        top: "0px",
                        left: "0px",
                        right: "0px",
                        bottom: "0px",
                        width: "100%",
                        height: "100%",
                        maxWidth: "none",
                        maxHeight: "none",
                        margin: 0,
                        zIndex: -1
                    }), t.$video = e, t.image.$container.appendChild(e), i.parentNode.removeChild(i)
                }))
            };
            var o = e.prototype.coverImage;
            e.prototype.coverImage = function() {
                var t = o.apply(this),
                    e = !!this.image.$item && this.image.$item.nodeName;
                if (t && this.video && e && ("IFRAME" === e || "VIDEO" === e)) {
                    var i = t.image.height,
                        n = i * this.image.width / this.image.height,
                        l = (t.container.width - n) / 2,
                        a = t.image.marginTop;
                    t.container.width > n && (i = (n = t.container.width) * this.image.height / this.image.width, l = 0, a += (t.image.height - i) / 2), "IFRAME" === e && (i += 400, a -= 200), this.css(this.$video, {
                        width: n + "px",
                        marginLeft: l + "px",
                        height: i + "px",
                        marginTop: a + "px"
                    })
                }
                return t
            };
            var a = e.prototype.initImg;
            e.prototype.initImg = function() {
                var t = a.apply(this);
                return this.options.videoSrc || (this.options.videoSrc = this.$item.getAttribute("data-jarallax-video") || null), this.options.videoSrc ? (this.defaultInitImgResult = t, !0) : t
            };
            var r = e.prototype.canInitParallax;
            e.prototype.canInitParallax = function() {
                var t = this,
                    e = r.apply(t);
                if (!t.options.videoSrc) return e;
                var i = new n.default(t.options.videoSrc, {
                    autoplay: !0,
                    loop: !0,
                    showContols: !1,
                    startTime: t.options.videoStartTime || 0,
                    endTime: t.options.videoEndTime || 0,
                    mute: t.options.videoVolume ? 0 : 1,
                    volume: t.options.videoVolume || 0
                });
                if (i.isValid())
                    if (e) {
                        if (i.on("ready", (function() {
                                if (t.options.videoPlayOnlyVisible) {
                                    var e = t.onScroll;
                                    t.onScroll = function() {
                                        e.apply(t), t.isVisible() ? i.play() : i.pause()
                                    }
                                } else i.play()
                            })), i.on("started", (function() {
                                t.image.$default_item = t.image.$item, t.image.$item = t.$video, t.image.width = t.video.videoWidth || 1280, t.image.height = t.video.videoHeight || 720, t.options.imgWidth = t.image.width, t.options.imgHeight = t.image.height, t.coverImage(), t.clipContainer(), t.onScroll(), t.image.$default_item && (t.image.$default_item.style.display = "none")
                            })), t.video = i, !t.defaultInitImgResult) return "local" !== i.type ? (i.getImageURL((function(e) {
                            t.image.src = e, t.init()
                        })), !1) : (t.image.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", !0)
                    } else t.defaultInitImgResult || i.getImageURL((function(e) {
                        var i = t.$item.getAttribute("style");
                        i && t.$item.setAttribute("data-jarallax-original-styles", i), t.css(t.$item, {
                            "background-image": 'url("' + e + '")',
                            "background-position": "center",
                            "background-size": "cover"
                        })
                    }));
                return e
            };
            var s = e.prototype.destroy;
            e.prototype.destroy = function() {
                this.image.$default_item && (this.image.$item = this.image.$default_item, delete this.image.$default_item), s.apply(this)
            }
        };
        var n = o(i(8)),
            l = o(i(4));

        function o(t) {
            return t && t.__esModule ? t : {
                default: t
            }
        }
    }]);
    i(209), i(241),
        function() {
            var t = "bfred-it:object-fit-images",
                e = /(object-fit|object-position)\s*:\s*([-.\w\s%]+)/g,
                i = "undefined" == typeof Image ? {
                    style: {
                        "object-position": 1
                    }
                } : new Image,
                n = "object-fit" in i.style,
                l = "object-position" in i.style,
                o = "background-size" in i.style,
                a = "string" == typeof i.currentSrc,
                r = i.getAttribute,
                s = i.setAttribute,
                c = !1;

            function u(t, e, i) {
                var n = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='" + (e || 1) + "' height='" + (i || 0) + "'%3E%3C/svg%3E";
                r.call(t, "src") !== n && s.call(t, "src", n)
            }

            function h(t, e) {
                t.naturalWidth ? e(t) : setTimeout(h, 100, t, e)
            }

            function d(i) {
                var l = function(t) {
                        for (var i, n = getComputedStyle(t).fontFamily, l = {}; null !== (i = e.exec(n));) l[i[1]] = i[2];
                        return l
                    }(i),
                    o = i[t];
                if (l["object-fit"] = l["object-fit"] || "fill", !o.img) {
                    if ("fill" === l["object-fit"]) return;
                    if (!o.skipTest && n && !l["object-position"]) return
                }
                if (!o.img) {
                    o.img = new Image(i.width, i.height), o.img.srcset = r.call(i, "data-ofi-srcset") || i.srcset, o.img.src = r.call(i, "data-ofi-src") || i.src, s.call(i, "data-ofi-src", i.src), i.srcset && s.call(i, "data-ofi-srcset", i.srcset), u(i, i.naturalWidth || i.width, i.naturalHeight || i.height), i.srcset && (i.srcset = "");
                    try {
                        ! function(e) {
                            var i = {
                                get: function(i) {
                                    return e[t].img[i || "src"]
                                },
                                set: function(i, n) {
                                    return e[t].img[n || "src"] = i, s.call(e, "data-ofi-" + n, i), d(e), i
                                }
                            };
                            Object.defineProperty(e, "src", i), Object.defineProperty(e, "currentSrc", {
                                get: function() {
                                    return i.get("currentSrc")
                                }
                            }), Object.defineProperty(e, "srcset", {
                                get: function() {
                                    return i.get("srcset")
                                },
                                set: function(t) {
                                    return i.set(t, "srcset")
                                }
                            })
                        }(i)
                    } catch (t) {
                        window.console && console.warn("https://bit.ly/ofi-old-browser")
                    }
                }! function(t) {
                    if (t.srcset && !a && window.picturefill) {
                        var e = window.picturefill._;
                        t[e.ns] && t[e.ns].evaled || e.fillImg(t, {
                            reselect: !0
                        }), t[e.ns].curSrc || (t[e.ns].supported = !1, e.fillImg(t, {
                            reselect: !0
                        })), t.currentSrc = t[e.ns].curSrc || t.src
                    }
                }(o.img), i.style.backgroundImage = 'url("' + (o.img.currentSrc || o.img.src).replace(/"/g, '\\"') + '")', i.style.backgroundPosition = l["object-position"] || "center", i.style.backgroundRepeat = "no-repeat", i.style.backgroundOrigin = "content-box", /scale-down/.test(l["object-fit"]) ? h(o.img, (function() {
                    o.img.naturalWidth > i.width || o.img.naturalHeight > i.height ? i.style.backgroundSize = "contain" : i.style.backgroundSize = "auto"
                })) : i.style.backgroundSize = l["object-fit"].replace("none", "auto").replace("fill", "100% 100%"), h(o.img, (function(t) {
                    u(i, t.naturalWidth, t.naturalHeight)
                }))
            }

            function p(e, i) {
                var n = !c && !e;
                if (i = i || {}, e = e || "img", l && !i.skipTest || !o) return !1;
                "img" === e ? e = document.getElementsByTagName("img") : "string" == typeof e ? e = document.querySelectorAll(e) : "length" in e || (e = [e]);
                for (var a = 0; a < e.length; a++) e[a][t] = e[a][t] || {
                    skipTest: i.skipTest
                }, d(e[a]);
                n && (document.body.addEventListener("load", (function(t) {
                    "IMG" === t.target.tagName && p(t.target, {
                        skipTest: i.skipTest
                    })
                }), !0), c = !0, e = "img"), i.watchMQ && window.addEventListener("resize", p.bind(null, e, {
                    skipTest: i.skipTest
                }))
            }
            p.supportsObjectFit = n, p.supportsObjectPosition = l,
                function() {
                    function e(e, i) {
                        return e[t] && e[t].img && ("src" === i || "srcset" === i) ? e[t].img : e
                    }
                    l || (HTMLImageElement.prototype.getAttribute = function(t) {
                        return r.call(e(this, t), t)
                    }, HTMLImageElement.prototype.setAttribute = function(t, i) {
                        return s.call(e(this, t), t, String(i))
                    })
                }()
        }(), i(225), i(242), i(43), i(78);

    function o(t) {
        return (o = "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)
    }
    /*!
     * ClockPicker v0.0.7 (http://weareoutman.github.io/clockpicker/)
     * Copyright 2014 Wang Shenwei.
     * Licensed under MIT (https://github.com/weareoutman/clockpicker/blob/gh-pages/LICENSE)
     *
     * Further modified
     * Copyright 2015 Ching Yaw Hao.
     */
    ! function() {
        var t, e, i, n = window.jQuery,
            l = n(window),
            a = n(document),
            r = "http://www.w3.org/2000/svg",
            s = "SVGAngle" in window && ((e = document.createElement("div")).innerHTML = "<svg/>", t = (e.firstChild && e.firstChild.namespaceURI) == r, e.innerHTML = "", t),
            c = "transition" in (i = document.createElement("div").style) || "WebkitTransition" in i || "MozTransition" in i || "msTransition" in i || "OTransition" in i,
            u = "ontouchstart" in window,
            h = "mousedown" + (u ? " touchstart" : ""),
            d = "mousemove.clockpicker" + (u ? " touchmove.clockpicker" : ""),
            p = "mouseup.clockpicker" + (u ? " touchend.clockpicker" : ""),
            f = navigator.vibrate ? "vibrate" : navigator.webkitVibrate ? "webkitVibrate" : null;

        function m(t) {
            return document.createElementNS(r, t)
        }

        function v(t, e, i) {
            var n;
            return function() {
                var l = this,
                    o = arguments,
                    a = function() {
                        n = null, i || t.apply(l, o)
                    },
                    r = i && !n;
                clearTimeout(n), n = setTimeout(a, e), r && t.apply(l, o)
            }
        }

        function g(t) {
            return (t < 10 ? "0" : "") + t
        }
        var y = 0;
        var b = 135,
            x = 110,
            w = 80,
            k = 20,
            S = 2 * b,
            M = c ? 350 : 1,
            C = ['<div class="clockpicker picker">', '<div class="picker__holder">', '<div class="picker__frame">', '<div class="picker__wrap">', '<div class="picker__box">', '<div class="picker__date-display">', '<div class="clockpicker-display">', '<div class="clockpicker-display-column">', '<span class="clockpicker-span-hours text-primary"></span>', ":", '<span class="clockpicker-span-minutes"></span>', "</div>", '<div class="clockpicker-display-column clockpicker-display-am-pm">', '<div class="clockpicker-span-am-pm"></div>', "</div>", "</div>", "</div>", '<div class="picker__calendar-container">', '<div class="clockpicker-plate">', '<div class="clockpicker-canvas"></div>', '<div class="clockpicker-dial clockpicker-hours"></div>', '<div class="clockpicker-dial clockpicker-minutes clockpicker-dial-out"></div>', "</div>", '<div class="clockpicker-am-pm-block">', "</div>", "</div>", '<div class="picker__footer">', "</div>", "</div>", "</div>", "</div>", "</div>", "</div>"].join("");

        function T(t, e) {
            var i, l, o = this,
                r = n(C),
                c = r.find(".clockpicker-plate"),
                u = r.find(".picker__holder"),
                f = r.find(".clockpicker-hours"),
                T = r.find(".clockpicker-minutes"),
                O = r.find(".clockpicker-am-pm-block"),
                P = "INPUT" === t.prop("tagName"),
                E = P ? t : t.find("input"),
                I = (E.prop("type"), n("label[for=" + E.attr("id") + "]")),
                _ = this;
            this.id = (l = ++y + "", (i = "cp") ? i + l : l), this.element = t, this.holder = u, this.options = e, this.isAppended = !1, this.isShown = !1, this.currentView = "hours", this.isInput = P, this.input = E, this.label = I, this.popover = r, this.plate = c, this.hoursView = f, this.minutesView = T, this.amPmBlock = O, this.spanHours = r.find(".clockpicker-span-hours"), this.spanMinutes = r.find(".clockpicker-span-minutes"), this.spanAmPm = r.find(".clockpicker-span-am-pm"), this.footer = r.find(".picker__footer"), this.amOrPm = "", this.isTwelvehour = e.twelvehour, this.minTime = 0, this.maxTime = 0, this.minMinutes = 0, this.maxMinutes = 59, this.minHours = 0, this.maxHours = 23, this.isInvalidTimeScope = !1;
            var D = function(t) {
                var i = t + "Time";
                if (o[i] = e[t].split(":"), 4 === o[i][1].length) {
                    var n = o[i][1].replace(/\d+/g, "").toUpperCase();
                    o[i][1] = o[i][1].replace(/\D+/g, ""), "PM" === n && (o[i][0] = parseInt(o[i][0]) + 12)
                }
                if (2 !== o[i].length) o[i] = null;
                else
                    for (var l = 0; l < o[i].length; l++) o[i][l] = +o[i][l]
            };
            if (e.min && (D("min"), this.minMinutes = this.minTime[1], this.minHours = this.minTime[0]), e.max && (D("max"), this.minHours > this.maxHours || this.minHours === this.maxHours && this.minMinutes >= this.maxMinutes ? this.maxTime = 0 : (this.maxMinutes = this.maxTime[1], this.maxHours = this.maxTime[0])), e.twelvehour) {
                var $ = ['<div class="clockpicker-am-pm-block">', '<button type="button" class="btn-floating btn-flat clockpicker-button clockpicker-am-button">', "AM", "</button>", '<button type="button" class="btn-floating btn-flat clockpicker-button clockpicker-pm-button">', "PM", "</button>", "</div>"].join(""),
                    L = (n($), function(t) {
                        var e = "pm";
                        "PM" === t && (e = "am"), _.amOrPm = t, _.amPmBlock.children(".".concat(e, "-button")).removeClass("active"), _.amPmBlock.children(".".concat(t.toLowerCase(), "-button")).addClass("active"), _.spanAmPm.empty().append(t), o.disableOutOfRangeElements()
                    });
                e.ampmclickable ? (this.spanAmPm.empty(), n('<div id="click-am">AM</div>').on("click", (function() {
                    _.spanAmPm.children("#click-am").addClass("text-primary"), _.spanAmPm.children("#click-pm").removeClass("text-primary"), _.amOrPm = "AM"
                })).appendTo(this.spanAmPm), n('<div id="click-pm">PM</div>').on("click", (function() {
                    _.spanAmPm.children("#click-pm").addClass("text-primary"), _.spanAmPm.children("#click-am").removeClass("text-primary"), _.amOrPm = "PM"
                })).appendTo(this.spanAmPm)) : (n('<button type="button" class="btn-floating btn-flat clockpicker-button am-button" tabindex="1">AM</button>').on("click", (function() {
                    L("AM")
                })).appendTo(this.amPmBlock), n('<button type="button" class="btn-floating btn-flat clockpicker-button pm-button" tabindex="2">PM</button>').on("click", (function() {
                    L("PM")
                })).appendTo(this.amPmBlock))
            }
            e.darktheme && r.addClass("darktheme"), n('<button type="button" class="btn btn-flat clockpicker-button done-button" tabindex="' + (e.twelvehour ? "3" : "1") + '">' + e.donetext + "</button>").click(n.proxy(this.done, this)).appendTo(this.footer), n('<button type="button" class="btn btn-flat clockpicker-button clear-button" tabindex="' + (e.twelvehour ? "4" : "2") + '">' + e.cleartext + "</button>").click(n.proxy(this.clearInput, this)).appendTo(this.footer), this.spanHours.click(n.proxy(this.toggleView, this, "hours")), this.spanMinutes.click(n.proxy(this.toggleView, this, "minutes")), E.on("click.clockpicker", v(n.proxy(this.show, this), 100));
            var R, V, F, j, W = n('<div class="clockpicker-tick"></div>');
            if (e.twelvehour)
                for (R = 0; R < 12; R += e.hourstep) V = W.clone(), F = R / 6 * Math.PI, j = x, V.css("font-size", "140%"), V.css({
                    left: b + Math.sin(F) * j - k,
                    top: b - Math.cos(F) * j - k
                }), V.html(0 === R ? 12 : R), f.append(V), V.on(h, z), this.disableOutOfRangeElements();
            else
                for (R = 0; R < 24; R += e.hourstep) {
                    V = W.clone(), F = R / 6 * Math.PI;
                    var H = R > 0 && R < 13;
                    j = H ? w : x, V.css({
                        left: b + Math.sin(F) * j - k,
                        top: b - Math.cos(F) * j - k
                    }), H && V.css("font-size", "120%"), V.html(0 === R ? "00" : R), f.append(V), V.on(h, z), this.disableOutOfRangeElements()
                }
            var N = Math.max(e.minutestep, 5);
            for (R = 0; R < 60; R += N)
                for (R = 0; R < 60; R += 5) V = W.clone(), F = R / 30 * Math.PI, V.css({
                    left: b + Math.sin(F) * x - k,
                    top: b - Math.cos(F) * x - k
                }), V.css("font-size", "140%"), V.html(g(R)), T.append(V), V.on(h, z);

            function z(t, i) {
                var n = c.offset(),
                    l = /^touch/.test(t.type),
                    o = n.left + b,
                    r = n.top + b,
                    u = (l ? t.originalEvent.touches[0] : t).pageX - o,
                    h = (l ? t.originalEvent.touches[0] : t).pageY - r,
                    f = Math.sqrt(u * u + h * h),
                    m = !1;
                if (!i || !(f < x - k || f > x + k)) {
                    t.preventDefault();
                    var v = setTimeout((function() {
                        _.popover.addClass("clockpicker-moving")
                    }), 200);
                    s && c.append(_.canvas), _.setHand(u, h, !i, !0), a.off(d).on(d, (function(t) {
                        t.preventDefault();
                        var e = /^touch/.test(t.type),
                            i = (e ? t.originalEvent.touches[0] : t).pageX - o,
                            n = (e ? t.originalEvent.touches[0] : t).pageY - r;
                        (m || i !== u || n !== h) && (m = !0, _.setHand(i, n, !1, !0))
                    })), a.off(p).on(p, (function(t) {
                        a.off(p), t.preventDefault();
                        var n = /^touch/.test(t.type),
                            l = (n ? t.originalEvent.changedTouches[0] : t).pageX - o,
                            s = (n ? t.originalEvent.changedTouches[0] : t).pageY - r;
                        (i || m) && l === u && s === h && _.setHand(l, s);
                        _.hours, _.minutes;
                        var f = _.amOrPm,
                            g = _.maxHours,
                            y = _.minHours;
                        _.maxMinutes, _.minMinutes;
                        "PM" === f && (y < 12 && (y = 0), y > 12 && (y -= 12), g > 12 && (g -= 12)), _.isInvalidTimeScope ? (_.isInvalidTimeScope = !1, t.stopPropagation()) : "hours" === _.currentView ? _.toggleView("minutes", M / 2) : "hours" != _.currentView && e.autoclose && (_.minutesView.addClass("clockpicker-dial-out"), setTimeout((function() {
                            _.done()
                        }), M / 2), _.currentHours = 0), c.prepend(B), clearTimeout(v), _.popover.removeClass("clockpicker-moving"), a.off(d)
                    })), _.disableOutOfRangeElements()
                }
            }
            if (c.on(h, (function(t) {
                    0 === n(t.target).closest(".clockpicker-tick").length && z(t, !0)
                })), s) {
                var B = r.find(".clockpicker-canvas"),
                    Z = m("svg");
                Z.setAttribute("class", "clockpicker-svg"), Z.setAttribute("width", S), Z.setAttribute("height", S);
                var Y = m("g");
                Y.setAttribute("transform", "translate(" + b + "," + b + ")");
                var X = m("circle");
                X.setAttribute("class", "clockpicker-canvas-bearing"), X.setAttribute("cx", 0), X.setAttribute("cy", 0), X.setAttribute("r", 2);
                var U = m("line");
                U.setAttribute("x1", 0), U.setAttribute("y1", 0);
                var q = m("circle");
                q.setAttribute("class", "clockpicker-canvas-bg"), q.setAttribute("r", k);
                var G = m("circle");
                G.setAttribute("class", "clockpicker-canvas-fg"), G.setAttribute("r", 5), Y.appendChild(U), Y.appendChild(q), Y.appendChild(G), Y.appendChild(X), Z.appendChild(Y), B.append(Z), this.hand = U, this.bg = q, this.fg = G, this.bearing = X, this.g = Y, this.canvas = B
            }
            A(this.options.init)
        }

        function A(t) {
            t && "function" == typeof t && t()
        }
        T.DEFAULTS = {
            default: "",
            fromnow: 0,
            donetext: "Done",
            cleartext: "Clear",
            autoclose: !1,
            ampmclickable: !1,
            darktheme: !1,
            twelvehour: !1,
            vibrate: !0,
            hourstep: 1,
            minutestep: 1,
            ampmSubmit: !1,
            container: "body"
        }, T.prototype.toggle = function() {
            this[this.isShown ? "hide" : "show"]()
        }, T.prototype.locate = function() {
            var t = this.element;
            n(this.options.container).append(this.popover), t.offset(), t.outerWidth(), t.outerHeight(), this.options.align;
            this.popover.show()
        }, T.prototype.parseInputValue = function() {
            var t = this.input.prop("value") || this.options.default || "";
            if ("now" === t && (t = new Date(+new Date + this.options.fromnow)), t instanceof Date && (t = t.getHours() + ":" + t.getMinutes()), t = t.split(":"), this.hours = +t[0] || 0, this.minutes = +(t[1] + "").replace(/\D/g, "") || 0, this.hours = Math.round(this.hours / this.options.hourstep) * this.options.hourstep, this.minutes = Math.round(this.minutes / this.options.minutestep) * this.options.minutestep, this.options.twelvehour) {
                var e = (t[1] + "").replace(/\d+/g, "").toLowerCase();
                this.amOrPm = this.hours > 12 || "pm" === e ? "PM" : "AM"
            }
        }, T.prototype.show = function(t) {
            if (!this.isShown) {
                A(this.options.beforeShow), n(":input").each((function() {
                    n(this).attr("tabindex", -1)
                }));
                var e = this;
                this.input.blur(), this.popover.addClass("picker--opened"), this.input.addClass("picker__input picker__input--active"), n(document.body).css("overflow", "hidden"), this.isAppended || (this.popover.insertAfter(this.input), this.options.twelvehour && (this.amOrPm = "AM", this.options.ampmclickable ? (this.spanAmPm.children("#click-am").addClass("text-primary"), this.spanAmPm.children("#click-pm").removeClass("text-primary")) : (this.amPmBlock.children(".pm-button").removeClass("active"), this.amPmBlock.children(".am-button").addClass("active"), this.spanAmPm.empty().append("PM"))), l.on("resize.clockpicker" + this.id, (function() {
                    e.isShown && e.locate()
                })), this.isAppended = !0), this.parseInputValue(), 0 === this.hours && (this.hours = this.minHours), this.spanHours.html(g(this.hours)), this.spanMinutes.html(g(this.minutes)), this.options.twelvehour && this.spanAmPm.empty().append(this.amOrPm), this.disableOutOfRangeElements(), this.toggleView("hours"), this.locate(), this.isShown = !0, a.on("click.clockpicker." + this.id + " focusin.clockpicker." + this.id, v((function(t) {
                    var i = n(t.target);
                    0 === i.closest(e.popover.find(".picker__wrap")).length && 0 === i.closest(e.input).length && e.hide()
                }), 100)), a.on("keyup.clockpicker." + this.id, v((function(t) {
                    27 === t.keyCode && e.hide()
                }), 100)), A(this.options.afterShow)
            }
        }, T.prototype.hide = function() {
            A(this.options.beforeHide), this.input.removeClass("picker__input picker__input--active"), this.popover.removeClass("picker--opened"), n(document.body).css("overflow", "visible"), this.isShown = !1, n(":input").each((function(t) {
                n(this).attr("tabindex", t + 1)
            })), a.off("click.clockpicker." + this.id + " focusin.clockpicker." + this.id), a.off("keyup.clockpicker." + this.id), this.popover.hide(), A(this.options.afterHide)
        }, T.prototype.disableOutOfRangeElements = function() {
            var t = this,
                e = this.hours,
                i = this.minutes,
                l = this.currentView,
                o = this.isTwelvehour,
                a = this.amOrPm,
                r = this.maxHours,
                s = this.minHours,
                c = this.maxMinutes,
                u = this.minMinutes,
                h = n(".clockpicker-hours").children(),
                d = n(".clockpicker-minutes").children(),
                p = n(".am-button"),
                f = n(".pm-button"),
                m = n(".done-button");
            o && "minutes" === l && (m.removeClass("grey-text disabled"), "AM" !== a || e + 12 <= r ? "PM" !== a || e >= s || p.addClass("disabled") : f.addClass("disabled")), o && "PM" === a && (s < 12 && (s = 0), s > 12 && (s -= 12), r > 12 && (r -= 12)), o && "hours" === l && (p.removeClass("disabled"), f.removeClass("disabled"), ("AM" !== a || e >= s && e <= r) && ("PM" !== a || e >= s && e <= r) ? m.removeClass("grey-text disabled") : m.addClass("grey-text disabled")), "minutes" === l && (e === s && i < u || e === r && i > c ? m.addClass("grey-text disabled") : m.removeClass("grey-text disabled")), "hours" === l && h.each((function(e, i) {
                var l = i.innerHTML;
                t.isTwelvehour && 12 == l && (l = 0), l > r || l < s ? n(i).addClass("grey-text disabled") : n(i).removeClass("grey-text disabled")
            })), "minutes" === l && d.each((function(t, i) {
                s == e && i.innerHTML < u ? n(i).addClass("grey-text disabled") : r == e && i.innerHTML > c ? n(i).addClass("grey-text disabled") : n(i).removeClass("grey-text disabled")
            }))
        }, T.prototype.toggleView = function(t, e) {
            var i = !1;
            "minutes" === t && "visible" === n(this.hoursView).css("visibility") && (A(this.options.beforeHourSelect), i = !0);
            var l = "hours" === t,
                o = l ? this.hoursView : this.minutesView,
                a = l ? this.minutesView : this.hoursView;
            this.currentView = t, this.spanHours.toggleClass("text-primary", l), this.spanMinutes.toggleClass("text-primary", !l), a.addClass("clockpicker-dial-out"), o.css("visibility", "visible").removeClass("clockpicker-dial-out"), this.resetClock(e), clearTimeout(this.toggleViewTimer), this.toggleViewTimer = setTimeout((function() {
                a.css("visibility", "hidden")
            }), M), this.disableOutOfRangeElements(), i && A(this.options.afterHourSelect)
        }, T.prototype.resetClock = function(t) {
            var e = this.currentView,
                i = this[e],
                n = "hours" === e,
                l = i * (Math.PI / (n ? 6 : 30)),
                o = n && i > 0 && i < 13 ? w : x,
                a = Math.sin(l) * o,
                r = -Math.cos(l) * o,
                c = this;
            s && t ? (c.canvas.addClass("clockpicker-canvas-out"), setTimeout((function() {
                c.canvas.removeClass("clockpicker-canvas-out"), c.setHand(a, r)
            }), t)) : this.setHand(a, r)
        }, T.prototype.setHand = function(t, e, i, l) {
            var o, a, r = Math.atan2(t, -e),
                c = "hours" === this.currentView,
                u = Math.sqrt(t * t + e * e),
                h = this.options,
                d = c && u < (x + w) / 2,
                p = d ? w : x;
            o = c ? h.hourstep / 6 * Math.PI : h.minutestep / 30 * Math.PI, h.twelvehour && (p = x), r < 0 && (r = 2 * Math.PI + r), r = (a = Math.round(r / o)) * o, c ? (a *= h.hourstep, h.twelvehour || !d != a > 0 || (a += 12), h.twelvehour && 0 === a && (a = 12), 24 === a && (a = 0)) : 60 === (a *= h.minutestep) && (a = 0);
            var m = this.minHours,
                v = this.maxHours,
                y = this.minMinutes,
                b = this.maxMinutes,
                k = this.amOrPm;
            if (c) {
                var S = a;
                if ("PM" === this.amOrPm && (m < 12 && (m = 0), m > 12 && (m -= 12), v > 12 && (v -= 12)), this.isTwelvehour && 12 == S && (S = 0), S < m || S > v) return void(this.isInvalidTimeScope = !0);
                if (this.isTwelvehour && 12 === S) return void(this.isInvalidTimeScope = !0)
            } else {
                var M = this.hours;
                if ("PM" === k && (M += 12), M == m && a < y || M == v && a > b) return void(this.isInvalidTimeScope = !0)
            }
            if (c ? this.fg.setAttribute("class", "clockpicker-canvas-fg") : a % 5 == 0 ? this.fg.setAttribute("class", "clockpicker-canvas-fg") : this.fg.setAttribute("class", "clockpicker-canvas-fg active"), this[this.currentView] !== a && f && this.options.vibrate && (this.vibrateTimer || (navigator[f](10), this.vibrateTimer = setTimeout(n.proxy((function() {
                    this.vibrateTimer = null
                }), this), 100))), this[this.currentView] = a, this[c ? "spanHours" : "spanMinutes"].html(g(a)), s) {
                l || !c && a % 5 ? (this.g.insertBefore(this.hand, this.bearing), this.g.insertBefore(this.bg, this.fg), this.bg.setAttribute("class", "clockpicker-canvas-bg clockpicker-canvas-bg-trans")) : (this.g.insertBefore(this.hand, this.bg), this.g.insertBefore(this.fg, this.bg), this.bg.setAttribute("class", "clockpicker-canvas-bg"));
                var C = Math.sin(r) * p,
                    T = -Math.cos(r) * p;
                this.hand.setAttribute("x2", C), this.hand.setAttribute("y2", T), this.bg.setAttribute("cx", C), this.bg.setAttribute("cy", T), this.fg.setAttribute("cx", C), this.fg.setAttribute("cy", T)
            } else this[c ? "hoursView" : "minutesView"].find(".clockpicker-tick").each((function() {
                var t = n(this);
                t.toggleClass("active", a === +t.html())
            }))
        }, T.prototype.clearInput = function() {
            this.input.val(""), this.hide(), this.options.afterDone && "function" == typeof this.options.afterDone && this.options.afterDone(this.input, null)
        }, T.prototype.getTime = function(t) {
            this.parseInputValue();
            var e = this.hours;
            this.options.twelvehour && e < 12 && "PM" === this.amOrPm && (e += 12);
            var i = new Date;
            return i.setMinutes(this.minutes), i.setHours(e), i.setSeconds(0), t && t.apply(this.element, i) || i
        }, T.prototype.done = function() {
            A(this.options.beforeDone), this.hide(), this.label.addClass("active");
            var t = this.input.prop("value"),
                e = this.hours,
                i = ":" + g(this.minutes);
            this.isHTML5 && this.options.twelvehour && (this.hours < 12 && "PM" === this.amOrPm && (e += 12), 12 === this.hours && "AM" === this.amOrPm && (e = 0)), i = g(e) + i, !this.isHTML5 && this.options.twelvehour && (i += this.amOrPm), this.input.prop("value", i), i !== t && (this.input.trigger("change"), this.isInput || this.element.trigger("change")), this.options.autoclose && this.input.trigger("blur"), A(this.options.afterDone)
        }, T.prototype.remove = function() {
            this.element.removeData("clockpicker"), this.input.off("focus.clockpicker click.clockpicker"), this.isShown && this.hide(), this.isAppended && (l.off("resize.clockpicker" + this.id), this.popover.remove())
        }, n.fn.pickatime = function(t) {
            var e = Array.prototype.slice.call(arguments, 1);

            function i() {
                var i = n(this),
                    l = i.data("clockpicker");
                if (l) "function" == typeof l[t] && l[t].apply(l, e);
                else {
                    var a = n.extend({}, T.DEFAULTS, i.data(), "object" == o(t) && t);
                    i.data("clockpicker", new T(i, a))
                }
            }
            if (1 == this.length) {
                var l = i.apply(this[0]);
                return void 0 !== l ? l : this
            }
            return this.each(i)
        }, n(".time-picker-opener").on("click", (function(t) {
            t.stopPropagation(), t.preventDefault();
            var e = t.target.dataset.open;
            n("#".concat(e)).pickatime("picker").data("clockpicker").show()
        }))
    }();
    i(82);
    jQuery((function(t) {
        t.fn.dateTimePicker = function() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ", ",
                i = t(this)[0],
                n = t(".picker-opener[data-open='".concat(i.dataset.open, "']")),
                l = t(".timepicker[data-open='".concat(i.dataset.open, "']")),
                o = t("#".concat(i.dataset.open));
            o.pickadate({
                onClose: function() {
                    l.pickatime({
                        afterHide: function() {
                            l.trigger("change")
                        }
                    }).pickatime("picker").data("clockpicker").show()
                },
                format: "yyyy/mm/dd",
                formatSubmit: "yyyy/mm/dd"
            }), o.on("change", (function() {
                var t = l.val(),
                    i = o.val();
                n[0].value = "".concat(i).concat("" !== t && "" !== i ? e : "").concat(t)
            })), l.on("change", (function() {
                var t = l.val(),
                    i = o.val();
                n[0].value = "".concat(i).concat("" !== t && "" !== i ? e : "").concat(t)
            }))
        }
    }));
    i(210), i(212), i(243), i(244), i(156), i(157), i(158), i(213), i(159), i(160), i(161), i(226), i(245);
    jQuery((function(t) {
        var e, i = t(window),
            n = t(document),
            l = "http://www.w3.org/2000/svg",
            o = "SVGAngle" in window && function() {
                var t = document.createElement("div");
                t.innerHTML = "<svg/>";
                var e = (t.firstChild && t.firstChild.namespaceURI) == l;
                return t.innerHTML = "", e
            }(),
            a = "transition" in (e = document.createElement("div").style) || "WebkitTransition" in e || "MozTransition" in e || "msTransition" in e || "OTransition" in e,
            r = "ontouchstart" in window,
            s = "mousedown ".concat(r ? " touchstart" : ""),
            c = "mousemove.clockpicker ".concat(r ? " touchmove.clockpicker" : ""),
            u = "mouseup.clockpicker ".concat(r ? " touchend.clockpicker" : ""),
            h = navigator.vibrate ? "vibrate" : navigator.webkitVibrate ? "webkitVibrate" : null;

        function d(t) {
            return document.createElementNS(l, t)
        }

        function p(t, e, i) {
            var n;
            return function() {
                var l = this,
                    o = arguments,
                    a = function() {
                        n = null, i || t.apply(l, o)
                    },
                    r = i && !n;
                clearTimeout(n), n = setTimeout(a, e), r && t.apply(l, o)
            }
        }

        function f(t) {
            return (t < 10 ? "0" : "") + t
        }
        var m = 0;
        var v = 135,
            g = 110,
            y = 80,
            b = 20,
            x = 2 * v,
            w = a ? 350 : 1,
            k = ['<div class="clockpicker_container clockpicker picker">', '<div class="picker__holder">', '<div class="picker__frame">', '<div class="picker__wrap">', '<div class="picker__box">', '<div class="picker__date-display">', '<div class="clockpicker-display">', '<div class="clockpicker-display-column">', '<span class="clockpicker-span-hours text-primary" tabindex="1" aria-label="Choose hour"></span>', ":", '<span class="clockpicker-span-minutes" tabindex="2" aria-label="Choose minute"></span>', "</div>", '<div class="clockpicker-display-column clockpicker-display-am-pm">', '<div class="clockpicker-am-pm-block"></div>', "</div>", "</div>", "</div>", '<div class="picker__calendar-container">', '<div class="clockpicker-plate">', '<div class="clockpicker-canvas"></div>', '<div class="clockpicker-dial clockpicker-hours"></div>', '<div class="clockpicker-dial clockpicker-minutes clockpicker-dial-out"></div>', "</div>", '<div class="picker__footer">', "</div>", "</div>", "</div>", "</div>", "</div>", "</div>"].join("");

        function S(e) {
            var i, l, a = this,
                r = t(k),
                h = r.find(".clockpicker-plate"),
                S = r.find(".picker__holder"),
                C = r.find(".clockpicker-hours"),
                T = r.find(".clockpicker-minutes"),
                A = r.find(".clockpicker-am-pm-block"),
                O = e.children("i"),
                P = e.children("input"),
                E = (P.prop("type"), t("label[for=" + P.attr("id") + "]")),
                I = this,
                _ = {};
            if (_.default = e.attr("default") || "", _.fromnow = e.attr("fromnow") || 0, _.donetext = e.attr("donetext") || "OK", _.cleartext = e.attr("cleartext") || "Clear", _.closetext = e.attr("closetext") || "Close", _.autoclose = e.attr("autoclose") || !1, _.darktheme = e.attr("darktheme") || !1, _.twelvehour = e.attr("twelvehour") || !1, _.vibrate = e.attr("vibrate") || !0, _.hourstep = e.attr("hourstep") || 1, _.minutestep = e.attr("minutestep") || 1, _.inputshowpicker = e.attr("inputshowpicker") || !1, _.min = e.attr("min") || 0, _.max = e.attr("max") || 0, this.id = (l = ++m + "", (i = "cp") ? i + l : l), this.element = e, this.holder = S, this.options = _, this.isAppended = !1, this.isShown = !1, this.currentView = "hours", this.input = P, this.icon = O, this.label = E, this.popover = r, this.plate = h, this.hoursView = C, this.minutesView = T, this.amPmBlock = A, this.spanHours = r.find(".clockpicker-span-hours"), this.spanMinutes = r.find(".clockpicker-span-minutes"), this.footer = r.find(".picker__footer"), this.amOrPm = "", this.isTwelvehour = _.twelvehour, this.minTime = _.min, this.maxTime = _.max, this.minMinutes = 0, this.maxMinutes = 59, this.minHours = 0, this.maxHours = 23, this.isInvalidTimeScope = !1, this.hoursBeforeChange = null, this.minutesBeforeChange = null, _.minutestep > 20) _.minutestep = 20;
            else if (1 != _.minutestep && _.minutestep % 5) {
                var D = _.minutestep % 5;
                D >= 2.5 ? _.minutestep += 5 - D : _.minutestep -= D
            }
            this.icon.removeClass("active"), this.input.on("focus", (function() {
                return a.icon.addClass("active")
            })), this.input.on("blur", (function() {
                return a.icon.removeClass("active")
            }));
            var $ = function(t) {
                var e = t + "Time";
                if (a[e] = _[t].split(":"), 4 === a[e][1].length) {
                    var i = a[e][1].replace(/\d+/g, "").toUpperCase();
                    a[e][1] = a[e][1].replace(/\D+/g, ""), "PM" === i && (a[e][0] = parseInt(a[e][0]) + 12)
                }
                if (2 !== a[e].length) a[e] = null;
                else
                    for (var n = 0; n < a[e].length; n++) a[e][n] = +a[e][n]
            };
            _.min && ($("min"), this.minMinutes = this.minTime[1], this.minHours = this.minTime[0]), _.max && ($("max"), this.minHours > this.maxHours || this.minHours === this.maxHours && this.minMinutes >= this.maxMinutes ? this.maxTime = 0 : (this.maxMinutes = this.maxTime[1], this.maxHours = this.maxTime[0])), _.twelvehour && (t('<span class="am" aria-label="change to am" tabindex="3">AM</span>').on("click", (function() {
                I.togglePeriod("AM")
            })).appendTo(this.amPmBlock), t('<span class="pm" aria-label="change to pm" tabindex="4">PM</span>').on("click", (function() {
                I.togglePeriod("PM")
            })).appendTo(this.amPmBlock)), _.darktheme && r.addClass("darktheme"), t('<button type="button" class="btn btn-flat clockpicker-button clear-button" aria-label="Clear input" tabindex="' + (_.twelvehour ? "5" : "3") + '">' + _.cleartext + "</button>").click(t.proxy(this.clearInput, this)).appendTo(this.footer), t('<button type="button" class="btn btn-flat clockpicker-button close-button" aria-label="Close picker" tabindex="' + (_.twelvehour ? "6" : "4") + '">' + _.closetext + "</button>").click(t.proxy(this.closeInput, this)).appendTo(this.footer), t('<button type="button" class="btn btn-flat clockpicker-button done-button" aria-label="save" tabindex="' + (_.twelvehour ? "7" : "5") + '">' + _.donetext + "</button>").click(t.proxy(this.done, this)).appendTo(this.footer), this.spanHours.click(t.proxy(this.toggleView, this, "hours")), this.spanMinutes.click(t.proxy(this.toggleView, this, "minutes"));
            var L, R, V, F, j = t('<div class="clockpicker-tick"></div>');
            if (_.twelvehour)
                for (L = 0; L < 12; L += _.hourstep) R = j.clone(), V = L / 6 * Math.PI, F = g, R.css("font-size", "140%"), R.css({
                    left: v + Math.sin(V) * F - b,
                    top: v - Math.cos(V) * F - b
                }), R.html(0 === L ? 12 : L), C.append(R), R.on(s, N), this.disableOutOfRangeElements();
            else
                for (L = 0; L < 24; L += _.hourstep) {
                    R = j.clone(), V = L / 6 * Math.PI;
                    var W = L > 0 && L < 13;
                    F = W ? y : g, R.css({
                        left: v + Math.sin(V) * F - b,
                        top: v - Math.cos(V) * F - b
                    }), W && R.css("font-size", "120%"), R.html(0 === L ? "00" : L), C.append(R), R.on(s, N), this.disableOutOfRangeElements()
                }
            var H = Math.max(_.minutestep, 5);
            for (L = 0; L < 60; L += H)
                for (L = 0; L < 60; L += 5) R = j.clone(), V = L / 30 * Math.PI, R.css({
                    left: v + Math.sin(V) * g - b,
                    top: v - Math.cos(V) * g - b
                }), R.css("font-size", "140%"), R.html(f(L)), T.append(R), R.on(s, N);

            function N(t, e) {
                var i = h.offset(),
                    l = /^touch/.test(t.type),
                    a = i.left + v,
                    r = i.top + v,
                    s = (l ? t.originalEvent.touches[0] : t).pageX - a,
                    d = (l ? t.originalEvent.touches[0] : t).pageY - r,
                    p = Math.sqrt(s * s + d * d),
                    f = !1;
                if (!e || !(p < g - b || p > g + b)) {
                    t.preventDefault();
                    var m = setTimeout((function() {
                        I.popover.addClass("clockpicker-moving")
                    }), 200);
                    o && h.append(I.canvas), I.setHand(s, d, !e, !0), n.off(c).on(c, (function(t) {
                        t.preventDefault();
                        var e = /^touch/.test(t.type),
                            i = (e ? t.originalEvent.touches[0] : t).pageX - a,
                            n = (e ? t.originalEvent.touches[0] : t).pageY - r;
                        (f || i !== s || n !== d) && (f = !0, I.setHand(i, n, !1, !0))
                    })), n.off(u).on(u, (function(t) {
                        n.off(u), t.preventDefault();
                        var i = /^touch/.test(t.type),
                            l = (i ? t.originalEvent.changedTouches[0] : t).pageX - a,
                            o = (i ? t.originalEvent.changedTouches[0] : t).pageY - r;
                        (e || f) && l === s && o === d && I.setHand(l, o);
                        I.hours, I.minutes;
                        var p = I.amOrPm,
                            v = I.maxHours,
                            g = I.minHours;
                        I.maxMinutes, I.minMinutes;
                        "PM" === p && (g < 12 && (g = 0), g > 12 && (g -= 12), v > 12 && (v -= 12)), I.isInvalidTimeScope ? (I.isInvalidTimeScope = !1, t.stopPropagation()) : "hours" === I.currentView ? I.toggleView("minutes", w / 2) : "hours" != I.currentView && _.autoclose && (I.minutesView.addClass("clockpicker-dial-out"), setTimeout((function() {
                            I.done()
                        }), w / 2), I.currentHours = 0), h.prepend(z), clearTimeout(m), I.popover.removeClass("clockpicker-moving"), n.off(c)
                    })), I.disableOutOfRangeElements()
                }
            }
            if (h.on(s, (function(e) {
                    0 === t(e.target).closest(".clockpicker-tick").length && N(e, !0)
                })), o) {
                var z = r.find(".clockpicker-canvas"),
                    B = d("svg");
                B.setAttribute("class", "clockpicker-svg"), B.setAttribute("width", x), B.setAttribute("height", x);
                var Z = d("g");
                Z.setAttribute("transform", "translate(" + v + "," + v + ")");
                var Y = d("circle");
                Y.setAttribute("class", "clockpicker-canvas-bearing"), Y.setAttribute("cx", 0), Y.setAttribute("cy", 0), Y.setAttribute("r", 2);
                var X = d("line");
                X.setAttribute("x1", 0), X.setAttribute("y1", 0);
                var U = d("circle");
                U.setAttribute("class", "clockpicker-canvas-bg"), U.setAttribute("r", b);
                var q = d("circle");
                q.setAttribute("class", "clockpicker-canvas-fg"), q.setAttribute("r", 5), Z.appendChild(X), Z.appendChild(U), Z.appendChild(q), Z.appendChild(Y), B.appendChild(Z), z.append(B), this.hand = X, this.bg = U, this.fg = q, this.bearing = Y, this.g = Z, this.canvas = z
            }
            var G = function(t) {
                var e = I.hours,
                    i = I.isTwelvehour,
                    n = I.amOrPm,
                    l = I.currentView,
                    o = I.maxHours,
                    a = I.minHours,
                    r = I.maxMinutes,
                    s = I.minMinutes;
                return i && "hours" === l && "PM" === n && t < 12 && (t += 12), i && "minutes" === l && "PM" === n && (e += 12), "hours" === l && (t > o || t < a) || ("minutes" === l && e == a && t < s || "minutes" === l && e == o && t > r)
            };
            r.find(".clockpicker-span-hours").on("keydown", (function(t) {
                9 === t.keyCode && t.shiftKey && (t.preventDefault(), r.find(".done-button").focus())
            })), r.find(".done-button").on("keydown", (function(t) {
                9 !== t.keyCode || t.shiftKey || (t.preventDefault(), r.find(".clockpicker-span-hours").focus())
            })), O.attr("tabindex", "0"), O.attr("aria-haspopup", "true"), O.on("keydown", (function(t) {
                32 !== t.keyCode && 13 !== t.keyCode || p(a.show(), 100)
            })), a.spanHours.on("keydown", (function(t) {
                var e;
                if (38 === t.keyCode) {
                    if ("hours" !== a.currentView && a.toggleView("hours"), a.isTwelvehour)
                        if (11 === a.hours) {
                            e = a.hours + 1;
                            var i = "AM" === a.amOrPm ? "PM" : "AM";
                            I.togglePeriod(i)
                        } else e = 12 === a.hours ? 1 : a.hours + 1;
                    else e = 23 === a.hours ? 0 : a.hours + 1;
                    G(e) && (a.isTwelvehour && a.minHours <= 12 && I.togglePeriod("AM"), e = a.minHours), a.hours = e, a.spanHours.html(f(a.hours)), a.resetClock()
                }
                if (40 === t.keyCode) {
                    if ("hours" !== a.currentView && a.toggleView("hours"), a.isTwelvehour)
                        if (1 === a.hours) e = 12;
                        else if (12 === a.hours) {
                        e = a.hours - 1;
                        var n = "AM" === a.amOrPm ? "PM" : "AM";
                        I.togglePeriod(n)
                    } else e = a.hours - 1;
                    else e = 0 === a.hours ? 23 : a.hours - 1;
                    G(e) && (a.isTwelvehour && a.maxHours >= 12 && I.togglePeriod("PM"), e = a.maxHours), a.hours = e, a.spanHours.html(f(a.hours)), a.resetClock()
                }
                13 === t.keyCode && a.toggleView("hours")
            })), a.isTwelvehour && (r.find(".am").on("keydown", (function(t) {
                13 === t.keyCode && (t.preventDefault(), I.togglePeriod("AM"))
            })), r.find(".pm").on("keydown", (function(t) {
                13 === t.keyCode && (t.preventDefault(), I.togglePeriod("PM"))
            }))), a.spanMinutes.on("keydown", (function(t) {
                var e;
                if (38 === t.keyCode) {
                    if ("minutes" !== a.currentView && a.toggleView("minutes"), e = 59 === a.minutes ? 0 : a.minutes + 1, G(e)) {
                        var i = a.hours,
                            n = a.amOrPm,
                            l = a.minHours,
                            o = a.maxHours,
                            r = a.minMinutes;
                        "PM" === n && (i += 12), i === l && (e = r), i === o && (e = 0)
                    }
                    a.minutes = e, a.spanMinutes.html(f(a.minutes)), a.resetClock()
                }
                if (40 === t.keyCode) {
                    if ("minutes" !== a.currentView && a.toggleView("minutes"), e = 0 === a.minutes ? 59 : a.minutes - 1, G(e)) {
                        var s = a.hours,
                            c = a.amOrPm,
                            u = a.minHours,
                            h = a.maxHours,
                            d = a.maxMinutes;
                        "PM" === c && (s += 12), s === u && (e = 59), s === h && (e = d)
                    }
                    a.minutes = e, a.spanMinutes.html(f(a.minutes)), a.resetClock()
                }
                13 === t.keyCode && a.toggleView("minutes")
            })), r.find(".close-button").on("click", (function() {
                a.close()
            })), (_.inputshowpicker ? P : O).on("click.clockpicker", p(t.proxy(a.show, a), 100)), M(this.options.init)
        }

        function M(t) {
            t && "function" == typeof t && t()
        }
        S.DEFAULTS = {
            default: "",
            fromnow: 0,
            donetext: "OK",
            cleartext: "Clear",
            closetext: "Cancel",
            autoclose: !1,
            darktheme: !1,
            twelvehour: !1,
            vibrate: !0,
            hourstep: 1,
            minutestep: 1,
            inputshowpicker: !1
        }, S.prototype.toggle = function() {
            this[this.isShown ? "hide" : "show"]()
        }, S.prototype.locate = function() {
            var e = this.element;
            t("body").append(this.popover), e.offset(), e.outerWidth(), e.outerHeight(), this.options.align;
            this.popover.show()
        }, S.prototype.parseInputValue = function() {
            var t = this.input.prop("value") || this.options.default || "";
            if ("now" === t && (t = new Date(+new Date + this.options.fromnow)), t instanceof Date && (t = t.getHours() + ":" + t.getMinutes()), t = t.split(":"), this.hours = +t[0] || 0, this.minutes = +(t[1] + "").replace(/\D/g, "") || 0, this.hours = Math.round(this.hours / this.options.hourstep) * this.options.hourstep, this.minutes = Math.round(this.minutes / this.options.minutestep) * this.options.minutestep, this.options.twelvehour) {
                var e = (t[1] + "").replace(/\d+/g, "").toLowerCase();
                this.amOrPm = this.hours > 12 || "pm" === e ? "PM" : "AM"
            }
        }, S.prototype.show = function(e) {
            if (!this.isShown) {
                M(this.options.beforeShow), t(":input").each((function() {
                    t(this).attr("tabindex", -1)
                }));
                var l = this;
                this.input.blur(), this.popover.addClass("picker--opened"), this.input.addClass("picker__input picker__input--active"), this.options.inputshowpicker && this.input.siblings("label").addClass("active"), t(document.body).css("overflow", "hidden"), this.isAppended || (this.popover.insertAfter(this.input), this.options.twelvehour && (this.amOrPm = "AM", this.amPmBlock.children(".pm").removeClass("active"), this.amPmBlock.children(".am").addClass("active")), i.on("resize.clockpicker" + this.id, (function() {
                    l.isShown && l.locate()
                })), this.isAppended = !0), this.parseInputValue(), 0 === this.hours && (this.hours = this.minHours), this.hoursBeforeChange = this.hours, this.minutesBeforeChange = this.minutes, this.spanHours.html(f(this.hours)), this.spanMinutes.html(f(this.minutes)), this.options.twelvehour && this.togglePeriod(this.amOrPm), this.disableOutOfRangeElements(), this.toggleView("hours"), this.locate(), this.isShown = !0, this.spanHours.focus(), n.on("click.clockpicker." + this.id + " focusin.clockpicker." + this.id, p((function(e) {
                    var i = t(e.target);
                    0 === i.closest(l.popover.find(".picker__wrap")).length && 0 === i.closest(l.input).length && l.hide()
                }), 100)), n.on("keyup.clockpicker." + this.id, p((function(t) {
                    27 === t.keyCode && l.hide()
                }), 100)), M(this.options.afterShow)
            }
        }, S.prototype.hide = function() {
            M(this.options.beforeHide), this.input.removeClass("picker__input picker__input--active"), this.popover.removeClass("picker--opened"), t(document.body).css("overflow", "visible"), this.isShown = !1, t(":input").each((function() {
                t(this).attr("tabindex", 0)
            })), n.off("click.clockpicker." + this.id + " focusin.clockpicker." + this.id), n.off("keyup.clockpicker." + this.id), this.input.trigger("blur"), this.popover.hide(), M(this.options.afterHide)
        }, S.prototype.close = function() {
            this.hours = this.hoursBeforeChange, this.minutes = this.minutesBeforeChange, this.hide()
        }, S.prototype.disableOutOfRangeElements = function() {
            var e = this,
                i = this.hours,
                n = this.minutes,
                l = this.currentView,
                o = this.isTwelvehour,
                a = this.amOrPm,
                r = this.maxHours,
                s = this.minHours,
                c = this.maxMinutes,
                u = this.minMinutes,
                h = this.options,
                d = t(".clockpicker-hours").children(),
                p = t(".clockpicker-minutes").children(),
                f = t(".am"),
                m = t(".pm"),
                v = t(".done-button");
            o && "minutes" === l && (v.removeClass("grey-text disabled"), "AM" !== a || i + 12 <= r || !h.max ? "PM" !== a || i >= s || !h.min || f.addClass("disabled") : m.addClass("disabled")), o && "PM" === a && (s < 12 && (s = 0), s > 12 && (s -= 12), r > 12 && (r -= 12)), o && "hours" === l && (f.removeClass("disabled"), m.removeClass("disabled"), ("AM" !== a || i >= s && i <= r) && ("PM" !== a || i >= s && i <= r || !h.max) ? v.removeClass("grey-text disabled") : v.addClass("grey-text disabled")), "minutes" === l && (i === s && n < u || i === r && n > c ? v.addClass("grey-text disabled") : v.removeClass("grey-text disabled")), "hours" === l && d.each((function(i, n) {
                var l = n.innerHTML;
                e.isTwelvehour && 12 == l && (l = 0), l > r || l < s ? t(n).addClass("grey-text disabled") : t(n).removeClass("grey-text disabled")
            })), "minutes" === l && p.each((function(n, l) {
                s == i && l.innerHTML < u ? t(l).addClass("grey-text disabled") : r == i && l.innerHTML > c ? t(l).addClass("grey-text disabled") : l.innerHTML % e.options.minutestep != 0 ? t(l).addClass("grey-text disabled") : t(l).removeClass("grey-text disabled")
            }))
        }, S.prototype.toggleView = function(e, i) {
            var n = !1;
            "minutes" === e && "visible" === t(this.hoursView).css("visibility") && (M(this.options.beforeHourSelect), n = !0);
            var l = "hours" === e,
                o = l ? this.hoursView : this.minutesView,
                a = l ? this.minutesView : this.hoursView;
            this.currentView = e, this.spanHours.toggleClass("text-primary", l), this.spanMinutes.toggleClass("text-primary", !l), a.addClass("clockpicker-dial-out"), o.css("visibility", "visible").removeClass("clockpicker-dial-out"), this.resetClock(i), clearTimeout(this.toggleViewTimer), this.toggleViewTimer = setTimeout((function() {
                a.css("visibility", "hidden")
            }), w), this.disableOutOfRangeElements(), n && M(this.options.afterHourSelect)
        }, S.prototype.togglePeriod = function(t) {
            var e = "pm";
            "PM" === t && (e = "am"), this.amOrPm = t, this.amPmBlock.children(".".concat(e.toLowerCase())).removeClass("active"), this.amPmBlock.children(".".concat(t.toLowerCase())).addClass("active"), this.disableOutOfRangeElements()
        }, S.prototype.resetClock = function(t) {
            var e = this.currentView,
                i = this[e],
                n = "hours" === e,
                l = i * (Math.PI / (n ? 6 : 30)),
                a = n && i > 0 && i < 13 ? y : g,
                r = Math.sin(l) * a,
                s = -Math.cos(l) * a,
                c = this;
            o && t ? (c.canvas.addClass("clockpicker-canvas-out"), setTimeout((function() {
                c.canvas.removeClass("clockpicker-canvas-out"), c.setHand(r, s)
            }), t)) : this.setHand(r, s)
        }, S.prototype.setHand = function(e, i, n, l) {
            var a, r, s = Math.atan2(e, -i),
                c = "hours" === this.currentView,
                u = Math.sqrt(e * e + i * i),
                d = this.options,
                p = c && u < (g + y) / 2,
                m = p ? y : g;
            a = c ? d.hourstep / 6 * Math.PI : d.minutestep / 30 * Math.PI, d.twelvehour && (m = g), s < 0 && (s = 2 * Math.PI + s), s = (r = Math.round(s / a)) * a, c ? (r *= d.hourstep, d.twelvehour || !p != r > 0 || (r += 12), d.twelvehour && 0 === r && (r = 12), 24 === r && (r = 0)) : 60 === (r *= d.minutestep) && (r = 0);
            var v = this.minHours,
                b = this.maxHours,
                x = this.minMinutes,
                w = this.maxMinutes,
                k = this.amOrPm;
            if (c) {
                var S = r;
                if ("PM" === this.amOrPm && (v < 12 && (v = 0), v > 12 && (v -= 12), b > 12 && (b -= 12)), this.isTwelvehour && 12 == S && (S = 0), S < v || S > b) return void(this.isInvalidTimeScope = !0);
                if (this.isTwelvehour && 12 === S) return void(this.isInvalidTimeScope = !0)
            } else {
                var M = this.hours;
                if ("PM" === k && (M += 12), M == v && r < x || M == b && r > w) return void(this.isInvalidTimeScope = !0)
            }
            if (c ? this.fg.setAttribute("class", "clockpicker-canvas-fg") : r % 5 == 0 ? this.fg.setAttribute("class", "clockpicker-canvas-fg") : this.fg.setAttribute("class", "clockpicker-canvas-fg active"), this[this.currentView] !== r && h && this.options.vibrate && (this.vibrateTimer || (navigator[h](10), this.vibrateTimer = setTimeout(t.proxy((function() {
                    this.vibrateTimer = null
                }), this), 100))), this[this.currentView] = r, this[c ? "spanHours" : "spanMinutes"].html(f(r)), o) {
                l || !c && r % 5 ? (this.g.insertBefore(this.hand, this.bearing), this.g.insertBefore(this.bg, this.fg), this.bg.setAttribute("class", "clockpicker-canvas-bg clockpicker-canvas-bg-trans")) : (this.g.insertBefore(this.hand, this.bg), this.g.insertBefore(this.fg, this.bg), this.bg.setAttribute("class", "clockpicker-canvas-bg"));
                var C = Math.sin(s) * m,
                    T = -Math.cos(s) * m;
                this.hand.setAttribute("x2", C), this.hand.setAttribute("y2", T), this.bg.setAttribute("cx", C), this.bg.setAttribute("cy", T), this.fg.setAttribute("cx", C), this.fg.setAttribute("cy", T)
            } else this[c ? "hoursView" : "minutesView"].find(".clockpicker-tick").each((function() {
                var e = t(this);
                e.toggleClass("active", r === +e.html())
            }))
        }, S.prototype.clearInput = function() {
            this.input.val(""), this.hide(), this.options.afterDone && "function" == typeof this.options.afterDone && this.options.afterDone(this.input, null)
        }, S.prototype.getTime = function(t) {
            this.parseInputValue();
            var e = this.hours;
            this.options.twelvehour && e < 12 && "PM" === this.amOrPm && (e += 12);
            var i = new Date;
            return i.setMinutes(this.minutes), i.setHours(e), i.setSeconds(0), t && t.apply(this.element, i) || i
        }, S.prototype.done = function() {
            M(this.options.beforeDone), this.hide(), this.label.addClass("active");
            var t = this.input.prop("value"),
                e = this.hours,
                i = ":" + f(this.minutes);
            this.isHTML5 && this.options.twelvehour && (this.hours < 12 && "PM" === this.amOrPm && (e += 12), 12 === this.hours && "AM" === this.amOrPm && (e = 0)), i = f(e) + i, !this.isHTML5 && this.options.twelvehour && (i += this.amOrPm), this.input.prop("value", i), i !== t && this.input.trigger("change"), this.options.autoclose && this.input.trigger("blur"), M(this.options.afterDone)
        }, S.prototype.remove = function() {
            this.element.removeData("clockpicker"), this.input.off("focus.clockpicker click.clockpicker"), this.isShown && this.hide(), this.isAppended && (i.off("resize.clockpicker" + this.id), this.popover.remove())
        }, t.fn.timepicker = function(e) {
            var i = Array.prototype.slice.call(arguments, 1);

            function n() {
                var n = t(this),
                    l = n.data("clockpicker");
                l ? "function" == typeof l[e] && l[e].apply(l, i) : n.data("clockpicker", new S(n))
            }
            if (1 == this.length) {
                var l = n.apply(this[0]);
                return void 0 !== l ? l : this
            }
            return this.each(n)
        }, t("div.timepicker").timepicker(), t("#time-picker-opener").on("click", (function(e) {
            e.stopPropagation(), e.preventDefault();
            var i = e.target.dataset.open;
            t("#".concat(i)).timepicker("picker").data("clockpicker").show()
        }))
    }));
    i(162), i(163), i(164), i(165), i(217), i(166), i(169), i(121), i(126), i(170)
}]);
//# sourceMappingURL=mdb.min.js.map