Advertisement
Guest User

Untitled

a guest
Sep 18th, 2014
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function shareIdea(t, e, n) {
  2.         $(t).each(function() {
  3.             $(this).click(function() {
  4.                 var t = $(this).closest(".idea-widget").find("a.title").attr("href"),
  5.                     i = $(this).closest(".idea-widget").find("a.title").text();
  6.                 return myWin = n ? open(e + t + n + i, "displayWindow", "width=520,height=300,left=350,top=170,status=no,toolbar=no,menubar=no") : open(e + t, "displayWindow", "width=520,height=300,left=350,top=170,status=no,toolbar=no,menubar=no"), !1
  7.             })
  8.         })
  9.     }! function(t, e) {
  10.         "object" == typeof module && "object" == typeof module.exports ? module.exports = t.document ? e(t, !0) : function(t) {
  11.             if (!t.document) throw new Error("jQuery requires a window with a document");
  12.             return e(t)
  13.         } : e(t)
  14.     }("undefined" != typeof window ? window : this, function(t, e) {
  15.         function n(t) {
  16.             var e = t.length,
  17.                 n = oe.type(t);
  18.             return "function" === n || oe.isWindow(t) ? !1 : 1 === t.nodeType && e ? !0 : "array" === n || 0 === e || "number" == typeof e && e > 0 && e - 1 in t
  19.         }
  20.  
  21.         function i(t, e, n) {
  22.             if (oe.isFunction(e)) return oe.grep(t, function(t, i) {
  23.                 return !!e.call(t, i, t) !== n
  24.             });
  25.             if (e.nodeType) return oe.grep(t, function(t) {
  26.                 return t === e !== n
  27.             });
  28.             if ("string" == typeof e) {
  29.                 if (de.test(e)) return oe.filter(e, t, n);
  30.                 e = oe.filter(e, t)
  31.             }
  32.             return oe.grep(t, function(t) {
  33.                 return oe.inArray(t, e) >= 0 !== n
  34.             })
  35.         }
  36.  
  37.         function o(t, e) {
  38.             do t = t[e]; while (t && 1 !== t.nodeType);
  39.             return t
  40.         }
  41.  
  42.         function r(t) {
  43.             var e = xe[t] = {};
  44.             return oe.each(t.match(be) || [], function(t, n) {
  45.                 e[n] = !0
  46.             }), e
  47.         }
  48.  
  49.         function s() {
  50.             pe.addEventListener ? (pe.removeEventListener("DOMContentLoaded", a, !1), t.removeEventListener("load", a, !1)) : (pe.detachEvent("onreadystatechange", a), t.detachEvent("onload", a))
  51.         }
  52.  
  53.         function a() {
  54.             (pe.addEventListener || "load" === event.type || "complete" === pe.readyState) && (s(), oe.ready())
  55.         }
  56.  
  57.         function l(t, e, n) {
  58.             if (void 0 === n && 1 === t.nodeType) {
  59.                 var i = "data-" + e.replace(Te, "-$1").toLowerCase();
  60.                 if (n = t.getAttribute(i), "string" == typeof n) {
  61.                     try {
  62.                         n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? +n : _e.test(n) ? oe.parseJSON(n) : n
  63.                     } catch (o) {}
  64.                     oe.data(t, e, n)
  65.                 } else n = void 0
  66.             }
  67.             return n
  68.         }
  69.  
  70.         function c(t) {
  71.             var e;
  72.             for (e in t)
  73.                 if (("data" !== e || !oe.isEmptyObject(t[e])) && "toJSON" !== e) return !1;
  74.             return !0
  75.         }
  76.  
  77.         function u(t, e, n, i) {
  78.             if (oe.acceptData(t)) {
  79.                 var o, r, s = oe.expando,
  80.                     a = t.nodeType,
  81.                     l = a ? oe.cache : t,
  82.                     c = a ? t[s] : t[s] && s;
  83.                 if (c && l[c] && (i || l[c].data) || void 0 !== n || "string" != typeof e) return c || (c = a ? t[s] = Y.pop() || oe.guid++ : s), l[c] || (l[c] = a ? {} : {
  84.                     toJSON: oe.noop
  85.                 }), ("object" == typeof e || "function" == typeof e) && (i ? l[c] = oe.extend(l[c], e) : l[c].data = oe.extend(l[c].data, e)), r = l[c], i || (r.data || (r.data = {}), r = r.data), void 0 !== n && (r[oe.camelCase(e)] = n), "string" == typeof e ? (o = r[e], null == o && (o = r[oe.camelCase(e)])) : o = r, o
  86.             }
  87.         }
  88.  
  89.         function h(t, e, n) {
  90.             if (oe.acceptData(t)) {
  91.                 var i, o, r = t.nodeType,
  92.                     s = r ? oe.cache : t,
  93.                     a = r ? t[oe.expando] : oe.expando;
  94.                 if (s[a]) {
  95.                     if (e && (i = n ? s[a] : s[a].data)) {
  96.                         oe.isArray(e) ? e = e.concat(oe.map(e, oe.camelCase)) : e in i ? e = [e] : (e = oe.camelCase(e), e = e in i ? [e] : e.split(" ")), o = e.length;
  97.                         for (; o--;) delete i[e[o]];
  98.                         if (n ? !c(i) : !oe.isEmptyObject(i)) return
  99.                     }(n || (delete s[a].data, c(s[a]))) && (r ? oe.cleanData([t], !0) : ne.deleteExpando || s != s.window ? delete s[a] : s[a] = null)
  100.                 }
  101.             }
  102.         }
  103.  
  104.         function d() {
  105.             return !0
  106.         }
  107.  
  108.         function f() {
  109.             return !1
  110.         }
  111.  
  112.         function p() {
  113.             try {
  114.                 return pe.activeElement
  115.             } catch (t) {}
  116.         }
  117.  
  118.         function m(t) {
  119.             var e = Le.split("|"),
  120.                 n = t.createDocumentFragment();
  121.             if (n.createElement)
  122.                 for (; e.length;) n.createElement(e.pop());
  123.             return n
  124.         }
  125.  
  126.         function g(t, e) {
  127.             var n, i, o = 0,
  128.                 r = typeof t.getElementsByTagName !== ke ? t.getElementsByTagName(e || "*") : typeof t.querySelectorAll !== ke ? t.querySelectorAll(e || "*") : void 0;
  129.             if (!r)
  130.                 for (r = [], n = t.childNodes || t; null != (i = n[o]); o++) !e || oe.nodeName(i, e) ? r.push(i) : oe.merge(r, g(i, e));
  131.             return void 0 === e || e && oe.nodeName(t, e) ? oe.merge([t], r) : r
  132.         }
  133.  
  134.         function v(t) {
  135.             De.test(t.type) && (t.defaultChecked = t.checked)
  136.         }
  137.  
  138.         function y(t, e) {
  139.             return oe.nodeName(t, "table") && oe.nodeName(11 !== e.nodeType ? e : e.firstChild, "tr") ? t.getElementsByTagName("tbody")[0] || t.appendChild(t.ownerDocument.createElement("tbody")) : t
  140.         }
  141.  
  142.         function b(t) {
  143.             return t.type = (null !== oe.find.attr(t, "type")) + "/" + t.type, t
  144.         }
  145.  
  146.         function x(t) {
  147.             var e = Ue.exec(t.type);
  148.             return e ? t.type = e[1] : t.removeAttribute("type"), t
  149.         }
  150.  
  151.         function w(t, e) {
  152.             for (var n, i = 0; null != (n = t[i]); i++) oe._data(n, "globalEval", !e || oe._data(e[i], "globalEval"))
  153.         }
  154.  
  155.         function C(t, e) {
  156.             if (1 === e.nodeType && oe.hasData(t)) {
  157.                 var n, i, o, r = oe._data(t),
  158.                     s = oe._data(e, r),
  159.                     a = r.events;
  160.                 if (a) {
  161.                     delete s.handle, s.events = {};
  162.                     for (n in a)
  163.                         for (i = 0, o = a[n].length; o > i; i++) oe.event.add(e, n, a[n][i])
  164.                 }
  165.                 s.data && (s.data = oe.extend({}, s.data))
  166.             }
  167.         }
  168.  
  169.         function k(t, e) {
  170.             var n, i, o;
  171.             if (1 === e.nodeType) {
  172.                 if (n = e.nodeName.toLowerCase(), !ne.noCloneEvent && e[oe.expando]) {
  173.                     o = oe._data(e);
  174.                     for (i in o.events) oe.removeEvent(e, i, o.handle);
  175.                     e.removeAttribute(oe.expando)
  176.                 }
  177.                 "script" === n && e.text !== t.text ? (b(e).text = t.text, x(e)) : "object" === n ? (e.parentNode && (e.outerHTML = t.outerHTML), ne.html5Clone && t.innerHTML && !oe.trim(e.innerHTML) && (e.innerHTML = t.innerHTML)) : "input" === n && De.test(t.type) ? (e.defaultChecked = e.checked = t.checked, e.value !== t.value && (e.value = t.value)) : "option" === n ? e.defaultSelected = e.selected = t.defaultSelected : ("input" === n || "textarea" === n) && (e.defaultValue = t.defaultValue)
  178.             }
  179.         }
  180.  
  181.         function _(e, n) {
  182.             var i, o = oe(n.createElement(e)).appendTo(n.body),
  183.                 r = t.getDefaultComputedStyle && (i = t.getDefaultComputedStyle(o[0])) ? i.display : oe.css(o[0], "display");
  184.             return o.detach(), r
  185.         }
  186.  
  187.         function T(t) {
  188.             var e = pe,
  189.                 n = Ze[t];
  190.             return n || (n = _(t, e), "none" !== n && n || (Ke = (Ke || oe("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement), e = (Ke[0].contentWindow || Ke[0].contentDocument).document, e.write(), e.close(), n = _(t, e), Ke.detach()), Ze[t] = n), n
  191.         }
  192.  
  193.         function $(t, e) {
  194.             return {
  195.                 get: function() {
  196.                     var n = t();
  197.                     if (null != n) return n ? void delete this.get : (this.get = e).apply(this, arguments)
  198.                 }
  199.             }
  200.         }
  201.  
  202.         function S(t, e) {
  203.             if (e in t) return e;
  204.             for (var n = e.charAt(0).toUpperCase() + e.slice(1), i = e, o = fn.length; o--;)
  205.                 if (e = fn[o] + n, e in t) return e;
  206.             return i
  207.         }
  208.  
  209.         function E(t, e) {
  210.             for (var n, i, o, r = [], s = 0, a = t.length; a > s; s++) i = t[s], i.style && (r[s] = oe._data(i, "olddisplay"), n = i.style.display, e ? (r[s] || "none" !== n || (i.style.display = ""), "" === i.style.display && Ee(i) && (r[s] = oe._data(i, "olddisplay", T(i.nodeName)))) : (o = Ee(i), (n && "none" !== n || !o) && oe._data(i, "olddisplay", o ? n : oe.css(i, "display"))));
  211.             for (s = 0; a > s; s++) i = t[s], i.style && (e && "none" !== i.style.display && "" !== i.style.display || (i.style.display = e ? r[s] || "" : "none"));
  212.             return t
  213.         }
  214.  
  215.         function N(t, e, n) {
  216.             var i = cn.exec(e);
  217.             return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : e
  218.         }
  219.  
  220.         function D(t, e, n, i, o) {
  221.             for (var r = n === (i ? "border" : "content") ? 4 : "width" === e ? 1 : 0, s = 0; 4 > r; r += 2) "margin" === n && (s += oe.css(t, n + Se[r], !0, o)), i ? ("content" === n && (s -= oe.css(t, "padding" + Se[r], !0, o)), "margin" !== n && (s -= oe.css(t, "border" + Se[r] + "Width", !0, o))) : (s += oe.css(t, "padding" + Se[r], !0, o), "padding" !== n && (s += oe.css(t, "border" + Se[r] + "Width", !0, o)));
  222.             return s
  223.         }
  224.  
  225.         function j(t, e, n) {
  226.             var i = !0,
  227.                 o = "width" === e ? t.offsetWidth : t.offsetHeight,
  228.                 r = tn(t),
  229.                 s = ne.boxSizing && "border-box" === oe.css(t, "boxSizing", !1, r);
  230.             if (0 >= o || null == o) {
  231.                 if (o = en(t, e, r), (0 > o || null == o) && (o = t.style[e]), on.test(o)) return o;
  232.                 i = s && (ne.boxSizingReliable() || o === t.style[e]), o = parseFloat(o) || 0
  233.             }
  234.             return o + D(t, e, n || (s ? "border" : "content"), i, r) + "px"
  235.         }
  236.  
  237.         function P(t, e, n, i, o) {
  238.             return new P.prototype.init(t, e, n, i, o)
  239.         }
  240.  
  241.         function A() {
  242.             return setTimeout(function() {
  243.                 pn = void 0
  244.             }), pn = oe.now()
  245.         }
  246.  
  247.         function H(t, e) {
  248.             var n, i = {
  249.                     height: t
  250.                 },
  251.                 o = 0;
  252.             for (e = e ? 1 : 0; 4 > o; o += 2 - e) n = Se[o], i["margin" + n] = i["padding" + n] = t;
  253.             return e && (i.opacity = i.width = t), i
  254.         }
  255.  
  256.         function I(t, e, n) {
  257.             for (var i, o = (xn[e] || []).concat(xn["*"]), r = 0, s = o.length; s > r; r++)
  258.                 if (i = o[r].call(n, e, t)) return i
  259.         }
  260.  
  261.         function L(t, e, n) {
  262.             var i, o, r, s, a, l, c, u, h = this,
  263.                 d = {},
  264.                 f = t.style,
  265.                 p = t.nodeType && Ee(t),
  266.                 m = oe._data(t, "fxshow");
  267.             n.queue || (a = oe._queueHooks(t, "fx"), null == a.unqueued && (a.unqueued = 0, l = a.empty.fire, a.empty.fire = function() {
  268.                 a.unqueued || l()
  269.             }), a.unqueued++, h.always(function() {
  270.                 h.always(function() {
  271.                     a.unqueued--, oe.queue(t, "fx").length || a.empty.fire()
  272.                 })
  273.             })), 1 === t.nodeType && ("height" in e || "width" in e) && (n.overflow = [f.overflow, f.overflowX, f.overflowY], c = oe.css(t, "display"), u = "none" === c ? oe._data(t, "olddisplay") || T(t.nodeName) : c, "inline" === u && "none" === oe.css(t, "float") && (ne.inlineBlockNeedsLayout && "inline" !== T(t.nodeName) ? f.zoom = 1 : f.display = "inline-block")), n.overflow && (f.overflow = "hidden", ne.shrinkWrapBlocks() || h.always(function() {
  274.                 f.overflow = n.overflow[0], f.overflowX = n.overflow[1], f.overflowY = n.overflow[2]
  275.             }));
  276.             for (i in e)
  277.                 if (o = e[i], gn.exec(o)) {
  278.                     if (delete e[i], r = r || "toggle" === o, o === (p ? "hide" : "show")) {
  279.                         if ("show" !== o || !m || void 0 === m[i]) continue;
  280.                         p = !0
  281.                     }
  282.                     d[i] = m && m[i] || oe.style(t, i)
  283.                 } else c = void 0;
  284.             if (oe.isEmptyObject(d)) "inline" === ("none" === c ? T(t.nodeName) : c) && (f.display = c);
  285.             else {
  286.                 m ? "hidden" in m && (p = m.hidden) : m = oe._data(t, "fxshow", {}), r && (m.hidden = !p), p ? oe(t).show() : h.done(function() {
  287.                     oe(t).hide()
  288.                 }), h.done(function() {
  289.                     var e;
  290.                     oe._removeData(t, "fxshow");
  291.                     for (e in d) oe.style(t, e, d[e])
  292.                 });
  293.                 for (i in d) s = I(p ? m[i] : 0, i, h), i in m || (m[i] = s.start, p && (s.end = s.start, s.start = "width" === i || "height" === i ? 1 : 0))
  294.             }
  295.         }
  296.  
  297.         function M(t, e) {
  298.             var n, i, o, r, s;
  299.             for (n in t)
  300.                 if (i = oe.camelCase(n), o = e[i], r = t[n], oe.isArray(r) && (o = r[1], r = t[n] = r[0]), n !== i && (t[i] = r, delete t[n]), s = oe.cssHooks[i], s && "expand" in s) {
  301.                     r = s.expand(r), delete t[i];
  302.                     for (n in r) n in t || (t[n] = r[n], e[n] = o)
  303.                 } else e[i] = o
  304.         }
  305.  
  306.         function O(t, e, n) {
  307.             var i, o, r = 0,
  308.                 s = bn.length,
  309.                 a = oe.Deferred().always(function() {
  310.                     delete l.elem
  311.                 }),
  312.                 l = function() {
  313.                     if (o) return !1;
  314.                     for (var e = pn || A(), n = Math.max(0, c.startTime + c.duration - e), i = n / c.duration || 0, r = 1 - i, s = 0, l = c.tweens.length; l > s; s++) c.tweens[s].run(r);
  315.                     return a.notifyWith(t, [c, r, n]), 1 > r && l ? n : (a.resolveWith(t, [c]), !1)
  316.                 },
  317.                 c = a.promise({
  318.                     elem: t,
  319.                     props: oe.extend({}, e),
  320.                     opts: oe.extend(!0, {
  321.                         specialEasing: {}
  322.                     }, n),
  323.                     originalProperties: e,
  324.                     originalOptions: n,
  325.                     startTime: pn || A(),
  326.                     duration: n.duration,
  327.                     tweens: [],
  328.                     createTween: function(e, n) {
  329.                         var i = oe.Tween(t, c.opts, e, n, c.opts.specialEasing[e] || c.opts.easing);
  330.                         return c.tweens.push(i), i
  331.                     },
  332.                     stop: function(e) {
  333.                         var n = 0,
  334.                             i = e ? c.tweens.length : 0;
  335.                         if (o) return this;
  336.                         for (o = !0; i > n; n++) c.tweens[n].run(1);
  337.                         return e ? a.resolveWith(t, [c, e]) : a.rejectWith(t, [c, e]), this
  338.                     }
  339.                 }),
  340.                 u = c.props;
  341.             for (M(u, c.opts.specialEasing); s > r; r++)
  342.                 if (i = bn[r].call(c, t, u, c.opts)) return i;
  343.             return oe.map(u, I, c), oe.isFunction(c.opts.start) && c.opts.start.call(t, c), oe.fx.timer(oe.extend(l, {
  344.                 elem: t,
  345.                 anim: c,
  346.                 queue: c.opts.queue
  347.             })), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always)
  348.         }
  349.  
  350.         function F(t) {
  351.             return function(e, n) {
  352.                 "string" != typeof e && (n = e, e = "*");
  353.                 var i, o = 0,
  354.                     r = e.toLowerCase().match(be) || [];
  355.                 if (oe.isFunction(n))
  356.                     for (; i = r[o++];) "+" === i.charAt(0) ? (i = i.slice(1) || "*", (t[i] = t[i] || []).unshift(n)) : (t[i] = t[i] || []).push(n)
  357.             }
  358.         }
  359.  
  360.         function W(t, e, n, i) {
  361.             function o(a) {
  362.                 var l;
  363.                 return r[a] = !0, oe.each(t[a] || [], function(t, a) {
  364.                     var c = a(e, n, i);
  365.                     return "string" != typeof c || s || r[c] ? s ? !(l = c) : void 0 : (e.dataTypes.unshift(c), o(c), !1)
  366.                 }), l
  367.             }
  368.             var r = {},
  369.                 s = t === Rn;
  370.             return o(e.dataTypes[0]) || !r["*"] && o("*")
  371.         }
  372.  
  373.         function q(t, e) {
  374.             var n, i, o = oe.ajaxSettings.flatOptions || {};
  375.             for (i in e) void 0 !== e[i] && ((o[i] ? t : n || (n = {}))[i] = e[i]);
  376.             return n && oe.extend(!0, t, n), t
  377.         }
  378.  
  379.         function z(t, e, n) {
  380.             for (var i, o, r, s, a = t.contents, l = t.dataTypes;
  381.                 "*" === l[0];) l.shift(), void 0 === o && (o = t.mimeType || e.getResponseHeader("Content-Type"));
  382.             if (o)
  383.                 for (s in a)
  384.                     if (a[s] && a[s].test(o)) {
  385.                         l.unshift(s);
  386.                         break
  387.                     }
  388.             if (l[0] in n) r = l[0];
  389.             else {
  390.                 for (s in n) {
  391.                     if (!l[0] || t.converters[s + " " + l[0]]) {
  392.                         r = s;
  393.                         break
  394.                     }
  395.                     i || (i = s)
  396.                 }
  397.                 r = r || i
  398.             }
  399.             return r ? (r !== l[0] && l.unshift(r), n[r]) : void 0
  400.         }
  401.  
  402.         function B(t, e, n, i) {
  403.             var o, r, s, a, l, c = {},
  404.                 u = t.dataTypes.slice();
  405.             if (u[1])
  406.                 for (s in t.converters) c[s.toLowerCase()] = t.converters[s];
  407.             for (r = u.shift(); r;)
  408.                 if (t.responseFields[r] && (n[t.responseFields[r]] = e), !l && i && t.dataFilter && (e = t.dataFilter(e, t.dataType)), l = r, r = u.shift())
  409.                     if ("*" === r) r = l;
  410.                     else if ("*" !== l && l !== r) {
  411.                 if (s = c[l + " " + r] || c["* " + r], !s)
  412.                     for (o in c)
  413.                         if (a = o.split(" "), a[1] === r && (s = c[l + " " + a[0]] || c["* " + a[0]])) {
  414.                             s === !0 ? s = c[o] : c[o] !== !0 && (r = a[0], u.unshift(a[1]));
  415.                             break
  416.                         }
  417.                 if (s !== !0)
  418.                     if (s && t["throws"]) e = s(e);
  419.                     else try {
  420.                         e = s(e)
  421.                     } catch (h) {
  422.                         return {
  423.                             state: "parsererror",
  424.                             error: s ? h : "No conversion from " + l + " to " + r
  425.                         }
  426.                     }
  427.             }
  428.             return {
  429.                 state: "success",
  430.                 data: e
  431.             }
  432.         }
  433.  
  434.         function R(t, e, n, i) {
  435.             var o;
  436.             if (oe.isArray(e)) oe.each(e, function(e, o) {
  437.                 n || Yn.test(t) ? i(t, o) : R(t + "[" + ("object" == typeof o ? e : "") + "]", o, n, i)
  438.             });
  439.             else if (n || "object" !== oe.type(e)) i(t, e);
  440.             else
  441.                 for (o in e) R(t + "[" + o + "]", e[o], n, i)
  442.         }
  443.  
  444.         function X() {
  445.             try {
  446.                 return new t.XMLHttpRequest
  447.             } catch (e) {}
  448.         }
  449.  
  450.         function Q() {
  451.             try {
  452.                 return new t.ActiveXObject("Microsoft.XMLHTTP")
  453.             } catch (e) {}
  454.         }
  455.  
  456.         function U(t) {
  457.             return oe.isWindow(t) ? t : 9 === t.nodeType ? t.defaultView || t.parentWindow : !1
  458.         }
  459.         var Y = [],
  460.             V = Y.slice,
  461.             G = Y.concat,
  462.             J = Y.push,
  463.             K = Y.indexOf,
  464.             Z = {},
  465.             te = Z.toString,
  466.             ee = Z.hasOwnProperty,
  467.             ne = {},
  468.             ie = "1.11.1",
  469.             oe = function(t, e) {
  470.                 return new oe.fn.init(t, e)
  471.             },
  472.             re = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
  473.             se = /^-ms-/,
  474.             ae = /-([\da-z])/gi,
  475.             le = function(t, e) {
  476.                 return e.toUpperCase()
  477.             };
  478.         oe.fn = oe.prototype = {
  479.             jquery: ie,
  480.             constructor: oe,
  481.             selector: "",
  482.             length: 0,
  483.             toArray: function() {
  484.                 return V.call(this)
  485.             },
  486.             get: function(t) {
  487.                 return null != t ? 0 > t ? this[t + this.length] : this[t] : V.call(this)
  488.             },
  489.             pushStack: function(t) {
  490.                 var e = oe.merge(this.constructor(), t);
  491.                 return e.prevObject = this, e.context = this.context, e
  492.             },
  493.             each: function(t, e) {
  494.                 return oe.each(this, t, e)
  495.             },
  496.             map: function(t) {
  497.                 return this.pushStack(oe.map(this, function(e, n) {
  498.                     return t.call(e, n, e)
  499.                 }))
  500.             },
  501.             slice: function() {
  502.                 return this.pushStack(V.apply(this, arguments))
  503.             },
  504.             first: function() {
  505.                 return this.eq(0)
  506.             },
  507.             last: function() {
  508.                 return this.eq(-1)
  509.             },
  510.             eq: function(t) {
  511.                 var e = this.length,
  512.                     n = +t + (0 > t ? e : 0);
  513.                 return this.pushStack(n >= 0 && e > n ? [this[n]] : [])
  514.             },
  515.             end: function() {
  516.                 return this.prevObject || this.constructor(null)
  517.             },
  518.             push: J,
  519.             sort: Y.sort,
  520.             splice: Y.splice
  521.         }, oe.extend = oe.fn.extend = function() {
  522.             var t, e, n, i, o, r, s = arguments[0] || {},
  523.                 a = 1,
  524.                 l = arguments.length,
  525.                 c = !1;
  526.             for ("boolean" == typeof s && (c = s, s = arguments[a] || {}, a++), "object" == typeof s || oe.isFunction(s) || (s = {}), a === l && (s = this, a--); l > a; a++)
  527.                 if (null != (o = arguments[a]))
  528.                     for (i in o) t = s[i], n = o[i], s !== n && (c && n && (oe.isPlainObject(n) || (e = oe.isArray(n))) ? (e ? (e = !1, r = t && oe.isArray(t) ? t : []) : r = t && oe.isPlainObject(t) ? t : {}, s[i] = oe.extend(c, r, n)) : void 0 !== n && (s[i] = n));
  529.             return s
  530.         }, oe.extend({
  531.             expando: "jQuery" + (ie + Math.random()).replace(/\D/g, ""),
  532.             isReady: !0,
  533.             error: function(t) {
  534.                 throw new Error(t)
  535.             },
  536.             noop: function() {},
  537.             isFunction: function(t) {
  538.                 return "function" === oe.type(t)
  539.             },
  540.             isArray: Array.isArray || function(t) {
  541.                 return "array" === oe.type(t)
  542.             },
  543.             isWindow: function(t) {
  544.                 return null != t && t == t.window
  545.             },
  546.             isNumeric: function(t) {
  547.                 return !oe.isArray(t) && t - parseFloat(t) >= 0
  548.             },
  549.             isEmptyObject: function(t) {
  550.                 var e;
  551.                 for (e in t) return !1;
  552.                 return !0
  553.             },
  554.             isPlainObject: function(t) {
  555.                 var e;
  556.                 if (!t || "object" !== oe.type(t) || t.nodeType || oe.isWindow(t)) return !1;
  557.                 try {
  558.                     if (t.constructor && !ee.call(t, "constructor") && !ee.call(t.constructor.prototype, "isPrototypeOf")) return !1
  559.                 } catch (n) {
  560.                     return !1
  561.                 }
  562.                 if (ne.ownLast)
  563.                     for (e in t) return ee.call(t, e);
  564.                 for (e in t);
  565.                 return void 0 === e || ee.call(t, e)
  566.             },
  567.             type: function(t) {
  568.                 return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? Z[te.call(t)] || "object" : typeof t
  569.             },
  570.             globalEval: function(e) {
  571.                 e && oe.trim(e) && (t.execScript || function(e) {
  572.                     t.eval.call(t, e)
  573.                 })(e)
  574.             },
  575.             camelCase: function(t) {
  576.                 return t.replace(se, "ms-").replace(ae, le)
  577.             },
  578.             nodeName: function(t, e) {
  579.                 return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase()
  580.             },
  581.             each: function(t, e, i) {
  582.                 var o, r = 0,
  583.                     s = t.length,
  584.                     a = n(t);
  585.                 if (i) {
  586.                     if (a)
  587.                         for (; s > r && (o = e.apply(t[r], i), o !== !1); r++);
  588.                     else
  589.                         for (r in t)
  590.                             if (o = e.apply(t[r], i), o === !1) break
  591.                 } else if (a)
  592.                     for (; s > r && (o = e.call(t[r], r, t[r]), o !== !1); r++);
  593.                 else
  594.                     for (r in t)
  595.                         if (o = e.call(t[r], r, t[r]), o === !1) break; return t
  596.             },
  597.             trim: function(t) {
  598.                 return null == t ? "" : (t + "").replace(re, "")
  599.             },
  600.             makeArray: function(t, e) {
  601.                 var i = e || [];
  602.                 return null != t && (n(Object(t)) ? oe.merge(i, "string" == typeof t ? [t] : t) : J.call(i, t)), i
  603.             },
  604.             inArray: function(t, e, n) {
  605.                 var i;
  606.                 if (e) {
  607.                     if (K) return K.call(e, t, n);
  608.                     for (i = e.length, n = n ? 0 > n ? Math.max(0, i + n) : n : 0; i > n; n++)
  609.                         if (n in e && e[n] === t) return n
  610.                 }
  611.                 return -1
  612.             },
  613.             merge: function(t, e) {
  614.                 for (var n = +e.length, i = 0, o = t.length; n > i;) t[o++] = e[i++];
  615.                 if (n !== n)
  616.                     for (; void 0 !== e[i];) t[o++] = e[i++];
  617.                 return t.length = o, t
  618.             },
  619.             grep: function(t, e, n) {
  620.                 for (var i, o = [], r = 0, s = t.length, a = !n; s > r; r++) i = !e(t[r], r), i !== a && o.push(t[r]);
  621.                 return o
  622.             },
  623.             map: function(t, e, i) {
  624.                 var o, r = 0,
  625.                     s = t.length,
  626.                     a = n(t),
  627.                     l = [];
  628.                 if (a)
  629.                     for (; s > r; r++) o = e(t[r], r, i), null != o && l.push(o);
  630.                 else
  631.                     for (r in t) o = e(t[r], r, i), null != o && l.push(o);
  632.                 return G.apply([], l)
  633.             },
  634.             guid: 1,
  635.             proxy: function(t, e) {
  636.                 var n, i, o;
  637.                 return "string" == typeof e && (o = t[e], e = t, t = o), oe.isFunction(t) ? (n = V.call(arguments, 2), i = function() {
  638.                     return t.apply(e || this, n.concat(V.call(arguments)))
  639.                 }, i.guid = t.guid = t.guid || oe.guid++, i) : void 0
  640.             },
  641.             now: function() {
  642.                 return +new Date
  643.             },
  644.             support: ne
  645.         }), oe.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(t, e) {
  646.             Z["[object " + e + "]"] = e.toLowerCase()
  647.         });
  648.         var ce = function(t) {
  649.             function e(t, e, n, i) {
  650.                 var o, r, s, a, l, c, h, f, p, m;
  651.                 if ((e ? e.ownerDocument || e : W) !== P && j(e), e = e || P, n = n || [], !t || "string" != typeof t) return n;
  652.                 if (1 !== (a = e.nodeType) && 9 !== a) return [];
  653.                 if (H && !i) {
  654.                     if (o = ye.exec(t))
  655.                         if (s = o[1]) {
  656.                             if (9 === a) {
  657.                                 if (r = e.getElementById(s), !r || !r.parentNode) return n;
  658.                                 if (r.id === s) return n.push(r), n
  659.                             } else if (e.ownerDocument && (r = e.ownerDocument.getElementById(s)) && O(e, r) && r.id === s) return n.push(r), n
  660.                         } else {
  661.                             if (o[2]) return Z.apply(n, e.getElementsByTagName(t)), n;
  662.                             if ((s = o[3]) && w.getElementsByClassName && e.getElementsByClassName) return Z.apply(n, e.getElementsByClassName(s)), n
  663.                         }
  664.                     if (w.qsa && (!I || !I.test(t))) {
  665.                         if (f = h = F, p = e, m = 9 === a && t, 1 === a && "object" !== e.nodeName.toLowerCase()) {
  666.                             for (c = T(t), (h = e.getAttribute("id")) ? f = h.replace(xe, "\\$&") : e.setAttribute("id", f), f = "[id='" + f + "'] ", l = c.length; l--;) c[l] = f + d(c[l]);
  667.                             p = be.test(t) && u(e.parentNode) || e, m = c.join(",")
  668.                         }
  669.                         if (m) try {
  670.                             return Z.apply(n, p.querySelectorAll(m)), n
  671.                         } catch (g) {} finally {
  672.                             h || e.removeAttribute("id")
  673.                         }
  674.                     }
  675.                 }
  676.                 return S(t.replace(le, "$1"), e, n, i)
  677.             }
  678.  
  679.             function n() {
  680.                 function t(n, i) {
  681.                     return e.push(n + " ") > C.cacheLength && delete t[e.shift()], t[n + " "] = i
  682.                 }
  683.                 var e = [];
  684.                 return t
  685.             }
  686.  
  687.             function i(t) {
  688.                 return t[F] = !0, t
  689.             }
  690.  
  691.             function o(t) {
  692.                 var e = P.createElement("div");
  693.                 try {
  694.                     return !!t(e)
  695.                 } catch (n) {
  696.                     return !1
  697.                 } finally {
  698.                     e.parentNode && e.parentNode.removeChild(e), e = null
  699.                 }
  700.             }
  701.  
  702.             function r(t, e) {
  703.                 for (var n = t.split("|"), i = t.length; i--;) C.attrHandle[n[i]] = e
  704.             }
  705.  
  706.             function s(t, e) {
  707.                 var n = e && t,
  708.                     i = n && 1 === t.nodeType && 1 === e.nodeType && (~e.sourceIndex || Y) - (~t.sourceIndex || Y);
  709.                 if (i) return i;
  710.                 if (n)
  711.                     for (; n = n.nextSibling;)
  712.                         if (n === e) return -1;
  713.                 return t ? 1 : -1
  714.             }
  715.  
  716.             function a(t) {
  717.                 return function(e) {
  718.                     var n = e.nodeName.toLowerCase();
  719.                     return "input" === n && e.type === t
  720.                 }
  721.             }
  722.  
  723.             function l(t) {
  724.                 return function(e) {
  725.                     var n = e.nodeName.toLowerCase();
  726.                     return ("input" === n || "button" === n) && e.type === t
  727.                 }
  728.             }
  729.  
  730.             function c(t) {
  731.                 return i(function(e) {
  732.                     return e = +e, i(function(n, i) {
  733.                         for (var o, r = t([], n.length, e), s = r.length; s--;) n[o = r[s]] && (n[o] = !(i[o] = n[o]))
  734.                     })
  735.                 })
  736.             }
  737.  
  738.             function u(t) {
  739.                 return t && typeof t.getElementsByTagName !== U && t
  740.             }
  741.  
  742.             function h() {}
  743.  
  744.             function d(t) {
  745.                 for (var e = 0, n = t.length, i = ""; n > e; e++) i += t[e].value;
  746.                 return i
  747.             }
  748.  
  749.             function f(t, e, n) {
  750.                 var i = e.dir,
  751.                     o = n && "parentNode" === i,
  752.                     r = z++;
  753.                 return e.first ? function(e, n, r) {
  754.                     for (; e = e[i];)
  755.                         if (1 === e.nodeType || o) return t(e, n, r)
  756.                 } : function(e, n, s) {
  757.                     var a, l, c = [q, r];
  758.                     if (s) {
  759.                         for (; e = e[i];)
  760.                             if ((1 === e.nodeType || o) && t(e, n, s)) return !0
  761.                     } else
  762.                         for (; e = e[i];)
  763.                             if (1 === e.nodeType || o) {
  764.                                 if (l = e[F] || (e[F] = {}), (a = l[i]) && a[0] === q && a[1] === r) return c[2] = a[2];
  765.                                 if (l[i] = c, c[2] = t(e, n, s)) return !0
  766.                             }
  767.                 }
  768.             }
  769.  
  770.             function p(t) {
  771.                 return t.length > 1 ? function(e, n, i) {
  772.                     for (var o = t.length; o--;)
  773.                         if (!t[o](e, n, i)) return !1;
  774.                     return !0
  775.                 } : t[0]
  776.             }
  777.  
  778.             function m(t, n, i) {
  779.                 for (var o = 0, r = n.length; r > o; o++) e(t, n[o], i);
  780.                 return i
  781.             }
  782.  
  783.             function g(t, e, n, i, o) {
  784.                 for (var r, s = [], a = 0, l = t.length, c = null != e; l > a; a++)(r = t[a]) && (!n || n(r, i, o)) && (s.push(r), c && e.push(a));
  785.                 return s
  786.             }
  787.  
  788.             function v(t, e, n, o, r, s) {
  789.                 return o && !o[F] && (o = v(o)), r && !r[F] && (r = v(r, s)), i(function(i, s, a, l) {
  790.                     var c, u, h, d = [],
  791.                         f = [],
  792.                         p = s.length,
  793.                         v = i || m(e || "*", a.nodeType ? [a] : a, []),
  794.                         y = !t || !i && e ? v : g(v, d, t, a, l),
  795.                         b = n ? r || (i ? t : p || o) ? [] : s : y;
  796.                     if (n && n(y, b, a, l), o)
  797.                         for (c = g(b, f), o(c, [], a, l), u = c.length; u--;)(h = c[u]) && (b[f[u]] = !(y[f[u]] = h));
  798.                     if (i) {
  799.                         if (r || t) {
  800.                             if (r) {
  801.                                 for (c = [], u = b.length; u--;)(h = b[u]) && c.push(y[u] = h);
  802.                                 r(null, b = [], c, l)
  803.                             }
  804.                             for (u = b.length; u--;)(h = b[u]) && (c = r ? ee.call(i, h) : d[u]) > -1 && (i[c] = !(s[c] = h))
  805.                         }
  806.                     } else b = g(b === s ? b.splice(p, b.length) : b), r ? r(null, s, b, l) : Z.apply(s, b)
  807.                 })
  808.             }
  809.  
  810.             function y(t) {
  811.                 for (var e, n, i, o = t.length, r = C.relative[t[0].type], s = r || C.relative[" "], a = r ? 1 : 0, l = f(function(t) {
  812.                     return t === e
  813.                 }, s, !0), c = f(function(t) {
  814.                     return ee.call(e, t) > -1
  815.                 }, s, !0), u = [
  816.                     function(t, n, i) {
  817.                         return !r && (i || n !== E) || ((e = n).nodeType ? l(t, n, i) : c(t, n, i))
  818.                     }
  819.                 ]; o > a; a++)
  820.                     if (n = C.relative[t[a].type]) u = [f(p(u), n)];
  821.                     else {
  822.                         if (n = C.filter[t[a].type].apply(null, t[a].matches), n[F]) {
  823.                             for (i = ++a; o > i && !C.relative[t[i].type]; i++);
  824.                             return v(a > 1 && p(u), a > 1 && d(t.slice(0, a - 1).concat({
  825.                                 value: " " === t[a - 2].type ? "*" : ""
  826.                             })).replace(le, "$1"), n, i > a && y(t.slice(a, i)), o > i && y(t = t.slice(i)), o > i && d(t))
  827.                         }
  828.                         u.push(n)
  829.                     }
  830.                 return p(u)
  831.             }
  832.  
  833.             function b(t, n) {
  834.                 var o = n.length > 0,
  835.                     r = t.length > 0,
  836.                     s = function(i, s, a, l, c) {
  837.                         var u, h, d, f = 0,
  838.                             p = "0",
  839.                             m = i && [],
  840.                             v = [],
  841.                             y = E,
  842.                             b = i || r && C.find.TAG("*", c),
  843.                             x = q += null == y ? 1 : Math.random() || .1,
  844.                             w = b.length;
  845.                         for (c && (E = s !== P && s); p !== w && null != (u = b[p]); p++) {
  846.                             if (r && u) {
  847.                                 for (h = 0; d = t[h++];)
  848.                                     if (d(u, s, a)) {
  849.                                         l.push(u);
  850.                                         break
  851.                                     }
  852.                                 c && (q = x)
  853.                             }
  854.                             o && ((u = !d && u) && f--, i && m.push(u))
  855.                         }
  856.                         if (f += p, o && p !== f) {
  857.                             for (h = 0; d = n[h++];) d(m, v, s, a);
  858.                             if (i) {
  859.                                 if (f > 0)
  860.                                     for (; p--;) m[p] || v[p] || (v[p] = J.call(l));
  861.                                 v = g(v)
  862.                             }
  863.                             Z.apply(l, v), c && !i && v.length > 0 && f + n.length > 1 && e.uniqueSort(l)
  864.                         }
  865.                         return c && (q = x, E = y), m
  866.                     };
  867.                 return o ? i(s) : s
  868.             }
  869.             var x, w, C, k, _, T, $, S, E, N, D, j, P, A, H, I, L, M, O, F = "sizzle" + -new Date,
  870.                 W = t.document,
  871.                 q = 0,
  872.                 z = 0,
  873.                 B = n(),
  874.                 R = n(),
  875.                 X = n(),
  876.                 Q = function(t, e) {
  877.                     return t === e && (D = !0), 0
  878.                 },
  879.                 U = "undefined",
  880.                 Y = 1 << 31,
  881.                 V = {}.hasOwnProperty,
  882.                 G = [],
  883.                 J = G.pop,
  884.                 K = G.push,
  885.                 Z = G.push,
  886.                 te = G.slice,
  887.                 ee = G.indexOf || function(t) {
  888.                     for (var e = 0, n = this.length; n > e; e++)
  889.                         if (this[e] === t) return e;
  890.                     return -1
  891.                 },
  892.                 ne = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
  893.                 ie = "[\\x20\\t\\r\\n\\f]",
  894.                 oe = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
  895.                 re = oe.replace("w", "w#"),
  896.                 se = "\\[" + ie + "*(" + oe + ")(?:" + ie + "*([*^$|!~]?=)" + ie + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + re + "))|)" + ie + "*\\]",
  897.                 ae = ":(" + oe + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + se + ")*)|.*)\\)|)",
  898.                 le = new RegExp("^" + ie + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ie + "+$", "g"),
  899.                 ce = new RegExp("^" + ie + "*," + ie + "*"),
  900.                 ue = new RegExp("^" + ie + "*([>+~]|" + ie + ")" + ie + "*"),
  901.                 he = new RegExp("=" + ie + "*([^\\]'\"]*?)" + ie + "*\\]", "g"),
  902.                 de = new RegExp(ae),
  903.                 fe = new RegExp("^" + re + "$"),
  904.                 pe = {
  905.                     ID: new RegExp("^#(" + oe + ")"),
  906.                     CLASS: new RegExp("^\\.(" + oe + ")"),
  907.                     TAG: new RegExp("^(" + oe.replace("w", "w*") + ")"),
  908.                     ATTR: new RegExp("^" + se),
  909.                     PSEUDO: new RegExp("^" + ae),
  910.                     CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ie + "*(even|odd|(([+-]|)(\\d*)n|)" + ie + "*(?:([+-]|)" + ie + "*(\\d+)|))" + ie + "*\\)|)", "i"),
  911.                     bool: new RegExp("^(?:" + ne + ")$", "i"),
  912.                     needsContext: new RegExp("^" + ie + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ie + "*((?:-\\d)?\\d*)" + ie + "*\\)|)(?=[^-]|$)", "i")
  913.                 },
  914.                 me = /^(?:input|select|textarea|button)$/i,
  915.                 ge = /^h\d$/i,
  916.                 ve = /^[^{]+\{\s*\[native \w/,
  917.                 ye = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
  918.                 be = /[+~]/,
  919.                 xe = /'|\\/g,
  920.                 we = new RegExp("\\\\([\\da-f]{1,6}" + ie + "?|(" + ie + ")|.)", "ig"),
  921.                 Ce = function(t, e, n) {
  922.                     var i = "0x" + e - 65536;
  923.                     return i !== i || n ? e : 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320)
  924.                 };
  925.             try {
  926.                 Z.apply(G = te.call(W.childNodes), W.childNodes), G[W.childNodes.length].nodeType
  927.             } catch (ke) {
  928.                 Z = {
  929.                     apply: G.length ? function(t, e) {
  930.                         K.apply(t, te.call(e))
  931.                     } : function(t, e) {
  932.                         for (var n = t.length, i = 0; t[n++] = e[i++];);
  933.                         t.length = n - 1
  934.                     }
  935.                 }
  936.             }
  937.             w = e.support = {}, _ = e.isXML = function(t) {
  938.                 var e = t && (t.ownerDocument || t).documentElement;
  939.                 return e ? "HTML" !== e.nodeName : !1
  940.             }, j = e.setDocument = function(t) {
  941.                 var e, n = t ? t.ownerDocument || t : W,
  942.                     i = n.defaultView;
  943.                 return n !== P && 9 === n.nodeType && n.documentElement ? (P = n, A = n.documentElement, H = !_(n), i && i !== i.top && (i.addEventListener ? i.addEventListener("unload", function() {
  944.                     j()
  945.                 }, !1) : i.attachEvent && i.attachEvent("onunload", function() {
  946.                     j()
  947.                 })), w.attributes = o(function(t) {
  948.                     return t.className = "i", !t.getAttribute("className")
  949.                 }), w.getElementsByTagName = o(function(t) {
  950.                     return t.appendChild(n.createComment("")), !t.getElementsByTagName("*").length
  951.                 }), w.getElementsByClassName = ve.test(n.getElementsByClassName) && o(function(t) {
  952.                     return t.innerHTML = "<div class='a'></div><div class='a i'></div>", t.firstChild.className = "i", 2 === t.getElementsByClassName("i").length
  953.                 }), w.getById = o(function(t) {
  954.                     return A.appendChild(t).id = F, !n.getElementsByName || !n.getElementsByName(F).length
  955.                 }), w.getById ? (C.find.ID = function(t, e) {
  956.                     if (typeof e.getElementById !== U && H) {
  957.                         var n = e.getElementById(t);
  958.                         return n && n.parentNode ? [n] : []
  959.                     }
  960.                 }, C.filter.ID = function(t) {
  961.                     var e = t.replace(we, Ce);
  962.                     return function(t) {
  963.                         return t.getAttribute("id") === e
  964.                     }
  965.                 }) : (delete C.find.ID, C.filter.ID = function(t) {
  966.                     var e = t.replace(we, Ce);
  967.                     return function(t) {
  968.                         var n = typeof t.getAttributeNode !== U && t.getAttributeNode("id");
  969.                         return n && n.value === e
  970.                     }
  971.                 }), C.find.TAG = w.getElementsByTagName ? function(t, e) {
  972.                     return typeof e.getElementsByTagName !== U ? e.getElementsByTagName(t) : void 0
  973.                 } : function(t, e) {
  974.                     var n, i = [],
  975.                         o = 0,
  976.                         r = e.getElementsByTagName(t);
  977.                     if ("*" === t) {
  978.                         for (; n = r[o++];) 1 === n.nodeType && i.push(n);
  979.                         return i
  980.                     }
  981.                     return r
  982.                 }, C.find.CLASS = w.getElementsByClassName && function(t, e) {
  983.                     return typeof e.getElementsByClassName !== U && H ? e.getElementsByClassName(t) : void 0
  984.                 }, L = [], I = [], (w.qsa = ve.test(n.querySelectorAll)) && (o(function(t) {
  985.                     t.innerHTML = "<select msallowclip=''><option selected=''></option></select>", t.querySelectorAll("[msallowclip^='']").length && I.push("[*^$]=" + ie + "*(?:''|\"\")"), t.querySelectorAll("[selected]").length || I.push("\\[" + ie + "*(?:value|" + ne + ")"), t.querySelectorAll(":checked").length || I.push(":checked")
  986.                 }), o(function(t) {
  987.                     var e = n.createElement("input");
  988.                     e.setAttribute("type", "hidden"), t.appendChild(e).setAttribute("name", "D"), t.querySelectorAll("[name=d]").length && I.push("name" + ie + "*[*^$|!~]?="), t.querySelectorAll(":enabled").length || I.push(":enabled", ":disabled"), t.querySelectorAll("*,:x"), I.push(",.*:")
  989.                 })), (w.matchesSelector = ve.test(M = A.matches || A.webkitMatchesSelector || A.mozMatchesSelector || A.oMatchesSelector || A.msMatchesSelector)) && o(function(t) {
  990.                     w.disconnectedMatch = M.call(t, "div"), M.call(t, "[s!='']:x"), L.push("!=", ae)
  991.                 }), I = I.length && new RegExp(I.join("|")), L = L.length && new RegExp(L.join("|")), e = ve.test(A.compareDocumentPosition), O = e || ve.test(A.contains) ? function(t, e) {
  992.                     var n = 9 === t.nodeType ? t.documentElement : t,
  993.                         i = e && e.parentNode;
  994.                     return t === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(i)))
  995.                 } : function(t, e) {
  996.                     if (e)
  997.                         for (; e = e.parentNode;)
  998.                             if (e === t) return !0;
  999.                     return !1
  1000.                 }, Q = e ? function(t, e) {
  1001.                     if (t === e) return D = !0, 0;
  1002.                     var i = !t.compareDocumentPosition - !e.compareDocumentPosition;
  1003.                     return i ? i : (i = (t.ownerDocument || t) === (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1, 1 & i || !w.sortDetached && e.compareDocumentPosition(t) === i ? t === n || t.ownerDocument === W && O(W, t) ? -1 : e === n || e.ownerDocument === W && O(W, e) ? 1 : N ? ee.call(N, t) - ee.call(N, e) : 0 : 4 & i ? -1 : 1)
  1004.                 } : function(t, e) {
  1005.                     if (t === e) return D = !0, 0;
  1006.                     var i, o = 0,
  1007.                         r = t.parentNode,
  1008.                         a = e.parentNode,
  1009.                         l = [t],
  1010.                         c = [e];
  1011.                     if (!r || !a) return t === n ? -1 : e === n ? 1 : r ? -1 : a ? 1 : N ? ee.call(N, t) - ee.call(N, e) : 0;
  1012.                     if (r === a) return s(t, e);
  1013.                     for (i = t; i = i.parentNode;) l.unshift(i);
  1014.                     for (i = e; i = i.parentNode;) c.unshift(i);
  1015.                     for (; l[o] === c[o];) o++;
  1016.                     return o ? s(l[o], c[o]) : l[o] === W ? -1 : c[o] === W ? 1 : 0
  1017.                 }, n) : P
  1018.             }, e.matches = function(t, n) {
  1019.                 return e(t, null, null, n)
  1020.             }, e.matchesSelector = function(t, n) {
  1021.                 if ((t.ownerDocument || t) !== P && j(t), n = n.replace(he, "='$1']"), !(!w.matchesSelector || !H || L && L.test(n) || I && I.test(n))) try {
  1022.                     var i = M.call(t, n);
  1023.                     if (i || w.disconnectedMatch || t.document && 11 !== t.document.nodeType) return i
  1024.                 } catch (o) {}
  1025.                 return e(n, P, null, [t]).length > 0
  1026.             }, e.contains = function(t, e) {
  1027.                 return (t.ownerDocument || t) !== P && j(t), O(t, e)
  1028.             }, e.attr = function(t, e) {
  1029.                 (t.ownerDocument || t) !== P && j(t);
  1030.                 var n = C.attrHandle[e.toLowerCase()],
  1031.                     i = n && V.call(C.attrHandle, e.toLowerCase()) ? n(t, e, !H) : void 0;
  1032.                 return void 0 !== i ? i : w.attributes || !H ? t.getAttribute(e) : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
  1033.             }, e.error = function(t) {
  1034.                 throw new Error("Syntax error, unrecognized expression: " + t)
  1035.             }, e.uniqueSort = function(t) {
  1036.                 var e, n = [],
  1037.                     i = 0,
  1038.                     o = 0;
  1039.                 if (D = !w.detectDuplicates, N = !w.sortStable && t.slice(0), t.sort(Q), D) {
  1040.                     for (; e = t[o++];) e === t[o] && (i = n.push(o));
  1041.                     for (; i--;) t.splice(n[i], 1)
  1042.                 }
  1043.                 return N = null, t
  1044.             }, k = e.getText = function(t) {
  1045.                 var e, n = "",
  1046.                     i = 0,
  1047.                     o = t.nodeType;
  1048.                 if (o) {
  1049.                     if (1 === o || 9 === o || 11 === o) {
  1050.                         if ("string" == typeof t.textContent) return t.textContent;
  1051.                         for (t = t.firstChild; t; t = t.nextSibling) n += k(t)
  1052.                     } else if (3 === o || 4 === o) return t.nodeValue
  1053.                 } else
  1054.                     for (; e = t[i++];) n += k(e);
  1055.                 return n
  1056.             }, C = e.selectors = {
  1057.                 cacheLength: 50,
  1058.                 createPseudo: i,
  1059.                 match: pe,
  1060.                 attrHandle: {},
  1061.                 find: {},
  1062.                 relative: {
  1063.                     ">": {
  1064.                         dir: "parentNode",
  1065.                         first: !0
  1066.                     },
  1067.                     " ": {
  1068.                         dir: "parentNode"
  1069.                     },
  1070.                     "+": {
  1071.                         dir: "previousSibling",
  1072.                         first: !0
  1073.                     },
  1074.                     "~": {
  1075.                         dir: "previousSibling"
  1076.                     }
  1077.                 },
  1078.                 preFilter: {
  1079.                     ATTR: function(t) {
  1080.                         return t[1] = t[1].replace(we, Ce), t[3] = (t[3] || t[4] || t[5] || "").replace(we, Ce), "~=" === t[2] && (t[3] = " " + t[3] + " "), t.slice(0, 4)
  1081.                     },
  1082.                     CHILD: function(t) {
  1083.                         return t[1] = t[1].toLowerCase(), "nth" === t[1].slice(0, 3) ? (t[3] || e.error(t[0]), t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * ("even" === t[3] || "odd" === t[3])), t[5] = +(t[7] + t[8] || "odd" === t[3])) : t[3] && e.error(t[0]), t
  1084.                     },
  1085.                     PSEUDO: function(t) {
  1086.                         var e, n = !t[6] && t[2];
  1087.                         return pe.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || "" : n && de.test(n) && (e = T(n, !0)) && (e = n.indexOf(")", n.length - e) - n.length) && (t[0] = t[0].slice(0, e), t[2] = n.slice(0, e)), t.slice(0, 3))
  1088.                     }
  1089.                 },
  1090.                 filter: {
  1091.                     TAG: function(t) {
  1092.                         var e = t.replace(we, Ce).toLowerCase();
  1093.                         return "*" === t ? function() {
  1094.                             return !0
  1095.                         } : function(t) {
  1096.                             return t.nodeName && t.nodeName.toLowerCase() === e
  1097.                         }
  1098.                     },
  1099.                     CLASS: function(t) {
  1100.                         var e = B[t + " "];
  1101.                         return e || (e = new RegExp("(^|" + ie + ")" + t + "(" + ie + "|$)")) && B(t, function(t) {
  1102.                             return e.test("string" == typeof t.className && t.className || typeof t.getAttribute !== U && t.getAttribute("class") || "")
  1103.                         })
  1104.                     },
  1105.                     ATTR: function(t, n, i) {
  1106.                         return function(o) {
  1107.                             var r = e.attr(o, t);
  1108.                             return null == r ? "!=" === n : n ? (r += "", "=" === n ? r === i : "!=" === n ? r !== i : "^=" === n ? i && 0 === r.indexOf(i) : "*=" === n ? i && r.indexOf(i) > -1 : "$=" === n ? i && r.slice(-i.length) === i : "~=" === n ? (" " + r + " ").indexOf(i) > -1 : "|=" === n ? r === i || r.slice(0, i.length + 1) === i + "-" : !1) : !0
  1109.                         }
  1110.                     },
  1111.                     CHILD: function(t, e, n, i, o) {
  1112.                         var r = "nth" !== t.slice(0, 3),
  1113.                             s = "last" !== t.slice(-4),
  1114.                             a = "of-type" === e;
  1115.                         return 1 === i && 0 === o ? function(t) {
  1116.                             return !!t.parentNode
  1117.                         } : function(e, n, l) {
  1118.                             var c, u, h, d, f, p, m = r !== s ? "nextSibling" : "previousSibling",
  1119.                                 g = e.parentNode,
  1120.                                 v = a && e.nodeName.toLowerCase(),
  1121.                                 y = !l && !a;
  1122.                             if (g) {
  1123.                                 if (r) {
  1124.                                     for (; m;) {
  1125.                                         for (h = e; h = h[m];)
  1126.                                             if (a ? h.nodeName.toLowerCase() === v : 1 === h.nodeType) return !1;
  1127.                                         p = m = "only" === t && !p && "nextSibling"
  1128.                                     }
  1129.                                     return !0
  1130.                                 }
  1131.                                 if (p = [s ? g.firstChild : g.lastChild], s && y) {
  1132.                                     for (u = g[F] || (g[F] = {}), c = u[t] || [], f = c[0] === q && c[1], d = c[0] === q && c[2], h = f && g.childNodes[f]; h = ++f && h && h[m] || (d = f = 0) || p.pop();)
  1133.                                         if (1 === h.nodeType && ++d && h === e) {
  1134.                                             u[t] = [q, f, d];
  1135.                                             break
  1136.                                         }
  1137.                                 } else if (y && (c = (e[F] || (e[F] = {}))[t]) && c[0] === q) d = c[1];
  1138.                                 else
  1139.                                     for (;
  1140.                                         (h = ++f && h && h[m] || (d = f = 0) || p.pop()) && ((a ? h.nodeName.toLowerCase() !== v : 1 !== h.nodeType) || !++d || (y && ((h[F] || (h[F] = {}))[t] = [q, d]), h !== e)););
  1141.                                 return d -= o, d === i || d % i === 0 && d / i >= 0
  1142.                             }
  1143.                         }
  1144.                     },
  1145.                     PSEUDO: function(t, n) {
  1146.                         var o, r = C.pseudos[t] || C.setFilters[t.toLowerCase()] || e.error("unsupported pseudo: " + t);
  1147.                         return r[F] ? r(n) : r.length > 1 ? (o = [t, t, "", n], C.setFilters.hasOwnProperty(t.toLowerCase()) ? i(function(t, e) {
  1148.                             for (var i, o = r(t, n), s = o.length; s--;) i = ee.call(t, o[s]), t[i] = !(e[i] = o[s])
  1149.                         }) : function(t) {
  1150.                             return r(t, 0, o)
  1151.                         }) : r
  1152.                     }
  1153.                 },
  1154.                 pseudos: {
  1155.                     not: i(function(t) {
  1156.                         var e = [],
  1157.                             n = [],
  1158.                             o = $(t.replace(le, "$1"));
  1159.                         return o[F] ? i(function(t, e, n, i) {
  1160.                             for (var r, s = o(t, null, i, []), a = t.length; a--;)(r = s[a]) && (t[a] = !(e[a] = r))
  1161.                         }) : function(t, i, r) {
  1162.                             return e[0] = t, o(e, null, r, n), !n.pop()
  1163.                         }
  1164.                     }),
  1165.                     has: i(function(t) {
  1166.                         return function(n) {
  1167.                             return e(t, n).length > 0
  1168.                         }
  1169.                     }),
  1170.                     contains: i(function(t) {
  1171.                         return function(e) {
  1172.                             return (e.textContent || e.innerText || k(e)).indexOf(t) > -1
  1173.                         }
  1174.                     }),
  1175.                     lang: i(function(t) {
  1176.                         return fe.test(t || "") || e.error("unsupported lang: " + t), t = t.replace(we, Ce).toLowerCase(),
  1177.                             function(e) {
  1178.                                 var n;
  1179.                                 do
  1180.                                     if (n = H ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return n = n.toLowerCase(), n === t || 0 === n.indexOf(t + "-");
  1181.                                 while ((e = e.parentNode) && 1 === e.nodeType);
  1182.                                 return !1
  1183.                             }
  1184.                     }),
  1185.                     target: function(e) {
  1186.                         var n = t.location && t.location.hash;
  1187.                         return n && n.slice(1) === e.id
  1188.                     },
  1189.                     root: function(t) {
  1190.                         return t === A
  1191.                     },
  1192.                     focus: function(t) {
  1193.                         return t === P.activeElement && (!P.hasFocus || P.hasFocus()) && !!(t.type || t.href || ~t.tabIndex)
  1194.                     },
  1195.                     enabled: function(t) {
  1196.                         return t.disabled === !1
  1197.                     },
  1198.                     disabled: function(t) {
  1199.                         return t.disabled === !0
  1200.                     },
  1201.                     checked: function(t) {
  1202.                         var e = t.nodeName.toLowerCase();
  1203.                         return "input" === e && !!t.checked || "option" === e && !!t.selected
  1204.                     },
  1205.                     selected: function(t) {
  1206.                         return t.parentNode && t.parentNode.selectedIndex, t.selected === !0
  1207.                     },
  1208.                     empty: function(t) {
  1209.                         for (t = t.firstChild; t; t = t.nextSibling)
  1210.                             if (t.nodeType < 6) return !1;
  1211.                         return !0
  1212.                     },
  1213.                     parent: function(t) {
  1214.                         return !C.pseudos.empty(t)
  1215.                     },
  1216.                     header: function(t) {
  1217.                         return ge.test(t.nodeName)
  1218.                     },
  1219.                     input: function(t) {
  1220.                         return me.test(t.nodeName)
  1221.                     },
  1222.                     button: function(t) {
  1223.                         var e = t.nodeName.toLowerCase();
  1224.                         return "input" === e && "button" === t.type || "button" === e
  1225.                     },
  1226.                     text: function(t) {
  1227.                         var e;
  1228.                         return "input" === t.nodeName.toLowerCase() && "text" === t.type && (null == (e = t.getAttribute("type")) || "text" === e.toLowerCase())
  1229.                     },
  1230.                     first: c(function() {
  1231.                         return [0]
  1232.                     }),
  1233.                     last: c(function(t, e) {
  1234.                         return [e - 1]
  1235.                     }),
  1236.                     eq: c(function(t, e, n) {
  1237.                         return [0 > n ? n + e : n]
  1238.                     }),
  1239.                     even: c(function(t, e) {
  1240.                         for (var n = 0; e > n; n += 2) t.push(n);
  1241.                         return t
  1242.                     }),
  1243.                     odd: c(function(t, e) {
  1244.                         for (var n = 1; e > n; n += 2) t.push(n);
  1245.                         return t
  1246.                     }),
  1247.                     lt: c(function(t, e, n) {
  1248.                         for (var i = 0 > n ? n + e : n; --i >= 0;) t.push(i);
  1249.                         return t
  1250.                     }),
  1251.                     gt: c(function(t, e, n) {
  1252.                         for (var i = 0 > n ? n + e : n; ++i < e;) t.push(i);
  1253.                         return t
  1254.                     })
  1255.                 }
  1256.             }, C.pseudos.nth = C.pseudos.eq;
  1257.             for (x in {
  1258.                 radio: !0,
  1259.                 checkbox: !0,
  1260.                 file: !0,
  1261.                 password: !0,
  1262.                 image: !0
  1263.             }) C.pseudos[x] = a(x);
  1264.             for (x in {
  1265.                 submit: !0,
  1266.                 reset: !0
  1267.             }) C.pseudos[x] = l(x);
  1268.             return h.prototype = C.filters = C.pseudos, C.setFilters = new h, T = e.tokenize = function(t, n) {
  1269.                 var i, o, r, s, a, l, c, u = R[t + " "];
  1270.                 if (u) return n ? 0 : u.slice(0);
  1271.                 for (a = t, l = [], c = C.preFilter; a;) {
  1272.                     (!i || (o = ce.exec(a))) && (o && (a = a.slice(o[0].length) || a), l.push(r = [])), i = !1, (o = ue.exec(a)) && (i = o.shift(), r.push({
  1273.                         value: i,
  1274.                         type: o[0].replace(le, " ")
  1275.                     }), a = a.slice(i.length));
  1276.                     for (s in C.filter) !(o = pe[s].exec(a)) || c[s] && !(o = c[s](o)) || (i = o.shift(), r.push({
  1277.                         value: i,
  1278.                         type: s,
  1279.                         matches: o
  1280.                     }), a = a.slice(i.length));
  1281.                     if (!i) break
  1282.                 }
  1283.                 return n ? a.length : a ? e.error(t) : R(t, l).slice(0)
  1284.             }, $ = e.compile = function(t, e) {
  1285.                 var n, i = [],
  1286.                     o = [],
  1287.                     r = X[t + " "];
  1288.                 if (!r) {
  1289.                     for (e || (e = T(t)), n = e.length; n--;) r = y(e[n]), r[F] ? i.push(r) : o.push(r);
  1290.                     r = X(t, b(o, i)), r.selector = t
  1291.                 }
  1292.                 return r
  1293.             }, S = e.select = function(t, e, n, i) {
  1294.                 var o, r, s, a, l, c = "function" == typeof t && t,
  1295.                     h = !i && T(t = c.selector || t);
  1296.                 if (n = n || [], 1 === h.length) {
  1297.                     if (r = h[0] = h[0].slice(0), r.length > 2 && "ID" === (s = r[0]).type && w.getById && 9 === e.nodeType && H && C.relative[r[1].type]) {
  1298.                         if (e = (C.find.ID(s.matches[0].replace(we, Ce), e) || [])[0], !e) return n;
  1299.                         c && (e = e.parentNode), t = t.slice(r.shift().value.length)
  1300.                     }
  1301.                     for (o = pe.needsContext.test(t) ? 0 : r.length; o-- && (s = r[o], !C.relative[a = s.type]);)
  1302.                         if ((l = C.find[a]) && (i = l(s.matches[0].replace(we, Ce), be.test(r[0].type) && u(e.parentNode) || e))) {
  1303.                             if (r.splice(o, 1), t = i.length && d(r), !t) return Z.apply(n, i), n;
  1304.                             break
  1305.                         }
  1306.                 }
  1307.                 return (c || $(t, h))(i, e, !H, n, be.test(t) && u(e.parentNode) || e), n
  1308.             }, w.sortStable = F.split("").sort(Q).join("") === F, w.detectDuplicates = !!D, j(), w.sortDetached = o(function(t) {
  1309.                 return 1 & t.compareDocumentPosition(P.createElement("div"))
  1310.             }), o(function(t) {
  1311.                 return t.innerHTML = "<a href='#'></a>", "#" === t.firstChild.getAttribute("href")
  1312.             }) || r("type|href|height|width", function(t, e, n) {
  1313.                 return n ? void 0 : t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2)
  1314.             }), w.attributes && o(function(t) {
  1315.                 return t.innerHTML = "<input/>", t.firstChild.setAttribute("value", ""), "" === t.firstChild.getAttribute("value")
  1316.             }) || r("value", function(t, e, n) {
  1317.                 return n || "input" !== t.nodeName.toLowerCase() ? void 0 : t.defaultValue
  1318.             }), o(function(t) {
  1319.                 return null == t.getAttribute("disabled")
  1320.             }) || r(ne, function(t, e, n) {
  1321.                 var i;
  1322.                 return n ? void 0 : t[e] === !0 ? e.toLowerCase() : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
  1323.             }), e
  1324.         }(t);
  1325.         oe.find = ce, oe.expr = ce.selectors, oe.expr[":"] = oe.expr.pseudos, oe.unique = ce.uniqueSort, oe.text = ce.getText, oe.isXMLDoc = ce.isXML, oe.contains = ce.contains;
  1326.         var ue = oe.expr.match.needsContext,
  1327.             he = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
  1328.             de = /^.[^:#\[\.,]*$/;
  1329.         oe.filter = function(t, e, n) {
  1330.             var i = e[0];
  1331.             return n && (t = ":not(" + t + ")"), 1 === e.length && 1 === i.nodeType ? oe.find.matchesSelector(i, t) ? [i] : [] : oe.find.matches(t, oe.grep(e, function(t) {
  1332.                 return 1 === t.nodeType
  1333.             }))
  1334.         }, oe.fn.extend({
  1335.             find: function(t) {
  1336.                 var e, n = [],
  1337.                     i = this,
  1338.                     o = i.length;
  1339.                 if ("string" != typeof t) return this.pushStack(oe(t).filter(function() {
  1340.                     for (e = 0; o > e; e++)
  1341.                         if (oe.contains(i[e], this)) return !0
  1342.                 }));
  1343.                 for (e = 0; o > e; e++) oe.find(t, i[e], n);
  1344.                 return n = this.pushStack(o > 1 ? oe.unique(n) : n), n.selector = this.selector ? this.selector + " " + t : t, n
  1345.             },
  1346.             filter: function(t) {
  1347.                 return this.pushStack(i(this, t || [], !1))
  1348.             },
  1349.             not: function(t) {
  1350.                 return this.pushStack(i(this, t || [], !0))
  1351.             },
  1352.             is: function(t) {
  1353.                 return !!i(this, "string" == typeof t && ue.test(t) ? oe(t) : t || [], !1).length
  1354.             }
  1355.         });
  1356.         var fe, pe = t.document,
  1357.             me = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
  1358.             ge = oe.fn.init = function(t, e) {
  1359.                 var n, i;
  1360.                 if (!t) return this;
  1361.                 if ("string" == typeof t) {
  1362.                     if (n = "<" === t.charAt(0) && ">" === t.charAt(t.length - 1) && t.length >= 3 ? [null, t, null] : me.exec(t), !n || !n[1] && e) return !e || e.jquery ? (e || fe).find(t) : this.constructor(e).find(t);
  1363.                     if (n[1]) {
  1364.                         if (e = e instanceof oe ? e[0] : e, oe.merge(this, oe.parseHTML(n[1], e && e.nodeType ? e.ownerDocument || e : pe, !0)), he.test(n[1]) && oe.isPlainObject(e))
  1365.                             for (n in e) oe.isFunction(this[n]) ? this[n](e[n]) : this.attr(n, e[n]);
  1366.                         return this
  1367.                     }
  1368.                     if (i = pe.getElementById(n[2]), i && i.parentNode) {
  1369.                         if (i.id !== n[2]) return fe.find(t);
  1370.                         this.length = 1, this[0] = i
  1371.                     }
  1372.                     return this.context = pe, this.selector = t, this
  1373.                 }
  1374.                 return t.nodeType ? (this.context = this[0] = t, this.length = 1, this) : oe.isFunction(t) ? "undefined" != typeof fe.ready ? fe.ready(t) : t(oe) : (void 0 !== t.selector && (this.selector = t.selector, this.context = t.context), oe.makeArray(t, this))
  1375.             };
  1376.         ge.prototype = oe.fn, fe = oe(pe);
  1377.         var ve = /^(?:parents|prev(?:Until|All))/,
  1378.             ye = {
  1379.                 children: !0,
  1380.                 contents: !0,
  1381.                 next: !0,
  1382.                 prev: !0
  1383.             };
  1384.         oe.extend({
  1385.             dir: function(t, e, n) {
  1386.                 for (var i = [], o = t[e]; o && 9 !== o.nodeType && (void 0 === n || 1 !== o.nodeType || !oe(o).is(n));) 1 === o.nodeType && i.push(o), o = o[e];
  1387.                 return i
  1388.             },
  1389.             sibling: function(t, e) {
  1390.                 for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t);
  1391.                 return n
  1392.             }
  1393.         }), oe.fn.extend({
  1394.             has: function(t) {
  1395.                 var e, n = oe(t, this),
  1396.                     i = n.length;
  1397.                 return this.filter(function() {
  1398.                     for (e = 0; i > e; e++)
  1399.                         if (oe.contains(this, n[e])) return !0
  1400.                 })
  1401.             },
  1402.             closest: function(t, e) {
  1403.                 for (var n, i = 0, o = this.length, r = [], s = ue.test(t) || "string" != typeof t ? oe(t, e || this.context) : 0; o > i; i++)
  1404.                     for (n = this[i]; n && n !== e; n = n.parentNode)
  1405.                         if (n.nodeType < 11 && (s ? s.index(n) > -1 : 1 === n.nodeType && oe.find.matchesSelector(n, t))) {
  1406.                             r.push(n);
  1407.                             break
  1408.                         }
  1409.                 return this.pushStack(r.length > 1 ? oe.unique(r) : r)
  1410.             },
  1411.             index: function(t) {
  1412.                 return t ? "string" == typeof t ? oe.inArray(this[0], oe(t)) : oe.inArray(t.jquery ? t[0] : t, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
  1413.             },
  1414.             add: function(t, e) {
  1415.                 return this.pushStack(oe.unique(oe.merge(this.get(), oe(t, e))))
  1416.             },
  1417.             addBack: function(t) {
  1418.                 return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
  1419.             }
  1420.         }), oe.each({
  1421.             parent: function(t) {
  1422.                 var e = t.parentNode;
  1423.                 return e && 11 !== e.nodeType ? e : null
  1424.             },
  1425.             parents: function(t) {
  1426.                 return oe.dir(t, "parentNode")
  1427.             },
  1428.             parentsUntil: function(t, e, n) {
  1429.                 return oe.dir(t, "parentNode", n)
  1430.             },
  1431.             next: function(t) {
  1432.                 return o(t, "nextSibling")
  1433.             },
  1434.             prev: function(t) {
  1435.                 return o(t, "previousSibling")
  1436.             },
  1437.             nextAll: function(t) {
  1438.                 return oe.dir(t, "nextSibling")
  1439.             },
  1440.             prevAll: function(t) {
  1441.                 return oe.dir(t, "previousSibling")
  1442.             },
  1443.             nextUntil: function(t, e, n) {
  1444.                 return oe.dir(t, "nextSibling", n)
  1445.             },
  1446.             prevUntil: function(t, e, n) {
  1447.                 return oe.dir(t, "previousSibling", n)
  1448.             },
  1449.             siblings: function(t) {
  1450.                 return oe.sibling((t.parentNode || {}).firstChild, t)
  1451.             },
  1452.             children: function(t) {
  1453.                 return oe.sibling(t.firstChild)
  1454.             },
  1455.             contents: function(t) {
  1456.                 return oe.nodeName(t, "iframe") ? t.contentDocument || t.contentWindow.document : oe.merge([], t.childNodes)
  1457.             }
  1458.         }, function(t, e) {
  1459.             oe.fn[t] = function(n, i) {
  1460.                 var o = oe.map(this, e, n);
  1461.                 return "Until" !== t.slice(-5) && (i = n), i && "string" == typeof i && (o = oe.filter(i, o)), this.length > 1 && (ye[t] || (o = oe.unique(o)), ve.test(t) && (o = o.reverse())), this.pushStack(o)
  1462.             }
  1463.         });
  1464.         var be = /\S+/g,
  1465.             xe = {};
  1466.         oe.Callbacks = function(t) {
  1467.             t = "string" == typeof t ? xe[t] || r(t) : oe.extend({}, t);
  1468.             var e, n, i, o, s, a, l = [],
  1469.                 c = !t.once && [],
  1470.                 u = function(r) {
  1471.                     for (n = t.memory && r, i = !0, s = a || 0, a = 0, o = l.length, e = !0; l && o > s; s++)
  1472.                         if (l[s].apply(r[0], r[1]) === !1 && t.stopOnFalse) {
  1473.                             n = !1;
  1474.                             break
  1475.                         }
  1476.                     e = !1, l && (c ? c.length && u(c.shift()) : n ? l = [] : h.disable())
  1477.                 },
  1478.                 h = {
  1479.                     add: function() {
  1480.                         if (l) {
  1481.                             var i = l.length;
  1482.                             ! function r(e) {
  1483.                                 oe.each(e, function(e, n) {
  1484.                                     var i = oe.type(n);
  1485.                                     "function" === i ? t.unique && h.has(n) || l.push(n) : n && n.length && "string" !== i && r(n)
  1486.                                 })
  1487.                             }(arguments), e ? o = l.length : n && (a = i, u(n))
  1488.                         }
  1489.                         return this
  1490.                     },
  1491.                     remove: function() {
  1492.                         return l && oe.each(arguments, function(t, n) {
  1493.                             for (var i;
  1494.                                 (i = oe.inArray(n, l, i)) > -1;) l.splice(i, 1), e && (o >= i && o--, s >= i && s--)
  1495.                         }), this
  1496.                     },
  1497.                     has: function(t) {
  1498.                         return t ? oe.inArray(t, l) > -1 : !(!l || !l.length)
  1499.                     },
  1500.                     empty: function() {
  1501.                         return l = [], o = 0, this
  1502.                     },
  1503.                     disable: function() {
  1504.                         return l = c = n = void 0, this
  1505.                     },
  1506.                     disabled: function() {
  1507.                         return !l
  1508.                     },
  1509.                     lock: function() {
  1510.                         return c = void 0, n || h.disable(), this
  1511.                     },
  1512.                     locked: function() {
  1513.                         return !c
  1514.                     },
  1515.                     fireWith: function(t, n) {
  1516.                         return !l || i && !c || (n = n || [], n = [t, n.slice ? n.slice() : n], e ? c.push(n) : u(n)), this
  1517.                     },
  1518.                     fire: function() {
  1519.                         return h.fireWith(this, arguments), this
  1520.                     },
  1521.                     fired: function() {
  1522.                         return !!i
  1523.                     }
  1524.                 };
  1525.             return h
  1526.         }, oe.extend({
  1527.             Deferred: function(t) {
  1528.                 var e = [
  1529.                         ["resolve", "done", oe.Callbacks("once memory"), "resolved"],
  1530.                         ["reject", "fail", oe.Callbacks("once memory"), "rejected"],
  1531.                         ["notify", "progress", oe.Callbacks("memory")]
  1532.                     ],
  1533.                     n = "pending",
  1534.                     i = {
  1535.                         state: function() {
  1536.                             return n
  1537.                         },
  1538.                         always: function() {
  1539.                             return o.done(arguments).fail(arguments), this
  1540.                         },
  1541.                         then: function() {
  1542.                             var t = arguments;
  1543.                             return oe.Deferred(function(n) {
  1544.                                 oe.each(e, function(e, r) {
  1545.                                     var s = oe.isFunction(t[e]) && t[e];
  1546.                                     o[r[1]](function() {
  1547.                                         var t = s && s.apply(this, arguments);
  1548.                                         t && oe.isFunction(t.promise) ? t.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[r[0] + "With"](this === i ? n.promise() : this, s ? [t] : arguments)
  1549.                                     })
  1550.                                 }), t = null
  1551.                             }).promise()
  1552.                         },
  1553.                         promise: function(t) {
  1554.                             return null != t ? oe.extend(t, i) : i
  1555.                         }
  1556.                     },
  1557.                     o = {};
  1558.                 return i.pipe = i.then, oe.each(e, function(t, r) {
  1559.                     var s = r[2],
  1560.                         a = r[3];
  1561.                     i[r[1]] = s.add, a && s.add(function() {
  1562.                         n = a
  1563.                     }, e[1 ^ t][2].disable, e[2][2].lock), o[r[0]] = function() {
  1564.                         return o[r[0] + "With"](this === o ? i : this, arguments), this
  1565.                     }, o[r[0] + "With"] = s.fireWith
  1566.                 }), i.promise(o), t && t.call(o, o), o
  1567.             },
  1568.             when: function(t) {
  1569.                 var e, n, i, o = 0,
  1570.                     r = V.call(arguments),
  1571.                     s = r.length,
  1572.                     a = 1 !== s || t && oe.isFunction(t.promise) ? s : 0,
  1573.                     l = 1 === a ? t : oe.Deferred(),
  1574.                     c = function(t, n, i) {
  1575.                         return function(o) {
  1576.                             n[t] = this, i[t] = arguments.length > 1 ? V.call(arguments) : o, i === e ? l.notifyWith(n, i) : --a || l.resolveWith(n, i)
  1577.                         }
  1578.                     };
  1579.                 if (s > 1)
  1580.                     for (e = new Array(s), n = new Array(s), i = new Array(s); s > o; o++) r[o] && oe.isFunction(r[o].promise) ? r[o].promise().done(c(o, i, r)).fail(l.reject).progress(c(o, n, e)) : --a;
  1581.                 return a || l.resolveWith(i, r), l.promise()
  1582.             }
  1583.         });
  1584.         var we;
  1585.         oe.fn.ready = function(t) {
  1586.             return oe.ready.promise().done(t), this
  1587.         }, oe.extend({
  1588.             isReady: !1,
  1589.             readyWait: 1,
  1590.             holdReady: function(t) {
  1591.                 t ? oe.readyWait++ : oe.ready(!0)
  1592.             },
  1593.             ready: function(t) {
  1594.                 if (t === !0 ? !--oe.readyWait : !oe.isReady) {
  1595.                     if (!pe.body) return setTimeout(oe.ready);
  1596.                     oe.isReady = !0, t !== !0 && --oe.readyWait > 0 || (we.resolveWith(pe, [oe]), oe.fn.triggerHandler && (oe(pe).triggerHandler("ready"), oe(pe).off("ready")))
  1597.                 }
  1598.             }
  1599.         }), oe.ready.promise = function(e) {
  1600.             if (!we)
  1601.                 if (we = oe.Deferred(), "complete" === pe.readyState) setTimeout(oe.ready);
  1602.                 else if (pe.addEventListener) pe.addEventListener("DOMContentLoaded", a, !1), t.addEventListener("load", a, !1);
  1603.             else {
  1604.                 pe.attachEvent("onreadystatechange", a), t.attachEvent("onload", a);
  1605.                 var n = !1;
  1606.                 try {
  1607.                     n = null == t.frameElement && pe.documentElement
  1608.                 } catch (i) {}
  1609.                 n && n.doScroll && ! function o() {
  1610.                     if (!oe.isReady) {
  1611.                         try {
  1612.                             n.doScroll("left")
  1613.                         } catch (t) {
  1614.                             return setTimeout(o, 50)
  1615.                         }
  1616.                         s(), oe.ready()
  1617.                     }
  1618.                 }()
  1619.             }
  1620.             return we.promise(e)
  1621.         };
  1622.         var Ce, ke = "undefined";
  1623.         for (Ce in oe(ne)) break;
  1624.         ne.ownLast = "0" !== Ce, ne.inlineBlockNeedsLayout = !1, oe(function() {
  1625.                 var t, e, n, i;
  1626.                 n = pe.getElementsByTagName("body")[0], n && n.style && (e = pe.createElement("div"), i = pe.createElement("div"), i.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(i).appendChild(e), typeof e.style.zoom !== ke && (e.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", ne.inlineBlockNeedsLayout = t = 3 === e.offsetWidth, t && (n.style.zoom = 1)), n.removeChild(i))
  1627.             }),
  1628.             function() {
  1629.                 var t = pe.createElement("div");
  1630.                 if (null == ne.deleteExpando) {
  1631.                     ne.deleteExpando = !0;
  1632.                     try {
  1633.                         delete t.test
  1634.                     } catch (e) {
  1635.                         ne.deleteExpando = !1
  1636.                     }
  1637.                 }
  1638.                 t = null
  1639.             }(), oe.acceptData = function(t) {
  1640.                 var e = oe.noData[(t.nodeName + " ").toLowerCase()],
  1641.                     n = +t.nodeType || 1;
  1642.                 return 1 !== n && 9 !== n ? !1 : !e || e !== !0 && t.getAttribute("classid") === e
  1643.             };
  1644.         var _e = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
  1645.             Te = /([A-Z])/g;
  1646.         oe.extend({
  1647.             cache: {},
  1648.             noData: {
  1649.                 "applet ": !0,
  1650.                 "embed ": !0,
  1651.                 "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  1652.             },
  1653.             hasData: function(t) {
  1654.                 return t = t.nodeType ? oe.cache[t[oe.expando]] : t[oe.expando], !!t && !c(t)
  1655.             },
  1656.             data: function(t, e, n) {
  1657.                 return u(t, e, n)
  1658.             },
  1659.             removeData: function(t, e) {
  1660.                 return h(t, e)
  1661.             },
  1662.             _data: function(t, e, n) {
  1663.                 return u(t, e, n, !0)
  1664.             },
  1665.             _removeData: function(t, e) {
  1666.                 return h(t, e, !0)
  1667.             }
  1668.         }), oe.fn.extend({
  1669.             data: function(t, e) {
  1670.                 var n, i, o, r = this[0],
  1671.                     s = r && r.attributes;
  1672.                 if (void 0 === t) {
  1673.                     if (this.length && (o = oe.data(r), 1 === r.nodeType && !oe._data(r, "parsedAttrs"))) {
  1674.                         for (n = s.length; n--;) s[n] && (i = s[n].name, 0 === i.indexOf("data-") && (i = oe.camelCase(i.slice(5)), l(r, i, o[i])));
  1675.                         oe._data(r, "parsedAttrs", !0)
  1676.                     }
  1677.                     return o
  1678.                 }
  1679.                 return "object" == typeof t ? this.each(function() {
  1680.                     oe.data(this, t)
  1681.                 }) : arguments.length > 1 ? this.each(function() {
  1682.                     oe.data(this, t, e)
  1683.                 }) : r ? l(r, t, oe.data(r, t)) : void 0
  1684.             },
  1685.             removeData: function(t) {
  1686.                 return this.each(function() {
  1687.                     oe.removeData(this, t)
  1688.                 })
  1689.             }
  1690.         }), oe.extend({
  1691.             queue: function(t, e, n) {
  1692.                 var i;
  1693.                 return t ? (e = (e || "fx") + "queue", i = oe._data(t, e), n && (!i || oe.isArray(n) ? i = oe._data(t, e, oe.makeArray(n)) : i.push(n)), i || []) : void 0
  1694.             },
  1695.             dequeue: function(t, e) {
  1696.                 e = e || "fx";
  1697.                 var n = oe.queue(t, e),
  1698.                     i = n.length,
  1699.                     o = n.shift(),
  1700.                     r = oe._queueHooks(t, e),
  1701.                     s = function() {
  1702.                         oe.dequeue(t, e)
  1703.                     };
  1704.                 "inprogress" === o && (o = n.shift(), i--), o && ("fx" === e && n.unshift("inprogress"), delete r.stop, o.call(t, s, r)), !i && r && r.empty.fire()
  1705.             },
  1706.             _queueHooks: function(t, e) {
  1707.                 var n = e + "queueHooks";
  1708.                 return oe._data(t, n) || oe._data(t, n, {
  1709.                     empty: oe.Callbacks("once memory").add(function() {
  1710.                         oe._removeData(t, e + "queue"), oe._removeData(t, n)
  1711.                     })
  1712.                 })
  1713.             }
  1714.         }), oe.fn.extend({
  1715.             queue: function(t, e) {
  1716.                 var n = 2;
  1717.                 return "string" != typeof t && (e = t, t = "fx", n--), arguments.length < n ? oe.queue(this[0], t) : void 0 === e ? this : this.each(function() {
  1718.                     var n = oe.queue(this, t, e);
  1719.                     oe._queueHooks(this, t), "fx" === t && "inprogress" !== n[0] && oe.dequeue(this, t)
  1720.                 })
  1721.             },
  1722.             dequeue: function(t) {
  1723.                 return this.each(function() {
  1724.                     oe.dequeue(this, t)
  1725.                 })
  1726.             },
  1727.             clearQueue: function(t) {
  1728.                 return this.queue(t || "fx", [])
  1729.             },
  1730.             promise: function(t, e) {
  1731.                 var n, i = 1,
  1732.                     o = oe.Deferred(),
  1733.                     r = this,
  1734.                     s = this.length,
  1735.                     a = function() {
  1736.                         --i || o.resolveWith(r, [r])
  1737.                     };
  1738.                 for ("string" != typeof t && (e = t, t = void 0), t = t || "fx"; s--;) n = oe._data(r[s], t + "queueHooks"), n && n.empty && (i++, n.empty.add(a));
  1739.                 return a(), o.promise(e)
  1740.             }
  1741.         });
  1742.         var $e = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
  1743.             Se = ["Top", "Right", "Bottom", "Left"],
  1744.             Ee = function(t, e) {
  1745.                 return t = e || t, "none" === oe.css(t, "display") || !oe.contains(t.ownerDocument, t)
  1746.             },
  1747.             Ne = oe.access = function(t, e, n, i, o, r, s) {
  1748.                 var a = 0,
  1749.                     l = t.length,
  1750.                     c = null == n;
  1751.                 if ("object" === oe.type(n)) {
  1752.                     o = !0;
  1753.                     for (a in n) oe.access(t, e, a, n[a], !0, r, s)
  1754.                 } else if (void 0 !== i && (o = !0, oe.isFunction(i) || (s = !0), c && (s ? (e.call(t, i), e = null) : (c = e, e = function(t, e, n) {
  1755.                     return c.call(oe(t), n)
  1756.                 })), e))
  1757.                     for (; l > a; a++) e(t[a], n, s ? i : i.call(t[a], a, e(t[a], n)));
  1758.                 return o ? t : c ? e.call(t) : l ? e(t[0], n) : r
  1759.             },
  1760.             De = /^(?:checkbox|radio)$/i;
  1761.         ! function() {
  1762.             var t = pe.createElement("input"),
  1763.                 e = pe.createElement("div"),
  1764.                 n = pe.createDocumentFragment();
  1765.             if (e.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", ne.leadingWhitespace = 3 === e.firstChild.nodeType, ne.tbody = !e.getElementsByTagName("tbody").length, ne.htmlSerialize = !!e.getElementsByTagName("link").length, ne.html5Clone = "<:nav></:nav>" !== pe.createElement("nav").cloneNode(!0).outerHTML, t.type = "checkbox", t.checked = !0, n.appendChild(t), ne.appendChecked = t.checked, e.innerHTML = "<textarea>x</textarea>", ne.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue, n.appendChild(e), e.innerHTML = "<input type='radio' checked='checked' name='t'/>", ne.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, ne.noCloneEvent = !0, e.attachEvent && (e.attachEvent("onclick", function() {
  1766.                 ne.noCloneEvent = !1
  1767.             }), e.cloneNode(!0).click()), null == ne.deleteExpando) {
  1768.                 ne.deleteExpando = !0;
  1769.                 try {
  1770.                     delete e.test
  1771.                 } catch (i) {
  1772.                     ne.deleteExpando = !1
  1773.                 }
  1774.             }
  1775.         }(),
  1776.         function() {
  1777.             var e, n, i = pe.createElement("div");
  1778.             for (e in {
  1779.                 submit: !0,
  1780.                 change: !0,
  1781.                 focusin: !0
  1782.             }) n = "on" + e, (ne[e + "Bubbles"] = n in t) || (i.setAttribute(n, "t"), ne[e + "Bubbles"] = i.attributes[n].expando === !1);
  1783.             i = null
  1784.         }();
  1785.         var je = /^(?:input|select|textarea)$/i,
  1786.             Pe = /^key/,
  1787.             Ae = /^(?:mouse|pointer|contextmenu)|click/,
  1788.             He = /^(?:focusinfocus|focusoutblur)$/,
  1789.             Ie = /^([^.]*)(?:\.(.+)|)$/;
  1790.         oe.event = {
  1791.             global: {},
  1792.             add: function(t, e, n, i, o) {
  1793.                 var r, s, a, l, c, u, h, d, f, p, m, g = oe._data(t);
  1794.                 if (g) {
  1795.                     for (n.handler && (l = n, n = l.handler, o = l.selector), n.guid || (n.guid = oe.guid++), (s = g.events) || (s = g.events = {}), (u = g.handle) || (u = g.handle = function(t) {
  1796.                         return typeof oe === ke || t && oe.event.triggered === t.type ? void 0 : oe.event.dispatch.apply(u.elem, arguments)
  1797.                     }, u.elem = t), e = (e || "").match(be) || [""], a = e.length; a--;) r = Ie.exec(e[a]) || [], f = m = r[1], p = (r[2] || "").split(".").sort(), f && (c = oe.event.special[f] || {}, f = (o ? c.delegateType : c.bindType) || f, c = oe.event.special[f] || {}, h = oe.extend({
  1798.                         type: f,
  1799.                         origType: m,
  1800.                         data: i,
  1801.                         handler: n,
  1802.                         guid: n.guid,
  1803.                         selector: o,
  1804.                         needsContext: o && oe.expr.match.needsContext.test(o),
  1805.                         namespace: p.join(".")
  1806.                     }, l), (d = s[f]) || (d = s[f] = [], d.delegateCount = 0, c.setup && c.setup.call(t, i, p, u) !== !1 || (t.addEventListener ? t.addEventListener(f, u, !1) : t.attachEvent && t.attachEvent("on" + f, u))), c.add && (c.add.call(t, h), h.handler.guid || (h.handler.guid = n.guid)), o ? d.splice(d.delegateCount++, 0, h) : d.push(h), oe.event.global[f] = !0);
  1807.                     t = null
  1808.                 }
  1809.             },
  1810.             remove: function(t, e, n, i, o) {
  1811.                 var r, s, a, l, c, u, h, d, f, p, m, g = oe.hasData(t) && oe._data(t);
  1812.                 if (g && (u = g.events)) {
  1813.                     for (e = (e || "").match(be) || [""], c = e.length; c--;)
  1814.                         if (a = Ie.exec(e[c]) || [], f = m = a[1], p = (a[2] || "").split(".").sort(), f) {
  1815.                             for (h = oe.event.special[f] || {}, f = (i ? h.delegateType : h.bindType) || f, d = u[f] || [], a = a[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), l = r = d.length; r--;) s = d[r], !o && m !== s.origType || n && n.guid !== s.guid || a && !a.test(s.namespace) || i && i !== s.selector && ("**" !== i || !s.selector) || (d.splice(r, 1), s.selector && d.delegateCount--, h.remove && h.remove.call(t, s));
  1816.                             l && !d.length && (h.teardown && h.teardown.call(t, p, g.handle) !== !1 || oe.removeEvent(t, f, g.handle), delete u[f])
  1817.                         } else
  1818.                             for (f in u) oe.event.remove(t, f + e[c], n, i, !0);
  1819.                     oe.isEmptyObject(u) && (delete g.handle, oe._removeData(t, "events"))
  1820.                 }
  1821.             },
  1822.             trigger: function(e, n, i, o) {
  1823.                 var r, s, a, l, c, u, h, d = [i || pe],
  1824.                     f = ee.call(e, "type") ? e.type : e,
  1825.                     p = ee.call(e, "namespace") ? e.namespace.split(".") : [];
  1826.                 if (a = u = i = i || pe, 3 !== i.nodeType && 8 !== i.nodeType && !He.test(f + oe.event.triggered) && (f.indexOf(".") >= 0 && (p = f.split("."), f = p.shift(), p.sort()), s = f.indexOf(":") < 0 && "on" + f, e = e[oe.expando] ? e : new oe.Event(f, "object" == typeof e && e), e.isTrigger = o ? 2 : 3, e.namespace = p.join("."), e.namespace_re = e.namespace ? new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = i), n = null == n ? [e] : oe.makeArray(n, [e]), c = oe.event.special[f] || {}, o || !c.trigger || c.trigger.apply(i, n) !== !1)) {
  1827.                     if (!o && !c.noBubble && !oe.isWindow(i)) {
  1828.                         for (l = c.delegateType || f, He.test(l + f) || (a = a.parentNode); a; a = a.parentNode) d.push(a), u = a;
  1829.                         u === (i.ownerDocument || pe) && d.push(u.defaultView || u.parentWindow || t)
  1830.                     }
  1831.                     for (h = 0;
  1832.                         (a = d[h++]) && !e.isPropagationStopped();) e.type = h > 1 ? l : c.bindType || f, r = (oe._data(a, "events") || {})[e.type] && oe._data(a, "handle"), r && r.apply(a, n), r = s && a[s], r && r.apply && oe.acceptData(a) && (e.result = r.apply(a, n), e.result === !1 && e.preventDefault());
  1833.                     if (e.type = f, !o && !e.isDefaultPrevented() && (!c._default || c._default.apply(d.pop(), n) === !1) && oe.acceptData(i) && s && i[f] && !oe.isWindow(i)) {
  1834.                         u = i[s], u && (i[s] = null), oe.event.triggered = f;
  1835.                         try {
  1836.                             i[f]()
  1837.                         } catch (m) {}
  1838.                         oe.event.triggered = void 0, u && (i[s] = u)
  1839.                     }
  1840.                     return e.result
  1841.                 }
  1842.             },
  1843.             dispatch: function(t) {
  1844.                 t = oe.event.fix(t);
  1845.                 var e, n, i, o, r, s = [],
  1846.                     a = V.call(arguments),
  1847.                     l = (oe._data(this, "events") || {})[t.type] || [],
  1848.                     c = oe.event.special[t.type] || {};
  1849.                 if (a[0] = t, t.delegateTarget = this, !c.preDispatch || c.preDispatch.call(this, t) !== !1) {
  1850.                     for (s = oe.event.handlers.call(this, t, l), e = 0;
  1851.                         (o = s[e++]) && !t.isPropagationStopped();)
  1852.                         for (t.currentTarget = o.elem, r = 0;
  1853.                             (i = o.handlers[r++]) && !t.isImmediatePropagationStopped();)(!t.namespace_re || t.namespace_re.test(i.namespace)) && (t.handleObj = i, t.data = i.data, n = ((oe.event.special[i.origType] || {}).handle || i.handler).apply(o.elem, a), void 0 !== n && (t.result = n) === !1 && (t.preventDefault(), t.stopPropagation()));
  1854.                     return c.postDispatch && c.postDispatch.call(this, t), t.result
  1855.                 }
  1856.             },
  1857.             handlers: function(t, e) {
  1858.                 var n, i, o, r, s = [],
  1859.                     a = e.delegateCount,
  1860.                     l = t.target;
  1861.                 if (a && l.nodeType && (!t.button || "click" !== t.type))
  1862.                     for (; l != this; l = l.parentNode || this)
  1863.                         if (1 === l.nodeType && (l.disabled !== !0 || "click" !== t.type)) {
  1864.                             for (o = [], r = 0; a > r; r++) i = e[r], n = i.selector + " ", void 0 === o[n] && (o[n] = i.needsContext ? oe(n, this).index(l) >= 0 : oe.find(n, this, null, [l]).length), o[n] && o.push(i);
  1865.                             o.length && s.push({
  1866.                                 elem: l,
  1867.                                 handlers: o
  1868.                             })
  1869.                         }
  1870.                 return a < e.length && s.push({
  1871.                     elem: this,
  1872.                     handlers: e.slice(a)
  1873.                 }), s
  1874.             },
  1875.             fix: function(t) {
  1876.                 if (t[oe.expando]) return t;
  1877.                 var e, n, i, o = t.type,
  1878.                     r = t,
  1879.                     s = this.fixHooks[o];
  1880.                 for (s || (this.fixHooks[o] = s = Ae.test(o) ? this.mouseHooks : Pe.test(o) ? this.keyHooks : {}), i = s.props ? this.props.concat(s.props) : this.props, t = new oe.Event(r), e = i.length; e--;) n = i[e], t[n] = r[n];
  1881.                 return t.target || (t.target = r.srcElement || pe), 3 === t.target.nodeType && (t.target = t.target.parentNode), t.metaKey = !!t.metaKey, s.filter ? s.filter(t, r) : t
  1882.             },
  1883.             props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
  1884.             fixHooks: {},
  1885.             keyHooks: {
  1886.                 props: "char charCode key keyCode".split(" "),
  1887.                 filter: function(t, e) {
  1888.                     return null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode), t
  1889.                 }
  1890.             },
  1891.             mouseHooks: {
  1892.                 props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
  1893.                 filter: function(t, e) {
  1894.                     var n, i, o, r = e.button,
  1895.                         s = e.fromElement;
  1896.                     return null == t.pageX && null != e.clientX && (i = t.target.ownerDocument || pe, o = i.documentElement, n = i.body, t.pageX = e.clientX + (o && o.scrollLeft || n && n.scrollLeft || 0) - (o && o.clientLeft || n && n.clientLeft || 0), t.pageY = e.clientY + (o && o.scrollTop || n && n.scrollTop || 0) - (o && o.clientTop || n && n.clientTop || 0)), !t.relatedTarget && s && (t.relatedTarget = s === t.target ? e.toElement : s), t.which || void 0 === r || (t.which = 1 & r ? 1 : 2 & r ? 3 : 4 & r ? 2 : 0), t
  1897.                 }
  1898.             },
  1899.             special: {
  1900.                 load: {
  1901.                     noBubble: !0
  1902.                 },
  1903.                 focus: {
  1904.                     trigger: function() {
  1905.                         if (this !== p() && this.focus) try {
  1906.                             return this.focus(), !1
  1907.                         } catch (t) {}
  1908.                     },
  1909.                     delegateType: "focusin"
  1910.                 },
  1911.                 blur: {
  1912.                     trigger: function() {
  1913.                         return this === p() && this.blur ? (this.blur(), !1) : void 0
  1914.                     },
  1915.                     delegateType: "focusout"
  1916.                 },
  1917.                 click: {
  1918.                     trigger: function() {
  1919.                         return oe.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
  1920.                     },
  1921.                     _default: function(t) {
  1922.                         return oe.nodeName(t.target, "a")
  1923.                     }
  1924.                 },
  1925.                 beforeunload: {
  1926.                     postDispatch: function(t) {
  1927.                         void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result)
  1928.                     }
  1929.                 }
  1930.             },
  1931.             simulate: function(t, e, n, i) {
  1932.                 var o = oe.extend(new oe.Event, n, {
  1933.                     type: t,
  1934.                     isSimulated: !0,
  1935.                     originalEvent: {}
  1936.                 });
  1937.                 i ? oe.event.trigger(o, null, e) : oe.event.dispatch.call(e, o), o.isDefaultPrevented() && n.preventDefault()
  1938.             }
  1939.         }, oe.removeEvent = pe.removeEventListener ? function(t, e, n) {
  1940.             t.removeEventListener && t.removeEventListener(e, n, !1)
  1941.         } : function(t, e, n) {
  1942.             var i = "on" + e;
  1943.             t.detachEvent && (typeof t[i] === ke && (t[i] = null), t.detachEvent(i, n))
  1944.         }, oe.Event = function(t, e) {
  1945.             return this instanceof oe.Event ? (t && t.type ? (this.originalEvent = t, this.type = t.type, this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && t.returnValue === !1 ? d : f) : this.type = t, e && oe.extend(this, e), this.timeStamp = t && t.timeStamp || oe.now(), void(this[oe.expando] = !0)) : new oe.Event(t, e)
  1946.         }, oe.Event.prototype = {
  1947.             isDefaultPrevented: f,
  1948.             isPropagationStopped: f,
  1949.             isImmediatePropagationStopped: f,
  1950.             preventDefault: function() {
  1951.                 var t = this.originalEvent;
  1952.                 this.isDefaultPrevented = d, t && (t.preventDefault ? t.preventDefault() : t.returnValue = !1)
  1953.             },
  1954.             stopPropagation: function() {
  1955.                 var t = this.originalEvent;
  1956.                 this.isPropagationStopped = d, t && (t.stopPropagation && t.stopPropagation(), t.cancelBubble = !0)
  1957.             },
  1958.             stopImmediatePropagation: function() {
  1959.                 var t = this.originalEvent;
  1960.                 this.isImmediatePropagationStopped = d, t && t.stopImmediatePropagation && t.stopImmediatePropagation(), this.stopPropagation()
  1961.             }
  1962.         }, oe.each({
  1963.             mouseenter: "mouseover",
  1964.             mouseleave: "mouseout",
  1965.             pointerenter: "pointerover",
  1966.             pointerleave: "pointerout"
  1967.         }, function(t, e) {
  1968.             oe.event.special[t] = {
  1969.                 delegateType: e,
  1970.                 bindType: e,
  1971.                 handle: function(t) {
  1972.                     var n, i = this,
  1973.                         o = t.relatedTarget,
  1974.                         r = t.handleObj;
  1975.                     return (!o || o !== i && !oe.contains(i, o)) && (t.type = r.origType, n = r.handler.apply(this, arguments), t.type = e), n
  1976.                 }
  1977.             }
  1978.         }), ne.submitBubbles || (oe.event.special.submit = {
  1979.             setup: function() {
  1980.                 return oe.nodeName(this, "form") ? !1 : void oe.event.add(this, "click._submit keypress._submit", function(t) {
  1981.                     var e = t.target,
  1982.                         n = oe.nodeName(e, "input") || oe.nodeName(e, "button") ? e.form : void 0;
  1983.                     n && !oe._data(n, "submitBubbles") && (oe.event.add(n, "submit._submit", function(t) {
  1984.                         t._submit_bubble = !0
  1985.                     }), oe._data(n, "submitBubbles", !0))
  1986.                 })
  1987.             },
  1988.             postDispatch: function(t) {
  1989.                 t._submit_bubble && (delete t._submit_bubble, this.parentNode && !t.isTrigger && oe.event.simulate("submit", this.parentNode, t, !0))
  1990.             },
  1991.             teardown: function() {
  1992.                 return oe.nodeName(this, "form") ? !1 : void oe.event.remove(this, "._submit")
  1993.             }
  1994.         }), ne.changeBubbles || (oe.event.special.change = {
  1995.             setup: function() {
  1996.                 return je.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (oe.event.add(this, "propertychange._change", function(t) {
  1997.                     "checked" === t.originalEvent.propertyName && (this._just_changed = !0)
  1998.                 }), oe.event.add(this, "click._change", function(t) {
  1999.                     this._just_changed && !t.isTrigger && (this._just_changed = !1), oe.event.simulate("change", this, t, !0)
  2000.                 })), !1) : void oe.event.add(this, "beforeactivate._change", function(t) {
  2001.                     var e = t.target;
  2002.                     je.test(e.nodeName) && !oe._data(e, "changeBubbles") && (oe.event.add(e, "change._change", function(t) {
  2003.                         !this.parentNode || t.isSimulated || t.isTrigger || oe.event.simulate("change", this.parentNode, t, !0)
  2004.                     }), oe._data(e, "changeBubbles", !0))
  2005.                 })
  2006.             },
  2007.             handle: function(t) {
  2008.                 var e = t.target;
  2009.                 return this !== e || t.isSimulated || t.isTrigger || "radio" !== e.type && "checkbox" !== e.type ? t.handleObj.handler.apply(this, arguments) : void 0
  2010.             },
  2011.             teardown: function() {
  2012.                 return oe.event.remove(this, "._change"), !je.test(this.nodeName)
  2013.             }
  2014.         }), ne.focusinBubbles || oe.each({
  2015.             focus: "focusin",
  2016.             blur: "focusout"
  2017.         }, function(t, e) {
  2018.             var n = function(t) {
  2019.                 oe.event.simulate(e, t.target, oe.event.fix(t), !0)
  2020.             };
  2021.             oe.event.special[e] = {
  2022.                 setup: function() {
  2023.                     var i = this.ownerDocument || this,
  2024.                         o = oe._data(i, e);
  2025.                     o || i.addEventListener(t, n, !0), oe._data(i, e, (o || 0) + 1)
  2026.                 },
  2027.                 teardown: function() {
  2028.                     var i = this.ownerDocument || this,
  2029.                         o = oe._data(i, e) - 1;
  2030.                     o ? oe._data(i, e, o) : (i.removeEventListener(t, n, !0), oe._removeData(i, e))
  2031.                 }
  2032.             }
  2033.         }), oe.fn.extend({
  2034.             on: function(t, e, n, i, o) {
  2035.                 var r, s;
  2036.                 if ("object" == typeof t) {
  2037.                     "string" != typeof e && (n = n || e, e = void 0);
  2038.                     for (r in t) this.on(r, e, n, t[r], o);
  2039.                     return this
  2040.                 }
  2041.                 if (null == n && null == i ? (i = e, n = e = void 0) : null == i && ("string" == typeof e ? (i = n, n = void 0) : (i = n, n = e, e = void 0)), i === !1) i = f;
  2042.                 else if (!i) return this;
  2043.                 return 1 === o && (s = i, i = function(t) {
  2044.                     return oe().off(t), s.apply(this, arguments)
  2045.                 }, i.guid = s.guid || (s.guid = oe.guid++)), this.each(function() {
  2046.                     oe.event.add(this, t, i, n, e)
  2047.                 })
  2048.             },
  2049.             one: function(t, e, n, i) {
  2050.                 return this.on(t, e, n, i, 1)
  2051.             },
  2052.             off: function(t, e, n) {
  2053.                 var i, o;
  2054.                 if (t && t.preventDefault && t.handleObj) return i = t.handleObj, oe(t.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
  2055.                 if ("object" == typeof t) {
  2056.                     for (o in t) this.off(o, e, t[o]);
  2057.                     return this
  2058.                 }
  2059.                 return (e === !1 || "function" == typeof e) && (n = e, e = void 0), n === !1 && (n = f), this.each(function() {
  2060.                     oe.event.remove(this, t, n, e)
  2061.                 })
  2062.             },
  2063.             trigger: function(t, e) {
  2064.                 return this.each(function() {
  2065.                     oe.event.trigger(t, e, this)
  2066.                 })
  2067.             },
  2068.             triggerHandler: function(t, e) {
  2069.                 var n = this[0];
  2070.                 return n ? oe.event.trigger(t, e, n, !0) : void 0
  2071.             }
  2072.         });
  2073.         var Le = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
  2074.             Me = / jQuery\d+="(?:null|\d+)"/g,
  2075.             Oe = new RegExp("<(?:" + Le + ")[\\s/>]", "i"),
  2076.             Fe = /^\s+/,
  2077.             We = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
  2078.             qe = /<([\w:]+)/,
  2079.             ze = /<tbody/i,
  2080.             Be = /<|&#?\w+;/,
  2081.             Re = /<(?:script|style|link)/i,
  2082.             Xe = /checked\s*(?:[^=]|=\s*.checked.)/i,
  2083.             Qe = /^$|\/(?:java|ecma)script/i,
  2084.             Ue = /^true\/(.*)/,
  2085.             Ye = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
  2086.             Ve = {
  2087.                 option: [1, "<select multiple='multiple'>", "</select>"],
  2088.                 legend: [1, "<fieldset>", "</fieldset>"],
  2089.                 area: [1, "<map>", "</map>"],
  2090.                 param: [1, "<object>", "</object>"],
  2091.                 thead: [1, "<table>", "</table>"],
  2092.                 tr: [2, "<table><tbody>", "</tbody></table>"],
  2093.                 col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
  2094.                 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
  2095.                 _default: ne.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
  2096.             },
  2097.             Ge = m(pe),
  2098.             Je = Ge.appendChild(pe.createElement("div"));
  2099.         Ve.optgroup = Ve.option, Ve.tbody = Ve.tfoot = Ve.colgroup = Ve.caption = Ve.thead, Ve.th = Ve.td, oe.extend({
  2100.             clone: function(t, e, n) {
  2101.                 var i, o, r, s, a, l = oe.contains(t.ownerDocument, t);
  2102.                 if (ne.html5Clone || oe.isXMLDoc(t) || !Oe.test("<" + t.nodeName + ">") ? r = t.cloneNode(!0) : (Je.innerHTML = t.outerHTML, Je.removeChild(r = Je.firstChild)), !(ne.noCloneEvent && ne.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || oe.isXMLDoc(t)))
  2103.                     for (i = g(r), a = g(t), s = 0; null != (o = a[s]); ++s) i[s] && k(o, i[s]);
  2104.                 if (e)
  2105.                     if (n)
  2106.                         for (a = a || g(t), i = i || g(r), s = 0; null != (o = a[s]); s++) C(o, i[s]);
  2107.                     else C(t, r);
  2108.                 return i = g(r, "script"), i.length > 0 && w(i, !l && g(t, "script")), i = a = o = null, r
  2109.             },
  2110.             buildFragment: function(t, e, n, i) {
  2111.                 for (var o, r, s, a, l, c, u, h = t.length, d = m(e), f = [], p = 0; h > p; p++)
  2112.                     if (r = t[p], r || 0 === r)
  2113.                         if ("object" === oe.type(r)) oe.merge(f, r.nodeType ? [r] : r);
  2114.                         else if (Be.test(r)) {
  2115.                     for (a = a || d.appendChild(e.createElement("div")), l = (qe.exec(r) || ["", ""])[1].toLowerCase(), u = Ve[l] || Ve._default, a.innerHTML = u[1] + r.replace(We, "<$1></$2>") + u[2], o = u[0]; o--;) a = a.lastChild;
  2116.                     if (!ne.leadingWhitespace && Fe.test(r) && f.push(e.createTextNode(Fe.exec(r)[0])), !ne.tbody)
  2117.                         for (r = "table" !== l || ze.test(r) ? "<table>" !== u[1] || ze.test(r) ? 0 : a : a.firstChild, o = r && r.childNodes.length; o--;) oe.nodeName(c = r.childNodes[o], "tbody") && !c.childNodes.length && r.removeChild(c);
  2118.                     for (oe.merge(f, a.childNodes), a.textContent = ""; a.firstChild;) a.removeChild(a.firstChild);
  2119.                     a = d.lastChild
  2120.                 } else f.push(e.createTextNode(r));
  2121.                 for (a && d.removeChild(a), ne.appendChecked || oe.grep(g(f, "input"), v), p = 0; r = f[p++];)
  2122.                     if ((!i || -1 === oe.inArray(r, i)) && (s = oe.contains(r.ownerDocument, r), a = g(d.appendChild(r), "script"), s && w(a), n))
  2123.                         for (o = 0; r = a[o++];) Qe.test(r.type || "") && n.push(r);
  2124.                 return a = null, d
  2125.             },
  2126.             cleanData: function(t, e) {
  2127.                 for (var n, i, o, r, s = 0, a = oe.expando, l = oe.cache, c = ne.deleteExpando, u = oe.event.special; null != (n = t[s]); s++)
  2128.                     if ((e || oe.acceptData(n)) && (o = n[a], r = o && l[o])) {
  2129.                         if (r.events)
  2130.                             for (i in r.events) u[i] ? oe.event.remove(n, i) : oe.removeEvent(n, i, r.handle);
  2131.                         l[o] && (delete l[o], c ? delete n[a] : typeof n.removeAttribute !== ke ? n.removeAttribute(a) : n[a] = null, Y.push(o))
  2132.                     }
  2133.             }
  2134.         }), oe.fn.extend({
  2135.             text: function(t) {
  2136.                 return Ne(this, function(t) {
  2137.                     return void 0 === t ? oe.text(this) : this.empty().append((this[0] && this[0].ownerDocument || pe).createTextNode(t))
  2138.                 }, null, t, arguments.length)
  2139.             },
  2140.             append: function() {
  2141.                 return this.domManip(arguments, function(t) {
  2142.                     if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
  2143.                         var e = y(this, t);
  2144.                         e.appendChild(t)
  2145.                     }
  2146.                 })
  2147.             },
  2148.             prepend: function() {
  2149.                 return this.domManip(arguments, function(t) {
  2150.                     if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
  2151.                         var e = y(this, t);
  2152.                         e.insertBefore(t, e.firstChild)
  2153.                     }
  2154.                 })
  2155.             },
  2156.             before: function() {
  2157.                 return this.domManip(arguments, function(t) {
  2158.                     this.parentNode && this.parentNode.insertBefore(t, this)
  2159.                 })
  2160.             },
  2161.             after: function() {
  2162.                 return this.domManip(arguments, function(t) {
  2163.                     this.parentNode && this.parentNode.insertBefore(t, this.nextSibling)
  2164.                 })
  2165.             },
  2166.             remove: function(t, e) {
  2167.                 for (var n, i = t ? oe.filter(t, this) : this, o = 0; null != (n = i[o]); o++) e || 1 !== n.nodeType || oe.cleanData(g(n)), n.parentNode && (e && oe.contains(n.ownerDocument, n) && w(g(n, "script")), n.parentNode.removeChild(n));
  2168.                 return this
  2169.             },
  2170.             empty: function() {
  2171.                 for (var t, e = 0; null != (t = this[e]); e++) {
  2172.                     for (1 === t.nodeType && oe.cleanData(g(t, !1)); t.firstChild;) t.removeChild(t.firstChild);
  2173.                     t.options && oe.nodeName(t, "select") && (t.options.length = 0)
  2174.                 }
  2175.                 return this
  2176.             },
  2177.             clone: function(t, e) {
  2178.                 return t = null == t ? !1 : t, e = null == e ? t : e, this.map(function() {
  2179.                     return oe.clone(this, t, e)
  2180.                 })
  2181.             },
  2182.             html: function(t) {
  2183.                 return Ne(this, function(t) {
  2184.                     var e = this[0] || {},
  2185.                         n = 0,
  2186.                         i = this.length;
  2187.                     if (void 0 === t) return 1 === e.nodeType ? e.innerHTML.replace(Me, "") : void 0;
  2188.                     if (!("string" != typeof t || Re.test(t) || !ne.htmlSerialize && Oe.test(t) || !ne.leadingWhitespace && Fe.test(t) || Ve[(qe.exec(t) || ["", ""])[1].toLowerCase()])) {
  2189.                         t = t.replace(We, "<$1></$2>");
  2190.                         try {
  2191.                             for (; i > n; n++) e = this[n] || {}, 1 === e.nodeType && (oe.cleanData(g(e, !1)), e.innerHTML = t);
  2192.                             e = 0
  2193.                         } catch (o) {}
  2194.                     }
  2195.                     e && this.empty().append(t)
  2196.                 }, null, t, arguments.length)
  2197.             },
  2198.             replaceWith: function() {
  2199.                 var t = arguments[0];
  2200.                 return this.domManip(arguments, function(e) {
  2201.                     t = this.parentNode, oe.cleanData(g(this)), t && t.replaceChild(e, this)
  2202.                 }), t && (t.length || t.nodeType) ? this : this.remove()
  2203.             },
  2204.             detach: function(t) {
  2205.                 return this.remove(t, !0)
  2206.             },
  2207.             domManip: function(t, e) {
  2208.                 t = G.apply([], t);
  2209.                 var n, i, o, r, s, a, l = 0,
  2210.                     c = this.length,
  2211.                     u = this,
  2212.                     h = c - 1,
  2213.                     d = t[0],
  2214.                     f = oe.isFunction(d);
  2215.                 if (f || c > 1 && "string" == typeof d && !ne.checkClone && Xe.test(d)) return this.each(function(n) {
  2216.                     var i = u.eq(n);
  2217.                     f && (t[0] = d.call(this, n, i.html())), i.domManip(t, e)
  2218.                 });
  2219.                 if (c && (a = oe.buildFragment(t, this[0].ownerDocument, !1, this), n = a.firstChild, 1 === a.childNodes.length && (a = n), n)) {
  2220.                     for (r = oe.map(g(a, "script"), b), o = r.length; c > l; l++) i = a, l !== h && (i = oe.clone(i, !0, !0), o && oe.merge(r, g(i, "script"))), e.call(this[l], i, l);
  2221.                     if (o)
  2222.                         for (s = r[r.length - 1].ownerDocument, oe.map(r, x), l = 0; o > l; l++) i = r[l], Qe.test(i.type || "") && !oe._data(i, "globalEval") && oe.contains(s, i) && (i.src ? oe._evalUrl && oe._evalUrl(i.src) : oe.globalEval((i.text || i.textContent || i.innerHTML || "").replace(Ye, "")));
  2223.                     a = n = null
  2224.                 }
  2225.                 return this
  2226.             }
  2227.         }), oe.each({
  2228.             appendTo: "append",
  2229.             prependTo: "prepend",
  2230.             insertBefore: "before",
  2231.             insertAfter: "after",
  2232.             replaceAll: "replaceWith"
  2233.         }, function(t, e) {
  2234.             oe.fn[t] = function(t) {
  2235.                 for (var n, i = 0, o = [], r = oe(t), s = r.length - 1; s >= i; i++) n = i === s ? this : this.clone(!0), oe(r[i])[e](n), J.apply(o, n.get());
  2236.                 return this.pushStack(o)
  2237.             }
  2238.         });
  2239.         var Ke, Ze = {};
  2240.         ! function() {
  2241.             var t;
  2242.             ne.shrinkWrapBlocks = function() {
  2243.                 if (null != t) return t;
  2244.                 t = !1;
  2245.                 var e, n, i;
  2246.                 return n = pe.getElementsByTagName("body")[0], n && n.style ? (e = pe.createElement("div"), i = pe.createElement("div"), i.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(i).appendChild(e), typeof e.style.zoom !== ke && (e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", e.appendChild(pe.createElement("div")).style.width = "5px", t = 3 !== e.offsetWidth), n.removeChild(i), t) : void 0
  2247.             }
  2248.         }();
  2249.         var tn, en, nn = /^margin/,
  2250.             on = new RegExp("^(" + $e + ")(?!px)[a-z%]+$", "i"),
  2251.             rn = /^(top|right|bottom|left)$/;
  2252.         t.getComputedStyle ? (tn = function(t) {
  2253.                 return t.ownerDocument.defaultView.getComputedStyle(t, null)
  2254.             }, en = function(t, e, n) {
  2255.                 var i, o, r, s, a = t.style;
  2256.                 return n = n || tn(t), s = n ? n.getPropertyValue(e) || n[e] : void 0, n && ("" !== s || oe.contains(t.ownerDocument, t) || (s = oe.style(t, e)), on.test(s) && nn.test(e) && (i = a.width, o = a.minWidth, r = a.maxWidth, a.minWidth = a.maxWidth = a.width = s, s = n.width, a.width = i, a.minWidth = o, a.maxWidth = r)), void 0 === s ? s : s + ""
  2257.             }) : pe.documentElement.currentStyle && (tn = function(t) {
  2258.                 return t.currentStyle
  2259.             }, en = function(t, e, n) {
  2260.                 var i, o, r, s, a = t.style;
  2261.                 return n = n || tn(t), s = n ? n[e] : void 0, null == s && a && a[e] && (s = a[e]), on.test(s) && !rn.test(e) && (i = a.left, o = t.runtimeStyle, r = o && o.left, r && (o.left = t.currentStyle.left), a.left = "fontSize" === e ? "1em" : s, s = a.pixelLeft + "px", a.left = i, r && (o.left = r)), void 0 === s ? s : s + "" || "auto"
  2262.             }),
  2263.             function() {
  2264.                 function e() {
  2265.                     var e, n, i, o;
  2266.                     n = pe.getElementsByTagName("body")[0], n && n.style && (e = pe.createElement("div"), i = pe.createElement("div"), i.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(i).appendChild(e), e.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", r = s = !1, l = !0, t.getComputedStyle && (r = "1%" !== (t.getComputedStyle(e, null) || {}).top, s = "4px" === (t.getComputedStyle(e, null) || {
  2267.                         width: "4px"
  2268.                     }).width, o = e.appendChild(pe.createElement("div")), o.style.cssText = e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", o.style.marginRight = o.style.width = "0", e.style.width = "1px", l = !parseFloat((t.getComputedStyle(o, null) || {}).marginRight)), e.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", o = e.getElementsByTagName("td"), o[0].style.cssText = "margin:0;border:0;padding:0;display:none", a = 0 === o[0].offsetHeight, a && (o[0].style.display = "", o[1].style.display = "none", a = 0 === o[0].offsetHeight), n.removeChild(i))
  2269.                 }
  2270.                 var n, i, o, r, s, a, l;
  2271.                 n = pe.createElement("div"), n.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", o = n.getElementsByTagName("a")[0], i = o && o.style, i && (i.cssText = "float:left;opacity:.5", ne.opacity = "0.5" === i.opacity, ne.cssFloat = !!i.cssFloat, n.style.backgroundClip = "content-box", n.cloneNode(!0).style.backgroundClip = "", ne.clearCloneStyle = "content-box" === n.style.backgroundClip, ne.boxSizing = "" === i.boxSizing || "" === i.MozBoxSizing || "" === i.WebkitBoxSizing, oe.extend(ne, {
  2272.                     reliableHiddenOffsets: function() {
  2273.                         return null == a && e(), a
  2274.                     },
  2275.                     boxSizingReliable: function() {
  2276.                         return null == s && e(), s
  2277.                     },
  2278.                     pixelPosition: function() {
  2279.                         return null == r && e(), r
  2280.                     },
  2281.                     reliableMarginRight: function() {
  2282.                         return null == l && e(), l
  2283.                     }
  2284.                 }))
  2285.             }(), oe.swap = function(t, e, n, i) {
  2286.                 var o, r, s = {};
  2287.                 for (r in e) s[r] = t.style[r], t.style[r] = e[r];
  2288.                 o = n.apply(t, i || []);
  2289.                 for (r in e) t.style[r] = s[r];
  2290.                 return o
  2291.             };
  2292.         var sn = /alpha\([^)]*\)/i,
  2293.             an = /opacity\s*=\s*([^)]*)/,
  2294.             ln = /^(none|table(?!-c[ea]).+)/,
  2295.             cn = new RegExp("^(" + $e + ")(.*)$", "i"),
  2296.             un = new RegExp("^([+-])=(" + $e + ")", "i"),
  2297.             hn = {
  2298.                 position: "absolute",
  2299.                 visibility: "hidden",
  2300.                 display: "block"
  2301.             },
  2302.             dn = {
  2303.                 letterSpacing: "0",
  2304.                 fontWeight: "400"
  2305.             },
  2306.             fn = ["Webkit", "O", "Moz", "ms"];
  2307.         oe.extend({
  2308.             cssHooks: {
  2309.                 opacity: {
  2310.                     get: function(t, e) {
  2311.                         if (e) {
  2312.                             var n = en(t, "opacity");
  2313.                             return "" === n ? "1" : n
  2314.                         }
  2315.                     }
  2316.                 }
  2317.             },
  2318.             cssNumber: {
  2319.                 columnCount: !0,
  2320.                 fillOpacity: !0,
  2321.                 flexGrow: !0,
  2322.                 flexShrink: !0,
  2323.                 fontWeight: !0,
  2324.                 lineHeight: !0,
  2325.                 opacity: !0,
  2326.                 order: !0,
  2327.                 orphans: !0,
  2328.                 widows: !0,
  2329.                 zIndex: !0,
  2330.                 zoom: !0
  2331.             },
  2332.             cssProps: {
  2333.                 "float": ne.cssFloat ? "cssFloat" : "styleFloat"
  2334.             },
  2335.             style: function(t, e, n, i) {
  2336.                 if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
  2337.                     var o, r, s, a = oe.camelCase(e),
  2338.                         l = t.style;
  2339.                     if (e = oe.cssProps[a] || (oe.cssProps[a] = S(l, a)), s = oe.cssHooks[e] || oe.cssHooks[a], void 0 === n) return s && "get" in s && void 0 !== (o = s.get(t, !1, i)) ? o : l[e];
  2340.                     if (r = typeof n, "string" === r && (o = un.exec(n)) && (n = (o[1] + 1) * o[2] + parseFloat(oe.css(t, e)), r = "number"), null != n && n === n && ("number" !== r || oe.cssNumber[a] || (n += "px"), ne.clearCloneStyle || "" !== n || 0 !== e.indexOf("background") || (l[e] = "inherit"), !(s && "set" in s && void 0 === (n = s.set(t, n, i))))) try {
  2341.                         l[e] = n
  2342.                     } catch (c) {}
  2343.                 }
  2344.             },
  2345.             css: function(t, e, n, i) {
  2346.                 var o, r, s, a = oe.camelCase(e);
  2347.                 return e = oe.cssProps[a] || (oe.cssProps[a] = S(t.style, a)), s = oe.cssHooks[e] || oe.cssHooks[a], s && "get" in s && (r = s.get(t, !0, n)), void 0 === r && (r = en(t, e, i)), "normal" === r && e in dn && (r = dn[e]), "" === n || n ? (o = parseFloat(r), n === !0 || oe.isNumeric(o) ? o || 0 : r) : r
  2348.             }
  2349.         }), oe.each(["height", "width"], function(t, e) {
  2350.             oe.cssHooks[e] = {
  2351.                 get: function(t, n, i) {
  2352.                     return n ? ln.test(oe.css(t, "display")) && 0 === t.offsetWidth ? oe.swap(t, hn, function() {
  2353.                         return j(t, e, i)
  2354.                     }) : j(t, e, i) : void 0
  2355.                 },
  2356.                 set: function(t, n, i) {
  2357.                     var o = i && tn(t);
  2358.                     return N(t, n, i ? D(t, e, i, ne.boxSizing && "border-box" === oe.css(t, "boxSizing", !1, o), o) : 0)
  2359.                 }
  2360.             }
  2361.         }), ne.opacity || (oe.cssHooks.opacity = {
  2362.             get: function(t, e) {
  2363.                 return an.test((e && t.currentStyle ? t.currentStyle.filter : t.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : e ? "1" : ""
  2364.             },
  2365.             set: function(t, e) {
  2366.                 var n = t.style,
  2367.                     i = t.currentStyle,
  2368.                     o = oe.isNumeric(e) ? "alpha(opacity=" + 100 * e + ")" : "",
  2369.                     r = i && i.filter || n.filter || "";
  2370.                 n.zoom = 1, (e >= 1 || "" === e) && "" === oe.trim(r.replace(sn, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === e || i && !i.filter) || (n.filter = sn.test(r) ? r.replace(sn, o) : r + " " + o)
  2371.             }
  2372.         }), oe.cssHooks.marginRight = $(ne.reliableMarginRight, function(t, e) {
  2373.             return e ? oe.swap(t, {
  2374.                 display: "inline-block"
  2375.             }, en, [t, "marginRight"]) : void 0
  2376.         }), oe.each({
  2377.             margin: "",
  2378.             padding: "",
  2379.             border: "Width"
  2380.         }, function(t, e) {
  2381.             oe.cssHooks[t + e] = {
  2382.                 expand: function(n) {
  2383.                     for (var i = 0, o = {}, r = "string" == typeof n ? n.split(" ") : [n]; 4 > i; i++) o[t + Se[i] + e] = r[i] || r[i - 2] || r[0];
  2384.                     return o
  2385.                 }
  2386.             }, nn.test(t) || (oe.cssHooks[t + e].set = N)
  2387.         }), oe.fn.extend({
  2388.             css: function(t, e) {
  2389.                 return Ne(this, function(t, e, n) {
  2390.                     var i, o, r = {},
  2391.                         s = 0;
  2392.                     if (oe.isArray(e)) {
  2393.                         for (i = tn(t), o = e.length; o > s; s++) r[e[s]] = oe.css(t, e[s], !1, i);
  2394.                         return r
  2395.                     }
  2396.                     return void 0 !== n ? oe.style(t, e, n) : oe.css(t, e)
  2397.                 }, t, e, arguments.length > 1)
  2398.             },
  2399.             show: function() {
  2400.                 return E(this, !0)
  2401.             },
  2402.             hide: function() {
  2403.                 return E(this)
  2404.             },
  2405.             toggle: function(t) {
  2406.                 return "boolean" == typeof t ? t ? this.show() : this.hide() : this.each(function() {
  2407.                     Ee(this) ? oe(this).show() : oe(this).hide()
  2408.                 })
  2409.             }
  2410.         }), oe.Tween = P, P.prototype = {
  2411.             constructor: P,
  2412.             init: function(t, e, n, i, o, r) {
  2413.                 this.elem = t, this.prop = n, this.easing = o || "swing", this.options = e, this.start = this.now = this.cur(), this.end = i, this.unit = r || (oe.cssNumber[n] ? "" : "px")
  2414.             },
  2415.             cur: function() {
  2416.                 var t = P.propHooks[this.prop];
  2417.                 return t && t.get ? t.get(this) : P.propHooks._default.get(this)
  2418.             },
  2419.             run: function(t) {
  2420.                 var e, n = P.propHooks[this.prop];
  2421.                 return this.pos = e = this.options.duration ? oe.easing[this.easing](t, this.options.duration * t, 0, 1, this.options.duration) : t, this.now = (this.end - this.start) * e + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : P.propHooks._default.set(this), this
  2422.             }
  2423.         }, P.prototype.init.prototype = P.prototype, P.propHooks = {
  2424.             _default: {
  2425.                 get: function(t) {
  2426.                     var e;
  2427.                     return null == t.elem[t.prop] || t.elem.style && null != t.elem.style[t.prop] ? (e = oe.css(t.elem, t.prop, ""), e && "auto" !== e ? e : 0) : t.elem[t.prop]
  2428.                 },
  2429.                 set: function(t) {
  2430.                     oe.fx.step[t.prop] ? oe.fx.step[t.prop](t) : t.elem.style && (null != t.elem.style[oe.cssProps[t.prop]] || oe.cssHooks[t.prop]) ? oe.style(t.elem, t.prop, t.now + t.unit) : t.elem[t.prop] = t.now
  2431.                 }
  2432.             }
  2433.         }, P.propHooks.scrollTop = P.propHooks.scrollLeft = {
  2434.             set: function(t) {
  2435.                 t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now)
  2436.             }
  2437.         }, oe.easing = {
  2438.             linear: function(t) {
  2439.                 return t
  2440.             },
  2441.             swing: function(t) {
  2442.                 return .5 - Math.cos(t * Math.PI) / 2
  2443.             }
  2444.         }, oe.fx = P.prototype.init, oe.fx.step = {};
  2445.         var pn, mn, gn = /^(?:toggle|show|hide)$/,
  2446.             vn = new RegExp("^(?:([+-])=|)(" + $e + ")([a-z%]*)$", "i"),
  2447.             yn = /queueHooks$/,
  2448.             bn = [L],
  2449.             xn = {
  2450.                 "*": [
  2451.                     function(t, e) {
  2452.                         var n = this.createTween(t, e),
  2453.                             i = n.cur(),
  2454.                             o = vn.exec(e),
  2455.                             r = o && o[3] || (oe.cssNumber[t] ? "" : "px"),
  2456.                             s = (oe.cssNumber[t] || "px" !== r && +i) && vn.exec(oe.css(n.elem, t)),
  2457.                             a = 1,
  2458.                             l = 20;
  2459.                         if (s && s[3] !== r) {
  2460.                             r = r || s[3], o = o || [], s = +i || 1;
  2461.                             do a = a || ".5", s /= a, oe.style(n.elem, t, s + r); while (a !== (a = n.cur() / i) && 1 !== a && --l)
  2462.                         }
  2463.                         return o && (s = n.start = +s || +i || 0, n.unit = r, n.end = o[1] ? s + (o[1] + 1) * o[2] : +o[2]), n
  2464.                     }
  2465.                 ]
  2466.             };
  2467.         oe.Animation = oe.extend(O, {
  2468.                 tweener: function(t, e) {
  2469.                     oe.isFunction(t) ? (e = t, t = ["*"]) : t = t.split(" ");
  2470.                     for (var n, i = 0, o = t.length; o > i; i++) n = t[i], xn[n] = xn[n] || [], xn[n].unshift(e)
  2471.                 },
  2472.                 prefilter: function(t, e) {
  2473.                     e ? bn.unshift(t) : bn.push(t)
  2474.                 }
  2475.             }), oe.speed = function(t, e, n) {
  2476.                 var i = t && "object" == typeof t ? oe.extend({}, t) : {
  2477.                     complete: n || !n && e || oe.isFunction(t) && t,
  2478.                     duration: t,
  2479.                     easing: n && e || e && !oe.isFunction(e) && e
  2480.                 };
  2481.                 return i.duration = oe.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in oe.fx.speeds ? oe.fx.speeds[i.duration] : oe.fx.speeds._default, (null == i.queue || i.queue === !0) && (i.queue = "fx"), i.old = i.complete, i.complete = function() {
  2482.                     oe.isFunction(i.old) && i.old.call(this), i.queue && oe.dequeue(this, i.queue)
  2483.                 }, i
  2484.             }, oe.fn.extend({
  2485.                 fadeTo: function(t, e, n, i) {
  2486.                     return this.filter(Ee).css("opacity", 0).show().end().animate({
  2487.                         opacity: e
  2488.                     }, t, n, i)
  2489.                 },
  2490.                 animate: function(t, e, n, i) {
  2491.                     var o = oe.isEmptyObject(t),
  2492.                         r = oe.speed(e, n, i),
  2493.                         s = function() {
  2494.                             var e = O(this, oe.extend({}, t), r);
  2495.                             (o || oe._data(this, "finish")) && e.stop(!0)
  2496.                         };
  2497.                     return s.finish = s, o || r.queue === !1 ? this.each(s) : this.queue(r.queue, s)
  2498.                 },
  2499.                 stop: function(t, e, n) {
  2500.                     var i = function(t) {
  2501.                         var e = t.stop;
  2502.                         delete t.stop, e(n)
  2503.                     };
  2504.                     return "string" != typeof t && (n = e, e = t, t = void 0), e && t !== !1 && this.queue(t || "fx", []), this.each(function() {
  2505.                         var e = !0,
  2506.                             o = null != t && t + "queueHooks",
  2507.                             r = oe.timers,
  2508.                             s = oe._data(this);
  2509.                         if (o) s[o] && s[o].stop && i(s[o]);
  2510.                         else
  2511.                             for (o in s) s[o] && s[o].stop && yn.test(o) && i(s[o]);
  2512.                         for (o = r.length; o--;) r[o].elem !== this || null != t && r[o].queue !== t || (r[o].anim.stop(n), e = !1, r.splice(o, 1));
  2513.                         (e || !n) && oe.dequeue(this, t)
  2514.                     })
  2515.                 },
  2516.                 finish: function(t) {
  2517.                     return t !== !1 && (t = t || "fx"), this.each(function() {
  2518.                         var e, n = oe._data(this),
  2519.                             i = n[t + "queue"],
  2520.                             o = n[t + "queueHooks"],
  2521.                             r = oe.timers,
  2522.                             s = i ? i.length : 0;
  2523.                         for (n.finish = !0, oe.queue(this, t, []), o && o.stop && o.stop.call(this, !0), e = r.length; e--;) r[e].elem === this && r[e].queue === t && (r[e].anim.stop(!0), r.splice(e, 1));
  2524.                         for (e = 0; s > e; e++) i[e] && i[e].finish && i[e].finish.call(this);
  2525.                         delete n.finish
  2526.                     })
  2527.                 }
  2528.             }), oe.each(["toggle", "show", "hide"], function(t, e) {
  2529.                 var n = oe.fn[e];
  2530.                 oe.fn[e] = function(t, i, o) {
  2531.                     return null == t || "boolean" == typeof t ? n.apply(this, arguments) : this.animate(H(e, !0), t, i, o)
  2532.                 }
  2533.             }), oe.each({
  2534.                 slideDown: H("show"),
  2535.                 slideUp: H("hide"),
  2536.                 slideToggle: H("toggle"),
  2537.                 fadeIn: {
  2538.                     opacity: "show"
  2539.                 },
  2540.                 fadeOut: {
  2541.                     opacity: "hide"
  2542.                 },
  2543.                 fadeToggle: {
  2544.                     opacity: "toggle"
  2545.                 }
  2546.             }, function(t, e) {
  2547.                 oe.fn[t] = function(t, n, i) {
  2548.                     return this.animate(e, t, n, i)
  2549.                 }
  2550.             }), oe.timers = [], oe.fx.tick = function() {
  2551.                 var t, e = oe.timers,
  2552.                     n = 0;
  2553.                 for (pn = oe.now(); n < e.length; n++) t = e[n], t() || e[n] !== t || e.splice(n--, 1);
  2554.                 e.length || oe.fx.stop(), pn = void 0
  2555.             }, oe.fx.timer = function(t) {
  2556.                 oe.timers.push(t), t() ? oe.fx.start() : oe.timers.pop()
  2557.             }, oe.fx.interval = 13, oe.fx.start = function() {
  2558.                 mn || (mn = setInterval(oe.fx.tick, oe.fx.interval))
  2559.             }, oe.fx.stop = function() {
  2560.                 clearInterval(mn), mn = null
  2561.             }, oe.fx.speeds = {
  2562.                 slow: 600,
  2563.                 fast: 200,
  2564.                 _default: 400
  2565.             }, oe.fn.delay = function(t, e) {
  2566.                 return t = oe.fx ? oe.fx.speeds[t] || t : t, e = e || "fx", this.queue(e, function(e, n) {
  2567.                     var i = setTimeout(e, t);
  2568.                     n.stop = function() {
  2569.                         clearTimeout(i)
  2570.                     }
  2571.                 })
  2572.             },
  2573.             function() {
  2574.                 var t, e, n, i, o;
  2575.                 e = pe.createElement("div"), e.setAttribute("className", "t"), e.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", i = e.getElementsByTagName("a")[0], n = pe.createElement("select"), o = n.appendChild(pe.createElement("option")), t = e.getElementsByTagName("input")[0], i.style.cssText = "top:1px", ne.getSetAttribute = "t" !== e.className, ne.style = /top/.test(i.getAttribute("style")), ne.hrefNormalized = "/a" === i.getAttribute("href"), ne.checkOn = !!t.value, ne.optSelected = o.selected, ne.enctype = !!pe.createElement("form").enctype, n.disabled = !0, ne.optDisabled = !o.disabled, t = pe.createElement("input"), t.setAttribute("value", ""), ne.input = "" === t.getAttribute("value"), t.value = "t", t.setAttribute("type", "radio"), ne.radioValue = "t" === t.value
  2576.             }();
  2577.         var wn = /\r/g;
  2578.         oe.fn.extend({
  2579.             val: function(t) {
  2580.                 var e, n, i, o = this[0]; {
  2581.                     if (arguments.length) return i = oe.isFunction(t), this.each(function(n) {
  2582.                         var o;
  2583.                         1 === this.nodeType && (o = i ? t.call(this, n, oe(this).val()) : t, null == o ? o = "" : "number" == typeof o ? o += "" : oe.isArray(o) && (o = oe.map(o, function(t) {
  2584.                             return null == t ? "" : t + ""
  2585.                         })), e = oe.valHooks[this.type] || oe.valHooks[this.nodeName.toLowerCase()], e && "set" in e && void 0 !== e.set(this, o, "value") || (this.value = o))
  2586.                     });
  2587.                     if (o) return e = oe.valHooks[o.type] || oe.valHooks[o.nodeName.toLowerCase()], e && "get" in e && void 0 !== (n = e.get(o, "value")) ? n : (n = o.value, "string" == typeof n ? n.replace(wn, "") : null == n ? "" : n)
  2588.                 }
  2589.             }
  2590.         }), oe.extend({
  2591.             valHooks: {
  2592.                 option: {
  2593.                     get: function(t) {
  2594.                         var e = oe.find.attr(t, "value");
  2595.                         return null != e ? e : oe.trim(oe.text(t))
  2596.                     }
  2597.                 },
  2598.                 select: {
  2599.                     get: function(t) {
  2600.                         for (var e, n, i = t.options, o = t.selectedIndex, r = "select-one" === t.type || 0 > o, s = r ? null : [], a = r ? o + 1 : i.length, l = 0 > o ? a : r ? o : 0; a > l; l++)
  2601.                             if (n = i[l], !(!n.selected && l !== o || (ne.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && oe.nodeName(n.parentNode, "optgroup"))) {
  2602.                                 if (e = oe(n).val(), r) return e;
  2603.                                 s.push(e)
  2604.                             }
  2605.                         return s
  2606.                     },
  2607.                     set: function(t, e) {
  2608.                         for (var n, i, o = t.options, r = oe.makeArray(e), s = o.length; s--;)
  2609.                             if (i = o[s], oe.inArray(oe.valHooks.option.get(i), r) >= 0) try {
  2610.                                 i.selected = n = !0
  2611.                             } catch (a) {
  2612.                                 i.scrollHeight
  2613.                             } else i.selected = !1;
  2614.                         return n || (t.selectedIndex = -1), o
  2615.                     }
  2616.                 }
  2617.             }
  2618.         }), oe.each(["radio", "checkbox"], function() {
  2619.             oe.valHooks[this] = {
  2620.                 set: function(t, e) {
  2621.                     return oe.isArray(e) ? t.checked = oe.inArray(oe(t).val(), e) >= 0 : void 0
  2622.                 }
  2623.             }, ne.checkOn || (oe.valHooks[this].get = function(t) {
  2624.                 return null === t.getAttribute("value") ? "on" : t.value
  2625.             })
  2626.         });
  2627.         var Cn, kn, _n = oe.expr.attrHandle,
  2628.             Tn = /^(?:checked|selected)$/i,
  2629.             $n = ne.getSetAttribute,
  2630.             Sn = ne.input;
  2631.         oe.fn.extend({
  2632.             attr: function(t, e) {
  2633.                 return Ne(this, oe.attr, t, e, arguments.length > 1)
  2634.             },
  2635.             removeAttr: function(t) {
  2636.                 return this.each(function() {
  2637.                     oe.removeAttr(this, t)
  2638.                 })
  2639.             }
  2640.         }), oe.extend({
  2641.             attr: function(t, e, n) {
  2642.                 var i, o, r = t.nodeType;
  2643.                 if (t && 3 !== r && 8 !== r && 2 !== r) return typeof t.getAttribute === ke ? oe.prop(t, e, n) : (1 === r && oe.isXMLDoc(t) || (e = e.toLowerCase(), i = oe.attrHooks[e] || (oe.expr.match.bool.test(e) ? kn : Cn)), void 0 === n ? i && "get" in i && null !== (o = i.get(t, e)) ? o : (o = oe.find.attr(t, e), null == o ? void 0 : o) : null !== n ? i && "set" in i && void 0 !== (o = i.set(t, n, e)) ? o : (t.setAttribute(e, n + ""), n) : void oe.removeAttr(t, e))
  2644.             },
  2645.             removeAttr: function(t, e) {
  2646.                 var n, i, o = 0,
  2647.                     r = e && e.match(be);
  2648.                 if (r && 1 === t.nodeType)
  2649.                     for (; n = r[o++];) i = oe.propFix[n] || n, oe.expr.match.bool.test(n) ? Sn && $n || !Tn.test(n) ? t[i] = !1 : t[oe.camelCase("default-" + n)] = t[i] = !1 : oe.attr(t, n, ""), t.removeAttribute($n ? n : i)
  2650.             },
  2651.             attrHooks: {
  2652.                 type: {
  2653.                     set: function(t, e) {
  2654.                         if (!ne.radioValue && "radio" === e && oe.nodeName(t, "input")) {
  2655.                             var n = t.value;
  2656.                             return t.setAttribute("type", e), n && (t.value = n), e
  2657.                         }
  2658.                     }
  2659.                 }
  2660.             }
  2661.         }), kn = {
  2662.             set: function(t, e, n) {
  2663.                 return e === !1 ? oe.removeAttr(t, n) : Sn && $n || !Tn.test(n) ? t.setAttribute(!$n && oe.propFix[n] || n, n) : t[oe.camelCase("default-" + n)] = t[n] = !0, n
  2664.             }
  2665.         }, oe.each(oe.expr.match.bool.source.match(/\w+/g), function(t, e) {
  2666.             var n = _n[e] || oe.find.attr;
  2667.             _n[e] = Sn && $n || !Tn.test(e) ? function(t, e, i) {
  2668.                 var o, r;
  2669.                 return i || (r = _n[e], _n[e] = o, o = null != n(t, e, i) ? e.toLowerCase() : null, _n[e] = r), o
  2670.             } : function(t, e, n) {
  2671.                 return n ? void 0 : t[oe.camelCase("default-" + e)] ? e.toLowerCase() : null
  2672.             }
  2673.         }), Sn && $n || (oe.attrHooks.value = {
  2674.             set: function(t, e, n) {
  2675.                 return oe.nodeName(t, "input") ? void(t.defaultValue = e) : Cn && Cn.set(t, e, n)
  2676.             }
  2677.         }), $n || (Cn = {
  2678.             set: function(t, e, n) {
  2679.                 var i = t.getAttributeNode(n);
  2680.                 return i || t.setAttributeNode(i = t.ownerDocument.createAttribute(n)), i.value = e += "", "value" === n || e === t.getAttribute(n) ? e : void 0
  2681.             }
  2682.         }, _n.id = _n.name = _n.coords = function(t, e, n) {
  2683.             var i;
  2684.             return n ? void 0 : (i = t.getAttributeNode(e)) && "" !== i.value ? i.value : null
  2685.         }, oe.valHooks.button = {
  2686.             get: function(t, e) {
  2687.                 var n = t.getAttributeNode(e);
  2688.                 return n && n.specified ? n.value : void 0
  2689.             },
  2690.             set: Cn.set
  2691.         }, oe.attrHooks.contenteditable = {
  2692.             set: function(t, e, n) {
  2693.                 Cn.set(t, "" === e ? !1 : e, n)
  2694.             }
  2695.         }, oe.each(["width", "height"], function(t, e) {
  2696.             oe.attrHooks[e] = {
  2697.                 set: function(t, n) {
  2698.                     return "" === n ? (t.setAttribute(e, "auto"), n) : void 0
  2699.                 }
  2700.             }
  2701.         })), ne.style || (oe.attrHooks.style = {
  2702.             get: function(t) {
  2703.                 return t.style.cssText || void 0
  2704.             },
  2705.             set: function(t, e) {
  2706.                 return t.style.cssText = e + ""
  2707.             }
  2708.         });
  2709.         var En = /^(?:input|select|textarea|button|object)$/i,
  2710.             Nn = /^(?:a|area)$/i;
  2711.         oe.fn.extend({
  2712.             prop: function(t, e) {
  2713.                 return Ne(this, oe.prop, t, e, arguments.length > 1)
  2714.             },
  2715.             removeProp: function(t) {
  2716.                 return t = oe.propFix[t] || t, this.each(function() {
  2717.                     try {
  2718.                         this[t] = void 0, delete this[t]
  2719.                     } catch (e) {}
  2720.                 })
  2721.             }
  2722.         }), oe.extend({
  2723.             propFix: {
  2724.                 "for": "htmlFor",
  2725.                 "class": "className"
  2726.             },
  2727.             prop: function(t, e, n) {
  2728.                 var i, o, r, s = t.nodeType;
  2729.                 if (t && 3 !== s && 8 !== s && 2 !== s) return r = 1 !== s || !oe.isXMLDoc(t), r && (e = oe.propFix[e] || e, o = oe.propHooks[e]), void 0 !== n ? o && "set" in o && void 0 !== (i = o.set(t, n, e)) ? i : t[e] = n : o && "get" in o && null !== (i = o.get(t, e)) ? i : t[e]
  2730.             },
  2731.             propHooks: {
  2732.                 tabIndex: {
  2733.                     get: function(t) {
  2734.                         var e = oe.find.attr(t, "tabindex");
  2735.                         return e ? parseInt(e, 10) : En.test(t.nodeName) || Nn.test(t.nodeName) && t.href ? 0 : -1
  2736.                     }
  2737.                 }
  2738.             }
  2739.         }), ne.hrefNormalized || oe.each(["href", "src"], function(t, e) {
  2740.             oe.propHooks[e] = {
  2741.                 get: function(t) {
  2742.                     return t.getAttribute(e, 4)
  2743.                 }
  2744.             }
  2745.         }), ne.optSelected || (oe.propHooks.selected = {
  2746.             get: function(t) {
  2747.                 var e = t.parentNode;
  2748.                 return e && (e.selectedIndex, e.parentNode && e.parentNode.selectedIndex), null
  2749.             }
  2750.         }), oe.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
  2751.             oe.propFix[this.toLowerCase()] = this
  2752.         }), ne.enctype || (oe.propFix.enctype = "encoding");
  2753.         var Dn = /[\t\r\n\f]/g;
  2754.         oe.fn.extend({
  2755.             addClass: function(t) {
  2756.                 var e, n, i, o, r, s, a = 0,
  2757.                     l = this.length,
  2758.                     c = "string" == typeof t && t;
  2759.                 if (oe.isFunction(t)) return this.each(function(e) {
  2760.                     oe(this).addClass(t.call(this, e, this.className))
  2761.                 });
  2762.                 if (c)
  2763.                     for (e = (t || "").match(be) || []; l > a; a++)
  2764.                         if (n = this[a], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Dn, " ") : " ")) {
  2765.                             for (r = 0; o = e[r++];) i.indexOf(" " + o + " ") < 0 && (i += o + " ");
  2766.                             s = oe.trim(i), n.className !== s && (n.className = s)
  2767.                         }
  2768.                 return this
  2769.             },
  2770.             removeClass: function(t) {
  2771.                 var e, n, i, o, r, s, a = 0,
  2772.                     l = this.length,
  2773.                     c = 0 === arguments.length || "string" == typeof t && t;
  2774.                 if (oe.isFunction(t)) return this.each(function(e) {
  2775.                     oe(this).removeClass(t.call(this, e, this.className))
  2776.                 });
  2777.                 if (c)
  2778.                     for (e = (t || "").match(be) || []; l > a; a++)
  2779.                         if (n = this[a], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Dn, " ") : "")) {
  2780.                             for (r = 0; o = e[r++];)
  2781.                                 for (; i.indexOf(" " + o + " ") >= 0;) i = i.replace(" " + o + " ", " ");
  2782.                             s = t ? oe.trim(i) : "", n.className !== s && (n.className = s)
  2783.                         }
  2784.                 return this
  2785.             },
  2786.             toggleClass: function(t, e) {
  2787.                 var n = typeof t;
  2788.                 return "boolean" == typeof e && "string" === n ? e ? this.addClass(t) : this.removeClass(t) : this.each(oe.isFunction(t) ? function(n) {
  2789.                     oe(this).toggleClass(t.call(this, n, this.className, e), e)
  2790.                 } : function() {
  2791.                     if ("string" === n)
  2792.                         for (var e, i = 0, o = oe(this), r = t.match(be) || []; e = r[i++];) o.hasClass(e) ? o.removeClass(e) : o.addClass(e);
  2793.                     else(n === ke || "boolean" === n) && (this.className && oe._data(this, "__className__", this.className), this.className = this.className || t === !1 ? "" : oe._data(this, "__className__") || "")
  2794.                 })
  2795.             },
  2796.             hasClass: function(t) {
  2797.                 for (var e = " " + t + " ", n = 0, i = this.length; i > n; n++)
  2798.                     if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(Dn, " ").indexOf(e) >= 0) return !0;
  2799.                 return !1
  2800.             }
  2801.         }), oe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(t, e) {
  2802.             oe.fn[e] = function(t, n) {
  2803.                 return arguments.length > 0 ? this.on(e, null, t, n) : this.trigger(e)
  2804.             }
  2805.         }), oe.fn.extend({
  2806.             hover: function(t, e) {
  2807.                 return this.mouseenter(t).mouseleave(e || t)
  2808.             },
  2809.             bind: function(t, e, n) {
  2810.                 return this.on(t, null, e, n)
  2811.             },
  2812.             unbind: function(t, e) {
  2813.                 return this.off(t, null, e)
  2814.             },
  2815.             delegate: function(t, e, n, i) {
  2816.                 return this.on(e, t, n, i)
  2817.             },
  2818.             undelegate: function(t, e, n) {
  2819.                 return 1 === arguments.length ? this.off(t, "**") : this.off(e, t || "**", n)
  2820.             }
  2821.         });
  2822.         var jn = oe.now(),
  2823.             Pn = /\?/,
  2824.             An = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
  2825.         oe.parseJSON = function(e) {
  2826.             if (t.JSON && t.JSON.parse) return t.JSON.parse(e + "");
  2827.             var n, i = null,
  2828.                 o = oe.trim(e + "");
  2829.             return o && !oe.trim(o.replace(An, function(t, e, o, r) {
  2830.                 return n && e && (i = 0), 0 === i ? t : (n = o || e, i += !r - !o, "")
  2831.             })) ? Function("return " + o)() : oe.error("Invalid JSON: " + e)
  2832.         }, oe.parseXML = function(e) {
  2833.             var n, i;
  2834.             if (!e || "string" != typeof e) return null;
  2835.             try {
  2836.                 t.DOMParser ? (i = new DOMParser, n = i.parseFromString(e, "text/xml")) : (n = new ActiveXObject("Microsoft.XMLDOM"), n.async = "false", n.loadXML(e))
  2837.             } catch (o) {
  2838.                 n = void 0
  2839.             }
  2840.             return n && n.documentElement && !n.getElementsByTagName("parsererror").length || oe.error("Invalid XML: " + e), n
  2841.         };
  2842.         var Hn, In, Ln = /#.*$/,
  2843.             Mn = /([?&])_=[^&]*/,
  2844.             On = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
  2845.             Fn = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
  2846.             Wn = /^(?:GET|HEAD)$/,
  2847.             qn = /^\/\//,
  2848.             zn = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
  2849.             Bn = {},
  2850.             Rn = {},
  2851.             Xn = "*/".concat("*");
  2852.         try {
  2853.             In = location.href
  2854.         } catch (Qn) {
  2855.             In = pe.createElement("a"), In.href = "", In = In.href
  2856.         }
  2857.         Hn = zn.exec(In.toLowerCase()) || [], oe.extend({
  2858.             active: 0,
  2859.             lastModified: {},
  2860.             etag: {},
  2861.             ajaxSettings: {
  2862.                 url: In,
  2863.                 type: "GET",
  2864.                 isLocal: Fn.test(Hn[1]),
  2865.                 global: !0,
  2866.                 processData: !0,
  2867.                 async: !0,
  2868.                 contentType: "application/x-www-form-urlencoded; charset=UTF-8",
  2869.                 accepts: {
  2870.                     "*": Xn,
  2871.                     text: "text/plain",
  2872.                     html: "text/html",
  2873.                     xml: "application/xml, text/xml",
  2874.                     json: "application/json, text/javascript"
  2875.                 },
  2876.                 contents: {
  2877.                     xml: /xml/,
  2878.                     html: /html/,
  2879.                     json: /json/
  2880.                 },
  2881.                 responseFields: {
  2882.                     xml: "responseXML",
  2883.                     text: "responseText",
  2884.                     json: "responseJSON"
  2885.                 },
  2886.                 converters: {
  2887.                     "* text": String,
  2888.                     "text html": !0,
  2889.                     "text json": oe.parseJSON,
  2890.                     "text xml": oe.parseXML
  2891.                 },
  2892.                 flatOptions: {
  2893.                     url: !0,
  2894.                     context: !0
  2895.                 }
  2896.             },
  2897.             ajaxSetup: function(t, e) {
  2898.                 return e ? q(q(t, oe.ajaxSettings), e) : q(oe.ajaxSettings, t)
  2899.             },
  2900.             ajaxPrefilter: F(Bn),
  2901.             ajaxTransport: F(Rn),
  2902.             ajax: function(t, e) {
  2903.                 function n(t, e, n, i) {
  2904.                     var o, u, v, y, x, C = e;
  2905.                     2 !== b && (b = 2, a && clearTimeout(a), c = void 0, s = i || "", w.readyState = t > 0 ? 4 : 0, o = t >= 200 && 300 > t || 304 === t, n && (y = z(h, w, n)), y = B(h, y, w, o), o ? (h.ifModified && (x = w.getResponseHeader("Last-Modified"), x && (oe.lastModified[r] = x), x = w.getResponseHeader("etag"), x && (oe.etag[r] = x)), 204 === t || "HEAD" === h.type ? C = "nocontent" : 304 === t ? C = "notmodified" : (C = y.state, u = y.data, v = y.error, o = !v)) : (v = C, (t || !C) && (C = "error", 0 > t && (t = 0))), w.status = t, w.statusText = (e || C) + "", o ? p.resolveWith(d, [u, C, w]) : p.rejectWith(d, [w, C, v]), w.statusCode(g), g = void 0, l && f.trigger(o ? "ajaxSuccess" : "ajaxError", [w, h, o ? u : v]), m.fireWith(d, [w, C]), l && (f.trigger("ajaxComplete", [w, h]), --oe.active || oe.event.trigger("ajaxStop")))
  2906.                 }
  2907.                 "object" == typeof t && (e = t, t = void 0), e = e || {};
  2908.                 var i, o, r, s, a, l, c, u, h = oe.ajaxSetup({}, e),
  2909.                     d = h.context || h,
  2910.                     f = h.context && (d.nodeType || d.jquery) ? oe(d) : oe.event,
  2911.                     p = oe.Deferred(),
  2912.                     m = oe.Callbacks("once memory"),
  2913.                     g = h.statusCode || {},
  2914.                     v = {},
  2915.                     y = {},
  2916.                     b = 0,
  2917.                     x = "canceled",
  2918.                     w = {
  2919.                         readyState: 0,
  2920.                         getResponseHeader: function(t) {
  2921.                             var e;
  2922.                             if (2 === b) {
  2923.                                 if (!u)
  2924.                                     for (u = {}; e = On.exec(s);) u[e[1].toLowerCase()] = e[2];
  2925.                                 e = u[t.toLowerCase()]
  2926.                             }
  2927.                             return null == e ? null : e
  2928.                         },
  2929.                         getAllResponseHeaders: function() {
  2930.                             return 2 === b ? s : null
  2931.                         },
  2932.                         setRequestHeader: function(t, e) {
  2933.                             var n = t.toLowerCase();
  2934.                             return b || (t = y[n] = y[n] || t, v[t] = e), this
  2935.                         },
  2936.                         overrideMimeType: function(t) {
  2937.                             return b || (h.mimeType = t), this
  2938.                         },
  2939.                         statusCode: function(t) {
  2940.                             var e;
  2941.                             if (t)
  2942.                                 if (2 > b)
  2943.                                     for (e in t) g[e] = [g[e], t[e]];
  2944.                                 else w.always(t[w.status]);
  2945.                             return this
  2946.                         },
  2947.                         abort: function(t) {
  2948.                             var e = t || x;
  2949.                             return c && c.abort(e), n(0, e), this
  2950.                         }
  2951.                     };
  2952.                 if (p.promise(w).complete = m.add, w.success = w.done, w.error = w.fail, h.url = ((t || h.url || In) + "").replace(Ln, "").replace(qn, Hn[1] + "//"), h.type = e.method || e.type || h.method || h.type, h.dataTypes = oe.trim(h.dataType || "*").toLowerCase().match(be) || [""], null == h.crossDomain && (i = zn.exec(h.url.toLowerCase()), h.crossDomain = !(!i || i[1] === Hn[1] && i[2] === Hn[2] && (i[3] || ("http:" === i[1] ? "80" : "443")) === (Hn[3] || ("http:" === Hn[1] ? "80" : "443")))), h.data && h.processData && "string" != typeof h.data && (h.data = oe.param(h.data, h.traditional)), W(Bn, h, e, w), 2 === b) return w;
  2953.                 l = h.global, l && 0 === oe.active++ && oe.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !Wn.test(h.type), r = h.url, h.hasContent || (h.data && (r = h.url += (Pn.test(r) ? "&" : "?") + h.data, delete h.data), h.cache === !1 && (h.url = Mn.test(r) ? r.replace(Mn, "$1_=" + jn++) : r + (Pn.test(r) ? "&" : "?") + "_=" + jn++)), h.ifModified && (oe.lastModified[r] && w.setRequestHeader("If-Modified-Since", oe.lastModified[r]), oe.etag[r] && w.setRequestHeader("If-None-Match", oe.etag[r])), (h.data && h.hasContent && h.contentType !== !1 || e.contentType) && w.setRequestHeader("Content-Type", h.contentType), w.setRequestHeader("Accept", h.dataTypes[0] && h.accepts[h.dataTypes[0]] ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + Xn + "; q=0.01" : "") : h.accepts["*"]);
  2954.                 for (o in h.headers) w.setRequestHeader(o, h.headers[o]);
  2955.                 if (h.beforeSend && (h.beforeSend.call(d, w, h) === !1 || 2 === b)) return w.abort();
  2956.                 x = "abort";
  2957.                 for (o in {
  2958.                     success: 1,
  2959.                     error: 1,
  2960.                     complete: 1
  2961.                 }) w[o](h[o]);
  2962.                 if (c = W(Rn, h, e, w)) {
  2963.                     w.readyState = 1, l && f.trigger("ajaxSend", [w, h]), h.async && h.timeout > 0 && (a = setTimeout(function() {
  2964.                         w.abort("timeout")
  2965.                     }, h.timeout));
  2966.                     try {
  2967.                         b = 1, c.send(v, n)
  2968.                     } catch (C) {
  2969.                         if (!(2 > b)) throw C;
  2970.                         n(-1, C)
  2971.                     }
  2972.                 } else n(-1, "No Transport");
  2973.                 return w
  2974.             },
  2975.             getJSON: function(t, e, n) {
  2976.                 return oe.get(t, e, n, "json")
  2977.             },
  2978.             getScript: function(t, e) {
  2979.                 return oe.get(t, void 0, e, "script")
  2980.             }
  2981.         }), oe.each(["get", "post"], function(t, e) {
  2982.             oe[e] = function(t, n, i, o) {
  2983.                 return oe.isFunction(n) && (o = o || i, i = n, n = void 0), oe.ajax({
  2984.                     url: t,
  2985.                     type: e,
  2986.                     dataType: o,
  2987.                     data: n,
  2988.                     success: i
  2989.                 })
  2990.             }
  2991.         }), oe.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(t, e) {
  2992.             oe.fn[e] = function(t) {
  2993.                 return this.on(e, t)
  2994.             }
  2995.         }), oe._evalUrl = function(t) {
  2996.             return oe.ajax({
  2997.                 url: t,
  2998.                 type: "GET",
  2999.                 dataType: "script",
  3000.                 async: !1,
  3001.                 global: !1,
  3002.                 "throws": !0
  3003.             })
  3004.         }, oe.fn.extend({
  3005.             wrapAll: function(t) {
  3006.                 if (oe.isFunction(t)) return this.each(function(e) {
  3007.                     oe(this).wrapAll(t.call(this, e))
  3008.                 });
  3009.                 if (this[0]) {
  3010.                     var e = oe(t, this[0].ownerDocument).eq(0).clone(!0);
  3011.                     this[0].parentNode && e.insertBefore(this[0]), e.map(function() {
  3012.                         for (var t = this; t.firstChild && 1 === t.firstChild.nodeType;) t = t.firstChild;
  3013.                         return t
  3014.                     }).append(this)
  3015.                 }
  3016.                 return this
  3017.             },
  3018.             wrapInner: function(t) {
  3019.                 return this.each(oe.isFunction(t) ? function(e) {
  3020.                     oe(this).wrapInner(t.call(this, e))
  3021.                 } : function() {
  3022.                     var e = oe(this),
  3023.                         n = e.contents();
  3024.                     n.length ? n.wrapAll(t) : e.append(t)
  3025.                 })
  3026.             },
  3027.             wrap: function(t) {
  3028.                 var e = oe.isFunction(t);
  3029.                 return this.each(function(n) {
  3030.                     oe(this).wrapAll(e ? t.call(this, n) : t)
  3031.                 })
  3032.             },
  3033.             unwrap: function() {
  3034.                 return this.parent().each(function() {
  3035.                     oe.nodeName(this, "body") || oe(this).replaceWith(this.childNodes)
  3036.                 }).end()
  3037.             }
  3038.         }), oe.expr.filters.hidden = function(t) {
  3039.             return t.offsetWidth <= 0 && t.offsetHeight <= 0 || !ne.reliableHiddenOffsets() && "none" === (t.style && t.style.display || oe.css(t, "display"))
  3040.         }, oe.expr.filters.visible = function(t) {
  3041.             return !oe.expr.filters.hidden(t)
  3042.         };
  3043.         var Un = /%20/g,
  3044.             Yn = /\[\]$/,
  3045.             Vn = /\r?\n/g,
  3046.             Gn = /^(?:submit|button|image|reset|file)$/i,
  3047.             Jn = /^(?:input|select|textarea|keygen)/i;
  3048.         oe.param = function(t, e) {
  3049.             var n, i = [],
  3050.                 o = function(t, e) {
  3051.                     e = oe.isFunction(e) ? e() : null == e ? "" : e, i[i.length] = encodeURIComponent(t) + "=" + encodeURIComponent(e)
  3052.                 };
  3053.             if (void 0 === e && (e = oe.ajaxSettings && oe.ajaxSettings.traditional), oe.isArray(t) || t.jquery && !oe.isPlainObject(t)) oe.each(t, function() {
  3054.                 o(this.name, this.value)
  3055.             });
  3056.             else
  3057.                 for (n in t) R(n, t[n], e, o);
  3058.             return i.join("&").replace(Un, "+")
  3059.         }, oe.fn.extend({
  3060.             serialize: function() {
  3061.                 return oe.param(this.serializeArray())
  3062.             },
  3063.             serializeArray: function() {
  3064.                 return this.map(function() {
  3065.                     var t = oe.prop(this, "elements");
  3066.                     return t ? oe.makeArray(t) : this
  3067.                 }).filter(function() {
  3068.                     var t = this.type;
  3069.                     return this.name && !oe(this).is(":disabled") && Jn.test(this.nodeName) && !Gn.test(t) && (this.checked || !De.test(t))
  3070.                 }).map(function(t, e) {
  3071.                     var n = oe(this).val();
  3072.                     return null == n ? null : oe.isArray(n) ? oe.map(n, function(t) {
  3073.                         return {
  3074.                             name: e.name,
  3075.                             value: t.replace(Vn, "\r\n")
  3076.                         }
  3077.                     }) : {
  3078.                         name: e.name,
  3079.                         value: n.replace(Vn, "\r\n")
  3080.                     }
  3081.                 }).get()
  3082.             }
  3083.         }), oe.ajaxSettings.xhr = void 0 !== t.ActiveXObject ? function() {
  3084.             return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && X() || Q()
  3085.         } : X;
  3086.         var Kn = 0,
  3087.             Zn = {},
  3088.             ti = oe.ajaxSettings.xhr();
  3089.         t.ActiveXObject && oe(t).on("unload", function() {
  3090.             for (var t in Zn) Zn[t](void 0, !0)
  3091.         }), ne.cors = !!ti && "withCredentials" in ti, ti = ne.ajax = !!ti, ti && oe.ajaxTransport(function(t) {
  3092.             if (!t.crossDomain || ne.cors) {
  3093.                 var e;
  3094.                 return {
  3095.                     send: function(n, i) {
  3096.                         var o, r = t.xhr(),
  3097.                             s = ++Kn;
  3098.                         if (r.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)
  3099.                             for (o in t.xhrFields) r[o] = t.xhrFields[o];
  3100.                         t.mimeType && r.overrideMimeType && r.overrideMimeType(t.mimeType), t.crossDomain || n["X-Requested-With"] || (n["X-Requested-With"] = "XMLHttpRequest");
  3101.                         for (o in n) void 0 !== n[o] && r.setRequestHeader(o, n[o] + "");
  3102.                         r.send(t.hasContent && t.data || null), e = function(n, o) {
  3103.                             var a, l, c;
  3104.                             if (e && (o || 4 === r.readyState))
  3105.                                 if (delete Zn[s], e = void 0, r.onreadystatechange = oe.noop, o) 4 !== r.readyState && r.abort();
  3106.                                 else {
  3107.                                     c = {}, a = r.status, "string" == typeof r.responseText && (c.text = r.responseText);
  3108.                                     try {
  3109.                                         l = r.statusText
  3110.                                     } catch (u) {
  3111.                                         l = ""
  3112.                                     }
  3113.                                     a || !t.isLocal || t.crossDomain ? 1223 === a && (a = 204) : a = c.text ? 200 : 404
  3114.                                 }
  3115.                             c && i(a, l, c, r.getAllResponseHeaders())
  3116.                         }, t.async ? 4 === r.readyState ? setTimeout(e) : r.onreadystatechange = Zn[s] = e : e()
  3117.                     },
  3118.                     abort: function() {
  3119.                         e && e(void 0, !0)
  3120.                     }
  3121.                 }
  3122.             }
  3123.         }), oe.ajaxSetup({
  3124.             accepts: {
  3125.                 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
  3126.             },
  3127.             contents: {
  3128.                 script: /(?:java|ecma)script/
  3129.             },
  3130.             converters: {
  3131.                 "text script": function(t) {
  3132.                     return oe.globalEval(t), t
  3133.                 }
  3134.             }
  3135.         }), oe.ajaxPrefilter("script", function(t) {
  3136.             void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = "GET", t.global = !1)
  3137.         }), oe.ajaxTransport("script", function(t) {
  3138.             if (t.crossDomain) {
  3139.                 var e, n = pe.head || oe("head")[0] || pe.documentElement;
  3140.                 return {
  3141.                     send: function(i, o) {
  3142.                         e = pe.createElement("script"), e.async = !0, t.scriptCharset && (e.charset = t.scriptCharset), e.src = t.url, e.onload = e.onreadystatechange = function(t, n) {
  3143.                             (n || !e.readyState || /loaded|complete/.test(e.readyState)) && (e.onload = e.onreadystatechange = null, e.parentNode && e.parentNode.removeChild(e), e = null, n || o(200, "success"))
  3144.                         }, n.insertBefore(e, n.firstChild)
  3145.                     },
  3146.                     abort: function() {
  3147.                         e && e.onload(void 0, !0)
  3148.                     }
  3149.                 }
  3150.             }
  3151.         });
  3152.         var ei = [],
  3153.             ni = /(=)\?(?=&|$)|\?\?/;
  3154.         oe.ajaxSetup({
  3155.             jsonp: "callback",
  3156.             jsonpCallback: function() {
  3157.                 var t = ei.pop() || oe.expando + "_" + jn++;
  3158.                 return this[t] = !0, t
  3159.             }
  3160.         }), oe.ajaxPrefilter("json jsonp", function(e, n, i) {
  3161.             var o, r, s, a = e.jsonp !== !1 && (ni.test(e.url) ? "url" : "string" == typeof e.data && !(e.contentType || "").indexOf("application/x-www-form-urlencoded") && ni.test(e.data) && "data");
  3162.             return a || "jsonp" === e.dataTypes[0] ? (o = e.jsonpCallback = oe.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(ni, "$1" + o) : e.jsonp !== !1 && (e.url += (Pn.test(e.url) ? "&" : "?") + e.jsonp + "=" + o), e.converters["script json"] = function() {
  3163.                 return s || oe.error(o + " was not called"), s[0]
  3164.             }, e.dataTypes[0] = "json", r = t[o], t[o] = function() {
  3165.                 s = arguments
  3166.             }, i.always(function() {
  3167.                 t[o] = r, e[o] && (e.jsonpCallback = n.jsonpCallback, ei.push(o)), s && oe.isFunction(r) && r(s[0]), s = r = void 0
  3168.             }), "script") : void 0
  3169.         }), oe.parseHTML = function(t, e, n) {
  3170.             if (!t || "string" != typeof t) return null;
  3171.             "boolean" == typeof e && (n = e, e = !1), e = e || pe;
  3172.             var i = he.exec(t),
  3173.                 o = !n && [];
  3174.             return i ? [e.createElement(i[1])] : (i = oe.buildFragment([t], e, o), o && o.length && oe(o).remove(), oe.merge([], i.childNodes))
  3175.         };
  3176.         var ii = oe.fn.load;
  3177.         oe.fn.load = function(t, e, n) {
  3178.             if ("string" != typeof t && ii) return ii.apply(this, arguments);
  3179.             var i, o, r, s = this,
  3180.                 a = t.indexOf(" ");
  3181.             return a >= 0 && (i = oe.trim(t.slice(a, t.length)), t = t.slice(0, a)), oe.isFunction(e) ? (n = e, e = void 0) : e && "object" == typeof e && (r = "POST"), s.length > 0 && oe.ajax({
  3182.                 url: t,
  3183.                 type: r,
  3184.                 dataType: "html",
  3185.                 data: e
  3186.             }).done(function(t) {
  3187.                 o = arguments, s.html(i ? oe("<div>").append(oe.parseHTML(t)).find(i) : t)
  3188.             }).complete(n && function(t, e) {
  3189.                 s.each(n, o || [t.responseText, e, t])
  3190.             }), this
  3191.         }, oe.expr.filters.animated = function(t) {
  3192.             return oe.grep(oe.timers, function(e) {
  3193.                 return t === e.elem
  3194.             }).length
  3195.         };
  3196.         var oi = t.document.documentElement;
  3197.         oe.offset = {
  3198.             setOffset: function(t, e, n) {
  3199.                 var i, o, r, s, a, l, c, u = oe.css(t, "position"),
  3200.                     h = oe(t),
  3201.                     d = {};
  3202.                 "static" === u && (t.style.position = "relative"), a = h.offset(), r = oe.css(t, "top"), l = oe.css(t, "left"), c = ("absolute" === u || "fixed" === u) && oe.inArray("auto", [r, l]) > -1, c ? (i = h.position(), s = i.top, o = i.left) : (s = parseFloat(r) || 0, o = parseFloat(l) || 0), oe.isFunction(e) && (e = e.call(t, n, a)), null != e.top && (d.top = e.top - a.top + s), null != e.left && (d.left = e.left - a.left + o), "using" in e ? e.using.call(t, d) : h.css(d)
  3203.             }
  3204.         }, oe.fn.extend({
  3205.             offset: function(t) {
  3206.                 if (arguments.length) return void 0 === t ? this : this.each(function(e) {
  3207.                     oe.offset.setOffset(this, t, e)
  3208.                 });
  3209.                 var e, n, i = {
  3210.                         top: 0,
  3211.                         left: 0
  3212.                     },
  3213.                     o = this[0],
  3214.                     r = o && o.ownerDocument;
  3215.                 if (r) return e = r.documentElement, oe.contains(e, o) ? (typeof o.getBoundingClientRect !== ke && (i = o.getBoundingClientRect()), n = U(r), {
  3216.                     top: i.top + (n.pageYOffset || e.scrollTop) - (e.clientTop || 0),
  3217.                     left: i.left + (n.pageXOffset || e.scrollLeft) - (e.clientLeft || 0)
  3218.                 }) : i
  3219.             },
  3220.             position: function() {
  3221.                 if (this[0]) {
  3222.                     var t, e, n = {
  3223.                             top: 0,
  3224.                             left: 0
  3225.                         },
  3226.                         i = this[0];
  3227.                     return "fixed" === oe.css(i, "position") ? e = i.getBoundingClientRect() : (t = this.offsetParent(), e = this.offset(), oe.nodeName(t[0], "html") || (n = t.offset()), n.top += oe.css(t[0], "borderTopWidth", !0), n.left += oe.css(t[0], "borderLeftWidth", !0)), {
  3228.                         top: e.top - n.top - oe.css(i, "marginTop", !0),
  3229.                         left: e.left - n.left - oe.css(i, "marginLeft", !0)
  3230.                     }
  3231.                 }
  3232.             },
  3233.             offsetParent: function() {
  3234.                 return this.map(function() {
  3235.                     for (var t = this.offsetParent || oi; t && !oe.nodeName(t, "html") && "static" === oe.css(t, "position");) t = t.offsetParent;
  3236.                     return t || oi
  3237.                 })
  3238.             }
  3239.         }), oe.each({
  3240.             scrollLeft: "pageXOffset",
  3241.             scrollTop: "pageYOffset"
  3242.         }, function(t, e) {
  3243.             var n = /Y/.test(e);
  3244.             oe.fn[t] = function(i) {
  3245.                 return Ne(this, function(t, i, o) {
  3246.                     var r = U(t);
  3247.                     return void 0 === o ? r ? e in r ? r[e] : r.document.documentElement[i] : t[i] : void(r ? r.scrollTo(n ? oe(r).scrollLeft() : o, n ? o : oe(r).scrollTop()) : t[i] = o)
  3248.                 }, t, i, arguments.length, null)
  3249.             }
  3250.         }), oe.each(["top", "left"], function(t, e) {
  3251.             oe.cssHooks[e] = $(ne.pixelPosition, function(t, n) {
  3252.                 return n ? (n = en(t, e), on.test(n) ? oe(t).position()[e] + "px" : n) : void 0
  3253.             })
  3254.         }), oe.each({
  3255.             Height: "height",
  3256.             Width: "width"
  3257.         }, function(t, e) {
  3258.             oe.each({
  3259.                 padding: "inner" + t,
  3260.                 content: e,
  3261.                 "": "outer" + t
  3262.             }, function(n, i) {
  3263.                 oe.fn[i] = function(i, o) {
  3264.                     var r = arguments.length && (n || "boolean" != typeof i),
  3265.                         s = n || (i === !0 || o === !0 ? "margin" : "border");
  3266.                     return Ne(this, function(e, n, i) {
  3267.                         var o;
  3268.                         return oe.isWindow(e) ? e.document.documentElement["client" + t] : 9 === e.nodeType ? (o = e.documentElement, Math.max(e.body["scroll" + t], o["scroll" + t], e.body["offset" + t], o["offset" + t], o["client" + t])) : void 0 === i ? oe.css(e, n, s) : oe.style(e, n, i, s)
  3269.                     }, e, r ? i : void 0, r, null)
  3270.                 }
  3271.             })
  3272.         }), oe.fn.size = function() {
  3273.             return this.length
  3274.         }, oe.fn.andSelf = oe.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
  3275.             return oe
  3276.         });
  3277.         var ri = t.jQuery,
  3278.             si = t.$;
  3279.         return oe.noConflict = function(e) {
  3280.             return t.$ === oe && (t.$ = si), e && t.jQuery === oe && (t.jQuery = ri), oe
  3281.         }, typeof e === ke && (t.jQuery = t.$ = oe), oe
  3282.     }),
  3283.     function(t, e) {
  3284.         t.rails !== e && t.error("jquery-ujs has already been loaded!");
  3285.         var n, i = t(document);
  3286.         t.rails = n = {
  3287.             linkClickSelector: "a[data-confirm], a[data-method], a[data-remote], a[data-disable-with], a[data-disable]",
  3288.             buttonClickSelector: "button[data-remote]:not(form button), button[data-confirm]:not(form button)",
  3289.             inputChangeSelector: "select[data-remote], input[data-remote], textarea[data-remote]",
  3290.             formSubmitSelector: "form",
  3291.             formInputClickSelector: "form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])",
  3292.             disableSelector: "input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled",
  3293.             enableSelector: "input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled",
  3294.             requiredInputSelector: "input[name][required]:not([disabled]),textarea[name][required]:not([disabled])",
  3295.             fileInputSelector: "input[type=file]",
  3296.             linkDisableSelector: "a[data-disable-with], a[data-disable]",
  3297.             buttonDisableSelector: "button[data-remote][data-disable-with], button[data-remote][data-disable]",
  3298.             CSRFProtection: function(e) {
  3299.                 var n = t('meta[name="csrf-token"]').attr("content");
  3300.                 n && e.setRequestHeader("X-CSRF-Token", n)
  3301.             },
  3302.             refreshCSRFTokens: function() {
  3303.                 var e = t("meta[name=csrf-token]").attr("content"),
  3304.                     n = t("meta[name=csrf-param]").attr("content");
  3305.                 t('form input[name="' + n + '"]').val(e)
  3306.             },
  3307.             fire: function(e, n, i) {
  3308.                 var o = t.Event(n);
  3309.                 return e.trigger(o, i), o.result !== !1
  3310.             },
  3311.             confirm: function(t) {
  3312.                 return confirm(t)
  3313.             },
  3314.             ajax: function(e) {
  3315.                 return t.ajax(e)
  3316.             },
  3317.             href: function(t) {
  3318.                 return t.attr("href")
  3319.             },
  3320.             handleRemote: function(i) {
  3321.                 var o, r, s, a, l, c, u, h;
  3322.                 if (n.fire(i, "ajax:before")) {
  3323.                     if (a = i.data("cross-domain"), l = a === e ? null : a, c = i.data("with-credentials") || null, u = i.data("type") || t.ajaxSettings && t.ajaxSettings.dataType, i.is("form")) {
  3324.                         o = i.attr("method"), r = i.attr("action"), s = i.serializeArray();
  3325.                         var d = i.data("ujs:submit-button");
  3326.                         d && (s.push(d), i.data("ujs:submit-button", null))
  3327.                     } else i.is(n.inputChangeSelector) ? (o = i.data("method"), r = i.data("url"), s = i.serialize(), i.data("params") && (s = s + "&" + i.data("params"))) : i.is(n.buttonClickSelector) ? (o = i.data("method") || "get", r = i.data("url"), s = i.serialize(), i.data("params") && (s = s + "&" + i.data("params"))) : (o = i.data("method"), r = n.href(i), s = i.data("params") || null);
  3328.                     return h = {
  3329.                         type: o || "GET",
  3330.                         data: s,
  3331.                         dataType: u,
  3332.                         beforeSend: function(t, o) {
  3333.                             return o.dataType === e && t.setRequestHeader("accept", "*/*;q=0.5, " + o.accepts.script), n.fire(i, "ajax:beforeSend", [t, o]) ? void i.trigger("ajax:send", t) : !1
  3334.                         },
  3335.                         success: function(t, e, n) {
  3336.                             i.trigger("ajax:success", [t, e, n])
  3337.                         },
  3338.                         complete: function(t, e) {
  3339.                             i.trigger("ajax:complete", [t, e])
  3340.                         },
  3341.                         error: function(t, e, n) {
  3342.                             i.trigger("ajax:error", [t, e, n])
  3343.                         },
  3344.                         crossDomain: l
  3345.                     }, c && (h.xhrFields = {
  3346.                         withCredentials: c
  3347.                     }), r && (h.url = r), n.ajax(h)
  3348.                 }
  3349.                 return !1
  3350.             },
  3351.             handleMethod: function(i) {
  3352.                 var o = n.href(i),
  3353.                     r = i.data("method"),
  3354.                     s = i.attr("target"),
  3355.                     a = t("meta[name=csrf-token]").attr("content"),
  3356.                     l = t("meta[name=csrf-param]").attr("content"),
  3357.                     c = t('<form method="post" action="' + o + '"></form>'),
  3358.                     u = '<input name="_method" value="' + r + '" type="hidden" />';
  3359.                 l !== e && a !== e && (u += '<input name="' + l + '" value="' + a + '" type="hidden" />'), s && c.attr("target", s), c.hide().append(u).appendTo("body"), c.submit()
  3360.             },
  3361.             formElements: function(e, n) {
  3362.                 return e.is("form") ? t(e[0].elements).filter(n) : e.find(n)
  3363.             },
  3364.             disableFormElements: function(e) {
  3365.                 n.formElements(e, n.disableSelector).each(function() {
  3366.                     n.disableFormElement(t(this))
  3367.                 })
  3368.             },
  3369.             disableFormElement: function(t) {
  3370.                 var n, i;
  3371.                 n = t.is("button") ? "html" : "val", i = t.data("disable-with"), t.data("ujs:enable-with", t[n]()), i !== e && t[n](i), t.prop("disabled", !0)
  3372.             },
  3373.             enableFormElements: function(e) {
  3374.                 n.formElements(e, n.enableSelector).each(function() {
  3375.                     n.enableFormElement(t(this))
  3376.                 })
  3377.             },
  3378.             enableFormElement: function(t) {
  3379.                 var e = t.is("button") ? "html" : "val";
  3380.                 t.data("ujs:enable-with") && t[e](t.data("ujs:enable-with")), t.prop("disabled", !1)
  3381.             },
  3382.             allowAction: function(t) {
  3383.                 var e, i = t.data("confirm"),
  3384.                     o = !1;
  3385.                 return i ? (n.fire(t, "confirm") && (o = n.confirm(i), e = n.fire(t, "confirm:complete", [o])), o && e) : !0
  3386.             },
  3387.             blankInputs: function(e, n, i) {
  3388.                 var o, r, s = t(),
  3389.                     a = n || "input,textarea",
  3390.                     l = e.find(a);
  3391.                 return l.each(function() {
  3392.                     if (o = t(this), r = o.is("input[type=checkbox],input[type=radio]") ? o.is(":checked") : o.val(), !r == !i) {
  3393.                         if (o.is("input[type=radio]") && l.filter('input[type=radio]:checked[name="' + o.attr("name") + '"]').length) return !0;
  3394.                         s = s.add(o)
  3395.                     }
  3396.                 }), s.length ? s : !1
  3397.             },
  3398.             nonBlankInputs: function(t, e) {
  3399.                 return n.blankInputs(t, e, !0)
  3400.             },
  3401.             stopEverything: function(e) {
  3402.                 return t(e.target).trigger("ujs:everythingStopped"), e.stopImmediatePropagation(), !1
  3403.             },
  3404.             disableElement: function(t) {
  3405.                 var i = t.data("disable-with");
  3406.                 t.data("ujs:enable-with", t.html()), i !== e && t.html(i), t.bind("click.railsDisable", function(t) {
  3407.                     return n.stopEverything(t)
  3408.                 })
  3409.             },
  3410.             enableElement: function(t) {
  3411.                 t.data("ujs:enable-with") !== e && (t.html(t.data("ujs:enable-with")), t.removeData("ujs:enable-with")), t.unbind("click.railsDisable")
  3412.             }
  3413.         }, n.fire(i, "rails:attachBindings") && (t.ajaxPrefilter(function(t, e, i) {
  3414.             t.crossDomain || n.CSRFProtection(i)
  3415.         }), i.delegate(n.linkDisableSelector, "ajax:complete", function() {
  3416.             n.enableElement(t(this))
  3417.         }), i.delegate(n.buttonDisableSelector, "ajax:complete", function() {
  3418.             n.enableFormElement(t(this))
  3419.         }), i.delegate(n.linkClickSelector, "click.rails", function(i) {
  3420.             var o = t(this),
  3421.                 r = o.data("method"),
  3422.                 s = o.data("params"),
  3423.                 a = i.metaKey || i.ctrlKey;
  3424.             if (!n.allowAction(o)) return n.stopEverything(i);
  3425.             if (!a && o.is(n.linkDisableSelector) && n.disableElement(o), o.data("remote") !== e) {
  3426.                 if (a && (!r || "GET" === r) && !s) return !0;
  3427.                 var l = n.handleRemote(o);
  3428.                 return l === !1 ? n.enableElement(o) : l.error(function() {
  3429.                     n.enableElement(o)
  3430.                 }), !1
  3431.             }
  3432.             return o.data("method") ? (n.handleMethod(o), !1) : void 0
  3433.         }), i.delegate(n.buttonClickSelector, "click.rails", function(e) {
  3434.             var i = t(this);
  3435.             if (!n.allowAction(i)) return n.stopEverything(e);
  3436.             i.is(n.buttonDisableSelector) && n.disableFormElement(i);
  3437.             var o = n.handleRemote(i);
  3438.             return o === !1 ? n.enableFormElement(i) : o.error(function() {
  3439.                 n.enableFormElement(i)
  3440.             }), !1
  3441.         }), i.delegate(n.inputChangeSelector, "change.rails", function(e) {
  3442.             var i = t(this);
  3443.             return n.allowAction(i) ? (n.handleRemote(i), !1) : n.stopEverything(e)
  3444.         }), i.delegate(n.formSubmitSelector, "submit.rails", function(i) {
  3445.             var o, r, s = t(this),
  3446.                 a = s.data("remote") !== e;
  3447.             if (!n.allowAction(s)) return n.stopEverything(i);
  3448.             if (s.attr("novalidate") == e && (o = n.blankInputs(s, n.requiredInputSelector), o && n.fire(s, "ajax:aborted:required", [o]))) return n.stopEverything(i);
  3449.             if (a) {
  3450.                 if (r = n.nonBlankInputs(s, n.fileInputSelector)) {
  3451.                     setTimeout(function() {
  3452.                         n.disableFormElements(s)
  3453.                     }, 13);
  3454.                     var l = n.fire(s, "ajax:aborted:file", [r]);
  3455.                     return l || setTimeout(function() {
  3456.                         n.enableFormElements(s)
  3457.                     }, 13), l
  3458.                 }
  3459.                 return n.handleRemote(s), !1
  3460.             }
  3461.             setTimeout(function() {
  3462.                 n.disableFormElements(s)
  3463.             }, 13)
  3464.         }), i.delegate(n.formInputClickSelector, "click.rails", function(e) {
  3465.             var i = t(this);
  3466.             if (!n.allowAction(i)) return n.stopEverything(e);
  3467.             var o = i.attr("name"),
  3468.                 r = o ? {
  3469.                     name: o,
  3470.                     value: i.val()
  3471.                 } : null;
  3472.             i.closest("form").data("ujs:submit-button", r)
  3473.         }), i.delegate(n.formSubmitSelector, "ajax:send.rails", function(e) {
  3474.             this == e.target && n.disableFormElements(t(this))
  3475.         }), i.delegate(n.formSubmitSelector, "ajax:complete.rails", function(e) {
  3476.             this == e.target && n.enableFormElements(t(this))
  3477.         }), t(function() {
  3478.             n.refreshCSRFTokens()
  3479.         }))
  3480.     }(jQuery),
  3481.     function(t) {
  3482.         "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
  3483.     }(function(t) {
  3484.         function e(e, i) {
  3485.             var o, r, s, a = e.nodeName.toLowerCase();
  3486.             return "area" === a ? (o = e.parentNode, r = o.name, e.href && r && "map" === o.nodeName.toLowerCase() ? (s = t("img[usemap=#" + r + "]")[0], !!s && n(s)) : !1) : (/input|select|textarea|button|object/.test(a) ? !e.disabled : "a" === a ? e.href || i : i) && n(e)
  3487.         }
  3488.  
  3489.         function n(e) {
  3490.             return t.expr.filters.visible(e) && !t(e).parents().addBack().filter(function() {
  3491.                 return "hidden" === t.css(this, "visibility")
  3492.             }).length
  3493.         }
  3494.         t.ui = t.ui || {}, t.extend(t.ui, {
  3495.             version: "1.11.0",
  3496.             keyCode: {
  3497.                 BACKSPACE: 8,
  3498.                 COMMA: 188,
  3499.                 DELETE: 46,
  3500.                 DOWN: 40,
  3501.                 END: 35,
  3502.                 ENTER: 13,
  3503.                 ESCAPE: 27,
  3504.                 HOME: 36,
  3505.                 LEFT: 37,
  3506.                 PAGE_DOWN: 34,
  3507.                 PAGE_UP: 33,
  3508.                 PERIOD: 190,
  3509.                 RIGHT: 39,
  3510.                 SPACE: 32,
  3511.                 TAB: 9,
  3512.                 UP: 38
  3513.             }
  3514.         }), t.fn.extend({
  3515.             scrollParent: function() {
  3516.                 var e = this.css("position"),
  3517.                     n = "absolute" === e,
  3518.                     i = this.parents().filter(function() {
  3519.                         var e = t(this);
  3520.                         return n && "static" === e.css("position") ? !1 : /(auto|scroll)/.test(e.css("overflow") + e.css("overflow-y") + e.css("overflow-x"))
  3521.                     }).eq(0);
  3522.                 return "fixed" !== e && i.length ? i : t(this[0].ownerDocument || document)
  3523.             },
  3524.             uniqueId: function() {
  3525.                 var t = 0;
  3526.                 return function() {
  3527.                     return this.each(function() {
  3528.                         this.id || (this.id = "ui-id-" + ++t)
  3529.                     })
  3530.                 }
  3531.             }(),
  3532.             removeUniqueId: function() {
  3533.                 return this.each(function() {
  3534.                     /^ui-id-\d+$/.test(this.id) && t(this).removeAttr("id")
  3535.                 })
  3536.             }
  3537.         }), t.extend(t.expr[":"], {
  3538.             data: t.expr.createPseudo ? t.expr.createPseudo(function(e) {
  3539.                 return function(n) {
  3540.                     return !!t.data(n, e)
  3541.                 }
  3542.             }) : function(e, n, i) {
  3543.                 return !!t.data(e, i[3])
  3544.             },
  3545.             focusable: function(n) {
  3546.                 return e(n, !isNaN(t.attr(n, "tabindex")))
  3547.             },
  3548.             tabbable: function(n) {
  3549.                 var i = t.attr(n, "tabindex"),
  3550.                     o = isNaN(i);
  3551.                 return (o || i >= 0) && e(n, !o)
  3552.             }
  3553.         }), t("<a>").outerWidth(1).jquery || t.each(["Width", "Height"], function(e, n) {
  3554.             function i(e, n, i, r) {
  3555.                 return t.each(o, function() {
  3556.                     n -= parseFloat(t.css(e, "padding" + this)) || 0, i && (n -= parseFloat(t.css(e, "border" + this + "Width")) || 0), r && (n -= parseFloat(t.css(e, "margin" + this)) || 0)
  3557.                 }), n
  3558.             }
  3559.             var o = "Width" === n ? ["Left", "Right"] : ["Top", "Bottom"],
  3560.                 r = n.toLowerCase(),
  3561.                 s = {
  3562.                     innerWidth: t.fn.innerWidth,
  3563.                     innerHeight: t.fn.innerHeight,
  3564.                     outerWidth: t.fn.outerWidth,
  3565.                     outerHeight: t.fn.outerHeight
  3566.                 };
  3567.             t.fn["inner" + n] = function(e) {
  3568.                 return void 0 === e ? s["inner" + n].call(this) : this.each(function() {
  3569.                     t(this).css(r, i(this, e) + "px")
  3570.                 })
  3571.             }, t.fn["outer" + n] = function(e, o) {
  3572.                 return "number" != typeof e ? s["outer" + n].call(this, e) : this.each(function() {
  3573.                     t(this).css(r, i(this, e, !0, o) + "px")
  3574.                 })
  3575.             }
  3576.         }), t.fn.addBack || (t.fn.addBack = function(t) {
  3577.             return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
  3578.         }), t("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (t.fn.removeData = function(e) {
  3579.             return function(n) {
  3580.                 return arguments.length ? e.call(this, t.camelCase(n)) : e.call(this)
  3581.             }
  3582.         }(t.fn.removeData)), t.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), t.fn.extend({
  3583.             focus: function(e) {
  3584.                 return function(n, i) {
  3585.                     return "number" == typeof n ? this.each(function() {
  3586.                         var e = this;
  3587.                         setTimeout(function() {
  3588.                             t(e).focus(), i && i.call(e)
  3589.                         }, n)
  3590.                     }) : e.apply(this, arguments)
  3591.                 }
  3592.             }(t.fn.focus),
  3593.             disableSelection: function() {
  3594.                 var t = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown";
  3595.                 return function() {
  3596.                     return this.bind(t + ".ui-disableSelection", function(t) {
  3597.                         t.preventDefault()
  3598.                     })
  3599.                 }
  3600.             }(),
  3601.             enableSelection: function() {
  3602.                 return this.unbind(".ui-disableSelection")
  3603.             },
  3604.             zIndex: function(e) {
  3605.                 if (void 0 !== e) return this.css("zIndex", e);
  3606.                 if (this.length)
  3607.                     for (var n, i, o = t(this[0]); o.length && o[0] !== document;) {
  3608.                         if (n = o.css("position"), ("absolute" === n || "relative" === n || "fixed" === n) && (i = parseInt(o.css("zIndex"), 10), !isNaN(i) && 0 !== i)) return i;
  3609.                         o = o.parent()
  3610.                     }
  3611.                 return 0
  3612.             }
  3613.         }), t.ui.plugin = {
  3614.             add: function(e, n, i) {
  3615.                 var o, r = t.ui[e].prototype;
  3616.                 for (o in i) r.plugins[o] = r.plugins[o] || [], r.plugins[o].push([n, i[o]])
  3617.             },
  3618.             call: function(t, e, n, i) {
  3619.                 var o, r = t.plugins[e];
  3620.                 if (r && (i || t.element[0].parentNode && 11 !== t.element[0].parentNode.nodeType))
  3621.                     for (o = 0; o < r.length; o++) t.options[r[o][0]] && r[o][1].apply(t.element, n)
  3622.             }
  3623.         }
  3624.     }),
  3625.     function(t) {
  3626.         "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
  3627.     }(function(t) {
  3628.         var e = 0,
  3629.             n = Array.prototype.slice;
  3630.         return t.cleanData = function(e) {
  3631.             return function(n) {
  3632.                 for (var i, o = 0; null != (i = n[o]); o++) try {
  3633.                     t(i).triggerHandler("remove")
  3634.                 } catch (r) {}
  3635.                 e(n)
  3636.             }
  3637.         }(t.cleanData), t.widget = function(e, n, i) {
  3638.             var o, r, s, a, l = {},
  3639.                 c = e.split(".")[0];
  3640.             return e = e.split(".")[1], o = c + "-" + e, i || (i = n, n = t.Widget), t.expr[":"][o.toLowerCase()] = function(e) {
  3641.                 return !!t.data(e, o)
  3642.             }, t[c] = t[c] || {}, r = t[c][e], s = t[c][e] = function(t, e) {
  3643.                 return this._createWidget ? void(arguments.length && this._createWidget(t, e)) : new s(t, e)
  3644.             }, t.extend(s, r, {
  3645.                 version: i.version,
  3646.                 _proto: t.extend({}, i),
  3647.                 _childConstructors: []
  3648.             }), a = new n, a.options = t.widget.extend({}, a.options), t.each(i, function(e, i) {
  3649.                 return t.isFunction(i) ? void(l[e] = function() {
  3650.                     var t = function() {
  3651.                             return n.prototype[e].apply(this, arguments)
  3652.                         },
  3653.                         o = function(t) {
  3654.                             return n.prototype[e].apply(this, t)
  3655.                         };
  3656.                     return function() {
  3657.                         var e, n = this._super,
  3658.                             r = this._superApply;
  3659.                         return this._super = t, this._superApply = o, e = i.apply(this, arguments), this._super = n, this._superApply = r, e
  3660.                     }
  3661.                 }()) : void(l[e] = i)
  3662.             }), s.prototype = t.widget.extend(a, {
  3663.                 widgetEventPrefix: r ? a.widgetEventPrefix || e : e
  3664.             }, l, {
  3665.                 constructor: s,
  3666.                 namespace: c,
  3667.                 widgetName: e,
  3668.                 widgetFullName: o
  3669.             }), r ? (t.each(r._childConstructors, function(e, n) {
  3670.                 var i = n.prototype;
  3671.                 t.widget(i.namespace + "." + i.widgetName, s, n._proto)
  3672.             }), delete r._childConstructors) : n._childConstructors.push(s), t.widget.bridge(e, s), s
  3673.         }, t.widget.extend = function(e) {
  3674.             for (var i, o, r = n.call(arguments, 1), s = 0, a = r.length; a > s; s++)
  3675.                 for (i in r[s]) o = r[s][i], r[s].hasOwnProperty(i) && void 0 !== o && (e[i] = t.isPlainObject(o) ? t.isPlainObject(e[i]) ? t.widget.extend({}, e[i], o) : t.widget.extend({}, o) : o);
  3676.             return e
  3677.         }, t.widget.bridge = function(e, i) {
  3678.             var o = i.prototype.widgetFullName || e;
  3679.             t.fn[e] = function(r) {
  3680.                 var s = "string" == typeof r,
  3681.                     a = n.call(arguments, 1),
  3682.                     l = this;
  3683.                 return r = !s && a.length ? t.widget.extend.apply(null, [r].concat(a)) : r, this.each(s ? function() {
  3684.                     var n, i = t.data(this, o);
  3685.                     return "instance" === r ? (l = i, !1) : i ? t.isFunction(i[r]) && "_" !== r.charAt(0) ? (n = i[r].apply(i, a), n !== i && void 0 !== n ? (l = n && n.jquery ? l.pushStack(n.get()) : n, !1) : void 0) : t.error("no such method '" + r + "' for " + e + " widget instance") : t.error("cannot call methods on " + e + " prior to initialization; attempted to call method '" + r + "'")
  3686.                 } : function() {
  3687.                     var e = t.data(this, o);
  3688.                     e ? (e.option(r || {}), e._init && e._init()) : t.data(this, o, new i(r, this))
  3689.                 }), l
  3690.             }
  3691.         }, t.Widget = function() {}, t.Widget._childConstructors = [], t.Widget.prototype = {
  3692.             widgetName: "widget",
  3693.             widgetEventPrefix: "",
  3694.             defaultElement: "<div>",
  3695.             options: {
  3696.                 disabled: !1,
  3697.                 create: null
  3698.             },
  3699.             _createWidget: function(n, i) {
  3700.                 i = t(i || this.defaultElement || this)[0], this.element = t(i), this.uuid = e++, this.eventNamespace = "." + this.widgetName + this.uuid, this.options = t.widget.extend({}, this.options, this._getCreateOptions(), n), this.bindings = t(), this.hoverable = t(), this.focusable = t(), i !== this && (t.data(i, this.widgetFullName, this), this._on(!0, this.element, {
  3701.                     remove: function(t) {
  3702.                         t.target === i && this.destroy()
  3703.                     }
  3704.                 }), this.document = t(i.style ? i.ownerDocument : i.document || i), this.window = t(this.document[0].defaultView || this.document[0].parentWindow)), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init()
  3705.             },
  3706.             _getCreateOptions: t.noop,
  3707.             _getCreateEventData: t.noop,
  3708.             _create: t.noop,
  3709.             _init: t.noop,
  3710.             destroy: function() {
  3711.                 this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")
  3712.             },
  3713.             _destroy: t.noop,
  3714.             widget: function() {
  3715.                 return this.element
  3716.             },
  3717.             option: function(e, n) {
  3718.                 var i, o, r, s = e;
  3719.                 if (0 === arguments.length) return t.widget.extend({}, this.options);
  3720.                 if ("string" == typeof e)
  3721.                     if (s = {}, i = e.split("."), e = i.shift(), i.length) {
  3722.                         for (o = s[e] = t.widget.extend({}, this.options[e]), r = 0; r < i.length - 1; r++) o[i[r]] = o[i[r]] || {}, o = o[i[r]];
  3723.                         if (e = i.pop(), 1 === arguments.length) return void 0 === o[e] ? null : o[e];
  3724.                         o[e] = n
  3725.                     } else {
  3726.                         if (1 === arguments.length) return void 0 === this.options[e] ? null : this.options[e];
  3727.                         s[e] = n
  3728.                     }
  3729.                 return this._setOptions(s), this
  3730.             },
  3731.             _setOptions: function(t) {
  3732.                 var e;
  3733.                 for (e in t) this._setOption(e, t[e]);
  3734.                 return this
  3735.             },
  3736.             _setOption: function(t, e) {
  3737.                 return this.options[t] = e, "disabled" === t && (this.widget().toggleClass(this.widgetFullName + "-disabled", !!e), e && (this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus"))), this
  3738.             },
  3739.             enable: function() {
  3740.                 return this._setOptions({
  3741.                     disabled: !1
  3742.                 })
  3743.             },
  3744.             disable: function() {
  3745.                 return this._setOptions({
  3746.                     disabled: !0
  3747.                 })
  3748.             },
  3749.             _on: function(e, n, i) {
  3750.                 var o, r = this;
  3751.                 "boolean" != typeof e && (i = n, n = e, e = !1), i ? (n = o = t(n), this.bindings = this.bindings.add(n)) : (i = n, n = this.element, o = this.widget()), t.each(i, function(i, s) {
  3752.                     function a() {
  3753.                         return e || r.options.disabled !== !0 && !t(this).hasClass("ui-state-disabled") ? ("string" == typeof s ? r[s] : s).apply(r, arguments) : void 0
  3754.                     }
  3755.                     "string" != typeof s && (a.guid = s.guid = s.guid || a.guid || t.guid++);
  3756.                     var l = i.match(/^([\w:-]*)\s*(.*)$/),
  3757.                         c = l[1] + r.eventNamespace,
  3758.                         u = l[2];
  3759.                     u ? o.delegate(u, c, a) : n.bind(c, a)
  3760.                 })
  3761.             },
  3762.             _off: function(t, e) {
  3763.                 e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.unbind(e).undelegate(e)
  3764.             },
  3765.             _delay: function(t, e) {
  3766.                 function n() {
  3767.                     return ("string" == typeof t ? i[t] : t).apply(i, arguments)
  3768.                 }
  3769.                 var i = this;
  3770.                 return setTimeout(n, e || 0)
  3771.             },
  3772.             _hoverable: function(e) {
  3773.                 this.hoverable = this.hoverable.add(e), this._on(e, {
  3774.                     mouseenter: function(e) {
  3775.                         t(e.currentTarget).addClass("ui-state-hover")
  3776.                     },
  3777.                     mouseleave: function(e) {
  3778.                         t(e.currentTarget).removeClass("ui-state-hover")
  3779.                     }
  3780.                 })
  3781.             },
  3782.             _focusable: function(e) {
  3783.                 this.focusable = this.focusable.add(e), this._on(e, {
  3784.                     focusin: function(e) {
  3785.                         t(e.currentTarget).addClass("ui-state-focus")
  3786.                     },
  3787.                     focusout: function(e) {
  3788.                         t(e.currentTarget).removeClass("ui-state-focus")
  3789.                     }
  3790.                 })
  3791.             },
  3792.             _trigger: function(e, n, i) {
  3793.                 var o, r, s = this.options[e];
  3794.                 if (i = i || {}, n = t.Event(n), n.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(), n.target = this.element[0], r = n.originalEvent)
  3795.                     for (o in r) o in n || (n[o] = r[o]);
  3796.                 return this.element.trigger(n, i), !(t.isFunction(s) && s.apply(this.element[0], [n].concat(i)) === !1 || n.isDefaultPrevented())
  3797.             }
  3798.         }, t.each({
  3799.             show: "fadeIn",
  3800.             hide: "fadeOut"
  3801.         }, function(e, n) {
  3802.             t.Widget.prototype["_" + e] = function(i, o, r) {
  3803.                 "string" == typeof o && (o = {
  3804.                     effect: o
  3805.                 });
  3806.                 var s, a = o ? o === !0 || "number" == typeof o ? n : o.effect || n : e;
  3807.                 o = o || {}, "number" == typeof o && (o = {
  3808.                     duration: o
  3809.                 }), s = !t.isEmptyObject(o), o.complete = r, o.delay && i.delay(o.delay), s && t.effects && t.effects.effect[a] ? i[e](o) : a !== e && i[a] ? i[a](o.duration, o.easing, r) : i.queue(function(n) {
  3810.                     t(this)[e](), r && r.call(i[0]), n()
  3811.                 })
  3812.             }
  3813.         }), t.widget
  3814.     }),
  3815.     function(t) {
  3816.         "function" == typeof define && define.amd ? define(["jquery", "./widget"], t) : t(jQuery)
  3817.     }(function(t) {
  3818.         var e = !1;
  3819.         return t(document).mouseup(function() {
  3820.             e = !1
  3821.         }), t.widget("ui.mouse", {
  3822.             version: "1.11.0",
  3823.             options: {
  3824.                 cancel: "input,textarea,button,select,option",
  3825.                 distance: 1,
  3826.                 delay: 0
  3827.             },
  3828.             _mouseInit: function() {
  3829.                 var e = this;
  3830.                 this.element.bind("mousedown." + this.widgetName, function(t) {
  3831.                     return e._mouseDown(t)
  3832.                 }).bind("click." + this.widgetName, function(n) {
  3833.                     return !0 === t.data(n.target, e.widgetName + ".preventClickEvent") ? (t.removeData(n.target, e.widgetName + ".preventClickEvent"), n.stopImmediatePropagation(), !1) : void 0
  3834.                 }), this.started = !1
  3835.             },
  3836.             _mouseDestroy: function() {
  3837.                 this.element.unbind("." + this.widgetName), this._mouseMoveDelegate && this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate)
  3838.             },
  3839.             _mouseDown: function(n) {
  3840.                 if (!e) {
  3841.                     this._mouseStarted && this._mouseUp(n), this._mouseDownEvent = n;
  3842.                     var i = this,
  3843.                         o = 1 === n.which,
  3844.                         r = "string" == typeof this.options.cancel && n.target.nodeName ? t(n.target).closest(this.options.cancel).length : !1;
  3845.                     return o && !r && this._mouseCapture(n) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
  3846.                         i.mouseDelayMet = !0
  3847.                     }, this.options.delay)), this._mouseDistanceMet(n) && this._mouseDelayMet(n) && (this._mouseStarted = this._mouseStart(n) !== !1, !this._mouseStarted) ? (n.preventDefault(), !0) : (!0 === t.data(n.target, this.widgetName + ".preventClickEvent") && t.removeData(n.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function(t) {
  3848.                         return i._mouseMove(t)
  3849.                     }, this._mouseUpDelegate = function(t) {
  3850.                         return i._mouseUp(t)
  3851.                     }, this.document.bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), n.preventDefault(), e = !0, !0)) : !0
  3852.                 }
  3853.             },
  3854.             _mouseMove: function(e) {
  3855.                 return t.ui.ie && (!document.documentMode || document.documentMode < 9) && !e.button ? this._mouseUp(e) : e.which ? this._mouseStarted ? (this._mouseDrag(e), e.preventDefault()) : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, e) !== !1, this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)), !this._mouseStarted) : this._mouseUp(e)
  3856.             },
  3857.             _mouseUp: function(n) {
  3858.                 return this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, n.target === this._mouseDownEvent.target && t.data(n.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(n)), e = !1, !1
  3859.             },
  3860.             _mouseDistanceMet: function(t) {
  3861.                 return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance
  3862.             },
  3863.             _mouseDelayMet: function() {
  3864.                 return this.mouseDelayMet
  3865.             },
  3866.             _mouseStart: function() {},
  3867.             _mouseDrag: function() {},
  3868.             _mouseStop: function() {},
  3869.             _mouseCapture: function() {
  3870.                 return !0
  3871.             }
  3872.         })
  3873.     }),
  3874.     function(t) {
  3875.         "function" == typeof define && define.amd ? define(["jquery", "./core", "./mouse", "./widget"], t) : t(jQuery)
  3876.     }(function(t) {
  3877.         return t.widget("ui.sortable", t.ui.mouse, {
  3878.             version: "1.11.0",
  3879.             widgetEventPrefix: "sort",
  3880.             ready: !1,
  3881.             options: {
  3882.                 appendTo: "parent",
  3883.                 axis: !1,
  3884.                 connectWith: !1,
  3885.                 containment: !1,
  3886.                 cursor: "auto",
  3887.                 cursorAt: !1,
  3888.                 dropOnEmpty: !0,
  3889.                 forcePlaceholderSize: !1,
  3890.                 forceHelperSize: !1,
  3891.                 grid: !1,
  3892.                 handle: !1,
  3893.                 helper: "original",
  3894.                 items: "> *",
  3895.                 opacity: !1,
  3896.                 placeholder: !1,
  3897.                 revert: !1,
  3898.                 scroll: !0,
  3899.                 scrollSensitivity: 20,
  3900.                 scrollSpeed: 20,
  3901.                 scope: "default",
  3902.                 tolerance: "intersect",
  3903.                 zIndex: 1e3,
  3904.                 activate: null,
  3905.                 beforeStop: null,
  3906.                 change: null,
  3907.                 deactivate: null,
  3908.                 out: null,
  3909.                 over: null,
  3910.                 receive: null,
  3911.                 remove: null,
  3912.                 sort: null,
  3913.                 start: null,
  3914.                 stop: null,
  3915.                 update: null
  3916.             },
  3917.             _isOverAxis: function(t, e, n) {
  3918.                 return t >= e && e + n > t
  3919.             },
  3920.             _isFloating: function(t) {
  3921.                 return /left|right/.test(t.css("float")) || /inline|table-cell/.test(t.css("display"))
  3922.             },
  3923.             _create: function() {
  3924.                 var t = this.options;
  3925.                 this.containerCache = {}, this.element.addClass("ui-sortable"), this.refresh(), this.floating = this.items.length ? "x" === t.axis || this._isFloating(this.items[0].item) : !1, this.offset = this.element.offset(), this._mouseInit(), this._setHandleClassName(), this.ready = !0
  3926.             },
  3927.             _setOption: function(t, e) {
  3928.                 this._super(t, e), "handle" === t && this._setHandleClassName()
  3929.             },
  3930.             _setHandleClassName: function() {
  3931.                 this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"), t.each(this.items, function() {
  3932.                     (this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item).addClass("ui-sortable-handle")
  3933.                 })
  3934.             },
  3935.             _destroy: function() {
  3936.                 this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"), this._mouseDestroy();
  3937.                 for (var t = this.items.length - 1; t >= 0; t--) this.items[t].item.removeData(this.widgetName + "-item");
  3938.                 return this
  3939.             },
  3940.             _mouseCapture: function(e, n) {
  3941.                 var i = null,
  3942.                     o = !1,
  3943.                     r = this;
  3944.                 return this.reverting ? !1 : this.options.disabled || "static" === this.options.type ? !1 : (this._refreshItems(e), t(e.target).parents().each(function() {
  3945.                     return t.data(this, r.widgetName + "-item") === r ? (i = t(this), !1) : void 0
  3946.                 }), t.data(e.target, r.widgetName + "-item") === r && (i = t(e.target)), i && (!this.options.handle || n || (t(this.options.handle, i).find("*").addBack().each(function() {
  3947.                     this === e.target && (o = !0)
  3948.                 }), o)) ? (this.currentItem = i, this._removeCurrentsFromItems(), !0) : !1)
  3949.             },
  3950.             _mouseStart: function(e, n, i) {
  3951.                 var o, r, s = this.options;
  3952.                 if (this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(e), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = {
  3953.                     top: this.offset.top - this.margins.top,
  3954.                     left: this.offset.left - this.margins.left
  3955.                 }, t.extend(this.offset, {
  3956.                     click: {
  3957.                         left: e.pageX - this.offset.left,
  3958.                         top: e.pageY - this.offset.top
  3959.                     },
  3960.                     parent: this._getParentOffset(),
  3961.                     relative: this._getRelativeOffset()
  3962.                 }), this.helper.css("position", "absolute"), this.cssPosition = this.helper.css("position"), this.originalPosition = this._generatePosition(e), this.originalPageX = e.pageX, this.originalPageY = e.pageY, s.cursorAt && this._adjustOffsetFromHelper(s.cursorAt), this.domPosition = {
  3963.                     prev: this.currentItem.prev()[0],
  3964.                     parent: this.currentItem.parent()[0]
  3965.                 }, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), s.containment && this._setContainment(), s.cursor && "auto" !== s.cursor && (r = this.document.find("body"), this.storedCursor = r.css("cursor"), r.css("cursor", s.cursor), this.storedStylesheet = t("<style>*{ cursor: " + s.cursor + " !important; }</style>").appendTo(r)), s.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), this.helper.css("opacity", s.opacity)), s.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), this.helper.css("zIndex", s.zIndex)), this.scrollParent[0] !== document && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger("start", e, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !i)
  3966.                     for (o = this.containers.length - 1; o >= 0; o--) this.containers[o]._trigger("activate", e, this._uiHash(this));
  3967.                 return t.ui.ddmanager && (t.ui.ddmanager.current = this), t.ui.ddmanager && !s.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e), this.dragging = !0, this.helper.addClass("ui-sortable-helper"), this._mouseDrag(e), !0
  3968.             },
  3969.             _mouseDrag: function(e) {
  3970.                 var n, i, o, r, s = this.options,
  3971.                     a = !1;
  3972.                 for (this.position = this._generatePosition(e), this.positionAbs = this._convertPositionTo("absolute"), this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), this.options.scroll && (this.scrollParent[0] !== document && "HTML" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - e.pageY < s.scrollSensitivity ? this.scrollParent[0].scrollTop = a = this.scrollParent[0].scrollTop + s.scrollSpeed : e.pageY - this.overflowOffset.top < s.scrollSensitivity && (this.scrollParent[0].scrollTop = a = this.scrollParent[0].scrollTop - s.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - e.pageX < s.scrollSensitivity ? this.scrollParent[0].scrollLeft = a = this.scrollParent[0].scrollLeft + s.scrollSpeed : e.pageX - this.overflowOffset.left < s.scrollSensitivity && (this.scrollParent[0].scrollLeft = a = this.scrollParent[0].scrollLeft - s.scrollSpeed)) : (e.pageY - t(document).scrollTop() < s.scrollSensitivity ? a = t(document).scrollTop(t(document).scrollTop() - s.scrollSpeed) : t(window).height() - (e.pageY - t(document).scrollTop()) < s.scrollSensitivity && (a = t(document).scrollTop(t(document).scrollTop() + s.scrollSpeed)), e.pageX - t(document).scrollLeft() < s.scrollSensitivity ? a = t(document).scrollLeft(t(document).scrollLeft() - s.scrollSpeed) : t(window).width() - (e.pageX - t(document).scrollLeft()) < s.scrollSensitivity && (a = t(document).scrollLeft(t(document).scrollLeft() + s.scrollSpeed))), a !== !1 && t.ui.ddmanager && !s.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e)), this.positionAbs = this._convertPositionTo("absolute"), this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"), this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"), n = this.items.length - 1; n >= 0; n--)
  3973.                     if (i = this.items[n], o = i.item[0], r = this._intersectsWithPointer(i), r && i.instance === this.currentContainer && o !== this.currentItem[0] && this.placeholder[1 === r ? "next" : "prev"]()[0] !== o && !t.contains(this.placeholder[0], o) && ("semi-dynamic" === this.options.type ? !t.contains(this.element[0], o) : !0)) {
  3974.                         if (this.direction = 1 === r ? "down" : "up", "pointer" !== this.options.tolerance && !this._intersectsWithSides(i)) break;
  3975.                         this._rearrange(e, i), this._trigger("change", e, this._uiHash());
  3976.                         break
  3977.                     }
  3978.                 return this._contactContainers(e), t.ui.ddmanager && t.ui.ddmanager.drag(this, e), this._trigger("sort", e, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1
  3979.             },
  3980.             _mouseStop: function(e, n) {
  3981.                 if (e) {
  3982.                     if (t.ui.ddmanager && !this.options.dropBehaviour && t.ui.ddmanager.drop(this, e), this.options.revert) {
  3983.                         var i = this,
  3984.                             o = this.placeholder.offset(),
  3985.                             r = this.options.axis,
  3986.                             s = {};
  3987.                         r && "x" !== r || (s.left = o.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft)), r && "y" !== r || (s.top = o.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop)), this.reverting = !0, t(this.helper).animate(s, parseInt(this.options.revert, 10) || 500, function() {
  3988.                             i._clear(e)
  3989.                         })
  3990.                     } else this._clear(e, n);
  3991.                     return !1
  3992.                 }
  3993.             },
  3994.             cancel: function() {
  3995.                 if (this.dragging) {
  3996.                     this._mouseUp({
  3997.                         target: null
  3998.                     }), "original" === this.options.helper ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show();
  3999.                     for (var e = this.containers.length - 1; e >= 0; e--) this.containers[e]._trigger("deactivate", null, this._uiHash(this)), this.containers[e].containerCache.over && (this.containers[e]._trigger("out", null, this._uiHash(this)), this.containers[e].containerCache.over = 0)
  4000.                 }
  4001.                 return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), "original" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), t.extend(this, {
  4002.                     helper: null,
  4003.                     dragging: !1,
  4004.                     reverting: !1,
  4005.                     _noFinalSort: null
  4006.                 }), this.domPosition.prev ? t(this.domPosition.prev).after(this.currentItem) : t(this.domPosition.parent).prepend(this.currentItem)), this
  4007.             },
  4008.             serialize: function(e) {
  4009.                 var n = this._getItemsAsjQuery(e && e.connected),
  4010.                     i = [];
  4011.                 return e = e || {}, t(n).each(function() {
  4012.                     var n = (t(e.item || this).attr(e.attribute || "id") || "").match(e.expression || /(.+)[\-=_](.+)/);
  4013.                     n && i.push((e.key || n[1] + "[]") + "=" + (e.key && e.expression ? n[1] : n[2]))
  4014.                 }), !i.length && e.key && i.push(e.key + "="), i.join("&")
  4015.             },
  4016.             toArray: function(e) {
  4017.                 var n = this._getItemsAsjQuery(e && e.connected),
  4018.                     i = [];
  4019.                 return e = e || {}, n.each(function() {
  4020.                     i.push(t(e.item || this).attr(e.attribute || "id") || "")
  4021.                 }), i
  4022.             },
  4023.             _intersectsWith: function(t) {
  4024.                 var e = this.positionAbs.left,
  4025.                     n = e + this.helperProportions.width,
  4026.                     i = this.positionAbs.top,
  4027.                     o = i + this.helperProportions.height,
  4028.                     r = t.left,
  4029.                     s = r + t.width,
  4030.                     a = t.top,
  4031.                     l = a + t.height,
  4032.                     c = this.offset.click.top,
  4033.                     u = this.offset.click.left,
  4034.                     h = "x" === this.options.axis || i + c > a && l > i + c,
  4035.                     d = "y" === this.options.axis || e + u > r && s > e + u,
  4036.                     f = h && d;
  4037.                 return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > t[this.floating ? "width" : "height"] ? f : r < e + this.helperProportions.width / 2 && n - this.helperProportions.width / 2 < s && a < i + this.helperProportions.height / 2 && o - this.helperProportions.height / 2 < l
  4038.             },
  4039.             _intersectsWithPointer: function(t) {
  4040.                 var e = "x" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top, t.height),
  4041.                     n = "y" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left, t.width),
  4042.                     i = e && n,
  4043.                     o = this._getDragVerticalDirection(),
  4044.                     r = this._getDragHorizontalDirection();
  4045.                 return i ? this.floating ? r && "right" === r || "down" === o ? 2 : 1 : o && ("down" === o ? 2 : 1) : !1
  4046.             },
  4047.             _intersectsWithSides: function(t) {
  4048.                 var e = this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top + t.height / 2, t.height),
  4049.                     n = this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left + t.width / 2, t.width),
  4050.                     i = this._getDragVerticalDirection(),
  4051.                     o = this._getDragHorizontalDirection();
  4052.                 return this.floating && o ? "right" === o && n || "left" === o && !n : i && ("down" === i && e || "up" === i && !e)
  4053.             },
  4054.             _getDragVerticalDirection: function() {
  4055.                 var t = this.positionAbs.top - this.lastPositionAbs.top;
  4056.                 return 0 !== t && (t > 0 ? "down" : "up")
  4057.             },
  4058.             _getDragHorizontalDirection: function() {
  4059.                 var t = this.positionAbs.left - this.lastPositionAbs.left;
  4060.                 return 0 !== t && (t > 0 ? "right" : "left")
  4061.             },
  4062.             refresh: function(t) {
  4063.                 return this._refreshItems(t), this._setHandleClassName(), this.refreshPositions(), this
  4064.             },
  4065.             _connectWith: function() {
  4066.                 var t = this.options;
  4067.                 return t.connectWith.constructor === String ? [t.connectWith] : t.connectWith
  4068.             },
  4069.             _getItemsAsjQuery: function(e) {
  4070.                 function n() {
  4071.                     a.push(this)
  4072.                 }
  4073.                 var i, o, r, s, a = [],
  4074.                     l = [],
  4075.                     c = this._connectWith();
  4076.                 if (c && e)
  4077.                     for (i = c.length - 1; i >= 0; i--)
  4078.                         for (r = t(c[i]), o = r.length - 1; o >= 0; o--) s = t.data(r[o], this.widgetFullName), s && s !== this && !s.options.disabled && l.push([t.isFunction(s.options.items) ? s.options.items.call(s.element) : t(s.options.items, s.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), s]);
  4079.                 for (l.push([t.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
  4080.                     options: this.options,
  4081.                     item: this.currentItem
  4082.                 }) : t(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]), i = l.length - 1; i >= 0; i--) l[i][0].each(n);
  4083.                 return t(a)
  4084.             },
  4085.             _removeCurrentsFromItems: function() {
  4086.                 var e = this.currentItem.find(":data(" + this.widgetName + "-item)");
  4087.                 this.items = t.grep(this.items, function(t) {
  4088.                     for (var n = 0; n < e.length; n++)
  4089.                         if (e[n] === t.item[0]) return !1;
  4090.                     return !0
  4091.                 })
  4092.             },
  4093.             _refreshItems: function(e) {
  4094.                 this.items = [], this.containers = [this];
  4095.                 var n, i, o, r, s, a, l, c, u = this.items,
  4096.                     h = [
  4097.                         [t.isFunction(this.options.items) ? this.options.items.call(this.element[0], e, {
  4098.                             item: this.currentItem
  4099.                         }) : t(this.options.items, this.element), this]
  4100.                     ],
  4101.                     d = this._connectWith();
  4102.                 if (d && this.ready)
  4103.                     for (n = d.length - 1; n >= 0; n--)
  4104.                         for (o = t(d[n]), i = o.length - 1; i >= 0; i--) r = t.data(o[i], this.widgetFullName), r && r !== this && !r.options.disabled && (h.push([t.isFunction(r.options.items) ? r.options.items.call(r.element[0], e, {
  4105.                             item: this.currentItem
  4106.                         }) : t(r.options.items, r.element), r]), this.containers.push(r));
  4107.                 for (n = h.length - 1; n >= 0; n--)
  4108.                     for (s = h[n][1], a = h[n][0], i = 0, c = a.length; c > i; i++) l = t(a[i]), l.data(this.widgetName + "-item", s), u.push({
  4109.                         item: l,
  4110.                         instance: s,
  4111.                         width: 0,
  4112.                         height: 0,
  4113.                         left: 0,
  4114.                         top: 0
  4115.                     })
  4116.             },
  4117.             refreshPositions: function(e) {
  4118.                 this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());
  4119.                 var n, i, o, r;
  4120.                 for (n = this.items.length - 1; n >= 0; n--) i = this.items[n], i.instance !== this.currentContainer && this.currentContainer && i.item[0] !== this.currentItem[0] || (o = this.options.toleranceElement ? t(this.options.toleranceElement, i.item) : i.item, e || (i.width = o.outerWidth(), i.height = o.outerHeight()), r = o.offset(), i.left = r.left, i.top = r.top);
  4121.                 if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this);
  4122.                 else
  4123.                     for (n = this.containers.length - 1; n >= 0; n--) r = this.containers[n].element.offset(), this.containers[n].containerCache.left = r.left, this.containers[n].containerCache.top = r.top, this.containers[n].containerCache.width = this.containers[n].element.outerWidth(), this.containers[n].containerCache.height = this.containers[n].element.outerHeight();
  4124.                 return this
  4125.             },
  4126.             _createPlaceholder: function(e) {
  4127.                 e = e || this;
  4128.                 var n, i = e.options;
  4129.                 i.placeholder && i.placeholder.constructor !== String || (n = i.placeholder, i.placeholder = {
  4130.                     element: function() {
  4131.                         var i = e.currentItem[0].nodeName.toLowerCase(),
  4132.                             o = t("<" + i + ">", e.document[0]).addClass(n || e.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper");
  4133.                         return "tr" === i ? e.currentItem.children().each(function() {
  4134.                             t("<td>&#160;</td>", e.document[0]).attr("colspan", t(this).attr("colspan") || 1).appendTo(o)
  4135.                         }) : "img" === i && o.attr("src", e.currentItem.attr("src")), n || o.css("visibility", "hidden"), o
  4136.                     },
  4137.                     update: function(t, o) {
  4138.                         (!n || i.forcePlaceholderSize) && (o.height() || o.height(e.currentItem.innerHeight() - parseInt(e.currentItem.css("paddingTop") || 0, 10) - parseInt(e.currentItem.css("paddingBottom") || 0, 10)), o.width() || o.width(e.currentItem.innerWidth() - parseInt(e.currentItem.css("paddingLeft") || 0, 10) - parseInt(e.currentItem.css("paddingRight") || 0, 10)))
  4139.                     }
  4140.                 }), e.placeholder = t(i.placeholder.element.call(e.element, e.currentItem)), e.currentItem.after(e.placeholder), i.placeholder.update(e, e.placeholder)
  4141.             },
  4142.             _contactContainers: function(e) {
  4143.                 var n, i, o, r, s, a, l, c, u, h, d = null,
  4144.                     f = null;
  4145.                 for (n = this.containers.length - 1; n >= 0; n--)
  4146.                     if (!t.contains(this.currentItem[0], this.containers[n].element[0]))
  4147.                         if (this._intersectsWith(this.containers[n].containerCache)) {
  4148.                             if (d && t.contains(this.containers[n].element[0], d.element[0])) continue;
  4149.                             d = this.containers[n], f = n
  4150.                         } else this.containers[n].containerCache.over && (this.containers[n]._trigger("out", e, this._uiHash(this)), this.containers[n].containerCache.over = 0);
  4151.                 if (d)
  4152.                     if (1 === this.containers.length) this.containers[f].containerCache.over || (this.containers[f]._trigger("over", e, this._uiHash(this)), this.containers[f].containerCache.over = 1);
  4153.                     else {
  4154.                         for (o = 1e4, r = null, u = d.floating || this._isFloating(this.currentItem), s = u ? "left" : "top", a = u ? "width" : "height", h = u ? "clientX" : "clientY", i = this.items.length - 1; i >= 0; i--) t.contains(this.containers[f].element[0], this.items[i].item[0]) && this.items[i].item[0] !== this.currentItem[0] && (l = this.items[i].item.offset()[s], c = !1, e[h] - l > this.items[i][a] / 2 && (c = !0), Math.abs(e[h] - l) < o && (o = Math.abs(e[h] - l), r = this.items[i], this.direction = c ? "up" : "down"));
  4155.                         if (!r && !this.options.dropOnEmpty) return;
  4156.                         if (this.currentContainer === this.containers[f]) return;
  4157.                         r ? this._rearrange(e, r, null, !0) : this._rearrange(e, null, this.containers[f].element, !0), this._trigger("change", e, this._uiHash()), this.containers[f]._trigger("change", e, this._uiHash(this)), this.currentContainer = this.containers[f], this.options.placeholder.update(this.currentContainer, this.placeholder), this.containers[f]._trigger("over", e, this._uiHash(this)), this.containers[f].containerCache.over = 1
  4158.                     }
  4159.             },
  4160.             _createHelper: function(e) {
  4161.                 var n = this.options,
  4162.                     i = t.isFunction(n.helper) ? t(n.helper.apply(this.element[0], [e, this.currentItem])) : "clone" === n.helper ? this.currentItem.clone() : this.currentItem;
  4163.                 return i.parents("body").length || t("parent" !== n.appendTo ? n.appendTo : this.currentItem[0].parentNode)[0].appendChild(i[0]), i[0] === this.currentItem[0] && (this._storedCSS = {
  4164.                     width: this.currentItem[0].style.width,
  4165.                     height: this.currentItem[0].style.height,
  4166.                     position: this.currentItem.css("position"),
  4167.                     top: this.currentItem.css("top"),
  4168.                     left: this.currentItem.css("left")
  4169.                 }), (!i[0].style.width || n.forceHelperSize) && i.width(this.currentItem.width()), (!i[0].style.height || n.forceHelperSize) && i.height(this.currentItem.height()), i
  4170.             },
  4171.             _adjustOffsetFromHelper: function(e) {
  4172.                 "string" == typeof e && (e = e.split(" ")), t.isArray(e) && (e = {
  4173.                     left: +e[0],
  4174.                     top: +e[1] || 0
  4175.                 }), "left" in e && (this.offset.click.left = e.left + this.margins.left), "right" in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left), "top" in e && (this.offset.click.top = e.top + this.margins.top), "bottom" in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top)
  4176.             },
  4177.             _getParentOffset: function() {
  4178.                 this.offsetParent = this.helper.offsetParent();
  4179.                 var e = this.offsetParent.offset();
  4180.                 return "absolute" === this.cssPosition && this.scrollParent[0] !== document && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(), e.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === document.body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && t.ui.ie) && (e = {
  4181.                     top: 0,
  4182.                     left: 0
  4183.                 }), {
  4184.                     top: e.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
  4185.                     left: e.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
  4186.                 }
  4187.             },
  4188.             _getRelativeOffset: function() {
  4189.                 if ("relative" === this.cssPosition) {
  4190.                     var t = this.currentItem.position();
  4191.                     return {
  4192.                         top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
  4193.                         left: t.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
  4194.                     }
  4195.                 }
  4196.                 return {
  4197.                     top: 0,
  4198.                     left: 0
  4199.                 }
  4200.             },
  4201.             _cacheMargins: function() {
  4202.                 this.margins = {
  4203.                     left: parseInt(this.currentItem.css("marginLeft"), 10) || 0,
  4204.                     top: parseInt(this.currentItem.css("marginTop"), 10) || 0
  4205.                 }
  4206.             },
  4207.             _cacheHelperProportions: function() {
  4208.                 this.helperProportions = {
  4209.                     width: this.helper.outerWidth(),
  4210.                     height: this.helper.outerHeight()
  4211.                 }
  4212.             },
  4213.             _setContainment: function() {
  4214.                 var e, n, i, o = this.options;
  4215.                 "parent" === o.containment && (o.containment = this.helper[0].parentNode), ("document" === o.containment || "window" === o.containment) && (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, t("document" === o.containment ? document : window).width() - this.helperProportions.width - this.margins.left, (t("document" === o.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), /^(document|window|parent)$/.test(o.containment) || (e = t(o.containment)[0], n = t(o.containment).offset(), i = "hidden" !== t(e).css("overflow"), this.containment = [n.left + (parseInt(t(e).css("borderLeftWidth"), 10) || 0) + (parseInt(t(e).css("paddingLeft"), 10) || 0) - this.margins.left, n.top + (parseInt(t(e).css("borderTopWidth"), 10) || 0) + (parseInt(t(e).css("paddingTop"), 10) || 0) - this.margins.top, n.left + (i ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(t(e).css("borderLeftWidth"), 10) || 0) - (parseInt(t(e).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, n.top + (i ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(t(e).css("borderTopWidth"), 10) || 0) - (parseInt(t(e).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top])
  4216.             },
  4217.             _convertPositionTo: function(e, n) {
  4218.                 n || (n = this.position);
  4219.                 var i = "absolute" === e ? 1 : -1,
  4220.                     o = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
  4221.                     r = /(html|body)/i.test(o[0].tagName);
  4222.                 return {
  4223.                     top: n.top + this.offset.relative.top * i + this.offset.parent.top * i - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : r ? 0 : o.scrollTop()) * i,
  4224.                     left: n.left + this.offset.relative.left * i + this.offset.parent.left * i - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : r ? 0 : o.scrollLeft()) * i
  4225.                 }
  4226.             },
  4227.             _generatePosition: function(e) {
  4228.                 var n, i, o = this.options,
  4229.                     r = e.pageX,
  4230.                     s = e.pageY,
  4231.                     a = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
  4232.                     l = /(html|body)/i.test(a[0].tagName);
  4233.                 return "relative" !== this.cssPosition || this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()), this.originalPosition && (this.containment && (e.pageX - this.offset.click.left < this.containment[0] && (r = this.containment[0] + this.offset.click.left), e.pageY - this.offset.click.top < this.containment[1] && (s = this.containment[1] + this.offset.click.top), e.pageX - this.offset.click.left > this.containment[2] && (r = this.containment[2] + this.offset.click.left), e.pageY - this.offset.click.top > this.containment[3] && (s = this.containment[3] + this.offset.click.top)), o.grid && (n = this.originalPageY + Math.round((s - this.originalPageY) / o.grid[1]) * o.grid[1], s = this.containment ? n - this.offset.click.top >= this.containment[1] && n - this.offset.click.top <= this.containment[3] ? n : n - this.offset.click.top >= this.containment[1] ? n - o.grid[1] : n + o.grid[1] : n, i = this.originalPageX + Math.round((r - this.originalPageX) / o.grid[0]) * o.grid[0], r = this.containment ? i - this.offset.click.left >= this.containment[0] && i - this.offset.click.left <= this.containment[2] ? i : i - this.offset.click.left >= this.containment[0] ? i - o.grid[0] : i + o.grid[0] : i)), {
  4234.                     top: s - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : l ? 0 : a.scrollTop()),
  4235.                     left: r - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : l ? 0 : a.scrollLeft())
  4236.                 }
  4237.             },
  4238.             _rearrange: function(t, e, n, i) {
  4239.                 n ? n[0].appendChild(this.placeholder[0]) : e.item[0].parentNode.insertBefore(this.placeholder[0], "down" === this.direction ? e.item[0] : e.item[0].nextSibling), this.counter = this.counter ? ++this.counter : 1;
  4240.                 var o = this.counter;
  4241.                 this._delay(function() {
  4242.                     o === this.counter && this.refreshPositions(!i)
  4243.                 })
  4244.             },
  4245.             _clear: function(t, e) {
  4246.                 function n(t, e, n) {
  4247.                     return function(i) {
  4248.                         n._trigger(t, i, e._uiHash(e))
  4249.                     }
  4250.                 }
  4251.                 this.reverting = !1;
  4252.                 var i, o = [];
  4253.                 if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) {
  4254.                     for (i in this._storedCSS)("auto" === this._storedCSS[i] || "static" === this._storedCSS[i]) && (this._storedCSS[i] = "");
  4255.                     this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
  4256.                 } else this.currentItem.show();
  4257.                 for (this.fromOutside && !e && o.push(function(t) {
  4258.                     this._trigger("receive", t, this._uiHash(this.fromOutside))
  4259.                 }), !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || e || o.push(function(t) {
  4260.                     this._trigger("update", t, this._uiHash())
  4261.                 }), this !== this.currentContainer && (e || (o.push(function(t) {
  4262.                     this._trigger("remove", t, this._uiHash())
  4263.                 }), o.push(function(t) {
  4264.                     return function(e) {
  4265.                         t._trigger("receive", e, this._uiHash(this))
  4266.                     }
  4267.                 }.call(this, this.currentContainer)), o.push(function(t) {
  4268.                     return function(e) {
  4269.                         t._trigger("update", e, this._uiHash(this))
  4270.                     }
  4271.                 }.call(this, this.currentContainer)))), i = this.containers.length - 1; i >= 0; i--) e || o.push(n("deactivate", this, this.containers[i])), this.containers[i].containerCache.over && (o.push(n("out", this, this.containers[i])), this.containers[i].containerCache.over = 0);
  4272.                 if (this.storedCursor && (this.document.find("body").css("cursor", this.storedCursor), this.storedStylesheet.remove()), this._storedOpacity && this.helper.css("opacity", this._storedOpacity), this._storedZIndex && this.helper.css("zIndex", "auto" === this._storedZIndex ? "" : this._storedZIndex), this.dragging = !1, this.cancelHelperRemoval) {
  4273.                     if (!e) {
  4274.                         for (this._trigger("beforeStop", t, this._uiHash()), i = 0; i < o.length; i++) o[i].call(this, t);
  4275.                         this._trigger("stop", t, this._uiHash())
  4276.                     }
  4277.                     return this.fromOutside = !1, !1
  4278.                 }
  4279.                 if (e || this._trigger("beforeStop", t, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null, !e) {
  4280.                     for (i = 0; i < o.length; i++) o[i].call(this, t);
  4281.                     this._trigger("stop", t, this._uiHash())
  4282.                 }
  4283.                 return this.fromOutside = !1, !0
  4284.             },
  4285.             _trigger: function() {
  4286.                 t.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel()
  4287.             },
  4288.             _uiHash: function(e) {
  4289.                 var n = e || this;
  4290.                 return {
  4291.                     helper: n.helper,
  4292.                     placeholder: n.placeholder || t([]),
  4293.                     position: n.position,
  4294.                     originalPosition: n.originalPosition,
  4295.                     offset: n.positionAbs,
  4296.                     item: n.currentItem,
  4297.                     sender: e ? e.element : null
  4298.                 }
  4299.             }
  4300.         })
  4301.     }),
  4302.     function(t) {
  4303.         "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
  4304.     }(function(t) {
  4305.         var e = "ui-effects-";
  4306.         return t.effects = {
  4307.                 effect: {}
  4308.             },
  4309.             function(t, e) {
  4310.                 function n(t, e, n) {
  4311.                     var i = h[e.type] || {};
  4312.                     return null == t ? n || !e.def ? null : e.def : (t = i.floor ? ~~t : parseFloat(t), isNaN(t) ? e.def : i.mod ? (t + i.mod) % i.mod : 0 > t ? 0 : i.max < t ? i.max : t)
  4313.                 }
  4314.  
  4315.                 function i(e) {
  4316.                     var n = c(),
  4317.                         i = n._rgba = [];
  4318.                     return e = e.toLowerCase(), p(l, function(t, o) {
  4319.                         var r, s = o.re.exec(e),
  4320.                             a = s && o.parse(s),
  4321.                             l = o.space || "rgba";
  4322.                         return a ? (r = n[l](a), n[u[l].cache] = r[u[l].cache], i = n._rgba = r._rgba, !1) : void 0
  4323.                     }), i.length ? ("0,0,0,0" === i.join() && t.extend(i, r.transparent), n) : r[e]
  4324.                 }
  4325.  
  4326.                 function o(t, e, n) {
  4327.                     return n = (n + 1) % 1, 1 > 6 * n ? t + (e - t) * n * 6 : 1 > 2 * n ? e : 2 > 3 * n ? t + (e - t) * (2 / 3 - n) * 6 : t
  4328.                 }
  4329.                 var r, s = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
  4330.                     a = /^([\-+])=\s*(\d+\.?\d*)/,
  4331.                     l = [{
  4332.                         re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
  4333.                         parse: function(t) {
  4334.                             return [t[1], t[2], t[3], t[4]]
  4335.                         }
  4336.                     }, {
  4337.                         re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
  4338.                         parse: function(t) {
  4339.                             return [2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]]
  4340.                         }
  4341.                     }, {
  4342.                         re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
  4343.                         parse: function(t) {
  4344.                             return [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)]
  4345.                         }
  4346.                     }, {
  4347.                         re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
  4348.                         parse: function(t) {
  4349.                             return [parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16)]
  4350.                         }
  4351.                     }, {
  4352.                         re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
  4353.                         space: "hsla",
  4354.                         parse: function(t) {
  4355.                             return [t[1], t[2] / 100, t[3] / 100, t[4]]
  4356.                         }
  4357.                     }],
  4358.                     c = t.Color = function(e, n, i, o) {
  4359.                         return new t.Color.fn.parse(e, n, i, o)
  4360.                     },
  4361.                     u = {
  4362.                         rgba: {
  4363.                             props: {
  4364.                                 red: {
  4365.                                     idx: 0,
  4366.                                     type: "byte"
  4367.                                 },
  4368.                                 green: {
  4369.                                     idx: 1,
  4370.                                     type: "byte"
  4371.                                 },
  4372.                                 blue: {
  4373.                                     idx: 2,
  4374.                                     type: "byte"
  4375.                                 }
  4376.                             }
  4377.                         },
  4378.                         hsla: {
  4379.                             props: {
  4380.                                 hue: {
  4381.                                     idx: 0,
  4382.                                     type: "degrees"
  4383.                                 },
  4384.                                 saturation: {
  4385.                                     idx: 1,
  4386.                                     type: "percent"
  4387.                                 },
  4388.                                 lightness: {
  4389.                                     idx: 2,
  4390.                                     type: "percent"
  4391.                                 }
  4392.                             }
  4393.                         }
  4394.                     },
  4395.                     h = {
  4396.                         "byte": {
  4397.                             floor: !0,
  4398.                             max: 255
  4399.                         },
  4400.                         percent: {
  4401.                             max: 1
  4402.                         },
  4403.                         degrees: {
  4404.                             mod: 360,
  4405.                             floor: !0
  4406.                         }
  4407.                     },
  4408.                     d = c.support = {},
  4409.                     f = t("<p>")[0],
  4410.                     p = t.each;
  4411.                 f.style.cssText = "background-color:rgba(1,1,1,.5)", d.rgba = f.style.backgroundColor.indexOf("rgba") > -1, p(u, function(t, e) {
  4412.                     e.cache = "_" + t, e.props.alpha = {
  4413.                         idx: 3,
  4414.                         type: "percent",
  4415.                         def: 1
  4416.                     }
  4417.                 }), c.fn = t.extend(c.prototype, {
  4418.                     parse: function(o, s, a, l) {
  4419.                         if (o === e) return this._rgba = [null, null, null, null], this;
  4420.                         (o.jquery || o.nodeType) && (o = t(o).css(s), s = e);
  4421.                         var h = this,
  4422.                             d = t.type(o),
  4423.                             f = this._rgba = [];
  4424.                         return s !== e && (o = [o, s, a, l], d = "array"), "string" === d ? this.parse(i(o) || r._default) : "array" === d ? (p(u.rgba.props, function(t, e) {
  4425.                             f[e.idx] = n(o[e.idx], e)
  4426.                         }), this) : "object" === d ? (o instanceof c ? p(u, function(t, e) {
  4427.                             o[e.cache] && (h[e.cache] = o[e.cache].slice())
  4428.                         }) : p(u, function(e, i) {
  4429.                             var r = i.cache;
  4430.                             p(i.props, function(t, e) {
  4431.                                 if (!h[r] && i.to) {
  4432.                                     if ("alpha" === t || null == o[t]) return;
  4433.                                     h[r] = i.to(h._rgba)
  4434.                                 }
  4435.                                 h[r][e.idx] = n(o[t], e, !0)
  4436.                             }), h[r] && t.inArray(null, h[r].slice(0, 3)) < 0 && (h[r][3] = 1, i.from && (h._rgba = i.from(h[r])))
  4437.                         }), this) : void 0
  4438.                     },
  4439.                     is: function(t) {
  4440.                         var e = c(t),
  4441.                             n = !0,
  4442.                             i = this;
  4443.                         return p(u, function(t, o) {
  4444.                             var r, s = e[o.cache];
  4445.                             return s && (r = i[o.cache] || o.to && o.to(i._rgba) || [], p(o.props, function(t, e) {
  4446.                                 return null != s[e.idx] ? n = s[e.idx] === r[e.idx] : void 0
  4447.                             })), n
  4448.                         }), n
  4449.                     },
  4450.                     _space: function() {
  4451.                         var t = [],
  4452.                             e = this;
  4453.                         return p(u, function(n, i) {
  4454.                             e[i.cache] && t.push(n)
  4455.                         }), t.pop()
  4456.                     },
  4457.                     transition: function(t, e) {
  4458.                         var i = c(t),
  4459.                             o = i._space(),
  4460.                             r = u[o],
  4461.                             s = 0 === this.alpha() ? c("transparent") : this,
  4462.                             a = s[r.cache] || r.to(s._rgba),
  4463.                             l = a.slice();
  4464.                         return i = i[r.cache], p(r.props, function(t, o) {
  4465.                             var r = o.idx,
  4466.                                 s = a[r],
  4467.                                 c = i[r],
  4468.                                 u = h[o.type] || {};
  4469.                             null !== c && (null === s ? l[r] = c : (u.mod && (c - s > u.mod / 2 ? s += u.mod : s - c > u.mod / 2 && (s -= u.mod)), l[r] = n((c - s) * e + s, o)))
  4470.                         }), this[o](l)
  4471.                     },
  4472.                     blend: function(e) {
  4473.                         if (1 === this._rgba[3]) return this;
  4474.                         var n = this._rgba.slice(),
  4475.                             i = n.pop(),
  4476.                             o = c(e)._rgba;
  4477.                         return c(t.map(n, function(t, e) {
  4478.                             return (1 - i) * o[e] + i * t
  4479.                         }))
  4480.                     },
  4481.                     toRgbaString: function() {
  4482.                         var e = "rgba(",
  4483.                             n = t.map(this._rgba, function(t, e) {
  4484.                                 return null == t ? e > 2 ? 1 : 0 : t
  4485.                             });
  4486.                         return 1 === n[3] && (n.pop(), e = "rgb("), e + n.join() + ")"
  4487.                     },
  4488.                     toHslaString: function() {
  4489.                         var e = "hsla(",
  4490.                             n = t.map(this.hsla(), function(t, e) {
  4491.                                 return null == t && (t = e > 2 ? 1 : 0), e && 3 > e && (t = Math.round(100 * t) + "%"), t
  4492.                             });
  4493.                         return 1 === n[3] && (n.pop(), e = "hsl("), e + n.join() + ")"
  4494.                     },
  4495.                     toHexString: function(e) {
  4496.                         var n = this._rgba.slice(),
  4497.                             i = n.pop();
  4498.                         return e && n.push(~~(255 * i)), "#" + t.map(n, function(t) {
  4499.                             return t = (t || 0).toString(16), 1 === t.length ? "0" + t : t
  4500.                         }).join("")
  4501.                     },
  4502.                     toString: function() {
  4503.                         return 0 === this._rgba[3] ? "transparent" : this.toRgbaString()
  4504.                     }
  4505.                 }), c.fn.parse.prototype = c.fn, u.hsla.to = function(t) {
  4506.                     if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]];
  4507.                     var e, n, i = t[0] / 255,
  4508.                         o = t[1] / 255,
  4509.                         r = t[2] / 255,
  4510.                         s = t[3],
  4511.                         a = Math.max(i, o, r),
  4512.                         l = Math.min(i, o, r),
  4513.                         c = a - l,
  4514.                         u = a + l,
  4515.                         h = .5 * u;
  4516.                     return e = l === a ? 0 : i === a ? 60 * (o - r) / c + 360 : o === a ? 60 * (r - i) / c + 120 : 60 * (i - o) / c + 240, n = 0 === c ? 0 : .5 >= h ? c / u : c / (2 - u), [Math.round(e) % 360, n, h, null == s ? 1 : s]
  4517.                 }, u.hsla.from = function(t) {
  4518.                     if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]];
  4519.                     var e = t[0] / 360,
  4520.                         n = t[1],
  4521.                         i = t[2],
  4522.                         r = t[3],
  4523.                         s = .5 >= i ? i * (1 + n) : i + n - i * n,
  4524.                         a = 2 * i - s;
  4525.                     return [Math.round(255 * o(a, s, e + 1 / 3)), Math.round(255 * o(a, s, e)), Math.round(255 * o(a, s, e - 1 / 3)), r]
  4526.                 }, p(u, function(i, o) {
  4527.                     var r = o.props,
  4528.                         s = o.cache,
  4529.                         l = o.to,
  4530.                         u = o.from;
  4531.                     c.fn[i] = function(i) {
  4532.                         if (l && !this[s] && (this[s] = l(this._rgba)), i === e) return this[s].slice();
  4533.                         var o, a = t.type(i),
  4534.                             h = "array" === a || "object" === a ? i : arguments,
  4535.                             d = this[s].slice();
  4536.                         return p(r, function(t, e) {
  4537.                             var i = h["object" === a ? t : e.idx];
  4538.                             null == i && (i = d[e.idx]), d[e.idx] = n(i, e)
  4539.                         }), u ? (o = c(u(d)), o[s] = d, o) : c(d)
  4540.                     }, p(r, function(e, n) {
  4541.                         c.fn[e] || (c.fn[e] = function(o) {
  4542.                             var r, s = t.type(o),
  4543.                                 l = "alpha" === e ? this._hsla ? "hsla" : "rgba" : i,
  4544.                                 c = this[l](),
  4545.                                 u = c[n.idx];
  4546.                             return "undefined" === s ? u : ("function" === s && (o = o.call(this, u), s = t.type(o)), null == o && n.empty ? this : ("string" === s && (r = a.exec(o), r && (o = u + parseFloat(r[2]) * ("+" === r[1] ? 1 : -1))), c[n.idx] = o, this[l](c)))
  4547.                         })
  4548.                     })
  4549.                 }), c.hook = function(e) {
  4550.                     var n = e.split(" ");
  4551.                     p(n, function(e, n) {
  4552.                         t.cssHooks[n] = {
  4553.                             set: function(e, o) {
  4554.                                 var r, s, a = "";
  4555.                                 if ("transparent" !== o && ("string" !== t.type(o) || (r = i(o)))) {
  4556.                                     if (o = c(r || o), !d.rgba && 1 !== o._rgba[3]) {
  4557.                                         for (s = "backgroundColor" === n ? e.parentNode : e;
  4558.                                             ("" === a || "transparent" === a) && s && s.style;) try {
  4559.                                             a = t.css(s, "backgroundColor"), s = s.parentNode
  4560.                                         } catch (l) {}
  4561.                                         o = o.blend(a && "transparent" !== a ? a : "_default")
  4562.                                     }
  4563.                                     o = o.toRgbaString()
  4564.                                 }
  4565.                                 try {
  4566.                                     e.style[n] = o
  4567.                                 } catch (l) {}
  4568.                             }
  4569.                         }, t.fx.step[n] = function(e) {
  4570.                             e.colorInit || (e.start = c(e.elem, n), e.end = c(e.end), e.colorInit = !0), t.cssHooks[n].set(e.elem, e.start.transition(e.end, e.pos))
  4571.                         }
  4572.                     })
  4573.                 }, c.hook(s), t.cssHooks.borderColor = {
  4574.                     expand: function(t) {
  4575.                         var e = {};
  4576.                         return p(["Top", "Right", "Bottom", "Left"], function(n, i) {
  4577.                             e["border" + i + "Color"] = t
  4578.                         }), e
  4579.                     }
  4580.                 }, r = t.Color.names = {
  4581.                     aqua: "#00ffff",
  4582.                     black: "#000000",
  4583.                     blue: "#0000ff",
  4584.                     fuchsia: "#ff00ff",
  4585.                     gray: "#808080",
  4586.                     green: "#008000",
  4587.                     lime: "#00ff00",
  4588.                     maroon: "#800000",
  4589.                     navy: "#000080",
  4590.                     olive: "#808000",
  4591.                     purple: "#800080",
  4592.                     red: "#ff0000",
  4593.                     silver: "#c0c0c0",
  4594.                     teal: "#008080",
  4595.                     white: "#ffffff",
  4596.                     yellow: "#ffff00",
  4597.                     transparent: [null, null, null, 0],
  4598.                     _default: "#ffffff"
  4599.                 }
  4600.             }(jQuery),
  4601.             function() {
  4602.                 function e(e) {
  4603.                     var n, i, o = e.ownerDocument.defaultView ? e.ownerDocument.defaultView.getComputedStyle(e, null) : e.currentStyle,
  4604.                         r = {};
  4605.                     if (o && o.length && o[0] && o[o[0]])
  4606.                         for (i = o.length; i--;) n = o[i], "string" == typeof o[n] && (r[t.camelCase(n)] = o[n]);
  4607.                     else
  4608.                         for (n in o) "string" == typeof o[n] && (r[n] = o[n]);
  4609.                     return r
  4610.                 }
  4611.  
  4612.                 function n(e, n) {
  4613.                     var i, r, s = {};
  4614.                     for (i in n) r = n[i], e[i] !== r && (o[i] || (t.fx.step[i] || !isNaN(parseFloat(r))) && (s[i] = r));
  4615.                     return s
  4616.                 }
  4617.                 var i = ["add", "remove", "toggle"],
  4618.                     o = {
  4619.                         border: 1,
  4620.                         borderBottom: 1,
  4621.                         borderColor: 1,
  4622.                         borderLeft: 1,
  4623.                         borderRight: 1,
  4624.                         borderTop: 1,
  4625.                         borderWidth: 1,
  4626.                         margin: 1,
  4627.                         padding: 1
  4628.                     };
  4629.                 t.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(e, n) {
  4630.                     t.fx.step[n] = function(t) {
  4631.                         ("none" !== t.end && !t.setAttr || 1 === t.pos && !t.setAttr) && (jQuery.style(t.elem, n, t.end), t.setAttr = !0)
  4632.                     }
  4633.                 }), t.fn.addBack || (t.fn.addBack = function(t) {
  4634.                     return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
  4635.                 }), t.effects.animateClass = function(o, r, s, a) {
  4636.                     var l = t.speed(r, s, a);
  4637.                     return this.queue(function() {
  4638.                         var r, s = t(this),
  4639.                             a = s.attr("class") || "",
  4640.                             c = l.children ? s.find("*").addBack() : s;
  4641.                         c = c.map(function() {
  4642.                             var n = t(this);
  4643.                             return {
  4644.                                 el: n,
  4645.                                 start: e(this)
  4646.                             }
  4647.                         }), r = function() {
  4648.                             t.each(i, function(t, e) {
  4649.                                 o[e] && s[e + "Class"](o[e])
  4650.                             })
  4651.                         }, r(), c = c.map(function() {
  4652.                             return this.end = e(this.el[0]), this.diff = n(this.start, this.end), this
  4653.                         }), s.attr("class", a), c = c.map(function() {
  4654.                             var e = this,
  4655.                                 n = t.Deferred(),
  4656.                                 i = t.extend({}, l, {
  4657.                                     queue: !1,
  4658.                                     complete: function() {
  4659.                                         n.resolve(e)
  4660.                                     }
  4661.                                 });
  4662.                             return this.el.animate(this.diff, i), n.promise()
  4663.                         }), t.when.apply(t, c.get()).done(function() {
  4664.                             r(), t.each(arguments, function() {
  4665.                                 var e = this.el;
  4666.                                 t.each(this.diff, function(t) {
  4667.                                     e.css(t, "")
  4668.                                 })
  4669.                             }), l.complete.call(s[0])
  4670.                         })
  4671.                     })
  4672.                 }, t.fn.extend({
  4673.                     addClass: function(e) {
  4674.                         return function(n, i, o, r) {
  4675.                             return i ? t.effects.animateClass.call(this, {
  4676.                                 add: n
  4677.                             }, i, o, r) : e.apply(this, arguments)
  4678.                         }
  4679.                     }(t.fn.addClass),
  4680.                     removeClass: function(e) {
  4681.                         return function(n, i, o, r) {
  4682.                             return arguments.length > 1 ? t.effects.animateClass.call(this, {
  4683.                                 remove: n
  4684.                             }, i, o, r) : e.apply(this, arguments)
  4685.                         }
  4686.                     }(t.fn.removeClass),
  4687.                     toggleClass: function(e) {
  4688.                         return function(n, i, o, r, s) {
  4689.                             return "boolean" == typeof i || void 0 === i ? o ? t.effects.animateClass.call(this, i ? {
  4690.                                 add: n
  4691.                             } : {
  4692.                                 remove: n
  4693.                             }, o, r, s) : e.apply(this, arguments) : t.effects.animateClass.call(this, {
  4694.                                 toggle: n
  4695.                             }, i, o, r)
  4696.                         }
  4697.                     }(t.fn.toggleClass),
  4698.                     switchClass: function(e, n, i, o, r) {
  4699.                         return t.effects.animateClass.call(this, {
  4700.                             add: n,
  4701.                             remove: e
  4702.                         }, i, o, r)
  4703.                     }
  4704.                 })
  4705.             }(),
  4706.             function() {
  4707.                 function n(e, n, i, o) {
  4708.                     return t.isPlainObject(e) && (n = e, e = e.effect), e = {
  4709.                         effect: e
  4710.                     }, null == n && (n = {}), t.isFunction(n) && (o = n, i = null, n = {}), ("number" == typeof n || t.fx.speeds[n]) && (o = i, i = n, n = {}), t.isFunction(i) && (o = i, i = null), n && t.extend(e, n), i = i || n.duration, e.duration = t.fx.off ? 0 : "number" == typeof i ? i : i in t.fx.speeds ? t.fx.speeds[i] : t.fx.speeds._default, e.complete = o || n.complete, e
  4711.                 }
  4712.  
  4713.                 function i(e) {
  4714.                     return !e || "number" == typeof e || t.fx.speeds[e] ? !0 : "string" != typeof e || t.effects.effect[e] ? t.isFunction(e) ? !0 : "object" != typeof e || e.effect ? !1 : !0 : !0
  4715.                 }
  4716.                 t.extend(t.effects, {
  4717.                     version: "1.11.0",
  4718.                     save: function(t, n) {
  4719.                         for (var i = 0; i < n.length; i++) null !== n[i] && t.data(e + n[i], t[0].style[n[i]])
  4720.                     },
  4721.                     restore: function(t, n) {
  4722.                         var i, o;
  4723.                         for (o = 0; o < n.length; o++) null !== n[o] && (i = t.data(e + n[o]), void 0 === i && (i = ""), t.css(n[o], i))
  4724.                     },
  4725.                     setMode: function(t, e) {
  4726.                         return "toggle" === e && (e = t.is(":hidden") ? "show" : "hide"), e
  4727.                     },
  4728.                     getBaseline: function(t, e) {
  4729.                         var n, i;
  4730.                         switch (t[0]) {
  4731.                             case "top":
  4732.                                 n = 0;
  4733.                                 break;
  4734.                             case "middle":
  4735.                                 n = .5;
  4736.                                 break;
  4737.                             case "bottom":
  4738.                                 n = 1;
  4739.                                 break;
  4740.                             default:
  4741.                                 n = t[0] / e.height
  4742.                         }
  4743.                         switch (t[1]) {
  4744.                             case "left":
  4745.                                 i = 0;
  4746.                                 break;
  4747.                             case "center":
  4748.                                 i = .5;
  4749.                                 break;
  4750.                             case "right":
  4751.                                 i = 1;
  4752.                                 break;
  4753.                             default:
  4754.                                 i = t[1] / e.width
  4755.                         }
  4756.                         return {
  4757.                             x: i,
  4758.                             y: n
  4759.                         }
  4760.                     },
  4761.                     createWrapper: function(e) {
  4762.                         if (e.parent().is(".ui-effects-wrapper")) return e.parent();
  4763.                         var n = {
  4764.                                 width: e.outerWidth(!0),
  4765.                                 height: e.outerHeight(!0),
  4766.                                 "float": e.css("float")
  4767.                             },
  4768.                             i = t("<div></div>").addClass("ui-effects-wrapper").css({
  4769.                                 fontSize: "100%",
  4770.                                 background: "transparent",
  4771.                                 border: "none",
  4772.                                 margin: 0,
  4773.                                 padding: 0
  4774.                             }),
  4775.                             o = {
  4776.                                 width: e.width(),
  4777.                                 height: e.height()
  4778.                             },
  4779.                             r = document.activeElement;
  4780.                         try {
  4781.                             r.id
  4782.                         } catch (s) {
  4783.                             r = document.body
  4784.                         }
  4785.                         return e.wrap(i), (e[0] === r || t.contains(e[0], r)) && t(r).focus(), i = e.parent(), "static" === e.css("position") ? (i.css({
  4786.                             position: "relative"
  4787.                         }), e.css({
  4788.                             position: "relative"
  4789.                         })) : (t.extend(n, {
  4790.                             position: e.css("position"),
  4791.                             zIndex: e.css("z-index")
  4792.                         }), t.each(["top", "left", "bottom", "right"], function(t, i) {
  4793.                             n[i] = e.css(i), isNaN(parseInt(n[i], 10)) && (n[i] = "auto")
  4794.                         }), e.css({
  4795.                             position: "relative",
  4796.                             top: 0,
  4797.                             left: 0,
  4798.                             right: "auto",
  4799.                             bottom: "auto"
  4800.                         })), e.css(o), i.css(n).show()
  4801.                     },
  4802.                     removeWrapper: function(e) {
  4803.                         var n = document.activeElement;
  4804.                         return e.parent().is(".ui-effects-wrapper") && (e.parent().replaceWith(e), (e[0] === n || t.contains(e[0], n)) && t(n).focus()), e
  4805.                     },
  4806.                     setTransition: function(e, n, i, o) {
  4807.                         return o = o || {}, t.each(n, function(t, n) {
  4808.                             var r = e.cssUnit(n);
  4809.                             r[0] > 0 && (o[n] = r[0] * i + r[1])
  4810.                         }), o
  4811.                     }
  4812.                 }), t.fn.extend({
  4813.                     effect: function() {
  4814.                         function e(e) {
  4815.                             function n() {
  4816.                                 t.isFunction(r) && r.call(o[0]), t.isFunction(e) && e()
  4817.                             }
  4818.                             var o = t(this),
  4819.                                 r = i.complete,
  4820.                                 a = i.mode;
  4821.                             (o.is(":hidden") ? "hide" === a : "show" === a) ? (o[a](), n()) : s.call(o[0], i, n)
  4822.                         }
  4823.                         var i = n.apply(this, arguments),
  4824.                             o = i.mode,
  4825.                             r = i.queue,
  4826.                             s = t.effects.effect[i.effect];
  4827.                         return t.fx.off || !s ? o ? this[o](i.duration, i.complete) : this.each(function() {
  4828.                             i.complete && i.complete.call(this)
  4829.                         }) : r === !1 ? this.each(e) : this.queue(r || "fx", e)
  4830.                     },
  4831.                     show: function(t) {
  4832.                         return function(e) {
  4833.                             if (i(e)) return t.apply(this, arguments);
  4834.                             var o = n.apply(this, arguments);
  4835.                             return o.mode = "show", this.effect.call(this, o)
  4836.                         }
  4837.                     }(t.fn.show),
  4838.                     hide: function(t) {
  4839.                         return function(e) {
  4840.                             if (i(e)) return t.apply(this, arguments);
  4841.                             var o = n.apply(this, arguments);
  4842.                             return o.mode = "hide", this.effect.call(this, o)
  4843.                         }
  4844.                     }(t.fn.hide),
  4845.                     toggle: function(t) {
  4846.                         return function(e) {
  4847.                             if (i(e) || "boolean" == typeof e) return t.apply(this, arguments);
  4848.                             var o = n.apply(this, arguments);
  4849.                             return o.mode = "toggle", this.effect.call(this, o)
  4850.                         }
  4851.                     }(t.fn.toggle),
  4852.                     cssUnit: function(e) {
  4853.                         var n = this.css(e),
  4854.                             i = [];
  4855.                         return t.each(["em", "px", "%", "pt"], function(t, e) {
  4856.                             n.indexOf(e) > 0 && (i = [parseFloat(n), e])
  4857.                         }), i
  4858.                     }
  4859.                 })
  4860.             }(),
  4861.             function() {
  4862.                 var e = {};
  4863.                 t.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(t, n) {
  4864.                     e[n] = function(e) {
  4865.                         return Math.pow(e, t + 2)
  4866.                     }
  4867.                 }), t.extend(e, {
  4868.                     Sine: function(t) {
  4869.                         return 1 - Math.cos(t * Math.PI / 2)
  4870.                     },
  4871.                     Circ: function(t) {
  4872.                         return 1 - Math.sqrt(1 - t * t)
  4873.                     },
  4874.                     Elastic: function(t) {
  4875.                         return 0 === t || 1 === t ? t : -Math.pow(2, 8 * (t - 1)) * Math.sin((80 * (t - 1) - 7.5) * Math.PI / 15)
  4876.                     },
  4877.                     Back: function(t) {
  4878.                         return t * t * (3 * t - 2)
  4879.                     },
  4880.                     Bounce: function(t) {
  4881.                         for (var e, n = 4; t < ((e = Math.pow(2, --n)) - 1) / 11;);
  4882.                         return 1 / Math.pow(4, 3 - n) - 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2)
  4883.                     }
  4884.                 }), t.each(e, function(e, n) {
  4885.                     t.easing["easeIn" + e] = n, t.easing["easeOut" + e] = function(t) {
  4886.                         return 1 - n(1 - t)
  4887.                     }, t.easing["easeInOut" + e] = function(t) {
  4888.                         return .5 > t ? n(2 * t) / 2 : 1 - n(-2 * t + 2) / 2
  4889.                     }
  4890.                 })
  4891.             }(), t.effects
  4892.     }),
  4893.     function(t) {
  4894.         "function" == typeof define && define.amd ? define(["jquery", "./effect"], t) : t(jQuery)
  4895.     }(function(t) {
  4896.         return t.effects.effect.highlight = function(e, n) {
  4897.             var i = t(this),
  4898.                 o = ["backgroundImage", "backgroundColor", "opacity"],
  4899.                 r = t.effects.setMode(i, e.mode || "show"),
  4900.                 s = {
  4901.                     backgroundColor: i.css("backgroundColor")
  4902.                 };
  4903.             "hide" === r && (s.opacity = 0), t.effects.save(i, o), i.show().css({
  4904.                 backgroundImage: "none",
  4905.                 backgroundColor: e.color || "#ffff99"
  4906.             }).animate(s, {
  4907.                 queue: !1,
  4908.                 duration: e.duration,
  4909.                 easing: e.easing,
  4910.                 complete: function() {
  4911.                     "hide" === r && i.hide(), t.effects.restore(i, o), n()
  4912.                 }
  4913.             })
  4914.         }
  4915.     }), ! function(t) {
  4916.         "use strict";
  4917.         t(function() {
  4918.             t.support.transition = function() {
  4919.                 var t = function() {
  4920.                     var t, e = document.createElement("bootstrap"),
  4921.                         n = {
  4922.                             WebkitTransition: "webkitTransitionEnd",
  4923.                             MozTransition: "transitionend",
  4924.                             OTransition: "oTransitionEnd otransitionend",
  4925.                             transition: "transitionend"
  4926.                         };
  4927.                     for (t in n)
  4928.                         if (void 0 !== e.style[t]) return n[t]
  4929.                 }();
  4930.                 return t && {
  4931.                     end: t
  4932.                 }
  4933.             }()
  4934.         })
  4935.     }(window.jQuery), ! function(t) {
  4936.         "use strict";
  4937.         var e = '[data-dismiss="alert"]',
  4938.             n = function(n) {
  4939.                 t(n).on("click", e, this.close)
  4940.             };
  4941.         n.prototype.close = function(e) {
  4942.             function n() {
  4943.                 i.trigger("closed").remove()
  4944.             }
  4945.             var i, o = t(this),
  4946.                 r = o.attr("data-target");
  4947.             r || (r = o.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, "")), i = t(r), e && e.preventDefault(), i.length || (i = o.hasClass("alert") ? o : o.parent()), i.trigger(e = t.Event("close")), e.isDefaultPrevented() || (i.removeClass("in"), t.support.transition && i.hasClass("fade") ? i.on(t.support.transition.end, n) : n())
  4948.         };
  4949.         var i = t.fn.alert;
  4950.         t.fn.alert = function(e) {
  4951.             return this.each(function() {
  4952.                 var i = t(this),
  4953.                     o = i.data("alert");
  4954.                 o || i.data("alert", o = new n(this)), "string" == typeof e && o[e].call(i)
  4955.             })
  4956.         }, t.fn.alert.Constructor = n, t.fn.alert.noConflict = function() {
  4957.             return t.fn.alert = i, this
  4958.         }, t(document).on("click.alert.data-api", e, n.prototype.close)
  4959.     }(window.jQuery), ! function(t) {
  4960.         "use strict";
  4961.         var e = function(e, n) {
  4962.             this.options = n, this.$element = t(e).delegate('[data-dismiss="modal"]', "click.dismiss.modal", t.proxy(this.hide, this)), this.options.remote && this.$element.find(".modal-body").load(this.options.remote)
  4963.         };
  4964.         e.prototype = {
  4965.             constructor: e,
  4966.             toggle: function() {
  4967.                 return this[this.isShown ? "hide" : "show"]()
  4968.             },
  4969.             show: function() {
  4970.                 var e = this,
  4971.                     n = t.Event("show");
  4972.                 this.$element.trigger(n), this.isShown || n.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.backdrop(function() {
  4973.                     var n = t.support.transition && e.$element.hasClass("fade");
  4974.                     e.$element.parent().length || e.$element.appendTo(document.body), e.$element.show(), n && e.$element[0].offsetWidth, e.$element.addClass("in").attr("aria-hidden", !1), e.enforceFocus(), n ? e.$element.one(t.support.transition.end, function() {
  4975.                         e.$element.focus().trigger("shown")
  4976.                     }) : e.$element.focus().trigger("shown")
  4977.                 }))
  4978.             },
  4979.             hide: function(e) {
  4980.                 e && e.preventDefault();
  4981.                 e = t.Event("hide"), this.$element.trigger(e), this.isShown && !e.isDefaultPrevented() && (this.isShown = !1, this.escape(), t(document).off("focusin.modal"), this.$element.removeClass("in").attr("aria-hidden", !0), t.support.transition && this.$element.hasClass("fade") ? this.hideWithTransition() : this.hideModal())
  4982.             },
  4983.             enforceFocus: function() {
  4984.                 var e = this;
  4985.                 t(document).on("focusin.modal", function(t) {
  4986.                     e.$element[0] === t.target || e.$element.has(t.target).length || e.$element.focus()
  4987.                 })
  4988.             },
  4989.             escape: function() {
  4990.                 var t = this;
  4991.                 this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.modal", function(e) {
  4992.                     27 == e.which && t.hide()
  4993.                 }) : this.isShown || this.$element.off("keyup.dismiss.modal")
  4994.             },
  4995.             hideWithTransition: function() {
  4996.                 var e = this,
  4997.                     n = setTimeout(function() {
  4998.                         e.$element.off(t.support.transition.end), e.hideModal()
  4999.                     }, 500);
  5000.                 this.$element.one(t.support.transition.end, function() {
  5001.                     clearTimeout(n), e.hideModal()
  5002.                 })
  5003.             },
  5004.             hideModal: function() {
  5005.                 var t = this;
  5006.                 this.$element.hide(), this.backdrop(function() {
  5007.                     t.removeBackdrop(), t.$element.trigger("hidden")
  5008.                 })
  5009.             },
  5010.             removeBackdrop: function() {
  5011.                 this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
  5012.             },
  5013.             backdrop: function(e) {
  5014.                 var n = this.$element.hasClass("fade") ? "fade" : "";
  5015.                 if (this.isShown && this.options.backdrop) {
  5016.                     var i = t.support.transition && n;
  5017.                     if (this.$backdrop = t('<div class="modal-backdrop ' + n + '" />').appendTo(document.body), this.$backdrop.click("static" == this.options.backdrop ? t.proxy(this.$element[0].focus, this.$element[0]) : t.proxy(this.hide, this)), i && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !e) return;
  5018.                     i ? this.$backdrop.one(t.support.transition.end, e) : e()
  5019.                 } else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), t.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(t.support.transition.end, e) : e()) : e && e()
  5020.             }
  5021.         };
  5022.         var n = t.fn.modal;
  5023.         t.fn.modal = function(n) {
  5024.             return this.each(function() {
  5025.                 var i = t(this),
  5026.                     o = i.data("modal"),
  5027.                     r = t.extend({}, t.fn.modal.defaults, i.data(), "object" == typeof n && n);
  5028.                 o || i.data("modal", o = new e(this, r)), "string" == typeof n ? o[n]() : r.show && o.show()
  5029.             })
  5030.         }, t.fn.modal.defaults = {
  5031.             backdrop: !0,
  5032.             keyboard: !0,
  5033.             show: !0
  5034.         }, t.fn.modal.Constructor = e, t.fn.modal.noConflict = function() {
  5035.             return t.fn.modal = n, this
  5036.         }, t(document).on("click.modal.data-api", '[data-toggle="modal"]', function(e) {
  5037.             var n = t(this),
  5038.                 i = n.attr("href"),
  5039.                 o = t(n.attr("data-target") || i && i.replace(/.*(?=#[^\s]+$)/, "")),
  5040.                 r = o.data("modal") ? "toggle" : t.extend({
  5041.                     remote: !/#/.test(i) && i
  5042.                 }, o.data(), n.data());
  5043.             e.preventDefault(), o.modal(r).one("hide", function() {
  5044.                 n.focus()
  5045.             })
  5046.         })
  5047.     }(window.jQuery), ! function(t) {
  5048.         "use strict";
  5049.  
  5050.         function e() {
  5051.             t(".dropdown-backdrop").remove(), t(i).each(function() {
  5052.                 n(t(this)).removeClass("open")
  5053.             })
  5054.         }
  5055.  
  5056.         function n(e) {
  5057.             var n, i = e.attr("data-target");
  5058.             return i || (i = e.attr("href"), i = i && /#/.test(i) && i.replace(/.*(?=#[^\s]*$)/, "")), n = i && t(i), n && n.length || (n = e.parent()), n
  5059.         }
  5060.         var i = "[data-toggle=dropdown]",
  5061.             o = function(e) {
  5062.                 var n = t(e).on("click.dropdown.data-api", this.toggle);
  5063.                 t("html").on("click.dropdown.data-api", function() {
  5064.                     n.parent().removeClass("open")
  5065.                 })
  5066.             };
  5067.         o.prototype = {
  5068.             constructor: o,
  5069.             toggle: function() {
  5070.                 var i, o, r = t(this);
  5071.                 if (!r.is(".disabled, :disabled")) return i = n(r), o = i.hasClass("open"), e(), o || ("ontouchstart" in document.documentElement && t('<div class="dropdown-backdrop"/>').insertBefore(t(this)).on("click", e), i.toggleClass("open")), r.focus(), !1
  5072.             },
  5073.             keydown: function(e) {
  5074.                 var o, r, s, a, l;
  5075.                 if (/(38|40|27)/.test(e.keyCode) && (o = t(this), e.preventDefault(), e.stopPropagation(), !o.is(".disabled, :disabled"))) {
  5076.                     if (s = n(o), a = s.hasClass("open"), !a || a && 27 == e.keyCode) return 27 == e.which && s.find(i).focus(), o.click();
  5077.                     r = t("[role=menu] li:not(.divider):visible a", s), r.length && (l = r.index(r.filter(":focus")), 38 == e.keyCode && l > 0 && l--, 40 == e.keyCode && l < r.length - 1 && l++, ~l || (l = 0), r.eq(l).focus())
  5078.                 }
  5079.             }
  5080.         };
  5081.         var r = t.fn.dropdown;
  5082.         t.fn.dropdown = function(e) {
  5083.             return this.each(function() {
  5084.                 var n = t(this),
  5085.                     i = n.data("dropdown");
  5086.                 i || n.data("dropdown", i = new o(this)), "string" == typeof e && i[e].call(n)
  5087.             })
  5088.         }, t.fn.dropdown.Constructor = o, t.fn.dropdown.noConflict = function() {
  5089.             return t.fn.dropdown = r, this
  5090.         }, t(document).on("click.dropdown.data-api", e).on("click.dropdown.data-api", ".dropdown form", function(t) {
  5091.             t.stopPropagation()
  5092.         }).on("click.dropdown.data-api", i, o.prototype.toggle).on("keydown.dropdown.data-api", i + ", [role=menu]", o.prototype.keydown)
  5093.     }(window.jQuery), ! function(t) {
  5094.         "use strict";
  5095.  
  5096.         function e(e, n) {
  5097.             var i, o = t.proxy(this.process, this),
  5098.                 r = t(t(e).is("body") ? window : e);
  5099.             this.options = t.extend({}, t.fn.scrollspy.defaults, n), this.$scrollElement = r.on("scroll.scroll-spy.data-api", o), this.selector = (this.options.target || (i = t(e).attr("href")) && i.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a", this.$body = t("body"), this.refresh(), this.process()
  5100.         }
  5101.         e.prototype = {
  5102.             constructor: e,
  5103.             refresh: function() {
  5104.                 var e, n = this;
  5105.                 this.offsets = t([]), this.targets = t([]), e = this.$body.find(this.selector).map(function() {
  5106.                     var e = t(this),
  5107.                         i = e.data("target") || e.attr("href"),
  5108.                         o = /^#\w/.test(i) && t(i);
  5109.                     return o && o.length && [
  5110.                         [o.position().top + (!t.isWindow(n.$scrollElement.get(0)) && n.$scrollElement.scrollTop()), i]
  5111.                     ] || null
  5112.                 }).sort(function(t, e) {
  5113.                     return t[0] - e[0]
  5114.                 }).each(function() {
  5115.                     n.offsets.push(this[0]), n.targets.push(this[1])
  5116.                 })
  5117.             },
  5118.             process: function() {
  5119.                 var t, e = this.$scrollElement.scrollTop() + this.options.offset,
  5120.                     n = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight,
  5121.                     i = n - this.$scrollElement.height(),
  5122.                     o = this.offsets,
  5123.                     r = this.targets,
  5124.                     s = this.activeTarget;
  5125.                 if (e >= i) return s != (t = r.last()[0]) && this.activate(t);
  5126.                 for (t = o.length; t--;) s != r[t] && e >= o[t] && (!o[t + 1] || e <= o[t + 1]) && this.activate(r[t])
  5127.             },
  5128.             activate: function(e) {
  5129.                 var n, i;
  5130.                 this.activeTarget = e, t(this.selector).parent(".active").removeClass("active"), i = this.selector + '[data-target="' + e + '"],' + this.selector + '[href="' + e + '"]', n = t(i).parent("li").addClass("active"), n.parent(".dropdown-menu").length && (n = n.closest("li.dropdown").addClass("active")), n.trigger("activate")
  5131.             }
  5132.         };
  5133.         var n = t.fn.scrollspy;
  5134.         t.fn.scrollspy = function(n) {
  5135.             return this.each(function() {
  5136.                 var i = t(this),
  5137.                     o = i.data("scrollspy"),
  5138.                     r = "object" == typeof n && n;
  5139.                 o || i.data("scrollspy", o = new e(this, r)), "string" == typeof n && o[n]()
  5140.             })
  5141.         }, t.fn.scrollspy.Constructor = e, t.fn.scrollspy.defaults = {
  5142.             offset: 10
  5143.         }, t.fn.scrollspy.noConflict = function() {
  5144.             return t.fn.scrollspy = n, this
  5145.         }, t(window).on("load", function() {
  5146.             t('[data-spy="scroll"]').each(function() {
  5147.                 var e = t(this);
  5148.                 e.scrollspy(e.data())
  5149.             })
  5150.         })
  5151.     }(window.jQuery), ! function(t) {
  5152.         "use strict";
  5153.         var e = function(e) {
  5154.             this.element = t(e)
  5155.         };
  5156.         e.prototype = {
  5157.             constructor: e,
  5158.             show: function() {
  5159.                 var e, n, i, o = this.element,
  5160.                     r = o.closest("ul:not(.dropdown-menu)"),
  5161.                     s = o.attr("data-target");
  5162.                 s || (s = o.attr("href"), s = s && s.replace(/.*(?=#[^\s]*$)/, "")), o.parent("li").hasClass("active") || (e = r.find(".active:last a")[0], i = t.Event("show", {
  5163.                     relatedTarget: e
  5164.                 }), o.trigger(i), i.isDefaultPrevented() || (n = t(s), this.activate(o.parent("li"), r), this.activate(n, n.parent(), function() {
  5165.                     o.trigger({
  5166.                         type: "shown",
  5167.                         relatedTarget: e
  5168.                     })
  5169.                 })))
  5170.             },
  5171.             activate: function(e, n, i) {
  5172.                 function o() {
  5173.                     r.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), e.addClass("active"), s ? (e[0].offsetWidth, e.addClass("in")) : e.removeClass("fade"), e.parent(".dropdown-menu") && e.closest("li.dropdown").addClass("active"), i && i()
  5174.                 }
  5175.                 var r = n.find("> .active"),
  5176.                     s = i && t.support.transition && r.hasClass("fade");
  5177.                 s ? r.one(t.support.transition.end, o) : o(), r.removeClass("in")
  5178.             }
  5179.         };
  5180.         var n = t.fn.tab;
  5181.         t.fn.tab = function(n) {
  5182.             return this.each(function() {
  5183.                 var i = t(this),
  5184.                     o = i.data("tab");
  5185.                 o || i.data("tab", o = new e(this)), "string" == typeof n && o[n]()
  5186.             })
  5187.         }, t.fn.tab.Constructor = e, t.fn.tab.noConflict = function() {
  5188.             return t.fn.tab = n, this
  5189.         }, t(document).on("click.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(e) {
  5190.             e.preventDefault(), t(this).tab("show")
  5191.         })
  5192.     }(window.jQuery), ! function(t) {
  5193.         "use strict";
  5194.         var e = function(t, e) {
  5195.             this.init("tooltip", t, e)
  5196.         };
  5197.         e.prototype = {
  5198.             constructor: e,
  5199.             init: function(e, n, i) {
  5200.                 var o, r, s, a, l;
  5201.                 for (this.type = e, this.$element = t(n), this.options = this.getOptions(i), this.enabled = !0, s = this.options.trigger.split(" "), l = s.length; l--;) a = s[l], "click" == a ? this.$element.on("click." + this.type, this.options.selector, t.proxy(this.toggle, this)) : "manual" != a && (o = "hover" == a ? "mouseenter" : "focus", r = "hover" == a ? "mouseleave" : "blur", this.$element.on(o + "." + this.type, this.options.selector, t.proxy(this.enter, this)), this.$element.on(r + "." + this.type, this.options.selector, t.proxy(this.leave, this)));
  5202.                 this.options.selector ? this._options = t.extend({}, this.options, {
  5203.                     trigger: "manual",
  5204.                     selector: ""
  5205.                 }) : this.fixTitle()
  5206.             },
  5207.             getOptions: function(e) {
  5208.                 return e = t.extend({}, t.fn[this.type].defaults, this.$element.data(), e), e.delay && "number" == typeof e.delay && (e.delay = {
  5209.                     show: e.delay,
  5210.                     hide: e.delay
  5211.                 }), e
  5212.             },
  5213.             enter: function(e) {
  5214.                 var n, i = t.fn[this.type].defaults,
  5215.                     o = {};
  5216.                 return this._options && t.each(this._options, function(t, e) {
  5217.                     i[t] != e && (o[t] = e)
  5218.                 }, this), n = t(e.currentTarget)[this.type](o).data(this.type), n.options.delay && n.options.delay.show ? (clearTimeout(this.timeout), n.hoverState = "in", void(this.timeout = setTimeout(function() {
  5219.                     "in" == n.hoverState && n.show()
  5220.                 }, n.options.delay.show))) : n.show()
  5221.             },
  5222.             leave: function(e) {
  5223.                 var n = t(e.currentTarget)[this.type](this._options).data(this.type);
  5224.                 return this.timeout && clearTimeout(this.timeout), n.options.delay && n.options.delay.hide ? (n.hoverState = "out", void(this.timeout = setTimeout(function() {
  5225.                     "out" == n.hoverState && n.hide()
  5226.                 }, n.options.delay.hide))) : n.hide()
  5227.             },
  5228.             show: function() {
  5229.                 var e, n, i, o, r, s, a = t.Event("show");
  5230.                 if (this.hasContent() && this.enabled) {
  5231.                     if (this.$element.trigger(a), a.isDefaultPrevented()) return;
  5232.                     switch (e = this.tip(), this.setContent(), this.options.animation && e.addClass("fade"), r = "function" == typeof this.options.placement ? this.options.placement.call(this, e[0], this.$element[0]) : this.options.placement, e.detach().css({
  5233.                         top: 0,
  5234.                         left: 0,
  5235.                         display: "block"
  5236.                     }), this.options.container ? e.appendTo(this.options.container) : e.insertAfter(this.$element), n = this.getPosition(), i = e[0].offsetWidth, o = e[0].offsetHeight, r) {
  5237.                         case "bottom":
  5238.                             s = {
  5239.                                 top: n.top + n.height,
  5240.                                 left: n.left + n.width / 2 - i / 2
  5241.                             };
  5242.                             break;
  5243.                         case "top":
  5244.                             s = {
  5245.                                 top: n.top - o,
  5246.                                 left: n.left + n.width / 2 - i / 2
  5247.                             };
  5248.                             break;
  5249.                         case "left":
  5250.                             s = {
  5251.                                 top: n.top + n.height / 2 - o / 2,
  5252.                                 left: n.left - i
  5253.                             };
  5254.                             break;
  5255.                         case "right":
  5256.                             s = {
  5257.                                 top: n.top + n.height / 2 - o / 2,
  5258.                                 left: n.left + n.width
  5259.                             }
  5260.                     }
  5261.                     this.applyPlacement(s, r), this.$element.trigger("shown")
  5262.                 }
  5263.             },
  5264.             applyPlacement: function(t, e) {
  5265.                 var n, i, o, r, s = this.tip(),
  5266.                     a = s[0].offsetWidth,
  5267.                     l = s[0].offsetHeight;
  5268.                 s.offset(t).addClass(e).addClass("in"), n = s[0].offsetWidth, i = s[0].offsetHeight, "top" == e && i != l && (t.top = t.top + l - i, r = !0), "bottom" == e || "top" == e ? (o = 0, t.left < 0 && (o = -2 * t.left, t.left = 0, s.offset(t), n = s[0].offsetWidth, i = s[0].offsetHeight), this.replaceArrow(o - a + n, n, "left")) : this.replaceArrow(i - l, i, "top"), r && s.offset(t)
  5269.             },
  5270.             replaceArrow: function(t, e, n) {
  5271.                 this.arrow().css(n, t ? 50 * (1 - t / e) + "%" : "")
  5272.             },
  5273.             setContent: function() {
  5274.                 var t = this.tip(),
  5275.                     e = this.getTitle();
  5276.                 t.find(".tooltip-inner")[this.options.html ? "html" : "text"](e), t.removeClass("fade in top bottom left right")
  5277.             },
  5278.             hide: function() {
  5279.                 function e() {
  5280.                     var e = setTimeout(function() {
  5281.                         n.off(t.support.transition.end).detach()
  5282.                     }, 500);
  5283.                     n.one(t.support.transition.end, function() {
  5284.                         clearTimeout(e), n.detach()
  5285.                     })
  5286.                 }
  5287.                 var n = this.tip(),
  5288.                     i = t.Event("hide");
  5289.                 return this.$element.trigger(i), i.isDefaultPrevented() ? void 0 : (n.removeClass("in"), t.support.transition && this.$tip.hasClass("fade") ? e() : n.detach(), this.$element.trigger("hidden"), this)
  5290.             },
  5291.             fixTitle: function() {
  5292.                 var t = this.$element;
  5293.                 (t.attr("title") || "string" != typeof t.attr("data-original-title")) && t.attr("data-original-title", t.attr("title") || "").attr("title", "")
  5294.             },
  5295.             hasContent: function() {
  5296.                 return this.getTitle()
  5297.             },
  5298.             getPosition: function() {
  5299.                 var e = this.$element[0];
  5300.                 return t.extend({}, "function" == typeof e.getBoundingClientRect ? e.getBoundingClientRect() : {
  5301.                     width: e.offsetWidth,
  5302.                     height: e.offsetHeight
  5303.                 }, this.$element.offset())
  5304.             },
  5305.             getTitle: function() {
  5306.                 var t, e = this.$element,
  5307.                     n = this.options;
  5308.                 return t = e.attr("data-original-title") || ("function" == typeof n.title ? n.title.call(e[0]) : n.title)
  5309.             },
  5310.             tip: function() {
  5311.                 return this.$tip = this.$tip || t(this.options.template)
  5312.             },
  5313.             arrow: function() {
  5314.                 return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
  5315.             },
  5316.             validate: function() {
  5317.                 this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null)
  5318.             },
  5319.             enable: function() {
  5320.                 this.enabled = !0
  5321.             },
  5322.             disable: function() {
  5323.                 this.enabled = !1
  5324.             },
  5325.             toggleEnabled: function() {
  5326.                 this.enabled = !this.enabled
  5327.             },
  5328.             toggle: function(e) {
  5329.                 var n = e ? t(e.currentTarget)[this.type](this._options).data(this.type) : this;
  5330.                 n.tip().hasClass("in") ? n.hide() : n.show()
  5331.             },
  5332.             destroy: function() {
  5333.                 this.hide().$element.off("." + this.type).removeData(this.type)
  5334.             }
  5335.         };
  5336.         var n = t.fn.tooltip;
  5337.         t.fn.tooltip = function(n) {
  5338.             return this.each(function() {
  5339.                 var i = t(this),
  5340.                     o = i.data("tooltip"),
  5341.                     r = "object" == typeof n && n;
  5342.                 o || i.data("tooltip", o = new e(this, r)), "string" == typeof n && o[n]()
  5343.             })
  5344.         }, t.fn.tooltip.Constructor = e, t.fn.tooltip.defaults = {
  5345.             animation: !0,
  5346.             placement: "top",
  5347.             selector: !1,
  5348.             template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
  5349.             trigger: "hover focus",
  5350.             title: "",
  5351.             delay: 0,
  5352.             html: !1,
  5353.             container: !1
  5354.         }, t.fn.tooltip.noConflict = function() {
  5355.             return t.fn.tooltip = n, this
  5356.         }
  5357.     }(window.jQuery), ! function(t) {
  5358.         "use strict";
  5359.         var e = function(t, e) {
  5360.             this.init("popover", t, e)
  5361.         };
  5362.         e.prototype = t.extend({}, t.fn.tooltip.Constructor.prototype, {
  5363.             constructor: e,
  5364.             setContent: function() {
  5365.                 var t = this.tip(),
  5366.                     e = this.getTitle(),
  5367.                     n = this.getContent();
  5368.                 t.find(".popover-title")[this.options.html ? "html" : "text"](e), t.find(".popover-content")[this.options.html ? "html" : "text"](n), t.removeClass("fade top bottom left right in")
  5369.             },
  5370.             hasContent: function() {
  5371.                 return this.getTitle() || this.getContent()
  5372.             },
  5373.             getContent: function() {
  5374.                 var t, e = this.$element,
  5375.                     n = this.options;
  5376.                 return t = ("function" == typeof n.content ? n.content.call(e[0]) : n.content) || e.attr("data-content")
  5377.             },
  5378.             tip: function() {
  5379.                 return this.$tip || (this.$tip = t(this.options.template)), this.$tip
  5380.             },
  5381.             destroy: function() {
  5382.                 this.hide().$element.off("." + this.type).removeData(this.type)
  5383.             }
  5384.         });
  5385.         var n = t.fn.popover;
  5386.         t.fn.popover = function(n) {
  5387.             return this.each(function() {
  5388.                 var i = t(this),
  5389.                     o = i.data("popover"),
  5390.                     r = "object" == typeof n && n;
  5391.                 o || i.data("popover", o = new e(this, r)), "string" == typeof n && o[n]()
  5392.             })
  5393.         }, t.fn.popover.Constructor = e, t.fn.popover.defaults = t.extend({}, t.fn.tooltip.defaults, {
  5394.             placement: "right",
  5395.             trigger: "click",
  5396.             content: "",
  5397.             template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
  5398.         }), t.fn.popover.noConflict = function() {
  5399.             return t.fn.popover = n, this
  5400.         }
  5401.     }(window.jQuery), ! function(t) {
  5402.         "use strict";
  5403.         var e = function(e, n) {
  5404.             this.$element = t(e), this.options = t.extend({}, t.fn.button.defaults, n)
  5405.         };
  5406.         e.prototype.setState = function(t) {
  5407.             var e = "disabled",
  5408.                 n = this.$element,
  5409.                 i = n.data(),
  5410.                 o = n.is("input") ? "val" : "html";
  5411.             t += "Text", i.resetText || n.data("resetText", n[o]()), n[o](i[t] || this.options[t]), setTimeout(function() {
  5412.                 "loadingText" == t ? n.addClass(e).attr(e, e) : n.removeClass(e).removeAttr(e)
  5413.             }, 0)
  5414.         }, e.prototype.toggle = function() {
  5415.             var t = this.$element.closest('[data-toggle="buttons-radio"]');
  5416.             t && t.find(".active").removeClass("active"), this.$element.toggleClass("active")
  5417.         };
  5418.         var n = t.fn.button;
  5419.         t.fn.button = function(n) {
  5420.             return this.each(function() {
  5421.                 var i = t(this),
  5422.                     o = i.data("button"),
  5423.                     r = "object" == typeof n && n;
  5424.                 o || i.data("button", o = new e(this, r)), "toggle" == n ? o.toggle() : n && o.setState(n)
  5425.             })
  5426.         }, t.fn.button.defaults = {
  5427.             loadingText: "loading..."
  5428.         }, t.fn.button.Constructor = e, t.fn.button.noConflict = function() {
  5429.             return t.fn.button = n, this
  5430.         }, t(document).on("click.button.data-api", "[data-toggle^=button]", function(e) {
  5431.             var n = t(e.target);
  5432.             n.hasClass("btn") || (n = n.closest(".btn")), n.button("toggle")
  5433.         })
  5434.     }(window.jQuery), ! function(t) {
  5435.         "use strict";
  5436.         var e = function(e, n) {
  5437.             this.$element = t(e), this.options = t.extend({}, t.fn.collapse.defaults, n), this.options.parent && (this.$parent = t(this.options.parent)), this.options.toggle && this.toggle()
  5438.         };
  5439.         e.prototype = {
  5440.             constructor: e,
  5441.             dimension: function() {
  5442.                 var t = this.$element.hasClass("width");
  5443.                 return t ? "width" : "height"
  5444.             },
  5445.             show: function() {
  5446.                 var e, n, i, o;
  5447.                 if (!this.transitioning && !this.$element.hasClass("in")) {
  5448.                     if (e = this.dimension(), n = t.camelCase(["scroll", e].join("-")), i = this.$parent && this.$parent.find("> .accordion-group > .in"), i && i.length) {
  5449.                         if (o = i.data("collapse"), o && o.transitioning) return;
  5450.                         i.collapse("hide"), o || i.data("collapse", null)
  5451.                     }
  5452.                     this.$element[e](0), this.transition("addClass", t.Event("show"), "shown"), t.support.transition && this.$element[e](this.$element[0][n])
  5453.                 }
  5454.             },
  5455.             hide: function() {
  5456.                 var e;
  5457.                 !this.transitioning && this.$element.hasClass("in") && (e = this.dimension(), this.reset(this.$element[e]()), this.transition("removeClass", t.Event("hide"), "hidden"), this.$element[e](0))
  5458.             },
  5459.             reset: function(t) {
  5460.                 var e = this.dimension();
  5461.                 return this.$element.removeClass("collapse")[e](t || "auto")[0].offsetWidth, this.$element[null !== t ? "addClass" : "removeClass"]("collapse"), this
  5462.             },
  5463.             transition: function(e, n, i) {
  5464.                 var o = this,
  5465.                     r = function() {
  5466.                         "show" == n.type && o.reset(), o.transitioning = 0, o.$element.trigger(i)
  5467.                     };
  5468.                 this.$element.trigger(n), n.isDefaultPrevented() || (this.transitioning = 1, this.$element[e]("in"), t.support.transition && this.$element.hasClass("collapse") ? this.$element.one(t.support.transition.end, r) : r())
  5469.             },
  5470.             toggle: function() {
  5471.                 this[this.$element.hasClass("in") ? "hide" : "show"]()
  5472.             }
  5473.         };
  5474.         var n = t.fn.collapse;
  5475.         t.fn.collapse = function(n) {
  5476.             return this.each(function() {
  5477.                 var i = t(this),
  5478.                     o = i.data("collapse"),
  5479.                     r = t.extend({}, t.fn.collapse.defaults, i.data(), "object" == typeof n && n);
  5480.                 o || i.data("collapse", o = new e(this, r)), "string" == typeof n && o[n]()
  5481.             })
  5482.         }, t.fn.collapse.defaults = {
  5483.             toggle: !0
  5484.         }, t.fn.collapse.Constructor = e, t.fn.collapse.noConflict = function() {
  5485.             return t.fn.collapse = n, this
  5486.         }, t(document).on("click.collapse.data-api", "[data-toggle=collapse]", function(e) {
  5487.             var n, i = t(this),
  5488.                 o = i.attr("data-target") || e.preventDefault() || (n = i.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, ""),
  5489.                 r = t(o).data("collapse") ? "toggle" : i.data();
  5490.             i[t(o).hasClass("in") ? "addClass" : "removeClass"]("collapsed"), t(o).collapse(r)
  5491.         })
  5492.     }(window.jQuery), ! function(t) {
  5493.         "use strict";
  5494.         var e = function(e, n) {
  5495.             this.$element = t(e), this.$indicators = this.$element.find(".carousel-indicators"), this.options = n, "hover" == this.options.pause && this.$element.on("mouseenter", t.proxy(this.pause, this)).on("mouseleave", t.proxy(this.cycle, this))
  5496.         };
  5497.         e.prototype = {
  5498.             cycle: function(e) {
  5499.                 return e || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(t.proxy(this.next, this), this.options.interval)), this
  5500.             },
  5501.             getActiveIndex: function() {
  5502.                 return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(), this.$items.index(this.$active)
  5503.             },
  5504.             to: function(e) {
  5505.                 var n = this.getActiveIndex(),
  5506.                     i = this;
  5507.                 if (!(e > this.$items.length - 1 || 0 > e)) return this.sliding ? this.$element.one("slid", function() {
  5508.                     i.to(e)
  5509.                 }) : n == e ? this.pause().cycle() : this.slide(e > n ? "next" : "prev", t(this.$items[e]))
  5510.             },
  5511.             pause: function(e) {
  5512.                 return e || (this.paused = !0), this.$element.find(".next, .prev").length && t.support.transition.end && (this.$element.trigger(t.support.transition.end), this.cycle(!0)), clearInterval(this.interval), this.interval = null, this
  5513.             },
  5514.             next: function() {
  5515.                 return this.sliding ? void 0 : this.slide("next")
  5516.             },
  5517.             prev: function() {
  5518.                 return this.sliding ? void 0 : this.slide("prev")
  5519.             },
  5520.             slide: function(e, n) {
  5521.                 var i, o = this.$element.find(".item.active"),
  5522.                     r = n || o[e](),
  5523.                     s = this.interval,
  5524.                     a = "next" == e ? "left" : "right",
  5525.                     l = "next" == e ? "first" : "last",
  5526.                     c = this;
  5527.                 if (this.sliding = !0, s && this.pause(), r = r.length ? r : this.$element.find(".item")[l](), i = t.Event("slide", {
  5528.                     relatedTarget: r[0],
  5529.                     direction: a
  5530.                 }), !r.hasClass("active")) {
  5531.                     if (this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), this.$element.one("slid", function() {
  5532.                         var e = t(c.$indicators.children()[c.getActiveIndex()]);
  5533.                         e && e.addClass("active")
  5534.                     })), t.support.transition && this.$element.hasClass("slide")) {
  5535.                         if (this.$element.trigger(i), i.isDefaultPrevented()) return;
  5536.                         r.addClass(e), r[0].offsetWidth, o.addClass(a), r.addClass(a), this.$element.one(t.support.transition.end, function() {
  5537.                             r.removeClass([e, a].join(" ")).addClass("active"), o.removeClass(["active", a].join(" ")), c.sliding = !1, setTimeout(function() {
  5538.                                 c.$element.trigger("slid")
  5539.                             }, 0)
  5540.                         })
  5541.                     } else {
  5542.                         if (this.$element.trigger(i), i.isDefaultPrevented()) return;
  5543.                         o.removeClass("active"), r.addClass("active"), this.sliding = !1, this.$element.trigger("slid")
  5544.                     }
  5545.                     return s && this.cycle(), this
  5546.                 }
  5547.             }
  5548.         };
  5549.         var n = t.fn.carousel;
  5550.         t.fn.carousel = function(n) {
  5551.             return this.each(function() {
  5552.                 var i = t(this),
  5553.                     o = i.data("carousel"),
  5554.                     r = t.extend({}, t.fn.carousel.defaults, "object" == typeof n && n),
  5555.                     s = "string" == typeof n ? n : r.slide;
  5556.                 o || i.data("carousel", o = new e(this, r)), "number" == typeof n ? o.to(n) : s ? o[s]() : r.interval && o.pause().cycle()
  5557.             })
  5558.         }, t.fn.carousel.defaults = {
  5559.             interval: 5e3,
  5560.             pause: "hover"
  5561.         }, t.fn.carousel.Constructor = e, t.fn.carousel.noConflict = function() {
  5562.             return t.fn.carousel = n, this
  5563.         }, t(document).on("click.carousel.data-api", "[data-slide], [data-slide-to]", function(e) {
  5564.             var n, i, o = t(this),
  5565.                 r = t(o.attr("data-target") || (n = o.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, "")),
  5566.                 s = t.extend({}, r.data(), o.data());
  5567.             r.carousel(s), (i = o.attr("data-slide-to")) && r.data("carousel").pause().to(i).cycle(), e.preventDefault()
  5568.         })
  5569.     }(window.jQuery), ! function(t) {
  5570.         "use strict";
  5571.         var e = function(e, n) {
  5572.             this.$element = t(e), this.options = t.extend({}, t.fn.typeahead.defaults, n), this.matcher = this.options.matcher || this.matcher, this.sorter = this.options.sorter || this.sorter, this.highlighter = this.options.highlighter || this.highlighter, this.updater = this.options.updater || this.updater, this.source = this.options.source, this.$menu = t(this.options.menu), this.shown = !1, this.listen()
  5573.         };
  5574.         e.prototype = {
  5575.             constructor: e,
  5576.             select: function() {
  5577.                 var t = this.$menu.find(".active").attr("data-value");
  5578.                 return this.$element.val(this.updater(t)).change(), this.hide()
  5579.             },
  5580.             updater: function(t) {
  5581.                 return t
  5582.             },
  5583.             show: function() {
  5584.                 var e = t.extend({}, this.$element.position(), {
  5585.                     height: this.$element[0].offsetHeight
  5586.                 });
  5587.                 return this.$menu.insertAfter(this.$element).css({
  5588.                     top: e.top + e.height,
  5589.                     left: e.left
  5590.                 }).show(), this.shown = !0, this
  5591.             },
  5592.             hide: function() {
  5593.                 return this.$menu.hide(), this.shown = !1, this
  5594.             },
  5595.             lookup: function() {
  5596.                 var e;
  5597.                 return this.query = this.$element.val(), !this.query || this.query.length < this.options.minLength ? this.shown ? this.hide() : this : (e = t.isFunction(this.source) ? this.source(this.query, t.proxy(this.process, this)) : this.source, e ? this.process(e) : this)
  5598.             },
  5599.             process: function(e) {
  5600.                 var n = this;
  5601.                 return e = t.grep(e, function(t) {
  5602.                     return n.matcher(t)
  5603.                 }), e = this.sorter(e), e.length ? this.render(e.slice(0, this.options.items)).show() : this.shown ? this.hide() : this
  5604.             },
  5605.             matcher: function(t) {
  5606.                 return ~t.toLowerCase().indexOf(this.query.toLowerCase())
  5607.             },
  5608.             sorter: function(t) {
  5609.                 for (var e, n = [], i = [], o = []; e = t.shift();) e.toLowerCase().indexOf(this.query.toLowerCase()) ? ~e.indexOf(this.query) ? i.push(e) : o.push(e) : n.push(e);
  5610.                 return n.concat(i, o)
  5611.             },
  5612.             highlighter: function(t) {
  5613.                 var e = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
  5614.                 return t.replace(new RegExp("(" + e + ")", "ig"), function(t, e) {
  5615.                     return "<strong>" + e + "</strong>"
  5616.                 })
  5617.             },
  5618.             render: function(e) {
  5619.                 var n = this;
  5620.                 return e = t(e).map(function(e, i) {
  5621.                     return e = t(n.options.item).attr("data-value", i), e.find("a").html(n.highlighter(i)), e[0]
  5622.                 }), e.first().addClass("active"), this.$menu.html(e), this
  5623.             },
  5624.             next: function() {
  5625.                 var e = this.$menu.find(".active").removeClass("active"),
  5626.                     n = e.next();
  5627.                 n.length || (n = t(this.$menu.find("li")[0])), n.addClass("active")
  5628.             },
  5629.             prev: function() {
  5630.                 var t = this.$menu.find(".active").removeClass("active"),
  5631.                     e = t.prev();
  5632.                 e.length || (e = this.$menu.find("li").last()), e.addClass("active")
  5633.             },
  5634.             listen: function() {
  5635.                 this.$element.on("focus", t.proxy(this.focus, this)).on("blur", t.proxy(this.blur, this)).on("keypress", t.proxy(this.keypress, this)).on("keyup", t.proxy(this.keyup, this)), this.eventSupported("keydown") && this.$element.on("keydown", t.proxy(this.keydown, this)), this.$menu.on("click", t.proxy(this.click, this)).on("mouseenter", "li", t.proxy(this.mouseenter, this)).on("mouseleave", "li", t.proxy(this.mouseleave, this))
  5636.             },
  5637.             eventSupported: function(t) {
  5638.                 var e = t in this.$element;
  5639.                 return e || (this.$element.setAttribute(t, "return;"), e = "function" == typeof this.$element[t]), e
  5640.             },
  5641.             move: function(t) {
  5642.                 if (this.shown) {
  5643.                     switch (t.keyCode) {
  5644.                         case 9:
  5645.                         case 13:
  5646.                         case 27:
  5647.                             t.preventDefault();
  5648.                             break;
  5649.                         case 38:
  5650.                             t.preventDefault(), this.prev();
  5651.                             break;
  5652.                         case 40:
  5653.                             t.preventDefault(), this.next()
  5654.                     }
  5655.                     t.stopPropagation()
  5656.                 }
  5657.             },
  5658.             keydown: function(e) {
  5659.                 this.suppressKeyPressRepeat = ~t.inArray(e.keyCode, [40, 38, 9, 13, 27]), this.move(e)
  5660.             },
  5661.             keypress: function(t) {
  5662.                 this.suppressKeyPressRepeat || this.move(t)
  5663.             },
  5664.             keyup: function(t) {
  5665.                 switch (t.keyCode) {
  5666.                     case 40:
  5667.                     case 38:
  5668.                     case 16:
  5669.                     case 17:
  5670.                     case 18:
  5671.                         break;
  5672.                     case 9:
  5673.                     case 13:
  5674.                         if (!this.shown) return;
  5675.                         this.select();
  5676.                         break;
  5677.                     case 27:
  5678.                         if (!this.shown) return;
  5679.                         this.hide();
  5680.                         break;
  5681.                     default:
  5682.                         this.lookup()
  5683.                 }
  5684.                 t.stopPropagation(), t.preventDefault()
  5685.             },
  5686.             focus: function() {
  5687.                 this.focused = !0
  5688.             },
  5689.             blur: function() {
  5690.                 this.focused = !1, !this.mousedover && this.shown && this.hide()
  5691.             },
  5692.             click: function(t) {
  5693.                 t.stopPropagation(), t.preventDefault(), this.select(), this.$element.focus()
  5694.             },
  5695.             mouseenter: function(e) {
  5696.                 this.mousedover = !0, this.$menu.find(".active").removeClass("active"), t(e.currentTarget).addClass("active")
  5697.             },
  5698.             mouseleave: function() {
  5699.                 this.mousedover = !1, !this.focused && this.shown && this.hide()
  5700.             }
  5701.         };
  5702.         var n = t.fn.typeahead;
  5703.         t.fn.typeahead = function(n) {
  5704.             return this.each(function() {
  5705.                 var i = t(this),
  5706.                     o = i.data("typeahead"),
  5707.                     r = "object" == typeof n && n;
  5708.                 o || i.data("typeahead", o = new e(this, r)), "string" == typeof n && o[n]()
  5709.             })
  5710.         }, t.fn.typeahead.defaults = {
  5711.             source: [],
  5712.             items: 8,
  5713.             menu: '<ul class="typeahead dropdown-menu"></ul>',
  5714.             item: '<li><a href="#"></a></li>',
  5715.             minLength: 1
  5716.         }, t.fn.typeahead.Constructor = e, t.fn.typeahead.noConflict = function() {
  5717.             return t.fn.typeahead = n, this
  5718.         }, t(document).on("focus.typeahead.data-api", '[data-provide="typeahead"]', function() {
  5719.             var e = t(this);
  5720.             e.data("typeahead") || e.typeahead(e.data())
  5721.         })
  5722.     }(window.jQuery), ! function(t) {
  5723.         "use strict";
  5724.         var e = function(e, n) {
  5725.             this.options = t.extend({}, t.fn.affix.defaults, n), this.$window = t(window).on("scroll.affix.data-api", t.proxy(this.checkPosition, this)).on("click.affix.data-api", t.proxy(function() {
  5726.                 setTimeout(t.proxy(this.checkPosition, this), 1)
  5727.             }, this)), this.$element = t(e), this.checkPosition()
  5728.         };
  5729.         e.prototype.checkPosition = function() {
  5730.             if (this.$element.is(":visible")) {
  5731.                 var e, n = t(document).height(),
  5732.                     i = this.$window.scrollTop(),
  5733.                     o = this.$element.offset(),
  5734.                     r = this.options.offset,
  5735.                     s = r.bottom,
  5736.                     a = r.top,
  5737.                     l = "affix affix-top affix-bottom";
  5738.                 "object" != typeof r && (s = a = r), "function" == typeof a && (a = r.top()), "function" == typeof s && (s = r.bottom()), e = null != this.unpin && i + this.unpin <= o.top ? !1 : null != s && o.top + this.$element.height() >= n - s ? "bottom" : null != a && a >= i ? "top" : !1, this.affixed !== e && (this.affixed = e, this.unpin = "bottom" == e ? o.top - i : null, this.$element.removeClass(l).addClass("affix" + (e ? "-" + e : "")))
  5739.             }
  5740.         };
  5741.         var n = t.fn.affix;
  5742.         t.fn.affix = function(n) {
  5743.             return this.each(function() {
  5744.                 var i = t(this),
  5745.                     o = i.data("affix"),
  5746.                     r = "object" == typeof n && n;
  5747.                 o || i.data("affix", o = new e(this, r)), "string" == typeof n && o[n]()
  5748.             })
  5749.         }, t.fn.affix.Constructor = e, t.fn.affix.defaults = {
  5750.             offset: 0
  5751.         }, t.fn.affix.noConflict = function() {
  5752.             return t.fn.affix = n, this
  5753.         }, t(window).on("load", function() {
  5754.             t('[data-spy="affix"]').each(function() {
  5755.                 var e = t(this),
  5756.                     n = e.data();
  5757.                 n.offset = n.offset || {}, n.offsetBottom && (n.offset.bottom = n.offsetBottom), n.offsetTop && (n.offset.top = n.offsetTop), e.affix(n)
  5758.             })
  5759.         })
  5760.     }(window.jQuery),
  5761.     function(t) {
  5762.         var e, n = {
  5763.                 className: "autosizejs",
  5764.                 id: "autosizejs",
  5765.                 append: "\n",
  5766.                 callback: !1,
  5767.                 resizeDelay: 10,
  5768.                 placeholder: !0
  5769.             },
  5770.             i = '<textarea tabindex="-1" style="position:absolute; top:-999px; left:0; right:auto; bottom:auto; border:0; padding: 0; -moz-box-sizing:content-box; -webkit-box-sizing:content-box; box-sizing:content-box; word-wrap:break-word; height:0 !important; min-height:0 !important; overflow:hidden; transition:none; -webkit-transition:none; -moz-transition:none;"/>',
  5771.             o = ["fontFamily", "fontSize", "fontWeight", "fontStyle", "letterSpacing", "textTransform", "wordSpacing", "textIndent"],
  5772.             r = t(i).data("autosize", !0)[0];
  5773.         r.style.lineHeight = "99px", "99px" === t(r).css("lineHeight") && o.push("lineHeight"), r.style.lineHeight = "", t.fn.autosize = function(i) {
  5774.             return this.length ? (i = t.extend({}, n, i || {}), r.parentNode !== document.body && t(document.body).append(r), this.each(function() {
  5775.                 function n() {
  5776.                     var e, n = window.getComputedStyle ? window.getComputedStyle(d, null) : !1;
  5777.                     n ? (e = d.getBoundingClientRect().width, (0 === e || "number" != typeof e) && (e = parseInt(n.width, 10)), t.each(["paddingLeft", "paddingRight", "borderLeftWidth", "borderRightWidth"], function(t, i) {
  5778.                         e -= parseInt(n[i], 10)
  5779.                     })) : e = Math.max(f.width(), 0), r.style.width = e + "px"
  5780.                 }
  5781.  
  5782.                 function s() {
  5783.                     var s = {};
  5784.                     if (e = d, r.className = i.className, r.id = i.id, c = parseInt(f.css("maxHeight"), 10), t.each(o, function(t, e) {
  5785.                         s[e] = f.css(e)
  5786.                     }), t(r).css(s).attr("wrap", f.attr("wrap")), n(), window.chrome) {
  5787.                         var a = d.style.width;
  5788.                         d.style.width = "0px"; {
  5789.                             d.offsetWidth
  5790.                         }
  5791.                         d.style.width = a
  5792.                     }
  5793.                 }
  5794.  
  5795.                 function a() {
  5796.                     var t, o;
  5797.                     e !== d ? s() : n(), r.value = !d.value && i.placeholder ? (f.attr("placeholder") || "") + i.append : d.value + i.append, r.style.overflowY = d.style.overflowY, o = parseInt(d.style.height, 10), r.scrollTop = 0, r.scrollTop = 9e4, t = r.scrollTop, c && t > c ? (d.style.overflowY = "scroll", t = c) : (d.style.overflowY = "hidden", u > t && (t = u)), t += p, o !== t && (d.style.height = t + "px", m && i.callback.call(d, d))
  5798.                 }
  5799.  
  5800.                 function l() {
  5801.                     clearTimeout(h), h = setTimeout(function() {
  5802.                         var t = f.width();
  5803.                         t !== v && (v = t, a())
  5804.                     }, parseInt(i.resizeDelay, 10))
  5805.                 }
  5806.                 var c, u, h, d = this,
  5807.                     f = t(d),
  5808.                     p = 0,
  5809.                     m = t.isFunction(i.callback),
  5810.                     g = {
  5811.                         height: d.style.height,
  5812.                         overflow: d.style.overflow,
  5813.                         overflowY: d.style.overflowY,
  5814.                         wordWrap: d.style.wordWrap,
  5815.                         resize: d.style.resize
  5816.                     },
  5817.                     v = f.width(),
  5818.                     y = f.css("resize");
  5819.                 f.data("autosize") || (f.data("autosize", !0), ("border-box" === f.css("box-sizing") || "border-box" === f.css("-moz-box-sizing") || "border-box" === f.css("-webkit-box-sizing")) && (p = f.outerHeight() - f.height()), u = Math.max(parseInt(f.css("minHeight"), 10) - p || 0, f.height()), f.css({
  5820.                     overflow: "hidden",
  5821.                     overflowY: "hidden",
  5822.                     wordWrap: "break-word"
  5823.                 }), "vertical" === y ? f.css("resize", "none") : "both" === y && f.css("resize", "horizontal"), "onpropertychange" in d ? "oninput" in d ? f.on("input.autosize keyup.autosize", a) : f.on("propertychange.autosize", function() {
  5824.                     "value" === event.propertyName && a()
  5825.                 }) : f.on("input.autosize", a), i.resizeDelay !== !1 && t(window).on("resize.autosize", l), f.on("autosize.resize", a), f.on("autosize.resizeIncludeStyle", function() {
  5826.                     e = null, a()
  5827.                 }), f.on("autosize.destroy", function() {
  5828.                     e = null, clearTimeout(h), t(window).off("resize", l), f.off("autosize").off(".autosize").css(g).removeData("autosize")
  5829.                 }), a())
  5830.             })) : this
  5831.         }
  5832.     }(window.jQuery || window.$),
  5833.     function() {
  5834.         jQuery(function() {
  5835.             return $("a[rel=popover]").popover(), $(".tooltip").tooltip(), $("a[rel=tooltip]").tooltip()
  5836.         })
  5837.     }.call(this),
  5838.     function() {
  5839.         window.HD = {
  5840.             calcMax: function(t) {
  5841.                 var e, n;
  5842.                 return e = t.val().length, n = parseInt(t.attr("maxlength")), n = n - e >= 0 ? n - e : 0
  5843.             }
  5844.         }, $(function() {
  5845.             return $(".display-num").each(function() {
  5846.                 var t;
  5847.                 return t = HD.calcMax($(this)), 0 > t ? void 0 : $(this).hasClass("oneline-decoratited") ? $(this).parent().after('<span class="num">' + t + "</span>").addClass("decorated_text") : $(this).after('<span class="num">' + t + "</span>").parent().addClass("decorated_text")
  5848.             }), $(".display-num").keyup(function() {
  5849.                 return $(this).hasClass("oneline-decoratited") ? $(this).parent().next(".num").text(HD.calcMax($(this))) : $(this).closest("div").find(".num").text(HD.calcMax($(this)))
  5850.             }), $("textarea.resize").autosize()
  5851.         })
  5852.     }.call(this),
  5853.     function() {}.call(this),
  5854.     function() {}.call(this),
  5855.     function() {
  5856.         $(function() {
  5857.             var t;
  5858.             return t = function(t) {
  5859.                 var e, n, i;
  5860.                 return e = t.closest("label"), n = parseInt($("#category-max").text()), i = $("#category_list input:checkbox:checked").length, $("#category-selected").text(n > i ? i : n), t.is(":checked") ? n >= i ? e.addClass("selected") : t.removeAttr("checked") : e.removeClass("selected")
  5861.             }, $("#add_category").keydown(function(t) {
  5862.                 var e;
  5863.                 return e = t.keyCode ? t.keyCode : t.which, 13 === e ? (t.preventDefault(), $("#button_add_category").click(), !1) : void 0
  5864.             }), $("#button_add_category").click(function() {
  5865.                 return $(".add_new_category").parents(".control-group").removeClass("error"), $(".add_new_category").parents(".controls").parent().find("span").remove(), $("#add_category").val().length < 3 ? alert("\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438") : $.ajax({
  5866.                     type: "POST",
  5867.                     data: {
  5868.                         category_name: $("#add_category").val(),
  5869.                         city_flag: $("#city_flag").val()
  5870.                     },
  5871.                     url: "/cabinet/projects/add_category",
  5872.                     success: function(e) {
  5873.                         return e.id && $("#category-own").append('<label class="checkbox"><input type="checkbox" style="display: none" value="' + e.id + '" name="project[category_ids][]" id="project_category_ids_' + e.id + '" checked="checked" class="check_boxes optional">' + e.name + "</label>"), $("#add_category").val(""), t($("#category-own label:last input:checkbox"))
  5874.                     }
  5875.                 })
  5876.             }), $("#category_list label").each(function() {
  5877.                 return t($(this).find("input:checkbox").hide())
  5878.             }), $("#category_list").on("change", "input:checkbox", function() {
  5879.                 return t($(this))
  5880.             })
  5881.         })
  5882.     }.call(this),
  5883.     function() {}.call(this), $(document).ready(function() {
  5884.         return $(".scroll-anchor").on("click", function(t) {
  5885.             var e = $("#all_dates").offset().top + "px";
  5886.             $("html, body").stop().animate({
  5887.                 scrollTop: e
  5888.             }, 1e3), t.preventDefault()
  5889.         }), !1
  5890.     }), $(document).ready(function() {
  5891.         shareIdea(".share-idea-facebook", "https://www.facebook.com/sharer.php?u=", "?v=1&t="), shareIdea(".share-idea-vkontakte", "https://vkontakte.ru/share.php?url=", "&title="), shareIdea(".share-idea-twitter", "https://twitter.com/share?url=", "&text="), shareIdea(".share-idea-googleplus", "https://plus.google.com/share?url=")
  5892.     }), $(document).ready(function() {
  5893.         function t(t, e) {
  5894.             var n;
  5895.             "0" != t.left ? (n = t.left - 73 + "px", $(".timeline-tooltip").css({
  5896.                 left: n,
  5897.                 top: i - e + "px",
  5898.                 bottom: "auto"
  5899.             }), $(".timeline-tooltip-arrow-down").css("left", "88px"), $(".timeline-tooltip-arrow-up").css("left", "88px"), $(".timeline-tooltip").css("width", "164px")) : (n = t.left + 20 + "px", $(".timeline-tooltip").css({
  5900.                 left: n,
  5901.                 top: i - e + "px",
  5902.                 bottom: "auto"
  5903.             }), $(".timeline-tooltip-arrow-down").css("left", "67px"), $(".timeline-tooltip-arrow-up").css("left", "67px"), $(".timeline-tooltip").css("width", "144px"))
  5904.         }
  5905.  
  5906.         function e(t, e) {
  5907.             var n;
  5908.             "0" != t.left ? (n = t.left - 73 + "px", $(".timeline-tooltip").css({
  5909.                 left: n,
  5910.                 bottom: i - e + "px",
  5911.                 top: "auto"
  5912.             }), $(".timeline-tooltip-arrow-down").css("left", "88px"), $(".timeline-tooltip-arrow-up").css("left", "88px"), $(".timeline-tooltip").css("width", "164px")) : (n = t.left + 20 + "px", $(".timeline-tooltip").css({
  5913.                 left: n,
  5914.                 bottom: i - e + "px",
  5915.                 top: "auto"
  5916.             }), $(".timeline-tooltip-arrow-down").css("left", "67px"), $(".timeline-tooltip-arrow-up").css("left", "67px"), $(".timeline-tooltip").css("width", "144px"))
  5917.         }
  5918.  
  5919.         function n(t, e) {
  5920.             void 0 !== t ? $(".timeline-tooltip").html("<div class='" + e + "'></div>" + t).show() : $(".timeline-tooltip").hide()
  5921.         }
  5922.         var i = $(".timeline-image").height();
  5923.         $(".timeline-description li").click(function(i) {
  5924.             var o = $(this).find("span").text(),
  5925.                 r = $(".timeline-numbers li").eq(o - 1),
  5926.                 s = r.position(),
  5927.                 a = $(this).data("title");
  5928.             if ($(".timeline-numbers li.active").text() != o && void 0 !== a) {
  5929.                 if ($(r).hasClass("active")) return;
  5930.                 $(".timeline-numbers li.active").removeClass("active"), $(r).addClass("active")
  5931.             } else void 0 === a && $(".timeline-numbers li.active").removeClass("active"); if ("5" === o || "8" === o ? (n(a, "timeline-tooltip-arrow-down"), t(s, 7)) : (n(a, "timeline-tooltip-arrow-up"), e(s, 120)), void 0 !== a) {
  5932.                 if ($(this).hasClass("active")) return;
  5933.                 $(".timeline-description li.active").removeClass("active"), $(this).addClass("active")
  5934.             } else $(".timeline-description li.active").removeClass("active");
  5935.             i.stopPropagation(), $(document).click(function() {
  5936.                 $(".timeline-numbers li.active").removeClass("active"), $(".timeline-description li.active").removeClass("active"), "none" != $(".timeline-tooltip").css("display") && $(".timeline-tooltip").fadeOut()
  5937.             })
  5938.         }), $(".timeline-numbers li").click(function(i) {
  5939.             var o = $(this).text(),
  5940.                 r = $(this).position();
  5941.             if ("5" === o || "8" === o) {
  5942.                 var s = "\u041f\u043e\u0434\u0432\u043e\u0434\u0438\u043c \u0438\u0442\u043e\u0433\u0438 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0432\u0440\u0435\u043c\u044f \u0434\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0447\u0435\u043a\u043f\u043e\u0439\u043d\u0442\u0430.",
  5943.                     a = "\u041f\u043e\u0434\u0432\u043e\u0434\u0438\u043c \u0438\u0442\u043e\u0433\u0438 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0432\u0440\u0435\u043c\u044f \u0434\u043e \u0434\u0435\u043c\u043e\u0444\u0435\u0441\u0442\u0430.";
  5944.                 if ("5" === o ? n(s, "timeline-tooltip-arrow-down") : "8" === o && n(a, "timeline-tooltip-arrow-down"), t(r, 7), $(this).hasClass("withouttitle")) return;
  5945.                 $(".timeline-numbers li.active").removeClass("active"), $(this).addClass("active"), $(".timeline-description li").each(function() {
  5946.                     var t = $(this).find("span").text();
  5947.                     o === t && ($(".timeline-description li.active").removeClass("active"), $(this).addClass("active"))
  5948.                 })
  5949.             } else {
  5950.                 if ($(this).hasClass("withouttitle")) return;
  5951.                 $(".timeline-numbers li.active").removeClass("active"), $(this).addClass("active"), $(".timeline-description li").each(function() {
  5952.                     var t = $(this).find("span").text();
  5953.                     if (t === o) {
  5954.                         var i = $(this).data("title");
  5955.                         if (n(i, "timeline-tooltip-arrow-up"), void 0 !== i) {
  5956.                             if ($(t).hasClass("active")) return;
  5957.                             $(".timeline-description li.active").removeClass("active"), $(this).addClass("active")
  5958.                         }
  5959.                     }
  5960.                     e(r, 120)
  5961.                 })
  5962.             }
  5963.             i.stopPropagation(), $(document).click(function() {
  5964.                 $(".timeline-numbers li.active").removeClass("active"), $(".timeline-description li.active").removeClass("active"), "none" != $(".timeline-tooltip").css("display") && $(".timeline-tooltip").fadeOut()
  5965.             })
  5966.         })
  5967.     });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement