{"action":"created","issue":{"url":"https://api.github.com/repos/Dogfalo/materialize/issues/1212","labels_url":"https://api.github.com/repos/Dogfalo/materialize/issues/1212/labels{/name}","comments_url":"https://api.github.com/repos/Dogfalo/materialize/issues/1212/comments","events_url":"https://api.github.com/repos/Dogfalo/materialize/issues/1212/events","html_url":"https://github.com/Dogfalo/materialize/issues/1212","id":70077760,"number":1212,"title":"conflict using materialize on angularjs + gruntjs + requirejs","user":{"login":"ekarudianto","id":5218495,"avatar_url":"https://avatars.githubusercontent.com/u/5218495?v=3","gravatar_id":"","url":"https://api.github.com/users/ekarudianto","html_url":"https://github.com/ekarudianto","followers_url":"https://api.github.com/users/ekarudianto/followers","following_url":"https://api.github.com/users/ekarudianto/following{/other_user}","gists_url":"https://api.github.com/users/ekarudianto/gists{/gist_id}","starred_url":"https://api.github.com/users/ekarudianto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ekarudianto/subscriptions","organizations_url":"https://api.github.com/users/ekarudianto/orgs","repos_url":"https://api.github.com/users/ekarudianto/repos","events_url":"https://api.github.com/users/ekarudianto/events{/privacy}","received_events_url":"https://api.github.com/users/ekarudianto/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":38,"created_at":"2015-04-22T09:48:16Z","updated_at":"2015-08-04T10:22:51Z","closed_at":null,"body":"I've been using materialize as my starter template framework for my project, it was lovely, I love this framework... but I've been facing this issue where I'm trying to use sideNav() function..\r\n\r\nit gives an error\r\n\r\n```javascript\r\na(...).hammer is not a function\r\n```\r\n\r\nso I've modified the requirejs loader section\r\n\r\n```javascript\r\nrequire.config({\r\npaths: {\r\n  angular: 'path/to/angular',\r\n  jquery: 'path/to/jquery',\r\n  hammerjs: 'path/to/hammerjs'\r\n  materialize: 'path/to/materialize'\r\n},\r\nshim: {\r\n  angular: {\r\n      deps: ['jquery'],\r\n      exports: 'angular'\r\n  },\r\n  materialize: {\r\n      deps: ['jquery', 'hammerjs']\r\n  }\r\n}\r\n\r\n});\r\n```\r\n\r\nbut it still gives an error which is\r\n\r\n```javascript\r\na(...).hammer is not a function\r\n```\r\n\r\nany idea about this issue ?\r\n"},"comment":{"url":"https://api.github.com/repos/Dogfalo/materialize/issues/comments/127558065","html_url":"https://github.com/Dogfalo/materialize/issues/1212#issuecomment-127558065","issue_url":"https://api.github.com/repos/Dogfalo/materialize/issues/1212","id":127558065,"user":{"login":"T00rk","id":593708,"avatar_url":"https://avatars.githubusercontent.com/u/593708?v=3","gravatar_id":"","url":"https://api.github.com/users/T00rk","html_url":"https://github.com/T00rk","followers_url":"https://api.github.com/users/T00rk/followers","following_url":"https://api.github.com/users/T00rk/following{/other_user}","gists_url":"https://api.github.com/users/T00rk/gists{/gist_id}","starred_url":"https://api.github.com/users/T00rk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/T00rk/subscriptions","organizations_url":"https://api.github.com/users/T00rk/orgs","repos_url":"https://api.github.com/users/T00rk/repos","events_url":"https://api.github.com/users/T00rk/events{/privacy}","received_events_url":"https://api.github.com/users/T00rk/received_events","type":"User","site_admin":false},"created_at":"2015-08-04T10:22:51Z","updated_at":"2015-08-04T10:22:51Z","body":"I think the problem comes from velocity. Here is the whole error (pretified) : \r\n\r\n    Uncaught Error: Mismatched anonymous define() module: \r\n    function() {\r\n        return function(e, t, r, a) {\r\n            function n(e) {\r\n                for (var t = -1, r = e ? e.length : 0, a = []; ++t < r;) {\r\n                    var n = e[t];\r\n                    n && a.push(n)\r\n                }\r\n                return a\r\n            }\r\n\r\n            function o(e) {\r\n                return g.isWrapped(e) ? e = [].slice.call(e) : g.isNode(e) && (e = [e]), e\r\n            }\r\n\r\n            function i(e) {\r\n                var t = $.data(e, \"velocity\");\r\n                return null === t ? a : t\r\n            }\r\n\r\n            function s(e) {\r\n                return function(t) {\r\n                    return Math.round(t * e) * (1 / e)\r\n                }\r\n            }\r\n\r\n            function l(e, r, a, n) {\r\n                function o(e, t) {\r\n                    return 1 - 3 * t + 3 * e\r\n                }\r\n\r\n                function i(e, t) {\r\n                    return 3 * t - 6 * e\r\n                }\r\n\r\n                function s(e) {\r\n                    return 3 * e\r\n                }\r\n\r\n                function l(e, t, r) {\r\n                    return ((o(t, r) * e + i(t, r)) * e + s(t)) * e\r\n                }\r\n\r\n                function u(e, t, r) {\r\n                    return 3 * o(t, r) * e * e + 2 * i(t, r) * e + s(t)\r\n                }\r\n\r\n                function c(t, r) {\r\n                    for (var n = 0; m > n; ++n) {\r\n                        var o = u(r, e, a);\r\n                        if (0 === o) return r;\r\n                        var i = l(r, e, a) - t;\r\n                        r -= i / o\r\n                    }\r\n                    return r\r\n                }\r\n\r\n                function p() {\r\n                    for (var t = 0; b > t; ++t) w[t] = l(t * x, e, a)\r\n                }\r\n\r\n                function f(t, r, n) {\r\n                    var o, i, s = 0;\r\n                    do i = r + (n - r) / 2, o = l(i, e, a) - t, o > 0 ? n = i : r = i; while (Math.abs(o) > h && ++s < v);\r\n                    return i\r\n                }\r\n\r\n                function d(t) {\r\n                    for (var r = 0, n = 1, o = b - 1; n != o && w[n] <= t; ++n) r += x;\r\n                    --n;\r\n                    var i = (t - w[n]) / (w[n + 1] - w[n]),\r\n                        s = r + i * x,\r\n                        l = u(s, e, a);\r\n                    return l >= y ? c(t, s) : 0 == l ? s : f(t, r, r + x)\r\n                }\r\n\r\n                function g() {\r\n                    V = !0, (e != r || a != n) && p()\r\n                }\r\n                var m = 4,\r\n                    y = .001,\r\n                    h = 1e-7,\r\n                    v = 10,\r\n                    b = 11,\r\n                    x = 1 / (b - 1),\r\n                    S = \"Float32Array\" in t;\r\n                if (4 !== arguments.length) return !1;\r\n                for (var P = 0; 4 > P; ++P)\r\n                    if (\"number\" != typeof arguments[P] || isNaN(arguments[P]) || !isFinite(arguments[P])) return !1;\r\n                e = Math.min(e, 1), a = Math.min(a, 1), e = Math.max(e, 0), a = Math.max(a, 0);\r\n                var w = S ? new Float32Array(b) : new Array(b),\r\n                    V = !1,\r\n                    C = function(t) {\r\n                        return V || g(), e === r && a === n ? t : 0 === t ? 0 : 1 === t ? 1 : l(d(t), r, n)\r\n                    };\r\n                C.getControlPoints = function() {\r\n                    return [{\r\n                        x: e,\r\n                        y: r\r\n                    }, {\r\n                        x: a,\r\n                        y: n\r\n                    }]\r\n                };\r\n                var T = \"generateBezier(\" + [e, r, a, n] + \")\";\r\n                return C.toString = function() {\r\n                    return T\r\n                }, C\r\n            }\r\n\r\n            function u(e, t) {\r\n                var r = e;\r\n                return g.isString(e) ? v.Easings[e] || (r = !1) : r = g.isArray(e) && 1 === e.length ? s.apply(null, e) : g.isArray(e) && 2 === e.length ? b.apply(null, e.concat([t])) : g.isArray(e) && 4 === e.length ? l.apply(null, e) : !1, r === !1 && (r = v.Easings[v.defaults.easing] ? v.defaults.easing : h), r\r\n            }\r\n\r\n            function c(e) {\r\n                if (e) {\r\n                    var t = (new Date).getTime(),\r\n                        r = v.State.calls.length;\r\n                    r > 1e4 && (v.State.calls = n(v.State.calls));\r\n                    for (var o = 0; r > o; o++)\r\n                        if (v.State.calls[o]) {\r\n                            var s = v.State.calls[o],\r\n                                l = s[0],\r\n                                u = s[2],\r\n                                f = s[3],\r\n                                d = !!f,\r\n                                m = null;\r\n                            f || (f = v.State.calls[o][3] = t - 16);\r\n                            for (var y = Math.min((t - f) / u.duration, 1), h = 0, b = l.length; b > h; h++) {\r\n                                var S = l[h],\r\n                                    w = S.element;\r\n                                if (i(w)) {\r\n                                    var V = !1;\r\n                                    if (u.display !== a && null !== u.display && \"none\" !== u.display) {\r\n                                        if (\"flex\" === u.display) {\r\n                                            var C = [\"-webkit-box\", \"-moz-box\", \"-ms-flexbox\", \"-webkit-flex\"];\r\n                                            $.each(C, function(e, t) {\r\n                                                x.setPropertyValue(w, \"display\", t)\r\n                                            })\r\n                                        }\r\n                                        x.setPropertyValue(w, \"display\", u.display)\r\n                                    }\r\n                                    u.visibility !== a && \"hidden\" !== u.visibility && x.setPropertyValue(w, \"visibility\", u.visibility);\r\n                                    for (var T in S)\r\n                                        if (\"element\" !== T) {\r\n                                            var k = S[T],\r\n                                                A, F = g.isString(k.easing) ? v.Easings[k.easing] : k.easing;\r\n                                            if (1 === y) A = k.endValue;\r\n                                            else {\r\n                                                var E = k.endValue - k.startValue;\r\n                                                if (A = k.startValue + E * F(y, u, E), !d && A === k.currentValue) continue\r\n                                            }\r\n                                            if (k.currentValue = A, \"tween\" === T) m = A;\r\n                                            else {\r\n                                                if (x.Hooks.registered[T]) {\r\n                                                    var j = x.Hooks.getRoot(T),\r\n                                                        H = i(w).rootPropertyValueCache[j];\r\n                                                    H && (k.rootPropertyValue = H)\r\n                                                }\r\n                                                var N = x.setPropertyValue(w, T, k.currentValue + (0 === parseFloat(A) ? \"\" : k.unitType), k.rootPropertyValue, k.scrollData);\r\n                                                x.Hooks.registered[T] && (i(w).rootPropertyValueCache[j] = x.Normalizations.registered[j] ? x.Normalizations.registered[j](\"extract\", null, N[1]) : N[1]), \"transform\" === N[0] && (V = !0)\r\n                                            }\r\n                                        }\r\n                                    u.mobileHA && i(w).transformCache.translate3d === a && (i(w).transformCache.translate3d = \"(0px, 0px, 0px)\", V = !0), V && x.flushTransformCache(w)\r\n                                }\r\n                            }\r\n                            u.display !== a && \"none\" !== u.display && (v.State.calls[o][2].display = !1), u.visibility !== a && \"hidden\" !== u.visibility && (v.State.calls[o][2].visibility = !1), u.progress && u.progress.call(s[1], s[1], y, Math.max(0, f + u.duration - t), f, m), 1 === y && p(o)\r\n                        }\r\n                }\r\n                v.State.isTicking && P(c)\r\n            }\r\n\r\n            function p(e, t) {\r\n                if (!v.State.calls[e]) return !1;\r\n                for (var r = v.State.calls[e][0], n = v.State.calls[e][1], o = v.State.calls[e][2], s = v.State.calls[e][4], l = !1, u = 0, c = r.length; c > u; u++) {\r\n                    var p = r[u].element;\r\n                    if (t || o.loop || (\"none\" === o.display && x.setPropertyValue(p, \"display\", o.display), \"hidden\" === o.visibility && x.setPropertyValue(p, \"visibility\", o.visibility)), o.loop !== !0 && ($.queue(p)[1] === a || !/\\.velocityQueueEntryFlag/i.test($.queue(p)[1])) && i(p)) {\r\n                        i(p).isAnimating = !1, i(p).rootPropertyValueCache = {};\r\n                        var f = !1;\r\n                        $.each(x.Lists.transforms3D, function(e, t) {\r\n                            var r = /^scale/.test(t) ? 1 : 0,\r\n                                n = i(p).transformCache[t];\r\n                            i(p).transformCache[t] !== a && new RegExp(\"^\\\\(\" + r + \"[^.]\").test(n) && (f = !0, delete i(p).transformCache[t])\r\n                        }), o.mobileHA && (f = !0, delete i(p).transformCache.translate3d), f && x.flushTransformCache(p), x.Values.removeClass(p, \"velocity-animating\")\r\n                    }\r\n                    if (!t && o.complete && !o.loop && u === c - 1) try {\r\n                        o.complete.call(n, n)\r\n                    } catch (d) {\r\n                        setTimeout(function() {\r\n                            throw d\r\n                        }, 1)\r\n                    }\r\n                    s && o.loop !== !0 && s(n), i(p) && o.loop === !0 && !t && ($.each(i(p).tweensContainer, function(e, t) {\r\n                        /^rotate/.test(e) && 360 === parseFloat(t.endValue) && (t.endValue = 0, t.startValue = 360), /^backgroundPosition/.test(e) && 100 === parseFloat(t.endValue) && \"%\" === t.unitType && (t.endValue = 0, t.startValue = 100)\r\n                    }), v(p, \"reverse\", {\r\n                        loop: !0,\r\n                        delay: o.delay\r\n                    })), o.queue !== !1 && $.dequeue(p, o.queue)\r\n                }\r\n                v.State.calls[e] = !1;\r\n                for (var g = 0, m = v.State.calls.length; m > g; g++)\r\n                    if (v.State.calls[g] !== !1) {\r\n                        l = !0;\r\n                        break\r\n                    }\r\n                l === !1 && (v.State.isTicking = !1, delete v.State.calls, v.State.calls = [])\r\n            }\r\n            var f = function() {\r\n                    if (r.documentMode) return r.documentMode;\r\n                    for (var e = 7; e > 4; e--) {\r\n                        var t = r.createElement(\"div\");\r\n                        if (t.innerHTML = \"<!--[if IE \" + e + \"]><span></span><![endif]-->\", t.getElementsByTagName(\"span\").length) return t = null, e\r\n                    }\r\n                    return a\r\n                }(),\r\n                d = function() {\r\n                    var e = 0;\r\n                    return t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || function(t) {\r\n                        var r = (new Date).getTime(),\r\n                            a;\r\n                        return a = Math.max(0, 16 - (r - e)), e = r + a, setTimeout(function() {\r\n                            t(r + a)\r\n                        }, a)\r\n                    }\r\n                }(),\r\n                g = {\r\n                    isString: function(e) {\r\n                        return \"string\" == typeof e\r\n                    },\r\n                    isArray: Array.isArray || function(e) {\r\n                        return \"[object Array]\" === Object.prototype.toString.call(e)\r\n                    },\r\n                    isFunction: function(e) {\r\n                        return \"[object Function]\" === Object.prototype.toString.call(e)\r\n                    },\r\n                    isNode: function(e) {\r\n                        return e && e.nodeType\r\n                    },\r\n                    isNodeList: function(e) {\r\n                        return \"object\" == typeof e && /^\\[object (HTMLCollection|NodeList|Object)\\]$/.test(Object.prototype.toString.call(e)) && e.length !== a && (0 === e.length || \"object\" == typeof e[0] && e[0].nodeType > 0)\r\n                    },\r\n                    isWrapped: function(e) {\r\n                        return e && (e.jquery || t.Zepto && t.Zepto.zepto.isZ(e))\r\n                    },\r\n                    isSVG: function(e) {\r\n                        return t.SVGElement && e instanceof t.SVGElement\r\n                    },\r\n                    isEmptyObject: function(e) {\r\n                        for (var t in e) return !1;\r\n                        return !0\r\n                    }\r\n                },\r\n                $, m = !1;\r\n            if (e.fn && e.fn.jquery ? ($ = e, m = !0) : $ = t.Velocity.Utilities, 8 >= f && !m) throw new Error(\"Velocity: IE8 and below require jQuery to be loaded before Velocity.\");\r\n            if (7 >= f) return void(jQuery.fn.velocity = jQuery.fn.animate);\r\n            var y = 400,\r\n                h = \"swing\",\r\n                v = {\r\n                    State: {\r\n                        isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\r\n                        isAndroid: /Android/i.test(navigator.userAgent),\r\n                        isGingerbread: /Android 2\\.3\\.[3-7]/i.test(navigator.userAgent),\r\n                        isChrome: t.chrome,\r\n                        isFirefox: /Firefox/i.test(navigator.userAgent),\r\n                        prefixElement: r.createElement(\"div\"),\r\n                        prefixMatches: {},\r\n                        scrollAnchor: null,\r\n                        scrollPropertyLeft: null,\r\n                        scrollPropertyTop: null,\r\n                        isTicking: !1,\r\n                        calls: []\r\n                    },\r\n                    CSS: {},\r\n                    Utilities: $,\r\n                    Redirects: {},\r\n                    Easings: {},\r\n                    Promise: t.Promise,\r\n                    defaults: {\r\n                        queue: \"\",\r\n                        duration: y,\r\n                        easing: h,\r\n                        begin: a,\r\n                        complete: a,\r\n                        progress: a,\r\n                        display: a,\r\n                        visibility: a,\r\n                        loop: !1,\r\n                        delay: !1,\r\n                        mobileHA: !0,\r\n                        _cacheValues: !0\r\n                    },\r\n                    init: function(e) {\r\n                        $.data(e, \"velocity\", {\r\n                            isSVG: g.isSVG(e),\r\n                            isAnimating: !1,\r\n                            computedStyle: null,\r\n                            tweensContainer: null,\r\n                            rootPropertyValueCache: {},\r\n                            transformCache: {}\r\n                        })\r\n                    },\r\n                    hook: null,\r\n                    mock: !1,\r\n                    version: {\r\n                        major: 1,\r\n                        minor: 2,\r\n                        patch: 2\r\n                    },\r\n                    debug: !1\r\n                };\r\n            t.pageYOffset !== a ? (v.State.scrollAnchor = t, v.State.scrollPropertyLeft = \"pageXOffset\", v.State.scrollPropertyTop = \"pageYOffset\") : (v.State.scrollAnchor = r.documentElement || r.body.parentNode || r.body, v.State.scrollPropertyLeft = \"scrollLeft\", v.State.scrollPropertyTop = \"scrollTop\");\r\n            var b = function() {\r\n                function e(e) {\r\n                    return -e.tension * e.x - e.friction * e.v\r\n                }\r\n\r\n                function t(t, r, a) {\r\n                    var n = {\r\n                        x: t.x + a.dx * r,\r\n                        v: t.v + a.dv * r,\r\n                        tension: t.tension,\r\n                        friction: t.friction\r\n                    };\r\n                    return {\r\n                        dx: n.v,\r\n                        dv: e(n)\r\n                    }\r\n                }\r\n\r\n                function r(r, a) {\r\n                    var n = {\r\n                            dx: r.v,\r\n                            dv: e(r)\r\n                        },\r\n                        o = t(r, .5 * a, n),\r\n                        i = t(r, .5 * a, o),\r\n                        s = t(r, a, i),\r\n                        l = 1 / 6 * (n.dx + 2 * (o.dx + i.dx) + s.dx),\r\n                        u = 1 / 6 * (n.dv + 2 * (o.dv + i.dv) + s.dv);\r\n                    return r.x = r.x + l * a, r.v = r.v + u * a, r\r\n                }\r\n                return function a(e, t, n) {\r\n                    var o = {\r\n                            x: -1,\r\n                            v: 0,\r\n                            tension: null,\r\n                            friction: null\r\n                        },\r\n                        i = [0],\r\n                        s = 0,\r\n                        l = 1e-4,\r\n                        u = .016,\r\n                        c, p, f;\r\n                    for (e = parseFloat(e) || 500, t = parseFloat(t) || 20, n = n || null, o.tension = e, o.friction = t, c = null !== n, c ? (s = a(e, t), p = s / n * u) : p = u;;)\r\n                        if (f = r(f || o, p), i.push(1 + f.x), s += 16, !(Math.abs(f.x) > l && Math.abs(f.v) > l)) break;\r\n                    return c ? function(e) {\r\n                        return i[e * (i.length - 1) | 0]\r\n                    } : s\r\n                }\r\n            }();\r\n            v.Easings = {\r\n                linear: function(e) {\r\n                    return e\r\n                },\r\n                swing: function(e) {\r\n                    return .5 - Math.cos(e * Math.PI) / 2\r\n                },\r\n                spring: function(e) {\r\n                    return 1 - Math.cos(4.5 * e * Math.PI) * Math.exp(6 * -e)\r\n                }\r\n            }, $.each([\r\n                [\"ease\", [.25, .1, .25, 1]],\r\n                [\"ease-in\", [.42, 0, 1, 1]],\r\n                [\"ease-out\", [0, 0, .58, 1]],\r\n                [\"ease-in-out\", [.42, 0, .58, 1]],\r\n                [\"easeInSine\", [.47, 0, .745, .715]],\r\n                [\"easeOutSine\", [.39, .575, .565, 1]],\r\n                [\"easeInOutSine\", [.445, .05, .55, .95]],\r\n                [\"easeInQuad\", [.55, .085, .68, .53]],\r\n                [\"easeOutQuad\", [.25, .46, .45, .94]],\r\n                [\"easeInOutQuad\", [.455, .03, .515, .955]],\r\n                [\"easeInCubic\", [.55, .055, .675, .19]],\r\n                [\"easeOutCubic\", [.215, .61, .355, 1]],\r\n                [\"easeInOutCubic\", [.645, .045, .355, 1]],\r\n                [\"easeInQuart\", [.895, .03, .685, .22]],\r\n                [\"easeOutQuart\", [.165, .84, .44, 1]],\r\n                [\"easeInOutQuart\", [.77, 0, .175, 1]],\r\n                [\"easeInQuint\", [.755, .05, .855, .06]],\r\n                [\"easeOutQuint\", [.23, 1, .32, 1]],\r\n                [\"easeInOutQuint\", [.86, 0, .07, 1]],\r\n                [\"easeInExpo\", [.95, .05, .795, .035]],\r\n                [\"easeOutExpo\", [.19, 1, .22, 1]],\r\n                [\"easeInOutExpo\", [1, 0, 0, 1]],\r\n                [\"easeInCirc\", [.6, .04, .98, .335]],\r\n                [\"easeOutCirc\", [.075, .82, .165, 1]],\r\n                [\"easeInOutCirc\", [.785, .135, .15, .86]]\r\n            ], function(e, t) {\r\n                v.Easings[t[0]] = l.apply(null, t[1])\r\n            });\r\n            var x = v.CSS = {\r\n                RegEx: {\r\n                    isHex: /^#([A-f\\d]{3}){1,2}$/i,\r\n                    valueUnwrap: /^[A-z]+\\((.*)\\)$/i,\r\n                    wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,\r\n                    valueSplit: /([A-z]+\\(.+\\))|(([A-z0-9#-.]+?)(?=\\s|$))/gi\r\n                },\r\n                Lists: {\r\n                    colors: [\"fill\", \"stroke\", \"stopColor\", \"color\", \"backgroundColor\", \"borderColor\", \"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\", \"outlineColor\"],\r\n                    transformsBase: [\"translateX\", \"translateY\", \"scale\", \"scaleX\", \"scaleY\", \"skewX\", \"skewY\", \"rotateZ\"],\r\n                    transforms3D: [\"transformPerspective\", \"translateZ\", \"scaleZ\", \"rotateX\", \"rotateY\"]\r\n                },\r\n                Hooks: {\r\n                    templates: {\r\n                        textShadow: [\"Color X Y Blur\", \"black 0px 0px 0px\"],\r\n                        boxShadow: [\"Color X Y Blur Spread\", \"black 0px 0px 0px 0px\"],\r\n                        clip: [\"Top Right Bottom Left\", \"0px 0px 0px 0px\"],\r\n                        backgroundPosition: [\"X Y\", \"0% 0%\"],\r\n                        transformOrigin: [\"X Y Z\", \"50% 50% 0px\"],\r\n                        perspectiveOrigin: [\"X Y\", \"50% 50%\"]\r\n                    },\r\n                    registered: {},\r\n                    register: function() {\r\n                        for (var e = 0; e < x.Lists.colors.length; e++) {\r\n                            var t = \"color\" === x.Lists.colors[e] ? \"0 0 0 1\" : \"255 255 255 1\";\r\n                            x.Hooks.templates[x.Lists.colors[e]] = [\"Red Green Blue Alpha\", t]\r\n                        }\r\n                        var r, a, n;\r\n                        if (f)\r\n                            for (r in x.Hooks.templates) {\r\n                                a = x.Hooks.templates[r], n = a[0].split(\" \");\r\n                                var o = a[1].match(x.RegEx.valueSplit);\r\n                                \"Color\" === n[0] && (n.push(n.shift()), o.push(o.shift()), x.Hooks.templates[r] = [n.join(\" \"), o.join(\" \")])\r\n                            }\r\n                        for (r in x.Hooks.templates) {\r\n                            a = x.Hooks.templates[r], n = a[0].split(\" \");\r\n                            for (var e in n) {\r\n                                var i = r + n[e],\r\n                                    s = e;\r\n                                x.Hooks.registered[i] = [r, s]\r\n                            }\r\n                        }\r\n                    },\r\n                    getRoot: function(e) {\r\n                        var t = x.Hooks.registered[e];\r\n                        return t ? t[0] : e\r\n                    },\r\n                    cleanRootPropertyValue: function(e, t) {\r\n                        return x.RegEx.valueUnwrap.test(t) && (t = t.match(x.RegEx.valueUnwrap)[1]), x.Values.isCSSNullValue(t) && (t = x.Hooks.templates[e][1]), t\r\n                    },\r\n                    extractValue: function(e, t) {\r\n                        var r = x.Hooks.registered[e];\r\n                        if (r) {\r\n                            var a = r[0],\r\n                                n = r[1];\r\n                            return t = x.Hooks.cleanRootPropertyValue(a, t), t.toString().match(x.RegEx.valueSplit)[n]\r\n                        }\r\n                        return t\r\n                    },\r\n                    injectValue: function(e, t, r) {\r\n                        var a = x.Hooks.registered[e];\r\n                        if (a) {\r\n                            var n = a[0],\r\n                                o = a[1],\r\n                                i, s;\r\n                            return r = x.Hooks.cleanRootPropertyValue(n, r), i = r.toString().match(x.RegEx.valueSplit), i[o] = t, s = i.join(\" \")\r\n                        }\r\n                        return r\r\n                    }\r\n                },\r\n                Normalizations: {\r\n                    registered: {\r\n                        clip: function(e, t, r) {\r\n                            switch (e) {\r\n                                case \"name\":\r\n                                    return \"clip\";\r\n                                case \"extract\":\r\n                                    var a;\r\n                                    return x.RegEx.wrappedValueAlreadyExtracted.test(r) ? a = r : (a = r.toString().match(x.RegEx.valueUnwrap), a = a ? a[1].replace(/,(\\s+)?/g, \" \") : r), a;\r\n                                case \"inject\":\r\n                                    return \"rect(\" + r + \")\"\r\n                            }\r\n                        },\r\n                        blur: function(e, t, r) {\r\n                            switch (e) {\r\n                                case \"name\":\r\n                                    return v.State.isFirefox ? \"filter\" : \"-webkit-filter\";\r\n                                case \"extract\":\r\n                                    var a = parseFloat(r);\r\n                                    if (!a && 0 !== a) {\r\n                                        var n = r.toString().match(/blur\\(([0-9]+[A-z]+)\\)/i);\r\n                                        a = n ? n[1] : 0\r\n                                    }\r\n                                    return a;\r\n                                case \"inject\":\r\n                                    return parseFloat(r) ? \"blur(\" + r + \")\" : \"none\"\r\n                            }\r\n                        },\r\n                        opacity: function(e, t, r) {\r\n                            if (8 >= f) switch (e) {\r\n                                case \"name\":\r\n                                    return \"filter\";\r\n                                case \"extract\":\r\n                                    var a = r.toString().match(/alpha\\(opacity=(.*)\\)/i);\r\n                                    return r = a ? a[1] / 100 : 1;\r\n                                case \"inject\":\r\n                                    return t.style.zoom = 1, parseFloat(r) >= 1 ? \"\" : \"alpha(opacity=\" + parseInt(100 * parseFloat(r), 10) + \")\"\r\n                            } else switch (e) {\r\n                                case \"name\":\r\n                                    return \"opacity\";\r\n                                case \"extract\":\r\n                                    return r;\r\n                                case \"inject\":\r\n                                    return r\r\n                            }\r\n                        }\r\n                    },\r\n                    register: function() {\r\n                        9 >= f || v.State.isGingerbread || (x.Lists.transformsBase = x.Lists.transformsBase.concat(x.Lists.transforms3D));\r\n                        for (var e = 0; e < x.Lists.transformsBase.length; e++) ! function() {\r\n                            var t = x.Lists.transformsBase[e];\r\n                            x.Normalizations.registered[t] = function(e, r, n) {\r\n                                switch (e) {\r\n                                    case \"name\":\r\n                                        return \"transform\";\r\n                                    case \"extract\":\r\n                                        return i(r) === a || i(r).transformCache[t] === a ? /^scale/i.test(t) ? 1 : 0 : i(r).transformCache[t].replace(/[()]/g, \"\");\r\n                                    case \"inject\":\r\n                                        var o = !1;\r\n                                        switch (t.substr(0, t.length - 1)) {\r\n                                            case \"translate\":\r\n                                                o = !/(%|px|em|rem|vw|vh|\\d)$/i.test(n);\r\n                                                break;\r\n                                            case \"scal\":\r\n                                            case \"scale\":\r\n                                                v.State.isAndroid && i(r).transformCache[t] === a && 1 > n && (n = 1), o = !/(\\d)$/i.test(n);\r\n                                                break;\r\n                                            case \"skew\":\r\n                                                o = !/(deg|\\d)$/i.test(n);\r\n                                                break;\r\n                                            case \"rotate\":\r\n                                                o = !/(deg|\\d)$/i.test(n)\r\n                                        }\r\n                                        return o || (i(r).transformCache[t] = \"(\" + n + \")\"), i(r).transformCache[t]\r\n                                }\r\n                            }\r\n                        }();\r\n                        for (var e = 0; e < x.Lists.colors.length; e++) ! function() {\r\n                            var t = x.Lists.colors[e];\r\n                            x.Normalizations.registered[t] = function(e, r, n) {\r\n                                switch (e) {\r\n                                    case \"name\":\r\n                                        return t;\r\n                                    case \"extract\":\r\n                                        var o;\r\n                                        if (x.RegEx.wrappedValueAlreadyExtracted.test(n)) o = n;\r\n                                        else {\r\n                                            var i, s = {\r\n                                                black: \"rgb(0, 0, 0)\",\r\n                                                blue: \"rgb(0, 0, 255)\",\r\n                                                gray: \"rgb(128, 128, 128)\",\r\n                                                green: \"rgb(0, 128, 0)\",\r\n                                                red: \"rgb(255, 0, 0)\",\r\n                                                white: \"rgb(255, 255, 255)\"\r\n                                            };\r\n                                            /^[A-z]+$/i.test(n) ? i = s[n] !== a ? s[n] : s.black : x.RegEx.isHex.test(n) ? i = \"rgb(\" + x.Values.hexToRgb(n).join(\" \") + \")\" : /^rgba?\\(/i.test(n) || (i = s.black), o = (i || n).toString().match(x.RegEx.valueUnwrap)[1].replace(/,(\\s+)?/g, \" \")\r\n                                        }\r\n                                        return 8 >= f || 3 !== o.split(\" \").length || (o += \" 1\"), o;\r\n                                    case \"inject\":\r\n                                        return 8 >= f ? 4 === n.split(\" \").length && (n = n.split(/\\s+/).slice(0, 3).join(\" \")) : 3 === n.split(\" \").length && (n += \" 1\"), (8 >= f ? \"rgb\" : \"rgba\") + \"(\" + n.replace(/\\s+/g, \",\").replace(/\\.(\\d)+(?=,)/g, \"\") + \")\"\r\n                                }\r\n                            }\r\n                        }()\r\n                    }\r\n                },\r\n                Names: {\r\n                    camelCase: function(e) {\r\n                        return e.replace(/-(\\w)/g, function(e, t) {\r\n                            return t.toUpperCase()\r\n                        })\r\n                    },\r\n                    SVGAttribute: function(e) {\r\n                        var t = \"width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2\";\r\n                        return (f || v.State.isAndroid && !v.State.isChrome) && (t += \"|transform\"), new RegExp(\"^(\" + t + \")$\", \"i\").test(e)\r\n                    },\r\n                    prefixCheck: function(e) {\r\n                        if (v.State.prefixMatches[e]) return [v.State.prefixMatches[e], !0];\r\n                        for (var t = [\"\", \"Webkit\", \"Moz\", \"ms\", \"O\"], r = 0, a = t.length; a > r; r++) {\r\n                            var n;\r\n                            if (n = 0 === r ? e : t[r] + e.replace(/^\\w/, function(e) {\r\n                                    return e.toUpperCase()\r\n                                }), g.isString(v.State.prefixElement.style[n])) return v.State.prefixMatches[e] = n, [n, !0]\r\n                        }\r\n                        return [e, !1]\r\n                    }\r\n                },\r\n                Values: {\r\n                    hexToRgb: function(e) {\r\n                        var t = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,\r\n                            r = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,\r\n                            a;\r\n                        return e = e.replace(t, function(e, t, r, a) {\r\n                            return t + t + r + r + a + a\r\n                        }), a = r.exec(e), a ? [parseInt(a[1], 16), parseInt(a[2], 16), parseInt(a[3], 16)] : [0, 0, 0]\r\n                    },\r\n                    isCSSNullValue: function(e) {\r\n                        return 0 == e || /^(none|auto|transparent|(rgba\\(0, ?0, ?0, ?0\\)))$/i.test(e)\r\n                    },\r\n                    getUnitType: function(e) {\r\n                        return /^(rotate|skew)/i.test(e) ? \"deg\" : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e) ? \"\" : \"px\"\r\n                    },\r\n                    getDisplayType: function(e) {\r\n                        var t = e && e.tagName.toString().toLowerCase();\r\n                        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(t) ? \"inline\" : /^(li)$/i.test(t) ? \"list-item\" : /^(tr)$/i.test(t) ? \"table-row\" : /^(table)$/i.test(t) ? \"table\" : /^(tbody)$/i.test(t) ? \"table-row-group\" : \"block\"\r\n                    },\r\n                    addClass: function(e, t) {\r\n                        e.classList ? e.classList.add(t) : e.className += (e.className.length ? \" \" : \"\") + t\r\n                    },\r\n                    removeClass: function(e, t) {\r\n                        e.classList ? e.classList.remove(t) : e.className = e.className.toString().replace(new RegExp(\"(^|\\\\s)\" + t.split(\" \").join(\"|\") + \"(\\\\s|$)\", \"gi\"), \" \")\r\n                    }\r\n                },\r\n                getPropertyValue: function(e, r, n, o) {\r\n                    function s(e, r) {\r\n                        function n() {\r\n                            u && x.setPropertyValue(e, \"display\", \"none\")\r\n                        }\r\n                        var l = 0;\r\n                        if (8 >= f) l = $.css(e, r);\r\n                        else {\r\n                            var u = !1;\r\n                            if (/^(width|height)$/.test(r) && 0 === x.getPropertyValue(e, \"display\") && (u = !0, x.setPropertyValue(e, \"display\", x.Values.getDisplayType(e))), !o) {\r\n                                if (\"height\" === r && \"border-box\" !== x.getPropertyValue(e, \"boxSizing\").toString().toLowerCase()) {\r\n                                    var c = e.offsetHeight - (parseFloat(x.getPropertyValue(e, \"borderTopWidth\")) || 0) - (parseFloat(x.getPropertyValue(e, \"borderBottomWidth\")) || 0) - (parseFloat(x.getPropertyValue(e, \"paddingTop\")) || 0) - (parseFloat(x.getPropertyValue(e, \"paddingBottom\")) || 0);\r\n                                    return n(), c\r\n                                }\r\n                                if (\"width\" === r && \"border-box\" !== x.getPropertyValue(e, \"boxSizing\").toString().toLowerCase()) {\r\n                                    var p = e.offsetWidth - (parseFloat(x.getPropertyValue(e, \"borderLeftWidth\")) || 0) - (parseFloat(x.getPropertyValue(e, \"borderRightWidth\")) || 0) - (parseFloat(x.getPropertyValue(e, \"paddingLeft\")) || 0) - (parseFloat(x.getPropertyValue(e, \"paddingRight\")) || 0);\r\n                                    return n(), p\r\n                                }\r\n                            }\r\n                            var d;\r\n                            d = i(e) === a ? t.getComputedStyle(e, null) : i(e).computedStyle ? i(e).computedStyle : i(e).computedStyle = t.getComputedStyle(e, null), \"borderColor\" === r && (r = \"borderTopColor\"), l = 9 === f && \"filter\" === r ? d.getPropertyValue(r) : d[r], (\"\" === l || null === l) && (l = e.style[r]), n()\r\n                        }\r\n                        if (\"auto\" === l && /^(top|right|bottom|left)$/i.test(r)) {\r\n                            var g = s(e, \"position\");\r\n                            (\"fixed\" === g || \"absolute\" === g && /top|left/i.test(r)) && (l = $(e).position()[r] + \"px\")\r\n                        }\r\n                        return l\r\n                    }\r\n                    var l;\r\n                    if (x.Hooks.registered[r]) {\r\n                        var u = r,\r\n                            c = x.Hooks.getRoot(u);\r\n                        n === a && (n = x.getPropertyValue(e, x.Names.prefixCheck(c)[0])), x.Normalizations.registered[c] && (n = x.Normalizations.registered[c](\"extract\", e, n)), l = x.Hooks.extractValue(u, n)\r\n                    } else if (x.Normalizations.registered[r]) {\r\n                        var p, d;\r\n                        p = x.Normalizations.registered[r](\"name\", e), \"transform\" !== p && (d = s(e, x.Names.prefixCheck(p)[0]), x.Values.isCSSNullValue(d) && x.Hooks.templates[r] && (d = x.Hooks.templates[r][1])), l = x.Normalizations.registered[r](\"extract\", e, d)\r\n                    }\r\n                    if (!/^[\\d-]/.test(l))\r\n                        if (i(e) && i(e).isSVG && x.Names.SVGAttribute(r))\r\n                            if (/^(height|width)$/i.test(r)) try {\r\n                                l = e.getBBox()[r]\r\n                            } catch (g) {\r\n                                l = 0\r\n                            } else l = e.getAttribute(r);\r\n                            else l = s(e, x.Names.prefixCheck(r)[0]);\r\n                    return x.Values.isCSSNullValue(l) && (l = 0), v.debug >= 2 && console.log(\"Get \" + r + \": \" + l), l\r\n                },\r\n                setPropertyValue: function(e, r, a, n, o) {\r\n                    var s = r;\r\n                    if (\"scroll\" === r) o.container ? o.container[\"scroll\" + o.direction] = a : \"Left\" === o.direction ? t.scrollTo(a, o.alternateValue) : t.scrollTo(o.alternateValue, a);\r\n                    else if (x.Normalizations.registered[r] && \"transform\" === x.Normalizations.registered[r](\"name\", e)) x.Normalizations.registered[r](\"inject\", e, a), s = \"transform\", a = i(e).transformCache[r];\r\n                    else {\r\n                        if (x.Hooks.registered[r]) {\r\n                            var l = r,\r\n                                u = x.Hooks.getRoot(r);\r\n                            n = n || x.getPropertyValue(e, u), a = x.Hooks.injectValue(l, a, n), r = u\r\n                        }\r\n                        if (x.Normalizations.registered[r] && (a = x.Normalizations.registered[r](\"inject\", e, a), r = x.Normalizations.registered[r](\"name\", e)), s = x.Names.prefixCheck(r)[0], 8 >= f) try {\r\n                            e.style[s] = a\r\n                        } catch (c) {\r\n                            v.debug && console.log(\"Browser does not support [\" + a + \"] for [\" + s + \"]\")\r\n                        } else i(e) && i(e).isSVG && x.Names.SVGAttribute(r) ? e.setAttribute(r, a) : e.style[s] = a;\r\n                        v.debug >= 2 && console.log(\"Set \" + r + \" (\" + s + \"): \" + a)\r\n                    }\r\n                    return [s, a]\r\n                },\r\n                flushTransformCache: function(e) {\r\n                    function t(t) {\r\n                        return parseFloat(x.getPropertyValue(e, t))\r\n                    }\r\n                    var r = \"\";\r\n                    if ((f || v.State.isAndroid && !v.State.isChrome) && i(e).isSVG) {\r\n                        var a = {\r\n                            translate: [t(\"translateX\"), t(\"translateY\")],\r\n                            skewX: [t(\"skewX\")],\r\n                            skewY: [t(\"skewY\")],\r\n                            scale: 1 !== t(\"scale\") ? [t(\"scale\"), t(\"scale\")] : [t(\"scaleX\"), t(\"scaleY\")],\r\n                            rotate: [t(\"rotateZ\"), 0, 0]\r\n                        };\r\n                        $.each(i(e).transformCache, function(e) {\r\n                            /^translate/i.test(e) ? e = \"translate\" : /^scale/i.test(e) ? e = \"scale\" : /^rotate/i.test(e) && (e = \"rotate\"), a[e] && (r += e + \"(\" + a[e].join(\" \") + \") \", delete a[e])\r\n                        })\r\n                    } else {\r\n                        var n, o;\r\n                        $.each(i(e).transformCache, function(t) {\r\n                            return n = i(e).transformCache[t], \"transformPerspective\" === t ? (o = n, !0) : (9 === f && \"rotateZ\" === t && (t = \"rotate\"), void(r += t + n + \" \"))\r\n                        }), o && (r = \"perspective\" + o + \" \" + r)\r\n                    }\r\n                    x.setPropertyValue(e, \"transform\", r)\r\n                }\r\n            };\r\n            x.Hooks.register(), x.Normalizations.register(), v.hook = function(e, t, r) {\r\n                var n = a;\r\n                return e = o(e), $.each(e, function(e, o) {\r\n                    if (i(o) === a && v.init(o), r === a) n === a && (n = v.CSS.getPropertyValue(o, t));\r\n                    else {\r\n                        var s = v.CSS.setPropertyValue(o, t, r);\r\n                        \"transform\" === s[0] && v.CSS.flushTransformCache(o), n = s\r\n                    }\r\n                }), n\r\n            };\r\n            var S = function() {\r\n                function e() {\r\n                    return l ? T.promise || null : f\r\n                }\r\n\r\n                function n() {\r\n                    function e(e) {\r\n                        function p(e, t) {\r\n                            var r = a,\r\n                                i = a,\r\n                                s = a;\r\n                            return g.isArray(e) ? (r = e[0], !g.isArray(e[1]) && /^[\\d-]/.test(e[1]) || g.isFunction(e[1]) || x.RegEx.isHex.test(e[1]) ? s = e[1] : (g.isString(e[1]) && !x.RegEx.isHex.test(e[1]) || g.isArray(e[1])) && (i = t ? e[1] : u(e[1], o.duration), e[2] !== a && (s = e[2]))) : r = e, t || (i = i || o.easing), g.isFunction(r) && (r = r.call(n, w, P)), g.isFunction(s) && (s = s.call(n, w, P)), [r || 0, i, s]\r\n                        }\r\n\r\n                        function f(e, t) {\r\n                            var r, a;\r\n                            return a = (t || \"0\").toString().toLowerCase().replace(/[%A-z]+$/, function(e) {\r\n                                return r = e, \"\"\r\n                            }), r || (r = x.Values.getUnitType(e)), [a, r]\r\n                        }\r\n\r\n                        function d() {\r\n                            var e = {\r\n                                    myParent: n.parentNode || r.body,\r\n                                    position: x.getPropertyValue(n, \"position\"),\r\n                                    fontSize: x.getPropertyValue(n, \"fontSize\")\r\n                                },\r\n                                a = e.position === N.lastPosition && e.myParent === N.lastParent,\r\n                                o = e.fontSize === N.lastFontSize;\r\n                            N.lastParent = e.myParent, N.lastPosition = e.position, N.lastFontSize = e.fontSize;\r\n                            var s = 100,\r\n                                l = {};\r\n                            if (o && a) l.emToPx = N.lastEmToPx, l.percentToPxWidth = N.lastPercentToPxWidth, l.percentToPxHeight = N.lastPercentToPxHeight;\r\n                            else {\r\n                                var u = i(n).isSVG ? r.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\") : r.createElement(\"div\");\r\n                                v.init(u), e.myParent.appendChild(u), $.each([\"overflow\", \"overflowX\", \"overflowY\"], function(e, t) {\r\n                                    v.CSS.setPropertyValue(u, t, \"hidden\")\r\n                                }), v.CSS.setPropertyValue(u, \"position\", e.position), v.CSS.setPropertyValue(u, \"fontSize\", e.fontSize), v.CSS.setPropertyValue(u, \"boxSizing\", \"content-box\"), $.each([\"minWidth\", \"maxWidth\", \"width\", \"minHeight\", \"maxHeight\", \"height\"], function(e, t) {\r\n                                    v.CSS.setPropertyValue(u, t, s + \"%\")\r\n                                }), v.CSS.setPropertyValue(u, \"paddingLeft\", s + \"em\"), l.percentToPxWidth = N.lastPercentToPxWidth = (parseFloat(x.getPropertyValue(u, \"width\", null, !0)) || 1) / s, l.percentToPxHeight = N.lastPercentToPxHeight = (parseFloat(x.getPropertyValue(u, \"height\", null, !0)) || 1) / s, l.emToPx = N.lastEmToPx = (parseFloat(x.getPropertyValue(u, \"paddingLeft\")) || 1) / s, e.myParent.removeChild(u)\r\n                            }\r\n                            return null === N.remToPx && (N.remToPx = parseFloat(x.getPropertyValue(r.body, \"fontSize\")) || 16), null === N.vwToPx && (N.vwToPx = parseFloat(t.innerWidth) / 100, N.vhToPx = parseFloat(t.innerHeight) / 100), l.remToPx = N.remToPx, l.vwToPx = N.vwToPx, l.vhToPx = N.vhToPx, v.debug >= 1 && console.log(\"Unit ratios: \" + JSON.stringify(l), n), l\r\n                        }\r\n                        if (o.begin && 0 === w) try {\r\n                            o.begin.call(m, m)\r\n                        } catch (y) {\r\n                            setTimeout(function() {\r\n                                throw y\r\n                            }, 1)\r\n                        }\r\n                        if (\"scroll\" === k) {\r\n                            var S = /^x$/i.test(o.axis) ? \"Left\" : \"Top\",\r\n                                V = parseFloat(o.offset) || 0,\r\n                                C, A, F;\r\n                            o.container ? g.isWrapped(o.container) || g.isNode(o.container) ? (o.container = o.container[0] || o.container, C = o.container[\"scroll\" + S], F = C + $(n).position()[S.toLowerCase()] + V) : o.container = null : (C = v.State.scrollAnchor[v.State[\"scrollProperty\" + S]], A = v.State.scrollAnchor[v.State[\"scrollProperty\" + (\"Left\" === S ? \"Top\" : \"Left\")]], F = $(n).offset()[S.toLowerCase()] + V), s = {\r\n                                scroll: {\r\n                                    rootPropertyValue: !1,\r\n                                    startValue: C,\r\n                                    currentValue: C,\r\n                                    endValue: F,\r\n                                    unitType: \"\",\r\n                                    easing: o.easing,\r\n                                    scrollData: {\r\n                                        container: o.container,\r\n                                        direction: S,\r\n                                        alternateValue: A\r\n                                    }\r\n                                },\r\n                                element: n\r\n                            }, v.debug && console.log(\"tweensContainer (scroll): \", s.scroll, n)\r\n                        } else if (\"reverse\" === k) {\r\n                            if (!i(n).tweensContainer) return void $.dequeue(n, o.queue);\r\n                            \"none\" === i(n).opts.display && (i(n).opts.display = \"auto\"), \"hidden\" === i(n).opts.visibility && (i(n).opts.visibility = \"visible\"), i(n).opts.loop = !1, i(n).opts.begin = null, i(n).opts.complete = null, b.easing || delete o.easing, b.duration || delete o.duration, o = $.extend({}, i(n).opts, o);\r\n                            var E = $.extend(!0, {}, i(n).tweensContainer);\r\n                            for (var j in E)\r\n                                if (\"element\" !== j) {\r\n                                    var H = E[j].startValue;\r\n                                    E[j].startValue = E[j].currentValue = E[j].endValue, E[j].endValue = H, g.isEmptyObject(b) || (E[j].easing = o.easing), v.debug && console.log(\"reverse tweensContainer (\" + j + \"): \" + JSON.stringify(E[j]), n)\r\n                                }\r\n                            s = E\r\n                        } else if (\"start\" === k) {\r\n                            var E;\r\n                            i(n).tweensContainer && i(n).isAnimating === !0 && (E = i(n).tweensContainer), $.each(h, function(e, t) {\r\n                                if (RegExp(\"^\" + x.Lists.colors.join(\"$|^\") + \"$\").test(e)) {\r\n                                    var r = p(t, !0),\r\n                                        n = r[0],\r\n                                        o = r[1],\r\n                                        i = r[2];\r\n                                    if (x.RegEx.isHex.test(n)) {\r\n                                        for (var s = [\"Red\", \"Green\", \"Blue\"], l = x.Values.hexToRgb(n), u = i ? x.Values.hexToRgb(i) : a, c = 0; c < s.length; c++) {\r\n                                            var f = [l[c]];\r\n                                            o && f.push(o), u !== a && f.push(u[c]), h[e + s[c]] = f\r\n                                        }\r\n                                        delete h[e]\r\n                                    }\r\n                                }\r\n                            });\r\n                            for (var R in h) {\r\n                                var O = p(h[R]),\r\n                                    z = O[0],\r\n                                    q = O[1],\r\n                                    M = O[2];\r\n                                R = x.Names.camelCase(R);\r\n                                var I = x.Hooks.getRoot(R),\r\n                                    B = !1;\r\n                                if (i(n).isSVG || \"tween\" === I || x.Names.prefixCheck(I)[1] !== !1 || x.Normalizations.registered[I] !== a) {\r\n                                    (o.display !== a && null !== o.display && \"none\" !== o.display || o.visibility !== a && \"hidden\" !== o.visibility) && /opacity|filter/.test(R) && !M && 0 !== z && (M = 0), o._cacheValues && E && E[R] ? (M === a && (M = E[R].endValue + E[R].unitType), B = i(n).rootPropertyValueCache[I]) : x.Hooks.registered[R] ? M === a ? (B = x.getPropertyValue(n, I), M = x.getPropertyValue(n, R, B)) : B = x.Hooks.templates[I][1] : M === a && (M = x.getPropertyValue(n, R));\r\n                                    var W, G, D, X = !1;\r\n                                    if (W = f(R, M), M = W[0], D = W[1], W = f(R, z), z = W[0].replace(/^([+-\\/*])=/, function(e, t) {\r\n                                            return X = t, \"\"\r\n                                        }), G = W[1], M = parseFloat(M) || 0, z = parseFloat(z) || 0, \"%\" === G && (/^(fontSize|lineHeight)$/.test(R) ? (z /= 100, G = \"em\") : /^scale/.test(R) ? (z /= 100, G = \"\") : /(Red|Green|Blue)$/i.test(R) && (z = z / 100 * 255, G = \"\")), /[\\/*]/.test(X)) G = D;\r\n                                    else if (D !== G && 0 !== M)\r\n                                        if (0 === z) G = D;\r\n                                        else {\r\n                                            l = l || d();\r\n                                            var Y = /margin|padding|left|right|width|text|word|letter/i.test(R) || /X$/.test(R) || \"x\" === R ? \"x\" : \"y\";\r\n                                            switch (D) {\r\n                                                case \"%\":\r\n                                                    M *= \"x\" === Y ? l.percentToPxWidth : l.percentToPxHeight;\r\n                                                    break;\r\n                                                case \"px\":\r\n                                                    break;\r\n                                                default:\r\n                                                    M *= l[D + \"ToPx\"]\r\n                                            }\r\n                                            switch (G) {\r\n                                                case \"%\":\r\n                                                    M *= 1 / (\"x\" === Y ? l.percentToPxWidth : l.percentToPxHeight);\r\n                                                    break;\r\n                                                case \"px\":\r\n                                                    break;\r\n                                                default:\r\n                                                    M *= 1 / l[G + \"ToPx\"]\r\n                                            }\r\n                                        }\r\n                                    switch (X) {\r\n                                        case \"+\":\r\n                                            z = M + z;\r\n                                            break;\r\n                                        case \"-\":\r\n                                            z = M - z;\r\n                                            break;\r\n                                        case \"*\":\r\n                                            z = M * z;\r\n                                            break;\r\n                                        case \"/\":\r\n                                            z = M / z\r\n                                    }\r\n                                    s[R] = {\r\n                                        rootPropertyValue: B,\r\n                                        startValue: M,\r\n                                        currentValue: M,\r\n                                        endValue: z,\r\n                                        unitType: G,\r\n                                        easing: q\r\n                                    }, v.debug && console.log(\"tweensContainer (\" + R + \"): \" + JSON.stringify(s[R]), n)\r\n                                } else v.debug && console.log(\"Skipping [\" + I + \"] due to a lack of browser support.\")\r\n                            }\r\n                            s.element = n\r\n                        }\r\n                        s.element && (x.Values.addClass(n, \"velocity-animating\"), L.push(s), \"\" === o.queue && (i(n).tweensContainer = s, i(n).opts = o), i(n).isAnimating = !0, w === P - 1 ? (v.State.calls.push([L, m, o, null, T.resolver]), v.State.isTicking === !1 && (v.State.isTicking = !0, c())) : w++)\r\n                    }\r\n                    var n = this,\r\n                        o = $.extend({}, v.defaults, b),\r\n                        s = {},\r\n                        l;\r\n                    switch (i(n) === a && v.init(n), parseFloat(o.delay) && o.queue !== !1 && $.queue(n, o.queue, function(e) {\r\n                        v.velocityQueueEntryFlag = !0, i(n).delayTimer = {\r\n                            setTimeout: setTimeout(e, parseFloat(o.delay)),\r\n                            next: e\r\n                        }\r\n                    }), o.duration.toString().toLowerCase()) {\r\n                        case \"fast\":\r\n                            o.duration = 200;\r\n                            break;\r\n                        case \"normal\":\r\n                            o.duration = y;\r\n                            break;\r\n                        case \"slow\":\r\n                            o.duration = 600;\r\n                            break;\r\n                        default:\r\n                            o.duration = parseFloat(o.duration) || 1\r\n                    }\r\n                    v.mock !== !1 && (v.mock === !0 ? o.duration = o.delay = 1 : (o.duration *= parseFloat(v.mock) || 1, o.delay *= parseFloat(v.mock) || 1)), o.easing = u(o.easing, o.duration), o.begin && !g.isFunction(o.begin) && (o.begin = null), o.progress && !g.isFunction(o.progress) && (o.progress = null), o.complete && !g.isFunction(o.complete) && (o.complete = null), o.display !== a && null !== o.display && (o.display = o.display.toString().toLowerCase(), \"auto\" === o.display && (o.display = v.CSS.Values.getDisplayType(n))), o.visibility !== a && null !== o.visibility && (o.visibility = o.visibility.toString().toLowerCase()), o.mobileHA = o.mobileHA && v.State.isMobile && !v.State.isGingerbread, o.queue === !1 ? o.delay ? setTimeout(e, o.delay) : e() : $.queue(n, o.queue, function(t, r) {\r\n                        return r === !0 ? (T.promise && T.resolver(m), !0) : (v.velocityQueueEntryFlag = !0, void e(t))\r\n                    }), \"\" !== o.queue && \"fx\" !== o.queue || \"inprogress\" === $.queue(n)[0] || $.dequeue(n)\r\n                }\r\n                var s = arguments[0] && (arguments[0].p || $.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || g.isString(arguments[0].properties)),\r\n                    l, f, d, m, h, b;\r\n                if (g.isWrapped(this) ? (l = !1, d = 0, m = this, f = this) : (l = !0, d = 1, m = s ? arguments[0].elements || arguments[0].e : arguments[0]), m = o(m)) {\r\n                    s ? (h = arguments[0].properties || arguments[0].p, b = arguments[0].options || arguments[0].o) : (h = arguments[d], b = arguments[d + 1]);\r\n                    var P = m.length,\r\n                        w = 0;\r\n                    if (!/^(stop|finish)$/i.test(h) && !$.isPlainObject(b)) {\r\n                        var V = d + 1;\r\n                        b = {};\r\n                        for (var C = V; C < arguments.length; C++) g.isArray(arguments[C]) || !/^(fast|normal|slow)$/i.test(arguments[C]) && !/^\\d/.test(arguments[C]) ? g.isString(arguments[C]) || g.isArray(arguments[C]) ? b.easing = arguments[C] : g.isFunction(arguments[C]) && (b.complete = arguments[C]) : b.duration = arguments[C]\r\n                    }\r\n                    var T = {\r\n                        promise: null,\r\n                        resolver: null,\r\n                        rejecter: null\r\n                    };\r\n                    l && v.Promise && (T.promise = new v.Promise(function(e, t) {\r\n                        T.resolver = e, T.rejecter = t\r\n                    }));\r\n                    var k;\r\n                    switch (h) {\r\n                        case \"scroll\":\r\n                            k = \"scroll\";\r\n                            break;\r\n                        case \"reverse\":\r\n                            k = \"reverse\";\r\n                            break;\r\n                        case \"finish\":\r\n                        case \"stop\":\r\n                            $.each(m, function(e, t) {\r\n                                i(t) && i(t).delayTimer && (clearTimeout(i(t).delayTimer.setTimeout), i(t).delayTimer.next && i(t).delayTimer.next(), delete i(t).delayTimer)\r\n                            });\r\n                            var A = [];\r\n                            return $.each(v.State.calls, function(e, t) {\r\n                                t && $.each(t[1], function(r, n) {\r\n                                    var o = b === a ? \"\" : b;\r\n                                    return o === !0 || t[2].queue === o || b === a && t[2].queue === !1 ? void $.each(m, function(r, a) {\r\n                                        a === n && ((b === !0 || g.isString(b)) && ($.each($.queue(a, g.isString(b) ? b : \"\"), function(e, t) {\r\n                                            g.isFunction(t) && t(null, !0)\r\n                                        }), $.queue(a, g.isString(b) ? b : \"\", [])), \"stop\" === h ? (i(a) && i(a).tweensContainer && o !== !1 && $.each(i(a).tweensContainer, function(e, t) {\r\n                                            t.endValue = t.currentValue\r\n                                        }), A.push(e)) : \"finish\" === h && (t[2].duration = 1))\r\n                                    }) : !0\r\n                                })\r\n                            }), \"stop\" === h && ($.each(A, function(e, t) {\r\n                                p(t, !0)\r\n                            }), T.promise && T.resolver(m)), e();\r\n                        default:\r\n                            if (!$.isPlainObject(h) || g.isEmptyObject(h)) {\r\n                                if (g.isString(h) && v.Redirects[h]) {\r\n                                    var F = $.extend({}, b),\r\n                                        E = F.duration,\r\n                                        j = F.delay || 0;\r\n                                    return F.backwards === !0 && (m = $.extend(!0, [], m).reverse()), $.each(m, function(e, t) {\r\n                                        parseFloat(F.stagger) ? F.delay = j + parseFloat(F.stagger) * e : g.isFunction(F.stagger) && (F.delay = j + F.stagger.call(t, e, P)), F.drag && (F.duration = parseFloat(E) || (/^(callout|transition)/.test(h) ? 1e3 : y), F.duration = Math.max(F.duration * (F.backwards ? 1 - e / P : (e + 1) / P), .75 * F.duration, 200)), v.Redirects[h].call(t, t, F || {}, e, P, m, T.promise ? T : a)\r\n                                    }), e()\r\n                                }\r\n                                var H = \"Velocity: First argument (\" + h + \") was not a property map, a known action, or a registered redirect. Aborting.\";\r\n                                return T.promise ? T.rejecter(new Error(H)) : console.log(H), e()\r\n                            }\r\n                            k = \"start\"\r\n                    }\r\n                    var N = {\r\n                            lastParent: null,\r\n                            lastPosition: null,\r\n                            lastFontSize: null,\r\n                            lastPercentToPxWidth: null,\r\n                            lastPercentToPxHeight: null,\r\n                            lastEmToPx: null,\r\n                            remToPx: null,\r\n                            vwToPx: null,\r\n                            vhToPx: null\r\n                        },\r\n                        L = [];\r\n                    $.each(m, function(e, t) {\r\n                        g.isNode(t) && n.call(t)\r\n                    });\r\n                    var F = $.extend({}, v.defaults, b),\r\n                        R;\r\n                    if (F.loop = parseInt(F.loop), R = 2 * F.loop - 1, F.loop)\r\n                        for (var O = 0; R > O; O++) {\r\n                            var z = {\r\n                                delay: F.delay,\r\n                                progress: F.progress\r\n                            };\r\n                            O === R - 1 && (z.display = F.display, z.visibility = F.visibility, z.complete = F.complete), S(m, \"reverse\", z)\r\n                        }\r\n                    return e()\r\n                }\r\n            };\r\n            v = $.extend(S, v), v.animate = S;\r\n            var P = t.requestAnimationFrame || d;\r\n            return v.State.isMobile || r.hidden === a || r.addEventListener(\"visibilitychange\", function() {\r\n                r.hidden ? (P = function(e) {\r\n                    return setTimeout(function() {\r\n                        e(!0)\r\n                    }, 16)\r\n                }, c()) : P = t.requestAnimationFrame || d\r\n            }), e.Velocity = v, e !== t && (e.fn.velocity = S, e.fn.velocity.defaults = v.defaults), $.each([\"Down\", \"Up\"], function(e, t) {\r\n                v.Redirects[\"slide\" + t] = function(e, r, n, o, i, s) {\r\n                    var l = $.extend({}, r),\r\n                        u = l.begin,\r\n                        c = l.complete,\r\n                        p = {\r\n                            height: \"\",\r\n                            marginTop: \"\",\r\n                            marginBottom: \"\",\r\n                            paddingTop: \"\",\r\n                            paddingBottom: \"\"\r\n                        },\r\n                        f = {};\r\n                    l.display === a && (l.display = \"Down\" === t ? \"inline\" === v.CSS.Values.getDisplayType(e) ? \"inline-block\" : \"block\" : \"none\"), l.begin = function() {\r\n                        u && u.call(i, i);\r\n                        for (var r in p) {\r\n                            f[r] = e.style[r];\r\n                            var a = v.CSS.getPropertyValue(e, r);\r\n                            p[r] = \"Down\" === t ? [a, 0] : [0, a]\r\n                        }\r\n                        f.overflow = e.style.overflow, e.style.overflow = \"hidden\"\r\n                    }, l.complete = function() {\r\n                        for (var t in f) e.style[t] = f[t];\r\n                        c && c.call(i, i), s && s.resolver(i)\r\n                    }, v(e, p, l)\r\n                }\r\n            }), $.each([\"In\", \"Out\"], function(e, t) {\r\n                v.Redirects[\"fade\" + t] = function(e, r, n, o, i, s) {\r\n                    var l = $.extend({}, r),\r\n                        u = {\r\n                            opacity: \"In\" === t ? 1 : 0\r\n                        },\r\n                        c = l.complete;\r\n                    l.complete = n !== o - 1 ? l.begin = null : function() {\r\n                        c && c.call(i, i), s && s.resolver(i)\r\n                    }, l.display === a && (l.display = \"In\" === t ? \"auto\" : \"none\"), v(this, u, l)\r\n                }\r\n            }), v\r\n        }(window.jQuery || window.Zepto || window, window, document)\r\n    }\r\n\r\n\r\n"}}