amsul / pickadate.js

The mobile-friendly, responsive, and lightweight jQuery date & time input picker.
http://amsul.ca/pickadate.js
MIT License
7.7k stars 1.01k forks source link

materialize datepicker not working in chrome version Version 73.0.3683.75 (Official Build) (64-bit). #1139

Closed jigs144379 closed 5 years ago

jigs144379 commented 5 years ago

materialize datepicker not working in chrome version Version 73.0.3683.75 (Official Build) (64-bit).

DanielRuf commented 5 years ago

Hi @jigs144379,

can you test if the datepicker works with Chrome 72? I think it is a regression in Chrome with some race conditions combined.

So far I found no reliable solution. See https://github.com/amsul/pickadate.js/issues/1138

DanielRuf commented 5 years ago

Closing as duplicate of https://github.com/amsul/pickadate.js/issues/1138

jigs144379 commented 5 years ago

Hello Team,

Just replace below Close, Set, Clear event code in your pick js and it is working fine. I have added a timeout and remove some modification.

====================Start=========== close: function (t) { return t && (T.$root.off("focus.toOpen")[0].focus(), setTimeout(function () { T.$root.on("focus.toOpen", m) }, 0)), C.removeClass(x.active), a(r, "expanded", !1), //new version code change

                        setTimeout(function () {
                            T.$root.removeClass(x.opened + " " + x.focused), a(T.$root[0], "hidden", !0)
                        }, 1000000),

                    setTimeout(function () {
                        $('.picker--opened .picker__today').removeAttr("disabled")
                        $('.picker--opened .picker__clear').removeAttr("disabled")
                        $('.picker--opened .picker__close').removeAttr("disabled")
                        $('.picker--opened .picker__select--month').removeAttr("disabled")
                        $('.picker--opened .picker__select--year').removeAttr("disabled")

                        if (t) {
                            setTimeout(function () {
                                T.$root.removeClass(x.opened + " " + x.focused), a(T.$root[0], "hidden", !0)
                            }, 0)
                        }
                    }, 0)
                        //================
                        , b.open ? (b.open = !1, y && c.css("overflow", "").css("padding-right", "-=" + n()), u.off("." + b.id), T.trigger("close")) : T
                },
                clear: function (t) {
                    setTimeout(function () {
                        T.$root.removeClass(x.opened + " " + x.focused)
                    }, 0)
                    return T.set("clear", null, t)
                },
                set: function (e, i, n) {

                    //console.log(n);
                    //console.log(e);

                    if (e != 'highlight') {

                        setTimeout(function () {

                            T.$root.removeClass(x.opened + " " + x.focused)
                        }, 0)
                    } else {

                        setTimeout(function () {
                            $('.picker--opened .picker__today').removeAttr("disabled")
                            $('.picker--opened .picker__clear').removeAttr("disabled")
                            $('.picker--opened .picker__close').removeAttr("disabled")
                            $('.picker--opened .picker__select--month').removeAttr("disabled")
                            $('.picker--opened .picker__select--year').removeAttr("disabled")
                        }, 0)

                    }

                    var a, r, o = t.isPlainObject(e),
                        s = o ? e : {};
                    if (n = o && t.isPlainObject(i) ? i : n || {}, e) {
                        o || (s[e] = i);
                        for (a in s) r = s[a], a in T.component.item && (void 0 === r && (r = null), T.component.set(a, r, n)), ("select" == a || "clear" == a) && C.val("clear" == a ? "" : T.get(a, w.format)).trigger("change");
                        T.render()
                    }
                    if (e != 'highlight') {
                        //new version code change
                        T.$root.removeClass(x.opened + " " + x.focused);
                    }
                    //===========end

Please any concern regarding on this please let us know.

DanielRuf commented 5 years ago

Please post this in the materialize repo as they use a customized version of pickadate.

DanielRuf commented 5 years ago

1000000),

This makes no sense at all.

jigs144379 commented 5 years ago

Yes, I agree, but I have no other solution and short timeline so just I do it, I m using only materialize js, not a picadate.js below is my all js code of materializing. if you have better solution in materialize js then please provide us.

if ("undefined" == typeof jQuery) { var jQuery; jQuery = "function" == typeof require ? $ = require("jQuery") : $ } $.easing.jswing = $.easing.swing, jQuery.extend(jQuery.easing, { def: "easeOutQuad", swing: function (t, e, i, n, a) { return $.easing[$.easing.def](t, e, i, n, a) }, easeInQuad: function (t, e, i, n, a) { return n (e /= a) e + i }, easeOutQuad: function (t, e, i, n, a) { return -n (e /= a) (e - 2) + i }, easeInOutQuad: function (t, e, i, n, a) { return (e /= a / 2) < 1 ? n / 2 e e + i : -n / 2 (--e (e - 2) - 1) + i }, easeInCubic: function (t, e, i, n, a) { return n (e /= a) e e + i }, easeOutCubic: function (t, e, i, n, a) { return n ((e = e / a - 1) e e + 1) + i }, easeInOutCubic: function (t, e, i, n, a) { return (e /= a / 2) < 1 ? n / 2 e e e + i : n / 2 ((e -= 2) e e + 2) + i }, easeInQuart: function (t, e, i, n, a) { return n (e /= a) e e e + i }, easeOutQuart: function (t, e, i, n, a) { return -n ((e = e / a - 1) e e e - 1) + i }, easeInOutQuart: function (t, e, i, n, a) { return (e /= a / 2) < 1 ? n / 2 e e e e + i : -n / 2 ((e -= 2) e e e - 2) + i }, easeInQuint: function (t, e, i, n, a) { return n (e /= a) e e e e + i }, easeOutQuint: function (t, e, i, n, a) { return n ((e = e / a - 1) e e e e + 1) + i }, easeInOutQuint: function (t, e, i, n, a) { return (e /= a / 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, a) { return -n Math.cos(e / a (Math.PI / 2)) + n + i }, easeOutSine: function (t, e, i, n, a) { return n Math.sin(e / a (Math.PI / 2)) + i }, easeInOutSine: function (t, e, i, n, a) { return -n / 2 (Math.cos(Math.PI e / a) - 1) + i }, easeInExpo: function (t, e, i, n, a) { return 0 == e ? i : n Math.pow(2, 10 (e / a - 1)) + i }, easeOutExpo: function (t, e, i, n, a) { return e == a ? i + n : n (-Math.pow(2, -10 e / a) + 1) + i }, easeInOutExpo: function (t, e, i, n, a) { return 0 == e ? i : e == a ? i + n : (e /= a / 2) < 1 ? n / 2 Math.pow(2, 10 (e - 1)) + i : n / 2 (-Math.pow(2, -10 --e) + 2) + i }, easeInCirc: function (t, e, i, n, a) { return -n (Math.sqrt(1 - (e /= a) e) - 1) + i }, easeOutCirc: function (t, e, i, n, a) { return n Math.sqrt(1 - (e = e / a - 1) e) + i }, easeInOutCirc: function (t, e, i, n, a) { return (e /= a / 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, a) { var r = 1.70158, o = 0, s = n; if (0 == e) return i; if (1 == (e /= a)) return i + n; if (o || (o = .3 a), s < Math.abs(n)) { s = n; var r = o / 4 } else var r = o / (2 Math.PI) Math.asin(n / s); return -(s Math.pow(2, 10 (e -= 1)) Math.sin((e a - r) (2 Math.PI) / o)) + i }, easeOutElastic: function (t, e, i, n, a) { var r = 1.70158, o = 0, s = n; if (0 == e) return i; if (1 == (e /= a)) return i + n; if (o || (o = .3 a), s < Math.abs(n)) { s = n; var r = o / 4 } else var r = o / (2 Math.PI) Math.asin(n / s); return s Math.pow(2, -10 e) Math.sin((e a - r) (2 Math.PI) / o) + n + i }, easeInOutElastic: function (t, e, i, n, a) { var r = 1.70158, o = 0, s = n; if (0 == e) return i; if (2 == (e /= a / 2)) return i + n; if (o || (o = a (.3 1.5)), s < Math.abs(n)) { s = n; var r = o / 4 } else var r = o / (2 Math.PI) Math.asin(n / s); return 1 > e ? -.5 (s Math.pow(2, 10 (e -= 1)) Math.sin((e a - r) (2 Math.PI) / o)) + i : s Math.pow(2, -10 (e -= 1)) Math.sin((e a - r) (2 Math.PI) / o) .5 + n + i }, easeInBack: function (t, e, i, n, a, r) { return void 0 == r && (r = 1.70158), n (e /= a) e ((r + 1) e - r) + i }, easeOutBack: function (t, e, i, n, a, r) { return void 0 == r && (r = 1.70158), n ((e = e / a - 1) e ((r + 1) e + r) + 1) + i }, easeInOutBack: function (t, e, i, n, a, r) { return void 0 == r && (r = 1.70158), (e /= a / 2) < 1 ? n / 2 (e e (((r = 1.525) + 1) e - r)) + i : n / 2 ((e -= 2) e (((r = 1.525) + 1) e + r) + 2) + i }, easeInBounce: function (t, e, i, n, a) { return n - jQuery.easing.easeOutBounce(t, a - e, 0, n, a) + i }, easeOutBounce: function (t, e, i, n, a) { return (e /= a) < 1 / 2.75 ? n (7.5625 e e) + i : 2 / 2.75 > e ? n (7.5625 (e -= 1.5 / 2.75) e + .75) + i : 2.5 / 2.75 > e ? 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, a) { return a / 2 > e ? .5 jQuery.easing.easeInBounce(t, 2 e, 0, n, a) + i : .5 jQuery.easing.easeOutBounce(t, 2 e - a, 0, n, a) + .5 n + i } }), jQuery.extend(jQuery.easing, { easeInOutMaterial: function (t, e, i, n, a) { return (e /= a / 2) < 1 ? n / 2 e e + i : n / 4 ((e -= 2) e e + 2) + i } }), 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 : 1 === t.nodeType && e ? !0 : "array" === n || 0 === e || "number" == typeof e && e > 0 && e - 1 in t } if (!t.jQuery) { var i = function (t, e) { return new i.fn.init(t, e) }; i.isWindow = function (t) { return null != t && t == t.window }, i.type = function (t) { return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? a[o.call(t)] || "object" : typeof 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 && !r.call(t, "constructor") && !r.call(t.constructor.prototype, "isPrototypeOf")) return !1 } catch (n) { return !1 } for (e in t); return void 0 === e || r.call(t, e) }, i.each = function (t, i, n) { var a, r = 0, o = t.length, s = e(t); if (n) { if (s) for (; o > r && (a = i.apply(t[r], n), a !== !1); r++); else for (r in t) if (a = i.apply(t[r], n), a === !1) break } else if (s) for (; o > r && (a = i.call(t[r], r, t[r]), a !== !1); r++); else for (r in t) if (a = i.call(t[r], r, t[r]), a === !1) break; return t }, i.data = function (t, e, a) { if (void 0 === a) { var r = t[i.expando], o = r && n[r]; if (void 0 === e) return o; if (o && e in o) return o[e] } else if (void 0 !== e) { var r = t[i.expando] || (t[i.expando] = ++i.uuid); return n[r] = n[r] || {}, n[r][e] = a, a } }, i.removeData = function (t, e) { var a = t[i.expando], r = a && n[a]; r && i.each(e, function (t, e) { delete r[e] }) }, i.extend = function () { var t, e, n, a, r, o, s = arguments[0] || {}, l = 1, u = arguments.length, c = !1; for ("boolean" == typeof s && (c = s, s = arguments[l] || {}, l++), "object" != typeof s && "function" !== i.type(s) && (s = {}), l === u && (s = this, l--); u > l; l++) if (null != (r = arguments[l])) for (a in r) t = s[a], n = r[a], s !== n && (c && n && (i.isPlainObject(n) || (e = i.isArray(n))) ? (e ? (e = !1, o = t && i.isArray(t) ? t : []) : o = t && i.isPlainObject(t) ? t : {}, s[a] = i.extend(c, o, n)) : void 0 !== n && (s[a] = n)); return s }, i.queue = function (t, n, a) { function r(t, i) { var n = i || []; return null != t && (e(Object(t)) ? ! function (t, e) { for (var i = +e.length, n = 0, a = t.length; i > n;) t[a++] = e[n++]; if (i !== i) for (; void 0 !== e[n];) t[a++] = e[n++]; return t.length = a, t }(n, "string" == typeof t ? [t] : t) : [].push.call(n, t)), n } if (t) { n = (n || "fx") + "queue"; var o = i.data(t, n); return a ? (!o || i.isArray(a) ? o = i.data(t, n, r(a)) : o.push(a), o) : o || [] } }, i.dequeue = function (t, e) { i.each(t.nodeType ? [t] : t, function (t, n) { e = e || "fx"; var a = i.queue(n, e), r = a.shift(); "inprogress" === r && (r = a.shift()), r && ("fx" === e && a.unshift("inprogress"), r.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(), a = /^(?: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 && (a.top += parseFloat(t.style.borderTopWidth) || 0, a.left += parseFloat(t.style.borderLeftWidth) || 0), { top: n.top - a.top, left: n.left - a.left } } }; var n = {}; i.expando = "velocity" + (new Date).getTime(), i.uuid = 0; for (var a = {}, r = a.hasOwnProperty, o = a.toString, s = "Boolean Number String Function Array Date RegExp Object Error".split(" "), l = 0; l < s.length; l++) a["[object " + s[l] + "]"] = s[l].toLowerCase(); i.fn.init.prototype = i.fn, t.Velocity = { Utilities: i } } }(window), function (t) { "object" == typeof module && "object" == typeof module.exports ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : t() }(function () { return function (t, e, i, n) { function a(t) { for (var e = -1, i = t ? t.length : 0, n = []; ++e < i;) { var a = t[e]; a && n.push(a) } return n }

    function r(t) {
        return v.isWrapped(t) ? t = [].slice.call(t) : v.isNode(t) && (t = [t]), t
    }

    function o(t) {
        var e = p.data(t, "velocity");
        return null === e ? n : e
    }

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

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

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

        function s(t) {
            return 3 * t
        }

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

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

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

        function d() {
            for (var e = 0; b > e; ++e) k[e] = l(e * w, t, n)
        }

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

        function f(e) {
            for (var i = 0, a = 1, r = b - 1; a != r && k[a] <= e; ++a) i += w;
            --a;
            var o = (e - k[a]) / (k[a + 1] - k[a]),
                s = i + o * w,
                l = u(s, t, n);
            return l >= g ? c(e, s) : 0 == l ? s : p(e, i, i + w)
        }

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

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

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

    function d(t, e) {
        if (!b.State.calls[t]) return !1;
        for (var i = b.State.calls[t][0], a = b.State.calls[t][1], r = b.State.calls[t][2], s = b.State.calls[t][4], l = !1, u = 0, c = i.length; c > u; u++) {
            var d = i[u].element;
            if (e || r.loop || ("none" === r.display && x.setPropertyValue(d, "display", r.display), "hidden" === r.visibility && x.setPropertyValue(d, "visibility", r.visibility)), r.loop !== !0 && (p.queue(d)[1] === n || !/\.velocityQueueEntryFlag/i.test(p.queue(d)[1])) && o(d)) {
                o(d).isAnimating = !1, o(d).rootPropertyValueCache = {};
                var f = !1;
                p.each(x.Lists.transforms3D, function (t, e) {
                    var i = /^scale/.test(e) ? 1 : 0,
                        a = o(d).transformCache[e];
                    o(d).transformCache[e] !== n && new RegExp("^\\(" + i + "[^.]").test(a) && (f = !0, delete o(d).transformCache[e])
                }), r.mobileHA && (f = !0, delete o(d).transformCache.translate3d), f && x.flushTransformCache(d), x.Values.removeClass(d, "velocity-animating")
            }
            if (!e && r.complete && !r.loop && u === c - 1) try {
                r.complete.call(a, a)
            } catch (h) {
                setTimeout(function () {
                    throw h
                }, 1)
            }
            s && r.loop !== !0 && s(a), o(d) && r.loop === !0 && !e && (p.each(o(d).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(d, "reverse", {
                loop: !0,
                delay: r.delay
            })), r.queue !== !1 && p.dequeue(d, r.queue)
        }
        b.State.calls[t] = !1;
        for (var v = 0, g = b.State.calls.length; g > v; v++)
            if (b.State.calls[v] !== !1) {
                l = !0;
                break
            } l === !1 && (b.State.isTicking = !1, delete b.State.calls, b.State.calls = [])
    }
    var p, f = function () {
        if (i.documentMode) return i.documentMode;
        for (var t = 7; t > 4; t--) {
            var e = i.createElement("div");
            if (e.innerHTML = "<!--[if IE " + t + "]><span></span><![endif]-->", e.getElementsByTagName("span").length) return e = null, t
        }
        return n
    }(),
        h = 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)
            }
        }(),
        v = {
            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" == typeof t && /^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(t)) && t.length !== n && (0 === t.length || "object" == typeof 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
            }
        },
        g = !1;
    if (t.fn && t.fn.jquery ? (p = t, g = !0) : p = e.Velocity.Utilities, 8 >= f && !g) throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");
    if (7 >= f) return void (jQuery.fn.velocity = jQuery.fn.animate);
    var m = 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: p,
            Redirects: {},
            Easings: {},
            Promise: e.Promise,
            defaults: {
                queue: "",
                duration: m,
                easing: y,
                begin: n,
                complete: n,
                progress: n,
                display: n,
                visibility: n,
                loop: !1,
                delay: !1,
                mobileHA: !0,
                _cacheValues: !0
            },
            init: function (t) {
                p.data(t, "velocity", {
                    isSVG: v.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 !== n ? (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 w = function () {
        function t(t) {
            return -t.tension * t.x - t.friction * t.v
        }

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

        function i(i, n) {
            var a = {
                dx: i.v,
                dv: t(i)
            },
                r = e(i, .5 * n, a),
                o = e(i, .5 * n, r),
                s = e(i, n, o),
                l = 1 / 6 * (a.dx + 2 * (r.dx + o.dx) + s.dx),
                u = 1 / 6 * (a.dv + 2 * (r.dv + o.dv) + s.dv);
            return i.x = i.x + l * n, i.v = i.v + u * n, i
        }
        return function n(t, e, a) {
            var r, o, s, l = {
                x: -1,
                v: 0,
                tension: null,
                friction: null
            },
                u = [0],
                c = 0,
                d = 1e-4,
                p = .016;
            for (t = parseFloat(t) || 500, e = parseFloat(e) || 20, a = a || null, l.tension = t, l.friction = e, r = null !== a, r ? (c = n(t, e), o = c / a * p) : o = p; s = i(s || l, o), u.push(1 + s.x), c += 16, Math.abs(s.x) > d && Math.abs(s.v) > d;);
            return r ? function (t) {
                return u[t * (u.length - 1) | 0]
            } : c
        }
    }();
    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)
        }
    }, p.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]] = l.apply(null, e[1])
    });
    var x = 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 < x.Lists.colors.length; t++) {
                    var e = "color" === x.Lists.colors[t] ? "0 0 0 1" : "255 255 255 1";
                    x.Hooks.templates[x.Lists.colors[t]] = ["Red Green Blue Alpha", e]
                }
                var i, n, a;
                if (f)
                    for (i in x.Hooks.templates) {
                        n = x.Hooks.templates[i], a = n[0].split(" ");
                        var r = n[1].match(x.RegEx.valueSplit);
                        "Color" === a[0] && (a.push(a.shift()), r.push(r.shift()), x.Hooks.templates[i] = [a.join(" "), r.join(" ")])
                    }
                for (i in x.Hooks.templates) {
                    n = x.Hooks.templates[i], a = n[0].split(" ");
                    for (var t in a) {
                        var o = i + a[t],
                            s = t;
                        x.Hooks.registered[o] = [i, s]
                    }
                }
            },
            getRoot: function (t) {
                var e = x.Hooks.registered[t];
                return e ? e[0] : t
            },
            cleanRootPropertyValue: function (t, e) {
                return x.RegEx.valueUnwrap.test(e) && (e = e.match(x.RegEx.valueUnwrap)[1]), x.Values.isCSSNullValue(e) && (e = x.Hooks.templates[t][1]), e
            },
            extractValue: function (t, e) {
                var i = x.Hooks.registered[t];
                if (i) {
                    var n = i[0],
                        a = i[1];
                    return e = x.Hooks.cleanRootPropertyValue(n, e), e.toString().match(x.RegEx.valueSplit)[a]
                }
                return e
            },
            injectValue: function (t, e, i) {
                var n = x.Hooks.registered[t];
                if (n) {
                    var a, r, o = n[0],
                        s = n[1];
                    return i = x.Hooks.cleanRootPropertyValue(o, i), a = i.toString().match(x.RegEx.valueSplit), a[s] = e, r = a.join(" ")
                }
                return i
            }
        },
        Normalizations: {
            registered: {
                clip: function (t, e, i) {
                    switch (t) {
                        case "name":
                            return "clip";
                        case "extract":
                            var n;
                            return x.RegEx.wrappedValueAlreadyExtracted.test(i) ? n = i : (n = i.toString().match(x.RegEx.valueUnwrap), n = n ? n[1].replace(/,(\s+)?/g, " ") : i), n;
                        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 a = i.toString().match(/blur\(([0-9]+[A-z]+)\)/i);
                                n = a ? a[1] : 0
                            }
                            return n;
                        case "inject":
                            return parseFloat(i) ? "blur(" + i + ")" : "none"
                    }
                },
                opacity: function (t, e, i) {
                    if (8 >= f) switch (t) {
                        case "name":
                            return "filter";
                        case "extract":
                            var n = i.toString().match(/alpha\(opacity=(.*)\)/i);
                            return i = 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":
                            return i;
                        case "inject":
                            return i
                    }
                }
            },
            register: function () {
                9 >= f || b.State.isGingerbread || (x.Lists.transformsBase = x.Lists.transformsBase.concat(x.Lists.transforms3D));
                for (var t = 0; t < x.Lists.transformsBase.length; t++) ! function () {
                    var e = x.Lists.transformsBase[t];
                    x.Normalizations.registered[e] = function (t, i, a) {
                        switch (t) {
                            case "name":
                                return "transform";
                            case "extract":
                                return o(i) === n || o(i).transformCache[e] === n ? /^scale/i.test(e) ? 1 : 0 : o(i).transformCache[e].replace(/[()]/g, "");
                            case "inject":
                                var r = !1;
                                switch (e.substr(0, e.length - 1)) {
                                    case "translate":
                                        r = !/(%|px|em|rem|vw|vh|\d)$/i.test(a);
                                        break;
                                    case "scal":
                                    case "scale":
                                        b.State.isAndroid && o(i).transformCache[e] === n && 1 > a && (a = 1), r = !/(\d)$/i.test(a);
                                        break;
                                    case "skew":
                                        r = !/(deg|\d)$/i.test(a);
                                        break;
                                    case "rotate":
                                        r = !/(deg|\d)$/i.test(a)
                                }
                                return r || (o(i).transformCache[e] = "(" + a + ")"), o(i).transformCache[e]
                        }
                    }
                }();
                for (var t = 0; t < x.Lists.colors.length; t++) ! function () {
                    var e = x.Lists.colors[t];
                    x.Normalizations.registered[e] = function (t, i, a) {
                        switch (t) {
                            case "name":
                                return e;
                            case "extract":
                                var r;
                                if (x.RegEx.wrappedValueAlreadyExtracted.test(a)) r = a;
                                else {
                                    var o, s = {
                                        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(a) ? o = s[a] !== n ? s[a] : s.black : x.RegEx.isHex.test(a) ? o = "rgb(" + x.Values.hexToRgb(a).join(" ") + ")" : /^rgba?\(/i.test(a) || (o = s.black), r = (o || a).toString().match(x.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " ")
                                }
                                return 8 >= f || 3 !== r.split(" ").length || (r += " 1"), r;
                            case "inject":
                                return 8 >= f ? 4 === a.split(" ").length && (a = a.split(/\s+/).slice(0, 3).join(" ")) : 3 === a.split(" ").length && (a += " 1"), (8 >= f ? "rgb" : "rgba") + "(" + a.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 (f || 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 a;
                    if (a = 0 === i ? t : e[i] + t.replace(/^\w/, function (t) {
                        return t.toUpperCase()
                    }), v.isString(b.State.prefixElement.style[a])) return b.State.prefixMatches[t] = a, [a, !0]
                }
                return [t, !1]
            }
        },
        Values: {
            hexToRgb: function (t) {
                var e, i = /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
                    n = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;
                return t = t.replace(i, function (t, e, i, n) {
                    return e + e + i + i + n + n
                }), e = n.exec(t), e ? [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, a, r) {
            function s(t, i) {
                function a() {
                    u && x.setPropertyValue(t, "display", "none")
                }
                var l = 0;
                if (8 >= f) l = p.css(t, i);
                else {
                    var u = !1;
                    if (/^(width|height)$/.test(i) && 0 === x.getPropertyValue(t, "display") && (u = !0, x.setPropertyValue(t, "display", x.Values.getDisplayType(t))), !r) {
                        if ("height" === i && "border-box" !== x.getPropertyValue(t, "boxSizing").toString().toLowerCase()) {
                            var c = t.offsetHeight - (parseFloat(x.getPropertyValue(t, "borderTopWidth")) || 0) - (parseFloat(x.getPropertyValue(t, "borderBottomWidth")) || 0) - (parseFloat(x.getPropertyValue(t, "paddingTop")) || 0) - (parseFloat(x.getPropertyValue(t, "paddingBottom")) || 0);
                            return a(), c
                        }
                        if ("width" === i && "border-box" !== x.getPropertyValue(t, "boxSizing").toString().toLowerCase()) {
                            var d = t.offsetWidth - (parseFloat(x.getPropertyValue(t, "borderLeftWidth")) || 0) - (parseFloat(x.getPropertyValue(t, "borderRightWidth")) || 0) - (parseFloat(x.getPropertyValue(t, "paddingLeft")) || 0) - (parseFloat(x.getPropertyValue(t, "paddingRight")) || 0);
                            return a(), d
                        }
                    }
                    var h;
                    h = o(t) === n ? e.getComputedStyle(t, null) : o(t).computedStyle ? o(t).computedStyle : o(t).computedStyle = e.getComputedStyle(t, null), "borderColor" === i && (i = "borderTopColor"), l = 9 === f && "filter" === i ? h.getPropertyValue(i) : h[i], ("" === l || null === l) && (l = t.style[i]), a()
                }
                if ("auto" === l && /^(top|right|bottom|left)$/i.test(i)) {
                    var v = s(t, "position");
                    ("fixed" === v || "absolute" === v && /top|left/i.test(i)) && (l = p(t).position()[i] + "px")
                }
                return l
            }
            var l;
            if (x.Hooks.registered[i]) {
                var u = i,
                    c = x.Hooks.getRoot(u);
                a === n && (a = x.getPropertyValue(t, x.Names.prefixCheck(c)[0])), x.Normalizations.registered[c] && (a = x.Normalizations.registered[c]("extract", t, a)), l = x.Hooks.extractValue(u, a)
            } else if (x.Normalizations.registered[i]) {
                var d, h;
                d = x.Normalizations.registered[i]("name", t), "transform" !== d && (h = s(t, x.Names.prefixCheck(d)[0]), x.Values.isCSSNullValue(h) && x.Hooks.templates[i] && (h = x.Hooks.templates[i][1])), l = x.Normalizations.registered[i]("extract", t, h)
            }
            if (!/^[\d-]/.test(l))
                if (o(t) && o(t).isSVG && x.Names.SVGAttribute(i))
                    if (/^(height|width)$/i.test(i)) try {
                        l = t.getBBox()[i]
                    } catch (v) {
                        l = 0
                    } else l = t.getAttribute(i);
                else l = s(t, x.Names.prefixCheck(i)[0]);
            return x.Values.isCSSNullValue(l) && (l = 0), b.debug >= 2 && console.log("Get " + i + ": " + l), l
        },
        setPropertyValue: function (t, i, n, a, r) {
            var s = i;
            if ("scroll" === i) r.container ? r.container["scroll" + r.direction] = n : "Left" === r.direction ? e.scrollTo(n, r.alternateValue) : e.scrollTo(r.alternateValue, n);
            else if (x.Normalizations.registered[i] && "transform" === x.Normalizations.registered[i]("name", t)) x.Normalizations.registered[i]("inject", t, n), s = "transform", n = o(t).transformCache[i];
            else {
                if (x.Hooks.registered[i]) {
                    var l = i,
                        u = x.Hooks.getRoot(i);
                    a = a || x.getPropertyValue(t, u), n = x.Hooks.injectValue(l, n, a), i = u
                }
                if (x.Normalizations.registered[i] && (n = x.Normalizations.registered[i]("inject", t, n), i = x.Normalizations.registered[i]("name", t)), s = x.Names.prefixCheck(i)[0], 8 >= f) try {
                    t.style[s] = n
                } catch (c) {
                    b.debug && console.log("Browser does not support [" + n + "] for [" + s + "]")
                } else o(t) && o(t).isSVG && x.Names.SVGAttribute(i) ? t.setAttribute(i, n) : t.style[s] = n;
                b.debug >= 2 && console.log("Set " + i + " (" + s + "): " + n)
            }
            return [s, n]
        },
        flushTransformCache: function (t) {
            function e(e) {
                return parseFloat(x.getPropertyValue(t, e))
            }
            var i = "";
            if ((f || b.State.isAndroid && !b.State.isChrome) && o(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]
                };
                p.each(o(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 a, r;
                p.each(o(t).transformCache, function (e) {
                    return a = o(t).transformCache[e], "transformPerspective" === e ? (r = a, !0) : (9 === f && "rotateZ" === e && (e = "rotate"), void (i += e + a + " "))
                }), r && (i = "perspective" + r + " " + i)
            }
            x.setPropertyValue(t, "transform", i)
        }
    };
    x.Hooks.register(), x.Normalizations.register(), b.hook = function (t, e, i) {
        var a = n;
        return t = r(t), p.each(t, function (t, r) {
            if (o(r) === n && b.init(r), i === n) a === n && (a = b.CSS.getPropertyValue(r, e));
            else {
                var s = b.CSS.setPropertyValue(r, e, i);
                "transform" === s[0] && b.CSS.flushTransformCache(r), a = s
            }
        }), a
    };
    var C = function () {
        function t() {
            return s ? P.promise || null : l
        }

        function a() {
            function t(t) {
                function d(t, e) {
                    var i = n,
                        a = n,
                        o = n;
                    return v.isArray(t) ? (i = t[0], !v.isArray(t[1]) && /^[\d-]/.test(t[1]) || v.isFunction(t[1]) || x.RegEx.isHex.test(t[1]) ? o = t[1] : (v.isString(t[1]) && !x.RegEx.isHex.test(t[1]) || v.isArray(t[1])) && (a = e ? t[1] : u(t[1], s.duration), t[2] !== n && (o = t[2]))) : i = t, e || (a = a || s.easing), v.isFunction(i) && (i = i.call(r, T, k)), v.isFunction(o) && (o = o.call(r, T, k)), [i || 0, a, o]
                }

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

                function m() {
                    var t = {
                        myParent: r.parentNode || i.body,
                        position: x.getPropertyValue(r, "position"),
                        fontSize: x.getPropertyValue(r, "fontSize")
                    },
                        n = t.position === V.lastPosition && t.myParent === V.lastParent,
                        a = t.fontSize === V.lastFontSize;
                    V.lastParent = t.myParent, V.lastPosition = t.position, V.lastFontSize = t.fontSize;
                    var s = 100,
                        l = {};
                    if (a && n) l.emToPx = V.lastEmToPx, l.percentToPxWidth = V.lastPercentToPxWidth, l.percentToPxHeight = V.lastPercentToPxHeight;
                    else {
                        var u = o(r).isSVG ? i.createElementNS("http://www.w3.org/2000/svg", "rect") : i.createElement("div");
                        b.init(u), t.myParent.appendChild(u), p.each(["overflow", "overflowX", "overflowY"], function (t, e) {
                            b.CSS.setPropertyValue(u, e, "hidden")
                        }), b.CSS.setPropertyValue(u, "position", t.position), b.CSS.setPropertyValue(u, "fontSize", t.fontSize), b.CSS.setPropertyValue(u, "boxSizing", "content-box"), p.each(["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], function (t, e) {
                            b.CSS.setPropertyValue(u, e, s + "%")
                        }), b.CSS.setPropertyValue(u, "paddingLeft", s + "em"), l.percentToPxWidth = V.lastPercentToPxWidth = (parseFloat(x.getPropertyValue(u, "width", null, !0)) || 1) / s, l.percentToPxHeight = V.lastPercentToPxHeight = (parseFloat(x.getPropertyValue(u, "height", null, !0)) || 1) / s, l.emToPx = V.lastEmToPx = (parseFloat(x.getPropertyValue(u, "paddingLeft")) || 1) / s, t.myParent.removeChild(u)
                    }
                    return null === V.remToPx && (V.remToPx = parseFloat(x.getPropertyValue(i.body, "fontSize")) || 16), null === V.vwToPx && (V.vwToPx = parseFloat(e.innerWidth) / 100, V.vhToPx = parseFloat(e.innerHeight) / 100), l.remToPx = V.remToPx, l.vwToPx = V.vwToPx, l.vhToPx = V.vhToPx, b.debug >= 1 && console.log("Unit ratios: " + JSON.stringify(l), r), l
                }
                if (s.begin && 0 === T) try {
                    s.begin.call(h, h)
                } catch (w) {
                    setTimeout(function () {
                        throw w
                    }, 1)
                }
                if ("scroll" === A) {
                    var C, S, O, E = /^x$/i.test(s.axis) ? "Left" : "Top",
                        q = parseFloat(s.offset) || 0;
                    s.container ? v.isWrapped(s.container) || v.isNode(s.container) ? (s.container = s.container[0] || s.container, C = s.container["scroll" + E], O = C + p(r).position()[E.toLowerCase()] + q) : s.container = null : (C = b.State.scrollAnchor[b.State["scrollProperty" + E]], S = b.State.scrollAnchor[b.State["scrollProperty" + ("Left" === E ? "Top" : "Left")]], O = p(r).offset()[E.toLowerCase()] + q), l = {
                        scroll: {
                            rootPropertyValue: !1,
                            startValue: C,
                            currentValue: C,
                            endValue: O,
                            unitType: "",
                            easing: s.easing,
                            scrollData: {
                                container: s.container,
                                direction: E,
                                alternateValue: S
                            }
                        },
                        element: r
                    }, b.debug && console.log("tweensContainer (scroll): ", l.scroll, r)
                } else if ("reverse" === A) {
                    if (!o(r).tweensContainer) return void p.dequeue(r, s.queue);
                    "none" === o(r).opts.display && (o(r).opts.display = "auto"), "hidden" === o(r).opts.visibility && (o(r).opts.visibility = "visible"), o(r).opts.loop = !1, o(r).opts.begin = null, o(r).opts.complete = null, y.easing || delete s.easing, y.duration || delete s.duration, s = p.extend({}, o(r).opts, s);
                    var M = p.extend(!0, {}, o(r).tweensContainer);
                    for (var _ in M)
                        if ("element" !== _) {
                            var I = M[_].startValue;
                            M[_].startValue = M[_].currentValue = M[_].endValue, M[_].endValue = I, v.isEmptyObject(y) || (M[_].easing = s.easing), b.debug && console.log("reverse tweensContainer (" + _ + "): " + JSON.stringify(M[_]), r)
                        } l = M
                } else if ("start" === A) {
                    var M;
                    o(r).tweensContainer && o(r).isAnimating === !0 && (M = o(r).tweensContainer), p.each(g, function (t, e) {
                        if (RegExp("^" + x.Lists.colors.join("$|^") + "$").test(t)) {
                            var i = d(e, !0),
                                a = i[0],
                                r = i[1],
                                o = i[2];
                            if (x.RegEx.isHex.test(a)) {
                                for (var s = ["Red", "Green", "Blue"], l = x.Values.hexToRgb(a), u = o ? x.Values.hexToRgb(o) : n, c = 0; c < s.length; c++) {
                                    var p = [l[c]];
                                    r && p.push(r), u !== n && p.push(u[c]), g[t + s[c]] = p
                                }
                                delete g[t]
                            }
                        }
                    });
                    for (var D in g) {
                        var z = d(g[D]),
                            L = z[0],
                            Q = z[1],
                            N = z[2];
                        D = x.Names.camelCase(D);
                        var $ = x.Hooks.getRoot(D),
                            F = !1;
                        if (o(r).isSVG || "tween" === $ || x.Names.prefixCheck($)[1] !== !1 || x.Normalizations.registered[$] !== n) {
                            (s.display !== n && null !== s.display && "none" !== s.display || s.visibility !== n && "hidden" !== s.visibility) && /opacity|filter/.test(D) && !N && 0 !== L && (N = 0), s._cacheValues && M && M[D] ? (N === n && (N = M[D].endValue + M[D].unitType), F = o(r).rootPropertyValueCache[$]) : x.Hooks.registered[D] ? N === n ? (F = x.getPropertyValue(r, $), N = x.getPropertyValue(r, D, F)) : F = x.Hooks.templates[$][1] : N === n && (N = x.getPropertyValue(r, D));
                            var W, R, X, H = !1;
                            if (W = f(D, N), N = W[0], X = W[1], W = f(D, L), L = W[0].replace(/^([+-\/*])=/, function (t, e) {
                                return H = e, ""
                            }), R = W[1], N = parseFloat(N) || 0, L = parseFloat(L) || 0, "%" === R && (/^(fontSize|lineHeight)$/.test(D) ? (L /= 100, R = "em") : /^scale/.test(D) ? (L /= 100, R = "") : /(Red|Green|Blue)$/i.test(D) && (L = L / 100 * 255, R = "")), /[\/*]/.test(H)) R = X;
                            else if (X !== R && 0 !== N)
                                if (0 === L) R = X;
                                else {
                                    a = a || m();
                                    var Y = /margin|padding|left|right|width|text|word|letter/i.test(D) || /X$/.test(D) || "x" === D ? "x" : "y";
                                    switch (X) {
                                        case "%":
                                            N *= "x" === Y ? a.percentToPxWidth : a.percentToPxHeight;
                                            break;
                                        case "px":
                                            break;
                                        default:
                                            N *= a[X + "ToPx"]
                                    }
                                    switch (R) {
                                        case "%":
                                            N *= 1 / ("x" === Y ? a.percentToPxWidth : a.percentToPxHeight);
                                            break;
                                        case "px":
                                            break;
                                        default:
                                            N *= 1 / a[R + "ToPx"]
                                    }
                                } switch (H) {
                                    case "+":
                                        L = N + L;
                                        break;
                                    case "-":
                                        L = N - L;
                                        break;
                                    case "*":
                                        L = N * L;
                                        break;
                                    case "/":
                                        L = N / L
                                }
                            l[D] = {
                                rootPropertyValue: F,
                                startValue: N,
                                currentValue: N,
                                endValue: L,
                                unitType: R,
                                easing: Q
                            }, b.debug && console.log("tweensContainer (" + D + "): " + JSON.stringify(l[D]), r)
                        } else b.debug && console.log("Skipping [" + $ + "] due to a lack of browser support.")
                    }
                    l.element = r
                }
                l.element && (x.Values.addClass(r, "velocity-animating"), j.push(l), "" === s.queue && (o(r).tweensContainer = l, o(r).opts = s), o(r).isAnimating = !0, T === k - 1 ? (b.State.calls.push([j, h, s, null, P.resolver]), b.State.isTicking === !1 && (b.State.isTicking = !0, c())) : T++)
            }
            var a, r = this,
                s = p.extend({}, b.defaults, y),
                l = {};
            switch (o(r) === n && b.init(r), parseFloat(s.delay) && s.queue !== !1 && p.queue(r, s.queue, function (t) {
                b.velocityQueueEntryFlag = !0, o(r).delayTimer = {
                    setTimeout: setTimeout(t, parseFloat(s.delay)),
                    next: t
                }
            }), s.duration.toString().toLowerCase()) {
                case "fast":
                    s.duration = 200;
                    break;
                case "normal":
                    s.duration = m;
                    break;
                case "slow":
                    s.duration = 600;
                    break;
                default:
                    s.duration = parseFloat(s.duration) || 1
            }
            b.mock !== !1 && (b.mock === !0 ? s.duration = s.delay = 1 : (s.duration *= parseFloat(b.mock) || 1, s.delay *= parseFloat(b.mock) || 1)), s.easing = u(s.easing, s.duration), s.begin && !v.isFunction(s.begin) && (s.begin = null), s.progress && !v.isFunction(s.progress) && (s.progress = null), s.complete && !v.isFunction(s.complete) && (s.complete = null), s.display !== n && null !== s.display && (s.display = s.display.toString().toLowerCase(), "auto" === s.display && (s.display = b.CSS.Values.getDisplayType(r))), s.visibility !== n && null !== s.visibility && (s.visibility = s.visibility.toString().toLowerCase()), s.mobileHA = s.mobileHA && b.State.isMobile && !b.State.isGingerbread, s.queue === !1 ? s.delay ? setTimeout(t, s.delay) : t() : p.queue(r, s.queue, function (e, i) {
                return i === !0 ? (P.promise && P.resolver(h), !0) : (b.velocityQueueEntryFlag = !0, void t(e))
            }), "" !== s.queue && "fx" !== s.queue || "inprogress" === p.queue(r)[0] || p.dequeue(r)
        }
        var s, l, f, h, g, y, w = arguments[0] && (arguments[0].p || p.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || v.isString(arguments[0].properties));
        if (v.isWrapped(this) ? (s = !1, f = 0, h = this, l = this) : (s = !0, f = 1, h = w ? arguments[0].elements || arguments[0].e : arguments[0]), h = r(h)) {
            w ? (g = arguments[0].properties || arguments[0].p, y = arguments[0].options || arguments[0].o) : (g = arguments[f], y = arguments[f + 1]);
            var k = h.length,
                T = 0;
            if (!/^(stop|finish)$/i.test(g) && !p.isPlainObject(y)) {
                var S = f + 1;
                y = {};
                for (var O = S; O < arguments.length; O++) v.isArray(arguments[O]) || !/^(fast|normal|slow)$/i.test(arguments[O]) && !/^\d/.test(arguments[O]) ? v.isString(arguments[O]) || v.isArray(arguments[O]) ? y.easing = arguments[O] : v.isFunction(arguments[O]) && (y.complete = arguments[O]) : y.duration = arguments[O]
            }
            var P = {
                promise: null,
                resolver: null,
                rejecter: null
            };
            s && b.Promise && (P.promise = new b.Promise(function (t, e) {
                P.resolver = t, P.rejecter = e
            }));
            var A;
            switch (g) {
                case "scroll":
                    A = "scroll";
                    break;
                case "reverse":
                    A = "reverse";
                    break;
                case "finish":
                case "stop":
                    p.each(h, function (t, e) {
                        o(e) && o(e).delayTimer && (clearTimeout(o(e).delayTimer.setTimeout), o(e).delayTimer.next && o(e).delayTimer.next(), delete o(e).delayTimer)
                    });
                    var E = [];
                    return p.each(b.State.calls, function (t, e) {
                        e && p.each(e[1], function (i, a) {
                            var r = y === n ? "" : y;
                            return r === !0 || e[2].queue === r || y === n && e[2].queue === !1 ? void p.each(h, function (i, n) {
                                n === a && ((y === !0 || v.isString(y)) && (p.each(p.queue(n, v.isString(y) ? y : ""), function (t, e) {
                                    v.isFunction(e) && e(null, !0)
                                }), p.queue(n, v.isString(y) ? y : "", [])), "stop" === g ? (o(n) && o(n).tweensContainer && r !== !1 && p.each(o(n).tweensContainer, function (t, e) {
                                    e.endValue = e.currentValue
                                }), E.push(t)) : "finish" === g && (e[2].duration = 1))
                            }) : !0
                        })
                    }), "stop" === g && (p.each(E, function (t, e) {
                        d(e, !0)
                    }), P.promise && P.resolver(h)), t();
                default:
                    if (!p.isPlainObject(g) || v.isEmptyObject(g)) {
                        if (v.isString(g) && b.Redirects[g]) {
                            var q = p.extend({}, y),
                                M = q.duration,
                                _ = q.delay || 0;
                            return q.backwards === !0 && (h = p.extend(!0, [], h).reverse()), p.each(h, function (t, e) {
                                parseFloat(q.stagger) ? q.delay = _ + parseFloat(q.stagger) * t : v.isFunction(q.stagger) && (q.delay = _ + q.stagger.call(e, t, k)), q.drag && (q.duration = parseFloat(M) || (/^(callout|transition)/.test(g) ? 1e3 : m), q.duration = Math.max(q.duration * (q.backwards ? 1 - t / k : (t + 1) / k), .75 * q.duration, 200)), b.Redirects[g].call(e, e, q || {}, t, k, h, P.promise ? P : n)
                            }), t()
                        }
                        var I = "Velocity: First argument (" + g + ") was not a property map, a known action, or a registered redirect. Aborting.";
                        return P.promise ? P.rejecter(new Error(I)) : console.log(I), t()
                    }
                    A = "start"
            }
            var V = {
                lastParent: null,
                lastPosition: null,
                lastFontSize: null,
                lastPercentToPxWidth: null,
                lastPercentToPxHeight: null,
                lastEmToPx: null,
                remToPx: null,
                vwToPx: null,
                vhToPx: null
            },
                j = [];
            p.each(h, function (t, e) {
                v.isNode(e) && a.call(e)
            });
            var D, q = p.extend({}, b.defaults, y);
            if (q.loop = parseInt(q.loop), D = 2 * q.loop - 1, q.loop)
                for (var z = 0; D > z; z++) {
                    var L = {
                        delay: q.delay,
                        progress: q.progress
                    };
                    z === D - 1 && (L.display = q.display, L.visibility = q.visibility, L.complete = q.complete), C(h, "reverse", L)
                }
            return t()
        }
    };
    b = p.extend(C, b), b.animate = C;
    var k = e.requestAnimationFrame || h;
    return b.State.isMobile || i.hidden === n || i.addEventListener("visibilitychange", function () {
        i.hidden ? (k = function (t) {
            return setTimeout(function () {
                t(!0)
            }, 16)
        }, c()) : k = e.requestAnimationFrame || h
    }), t.Velocity = b, t !== e && (t.fn.velocity = C, t.fn.velocity.defaults = b.defaults), p.each(["Down", "Up"], function (t, e) {
        b.Redirects["slide" + e] = function (t, i, a, r, o, s) {
            var l = p.extend({}, i),
                u = l.begin,
                c = l.complete,
                d = {
                    height: "",
                    marginTop: "",
                    marginBottom: "",
                    paddingTop: "",
                    paddingBottom: ""
                },
                f = {};
            l.display === n && (l.display = "Down" === e ? "inline" === b.CSS.Values.getDisplayType(t) ? "inline-block" : "block" : "none"), l.begin = function () {
                u && u.call(o, o);
                for (var i in d) {
                    f[i] = t.style[i];
                    var n = b.CSS.getPropertyValue(t, i);
                    d[i] = "Down" === e ? [n, 0] : [0, n]
                }
                f.overflow = t.style.overflow, t.style.overflow = "hidden"
            }, l.complete = function () {
                for (var e in f) t.style[e] = f[e];
                c && c.call(o, o), s && s.resolver(o)
            }, b(t, d, l)
        }
    }), p.each(["In", "Out"], function (t, e) {
        b.Redirects["fade" + e] = function (t, i, a, r, o, s) {
            var l = p.extend({}, i),
                u = {
                    opacity: "In" === e ? 1 : 0
                },
                c = l.complete;
            l.complete = a !== r - 1 ? l.begin = null : function () {
                c && c.call(o, o), s && s.resolver(o)
            }, l.display === n && (l.display = "In" === e ? "auto" : "none"), b(this, u, l)
        }
    }), b
}(window.jQuery || window.Zepto || window, window, document)

})), ! function (t, e, i, n) { "use strict";

function a(t, e, i) {
    return setTimeout(c(t, i), e)
}

function r(t, e, i) {
    return Array.isArray(t) ? (o(t, i[e], i), !0) : !1
}

function o(t, e, i) {
    var a;
    if (t)
        if (t.forEach) t.forEach(e, i);
        else if (t.length !== n)
            for (a = 0; a < t.length;) e.call(i, t[a], a, t), a++;
        else
            for (a in t) t.hasOwnProperty(a) && e.call(i, t[a], a, t)
}

function s(t, e, i) {
    for (var a = Object.keys(e), r = 0; r < a.length;)(!i || i && t[a[r]] === n) && (t[a[r]] = e[a[r]]), r++;
    return t
}

function l(t, e) {
    return s(t, e, !0)
}

function u(t, e, i) {
    var n, a = e.prototype;
    n = t.prototype = Object.create(a), n.constructor = t, n._super = a, i && s(n, i)
}

function c(t, e) {
    return function () {
        return t.apply(e, arguments)
    }
}

function d(t, e) {
    return typeof t == ct ? t.apply(e ? e[0] || n : n, e) : t
}

function p(t, e) {
    return t === n ? e : t
}

function f(t, e, i) {
    o(m(e), function (e) {
        t.addEventListener(e, i, !1)
    })
}

function h(t, e, i) {
    o(m(e), function (e) {
        t.removeEventListener(e, i, !1)
    })
}

function v(t, e) {
    for (; t;) {
        if (t == e) return !0;
        t = t.parentNode
    }
    return !1
}

function g(t, e) {
    return t.indexOf(e) > -1
}

function m(t) {
    return t.trim().split(/\s+/g)
}

function y(t, e, i) {
    if (t.indexOf && !i) return t.indexOf(e);
    for (var n = 0; n < t.length;) {
        if (i && t[n][i] == e || !i && t[n] === e) return n;
        n++
    }
    return -1
}

function b(t) {
    return Array.prototype.slice.call(t, 0)
}

function w(t, e, i) {
    for (var n = [], a = [], r = 0; r < t.length;) {
        var o = e ? t[r][e] : t[r];
        y(a, o) < 0 && n.push(t[r]), a[r] = o, r++
    }
    return i && (n = e ? n.sort(function (t, i) {
        return t[e] > i[e]
    }) : n.sort()), n
}

function x(t, e) {
    for (var i, a, r = e[0].toUpperCase() + e.slice(1), o = 0; o < lt.length;) {
        if (i = lt[o], a = i ? i + r : e, a in t) return a;
        o++
    }
    return n
}

function C() {
    return ht++
}

function k(t) {
    var e = t.ownerDocument;
    return e.defaultView || e.parentWindow
}

function T(t, e) {
    var i = this;
    this.manager = t, this.callback = e, this.element = t.element, this.target = t.options.inputTarget, this.domHandler = function (e) {
        d(t.options.enable, [t]) && i.handler(e)
    }, this.init()
}

function S(t) {
    var e, i = t.options.inputClass;
    return new (e = i ? i : mt ? Q : yt ? F : gt ? R : L)(t, O)
}

function O(t, e, i) {
    var n = i.pointers.length,
        a = i.changedPointers.length,
        r = e & Tt && 0 === n - a,
        o = e & (Ot | Pt) && 0 === n - a;
    i.isFirst = !!r, i.isFinal = !!o, r && (t.session = {}), i.eventType = e, P(t, i), t.emit("hammer.input", i), t.recognize(i), t.session.prevInput = i
}

function P(t, e) {
    var i = t.session,
        n = e.pointers,
        a = n.length;
    i.firstInput || (i.firstInput = q(e)), a > 1 && !i.firstMultiple ? i.firstMultiple = q(e) : 1 === a && (i.firstMultiple = !1);
    var r = i.firstInput,
        o = i.firstMultiple,
        s = o ? o.center : r.center,
        l = e.center = M(n);
    e.timeStamp = ft(), e.deltaTime = e.timeStamp - r.timeStamp, e.angle = j(s, l), e.distance = V(s, l), A(i, e), e.offsetDirection = I(e.deltaX, e.deltaY), e.scale = o ? z(o.pointers, n) : 1, e.rotation = o ? D(o.pointers, n) : 0, E(i, e);
    var u = t.element;
    v(e.srcEvent.target, u) && (u = e.srcEvent.target), e.target = u
}

function A(t, e) {
    var i = e.center,
        n = t.offsetDelta || {},
        a = t.prevDelta || {},
        r = t.prevInput || {};
    (e.eventType === Tt || r.eventType === Ot) && (a = t.prevDelta = {
        x: r.deltaX || 0,
        y: r.deltaY || 0
    }, n = t.offsetDelta = {
        x: i.x,
        y: i.y
    }), e.deltaX = a.x + (i.x - n.x), e.deltaY = a.y + (i.y - n.y)
}

function E(t, e) {
    var i, a, r, o, s = t.lastInterval || e,
        l = e.timeStamp - s.timeStamp;
    if (e.eventType != Pt && (l > kt || s.velocity === n)) {
        var u = s.deltaX - e.deltaX,
            c = s.deltaY - e.deltaY,
            d = _(l, u, c);
        a = d.x, r = d.y, i = pt(d.x) > pt(d.y) ? d.x : d.y, o = I(u, c), t.lastInterval = e
    } else i = s.velocity, a = s.velocityX, r = s.velocityY, o = s.direction;
    e.velocity = i, e.velocityX = a, e.velocityY = r, e.direction = o
}

function q(t) {
    for (var e = [], i = 0; i < t.pointers.length;) e[i] = {
        clientX: dt(t.pointers[i].clientX),
        clientY: dt(t.pointers[i].clientY)
    }, i++;
    return {
        timeStamp: ft(),
        pointers: e,
        center: M(e),
        deltaX: t.deltaX,
        deltaY: t.deltaY
    }
}

function M(t) {
    var e = t.length;
    if (1 === e) return {
        x: dt(t[0].clientX),
        y: dt(t[0].clientY)
    };
    for (var i = 0, n = 0, a = 0; e > a;) i += t[a].clientX, n += t[a].clientY, a++;
    return {
        x: dt(i / e),
        y: dt(n / e)
    }
}

function _(t, e, i) {
    return {
        x: e / t || 0,
        y: i / t || 0
    }
}

function I(t, e) {
    return t === e ? At : pt(t) >= pt(e) ? t > 0 ? Et : qt : e > 0 ? Mt : _t
}

function V(t, e, i) {
    i || (i = Dt);
    var n = e[i[0]] - t[i[0]],
        a = e[i[1]] - t[i[1]];
    return Math.sqrt(n * n + a * a)
}

function j(t, e, i) {
    i || (i = Dt);
    var n = e[i[0]] - t[i[0]],
        a = e[i[1]] - t[i[1]];
    return 180 * Math.atan2(a, n) / Math.PI
}

function D(t, e) {
    return j(e[1], e[0], zt) - j(t[1], t[0], zt)
}

function z(t, e) {
    return V(e[0], e[1], zt) / V(t[0], t[1], zt)
}

function L() {
    this.evEl = Qt, this.evWin = Nt, this.allow = !0, this.pressed = !1, T.apply(this, arguments)
}

function Q() {
    this.evEl = Wt, this.evWin = Rt, T.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
}

function N() {
    this.evTarget = Ht, this.evWin = Yt, this.started = !1, T.apply(this, arguments)
}

function $(t, e) {
    var i = b(t.touches),
        n = b(t.changedTouches);
    return e & (Ot | Pt) && (i = w(i.concat(n), "identifier", !0)), [i, n]
}

function F() {
    this.evTarget = Gt, this.targetIds = {}, T.apply(this, arguments)
}

function W(t, e) {
    var i = b(t.touches),
        n = this.targetIds;
    if (e & (Tt | St) && 1 === i.length) return n[i[0].identifier] = !0, [i, i];
    var a, r, o = b(t.changedTouches),
        s = [],
        l = this.target;
    if (r = i.filter(function (t) {
        return v(t.target, l)
    }), e === Tt)
        for (a = 0; a < r.length;) n[r[a].identifier] = !0, a++;
    for (a = 0; a < o.length;) n[o[a].identifier] && s.push(o[a]), e & (Ot | Pt) && delete n[o[a].identifier], a++;
    return s.length ? [w(r.concat(s), "identifier", !0), s] : void 0
}

function R() {
    T.apply(this, arguments);
    var t = c(this.handler, this);
    this.touch = new F(this.manager, t), this.mouse = new L(this.manager, t)
}

function X(t, e) {
    this.manager = t, this.set(e)
}

function H(t) {
    if (g(t, ee)) return ee;
    var e = g(t, ie),
        i = g(t, ne);
    return e && i ? ie + " " + ne : e || i ? e ? ie : ne : g(t, te) ? te : Kt
}

function Y(t) {
    this.id = C(), this.manager = null, this.options = l(t || {}, this.defaults), this.options.enable = p(this.options.enable, !0), this.state = ae, this.simultaneous = {}, this.requireFail = []
}

function B(t) {
    return t & ue ? "cancel" : t & se ? "end" : t & oe ? "move" : t & re ? "start" : ""
}

function G(t) {
    return t == _t ? "down" : t == Mt ? "up" : t == Et ? "left" : t == qt ? "right" : ""
}

function U(t, e) {
    var i = e.manager;
    return i ? i.get(t) : t
}

function Z() {
    Y.apply(this, arguments)
}

function J() {
    Z.apply(this, arguments), this.pX = null, this.pY = null
}

function K() {
    Z.apply(this, arguments)
}

function tt() {
    Y.apply(this, arguments), this._timer = null, this._input = null
}

function et() {
    Z.apply(this, arguments)
}

function it() {
    Z.apply(this, arguments)
}

function nt() {
    Y.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
}

function at(t, e) {
    return e = e || {}, e.recognizers = p(e.recognizers, at.defaults.preset), new rt(t, e)
}

function rt(t, e) {
    e = e || {}, this.options = l(e, at.defaults), this.options.inputTarget = this.options.inputTarget || t, this.handlers = {}, this.session = {}, this.recognizers = [], this.element = t, this.input = S(this), this.touchAction = new X(this, this.options.touchAction), ot(this, !0), o(e.recognizers, function (t) {
        var e = this.add(new t[0](t[1]));
        t[2] && e.recognizeWith(t[2]), t[3] && e.requireFailure(t[3])
    }, this)
}

function ot(t, e) {
    var i = t.element;
    o(t.options.cssProps, function (t, n) {
        i.style[x(i.style, n)] = e ? t : ""
    })
}

function st(t, i) {
    var n = e.createEvent("Event");
    n.initEvent(t, !0, !0), n.gesture = i, i.target.dispatchEvent(n)
}
var lt = ["", "webkit", "moz", "MS", "ms", "o"],
    ut = e.createElement("div"),
    ct = "function",
    dt = Math.round,
    pt = Math.abs,
    ft = Date.now,
    ht = 1,
    vt = /mobile|tablet|ip(ad|hone|od)|android/i,
    gt = "ontouchstart" in t,
    mt = x(t, "PointerEvent") !== n,
    yt = gt && vt.test(navigator.userAgent),
    bt = "touch",
    wt = "pen",
    xt = "mouse",
    Ct = "kinect",
    kt = 25,
    Tt = 1,
    St = 2,
    Ot = 4,
    Pt = 8,
    At = 1,
    Et = 2,
    qt = 4,
    Mt = 8,
    _t = 16,
    It = Et | qt,
    Vt = Mt | _t,
    jt = It | Vt,
    Dt = ["x", "y"],
    zt = ["clientX", "clientY"];
T.prototype = {
    handler: function () { },
    init: function () {
        this.evEl && f(this.element, this.evEl, this.domHandler), this.evTarget && f(this.target, this.evTarget, this.domHandler), this.evWin && f(k(this.element), this.evWin, this.domHandler)
    },
    destroy: function () {
        this.evEl && h(this.element, this.evEl, this.domHandler), this.evTarget && h(this.target, this.evTarget, this.domHandler), this.evWin && h(k(this.element), this.evWin, this.domHandler)
    }
};
var Lt = {
    mousedown: Tt,
    mousemove: St,
    mouseup: Ot
},
    Qt = "mousedown",
    Nt = "mousemove mouseup";
u(L, T, {
    handler: function (t) {
        var e = Lt[t.type];
        e & Tt && 0 === t.button && (this.pressed = !0), e & St && 1 !== t.which && (e = Ot), this.pressed && this.allow && (e & Ot && (this.pressed = !1), this.callback(this.manager, e, {
            pointers: [t],
            changedPointers: [t],
            pointerType: xt,
            srcEvent: t
        }))
    }
});
var $t = {
    pointerdown: Tt,
    pointermove: St,
    pointerup: Ot,
    pointercancel: Pt,
    pointerout: Pt
},
    Ft = {
        2: bt,
        3: wt,
        4: xt,
        5: Ct
    },
    Wt = "pointerdown",
    Rt = "pointermove pointerup pointercancel";
t.MSPointerEvent && (Wt = "MSPointerDown", Rt = "MSPointerMove MSPointerUp MSPointerCancel"), u(Q, T, {
    handler: function (t) {
        var e = this.store,
            i = !1,
            n = t.type.toLowerCase().replace("ms", ""),
            a = $t[n],
            r = Ft[t.pointerType] || t.pointerType,
            o = r == bt,
            s = y(e, t.pointerId, "pointerId");
        a & Tt && (0 === t.button || o) ? 0 > s && (e.push(t), s = e.length - 1) : a & (Ot | Pt) && (i = !0), 0 > s || (e[s] = t, this.callback(this.manager, a, {
            pointers: e,
            changedPointers: [t],
            pointerType: r,
            srcEvent: t
        }), i && e.splice(s, 1))
    }
});
var Xt = {
    touchstart: Tt,
    touchmove: St,
    touchend: Ot,
    touchcancel: Pt
},
    Ht = "touchstart",
    Yt = "touchstart touchmove touchend touchcancel";
u(N, T, {
    handler: function (t) {
        var e = Xt[t.type];
        if (e === Tt && (this.started = !0), this.started) {
            var i = $.call(this, t, e);
            e & (Ot | Pt) && 0 === i[0].length - i[1].length && (this.started = !1), this.callback(this.manager, e, {
                pointers: i[0],
                changedPointers: i[1],
                pointerType: bt,
                srcEvent: t
            })
        }
    }
});
var Bt = {
    touchstart: Tt,
    touchmove: St,
    touchend: Ot,
    touchcancel: Pt
},
    Gt = "touchstart touchmove touchend touchcancel";
u(F, T, {
    handler: function (t) {
        var e = Bt[t.type],
            i = W.call(this, t, e);
        i && this.callback(this.manager, e, {
            pointers: i[0],
            changedPointers: i[1],
            pointerType: bt,
            srcEvent: t
        })
    }
}), u(R, T, {
    handler: function (t, e, i) {
        var n = i.pointerType == bt,
            a = i.pointerType == xt;
        if (n) this.mouse.allow = !1;
        else if (a && !this.mouse.allow) return;
        e & (Ot | Pt) && (this.mouse.allow = !0), this.callback(t, e, i)
    },
    destroy: function () {
        this.touch.destroy(), this.mouse.destroy()
    }
});
var Ut = x(ut.style, "touchAction"),
    Zt = Ut !== n,
    Jt = "compute",
    Kt = "auto",
    te = "manipulation",
    ee = "none",
    ie = "pan-x",
    ne = "pan-y";
X.prototype = {
    set: function (t) {
        t == Jt && (t = this.compute()), Zt && (this.manager.element.style[Ut] = t), this.actions = t.toLowerCase().trim()
    },
    update: function () {
        this.set(this.manager.options.touchAction)
    },
    compute: function () {
        var t = [];
        return o(this.manager.recognizers, function (e) {
            d(e.options.enable, [e]) && (t = t.concat(e.getTouchAction()))
        }), H(t.join(" "))
    },
    preventDefaults: function (t) {
        if (!Zt) {
            var e = t.srcEvent,
                i = t.offsetDirection;
            if (this.manager.session.prevented) return void e.preventDefault();
            var n = this.actions,
                a = g(n, ee),
                r = g(n, ne),
                o = g(n, ie);
            return a || r && i & It || o && i & Vt ? this.preventSrc(e) : void 0
        }
    },
    preventSrc: function (t) {
        this.manager.session.prevented = !0, t.preventDefault()
    }
};
var ae = 1,
    re = 2,
    oe = 4,
    se = 8,
    le = se,
    ue = 16,
    ce = 32;
Y.prototype = {
    defaults: {},
    set: function (t) {
        return s(this.options, t), this.manager && this.manager.touchAction.update(), this
    },
    recognizeWith: function (t) {
        if (r(t, "recognizeWith", this)) return this;
        var e = this.simultaneous;
        return t = U(t, this), e[t.id] || (e[t.id] = t, t.recognizeWith(this)), this
    },
    dropRecognizeWith: function (t) {
        return r(t, "dropRecognizeWith", this) ? this : (t = U(t, this), delete this.simultaneous[t.id], this)
    },
    requireFailure: function (t) {
        if (r(t, "requireFailure", this)) return this;
        var e = this.requireFail;
        return t = U(t, this), -1 === y(e, t) && (e.push(t), t.requireFailure(this)), this
    },
    dropRequireFailure: function (t) {
        if (r(t, "dropRequireFailure", this)) return this;
        t = U(t, this);
        var e = y(this.requireFail, t);
        return e > -1 && this.requireFail.splice(e, 1), this
    },
    hasRequireFailures: function () {
        return this.requireFail.length > 0
    },
    canRecognizeWith: function (t) {
        return !!this.simultaneous[t.id]
    },
    emit: function (t) {
        function e(e) {
            i.manager.emit(i.options.event + (e ? B(n) : ""), t)
        }
        var i = this,
            n = this.state;
        se > n && e(!0), e(), n >= se && e(!0)
    },
    tryEmit: function (t) {
        return this.canEmit() ? this.emit(t) : void (this.state = ce)
    },
    canEmit: function () {
        for (var t = 0; t < this.requireFail.length;) {
            if (!(this.requireFail[t].state & (ce | ae))) return !1;
            t++
        }
        return !0
    },
    recognize: function (t) {
        var e = s({}, t);
        return d(this.options.enable, [this, e]) ? (this.state & (le | ue | ce) && (this.state = ae), this.state = this.process(e), void (this.state & (re | oe | se | ue) && this.tryEmit(e))) : (this.reset(), void (this.state = ce))
    },
    process: function () { },
    getTouchAction: function () { },
    reset: function () { }
}, u(Z, Y, {
    defaults: {
        pointers: 1
    },
    attrTest: function (t) {
        var e = this.options.pointers;
        return 0 === e || t.pointers.length === e
    },
    process: function (t) {
        var e = this.state,
            i = t.eventType,
            n = e & (re | oe),
            a = this.attrTest(t);
        return n && (i & Pt || !a) ? e | ue : n || a ? i & Ot ? e | se : e & re ? e | oe : re : ce
    }
}), u(J, Z, {
    defaults: {
        event: "pan",
        threshold: 10,
        pointers: 1,
        direction: jt
    },
    getTouchAction: function () {
        var t = this.options.direction,
            e = [];
        return t & It && e.push(ne), t & Vt && e.push(ie), e
    },
    directionTest: function (t) {
        var e = this.options,
            i = !0,
            n = t.distance,
            a = t.direction,
            r = t.deltaX,
            o = t.deltaY;
        return a & e.direction || (e.direction & It ? (a = 0 === r ? At : 0 > r ? Et : qt, i = r != this.pX, n = Math.abs(t.deltaX)) : (a = 0 === o ? At : 0 > o ? Mt : _t, i = o != this.pY, n = Math.abs(t.deltaY))), t.direction = a, i && n > e.threshold && a & e.direction
    },
    attrTest: function (t) {
        return Z.prototype.attrTest.call(this, t) && (this.state & re || !(this.state & re) && this.directionTest(t))
    },
    emit: function (t) {
        this.pX = t.deltaX, this.pY = t.deltaY;
        var e = G(t.direction);
        e && this.manager.emit(this.options.event + e, t), this._super.emit.call(this, t)
    }
}), u(K, Z, {
    defaults: {
        event: "pinch",
        threshold: 0,
        pointers: 2
    },
    getTouchAction: function () {
        return [ee]
    },
    attrTest: function (t) {
        return this._super.attrTest.call(this, t) && (Math.abs(t.scale - 1) > this.options.threshold || this.state & re)
    },
    emit: function (t) {
        if (this._super.emit.call(this, t), 1 !== t.scale) {
            var e = t.scale < 1 ? "in" : "out";
            this.manager.emit(this.options.event + e, t)
        }
    }
}), u(tt, Y, {
    defaults: {
        event: "press",
        pointers: 1,
        time: 500,
        threshold: 5
    },
    getTouchAction: function () {
        return [Kt]
    },
    process: function (t) {
        var e = this.options,
            i = t.pointers.length === e.pointers,
            n = t.distance < e.threshold,
            r = t.deltaTime > e.time;
        if (this._input = t, !n || !i || t.eventType & (Ot | Pt) && !r) this.reset();
        else if (t.eventType & Tt) this.reset(), this._timer = a(function () {
            this.state = le, this.tryEmit()
        }, e.time, this);
        else if (t.eventType & Ot) return le;
        return ce
    },
    reset: function () {
        clearTimeout(this._timer)
    },
    emit: function (t) {
        this.state === le && (t && t.eventType & Ot ? this.manager.emit(this.options.event + "up", t) : (this._input.timeStamp = ft(), this.manager.emit(this.options.event, this._input)))
    }
}), u(et, Z, {
    defaults: {
        event: "rotate",
        threshold: 0,
        pointers: 2
    },
    getTouchAction: function () {
        return [ee]
    },
    attrTest: function (t) {
        return this._super.attrTest.call(this, t) && (Math.abs(t.rotation) > this.options.threshold || this.state & re)
    }
}), u(it, Z, {
    defaults: {
        event: "swipe",
        threshold: 10,
        velocity: .65,
        direction: It | Vt,
        pointers: 1
    },
    getTouchAction: function () {
        return J.prototype.getTouchAction.call(this)
    },
    attrTest: function (t) {
        var e, i = this.options.direction;
        return i & (It | Vt) ? e = t.velocity : i & It ? e = t.velocityX : i & Vt && (e = t.velocityY), this._super.attrTest.call(this, t) && i & t.direction && t.distance > this.options.threshold && pt(e) > this.options.velocity && t.eventType & Ot
    },
    emit: function (t) {
        var e = G(t.direction);
        e && this.manager.emit(this.options.event + e, t), this.manager.emit(this.options.event, t)
    }
}), u(nt, Y, {
    defaults: {
        event: "tap",
        pointers: 1,
        taps: 1,
        interval: 300,
        time: 250,
        threshold: 2,
        posThreshold: 10
    },
    getTouchAction: function () {
        return [te]
    },
    process: function (t) {
        var e = this.options,
            i = t.pointers.length === e.pointers,
            n = t.distance < e.threshold,
            r = t.deltaTime < e.time;
        if (this.reset(), t.eventType & Tt && 0 === this.count) return this.failTimeout();
        if (n && r && i) {
            if (t.eventType != Ot) return this.failTimeout();
            var o = this.pTime ? t.timeStamp - this.pTime < e.interval : !0,
                s = !this.pCenter || V(this.pCenter, t.center) < e.posThreshold;
            this.pTime = t.timeStamp, this.pCenter = t.center, s && o ? this.count += 1 : this.count = 1, this._input = t;
            var l = this.count % e.taps;
            if (0 === l) return this.hasRequireFailures() ? (this._timer = a(function () {
                this.state = le, this.tryEmit()
            }, e.interval, this), re) : le
        }
        return ce
    },
    failTimeout: function () {
        return this._timer = a(function () {
            this.state = ce
        }, this.options.interval, this), ce
    },
    reset: function () {
        clearTimeout(this._timer)
    },
    emit: function () {
        this.state == le && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
    }
}), at.VERSION = "2.0.4", at.defaults = {
    domEvents: !1,
    touchAction: Jt,
    enable: !0,
    inputTarget: null,
    inputClass: null,
    preset: [
        [et, {
            enable: !1
        }],
        [K, {
            enable: !1
        },
            ["rotate"]
        ],
        [it, {
            direction: It
        }],
        [J, {
            direction: It
        },
            ["swipe"]
        ],
        [nt],
        [nt, {
            event: "doubletap",
            taps: 2
        },
            ["tap"]
        ],
        [tt]
    ],
    cssProps: {
        userSelect: "default",
        touchSelect: "none",
        touchCallout: "none",
        contentZooming: "none",
        userDrag: "none",
        tapHighlightColor: "rgba(0,0,0,0)"
    }
};
var de = 1,
    pe = 2;
rt.prototype = {
    set: function (t) {
        return s(this.options, t), t.touchAction && this.touchAction.update(), t.inputTarget && (this.input.destroy(), this.input.target = t.inputTarget, this.input.init()), this
    },
    stop: function (t) {
        this.session.stopped = t ? pe : de
    },
    recognize: function (t) {
        var e = this.session;
        if (!e.stopped) {
            this.touchAction.preventDefaults(t);
            var i, n = this.recognizers,
                a = e.curRecognizer;
            (!a || a && a.state & le) && (a = e.curRecognizer = null);
            for (var r = 0; r < n.length;) i = n[r], e.stopped === pe || a && i != a && !i.canRecognizeWith(a) ? i.reset() : i.recognize(t), !a && i.state & (re | oe | se) && (a = e.curRecognizer = i), r++
        }
    },
    get: function (t) {
        if (t instanceof Y) return t;
        for (var e = this.recognizers, i = 0; i < e.length; i++)
            if (e[i].options.event == t) return e[i];
        return null
    },
    add: function (t) {
        if (r(t, "add", this)) return this;
        var e = this.get(t.options.event);
        return e && this.remove(e), this.recognizers.push(t), t.manager = this, this.touchAction.update(), t
    },
    remove: function (t) {
        if (r(t, "remove", this)) return this;
        var e = this.recognizers;
        return t = this.get(t), e.splice(y(e, t), 1), this.touchAction.update(), this
    },
    on: function (t, e) {
        var i = this.handlers;
        return o(m(t), function (t) {
            i[t] = i[t] || [], i[t].push(e)
        }), this
    },
    off: function (t, e) {
        var i = this.handlers;
        return o(m(t), function (t) {
            e ? i[t].splice(y(i[t], e), 1) : delete i[t]
        }), this
    },
    emit: function (t, e) {
        this.options.domEvents && st(t, e);
        var i = this.handlers[t] && this.handlers[t].slice();
        if (i && i.length) {
            e.type = t, e.preventDefault = function () {
                e.srcEvent.preventDefault()
            };
            for (var n = 0; n < i.length;) i[n](e), n++
        }
    },
    destroy: function () {
        this.element && ot(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
    }
}, s(at, {
    INPUT_START: Tt,
    INPUT_MOVE: St,
    INPUT_END: Ot,
    INPUT_CANCEL: Pt,
    STATE_POSSIBLE: ae,
    STATE_BEGAN: re,
    STATE_CHANGED: oe,
    STATE_ENDED: se,
    STATE_RECOGNIZED: le,
    STATE_CANCELLED: ue,
    STATE_FAILED: ce,
    DIRECTION_NONE: At,
    DIRECTION_LEFT: Et,
    DIRECTION_RIGHT: qt,
    DIRECTION_UP: Mt,
    DIRECTION_DOWN: _t,
    DIRECTION_HORIZONTAL: It,
    DIRECTION_VERTICAL: Vt,
    DIRECTION_ALL: jt,
    Manager: rt,
    Input: T,
    TouchAction: X,
    TouchInput: F,
    MouseInput: L,
    PointerEventInput: Q,
    TouchMouseInput: R,
    SingleTouchInput: N,
    Recognizer: Y,
    AttrRecognizer: Z,
    Tap: nt,
    Pan: J,
    Swipe: it,
    Pinch: K,
    Rotate: et,
    Press: tt,
    on: f,
    off: h,
    each: o,
    merge: l,
    extend: s,
    inherit: u,
    bindFn: c,
    prefixed: x
}), typeof define == ct && define.amd ? define(function () {
    return at
}) : "undefined" != typeof module && module.exports ? module.exports = at : t[i] = at

}(window, document, "Hammer"), function (t) { "function" == typeof define && define.amd ? define(["jquery", "hammerjs"], t) : "object" == typeof exports ? t(require("jquery"), require("hammerjs")) : t(jQuery, Hammer) }(function (t, e) { function i(i, n) { var a = t(i); a.data("hammer") || a.data("hammer", new e(a[0], n)) } t.fn.hammer = function (t) { return this.each(function () { i(this, t) }) }, e.Manager.prototype.emit = function (e) { return function (i, n) { e.call(this, i, n), t(this.element).trigger({ type: i, gesture: n }) } }(e.Manager.prototype.emit) }), function (t) { t.Package ? Materialize = {} : t.Materialize = {} }(window), Materialize.guid = function () { function t() { return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) } return function () { return t() + t() + "-" + t() + "-" + t() + "-" + t() + "-" + t() + t() + t() } }(), Materialize.elementOrParentIsFixed = function (t) { var e = $(t), i = e.add(e.parents()), n = !1; return i.each(function () { return "fixed" === $(this).css("position") ? (n = !0, !1) : void 0 }), n }; var Vel; Vel = $ ? $.Velocity : jQuery ? jQuery.Velocity : Velocity, function (t) { t.fn.collapsible = function (e) { var i = { accordion: void 0 }; return e = t.extend(i, e), this.each(function () { function i(e) { s = o.find("> li > .collapsible-header"), 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", "") } }), s.not(e).removeClass("active").parent().removeClass("active"), s.not(e).parent().children(".collapsible-body").stop(!0, !1).slideUp({ duration: 350, easing: "easeOutQuart", queue: !1, complete: function () { t(this).css("height", "") } }) }

            function n(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 a(t) {
                var e = r(t);
                return e.length > 0
            }

            function r(t) {
                return t.closest("li > .collapsible-header")
            }
            var o = t(this),
                s = t(this).find("> li > .collapsible-header"),
                l = o.data("collapsible");
            o.off("click.collapse", "> li > .collapsible-header"), s.off("click.collapse"), o.on("click.collapse", "> li > .collapsible-header", function (o) {
                var s = t(this),
                    u = t(o.target);
                a(u) && (u = r(u)), u.toggleClass("active"), e.accordion || "accordion" === l || void 0 === l ? i(u) : (n(u), s.hasClass("active") && n(s))
            });
            var s = o.find("> li > .collapsible-header");
            e.accordion || "accordion" === l || void 0 === l ? i(s.filter(".active").first()) : s.filter(".active").each(function () {
                n(t(this))
            })
        })
    }, t(document).ready(function () {
        t(".collapsible").collapsible()
    })
}(jQuery),
function (t) {
    t.fn.scrollTo = function (e) {
        return t(this).scrollTop(t(this).scrollTop() - t(this).offset().top + t(e).offset().top), this
    }, t.fn.dropdown = function (e) {
        var i = {
            inDuration: 300,
            outDuration: 225,
            constrain_width: !0,
            hover: !1,
            gutter: 0,
            belowOrigin: !1,
            alignment: "left"
        };
        this.each(function () {
            function n() {
                void 0 !== o.data("induration") && (s.inDuration = o.data("inDuration")), void 0 !== o.data("outduration") && (s.outDuration = o.data("outDuration")), void 0 !== o.data("constrainwidth") && (s.constrain_width = o.data("constrainwidth")), void 0 !== o.data("hover") && (s.hover = o.data("hover")), void 0 !== o.data("gutter") && (s.gutter = o.data("gutter")), void 0 !== o.data("beloworigin") && (s.belowOrigin = o.data("beloworigin")), void 0 !== o.data("alignment") && (s.alignment = o.data("alignment"))
            }

            function a(e) {
                "focus" === e && (l = !0), n(), u.addClass("active"), o.addClass("active"), s.constrain_width === !0 ? u.css("width", o.outerWidth()) : u.css("white-space", "nowrap");
                var i, a = window.innerHeight,
                    r = o.innerHeight(),
                    c = o.offset().left,
                    d = o.offset().top - t(window).scrollTop(),
                    p = s.alignment,
                    f = 0;
                if (s.belowOrigin === !0 && (f = r), c + u.innerWidth() > t(window).width() ? p = "right" : c - u.innerWidth() + o.innerWidth() < 0 && (p = "left"), d + u.innerHeight() > a)
                    if (d + r - u.innerHeight() < 0) {
                        var h = a - d - f;
                        u.css("max-height", h)
                    } else f || (f += r), f -= u.innerHeight();
                if ("left" === p) i = s.gutter, leftPosition = o.position().left + i;
                else if ("right" === p) {
                    var v = o.position().left + o.outerWidth() - u.outerWidth();
                    i = -s.gutter, leftPosition = v + i
                }
                u.css({
                    position: "absolute",
                    top: o.position().top + f,
                    left: leftPosition
                }), u.stop(!0, !0).css("opacity", 0).slideDown({
                    queue: !1,
                    duration: s.inDuration,
                    easing: "easeOutCubic",
                    complete: function () {
                        t(this).css("height", "")
                    }
                }).animate({
                    opacity: 1
                }, {
                        queue: !1,
                        duration: s.inDuration,
                        easing: "easeOutSine"
                    })
            }

            function r() {
                l = !1, u.fadeOut(s.outDuration), u.removeClass("active"), o.removeClass("active"), setTimeout(function () {
                    u.css("max-height", "")
                }, s.outDuration)
            }
            var o = t(this),
                s = t.extend({}, i, e),
                l = !1,
                u = t("#" + o.attr("data-activates"));
            if (n(), o.after(u), s.hover) {
                var c = !1;
                o.unbind("click." + o.attr("id")), o.on("mouseenter", function (t) {
                    c === !1 && (a(), c = !0)
                }), o.on("mouseleave", function (e) {
                    var i = e.toElement || e.relatedTarget;
                    t(i).closest(".dropdown-content").is(u) || (u.stop(!0, !0), r(), c = !1)
                }), u.on("mouseleave", function (e) {
                    var i = e.toElement || e.relatedTarget;
                    t(i).closest(".dropdown-button").is(o) || (u.stop(!0, !0), r(), c = !1)
                })
            } else o.unbind("click." + o.attr("id")), o.bind("click." + o.attr("id"), function (e) {
                l || (o[0] != e.currentTarget || o.hasClass("active") || 0 !== t(e.target).closest(".dropdown-content").length ? o.hasClass("active") && (r(), t(document).unbind("click." + u.attr("id") + " touchstart." + u.attr("id"))) : (e.preventDefault(), a("click")), u.hasClass("active") && t(document).bind("click." + u.attr("id") + " touchstart." + u.attr("id"), function (e) {
                    u.is(e.target) || o.is(e.target) || o.find(e.target).length || (r(), t(document).unbind("click." + u.attr("id") + " touchstart." + u.attr("id")))
                }))
            });
            o.on("open", function (t, e) {
                a(e)
            }), o.on("close", r)
        })
    }, t(document).ready(function () {
        t(".dropdown-button").dropdown()
    })
}(jQuery),
function (t) {
    var e = 0,
        i = 0,
        n = function () {
            return i++ , "materialize-lean-overlay-" + i
        };
    t.fn.extend({
        openModal: function (i) {
            t("body").css("overflow", "hidden");
            var a = {
                opacity: .5,
                in_duration: 350,
                out_duration: 250,
                ready: void 0,
                complete: void 0,
                dismissible: !0,
                starting_top: "4%"
            },
                r = n(),
                o = t(this),
                s = t('<div class="lean-overlay"></div>'),
                l = ++e;
            s.attr("id", r).css("z-index", 1e3 + 2 * l), o.data("overlay-id", r).css("z-index", 1e3 + 2 * l + 1), t("body").append(s), i = t.extend(a, i), i.dismissible && (s.click(function () {
                o.closeModal(i)
            }), t(document).on("keyup.leanModal" + r, function (t) {
                27 === t.keyCode && o.closeModal(i)
            })), o.find(".modal-close").on("click.close", function (t) {
                o.closeModal(i)
            }), s.css({
                display: "block",
                opacity: 0
            }), o.css({
                display: "block",
                opacity: 0
            }), s.velocity({
                opacity: i.opacity
            }, {
                    duration: i.in_duration,
                    queue: !1,
                    ease: "easeOutCubic"
                }), o.data("associated-overlay", s[0]), o.hasClass("bottom-sheet") ? o.velocity({
                    bottom: "0",
                    opacity: 1
                }, {
                        duration: i.in_duration,
                        queue: !1,
                        ease: "easeOutCubic",
                        complete: function () {
                            "function" == typeof i.ready && i.ready()
                        }
                    }) : (t.Velocity.hook(o, "scaleX", .7), o.css({
                        top: i.starting_top
                    }), o.velocity({
                        top: "45%",
                        opacity: 1,
                        scaleX: "1"
                    }, {
                            duration: i.in_duration,
                            queue: !1,
                            ease: "easeOutCubic",
                            complete: function () {
                                "function" == typeof i.ready && i.ready()
                            }
                        }))
        }
    }), t.fn.extend({
        closeModal: function (i) {
            var n = {
                out_duration: 250,
                complete: void 0
            },
                a = t(this),
                r = a.data("overlay-id"),
                o = t("#" + r);
            i = t.extend(n, i), t("body").css("overflow", ""), a.find(".modal-close").off("click.close"), t(document).off("keyup.leanModal" + r), o.velocity({
                opacity: 0
            }, {
                    duration: i.out_duration,
                    queue: !1,
                    ease: "easeOutQuart"
                }), a.hasClass("bottom-sheet") ? a.velocity({
                    bottom: "-100%",
                    opacity: 0
                }, {
                        duration: i.out_duration,
                        queue: !1,
                        ease: "easeOutCubic",
                        complete: function () {
                            o.css({
                                display: "none"
                            }), "function" == typeof i.complete && i.complete(), o.remove(), e--
                        }
                    }) : a.velocity({
                        top: i.starting_top,
                        opacity: 0,
                        scaleX: .7
                    }, {
                            duration: i.out_duration,
                            complete: function () {
                                t(this).css("display", "none"), "function" == typeof i.complete && i.complete(), o.remove(), e--
                            }
                        })
        }
    }), t.fn.extend({
        leanModal: function (e) {
            return this.each(function () {
                var i = {
                    starting_top: "4%"
                },
                    n = t.extend(i, e);
                t(this).click(function (e) {
                    n.starting_top = (t(this).offset().top - t(window).scrollTop()) / 1.15;
                    var i = t(this).attr("href") || "#" + t(this).data("target");
                    t(i).openModal(n), e.preventDefault()
                })
            })
        }
    })
}(jQuery),
function (t) {
    t.fn.materialbox = function () {
        return this.each(function () {
            function e() {
                r = !1;
                var e = l.parent(".material-placeholder"),
                    n = (window.innerWidth, window.innerHeight, l.data("width")),
                    o = l.data("height");
                l.velocity("stop", !0), t("#materialbox-overlay").velocity("stop", !0), t(".materialbox-caption").velocity("stop", !0), t("#materialbox-overlay").velocity({
                    opacity: 0
                }, {
                        duration: s,
                        queue: !1,
                        easing: "easeOutQuad",
                        complete: function () {
                            a = !1, t(this).remove()
                        }
                    }), l.velocity({
                        width: n,
                        height: o,
                        left: 0,
                        top: 0
                    }, {
                            duration: s,
                            queue: !1,
                            easing: "easeOutQuad"
                        }), t(".materialbox-caption").velocity({
                            opacity: 0
                        }, {
                                duration: s,
                                queue: !1,
                                easing: "easeOutQuad",
                                complete: function () {
                                    e.css({
                                        height: "",
                                        width: "",
                                        position: "",
                                        top: "",
                                        left: ""
                                    }), l.css({
                                        height: "",
                                        top: "",
                                        left: "",
                                        width: "",
                                        "max-width": "",
                                        position: "",
                                        "z-index": ""
                                    }), l.removeClass("active"), r = !0, t(this).remove(), i.css("overflow", "")
                                }
                            })
            }
            if (!t(this).hasClass("initialized")) {
                t(this).addClass("initialized");
                var i, n, a = !1,
                    r = !0,
                    o = 275,
                    s = 200,
                    l = t(this),
                    u = t("<div></div>").addClass("material-placeholder");
                l.wrap(u), l.on("click", function () {
                    var s = l.parent(".material-placeholder"),
                        u = window.innerWidth,
                        c = window.innerHeight,
                        d = l.width(),
                        p = l.height();
                    if (r === !1) return e(), !1;
                    if (a && r === !0) return e(), !1;
                    r = !1, l.addClass("active"), a = !0, s.css({
                        width: s[0].getBoundingClientRect().width,
                        height: s[0].getBoundingClientRect().height,
                        position: "relative",
                        top: 0,
                        left: 0
                    }), i = void 0, n = s[0].parentNode;
                    for (; null !== n && !t(n).is(document);) {
                        var f = t(n);
                        "hidden" === f.css("overflow") && (f.css("overflow", "visible"), i = void 0 === i ? f : i.add(f)), n = n.parentNode
                    }
                    l.css({
                        position: "absolute",
                        "z-index": 1e3
                    }).data("width", d).data("height", p);
                    var h = t('<div id="materialbox-overlay"></div>').css({
                        opacity: 0
                    }).click(function () {
                        r === !0 && e()
                    });
                    if (t("body").append(h), h.velocity({
                        opacity: 1
                    }, {
                            duration: o,
                            queue: !1,
                            easing: "easeOutQuad"
                        }), "" !== l.data("caption")) {
                        var v = t('<div class="materialbox-caption"></div>');
                        v.text(l.data("caption")), t("body").append(v), v.css({
                            display: "inline"
                        }), v.velocity({
                            opacity: 1
                        }, {
                                duration: o,
                                queue: !1,
                                easing: "easeOutQuad"
                            })
                    }
                    var g = 0,
                        m = d / u,
                        y = p / c,
                        b = 0,
                        w = 0;
                    m > y ? (g = p / d, b = .9 * u, w = .9 * u * g) : (g = d / p, b = .9 * c * g, w = .9 * c), l.hasClass("responsive-img") ? l.velocity({
                        "max-width": b,
                        width: d
                    }, {
                            duration: 0,
                            queue: !1,
                            complete: function () {
                                l.css({
                                    left: 0,
                                    top: 0
                                }).velocity({
                                    height: w,
                                    width: b,
                                    left: t(document).scrollLeft() + u / 2 - l.parent(".material-placeholder").offset().left - b / 2,
                                    top: t(document).scrollTop() + c / 2 - l.parent(".material-placeholder").offset().top - w / 2
                                }, {
                                        duration: o,
                                        queue: !1,
                                        easing: "easeOutQuad",
                                        complete: function () {
                                            r = !0
                                        }
                                    })
                            }
                        }) : l.css("left", 0).css("top", 0).velocity({
                            height: w,
                            width: b,
                            left: t(document).scrollLeft() + u / 2 - l.parent(".material-placeholder").offset().left - b / 2,
                            top: t(document).scrollTop() + c / 2 - l.parent(".material-placeholder").offset().top - w / 2
                        }, {
                                duration: o,
                                queue: !1,
                                easing: "easeOutQuad",
                                complete: function () {
                                    r = !0
                                }
                            })
                }), t(window).scroll(function () {
                    a && e()
                }), t(document).keyup(function (t) {
                    27 === t.keyCode && r === !0 && a && e()
                })
            }
        })
    }, t(document).ready(function () {
        t(".materialboxed").materialbox()
    })
}(jQuery),
function (t) {
    t.fn.parallax = function () {
        var e = t(window).width();
        return this.each(function (i) {
            function n(i) {
                var n;
                n = 601 > e ? a.height() > 0 ? a.height() : a.children("img").height() : a.height() > 0 ? a.height() : 500;
                var r = a.children("img").first(),
                    o = r.height(),
                    s = o - n,
                    l = a.offset().top + n,
                    u = a.offset().top,
                    c = t(window).scrollTop(),
                    d = window.innerHeight,
                    p = c + d,
                    f = (p - u) / (n + d),
                    h = Math.round(s * f);
                i && r.css("display", "block"), l > c && c + d > u && r.css("transform", "translate3D(-50%," + h + "px, 0)")
            }
            var a = t(this);
            a.addClass("parallax"), a.children("img").one("load", function () {
                n(!0)
            }).each(function () {
                this.complete && t(this).load()
            }), t(window).scroll(function () {
                e = t(window).width(), n(!1)
            }), t(window).resize(function () {
                e = t(window).width(), n(!1)
            })
        })
    }
}(jQuery),
function (t) {
    var e = {
        init: function () {
            return this.each(function () {
                var e = t(this);
                t(window).width();
                e.width("100%");
                var i, n, a = e.find("li.tab a"),
                    r = e.width(),
                    o = e.find("li").first().outerWidth(),
                    s = 0;
                i = t(a.filter('[href="' + location.hash + '"]')), 0 === i.length && (i = t(this).find("li.tab a.active").first()), 0 === i.length && (i = t(this).find("li.tab a").first()), i.addClass("active"), s = a.index(i), 0 > s && (s = 0), n = t(i[0].hash), e.append('<div class="indicator"></div>');
                var l = e.find(".indicator");
                e.is(":visible") && (l.css({
                    right: r - (s + 1) * o
                }), l.css({
                    left: s * o
                })), t(window).resize(function () {
                    r = e.width(), o = e.find("li").first().outerWidth(), 0 > s && (s = 0), 0 !== o && 0 !== r && (l.css({
                        right: r - (s + 1) * o
                    }), l.css({
                        left: s * o
                    }))
                }), a.not(i).each(function () {
                    t(this.hash).hide()
                }), e.on("click", "a", function (u) {
                    if (t(this).parent().hasClass("disabled")) return void u.preventDefault();
                    r = e.width(), o = e.find("li").first().outerWidth(), i.removeClass("active"), n.hide(), i = t(this), n = t(this.hash), a = e.find("li.tab a"), i.addClass("active");
                    var c = s;
                    s = a.index(t(this)), 0 > s && (s = 0), n.show(), s - c >= 0 ? (l.velocity({
                        right: r - (s + 1) * o
                    }, {
                            duration: 300,
                            queue: !1,
                            easing: "easeOutQuad"
                        }), l.velocity({
                            left: s * o
                        }, {
                                duration: 300,
                                queue: !1,
                                easing: "easeOutQuad",
                                delay: 90
                            })) : (l.velocity({
                                left: s * o
                            }, {
                                    duration: 300,
                                    queue: !1,
                                    easing: "easeOutQuad"
                                }), l.velocity({
                                    right: r - (s + 1) * o
                                }, {
                                        duration: 300,
                                        queue: !1,
                                        easing: "easeOutQuad",
                                        delay: 90
                                    })), u.preventDefault()
                })
            })
        },
        select_tab: function (t) {
            this.find('a[href="#' + t + '"]').trigger("click")
        }
    };
    t.fn.tabs = function (i) {
        return e[i] ? e[i].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof i && i ? void t.error("Method " + i + " does not exist on jQuery.tooltip") : e.init.apply(this, arguments)
    }, t(document).ready(function () {
        t("ul.tabs").tabs()
    })
}(jQuery),
function (t) {
    t.fn.tooltip = function (i) {
        var n = 5,
            a = {
                delay: 350
            };
        return "remove" === i ? (this.each(function () {
            t("#" + t(this).attr("data-tooltip-id")).remove(), t(this).off("mouseenter.tooltip mouseleave.tooltip")
        }), !1) : (i = t.extend(a, i), this.each(function () {
            var a = Materialize.guid(),
                r = t(this);
            r.attr("data-tooltip-id", a);
            var o = t("<span></span>").text(r.attr("data-tooltip")),
                s = t("<div></div>");
            s.addClass("material-tooltip").append(o).appendTo(t("body")).attr("id", a);
            var l = t("<div></div>").addClass("backdrop");
            l.appendTo(s), l.css({
                top: 0,
                left: 0
            }), r.off("mouseenter.tooltip mouseleave.tooltip");
            var u, c = !1;
            r.on({
                "mouseenter.tooltip": function (t) {
                    var a = r.attr("data-delay");
                    a = void 0 === a || "" === a ? i.delay : a, u = setTimeout(function () {
                        c = !0, s.velocity("stop"), l.velocity("stop"), s.css({
                            display: "block",
                            left: "0px",
                            top: "0px"
                        }), s.children("span").text(r.attr("data-tooltip"));
                        var t, i, a, o = r.outerWidth(),
                            u = r.outerHeight(),
                            d = r.attr("data-position"),
                            p = s.outerHeight(),
                            f = s.outerWidth(),
                            h = "0px",
                            v = "0px",
                            g = 8;
                        "top" === d ? (t = r.offset().top - p - n, i = r.offset().left + o / 2 - f / 2, a = e(i, t, f, p), h = "-10px", l.css({
                            borderRadius: "14px 14px 0 0",
                            transformOrigin: "50% 90%",
                            marginTop: p,
                            marginLeft: f / 2 - l.width() / 2
                        })) : "left" === d ? (t = r.offset().top + u / 2 - p / 2, i = r.offset().left - f - n, a = e(i, t, f, p), v = "-10px", l.css({
                            width: "14px",
                            height: "14px",
                            borderRadius: "14px 0 0 14px",
                            transformOrigin: "95% 50%",
                            marginTop: p / 2,
                            marginLeft: f
                        })) : "right" === d ? (t = r.offset().top + u / 2 - p / 2, i = r.offset().left + o + n, a = e(i, t, f, p), v = "+10px", l.css({
                            width: "14px",
                            height: "14px",
                            borderRadius: "0 14px 14px 0",
                            transformOrigin: "5% 50%",
                            marginTop: p / 2,
                            marginLeft: "0px"
                        })) : (t = r.offset().top + r.outerHeight() + n, i = r.offset().left + o / 2 - f / 2, a = e(i, t, f, p), h = "+10px", l.css({
                            marginLeft: f / 2 - l.width() / 2
                        })), s.css({
                            top: a.y,
                            left: a.x
                        }), g = f / 8, 8 > g && (g = 8), ("right" === d || "left" === d) && (g = f / 10, 6 > g && (g = 6)), s.velocity({
                            marginTop: h,
                            marginLeft: v
                        }, {
                                duration: 350,
                                queue: !1
                            }).velocity({
                                opacity: 1
                            }, {
                                    duration: 300,
                                    delay: 50,
                                    queue: !1
                                }), l.css({
                                    display: "block"
                                }).velocity({
                                    opacity: 1
                                }, {
                                        duration: 55,
                                        delay: 0,
                                        queue: !1
                                    }).velocity({
                                        scale: g
                                    }, {
                                            duration: 300,
                                            delay: 0,
                                            queue: !1,
                                            easing: "easeInOutQuad"
                                        })
                    }, a)
                },
                "mouseleave.tooltip": function () {
                    c = !1, clearTimeout(u), setTimeout(function () {
                        1 != c && (s.velocity({
                            opacity: 0,
                            marginTop: 0,
                            marginLeft: 0
                        }, {
                                duration: 225,
                                queue: !1
                            }), l.velocity({
                                opacity: 0,
                                scale: 1
                            }, {
                                    duration: 225,
                                    queue: !1,
                                    complete: function () {
                                        l.css("display", "none"), s.css("display", "none"), c = !1
                                    }
                                }))
                    }, 225)
                }
            })
        }))
    };
    var e = function (e, i, n, a) {
        var r = e,
            o = i;
        return 0 > r ? r = 4 : r + n > window.innerWidth && (r -= r + n - window.innerWidth), 0 > o ? o = 4 : o + a > window.innerHeight + t(window).scrollTop && (o -= o + a - window.innerHeight), {
            x: r,
            y: o
        }
    };
    t(document).ready(function () {
        t(".tooltipped").tooltip()
    })
}(jQuery),
function (t) {
    "use strict";

    function e(t) {
        return null !== t && t === t.window
    }

    function i(t) {
        return e(t) ? t : 9 === t.nodeType && t.defaultView
    }

    function n(t) {
        var e, n, a = {
            top: 0,
            left: 0
        },
            r = t && t.ownerDocument;
        return e = r.documentElement, "undefined" != typeof t.getBoundingClientRect && (a = t.getBoundingClientRect()), n = i(r), {
            top: a.top + n.pageYOffset - e.clientTop,
            left: a.left + n.pageXOffset - e.clientLeft
        }
    }

    function a(t) {
        var e = "";
        for (var i in t) t.hasOwnProperty(i) && (e += i + ":" + t[i] + ";");
        return e
    }

    function r(t) {
        if (c.allowEvent(t) === !1) return null;
        for (var e = null, i = t.target || t.srcElement; null !== i.parentElement;) {
            if (!(i instanceof SVGElement || -1 === i.className.indexOf("waves-effect"))) {
                e = i;
                break
            }
            if (i.classList.contains("waves-effect")) {
                e = i;
                break
            }
            i = i.parentElement
        }
        return e
    }

    function o(e) {
        var i = r(e);
        null !== i && (u.show(e, i), "ontouchstart" in t && (i.addEventListener("touchend", u.hide, !1), i.addEventListener("touchcancel", u.hide, !1)), i.addEventListener("mouseup", u.hide, !1), i.addEventListener("mouseleave", u.hide, !1))
    }
    var s = s || {},
        l = document.querySelectorAll.bind(document),
        u = {
            duration: 750,
            show: function (t, e) {
                if (2 === t.button) return !1;
                var i = e || this,
                    r = document.createElement("div");
                r.className = "waves-ripple", i.appendChild(r);
                var o = n(i),
                    s = t.pageY - o.top,
                    l = t.pageX - o.left,
                    c = "scale(" + i.clientWidth / 100 * 10 + ")";
                "touches" in t && (s = t.touches[0].pageY - o.top, l = t.touches[0].pageX - o.left), r.setAttribute("data-hold", Date.now()), r.setAttribute("data-scale", c), r.setAttribute("data-x", l), r.setAttribute("data-y", s);
                var d = {
                    top: s + "px",
                    left: l + "px"
                };
                r.className = r.className + " waves-notransition", r.setAttribute("style", a(d)), r.className = r.className.replace("waves-notransition", ""), d["-webkit-transform"] = c, d["-moz-transform"] = c, d["-ms-transform"] = c, d["-o-transform"] = c, d.transform = c, d.opacity = "1", d["-webkit-transition-duration"] = u.duration + "ms", d["-moz-transition-duration"] = u.duration + "ms", d["-o-transition-duration"] = u.duration + "ms", d["transition-duration"] = u.duration + "ms", d["-webkit-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", d["-moz-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", d["-o-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", d["transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", r.setAttribute("style", a(d))
            },
            hide: function (t) {
                c.touchup(t);
                var e = this,
                    i = (1.4 * e.clientWidth, null),
                    n = e.getElementsByClassName("waves-ripple");
                if (!(n.length > 0)) return !1;
                i = n[n.length - 1];
                var r = i.getAttribute("data-x"),
                    o = i.getAttribute("data-y"),
                    s = i.getAttribute("data-scale"),
                    l = Date.now() - Number(i.getAttribute("data-hold")),
                    d = 350 - l;
                0 > d && (d = 0), setTimeout(function () {
                    var t = {
                        top: o + "px",
                        left: r + "px",
                        opacity: "0",
                        "-webkit-transition-duration": u.duration + "ms",
                        "-moz-transition-duration": u.duration + "ms",
                        "-o-transition-duration": u.duration + "ms",
                        "transition-duration": u.duration + "ms",
                        "-webkit-transform": s,
                        "-moz-transform": s,
                        "-ms-transform": s,
                        "-o-transform": s,
                        transform: s
                    };
                    i.setAttribute("style", a(t)), setTimeout(function () {
                        try {
                            e.removeChild(i)
                        } catch (t) {
                            return !1
                        }
                    }, u.duration)
                }, d)
            },
            wrapInput: function (t) {
                for (var e = 0; e < t.length; e++) {
                    var i = t[e];
                    if ("input" === i.tagName.toLowerCase()) {
                        var n = i.parentNode;
                        if ("i" === n.tagName.toLowerCase() && -1 !== n.className.indexOf("waves-effect")) continue;
                        var a = document.createElement("i");
                        a.className = i.className + " waves-input-wrapper";
                        var r = i.getAttribute("style");
                        r || (r = ""), a.setAttribute("style", r), i.className = "waves-button-input", i.removeAttribute("style"), n.replaceChild(a, i), a.appendChild(i)
                    }
                }
            }
        },
        c = {
            touches: 0,
            allowEvent: function (t) {
                var e = !0;
                return "touchstart" === t.type ? c.touches += 1 : "touchend" === t.type || "touchcancel" === t.type ? setTimeout(function () {
                    c.touches > 0 && (c.touches -= 1)
                }, 500) : "mousedown" === t.type && c.touches > 0 && (e = !1), e
            },
            touchup: function (t) {
                c.allowEvent(t)
            }
        };
    s.displayEffect = function (e) {
        e = e || {}, "duration" in e && (u.duration = e.duration), u.wrapInput(l(".waves-effect")), "ontouchstart" in t && document.body.addEventListener("touchstart", o, !1), document.body.addEventListener("mousedown", o, !1)
    }, s.attach = function (e) {
        "input" === e.tagName.toLowerCase() && (u.wrapInput([e]), e = e.parentElement), "ontouchstart" in t && e.addEventListener("touchstart", o, !1), e.addEventListener("mousedown", o, !1)
    }, t.Waves = s, document.addEventListener("DOMContentLoaded", function () {
        s.displayEffect()
    }, !1)
}(window), Materialize.toast = function (t, e, i, n) {
    function a(t) {
        var e = document.createElement("div");
        if (e.classList.add("toast"), i)
            for (var a = i.split(" "), r = 0, o = a.length; o > r; r++) e.classList.add(a[r]);
        ("object" == typeof HTMLElement ? t instanceof HTMLElement : t && "object" == typeof t && null !== t && 1 === t.nodeType && "string" == typeof t.nodeName) ? e.appendChild(t) : t instanceof jQuery ? e.appendChild(t[0]) : e.innerHTML = t;
        var s = new Hammer(e, {
            prevent_default: !1
        });
        return s.on("pan", function (t) {
            var i = t.deltaX,
                n = 80;
            e.classList.contains("panning") || e.classList.add("panning");
            var a = 1 - Math.abs(i / n);
            0 > a && (a = 0), Vel(e, {
                left: i,
                opacity: a
            }, {
                    duration: 50,
                    queue: !1,
                    easing: "easeOutQuad"
                })
        }), s.on("panend", function (t) {
            var i = t.deltaX,
                a = 80;
            Math.abs(i) > a ? Vel(e, {
                marginTop: "-40px"
            }, {
                    duration: 375,
                    easing: "easeOutExpo",
                    queue: !1,
                    complete: function () {
                        "function" == typeof n && n(), e.parentNode.removeChild(e)
                    }
                }) : (e.classList.remove("panning"), Vel(e, {
                    left: 0,
                    opacity: 1
                }, {
                        duration: 300,
                        easing: "easeOutExpo",
                        queue: !1
                    }))
        }), e
    }
    i = i || "";
    var r = document.getElementById("toast-container");
    null === r && (r = document.createElement("div"), r.id = "toast-container", document.body.appendChild(r));
    var o = a(t);
    t && r.appendChild(o), o.style.top = "35px", o.style.opacity = 0, Vel(o, {
        top: "0px",
        opacity: 1
    }, {
            duration: 300,
            easing: "easeOutCubic",
            queue: !1
        });
    var s = e,
        l = setInterval(function () {
            null === o.parentNode && window.clearInterval(l), o.classList.contains("panning") || (s -= 20), 0 >= s && (Vel(o, {
                opacity: 0,
                marginTop: "-40px"
            }, {
                    duration: 375,
                    easing: "easeOutExpo",
                    queue: !1,
                    complete: function () {
                        "function" == typeof n && n(), this[0].parentNode.removeChild(this[0])
                    }
                }), window.clearInterval(l))
        }, 20)
},
function (t) {
    var e = {
        init: function (e) {
            var i = {
                menuWidth: 240,
                edge: "left",
                closeOnClick: !1
            };
            e = t.extend(i, e), t(this).each(function () {
                function i(i) {
                    o = !1, s = !1, t("body").css("overflow", ""), t("#sidenav-overlay").velocity({
                        opacity: 0
                    }, {
                            duration: 200,
                            queue: !1,
                            easing: "easeOutQuad",
                            complete: function () {
                                t(this).remove()
                            }
                        }), "left" === e.edge ? (r.css({
                            width: "",
                            right: "",
                            left: "0"
                        }), a.velocity({
                            left: -1 * (e.menuWidth + 10)
                        }, {
                                duration: 200,
                                queue: !1,
                                easing: "easeOutCubic",
                                complete: function () {
                                    i === !0 && (a.removeAttr("style"), a.css("width", e.menuWidth))
                                }
                            })) : (r.css({
                                width: "",
                                right: "0",
                                left: ""
                            }), a.velocity({
                                right: -1 * (e.menuWidth + 10)
                            }, {
                                    duration: 200,
                                    queue: !1,
                                    easing: "easeOutCubic",
                                    complete: function () {
                                        i === !0 && (a.removeAttr("style"), a.css("width", e.menuWidth))
                                    }
                                }))
                }
                var n = t(this),
                    a = t("#" + n.attr("data-activates"));
                240 != e.menuWidth && a.css("width", e.menuWidth);
                var r = t('<div class="drag-target"></div>');
                t("body").append(r), "left" == e.edge ? (a.css("left", -1 * (e.menuWidth + 10)), r.css({
                    left: 0
                })) : (a.addClass("right-aligned").css("right", -1 * (e.menuWidth + 10)).css("left", ""), r.css({
                    right: 0
                })), a.hasClass("fixed") && window.innerWidth > 992 && a.css("left", 0), a.hasClass("fixed") && t(window).resize(function () {
                    window.innerWidth > 992 ? 0 !== t("#sidenav-overlay").css("opacity") && s ? i(!0) : (a.removeAttr("style"), a.css("width", e.menuWidth)) : s === !1 && ("left" === e.edge ? a.css("left", -1 * (e.menuWidth + 10)) : a.css("right", -1 * (e.menuWidth + 10)))
                }), e.closeOnClick === !0 && a.on("click.itemclick", "a:not(.collapsible-header)", function () {
                    i()
                });
                var o = !1,
                    s = !1;
                r.on("click", function () {
                    i()
                }), r.hammer({
                    prevent_default: !1
                }).bind("pan", function (n) {
                    if ("touch" == n.gesture.pointerType) {
                        var r = (n.gesture.direction, n.gesture.center.x);
                        n.gesture.center.y, n.gesture.velocityX;
                        if (t("body").css("overflow", "hidden"), 0 === t("#sidenav-overlay").length) {
                            var o = t('<div id="sidenav-overlay"></div>');
                            o.css("opacity", 0).click(function () {
                                i()
                            }), t("body").append(o)
                        }
                        if ("left" === e.edge && (r > e.menuWidth ? r = e.menuWidth : 0 > r && (r = 0)), "left" === e.edge) r < e.menuWidth / 2 ? s = !1 : r >= e.menuWidth / 2 && (s = !0), a.css("left", r - e.menuWidth);
                        else {
                            r < window.innerWidth - e.menuWidth / 2 ? s = !0 : r >= window.innerWidth - e.menuWidth / 2 && (s = !1);
                            var l = -1 * (r - e.menuWidth / 2);
                            l > 0 && (l = 0), a.css("right", l)
                        }
                        var u;
                        "left" === e.edge ? (u = r / e.menuWidth, t("#sidenav-overlay").velocity({
                            opacity: u
                        }, {
                                duration: 50,
                                queue: !1,
                                easing: "easeOutQuad"
                            })) : (u = Math.abs((r - window.innerWidth) / e.menuWidth), t("#sidenav-overlay").velocity({
                                opacity: u
                            }, {
                                    duration: 50,
                                    queue: !1,
                                    easing: "easeOutQuad"
                                }))
                    }
                }).bind("panend", function (i) {
                    if ("touch" == i.gesture.pointerType) {
                        var n = i.gesture.velocityX;
                        o = !1, "left" === e.edge ? s && .3 >= n || -.5 > n ? (a.velocity({
                            left: 0
                        }, {
                                duration: 300,
                                queue: !1,
                                easing: "easeOutQuad"
                            }), t("#sidenav-overlay").velocity({
                                opacity: 1
                            }, {
                                    duration: 50,
                                    queue: !1,
                                    easing: "easeOutQuad"
                                }), r.css({
                                    width: "50%",
                                    right: 0,
                                    left: ""
                                })) : (!s || n > .3) && (t("body").css("overflow", ""), a.velocity({
                                    left: -1 * (e.menuWidth + 10)
                                }, {
                                        duration: 200,
                                        queue: !1,
                                        easing: "easeOutQuad"
                                    }), t("#sidenav-overlay").velocity({
                                        opacity: 0
                                    }, {
                                            duration: 200,
                                            queue: !1,
                                            easing: "easeOutQuad",
                                            complete: function () {
                                                t(this).remove()
                                            }
                                        }), r.css({
                                            width: "10px",
                                            right: "",
                                            left: 0
                                        })) : s && n >= -.3 || n > .5 ? (a.velocity({
                                            right: 0
                                        }, {
                                                duration: 300,
                                                queue: !1,
                                                easing: "easeOutQuad"
                                            }), t("#sidenav-overlay").velocity({
                                                opacity: 1
                                            }, {
                                                    duration: 50,
                                                    queue: !1,
                                                    easing: "easeOutQuad"
                                                }), r.css({
                                                    width: "50%",
                                                    right: "",
                                                    left: 0
                                                })) : (!s || -.3 > n) && (t("body").css("overflow", ""), a.velocity({
                                                    right: -1 * (e.menuWidth + 10)
                                                }, {
                                                        duration: 200,
                                                        queue: !1,
                                                        easing: "easeOutQuad"
                                                    }), t("#sidenav-overlay").velocity({
                                                        opacity: 0
                                                    }, {
                                                            duration: 200,
                                                            queue: !1,
                                                            easing: "easeOutQuad",
                                                            complete: function () {
                                                                t(this).remove()
                                                            }
                                                        }), r.css({
                                                            width: "10px",
                                                            right: 0,
                                                            left: ""
                                                        }))
                    }
                }), n.click(function () {
                    if (s === !0) s = !1, o = !1, i();
                    else {
                        t("body").css("overflow", "hidden"), t("body").append(r), "left" === e.edge ? (r.css({
                            width: "50%",
                            right: 0,
                            left: ""
                        }), a.velocity({
                            left: 0
                        }, {
                                duration: 300,
                                queue: !1,
                                easing: "easeOutQuad"
                            })) : (r.css({
                                width: "50%",
                                right: "",
                                left: 0
                            }), a.velocity({
                                right: 0
                            }, {
                                    duration: 300,
                                    queue: !1,
                                    easing: "easeOutQuad"
                                }), a.css("left", ""));
                        var n = t('<div id="sidenav-overlay"></div>');
                        n.css("opacity", 0).click(function () {
                            s = !1, o = !1, i(), n.velocity({
                                opacity: 0
                            }, {
                                    duration: 300,
                                    queue: !1,
                                    easing: "easeOutQuad",
                                    complete: function () {
                                        t(this).remove()
                                    }
                                })
                        }), t("body").append(n), n.velocity({
                            opacity: 1
                        }, {
                                duration: 300,
                                queue: !1,
                                easing: "easeOutQuad",
                                complete: function () {
                                    s = !0, o = !1
                                }
                            })
                    }
                    return !1
                })
            })
        },
        show: function () {
            this.trigger("click")
        },
        hide: function () {
            t("#sidenav-overlay").trigger("click")
        }
    };
    t.fn.sideNav = function (i) {
        return e[i] ? e[i].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof i && i ? void t.error("Method " + i + " does not exist on jQuery.sideNav") : e.init.apply(this, arguments)
    }
}(jQuery),
function (t) {
    function e(e, i, n, a) {
        var r = t();
        return t.each(o, function (t, o) {
            if (o.height() > 0) {
                var s = o.offset().top,
                    l = o.offset().left,
                    u = l + o.width(),
                    c = s + o.height(),
                    d = !(l > i || a > u || s > n || e > c);
                d && r.push(o)
            }
        }), r
    }

    function i() {
        ++u;
        var i = r.scrollTop(),
            n = r.scrollLeft(),
            a = n + r.width(),
            o = i + r.height(),
            l = e(i + c.top + 200, a + c.right, o + c.bottom, n + c.left);
        t.each(l, function (t, e) {
            var i = e.data("scrollSpy:ticks");
            "number" != typeof i && e.triggerHandler("scrollSpy:enter"), e.data("scrollSpy:ticks", u)
        }), t.each(s, function (t, e) {
            var i = e.data("scrollSpy:ticks");
            "number" == typeof i && i !== u && (e.triggerHandler("scrollSpy:exit"), e.data("scrollSpy:ticks", null))
        }), s = l
    }

    function n() {
        r.trigger("scrollSpy:winSize")
    }

    function a(t, e, i) {
        var n, a, r, o = null,
            s = 0;
        i || (i = {});
        var l = function () {
            s = i.leading === !1 ? 0 : d(), o = null, r = t.apply(n, a), n = a = null
        };
        return function () {
            var u = d();
            s || i.leading !== !1 || (s = u);
            var c = e - (u - s);
            return n = this, a = arguments, 0 >= c ? (clearTimeout(o), o = null, s = u, r = t.apply(n, a), n = a = null) : o || i.trailing === !1 || (o = setTimeout(l, c)), r
        }
    }
    var r = t(window),
        o = [],
        s = [],
        l = !1,
        u = 0,
        c = {
            top: 0,
            right: 0,
            bottom: 0,
            left: 0
        },
        d = Date.now || function () {
            return (new Date).getTime()
        };
    t.scrollSpy = function (e, n) {
        var s = [];
        e = t(e), e.each(function (e, i) {
            o.push(t(i)), t(i).data("scrollSpy:id", e), t("a[href=#" + t(i).attr("id") + "]").click(function (e) {
                e.preventDefault();
                var i = t(this.hash).offset().top + 1;
                t("html, body").animate({
                    scrollTop: i - 200
                }, {
                        duration: 400,
                        queue: !1,
                        easing: "easeOutCubic"
                    })
            })
        }), n = n || {
            throttle: 100
        }, c.top = n.offsetTop || 0, c.right = n.offsetRight || 0, c.bottom = n.offsetBottom || 0, c.left = n.offsetLeft || 0;
        var u = a(i, n.throttle || 100),
            d = function () {
                t(document).ready(u)
            };
        return l || (r.on("scroll", d), r.on("resize", d), l = !0), setTimeout(d, 0), e.on("scrollSpy:enter", function () {
            s = t.grep(s, function (t) {
                return 0 != t.height()
            });
            var e = t(this);
            s[0] ? (t("a[href=#" + s[0].attr("id") + "]").removeClass("active"), e.data("scrollSpy:id") < s[0].data("scrollSpy:id") ? s.unshift(t(this)) : s.push(t(this))) : s.push(t(this)), t("a[href=#" + s[0].attr("id") + "]").addClass("active")
        }), e.on("scrollSpy:exit", function () {
            if (s = t.grep(s, function (t) {
                return 0 != t.height()
            }), s[0]) {
                t("a[href=#" + s[0].attr("id") + "]").removeClass("active");
                var e = t(this);
                s = t.grep(s, function (t) {
                    return t.attr("id") != e.attr("id")
                }), s[0] && t("a[href=#" + s[0].attr("id") + "]").addClass("active")
            }
        }), e
    }, t.winSizeSpy = function (e) {
        return t.winSizeSpy = function () {
            return r
        }, e = e || {
            throttle: 100
        }, r.on("resize", a(n, e.throttle || 100))
    }, t.fn.scrollSpy = function (e) {
        return t.scrollSpy(t(this), e)
    }
}(jQuery),
function (t) {
    t(document).ready(function () {
        function e(e) {
            var i = e.css("font-family"),
                a = e.css("font-size");
            a && n.css("font-size", a), i && n.css("font-family", i), "off" === e.attr("wrap") && n.css("overflow-wrap", "normal").css("white-space", "pre"), n.text(e.val() + "\n");
            var r = n.html().replace(/\n/g, "<br>");
            n.html(r), e.is(":visible") ? n.css("width", e.width()) : n.css("width", t(window).width() / 2), e.css("height", n.height())
        }
        Materialize.updateTextFields = function () {
            var e = "input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";
            t(e).each(function (e, i) {
                t(i).val().length > 0 || i.autofocus || void 0 !== t(this).attr("placeholder") || t(i)[0].validity.badInput === !0 ? t(this).siblings("label, i").addClass("active") : t(this).siblings("label, i").removeClass("active")
            })
        };
        var i = "input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";
        t(document).on("change", i, function () {
            (0 !== t(this).val().length || void 0 !== t(this).attr("placeholder")) && t(this).siblings("label").addClass("active"), validate_field(t(this))
        }), t(document).ready(function () {
            Materialize.updateTextFields()
        }), t(document).on("reset", function (e) {
            var n = t(e.target);
            n.is("form") && (n.find(i).removeClass("valid").removeClass("invalid"), n.find(i).each(function () {
                "" === t(this).attr("value") && t(this).siblings("label, i").removeClass("active")
            }), n.find("select.initialized").each(function () {
                var t = n.find("option[selected]").text();
                n.siblings("input.select-dropdown").val(t)
            }))
        }), t(document).on("focus", i, function () {
            t(this).siblings("label, i").addClass("active")
        }), t(document).on("blur", i, function () {
            var e = t(this);
            0 === e.val().length && e[0].validity.badInput !== !0 && void 0 === e.attr("placeholder") && e.siblings("label, i").removeClass("active"), 0 === e.val().length && e[0].validity.badInput !== !0 && void 0 !== e.attr("placeholder") && e.siblings("i").removeClass("active"), validate_field(e)
        }), window.validate_field = function (t) {
            var e = void 0 !== t.attr("length"),
                i = parseInt(t.attr("length")),
                n = t.val().length;
            0 === t.val().length && t[0].validity.badInput === !1 ? t.hasClass("validate") && (t.removeClass("valid"), t.removeClass("invalid")) : t.hasClass("validate") && (t.is(":valid") && e && i >= n || t.is(":valid") && !e ? (t.removeClass("invalid"), t.addClass("valid")) : (t.removeClass("valid"), t.addClass("invalid")))
        };
        var n = t(".hiddendiv").first();
        n.length || (n = t('<div class="hiddendiv common"></div>'), t("body").append(n));
        var a = ".materialize-textarea";
        t(a).each(function () {
            var i = t(this);
            i.val().length && e(i)
        }), t("body").on("keyup keydown autoresize", a, function () {
            e(t(this))
        }), t(document).on("change", '.file-field input[type="file"]', function () {
            for (var e = t(this).closest(".file-field"), i = e.find("input.file-path"), n = t(this)[0].files, a = [], r = 0; r < n.length; r++) a.push(n[r].name);
            i.val(a.join(", ")), i.trigger("change")
        });
        var r, o = "input[type=range]",
            s = !1;
        t(o).each(function () {
            var e = t('<span class="thumb"><span class="value"></span></span>');
            t(this).after(e)
        });
        var l = ".range-field";
        t(document).on("change", o, function (e) {
            var i = t(this).siblings(".thumb");
            i.find(".value").html(t(this).val())
        }), t(document).on("input mousedown touchstart", o, function (e) {
            var i = t(this).siblings(".thumb"),
                n = t(this).outerWidth();
            i.length <= 0 && (i = t('<span class="thumb"><span class="value"></span></span>'), t(this).after(i)), i.find(".value").html(t(this).val()), s = !0, t(this).addClass("active"), i.hasClass("active") || i.velocity({
                height: "30px",
                width: "30px",
                top: "-20px",
                marginLeft: "-15px"
            }, {
                    duration: 300,
                    easing: "easeOutExpo"
                }), "input" !== e.type && (r = void 0 === e.pageX || null === e.pageX ? e.originalEvent.touches[0].pageX - t(this).offset().left : e.pageX - t(this).offset().left, 0 > r ? r = 0 : r > n && (r = n), i.addClass("active").css("left", r)), i.find(".value").html(t(this).val())
        }), t(document).on("mouseup touchend", l, function () {
            s = !1, t(this).removeClass("active")
        }), t(document).on("mousemove touchmove", l, function (e) {
            var i, n = t(this).children(".thumb");
            if (s) {
                n.hasClass("active") || n.velocity({
                    height: "30px",
                    width: "30px",
                    top: "-20px",
                    marginLeft: "-15px"
                }, {
                        duration: 300,
                        easing: "easeOutExpo"
                    }), i = void 0 === e.pageX || null === e.pageX ? e.originalEvent.touches[0].pageX - t(this).offset().left : e.pageX - t(this).offset().left;
                var a = t(this).outerWidth();
                0 > i ? i = 0 : i > a && (i = a), n.addClass("active").css("left", i), n.find(".value").html(n.siblings(o).val())
            }
        }), t(document).on("mouseout touchleave", l, function () {
            if (!s) {
                var e = t(this).children(".thumb");
                e.hasClass("active") && e.velocity({
                    height: "0",
                    width: "0",
                    top: "10px",
                    marginLeft: "-6px"
                }, {
                        duration: 100
                    }), e.removeClass("active")
            }
        })
    }), t.fn.material_select = function (e) {
        function i(t, e, i) {
            var a = t.indexOf(e),
                r = -1 === a;
            return r ? t.push(e) : t.splice(a, 1), i.siblings("ul.dropdown-content").find("li").eq(e).toggleClass("active"), i.find("option").eq(e).prop("selected", r), n(t, i), r
        }

        function n(t, e) {
            for (var i = "", n = 0, a = t.length; a > n; n++) {
                var r = e.find("option").eq(t[n]).text();
                i += 0 === n ? r : ", " + r
            }
            "" === i && (i = e.find("option:disabled").eq(0).text()), e.siblings("input.select-dropdown").val(i)
        }
        t(this).each(function () {
            var n = t(this);
            if (!n.hasClass("browser-default")) {
                var a = n.attr("multiple") ? !0 : !1,
                    r = n.data("select-id");
                if (r && (n.parent().find("span.caret").remove(), n.parent().find("input").remove(), n.unwrap(), t("ul#select-options-" + r).remove()), "destroy" === e) return void n.data("select-id", null).removeClass("initialized");
                var o = Materialize.guid();
                n.data("select-id", o);
                var s = t('<div class="select-wrapper"></div>');
                s.addClass(n.attr("class"));
                var l = t('<ul id="select-options-' + o + '" class="dropdown-content select-dropdown ' + (a ? "multiple-select-dropdown" : "") + '"></ul>'),
                    u = n.children("option, optgroup"),
                    c = [],
                    d = !1,
                    p = n.find("option:selected").html() || n.find("option:first").html() || "",
                    f = function (e, i, n) {
                        var a = i.is(":disabled") ? "disabled " : "",
                            r = i.data("icon"),
                            o = i.attr("class");
                        if (r) {
                            var s = "";
                            return o && (s = ' class="' + o + '"'), "multiple" === n ? l.append(t('<li class="' + a + '"><img src="' + r + '"' + s + '><span><input type="checkbox"' + a + "/><label></label>" + i.html() + "</span></li>")) : l.append(t('<li class="' + a + '"><img src="' + r + '"' + s + "><span>" + i.html() + "</span></li>")), !0
                        }
                        "multiple" === n ? l.append(t('<li class="' + a + '"><span><input type="checkbox"' + a + "/><label></label>" + i.html() + "</span></li>")) : l.append(t('<li class="' + a + '"><span>' + i.html() + "</span></li>"))
                    };
                u.length && u.each(function () {
                    if (t(this).is("option")) a ? f(n, t(this), "multiple") : f(n, t(this));
                    else if (t(this).is("optgroup")) {
                        var e = t(this).children("option");
                        l.append(t('<li class="optgroup"><span>' + t(this).attr("label") + "</span></li>")), e.each(function () {
                            f(n, t(this))
                        })
                    }
                }), l.find("li:not(.optgroup)").each(function (r) {
                    t(this).click(function (o) {
                        if (!t(this).hasClass("disabled") && !t(this).hasClass("optgroup")) {
                            var s = !0;
                            a ? (t('input[type="checkbox"]', this).prop("checked", function (t, e) {
                                return !e
                            }), s = i(c, t(this).index(), n), g.trigger("focus")) : (l.find("li").removeClass("active"), t(this).toggleClass("active"), g.val(t(this).text())), activateOption(l, t(this)), n.find("option").eq(r).prop("selected", s), n.trigger("change"), "undefined" != typeof e && e()
                        }
                        o.stopPropagation()
                    })
                }), n.wrap(s);
                var h = t('<span class="caret">&#9660;</span>');
                n.is(":disabled") && h.addClass("disabled");
                var v = p.replace(/"/g, "&quot;"),
                    g = t('<input type="text" class="select-dropdown" readonly="true" ' + (n.is(":disabled") ? "disabled" : "") + ' data-activates="select-options-' + o + '" value="' + v + '"/>');
                n.before(g), g.before(h), g.after(l), n.is(":disabled") || g.dropdown({
                    hover: !1,
                    closeOnClick: !1
                }), n.attr("tabindex") && t(g[0]).attr("tabindex", n.attr("tabindex")), n.addClass("initialized"), g.on({
                    focus: function () {
                        if (t("ul.select-dropdown").not(l[0]).is(":visible") && t("input.select-dropdown").trigger("close"), !l.is(":visible")) {
                            t(this).trigger("open", ["focus"]);
                            var e = t(this).val(),
                                i = l.find("li").filter(function () {
                                    return t(this).text().toLowerCase() === e.toLowerCase()
                                })[0];
                            activateOption(l, i)
                        }
                    },
                    click: function (t) {
                        t.stopPropagation()
                    }
                }), g.on("blur", function () {
                    a || t(this).trigger("close"), l.find("li.selected").removeClass("selected")
                }), l.hover(function () {
                    d = !0
                }, function () {
                    d = !1
                }), t(window).on({
                    click: function () {
                        a && (d || g.trigger("close"))
                    }
                }), a && n.find("option:selected:not(:disabled)").each(function () {
                    var e = t(this).index();
                    i(c, e, n), l.find("li").eq(e).find(":checkbox").prop("checked", !0)
                }), activateOption = function (e, i) {
                    if (i) {
                        e.find("li.selected").removeClass("selected");
                        var n = t(i);
                        n.addClass("selected"), l.scrollTo(n)
                    }
                };
                var m = [],
                    y = function (e) {
                        if (9 == e.which) return void g.trigger("close");
                        if (40 == e.which && !l.is(":visible")) return void g.trigger("open");
                        if (13 != e.which || l.is(":visible")) {
                            e.preventDefault();
                            var i = String.fromCharCode(e.which).toLowerCase(),
                                n = [9, 13, 27, 38, 40];
                            if (i && -1 === n.indexOf(e.which)) {
                                m.push(i);
                                var r = m.join(""),
                                    o = l.find("li").filter(function () {
                                        return 0 === t(this).text().toLowerCase().indexOf(r)
                                    })[0];
                                o && activateOption(l, o)
                            }
                            if (13 == e.which) {
                                var s = l.find("li.selected:not(.disabled)")[0];
                                s && (t(s).trigger("click"), a || g.trigger("close"))
                            }
                            40 == e.which && (o = l.find("li.selected").length ? l.find("li.selected").next("li:not(.disabled)")[0] : l.find("li:not(.disabled)")[0], activateOption(l, o)), 27 == e.which && g.trigger("close"), 38 == e.which && (o = l.find("li.selected").prev("li:not(.disabled)")[0], o && activateOption(l, o)), setTimeout(function () {
                                m = []
                            }, 1e3)
                        }
                    };
                g.on("keydown", y)
            }
        })
    }
}(jQuery),
function (t) {
    var e = {
        init: function (e) {
            var i = {
                indicators: !0,
                height: 400,
                transition: 500,
                interval: 6e3
            };
            return e = t.extend(i, e), this.each(function () {
                function i(t, e) {
                    t.hasClass("center-align") ? t.velocity({
                        opacity: 0,
                        translateY: -100
                    }, {
                            duration: e,
                            queue: !1
                        }) : t.hasClass("right-align") ? t.velocity({
                            opacity: 0,
                            translateX: 100
                        }, {
                                duration: e,
                                queue: !1
                            }) : t.hasClass("left-align") && t.velocity({
                                opacity: 0,
                                translateX: -100
                            }, {
                                    duration: e,
                                    queue: !1
                                })
                }

                function n(t) {
                    t >= u.length ? t = 0 : 0 > t && (t = u.length - 1), c = l.find(".active").index(), c != t && (a = u.eq(c), $caption = a.find(".caption"), a.removeClass("active"), a.velocity({
                        opacity: 0
                    }, {
                            duration: e.transition,
                            queue: !1,
                            easing: "easeOutQuad",
                            complete: function () {
                                u.not(".active").velocity({
                                    opacity: 0,
                                    translateX: 0,
                                    translateY: 0
                                }, {
                                        duration: 0,
                                        queue: !1
                                    })
                            }
                        }), i($caption, e.transition), e.indicators && r.eq(c).removeClass("active"), u.eq(t).velocity({
                            opacity: 1
                        }, {
                                duration: e.transition,
                                queue: !1,
                                easing: "easeOutQuad"
                            }), u.eq(t).find(".caption").velocity({
                                opacity: 1,
                                translateX: 0,
                                translateY: 0
                            }, {
                                    duration: e.transition,
                                    delay: e.transition,
                                    queue: !1,
                                    easing: "easeOutQuad"
                                }), u.eq(t).addClass("active"), e.indicators && r.eq(t).addClass("active"))
                }
                var a, r, o, s = t(this),
                    l = s.find("ul.slides").first(),
                    u = l.find("li"),
                    c = l.find(".active").index(); - 1 != c && (a = u.eq(c)), s.hasClass("fullscreen") || (e.indicators ? s.height(e.height + 40) : s.height(e.height), l.height(e.height)), u.find(".caption").each(function () {
                        i(t(this), 0)
                    }), u.find("img").each(function () {
                        var e = "data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
                        t(this).attr("src") !== e && (t(this).css("background-image", "url(" + t(this).attr("src") + ")"), t(this).attr("src", e))
                    }), e.indicators && (r = t('<ul class="indicators"></ul>'), u.each(function (i) {
                        var a = t('<li class="indicator-item"></li>');
                        a.click(function () {
                            var i = l.parent(),
                                a = i.find(t(this)).index();
                            n(a), clearInterval(o), o = setInterval(function () {
                                c = l.find(".active").index(), u.length == c + 1 ? c = 0 : c += 1, n(c)
                            }, e.transition + e.interval)
                        }), r.append(a)
                    }), s.append(r), r = s.find("ul.indicators").find("li.indicator-item")), a ? a.show() : (u.first().addClass("active").velocity({
                        opacity: 1
                    }, {
                            duration: e.transition,
                            queue: !1,
                            easing: "easeOutQuad"
                        }), c = 0, a = u.eq(c), e.indicators && r.eq(c).addClass("active")), a.find("img").each(function () {
                            a.find(".caption").velocity({
                                opacity: 1,
                                translateX: 0,
                                translateY: 0
                            }, {
                                    duration: e.transition,
                                    queue: !1,
                                    easing: "easeOutQuad"
                                })
                        }), o = setInterval(function () {
                            c = l.find(".active").index(), n(c + 1)
                        }, e.transition + e.interval);
                var d = !1,
                    p = !1,
                    f = !1;
                s.hammer({
                    prevent_default: !1
                }).bind("pan", function (t) {
                    if ("touch" === t.gesture.pointerType) {
                        clearInterval(o);
                        var e = t.gesture.direction,
                            i = t.gesture.deltaX,
                            n = t.gesture.velocityX;
                        $curr_slide = l.find(".active"), $curr_slide.velocity({
                            translateX: i
                        }, {
                                duration: 50,
                                queue: !1,
                                easing: "easeOutQuad"
                            }), 4 === e && (i > s.innerWidth() / 2 || -.65 > n) ? f = !0 : 2 === e && (i < -1 * s.innerWidth() / 2 || n > .65) && (p = !0);
                        var a;
                        p && (a = $curr_slide.next(), 0 === a.length && (a = u.first()), a.velocity({
                            opacity: 1
                        }, {
                                duration: 300,
                                queue: !1,
                                easing: "easeOutQuad"
                            })), f && (a = $curr_slide.prev(), 0 === a.length && (a = u.last()), a.velocity({
                                opacity: 1
                            }, {
                                    duration: 300,
                                    queue: !1,
                                    easing: "easeOutQuad"
                                }))
                    }
                }).bind("panend", function (t) {
                    "touch" === t.gesture.pointerType && ($curr_slide = l.find(".active"), d = !1, curr_index = l.find(".active").index(), f || p ? p ? (n(curr_index + 1), $curr_slide.velocity({
                        translateX: -1 * s.innerWidth()
                    }, {
                            duration: 300,
                            queue: !1,
                            easing: "easeOutQuad",
                            complete: function () {
                                $curr_slide.velocity({
                                    opacity: 0,
                                    translateX: 0
                                }, {
                                        duration: 0,
                                        queue: !1
                                    })
                            }
                        })) : f && (n(curr_index - 1), $curr_slide.velocity({
                            translateX: s.innerWidth()
                        }, {
                                duration: 300,
                                queue: !1,
                                easing: "easeOutQuad",
                                complete: function () {
                                    $curr_slide.velocity({
                                        opacity: 0,
                                        translateX: 0
                                    }, {
                                            duration: 0,
                                            queue: !1
                                        })
                                }
                            })) : $curr_slide.velocity({
                                translateX: 0
                            }, {
                                    duration: 300,
                                    queue: !1,
                                    easing: "easeOutQuad"
                                }), p = !1, f = !1, clearInterval(o), o = setInterval(function () {
                                    c = l.find(".active").index(), u.length == c + 1 ? c = 0 : c += 1, n(c)
                                }, e.transition + e.interval))
                }), s.on("sliderPause", function () {
                    clearInterval(o)
                }), s.on("sliderStart", function () {
                    clearInterval(o), o = setInterval(function () {
                        c = l.find(".active").index(), u.length == c + 1 ? c = 0 : c += 1, n(c)
                    }, e.transition + e.interval)
                }), s.on("sliderNext", function () {
                    c = l.find(".active").index(), n(c + 1)
                }), s.on("sliderPrev", function () {
                    c = l.find(".active").index(), n(c - 1)
                })
            })
        },
        pause: function () {
            t(this).trigger("sliderPause")
        },
        start: function () {
            t(this).trigger("sliderStart")
        },
        next: function () {
            t(this).trigger("sliderNext")
        },
        prev: function () {
            t(this).trigger("sliderPrev")
        }
    };
    t.fn.slider = function (i) {
        return e[i] ? e[i].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof i && i ? void t.error("Method " + i + " does not exist on jQuery.tooltip") : e.init.apply(this, arguments)
    }
}(jQuery),
function (t) {
    t(document).ready(function () {
        t(document).on("click.card", ".card", function (e) {
            t(this).find("> .card-reveal").length && (t(e.target).is(t(".card-reveal .card-title")) || t(e.target).is(t(".card-reveal .card-title i")) ? t(this).find(".card-reveal").velocity({
                translateY: 0
            }, {
                    duration: 225,
                    queue: !1,
                    easing: "easeInOutQuad",
                    complete: function () {
                        t(this).css({
                            display: "none"
                        })
                    }
                }) : (t(e.target).is(t(".card .activator")) || t(e.target).is(t(".card .activator i"))) && (t(e.target).closest(".card").css("overflow", "hidden"), t(this).find(".card-reveal").css({
                    display: "block"
                }).velocity("stop", !1).velocity({
                    translateY: "-100%"
                }, {
                        duration: 300,
                        queue: !1,
                        easing: "easeInOutQuad"
                    }))), t(".card-reveal").closest(".card").css("overflow", "hidden")
        })
    })
}(jQuery),
function (t) {
    t(document).ready(function () {
        t(document).on("click.chip", ".chip .material-icons", function (e) {
            t(this).parent().remove()
        })
    })
}(jQuery),
function (t) {
    t(document).ready(function () {
        t.fn.pushpin = function (e) {
            var i = {
                top: 0,
                bottom: 1 / 0,
                offset: 0
            };
            return e = t.extend(i, e), $index = 0, this.each(function () {
                function i(t) {
                    t.removeClass("pin-top"), t.removeClass("pinned"), t.removeClass("pin-bottom")
                }

                function n(n, a) {
                    n.each(function () {
                        e.top <= a && e.bottom >= a && !t(this).hasClass("pinned") && (i(t(this)), t(this).css("top", e.offset), t(this).addClass("pinned")), a < e.top && !t(this).hasClass("pin-top") && (i(t(this)), t(this).css("top", 0), t(this).addClass("pin-top")), a > e.bottom && !t(this).hasClass("pin-bottom") && (i(t(this)), t(this).addClass("pin-bottom"), t(this).css("top", e.bottom - o))
                    })
                }
                var a = Materialize.guid(),
                    r = t(this),
                    o = t(this).offset().top;
                n(r, t(window).scrollTop()), t(window).on("scroll." + a, function () {
                    var i = t(window).scrollTop() + e.offset;
                    n(r, i)
                })
            })
        }
    })
}(jQuery),
function (t) {
    t(document).ready(function () {
        t.fn.reverse = [].reverse, t(document).on("mouseenter.fixedActionBtn", ".fixed-action-btn:not(.click-to-toggle)", function (i) {
            var n = t(this);
            e(n)
        }), t(document).on("mouseleave.fixedActionBtn", ".fixed-action-btn:not(.click-to-toggle)", function (e) {
            var n = t(this);
            i(n)
        }), t(document).on("click.fixedActionBtn", ".fixed-action-btn.click-to-toggle > a", function (n) {
            var a = t(this),
                r = a.parent();
            r.hasClass("active") ? i(r) : e(r)
        })
    }), t.fn.extend({
        openFAB: function () {
            e(t(this))
        },
        closeFAB: function () {
            i(t(this))
        }
    });
    var e = function (e) {
        if ($this = e, $this.hasClass("active") === !1) {
            var i, n, a = $this.hasClass("horizontal");
            a === !0 ? n = 40 : i = 40, $this.addClass("active"), $this.find("ul .btn-floating").velocity({
                scaleY: ".4",
                scaleX: ".4",
                translateY: i + "px",
                translateX: n + "px"
            }, {
                    duration: 0
                });
            var r = 0;
            $this.find("ul .btn-floating").reverse().each(function () {
                t(this).velocity({
                    opacity: "1",
                    scaleX: "1",
                    scaleY: "1",
                    translateY: "0",
                    translateX: "0"
                }, {
                        duration: 80,
                        delay: r
                    }), r += 40
            })
        }
    },
        i = function (t) {
            $this = t;
            var e, i, n = $this.hasClass("horizontal");
            n === !0 ? i = 40 : e = 40, $this.removeClass("active");
            $this.find("ul .btn-floating").velocity("stop", !0), $this.find("ul .btn-floating").velocity({
                opacity: "0",
                scaleX: ".4",
                scaleY: ".4",
                translateY: e + "px",
                translateX: i + "px"
            }, {
                    duration: 80
                })
        }
}(jQuery),
function (t) {
    Materialize.fadeInImage = function (e) {
        var i = t(e);
        i.css({
            opacity: 0
        }), t(i).velocity({
            opacity: 1
        }, {
                duration: 650,
                queue: !1,
                easing: "easeOutSine"
            }), t(i).velocity({
                opacity: 1
            }, {
                    duration: 1300,
                    queue: !1,
                    easing: "swing",
                    step: function (e, i) {
                        i.start = 100;
                        var n = e / 100,
                            a = 150 - (100 - e) / 1.75;
                        100 > a && (a = 100), e >= 0 && t(this).css({
                            "-webkit-filter": "grayscale(" + n + ")brightness(" + a + "%)",
                            filter: "grayscale(" + n + ")brightness(" + a + "%)"
                        })
                    }
                })
    }, Materialize.showStaggeredList = function (e) {
        var i = 0;
        t(e).find("li").velocity({
            translateX: "-100px"
        }, {
                duration: 0
            }), t(e).find("li").each(function () {
                t(this).velocity({
                    opacity: "1",
                    translateX: "0"
                }, {
                        duration: 800,
                        delay: i,
                        easing: [60, 10]
                    }), i += 120
            })
    }, t(document).ready(function () {
        var e = !1,
            i = !1;
        t(".dismissable").each(function () {
            t(this).hammer({
                prevent_default: !1
            }).bind("pan", function (n) {
                if ("touch" === n.gesture.pointerType) {
                    var a = t(this),
                        r = n.gesture.direction,
                        o = n.gesture.deltaX,
                        s = n.gesture.velocityX;
                    a.velocity({
                        translateX: o
                    }, {
                            duration: 50,
                            queue: !1,
                            easing: "easeOutQuad"
                        }), 4 === r && (o > a.innerWidth() / 2 || -.75 > s) && (e = !0), 2 === r && (o < -1 * a.innerWidth() / 2 || s > .75) && (i = !0)
                }
            }).bind("panend", function (n) {
                if (Math.abs(n.gesture.deltaX) < t(this).innerWidth() / 2 && (i = !1, e = !1), "touch" === n.gesture.pointerType) {
                    var a = t(this);
                    if (e || i) {
                        var r;
                        r = e ? a.innerWidth() : -1 * a.innerWidth(), a.velocity({
                            translateX: r
                        }, {
                                duration: 100,
                                queue: !1,
                                easing: "easeOutQuad",
                                complete: function () {
                                    a.css("border", "none"), a.velocity({
                                        height: 0,
                                        padding: 0
                                    }, {
                                            duration: 200,
                                            queue: !1,
                                            easing: "easeOutQuad",
                                            complete: function () {
                                                a.remove()
                                            }
                                        })
                                }
                            })
                    } else a.velocity({
                        translateX: 0
                    }, {
                            duration: 100,
                            queue: !1,
                            easing: "easeOutQuad"
                        });
                    e = !1, i = !1
                }
            })
        })
    })
}(jQuery),
function (t) {
    Materialize.scrollFire = function (t) {
        var e = !1;
        window.addEventListener("scroll", function () {
            e = !0
        }), setInterval(function () {
            if (e) {
                e = !1;
                for (var i = window.pageYOffset + window.innerHeight, n = 0; n < t.length; n++) {
                    var a = t[n],
                        r = a.selector,
                        o = a.offset,
                        s = a.callback,
                        l = document.querySelector(r);
                    if (null !== l) {
                        var u = l.getBoundingClientRect().top + window.pageYOffset;
                        if (i > u + o && a.done !== !0) {
                            var c = new Function(s);
                            c(), a.done = !0
                        }
                    }
                }
            }
        }, 100)
    }
}(jQuery),
function (t) {
    "function" == typeof define && define.amd ? define("picker", ["jquery"], t) : "object" == typeof exports ? module.exports = t(require("jquery")) : this.Picker = t(jQuery)
}(function (t) {
    function e(r, o, l, d) {
        function p() {
            return e._.node("div", e._.node("div", e._.node("div", e._.node("div", T.component.nodes(b.open), x.box), x.wrap), x.frame), x.holder)
        }

        function f() {
            C.data(o, T).addClass(x.input).attr("tabindex", -1).val(C.data("value") ? T.get("select", w.format) : r.value), w.editable || C.on("focus." + b.id + " click." + b.id, function (t) {
                t.preventDefault(), T.$root[0].focus()
            }).on("keydown." + b.id, g), a(r, {
                haspopup: !0,
                expanded: !1,
                readonly: !1,
                owns: r.id + "_root"
            })
        }

        function h() {
            T.$root.on({
                keydown: g,
                focusin: function (t) {
                    T.$root.removeClass(x.focused), t.stopPropagation()
                },
                "mousedown click": function (e) {
                    var i = e.target;
                    i != T.$root.children()[0] && (e.stopPropagation(), "mousedown" != e.type || t(i).is("input, select, textarea, button, option") || (e.preventDefault(), T.$root[0].focus()))
                }
            }).on({
                focus: function () {
                    C.addClass(x.target)
                },
                blur: function () {
                    C.removeClass(x.target)
                }
            }).on("focus.toOpen", m).on("click", "[data-pick], [data-nav], [data-clear], [data-close]", function () {
                var e = t(this),
                    i = e.data(),
                    n = e.hasClass(x.navDisabled) || e.hasClass(x.disabled),
                    a = s();
                a = a && (a.type || a.href), (n || a && !t.contains(T.$root[0], a)) && T.$root[0].focus(), !n && i.nav ? T.set("highlight", T.component.item.highlight, {
                    nav: i.nav
                }) : !n && "pick" in i ? T.set("select", i.pick) : i.clear ? T.clear().close(!0) : i.close && T.close(!0)
            }), a(T.$root[0], "hidden", !0)
        }

        function v() {
            var e;
            w.hiddenName === !0 ? (e = r.name, r.name = "") : (e = ["string" == typeof w.hiddenPrefix ? w.hiddenPrefix : "", "string" == typeof w.hiddenSuffix ? w.hiddenSuffix : "_submit"], e = e[0] + r.name + e[1]), T._hidden = t('<input type=hidden name="' + e + '"' + (C.data("value") || r.value ? ' value="' + T.get("select", w.formatSubmit) + '"' : "") + ">")[0], C.on("change." + b.id, function () {
                T._hidden.value = r.value ? T.get("select", w.formatSubmit) : ""
            }), w.container ? t(w.container).append(T._hidden) : C.after(T._hidden)
        }

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

        function m(t) {
            t.stopPropagation(), "focus" == t.type && T.$root.addClass(x.focused), T.open()
        }
        if (!r) return e;
        var y = !1,
            b = {
                id: r.id || "P" + Math.abs(~~(Math.random() * new Date))
            },
            w = l ? t.extend(!0, {}, l.defaults, d) : d || {},
            x = t.extend({}, e.klasses(), w.klass),
            C = t(r),
            k = function () {
                return this.start()
            },
            T = k.prototype = {
                constructor: k,
                $node: C,
                start: function () {
                    return b && b.start ? T : (b.methods = {}, b.start = !0, b.open = !1, b.type = r.type, r.autofocus = r == s(), r.readOnly = !w.editable, r.id = r.id || b.id, "text" != r.type && (r.type = "text"), T.component = new l(T, w), T.$root = t(e._.node("div", p(), x.picker, 'id="' + r.id + '_root" tabindex="0"')), h(), w.formatSubmit && v(), f(), w.container ? t(w.container).append(T.$root) : C.after(T.$root), T.on({
                        start: T.component.onStart,
                        render: T.component.onRender,
                        stop: T.component.onStop,
                        open: T.component.onOpen,
                        close: T.component.onClose,
                        set: T.component.onSet
                    }).on({
                        start: w.onStart,
                        render: w.onRender,
                        stop: w.onStop,
                        open: w.onOpen,
                        close: w.onClose,
                        set: w.onSet
                    }), y = i(T.$root.children()[0]), r.autofocus && T.open(), T.trigger("start").trigger("render"))
                },
                render: function (t) {
                    return t ? T.$root.html(p()) : T.$root.find("." + x.box).html(T.component.nodes(b.open)), T.trigger("render")
                },
                stop: function () {
                    return b.start ? (T.close(), T._hidden && T._hidden.parentNode.removeChild(T._hidden), T.$root.remove(), C.removeClass(x.input).removeData(o), setTimeout(function () {
                        C.off("." + b.id)
                    }, 0), r.type = b.type, r.readOnly = !1, T.trigger("stop"), b.methods = {}, b.start = !1, T) : T
                },
                open: function (i) {
                    return b.open ? T : (C.addClass(x.active), a(r, "expanded", !0), setTimeout(function () {
                        T.$root.addClass(x.opened), a(T.$root[0], "hidden", !1)
                    }, 0), i !== !1 && (b.open = !0, y && c.css("overflow", "hidden").css("padding-right", "+=" + n()), T.$root[0].focus(), u.on("click." + b.id + " focusin." + b.id, function (t) {
                        var e = t.target;
                        e != r && e != document && 3 != t.which && T.close(e === T.$root.children()[0])
                    }).on("keydown." + b.id, function (i) {
                        var n = i.keyCode,
                            a = T.component.key[n],
                            r = i.target;
                        27 == n ? T.close(!0) : r != T.$root[0] || !a && 13 != n ? t.contains(T.$root[0], r) && 13 == n && (i.preventDefault(), r.click()) : (i.preventDefault(), a ? e._.trigger(T.component.key.go, T, [e._.trigger(a)]) : T.$root.find("." + x.highlighted).hasClass(x.disabled) || T.set("select", T.component.item.highlight).close())
                    })), T.trigger("open"))
                },
                close: function (t) {
                    return t && (T.$root.off("focus.toOpen")[0].focus(), setTimeout(function () {
                        T.$root.on("focus.toOpen", m)
                    }, 0)), C.removeClass(x.active), a(r, "expanded", !1),
                        //new version code change

                        setTimeout(function () {
                            T.$root.removeClass(x.opened + " " + x.focused), a(T.$root[0], "hidden", !0)
                        }, 1000000),

                    setTimeout(function () {
                        $('.picker--opened .picker__today').removeAttr("disabled")
                        $('.picker--opened .picker__clear').removeAttr("disabled")
                        $('.picker--opened .picker__close').removeAttr("disabled")
                        $('.picker--opened .picker__select--month').removeAttr("disabled")
                        $('.picker--opened .picker__select--year').removeAttr("disabled")

                        if (t) {
                            setTimeout(function () {
                                T.$root.removeClass(x.opened + " " + x.focused), a(T.$root[0], "hidden", !0)
                            }, 0)
                        }
                    }, 0)
                        //================
                        , b.open ? (b.open = !1, y && c.css("overflow", "").css("padding-right", "-=" + n()), u.off("." + b.id), T.trigger("close")) : T
                },
                clear: function (t) {
                    setTimeout(function () {
                        T.$root.removeClass(x.opened + " " + x.focused)
                    }, 0)
                    return T.set("clear", null, t)
                },
                set: function (e, i, n) {

                    //console.log(n);
                    //console.log(e);

                    if (e != 'highlight') {

                        setTimeout(function () {

                            T.$root.removeClass(x.opened + " " + x.focused)
                        }, 0)
                    } else {

                        setTimeout(function () {
                            $('.picker--opened .picker__today').removeAttr("disabled")
                            $('.picker--opened .picker__clear').removeAttr("disabled")
                            $('.picker--opened .picker__close').removeAttr("disabled")
                            $('.picker--opened .picker__select--month').removeAttr("disabled")
                            $('.picker--opened .picker__select--year').removeAttr("disabled")
                        }, 0)

                    }

                    var a, r, o = t.isPlainObject(e),
                        s = o ? e : {};
                    if (n = o && t.isPlainObject(i) ? i : n || {}, e) {
                        o || (s[e] = i);
                        for (a in s) r = s[a], a in T.component.item && (void 0 === r && (r = null), T.component.set(a, r, n)), ("select" == a || "clear" == a) && C.val("clear" == a ? "" : T.get(a, w.format)).trigger("change");
                        T.render()
                    }
                    if (e != 'highlight') {
                        //new version code change
                        T.$root.removeClass(x.opened + " " + x.focused);
                    }
                    //===========end
                    return n.muted ? T : T.trigger("set", s)
                },
                get: function (t, i) {
                    if (t = t || "value", null != b[t]) return b[t];
                    if ("valueSubmit" == t) {
                        if (T._hidden) return T._hidden.value;
                        t = "value"
                    }
                    if ("value" == t) return r.value;
                    if (t in T.component.item) {
                        if ("string" == typeof i) {
                            var n = T.component.get(t);
                            return n ? e._.trigger(T.component.formats.toString, T.component, [i, n]) : ""
                        }
                        return T.component.get(t)
                    }
                },
                on: function (e, i, n) {
                    var a, r, o = t.isPlainObject(e),
                        s = o ? e : {};
                    if (e) {
                        o || (s[e] = i);
                        for (a in s) r = s[a], n && (a = "_" + a), b.methods[a] = b.methods[a] || [], b.methods[a].push(r)
                    }
                    return T
                },
                off: function () {
                    var t, e, i = arguments;
                    for (t = 0, namesCount = i.length; t < namesCount; t += 1) e = i[t], e in b.methods && delete b.methods[e];
                    return T
                },
                trigger: function (t, i) {
                    var n = function (t) {
                        var n = b.methods[t];
                        n && n.map(function (t) {
                            e._.trigger(t, T, [i])
                        })
                    };
                    return n("_" + t), n(t), T
                }
            };
        return new k
    }

    function i(t) {
        var e, i = "position";
        return t.currentStyle ? e = t.currentStyle[i] : window.getComputedStyle && (e = getComputedStyle(t)[i]), "fixed" == e
    }

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

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

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

    function o(e, i) {
        t.isPlainObject(e) || (e = {
            attribute: i
        }), i = "";
        for (var n in e) {
            var a = ("role" == n ? "" : "aria-") + n,
                r = e[n];
            i += null == r ? "" : a + '="' + e[n] + '"'
        }
        return i
    }

    function s() {
        try {
            return document.activeElement
        } catch (t) { }
    }
    var l = t(window),
        u = t(document),
        c = t(document.documentElement);
    return e.klasses = function (t) {
        return t = t || "picker", {
            picker: t,
            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"
        }
    }, e._ = {
        group: function (t) {
            for (var i, n = "", a = e._.trigger(t.min, t); a <= e._.trigger(t.max, t, [a]); a += t.i) i = e._.trigger(t.item, t, [a]), n += e._.node(t.node, i[0], i[1], i[2]);
            return n
        },
        node: function (e, i, n, a) {
            return i ? (i = t.isArray(i) ? i.join("") : i, n = n ? ' class="' + n + '"' : "", a = a ? " " + a : "", "<" + e + n + a + ">" + i + "</" + e + ">") : ""
        },
        lead: function (t) {
            return (10 > t ? "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: o
    }, e.extend = function (i, n) {
        t.fn[i] = function (a, r) {
            var o = this.data(i);
            return "picker" == a ? o : o && "string" == typeof a ? e._.trigger(o[a], o, [r]) : this.each(function () {
                var r = t(this);
                r.data(i) || new e(this, i, n, a)
            })
        }, t.fn[i].defaults = n.defaults
    }, e
}),
function (t) {
    "function" == typeof define && define.amd ? define(["picker", "jquery"], t) : "object" == typeof exports ? module.exports = t(require("./picker.js"), require("jquery")) : t(Picker, jQuery)
}(function (t, e) {
    function i(t, e) {
        var i = this,
            n = t.$node[0],
            a = n.value,
            r = t.$node.data("value"),
            o = r || a,
            s = r ? e.formatSubmit : e.format,
            l = function () {
                return n.currentStyle ? "rtl" == n.currentStyle.direction : "rtl" == getComputedStyle(t.$root[0]).direction
            };
        i.settings = e, i.$node = t.$node, i.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"
        }, i.item = {}, i.item.clear = null, i.item.disable = (e.disable || []).slice(0), i.item.enable = - function (t) {
            return t[0] === !0 ? t.shift() : -1
        }(i.item.disable), i.set("min", e.min).set("max", e.max).set("now"), o ? i.set("select", o, {
            format: s
        }) : i.set("select", null).set("highlight", i.item.now), i.key = {
            40: 7,
            38: -7,
            39: function () {
                return l() ? -1 : 1
            },
            37: function () {
                return l() ? 1 : -1
            },
            go: function (t) {
                var e = i.item.highlight,
                    n = new Date(e.year, e.month, e.date + t);
                i.set("highlight", n, {
                    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 n = "";
            i.disabled(i.get("now")) && (n = ":not(." + e.klass.buttonToday + ")"), t.$root.find("button" + n + ", select").attr("disabled", !1)
        }, 1).on("close", function () {
            t.$root.find("button, select").attr("disabled", !0)
        }, 1)
    }
    var n = 7,
        a = 6,
        r = t._;
    i.prototype.set = function (t, e, i) {
        var n = this,
            a = n.item;
        return null === e ? ("clear" == t && (t = "select"), a[t] = e, n) : (a["enable" == t ? "disable" : "flip" == t ? "enable" : t] = n.queue[t].split(" ").map(function (a) {
            return e = n[a](t, e, i)
        }).pop(), "select" == t ? n.set("highlight", a.select, i) : "highlight" == t ? n.set("view", a.highlight, i) : t.match(/^(flip|min|max|disable|enable)$/) && (a.select && n.disabled(a.select) && n.set("select", a.select, i), a.highlight && n.disabled(a.highlight) && n.set("highlight", a.highlight, i)), n)
    }, i.prototype.get = function (t) {
        return this.item[t]
    }, i.prototype.create = function (t, i, n) {
        var a, o = this;
        return i = void 0 === i ? t : i, i == -(1 / 0) || i == 1 / 0 ? a = i : e.isPlainObject(i) && r.isInteger(i.pick) ? i = i.obj : e.isArray(i) ? (i = new Date(i[0], i[1], i[2]), i = r.isDate(i) ? i : o.create().obj) : i = r.isInteger(i) || r.isDate(i) ? o.normalize(new Date(i), n) : o.now(t, i, n), {
            year: a || i.getFullYear(),
            month: a || i.getMonth(),
            date: a || i.getDate(),
            day: a || i.getDay(),
            obj: a || i,
            pick: a || i.getTime()
        }
    }, i.prototype.createRange = function (t, i) {
        var n = this,
            a = function (t) {
                return t === !0 || e.isArray(t) || r.isDate(t) ? n.create(t) : t
            };
        return r.isInteger(t) || (t = a(t)), r.isInteger(i) || (i = a(i)), r.isInteger(t) && e.isPlainObject(i) ? t = [i.year, i.month, i.date + t] : r.isInteger(i) && e.isPlainObject(t) && (i = [t.year, t.month, t.date + i]), {
            from: a(t),
            to: a(i)
        }
    }, i.prototype.withinRange = function (t, e) {
        return t = this.createRange(t.from, t.to), e.pick >= t.from.pick && e.pick <= t.to.pick
    }, i.prototype.overlapRanges = function (t, e) {
        var i = this;
        return t = i.createRange(t.from, t.to), e = i.createRange(e.from, e.to), i.withinRange(t, e.from) || i.withinRange(t, e.to) || i.withinRange(e, t.from) || i.withinRange(e, t.to)
    }, i.prototype.now = function (t, e, i) {
        return e = new Date, i && i.rel && e.setDate(e.getDate() + i.rel), this.normalize(e, i)
    }, i.prototype.navigate = function (t, i, n) {
        var a, r, o, s, l = e.isArray(i),
            u = e.isPlainObject(i),
            c = this.item.view;
        if (l || u) {
            for (u ? (r = i.year, o = i.month, s = i.date) : (r = +i[0], o = +i[1], s = +i[2]), n && n.nav && c && c.month !== o && (r = c.year, o = c.month), a = new Date(r, o + (n && n.nav ? n.nav : 0), 1), r = a.getFullYear(), o = a.getMonth(); new Date(r, o, s).getMonth() !== o;) s -= 1;
            i = [r, o, s]
        }
        return i
    }, i.prototype.normalize = function (t) {
        return t.setHours(0, 0, 0, 0), t
    }, i.prototype.measure = function (t, e) {
        var i = this;
        return e ? "string" == typeof e ? e = i.parse(t, e) : r.isInteger(e) && (e = i.now(t, e, {
            rel: e
        })) : e = "min" == t ? -(1 / 0) : 1 / 0, e
    }, i.prototype.viewset = function (t, e) {
        return this.create([e.year, e.month, 1])
    }, i.prototype.validate = function (t, i, n) {
        var a, o, s, l, u = this,
            c = i,
            d = n && n.interval ? n.interval : 1,
            p = -1 === u.item.enable,
            f = u.item.min,
            h = u.item.max,
            v = p && u.item.disable.filter(function (t) {
                if (e.isArray(t)) {
                    var n = u.create(t).pick;
                    n < i.pick ? a = !0 : n > i.pick && (o = !0)
                }
                return r.isInteger(t)
            }).length;
        if ((!n || !n.nav) && (!p && u.disabled(i) || p && u.disabled(i) && (v || a || o) || !p && (i.pick <= f.pick || i.pick >= h.pick)))
            for (p && !v && (!o && d > 0 || !a && 0 > d) && (d *= -1); u.disabled(i) && (Math.abs(d) > 1 && (i.month < c.month || i.month > c.month) && (i = c, d = d > 0 ? 1 : -1), i.pick <= f.pick ? (s = !0, d = 1, i = u.create([f.year, f.month, f.date + (i.pick === f.pick ? 0 : -1)])) : i.pick >= h.pick && (l = !0, d = -1, i = u.create([h.year, h.month, h.date + (i.pick === h.pick ? 0 : 1)])), !s || !l);) i = u.create([i.year, i.month, i.date + d]);
        return i
    }, i.prototype.disabled = function (t) {
        var i = this,
            n = i.item.disable.filter(function (n) {
                return r.isInteger(n) ? t.day === (i.settings.firstDay ? n : n - 1) % 7 : e.isArray(n) || r.isDate(n) ? t.pick === i.create(n).pick : e.isPlainObject(n) ? i.withinRange(n, t) : void 0
            });
        return n = n.length && !n.filter(function (t) {
            return e.isArray(t) && "inverted" == t[3] || e.isPlainObject(t) && t.inverted
        }).length, -1 === i.item.enable ? !n : n || t.pick < i.item.min.pick || t.pick > i.item.max.pick
    }, i.prototype.parse = function (t, e, i) {
        var n = this,
            a = {};
        return e && "string" == typeof e ? (i && i.format || (i = i || {}, i.format = n.settings.format), n.formats.toArray(i.format).map(function (t) {
            var i = n.formats[t],
                o = i ? r.trigger(i, n, [e, a]) : t.replace(/^!/, "").length;
            i && (a[t] = e.substr(0, o)), e = e.substr(o)
        }), [a.yyyy || a.yy, +(a.mm || a.m) - 1, a.dd || a.d]) : e
    }, i.prototype.formats = function () {
        function t(t, e, i) {
            var n = t.match(/\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 ? r.digits(t) : e.date
            },
            dd: function (t, e) {
                return t ? 2 : r.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 ? r.digits(t) : e.month + 1
            },
            mm: function (t, e) {
                return t ? 2 : r.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 r.trigger(i.formats[t], i, [0, e]) || t.replace(/^!/, "")
                }).join("")
            }
        }
    }(), i.prototype.isDateExact = function (t, i) {
        var n = this;
        return r.isInteger(t) && r.isInteger(i) || "boolean" == typeof t && "boolean" == typeof i ? t === i : (r.isDate(t) || e.isArray(t)) && (r.isDate(i) || e.isArray(i)) ? n.create(t).pick === n.create(i).pick : e.isPlainObject(t) && e.isPlainObject(i) ? n.isDateExact(t.from, i.from) && n.isDateExact(t.to, i.to) : !1
    }, i.prototype.isDateOverlap = function (t, i) {
        var n = this,
            a = n.settings.firstDay ? 1 : 0;
        return r.isInteger(t) && (r.isDate(i) || e.isArray(i)) ? (t = t % 7 + a, t === n.create(i).day + 1) : r.isInteger(i) && (r.isDate(t) || e.isArray(t)) ? (i = i % 7 + a, i === n.create(t).day + 1) : e.isPlainObject(t) && e.isPlainObject(i) ? n.overlapRanges(t, i) : !1
    }, i.prototype.flipEnable = function (t) {
        var e = this.item;
        e.enable = t || (-1 == e.enable ? 1 : -1)
    }, i.prototype.deactivate = function (t, i) {
        var n = this,
            a = n.item.disable.slice(0);
        return "flip" == i ? n.flipEnable() : i === !1 ? (n.flipEnable(1), a = []) : i === !0 ? (n.flipEnable(-1), a = []) : i.map(function (t) {
            for (var i, o = 0; o < a.length; o += 1)
                if (n.isDateExact(t, a[o])) {
                    i = !0;
                    break
                } i || (r.isInteger(t) || r.isDate(t) || e.isArray(t) || e.isPlainObject(t) && t.from && t.to) && a.push(t)
        }), a
    }, i.prototype.activate = function (t, i) {
        var n = this,
            a = n.item.disable,
            o = a.length;
        return "flip" == i ? n.flipEnable() : i === !0 ? (n.flipEnable(1), a = []) : i === !1 ? (n.flipEnable(-1), a = []) : i.map(function (t) {
            var i, s, l, u;
            for (l = 0; o > l; l += 1) {
                if (s = a[l], n.isDateExact(s, t)) {
                    i = a[l] = null, u = !0;
                    break
                }
                if (n.isDateOverlap(s, t)) {
                    e.isPlainObject(t) ? (t.inverted = !0, i = t) : e.isArray(t) ? (i = t, i[3] || i.push("inverted")) : r.isDate(t) && (i = [t.getFullYear(), t.getMonth(), t.getDate(), "inverted"]);
                    break
                }
            }
            if (i)
                for (l = 0; o > l; l += 1)
                    if (n.isDateExact(a[l], t)) {
                        a[l] = null;
                        break
                    } if (u)
                for (l = 0; o > l; l += 1)
                    if (n.isDateOverlap(a[l], t)) {
                        a[l] = null;
                        break
                    } i && a.push(i)
        }), a.filter(function (t) {
            return null != t
        })
    }, i.prototype.nodes = function (t) {
        var e = this,
            i = e.settings,
            o = e.item,
            s = o.now,
            l = o.select,
            u = o.highlight,
            c = o.view,
            d = o.disable,
            p = o.min,
            f = o.max,
            h = function (t, e) {
                return i.firstDay && (t.push(t.shift()), e.push(e.shift())), r.node("thead", r.node("tr", r.group({
                    min: 0,
                    max: n - 1,
                    i: 1,
                    node: "th",
                    item: function (n) {
                        return [t[n], i.klass.weekdays, 'scope=col title="' + e[n] + '"']
                    }
                })))
            }((i.showWeekdaysFull ? i.weekdaysFull : i.weekdaysLetter).slice(0), i.weekdaysFull.slice(0)),
            v = function (t) {
                return r.node("div", " ", i.klass["nav" + (t ? "Next" : "Prev")] + (t && c.year >= f.year && c.month >= f.month || !t && c.year <= p.year && c.month <= p.month ? " " + i.klass.navDisabled : ""), "data-nav=" + (t || -1) + " " + r.ariaAttr({
                    role: "button",
                    controls: e.$node[0].id + "_table"
                }) + ' title="' + (t ? i.labelMonthNext : i.labelMonthPrev) + '"')
            },
            g = function (n) {
                var a = i.showMonthsShort ? i.monthsShort : i.monthsFull;
                return "short_months" == n && (a = i.monthsShort), i.selectMonths && void 0 == n ? r.node("select", r.group({
                    min: 0,
                    max: 11,
                    i: 1,
                    node: "option",
                    item: function (t) {
                        return [a[t], 0, "value=" + t + (c.month == t ? " selected" : "") + (c.year == p.year && t < p.month || c.year == f.year && t > f.month ? " disabled" : "")]
                    }
                }), i.klass.selectMonth + " browser-default", (t ? "" : "disabled") + " " + r.ariaAttr({
                    controls: e.$node[0].id + "_table"
                }) + ' title="' + i.labelMonthSelect + '"') : "short_months" == n ? null != l ? r.node("div", a[l.month]) : r.node("div", a[c.month]) : r.node("div", a[c.month], i.klass.month)
            },
            m = function (n) {
                var a = c.year,
                    o = i.selectYears === !0 ? 5 : ~~(i.selectYears / 2);
                if (o) {
                    var s = p.year,
                        l = f.year,
                        u = a - o,
                        d = a + o;
                    if (s > u && (d += s - u, u = s), d > l) {
                        var h = u - s,
                            v = d - l;
                        u -= h > v ? v : h, d = l
                    }
                    if (i.selectYears && void 0 == n) return r.node("select", r.group({
                        min: u,
                        max: d,
                        i: 1,
                        node: "option",
                        item: function (t) {
                            return [t, 0, "value=" + t + (a == t ? " selected" : "")]
                        }
                    }), i.klass.selectYear + " browser-default", (t ? "" : "disabled") + " " + r.ariaAttr({
                        controls: e.$node[0].id + "_table"
                    }) + ' title="' + i.labelYearSelect + '"')
                }
                return "raw" == n ? r.node("div", a) : r.node("div", a, i.klass.year)
            };
        return createDayLabel = function () {
            return null != l ? r.node("div", l.date) : r.node("div", s.date)
        }, createWeekdayLabel = function () {
            var t;
            t = null != l ? l.day : s.day;
            var e = i.weekdaysFull[t];
            return e
        }, r.node("div", r.node("div", createWeekdayLabel(), "picker__weekday-display") + r.node("div", g("short_months"), i.klass.month_display) + r.node("div", createDayLabel(), i.klass.day_display) + r.node("div", m("raw"), i.klass.year_display), i.klass.date_display) + r.node("div", r.node("div", (i.selectYears ? g() + m() : g() + m()) + v() + v(1), i.klass.header) + r.node("table", h + r.node("tbody", r.group({
            min: 0,
            max: a - 1,
            i: 1,
            node: "tr",
            item: function (t) {
                var a = i.firstDay && 0 === e.create([c.year, c.month, 1]).day ? -7 : 0;
                return [r.group({
                    min: n * t - c.day + a + 1,
                    max: function () {
                        return this.min + n - 1
                    },
                    i: 1,
                    node: "td",
                    item: function (t) {
                        t = e.create([c.year, c.month, t + (i.firstDay ? 1 : 0)]);
                        var n = l && l.pick == t.pick,
                            a = u && u.pick == t.pick,
                            o = d && e.disabled(t) || t.pick < p.pick || t.pick > f.pick,
                            h = r.trigger(e.formats.toString, e, [i.format, t]);
                        return [r.node("div", t.date, function (e) {
                            return e.push(c.month == t.month ? i.klass.infocus : i.klass.outfocus), s.pick == t.pick && e.push(i.klass.now), n && e.push(i.klass.selected), a && e.push(i.klass.highlighted), o && e.push(i.klass.disabled), e.join(" ")
                        }([i.klass.day]), "data-pick=" + t.pick + " " + r.ariaAttr({
                            role: "gridcell",
                            label: h,
                            selected: n && e.$node.val() === h ? !0 : null,
                            activedescendant: a ? !0 : null,
                            disabled: o ? !0 : null
                        })), "", r.ariaAttr({
                            role: "presentation"
                        })]
                    }
                })]
            }
        })), i.klass.table, 'id="' + e.$node[0].id + '_table" ' + r.ariaAttr({
            role: "grid",
            controls: e.$node[0].id,
            readonly: !0
        })), i.klass.calendar_container) + r.node("div", r.node("button", i.today, "btn-flat picker__today", "type=button data-pick=" + s.pick + (t && !e.disabled(s) ? "" : " disabled") + " " + r.ariaAttr({
            controls: e.$node[0].id
        })) + r.node("button", i.clear, "btn-flat picker__clear", "type=button data-clear=1" + (t ? "" : " disabled") + " " + r.ariaAttr({
            controls: e.$node[0].id
        })) + r.node("button", i.close, "btn-flat picker__close", "type=button data-close=true " + (t ? "" : " disabled") + " " + r.ariaAttr({
            controls: e.$node[0].id
        })), i.klass.footer)
    }, i.defaults = function (t) {
        return {
            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"],
            weekdaysLetter: ["S", "M", "T", "W", "T", "F", "S"],
            today: "Today",
            clear: "Clear",
            close: "Close",
            format: "d mmmm, yyyy",
            klass: {
                table: t + "table",
                header: t + "header",
                date_display: t + "date-display",
                day_display: t + "day-display",
                month_display: t + "month-display",
                year_display: t + "year-display",
                calendar_container: t + "calendar-container",
                navPrev: t + "nav--prev",
                navNext: t + "nav--next",
                navDisabled: t + "nav--disabled",
                month: t + "month",
                year: t + "year",
                selectMonth: t + "select--month",
                selectYear: t + "select--year",
                weekdays: t + "weekday",
                day: t + "day",
                disabled: t + "day--disabled",
                selected: t + "day--selected",
                highlighted: t + "day--highlighted",
                now: t + "day--today",
                infocus: t + "day--infocus",
                outfocus: t + "day--outfocus",
                footer: t + "footer",
                buttonClear: t + "button--clear",
                buttonToday: t + "button--today",
                buttonClose: t + "button--close"
            }
        }
    }(t.klasses().picker + "__"), t.extend("pickadate", i)
}),
function (t) {
    function e() {
        var e = +t(this).attr("length"),
            i = +t(this).val().length,
            n = e >= i;
        t(this).parent().find('span[class="character-counter"]').html(i + "/" + e), a(n, t(this))
    }

    function i(e) {
        var i = t("<span/>").addClass("character-counter").css("float", "right").css("font-size", "12px").css("height", 1);
        e.parent().append(i)
    }

    function n() {
        t(this).parent().find('span[class="character-counter"]').html("")
    }

    function a(t, e) {
        var i = e.hasClass("invalid");
        t && i ? e.removeClass("invalid") : t || i || (e.removeClass("valid"), e.addClass("invalid"))
    }
    t.fn.characterCounter = function () {
        return this.each(function () {
            var a = void 0 !== t(this).attr("length");
            a && (t(this).on("input", e), t(this).on("focus", e), t(this).on("blur", n), i(t(this)))
        })
    }, t(document).ready(function () {
        t("input, textarea").characterCounter()
    })
}(jQuery),
function (t) {
    var e = {
        init: function (e) {
            var i = {
                time_constant: 200,
                dist: -100,
                shift: 0,
                padding: 0,
                full_width: !1
            };
            return e = t.extend(i, e), this.each(function () {
                function i() {
                    "undefined" != typeof window.ontouchstart && (M[0].addEventListener("touchstart", c), M[0].addEventListener("touchmove", d), M[0].addEventListener("touchend", p)), M[0].addEventListener("mousedown", c), M[0].addEventListener("mousemove", d), M[0].addEventListener("mouseup", p), M[0].addEventListener("click", u)
                }

                function n(t) {
                    return t.targetTouches && t.targetTouches.length >= 1 ? t.targetTouches[0].clientX : t.clientX
                }

                function a(t) {
                    return t.targetTouches && t.targetTouches.length >= 1 ? t.targetTouches[0].clientY : t.clientY
                }

                function r(t) {
                    return t >= b ? t % b : 0 > t ? r(b + t % b) : t
                }

                function o(t) {
                    var i, n, a, o, s, l, u;
                    for (h = "number" == typeof t ? t : h, v = Math.floor((h + m / 2) / m), a = h - v * m, o = 0 > a ? 1 : -1, s = -o * a * 2 / m, e.full_width ? u = "translateX(0)" : (u = "translateX(" + (M[0].clientWidth - item_width) / 2 + "px) ", u += "translateY(" + (M[0].clientHeight - item_width) / 2 + "px)"), l = f[r(v)], l.style[S] = u + " translateX(" + -a / 2 + "px) translateX(" + o * e.shift * s * i + "px) translateZ(" + e.dist * s + "px)", l.style.zIndex = 0, e.full_width ? tweenedOpacity = 1 : tweenedOpacity = 1 - .2 * s, l.style.opacity = tweenedOpacity, n = b >> 1, i = 1; n >= i; ++i) e.full_width ? (zTranslation = e.dist, tweenedOpacity = i === n && 0 > a ? 1 - s : 1) : (zTranslation = e.dist * (2 * i + s * o), tweenedOpacity = 1 - .2 * (2 * i + s * o)), l = f[r(v + i)], l.style[S] = u + " translateX(" + (e.shift + (m * i - a) / 2) + "px) translateZ(" + zTranslation + "px)", l.style.zIndex = -i, l.style.opacity = tweenedOpacity, e.full_width ? (zTranslation = e.dist, tweenedOpacity = i === n && a > 0 ? 1 - s : 1) : (zTranslation = e.dist * (2 * i - s * o), tweenedOpacity = 1 - .2 * (2 * i - s * o)), l = f[r(v - i)], l.style[S] = u + " translateX(" + (-e.shift + (-m * i - a) / 2) + "px) translateZ(" + zTranslation + "px)", l.style.zIndex = -i, l.style.opacity = tweenedOpacity;
                    l = f[r(v)], l.style[S] = u + " translateX(" + -a / 2 + "px) translateX(" + o * e.shift * s + "px) translateZ(" + e.dist * s + "px)", l.style.zIndex = 0, e.full_width ? tweenedOpacity = 1 : tweenedOpacity = 1 - .2 * s,
                        l.style.opacity = tweenedOpacity
                }

                function s() {
                    var t, e, i, n;
                    t = Date.now(), e = t - P, P = t, i = h - O, O = h, n = 1e3 * i / (1 + e), T = .8 * n + .2 * T
                }

                function l() {
                    var t, i;
                    C && (t = Date.now() - P, i = C * Math.exp(-t / e.time_constant), i > 2 || -2 > i ? (o(k - i), requestAnimationFrame(l)) : o(k))
                }

                function u(i) {
                    if (E) return i.preventDefault(), i.stopPropagation(), !1;
                    if (!e.full_width) {
                        var n = t(i.target).closest(".carousel-item").index(),
                            a = v % b - n;
                        0 > a ? Math.abs(a + b) < Math.abs(a) && (a += b) : a > 0 && Math.abs(a - b) < a && (a -= b), 0 > a ? t(this).trigger("carouselNext", [Math.abs(a)]) : a > 0 && t(this).trigger("carouselPrev", [a])
                    }
                }

                function c(t) {
                    g = !0, E = !1, q = !1, w = n(t), x = a(t), T = C = 0, O = h, P = Date.now(), clearInterval(A), A = setInterval(s, 100)
                }

                function d(t) {
                    var e, i, r;
                    if (g)
                        if (e = n(t), y = a(t), i = w - e, r = Math.abs(x - y), 30 > r && !q) (i > 2 || -2 > i) && (E = !0, w = e, o(h + i));
                        else {
                            if (E) return t.preventDefault(), t.stopPropagation(), !1;
                            q = !0
                        } return E ? (t.preventDefault(), t.stopPropagation(), !1) : void 0
                }

                function p(t) {
                    return g = !1, clearInterval(A), k = h, (T > 10 || -10 > T) && (C = .9 * T, k = h + C), k = Math.round(k / m) * m, C = k - h, P = Date.now(), requestAnimationFrame(l), t.preventDefault(), t.stopPropagation(), !1
                }
                var f, h, v, g, m, b, w, x, C, k, T, S, O, P, A, E, q, M = t(this);
                return M.hasClass("initialized") ? !0 : (e.full_width && (e.dist = 0, imageHeight = M.find(".carousel-item img").first().load(function () {
                    M.css("height", t(this).height())
                })), M.addClass("initialized"), g = !1, h = k = 0, f = [], item_width = M.find(".carousel-item").first().innerWidth(), m = 2 * item_width + e.padding, M.find(".carousel-item").each(function () {
                    f.push(t(this)[0])
                }), b = f.length, S = "transform", ["webkit", "Moz", "O", "ms"].every(function (t) {
                    var e = t + "Transform";
                    return "undefined" != typeof document.body.style[e] ? (S = e, !1) : !0
                }), window.onresize = o, i(), o(h), t(this).on("carouselNext", function (t, e) {
                    void 0 === e && (e = 1), k = h + m * e, h !== k && (C = k - h, P = Date.now(), requestAnimationFrame(l))
                }), void t(this).on("carouselPrev", function (t, e) {
                    void 0 === e && (e = 1), k = h - m * e, h !== k && (C = k - h, P = Date.now(), requestAnimationFrame(l))
                }))
            })
        },
        next: function (e) {
            t(this).trigger("carouselNext", [e])
        },
        prev: function (e) {
            t(this).trigger("carouselPrev", [e])
        }
    };
    t.fn.carousel = function (i) {
        return e[i] ? e[i].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof i && i ? void t.error("Method " + i + " does not exist on jQuery.carousel") : e.init.apply(this, arguments)
    }
}(jQuery);
jigs144379 commented 5 years ago

Below is my materialzie js. my pick date code is in my this js.

materialize.zip