PageSourceSearch

https://www.ocr.org.uk/assets/js/vendor/materialize/materialize_modified.min.js

js ocr.org.uk collected 2026-09-24 09:22:08 UTC 308,455 bytes, 5,766 lines download raw bytes

1/*!
2 * Materialize v0.99.0 (http://materializecss.com)
3 * Copyright 2014-2017 Materialize
4 * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
5 *Was changed for OWI-39: All conflicting functions like mtabs , tooltip , accordian were prefixed with "m" like mmmtabs()
6 */
7
8if (void 0 === jQuery) {
9    var jQuery;
10    jQuery = "function" == typeof require ? $ = require("jquery") : $
11}! function(a) {
12    "function" == typeof define && define.amd ? define(["jquery"], function(b) {
13        return a(b)
14    }) : "object" == typeof module && "object" == typeof module.exports ? exports = a(require("jquery")) : a(jQuery)
15}(function(a) {
16    function b(a) {
17        var b = 7.5625,
18            c = 2.75;
19        return a < 1 / c ? b * a * a : a < 2 / c ? b * (a -= 1.5 / c) * a + .75 : a < 2.5 / c ? b * (a -= 2.25 / c) * a + .9375 : b * (a -= 2.625 / c) * a + .984375
20    }
21    a.easing.jswing = a.easing.swing;
22    var c = Math.pow,
23        d = Math.sqrt,
24        e = Math.sin,
25        f = Math.cos,
26        g = Math.PI,
27        h = 1.70158,
28        i = 1.525 * h,
29        j = 2 * g / 3,
30        k = 2 * g / 4.5;
31    a.extend(a.easing, {
32        def: "easeOutQuad",
33        swing: function(b) {
34            return a.easing[a.easing.def](b)
35        },
36        easeInQuad: function(a) {
37            return a * a
38        },
39        easeOutQuad: function(a) {
40            return 1 - (1 - a) * (1 - a)
41        },
42        easeInOutQuad: function(a) {
43            return a < .5 ? 2 * a * a : 1 - c(-2 * a + 2, 2) / 2
44        },
45        easeInCubic: function(a) {
46            return a * a * a
47        },
48        easeOutCubic: function(a) {
49            return 1 - c(1 - a, 3)
50        },
51        easeInOutCubic: function(a) {
52            return a < .5 ? 4 * a * a * a : 1 - c(-2 * a + 2, 3) / 2
53        },
54        easeInQuart: function(a) {
55            return a * a * a * a
56        },
57        easeOutQuart: function(a) {
58            return 1 - c(1 - a, 4)
59        },
60        easeInOutQuart: function(a) {
61            return a < .5 ? 8 * a * a * a * a : 1 - c(-2 * a + 2, 4) / 2
62        },
63        easeInQuint: function(a) {
64            return a * a * a * a * a
65        },
66        easeOutQuint: function(a) {
67            return 1 - c(1 - a, 5)
68        },
69        easeInOutQuint: function(a) {
70            return a < .5 ? 16 * a * a * a * a * a : 1 - c(-2 * a + 2, 5) / 2
71        },
72        easeInSine: function(a) {
73            return 1 - f(a * g / 2)
74        },
75        easeOutSine: function(a) {
76            return e(a * g / 2)
77        },
78        easeInOutSine: function(a) {
79            return -(f(g * a) - 1) / 2
80        },
81        easeInExpo: function(a) {
82            return 0 === a ? 0 : c(2, 10 * a - 10)
83        },
84        easeOutExpo: function(a) {
85            return 1 === a ? 1 : 1 - c(2, -10 * a)
86        },
87        easeInOutExpo: function(a) {
88            return 0 === a ? 0 : 1 === a ? 1 : a < .5 ? c(2, 20 * a - 10) / 2 : (2 - c(2, -20 * a + 10)) / 2
89        },
90        easeInCirc: function(a) {
91            return 1 - d(1 - c(a, 2))
92        },
93        easeOutCirc: function(a) {
94            return d(1 - c(a - 1, 2))
95        },
96        easeInOutCirc: function(a) {
97            return a < .5 ? (1 - d(1 - c(2 * a, 2))) / 2 : (d(1 - c(-2 * a + 2, 2)) + 1) / 2
98        },
99        easeInElastic: function(a) {
100            return 0 === a ? 0 : 1 === a ? 1 : -c(2, 10 * a - 10) * e((10 * a - 10.75) * j)
101        },
102        easeOutElastic: function(a) {
103            return 0 === a ? 0 : 1 === a ? 1 : c(2, -10 * a) * e((10 * a - .75) * j) + 1
104        },
105        easeInOutElastic: function(a) {
106            return 0 === a ? 0 : 1 === a ? 1 : a < .5 ? -c(2, 20 * a - 10) * e((20 * a - 11.125) * k) / 2 : c(2, -20 * a + 10) * e((20 * a - 11.125) * k) / 2 + 1
107        },
108        easeInBack: function(a) {
109            return 2.70158 * a * a * a - h * a * a
110        },
111        easeOutBack: function(a) {
112            return 1 + 2.70158 * c(a - 1, 3) + h * c(a - 1, 2)
113        },
114        easeInOutBack: function(a) {
115            return a < .5 ? c(2 * a, 2) * (7.189819 * a - i) / 2 : (c(2 * a - 2, 2) * ((i + 1) * (2 * a - 2) + i) + 2) / 2
116        },
117        easeInBounce: function(a) {
118            return 1 - b(1 - a)
119        },
120        easeOutBounce: b,
121        easeInOutBounce: function(a) {
122            return a < .5 ? (1 - b(1 - 2 * a)) / 2 : (1 + b(2 * a - 1)) / 2
123        }
124    })
125}), jQuery.extend(jQuery.easing, {
126        easeInOutMaterial: function(a, b, c, d, e) {
127            return (b /= e / 2) < 1 ? d / 2 * b * b + c : d / 4 * ((b -= 2) * b * b + 2) + c
128        }
129    }), jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity.") : (function(a) {
130        function b(a) {
131            var b = a.length,
132                d = c.type(a);
133            return "function" !== d && !c.isWindow(a) && (!(1 !== a.nodeType || !b) || ("array" === d || 0 === b || "number" == typeof b && b > 0 && b - 1 in a))
134        }
135        if (!a.jQuery) {
136            var c = function(a, b) {
137                return new c.fn.init(a, b)
138            };
139            c.isWindow = function(a) {
140                return null != a && a == a.window
141            }, c.type = function(a) {
142                return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? e[g.call(a)] || "object" : typeof a
143            }, c.isArray = Array.isArray || function(a) {
144                return "array" === c.type(a)
145            }, c.isPlainObject = function(a) {
146                var b;
147                if (!a || "object" !== c.type(a) || a.nodeType || c.isWindow(a)) return !1;
148                try {
149                    if (a.constructor && !f.call(a, "constructor") && !f.call(a.constructor.prototype, "isPrototypeOf")) return !1
150                } catch (a) {
151                    return !1
152                }
153                for (b in a);
154                return void 0 === b || f.call(a, b)
155            }, c.each = function(a, c, d) {
156                var e = 0,
157                    f = a.length,
158                    g = b(a);
159                if (d) {
160                    if (g)
161                        for (; f > e && !1 !== c.apply(a[e], d); e++);
162                    else
163                        for (e in a)
164                            if (!1 === c.apply(a[e], d)) break
165                } else if (g)
166                    for (; f > e && !1 !== c.call(a[e], e, a[e]); e++);
167                else
168                    for (e in a)
169                        if (!1 === c.call(a[e], e, a[e])) break;
170                return a
171            }, c.data = function(a, b, e) {
172                if (void 0 === e) {
173                    var f = a[c.expando],
174                        g = f && d[f];
175                    if (void 0 === b) return g;
176                    if (g && b in g) return g[b]
177                } else if (void 0 !== b) {
178                    var f = a[c.expando] || (a[c.expando] = ++c.uuid);
179                    return d[f] = d[f] || {}, d[f][b] = e, e
180                }
181            }, c.removeData = function(a, b) {
182                var e = a[c.expando],
183                    f = e && d[e];
184                f && c.each(b, function(a, b) {
185                    delete f[b]
186                })
187            }, c.extend = function() {
188                var a, b, d, e, f, g, h = arguments[0] || {},
189                    i = 1,
190                    j = arguments.length,
191                    k = !1;
192                for ("boolean" == typeof h && (k = h, h = arguments[i] || {}, i++), "object" != typeof h && "function" !== c.type(h) && (h = {}), i === j && (h = this, i--); j > i; i++)
193                    if (null != (f = arguments[i]))
vendor: 68,276 bytes, lines 194-1304
194                        for (e in f) a = h[e], d = f[e], h !== d && (k && d && (c.isPlainObject(d) || (b = c.isArray(d))) ? (b ? (b = !1, g = a && c.isArray(a) ? a : []) : g = a && c.isPlainObject(a) ? a : {}, h[e] = c.extend(k, g, d)) : void 0 !== d && (h[e] = d));
195                return h
196            }, c.queue = function(a, d, e) {
197                if (a) {
198                    d = (d || "fx") + "queue";
199                    var f = c.data(a, d);
200                    return e ? (!f || c.isArray(e) ? f = c.data(a, d, function(a, c) {
201                        var d = c || [];
202                        return null != a && (b(Object(a)) ? function(a, b) {
203                            for (var c = +b.length, d = 0, e = a.length; c > d;) a[e++] = b[d++];
204                            if (c !== c)
205                                for (; void 0 !== b[d];) a[e++] = b[d++];
206                            a.length = e
207                        }(d, "string" == typeof a ? [a] : a) : [].push.call(d, a)), d
208                    }(e)) : f.push(e), f) : f || []
209                }
210            }, c.dequeue = function(a, b) {
211                c.each(a.nodeType ? [a] : a, function(a, d) {
212                    b = b || "fx";
213                    var e = c.queue(d, b),
214                        f = e.shift();
215                    "inprogress" === f && (f = e.shift()), f && ("fx" === b && e.unshift("inprogress"), f.call(d, function() {
216                        c.dequeue(d, b)
217                    }))
218                })
219            }, c.fn = c.prototype = {
220                init: function(a) {
221                    if (a.nodeType) return this[0] = a, this;
222                    throw new Error("Not a DOM node.")
223                },
224                offset: function() {
225                    var b = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {
226                        top: 0,
227                        left: 0
228                    };
229                    return {
230                        top: b.top + (a.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),
231                        left: b.left + (a.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)
232                    }
233                },
234                position: function() {
235                    function a() {
236                        for (var a = this.offsetParent || document; a && "html" === !a.nodeType.toLowerCase && "static" === a.style.position;) a = a.offsetParent;
237                        return a || document
238                    }
239                    var b = this[0],
240                        a = a.apply(b),
241                        d = this.offset(),
242                        e = /^(?:body|html)$/i.test(a.nodeName) ? {
243                            top: 0,
244                            left: 0
245                        } : c(a).offset();
246                    return d.top -= parseFloat(b.style.marginTop) || 0, d.left -= parseFloat(b.style.marginLeft) || 0, a.style && (e.top += parseFloat(a.style.borderTopWidth) || 0, e.left += parseFloat(a.style.borderLeftWidth) || 0), {
247                        top: d.top - e.top,
248                        left: d.left - e.left
249                    }
250                }
251            };
252            var d = {};
253            c.expando = "velocity" + (new Date).getTime(), c.uuid = 0;
254            for (var e = {}, f = e.hasOwnProperty, g = e.toString, h = "Boolean Number String Function Array Date RegExp Object Error".split(" "), i = 0; i < h.length; i++) e["[object " + h[i] + "]"] = h[i].toLowerCase();
255            c.fn.init.prototype = c.fn, a.Velocity = {
256                Utilities: c
257            }
258        }
259    }(window), function(a) {
260        "object" == typeof module && "object" == typeof module.exports ? module.exports = a() : "function" == typeof define && define.amd ? define(a) : a()
261    }(function() {
262        return function(a, b, c, d) {
263            function e(a) {
264                for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) {
265                    var e = a[b];
266                    e && d.push(e)
267                }
268                return d
269            }
270
271            function f(a) {
272                return p.isWrapped(a) ? a = [].slice.call(a) : p.isNode(a) && (a = [a]), a
273            }
274
275            function g(a) {
276                var b = m.data(a, "velocity");
277                return null === b ? d : b
278            }
279
280            function h(a) {
281                return function(b) {
282                    return Math.round(b * a) * (1 / a)
283                }
284            }
285
286            function i(a, c, d, e) {
287                function f(a, b) {
288                    return 1 - 3 * b + 3 * a
289                }
290
291                function g(a, b) {
292                    return 3 * b - 6 * a
293                }
294
295                function h(a) {
296                    return 3 * a
297                }
298
299                function i(a, b, c) {
300                    return ((f(b, c) * a + g(b, c)) * a + h(b)) * a
301                }
302
303                function j(a, b, c) {
304                    return 3 * f(b, c) * a * a + 2 * g(b, c) * a + h(b)
305                }
306
307                function k(b, c) {
308                    for (var e = 0; p > e; ++e) {
309                        var f = j(c, a, d);
310                        if (0 === f) return c;
311                        c -= (i(c, a, d) - b) / f
312                    }
313                    return c
314                }
315
316                function l() {
317                    for (var b = 0; t > b; ++b) x[b] = i(b * u, a, d)
318                }
319
320                function m(b, c, e) {
321                    var f, g, h = 0;
322                    do {
323                        g = c + (e - c) / 2, f = i(g, a, d) - b, f > 0 ? e = g : c = g
324                    } while (Math.abs(f) > r && ++h < s);
325                    return g
326                }
327
328                function n(b) {
329                    for (var c = 0, e = 1, f = t - 1; e != f && x[e] <= b; ++e) c += u;
330                    --e;
331                    var g = (b - x[e]) / (x[e + 1] - x[e]),
332                        h = c + g * u,
333                        i = j(h, a, d);
334                    return i >= q ? k(b, h) : 0 == i ? h : m(b, c, c + u)
335                }
336
337                function o() {
338                    y = !0, (a != c || d != e) && l()
339                }
340                var p = 4,
341                    q = .001,
342                    r = 1e-7,
343                    s = 10,
344                    t = 11,
345                    u = 1 / (t - 1),
346                    v = "Float32Array" in b;
347                if (4 !== arguments.length) return !1;
348                for (var w = 0; 4 > w; ++w)
349                    if ("number" != typeof arguments[w] || isNaN(arguments[w]) || !isFinite(arguments[w])) return !1;
350                a = Math.min(a, 1), d = Math.min(d, 1), a = Math.max(a, 0), d = Math.max(d, 0);
351                var x = v ? new Float32Array(t) : new Array(t),
352                    y = !1,
353                    z = function(b) {
354                        return y || o(), a === c && d === e ? b : 0 === b ? 0 : 1 === b ? 1 : i(n(b), c, e)
355                    };
356                z.getControlPoints = function() {
357                    return [{
358                        x: a,
359                        y: c
360                    }, {
361                        x: d,
362                        y: e
363                    }]
364                };
365                var A = "generateBezier(" + [a, c, d, e] + ")";
366                return z.toString = function() {
367                    return A
368                }, z
369            }
370
371            function j(a, b) {
372                var c = a;
373                return p.isString(a) ? t.Easings[a] || (c = !1) : c = p.isArray(a) && 1 === a.length ? h.apply(null, a) : p.isArray(a) && 2 === a.length ? u.apply(null, a.concat([b])) : !(!p.isArray(a) || 4 !== a.length) && i.apply(null, a), !1 === c && (c = t.Easings[t.defaults.easing] ? t.defaults.easing : s), c
374            }
375
376            function k(a) {
377                if (a) {
378                    var b = (new Date).getTime(),
379                        c = t.State.calls.length;
380                    c > 1e4 && (t.State.calls = e(t.State.calls));
381                    for (var f = 0; c > f; f++)
382                        if (t.State.calls[f]) {
383                            var h = t.State.calls[f],
384                                i = h[0],
385                                j = h[2],
386                                n = h[3],
387                                o = !!n,
388                                q = null;
389                            n || (n = t.State.calls[f][3] = b - 16);
390                            for (var r = Math.min((b - n) / j.duration, 1), s = 0, u = i.length; u > s; s++) {
391                                var w = i[s],
392                                    y = w.element;
393                                if (g(y)) {
394                                    var z = !1;
395                                    if (j.display !== d && null !== j.display && "none" !== j.display) {
396                                        if ("flex" === j.display) {
397                                            var A = ["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex"];
398                                            m.each(A, function(a, b) {
399                                                v.setPropertyValue(y, "display", b)
400                                            })
401                                        }
402                                        v.setPropertyValue(y, "display", j.display)
403                                    }
404                                    j.visibility !== d && "hidden" !== j.visibility && v.setPropertyValue(y, "visibility", j.visibility);
405                                    for (var B in w)
406                                        if ("element" !== B) {
407                                            var C, D = w[B],
408                                                E = p.isString(D.easing) ? t.Easings[D.easing] : D.easing;
409                                            if (1 === r) C = D.endValue;
410                                            else {
411                                                var F = D.endValue - D.startValue;
412                                                if (C = D.startValue + F * E(r, j, F), !o && C === D.currentValue) continue
413                                            }
414                                            if (D.currentValue = C, "tween" === B) q = C;
415                                            else {
416                                                if (v.Hooks.registered[B]) {
417                                                    var G = v.Hooks.getRoot(B),
418                                                        H = g(y).rootPropertyValueCache[G];
419                                                    H && (D.rootPropertyValue = H)
420                                                }
421                                                var I = v.setPropertyValue(y, B, D.currentValue + (0 === parseFloat(C) ? "" : D.unitType), D.rootPropertyValue, D.scrollData);
422                                                v.Hooks.registered[B] && (g(y).rootPropertyValueCache[G] = v.Normalizations.registered[G] ? v.Normalizations.registered[G]("extract", null, I[1]) : I[1]), "transform" === I[0] && (z = !0)
423                                            }
424                                        } j.mobileHA && g(y).transformCache.translate3d === d && (g(y).transformCache.translate3d = "(0px, 0px, 0px)", z = !0), z && v.flushTransformCache(y)
425                                }
426                            }
427                            j.display !== d && "none" !== j.display && (t.State.calls[f][2].display = !1), j.visibility !== d && "hidden" !== j.visibility && (t.State.calls[f][2].visibility = !1), j.progress && j.progress.call(h[1], h[1], r, Math.max(0, n + j.duration - b), n, q), 1 === r && l(f)
428                        }
429                }
430                t.State.isTicking && x(k)
431            }
432
433            function l(a, b) {
434                if (!t.State.calls[a]) return !1;
435                for (var c = t.State.calls[a][0], e = t.State.calls[a][1], f = t.State.calls[a][2], h = t.State.calls[a][4], i = !1, j = 0, k = c.length; k > j; j++) {
436                    var l = c[j].element;
437                    if (b || f.loop || ("none" === f.display && v.setPropertyValue(l, "display", f.display), "hidden" === f.visibility && v.setPropertyValue(l, "visibility", f.visibility)), !0 !== f.loop && (m.queue(l)[1] === d || !/\.velocityQueueEntryFlag/i.test(m.queue(l)[1])) && g(l)) {
438                        g(l).isAnimating = !1, g(l).rootPropertyValueCache = {};
439                        var n = !1;
440                        m.each(v.Lists.transforms3D, function(a, b) {
441                            var c = /^scale/.test(b) ? 1 : 0,
442                                e = g(l).transformCache[b];
443                            g(l).transformCache[b] !== d && new RegExp("^\\(" + c + "[^.]").test(e) && (n = !0, delete g(l).transformCache[b])
444                        }), f.mobileHA && (n = !0, delete g(l).transformCache.translate3d), n && v.flushTransformCache(l), v.Values.removeClass(l, "velocity-animating")
445                    }
446                    if (!b && f.complete && !f.loop && j === k - 1) try {
447                        f.complete.call(e, e)
448                    } catch (a) {
449                        setTimeout(function() {
450                            throw a
451                        }, 1)
452                    }
453                    h && !0 !== f.loop && h(e), g(l) && !0 === f.loop && !b && (m.each(g(l).tweensContainer, function(a, b) {
454                        /^rotate/.test(a) && 360 === parseFloat(b.endValue) && (b.endValue = 0, b.startValue = 360), /^backgroundPosition/.test(a) && 100 === parseFloat(b.endValue) && "%" === b.unitType && (b.endValue = 0, b.startValue = 100)
455                    }), t(l, "reverse", {
456                        loop: !0,
457                        delay: f.delay
458                    })), !1 !== f.queue && m.dequeue(l, f.queue)
459                }
460                t.State.calls[a] = !1;
461                for (var o = 0, p = t.State.calls.length; p > o; o++)
462                    if (!1 !== t.State.calls[o]) {
463                        i = !0;
464                        break
465                    }! 1 === i && (t.State.isTicking = !1, delete t.State.calls, t.State.calls = [])
466            }
467            var m, n = function() {
468                    if (c.documentMode) return c.documentMode;
469                    for (var a = 7; a > 4; a--) {
470                        var b = c.createElement("div");
471                        if (b.innerHTML = "\x3c!--[if IE " + a + "]><span></span><![endif]--\x3e", b.getElementsByTagName("span").length) return b = null, a
472                    }
473                    return d
474                }(),
475                o = function() {
476                    var a = 0;
477                    return b.webkitRequestAnimationFrame || b.mozRequestAnimationFrame || function(b) {
478                        var c, d = (new Date).getTime();
479                        return c = Math.max(0, 16 - (d - a)), a = d + c, setTimeout(function() {
480                            b(d + c)
481                        }, c)
482                    }
483                }(),
484                p = {
485                    isString: function(a) {
486                        return "string" == typeof a
487                    },
488                    isArray: Array.isArray || function(a) {
489                        return "[object Array]" === Object.prototype.toString.call(a)
490                    },
491                    isFunction: function(a) {
492                        return "[object Function]" === Object.prototype.toString.call(a)
493                    },
494                    isNode: function(a) {
495                        return a && a.nodeType
496                    },
497                    isNodeList: function(a) {
498                        return "object" == typeof a && /^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(a)) && a.length !== d && (0 === a.length || "object" == typeof a[0] && a[0].nodeType > 0)
499                    },
500                    isWrapped: function(a) {
501                        return a && (a.jquery || b.Zepto && b.Zepto.zepto.isZ(a))
502                    },
503                    isSVG: function(a) {
504                        return b.SVGElement && a instanceof b.SVGElement
505                    },
506                    isEmptyObject: function(a) {
507                        for (var b in a) return !1;
508                        return !0
509                    }
510                },
511                q = !1;
512            if (a.fn && a.fn.jquery ? (m = a, q = !0) : m = b.Velocity.Utilities, 8 >= n && !q) throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");
513            if (7 >= n) return void(jQuery.fn.velocity = jQuery.fn.animate);
514            var r = 400,
515                s = "swing",
516                t = {
517                    State: {
518                        isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
519                        isAndroid: /Android/i.test(navigator.userAgent),
520                        isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent),
521                        isChrome: b.chrome,
522                        isFirefox: /Firefox/i.test(navigator.userAgent),
523                        prefixElement: c.createElement("div"),
524                        prefixMatches: {},
525                        scrollAnchor: null,
526                        scrollPropertyLeft: null,
527                        scrollPropertyTop: null,
528                        isTicking: !1,
529                        calls: []
530                    },
531                    CSS: {},
532                    Utilities: m,
533                    Redirects: {},
534                    Easings: {},
535                    Promise: b.Promise,
536                    defaults: {
537                        queue: "",
538                        duration: r,
539                        easing: s,
540                        begin: d,
541                        complete: d,
542                        progress: d,
543                        display: d,
544                        visibility: d,
545                        loop: !1,
546                        delay: !1,
547                        mobileHA: !0,
548                        _cacheValues: !0
549                    },
550                    init: function(a) {
551                        m.data(a, "velocity", {
552                            isSVG: p.isSVG(a),
553                            isAnimating: !1,
554                            computedStyle: null,
555                            tweensContainer: null,
556                            rootPropertyValueCache: {},
557                            transformCache: {}
558                        })
559                    },
560                    hook: null,
561                    mock: !1,
562                    version: {
563                        major: 1,
564                        minor: 2,
565                        patch: 2
566                    },
567                    debug: !1
568                };
569            b.pageYOffset !== d ? (t.State.scrollAnchor = b, t.State.scrollPropertyLeft = "pageXOffset", t.State.scrollPropertyTop = "pageYOffset") : (t.State.scrollAnchor = c.documentElement || c.body.parentNode || c.body, t.State.scrollPropertyLeft = "scrollLeft", t.State.scrollPropertyTop = "scrollTop");
570            var u = function() {
571                function a(a) {
572                    return -a.tension * a.x - a.friction * a.v
573                }
574
575                function b(b, c, d) {
576                    var e = {
577                        x: b.x + d.dx * c,
578                        v: b.v + d.dv * c,
579                        tension: b.tension,
580                        friction: b.friction
581                    };
582                    return {
583                        dx: e.v,
584                        dv: a(e)
585                    }
586                }
587
588                function c(c, d) {
589                    var e = {
590                            dx: c.v,
591                            dv: a(c)
592                        },
593                        f = b(c, .5 * d, e),
594                        g = b(c, .5 * d, f),
595                        h = b(c, d, g),
596                        i = 1 / 6 * (e.dx + 2 * (f.dx + g.dx) + h.dx),
597                        j = 1 / 6 * (e.dv + 2 * (f.dv + g.dv) + h.dv);
598                    return c.x = c.x + i * d, c.v = c.v + j * d, c
599                }
600                return function a(b, d, e) {
601                    var f, g, h, i = {
602                            x: -1,
603                            v: 0,
604                            tension: null,
605                            friction: null
606                        },
607                        j = [0],
608                        k = 0;
609                    for (b = parseFloat(b) || 500, d = parseFloat(d) || 20, e = e || null, i.tension = b, i.friction = d, f = null !== e, f ? (k = a(b, d), g = k / e * .016) : g = .016; h = c(h || i, g), j.push(1 + h.x), k += 16, Math.abs(h.x) > 1e-4 && Math.abs(h.v) > 1e-4;);
610                    return f ? function(a) {
611                        return j[a * (j.length - 1) | 0]
612                    } : k
613                }
614            }();
615            t.Easings = {
616                linear: function(a) {
617                    return a
618                },
619                swing: function(a) {
620                    return .5 - Math.cos(a * Math.PI) / 2
621                },
622                spring: function(a) {
623                    return 1 - Math.cos(4.5 * a * Math.PI) * Math.exp(6 * -a)
624                }
625            }, m.each([
626                ["ease", [.25, .1, .25, 1]],
627                ["ease-in", [.42, 0, 1, 1]],
628                ["ease-out", [0, 0, .58, 1]],
629                ["ease-in-out", [.42, 0, .58, 1]],
630                ["easeInSine", [.47, 0, .745, .715]],
631                ["easeOutSine", [.39, .575, .565, 1]],
632                ["easeInOutSine", [.445, .05, .55, .95]],
633                ["easeInQuad", [.55, .085, .68, .53]],
634                ["easeOutQuad", [.25, .46, .45, .94]],
635                ["easeInOutQuad", [.455, .03, .515, .955]],
636                ["easeInCubic", [.55, .055, .675, .19]],
637                ["easeOutCubic", [.215, .61, .355, 1]],
638                ["easeInOutCubic", [.645, .045, .355, 1]],
639                ["easeInQuart", [.895, .03, .685, .22]],
640                ["easeOutQuart", [.165, .84, .44, 1]],
641                ["easeInOutQuart", [.77, 0, .175, 1]],
642                ["easeInQuint", [.755, .05, .855, .06]],
643                ["easeOutQuint", [.23, 1, .32, 1]],
644                ["easeInOutQuint", [.86, 0, .07, 1]],
645                ["easeInExpo", [.95, .05, .795, .035]],
646                ["easeOutExpo", [.19, 1, .22, 1]],
647                ["easeInOutExpo", [1, 0, 0, 1]],
648                ["easeInCirc", [.6, .04, .98, .335]],
649                ["easeOutCirc", [.075, .82, .165, 1]],
650                ["easeInOutCirc", [.785, .135, .15, .86]]
651            ], function(a, b) {
652                t.Easings[b[0]] = i.apply(null, b[1])
653            });
654            var v = t.CSS = {
655                RegEx: {
656                    isHex: /^#([A-f\d]{3}){1,2}$/i,
657                    valueUnwrap: /^[A-z]+\((.*)\)$/i,
658                    wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,
659                    valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi
660                },
661                Lists: {
662                    colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"],
663                    transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"],
664                    transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"]
665                },
666                Hooks: {
667                    templates: {
668                        textShadow: ["Color X Y Blur", "black 0px 0px 0px"],
669                        boxShadow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"],
670                        clip: ["Top Right Bottom Left", "0px 0px 0px 0px"],
671                        backgroundPosition: ["X Y", "0% 0%"],
672                        transformOrigin: ["X Y Z", "50% 50% 0px"],
673                        perspectiveOrigin: ["X Y", "50% 50%"]
674                    },
675                    registered: {},
676                    register: function() {
677                        for (var a = 0; a < v.Lists.colors.length; a++) {
678                            var b = "color" === v.Lists.colors[a] ? "0 0 0 1" : "255 255 255 1";
679                            v.Hooks.templates[v.Lists.colors[a]] = ["Red Green Blue Alpha", b]
680                        }
681                        var c, d, e;
682                        if (n)
683                            for (c in v.Hooks.templates) {
684                                d = v.Hooks.templates[c], e = d[0].split(" ");
685                                var f = d[1].match(v.RegEx.valueSplit);
686                                "Color" === e[0] && (e.push(e.shift()), f.push(f.shift()), v.Hooks.templates[c] = [e.join(" "), f.join(" ")])
687                            }
688                        for (c in v.Hooks.templates) {
689                            d = v.Hooks.templates[c], e = d[0].split(" ");
690                            for (var a in e) {
691                                var g = c + e[a],
692                                    h = a;
693                                v.Hooks.registered[g] = [c, h]
694                            }
695                        }
696                    },
697                    getRoot: function(a) {
698                        var b = v.Hooks.registered[a];
699                        return b ? b[0] : a
700                    },
701                    cleanRootPropertyValue: function(a, b) {
702                        return v.RegEx.valueUnwrap.test(b) && (b = b.match(v.RegEx.valueUnwrap)[1]), v.Values.isCSSNullValue(b) && (b = v.Hooks.templates[a][1]), b
703                    },
704                    extractValue: function(a, b) {
705                        var c = v.Hooks.registered[a];
706                        if (c) {
707                            var d = c[0],
708                                e = c[1];
709                            return b = v.Hooks.cleanRootPropertyValue(d, b), b.toString().match(v.RegEx.valueSplit)[e]
710                        }
711                        return b
712                    },
713                    injectValue: function(a, b, c) {
714                        var d = v.Hooks.registered[a];
715                        if (d) {
716                            var e, f = d[0],
717                                g = d[1];
718                            return c = v.Hooks.cleanRootPropertyValue(f, c), e = c.toString().match(v.RegEx.valueSplit), e[g] = b, e.join(" ")
719                        }
720                        return c
721                    }
722                },
723                Normalizations: {
724                    registered: {
725                        clip: function(a, b, c) {
726                            switch (a) {
727                                case "name":
728                                    return "clip";
729                                case "extract":
730                                    var d;
731                                    return v.RegEx.wrappedValueAlreadyExtracted.test(c) ? d = c : (d = c.toString().match(v.RegEx.valueUnwrap), d = d ? d[1].replace(/,(\s+)?/g, " ") : c), d;
732                                case "inject":
733                                    return "rect(" + c + ")"
734                            }
735                        },
736                        blur: function(a, b, c) {
737                            switch (a) {
738                                case "name":
739                                    return t.State.isFirefox ? "filter" : "-webkit-filter";
740                                case "extract":
741                                    var d = parseFloat(c);
742                                    if (!d && 0 !== d) {
743                                        var e = c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);
744                                        d = e ? e[1] : 0
745                                    }
746                                    return d;
747                                case "inject":
748                                    return parseFloat(c) ? "blur(" + c + ")" : "none"
749                            }
750                        },
751                        opacity: function(a, b, c) {
752                            if (8 >= n) switch (a) {
753                                case "name":
754                                    return "filter";
755                                case "extract":
756                                    var d = c.toString().match(/alpha\(opacity=(.*)\)/i);
757                                    return c = d ? d[1] / 100 : 1;
758                                case "inject":
759                                    return b.style.zoom = 1, parseFloat(c) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(c), 10) + ")"
760                            } else switch (a) {
761                                case "name":
762                                    return "opacity";
763                                case "extract":
764                                case "inject":
765                                    return c
766                            }
767                        }
768                    },
769                    register: function() {
770                        9 >= n || t.State.isGingerbread || (v.Lists.transformsBase = v.Lists.transformsBase.concat(v.Lists.transforms3D));
771                        for (var a = 0; a < v.Lists.transformsBase.length; a++) ! function() {
772                            var b = v.Lists.transformsBase[a];
773                            v.Normalizations.registered[b] = function(a, c, e) {
774                                switch (a) {
775                                    case "name":
776                                        return "transform";
777                                    case "extract":
778                                        return g(c) === d || g(c).transformCache[b] === d ? /^scale/i.test(b) ? 1 : 0 : g(c).transformCache[b].replace(/[()]/g, "");
779                                    case "inject":
780                                        var f = !1;
781                                        switch (b.substr(0, b.length - 1)) {
782                                            case "translate":
783                                                f = !/(%|px|em|rem|vw|vh|\d)$/i.test(e);
784                                                break;
785                                            case "scal":
786                                            case "scale":
787                                                t.State.isAndroid && g(c).transformCache[b] === d && 1 > e && (e = 1), f = !/(\d)$/i.test(e);
788                                                break;
789                                            case "skew":
790                                                f = !/(deg|\d)$/i.test(e);
791                                                break;
792                                            case "rotate":
793                                                f = !/(deg|\d)$/i.test(e)
794                                        }
795                                        return f || (g(c).transformCache[b] = "(" + e + ")"), g(c).transformCache[b]
796                                }
797                            }
798                        }();
799                        for (var a = 0; a < v.Lists.colors.length; a++) ! function() {
800                            var b = v.Lists.colors[a];
801                            v.Normalizations.registered[b] = function(a, c, e) {
802                                switch (a) {
803                                    case "name":
804                                        return b;
805                                    case "extract":
806                                        var f;
807                                        if (v.RegEx.wrappedValueAlreadyExtracted.test(e)) f = e;
808                                        else {
809                                            var g, h = {
810                                                black: "rgb(0, 0, 0)",
811                                                blue: "rgb(0, 0, 255)",
812                                                gray: "rgb(128, 128, 128)",
813                                                green: "rgb(0, 128, 0)",
814                                                red: "rgb(255, 0, 0)",
815                                                white: "rgb(255, 255, 255)"
816                                            };
817                                            /^[A-z]+$/i.test(e) ? g = h[e] !== d ? h[e] : h.black : v.RegEx.isHex.test(e) ? g = "rgb(" + v.Values.hexToRgb(e).join(" ") + ")" : /^rgba?\(/i.test(e) || (g = h.black), f = (g || e).toString().match(v.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " ")
818                                        }
819                                        return 8 >= n || 3 !== f.split(" ").length || (f += " 1"), f;
820                                    case "inject":
821                                        return 8 >= n ? 4 === e.split(" ").length && (e = e.split(/\s+/).slice(0, 3).join(" ")) : 3 === e.split(" ").length && (e += " 1"), (8 >= n ? "rgb" : "rgba") + "(" + e.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")"
822                                }
823                            }
824                        }()
825                    }
826                },
827                Names: {
828                    camelCase: function(a) {
829                        return a.replace(/-(\w)/g, function(a, b) {
830                            return b.toUpperCase()
831                        })
832                    },
833                    SVGAttribute: function(a) {
834                        var b = "width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";
835                        return (n || t.State.isAndroid && !t.State.isChrome) && (b += "|transform"), new RegExp("^(" + b + ")$", "i").test(a)
836                    },
837                    prefixCheck: function(a) {
838                        if (t.State.prefixMatches[a]) return [t.State.prefixMatches[a], !0];
839                        for (var b = ["", "Webkit", "Moz", "ms", "O"], c = 0, d = b.length; d > c; c++) {
840                            var e;
841                            if (e = 0 === c ? a : b[c] + a.replace(/^\w/, function(a) {
842                                    return a.toUpperCase()
843                                }), p.isString(t.State.prefixElement.style[e])) return t.State.prefixMatches[a] = e, [e, !0]
844                        }
845                        return [a, !1]
846                    }
847                },
848                Values: {
849                    hexToRgb: function(a) {
850                        var b, c = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;
851                        return a = a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function(a, b, c, d) {
852                            return b + b + c + c + d + d
853                        }), b = c.exec(a), b ? [parseInt(b[1], 16), parseInt(b[2], 16), parseInt(b[3], 16)] : [0, 0, 0]
854                    },
855                    isCSSNullValue: function(a) {
856                        return 0 == a || /^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)
857                    },
858                    getUnitType: function(a) {
859                        return /^(rotate|skew)/i.test(a) ? "deg" : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a) ? "" : "px"
860                    },
861                    getDisplayType: function(a) {
862                        var b = a && a.tagName.toString().toLowerCase();
863                        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(b) ? "inline" : /^(li)$/i.test(b) ? "list-item" : /^(tr)$/i.test(b) ? "table-row" : /^(table)$/i.test(b) ? "table" : /^(tbody)$/i.test(b) ? "table-row-group" : "block"
864                    },
865                    addClass: function(a, b) {
866                        a.classList ? a.classList.add(b) : a.className += (a.className.length ? " " : "") + b
867                    },
868                    removeClass: function(a, b) {
869                        a.classList ? a.classList.remove(b) : a.className = a.className.toString().replace(new RegExp("(^|\\s)" + b.split(" ").join("|") + "(\\s|$)", "gi"), " ")
870                    }
871                },
872                getPropertyValue: function(a, c, e, f) {
873                    function h(a, c) {
874                        function e() {
875                            j && v.setPropertyValue(a, "display", "none")
876                        }
877                        var i = 0;
878                        if (8 >= n) i = m.css(a, c);
879                        else {
880                            var j = !1;
881                            if (/^(width|height)$/.test(c) && 0 === v.getPropertyValue(a, "display") && (j = !0, v.setPropertyValue(a, "display", v.Values.getDisplayType(a))), !f) {
882                                if ("height" === c && "border-box" !== v.getPropertyValue(a, "boxSizing").toString().toLowerCase()) {
883                                    var k = a.offsetHeight - (parseFloat(v.getPropertyValue(a, "borderTopWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "borderBottomWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingTop")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingBottom")) || 0);
884                                    return e(), k
885                                }
886                                if ("width" === c && "border-box" !== v.getPropertyValue(a, "boxSizing").toString().toLowerCase()) {
887                                    var l = a.offsetWidth - (parseFloat(v.getPropertyValue(a, "borderLeftWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "borderRightWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingLeft")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingRight")) || 0);
888                                    return e(), l
889                                }
890                            }
891                            var o;
892                            o = g(a) === d ? b.getComputedStyle(a, null) : g(a).computedStyle ? g(a).computedStyle : g(a).computedStyle = b.getComputedStyle(a, null), "borderColor" === c && (c = "borderTopColor"), i = 9 === n && "filter" === c ? o.getPropertyValue(c) : o[c], ("" === i || null === i) && (i = a.style[c]), e()
893                        }
894                        if ("auto" === i && /^(top|right|bottom|left)$/i.test(c)) {
895                            var p = h(a, "position");
896                            ("fixed" === p || "absolute" === p && /top|left/i.test(c)) && (i = m(a).position()[c] + "px")
897                        }
898                        return i
899                    }
900                    var i;
901                    if (v.Hooks.registered[c]) {
902                        var j = c,
903                            k = v.Hooks.getRoot(j);
904                        e === d && (e = v.getPropertyValue(a, v.Names.prefixCheck(k)[0])), v.Normalizations.registered[k] && (e = v.Normalizations.registered[k]("extract", a, e)), i = v.Hooks.extractValue(j, e)
905                    } else if (v.Normalizations.registered[c]) {
906                        var l, o;
907                        l = v.Normalizations.registered[c]("name", a), "transform" !== l && (o = h(a, v.Names.prefixCheck(l)[0]), v.Values.isCSSNullValue(o) && v.Hooks.templates[c] && (o = v.Hooks.templates[c][1])), i = v.Normalizations.registered[c]("extract", a, o)
908                    }
909                    if (!/^[\d-]/.test(i))
910                        if (g(a) && g(a).isSVG && v.Names.SVGAttribute(c))
911                            if (/^(height|width)$/i.test(c)) try {
912                                i = a.getBBox()[c]
913                            } catch (a) {
914                                i = 0
915                            } else i = a.getAttribute(c);
916                            else i = h(a, v.Names.prefixCheck(c)[0]);
917                    return v.Values.isCSSNullValue(i) && (i = 0), t.debug >= 2 && console.log("Get " + c + ": " + i), i
918                },
919                setPropertyValue: function(a, c, d, e, f) {
920                    var h = c;
921                    if ("scroll" === c) f.container ? f.container["scroll" + f.direction] = d : "Left" === f.direction ? b.scrollTo(d, f.alternateValue) : b.scrollTo(f.alternateValue, d);
922                    else if (v.Normalizations.registered[c] && "transform" === v.Normalizations.registered[c]("name", a)) v.Normalizations.registered[c]("inject", a, d), h = "transform", d = g(a).transformCache[c];
923                    else {
924                        if (v.Hooks.registered[c]) {
925                            var i = c,
926                                j = v.Hooks.getRoot(c);
927                            e = e || v.getPropertyValue(a, j), d = v.Hooks.injectValue(i, d, e), c = j
928                        }
929                        if (v.Normalizations.registered[c] && (d = v.Normalizations.registered[c]("inject", a, d), c = v.Normalizations.registered[c]("name", a)), h = v.Names.prefixCheck(c)[0], 8 >= n) try {
930                            a.style[h] = d
931                        } catch (a) {
932                            t.debug && console.log("Browser does not support [" + d + "] for [" + h + "]")
933                        } else g(a) && g(a).isSVG && v.Names.SVGAttribute(c) ? a.setAttribute(c, d) : a.style[h] = d;
934                        t.debug >= 2 && console.log("Set " + c + " (" + h + "): " + d)
935                    }
936                    return [h, d]
937                },
938                flushTransformCache: function(a) {
939                    function b(b) {
940                        return parseFloat(v.getPropertyValue(a, b))
941                    }
942                    var c = "";
943                    if ((n || t.State.isAndroid && !t.State.isChrome) && g(a).isSVG) {
944                        var d = {
945                            translate: [b("translateX"), b("translateY")],
946                            skewX: [b("skewX")],
947                            skewY: [b("skewY")],
948                            scale: 1 !== b("scale") ? [b("scale"), b("scale")] : [b("scaleX"), b("scaleY")],
949                            rotate: [b("rotateZ"), 0, 0]
950                        };
951                        m.each(g(a).transformCache, function(a) {
952                            /^translate/i.test(a) ? a = "translate" : /^scale/i.test(a) ? a = "scale" : /^rotate/i.test(a) && (a = "rotate"), d[a] && (c += a + "(" + d[a].join(" ") + ") ", delete d[a])
953                        })
954                    } else {
955                        var e, f;
956                        m.each(g(a).transformCache, function(b) {
957                            return e = g(a).transformCache[b], "transformPerspective" === b ? (f = e, !0) : (9 === n && "rotateZ" === b && (b = "rotate"), void(c += b + e + " "))
958                        }), f && (c = "perspective" + f + " " + c)
959                    }
960                    v.setPropertyValue(a, "transform", c)
961                }
962            };
963            v.Hooks.register(), v.Normalizations.register(), t.hook = function(a, b, c) {
964                var e = d;
965                return a = f(a), m.each(a, function(a, f) {
966                    if (g(f) === d && t.init(f), c === d) e === d && (e = t.CSS.getPropertyValue(f, b));
967                    else {
968                        var h = t.CSS.setPropertyValue(f, b, c);
969                        "transform" === h[0] && t.CSS.flushTransformCache(f), e = h
970                    }
971                }), e
972            };
973            var w = function() {
974                function a() {
975                    return h ? B.promise || null : i
976                }
977
978                function e() {
979                    function a(a) {
980                        function l(a, b) {
981                            var c = d,
982                                e = d,
983                                g = d;
984                            return p.isArray(a) ? (c = a[0], !p.isArray(a[1]) && /^[\d-]/.test(a[1]) || p.isFunction(a[1]) || v.RegEx.isHex.test(a[1]) ? g = a[1] : (p.isString(a[1]) && !v.RegEx.isHex.test(a[1]) || p.isArray(a[1])) && (e = b ? a[1] : j(a[1], h.duration), a[2] !== d && (g = a[2]))) : c = a, b || (e = e || h.easing), p.isFunction(c) && (c = c.call(f, y, x)), p.isFunction(g) && (g = g.call(f, y, x)), [c || 0, e, g]
985                        }
986
987                        function n(a, b) {
988                            var c, d;
989                            return d = (b || "0").toString().toLowerCase().replace(/[%A-z]+$/, function(a) {
990                                return c = a, ""
991                            }), c || (c = v.Values.getUnitType(a)), [d, c]
992                        }
993                        if (h.begin && 0 === y) try {
994                            h.begin.call(o, o)
995                        } catch (a) {
996                            setTimeout(function() {
997                                throw a
998                            }, 1)
999                        }
1000                        if ("scroll" === C) {
1001                            var r, u, w, z = /^x$/i.test(h.axis) ? "Left" : "Top",
1002                                A = parseFloat(h.offset) || 0;
1003                            h.container ? p.isWrapped(h.container) || p.isNode(h.container) ? (h.container = h.container[0] || h.container, r = h.container["scroll" + z], w = r + m(f).position()[z.toLowerCase()] + A) : h.container = null : (r = t.State.scrollAnchor[t.State["scrollProperty" + z]], u = t.State.scrollAnchor[t.State["scrollProperty" + ("Left" === z ? "Top" : "Left")]], w = m(f).offset()[z.toLowerCase()] + A), i = {
1004                                scroll: {
1005                                    rootPropertyValue: !1,
1006                                    startValue: r,
1007                                    currentValue: r,
1008                                    endValue: w,
1009                                    unitType: "",
1010                                    easing: h.easing,
1011                                    scrollData: {
1012                                        container: h.container,
1013                                        direction: z,
1014                                        alternateValue: u
1015                                    }
1016                                },
1017                                element: f
1018                            }, t.debug && console.log("tweensContainer (scroll): ", i.scroll, f)
1019                        } else if ("reverse" === C) {
1020                            if (!g(f).tweensContainer) return void m.dequeue(f, h.queue);
1021                            "none" === g(f).opts.display && (g(f).opts.display = "auto"), "hidden" === g(f).opts.visibility && (g(f).opts.visibility = "visible"), g(f).opts.loop = !1, g(f).opts.begin = null, g(f).opts.complete = null, s.easing || delete h.easing, s.duration || delete h.duration, h = m.extend({}, g(f).opts, h);
1022                            var D = m.extend(!0, {}, g(f).tweensContainer);
1023                            for (var E in D)
1024                                if ("element" !== E) {
1025                                    var F = D[E].startValue;
1026                                    D[E].startValue = D[E].currentValue = D[E].endValue, D[E].endValue = F, p.isEmptyObject(s) || (D[E].easing = h.easing), t.debug && console.log("reverse tweensContainer (" + E + "): " + JSON.stringify(D[E]), f)
1027                                } i = D
1028                        } else if ("start" === C) {
1029                            var D;
1030                            g(f).tweensContainer && !0 === g(f).isAnimating && (D = g(f).tweensContainer), m.each(q, function(a, b) {
1031                                if (RegExp("^" + v.Lists.colors.join("$|^") + "$").test(a)) {
1032                                    var c = l(b, !0),
1033                                        e = c[0],
1034                                        f = c[1],
1035                                        g = c[2];
1036                                    if (v.RegEx.isHex.test(e)) {
1037                                        for (var h = ["Red", "Green", "Blue"], i = v.Values.hexToRgb(e), j = g ? v.Values.hexToRgb(g) : d, k = 0; k < h.length; k++) {
1038                                            var m = [i[k]];
1039                                            f && m.push(f), j !== d && m.push(j[k]), q[a + h[k]] = m
1040                                        }
1041                                        delete q[a]
1042                                    }
1043                                }
1044                            });
1045                            for (var G in q) {
1046                                var H = l(q[G]),
1047                                    K = H[0],
1048                                    L = H[1],
1049                                    M = H[2];
1050                                G = v.Names.camelCase(G);
1051                                var N = v.Hooks.getRoot(G),
1052                                    O = !1;
1053                                if (g(f).isSVG || "tween" === N || !1 !== v.Names.prefixCheck(N)[1] || v.Normalizations.registered[N] !== d) {
1054                                    (h.display !== d && null !== h.display && "none" !== h.display || h.visibility !== d && "hidden" !== h.visibility) && /opacity|filter/.test(G) && !M && 0 !== K && (M = 0), h._cacheValues && D && D[G] ? (M === d && (M = D[G].endValue + D[G].unitType), O = g(f).rootPropertyValueCache[N]) : v.Hooks.registered[G] ? M === d ? (O = v.getPropertyValue(f, N), M = v.getPropertyValue(f, G, O)) : O = v.Hooks.templates[N][1] : M === d && (M = v.getPropertyValue(f, G));
1055                                    var P, Q, R, S = !1;
1056                                    if (P = n(G, M), M = P[0], R = P[1], P = n(G, K), K = P[0].replace(/^([+-\/*])=/, function(a, b) {
1057                                            return S = b, ""
1058                                        }), Q = P[1], M = parseFloat(M) || 0, K = parseFloat(K) || 0, "%" === Q && (/^(fontSize|lineHeight)$/.test(G) ? (K /= 100, Q = "em") : /^scale/.test(G) ? (K /= 100, Q = "") : /(Red|Green|Blue)$/i.test(G) && (K = K / 100 * 255, Q = "")), /[\/*]/.test(S)) Q = R;
1059                                    else if (R !== Q && 0 !== M)
1060                                        if (0 === K) Q = R;
1061                                        else {
1062                                            e = e || function() {
1063                                                var a = {
1064                                                        myParent: f.parentNode || c.body,
1065                                                        position: v.getPropertyValue(f, "position"),
1066                                                        fontSize: v.getPropertyValue(f, "fontSize")
1067                                                    },
1068                                                    d = a.position === I.lastPosition && a.myParent === I.lastParent,
1069                                                    e = a.fontSize === I.lastFontSize;
1070                                                I.lastParent = a.myParent, I.lastPosition = a.position, I.lastFontSize = a.fontSize;
1071                                                var h = 100,
1072                                                    i = {};
1073                                                if (e && d) i.emToPx = I.lastEmToPx, i.percentToPxWidth = I.lastPercentToPxWidth, i.percentToPxHeight = I.lastPercentToPxHeight;
1074                                                else {
1075                                                    var j = g(f).isSVG ? c.createElementNS("http://www.w3.org/2000/svg", "rect") : c.createElement("div");
1076                                                    t.init(j), a.myParent.appendChild(j), m.each(["overflow", "overflowX", "overflowY"], function(a, b) {
1077                                                        t.CSS.setPropertyValue(j, b, "hidden")
1078                                                    }), t.CSS.setPropertyValue(j, "position", a.position), t.CSS.setPropertyValue(j, "fontSize", a.fontSize), t.CSS.setPropertyValue(j, "boxSizing", "content-box"), m.each(["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], function(a, b) {
1079                                                        t.CSS.setPropertyValue(j, b, h + "%")
1080                                                    }), t.CSS.setPropertyValue(j, "paddingLeft", h + "em"), i.percentToPxWidth = I.lastPercentToPxWidth = (parseFloat(v.getPropertyValue(j, "width", null, !0)) || 1) / h, i.percentToPxHeight = I.lastPercentToPxHeight = (parseFloat(v.getPropertyValue(j, "height", null, !0)) || 1) / h, i.emToPx = I.lastEmToPx = (parseFloat(v.getPropertyValue(j, "paddingLeft")) || 1) / h, a.myParent.removeChild(j)
1081                                                }
1082                                                return null === I.remToPx && (I.remToPx = parseFloat(v.getPropertyValue(c.body, "fontSize")) || 16), null === I.vwToPx && (I.vwToPx = parseFloat(b.innerWidth) / 100, I.vhToPx = parseFloat(b.innerHeight) / 100), i.remToPx = I.remToPx, i.vwToPx = I.vwToPx, i.vhToPx = I.vhToPx, t.debug >= 1 && console.log("Unit ratios: " + JSON.stringify(i), f), i
1083                                            }();
1084                                            var T = /margin|padding|left|right|width|text|word|letter/i.test(G) || /X$/.test(G) || "x" === G ? "x" : "y";
1085                                            switch (R) {
1086                                                case "%":
1087                                                    M *= "x" === T ? e.percentToPxWidth : e.percentToPxHeight;
1088                                                    break;
1089                                                case "px":
1090                                                    break;
1091                                                default:
1092                                                    M *= e[R + "ToPx"]
1093                                            }
1094                                            switch (Q) {
1095                                                case "%":
1096                                                    M *= 1 / ("x" === T ? e.percentToPxWidth : e.percentToPxHeight);
1097                                                    break;
1098                                                case "px":
1099                                                    break;
1100                                                default:
1101                                                    M *= 1 / e[Q + "ToPx"]
1102                                            }
1103                                        } switch (S) {
1104                                        case "+":
1105                                            K = M + K;
1106                                            break;
1107                                        case "-":
1108                                            K = M - K;
1109                                            break;
1110                                        case "*":
1111                                            K *= M;
1112                                            break;
1113                                        case "/":
1114                                            K = M / K
1115                                    }
1116                                    i[G] = {
1117                                        rootPropertyValue: O,
1118                                        startValue: M,
1119                                        currentValue: M,
1120                                        endValue: K,
1121                                        unitType: Q,
1122                                        easing: L
1123                                    }, t.debug && console.log("tweensContainer (" + G + "): " + JSON.stringify(i[G]), f)
1124                                } else t.debug && console.log("Skipping [" + N + "] due to a lack of browser support.")
1125                            }
1126                            i.element = f
1127                        }
1128                        i.element && (v.Values.addClass(f, "velocity-animating"), J.push(i), "" === h.queue && (g(f).tweensContainer = i, g(f).opts = h), g(f).isAnimating = !0, y === x - 1 ? (t.State.calls.push([J, o, h, null, B.resolver]), !1 === t.State.isTicking && (t.State.isTicking = !0, k())) : y++)
1129                    }
1130                    var e, f = this,
1131                        h = m.extend({}, t.defaults, s),
1132                        i = {};
1133                    switch (g(f) === d && t.init(f), parseFloat(h.delay) && !1 !== h.queue && m.queue(f, h.queue, function(a) {
1134                            t.velocityQueueEntryFlag = !0, g(f).delayTimer = {
1135                                setTimeout: setTimeout(a, parseFloat(h.delay)),
1136                                next: a
1137                            }
1138                        }),
1139                        h.duration.toString().toLowerCase()) {
1140                        case "fast":
1141                            h.duration = 200;
1142                            break;
1143                        case "normal":
1144                            h.duration = r;
1145                            break;
1146                        case "slow":
1147                            h.duration = 600;
1148                            break;
1149                        default:
1150                            h.duration = parseFloat(h.duration) || 1
1151                    }!1 !== t.mock && (!0 === t.mock ? h.duration = h.delay = 1 : (h.duration *= parseFloat(t.mock) || 1, h.delay *= parseFloat(t.mock) || 1)), h.easing = j(h.easing, h.duration), h.begin && !p.isFunction(h.begin) && (h.begin = null), h.progress && !p.isFunction(h.progress) && (h.progress = null), h.complete && !p.isFunction(h.complete) && (h.complete = null), h.display !== d && null !== h.display && (h.display = h.display.toString().toLowerCase(), "auto" === h.display && (h.display = t.CSS.Values.getDisplayType(f))), h.visibility !== d && null !== h.visibility && (h.visibility = h.visibility.toString().toLowerCase()), h.mobileHA = h.mobileHA && t.State.isMobile && !t.State.isGingerbread, !1 === h.queue ? h.delay ? setTimeout(a, h.delay) : a() : m.queue(f, h.queue, function(b, c) {
1152                        return !0 === c ? (B.promise && B.resolver(o), !0) : (t.velocityQueueEntryFlag = !0, void a(b))
1153                    }), "" !== h.queue && "fx" !== h.queue || "inprogress" === m.queue(f)[0] || m.dequeue(f)
1154                }
1155                var h, i, n, o, q, s, u = arguments[0] && (arguments[0].p || m.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || p.isString(arguments[0].properties));
1156                if (p.isWrapped(this) ? (h = !1, n = 0, o = this, i = this) : (h = !0, n = 1, o = u ? arguments[0].elements || arguments[0].e : arguments[0]), o = f(o)) {
1157                    u ? (q = arguments[0].properties || arguments[0].p, s = arguments[0].options || arguments[0].o) : (q = arguments[n], s = arguments[n + 1]);
1158                    var x = o.length,
1159                        y = 0;
1160                    if (!/^(stop|finish)$/i.test(q) && !m.isPlainObject(s)) {
1161                        var z = n + 1;
1162                        s = {};
1163                        for (var A = z; A < arguments.length; A++) p.isArray(arguments[A]) || !/^(fast|normal|slow)$/i.test(arguments[A]) && !/^\d/.test(arguments[A]) ? p.isString(arguments[A]) || p.isArray(arguments[A]) ? s.easing = arguments[A] : p.isFunction(arguments[A]) && (s.complete = arguments[A]) : s.duration = arguments[A]
1164                    }
1165                    var B = {
1166                        promise: null,
1167                        resolver: null,
1168                        rejecter: null
1169                    };
1170                    h && t.Promise && (B.promise = new t.Promise(function(a, b) {
1171                        B.resolver = a, B.rejecter = b
1172                    }));
1173                    var C;
1174                    switch (q) {
1175                        case "scroll":
1176                            C = "scroll";
1177                            break;
1178                        case "reverse":
1179                            C = "reverse";
1180                            break;
1181                        case "finish":
1182                        case "stop":
1183                            m.each(o, function(a, b) {
1184                                g(b) && g(b).delayTimer && (clearTimeout(g(b).delayTimer.setTimeout), g(b).delayTimer.next && g(b).delayTimer.next(), delete g(b).delayTimer)
1185                            });
1186                            var D = [];
1187                            return m.each(t.State.calls, function(a, b) {
1188                                b && m.each(b[1], function(c, e) {
1189                                    var f = s === d ? "" : s;
1190                                    return !0 !== f && b[2].queue !== f && (s !== d || !1 !== b[2].queue) || void m.each(o, function(c, d) {
1191                                        d === e && ((!0 === s || p.isString(s)) && (m.each(m.queue(d, p.isString(s) ? s : ""), function(a, b) {
1192                                            p.isFunction(b) && b(null, !0)
1193                                        }), m.queue(d, p.isString(s) ? s : "", [])), "stop" === q ? (g(d) && g(d).tweensContainer && !1 !== f && m.each(g(d).tweensContainer, function(a, b) {
1194                                            b.endValue = b.currentValue
1195                                        }), D.push(a)) : "finish" === q && (b[2].duration = 1))
1196                                    })
1197                                })
1198                            }), "stop" === q && (m.each(D, function(a, b) {
1199                                l(b, !0)
1200                            }), B.promise && B.resolver(o)), a();
1201                        default:
1202                            if (!m.isPlainObject(q) || p.isEmptyObject(q)) {
1203                                if (p.isString(q) && t.Redirects[q]) {
1204                                    var E = m.extend({}, s),
1205                                        F = E.duration,
1206                                        G = E.delay || 0;
1207                                    return !0 === E.backwards && (o = m.extend(!0, [], o).reverse()), m.each(o, function(a, b) {
1208                                        parseFloat(E.stagger) ? E.delay = G + parseFloat(E.stagger) * a : p.isFunction(E.stagger) && (E.delay = G + E.stagger.call(b, a, x)), E.drag && (E.duration = parseFloat(F) || (/^(callout|transition)/.test(q) ? 1e3 : r), E.duration = Math.max(E.duration * (E.backwards ? 1 - a / x : (a + 1) / x), .75 * E.duration, 200)), t.Redirects[q].call(b, b, E || {}, a, x, o, B.promise ? B : d)
1209                                    }), a()
1210                                }
1211                                var H = "Velocity: First argument (" + q + ") was not a property map, a known action, or a registered redirect. Aborting.";
1212                                return B.promise ? B.rejecter(new Error(H)) : console.log(H), a()
1213                            }
1214                            C = "start"
1215                    }
1216                    var I = {
1217                            lastParent: null,
1218                            lastPosition: null,
1219                            lastFontSize: null,
1220                            lastPercentToPxWidth: null,
1221                            lastPercentToPxHeight: null,
1222                            lastEmToPx: null,
1223                            remToPx: null,
1224                            vwToPx: null,
1225                            vhToPx: null
1226                        },
1227                        J = [];
1228                    m.each(o, function(a, b) {
1229                        p.isNode(b) && e.call(b)
1230                    });
1231                    var K, E = m.extend({}, t.defaults, s);
1232                    if (E.loop = parseInt(E.loop), K = 2 * E.loop - 1, E.loop)
1233                        for (var L = 0; K > L; L++) {
1234                            var M = {
1235                                delay: E.delay,
1236                                progress: E.progress
1237                            };
1238                            L === K - 1 && (M.display = E.display, M.visibility = E.visibility, M.complete = E.complete), w(o, "reverse", M)
1239                        }
1240                    return a()
1241                }
1242            };
1243            t = m.extend(w, t), t.animate = w;
1244            var x = b.requestAnimationFrame || o;
1245            return t.State.isMobile || c.hidden === d || c.addEventListener("visibilitychange", function() {
1246                c.hidden ? (x = function(a) {
1247                    return setTimeout(function() {
1248                        a(!0)
1249                    }, 16)
1250                }, k()) : x = b.requestAnimationFrame || o
1251            }), a.Velocity = t, a !== b && (a.fn.velocity = w, a.fn.velocity.defaults = t.defaults), m.each(["Down", "Up"], function(a, b) {
1252                t.Redirects["slide" + b] = function(a, c, e, f, g, h) {
1253                    var i = m.extend({}, c),
1254                        j = i.begin,
1255                        k = i.complete,
1256                        l = {
1257                            height: "",
1258                            marginTop: "",
1259                            marginBottom: "",
1260                            paddingTop: "",
1261                            paddingBottom: ""
1262                        },
1263                        n = {};
1264                    i.display === d && (i.display = "Down" === b ? "inline" === t.CSS.Values.getDisplayType(a) ? "inline-block" : "block" : "none"), i.begin = function() {
1265                        j && j.call(g, g);
1266                        for (var c in l) {
1267                            n[c] = a.style[c];
1268                            var d = t.CSS.getPropertyValue(a, c);
1269                            l[c] = "Down" === b ? [d, 0] : [0, d]
1270                        }
1271                        n.overflow = a.style.overflow, a.style.overflow = "hidden"
1272                    }, i.complete = function() {
1273                        for (var b in n) a.style[b] = n[b];
1274                        k && k.call(g, g), h && h.resolver(g)
1275                    }, t(a, l, i)
1276                }
1277            }), m.each(["In", "Out"], function(a, b) {
1278                t.Redirects["fade" + b] = function(a, c, e, f, g, h) {
1279                    var i = m.extend({}, c),
1280                        j = {
1281                            opacity: "In" === b ? 1 : 0
1282                        },
1283                        k = i.complete;
1284                    i.complete = e !== f - 1 ? i.begin = null : function() {
1285                        k && k.call(g, g), h && h.resolver(g)
1286                    }, i.display === d && (i.display = "In" === b ? "auto" : "none"), t(this, j, i)
1287                }
1288            }), t
1289        }(window.jQuery || window.Zepto || window, window, document)
1290    })),
1291    function(a, b, c, d) {
1292        "use strict";
1293
1294        function e(a, b, c) {
1295            return setTimeout(k(a, c), b)
1296        }
1297
1298        function f(a, b, c) {
1299            return !!Array.isArray(a) && (g(a, c[b], c), !0)
1300        }
1301
1302        function g(a, b, c) {
1303            var e;
1304            if (a)
vendor: 27,221 bytes, lines 1305-2029
1305                if (a.forEach) a.forEach(b, c);
1306                else if (a.length !== d)
1307                for (e = 0; e < a.length;) b.call(c, a[e], e, a), e++;
1308            else
1309                for (e in a) a.hasOwnProperty(e) && b.call(c, a[e], e, a)
1310        }
1311
1312        function h(a, b, c) {
1313            for (var e = Object.keys(b), f = 0; f < e.length;)(!c || c && a[e[f]] === d) && (a[e[f]] = b[e[f]]), f++;
1314            return a
1315        }
1316
1317        function i(a, b) {
1318            return h(a, b, !0)
1319        }
1320
1321        function j(a, b, c) {
1322            var d, e = b.prototype;
1323            d = a.prototype = Object.create(e), d.constructor = a, d._super = e, c && h(d, c)
1324        }
1325
1326        function k(a, b) {
1327            return function() {
1328                return a.apply(b, arguments)
1329            }
1330        }
1331
1332        function l(a, b) {
1333            return typeof a == ka ? a.apply(b ? b[0] || d : d, b) : a
1334        }
1335
1336        function m(a, b) {
1337            return a === d ? b : a
1338        }
1339
1340        function n(a, b, c) {
1341            g(r(b), function(b) {
1342                a.addEventListener(b, c, !1)
1343            })
1344        }
1345
1346        function o(a, b, c) {
1347            g(r(b), function(b) {
1348                a.removeEventListener(b, c, !1)
1349            })
1350        }
1351
1352        function p(a, b) {
1353            for (; a;) {
1354                if (a == b) return !0;
1355                a = a.parentNode
1356            }
1357            return !1
1358        }
1359
1360        function q(a, b) {
1361            return a.indexOf(b) > -1
1362        }
1363
1364        function r(a) {
1365            return a.trim().split(/\s+/g)
1366        }
1367
1368        function s(a, b, c) {
1369            if (a.indexOf && !c) return a.indexOf(b);
1370            for (var d = 0; d < a.length;) {
1371                if (c && a[d][c] == b || !c && a[d] === b) return d;
1372                d++
1373            }
1374            return -1
1375        }
1376
1377        function t(a) {
1378            return Array.prototype.slice.call(a, 0)
1379        }
1380
1381        function u(a, b, c) {
1382            for (var d = [], e = [], f = 0; f < a.length;) {
1383                var g = b ? a[f][b] : a[f];
1384                s(e, g) < 0 && d.push(a[f]), e[f] = g, f++
1385            }
1386            return c && (d = b ? d.sort(function(a, c) {
1387                return a[b] > c[b]
1388            }) : d.sort()), d
1389        }
1390
1391        function v(a, b) {
1392            for (var c, e, f = b[0].toUpperCase() + b.slice(1), g = 0; g < ia.length;) {
1393                if (c = ia[g], (e = c ? c + f : b) in a) return e;
1394                g++
1395            }
1396            return d
1397        }
1398
1399        function w() {
1400            return oa++
1401        }
1402
1403        function x(a) {
1404            var b = a.ownerDocument;
1405            return b.defaultView || b.parentWindow
1406        }
1407
1408        function y(a, b) {
1409            var c = this;
1410            this.manager = a, this.callback = b, this.element = a.element, this.target = a.options.inputTarget, this.domHandler = function(b) {
1411                l(a.options.enable, [a]) && c.handler(b)
1412            }, this.init()
1413        }
1414
1415        function z(a) {
1416            var b = a.options.inputClass;
1417            return new(b || (ra ? N : sa ? Q : qa ? S : M))(a, A)
1418        }
1419
1420        function A(a, b, c) {
1421            var d = c.pointers.length,
1422                e = c.changedPointers.length,
1423                f = b & wa && 0 == d - e,
1424                g = b & (ya | za) && 0 == d - e;
1425            c.isFirst = !!f, c.isFinal = !!g, f && (a.session = {}), c.eventType = b, B(a, c), a.emit("hammer.input", c), a.recognize(c), a.session.prevInput = c
1426        }
1427
1428        function B(a, b) {
1429            var c = a.session,
1430                d = b.pointers,
1431                e = d.length;
1432            c.firstInput || (c.firstInput = E(b)), e > 1 && !c.firstMultiple ? c.firstMultiple = E(b) : 1 === e && (c.firstMultiple = !1);
1433            var f = c.firstInput,
1434                g = c.firstMultiple,
1435                h = g ? g.center : f.center,
1436                i = b.center = F(d);
1437            b.timeStamp = na(), b.deltaTime = b.timeStamp - f.timeStamp, b.angle = J(h, i), b.distance = I(h, i), C(c, b), b.offsetDirection = H(b.deltaX, b.deltaY), b.scale = g ? L(g.pointers, d) : 1, b.rotation = g ? K(g.pointers, d) : 0, D(c, b);
1438            var j = a.element;
1439            p(b.srcEvent.target, j) && (j = b.srcEvent.target), b.target = j
1440        }
1441
1442        function C(a, b) {
1443            var c = b.center,
1444                d = a.offsetDelta || {},
1445                e = a.prevDelta || {},
1446                f = a.prevInput || {};
1447            (b.eventType === wa || f.eventType === ya) && (e = a.prevDelta = {
1448                x: f.deltaX || 0,
1449                y: f.deltaY || 0
1450            }, d = a.offsetDelta = {
1451                x: c.x,
1452                y: c.y
1453            }), b.deltaX = e.x + (c.x - d.x), b.deltaY = e.y + (c.y - d.y)
1454        }
1455
1456        function D(a, b) {
1457            var c, e, f, g, h = a.lastInterval || b,
1458                i = b.timeStamp - h.timeStamp;
1459            if (b.eventType != za && (i > va || h.velocity === d)) {
1460                var j = h.deltaX - b.deltaX,
1461                    k = h.deltaY - b.deltaY,
1462                    l = G(i, j, k);
1463                e = l.x, f = l.y, c = ma(l.x) > ma(l.y) ? l.x : l.y, g = H(j, k), a.lastInterval = b
1464            } else c = h.velocity, e = h.velocityX, f = h.velocityY, g = h.direction;
1465            b.velocity = c, b.velocityX = e, b.velocityY = f, b.direction = g
1466        }
1467
1468        function E(a) {
1469            for (var b = [], c = 0; c < a.pointers.length;) b[c] = {
1470                clientX: la(a.pointers[c].clientX),
1471                clientY: la(a.pointers[c].clientY)
1472            }, c++;
1473            return {
1474                timeStamp: na(),
1475                pointers: b,
1476                center: F(b),
1477                deltaX: a.deltaX,
1478                deltaY: a.deltaY
1479            }
1480        }
1481
1482        function F(a) {
1483            var b = a.length;
1484            if (1 === b) return {
1485                x: la(a[0].clientX),
1486                y: la(a[0].clientY)
1487            };
1488            for (var c = 0, d = 0, e = 0; b > e;) c += a[e].clientX, d += a[e].clientY, e++;
1489            return {
1490                x: la(c / b),
1491                y: la(d / b)
1492            }
1493        }
1494
1495        function G(a, b, c) {
1496            return {
1497                x: b / a || 0,
1498                y: c / a || 0
1499            }
1500        }
1501
1502        function H(a, b) {
1503            return a === b ? Aa : ma(a) >= ma(b) ? a > 0 ? Ba : Ca : b > 0 ? Da : Ea
1504        }
1505
1506        function I(a, b, c) {
1507            c || (c = Ia);
1508            var d = b[c[0]] - a[c[0]],
1509                e = b[c[1]] - a[c[1]];
1510            return Math.sqrt(d * d + e * e)
1511        }
1512
1513        function J(a, b, c) {
1514            c || (c = Ia);
1515            var d = b[c[0]] - a[c[0]],
1516                e = b[c[1]] - a[c[1]];
1517            return 180 * Math.atan2(e, d) / Math.PI
1518        }
1519
1520        function K(a, b) {
1521            return J(b[1], b[0], Ja) - J(a[1], a[0], Ja)
1522        }
1523
1524        function L(a, b) {
1525            return I(b[0], b[1], Ja) / I(a[0], a[1], Ja)
1526        }
1527
1528        function M() {
1529            this.evEl = La, this.evWin = Ma, this.allow = !0, this.pressed = !1, y.apply(this, arguments)
1530        }
1531
1532        function N() {
1533            this.evEl = Pa, this.evWin = Qa, y.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
1534        }
1535
1536        function O() {
1537            this.evTarget = Sa, this.evWin = Ta, this.started = !1, y.apply(this, arguments)
1538        }
1539
1540        function P(a, b) {
1541            var c = t(a.touches),
1542                d = t(a.changedTouches);
1543            return b & (ya | za) && (c = u(c.concat(d), "identifier", !0)), [c, d]
1544        }
1545
1546        function Q() {
1547            this.evTarget = Va, this.targetIds = {}, y.apply(this, arguments)
1548        }
1549
1550        function R(a, b) {
1551            var c = t(a.touches),
1552                d = this.targetIds;
1553            if (b & (wa | xa) && 1 === c.length) return d[c[0].identifier] = !0, [c, c];
1554            var e, f, g = t(a.changedTouches),
1555                h = [],
1556                i = this.target;
1557            if (f = c.filter(function(a) {
1558                    return p(a.target, i)
1559                }), b === wa)
1560                for (e = 0; e < f.length;) d[f[e].identifier] = !0, e++;
1561            for (e = 0; e < g.length;) d[g[e].identifier] && h.push(g[e]), b & (ya | za) && delete d[g[e].identifier], e++;
1562            return h.length ? [u(f.concat(h), "identifier", !0), h] : void 0
1563        }
1564
1565        function S() {
1566            y.apply(this, arguments);
1567            var a = k(this.handler, this);
1568            this.touch = new Q(this.manager, a), this.mouse = new M(this.manager, a)
1569        }
1570
1571        function T(a, b) {
1572            this.manager = a, this.set(b)
1573        }
1574
1575        function U(a) {
1576            if (q(a, _a)) return _a;
1577            var b = q(a, ab),
1578                c = q(a, bb);
1579            return b && c ? ab + " " + bb : b || c ? b ? ab : bb : q(a, $a) ? $a : Za
1580        }
1581
1582        function V(a) {
1583            this.id = w(), this.manager = null, this.options = i(a || {}, this.defaults), this.options.enable = m(this.options.enable, !0), this.state = cb, this.simultaneous = {}, this.requireFail = []
1584        }
1585
1586        function W(a) {
1587            return a & hb ? "cancel" : a & fb ? "end" : a & eb ? "move" : a & db ? "start" : ""
1588        }
1589
1590        function X(a) {
1591            return a == Ea ? "down" : a == Da ? "up" : a == Ba ? "left" : a == Ca ? "right" : ""
1592        }
1593
1594        function Y(a, b) {
1595            var c = b.manager;
1596            return c ? c.get(a) : a
1597        }
1598
1599        function Z() {
1600            V.apply(this, arguments)
1601        }
1602
1603        function $() {
1604            Z.apply(this, arguments), this.pX = null, this.pY = null
1605        }
1606
1607        function _() {
1608            Z.apply(this, arguments)
1609        }
1610
1611        function aa() {
1612            V.apply(this, arguments), this._timer = null, this._input = null
1613        }
1614
1615        function ba() {
1616            Z.apply(this, arguments)
1617        }
1618
1619        function ca() {
1620            Z.apply(this, arguments)
1621        }
1622
1623        function da() {
1624            V.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
1625        }
1626
1627        function ea(a, b) {
1628            return b = b || {}, b.recognizers = m(b.recognizers, ea.defaults.preset), new fa(a, b)
1629        }
1630
1631        function fa(a, b) {
1632            b = b || {}, this.options = i(b, ea.defaults), this.options.inputTarget = this.options.inputTarget || a, this.handlers = {}, this.session = {}, this.recognizers = [], this.element = a, this.input = z(this), this.touchAction = new T(this, this.options.touchAction), ga(this, !0), g(b.recognizers, function(a) {
1633                var b = this.add(new a[0](a[1]));
1634                a[2] && b.recognizeWith(a[2]), a[3] && b.requireFailure(a[3])
1635            }, this)
1636        }
1637
1638        function ga(a, b) {
1639            var c = a.element;
1640            g(a.options.cssProps, function(a, d) {
1641                c.style[v(c.style, d)] = b ? a : ""
1642            })
1643        }
1644
1645        function ha(a, c) {
1646            var d = b.createEvent("Event");
1647            d.initEvent(a, !0, !0), d.gesture = c, c.target.dispatchEvent(d)
1648        }
1649        var ia = ["", "webkit", "moz", "MS", "ms", "o"],
1650            ja = b.createElement("div"),
1651            ka = "function",
1652            la = Math.round,
1653            ma = Math.abs,
1654            na = Date.now,
1655            oa = 1,
1656            pa = /mobile|tablet|ip(ad|hone|od)|android/i,
1657            qa = "ontouchstart" in a,
1658            ra = v(a, "PointerEvent") !== d,
1659            sa = qa && pa.test(navigator.userAgent),
1660            ta = "touch",
1661            ua = "mouse",
1662            va = 25,
1663            wa = 1,
1664            xa = 2,
1665            ya = 4,
1666            za = 8,
1667            Aa = 1,
1668            Ba = 2,
1669            Ca = 4,
1670            Da = 8,
1671            Ea = 16,
1672            Fa = Ba | Ca,
1673            Ga = Da | Ea,
1674            Ha = Fa | Ga,
1675            Ia = ["x", "y"],
1676            Ja = ["clientX", "clientY"];
1677        y.prototype = {
1678            handler: function() {},
1679            init: function() {
1680                this.evEl && n(this.element, this.evEl, this.domHandler), this.evTarget && n(this.target, this.evTarget, this.domHandler), this.evWin && n(x(this.element), this.evWin, this.domHandler)
1681            },
1682            destroy: function() {
1683                this.evEl && o(this.element, this.evEl, this.domHandler), this.evTarget && o(this.target, this.evTarget, this.domHandler), this.evWin && o(x(this.element), this.evWin, this.domHandler)
1684            }
1685        };
1686        var Ka = {
1687                mousedown: wa,
1688                mousemove: xa,
1689                mouseup: ya
1690            },
1691            La = "mousedown",
1692            Ma = "mousemove mouseup";
1693        j(M, y, {
1694            handler: function(a) {
1695                var b = Ka[a.type];
1696                b & wa && 0 === a.button && (this.pressed = !0), b & xa && 1 !== a.which && (b = ya), this.pressed && this.allow && (b & ya && (this.pressed = !1), this.callback(this.manager, b, {
1697                    pointers: [a],
1698                    changedPointers: [a],
1699                    pointerType: ua,
1700                    srcEvent: a
1701                }))
1702            }
1703        });
1704        var Na = {
1705                pointerdown: wa,
1706                pointermove: xa,
1707                pointerup: ya,
1708                pointercancel: za,
1709                pointerout: za
1710            },
1711            Oa = {
1712                2: ta,
1713                3: "pen",
1714                4: ua,
1715                5: "kinect"
1716            },
1717            Pa = "pointerdown",
1718            Qa = "pointermove pointerup pointercancel";
1719        a.MSPointerEvent && (Pa = "MSPointerDown", Qa = "MSPointerMove MSPointerUp MSPointerCancel"), j(N, y, {
1720            handler: function(a) {
1721                var b = this.store,
1722                    c = !1,
1723                    d = a.type.toLowerCase().replace("ms", ""),
1724                    e = Na[d],
1725                    f = Oa[a.pointerType] || a.pointerType,
1726                    g = f == ta,
1727                    h = s(b, a.pointerId, "pointerId");
1728                e & wa && (0 === a.button || g) ? 0 > h && (b.push(a), h = b.length - 1) : e & (ya | za) && (c = !0), 0 > h || (b[h] = a, this.callback(this.manager, e, {
1729                    pointers: b,
1730                    changedPointers: [a],
1731                    pointerType: f,
1732                    srcEvent: a
1733                }), c && b.splice(h, 1))
1734            }
1735        });
1736        var Ra = {
1737                touchstart: wa,
1738                touchmove: xa,
1739                touchend: ya,
1740                touchcancel: za
1741            },
1742            Sa = "touchstart",
1743            Ta = "touchstart touchmove touchend touchcancel";
1744        j(O, y, {
1745            handler: function(a) {
1746                var b = Ra[a.type];
1747                if (b === wa && (this.started = !0), this.started) {
1748                    var c = P.call(this, a, b);
1749                    b & (ya | za) && 0 == c[0].length - c[1].length && (this.started = !1), this.callback(this.manager, b, {
1750                        pointers: c[0],
1751                        changedPointers: c[1],
1752                        pointerType: ta,
1753                        srcEvent: a
1754                    })
1755                }
1756            }
1757        });
1758        var Ua = {
1759                touchstart: wa,
1760                touchmove: xa,
1761                touchend: ya,
1762                touchcancel: za
1763            },
1764            Va = "touchstart touchmove touchend touchcancel";
1765        j(Q, y, {
1766            handler: function(a) {
1767                var b = Ua[a.type],
1768                    c = R.call(this, a, b);
1769                c && this.callback(this.manager, b, {
1770                    pointers: c[0],
1771                    changedPointers: c[1],
1772                    pointerType: ta,
1773                    srcEvent: a
1774                })
1775            }
1776        }), j(S, y, {
1777            handler: function(a, b, c) {
1778                var d = c.pointerType == ta,
1779                    e = c.pointerType == ua;
1780                if (d) this.mouse.allow = !1;
1781                else if (e && !this.mouse.allow) return;
1782                b & (ya | za) && (this.mouse.allow = !0), this.callback(a, b, c)
1783            },
1784            destroy: function() {
1785                this.touch.destroy(), this.mouse.destroy()
1786            }
1787        });
1788        var Wa = v(ja.style, "touchAction"),
1789            Xa = Wa !== d,
1790            Ya = "compute",
1791            Za = "auto",
1792            $a = "manipulation",
1793            _a = "none",
1794            ab = "pan-x",
1795            bb = "pan-y";
1796        T.prototype = {
1797            set: function(a) {
1798                a == Ya && (a = this.compute()), Xa && (this.manager.element.style[Wa] = a), this.actions = a.toLowerCase().trim()
1799            },
1800            update: function() {
1801                this.set(this.manager.options.touchAction)
1802            },
1803            compute: function() {
1804                var a = [];
1805                return g(this.manager.recognizers, function(b) {
1806                    l(b.options.enable, [b]) && (a = a.concat(b.getTouchAction()))
1807                }), U(a.join(" "))
1808            },
1809            preventDefaults: function(a) {
1810                if (!Xa) {
1811                    var b = a.srcEvent,
1812                        c = a.offsetDirection;
1813                    if (this.manager.session.prevented) return void b.preventDefault();
1814                    var d = this.actions,
1815                        e = q(d, _a),
1816                        f = q(d, bb),
1817                        g = q(d, ab);
1818                    return e || f && c & Fa || g && c & Ga ? this.preventSrc(b) : void 0
1819                }
1820            },
1821            preventSrc: function(a) {
1822                this.manager.session.prevented = !0, a.preventDefault()
1823            }
1824        };
1825        var cb = 1,
1826            db = 2,
1827            eb = 4,
1828            fb = 8,
1829            gb = fb,
1830            hb = 16;
1831        V.prototype = {
1832            defaults: {},
1833            set: function(a) {
1834                return h(this.options, a), this.manager && this.manager.touchAction.update(), this
1835            },
1836            recognizeWith: function(a) {
1837                if (f(a, "recognizeWith", this)) return this;
1838                var b = this.simultaneous;
1839                return a = Y(a, this), b[a.id] || (b[a.id] = a, a.recognizeWith(this)), this
1840            },
1841            dropRecognizeWith: function(a) {
1842                return f(a, "dropRecognizeWith", this) ? this : (a = Y(a, this), delete this.simultaneous[a.id], this)
1843            },
1844            requireFailure: function(a) {
1845                if (f(a, "requireFailure", this)) return this;
1846                var b = this.requireFail;
1847                return a = Y(a, this), -1 === s(b, a) && (b.push(a), a.requireFailure(this)), this
1848            },
1849            dropRequireFailure: function(a) {
1850                if (f(a, "dropRequireFailure", this)) return this;
1851                a = Y(a, this);
1852                var b = s(this.requireFail, a);
1853                return b > -1 && this.requireFail.splice(b, 1), this
1854            },
1855            hasRequireFailures: function() {
1856                return this.requireFail.length > 0
1857            },
1858            canRecognizeWith: function(a) {
1859                return !!this.simultaneous[a.id]
1860            },
1861            emit: function(a) {
1862                function b(b) {
1863                    c.manager.emit(c.options.event + (b ? W(d) : ""), a)
1864                }
1865                var c = this,
1866                    d = this.state;
1867                fb > d && b(!0), b(), d >= fb && b(!0)
1868            },
1869            tryEmit: function(a) {
1870                return this.canEmit() ? this.emit(a) : void(this.state = 32)
1871            },
1872            canEmit: function() {
1873                for (var a = 0; a < this.requireFail.length;) {
1874                    if (!(this.requireFail[a].state & (32 | cb))) return !1;
1875                    a++
1876                }
1877                return !0
1878            },
1879            recognize: function(a) {
1880                var b = h({}, a);
1881                return l(this.options.enable, [this, b]) ? (this.state & (gb | hb | 32) && (this.state = cb), this.state = this.process(b), void(this.state & (db | eb | fb | hb) && this.tryEmit(b))) : (this.reset(), void(this.state = 32))
1882            },
1883            process: function() {},
1884            getTouchAction: function() {},
1885            reset: function() {}
1886        }, j(Z, V, {
1887            defaults: {
1888                pointers: 1
1889            },
1890            attrTest: function(a) {
1891                var b = this.options.pointers;
1892                return 0 === b || a.pointers.length === b
1893            },
1894            process: function(a) {
1895                var b = this.state,
1896                    c = a.eventType,
1897                    d = b & (db | eb),
1898                    e = this.attrTest(a);
1899                return d && (c & za || !e) ? b | hb : d || e ? c & ya ? b | fb : b & db ? b | eb : db : 32
1900            }
1901        }), j($, Z, {
1902            defaults: {
1903                event: "pan",
1904                threshold: 10,
1905                pointers: 1,
1906                direction: Ha
1907            },
1908            getTouchAction: function() {
1909                var a = this.options.direction,
1910                    b = [];
1911                return a & Fa && b.push(bb), a & Ga && b.push(ab), b
1912            },
1913            directionTest: function(a) {
1914                var b = this.options,
1915                    c = !0,
1916                    d = a.distance,
1917                    e = a.direction,
1918                    f = a.deltaX,
1919                    g = a.deltaY;
1920                return e & b.direction || (b.direction & Fa ? (e = 0 === f ? Aa : 0 > f ? Ba : Ca, c = f != this.pX, d = Math.abs(a.deltaX)) : (e = 0 === g ? Aa : 0 > g ? Da : Ea, c = g != this.pY, d = Math.abs(a.deltaY))), a.direction = e, c && d > b.threshold && e & b.direction
1921            },
1922            attrTest: function(a) {
1923                return Z.prototype.attrTest.call(this, a) && (this.state & db || !(this.state & db) && this.directionTest(a))
1924            },
1925            emit: function(a) {
1926                this.pX = a.deltaX, this.pY = a.deltaY;
1927                var b = X(a.direction);
1928                b && this.manager.emit(this.options.event + b, a), this._super.emit.call(this, a)
1929            }
1930        }), j(_, Z, {
1931            defaults: {
1932                event: "pinch",
1933                threshold: 0,
1934                pointers: 2
1935            },
1936            getTouchAction: function() {
1937                return [_a]
1938            },
1939            attrTest: function(a) {
1940                return this._super.attrTest.call(this, a) && (Math.abs(a.scale - 1) > this.options.threshold || this.state & db)
1941            },
1942            emit: function(a) {
1943                if (this._super.emit.call(this, a), 1 !== a.scale) {
1944                    var b = a.scale < 1 ? "in" : "out";
1945                    this.manager.emit(this.options.event + b, a)
1946                }
1947            }
1948        }), j(aa, V, {
1949            defaults: {
1950                event: "press",
1951                pointers: 1,
1952                time: 500,
1953                threshold: 5
1954            },
1955            getTouchAction: function() {
1956                return [Za]
1957            },
1958            process: function(a) {
1959                var b = this.options,
1960                    c = a.pointers.length === b.pointers,
1961                    d = a.distance < b.threshold,
1962                    f = a.deltaTime > b.time;
1963                if (this._input = a, !d || !c || a.eventType & (ya | za) && !f) this.reset();
1964                else if (a.eventType & wa) this.reset(), this._timer = e(function() {
1965                    this.state = gb, this.tryEmit()
1966                }, b.time, this);
1967                else if (a.eventType & ya) return gb;
1968                return 32
1969            },
1970            reset: function() {
1971                clearTimeout(this._timer)
1972            },
1973            emit: function(a) {
1974                this.state === gb && (a && a.eventType & ya ? this.manager.emit(this.options.event + "up", a) : (this._input.timeStamp = na(), this.manager.emit(this.options.event, this._input)))
1975            }
1976        }), j(ba, Z, {
1977            defaults: {
1978                event: "rotate",
1979                threshold: 0,
1980                pointers: 2
1981            },
1982            getTouchAction: function() {
1983                return [_a]
1984            },
1985            attrTest: function(a) {
1986                return this._super.attrTest.call(this, a) && (Math.abs(a.rotation) > this.options.threshold || this.state & db)
1987            }
1988        }), j(ca, Z, {
1989            defaults: {
1990                event: "swipe",
1991                threshold: 10,
1992                velocity: .65,
1993                direction: Fa | Ga,
1994                pointers: 1
1995            },
1996            getTouchAction: function() {
1997                return $.prototype.getTouchAction.call(this)
1998            },
1999            attrTest: function(a) {
2000                var b, c = this.options.direction;
2001                return c & (Fa | Ga) ? b = a.velocity : c & Fa ? b = a.velocityX : c & Ga && (b = a.velocityY), this._super.attrTest.call(this, a) && c & a.direction && a.distance > this.options.threshold && ma(b) > this.options.velocity && a.eventType & ya
2002            },
2003            emit: function(a) {
2004                var b = X(a.direction);
2005                b && this.manager.emit(this.options.event + b, a), this.manager.emit(this.options.event, a)
2006            }
2007        }), j(da, V, {
2008            defaults: {
2009                event: "tap",
2010                pointers: 1,
2011                taps: 1,
2012                interval: 300,
2013                time: 250,
2014                threshold: 2,
2015                posThreshold: 10
2016            },
2017            getTouchAction: function() {
2018                return [$a]
2019            },
2020            process: function(a) {
2021                var b = this.options,
2022                    c = a.pointers.length === b.pointers,
2023                    d = a.distance < b.threshold,
2024                    f = a.deltaTime < b.time;
2025                if (this.reset(), a.eventType & wa && 0 === this.count) return this.failTimeout();
2026                if (d && f && c) {
2027                    if (a.eventType != ya) return this.failTimeout();
2028                    var g = !this.pTime || a.timeStamp - this.pTime < b.interval,
2029                        h = !this.pCenter || I(this.pCenter, a.center) < b.posThreshold;
2030                    this.pTime = a.timeStamp, this.pCenter = a.center, h && g ? this.count += 1 : this.count = 1, this._input = a;
2031                    if (0 === this.count % b.taps) return this.hasRequireFailures() ? (this._timer = e(function() {
2032                        this.state = gb, this.tryEmit()
2033                    }, b.interval, this), db) : gb
2034                }
2035                return 32
2036            },
2037            failTimeout: function() {
2038                return this._timer = e(function() {
2039                    this.state = 32
2040                }, this.options.interval, this), 32
2041            },
2042            reset: function() {
2043                clearTimeout(this._timer)
2044            },
2045            emit: function() {
2046                this.state == gb && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
2047            }
2048        }), ea.VERSION = "2.0.4", ea.defaults = {
2049            domEvents: !1,
2050            touchAction: Ya,
2051            enable: !0,
2052            inputTarget: null,
2053            inputClass: null,
2054            preset: [
2055                [ba, {
2056                    enable: !1
2057                }],
2058                [_, {
2059                        enable: !1
2060                    },
2061                    ["rotate"]
2062                ],
2063                [ca, {
2064                    direction: Fa
2065                }],
2066                [$, {
2067                        direction: Fa
2068                    },
2069                    ["swipe"]
2070                ],
2071                [da],
2072                [da, {
2073                        event: "doubletap",
2074                        taps: 2
2075                    },
2076                    ["tap"]
2077                ],
2078                [aa]
2079            ],
2080            cssProps: {
2081                userSelect: "default",
2082                touchSelect: "none",
2083                touchCallout: "none",
2084                contentZooming: "none",
2085                userDrag: "none",
2086                tapHighlightColor: "rgba(0,0,0,0)"
2087            }
2088        };
2089        fa.prototype = {
2090            set: function(a) {
2091                return h(this.options, a), a.touchAction && this.touchAction.update(), a.inputTarget && (this.input.destroy(), this.input.target = a.inputTarget, this.input.init()), this
2092            },
2093            stop: function(a) {
2094                this.session.stopped = a ? 2 : 1
2095            },
2096            recognize: function(a) {
2097                var b = this.session;
2098                if (!b.stopped) {
2099                    this.touchAction.preventDefaults(a);
2100                    var c, d = this.recognizers,
2101                        e = b.curRecognizer;
2102                    (!e || e && e.state & gb) && (e = b.curRecognizer = null);
2103                    for (var f = 0; f < d.length;) c = d[f], 2 === b.stopped || e && c != e && !c.canRecognizeWith(e) ? c.reset() : c.recognize(a), !e && c.state & (db | eb | fb) && (e = b.curRecognizer = c), f++
2104                }
2105            },
2106            get: function(a) {
2107                if (a instanceof V) return a;
2108                for (var b = this.recognizers, c = 0; c < b.length; c++)
2109                    if (b[c].options.event == a) return b[c];
2110                return null
2111            },
2112            add: function(a) {
2113                if (f(a, "add", this)) return this;
2114                var b = this.get(a.options.event);
2115                return b && this.remove(b), this.recognizers.push(a), a.manager = this, this.touchAction.update(), a
2116            },
2117            remove: function(a) {
2118                if (f(a, "remove", this)) return this;
2119                var b = this.recognizers;
2120                return a = this.get(a), b.splice(s(b, a), 1), this.touchAction.update(), this
2121            },
2122            on: function(a, b) {
2123                var c = this.handlers;
2124                return g(r(a), function(a) {
2125                    c[a] = c[a] || [], c[a].push(b)
2126                }), this
2127            },
2128            off: function(a, b) {
2129                var c = this.handlers;
2130                return g(r(a), function(a) {
2131                    b ? c[a].splice(s(c[a], b), 1) : delete c[a]
2132                }), this
2133            },
2134            emit: function(a, b) {
2135                this.options.domEvents && ha(a, b);
2136                var c = this.handlers[a] && this.handlers[a].slice();
2137                if (c && c.length) {
2138                    b.type = a, b.preventDefault = function() {
2139                        b.srcEvent.preventDefault()
2140                    };
2141                    for (var d = 0; d < c.length;) c[d](b), d++
2142                }
2143            },
2144            destroy: function() {
2145                this.element && ga(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
2146            }
2147        }, h(ea, {
2148            INPUT_START: wa,
2149            INPUT_MOVE: xa,
2150            INPUT_END: ya,
2151            INPUT_CANCEL: za,
2152            STATE_POSSIBLE: cb,
2153            STATE_BEGAN: db,
2154            STATE_CHANGED: eb,
2155            STATE_ENDED: fb,
2156            STATE_RECOGNIZED: gb,
2157            STATE_CANCELLED: hb,
2158            STATE_FAILED: 32,
2159            DIRECTION_NONE: Aa,
2160            DIRECTION_LEFT: Ba,
2161            DIRECTION_RIGHT: Ca,
2162            DIRECTION_UP: Da,
2163            DIRECTION_DOWN: Ea,
2164            DIRECTION_HORIZONTAL: Fa,
2165            DIRECTION_VERTICAL: Ga,
2166            DIRECTION_ALL: Ha,
2167            Manager: fa,
2168            Input: y,
2169            TouchAction: T,
2170            TouchInput: Q,
2171            MouseInput: M,
2172            PointerEventInput: N,
2173            TouchMouseInput: S,
2174            SingleTouchInput: O,
2175            Recognizer: V,
2176            AttrRecognizer: Z,
2177            Tap: da,
2178            Pan: $,
2179            Swipe: ca,
2180            Pinch: _,
2181            Rotate: ba,
2182            Press: aa,
2183            on: n,
2184            off: o,
2185            each: g,
2186            merge: i,
2187            extend: h,
2188            inherit: j,
2189            bindFn: k,
2190            prefixed: v
2191        }), typeof define == ka && define.amd ? define(function() {
2192            return ea
2193        }) : "undefined" != typeof module && module.exports ? module.exports = ea : a.Hammer = ea
2194    }(window, document),
2195    function(a) {
2196        "function" == typeof define && define.amd ? define(["jquery", "hammerjs"], a) : "object" == typeof exports ? a(require("jquery"), require("hammerjs")) : a(jQuery, Hammer)
2197    }(function(a, b) {
2198        function c(c, d) {
2199            var e = a(c);
2200            e.data("hammer") || e.data("hammer", new b(e[0], d))
2201        }
2202        a.fn.hammer = function(a) {
2203            return this.each(function() {
2204                c(this, a)
2205            })
2206        }, b.Manager.prototype.emit = function(b) {
2207            return function(c, d) {
2208                b.call(this, c, d), a(this.element).trigger({
2209                    type: c,
2210                    gesture: d
2211                })
2212            }
2213        }(b.Manager.prototype.emit)
2214    }),
2215    function(a) {
2216        a.Package ? Materialize = {} : a.Materialize = {}
2217    }(window),
2218    function(a) {
2219        for (var b = 0, c = ["webkit", "moz"], d = a.requestAnimationFrame, e = a.cancelAnimationFrame, f = c.length; --f >= 0 && !d;) d = a[c[f] + "RequestAnimationFrame"], e = a[c[f] + "CancelRequestAnimationFrame"];
2220        d && e || (d = function(a) {
2221            var c = +Date.now(),
2222                d = Math.max(b + 16, c);
2223            return setTimeout(function() {
2224                a(b = d)
2225            }, d - c)
2226        }, e = clearTimeout), a.requestAnimationFrame = d, a.cancelAnimationFrame = e
2227    }
2227(window), Materialize.objectSelectorString = function(a) {
2228        return ((a.prop("tagName") || "") + (a.attr("id") || "") + (a.attr("class") || "")).replace(/\s/g, "")
2229    }, Materialize.guid = function() {
2230        function a() {
2231            return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1)
2232        }
2233        return function() {
2234            return a() + a() + "-" + a() + "-" + a() + "-" + a() + "-" + a() + a() + a()
2235        }
2236    }(), Materialize.escapeHash = function(a) {
2237        return a.replace(/(:|\.|\[|\]|,|=)/g, "\\$1")
2238    }, Materialize.elementOrParentIsFixed = function(a) {
2239        var b = $(a),
2240            c = b.add(b.parents()),
2241            d = !1;
2242        return c.each(function() {
2243            if ("fixed" === $(this).css("position")) return d = !0, !1
2244        }), d
2245    };
2246var getTime = Date.now || function() {
2247    return (new Date).getTime()
2248};
2249Materialize.throttle = function(a, b, c) {
2250    var d, e, f, g = null,
2251        h = 0;
2252    c || (c = {});
2253    var i = function() {
2254        h = !1 === c.leading ? 0 : getTime(), g = null, f = a.apply(d, e), d = e = null
2255    };
2256    return function() {
2257        var j = getTime();
2258        h || !1 !== c.leading || (h = j);
2259        var k = b - (j - h);
2260        return d = this, e = arguments, k <= 0 ? (clearTimeout(g), g = null, h = j, f = a.apply(d, e), d = e = null) : g || !1 === c.trailing || (g = setTimeout(i, k)), f
2261    }
2262};
2263var Vel;
2264Vel = jQuery ? jQuery.Velocity : $ ? $.Velocity : Velocity,
2265    function(a) {
2266        a.fn.mcollapsible = function(b, c) {
2267            var d = {
2268                    accordion: void 0,
2269                    onOpen: void 0,
2270                    onClose: void 0
2271                },
2272                e = b;
2273            return b = a.extend(d, b), this.each(function() {
2274                function d(b) {
2275                    m = l.find("> li > .mcollapsible-header"), b.hasClass("active") ? b.parent().addClass("active") : b.parent().removeClass("active"), b.parent().hasClass("active") ? b.siblings(".mcollapsible-body").stop(!0, !1).slideDown({
2276                        duration: 350,
2277                        easing: "easeOutQuart",
2278                        queue: !1,
2279                        complete: function() {
2280                            a(this).css("height", "")
2281                        }
2282                    }) : b.siblings(".mcollapsible-body").stop(!0, !1).slideUp({
2283                        duration: 350,
2284                        easing: "easeOutQuart",
2285                        queue: !1,
2286                        complete: function() {
2287                            a(this).css("height", "")
2288                        }
2289                    }), m.not(b).removeClass("active").parent().removeClass("active"), m.not(b).parent().children(".mcollapsible-body").stop(!0, !1).each(function() {
2290                        a(this).is(":visible") && a(this).slideUp({
2291                            duration: 350,
2292                            easing: "easeOutQuart",
2293                            queue: !1,
2294                            complete: function() {
2295                                a(this).css("height", ""), h(a(this).siblings(".mcollapsible-header"))
2296                            }
2297                        })
2298                    })
2299                }
2300
2301                function f(b) {
2302                    b.hasClass("active") ? b.parent().addClass("active") : b.parent().removeClass("active"), b.parent().hasClass("active") ? b.siblings(".mcollapsible-body").stop(!0, !1).slideDown({
2303                        duration: 350,
2304                        easing: "easeOutQuart",
2305                        queue: !1,
2306                        complete: function() {
2307                            a(this).css("height", "")
2308                        }
2309                    }) : b.siblings(".mcollapsible-body").stop(!0, !1).slideUp({
2310                        duration: 350,
2311                        easing: "easeOutQuart",
2312                        queue: !1,
2313                        complete: function() {
2314                            a(this).css("height", "")
2315                        }
2316                    })
2317                }
2318
2319                function g(a, c) {
2320                    c || a.toggleClass("active"), b.accordion || "accordion" === n || void 0 === n ? d(a) : f(a), h(a)
2321                }
2322
2323                function h(a) {
2324                    a.hasClass("active") ? "function" == typeof b.onOpen && b.onOpen.call(this, a.parent()) : "function" == typeof b.onClose && b.onClose.call(this, a.parent())
2325                }
2326
2327                function i(a) {
2328                    return j(a).length > 0
2329                }
2330
2331                function j(a) {
2332                    return a.closest("li > .mcollapsible-header")
2333                }
2334
2335                function k() {
2336                    l.off("click.collapse", "> li > .mcollapsible-header")
2337                }
2338                var l = a(this),
2339                    m = a(this).find("> li > .mcollapsible-header"),
2340                    n = l.data("mcollapsible");
2341                if ("destroy" === e) return void k();
2342                if (c >= 0 && c < m.length) {
2343                    var o = m.eq(c);
2344                    return void(o.length && ("open" === e || "close" === e && o.hasClass("active")) && g(o))
2345                }
2346                k(), l.on("click.collapse", "> li > .mcollapsible-header", function(b) {
2347                    var c = a(b.target);
2348                    i(c) && (c = j(c)), g(c)
2349                }), b.accordion || "accordion" === n || void 0 === n ? g(m.filter(".active").first(), !0) : m.filter(".active").each(function() {
2350                    g(a(this), !0)
2351                })
2352            })
2353        }, a(document).ready(function() {
2354            a(".mcollapsible").mcollapsible()
2355        })
2356    }(jQuery),
2357    function(a) {
2358        a.fn.scrollTo = function(b) {
2359            return a(this).scrollTop(a(this).scrollTop() - a(this).offset().top + a(b).offset().top), this
2360        }, a.fn.dropdown = function(b) {
2361            var c = {
2362                inDuration: 300,
2363                outDuration: 225,
2364                constrainWidth: !0,
2365                hover: !1,
2366                gutter: 0,
2367                belowOrigin: !1,
2368                alignment: "left",
2369                stopPropagation: !1
2370            };
2371            return "open" === b ? (this.each(function() {
2372                a(this).trigger("open")
2373            }), !1) : "close" === b ? (this.each(function() {
2374                a(this).trigger("close")
2375            }), !1) : void this.each(function() {
2376                function d() {
2377                    void 0 !== g.data("induration") && (h.inDuration = g.data("induration")), void 0 !== g.data("outduration") && (h.outDuration = g.data("outduration")), void 0 !== g.data("constrainwidth") && (h.constrainWidth = g.data("constrainwidth")), void 0 !== g.data("hover") && (h.hover = g.data("hover")), void 0 !== g.data("gutter") && (h.gutter = g.data("gutter")), void 0 !== g.data("beloworigin") && (h.belowOrigin = g.data("beloworigin")), void 0 !== g.data("alignment") && (h.alignment = g.data("alignment")), void 0 !== g.data("stoppropagation") && (h.stopPropagation = g.data("stoppropagation"))
2378                }
2379
2380                function e(b) {
2381                    "focus" === b && (i = !0), d(), j.addClass("active"), g.addClass("active"), !0 === h.constrainWidth ? j.css("width", g.outerWidth()) : j.css("white-space", "nowrap");
2382                    var c = window.innerHeight,
2383                        e = g.innerHeight(),
2384                        k = g.offset().left,
2385                        l = g.offset().top - a(window).scrollTop(),
2386                        m = h.alignment,
2387                        n = 0,
2388                        o = 0,
2389                        p = 0;
2390                    !0 === h.belowOrigin && (p = e);
2391                    var q = 0,
2392                        r = 0,
2393                        s = g.parent();
2394                    if (s.is("body") || (s[0].scrollHeight > s[0].clientHeight && (q = s[0].scrollTop), s[0].scrollWidth > s[0].clientWidth && (r = s[0].scrollLeft)), k + j.innerWidth() > a(window).width() ? m = "right" : k - j.innerWidth() + g.innerWidth() < 0 && (m = "left"), l + j.innerHeight() > c)
2395                        if (l + e - j.innerHeight() < 0) {
2396                            var t = c - l - p;
2397                            j.css("max-height", t)
2398                        } else p || (p += e), p -= j.innerHeight();
2399                    if ("left" === m) n = h.gutter, o = g.position().left + n;
2400                    else if ("right" === m) {
2401                        j.stop(!0, !0).css({
2402                            opacity: 0,
2403                            left: 0
2404                        });
2405                        var u = g.position().left + g.outerWidth() - j.outerWidth();
2406                        n = -h.gutter, o = u + n
2407                    }
2408                    j.css({
2409                        position: "absolute",
2410                        top: g.position().top + p + q,
2411                        left: o + r
2412                    }), j.slideDown({
2413                        queue: !1,
2414                        duration: h.inDuration,
2415                        easing: "easeOutCubic",
2416                        complete: function() {
2417                            a(this).css("height", "")
2418                        }
2419                    }).animate({
2420                        opacity: 1
2421                    }, {
2422                        queue: !1,
2423                        duration: h.inDuration,
2424                        easing: "easeOutSine"
2425                    }), setTimeout(function() {
2426                        a(document).on("click." + j.attr("id"), function(b) {
2427                            f(), a(document).off("click." + j.attr("id"))
2428                        })
2429                    }, 0)
2430                }
2431
2432                function f() {
2433                    i = !1, j.fadeOut(h.outDuration), j.removeClass("active"), g.removeClass("active"), a(document).off("click." + j.attr("id")), setTimeout(function() {
2434                        j.css("max-height", "")
2435                    }, h.outDuration)
2436                }
2437                var g = a(this),
2438                    h = a.extend({}, c, b),
2439                    i = !1,
2440                    j = a("#" + g.attr("data-activates"));
2441                if (d(), g.after(j), h.hover) {
2442                    var k = !1;
2443                    g.off("click." + g.attr("id")), g.on("mouseenter", function(a) {
2444                        !1 === k && (e(), k = !0)
2445                    }), g.on("mouseleave", function(b) {
2446                        var c = b.toElement || b.relatedTarget;
2447                        a(c).closest(".dropdown-content").is(j) || (j.stop(!0, !0), f(), k = !1)
2448                    }), j.on("mouseleave", function(b) {
2449                        var c = b.toElement || b.relatedTarget;
2450                        a(c).closest(".dropdown-button").is(g) || (j.stop(!0, !0), f(), k = !1)
2451                    })
2452                } else g.off("click." + g.attr("id")), g.on("click." + g.attr("id"), function(b) {
2453                    i || (g[0] != b.currentTarget || g.hasClass("active") || 0 !== a(b.target).closest(".dropdown-content").length ? g.hasClass("active") && (f(), a(document).off("click." + j.attr("id"))) : (b.preventDefault(), h.stopPropagation && b.stopPropagation(), e("click")))
2454                });
2455                g.on("open", function(a, b) {
2456                    e(b)
2457                }), g.on("close", f)
2458            })
2459        }, a(document).ready(function() {
2460            a(".dropdown-button").dropdown()
2461        })
2462    }(jQuery),
2463    function(a) {
2464        var b = 0,
2465            c = 0,
2466            d = function() {
2467                return "materialize-modal-overlay-" + ++c
2468            },
2469            e = {
2470                init: function(c) {
2471                    var e = {
2472                        opacity: .5,
2473                        inDuration: 350,
2474                        outDuration: 250,
2475                        ready: void 0,
2476                        complete: void 0,
2477                        dismissible: !0,
2478                        startingTop: "4%",
2479                        endingTop: "10%"
2480                    };
2481                    return c = a.extend(e, c), this.each(function() {
2482                        var e = a(this),
2483                            f = a(this).attr("id") || "#" + a(this).data("target"),
2484                            g = function() {
2485                                var d = e.data("overlay-id"),
2486                                    f = a("#" + d);
2487                                e.removeClass("open"), a("body").css({
2488                                    overflow: "",
2489                                    width: ""
2490                                }), e.find(".modal-close").off("click.close"), a(document).off("keyup.modal" + d), f.velocity({
2491                                    opacity: 0
2492                                }, {
2493                                    duration: c.outDuration,
2494                                    queue: !1,
2495                                    ease: "easeOutQuart"
2496                                });
2497                                var g = {
2498                                    duration: c.outDuration,
2499                                    queue: !1,
2500                                    ease: "easeOutCubic",
2501                                    complete: function() {
2502                                        a(this).css({
2503                                            display: "none"
2504                                        }), "function" == typeof c.complete && c.complete.call(this, e), f.remove(), b--
2505                                    }
2506                                };
2507                                e.hasClass("bottom-sheet") ? e.velocity({
2508                                    bottom: "-100%",
2509                                    opacity: 0
2510                                }, g) : e.velocity({
2511                                    top: c.startingTop,
2512                                    opacity: 0,
2513                                    scaleX: .7
2514                                }, g)
2515                            },
2516                            h = function(f) {
2517                                var h = a("body"),
2518                                    i = h.innerWidth();
2519                                if (h.css("overflow", "hidden"), h.width(i), !e.hasClass("open")) {
2520                                    var j = d(),
2521                                        k = a('<div class="modal-overlay"></div>'),
2522                                        l = ++b;
2523                                    k.attr("id", j).css("z-index", 1e3 + 2 * l),
2524                                        e.data("overlay-id", j).css("z-index", 1e3 + 2 * l + 1), e.addClass("open"), a("body").append(k), c.dismissible && (k.click(function() {
2525                                            g()
2526                                        }), a(document).on("keyup.modal" + j, function(a) {
2527                                            27 === a.keyCode && g()
2528                                        })), e.find(".modal-close").on("click.close", function(a) {
2529                                            g()
2530                                        }), k.css({
2531                                            display: "block",
2532                                            opacity: 0
2533                                        }), e.css({
2534                                            display: "block",
2535                                            opacity: 0
2536                                        }), k.velocity({
2537                                            opacity: c.opacity
2538                                        }, {
2539                                            duration: c.inDuration,
2540                                            queue: !1,
2541                                            ease: "easeOutCubic"
2542                                        }), e.data("associated-overlay", k[0]);
2543                                    var m = {
2544                                        duration: c.inDuration,
2545                                        queue: !1,
2546                                        ease: "easeOutCubic",
2547                                        complete: function() {
2548                                            "function" == typeof c.ready && c.ready.call(this, e, f)
2549                                        }
2550                                    };
2551                                    e.hasClass("bottom-sheet") ? e.velocity({
2552                                        bottom: "0",
2553                                        opacity: 1
2554                                    }, m) : (a.Velocity.hook(e, "scaleX", .7), e.css({
2555                                        top: c.startingTop
2556                                    }), e.velocity({
2557                                        top: c.endingTop,
2558                                        opacity: 1,
2559                                        scaleX: "1"
2560                                    }, m))
2561                                }
2562                            };
2563                        a(document).off("click.modalTrigger", 'a[href="#' + f + '"], [data-target="' + f + '"]'), a(this).off("openModal"), a(this).off("closeModal"), a(document).on("click.modalTrigger", 'a[href="#' + f + '"], [data-target="' + f + '"]', function(b) {
2564                            c.startingTop = (a(this).offset().top - a(window).scrollTop()) / 1.15, h(a(this)), b.preventDefault()
2565                        }), a(this).on("openModal", function() {
2566                            a(this).attr("href") || a(this).data("target");
2567                            h()
2568                        }), a(this).on("closeModal", function() {
2569                            g()
2570                        })
2571                    })
2572                },
2573                open: function() {
2574                    e.init.apply(this, arguments), a(this).trigger("openModal")
2575                },
2576                close: function() {
2577                    a(this).trigger("closeModal")
2578                }
2579            };
2580        a.fn.modal = function(b) {
2581            return e[b] ? e[b].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof b && b ? void a.error("Method " + b + " does not exist on jQuery.modal") : e.init.apply(this, arguments)
2582        }
2583    }(jQuery),
2584    function(a) {
2585        a.fn.materialbox = function() {
2586            return this.each(function() {
2587                function b() {
2588                    f = !1;
2589                    var b = h.parent(".material-placeholder"),
2590                        d = (window.innerWidth, window.innerHeight, h.data("width")),
2591                        i = h.data("height");
2592                    h.velocity("stop", !0), a("#materialbox-overlay").velocity("stop", !0), a(".materialbox-caption").velocity("stop", !0), a(window).off("scroll.materialbox"), a(document).off("keyup.materialbox"), a(window).off("resize.materialbox"), a("#materialbox-overlay").velocity({
2593                        opacity: 0
2594                    }, {
2595                        duration: g,
2596                        queue: !1,
2597                        easing: "easeOutQuad",
2598                        complete: function() {
2599                            e = !1, a(this).remove()
2600                        }
2601                    }), h.velocity({
2602                        width: d,
2603                        height: i,
2604                        left: 0,
2605                        top: 0
2606                    }, {
2607                        duration: g,
2608                        queue: !1,
2609                        easing: "easeOutQuad",
2610                        complete: function() {
2611                            b.css({
2612                                height: "",
2613                                width: "",
2614                                position: "",
2615                                top: "",
2616                                left: ""
2617                            }), h.removeAttr("style"), h.attr("style", j), h.removeClass("active"), f = !0, c && c.css("overflow", "")
2618                        }
2619                    }), a(".materialbox-caption").velocity({
2620                        opacity: 0
2621                    }, {
2622                        duration: g,
2623                        queue: !1,
2624                        easing: "easeOutQuad",
2625                        complete: function() {
2626                            a(this).remove()
2627                        }
2628                    })
2629                }
2630                if (!a(this).hasClass("initialized")) {
2631                    a(this).addClass("initialized");
2632                    var c, d, e = !1,
2633                        f = !0,
2634                        g = 200,
2635                        h = a(this),
2636                        i = a("<div></div>").addClass("material-placeholder"),
2637                        j = h.attr("style");
2638                    h.wrap(i), h.on("click", function() {
2639                        var g = h.parent(".material-placeholder"),
2640                            i = window.innerWidth,
2641                            j = window.innerHeight,
2642                            k = h.width(),
2643                            l = h.height();
2644                        if (!1 === f) return b(), !1;
2645                        if (e && !0 === f) return b(), !1;
2646                        f = !1, h.addClass("active"), e = !0, g.css({
2647                            width: g[0].getBoundingClientRect().width,
2648                            height: g[0].getBoundingClientRect().height,
2649                            position: "relative",
2650                            top: 0,
2651                            left: 0
2652                        }), c = void 0, d = g[0].parentNode;
2653                        for (; null !== d && !a(d).is(document);) {
2654                            var m = a(d);
2655                            "visible" !== m.css("overflow") && (m.css("overflow", "visible"), c = void 0 === c ? m : c.add(m)), d = d.parentNode
2656                        }
2657                        h.css({
2658                            position: "absolute",
2659                            "z-index": 1e3,
2660                            "will-change": "left, top, width, height"
2661                        }).data("width", k).data("height", l);
2662                        var n = a('<div id="materialbox-overlay"></div>').css({
2663                            opacity: 0
2664                        }).click(function() {
2665                            !0 === f && b()
2666                        });
2667                        h.before(n);
2668                        var o = n[0].getBoundingClientRect();
2669                        if (n.css({
2670                                width: i,
2671                                height: j,
2672                                left: -1 * o.left,
2673                                top: -1 * o.top
2674                            }), n.velocity({
2675                                opacity: 1
2676                            }, {
2677                                duration: 275,
2678                                queue: !1,
2679                                easing: "easeOutQuad"
2680                            }), "" !== h.data("caption")) {
2681                            var p = a('<div class="materialbox-caption"></div>');
2682                            p.text(h.data("caption")), a("body").append(p), p.css({
2683                                display: "inline"
2684                            }), p.velocity({
2685                                opacity: 1
2686                            }, {
2687                                duration: 275,
2688                                queue: !1,
2689                                easing: "easeOutQuad"
2690                            })
2691                        }
2692                        var q = 0,
2693                            r = k / i,
2694                            s = l / j,
2695                            t = 0,
2696                            u = 0;
2697                        r > s ? (q = l / k, t = .9 * i, u = .9 * i * q) : (q = k / l, t = .9 * j * q, u = .9 * j), h.hasClass("responsive-img") ? h.velocity({
2698                            "max-width": t,
2699                            width: k
2700                        }, {
2701                            duration: 0,
2702                            queue: !1,
2703                            complete: function() {
2704                                h.css({
2705                                    left: 0,
2706                                    top: 0
2707                                }).velocity({
2708                                    height: u,
2709                                    width: t,
2710                                    left: a(document).scrollLeft() + i / 2 - h.parent(".material-placeholder").offset().left - t / 2,
2711                                    top: a(document).scrollTop() + j / 2 - h.parent(".material-placeholder").offset().top - u / 2
2712                                }, {
2713                                    duration: 275,
2714                                    queue: !1,
2715                                    easing: "easeOutQuad",
2716                                    complete: function() {
2717                                        f = !0
2718                                    }
2719                                })
2720                            }
2721                        }) : h.css("left", 0).css("top", 0).velocity({
2722                            height: u,
2723                            width: t,
2724                            left: a(document).scrollLeft() + i / 2 - h.parent(".material-placeholder").offset().left - t / 2,
2725                            top: a(document).scrollTop() + j / 2 - h.parent(".material-placeholder").offset().top - u / 2
2726                        }, {
2727                            duration: 275,
2728                            queue: !1,
2729                            easing: "easeOutQuad",
2730                            complete: function() {
2731                                f = !0
2732                            }
2733                        }), a(window).on("scroll.materialbox", function() {
2734                            e && b()
2735                        }), a(window).on("resize.materialbox", function() {
2736                            e && b()
2737                        }), a(document).on("keyup.materialbox", function(a) {
2738                            27 === a.keyCode && !0 === f && e && b()
2739                        })
2740                    })
2741                }
2742            })
2743        }, a(document).ready(function() {
2744            a(".materialboxed").materialbox()
2745        })
2746    }(jQuery),
2747    function(a) {
2748        a.fn.parallax = function() {
2749            var b = a(window).width();
2750            return this.each(function(c) {
2751                function d(c) {
2752                    var d;
2753                    d = b < 601 ? e.height() > 0 ? e.height() : e.children("img").height() : e.height() > 0 ? e.height() : 500;
2754                    var f = e.children("img").first(),
2755                        g = f.height(),
2756                        h = g - d,
2757                        i = e.offset().top + d,
2758                        j = e.offset().top,
2759                        k = a(window).scrollTop(),
2760                        l = window.innerHeight,
2761                        m = k + l,
2762                        n = (m - j) / (d + l),
2763                        o = Math.round(h * n);
2764                    c && f.css("display", "block"), i > k && j < k + l && f.css("transform", "translate3D(-50%," + o + "px, 0)")
2765                }
2766                var e = a(this);
2767                e.addClass("parallax"), e.children("img").one("load", function() {
2768                    d(!0)
2769                }).each(function() {
2770                    this.complete && a(this).trigger("load")
2771                }), a(window).scroll(function() {
2772                    b = a(window).width(), d(!1)
2773                }), a(window).resize(function() {
2774                    b = a(window).width(), d(!1)
2775                })
2776            })
2777        }
2778    }(jQuery),
2779    function(a) {
2780        var b = {
2781            init: function(b) {
2782                var c = {
2783                    onShow: null,
2784                    swipeable: !1,
2785                    responsiveThreshold: 1 / 0
2786                };
2787                b = a.extend(c, b);
2788                var d = Materialize.objectSelectorString(a(this));
2789                return this.each(function(c) {
2790                    var e, f, g, h, i, j = d + c,
2791                        k = a(this),
2792                        l = a(window).width(),
2793                        m = k.find("li.tab a"),
2794                        n = k.width(),
2795                        o = a(),
2796                        p = Math.max(n, k[0].scrollWidth) / m.length,
2797                        q = prev_index = 0,
2798                        r = !1,
2799                        s = function(a) {
2800                            return Math.ceil(n - a.position().left - a.outerWidth() - k.scrollLeft())
2801                        },
2802                        t = function(a) {
2803                            return Math.floor(a.position().left + k.scrollLeft())
2804                        },
2805                        u = function(a) {
2806                            q - a >= 0 ? (h.velocity({
2807                                right: s(e)
2808                            }, {
2809                                duration: 300,
2810                                queue: !1,
2811                                easing: "easeOutQuad"
2812                            }), h.velocity({
2813                                left: t(e)
2814                            }, {
2815                                duration: 300,
2816                                queue: !1,
2817                                easing: "easeOutQuad",
2818                                delay: 90
2819                            })) : (h.velocity({
2820                                left: t(e)
2821                            }, {
2822                                duration: 300,
2823                                queue: !1,
2824                                easing: "easeOutQuad"
2825                            }), h.velocity({
2826                                right: s(e)
2827                            }, {
2828                                duration: 300,
2829                                queue: !1,
2830                                easing: "easeOutQuad",
2831                                delay: 90
2832                            }))
2833                        };
2834                    b.swipeable && l > b.responsiveThreshold && (b.swipeable = !1), e = a(m.filter('[href="' + location.hash + '"]')), 0 === e.length && (e = a(this).find("li.tab a.active").first()), 0 === e.length && (e = a(this).find("li.tab a").first()), e.addClass("active"), q = m.index(e), q < 0 && (q = 0), void 0 !== e[0] && (f = a(e[0].hash), f.addClass("active")), k.find(".indicator").length || k.append('<li class="indicator"></li>'), h = k.find(".indicator"), k.append(h), k.is(":visible") && setTimeout(function() {
2835                        h.css({
2836                            right: s(e)
2837                        }), h.css({
2838                            left: t(e)
2839                        })
2840                    }, 0), a(window).off("resize.mtabs-" + j).on("resize.mtabs-" + j, function() {
2841                        n = k.width(), p = Math.max(n, k[0].scrollWidth) / m.length, q < 0 && (q = 0), 0 !== p && 0 !== n && (h.css({
2842                            right: s(e)
2843                        }), h.css({
2844                            left: t(e)
2845                        }))
2846                    }), b.swipeable ? (m.each(function() {
2847                        var b = a(Materialize.escapeHash(this.hash));
2848                        b.addClass("mcarousel-item"), o = o.add(b)
2849                    }), g = o.wrapAll('<div class="mtabs-content mcarousel"></div>'), o.css("display", ""), a(".mtabs-content.mcarousel").mcarousel({
2850                        fullWidth: !0,
2851                        noWrap: !0,
2852                        onCycleTo: function(a) {
2853                            if (!r) {
2854                                var c = q;
2855                                q = g.index(a), e = m.eq(q), u(c), "function" == typeof b.onShow && b.onShow.call(k[0], f)
2856                            }
2857                        }
2858                    })) : m.not(e).each(function() {
2859                        a(Materialize.escapeHash(this.hash)).hide()
2860                    }), k.off("click.mtabs").on("click.mtabs", "a", function(c) {
2861                        if (a(this).parent().hasClass("disabled")) return void c.preventDefault();
2862                        if (!a(this).attr("target")) {
2863                            r = !0, n = k.width(), p = Math.max(n, k[0].scrollWidth) / m.length, e.removeClass("active");
2864                            var d = f;
2865                            e = a(this), f = a(Materialize.escapeHash(this.hash)), m = k.find("li.tab a");
2866                            e.position();
2867                            e.addClass("active"), prev_index = q, q = m.index(a(this)), q < 0 && (q = 0), b.swipeable ? o.length && o.mcarousel("set", q, function() {
2868                                "function" == typeof b.onShow && b.onShow.call(k[0], f)
2869                            }) : (void 0 !== f && (f.show(), f.addClass("active"), "function" == typeof b.onShow && b.onShow.call(this, f)), void 0 === d || d.is(f) || (d.hide(), d.removeClass("active"))), i = setTimeout(function() {
2870                                r = !1
2871                            }, 300), u(prev_index), c.preventDefault()
2872                        }
2873                    })
2874                })
2875            },
2876            select_tab: function(a) {
2877                this.find('a[href="#' + a + '"]').trigger("click")
2878            }
2879        };
2880        a.fn.mtabs = function(c) {
2881            return b[c] ? b[c].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.tabs") : b.init.a
2881pply(this, arguments)
2882        }, a(document).ready(function() { /*a("ul.tabs").mtabs()*/ })
2883    }(jQuery),
2884    function(a) {
2885        a.fn.mtooltip = function(c) {
2886            var d = {
2887                delay: 350,
2888                mtooltip: "",
2889                position: "bottom",
2890                html: !1
2891            };
2892            return "remove" === c ? (this.each(function() {
2893                a("#" + a(this).attr("data-mtooltip-id")).remove(), a(this).off("mouseenter.mtooltip mouseleave.mtooltip")
2894            }), !1) : (c = a.extend(d, c), this.each(function() {
2895                var d = Materialize.guid(),
2896                    e = a(this);
2897                e.attr("data-mtooltip-id") && a("#" + e.attr("data-mtooltip-id")).remove(), e.attr("data-mtooltip-id", d);
2898                var f, g, h, i, j, k, l = function() {
2899                    f = e.attr("data-html") ? "true" === e.attr("data-html") : c.html, g = e.attr("data-delay"), g = void 0 === g || "" === g ? c.delay : g, h = e.attr("data-position"), h = void 0 === h || "" === h ? c.position : h, i = e.attr("data-mtooltip"), i = void 0 === i || "" === i ? c.mtooltip : i
2900                };
2901                l();
2902                j = function() {
2903                    var b = a('<div class="material-mtooltip"></div>');
2904                    return i = f ? a("<span></span>").html(i) : a("<span></span>").text(i), b.append(i).appendTo(a("body")).attr("id", d), k = a('<div class="backdrop"></div>'), k.appendTo(b), b
2905                }(), e.off("mouseenter.mtooltip mouseleave.mtooltip");
2906                var m, n = !1;
2907                e.on({
2908                    "mouseenter.mtooltip": function(a) {
2909                        var c = function() {
2910                            l(), n = !0, j.velocity("stop"), k.velocity("stop"), j.css({
2911                                visibility: "visible",
2912                                left: "0px",
2913                                top: "0px"
2914                            });
2915                            var a, c, d, f = e.outerWidth(),
2916                                g = e.outerHeight(),
2917                                i = j.outerHeight(),
2918                                m = j.outerWidth(),
2919                                o = "0px",
2920                                p = "0px",
2921                                q = k[0].offsetWidth,
2922                                r = k[0].offsetHeight,
2923                                s = 8,
2924                                t = 8,
2925                                u = 0;
2926                            "top" === h ? (a = e.offset().top - i - 5, c = e.offset().left + f / 2 - m / 2, d = b(c, a, m, i), o = "-10px", k.css({
2927                                bottom: 0,
2928                                left: 0,
2929                                borderRadius: "14px 14px 0 0",
2930                                transformOrigin: "50% 100%",
2931                                marginTop: i,
2932                                marginLeft: m / 2 - q / 2
2933                            })) : "left" === h ? (a = e.offset().top + g / 2 - i / 2, c = e.offset().left - m - 5, d = b(c, a, m, i), p = "-10px", k.css({
2934                                top: "-7px",
2935                                right: 0,
2936                                width: "14px",
2937                                height: "14px",
2938                                borderRadius: "14px 0 0 14px",
2939                                transformOrigin: "95% 50%",
2940                                marginTop: i / 2,
2941                                marginLeft: m
2942                            })) : "right" === h ? (a = e.offset().top + g / 2 - i / 2, c = e.offset().left + f + 5, d = b(c, a, m, i), p = "+10px", k.css({
2943                                top: "-7px",
2944                                left: 0,
2945                                width: "14px",
2946                                height: "14px",
2947                                borderRadius: "0 14px 14px 0",
2948                                transformOrigin: "5% 50%",
2949                                marginTop: i / 2,
2950                                marginLeft: "0px"
2951                            })) : (a = e.offset().top + e.outerHeight() + 5, c = e.offset().left + f / 2 - m / 2, d = b(c, a, m, i), o = "+10px", k.css({
2952                                top: 0,
2953                                left: 0,
2954                                marginLeft: m / 2 - q / 2
2955                            })), j.css({
2956                                top: d.y,
2957                                left: d.x
2958                            }), s = Math.SQRT2 * m / parseInt(q), t = Math.SQRT2 * i / parseInt(r), u = Math.max(s, t), j.velocity({
2959                                translateY: o,
2960                                translateX: p
2961                            }, {
2962                                duration: 350,
2963                                queue: !1
2964                            }).velocity({
2965                                opacity: 1
2966                            }, {
2967                                duration: 300,
2968                                delay: 50,
2969                                queue: !1
2970                            }), k.css({
2971                                visibility: "visible"
2972                            }).velocity({
2973                                opacity: 1
2974                            }, {
2975                                duration: 55,
2976                                delay: 0,
2977                                queue: !1
2978                            }).velocity({
2979                                scaleX: u,
2980                                scaleY: u
2981                            }, {
2982                                duration: 300,
2983                                delay: 0,
2984                                queue: !1,
2985                                easing: "easeInOutQuad"
2986                            })
2987                        };
2988                        m = setTimeout(c, g)
2989                    },
2990                    "mouseleave.mtooltip": function() {
2991                        n = !1, clearTimeout(m), setTimeout(function() {
2992                            !0 !== n && (j.velocity({
2993                                opacity: 0,
2994                                translateY: 0,
2995                                translateX: 0
2996                            }, {
2997                                duration: 225,
2998                                queue: !1
2999                            }), k.velocity({
3000                                opacity: 0,
3001                                scaleX: 1,
3002                                scaleY: 1
3003                            }, {
3004                                duration: 225,
3005                                queue: !1,
3006                                complete: function() {
3007                                    k.css({
3008                                        visibility: "hidden"
3009                                    }), j.css({
3010                                        visibility: "hidden"
3011                                    }), n = !1
3012                                }
3013                            }))
3014                        }, 225)
3015                    }
3016                })
3017            }))
3018        };
3019        var b = function(b, c, d, e) {
3020            var f = b,
3021                g = c;
3022            return f < 0 ? f = 4 : f + d > window.innerWidth && (f -= f + d - window.innerWidth), g < 0 ? g = 4 : g + e > window.innerHeight + a(window).scrollTop && (g -= g + e - window.innerHeight), {
3023                x: f,
3024                y: g
3025            }
3026        };
3027        a(document).ready(function() {
3028            a(".mtooltipped").mtooltip()
3029        })
3030    }(jQuery),
3031    function(a) {
3032        "use strict";
3033
3034        function b(a) {
3035            return null !== a && a === a.window
3036        }
3037
3038        function c(a) {
3039            return b(a) ? a : 9 === a.nodeType && a.defaultView
3040        }
3041
3042        function d(a) {
3043            var b, d, e = {
3044                    top: 0,
3045                    left: 0
3046                },
3047                f = a && a.ownerDocument;
3048            return b = f.documentElement, void 0 !== a.getBoundingClientRect && (e = a.getBoundingClientRect()), d = c(f), {
3049                top: e.top + d.pageYOffset - b.clientTop,
3050                left: e.left + d.pageXOffset - b.clientLeft
3051            }
3052        }
3053
3054        function e(a) {
3055            var b = "";
3056            for (var c in a) a.hasOwnProperty(c) && (b += c + ":" + a[c] + ";");
3057            return b
3058        }
3059
3060        function f(a) {
3061            if (!1 === k.allowEvent(a)) return null;
3062            for (var b = null, c = a.target || a.srcElement; null !== c.parentElement;) {
3063                if (!(c instanceof SVGElement || -1 === c.className.indexOf("waves-effect"))) {
3064                    b = c;
3065                    break
3066                }
3067                if (-1 !== c.className.indexOf("waves-effect")) {
3068                    b = c;
3069                    break
3070                }
3071                c = c.parentElement
3072            }
3073            return b
3074        }
3075
3076        function g(b) {
3077            var c = f(b);
3078            null !== c && (j.show(b, c), "ontouchstart" in a && (c.addEventListener("touchend", j.hide, !1), c.addEventListener("touchcancel", j.hide, !1)), c.addEventListener("mouseup", j.hide, !1), c.addEventListener("mouseleave", j.hide, !1))
3079        }
3080        var h = h || {},
3081            i = document.querySelectorAll.bind(document),
3082            j = {
3083                duration: 750,
3084                show: function(a, b) {
3085                    if (2 === a.button) return !1;
3086                    var c = b || this,
3087                        f = document.createElement("div");
3088                    f.className = "waves-ripple", c.appendChild(f);
3089                    var g = d(c),
3090                        h = a.pageY - g.top,
3091                        i = a.pageX - g.left,
3092                        k = "scale(" + c.clientWidth / 100 * 10 + ")";
3093                    "touches" in a && (h = a.touches[0].pageY - g.top, i = a.touches[0].pageX - g.left), f.setAttribute("data-hold", Date.now()), f.setAttribute("data-scale", k), f.setAttribute("data-x", i), f.setAttribute("data-y", h);
3094                    var l = {
3095                        top: h + "px",
3096                        left: i + "px"
3097                    };
3098                    f.className = f.className + " waves-notransition", f.setAttribute("style", e(l)), f.className = f.className.replace("waves-notransition", ""), l["-webkit-transform"] = k, l["-moz-transform"] = k, l["-ms-transform"] = k, l["-o-transform"] = k, l.transform = k, l.opacity = "1", l["-webkit-transition-duration"] = j.duration + "ms", l["-moz-transition-duration"] = j.duration + "ms", l["-o-transition-duration"] = j.duration + "ms", l["transition-duration"] = j.duration + "ms", l["-webkit-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", l["-moz-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", l["-o-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", l["transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", f.setAttribute("style", e(l))
3099                },
3100                hide: function(a) {
3101                    k.touchup(a);
3102                    var b = this,
3103                        c = (b.clientWidth, null),
3104                        d = b.getElementsByClassName("waves-ripple");
3105                    if (!(d.length > 0)) return !1;
3106                    c = d[d.length - 1];
3107                    var f = c.getAttribute("data-x"),
3108                        g = c.getAttribute("data-y"),
3109                        h = c.getAttribute("data-scale"),
3110                        i = Date.now() - Number(c.getAttribute("data-hold")),
3111                        l = 350 - i;
3112                    l < 0 && (l = 0), setTimeout(function() {
3113                        var a = {
3114                            top: g + "px",
3115                            left: f + "px",
3116                            opacity: "0",
3117                            "-webkit-transition-duration": j.duration + "ms",
3118                            "-moz-transition-duration": j.duration + "ms",
3119                            "-o-transition-duration": j.duration + "ms",
3120                            "transition-duration": j.duration + "ms",
3121                            "-webkit-transform": h,
3122                            "-moz-transform": h,
3123                            "-ms-transform": h,
3124                            "-o-transform": h,
3125                            transform: h
3126                        };
3127                        c.setAttribute("style", e(a)), setTimeout(function() {
3128                            try {
3129                                b.removeChild(c)
3130                            } catch (a) {
3131                                return !1
3132                            }
3133                        }, j.duration)
3134                    }, l)
3135                },
3136                wrapInput: function(a) {
3137                    for (var b = 0; b < a.length; b++) {
3138                        var c = a[b];
3139                        if ("input" === c.tagName.toLowerCase()) {
3140                            var d = c.parentNode;
3141                            if ("i" === d.tagName.toLowerCase() && -1 !== d.className.indexOf("waves-effect")) continue;
3142                            var e = document.createElement("i");
3143                            e.className = c.className + " waves-input-wrapper";
3144                            var f = c.getAttribute("style");
3145                            f || (f = ""), e.setAttribute("style", f), c.className = "waves-button-input", c.removeAttribute("style"), d.replaceChild(e, c), e.appendChild(c)
3146                        }
3147                    }
3148                }
3149            },
3150            k = {
3151                touches: 0,
3152                allowEvent: function(a) {
3153                    var b = !0;
3154                    return "touchstart" === a.type ? k.touches += 1 : "touchend" === a.type || "touchcancel" === a.type ? setTimeout(function() {
3155                        k.touches > 0 && (k.touches -= 1)
3156                    }, 500) : "mousedown" === a.type && k.touches > 0 && (b = !1), b
3157                },
3158                touchup: function(a) {
3159                    k.allowEvent(a)
3160                }
3161            };
3162        h.displayEffect = function(b) {
3163            b = b || {}, "duration" in b && (j.duration = b.duration), j.wrapInput(i(".waves-effect")), "ontouchstart" in a && document.body.addEventListener("touchstart", g, !1), document.body.addEventListener("mousedown", g, !1)
3164        }, h.attach = function(b) {
3165            "input" === b.tagName.toLowerCase() && (j.wrapInput([b]), b = b.parentElement), "ontouchstart" in a && b.addEventListener("touchstart", g, !1), b.addEventListener("mousedown", g, !1)
3166        }, a.Waves = h, document.addEventListener("DOMContentLoaded", function() {
3167            h.displayEffect()
3168        }, !1)
3169    }(window), Materialize.toast = function(a, b, c, d) {
3170        c = c || "";
3171        var e = document.getElementById("toast-container");
3172        null === e && (e = document.createElement("div"), e.id = "toast-container", document.body.appendChild(e));
3173        var f = function(a) {
3174            var b = document.createElement("div");
3175            if (b.classList.add("toast"), c)
3176                for (var e = c.split(" "), f = 0, g = e.length; f < g; f++) b.classList.add(e[f]);
3177            ("object" == typeof HTMLElement ? a instanceof HTMLElement : a && "object" == typeof a && null !== a && 1 === a.nodeType && "string" == typeof a.nodeName) ? b.appendChild(a): a instanceof jQuery ? b.appendChild(a[0]) : b.innerHTML = a;
3178            var h = new Hammer(b, {
3179                prevent_default: !1
3180            });
3181            return h.on("pan", function(a) {
3182                var c = a.deltaX;
3183                b.classList.contains("panning") || b.classList.add("panning");
3184                var d = 1 - Math.abs(c / 80);
3185                d < 0 && (d = 0), Vel(b, {
3186                    left: c,
3187                    opacity: d
3188                }, {
3189                    duration: 50,
3190                    queue: !1,
3191                    easing: "easeOutQuad"
3192                })
3193            }), h.on("panend", function(a) {
3194                var c = a.deltaX;
3195                Math.abs(c) > 80 ? Vel(b, {
3196                    marginTop: "-40px"
3197                }, {
3198                    duration: 375,
3199                    easing: "easeOutExpo",
3200                    queue: !1,
3201                    complete: function() {
3202                        "function" == typeof d && d(), b.parentNode.removeChild(b)
3203                    }
3204                }) : (b.classList.remove("panning"), Vel(b, {
3205                    left: 0,
3206                    opacity: 1
3207                }, {
3208                    duration: 300,
3209                    easing: "easeOutExpo",
3210                    queue: !1
3211                }))
3212            }), b
3213        }(a);
3214        a && e.appendChild(f), f.style.opacity = 0, Vel(f, {
3215            translateY: "-35px",
3216            opacity: 1
3217        }, {
3218            duration: 300,
3219            easing: "easeOutCubic",
3220            queue: !1
3221        });
3222        var g, h = b;
3223        null != h && (g = setInterval(function() {
3224            null === f.parentNode && window.clearInterval(g), f.classList.contains("panning") || (h -= 20), h <= 0 && (Vel(f, {
3225                opacity: 0,
3226                marginTop: "-40px"
3227            }, {
3228                duration: 375,
3229                easing: "easeOutExpo",
3230                queue: !1,
3231                complete: function() {
3232                    "function" == typeof d && d(), this[0].parentNode.removeChild(this[0])
3233                }
3234            }), window.clearInterval(g))
3235        }, 20))
3236    },
3237    function(a) {
3238        var b = {
3239            init: function(b) {
3240                var c = {
3241                    menuWidth: 300,
3242                    edge: "left",
3243                    closeOnClick: !1,
3244                    draggable: !0,
3245                    onOpen: null,
3246                    onClose: null
3247                };
3248                b = a.extend(c, b), a(this).each(function() {
3249                    var c = a(this),
3250                        d = c.attr("data-activates"),
3251                        e = a("#" + d);
3252                    300 != b.menuWidth && e.css("width", b.menuWidth);
3253                    var f = a('.drag-target[data-sidenav="' + d + '"]');
3254                    b.draggable ? (f.length && f.remove(), f = a('<div class="drag-target"></div>').attr("data-sidenav", d), a("body").append(f)) : f = a(), "left" == b.edge ? (e.css("transform", "translateX(-100%)"), f.css({
3255                        left: 0
3256                    })) : (e.addClass("right-aligned").css("transform", "translateX(100%)"), f.css({
3257                        right: 0
3258                    })), e.hasClass("fixed") && window.innerWidth > 992 && e.css("transform", "translateX(0)"), e.hasClass("fixed") && a(window).resize(function() {
3259                        window.innerWidth > 992 ? 0 !== a("#sidenav-overlay").length && i ? g(!0) : e.css("transform", "translateX(0%)") : !1 === i && ("left" === b.edge ? e.css("transform", "translateX(-100%)") : e.css("transform", "translateX(100%)"))
3260                    }), !0 === b.closeOnClick && e.on("click.itemclick", "a:not(.mcollapsible-header)", function() {
3261                        window.innerWidth > 992 && e.hasClass("fixed") || g()
3262                    });
3263                    var g = function(c) {
3264                            h = !1, i = !1, a("body").css({
3265                                overflow: "",
3266                                width: ""
3267                            }), a("#sidenav-overlay").velocity({
3268                                opacity: 0
3269                            }, {
3270                                duration: 200,
3271                                queue: !1,
3272                                easing: "easeOutQuad",
3273                                complete: function() {
3274                                    a(this).remove()
3275                                }
3276                            }), "left" === b.edge ? (f.css({
3277                                width: "",
3278                                right: "",
3279                                left: "0"
3280                            }), e.velocity({
3281                                translateX: "-100%"
3282                            }, {
3283                                duration: 200,
3284                                queue: !1,
3285                                easing: "easeOutCubic",
3286                                complete: function() {
3287                                    !0 === c && (e.removeAttr("style"), e.css("width", b.menuWidth))
3288                                }
3289                            })) : (f.css({
3290                                width: "",
3291                                right: "0",
3292                                left: ""
3293                            }), e.velocity({
3294                                translateX: "100%"
3295                            }, {
3296                                duration: 200,
3297                                queue: !1,
3298                                easing: "easeOutCubic",
3299                                complete: function() {
3300                                    !0 === c && (e.removeAttr("style"), e.css("width", b.menuWidth))
3301                                }
3302                            })), "function" == typeof b.onClose && b.onClose.call(this, e)
3303                        },
3304                        h = !1,
3305                        i = !1;
3306                    b.draggable && (f.on("click", function() {
3307                        i && g()
3308                    }), f.hammer({
3309                        prevent_default: !1
3310                    }).on("pan", function(c) {
3311                        if ("touch" == c.gesture.pointerType) {
3312                            var d = (c.gesture.direction, c.gesture.center.x),
3313                                f = c.gesture.center.y;
3314                            c.gesture.velocityX;
3315                            if (0 === d && 0 === f) return;
3316                            var h = a("body"),
3317                                j = a("#sidenav-overlay"),
3318                                k = h.innerWidth();
3319                            if (h.css("overflow", "hidden"), h.width(k), 0 === j.length && (j = a('<div id="sidenav-overlay"></div>'), j.css("opacity", 0).click(function() {
3320                                    g()
3321                                }), "function" == typeof b.onOpen && b.onOpen.call(this, e), a("body").append(j)), "left" === b.edge && (d > b.menuWidth ? d = b.menuWidth : d < 0 && (d = 0)), "left" === b.edge) d < b.menuWidth / 2 ? i = !1 : d >= b.menuWidth / 2 && (i = !0), e.css("transform", "translateX(" 
3321+ (d - b.menuWidth) + "px)");
3322                            else {
3323                                d < window.innerWidth - b.menuWidth / 2 ? i = !0 : d >= window.innerWidth - b.menuWidth / 2 && (i = !1);
3324                                var l = d - b.menuWidth / 2;
3325                                l < 0 && (l = 0), e.css("transform", "translateX(" + l + "px)")
3326                            }
3327                            var m;
3328                            "left" === b.edge ? (m = d / b.menuWidth, j.velocity({
3329                                opacity: m
3330                            }, {
3331                                duration: 10,
3332                                queue: !1,
3333                                easing: "easeOutQuad"
3334                            })) : (m = Math.abs((d - window.innerWidth) / b.menuWidth), j.velocity({
3335                                opacity: m
3336                            }, {
3337                                duration: 10,
3338                                queue: !1,
3339                                easing: "easeOutQuad"
3340                            }))
3341                        }
3342                    }).on("panend", function(c) {
3343                        if ("touch" == c.gesture.pointerType) {
3344                            var d = a("#sidenav-overlay"),
3345                                g = c.gesture.velocityX,
3346                                j = c.gesture.center.x,
3347                                k = j - b.menuWidth,
3348                                l = j - b.menuWidth / 2;
3349                            k > 0 && (k = 0), l < 0 && (l = 0), h = !1, "left" === b.edge ? i && g <= .3 || g < -.5 ? (0 !== k && e.velocity({
3350                                translateX: [0, k]
3351                            }, {
3352                                duration: 300,
3353                                queue: !1,
3354                                easing: "easeOutQuad"
3355                            }), d.velocity({
3356                                opacity: 1
3357                            }, {
3358                                duration: 50,
3359                                queue: !1,
3360                                easing: "easeOutQuad"
3361                            }), f.css({
3362                                width: "50%",
3363                                right: 0,
3364                                left: ""
3365                            }), i = !0) : (!i || g > .3) && (a("body").css({
3366                                overflow: "",
3367                                width: ""
3368                            }), e.velocity({
3369                                translateX: [-1 * b.menuWidth - 10, k]
3370                            }, {
3371                                duration: 200,
3372                                queue: !1,
3373                                easing: "easeOutQuad"
3374                            }), d.velocity({
3375                                opacity: 0
3376                            }, {
3377                                duration: 200,
3378                                queue: !1,
3379                                easing: "easeOutQuad",
3380                                complete: function() {
3381                                    "function" == typeof b.onClose && b.onClose.call(this, e), a(this).remove()
3382                                }
3383                            }), f.css({
3384                                width: "10px",
3385                                right: "",
3386                                left: 0
3387                            })) : i && g >= -.3 || g > .5 ? (0 !== l && e.velocity({
3388                                translateX: [0, l]
3389                            }, {
3390                                duration: 300,
3391                                queue: !1,
3392                                easing: "easeOutQuad"
3393                            }), d.velocity({
3394                                opacity: 1
3395                            }, {
3396                                duration: 50,
3397                                queue: !1,
3398                                easing: "easeOutQuad"
3399                            }), f.css({
3400                                width: "50%",
3401                                right: "",
3402                                left: 0
3403                            }), i = !0) : (!i || g < -.3) && (a("body").css({
3404                                overflow: "",
3405                                width: ""
3406                            }), e.velocity({
3407                                translateX: [b.menuWidth + 10, l]
3408                            }, {
3409                                duration: 200,
3410                                queue: !1,
3411                                easing: "easeOutQuad"
3412                            }), d.velocity({
3413                                opacity: 0
3414                            }, {
3415                                duration: 200,
3416                                queue: !1,
3417                                easing: "easeOutQuad",
3418                                complete: function() {
3419                                    a(this).remove()
3420                                }
3421                            }), f.css({
3422                                width: "10px",
3423                                right: 0,
3424                                left: ""
3425                            }))
3426                        }
3427                    })), c.off("click.sidenav").on("click.sidenav", function() {
3428                        if (!0 === i) i = !1, h = !1, g();
3429                        else {
3430                            var c = a("body"),
3431                                d = a('<div id="sidenav-overlay"></div>'),
3432                                j = c.innerWidth();
3433                            c.css("overflow", "hidden"), c.width(j), a("body").append(f), "left" === b.edge ? (f.css({
3434                                width: "50%",
3435                                right: 0,
3436                                left: ""
3437                            }), e.velocity({
3438                                translateX: [0, -1 * b.menuWidth]
3439                            }, {
3440                                duration: 300,
3441                                queue: !1,
3442                                easing: "easeOutQuad"
3443                            })) : (f.css({
3444                                width: "50%",
3445                                right: "",
3446                                left: 0
3447                            }), e.velocity({
3448                                translateX: [0, b.menuWidth]
3449                            }, {
3450                                duration: 300,
3451                                queue: !1,
3452                                easing: "easeOutQuad"
3453                            })), d.css("opacity", 0).click(function() {
3454                                i = !1, h = !1, g(), d.velocity({
3455                                    opacity: 0
3456                                }, {
3457                                    duration: 300,
3458                                    queue: !1,
3459                                    easing: "easeOutQuad",
3460                                    complete: function() {
3461                                        a(this).remove()
3462                                    }
3463                                })
3464                            }), a("body").append(d), d.velocity({
3465                                opacity: 1
3466                            }, {
3467                                duration: 300,
3468                                queue: !1,
3469                                easing: "easeOutQuad",
3470                                complete: function() {
3471                                    i = !0, h = !1
3472                                }
3473                            }), "function" == typeof b.onOpen && b.onOpen.call(this, e)
3474                        }
3475                        return !1
3476                    })
3477                })
3478            },
3479            destroy: function() {
3480                var b = a("#sidenav-overlay"),
3481                    c = a('.drag-target[data-sidenav="' + a(this).attr("data-activates") + '"]');
3482                b.trigger("click"), c.remove(), a(this).off("click"), b.remove()
3483            },
3484            show: function() {
3485                this.trigger("click")
3486            },
3487            hide: function() {
3488                a("#sidenav-overlay").trigger("click")
3489            }
3490        };
3491        a.fn.sideNav = function(c) {
3492            return b[c] ? b[c].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.sideNav") : b.init.a
3492pply(this, arguments)
3493        }
3494    }(jQuery),
3495    function(a) {
3496        function b(b, c, d, e) {
3497            var g = a();
3498            return a.each(f, function(a, f) {
3499                if (f.height() > 0) {
3500                    var h = f.offset().top,
3501                        i = f.offset().left,
3502                        j = i + f.width(),
3503                        k = h + f.height();
3504                    !(i > c || j < e || h > d || k < b) && g.push(f)
3505                }
3506            }), g
3507        }
3508
3509        function c(c) {
3510            ++i;
3511            var d = e.scrollTop(),
3512                f = e.scrollLeft(),
3513                h = f + e.width(),
3514                k = d + e.height(),
3515                l = b(d + j.top + c || 200, h + j.right, k + j.bottom, f + j.left);
3516            a.each(l, function(a, b) {
3517                "number" != typeof b.data("scrollSpy:ticks") && b.triggerHandler("scrollSpy:enter"), b.data("scrollSpy:ticks", i)
3518            }), a.each(g, function(a, b) {
3519                var c = b.data("scrollSpy:ticks");
3520                "number" == typeof c && c !== i && (b.triggerHandler("scrollSpy:exit"), b.data("scrollSpy:ticks", null))
3521            }), g = l
3522        }
3523
3524        function d() {
3525            e.trigger("scrollSpy:winSize")
3526        }
3527        var e = a(window),
3528            f = [],
3529            g = [],
3530            h = !1,
3531            i = 0,
3532            j = {
3533                top: 0,
3534                right: 0,
3535                bottom: 0,
3536                left: 0
3537            };
3538        a.scrollSpy = function(b, d) {
3539            var g = {
3540                throttle: 100,
3541                scrollOffset: 200,
3542                activeClass: "active",
3543                getActiveElement: function(a) {
3544                    return 'a[href="#' + a + '"]'
3545                }
3546            };
3547            d = a.extend(g, d);
3548            var i = [];
3549            b = a(b), b.each(function(b, c) {
3550                f.push(a(c)), a(c).data("scrollSpy:id", b), a('a[href="#' + a(c).attr("id") + '"]').click(function(b) {
3551                    b.preventDefault();
3552                    var c = a(Materialize.escapeHash(this.hash)).offset().top + 1;
3553                    a("html, body").animate({
3554                        scrollTop: c - d.scrollOffset
3555                    }, {
3556                        duration: 400,
3557                        queue: !1,
3558                        easing: "easeOutCubic"
3559                    })
3560                })
3561            }), j.top = d.offsetTop || 0, j.right = d.offsetRight || 0, j.bottom = d.offsetBottom || 0, j.left = d.offsetLeft || 0;
3562            var k = Materialize.throttle(function() {
3563                    c(d.scrollOffset)
3564                }, d.throttle || 100),
3565                l = function() {
3566                    a(document).ready(k)
3567                };
3568            return h || (e.on("scroll", l), e.on("resize", l), h = !0), setTimeout(l, 0), b.on("scrollSpy:enter", function() {
3569                i = a.grep(i, function(a) {
3570                    return 0 != a.height()
3571                });
3572                var b = a(this);
3573                i[0] ? (a(d.getActiveElement(i[0].attr("id"))).removeClass(d.activeClass), b.data("scrollSpy:id") < i[0].data("scrollSpy:id") ? i.unshift(a(this)) : i.push(a(this))) : i.push(a(this)), a(d.getActiveElement(i[0].attr("id"))).addClass(d.activeClass)
3574            }), b.on("scrollSpy:exit", function() {
3575                if (i = a.grep(i, function(a) {
3576                        return 0 != a.height()
3577                    }), i[0]) {
3578                    a(d.getActiveElement(i[0].attr("id"))).removeClass(d.activeClass);
3579                    var b = a(this);
3580                    i = a.grep(i, function(a) {
3581                        return a.attr("id") != b.attr("id")
3582                    }), i[0] && a(d.getActiveElement(i[0].attr("id"))).addClass(d.activeClass)
3583                }
3584            }), b
3585        }, a.winSizeSpy = function(b) {
3586            return a.winSizeSpy = function() {
3587                return e
3588            }, b = b || {
3589                throttle: 100
3590            }, e.on("resize", Materialize.throttle(d, b.throttle || 100))
3591        }, a.fn.scrollSpy = function(b) {
3592            return a.scrollSpy(a(this), b)
3593        }
3594    }(jQuery),
3595    function(a) {
3596        a(document).ready(function() {
3597            function b(b) {
3598                var c = b.css("font-family"),
3599                    e = b.css("font-size"),
3600                    f = b.css("line-height");
3601                e && d.css("font-size", e), c && d.css("font-family", c), f && d.css("line-height", f), b.data("original-height") || b.data("original-height", b.height()), "off" === b.attr("wrap") && d.css("overflow-wrap", "normal").css("white-space", "pre"), d.text(b.val() + "\n");
3602                var g = d.html().replace(/\n/g, "<br>");
3603                d.html(g), b.is(":visible") ? d.css("width", b.width()) : d.css("width", a(window).width() / 2), b.data("original-height") <= d.height() ? b.css("height", d.height()) : b.val().length < b.data("previous-length") && b.css("height", b.data("original-height")), b.data("previous-length", b.val().length)
3604            }
3605            Materialize.updateTextFields = function() {
3606                a("input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea").each(function(b, c) {
3607                    var d = a(this);
3608                    a(c).val().length > 0 || a(c).is(":focus") || c.autofocus || void 0 !== d.attr("placeholder") ? d.siblings("label").addClass("active") : a(c)[0].validity ? d.siblings("label").toggleClass("active", !0 === a(c)[0].validity.badInput) : d.siblings("label").removeClass("active")
3609                })
3610            };
3611            var c = "input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";
3612            a(document).on("change", c, function() {
3613                0 === a(this).val().length && void 0 === a(this).attr("placeholder") || a(this).siblings("label").addClass("active"), validate_field(a(this))
3614            }), a(document).ready(function() {
3615                Materialize.updateTextFields()
3616            }), a(document).on("reset", function(b) {
3617                var d = a(b.target);
3618                d.is("form") && (d.find(c).removeClass("valid").removeClass("invalid"), d.find(c).each(function() {
3619                    "" === a(this).attr("value") && a(this).siblings("label").removeClass("active")
3620                }), d.find("select.initialized").each(function() {
3621                    var a = d.find("option[selected]").text();
3622                    d.siblings("input.select-dropdown").val(a)
3623                }))
3624            }), a(document).on("focus", c, function() {
3625                a(this).siblings("label, .prefix").addClass("active")
3626            }), a(document).on("blur", c, function() {
3627                var b = a(this),
3628                    c = ".prefix";
3629                0 === b.val().length && !0 !== b[0].validity.badInput && void 0 === b.attr("placeholder") && (c += ", label"), b.siblings(c).removeClass("active"), validate_field(b)
3630            }), window.validate_field = function(a) {
3631                var b = void 0 !== a.attr("data-length"),
3632                    c = parseInt(a.attr("data-length")),
3633                    d = a.val().length;
3634                0 === a.val().length && !1 === a[0].validity.badInput ? a.hasClass("val
3634idate") && (a.removeClass("valid"), a.removeClass("invalid")) : a.hasClass("validate") && (a.is(":valid") && b && d <= c || a.is(":valid") && !b ? (a.removeClass("invalid"), a.addClass("valid")) : (a.removeClass("valid"), a.addClass("invalid")))
3635            };
3636            a(document).on("keyup.radio", "input[type=radio], input[type=checkbox]", function(b) {
3637                if (9 === b.which) {
3638                    a(this).addClass("tabbed");
3639                    return void a(this).one("blur", function(b) {
3640                        a(this).removeClass("tabbed")
3641                    })
3642                }
3643            });
3644            var d = a(".hiddendiv").first();
3645            d.length || (d = a('<div class="hiddendiv common"></div>'), a("body").append(d));
3646            a(".materialize-textarea").each(function() {
3647                var b = a(this);
3648                b.data("original-height", b.height()), b.data("previous-length", b.val().length)
3649            }), a("body").on("keyup keydown autoresize", ".materialize-textarea", function() {
3650                b(a(this))
3651            }), a(document).on("change", '.file-field input[type="file"]', function() {
3652                for (var b = a(this).closest(".file-field"), c = b.find("input.file-path"), d = a(this)[0].files, e = [], f = 0; f < d.length; f++) e.push(d[f].name);
3653                c.val(e.join(", ")), c.trigger("change")
3654            });
3655            var e = "input[type=range]",
3656                f = !1;
3657            a(e).each(function() {
3658                var b = a('<span class="thumb"><span class="value"></span></span>');
3659                a(this).after(b)
3660            });
3661            var g = function(a) {
3662                    var b = parseInt(a.parent().css("padding-left")),
3663                        c = -7 + b + "px";
3664                    a.velocity({
3665                        height: "30px",
3666                        width: "30px",
3667                        top: "-30px",
3668                        marginLeft: c
3669                    }, {
3670                        duration: 300,
3671                        easing: "easeOutExpo"
3672                    })
3673                },
3674                h = function(a) {
3675                    var b = a.width() - 15,
3676                        c = parseFloat(a.attr("max")),
3677                        d = parseFloat(a.attr("min"));
3678                    return (parseFloat(a.val()) - d) / (c - d) * b
3679                };
3680            a(document).on("change", e, function(b) {
3681                var c = a(this).siblings(".thumb");
3682                c.find(".value").html(a(this).val()), c.hasClass("active") || g(c);
3683                var d = h(a(this));
3684                c.addClass("active").css("left", d)
3685            }), a(document).on("mousedown touchstart", e, function(b) {
3686                var c = a(this).siblings(".thumb");
3687                if (c.length <= 0 && (c = a('<span class="thumb"><span class="value"></span></span>'), a(this).after(c)), c.find(".value").html(a(this).val()), f = !0, a(this).addClass("active"), c.hasClass("active") || g(c), "input" !== b.type) {
3688                    var d = h(a(this));
3689                    c.addClass("active").css("left", d)
3690                }
3691            }), a(document).on("mouseup touchend", ".range-field", function() {
3692                f = !1, a(this).removeClass("active")
3693            }), a(document).on("input mousemove touchmove", ".range-field", function(b) {
3694                var c = a(this).children(".thumb"),
3695                    d = a(this).find(e);
3696                if (f) {
3697                    c.hasClass("active") || g(c);
3698                    var i = h(d);
3699                    c.addClass("active").css("left", i), c.find(".value").html(c.siblings(e).val())
3700                }
3701            }), a(document).on("mouseout touchleave", ".range-field", function() {
3702                if (!f) {
3703                    var b = a(this).children(".thumb"),
3704                        c = parseInt(a(this).css("padding-left")),
3705                        d = 7 + c + "px";
3706                    b.hasClass("active") && b.velocity({
3707                        height: "0",
3708                        width: "0",
3709                        top: "10px",
3710                        marginLeft: d
3711                    }, {
3712                        duration: 100
3713                    }), b.removeClass("active")
3714                }
3715            }), a.fn.autocomplete = function(b) {
3716                var c = {
3717                    data: {},
3718                    limit: 1 / 0,
3719                    onAutocomplete: null,
3720                    minLength: 1
3721                };
3722                return b = a.extend(c, b), this.each(function() {
3723                    var c, d = a(this),
3724                        e = b.data,
3725                        f = 0,
3726                        g = -1,
3727                        h = d.closest(".input-field");
3728                    if (!a.isEmptyObject(e)) {
3729                        var i, j = a('<ul class="autocomplete-content dropdown-content"></ul>');
3730                        h.length ? (i = h.children(".autocomplete-content.dropdown-content").first(), i.length || h.append(j)) : (i = d.next(".autocomplete-content.dropdown-content"), i.length || d.after(j)), i.length && (j = i);
3731                        var k = function(a, b) {
3732                                var c = b.find("img"),
3733                                    d = b.text().toLowerCase().indexOf("" + a.toLowerCase()),
3734                                    e = d + a.length - 1,
3735                                    f = b.text().slice(0, d),
3736                                    g = b.text().slice(d, e + 1),
3737                                    h = b.text().slice(e + 1);
3738                                b.html("<span>" + f + "<span class='highlight'>" + g + "</span>" + h + "</span>"), c.length && b.prepend(c)
3739                            },
3740                            l = function() {
3741                                g = -1, j.find(".active").removeClass("active")
3742                            },
3743                            m = function() {
3744                                j.empty(), l(), c = void 0
3745                            };
3746                        d.off("blur.autocomplete").on("blur.autocomplete", function() {
3747                            m()
3748                        }), d.off("keyup.autocomplete focus.autocomplete").on("keyup.autocomplete focus.autocomplete", function(g) {
3749                            f = 0;
3750                            var h = d.val().toLowerCase();
3751                            if (13 !== g.which && 38 !== g.which && 40 !== g.which) {
3752                                if (c !== h && (m(), h.length >= b.minLength))
3753                                    for (var i in e)
3754                                        if (e.hasOwnProperty(i) && -1 !== i.toLowerCase().indexOf(h) && i.toLowerCase() !== h) {
3755                                            if (f >= b.limit) break;
3756                                            var l = a("<li></li>");
3757                                            e[i] ? l.append('<img src="' + e[i] + '" class="right circle"><span>' + i + "</span>") : l.append("<span>" + i + "</span>"), j.append(l), k(h, l), f++
3758                                        } c = h
3759                            }
3760                        }), d.off("keydown.autocomplete").on("keydown.autocomplete", function(a) {
3761                            var b, c = a.which,
3762                                d = j.children("li").length,
3763                                e = j.children(".active").first();
3764                            if (13 === c && g >= 0) return b = j.children("li").eq(g), void(b.length && (b.trigger("mousedown.autocomplete"), a.preventDefault()));
3765                            38 !== c && 40 !== c || (a.preventDefault(), 38 === c && g > 0 && g--, 40 === c && g < d - 1 && g++, e.removeClass("active"), g >= 0 && j.children("li").eq(g).addClass("active"))
3766                        }), j.on("mousedown.autocomplete touchstart.autocomplete", "li", function() {
3767                            var c = a(this).text().trim();
3768                            d.val(c), d.trigger("change"), m(),
3769                                "function" == typeof b.onAutocomplete && b.onAutocomplete.call(this, c)
3770                        })
3771                    }
3772                })
3773            }
3774        }), a.fn.material_select = function(b) {
3775            function c(a, b, c) {
3776                var e = a.indexOf(b),
3777                    f = -1 === e;
3778                return f ? a.push(b) : a.splice(e, 1), c.siblings("ul.dropdown-content").find("li:not(.optgroup)").eq(b).toggleClass("active"), c.find("option").eq(b).prop("selected", f), d(a, c), f
3779            }
3780
3781            function d(a, b) {
3782                for (var c = "", d = 0, e = a.length; d < e; d++) {
3783                    var f = b.find("option").eq(a[d]).text();
3784                    c += 0 === d ? f : ", " + f
3785                }
3786                "" === c && (c = b.find("option:disabled").eq(0).text()), b.siblings("input.select-dropdown").val('(filtered)')
3787
3788                if(c === '') {
3789                	b.siblings("input.select-dropdown").val('')
3790            	}
3791            }
3792            a(this).each(function() {
3793                var d = a(this);
3794                if (!d.hasClass("browser-default")) {
3795                    var e = !!d.attr("multiple"),
3796                        f = d.data("select-id");
3797                    if (f && (d.parent().find("span.caret").remove(), d.parent().find("input").remove(), d.unwrap(), a("ul#select-options-" + f).remove()), "destroy" === b) return void d.data("select-id", null).removeClass("initialized");
3798                    var g = Materialize.guid();
3799                    d.data("select-id", g);
3800                    var h = a('<div class="select-wrapper"></div>');
3801                    h.addClass(d.attr("class"));
3802                    var i = a('<ul id="select-options-' + g + '" class="dropdown-content select-dropdown ' + (e ? "multiple-select-dropdown" : "") + '"></ul>'),
3803                        j = d.children("option, optgroup"),
3804                        k = [],
3805                        l = !1,
3806                        m = d.find("option:selected").html() || d.find("option:first").html() || "",
3807                        n = function(b, c, d) {
3808                            var f = c.is(":disabled") ? "disabled " : "",
3809                                g = "optgroup-option" === d ? "optgroup-option " : "",
3810                                h = e ? '<input type="checkbox"' + f + "/><label></label>" : "",
3811                                j = c.data("icon"),
3812                                k = c.attr("class");
3813                            if (j) {
3814                                var l = "";
3815                                return k && (l = ' class="' + k + '"'), i.append(a('<li class="' + f + g + '"><img alt="" src="' + j + '"' + l + "><span>" + h + c.html() + "</span></li>")), !0
3816                            }
3817                            i.append(a('<li class="' + f + g + '"><span>' + h + c.html() + "</span></li>"))
3818                        };
3819                    j.length && j.each(function() {
3820                        if (a(this).is("option")) e ? n(0, a(this), "multiple") : n(0, a(this));
3821                        else if (a(this).is("optgroup")) {
3822                            var b = a(this).children("option");
3823                            i.append(a('<li class="optgroup"><span>' + a(this).attr("label") + "</span></li>")), b.each(function() {
3824                                n(0, a(this), "optgroup-option")
3825                            })
3826                        }
3827                    }), i.find("li:not(.optgroup)").each(function(f) {
3828                        a(this).click(function(g) {
3829                            if (!a(this).hasClass("disabled") && !a(this).hasClass("optgroup")) {
3830                                var h = !0;
3831                                e ? (a('input[type="checkbox"]', this).prop("checked", function(a, b) {
3832                                    return !b
3833                                }), h = c(k, f, d), q.trigger("focus")) : (i.find("li").removeClass("active"), a(this).toggleClass("active"), q.val(a(this).text())), r(i, a(this)), d.find("option").eq(f).prop("selected", h), d.trigger("change"), void 0 !== b && b()
3834                            }
3835                            g.stopPropagation()
3836                        })
3837                    }), d.wrap(h);
3838                    var o = a('<span class="caret">&#9660;</span>');
3839                    d.is(":disabled") && o.addClass("disabled");
3840                    var p = m.replace(/"/g, "&quot;"),
3841                        q = a('<input type="text" class="select-dropdown" readonly="true" ' + (d.is(":disabled") ? "disabled" : "") + ' data-activates="select-options-' + g + '" value="' + p + '"/>');
3842                    d.before(q), q.before(o), q.after(i), d.is(":disabled") || q.dropdown({
3843                        hover: !1
3844                    }), d.attr("tabindex") && a(q[0]).attr("tabindex", d.attr("tabindex")), d.addClass("initialized"), q.on({
3845                        focus: function() {
3846                            if (a("ul.select-dropdown").not(i[0]).is(":visible") && a("input.select-dropdown").trigger("close"), !i.is(":visible")) {
3847                                a(this).trigger("open", ["focus"]);
3848                                var b = a(this).val();
3849                                e && b.indexOf(",") >= 0 && (b = b.split(",")[0]);
3850                                var c = i.find("li").filter(function() {
3851                                    return a(this).text().toLowerCase() === b.toLowerCase()
3852                                })[0];
3853                                r(i, c, !0)
3854                            }
3855                        },
3856                        click: function(a) {
3857                            a.stopPropagation()
3858                        }
3859                    }), q.on("blur", function() {
3860                        e || a(this).trigger("close"), i.find("li.selected").removeClass("selected")
3861                    }), i.hover(function() {
3862                        l = !0
3863                    }, function() {
3864                        l = !1
3865                    }), a(window).on({
3866                        click: function() {
3867                            e && (l || q.trigger("close"))
3868                        }
3869                    }), e && d.find("option:selected:not(:disabled)").each(function() {
3870                        var b = a(this).index();
3871                        c(k, b, d), i.find("li").eq(b).find(":checkbox").prop("checked", !0)
3872                    });
3873                    var r = function(b, c, d) {
3874                            if (c) {
3875                                b.find("li.selected").removeClass("selected");
3876                                var f = a(c);
3877                                f.addClass("selected"), e && !d || i.scrollTo(f)
3878                            }
3879                        },
3880                        s = [],
3881                        t = function(b) {
3882                            if (9 == b.which) return void q.trigger("close");
3883                            if (40 == b.which && !i.is(":visible")) return void q.trigger("open");
3884                            if (13 != b.which || i.is(":visible")) {
3885                                b.preventDefault();
3886                                var c = String.fromCharCode(b.which).toLowerCase(),
3887                                    d = [9, 13, 27, 38, 40];
3888                                if (c && -1 === d.indexOf(b.which)) {
3889                                    s.push(c);
3890                                    var f = s.join(""),
3891                                        g = i.find("li").filter(function() {
3892                                            return 0 === a(this).text().toLowerCase().indexOf(f)
3893                                        })[0];
3894                                    g && r(i, g)
3895                                }
3896                                if (13 == b.which) {
3897                                    var h = i.find("li.selected:not(.disabled)")[0];
3898                                    h && (a(h).trigger("click"), e || q.trigger("close"))
3899                                }
3900                                40 == b.which && (g = i.find("li.selected").length ? i.find("li.selected").next("li:not(.disabled)")[0] : i.find("li:not(.disabled)")[0], r(i, g)), 27 == b.which && q.trigger("close"), 38 == b.which && (g = i.find("li.selected").prev("li:not(.disabled)")[0]) && r(i, g), setTimeout(function() {
3901                                    s = []
3902                                }, 1e3)
3903                            }
3904                        };
3905                    q.on("keydown", t)
3906                }
3907            })
3908        }
3909    }(jQuery),
3910    function(a) {
3911        var b = {
3912            init: function(b) {
3913                var c = {
3914                    indicators: !0,
3915                    height: 400,
3916                    transition: 500,
3917                    interval: 6e3
3918                };
3919                return b = a.extend(c, b), this.each(function() {
3920                    function c(a, b) {
3921                        a.hasClass("center-align") ? a.velocity({
3922                            opacity: 0,
3923                            translateY: -100
3924                        }, {
3925                            duration: b,
3926                            queue: !1
3927                        }) : a.hasClass("right-align") ? a.velocity({
3928                            opacity: 0,
3929                            translateX: 100
3930                        }, {
3931                            duration: b,
3932                            queue: !1
3933                        }) : a.hasClass("left-align") && a.velocity({
3934                            opacity: 0,
3935                            translateX: -100
3936                        }, {
3937                            duration: b,
3938                            queue: !1
3939                        })
3940                    }
3941
3942                    function d(a) {
3943                        a >= j.length ? a = 0 : a < 0 && (a = j.length - 1), (k = i.find(".active").index()) != a && (e = j.eq(k), $caption = e.find(".caption"), e.removeClass("active"), e.velocity({
3944                            opacity: 0
3945                        }, {
3946                            duration: b.transition,
3947                            queue: !1,
3948                            easing: "easeOutQuad",
3949                            complete: function() {
3950                                j.not(".active").velocity({
3951                                    opacity: 0,
3952                                    translateX: 0,
3953                                    translateY: 0
3954                                }, {
3955                                    duration: 0,
3956                                    queue: !1
3957                                })
3958                            }
3959                        }), c($caption, b.transition), b.indicators && f.eq(k).removeClass("active"), j.eq(a).velocity({
3960                            opacity: 1
3961                        }, {
3962                            duration: b.transition,
3963                            queue: !1,
3964                            easing: "easeOutQuad"
3965                        }), j.eq(a).find(".caption").velocity({
3966                            opacity: 1,
3967                            translateX: 0,
3968                            translateY: 0
3969                        }, {
3970                            duration: b.transition,
3971                            delay: b.transition,
3972                            queue: !1,
3973                            easing: "easeOutQuad"
3974                        }), j.eq(a).addClass("active"), b.indicators && f.eq(a).addClass("active"))
3975                    }
3976                    var e, f, g, h = a(this),
3977                        i = h.find("ul.slides").first(),
3978                        j = i.find("> li"),
3979                        k = i.find(".active").index(); - 1 != k && (e = j.eq(k)), h.hasClass("fullscreen") || (b.indicators ? h.height(b.height + 40) : h.height(b.height), i.height(b.height)), j.find(".caption").each(function() {
3980                        c(a(this), 0)
3981                    }), j.find("img").each(function() {
3982                        var b = "data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
3983                        a(this).attr("src") !== b && (a(this).css("background-image", 'url("' + a(this).attr("src") + '")'), a(this).attr("src", b))
3984                    }), b.indicators && (f = a('<ul class="indicators"></ul>'), j.each(function(c) {
3985                        var e = a('<li class="indicator-item"></li>');
3986                        e.click(function() {
3987                            d(i.parent().find(a(this)).index()), clearInterval(g), g = setInterval(function() {
3988                                k = i.find(".active").index(), j.length == k + 1 ? k = 0 : k += 1, d(k)
3989                            }, b.transition + b.interval)
3990                        }), f.append(e)
3991                    }), h.append(f), f = h.find("ul.indicators").find("li.indicator-item")), e ? e.show() : (j.first().addClass("active").velocity({
3992                        opacity: 1
3993                    }, {
3994                        duration: b.transition,
3995                        queue: !1,
3996                        easing: "easeOutQuad"
3997                    }), k = 0, e = j.eq(k), b.indicators && f.eq(k).addClass("active")), e.find("img").each(function() {
3998                        e.find(".caption").velocity({
3999                            opacity: 1,
4000                            translateX: 0,
4001                            translateY: 0
4002                        }, {
4003                            duration: b.transition,
4004                            queue: !1,
4005                            easing: "easeOutQuad"
4006                        })
4007                    }), g = setInterval(function() {
4008                        k = i.find(".active").index(), d(k + 1)
4009                    }, b.transition + b.interval);
4010                    var l = !1,
4011                        m = !1,
4012                        n = !1;
4013                    h.hammer({
4014                        prevent_default: !1
4015                    }).on("pan", function(a) {
4016                        if ("touch" === a.gesture.pointerType) {
4017                            clearInterval(g);
4018                            var b = a.gesture.direction,
4019                                c = a.gesture.deltaX,
4020                                d = a.gesture.velocityX,
4021                                e = a.gesture.velocityY;
4022                            $curr_slide = i.find(".active"), Math.abs(d) > Math.abs(e) && $curr_slide.velocity({
4023                                translateX: c
4024                            }, {
4025                                duration: 50,
4026                                queue: !1,
4027                                easing: "easeOutQuad"
4028                            }), 4 === b && (c > h.innerWidth() / 2 || d < -.65) ? n = !0 : 2 === b && (c < -1 * h.innerWidth() / 2 || d > .65) && (m = !0);
4029                            var f;
4030                            m && (f = $curr_slide.next(), 0 === f.length && (f = j.first()), f.velocity({
4031                                opacity: 1
4032                            }, {
4033                                duration: 300,
4034                                queue: !1,
4035                                easing: "easeOutQuad"
4036                            })), n && (f = $curr_slide.prev(), 0 === f.length && (f = j.last()), f.velocity({
4037                                opacity: 1
4038                            }, {
4039                                duration: 300,
4040                                queue: !1,
4041                                easing: "easeOutQuad"
4042                            }))
4043                        }
4044                    }).on("panend", function(a) {
4045                        "touch" === a.gesture.pointerType && ($curr_slide = i.find(".active"), l = !1, curr_index = i.find(".active").index(), !n && !m || j.length <= 1 ? $curr_slide.velocity({
4046                            translateX: 0
4047                        }, {
4048                            duration: 300,
4049                            queue: !1,
4050                            easing: "easeOutQuad"
4051                        }) : m ? (d(curr_index + 1), $curr_slide.velocity({
4052                            translateX: -1 * h.innerWidth()
4053                        }, {
4054                            duration: 300,
4055                            queue: !1,
4056                            easing: "easeOutQuad",
4057                            complete: function() {
4058                                $curr_slide.velocity({
4059                                    opacity: 0,
4060                                    translateX: 0
4061                                }, {
4062                                    duration: 0,
4063                                    queue: !1
4064                                })
4065                            }
4066                        })) : n && (d(curr_index - 1), $curr_slide.velocity({
4067                            translateX: h.innerWidth()
4068                        }, {
4069                            duration: 300,
4070                            queue: !1,
4071                            easing: "easeOutQuad",
4072                            complete: function() {
4073                                $curr_slide.velocity({
4074                                    opacity: 0,
4075                                    translateX: 0
4076                                }, {
4077                                    duration: 0,
4078                                    queue: !1
4079                                })
4080                            }
4081                        })), m = !1, n = !1, clearInterval(g), g = setInterval(function() {
4082                            k = i.find(".active").index(), j.length == k + 1 ? k = 0 : k += 1, d(k)
4083                        }, b.transition + b.interval))
4084                    }), h.on("sliderPause", function() {
4085                        clearInterval(g)
4086                    }), h.on("sliderStart", function() {
4087                        clearInterval(g), g = setInterval(function() {
4088                            k = i.find(".active").index(), j.length == k + 1 ? k = 0 : k += 1, d(k)
4089                        }, b.transition + b.interval)
4090                    }), h.on("sliderNext", function() {
4091                        k = i.find(".active").index(), d(k + 1)
4092                    }), h.on("sliderPrev", function() {
4093                        k = i.find(".active").index(), d(k - 1)
4094                    })
4095                })
4096            },
4097            pause: function() {
4098                a(this).trigger("sliderPause")
4099            },
4100            start: function() {
4101                a(this).trigger("sliderStart")
4102            },
4103            next: function() {
4104                a(this).trigger("sliderNext")
4105            },
4106            prev: function() {
4107                a(this).trigger("sliderPrev")
4108            }
4109        };
4110        a.fn.slider = function(c) {
4111            return b[c] ? b[c].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.mtooltip") : b.init.a
4111pply(this, arguments)
4112        }
4113    }(jQuery),
4114    function(a) {
4115        a(document).ready(function() {
4116            a(document).on("click.card", ".card", function(b) {
4117                if (a(this).find("> .card-reveal").length) {
4118                    var c = a(b.target).closest(".card");
4119                    void 0 === c.data("initialOverflow") && c.data("initialOverflow", void 0 === c.css("overflow") ? "" : c.css("overflow")), a(b.target).is(a(".card-reveal .card-title")) || a(b.target).is(a(".card-reveal .card-title i")) ? a(this).find(".card-reveal").velocity({
4120                        translateY: 0
4121                    }, {
4122                        duration: 225,
4123                        queue: !1,
4124                        easing: "easeInOutQuad",
4125                        complete: function() {
4126                            a(this).css({
4127                                display: "none"
4128                            }), c.css("overflow", c.data("initialOverflow"))
4129                        }
4130                    }) : (a(b.target).is(a(".card .activator")) || a(b.target).is(a(".card .activator i"))) && (c.css("overflow", "hidden"), a(this).find(".card-reveal").css({
4131                        display: "block"
4132                    }).velocity("stop", !1).velocity({
4133                        translateY: "-100%"
4134                    }, {
4135                        duration: 300,
4136                        queue: !1,
4137                        easing: "easeInOutQuad"
4138                    }))
4139                }
4140            })
4141        })
4142    }(jQuery),
4143    function(a) {
4144        var b = {
4145            data: [],
4146            placeholder: "",
4147            secondaryPlaceholder: "",
4148            autocompleteOptions: {}
4149        };
4150        a(document).ready(function() {
4151            a(document).on("click", ".chip .close", function(b) {
4152                a(this).closest(".chips").attr("data-initialized") || a(this).closest(".chip").remove()
4153            })
4154        }), a.fn.material_chip = function(c) {
4155            var d = this;
4156            if (this.$el = a(this), this.$document = a(document), this.SELS = {
4157                    CHIPS: ".chips",
4158                    CHIP: ".chip",
4159                    INPUT: "input",
4160                    DELETE: ".material-icons",
4161                    SELECTED_CHIP: ".selected"
4162                }, "data" === c) return this.$el.data("chips");
4163            var e = a.extend({}, b, c);
4164            d.hasAutocomplete = !a.isEmptyObject(e.autocompleteOptions.data), this.init = function() {
4165                var b = 0;
4166                d.$el.each(function() {
4167                    var c = a(this),
4168                        f = Materialize.guid();
4169                    d.chipId = f, e.data && e.data instanceof Array || (e.data = []), c.data("chips", e.data), c.attr("data-index", b), c.attr("data-initialized", !0), c.hasClass(d.SELS.CHIPS) || c.addClass("chips"), d.chips(c, f), b++
4170                })
4171            }, this.handleEvents = function() {
4172                var b = d.SELS;
4173                d.$document.off("click.chips-focus", b.CHIPS).on("click.chips-focus", b.CHIPS, function(c) {
4174                    a(c.target).find(b.INPUT).focus()
4175                }), d.$document.off("click.chips-select", b.CHIP).on("click.chips-select", b.CHIP, function(c) {
4176                    var e = a(c.target);
4177                    if (e.length) {
4178                        var f = e.hasClass("selected"),
4179                            g = e.closest(b.CHIPS);
4180                        a(b.CHIP).removeClass("selected"), f || d.selectChip(e.index(), g)
4181                    }
4182                }), d.$document.off("keydown.chips").on("keydown.chips", function(c) {
4183                    if (!a(c.target).is("input, textarea")) {
4184                        var e, f = d.$document.find(b.CHIP + b.SELECTED_CHIP),
4185                            g = f.closest(b.CHIPS),
4186                            h = f.siblings(b.CHIP).length;
4187                        if (f.length)
4188                            if (8 === c.which || 46 === c.which) {
4189                                c.preventDefault(), e = f.index(), d.deleteChip(e, g);
4190                                var i = null;
4191                                e + 1 < h ? i = e : e !== h && e + 1 !== h || (i = h - 1), i < 0 && (i = null), null !== i && d.selectChip(i, g), h || g.find("input").focus()
4192                            } else if (37 === c.which) {
4193                            if ((e = f.index() - 1) < 0) return;
4194                            a(b.CHIP).removeClass("selected"), d.selectChip(e, g)
4195                        } else if (39 === c.which) {
4196                            if (e = f.index() + 1, a(b.CHIP).removeClass("selected"), e > h) return void g.find("input").focus();
4197                            d.selectChip(e, g)
4198                        }
4199                    }
4200                }), d.$document.off("focusin.chips", b.CHIPS + " " + b.INPUT).on("focusin.chips", b.CHIPS + " " + b.INPUT, function(c) {
4201                    var d = a(c.target).closest(b.CHIPS);
4202                    d.addClass("focus"), d.siblings("label, .prefix").addClass("active"), a(b.CHIP).removeClass("selected")
4203                }), d.$document.off("focusout.chips", b.CHIPS + " " + b.INPUT).on("focusout.chips", b.CHIPS + " " + b.INPUT, function(c) {
4204                    var d = a(c.target).closest(b.CHIPS);
4205                    d.removeClass("focus"), void 0 !== d.data("chips") && d.data("chips").length || d.siblings("label").removeClass("active"), d.siblings(".prefix").removeClass("active")
4206                }), d.$document.off("keydown.chips-add", b.CHIPS + " " + b.INPUT).on("keydown.chips-add", b.CHIPS + " " + b.INPUT, function(c) {
4207                    var e = a(c.target),
4208                        f = e.closest(b.CHIPS),
4209                        g = f.children(b.CHIP).length;
4210                    if (13 === c.which) {
4211                        if (d.hasAutocomplete && f.find(".autocomplete-content.dropdown-content").length && f.find(".autocomplete-content.dropdown-content").children().length) return;
4212                        return c.preventDefault(), d.addChip({
4213                            tag: e.val()
4214                        }, f), void e.val("")
4215                    }
4216                    if ((8 === c.keyCode || 37 === c.keyCode) && "" === e.val() && g) return c.preventDefault(), d.selectChip(g - 1, f), void e.blur()
4217                }), d.$document.off("click.chips-delete", b.CHIPS + " " + b.DELET
4217E).on("click.chips-delete", b.CHIPS + " " + b.DELETE, function(c) {
4218                    var e = a(c.target),
4219                        f = e.closest(b.CHIPS),
4220                        g = e.closest(b.CHIP);
4221                    c.stopPropagation(), d.deleteChip(g.index(), f), f.find("input").focus()
4222                })
4223            }, this.chips = function(b, c) {
4224                b.empty(), b.data("chips").forEach(function(a) {
4225                    b.append(d.renderChip(a))
4226                }), b.append(a('<input id="' + c + '" class="input" placeholder="">')), d.setPlaceholder(b);
4227                var f = b.next("label");
4228                f.length && (f.attr("for", c), void 0 !== b.data("chips") && b.data("chips").length && f.addClass("active"));
4229                var g = a("#" + c);
4230                d.hasAutocomplete && (e.autocompleteOptions.onAutocomplete = function(a) {
4231                    d.addChip({
4232                        tag: a
4233                    }, b), g.val(""), g.focus()
4234                }, g.autocomplete(e.autocompleteOptions))
4235            }, this.renderChip = function(b) {
4236                if (b.tag) {
4237                    var c = a('<div class="chip"></div>');
4238                    return c.text(b.tag), b.image && c.prepend(a("<img />").attr("src", b.image)), c.append(a('<i class="material-icons close">close</i>')), c
4239                }
4240            }, this.setPlaceholder = function(a) {
4241                void 0 !== a.data("chips") && a.data("chips").length && e.placeholder ? a.find("input").prop("placeholder", e.placeholder) : void 0 !== a.data("chips") && a.data("chips").length || !e.secondaryPlaceholder || a.find("input").prop("placeholder", e.secondaryPlaceholder)
4242            }, this.isValid = function(a, b) {
4243                for (var c = a.data("chips"), d = !1, e = 0; e < c.length; e++)
4244                    if (c[e].tag === b.tag) return void(d = !0);
4245                return "" !== b.tag && !d
4246            }, this.addChip = function(a, b) {
4247                if (d.isValid(b, a)) {
4248                    for (var c = d.renderChip(a), e = [], f = b.data("chips"), g = 0; g < f.length; g++) e.push(f[g]);
4249                    e.push(a), b.data("chips", e), c.insertBefore(b.find("input")), b.trigger("chip.add", a), d.setPlaceholder(b)
4250                }
4251            }, this.deleteChip = function(a, b) {
4252                var c = b.data("chips")[a];
4253                b.find(".chip").eq(a).remove();
4254                for (var e = [], f = b.data("chips"), g = 0; g < f.length; g++) g !== a && e.push(f[g]);
4255                b.data("chips", e), b.trigger("chip.delete", c), d.setPlaceholder(b)
4256            }, this.selectChip = function(a, b) {
4257                var c = b.find(".chip").eq(a);
4258                c && !1 === c.hasClass("selected") && (c.addClass("selected"), b.trigger("chip.select", b.data("chips")[a]))
4259            }, this.getChipsElement = function(a, b) {
4260                return b.eq(a)
4261            }, this.init(), this.handleEvents()
4262        }
4263    }(jQuery),
4264    function(a) {
4265        a.fn.pushpin = function(b) {
4266            var c = {
4267                top: 0,
4268                bottom: 1 / 0,
4269                offset: 0
4270            };
4271            return "remove" === b ? (this.each(function() {
4272                (id = a(this).data("pushpin-id")) && (a(window).off("scroll." + id), a(this).removeData("pushpin-id").removeClass("pin-top pinned pin-bottom").removeAttr("style"))
4273            }), !1) : (b = a.extend(c, b), $index = 0, this.each(function() {
4274                function c(a) {
4275                    a.removeClass("pin-top"), a.removeClass("pinned"), a.removeClass("pin-bottom")
4276                }
4277
4278                function d(d, e) {
4279                    d.each(function() {
4280                        b.top <= e && b.bottom >= e && !a(this).hasClass("pinned") && (c(a(this)), a(this).css("top", b.offset), a(this).addClass("pinned")), e < b.top && !a(this).hasClass("pin-top") && (c(a(this)), a(this).css("top", 0), a(this).addClass("pin-top")), e > b.bottom && !a(this).hasClass("pin-bottom") && (c(a(this)), a(this).addClass("pin-bottom"), a(this).css("top", b.bottom - g))
4281                    })
4282                }
4283                var e = Materialize.guid(),
4284                    f = a(this),
4285                    g = a(this).offset().top;
4286                a(this).data("pushpin-id", e), d(f, a(window).scrollTop()), a(window).on("scroll." + e, function() {
4287                    var c = a(window).scrollTop() + b.offset;
4288                    d(f, c)
4289                })
4290            }))
4291        }
4292    }(jQuery),
4293    function(a) {
4294        a(document).ready(function() {
4295            a.fn.reverse = [].reverse, a(document).on("mouseenter.fixedActionBtn", ".fixed-action-btn:not(.click-to-toggle):not(.toolbar)", function(c) {
4296                var d = a(this);
4297                b(d)
4298            }), a(document).on("mouseleave.fixedActionBtn", ".fixed-action-btn:not(.click-to-toggle):not(.toolbar)", function(b) {
4299                var d = a(this);
4300                c(d)
4301            }), a(document).on("click.fabClickToggle", ".fixed-action-btn.click-to-toggle > a", function(d) {
4302                var e = a(this),
4303                    f = e.parent();
4304                f.hasClass("active") ? c(f) : b(f)
4305            }), a(document).on("click.fabToolbar", ".fixed-action-btn.toolbar > a", function(b) {
4306                var c = a(this),
4307                    e = c.parent();
4308                d(e)
4309            })
4310        }), a.fn.extend({
4311            openFAB: function() {
4312                b(a(this))
4313            },
4314            closeFAB: function() {
4315                c(a(this))
4316            },
4317            openToolbar: function() {
4318                d(a(this))
4319            },
4320            closeToolbar: function() {
4321                e(a(this))
4322            }
4323        });
4324        var b = function(b) {
4325                var c = b;
4326                if (!1 === c.hasClass("active")) {
4327                    var d, e, f = c.hasClass("horizontal");
4328                    !0 === f ? e = 40 : d = 40, c.addClass("active"), c.find("ul .btn-floating").velocity({
4329                        scaleY: ".4",
4330                        scaleX: ".4",
4331                        translateY: d + "px",
4332                        translateX: e + "px"
4333                    }, {
4334                        duration: 0
4335                    });
4336                    var g = 0;
4337                    c.find("ul .btn-floating").reverse().each(function() {
4338                        a(this).velocity({
4339                            opacity: "1",
4340                            scaleX: "1",
4341                            scaleY: "1",
4342                            translateY: "0",
4343                            translateX: "0"
4344                        }, {
4345                            duration: 80,
4346                            delay: g
4347                        }), g += 40
4348                    })
4349                }
4350            },
4351            c = function(a) {
4352                var b, c, d = a,
4353                    e = d.hasClass("horizontal");
4354                !0 === e ? c = 40 : b = 40, d.removeClass("active");
4355                d.find("ul .btn-floating").velocity("stop", !0), d.find("ul .btn-floating").velocity({
4356                    opacity: "0",
4357                    scaleX: ".4",
4358                    scaleY: ".4",
4359                    translateY: b + "px",
4360                    translateX: c + "px"
4361                }, {
4362                    duration: 80
4363                })
4364            },
4365            d = function(b) {
4366                if ("true" !== b.attr("data-open")) {
4367                    var c, d, f, g = window.innerWidth,
4368                        h = window.innerHeight,
4369                        i = b[0].getBoundingClientRect(),
4370                        j = b.find("> a").first(),
4371                        k = b.find("> ul").first(),
4372                        l = a('<div class="fab-backdrop"></div>'),
4373                        m = j.css("background-color");
4374                    j.append(l), c = i.left - g / 2 + i.width / 2, d = h - i.bottom, f = g / l.width(), b.attr("data-origin-bottom", i.bottom), b.attr("data-origin-left", i.left), b.attr("data-origin-width", i.width), b.addClass("active"), b.attr("data-open", !0), b.css({
4375                        "text-align": "center",
4376                        width: "100%",
4377                        bottom: 0,
4378                        left: 0,
4379                        transform: "translateX(" + c + "px)",
4380                        transition: "none"
4381                    }), j.css({
4382                        transform: "translateY(" + -d + "px)",
4383                        transition: "none"
4384                    }), l.css({
4385                        "background-color": m
4386                    }), setTimeout(function() {
4387                        b.css({
4388                            transform: "",
4389                            transition: "transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s"
4390                        }), j.css({
4391                            overflow: "visible",
4392                            transform: "",
4393                            transition: "transform .2s"
4394                        }), setTimeout(function() {
4395                            b.css({
4396                                overflow: "hidden",
4397                                "background-color": m
4398                            }), l.css({
4399                                transform: "scale(" + f + ")",
4400                                transition: "transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"
4401                            }), k.find("> li > a").css({
4402                                opacity: 1
4403                            }), a(window).on("scroll.fabToolbarClose", function() {
4404                                e(b), a(window).off("scroll.fabToolbarClose"), a(document).off("click.fabToolbarClose")
4405                            }), a(document).on("click.fabToolbarClose", function(c) {
4406                                a(c.target).closest(k).length || (e(b), a(window).off("scroll.fabToolbarClose"), a(document).off("click.fabToolbarClose"))
4407                            })
4408                        }, 100)
4409                    }, 0)
4410                }
4411            },
4412            e = function(a) {
4413                if ("true" === a.attr("data-open")) {
4414                    var b, c, d = window.innerWidth,
4415                        e = window.innerHeight,
4416                        f = a.attr("data-origin-width"),
4417                        g = a.attr("data-origin-bottom"),
4418                        h = a.attr("data-origin-left"),
4419                        i = a.find("> .btn-floating").first(),
4420                        j = a.find("> ul").first(),
4421                        k = a.find(".fab-backdrop"),
4422                        l = i.css("background-color");
4423                    b = h - d / 2 + f / 2, c = e - g, d / k.width(), a.removeClass("active"), a.attr("data-open", !1), a.css({
4424                        "background-color": "transparent",
4425                        transition: "none"
4426                    }), i.css({
4427                        transition: "none"
4428                    }), k.css({
4429                        transform: "scale(0)",
4430                        "background-color": l
4431                    }), j.find("> li > a").css({
4432                        opacity: ""
4433                    }), setTimeout(function() {
4434                        k.remove(), a.css({
4435                            "text-align": "",
4436                            width: "",
4437                            bottom: "",
4438                            left: "",
4439                            overflow: "",
4440                            "background-color": "",
4441                            transform: "translate3d(" + -b + "px,0,0)"
4442                        }), i.css({
4443                            overflow: "",
4444                            transform: "translate3d(0," + c + "px,0)"
4445                        }), setTimeout(function() {
4446                            a.css({
4447                                transform: "translate3d(0,0,0)",
4448                                transition: "transform .2s"
4449                            }), i.css({
4450                                transform: "translate3d(0,0,0)",
4451                                transition: "transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"
4452                            })
4453                        }, 20)
4454                    }, 200)
4455                }
4456            }
4457    }(jQuery),
4458    function(a) {
4459        Materialize.fadeInImage = function(b) {
4460            var c;
4461            if ("string" == typeof b) c = a(b);
4462            else {
4463                if ("object" != typeof b) return;
4464                c = b
4465            }
4466            c.css({
4467                opacity: 0
4468            }), a(c).velocity({
4469                opacity: 1
4470            }, {
4471                duration: 650,
4472                queue: !1,
4473                easing: "easeOutSine"
4474            }), a(c).velocity({
4475                opacity: 1
4476            }, {
4477                duration: 1300,
4478                queue: !1,
4479                easing: "swing",
4480                step: function(b, c) {
4481                    c.start = 100;
4482                    var d = b / 100,
4483                        e = 150 - (100 - b) / 1.75;
4484                    e < 100 && (e = 100), b >= 0 && a(this).css({
4485                        "-webkit-filter": "grayscale(" + d + ")brightness(" + e + "%)",
4486                        filter: "grayscale(" + d + ")brightness(" + e + "%)"
4487                    })
4488                }
4489            })
4490        }, Materialize.showStaggeredList = function(b) {
4491            var c;
4492            if ("string" == typeof b) c = a(b);
4493            else {
4494                if ("object" != typeof b) return;
4495                c = b
4496            }
4497            var d = 0;
4498            c.find("li").velocity({
4499                translateX: "-100px"
4500            }, {
4501                duration: 0
4502            }), c.find("li").each(function() {
4503                a(this).velocity({
4504                    opacity: "1",
4505                    translateX: "0"
4506                }, {
4507                    duration: 800,
4508                    delay: d,
4509                    easing: [60, 10]
4510                }), d += 120
4511            })
4512        }, a(document).ready(function() {
4513            var b = !1,
4514                c = !1;
4515            a(".dismissable").each(function() {
4516                a(this).hammer({
4517                    prevent_default: !1
4518                }).on("pan", function(d) {
4519                    if ("touch" === d.gesture.pointerType) {
4520                        var e = a(this),
4521                            f = d.gesture.direction,
4522                            g = d.gesture.deltaX,
4523                            h = d.gesture.velocityX;
4524                        e.velocity({
4525                            translateX: g
4526                        }, {
4527                            duration: 50,
4528                            queue: !1,
4529                            easing: "easeOutQuad"
4530                        }), 4 === f && (g > e.innerWidth() / 2 || h < -.75) && (b = !0), 2 === f && (g < -1 * e.innerWidth() / 2 || h > .75) && (c = !0)
4531                    }
4532                }).on("panend", function(d) {
4533                    if (Math.abs(d.gesture.deltaX) < a(this).innerWidth() / 2 && (c = !1, b = !1), "touch" === d.gesture.pointerType) {
4534                        var e = a(this);
4535                        if (b || c) {
4536                            var f;
4537                            f = b ? e.innerWidth() : -1 * e.innerWidth(), e.velocity({
4538                                translateX: f
4539                            }, {
4540                                duration: 100,
4541                                queue: !1,
4542                                easing: "easeOutQuad",
4543                                complete: function() {
4544                                    e.css("border", "none"), e.velocity({
4545                                        height: 0,
4546                                        padding: 0
4547                                    }, {
4548                                        duration: 200,
4549                                        queue: !1,
4550                                        easing: "easeOutQuad",
4551                                        complete: function() {
4552                                            e.remove()
4553                                        }
4554                                    })
4555                                }
4556                            })
4557                        } else e.velocity({
4558                            translateX: 0
4559                        }, {
4560                            duration: 100,
4561                            queue: !1,
4562                            easing: "easeOutQuad"
4563                        });
4564                        b = !1, c = !1
4565                    }
4566                })
4567            })
4568        })
4569    }(jQuery),
4570    function(a) {
4571        var b = !1;
4572        Materialize.scrollFire = function(a) {
4573            var c = function() {
4574                    for (var b = window.pageYOffset + window.innerHeight, c = 0; c < a.length; c++) {
4575                        var d = a[c],
4576                            e = d.selector,
4577                            f = d.offset,
4578                            g = d.callback,
4579                            h = document.querySelector(e);
4580                        if (null !== h) {
4581                            if (b > h.getBoundingClientRect().top + window.pageYOffset + f && !0 !== d.done) {
4582                                if ("function" == typeof g) g.call(this, h);
4583                                else if ("string" == typeof g) {
4584                                    var i = new Function(g);
4585                                    i(h)
4586                                }
4587                                d.done = !0
4588                            }
4589                        }
4590                    }
4591                },
4592                d = Materialize.throttle(function() {
4593                    c()
4594                }, a.throttle || 100);
4595            b || (window.addEventListener("scroll", d), window.addEventListener("resize", d), b = !0), setTimeout(d, 0)
4596        }
4597    }(),
4598    function(a) {
4599        "function" == typeof define && define.amd ? define("picker", ["jquery"], a) : "object" == typeof exports ? module.exports = a(require("jquery")) : this.Picker = a(jQuery)
4600    }(function(a) {
4601        function b(f, g, i, l) {
4602            function m() {
4603                return b._.node("div", b._.node("div", b._.node("div", b._.node("div", y.component.nodes(t.open), v.box), v.wrap), v.frame), v.holder)
4604            }
4605
4606            function n() {
4607                w.data(g, y).addClass(v.input).attr("tabindex", -1).val(w.data("value") ? y.get("select", u.format) : f.value), u.editable || w.on("focus." + t.id + " click." + t.id, function(a) {
4608                    a.preventDefault(), y.$root.eq(0).focus()
4609                }).on("keydown." + t.id, q), e(f, {
4610                    haspopup: !0,
4611                    expanded: !1,
4612                    readonly: !1,
4613                    owns: f.id + "_root"
4614                })
4615            }
4616
4617            function o() {
4618                y.$root.on({
4619                    keydown: q,
4620                    focusin: function(a) {
4621                        y.$root.removeClass(v.focused), a.stopPropagation()
4622                    },
4623                    "mousedown click": function(b) {
4624                        var c = b.target;
4625                        c != y.$root.children()[0] && (b.stopPropagation(), "mousedown" != b.type || a(c).is("input, select, textarea, button, option") || (b.preventDefault(), y.$root.eq(0).focus()))
4626                    }
4627                }).on({
4628                    focus: function() {
4629                        w.addClass(v.target)
4630                    },
4631                    blur: function() {
4632                        w.removeClass(v.target)
4633                    }
4634                }).on("focus.toOpen", r).on("click", "[data-pick], [data-nav], [data-clear], [data-close]", function() {
4635                    var b = a(this),
4636                        c = b.data(),
4637                        d = b.hasClass(v.navDisabled) || b.hasClass(v.disabled),
4638                        e = h();
4639                    e = e && (e.type || e.href), (d || e && !a.contains(y.$root[0], e)) && y.$root.eq(0).focus(), !d && c.nav ? y.set("highlight", y.component.item.highlight, {
4640                        nav: c.nav
4641                    }) : !d && "pick" in c ? y.set("select", c.pick) : c.clear ? y.clear().close(!0) : c.close && y.close(!0)
4642                }), e(y.$root[0], "hidden", !0)
4643            }
4644
4645            function p() {
4646                var b;
4647                !0 === u.hiddenName ? (b = f.name, f.name = "") : (b = ["string" == typeof u.hiddenPrefix ? u.hiddenPrefix : "", "string" == typeof u.hiddenSuffix ? u.hiddenSuffix : "_submit"], b = b[0] + f.name + b[1]), y._hidden = a('<input type=hidden name="' + b + '"' + (w.data("value") || f.value ? ' value="' + y.get("select", u.formatSubmit) + '"' : "") + ">")[0], w.on("change." + t.id, function() {
4648                    y._hidden.value = f.value ? y.get("select", u.formatSubmit) : ""
4649                }), u.container ? a(u.container).append(y._hidden) : w.after(y._hidden)
4650            }
4651
4652            function q(a) {
4653                var b = a.keyCode,
4654                    c = /^(8|46)$/.test(b);
4655                if (27 == b) return y.close(), !1;
4656                (32 == b || c || !t.open && y.component.key[b]) && (a.preventDefault(), a.stopPropagation(), c ? y.clear().close() : y.open())
4657            }
4658
4659            function r(a) {
4660                a.stopPropagation(), "focus" == a.type && y.$root.addClass(v.focused), y.open()
4661            }
4662            if (!f) return b;
4663            var s = !1,
4664                t = {
4665                    id: f.id || "P" + Math.abs(~~(Math.random() * new Date))
4666                },
4667                u = i ? a.extend(!0, {}, i.defaults, l) : l || {},
4668                v = a.extend({}, b.klasses(), u.klass),
4669                w = a(f),
4670                x = function() {
4671                    return this.start()
4672                },
4673                y = x.prototype = {
4674                    constructor: x,
4675                    $node: w,
4676                    start: function() {
4677                        return t && t.start ? y : (t.methods = {}, t.start = !0, t.open = !1, t.type = f.type, f.autofocus = f == h(), f.readOnly = !u.editable, f.id = f.id || t.id, "text" != f.type && (f.type = "text"), y.c
4677omponent = new i(y, u), y.$root = a(b._.node("div", m(), v.picker, 'id="' + f.id + '_root" tabindex="0"')), o(), u.formatSubmit && p(), n(), u.container ? a(u.container).append(y.$root) : w.after(y.$root), y.on({
4678                            start: y.component.onStart,
4679                            render: y.component.onRender,
4680                            stop: y.component.onStop,
4681                            open: y.component.onOpen,
4682                            close: y.component.onClose,
4683                            set: y.component.onSet
4684                        }).on({
4685                            start: u.onStart,
4686                            render: u.onRender,
4687                            stop: u.onStop,
4688                            open: u.onOpen,
4689                            close: u.onClose,
4690                            set: u.onSet
4691                        }), s = c(y.$root.children()[0]), f.autofocus && y.open(), y.trigger("start").trigger("render"))
4692                    },
4693                    render: function(a) {
4694                        return a ? y.$root.html(m()) : y.$root.find("." + v.box).html(y.component.nodes(t.open)), y.trigger("render")
4695                    },
4696                    stop: function() {
4697                        return t.start ? (y.close(), y._hidden && y._hidden.parentNode.removeChild(y._hidden), y.$root.remove(), w.removeClass(v.input).removeData(g), setTimeout(function() {
4698                            w.off("." + t.id)
4699                        }, 0), f.type = t.type, f.readOnly = !1, y.trigger("stop"), t.methods = {}, t.start = !1, y) : y
4700                    },
4701                    open: function(c) {
4702                        return t.open ? y : (w.addClass(v.active), e(f, "expanded", !0), setTimeout(function() {
4703                            y.$root.addClass(v.opened), e(y.$root[0], "hidden", !1)
4704                        }, 0), !1 !== c && (t.open = !0, s && k.css("overflow", "hidden").css("padding-right", "+=" + d()), y.$root.eq(0).focus(), j.on("click." + t.id + " focusin." + t.id, function(a) {
4705                            var b = a.target;
4706                            b != f && b != document && 3 != a.which && y.close(b === y.$root.children()[0])
4707                        }).on("keydown." + t.id, function(c) {
4708                            var d = c.keyCode,
4709                                e = y.component.key[d],
4710                                f = c.target;
4711                            27 == d ? y.close(!0) : f != y.$root[0] || !e && 13 != d ? a.contains(y.$root[0], f) && 13 == d && (c.preventDefault(), f.click()) : (c.preventDefault(), e ? b._.trigger(y.component.key.go, y, [b._.trigger(e)]) : y.$root.find("." + v.highlighted).hasClass(v.disabled) || y.set("select", y.component.item.highlight).close())
4712                        })), y.trigger("open"))
4713                    },
4714                    close: function(a) {
4715                        return a && (y.$root.off("focus.toOpen").eq(0).focus(), setTimeout(function() {
4716                            y.$root.on("focus.toOpen", r)
4717                        }, 0)), w.removeClass(v.active), e(f, "expanded", !1), setTimeout(function() {
4718                            y.$root.removeClass(v.opened + " " + v.focused), e(y.$root[0], "hidden", !0)
4719                        }, 0), t.open ? (t.open = !1, s && k.css("overflow", "").css("padding-right", "-=" + d()), j.off("." + t.id), y.trigger("close")) : y
4720                    },
4721                    clear: function(a) {
4722                        return y.set("clear", null, a)
4723                    },
4724                    set: function(b, c, d) {
4725                        var e, f, g = a.isPlainObject(b),
4726                            h = g ? b : {};
4727                        if (d = g && a.isPlainObject(c) ? c : d || {}, b) {
4728                            g || (h[b] = c);
4729                            for (e in h) f = h[e], e in y.component.item && (void 0 === f && (f = null), y.component.set(e, f, d)), "select" != e && "clear" != e || w.val("clear" == e ? "" : y.get(e, u.format)).trigger("change");
4730                            y.render()
4731                        }
4732                        return d.muted ? y : y.trigger("set", h)
4733                    },
4734                    get: function(a, c) {
4735                        if (a = a || "value", null != t[a]) return t[a];
4736                        if ("valueSubmit" == a) {
4737                            if (y._hidden) return y._hidden.value;
4738                            a = "value"
4739                        }
4740                        if ("value" == a) return f.value;
4741                        if (a in y.component.item) {
4742                            if ("string" == typeof c) {
4743                                var d = y.component.get(a);
4744                                return d ? b._.trigger(y.component.formats.toString, y.component, [c, d]) : ""
4745                            }
4746                            return y.component.get(a)
4747                        }
4748                    },
4749                    on: function(b, c, d) {
4750                        var e, f, g = a.isPlainObject(b),
4751                            h = g ? b : {};
4752                        if (b) {
4753                            g || (h[b] = c);
4754                            for (e in h) f = h[e], d && (e = "_" + e), t.methods[e] = t.methods[e] || [], t.methods[e].push(f)
4755                        }
4756                        return y
4757                    },
4758                    off: function() {
4759                        var a, b, c = arguments;
4760                        for (a = 0, namesCount = c.length; a < namesCount; a += 1)(b = c[a]) in t.methods && delete t.methods[b];
4761                        return y
4762                    },
4763                    trigger: function(a, c) {
4764                        var d = function(a) {
4765                            var d = t.methods[a];
4766                            d && d.map(function(a) {
4767                                b._.trigger(a, y, [c])
4768                            })
4769                        };
4770                        return d("_" + a), d(a), y
4771                    }
4772                };
4773            return new x
4774        }
4775
4776        function c(a) {
4777            var b;
4778            return a.currentStyle ? b = a.currentStyle.position : window.getComputedStyle && (b = getComputedStyle(a).position), "fixed" == b
4779        }
4780
4781        function d() {
4782            if (k.height() <= i.height()) return 0;
4783            var b = a('<div style="visibility:hidden;width:100px" />').appendTo("body"),
4784                c = b[0].offsetWidth;
4785            b.css("overflow", "scroll");
4786            var d = a('<div style="width:100%" />').appendTo(b),
4787                e = d[0].offsetWidth;
4788            return b.remove(), c - e
4789        }
4790
4791        function e(b, c, d) {
4792            if (a.isPlainObject(c))
4793                for (var e in c) f(b, e, c[e]);
4794            else f(b, c, d)
4795        }
4796
4797        function f(a, b, c) {
4798            a.setAttribute(("role" == b ? "" : "aria-") + b, c)
4799        }
4800
4801        function g(b, c) {
4802            a.isPlainObject(b) || (b = {
4803                attribute: c
4804            }), c = "";
4805            for (var d in b) {
4806                var e = ("role" == d ? "" : "aria-") + d;
4807                c += null == b[d] ? "" : e + '="' + b[d] + '"'
4808            }
4809            return c
4810        }
4811
4812        function h() {
4813            try {
4814                return document.activeElement
4815            } catch (a) {}
4816        }
4817        var i = a(window),
4818            j = a(document),
4819            k = a(document.documentElement);
4820        return b.klasses = function(a) {
4821            return a = a || "picker", {
4822                picker: a,
4823                opened: a + "--opened",
4824                focused: a + "--focused",
4825                input: a + "__input",
4826                active: a + "__input--active",
4827                target: a + "__input--target",
4828                holder: a + "__holder",
4829                frame: a + "__frame",
4830                wrap: a + "__wrap",
4831                box: a + "__box"
4832            }
4833        }, b._ = {
4834            group: function(a) {
4835                for (var c, d = "", e = b._.trigger(a.min, a); e <= b._.trigger(a.max, a, [e]); e += a.i) c = b._.trigger(a.item, a, [e]), d += b._.node(a.node, c[0], c[1], c[2]);
4836                return d
4837            },
4838            node: function(b, c, d, e) {
4839                return c ? (c = a.isArray(c) ? c.join("") : c, d = d ? ' class="' + d + '"' : "", e = e ? " " + e : "", "<" + b + d + e + ">" + c + "</" + b + ">") : ""
4840            },
4841            lead: function(a) {
4842                return (a < 10 ? "0" : "") + a
4843            },
4844            trigger: function(a, b, c) {
4845                return "function" == typeof a ? a.apply(b, c || []) : a
4846            },
4847            digits: function(a) {
4848                return /\d/.test(a[1]) ? 2 : 1
4849            },
4850            isDate: function(a) {
4851                return {}.toString.call(a).indexOf("Date") > -1 && this.isInteger(a.getDate())
4852            },
4853            isInteger: function(a) {
4854                return {}.toString.call(a).indexOf("Number") > -1 && a % 1 == 0
4855            },
4856            ariaAttr: g
4857        }, b.extend = function(c, d) {
4858            a.fn[c] = function(e, f) {
4859                var g = this.data(c);
4860                return "picker" == e ? g : g && "string" == typeof e ? b._.trigger(g[e], g, [f]) : this.each(function() {
4861                    a(this).data(c) || new b(this, c, d, e)
4862                })
4863            }, a.fn[c].defaults = d.defaults
4864        }, b
4865    }),
4866    function(a) {
4867        "function" == typeof define && define.amd ? define(["picker", "jquery"], a) : "object" == typeof exports ? module.exports = a(require("./picker.js"), require("jquery")) : a(Picker, jQuery)
4868    }(function(a, b) {
4869        function c(a, b) {
4870            var c = this,
4871                d = a.$node[0],
4872                e = d.value,
4873                f = a.$node.data("value"),
4874                g = f || e,
4875                h = f ? b.formatSubmit : b.format,
4876                i = function() {
4877                    return d.currentStyle ? "rtl" == d.currentStyle.direction : "rtl" == getComputedStyle(a.$root[0]).direction
4878                };
4879            c.settings = b, c.$node = a.$node, c.queue = {
4880                min: "measure create",
4881                max: "measure create",
4882                now: "now create",
4883                select: "parse create validate",
4884                highlight: "parse navigate create validate",
4885                view: "parse create validate viewset",
4886                disable: "deactivate",
4887                enable: "activate"
4888            }, c.item = {}, c.item.clear = null, c.item.disable = (b.disable || []).slice(0), c.item.enable = - function(a) {
4889                return !0 === a[0] ? a.shift() : -1
4890            }(c.item.disable), c.set("min", b.min).set("max", b.max).set("now"), g ? c.set("select", g, {
4891                format: h
4892            }) : c.set("select", null).set("highlight", c.item.now), c.key = {
4893                40: 7,
4894                38: -7,
4895                39: function() {
4896                    return i() ? -1 : 1
4897                },
4898                37: function() {
4899                    return i() ? 1 : -1
4900                },
4901                go: function(a) {
4902                    var b = c.item.highlight,
4903                        d = new Date(b.year, b.month, b.date + a);
4904                    c.set("highlight", d, {
4905                        interval: a
4906                    }), this.render()
4907                }
4908            }, a.on("render", function() {
4909                a.$root.find("." + b.klass.selectMonth).on("change", function() {
4910                    var c = this.value;
4911                    c && (a.set("highlight", [a.get("view").year, c, a.get("highlight").date]), a.$root.find("." + b.klass.selectMonth).trigger("focus"))
4912                }), a.$root.find("." + b.klass.selectYear).on("change", function() {
4913                    var c = this.value;
4914                    c && (a.set("highlight", [c, a.get("view").month, a.get("highlight").date]), a.$root.find("." + b.klass.selectYear).trigger("focus"))
4915                })
4916            }, 1).on("open", function() {
4917                var d = "";
4918                c.disabled(c.get("now")) && (d = ":not(." + b.klass.buttonToday + ")"), a.$root.find("button" + d + ", select").attr("disabled", !1)
4919            }, 1).on("close", function() {
4920                a.$root.find("button, select").attr("disabled", !0)
4921            }, 1)
4922        }
4923        var d = a._;
4924        c.prototype.set = function(a, b, c) {
4925            var d = this,
4926                e = d.item;
4927            return null === b ? ("clear" == a && (a = "select"), e[a] = b, d) : (e["enable" == a ? "disable" : "flip" == a ? "enable" : a] = d.queue[a].split(" ").map(function(e) {
4928                    return b = d[e](a, b, c)
4929                }).pop(),
4930                "select" == a ? d.set("highlight", e.select, c) : "highlight" == a ? d.set("view", e.highlight, c) : a.match(/^(flip|min|max|disable|enable)$/) && (e.select && d.disabled(e.select) && d.set("select", e.select, c), e.highlight && d.disabled(e.highlight) && d.set("highlight", e.highlight, c)), d)
4931        }, c.prototype.get = function(a) {
4932            return this.item[a]
4933        }, c.prototype.create = function(a, c, e) {
4934            var f, g = this;
4935            return c = void 0 === c ? a : c, c == -1 / 0 || c == 1 / 0 ? f = c : b.isPlainObject(c) && d.isInteger(c.pick) ? c = c.obj : b.isArray(c) ? (c = new Date(c[0], c[1], c[2]), c = d.isDate(c) ? c : g.create().obj) : c = d.isInteger(c) || d.isDate(c) ? g.normalize(new Date(c), e) : g.now(a, c, e), {
4936                year: f || c.getFullYear(),
4937                month: f || c.getMonth(),
4938                date: f || c.getDate(),
4939                day: f || c.getDay(),
4940                obj: f || c,
4941                pick: f || c.getTime()
4942            }
4943        }, c.prototype.createRange = function(a, c) {
4944            var e = this,
4945                f = function(a) {
4946                    return !0 === a || b.isArray(a) || d.isDate(a) ? e.create(a) : a
4947                };
4948            return d.isInteger(a) || (a = f(a)), d.isInteger(c) || (c = f(c)), d.isInteger(a) && b.isPlainObject(c) ? a = [c.year, c.month, c.date + a] : d.isInteger(c) && b.isPlainObject(a) && (c = [a.year, a.month, a.date + c]), {
4949                from: f(a),
4950                to: f(c)
4951            }
4952        }, c.prototype.withinRange = function(a, b) {
4953            return a = this.createRange(a.from, a.to), b.pick >= a.from.pick && b.pick <= a.to.pick
4954        }, c.prototype.overlapRanges = function(a, b) {
4955            var c = this;
4956            return a = c.createRange(a.from, a.to), b = c.createRange(b.from, b.to), c.withinRange(a, b.from) || c.withinRange(a, b.to) || c.withinRange(b, a.from) || c.withinRange(b, a.to)
4957        }, c.prototype.now = function(a, b, c) {
4958            return b = new Date, c && c.rel && b.setDate(b.getDate() + c.rel), this.normalize(b, c)
4959        }, c.prototype.navigate = function(a, c, d) {
4960            var e, f, g, h, i = b.isArray(c),
4961                j = b.isPlainObject(c),
4962                k = this.item.view;
4963            if (i || j) {
4964                for (j ? (f = c.year, g = c.month, h = c.date) : (f = +c[0], g = +c[1], h = +c[2]), d && d.nav && k && k.month !== g && (f = k.year, g = k.month), e = new Date(f, g + (d && d.nav ? d.nav : 0), 1), f = e.getFullYear(), g = e.getMonth(); new Date(f, g, h).getMonth() !== g;) h -= 1;
4965                c = [f, g, h]
4966            }
4967            return c
4968        }, c.prototype.normalize = function(a) {
4969            return a.setHours(0, 0, 0, 0), a
4970        }, c.prototype.measure = function(a, b) {
4971            var c = this;
4972            return b ? "string" == typeof b ? b = c.parse(a, b) : d.isInteger(b) && (b = c.now(a, b, {
4973                rel: b
4974            })) : b = "min" == a ? -1 / 0 : 1 / 0, b
4975        }, c.prototype.viewset = function(a, b) {
4976            return this.create([b.year, b.month, 1])
4977        }, c.prototype.validate = function(a, c, e) {
4978            var f, g, h, i, j = this,
4979                k = c,
4980                l = e && e.interval ? e.interval : 1,
4981                m = -1 === j.item.enable,
4982                n = j.item.min,
4983                o = j.item.max,
4984                p = m && j.item.disable.filter(function(a) {
4985                    if (b.isArray(a)) {
4986                        var e = j.create(a).pick;
4987                        e < c.pick ? f = !0 : e > c.pick && (g = !0)
4988                    }
4989                    return d.isInteger(a)
4990                }).length;
4991            if ((!e || !e.nav) && (!m && j.disabled(c) || m && j.disabled(c) && (p || f || g) || !m && (c.pick <= n.pick || c.pick >= o.pick)))
4992                for (m && !p && (!g && l > 0 || !f && l < 0) && (l *= -1); j.disabled(c) && (Math.abs(l) > 1 && (c.month < k.month || c.month > k.month) && (c = k, l = l > 0 ? 1 : -1), c.pick <= n.pick ? (h = !0, l = 1, c = j.create([n.year, n.month, n.date + (c.pick === n.pick ? 0 : -1)])) : c.pick >= o.pick && (i = !0, l = -1, c = j.create([o.year, o.month, o.date + (c.pick === o.pick ? 0 : 1)])), !h || !i);) c = j.create([c.year, c.month, c.date + l]);
4993            return c
4994        }, c.prototype.disabled = function(a) {
4995            var c = this,
4996                e = c.item.disable.filter(function(e) {
4997                    return d.isInteger(e) ? a.day === (c.settings.firstDay ? e : e - 1) % 7 : b.isArray(e) || d.isDate(e) ? a.pick === c.create(e).pick : b.isPlainObject(e) ? c.withinRange(e, a) : void 0
4998                });
4999            return e = e.length && !e.filter(function(a) {
5000                return b.isArray(a) && "inverted" == a[3] || b.isPlainObject(a) && a.inverted
5001            }).length, -1 === c.item.enable ? !e : e || a.pick < c.item.min.pick || a.pick > c.item.max.pick
5002        }, c.prototype.parse = function(a, b, c) {
5003            var e = this,
5004                f = {};
5005            return b && "string" == typeof b ? (c && c.format || (c = c || {}, c.format = e.settings.format), e.formats.toArray(c.format).map(function(a) {
5006                var c = e.formats[a],
5007                    g = c ? d.trigger(c, e, [b, f]) : a.replace(/^!/, "").length;
5008                c && (f[a] = b.substr(0, g)), b = b.substr(g)
5009            }), [f.yyyy || f.yy, +(f.mm || f.m) - 1, f.dd || f.d]) : b
5010        }, c.prototype.formats = function() {
5011            function a(a, b, c) {
5012                var d = a.match(/\w+/)[0];
5013                return c.mm || c.m || (c.m = b.indexOf(d) + 1), d.length
5014            }
5015
5016            function b(a) {
5017                return a.match(/\w+/)[0].length
5018            }
5019            return {
5020                d: function(a, b) {
5021                    return a ? d.digits(a) : b.date
5022                },
5023                dd: function(a, b) {
5024                    return a ? 2 : d.lead(b.date)
5025                },
5026                ddd: function(a, c) {
5027                    return a ? b(a) : this.settings.weekdaysShort[c.day]
5028                },
5029                dddd: function(a, c) {
5030                    return a ? b(a) : this.settings.weekdaysFull[c.day]
5031                },
5032                m: function(a, b) {
5033                    return a ? d.digits(a) : b.month + 1
5034                },
5035                mm: function(a, b) {
5036                    return a ? 2 : d.lead(b.month + 1)
5037                },
5038                mmm: function(b, c) {
5039                    var d = this.settings.monthsShort;
5040                    return b ? a(b, d, c) : d[c.month]
5041                },
5042                mmmm: function(b, c) {
5043                    var d = this.settings.monthsFull;
5044                    return b ? a(b, d, c) : d[c.month]
5045                },
5046                yy: function(a, b) {
5047                    return a ? 2 : ("" + b.year).slice(2)
5048                },
5049                yyyy: function(a, b) {
5050                    return a ? 4 : b.year
5051                },
5052                toArray: function(a) {
5053                    return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)
5054                },
5055                toString: function(a, b) {
5056                    var c = this;
5057                    return c.formats.toArray(a).map(function(a) {
5058                        return d.trigger(c.formats[a], c, [0, b]) || a.replace(/^!/, "")
5059                    }).join("")
5060                }
5061            }
5062        }(), c.prototype.isDateExact = function(a, c) {
5063            var e = this;
5064            return d.isInteger(a) && d.isInteger(c) || "boolean" == typeof a && "boolean" == typeof c ? a === c : (d.isDate(a) || b.isArray(a)) && (d.isDate(c) || b.isArray(c)) ? e.create(a).pick === e.create(c).pick : !(!b.isPlainObject(a) || !b.isPlainObject(c)) && (e.isDateExact(a.from, c.from) && e.isDateExact(a.to, c.to))
5065        }, c.prototype.isDateOverlap = function(a, c) {
5066            var e = this,
5067                f = e.settings.firstDay ? 1 : 0;
5068            return d.isInteger(a) && (d.isDate(c) || b.isArray(c)) ? (a = a % 7 + f) === e.create(c).day + 1 : d.isInteger(c) && (d.isDate(a) || b.isArray(a)) ? (c = c % 7 + f) === e.create(a).day + 1 : !(!b.isPlainObject(a) || !b.isPlainObject(c)) && e.overlapRanges(a, c)
5069        }, c.prototype.flipEnable = function(a) {
5070            var b = this.item;
5071            b.enable = a || (-1 == b.enable ? 1 : -1)
5072        }, c.prototype.deactivate = function(a, c) {
5073            var e = this,
5074                f = e.item.disable.slice(0);
5075            return "flip" == c ? e.flipEnable() : !1 === c ? (e.flipEnable(1), f = []) : !0 === c ? (e.flipEnable(-1), f = []) : c.map(function(a) {
5076                for (var c, g = 0; g < f.length; g += 1)
5077                    if (e.isDateExact(a, f[g])) {
5078                        c = !0;
5079                        break
5080                    } c || (d.isInteger(a) || d.isDate(a) || b.isArray(a) || b.isPlainObject(a) && a.from && a.to) && f.push(a)
5081            }), f
5082        }, c.prototype.activate = function(a, c) {
5083            var e = this,
5084                f = e.item.disable,
5085                g = f.length;
5086            return "flip" == c ? e.flipEnable() : !0 === c ? (e.flipEnable(1), f = []) : !1 === c ? (e.flipEnable(-1), f = []) : c.map(function(a) {
5087                var c, h, i, j;
5088                for (i = 0; i < g; i += 1) {
5089                    if (h = f[i], e.isDateExact(h, a)) {
5090                        c = f[i] = null, j = !0;
5091                        break
5092                    }
5093                    if (e.isDateOverlap(h, a)) {
5094                        b.isPlainObject(a) ? (a.inverted = !0, c = a) : b.isArray(a) ? (c = a, c[3] || c.push("inverted")) : d.isDate(a) && (c = [a.getFullYear(), a.getMonth(), a.getDate(), "inverted"]);
5095                        break
5096                    }
5097                }
5098                if (c)
5099                    for (i = 0; i < g; i += 1)
5100                        if (e.isDateExact(f[i], a)) {
5101                            f[i] = null;
5102                            break
5103                        } if (j)
5104                    for (i = 0; i < g; i += 1)
5105                        if (e.isDateOverlap(f[i], a)) {
5106                            f[i] = null;
5107                            break
5108                        } c && f.push(c)
5109            }), f.filter(function(a) {
5110                return null != a
5111            })
5112        }, c.prototype.nodes = function(a) {
5113            var b = this,
5114                c = b.settings,
5115                e = b.item,
5116                f = e.now,
5117                g = e.select,
5118                h = e.highlight,
5119                i = e.view,
5120                j = e.disable,
5121                k = e.min,
5122                l = e.max,
5123                m = function(a, b) {
5124                    return c.firstDay && (a.push(a.shift()), b.push(b.shift())), d.node("thead", d.node("tr", d.group({
5125                        min: 0,
5126                        max: 6,
5127                        i: 1,
5128                        node: "th",
5129                        item: function(d) {
5130                            return [a[d], c.klass.weekdays, 'scope=col title="' + b[d] + '"']
5131                        }
5132                    })))
5133                }((c.showWeekdaysFull ? c.weekdaysFull : c.weekdaysLetter).slice(0), c.weekdaysFull.slice(0)),
5134                n = function(a) {
5135                    return d.node("div", " ", c.klass["nav" + (a ? "Next" : "Prev")] + (a && i.year >= l.year && i.month >= l.month || !a && i.year <= k.year && i.month <= k.month ? " " + c.klass.navDisabled : ""), "data-nav=" + (a || -1) + " " + d.ariaAttr({
5136                        role: "button",
5137                        controls: b.$node[0].id + "_table"
5138                    }) + ' title="' + (a ? c.labelMonthNext : c.labelMonthPrev) + '"')
5139                },
5140                o = function(e) {
5141                    var f = c.showMonthsShort ? c.monthsShort : c.monthsFull;
5142                    return "short_months" == e && (f = c.monthsShort), c.selectMonths && void 0 == e ? d.node("select", d.group({
5143                        min: 0,
5144                        max: 11,
5145                        i: 1,
5146                        node: "option",
5147                        item: function(a) {
5148                            return [f[a], 0, "value=" + a + (i.month == a ? " selected" : "") + (i.year == k.year && a < k.month || i.year == l.year && a > l.month ? " disabled" : "")]
5149                        }
5150                    }), c.klass.selectMonth + " browser-default", (a ? "" : "disabled") + " " + d.ariaAttr({
5151                        controls: b.$node[0].id + "_table"
5152                    }) + ' title="' + c.labelMonthSelect + '"') : "short_months" == e ? null != g ? f[g.month] : f[i.month] : d.node("div", f[i.month], c.klass.month)
5153                },
5154                p = function(e) {
5155                    var f = i.year,
5156                        g = !0 === c.selectYears ? 5 : ~~(c.selectYears / 2);
5157                    if (g) {
5158                        var h = k.year,
5159                            j = l.year,
5160                            m = f - g,
5161                            n = f + g;
5162                        if (h > m && (n += h - m, m = h), j < n) {
5163                            var o = m - h,
5164                                p = n - j;
5165                            m -= o > p ? p : o, n = j
5166                        }
5167                        if (c.selectYears && void 0 == e) return d.node("select", d.group({
5168                            min: m,
5169                            max: n,
5170                            i: 1,
5171                            node: "option",
5172                            item: function(a) {
5173                                return [a, 0, "value=" + a + (f == a ? " selected" : "")]
5174                            }
5175                        }), c.klass.selectYear + " browser-default", (a ? "" : "disabled") + " " + d.ariaAttr({
5176                            controls: b.$node[0].id + "_table"
5177                        }) + ' title="' + c.labelYearSelect + '"')
5178                    }
5179                    return "raw" == e ? d.node("div", f) : d.node("div", f, c.klass.year)
5180                };
5181            return createDayLabel = function() {
5182                return null != g ? g.date : f.date
5183            }, createWeekdayLabel = function() {
5184                var a;
5185                return a = null != g ? g.day : f.day, c.weekdaysShort[a]
5186            }
5186, d.node("div", d.node("div", p("raw"), c.klass.year_display) + d.node("span", createWeekdayLabel() + ", ", "picker__weekday-display") + d.node("span", o("short_months") + " ", c.klass.month_display) + d.node("span", createDayLabel(), c.klass.day_display), c.klass.date_display) + d.node("div", d.node("div", d.node("div", (c.selectYears, o() + p() + n() + n(1)), c.klass.header) + d.node("table", m + d.node("tbody", d.group({
5187                min: 0,
5188                max: 5,
5189                i: 1,
5190                node: "tr",
5191                item: function(a) {
5192                    var e = c.firstDay && 0 === b.create([i.year, i.month, 1]).day ? -7 : 0;
5193                    return [d.group({
5194                        min: 7 * a - i.day + e + 1,
5195                        max: function() {
5196                            return this.min + 7 - 1
5197                        },
5198                        i: 1,
5199                        node: "td",
5200                        item: function(a) {
5201                            a = b.create([i.year, i.month, a + (c.firstDay ? 1 : 0)]);
5202                            var e = g && g.pick == a.pick,
5203                                m = h && h.pick == a.pick,
5204                                n = j && b.disabled(a) || a.pick < k.pick || a.pick > l.pick,
5205                                o = d.trigger(b.formats.toString, b, [c.format, a]);
5206                            return [d.node("div", a.date, function(b) {
5207                                return b.push(i.month == a.month ? c.klass.infocus : c.klass.outfocus), f.pick == a.pick && b.push(c.klass.now), e && b.push(c.klass.selected), m && b.push(c.klass.highlighted), n && b.push(c.klass.disabled), b.join(" ")
5208                            }([c.klass.day]), "data-pick=" + a.pick + " " + d.ariaAttr({
5209                                role: "gridcell",
5210                                label: o,
5211                                selected: !(!e || b.$node.val() !== o) || null,
5212                                activedescendant: !!m || null,
5213                                disabled: !!n || null
5214                            })), "", d.ariaAttr({
5215                                role: "presentation"
5216                            })]
5217                        }
5218                    })]
5219                }
5220            })), c.klass.table, 'id="' + b.$node[0].id + '_table" ' + d.ariaAttr({
5221                role: "grid",
5222                controls: b.$node[0].id,
5223                readonly: !0
5224            })), c.klass.calendar_container) + d.node("div", d.node("button", c.today, "btn-flat picker__today waves-effect", "type=button data-pick=" + f.pick + (a && !b.disabled(f) ? "" : " disabled") + " " + d.ariaAttr({
5225                controls: b.$node[0].id
5226            })) + d.node("button", c.clear, "btn-flat picker__clear waves-effect", "type=button data-clear=1" + (a ? "" : " disabled") + " " + d.ariaAttr({
5227                controls: b.$node[0].id
5228            })) + d.node("button", c.close, "btn-flat picker__close waves-effect", "type=button data-close=true " + (a ? "" : " disabled") + " " + d.ariaAttr({
5229                controls: b.$node[0].id
5230            })), c.klass.footer), "picker__container__wrapper")
5231        }, c.defaults = function(a) {
5232            return {
5233                labelMonthNext: "Next month",
5234                labelMonthPrev: "Previous month",
5235                labelMonthSelect: "Select a month",
5236                labelYearSelect: "Select a year",
5237                monthsFull: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
5237November", "December"],
5238                monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
5239                weekdaysFull: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
5240                weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
5241                weekdaysLetter: ["S", "M", "T", "W", "T", "F", "S"],
5242                today: "Today",
5243                clear: "Clear",
5244                close: "Ok",
5245                format: "d mmmm, yyyy",
5246                klass: {
5247                    table: a + "table",
5248                    header: a + "header",
5249                    date_display: a + "date-display",
5250                    day_display: a + "day-display",
5251                    month_display: a + "month-display",
5252                    year_display: a + "year-display",
5253                    calendar_container: a + "calendar-container",
5254                    navPrev: a + "nav--prev",
5255                    navNext: a + "nav--next",
5256                    navDisabled: a + "nav--disabled",
5257                    month: a + "month",
5258                    year: a + "year",
5259                    selectMonth: a + "select--month",
5260                    selectYear: a + "select--year",
5261                    weekdays: a + "weekday",
5262                    day: a + "day",
5263                    disabled: a + "day--disabled",
5264                    selected: a + "day--selected",
5265                    highlighted: a + "day--highlighted",
5266                    now: a + "day--today",
5267                    infocus: a + "day--infocus",
5268                    outfocus: a + "day--outfocus",
5269                    footer: a + "footer",
5270                    buttonClear: a + "button--clear",
5271                    buttonToday: a + "button--today",
5272                    buttonClose: a + "button--close"
5273                }
5274            }
5275        }(a.klasses().picker + "__"), a.extend("pickadate", c)
5276    }),
5277    function() {
5278        function a(a) {
5279            return document.createElementNS(i, a)
5280        }
5281
5282        function b(a) {
5283            return (a < 10 ? "0" : "") + a
5284        }
5285
5286        function c(a) {
5287            var b = ++q + "";
5288            return a ? a + b : b
5289        }
5290
5291        function d(d, g) {
5292            function i(a, b) {
5293                var c = l.offset(),
5294                    d = /^touch/.test(a.type),
5295                    e = c.left + r,
5296                    f = c.top + r,
5297                    i = (d ? a.originalEvent.touches[0] : a).pageX - e,
5298                    j = (d ? a.originalEvent.touches[0] : a).pageY - f,
5299                    k = Math.sqrt(i * i + j * j),
5300                    m = !1;
5301                if (!b || !(k < s - u || k > s + u)) {
5302                    a.preventDefault();
5303                    var p = setTimeout(function() {
5304                        D.popover.addClass("clockpicker-moving")
5305                    }, 200);
5306                    D.setHand(i, j, !b, !0), h.off(n).on(n, function(a) {
5307                        a.preventDefault();
5308                        var b = /^touch/.test(a.type),
5309                            c = (b ? a.originalEvent.touches[0] : a).pageX - e,
5310                            d = (b ? a.originalEvent.touches[0] : a).pageY - f;
5311                        (m || c !== i || d !== j) && (m = !0, D.setHand(c, d, !1, !0))
5312                    }), h.off(o).on(o, function(a) {
5313                        h.off(o), a.preventDefault();
5314                        var c = /^touch/.test(a.type),
5315                            d = (c ? a.originalEvent.changedTouches[0] : a).pageX - e,
5316                            k = (c ? a.originalEvent.changedTouches[0] : a).pageY - f;
5317                        (b || m) && d === i && k === j && D.setHand(d, k), "hours" === D.currentView ? D.toggleView("minutes", w / 2) : g.autoclose && (D.minutesView.addClass("clockpicker-dial-out"), setTimeout(function() {
5318                            D.done()
5319                        }, w / 2)), l.prepend(K), clearTimeout(p), D.popover.removeClass("clockpicker-moving"), h.off(n)
5320                    })
5321                }
5322            }
5323            var k = f(x),
5324                l = k.find(".clockpicker-plate"),
5325                p = k.find(".picker__holder"),
5326                q = k.find(".clockpicker-hours"),
5327                y = k.find(".clockpicker-minutes"),
5328                z = k.find(".clockpicker-am-pm-block"),
5329                A = "INPUT" === d.prop("tagName"),
5330                B = A ? d : d.find("input"),
5331                C = f("label[for=" + B.attr("id") + "]"),
5332                D = this;
5333            this.id = c("cp"), this.element = d, this.holder = p, this.options = g, this.isAppended = !1, this.isShown = !1, this.currentView = "hours", this.isInput = A, this.input = B, this.label = C, this.popover = k, this.plate = l, this.hoursView = q, this.minutesView = y, this.amPmBlock = z, this.spanHours = k.find(".clockpicker-span-hours"), this.spanMinutes = k.find(".clockpicker-span-minutes"), this.spanAmPm = k.find(".clockpicker-span-am-pm"), this.footer = k.find(".picker__footer"), this.amOrPm = "PM", g.twelvehour && (g.ampmclickable ? (this.spanAmPm.empty(), f('<div id="click-am">AM</div>').on("click", function() {
5334                D.spanAmPm.children("#click-am").addClass("text-primary"), D.spanAmPm.children("#click-pm").removeClass("text-primary"), D.amOrPm = "AM"
5335            }).appendTo(this.spanAmPm), f('<div id="click-pm">PM</div>').on("click", function() {
5336                D.spanAmPm.children("#click-pm").addClass("text-primary"), D.spanAmPm.children("#click-am").removeClass("text-primary"), D.amOrPm = "PM"
5337            }).appendTo(this.spanAmPm)) : (this.spanAmPm.empty(), f('<div id="click-am">AM</div>').appendTo(this.spanAmPm), f('<div id="click-pm">PM</div>').appendTo(this.spanAmPm))), f('<button type="button" class="btn-flat picker__clear" tabindex="' + (g.twelvehour ? "3" : "1") + '">' + g.cleartext + "</button>").click(f.proxy(this.clear, this)).appendTo(this.footer), f('<button type="button" class="btn-flat picker__close" tabindex="' + (g.twelvehour ? "3" : "1") + '">' + g.canceltext + "</button>").click(f.proxy(this.hide, this)).appendTo(this.footer), f('<button type="button" class="btn-flat picker__close" tabindex="' + (g.twelvehour ? "3" : "1") + '">' + g.donetext + "</button>").click(f.proxy(this.done, this)).appendTo(this.footer), this.spanHours.click(f.proxy(this.toggleView, this, "hours")), this.spanMinutes.click(f.proxy(this.toggleView, this, "minutes")), B.on("focus.clockpicker click.clockpicker", f.proxy(this.show, this));
5338            var E, F, G, H, I = f('<div class="clockpicker-tick"></div>');
5339            if (g.twelvehour)
5340                for (E = 1; E < 13; E += 1) F = I.clone(), G = E / 6 * Math.PI, H = s, F.css({
5341                    left: r + Math.sin(G) * H - u,
5342                    top: r - Math.cos(G) * H - u
5343                }), F.html(0 === E ? "00" : E), q.append(F), F.on(m, i);
5344            else
5345                for (E = 0; E < 24; E += 1) {
5346                    F = I.clone(), G = E / 6 * Math.PI;
5347                    var J = E > 0 && E < 13;
5348                    H = J ? t : s, F.css({
5349                        left: r + Math.sin(G) * H - u,
5350                        top: r - Math.cos(G) * H - u
5351                    }), F.html(0 === E ? "00" : E), q.append(F), F.on(m, i)
5352                }
5353            for (E = 0; E < 60; E += 5) F = I.clone(), G = E / 30 * Math.PI, F.css({
5354                left: r + Math.sin(G) * s - u,
5355                top: r - Math.cos(G) * s - u
5356            }), F.html(b(E)), y.append(F), F.on(m, i);
5357            if (l.on(m, function(a) {
5358                    0 === f(a.target).closest(".clockpicker-tick").length && i(a, !0)
5359                }), j) {
5360                var K = k.find(".clockpicker-canvas"),
5361                    L = a("svg");
5362                L.setAttribute("class", "clockpicker-svg"), L.setAttribute("width", v), L.setAttribute("height", v);
5363                var M = a("g");
5364                M.setAttribute("transform", "translate(" + r + "," + r + ")");
5365                var N = a("circle");
5366                N.setAttribute("class", "clockpicker-canvas-bearing"), N.setAttribute("cx", 0), N.setAttribute("cy", 0), N.setAttribute("r", 4);
5367                var O = a("line");
5368                O.setAttribute("x1", 0), O.setAttribute("y1", 0);
5369                var P = a("circle");
5370                P.setAttribute("class", "clockpicker-canvas-bg"), P.setAttribute("r", u), M.appendChild(O), M.appendChild(P), M.appendChild(N), L.appendChild(M), K.append(L), this.hand = O, this.bg = P, this.bearing = N, this.g = M, this.canvas = K
5371            }
5372            e(this.options.init)
5373        }
5374
5375        function e(a) {
5376            a && "function" == typeof a && a()
5377        }
5378        var f = window.jQuery,
5379            g = f(window),
5380            h = f(document),
5381            i = "http://www.w3.org/2000/svg",
5382            j = "SVGAngle" in window && function() {
5383                var a, b = document.createElement("div");
5384                return b.innerHTML = "<svg/>", a = (b.firstChild && b.firstChild.namespaceURI) == i, b.innerHTML = "", a
5385            }(),
5386            k = function() {
5387                var a = document.createElement("div").style;
5388                return "transition" in a || "WebkitTransition" in a || "MozTransition" in a || "msTransition" in a || "OTransition" in a
5389            }(),
5390            l = "ontouchstart" in window,
5391            m = "mousedown" + (l ? " touchstart" : ""),
5392            n = "mousemove.clockpicker" + (l ? " touchmove.clockpicker" : ""),
5393            o = "mouseup.clockpicker" + (l ? " touchend.clockpicker" : ""),
5394            p = navigator.vibrate ? "vibrate" : navigator.webkitVibrate ? "webkitVibrate" : null,
5395            q = 0,
5396            r = 135,
5397            s = 105,
5398            t = 80,
5399            u = 20,
5400            v = 2 * r,
5401            w = k ? 350 : 1,
5402            x = ['<div class="clockpicker picker">', '<div class="picker__holder">', '<div class="picker__frame">', '<div class="picker__wrap">', '<div class="picker__box">', '<div class="picker__date-display">', '<div class="clockpicker-display">', '<div class="clockpicker-display-column">', '<span class="clockpicker-span-hours text-primary"></span>', ":", '<span class="clockpicker-span-minutes"></span>', "</div>", '<div class="clockpicker-display-column clockpicker-display-am-pm">', '<div class="clockpicker-span-am-pm"></div>', "</div>", "</div>", "</div>", '<div class="picker__container__wrapper">', '<div class="picker__calendar-container">', '<div class="clockpicker-plate">', '<div class="clockpicker-canvas"></div>', '<div class="clockpicker-dial clockpicker-hours"></div>', '<div class="clockpicker-dial clockpicker-minutes clockpicker-dial-out"></div>', "</div>", '<div class="clockpicker-am-pm-block">', "</div>", "</div>", '<div class="picker__footer">', "</div>", "</div>", "</div>", "</div>", "</div>", "</div>", "</div>"].join("");
5403        d.DEFAULTS = {
5404            default: "",
5405            fromnow: 0,
5406            donetext: "Ok",
5407            cleartext: "Clear",
5408            canceltext: "Cancel",
5409            autoclose: !1,
5410            ampmclickable: !0,
5411            darktheme: !1,
5412            twelvehour: !0,
5413            vibrate: !0
5414        }, d.prototype.toggle = function() {
5415            this[this.isShown ? "hide" : "show"]()
5416        }, d.prototype.locate = function() {
5417            var a = this.element,
5418                b = this.popover;
5419            a.offset(), a.outerWidth(), a.outerHeight(), this.options.align;
5420            b.show()
5421        }, d.prototype.show = function(a) {
5422            if (!this.isShown) {
5423                e(this.options.beforeShow), f(":input").each(function() {
5424                    f(this).attr("tabindex", -1)
5425                });
5426                var c = this;
5427                this.input.blur(), this.popover.addClass("picker--opened"), this.input.addClass("picker__input picker__input--active"), f(document.body).css("overflow", "hidden");
5428                var d = ((this.input.prop("value") || this.options.default || "") + "").split(":");
5429                if (this.options.twelvehour && void 0 !== d[1] && (d[1].indexOf("AM") > 0 ? this.amOrPm = "AM" : this.amOrPm = "PM", d[1] = d[1].replace("AM", "").replace("PM", "")), "n
5429ow" === d[0]) {
5430                    var i = new Date(+new Date + this.options.fromnow);
5431                    d = [i.getHours(), i.getMinutes()]
5432                }
5433                this.hours = +d[0] || 0, this.minutes = +d[1] || 0, this.spanHours.html(this.hours), this.spanMinutes.html(b(this.minutes)), this.isAppended || (this.popover.insertAfter(this.input), this.options.twelvehour && ("PM" === this.amOrPm ? (this.spanAmPm.children("#click-pm").addClass("text-primary"), this.spanAmPm.children("#click-am").removeClass("text-primary")) : (this.spanAmPm.children("#click-am").addClass("text-primary"), this.spanAmPm.children("#click-pm").removeClass("text-primary"))), g.on("resize.clockpicker" + this.id, function() {
5434                    c.isShown && c.locate()
5435                }), this.isAppended = !0), this.toggleView("hours"), this.locate(), this.isShown = !0, h.on("click.clockpicker." + this.id + " focusin.clockpicker." + this.id, function(a) {
5436                    var b = f(a.target);
5437                    0 === b.closest(c.popover.find(".picker__wrap")).length && 0 === b.closest(c.input).length && c.hide()
5438                }), h.on("keyup.clockpicker." + this.id, function(a) {
5439                    27 === a.keyCode && c.hide()
5440                }), e(this.options.afterShow)
5441            }
5442        }, d.prototype.hide = function() {
5443            e(this.options.beforeHide), this.input.removeClass("picker__input picker__input--active"), this.popover.removeClass("picker--opened"), f(document.body).css("overflow", "visible"), this.isShown = !1, f(":input").each(function(a) {
5444                f(this).attr("tabindex", a + 1)
5445            }), h.off("click.clockpicker." + this.id + " focusin.clockpicker." + this.id), h.off("keyup.clockpicker." + this.id), this.popover.hide(), e(this.options.afterHide)
5446        }, d.prototype.toggleView = function(a, b) {
5447            var c = !1;
5448            "minutes" === a && "visible" === f(this.hoursView).css("visibility") && (e(this.options.beforeHourSelect), c = !0);
5449            var d = "hours" === a,
5450                g = d ? this.hoursView : this.minutesView,
5451                h = d ? this.minutesView : this.hoursView;
5452            this.currentView = a, this.spanHours.toggleClass("text-primary", d), this.spanMinutes.toggleClass("text-primary", !d), h.addClass("clockpicker-dial-out"), g.css("visibility", "visible").removeClass("clockpicker-dial-out"), this.resetClock(b), clearTimeout(this.toggleViewTimer), this.toggleViewTimer = setTimeout(function() {
5453                h.css("visibility", "hidden")
5454            }, w), c && e(this.options.afterHourSelect)
5455        }, d.prototype.resetClock = function(a) {
5456            var b = this.currentView,
5457                c = this[b],
5458                d = "hours" === b,
5459                e = Math.PI / (d ? 6 : 30),
5460                f = c * e,
5461                g = d && c > 0 && c < 13 ? t : s,
5462                h = Math.sin(f) * g,
5463                i = -Math.cos(f) * g,
5464                k = this;
5465            j && a ? (k.canvas.addClass("clockpicker-canvas-out"), setTimeout(function() {
5466                k.canvas.removeClass("clockpicker-canvas-out"), k.setHand(h, i)
5467            }, a)) : this.setHand(h, i)
5468        }, d.prototype.setHand = function(a, c, d, e) {
5469            var g, h = Math.atan2(a, -c),
5470                i = "hours" === this.currentView,
5471                k = Math.PI / (i || d ? 6 : 30),
5472                l = Math.sqrt(a * a + c * c),
5473                m = this.options,
5474                n = i && l < (s + t) / 2,
5475                o = n ? t : s;
5476            if (m.twelvehour && (o = s), h < 0 && (h = 2 * Math.PI + h), g = Math.round(h / k), h = g * k, m.twelvehour ? i ? 0 === g && (g = 12) : (d && (g *= 5), 60 === g && (g = 0)) : i ? (12 === g && (g = 0), g = n ? 0 === g ? 12 : g : 0 === g ? 0 : g + 12) : (d && (g *= 5), 60 === g && (g = 0)), this[this.currentView] !== g && p && this.options.vibrate && (this.vibrateTimer || (navigator[p](10), this.vibrateTimer = setTimeout(f.proxy(function() {
5477                    this.vibrateTimer = null
5478                }, this), 100))), this[this.currentView] = g, i ? this.spanHours.html(g) : this.spanMinutes.html(b(g)), !j) return void this[i ? "hoursView" : "minutesView"].find(".clockpicker-tick").each(function() {
5479                var a = f(this);
5480                a.toggleClass("active", g === +a.html())
5481            });
5482            var q = Math.sin(h) * (o - u),
5483                r = -Math.cos(h) * (o - u),
5484                v = Math.sin(h) * o,
5485                w = -Math.cos(h) * o;
5486            this.hand.setAttribute("x2", q), this.hand.setAttribute("y2", r), this.bg.setAttribute("cx", v), this.bg.setAttribute("cy", w)
5487        }, d.prototype.done = function() {
5488            e(this.options.beforeDone), this.hide(), this.label.addClass("active");
5489            var a = this.input.prop("value"),
5490                c = b(this.hours) + ":" + b(this.minutes);
5491            this.options.twelvehour && (c += this.amOrPm), this.input.prop("value", c), c !== a && (this.input.triggerHandler("change"), this.isInput || this.element.trigger("change")), this.options.autoclose && this.input.trigger("blur"), e(this.options.afterDone)
5492        }, d.prototype.clear = function() {
5493            this.hide(), this.label.removeClass("active");
5494            var a = this.input.prop("value");
5495            this.input.prop("value", ""), "" !== a && (this.input.triggerHandler("change"), this.isInput || this.element.trigger("change")), this.options.autoclose && this.input.trigger("blur")
5496        }, d.prototype.remove = function() {
5497            this.element.removeData("clockpicker"), this.input.off("focus.clockpicker click.clockpicker"), this.isShown && this.hide(), this.isAppended && (g.off("resize.clockpicker" + this.id), this.popover.remove())
5498        }, f.fn.pickatime = function(a) {
5499            var b = Array.prototype.slice.call(arguments, 1);
5500            return this.each(function() {
5501                var c = f(this),
5502                    e = c.data("clockpicker");
5503                if (e) "function" == typeof e[a] && e[a].apply(e, b);
5504                else {
5505                    var g = f.extend({}, d.DEFAULTS, c.data(), "object" == typeof a && a);
5506                    c.data("clockpicker", new d(c, g))
5507                }
5508            })
5509        }
5510    }(),
5511    function(a) {
5512        function b() {
5513            var b = +a(this).attr("data-length"),
5514                c = +a(this).val().length,
5515                d = c <= b;
5516            a(this).parent().find('span[class="character-counter"]').html(c + "/" + b), e(d, a(this))
5517        }
5518
5519        function c(b) {
5520            var c = b.parent().find('span[class="character-counter"]');
5521            c.length || (c = a("<span/>").addClass("character-counter").css("float", "right").css("font-size", "12px").css("height", 1), b.parent().append(c))
5522        }
5523
5524        function d() {
5525            a(this).parent().find('span[class="character-counter"]').html("")
5526        }
5527
5528        function e(a, b) {
5529            var c = b.hasClass("invalid");
5530            a && c ? b.removeClass("invalid") : a || c || (b.removeClass("val
5530id"), b.addClass("invalid"))
5531        }
5532        a.fn.characterCounter = function() {
5533            return this.each(function() {
5534                var e = a(this);
5535                e.parent().find('span[class="character-counter"]').length || void 0 !== e.attr("data-length") && (e.on("input", b), e.on("focus", b), e.on("blur", d), c(e))
5536            })
5537        }, a(document).ready(function() {
5538            a("input, textarea").characterCounter()
5539        })
5540    }(jQuery),
5541    function(a) {
5542        var b = {
5543            init: function(b) {
5544                var c = {
5545                    duration: 200,
5546                    dist: -100,
5547                    shift: 0,
5548                    padding: 0,
5549                    fullWidth: !1,
5550                    indicators: !1,
5551                    noWrap: !1,
5552                    onCycleTo: null
5553                };
5554                b = a.extend(c, b);
5555                var d = Materialize.objectSelectorString(a(this));
5556                return this.each(function(c) {
5557                    function e(a) {
5558                        return a.targetTouches && a.targetTouches.length >= 1 ? a.targetTouches[0].clientX : a.clientX
5559                    }
5560
5561                    function f(a) {
5562                        return a.targetTouches && a.targetTouches.length >= 1 ? a.targetTouches[0].clientY : a.clientY
5563                    }
5564
5565                    function g(a) {
5566                        return a >= w ? a % w : a < 0 ? g(w + a % w) : a
5567                    }
5568
5569                    function h(c) {
5570                        D = !0, O.hasClass("scrolling") || O.addClass("scrolling"), null != M && window.clearTimeout(M), M = window.setTimeout(function() {
5571                            D = !1, O.removeClass("scrolling")
5572                        }, b.duration);
5573                        var d, e, f, h, i, j, k, l = t;
5574                        if (s = "number" == typeof c ? c : s, t = Math.floor((s + v / 2) / v), f = s - t * v, h = f < 0 ? 1 : -1, i = -h * f * 2 / v, e = w >> 1, b.fullWidth ? k = "translateX(0)" : (k = "translateX(" + (O[0].clientWidth - q) / 2 + "px) ", k += "translateY(" + (O[0].clientHeight - r) / 2 + "px)"), P) {
5575                            var m = t % w,
5576                                n = L.find(".indicator-item.active");
5577                            n.index() !== m && (n.removeClass("active"), L.find(".indicator-item").eq(m).addClass("active"))
5578                        }
5579                        for ((!b.noWrap || t >= 0 && t < w) && (j = p[g(t)], a(j).hasClass("active") || (O.find(".mcarousel-item").removeClass("active"), a(j).addClass("active")), j.style[E] = k + " translateX(" + -f / 2 + "px) translateX(" + h * b.shift * i * d + "px) translateZ(" + b.dist * i + "px)", j.style.zIndex = 0, b.fullWidth ? tweenedOpacity = 1 : tweenedOpacity = 1 - .2 * i, j.style.opacity = tweenedOpacity, j.style.display = "block"), d = 1; d <= e; ++d) b.fullWidth ? (zTranslation = b.dist, tweenedOpacity = d === e && f < 0 ? 1 - i : 1) : (zTranslation = b.dist * (2 * d + i * h), tweenedOpacity = 1 - .2 * (2 * d + i * h)), (!b.noWrap || t + d < w) && (j = p[g(t + d)], j.style[E] = k + " translateX(" + (b.shift + (v * d - f) / 2) + "px) translateZ(" + zTranslation + "px)", j.style.zIndex = -d, j.style.opacity = tweenedOpacity, j.style.display = "block"), b.fullWidth ? (zTranslation = b.dist, tweenedOpacity = d === e && f > 0 ? 1 - i : 1) : (zTranslation = b.dist * (2 * d - i * h), tweenedOpacity = 1 - .2 * (2 * d - i * h)), (!b.noWrap || t - d >= 0) && (j = p[g(t - d)], j.style[E] = k + " translateX(" + (-b.shift + (-v * d - f) / 2) + "px) translateZ(" + zTranslation + "px)", j.style.zIndex = -d, j.style.opacity = tweenedOpacity, j.style.display = "block");
5580                        if ((!b.noWrap || t >= 0 && t < w) && (j = p[g(t)], j.style[E] = k + " translateX(" + -f / 2 + "px) translateX(" + h * b.shift * i + "px) translateZ(" + b.dist * i + "px)", j.style.zIndex = 0, b.fullWidth ? tweenedOpacity = 1 : tweenedOpacity = 1 - .2 * i, j.style.opacity = tweenedOpacity, j.style.display = "block"), l !== t && "function" == typeof b.onCycleTo) {
5581                            var o = O.find(".mcarousel-item").eq(g(t));
5582                            b.onCycleTo.call(this, o, I)
5583                        }
5584                        "function" == typeof N && (N.call(this, o, I), N = null)
5585                    }
5586
5587                    function i() {
5588                        var a, b, c, d;
5589                        a = Date.now(), b = a - G, G = a, c = s - F, F = s, d = 1e3 * c / (1 + b), C = .8 * d + .2 * C
5590                    }
5591
5592                    function j() {
5593                        var a, c;
5594                        A && (a = Date.now() - G, c = A * Math.exp(-a / b.duration), c > 2 || c < -2 ? (h(B - c), requestAnimationFrame(j)) : h(B))
5595                    }
5596
5597                    function k(c) {
5598                        if (I) return c.preventDefault(), c.stopPropagation(), !1;
5599                        if (!b.fullWidth) {
5600                            var d = a(c.target).closest(".mcarousel-item").index();
5601                            0 !== g(t) - d && (c.preventDefault(), c.stopPropagation()), l(d)
5602                        }
5603                    }
5604
5605                    function l(a) {
5606                        var c = t % w - a;
5607                        b.noWrap || (c < 0 ? Math.abs(c + w) < Math.abs(c) && (c += w) : c > 0 && Math.abs(c - w) < c && (c -= w)), c < 0 ? O.trigger("mcarouselNext", [Math.abs(c)]) : c > 0 && O.trigger("mcarouselPrev", [c])
5608                    }
5609
5610                    function m(a) {
5611                        "mousedown" === a.type && a.preventDefault(), u = !0, I = !1, J = !1, x = e(a), z = f(a), C = A = 0, F = s, G = Date.now(), clearInterval(H), H = setInterval(i, 100)
5612                    }
5613
5614                    function n(a) {
5615                        var b, c;
5616                        if (u)
5617                            if (b = e(a), y = f(a), c = x - b, Math.abs(z - y) < 30 && !J)(c > 2 || c < -2) && (I = !0, x = b, h(s + c));
5618                            else {
5619                                if (I) return a.preventDefault(), a.stopPropagation(), !1;
5620                                J = !0
5621                            } if (I) return a.preventDefault(), a.stopPropagation(), !1
5622                    }
5623
5624                    function o(a) {
5625                        if (u) return u = !1, clearInterval(H), B = s, (C > 10 || C < -10) && (A = .9 * C, B = s + A), B = Math.round(B / v) * v, b.noWrap && (B >= v * (w - 1) ? B = v * (w - 1) : B < 0 && (B = 0)), A = B - s, G = Date.now(), requestAnimationFrame(j), I && (a.preventDefault(), a.stopPropagation()), !1
5626                    }
5627                    var p, q, r, s, t, u, v, w, x, z, A, B, C, D, E, F, G, H, I, J, K = d + c,
5628                        L = a('<ul class="indicators"></ul>'),
5629                        M = null,
5630                        N = null,
5631                        O = a(this),
5632                        P = O.attr("data-indicators") || b.indicators;
5633                    if (b.fullWidth && (b.dist = 0, function() {
5634                            var b = O.find(".mcarousel-item img").first();
5635                            if (b.length) b.prop("complete") ? O.css("height", b.height()) : b.on("load", function() {
5636                                O.css("height", a(this).height())
5637                            });
5638                            else {
5639                                var c = O.find(".mcarousel-item").first().height();
5640                                O.css("height", c)
5641                            }
5642                        }(), P && O.find(".mcarousel-fixed-item").addClass("with-indicators")), O.hasClass("initialized")) return a(window).trigger("resize"), a(this).trigger("mcarouselNext", [1e-6]), !0;
5643                    O.addClass("initialized"), u = !1, s = B = 0, p = [], q = O.find(".mcarousel-item").first().innerWidth(), r = O.find(".mcarousel-item").first().innerHeight(), v = 2 * q + b.padding, O.find(".mcarousel-item").each(function(b) {
5644                            if (p.push(a(this)[0]), P) {
5645                                var c = a('<li class="indicator-item"></li>');
5646                                0 === b && c.addClass("active"), c.click(function(b) {
5647                                    b.stopPropagation(), l(a(this).index())
5648                                }), L.append(c)
5649                            }
5650                        }), P && O.append(L), w = p.length, E = "transform", ["webkit", "Moz", "O", "ms"].every(function(a) {
5651                            var b = a + "Transform";
5652                            return void 0 === document.body.style[b] || (E = b, !1)
5653                        }), a(window).off("resize.mcarousel-" + K).on("resize.mcarousel-" + K, function() {
5654                            b.fullWidth ? (q = O.find(".mcarousel-item").first().innerWidth(), r = O.find(".mcarousel-item").first().innerHeight(), v = 2 * q + b.padding, s = 2 * t * q, B = s) : h()
5655                        }),
5656                        function() {
5657                            void 0 !== window.ontouchstart && (O[0].addEventListener("touchstart", m), O[0].addEventListener("touchmove", n), O[0].addEventListener("touchend", o)), O[0].addEventListener("mousedown", m), O[0].addEventListener("mousemove", n), O[0].addEventListener("mouseup", o), O[0].addEventListener("mouseleave", o), O[0].addEventListener("click", k)
5658                        }(), h(s), a(this).on("mcarouselNext", function(a, b, c) {
5659                            void 0 === b && (b = 1), "function" == typeof c && (N = c), B = v * Math.round(s / v) + v * b, s !== B && (A = B - s, G = Date.now(), requestAnimationFrame(j))
5660                        }), a(this).on("mcarouselPrev", function(a, b, c) {
5661                            void 0 === b && (b = 1), "function" == typeof c && (N = c), B = v * Math.round(s / v) - v * b, s !== B && (A = B - s, G = Date.now(), requestAnimationFrame(j))
5662                        }), a(this).on("mcarouselSet", function(a, b, c) {
5663                            void 0 === b && (b = 0), "function" == typeof c && (N = c), l(b)
5664                        })
5665                })
5666            },
5667            next: function(b, c) {
5668                a(this).trigger("mcarouselNext", [b, c])
5669            },
5670            prev: function(b, c) {
5671                a(this).trigger("mcarouselPrev", [b, c])
5672            },
5673            set: function(b, c) {
5674                a(this).trigger("mcarouselSet", [b, c])
5675            }
5676        };
5677        a.fn.mcarousel = function(c) {
5678            return b[c] ? b[c].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.mcarousel") : b.init.a
5678pply(this, arguments)
5679        }
5680    }(jQuery),
5681    function(a) {
5682        var b = {
5683            init: function(b) {
5684                return this.each(function() {
5685                    var c = a("#" + a(this).attr("data-activates")),
5686                        d = (a("body"), a(this)),
5687                        e = d.parent(".tap-target-wrapper"),
5688                        f = e.find(".tap-target-wave"),
5689                        g = e.find(".tap-target-origin"),
5690                        h = d.find(".tap-target-content");
5691                    e.length || (e = d.wrap(a('<div class="tap-target-wrapper"></div>')).parent()), h.length || (h = a('<div class="tap-target-content"></div>'), d.append(h)), f.length || (f = a('<div class="tap-target-wave"></div>'), g.length || (g = c.clone(!0, !0), g.addClass("tap-target-origin"), g.removeAttr("id"), g.removeAttr("style"), f.append(g)), e.append(f));
5692                    var i = function() {
5693                            e.is(".open") && (e.removeClass("open"), g.off("click.tapTarget"), a(document).off("click.tapTarget"), a(window).off("resize.tapTarget"))
5694                        },
5695                        j = function() {
5696                            var b = "fixed" === c.css("position");
5697                            if (!b)
5698                                for (var g = c.parents(), i = 0; i < g.length && !(b = "fixed" == a(g[i]).css("position")); i++);
5699                            var j = c.outerWidth(),
5700                                k = c.outerHeight(),
5701                                l = b ? c.offset().top - a(document).scrollTop() : c.offset().top,
5702                                m = b ? c.offset().left - a(document).scrollLeft() : c.offset().left,
5703                                n = a(window).width(),
5704                                o = a(window).height(),
5705                                p = n / 2,
5706                                q = o / 2,
5707                                r = m <= p,
5708                                s = m > p,
5709                                t = l <= q,
5710                                u = l > q,
5711                                v = m >= .25 * n && m <= .75 * n,
5712                                w = d.outerWidth(),
5713                                x = d.outerHeight(),
5714                                y = l + k / 2 - x / 2,
5715                                z = m + j / 2 - w / 2,
5716                                A = b ? "fixed" : "absolute",
5717                                B = v ? w : w / 2 + j,
5718                                C = x / 2,
5719                                D = t ? x / 2 : 0,
5720                                E = r && !v ? w / 2 - j : 0,
5721                                F = j,
5722                                G = u ? "bottom" : "top",
5723                                H = 2 * j,
5724                                I = H,
5725                                J = x / 2 - I / 2,
5726                                K = w / 2 - H / 2,
5727                                L = {};
5728                            L.top = t ? y : "", L.right = s ? n - z - w : "", L.bottom = u ? o - y - x : "", L.left = r ? z : "", L.position = A, e.css(L), h.css({
5729                                width: B,
5730                                height: C,
5731                                top: D,
5732                                right: 0,
5733                                bottom: 0,
5734                                left: E,
5735                                padding: F,
5736                                verticalAlign: G
5737                            }), f.css({
5738                                top: J,
5739                                left: K,
5740                                width: H,
5741                                height: I
5742                            })
5743                        };
5744                    "open" == b && (j(), function() {
5745                        e.is(".open") || (e.addClass("open"), setTimeout(function() {
5746                            g.off("click.tapTarget").on("click.tapTarget", function(a) {
5747                                i(), g.off("click.tapTarget")
5748                            }
5748), a(document).off("click.tapTarget").on("click.tapTarget", function(b) {
5749                                i(), a(document).off("click.tapTarget")
5750                            });
5751                            var b = Materialize.throttle(function() {
5752                                j()
5753                            }, 200);
5754                            a(window).off("resize.tapTarget").on("resize.tapTarget", b)
5755                        }, 0))
5756                    }()), "close" == b && i()
5757                })
5758            },
5759            open: function() {},
5760            close: function() {}
5761        };
5762        a.fn.tapTarget = function(c) {
5763            if (b[c] || "object" == typeof c) return b.init.apply(this, arguments);
5764            a.error("Method " + c + " does not exist on jQuery.tap-target")
5765        }
5766    }(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.