PageSourceSearch

https://uranaru.jp/wp-content/themes/uranaru/assets/javascripts/pc.js

js uranaru.jp collected 2026-09-26 10:55:28 UTC 642,388 bytes, 15,203 lines download raw bytes

vendor: 172,428 bytes, lines 1-4410
1!function(t, e) {
2    "object" == typeof module && "object" == typeof module.exports ? module.exports = t.document ? e(t, !0) : function(t) {
3        if (!t.document)
4            throw new Error("jQuery requires a window with a document");
5        return e(t)
6    }
7    : e(t)
8}("undefined" != typeof window ? window : this, function(t, e) {
9    function i(t) {
10        var e = !!t && "length"in t && t.length
11          , i = pt.type(t);
12        return "function" !== i && !pt.isWindow(t) && ("array" === i || 0 === e || "number" == typeof e && e > 0 && e - 1 in t)
13    }
14    function n(t, e, i) {
15        if (pt.isFunction(e))
16            return pt.grep(t, function(t, n) {
17                return !!e.call(t, n, t) !== i
18            });
19        if (e.nodeType)
20            return pt.grep(t, function(t) {
21                return t === e !== i
22            });
23        if ("string" == typeof e) {
24            if (kt.test(e))
25                return pt.filter(e, t, i);
26            e = pt.filter(e, t)
27        }
28        return pt.grep(t, function(t) {
29            return pt.inArray(t, e) > -1 !== i
30        })
31    }
32    function s(t, e) {
33        do
34            t = t[e];
35        while (t && 1 !== t.nodeType);
36        return t
37    }
38    function o(t) {
39        var e = {};
40        return pt.each(t.match(Et) || [], function(t, i) {
41            e[i] = !0
42        }),
43        e
44    }
45    function r() {
46        nt.addEventListener ? (nt.removeEventListener("DOMContentLoaded", a),
47        t.removeEventListener("load", a)) : (nt.detachEvent("onreadystatechange", a),
48        t.detachEvent("onload", a))
49    }
50    function a() {
51        (nt.addEventListener || "load" === t.event.type || "complete" === nt.readyState) && (r(),
52        pt.ready())
53    }
54    function l(t, e, i) {
55        if (void 0 === i && 1 === t.nodeType) {
56            var n = "data-" + e.replace(Ht, "-$1").toLowerCase();
57            if (i = t.getAttribute(n),
58            "string" == typeof i) {
59                try {
60                    i = "true" === i || "false" !== i && ("null" === i ? null : +i + "" === i ? +i : Nt.test(i) ? pt.parseJSON(i) : i)
61                } catch (t) {}
62                pt.data(t, e, i)
63            } else
64                i = void 0
65        }
66        return i
67    }
68    function h(t) {
69        var e;
70        for (e in t)
71            if (("data" !== e || !pt.isEmptyObject(t[e])) && "toJSON" !== e)
72                return !1;
73        return !0
74    }
75    function u(t, e, i, n) {
76        if (At(t)) {
77            var s, o, r = pt.expando, a = t.nodeType, l = a ? pt.cache : t, h = a ? t[r] : t[r] && r;
78            if (h && l[h] && (n || l[h].data) || void 0 !== i || "string" != typeof e)
79                return h || (h = a ? t[r] = it.pop() || pt.guid++ : r),
80                l[h] || (l[h] = a ? {} : {
81                    toJSON: pt.noop
82                }),
83                "object" != typeof e && "function" != typeof e || (n ? l[h] = pt.extend(l[h], e) : l[h].data = pt.extend(l[h].data, e)),
84                o = l[h],
85                n || (o.data || (o.data = {}),
86                o = o.data),
87                void 0 !== i && (o[pt.camelCase(e)] = i),
88                "string" == typeof e ? (s = o[e],
89                null == s && (s = o[pt.camelCase(e)])) : s = o,
90                s
91        }
92    }
93    function c(t, e, i) {
94        if (At(t)) {
95            var n, s, o = t.nodeType, r = o ? pt.cache : t, a = o ? t[pt.expando] : pt.expando;
96            if (r[a]) {
97                if (e && (n = i ? r[a] : r[a].data)) {
98                    pt.isArray(e) ? e = e.concat(pt.map(e, pt.camelCase)) : e in n ? e = [e] : (e = pt.camelCase(e),
99                    e = e in n ? [e] : e.split(" ")),
100                    s = e.length;
101                    for (; s--; )
102                        delete n[e[s]];
103                    if (i ? !h(n) : !pt.isEmptyObject(n))
104                        return
105                }
106                (i || (delete r[a].data,
107                h(r[a]))) && (o ? pt.cleanData([t], !0) : ct.deleteExpando || r != r.window ? delete r[a] : r[a] = void 0)
108            }
109        }
110    }
111    function d(t, e, i, n) {
112        var s, o = 1, r = 20, a = n ? function() {
113            return n.cur()
114        }
115        : function() {
116            return pt.css(t, e, "")
117        }
118        , l = a(), h = i && i[3] || (pt.cssNumber[e] ? "" : "px"), u = (pt.cssNumber[e] || "px" !== h && +l) && jt.exec(pt.css(t, e));
119        if (u && u[3] !== h) {
120            h = h || u[3],
121            i = i || [],
122            u = +l || 1;
123            do
124                o = o || ".5",
125                u /= o,
126                pt.style(t, e, u + h);
127            while (o !== (o = a() / l) && 1 !== o && --r)
128        }
129        return i && (u = +u || +l || 0,
130        s = i[1] ? u + (i[1] + 1) * i[2] : +i[2],
131        n && (n.unit = h,
132        n.start = u,
133        n.end = s)),
134        s
135    }
136    function p(t) {
137        var e = Yt.split("|")
138          , i = t.createDocumentFragment();
139        if (i.createElement)
140            for (; e.length; )
141                i.createElement(e.pop());
142        return i
143    }
144    function f(t, e) {
145        var i, n, s = 0, o = "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e || "*") : "undefined" != typeof t.querySelectorAll ? t.querySelectorAll(e || "*") : void 0;
146        if (!o)
147            for (o = [],
148            i = t.childNodes || t; null != (n = i[s]); s++)
149                !e || pt.nodeName(n, e) ? o.push(n) : pt.merge(o, f(n, e));
150        return void 0 === e || e && pt.nodeName(t, e) ? pt.merge([t], o) : o
151    }
152    function g(t, e) {
153        for (var i, n = 0; null != (i = t[n]); n++)
154            pt._data(i, "globalEval", !e || pt._data(e[n], "globalEval"))
155    }
156    function m(t) {
157        Lt.test(t.type) && (t.defaultChecked = t.checked)
158    }
159    function v(t, e, i, n, s) {
160        for (var o, r, a, l, h, u, c, d = t.length, v = p(e), b = [], _ = 0; _ < d; _++)
161            if (r = t[_],
162            r || 0 === r)
163                if ("object" === pt.type(r))
164                    pt.merge(b, r.nodeType ? [r] : r);
165                else if (Ut.test(r)) {
166                    for (l = l || v.appendChild(e.createElement("div")),
167                    h = (Rt.exec(r) || ["", ""])[1].toLowerCase(),
168                    c = $t[h] || $t._default,
169                    l.innerHTML = c[1] + pt.htmlPrefilter(r) + c[2],
170                    o = c[0]; o--; )
171                        l = l.lastChild;
172                    if (!ct.leadingWhitespace && Bt.test(r) && b.push(e.createTextNode(Bt.exec(r)[0])),
173                    !ct.tbody)
174                        for (r = "table" !== h || Kt.test(r) ? "<table>" !== c[1] || Kt.test(r) ? 0 : l : l.firstChild,
175                        o = r && r.childNodes.length; o--; )
176                            pt.nodeName(u = r.childNodes[o], "tbody") && !u.childNodes.length && r.removeChild(u);
177                    for (pt.merge(b, l.childNodes),
178                    l.textContent = ""; l.firstChild; )
179                        l.removeChild(l.firstChild);
180                    l = v.lastChild
181                } else
182                    b.push(e.createTextNode(r));
183        for (l && v.removeChild(l),
184        ct.appendChecked || pt.grep(f(b, "input"), m),
185        _ = 0; r = b[_++]; )
186            if (n && pt.inArray(r, n) > -1)
187                s && s.push(r);
188            else if (a = pt.contains(r.ownerDocument, r),
189            l = f(v.appendChild(r), "script"),
190            a && g(l),
191            i)
192                for (o = 0; r = l[o++]; )
193                    qt.test(r.type || "") && i.push(r);
194        return l = null,
195        v
196    }
197    function b() {
198        return !0
199    }
200    function _() {
201        return !1
202    }
203    function y() {
204        try {
205            return nt.activeElement
206        } catch (t) {}
207    }
208    function w(t, e, i, n, s, o) {
209        var r, a;
210        if ("object" == typeof e) {
211            "string" != typeof i && (n = n || i,
212            i = void 0);
213            for (a in e)
214                w(t, a, i, n, e[a], o);
215            return t
216        }
217        if (null == n && null == s ? (s = i,
218        n = i = void 0) : null == s && ("string" == typeof i ? (s = n,
219        n = void 0) : (s = n,
220        n = i,
221        i = void 0)),
222        s === !1)
223            s = _;
224        else if (!s)
225            return t;
226        return 1 === o && (r = s,
227        s = function(t) {
228            return pt().off(t),
229            r.apply(this, arguments)
230        }
231        ,
232        s.guid = r.guid || (r.guid = pt.guid++)),
233        t.each(function() {
234            pt.event.add(this, e, s, n, i)
235        })
236    }
237    function x(t, e) {
238        return pt.nodeName(t, "table") && pt.nodeName(11 !== e.nodeType ? e : e.firstChild, "tr") ? t.getElementsByTagName("tbody")[0] || t.appendChild(t.ownerDocument.createElement("tbody")) : t
239    }
240    function k(t) {
241        return t.type = (null !== pt.find.attr(t, "type")) + "/" + t.type,
242        t
243    }
244    function C(t) {
245        var e = se.exec(t.type);
246        return e ? t.type = e[1] : t.removeAttribute("type"),
247        t
248    }
249    function D(t, e) {
250        if (1 === e.nodeType && pt.hasData(t)) {
251            var i, n, s, o = pt._data(t), r = pt._data(e, o), a = o.events;
252            if (a) {
253                delete r.handle,
254                r.events = {};
255                for (i in a)
256                    for (n = 0,
257                    s = a[i].length; n < s; n++)
258                        pt.event.add(e, i, a[i][n])
259            }
260            r.data && (r.data = pt.extend({}, r.data))
261        }
262    }
263    function T(t, e) {
264        var i, n, s;
265        if (1 === e.nodeType) {
266            if (i = e.nodeName.toLowerCase(),
267            !ct.noCloneEvent && e[pt.expando]) {
268                s = pt._data(e);
269                for (n in s.events)
270                    pt.removeEvent(e, n, s.handle);
271                e.removeAttribute(pt.expando)
272            }
273            "script" === i && e.text !== t.text ? (k(e).text = t.text,
274            C(e)) : "object" === i ? (e.parentNode && (e.outerHTML = t.outerHTML),
275            ct.html5Clone && t.innerHTML && !pt.trim(e.innerHTML) && (e.innerHTML = t.innerHTML)) : "input" === i && Lt.test(t.type) ? (e.defaultChecked = e.checked = t.checked,
276            e.value !== t.value && (e.value = t.value)) : "option" === i ? e.defaultSelected = e.selected = t.defaultSelected : "input" !== i && "textarea" !== i || (e.defaultValue = t.defaultValue)
277        }
278    }
279    function S(t, e, i, n) {
280        e = ot.apply([], e);
281        var s, o, r, a, l, h, u = 0, c = t.length, d = c - 1, p = e[0], g = pt.isFunction(p);
282        if (g || c > 1 && "string" == typeof p && !ct.checkClone && ne.test(p))
283            return t.each(function(s) {
284                var o = t.eq(s);
285                g && (e[0] = p.call(this, s, o.html())),
286                S(o, e, i, n)
287            });
288        if (c && (h = v(e, t[0].ownerDocument, !1, t, n),
289        s = h.firstChild,
290        1 === h.childNodes.length && (h = s),
291        s || n)) {
292            for (a = pt.map(f(h, "script"), k),
293            r = a.length; u < c; u++)
294                o = h,
295                u !== d && (o = pt.clone(o, !0, !0),
296                r && pt.merge(a, f(o, "script"))),
297                i.call(t[u], o, u);
298            if (r)
299                for (l = a[a.length - 1].ownerDocument,
300                pt.map(a, C),
301                u = 0; u < r; u++)
302                    o = a[u],
303                    qt.test(o.type || "") && !pt._data(o, "globalEval") && pt.contains(l, o) && (o.src ? pt._evalUrl && pt._evalUrl(o.src) : pt.globalEval((o.text || o.textContent || o.innerHTML || "").replace(oe, "")));
304            h = s = null
305        }
306        return t
307    }
308    function I(t, e, i) {
309        for (var n, s = e ? pt.filter(e, t) : t, o = 0; null != (n = s[o]); o++)
310            i || 1 !== n.nodeType || pt.cleanData(f(n)),
311            n.parentNode && (i && pt.contains(n.ownerDocument, n) && g(f(n, "script")),
312            n.parentNode.removeChild(n));
313        return t
314    }
315    function E(t, e) {
316        var i = pt(e.createElement(t)).appendTo(e.body)
317          , n = pt.css(i[0], "display");
318        return i.detach(),
319        n
320    }
321    function P(t) {
322        var e = nt
323          , i = he[t];
324        return i || (i = E(t, e),
325        "none" !== i && i || (le = (le || pt("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement),
326        e = (le[0].contentWindow || le[0].contentDocument).document,
327        e.write(),
328        e.close(),
329        i = E(t, e),
330        le.detach()),
331        he[t] = i),
332        i
333    }
334    function M(t, e) {
335        return {
336            get: function() {
337                return t() ? void delete this.get : (this.get = e).apply(this, arguments)
338            }
339        }
340    }
341    function A(t) {
342        if (t in Ce)
343            return t;
344        for (var e = t.charAt(0).toUpperCase() + t.slice(1), i = ke.length; i--; )
345            if (t = ke[i] + e,
346            t in Ce)
347                return t
348    }
349    function N(t, e) {
350        for (var i, n, s, o = [], r = 0, a = t.length; r < a; r++)
351            n = t[r],
352            n.style && (o[r] = pt._data(n, "olddisplay"),
353            i = n.style.display,
354            e ? (o[r] || "none" !== i || (n.style.display = ""),
355            "" === n.style.display && Wt(n) && (o[r] = pt._data(n, "olddisplay", P(n.nodeName)))) : (s = Wt(n),
356            (i && "none" !== i || !s) && pt._data(n, "olddisplay", s ? i : pt.css(n, "display"))));
357        for (r = 0; r < a; r++)
358            n = t[r],
359            n.style && (e && "none" !== n.style.display && "" !== n.style.display || (n.style.display = e ? o[r] || "" : "none"));
360        return t
361    }
362    function H(t, e, i) {
363        var n = ye.exec(e);
364        return n ? Math.max(0, n[1] - (i || 0)) + (n[2] || "px") : e
365    }
366    function z(t, e, i, n, s) {
367        for (var o = i === (n ? "border" : "content") ? 4 : "width" === e ? 1 : 0, r = 0; o < 4; o += 2)
368            "margin" === i && (r += pt.css(t, i + Ot[o], !0, s)),
369            n ? ("content" === i && (r -= pt.css(t, "padding" + Ot[o], !0, s)),
370            "margin" !== i && (r -= pt.css(t, "border" + Ot[o] + "Width", !0, s))) : (r += pt.css(t, "padding" + Ot[o], !0, s),
371            "padding" !== i && (r += pt.css(t, "border" + Ot[o] + "Width", !0, s)));
372        return r
373    }
374    function j(t, e, i) {
375        var n = !0
376          , s = "width" === e ? t.offsetWidth : t.offsetHeight
377          , o = fe(t)
378          , r = ct.boxSizing && "border-box" === pt.css(t, "boxSizing", !1, o);
379        if (s <= 0 || null == s) {
380            if (s = ge(t, e, o),
381            (s < 0 || null == s) && (s = t.style[e]),
382            ce.test(s))
383                return s;
384            n = r && (ct.boxSizingReliable() || s === t.style[e]),
385            s = parseFloat(s) || 0
386        }
387        return s + z(t, e, i || (r ? "border" : "content"), n, o) + "px"
388    }
389    function O(t, e, i, n, s) {
390        return new O.prototype.init(t,e,i,n,s)
391    }
392    function W() {
393        return t.setTimeout(function() {
394            De = void 0
395        }),
396        De = pt.now()
397    }
398    function F(t, e) {
399        var i, n = {
400            height: t
401        }, s = 0;
402        for (e = e ? 1 : 0; s < 4; s += 2 - e)
403            i = Ot[s],
404            n["margin" + i] = n["padding" + i] = t;
405        return e && (n.opacity = n.width = t),
406        n
407    }
408    function L(t, e, i) {
409        for (var n, s = (B.tweeners[e] || []).concat(B.tweeners["*"]), o = 0, r = s.length; o < r; o++)
410            if (n = s[o].call(i, e, t))
411                return n
412    }
413    function R(t, e, i) {
414        var n, s, o, r, a, l, h, u, c = this, d = {}, p = t.style, f = t.nodeType && Wt(t), g = pt._data(t, "fxshow");
415        i.queue || (a = pt._queueHooks(t, "fx"),
416        null == a.unqueued && (a.unqueued = 0,
417        l = a.empty.fire,
418        a.empty.fire = function() {
419            a.unqueued || l()
420        }
421        ),
422        a.unqueued++,
423        c.always(function() {
424            c.always(function() {
425                a.unqueued--,
426                pt.queue(t, "fx").length || a.empty.fire()
427            })
428        })),
429        1 === t.nodeType && ("height"in e || "width"in e) && (i.overflow = [p.overflow, p.overflowX, p.overflowY],
430        h = pt.css(t, "display"),
431        u = "none" === h ? pt._data(t, "olddisplay") || P(t.nodeName) : h,
432        "inline" === u && "none" === pt.css(t, "float") && (ct.inlineBlockNeedsLayout && "inline" !== P(t.nodeName) ? p.zoom = 1 : p.display = "inline-block")),
433        i.overflow && (p.overflow = "hidden",
434        ct.shrinkWrapBlocks() || c.always(function() {
435            p.overflow = i.overflow[0],
436            p.overflowX = i.overflow[1],
437            p.overflowY = i.overflow[2]
438        }));
439        for (n in e)
440            if (s = e[n],
441            Se.exec(s)) {
442                if (delete e[n],
443                o = o || "toggle" === s,
444                s === (f ? "hide" : "show")) {
445                    if ("show" !== s || !g || void 0 === g[n])
446                        continue;
447                    f = !0
448                }
449                d[n] = g && g[n] || pt.style(t, n)
450            } else
451                h = void 0;
452        if (pt.isEmptyObject(d))
453            "inline" === ("none" === h ? P(t.nodeName) : h) && (p.display = h);
454        else {
455            g ? "hidden"in g && (f = g.hidden) : g = pt._data(t, "fxshow", {}),
456            o && (g.hidden = !f),
457            f ? pt(t).show() : c.done(function() {
458                pt(t).hide()
459            }),
460            c.done(function() {
461                var e;
462                pt._removeData(t, "fxshow");
463                for (e in d)
464                    pt.style(t, e, d[e])
465            });
466            for (n in d)
467                r = L(f ? g[n] : 0, n, c),
468                n in g || (g[n] = r.start,
469                f && (r.end = r.start,
470                r.start = "width" === n || "height" === n ? 1 : 0))
471        }
472    }
473    function q(t, e) {
474        var i, n, s, o, r;
475        for (i in t)
476            if (n = pt.camelCase(i),
477            s = e[n],
478            o = t[i],
479            pt.isArray(o) && (s = o[1],
480            o = t[i] = o[0]),
481            i !== n && (t[n] = o,
482            delete t[i]),
483            r = pt.cssHooks[n],
484            r && "expand"in r) {
485                o = r.expand(o),
486                delete t[n];
487                for (i in o)
488                    i in t || (t[i] = o[i],
489                    e[i] = s)
490            } else
491                e[n] = s
492    }
493    function B(t, e, i) {
494        var n, s, o = 0, r = B.prefilters.length, a = pt.Deferred().always(function() {
495            delete l.elem
496        }), l = function() {
497            if (s)
498                return !1;
499            for (var e = De || W(), i = Math.max(0, h.startTime + h.duration - e), n = i / h.duration || 0, o = 1 - n, r = 0, l = h.tweens.length; r < l; r++)
500                h.tweens[r].run(o);
501            return a.notifyWith(t, [h, o, i]),
502            o < 1 && l ? i : (a.resolveWith(t, [h]),
503            !1)
504        }, h = a.promise({
505            elem: t,
506            props: pt.extend({}, e),
507            opts: pt.extend(!0, {
508                specialEasing: {},
509                easing: pt.easing._default
510            }, i),
511            originalProperties: e,
512            originalOptions: i,
513            startTime: De || W(),
514            duration: i.duration,
515            tweens: [],
516            createTween: function(e, i) {
517                var n = pt.Tween(t, h.opts, e, i, h.opts.specialEasing[e] || h.opts.easing);
518                return h.tweens.push(n),
519                n
520            },
521            stop: function(e) {
522                var i = 0
523                  , n = e ? h.tweens.length : 0;
524                if (s)
525                    return this;
526                for (s = !0; i < n; i++)
527                    h.tweens[i].run(1);
528                return e ? (a.notifyWith(t, [h, 1, 0]),
529                a.resolveWith(t, [h, e])) : a.rejectWith(t, [h, e]),
530                this
531            }
532        }), u = h.props;
533        for (q(u, h.opts.specialEasing); o < r; o++)
534            if (n = B.prefilters[o].call(h, t, u, h.opts))
535                return pt.isFunction(n.stop) && (pt._queueHooks(h.elem, h.opts.queue).stop = pt.proxy(n.stop, n)),
536                n;
537        return pt.map(u, L, h),
538        pt.isFunction(h.opts.start) && h.opts.start.call(t, h),
539        pt.fx.timer(pt.extend(l, {
540            elem: t,
541            anim: h,
542            queue: h.opts.queue
543        })),
544        h.progress(h.opts.progress).done(h.opts.done, h.opts.complete).fail(h.opts.fail).always(h.opts.always)
545    }
546    function Y(t) {
547        return pt.attr(t, "class") || ""
548    }
549    function $(t) {
550        return function(e, i) {
551            "string" != typeof e && (i = e,
552            e = "*");
553            var n, s = 0, o = e.toLowerCase().match(Et) || [];
554            if (pt.isFunction(i))
555                for (; n = o[s++]; )
556                    "+" === n.charAt(0) ? (n = n.slice(1) || "*",
557                    (t[n] = t[n] || []).unshift(i)) : (t[n] = t[n] || []).push(i)
558        }
559    }
560    function U(t, e, i, n) {
561        function s(a) {
562            var l;
563            return o[a] = !0,
564            pt.each(t[a] || [], function(t, a) {
565                var h = a(e, i, n);
566                return "string" != typeof h || r || o[h] ? r ? !(l = h) : void 0 : (e.dataTypes.unshift(h),
567                s(h),
568                !1)
569            }),
570            l
571        }
572        var o = {}
573          , r = t === Je;
574        return s(e.dataTypes[0]) || !o["*"] && s("*")
575    }
576    function K(t, e) {
577        var i, n, s = pt.ajaxSettings.flatOptions || {};
578        for (n in e)
579            void 0 !== e[n] && ((s[n] ? t : i || (i = {}))[n] = e[n]);
580        return i && pt.extend(!0, t, i),
581        t
582    }
583    function X(t, e, i) {
584        for (var n, s, o, r, a = t.contents, l = t.dataTypes; "*" === l[0]; )
585            l.shift(),
586            void 0 === s && (s = t.mimeType || e.getResponseHeader("Content-Type"));
587        if (s)
588            for (r in a)
589                if (a[r] && a[r].test(s)) {
590                    l.unshift(r);
591                    break
592                }
593        if (l[0]in i)
594            o = l[0];
595        else {
596            for (r in i) {
597                if (!l[0] || t.converters[r + " " + l[0]]) {
598                    o = r;
599                    break
600                }
601                n || (n = r)
602            }
603            o = o || n
604        }
605        if (o)
606            return o !== l[0] && l.unshift(o),
607            i[o]
608    }
609    function V(t, e, i, n) {
610        var s, o, r, a, l, h = {}, u = t.dataTypes.slice();
611        if (u[1])
612            for (r in t.converters)
613                h[r.toLowerCase()] = t.converters[r];
614        for (o = u.shift(); o; )
615            if (t.responseFields[o] && (i[t.responseFields[o]] = e),
616            !l && n && t.dataFilter && (e = t.dataFilter(e, t.dataType)),
617            l = o,
618            o = u.shift())
619                if ("*" === o)
620                    o = l;
621                else if ("*" !== l && l !== o) {
622                    if (r = h[l + " " + o] || h["* " + o],
623                    !r)
624                        for (s in h)
625                            if (a = s.split(" "),
626                            a[1] === o && (r = h[l + " " + a[0]] || h["* " + a[0]])) {
627                                r === !0 ? r = h[s] : h[s] !== !0 && (o = a[0],
628                                u.unshift(a[1]));
629                                break
630                            }
631                    if (r !== !0)
632                        if (r && t["throws"])
633                            e = r(e);
634                        else
635                            try {
636                                e = r(e)
637                            } catch (t) {
638                                return {
639                                    state: "parsererror",
640                                    error: r ? t : "No conversion from " + l + " to " + o
641                                }
642                            }
643                }
644        return {
645            state: "success",
646            data: e
647        }
648    }
649    function Q(t) {
650        return t.style && t.style.display || pt.css(t, "display")
651    }
652    function G(t) {
653        if (!pt.contains(t.ownerDocument || nt, t))
654            return !0;
655        for (; t && 1 === t.nodeType; ) {
656            if ("none" === Q(t) || "hidden" === t.type)
657                return !0;
658            t = t.parentNode
659        }
660        return !1
661    }
662    function J(t, e, i, n) {
663        var s;
664        if (pt.isArray(e))
665            pt.each(e, function(e, s) {
666                i || ni.test(t) ? n(t, s) : J(t + "[" + ("object" == typeof s && null != s ? e : "") + "]", s, i, n)
667            });
668        else if (i || "object" !== pt.type(e))
669            n(t, e);
670        else
671            for (s in e)
672                J(t + "[" + s + "]", e[s], i, n)
673    }
674    function Z() {
675        try {
676            return new t.XMLHttpRequest
677        } catch (t) {}
678    }
679    function tt() {
680        try {
681            return new t.ActiveXObject("Microsoft.XMLHTTP")
682        } catch (t) {}
683    }
684    function et(t) {
685        return pt.isWindow(t) ? t : 9 === t.nodeType && (t.defaultView || t.parentWindow)
686    }
687    var it = []
688      , nt = t.document
689      , st = it.slice
690      , ot = it.concat
691      , rt = it.push
692      , at = it.indexOf
693      , lt = {}
694      , ht = lt.toString
695      , ut = lt.hasOwnProperty
696      , ct = {}
697      , dt = "1.12.4"
698      , pt = function(t, e) {
699        return new pt.fn.init(t,e)
700    }
701      , ft = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g
702      , gt = /^-ms-/
703      , mt = /-([\da-z])/gi
704      , vt = function(t, e) {
705        return e.toUpperCase()
706    };
707    pt.fn = pt.prototype = {
708        jquery: dt,
709        constructor: pt,
710        selector: "",
711        length: 0,
712        toArray: function() {
713            return st.call(this)
714        },
715        get: function(t) {
716            return null != t ? t < 0 ? this[t + this.length] : this[t] : st.call(this)
717        },
718        pushStack: function(t) {
719            var e = pt.merge(this.constructor(), t);
720            return e.prevObject = this,
721            e.context = this.context,
722            e
723        },
724        each: function(t) {
725            return pt.each(this, t)
726        },
727        map: function(t) {
728            return this.pushStack(pt.map(this, function(e, i) {
729                return t.call(e, i, e)
730            }))
731        },
732        slice: function() {
733            return this.pushStack(st.apply(this, arguments))
734        },
735        first: function() {
736            return this.eq(0)
737        },
738        last: function() {
739            return this.eq(-1)
740        },
741        eq: function(t) {
742            var e = this.length
743              , i = +t + (t < 0 ? e : 0);
744            return this.pushStack(i >= 0 && i < e ? [this[i]] : [])
745        },
746        end: function() {
747            return this.prevObject || this.constructor()
748        },
749        push: rt,
750        sort: it.sort,
751        splice: it.splice
752    },
753    pt.extend = pt.fn.extend = function() {
754        var t, e, i, n, s, o, r = arguments[0] || {}, a = 1, l = arguments.length, h = !1;
755        for ("boolean" == typeof r && (h = r,
756        r = arguments[a] || {},
757        a++),
758        "object" == typeof r || pt.isFunction(r) || (r = {}),
759        a === l && (r = this,
760        a--); a < l; a++)
761            if (null != (s = arguments[a]))
762                for (n in s)
763                    t = r[n],
764                    i = s[n],
765                    r !== i && (h && i && (pt.isPlainObject(i) || (e = pt.isArray(i))) ? (e ? (e = !1,
766                    o = t && pt.isArray(t) ? t : []) : o = t && pt.isPlainObject(t) ? t : {},
767                    r[n] = pt.extend(h, o, i)) : void 0 !== i && (r[n] = i));
768        return r
769    }
770    ,
771    pt.extend({
772        expando: "jQuery" + (dt + Math.random()).replace(/\D/g, ""),
773        isReady: !0,
774        error: function(t) {
775            throw new Error(t)
776        },
777        noop: function() {},
778        isFunction: function(t) {
779            return "function" === pt.type(t)
780        },
781        isArray: Array.isArray || function(t) {
782            return "array" === pt.type(t)
783        }
784        ,
785        isWindow: function(t) {
786            return null != t && t == t.window
787        },
788        isNumeric: function(t) {
789            var e = t && t.toString();
790            return !pt.isArray(t) && e - parseFloat(e) + 1 >= 0
791        },
792        isEmptyObject: function(t) {
793            var e;
794            for (e in t)
795                return !1;
796            return !0
797        },
798        isPlainObject: function(t) {
799            var e;
800            if (!t || "object" !== pt.type(t) || t.nodeType || pt.isWindow(t))
801                return !1;
802            try {
803                if (t.constructor && !ut.call(t, "constructor") && !ut.call(t.constructor.prototype, "isPrototypeOf"))
804                    return !1
805            } catch (t) {
806                return !1
807            }
808            if (!ct.ownFirst)
809                for (e in t)
810                    return ut.call(t, e);
811            for (e in t)
812                ;
813            return void 0 === e || ut.call(t, e)
814        },
815        type: function(t) {
816            return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? lt[ht.call(t)] || "object" : typeof t
817        },
818        globalEval: function(e) {
819            e && pt.trim(e) && (t.execScript || function(e) {
820                t.eval.call(t, e)
821            }
822            )(e)
823        },
824        camelCase: function(t) {
825            return t.replace(gt, "ms-").replace(mt, vt)
826        },
827        nodeName: function(t, e) {
828            return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase()
829        },
830        each: function(t, e) {
831            var n, s = 0;
832            if (i(t))
833                for (n = t.length; s < n && e.call(t[s], s, t[s]) !== !1; s++)
834                    ;
835            else
836                for (s in t)
837                    if (e.call(t[s], s, t[s]) === !1)
838                        break;
839            return t
840        },
841        trim: function(t) {
842            return null == t ? "" : (t + "").replace(ft, "")
843        },
844        makeArray: function(t, e) {
845            var n = e || [];
846            return null != t && (i(Object(t)) ? pt.merge(n, "string" == typeof t ? [t] : t) : rt.call(n, t)),
847            n
848        },
849        inArray: function(t, e, i) {
850            var n;
851            if (e) {
852                if (at)
853                    return at.call(e, t, i);
854                for (n = e.length,
855                i = i ? i < 0 ? Math.max(0, n + i) : i : 0; i < n; i++)
856                    if (i in e && e[i] === t)
857                        return i
858            }
859            return -1
860        },
861        merge: function(t, e) {
862            for (var i = +e.length, n = 0, s = t.length; n < i; )
863                t[s++] = e[n++];
864            if (i !== i)
865                for (; void 0 !== e[n]; )
866                    t[s++] = e[n++];
867            return t.length = s,
868            t
869        },
870        grep: function(t, e, i) {
871            for (var n, s = [], o = 0, r = t.length, a = !i; o < r; o++)
872                n = !e(t[o], o),
873                n !== a && s.push(t[o]);
874            return s
875        },
876        map: function(t, e, n) {
877            var s, o, r = 0, a = [];
878            if (i(t))
879                for (s = t.length; r < s; r++)
880                    o = e(t[r], r, n),
881                    null != o && a.push(o);
882            else
883                for (r in t)
884                    o = e(t[r], r, n),
885                    null != o && a.push(o);
886            return ot.apply([], a)
887        },
888        guid: 1,
889        proxy: function(t, e) {
890            var i, n, s;
891            if ("string" == typeof e && (s = t[e],
892            e = t,
893            t = s),
894            pt.isFunction(t))
895                return i = st.call(arguments, 2),
896                n = function() {
897                    return t.apply(e || this, i.concat(st.call(arguments)))
898                }
899                ,
900                n.guid = t.guid = t.guid || pt.guid++,
901                n
902        },
903        now: function() {
904            return +new Date
905        },
906        support: ct
907    }),
908    "function" == typeof Symbol && (pt.fn[Symbol.iterator] = it[Symbol.iterator]),
909    pt.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(t, e) {
910        lt["[object " + e + "]"] = e.toLowerCase()
911    });
912    var bt = function(t) {
913        function e(t, e, i, n) {
914            var s, o, r, a, l, h, c, p, f = e && e.ownerDocument, g = e ? e.nodeType : 9;
915            if (i = i || [],
916            "string" != typeof t || !t || 1 !== g && 9 !== g && 11 !== g)
917                return i;
918            if (!n && ((e ? e.ownerDocument || e : L) !== A && M(e),
919            e = e || A,
920            H)) {
921                if (11 !== g && (h = vt.exec(t)))
922                    if (s = h[1]) {
923                        if (9 === g) {
924                            if (!(r = e.getElementById(s)))
925                                return i;
926                            if (r.id === s)
927                                return i.push(r),
928                                i
929                        } else if (f && (r = f.getElementById(s)) && W(e, r) && r.id === s)
930                            return i.push(r),
931                            i
932                    } else {
933                        if (h[2])
934                            return J.apply(i, e.getElementsByTagName(t)),
935                            i;
936                        if ((s = h[3]) && w.getElementsByClassName && e.getElementsByClassName)
937                            return J.apply(i, e.getElementsByClassName(s)),
938                            i
939                    }
940                if (w.qsa && !$[t + " "] && (!z || !z.test(t))) {
941                    if (1 !== g)
942                        f = e,
943                        p = t;
944                    else if ("object" !== e.nodeName.toLowerCase()) {
945                        for ((a = e.getAttribute("id")) ? a = a.replace(_t, "\\$&") : e.setAttribute("id", a = F),
946                        c = D(t),
947                        o = c.length,
948                        l = dt.test(a) ? "#" + a : "[id='" + a + "']"; o--; )
949                            c[o] = l + " " + d(c[o]);
950                        p = c.join(","),
951                        f = bt.test(t) && u(e.parentNode) || e
952                    }
953                    if (p)
954                        try {
955                            return J.apply(i, f.querySelectorAll(p)),
956                            i
957                        } catch (t) {} finally {
958                            a === F && e.removeAttribute("id")
959                        }
960                }
961            }
962            return S(t.replace(at, "$1"), e, i, n)
963        }
964        function i() {
965            function t(i, n) {
966                return e.push(i + " ") > x.cacheLength && delete t[e.shift()],
967                t[i + " "] = n
968            }
969            var e = [];
970            return t
971        }
972        function n(t) {
973            return t[F] = !0,
974            t
975        }
976        function s(t) {
977            var e = A.createElement("div");
978            try {
979                return !!t(e)
980            } catch (t) {
981                return !1
982            } finally {
983                e.parentNode && e.parentNode.removeChild(e),
984                e = null
985            }
986        }
987        function o(t, e) {
988            for (var i = t.split("|"), n = i.length; n--; )
989                x.attrHandle[i[n]] = e
990        }
991        function r(t, e) {
992            var i = e && t
993              , n = i && 1 === t.nodeType && 1 === e.nodeType && (~e.sourceIndex || K) - (~t.sourceIndex || K);
994            if (n)
995                return n;
996            if (i)
997                for (; i = i.nextSibling; )
998                    if (i === e)
999                        return -1;
1000            return t ? 1 : -1
1001        }
1002        function a(t) {
1003            return function(e) {
1004                var i = e.nodeName.toLowerCase();
1005                return "input" === i && e.type === t
1006            }
1007        }
1008        function l(t) {
1009            return function(e) {
1010                var i = e.nodeName.toLowerCase();
1011                return ("input" === i || "button" === i) && e.type === t
1012            }
1013        }
1014        function h(t) {
1015            return n(function(e) {
1016                return e = +e,
1017                n(function(i, n) {
1018                    for (var s, o = t([], i.length, e), r = o.length; r--; )
1019                        i[s = o[r]] && (i[s] = !(n[s] = i[s]))
1020                })
1021            })
1022        }
1023        function u(t) {
1024            return t && "undefined" != typeof t.getElementsByTagName && t
1025        }
1026        function c() {}
1027        function d(t) {
1028            for (var e = 0, i = t.length, n = ""; e < i; e++)
1029                n += t[e].value;
1030            return n
1031        }
1032        function p(t, e, i) {
1033            var n = e.dir
1034              , s = i && "parentNode" === n
1035              , o = q++;
1036            return e.first ? function(e, i, o) {
1037                for (; e = e[n]; )
1038                    if (1 === e.nodeType || s)
1039                        return t(e, i, o)
1040            }
1041            : function(e, i, r) {
1042                var a, l, h, u = [R, o];
1043                if (r) {
1044                    for (; e = e[n]; )
1045                        if ((1 === e.nodeType || s) && t(e, i, r))
1046                            return !0
1047                } else
1048                    for (; e = e[n]; )
1049                        if (1 === e.nodeType || s) {
1050                            if (h = e[F] || (e[F] = {}),
1051                            l = h[e.uniqueID] || (h[e.uniqueID] = {}),
1052                            (a = l[n]) && a[0] === R && a[1] === o)
1053                                return u[2] = a[2];
1054                            if (l[n] = u,
1055                            u[2] = t(e, i, r))
1056                                return !0
1057                        }
1058            }
1059        }
1060        function f(t) {
1061            return t.length > 1 ? function(e, i, n) {
1062                for (var s = t.length; s--; )
1063                    if (!t[s](e, i, n))
1064                        return !1;
1065                return !0
1066            }
1067            : t[0]
1068        }
1069        function g(t, i, n) {
1070            for (var s = 0, o = i.length; s < o; s++)
1071                e(t, i[s], n);
1072            return n
1073        }
1074        function m(t, e, i, n, s) {
1075            for (var o, r = [], a = 0, l = t.length, h = null != e; a < l; a++)
1076                (o = t[a]) && (i && !i(o, n, s) || (r.push(o),
1077                h && e.push(a)));
1078            return r
1079        }
1080        function v(t, e, i, s, o, r) {
1081            return s && !s[F] && (s = v(s)),
1082            o && !o[F] && (o = v(o, r)),
1083            n(function(n, r, a, l) {
1084                var h, u, c, d = [], p = [], f = r.length, v = n || g(e || "*", a.nodeType ? [a] : a, []), b = !t || !n && e ? v : m(v, d, t, a, l), _ = i ? o || (n ? t : f || s) ? [] : r : b;
1085                if (i && i(b, _, a, l),
1086                s)
1087                    for (h = m(_, p),
1088                    s(h, [], a, l),
1089                    u = h.length; u--; )
1090                        (c = h[u]) && (_[p[u]] = !(b[p[u]] = c));
1091                if (n) {
1092                    if (o || t) {
1093                        if (o) {
1094                            for (h = [],
1095                            u = _.length; u--; )
1096                                (c = _[u]) && h.push(b[u] = c);
1097                            o(null, _ = [], h, l)
1098                        }
1099                        for (u = _.length; u--; )
1100                            (c = _[u]) && (h = o ? tt(n, c) : d[u]) > -1 && (n[h] = !(r[h] = c))
1101                    }
1102                } else
1103                    _ = m(_ === r ? _.splice(f, _.length) : _),
1104                    o ? o(null, r, _, l) : J.apply(r, _)
1105            })
1106        }
1107        function b(t) {
1108            for (var e, i, n, s = t.length, o = x.relative[t[0].type], r = o || x.relative[" "], a = o ? 1 : 0, l = p(function(t) {
1109                return t === e
1110            }, r, !0), h = p(function(t) {
1111                return tt(e, t) > -1
1112            }, r, !0), u = [function(t, i, n) {
1113                var s = !o && (n || i !== I) || ((e = i).nodeType ? l(t, i, n) : h(t, i, n));
1114                return e = null,
1115                s
1116            }
1117            ]; a < s; a++)
1118                if (i = x.relative[t[a].type])
1119                    u = [p(f(u), i)];
1120                else {
1121                    if (i = x.filter[t[a].type].apply(null, t[a].matches),
1122                    i[F]) {
1123                        for (n = ++a; n < s && !x.relative[t[n].type]; n++)
1124                            ;
1125                        return v(a > 1 && f(u), a > 1 && d(t.slice(0, a - 1).concat({
1126                            value: " " === t[a - 2].type ? "*" : ""
1127                        })).replace(at, "$1"), i, a < n && b(t.slice(a, n)), n < s && b(t = t.slice(n)), n < s && d(t))
1128                    }
1129                    u.push(i)
1130                }
1131            return f(u)
1132        }
1133        function _(t, i) {
1134            var s = i.length > 0
1135              , o = t.length > 0
1136              , r = function(n, r, a, l, h) {
1137                var u, c, d, p = 0, f = "0", g = n && [], v = [], b = I, _ = n || o && x.find.TAG("*", h), y = R += null == b ? 1 : Math.random() || .1, w = _.length;
1138                for (h && (I = r === A || r || h); f !== w && null != (u = _[f]); f++) {
1139                    if (o && u) {
1140                        for (c = 0,
1141                        r || u.ownerDocument === A || (M(u),
1142                        a = !H); d = t[c++]; )
1143                            if (d(u, r || A, a)) {
1144                                l.push(u);
1145                                break
1146                            }
1147                        h && (R = y)
1148                    }
1149                    s && ((u = !d && u) && p--,
1150                    n && g.push(u))
1151                }
1152                if (p += f,
1153                s && f !== p) {
1154                    for (c = 0; d = i[c++]; )
1155                        d(g, v, r, a);
1156                    if (n) {
1157                        if (p > 0)
1158                            for (; f--; )
1159                                g[f] || v[f] || (v[f] = Q.call(l));
1160                        v = m(v)
1161                    }
1162                    J.apply(l, v),
1163                    h && !n && v.length > 0 && p + i.length > 1 && e.uniqueSort(l)
1164                }
1165                return h && (R = y,
1166                I = b),
1167                g
1168            };
1169            return s ? n(r) : r
1170        }
1171        var y, w, x, k, C, D, T, S, I, E, P, M, A, N, H, z, j, O, W, F = "sizzle" + 1 * new Date, L = t.document, R = 0, q = 0, B = i(), Y = i(), $ = i(), U = function(t, e) {
1172            return t === e && (P = !0),
1173            0
1174        }, K = 1 << 31, X = {}.hasOwnProperty, V = [], Q = V.pop, G = V.push, J = V.push, Z = V.slice, tt = function(t, e) {
1175            for (var i = 0, n = t.length; i < n; i++)
1176                if (t[i] === e)
1177                    return i;
1178            return -1
1179        }, et = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", it = "[\\x20\\t\\r\\n\\f]", nt = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", st = "\\[" + it + "*(" + nt + ")(?:" + it + "*([*^$|!~]?=)" + it + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + nt + "))|)" + it + "*\\]", ot = ":(" + nt + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + st + ")*)|.*)\\)|)", rt = new RegExp(it + "+","g"), at = new RegExp("^" + it + "+|((?:^|[^\\\\])(?:\\\\.)*)" + it + "+$","g"), lt = new RegExp("^" + it + "*," + it + "*"), ht = new RegExp("^" + it + "*([>+~]|" + it + ")" + it + "*"), ut = new RegExp("=" + it + "*([^\\]'\"]*?)" + it + "*\\]","g"), ct = new RegExp(ot), dt = new RegExp("^" + nt + "$"), pt = {
1180            ID: new RegExp("^#(" + nt + ")"),
1181            CLASS: new RegExp("^\\.(" + nt + ")"),
1182            TAG: new RegExp("^(" + nt + "|[*])"),
1183            ATTR: new RegExp("^" + st),
1184            PSEUDO: new RegExp("^" + ot),
1185            CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + it + "*(even|odd|(([+-]|)(\\d*)n|)" + it + "*(?:([+-]|)" + it + "*(\\d+)|))" + it + "*\\)|)","i"),
1186            bool: new RegExp("^(?:" + et + ")$","i"),
1187            needsContext: new RegExp("^" + it + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + it + "*((?:-\\d)?\\d*)" + it + "*\\)|)(?=[^-]|$)","i")
1188        }, ft = /^(?:input|select|textarea|button)$/i, gt = /^h\d$/i, mt = /^[^{]+\{\s*\[native \w/, vt = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, bt = /[+~]/, _t = /'|\\/g, yt = new RegExp("\\\\([\\da-f]{1,6}" + it + "?|(" + it + ")|.)","ig"), wt = function(t, e, i) {
1189            var n = "0x" + e - 65536;
1190            return n !== n || i ? e : n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320)
1191        }, xt = function() {
1192            M()
1193        };
1194        try {
1195            J.apply(V = Z.call(L.childNodes), L.childNodes),
1196            V[L.childNodes.length].nodeType
1197        } catch (t) {
1198            J = {
1199                apply: V.length ? function(t, e) {
1200                    G.apply(t, Z.call(e))
1201                }
1202                : function(t, e) {
1203                    for (var i = t.length, n = 0; t[i++] = e[n++]; )
1204                        ;
1205                    t.length = i - 1
1206                }
1207            }
1208        }
1209        w = e.support = {},
1210        C = e.isXML = function(t) {
1211            var e = t && (t.ownerDocument || t).documentElement;
1212            return !!e && "HTML" !== e.nodeName
1213        }
1214        ,
1215        M = e.setDocument = function(t) {
1216            var e, i, n = t ? t.ownerDocument || t : L;
1217            return n !== A && 9 === n.nodeType && n.documentElement ? (A = n,
1218            N = A.documentElement,
1219            H = !C(A),
1220            (i = A.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", xt, !1) : i.attachEvent && i.attachEvent("onunload", xt)),
1221            w.attributes = s(function(t) {
1222                return t.className = "i",
1223                !t.getAttribute("className")
1224            }),
1225            w.getElementsByTagName = s(function(t) {
1226                return t.appendChild(A.createComment("")),
1227                !t.getElementsByTagName("*").length
1228            }),
1229            w.getElementsByClassName = mt.test(A.getElementsByClassName),
1230            w.getById = s(function(t) {
1231                return N.appendChild(t).id = F,
1232                !A.getElementsByName || !A.getElementsByName(F).length
1233            }),
1234            w.getById ? (x.find.ID = function(t, e) {
1235                if ("undefined" != typeof e.getElementById && H) {
1236                    var i = e.getElementById(t);
1237                    return i ? [i] : []
1238                }
1239            }
1240            ,
1241            x.filter.ID = function(t) {
1242                var e = t.replace(yt, wt);
1243                return function(t) {
1244                    return t.getAttribute("id") === e
1245                }
1246            }
1247            ) : (delete x.find.ID,
1248            x.filter.ID = function(t) {
1249                var e = t.replace(yt, wt);
1250                return function(t) {
1251                    var i = "undefined" != typeof t.getAttributeNode && t.getAttributeNode("id");
1252                    return i && i.value === e
1253                }
1254            }
1255            ),
1256            x.find.TAG = w.getElementsByTagName ? function(t, e) {
1257                return "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t) : w.qsa ? e.querySelectorAll(t) : void 0
1258            }
1259            : function(t, e) {
1260                var i, n = [], s = 0, o = e.getElementsByTagName(t);
1261                if ("*" === t) {
1262                    for (; i = o[s++]; )
1263                        1 === i.nodeType && n.push(i);
1264                    return n
1265                }
1266                return o
1267            }
1268            ,
1269            x.find.CLASS = w.getElementsByClassName && function(t, e) {
1270                if ("undefined" != typeof e.getElementsByClassName && H)
1271                    return e.getElementsByClassName(t)
1272            }
1273            ,
1274            j = [],
1275            z = [],
1276            (w.qsa = mt.test(A.querySelectorAll)) && (s(function(t) {
1277                N.appendChild(t).innerHTML = "<a id='" + F + "'></a><select id='" + F + "-\r\\' msallowcapture=''><option selected=''></option></select>",
1278                t.querySelectorAll("[msallowcapture^='']").length && z.push("[*^$]=" + it + "*(?:''|\"\")"),
1279                t.querySelectorAll("[selected]").length || z.push("\\[" + it + "*(?:value|" + et + ")"),
1280                t.querySelectorAll("[id~=" + F + "-]").length || z.push("~="),
1281                t.querySelectorAll(":checked").length || z.push(":checked"),
1282                t.querySelectorAll("a#" + F + "+*").length || z.push(".#.+[+~]")
1283            }),
1284            s(function(t) {
1285                var e = A.createElement("input");
1286                e.setAttribute("type", "hidden"),
1287                t.appendChild(e).setAttribute("name", "D"),
1288                t.querySelectorAll("[name=d]").length && z.push("name" + it + "*[*^$|!~]?="),
1289                t.querySelectorAll(":enabled").length || z.push(":enabled", ":disabled"),
1290                t.querySelectorAll("*,:x"),
1291                z.push(",.*:")
1292            })),
1293            (w.matchesSelector = mt.test(O = N.matches || N.webkitMatchesSelector || N.mozMatchesSelector || N.oMatchesSelector || N.msMatchesSelector)) && s(function(t) {
1294                w.disconnectedMatch = O.call(t, "div"),
1295                O.call(t, "[s!='']:x"),
1296                j.push("!=", ot)
1297            }),
1298            z = z.length && new RegExp(z.join("|")),
1299            j = j.length && new RegExp(j.join("|")),
1300            e = mt.test(N.compareDocumentPosition),
1301            W = e || mt.test(N.contains) ? function(t, e) {
1302                var i = 9 === t.nodeType ? t.documentElement : t
1303                  , n = e && e.parentNode;
1304                return t === n || !(!n || 1 !== n.nodeType || !(i.contains ? i.contains(n) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(n)))
1305            }
1306            : function(t, e) {
1307                if (e)
1308                    for (; e = e.parentNode; )
1309                        if (e === t)
1310                            return !0;
1311                return !1
1312            }
1313            ,
1314            U = e ? function(t, e) {
1315                if (t === e)
1316                    return P = !0,
1317                    0;
1318                var i = !t.compareDocumentPosition - !e.compareDocumentPosition;
1319                return i ? i : (i = (t.ownerDocument || t) === (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1,
1320                1 & i || !w.sortDetached && e.compareDocumentPosition(t) === i ? t === A || t.ownerDocument === L && W(L, t) ? -1 : e === A || e.ownerDocument === L && W(L, e) ? 1 : E ? tt(E, t) - tt(E, e) : 0 : 4 & i ? -1 : 1)
1321            }
1322            : function(t, e) {
1323                if (t === e)
1324                    return P = !0,
1325                    0;
1326                var i, n = 0, s = t.parentNode, o = e.parentNode, a = [t], l = [e];
1327                if (!s || !o)
1328                    return t === A ? -1 : e === A ? 1 : s ? -1 : o ? 1 : E ? tt(E, t) - tt(E, e) : 0;
1329                if (s === o)
1330                    return r(t, e);
1331                for (i = t; i = i.parentNode; )
1332                    a.unshift(i);
1333                for (i = e; i = i.parentNode; )
1334                    l.unshift(i);
1335                for (; a[n] === l[n]; )
1336                    n++;
1337                return n ? r(a[n], l[n]) : a[n] === L ? -1 : l[n] === L ? 1 : 0
1338            }
1339            ,
1340            A) : A
1341        }
1342        ,
1343        e.matches = function(t, i) {
1344            return e(t, null, null, i)
1345        }
1346        ,
1347        e.matchesSelector = function(t, i) {
1348            if ((t.ownerDocument || t) !== A && M(t),
1349            i = i.replace(ut, "='$1']"),
1350            w.matchesSelector && H && !$[i + " "] && (!j || !j.test(i)) && (!z || !z.test(i)))
1351                try {
1352                    var n = O.call(t, i);
1353                    if (n || w.disconnectedMatch || t.document && 11 !== t.document.nodeType)
1354                        return n
1355                } catch (t) {}
1356            return e(i, A, null, [t]).length > 0
1357        }
1358        ,
1359        e.contains = function(t, e) {
1360            return (t.ownerDocument || t) !== A && M(t),
1361            W(t, e)
1362        }
1363        ,
1364        e.attr = function(t, e) {
1365            (t.ownerDocument || t) !== A && M(t);
1366            var i = x.attrHandle[e.toLowerCase()]
1367              , n = i && X.call(x.attrHandle, e.toLowerCase()) ? i(t, e, !H) : void 0;
1368            return void 0 !== n ? n : w.attributes || !H ? t.getAttribute(e) : (n = t.getAttributeNode(e)) && n.specified ? n.value : null
1369        }
1370        ,
1371        e.error = function(t) {
1372            throw new Error("Syntax error, unrecognized expression: " + t)
1373        }
1374        ,
1375        e.uniqueSort = function(t) {
1376            var e, i = [], n = 0, s = 0;
1377            if (P = !w.detectDuplicates,
1378            E = !w.sortStable && t.slice(0),
1379            t.sort(U),
1380            P) {
1381                for (; e = t[s++]; )
1382                    e === t[s] && (n = i.push(s));
1383                for (; n--; )
1384                    t.splice(i[n], 1)
1385            }
1386            return E = null,
1387            t
1388        }
1389        ,
1390        k = e.getText = function(t) {
1391            var e, i = "", n = 0, s = t.nodeType;
1392            if (s) {
1393                if (1 === s || 9 === s || 11 === s) {
1394                    if ("string" == typeof t.textContent)
1395                        return t.textContent;
1396                    for (t = t.firstChild; t; t = t.nextSibling)
1397                        i += k(t)
1398                } else if (3 === s || 4 === s)
1399                    return t.nodeValue
1400            } else
1401                for (; e = t[n++]; )
1402                    i += k(e);
1403            return i
1404        }
1405        ,
1406        x = e.selectors = {
1407            cacheLength: 50,
1408            createPseudo: n,
1409            match: pt,
1410            attrHandle: {},
1411            find: {},
1412            relative: {
1413                ">": {
1414                    dir: "parentNode",
1415                    first: !0
1416                },
1417                " ": {
1418                    dir: "parentNode"
1419                },
1420                "+": {
1421                    dir: "previousSibling",
1422                    first: !0
1423                },
1424                "~": {
1425                    dir: "previousSibling"
1426                }
1427            },
1428            preFilter: {
1429                ATTR: function(t) {
1430                    return t[1] = t[1].replace(yt, wt),
1431                    t[3] = (t[3] || t[4] || t[5] || "").replace(yt, wt),
1432                    "~=" === t[2] && (t[3] = " " + t[3] + " "),
1433                    t.slice(0, 4)
1434                },
1435                CHILD: function(t) {
1436                    return t[1] = t[1].toLowerCase(),
1437                    "nth" === t[1].slice(0, 3) ? (t[3] || e.error(t[0]),
1438                    t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * ("even" === t[3] || "odd" === t[3])),
1439                    t[5] = +(t[7] + t[8] || "odd" === t[3])) : t[3] && e.error(t[0]),
1440                    t
1441                },
1442                PSEUDO: function(t) {
1443                    var e, i = !t[6] && t[2];
1444                    return pt.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || "" : i && ct.test(i) && (e = D(i, !0)) && (e = i.indexOf(")", i.length - e) - i.length) && (t[0] = t[0].slice(0, e),
1445                    t[2] = i.slice(0, e)),
1446                    t.slice(0, 3))
1447                }
1448            },
1449            filter: {
1450                TAG: function(t) {
1451                    var e = t.replace(yt, wt).toLowerCase();
1452                    return "*" === t ? function() {
1453                        return !0
1454                    }
1455                    : function(t) {
1456                        return t.nodeName && t.nodeName.toLowerCase() === e
1457                    }
1458                },
1459                CLASS: function(t) {
1460                    var e = B[t + " "];
1461                    return e || (e = new RegExp("(^|" + it + ")" + t + "(" + it + "|$)")) && B(t, function(t) {
1462                        return e.test("string" == typeof t.className && t.className || "undefined" != typeof t.getAttribute && t.getAttribute("class") || "")
1463                    })
1464                },
1465                ATTR: function(t, i, n) {
1466                    return function(s) {
1467                        var o = e.attr(s, t);
1468                        return null == o ? "!=" === i : !i || (o += "",
1469                        "=" === i ? o === n : "!=" === i ? o !== n : "^=" === i ? n && 0 === o.indexOf(n) : "*=" === i ? n && o.indexOf(n) > -1 : "$=" === i ? n && o.slice(-n.length) === n : "~=" === i ? (" " + o.replace(rt, " ") + " ").indexOf(n) > -1 : "|=" === i && (o === n || o.slice(0, n.length + 1) === n + "-"))
1470                    }
1471                },
1472                CHILD: function(t, e, i, n, s) {
1473                    var o = "nth" !== t.slice(0, 3)
1474                      , r = "last" !== t.slice(-4)
1475                      , a = "of-type" === e;
1476                    return 1 === n && 0 === s ? function(t) {
1477                        return !!t.parentNode
1478                    }
1479                    : function(e, i, l) {
1480                        var h, u, c, d, p, f, g = o !== r ? "nextSibling" : "previousSibling", m = e.parentNode, v = a && e.nodeName.toLowerCase(), b = !l && !a, _ = !1;
1481                        if (m) {
1482                            if (o) {
1483                                for (; g; ) {
1484                                    for (d = e; d = d[g]; )
1485                                        if (a ? d.nodeName.toLowerCase() === v : 1 === d.nodeType)
1486                                            return !1;
1487                                    f = g = "only" === t && !f && "nextSibling"
1488                                }
1489                                return !0
1490                            }
1491                            if (f = [r ? m.firstChild : m.lastChild],
1492                            r && b) {
1493                                for (d = m,
1494                                c = d[F] || (d[F] = {}),
1495                                u = c[d.uniqueID] || (c[d.uniqueID] = {}),
1496                                h = u[t] || [],
1497                                p = h[0] === R && h[1],
1498                                _ = p && h[2],
1499                                d = p && m.childNodes[p]; d = ++p && d && d[g] || (_ = p = 0) || f.pop(); )
1500                                    if (1 === d.nodeType && ++_ && d === e) {
1501                                        u[t] = [R, p, _];
1502                                        break
1503                                    }
1504                            } else if (b && (d = e,
1505                            c = d[F] || (d[F] = {}),
1506                            u = c[d.uniqueID] || (c[d.uniqueID] = {}),
1507                            h = u[t] || [],
1508                            p = h[0] === R && h[1],
1509                            _ = p),
1510                            _ === !1)
1511                                for (; (d = ++p && d && d[g] || (_ = p = 0) || f.pop()) && ((a ? d.nodeName.toLowerCase() !== v : 1 !== d.nodeType) || !++_ || (b && (c = d[F] || (d[F] = {}),
1512                                u = c[d.uniqueID] || (c[d.uniqueID] = {}),
1513                                u[t] = [R, _]),
1514                                d !== e)); )
1515                                    ;
1516                            return _ -= s,
1517                            _ === n || _ % n === 0 && _ / n >= 0
1518                        }
1519                    }
1520                },
1521                PSEUDO: function(t, i) {
1522                    var s, o = x.pseudos[t] || x.setFilters[t.toLowerCase()] || e.error("unsupported pseudo: " + t);
1523                    return o[F] ? o(i) : o.length > 1 ? (s = [t, t, "", i],
1524                    x.setFilters.hasOwnProperty(t.toLowerCase()) ? n(function(t, e) {
1525                        for (var n, s = o(t, i), r = s.length; r--; )
1526                            n = tt(t, s[r]),
1527                            t[n] = !(e[n] = s[r])
1528                    }) : function(t) {
1529                        return o(t, 0, s)
1530                    }
1531                    ) : o
1532                }
1533            },
1534            pseudos: {
1535                not: n(function(t) {
1536                    var e = []
1537                      , i = []
1538                      , s = T(t.replace(at, "$1"));
1539                    return s[F] ? n(function(t, e, i, n) {
1540                        for (var o, r = s(t, null, n, []), a = t.length; a--; )
1541                            (o = r[a]) && (t[a] = !(e[a] = o))
1542                    }) : function(t, n, o) {
1543                        return e[0] = t,
1544                        s(e, null, o, i),
1545                        e[0] = null,
1546                        !i.pop()
1547                    }
1548                }),
1549                has: n(function(t) {
1550                    return function(i) {
1551                        return e(t, i).length > 0
1552                    }
1553                }),
1554                contains: n(function(t) {
1555                    return t = t.replace(yt, wt),
1556                    function(e) {
1557                        return (e.textContent || e.innerText || k(e)).indexOf(t) > -1
1558                    }
1559                }),
1560                lang: n(function(t) {
1561                    return dt.test(t || "") || e.error("unsupported lang: " + t),
1562                    t = t.replace(yt, wt).toLowerCase(),
1563                    function(e) {
1564                        var i;
1565                        do
1566                            if (i = H ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang"))
1567                                return i = i.toLowerCase(),
1568                                i === t || 0 === i.indexOf(t + "-");
1569                        while ((e = e.parentNode) && 1 === e.nodeType);
1570                        return !1
1571                    }
1572                }),
1573                target: function(e) {
1574                    var i = t.location && t.location.hash;
1575                    return i && i.slice(1) === e.id
1576                },
1577                root: function(t) {
1578                    return t === N
1579                },
1580                focus: function(t) {
1581                    return t === A.activeElement && (!A.hasFocus || A.hasFocus()) && !!(t.type || t.href || ~t.tabIndex)
1582                },
1583                enabled: function(t) {
1584                    return t.disabled === !1
1585                },
1586                disabled: function(t) {
1587                    return t.disabled === !0
1588                },
1589                checked: function(t) {
1590                    var e = t.nodeName.toLowerCase();
1591                    return "input" === e && !!t.checked || "option" === e && !!t.selected
1592                },
1593                selected: function(t) {
1594                    return t.parentNode && t.parentNode.selectedIndex,
1595                    t.selected === !0
1596                },
1597                empty: function(t) {
1598                    for (t = t.firstChild; t; t = t.nextSibling)
1599                        if (t.nodeType < 6)
1600                            return !1;
1601                    return !0
1602                },
1603                parent: function(t) {
1604                    return !x.pseudos.empty(t)
1605                },
1606                header: function(t) {
1607                    return gt.test(t.nodeName)
1608                },
1609                input: function(t) {
1610                    return ft.test(t.nodeName)
1611                },
1612                button: function(t) {
1613                    var e = t.nodeName.toLowerCase();
1614                    return "input" === e && "button" === t.type || "button" === e
1615                },
1616                text: function(t) {
1617                    var e;
1618                    return "input" === t.nodeName.toLowerCase() && "text" === t.type && (null == (e = t.getAttribute("type")) || "text" === e.toLowerCase())
1619                },
1620                first: h(function() {
1621                    return [0]
1622                }),
1623                last: h(function(t, e) {
1624                    return [e - 1]
1625                }),
1626                eq: h(function(t, e, i) {
1627                    return [i < 0 ? i + e : i]
1628                }),
1629                even: h(function(t, e) {
1630                    for (var i = 0; i < e; i += 2)
1631                        t.push(i);
1632                    return t
1633                }),
1634                odd: h(function(t, e) {
1635                    for (var i = 1; i < e; i += 2)
1636                        t.push(i);
1637                    return t
1638                }),
1639                lt: h(function(t, e, i) {
1640                    for (var n = i < 0 ? i + e : i; --n >= 0; )
1641                        t.push(n);
1642                    return t
1643                }),
1644                gt: h(function(t, e, i) {
1645                    for (var n = i < 0 ? i + e : i; ++n < e; )
1646                        t.push(n);
1647                    return t
1648                })
1649            }
1650        },
1651        x.pseudos.nth = x.pseudos.eq;
1652        for (y in {
1653            radio: !0,
1654            checkbox: !0,
1655            file: !0,
1656            password: !0,
1657            image: !0
1658        })
1659            x.pseudos[y] = a(y);
1660        for (y in {
1661            submit: !0,
1662            reset: !0
1663        })
1664            x.pseudos[y] = l(y);
1665        return c.prototype = x.filters = x.pseudos,
1666        x.setFilters = new c,
1667        D = e.tokenize = function(t, i) {
1668            var n, s, o, r, a, l, h, u = Y[t + " "];
1669            if (u)
1670                return i ? 0 : u.slice(0);
1671            for (a = t,
1672            l = [],
1673            h = x.preFilter; a; ) {
1674                n && !(s = lt.exec(a)) || (s && (a = a.slice(s[0].length) || a),
1675                l.push(o = [])),
1676                n = !1,
1677                (s = ht.exec(a)) && (n = s.shift(),
1678                o.push({
1679                    value: n,
1680                    type: s[0].replace(at, " ")
1681                }),
1682                a = a.slice(n.length));
1683                for (r in x.filter)
1684                    !(s = pt[r].exec(a)) || h[r] && !(s = h[r](s)) || (n = s.shift(),
1685                    o.push({
1686                        value: n,
1687                        type: r,
1688                        matches: s
1689                    }),
1690                    a = a.slice(n.length));
1691                if (!n)
1692                    break
1693            }
1694            return i ? a.length : a ? e.error(t) : Y(t, l).slice(0)
1695        }
1696        ,
1697        T = e.compile = function(t, e) {
1698            var i, n = [], s = [], o = $[t + " "];
1699            if (!o) {
1700                for (e || (e = D(t)),
1701                i = e.length; i--; )
1702                    o = b(e[i]),
1703                    o[F] ? n.push(o) : s.push(o);
1704                o = $(t, _(s, n)),
1705                o.selector = t
1706            }
1707            return o
1708        }
1709        ,
1710        S = e.select = function(t, e, i, n) {
1711            var s, o, r, a, l, h = "function" == typeof t && t, c = !n && D(t = h.selector || t);
1712            if (i = i || [],
1713            1 === c.length) {
1714                if (o = c[0] = c[0].slice(0),
1715                o.length > 2 && "ID" === (r = o[0]).type && w.getById && 9 === e.nodeType && H && x.relative[o[1].type]) {
1716                    if (e = (x.find.ID(r.matches[0].replace(yt, wt), e) || [])[0],
1717                    !e)
1718                        return i;
1719                    h && (e = e.parentNode),
1720                    t = t.slice(o.shift().value.length)
1721                }
1722                for (s = pt.needsContext.test(t) ? 0 : o.length; s-- && (r = o[s],
1723                !x.relative[a = r.type]); )
1724                    if ((l = x.find[a]) && (n = l(r.matches[0].replace(yt, wt), bt.test(o[0].type) && u(e.parentNode) || e))) {
1725                        if (o.splice(s, 1),
1726                        t = n.length && d(o),
1727                        !t)
1728                            return J.apply(i, n),
1729                            i;
1730                        break
1731                    }
1732            }
1733            return (h || T(t, c))(n, e, !H, i, !e || bt.test(t) && u(e.parentNode) || e),
1734            i
1735        }
1736        ,
1737        w.sortStable = F.split("").sort(U).join("") === F,
1738        w.detectDuplicates = !!P,
1739        M(),
1740        w.sortDetached = s(function(t) {
1741            return 1 & t.compareDocumentPosition(A.createElement("div"))
1742        }),
1743        s(function(t) {
1744            return t.innerHTML = "<a href='#'></a>",
1745            "#" === t.firstChild.getAttribute("href")
1746        }) || o("type|href|height|width", function(t, e, i) {
1747            if (!i)
1748                return t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2)
1749        }),
1750        w.attributes && s(function(t) {
1751            return t.innerHTML = "<input/>",
1752            t.firstChild.setAttribute("value", ""),
1753            "" === t.firstChild.getAttribute("value")
1754        }) || o("value", function(t, e, i) {
1755            if (!i && "input" === t.nodeName.toLowerCase())
1756                return t.defaultValue
1757        }),
1758        s(function(t) {
1759            return null == t.getAttribute("disabled")
1760        }) || o(et, function(t, e, i) {
1761            var n;
1762            if (!i)
1763                return t[e] === !0 ? e.toLowerCase() : (n = t.getAttributeNode(e)) && n.specified ? n.value : null
1764        }),
1765        e
1766    }(t);
1767    pt.find = bt,
1768    pt.expr = bt.selectors,
1769    pt.expr[":"] = pt.expr.pseudos,
1770    pt.uniqueSort = pt.unique = bt.uniqueSort,
1771    pt.text = bt.getText,
1772    pt.isXMLDoc = bt.isXML,
1773    pt.contains = bt.contains;
1774    var _t = function(t, e, i) {
1775        for (var n = [], s = void 0 !== i; (t = t[e]) && 9 !== t.nodeType; )
1776            if (1 === t.nodeType) {
1777                if (s && pt(t).is(i))
1778                    break;
1779                n.push(t)
1780            }
1781        return n
1782    }
1783      , yt = function(t, e) {
1784        for (var i = []; t; t = t.nextSibling)
1785            1 === t.nodeType && t !== e && i.push(t);
1786        return i
1787    }
1788      , wt = pt.expr.match.needsContext
1789      , xt = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/
1790      , kt = /^.[^:#\[\.,]*$/;
1791    pt.filter = function(t, e, i) {
1792        var n = e[0];
1793        return i && (t = ":not(" + t + ")"),
1794        1 === e.length && 1 === n.nodeType ? pt.find.matchesSelector(n, t) ? [n] : [] : pt.find.matches(t, pt.grep(e, function(t) {
1795            return 1 === t.nodeType
1796        }))
1797    }
1798    ,
1799    pt.fn.extend({
1800        find: function(t) {
1801            var e, i = [], n = this, s = n.length;
1802            if ("string" != typeof t)
1803                return this.pushStack(pt(t).filter(function() {
1804                    for (e = 0; e < s; e++)
1805                        if (pt.contains(n[e], this))
1806                            return !0
1807                }));
1808            for (e = 0; e < s; e++)
1809                pt.find(t, n[e], i);
1810            return i = this.pushStack(s > 1 ? pt.unique(i) : i),
1811            i.selector = this.selector ? this.selector + " " + t : t,
1812            i
1813        },
1814        filter: function(t) {
1815            return this.pushStack(n(this, t || [], !1))
1816        },
1817        not: function(t) {
1818            return this.pushStack(n(this, t || [], !0))
1819        },
1820        is: function(t) {
1821            return !!n(this, "string" == typeof t && wt.test(t) ? pt(t) : t || [], !1).length
1822        }
1823    });
1824    var Ct, Dt = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, Tt = pt.fn.init = function(t, e, i) {
1825        var n, s;
1826        if (!t)
1827            return this;
1828        if (i = i || Ct,
1829        "string" == typeof t) {
1830            if (n = "<" === t.charAt(0) && ">" === t.charAt(t.length - 1) && t.length >= 3 ? [null, t, null] : Dt.exec(t),
1831            !n || !n[1] && e)
1832                return !e || e.jquery ? (e || i).find(t) : this.constructor(e).find(t);
1833            if (n[1]) {
1834                if (e = e instanceof pt ? e[0] : e,
1835                pt.merge(this, pt.parseHTML(n[1], e && e.nodeType ? e.ownerDocument || e : nt, !0)),
1836                xt.test(n[1]) && pt.isPlainObject(e))
1837                    for (n in e)
1838                        pt.isFunction(this[n]) ? this[n](e[n]) : this.attr(n, e[n]);
1839                return this
1840            }
1841            if (s = nt.getElementById(n[2]),
1842            s && s.parentNode) {
1843                if (s.id !== n[2])
1844                    return Ct.find(t);
1845                this.length = 1,
1846                this[0] = s
1847            }
1848            return this.context = nt,
1849            this.selector = t,
1850            this
1851        }
1852        return t.nodeType ? (this.context = this[0] = t,
1853        this.length = 1,
1854        this) : pt.isFunction(t) ? "undefined" != typeof i.ready ? i.ready(t) : t(pt) : (void 0 !== t.selector && (this.selector = t.selector,
1855        this.context = t.context),
1856        pt.makeArray(t, this))
1857    }
1858    ;
1859    Tt.prototype = pt.fn,
1860    Ct = pt(nt);
1861    var St = /^(?:parents|prev(?:Until|All))/
1862      , It = {
1863        children: !0,
1864        contents: !0,
1865        next: !0,
1866        prev: !0
1867    };
1868    pt.fn.extend({
1869        has: function(t) {
1870            var e, i = pt(t, this), n = i.length;
1871            return this.filter(function() {
1872                for (e = 0; e < n; e++)
1873                    if (pt.contains(this, i[e]))
1874                        return !0
1875            })
1876        },
1877        closest: function(t, e) {
1878            for (var i, n = 0, s = this.length, o = [], r = wt.test(t) || "string" != typeof t ? pt(t, e || this.context) : 0; n < s; n++)
1879                for (i = this[n]; i && i !== e; i = i.parentNode)
1880                    if (i.nodeType < 11 && (r ? r.index(i) > -1 : 1 === i.nodeType && pt.find.matchesSelector(i, t))) {
1881                        o.push(i);
1882                        break
1883                    }
1884            return this.pushStack(o.length > 1 ? pt.uniqueSort(o) : o)
1885        },
1886        index: function(t) {
1887            return t ? "string" == typeof t ? pt.inArray(this[0], pt(t)) : pt.inArray(t.jquery ? t[0] : t, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
1888        },
1889        add: function(t, e) {
1890            return this.pushStack(pt.uniqueSort(pt.merge(this.get(), pt(t, e))))
1891        },
1892        addBack: function(t) {
1893            return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
1894        }
1895    }),
1896    pt.each({
1897        parent: function(t) {
1898            var e = t.parentNode;
1899            return e && 11 !== e.nodeType ? e : null
1900        },
1901        parents: function(t) {
1902            return _t(t, "parentNode")
1903        },
1904        parentsUntil: function(t, e, i) {
1905            return _t(t, "parentNode", i)
1906        },
1907        next: function(t) {
1908            return s(t, "nextSibling")
1909        },
1910        prev: function(t) {
1911            return s(t, "previousSibling")
1912        },
1913        nextAll: function(t) {
1914            return _t(t, "nextSibling")
1915        },
1916        prevAll: function(t) {
1917            return _t(t, "previousSibling")
1918        },
1919        nextUntil: function(t, e, i) {
1920            return _t(t, "nextSibling", i)
1921        },
1922        prevUntil: function(t, e, i) {
1923            return _t(t, "previousSibling", i)
1924        },
1925        siblings: function(t) {
1926            return yt((t.parentNode || {}).firstChild, t)
1927        },
1928        children: function(t) {
1929            return yt(t.firstChild)
1930        },
1931        contents: function(t) {
1932            return pt.nodeName(t, "iframe") ? t.contentDocument || t.contentWindow.document : pt.merge([], t.childNodes)
1933        }
1934    }, function(t, e) {
1935        pt.fn[t] = function(i, n) {
1936            var s = pt.map(this, e, i);
1937            return "Until" !== t.slice(-5) && (n = i),
1938            n && "string" == typeof n && (s = pt.filter(n, s)),
1939            this.length > 1 && (It[t] || (s = pt.uniqueSort(s)),
1940            St.test(t) && (s = s.reverse())),
1941            this.pushStack(s)
1942        }
1943    });
1944    var Et = /\S+/g;
1945    pt.Callbacks = function(t) {
1946        t = "string" == typeof t ? o(t) : pt.extend({}, t);
1947        var e, i, n, s, r = [], a = [], l = -1, h = function() {
1948            for (s = t.once,
1949            n = e = !0; a.length; l = -1)
1950                for (i = a.shift(); ++l < r.length; )
1951                    r[l].apply(i[0], i[1]) === !1 && t.stopOnFalse && (l = r.length,
1952                    i = !1);
1953            t.memory || (i = !1),
1954            e = !1,
1955            s && (r = i ? [] : "")
1956        }, u = {
1957            add: function() {
1958                return r && (i && !e && (l = r.length - 1,
1959                a.push(i)),
1960                function e(i) {
1961                    pt.each(i, function(i, n) {
1962                        pt.isFunction(n) ? t.unique && u.has(n) || r.push(n) : n && n.length && "string" !== pt.type(n) && e(n)
1963                    })
1964                }(arguments),
1965                i && !e && h()),
1966                this
1967            },
1968            remove: function() {
1969                return pt.each(arguments, function(t, e) {
1970                    for (var i; (i = pt.inArray(e, r, i)) > -1; )
1971                        r.splice(i, 1),
1972                        i <= l && l--
1973                }),
1974                this
1975            },
1976            has: function(t) {
1977                return t ? pt.inArray(t, r) > -1 : r.length > 0
1978            },
1979            empty: function() {
1980                return r && (r = []),
1981                this
1982            },
1983            disable: function() {
1984                return s = a = [],
1985                r = i = "",
1986                this
1987            },
1988            disabled: function() {
1989                return !r
1990            },
1991            lock: function() {
1992                return s = !0,
1993                i || u.disable(),
1994                this
1995            },
1996            locked: function() {
1997                return !!s
1998            },
1999            fireWith: function(t, i) {
2000                return s || (i = i || [],
2001                i = [t, i.slice ? i.slice() : i],
2002                a.push(i),
2003                e || h()),
2004                this
2005            },
2006            fire: function() {
2007                return u.fireWith(this, arguments),
2008                this
2009            },
2010            fired: function() {
2011                return !!n
2012            }
2013        };
2014        return u
2015    }
2016    ,
2017    pt.extend({
2018        Deferred: function(t) {
2019            var e = [["resolve", "done", pt.Callbacks("once memory"), "resolved"], ["reject", "fail", pt.Callbacks("once memory"), "rejected"], ["notify", "progress", pt.Callbacks("memory")]]
2020              , i = "pending"
2021              , n = {
2022                state: function() {
2023                    return i
2024                },
2025                always: function() {
2026                    return s.done(arguments).fail(arguments),
2027                    this
2028                },
2029                then: function() {
2030                    var t = arguments;
2031                    return pt.Deferred(function(i) {
2032                        pt.each(e, function(e, o) {
2033                            var r = pt.isFunction(t[e]) && t[e];
2034                            s[o[1]](function() {
2035                                var t = r && r.apply(this, arguments);
2036                                t && pt.isFunction(t.promise) ? t.promise().progress(i.notify).done(i.resolve).fail(i.reject) : i[o[0] + "With"](this === n ? i.promise() : this, r ? [t] : arguments)
2037                            })
2038                        }),
2039                        t = null
2040                    }).promise()
2041                },
2042                promise: function(t) {
2043                    return null != t ? pt.extend(t, n) : n
2044                }
2045            }
2046              , s = {};
2047            return n.pipe = n.then,
2048            pt.each(e, function(t, o) {
2049                var r = o[2]
2050                  , a = o[3];
2051                n[o[1]] = r.add,
2052                a && r.add(function() {
2053                    i = a
2054                }, e[1 ^ t][2].disable, e[2][2].lock),
2055                s[o[0]] = function() {
2056                    return s[o[0] + "With"](this === s ? n : this, arguments),
2057                    this
2058                }
2059                ,
2060                s[o[0] + "With"] = r.fireWith
2061            }),
2062            n.promise(s),
2063            t && t.call(s, s),
2064            s
2065        },
2066        when: function(t) {
2067            var e, i, n, s = 0, o = st.call(arguments), r = o.length, a = 1 !== r || t && pt.isFunction(t.promise) ? r : 0, l = 1 === a ? t : pt.Deferred(), h = function(t, i, n) {
2068                return function(s) {
2069                    i[t] = this,
2070                    n[t] = arguments.length > 1 ? st.call(arguments) : s,
2071                    n === e ? l.notifyWith(i, n) : --a || l.resolveWith(i, n)
2072                }
2073            };
2074            if (r > 1)
2075                for (e = new Array(r),
2076                i = new Array(r),
2077                n = new Array(r); s < r; s++)
2078                    o[s] && pt.isFunction(o[s].promise) ? o[s].promise().progress(h(s, i, e)).done(h(s, n, o)).fail(l.reject) : --a;
2079            return a || l.resolveWith(n, o),
2080            l.promise()
2081        }
2082    });
2083    var Pt;
2084    pt.fn.ready = function(t) {
2085        return pt.ready.promise().done(t),
2086        this
2087    }
2088    ,
2089    pt.extend({
2090        isReady: !1,
2091        readyWait: 1,
2092        holdReady: function(t) {
2093            t ? pt.readyWait++ : pt.ready(!0)
2094        },
2095        ready: function(t) {
2096            (t === !0 ? --pt.readyWait : pt.isReady) || (pt.isReady = !0,
2097            t !== !0 && --pt.readyWait > 0 || (Pt.resolveWith(nt, [pt]),
2098            pt.fn.triggerHandler && (pt(nt).triggerHandler("ready"),
2099            pt(nt).off("ready"))))
2100        }
2101    }),
2102    pt.ready.promise = function(e) {
2103        if (!Pt)
2104            if (Pt = pt.Deferred(),
2105            "complete" === nt.readyState || "loading" !== nt.readyState && !nt.documentElement.doScroll)
2106                t.setTimeout(pt.ready);
2107            else if (nt.addEventListener)
2108                nt.addEventListener("DOMContentLoaded", a),
2109                t.addEventListener("load", a);
2110            else {
2111                nt.attachEvent("onreadystatechange", a),
2112                t.attachEvent("onload", a);
2113                var i = !1;
2114                try {
2115                    i = null == t.frameElement && nt.documentElement
2116                } catch (t) {}
2117                i && i.doScroll && !function e() {
2118                    if (!pt.isReady) {
2119                        try {
2120                            i.doScroll("left")
2121                        } catch (i) {
2122                            return t.setTimeout(e, 50)
2123                        }
2124                        r(),
2125                        pt.ready()
2126                    }
2127                }()
2128            }
2129        return Pt.promise(e)
2130    }
2131    ,
2132    pt.ready.promise();
2133    var Mt;
2134    for (Mt in pt(ct))
2135        break;
2136    ct.ownFirst = "0" === Mt,
2137    ct.inlineBlockNeedsLayout = !1,
2138    pt(function() {
2139        var t, e, i, n;
2140        i = nt.getElementsByTagName("body")[0],
2141        i && i.style && (e = nt.createElement("div"),
2142        n = nt.createElement("div"),
2143        n.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px",
2144        i.appendChild(n).appendChild(e),
2145        "undefined" != typeof e.style.zoom && (e.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",
2146        ct.inlineBlockNeedsLayout = t = 3 === e.offsetWidth,
2147        t && (i.style.zoom = 1)),
2148        i.removeChild(n))
2149    }),
2150    function() {
2151        var t = nt.createElement("div");
2152        ct.deleteExpando = !0;
2153        try {
2154            delete t.test
2155        } catch (t) {
2156            ct.deleteExpando = !1
2157        }
2158        t = null
2159    }();
2160    var At = function(t) {
2161        var e = pt.noData[(t.nodeName + " ").toLowerCase()]
2162          , i = +t.nodeType || 1;
2163        return (1 === i || 9 === i) && (!e || e !== !0 && t.getAttribute("classid") === e)
2164    }
2165      , Nt = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/
2166      , Ht = /([A-Z])/g;
2167    pt.extend({
2168        cache: {},
2169        noData: {
2170            "applet ": !0,
2171            "embed ": !0,
2172            "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
2173        },
2174        hasData: function(t) {
2175            return t = t.nodeType ? pt.cache[t[pt.expando]] : t[pt.expando],
2176            !!t && !h(t)
2177        },
2178        data: function(t, e, i) {
2179            return u(t, e, i)
2180        },
2181        removeData: function(t, e) {
2182            return c(t, e)
2183        },
2184        _data: function(t, e, i) {
2185            return u(t, e, i, !0)
2186        },
2187        _removeData: function(t, e) {
2188            return c(t, e, !0)
2189        }
2190    }),
2191    pt.fn.extend({
2192        data: function(t, e) {
2193            var i, n, s, o = this[0], r = o && o.attributes;
2194            if (void 0 === t) {
2195                if (this.length && (s = pt.data(o),
2196                1 === o.nodeType && !pt._data(o, "parsedAttrs"))) {
2197                    for (i = r.length; i--; )
2198                        r[i] && (n = r[i].name,
2199                        0 === n.indexOf("data-") && (n = pt.camelCase(n.slice(5)),
2200                        l(o, n, s[n])));
2201                    pt._data(o, "parsedAttrs", !0)
2202                }
2203                return s
2204            }
2205            return "object" == typeof t ? this.each(function() {
2206                pt.data(this, t)
2207            }) : arguments.length > 1 ? this.each(function() {
2208                pt.data(this, t, e)
2209            }) : o ? l(o, t, pt.data(o, t)) : void 0
2210        },
2211        removeData: function(t) {
2212            return this.each(function() {
2213                pt.removeData(this, t)
2214            })
2215        }
2216    }),
2217    pt.extend({
2218        queue: function(t, e, i) {
2219            var n;
2220            if (t)
2221                return e = (e || "fx") + "queue",
2222                n = pt._data(t, e),
2223                i && (!n || pt.isArray(i) ? n = pt._data(t, e, pt.makeArray(i)) : n.push(i)),
2224                n || []
2225        },
2226        dequeue: function(t, e) {
2227            e = e || "fx";
2228            var i = pt.queue(t, e)
2229              , n = i.length
2230              , s = i.shift()
2231              , o = pt._queueHooks(t, e)
2232              , r = function() {
2233                pt.dequeue(t, e)
2234            };
2235            "inprogress" === s && (s = i.shift(),
2236            n--),
2237            s && ("fx" === e && i.unshift("inprogress"),
2238            delete o.stop,
2239            s.call(t, r, o)),
2240            !n && o && o.empty.fire()
2241        },
2242        _queueHooks: function(t, e) {
2243            var i = e + "queueHooks";
2244            return pt._data(t, i) || pt._data(t, i, {
2245                empty: pt.Callbacks("once memory").add(function() {
2246                    pt._removeData(t, e + "queue"),
2247                    pt._removeData(t, i)
2248                })
2249            })
2250        }
2251    }),
2252    pt.fn.extend({
2253        queue: function(t, e) {
2254            var i = 2;
2255            return "string" != typeof t && (e = t,
2256            t = "fx",
2257            i--),
2258            arguments.length < i ? pt.queue(this[0], t) : void 0 === e ? this : this.each(function() {
2259                var i = pt.queue(this, t, e);
2260                pt._queueHooks(this, t),
2261                "fx" === t && "inprogress" !== i[0] && pt.dequeue(this, t)
2262            })
2263        },
2264        dequeue: function(t) {
2265            return this.each(function() {
2266                pt.dequeue(this, t)
2267            })
2268        },
2269        clearQueue: function(t) {
2270            return this.queue(t || "fx", [])
2271        },
2272        promise: function(t, e) {
2273            var i, n = 1, s = pt.Deferred(), o = this, r = this.length, a = function() {
2274                --n || s.resolveWith(o, [o])
2275            };
2276            for ("string" != typeof t && (e = t,
2277            t = void 0),
2278            t = t || "fx"; r--; )
2279                i = pt._data(o[r], t + "queueHooks"),
2280                i && i.empty && (n++,
2281                i.empty.add(a));
2282            return a(),
2283            s.promise(e)
2284        }
2285    }),
2286    function() {
2287        var t;
2288        ct.shrinkWrapBlocks = function() {
2289            if (null != t)
2290                return t;
2291            t = !1;
2292            var e, i, n;
2293            return i = nt.getElementsByTagName("body")[0],
2294            i && i.style ? (e = nt.createElement("div"),
2295            n = nt.createElement("div"),
2296            n.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px",
2297            i.appendChild(n).appendChild(e),
2298            "undefined" != typeof e.style.zoom && (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",
2299            e.appendChild(nt.createElement("div")).style.width = "5px",
2300            t = 3 !== e.offsetWidth),
2301            i.removeChild(n),
2302            t) : void 0
2303        }
2304    }();
2305    var zt = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source
2306      , jt = new RegExp("^(?:([+-])=|)(" + zt + ")([a-z%]*)$","i")
2307      , Ot = ["Top", "Right", "Bottom", "Left"]
2308      , Wt = function(t, e) {
2309        return t = e || t,
2310        "none" === pt.css(t, "display") || !pt.contains(t.ownerDocument, t)
2311    }
2312      , Ft = function(t, e, i, n, s, o, r) {
2313        var a = 0
2314          , l = t.length
2315          , h = null == i;
2316        if ("object" === pt.type(i)) {
2317            s = !0;
2318            for (a in i)
2319                Ft(t, e, a, i[a], !0, o, r)
2320        } else if (void 0 !== n && (s = !0,
2321        pt.isFunction(n) || (r = !0),
2322        h && (r ? (e.call(t, n),
2323        e = null) : (h = e,
2324        e = function(t, e, i) {
2325            return h.call(pt(t), i)
2326        }
2327        )),
2328        e))
2329            for (; a < l; a++)
2330                e(t[a], i, r ? n : n.call(t[a], a, e(t[a], i)));
2331        return s ? t : h ? e.call(t) : l ? e(t[0], i) : o
2332    }
2333      , Lt = /^(?:checkbox|radio)$/i
2334      , Rt = /<([\w:-]+)/
2335      , qt = /^$|\/(?:java|ecma)script/i
2336      , Bt = /^\s+/
2337      , Yt = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";
2338    !function() {
2339        var t = nt.createElement("div")
2340          , e = nt.createDocumentFragment()
2341          , i = nt.createElement("input");
2342        t.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",
2343        ct.leadingWhitespace = 3 === t.firstChild.nodeType,
2344        ct.tbody = !t.getElementsByTagName("tbody").length,
2345        ct.htmlSerialize = !!t.getElementsByTagName("link").length,
2346        ct.html5Clone = "<:nav></:nav>" !== nt.createElement("nav").cloneNode(!0).outerHTML,
2347        i.type = "checkbox",
2348        i.checked = !0,
2349        e.appendChild(i),
2350        ct.appendChecked = i.checked,
2351        t.innerHTML = "<textarea>x</textarea>",
2352        ct.noCloneChecked = !!t.cloneNode(!0).lastChild.defaultValue,
2353        e.appendChild(t),
2354        i = nt.createElement("input"),
2355        i.setAttribute("type", "radio"),
2356        i.setAttribute("checked", "checked"),
2357        i.setAttribute("name", "t"),
2358        t.appendChild(i),
2359        ct.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked,
2360        ct.noCloneEvent = !!t.addEventListener,
2361        t[pt.expando] = 1,
2362        ct.attributes = !t.getAttribute(pt.expando)
2363    }();
2364    var $t = {
2365        option: [1, "<select multiple='multiple'>", "</select>"],
2366        legend: [1, "<fieldset>", "</fieldset>"],
2367        area: [1, "<map>", "</map>"],
2368        param: [1, "<object>", "</object>"],
2369        thead: [1, "<table>", "</table>"],
2370        tr: [2, "<table><tbody>", "</tbody></table>"],
2371        col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
2372        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
2373        _default: ct.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
2374    };
2375    $t.optgroup = $t.option,
2376    $t.tbody = $t.tfoot = $t.colgroup = $t.caption = $t.thead,
2377    $t.th = $t.td;
2378    var Ut = /<|&#?\w+;/
2379      , Kt = /<tbody/i;
2380    !function() {
2381        var e, i, n = nt.createElement("div");
2382        for (e in {
2383            submit: !0,
2384            change: !0,
2385            focusin: !0
2386        })
2387            i = "on" + e,
2388            (ct[e] = i in t) || (n.setAttribute(i, "t"),
2389            ct[e] = n.attributes[i].expando === !1);
2390        n = null
2391    }();
2392    var Xt = /^(?:input|select|textarea)$/i
2393      , Vt = /^key/
2394      , Qt = /^(?:mouse|pointer|contextmenu|drag|drop)|click/
2395      , Gt = /^(?:focusinfocus|focusoutblur)$/
2396      , Jt = /^([^.]*)(?:\.(.+)|)/;
2397    pt.event = {
2398        global: {},
2399        add: function(t, e, i, n, s) {
2400            var o, r, a, l, h, u, c, d, p, f, g, m = pt._data(t);
2401            if (m) {
2402                for (i.handler && (l = i,
2403                i = l.handler,
2404                s = l.selector),
2405                i.guid || (i.guid = pt.guid++),
2406                (r = m.events) || (r = m.events = {}),
2407                (u = m.handle) || (u = m.handle = function(t) {
2408                    return "undefined" == typeof pt || t && pt.event.triggered === t.type ? void 0 : pt.event.dispatch.apply(u.elem, arguments)
2409                }
2410                ,
2411                u.elem = t),
2412                e = (e || "").match(Et) || [""],
2413                a = e.length; a--; )
2414                    o = Jt.exec(e[a]) || [],
2415                    p = g = o[1],
2416                    f = (o[2] || "").split(".").sort(),
2417                    p && (h = pt.event.special[p] || {},
2418                    p = (s ? h.delegateType : h.bindType) || p,
2419                    h = pt.event.special[p] || {},
2420                    c = pt.extend({
2421                        type: p,
2422                        origType: g,
2423                        data: n,
2424                        handler: i,
2425                        guid: i.guid,
2426                        selector: s,
2427                        needsContext: s && pt.expr.match.needsContext.test(s),
2428                        namespace: f.join(".")
2429                    }, l),
2430                    (d = r[p]) || (d = r[p] = [],
2431                    d.delegateCount = 0,
2432                    h.setup && h.setup.call(t, n, f, u) !== !1 || (t.addEventListener ? t.addEventListener(p, u, !1) : t.attachEvent && t.attachEvent("on" + p, u))),
2433                    h.add && (h.add.call(t, c),
2434                    c.handler.guid || (c.handler.guid = i.guid)),
2435                    s ? d.splice(d.delegateCount++, 0, c) : d.push(c),
2436                    pt.event.global[p] = !0);
2437                t = null
2438            }
2439        },
2440        remove: function(t, e, i, n, s) {
2441            var o, r, a, l, h, u, c, d, p, f, g, m = pt.hasData(t) && pt._data(t);
2442            if (m && (u = m.events)) {
2443                for (e = (e || "").match(Et) || [""],
2444                h = e.length; h--; )
2445                    if (a = Jt.exec(e[h]) || [],
2446                    p = g = a[1],
2447                    f = (a[2] || "").split(".").sort(),
2448                    p) {
2449                        for (c = pt.event.special[p] || {},
2450                        p = (n ? c.delegateType : c.bindType) || p,
2451                        d = u[p] || [],
2452                        a = a[2] && new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"),
2453                        l = o = d.length; o--; )
2454                            r = d[o],
2455                            !s && g !== r.origType || i && i.guid !== r.guid || a && !a.test(r.namespace) || n && n !== r.selector && ("**" !== n || !r.selector) || (d.splice(o, 1),
2456                            r.selector && d.delegateCount--,
2457                            c.remove && c.remove.call(t, r));
2458                        l && !d.length && (c.teardown && c.teardown.call(t, f, m.handle) !== !1 || pt.removeEvent(t, p, m.handle),
2459                        delete u[p])
2460                    } else
2461                        for (p in u)
2462                            pt.event.remove(t, p + e[h], i, n, !0);
2463                pt.isEmptyObject(u) && (delete m.handle,
2464                pt._removeData(t, "events"))
2465            }
2466        },
2467        trigger: function(e, i, n, s) {
2468            var o, r, a, l, h, u, c, d = [n || nt], p = ut.call(e, "type") ? e.type : e, f = ut.call(e, "namespace") ? e.namespace.split(".") : [];
2469            if (a = u = n = n || nt,
2470            3 !== n.nodeType && 8 !== n.nodeType && !Gt.test(p + pt.event.triggered) && (p.indexOf(".") > -1 && (f = p.split("."),
2471            p = f.shift(),
2472            f.sort()),
2473            r = p.indexOf(":") < 0 && "on" + p,
2474            e = e[pt.expando] ? e : new pt.Event(p,"object" == typeof e && e),
2475            e.isTrigger = s ? 2 : 3,
2476            e.namespace = f.join("."),
2477            e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
2478            e.result = void 0,
2479            e.target || (e.target = n),
2480            i = null == i ? [e] : pt.makeArray(i, [e]),
2481            h = pt.event.special[p] || {},
2482            s || !h.trigger || h.trigger.apply(n, i) !== !1)) {
2483                if (!s && !h.noBubble && !pt.isWindow(n)) {
2484                    for (l = h.delegateType || p,
2485                    Gt.test(l + p) || (a = a.parentNode); a; a = a.parentNode)
2486                        d.push(a),
2487                        u = a;
2488                    u === (n.ownerDocument || nt) && d.push(u.defaultView || u.parentWindow || t)
2489                }
2490                for (c = 0; (a = d[c++]) && !e.isPropagationStopped(); )
2491                    e.type = c > 1 ? l : h.bindType || p,
2492                    o = (pt._data(a, "events") || {})[e.type] && pt._data(a, "handle"),
2493                    o && o.apply(a, i),
2494                    o = r && a[r],
2495                    o && o.apply && At(a) && (e.result = o.apply(a, i),
2496                    e.result === !1 && e.preventDefault());
2497                if (e.type = p,
2498                !s && !e.isDefaultPrevented() && (!h._default || h._default.apply(d.pop(), i) === !1) && At(n) && r && n[p] && !pt.isWindow(n)) {
2499                    u = n[r],
2500                    u && (n[r] = null),
2501                    pt.event.triggered = p;
2502                    try {
2503                        n[p]()
2504                    } catch (t) {}
2505                    pt.event.triggered = void 0,
2506                    u && (n[r] = u)
2507                }
2508                return e.result
2509            }
2510        },
2511        dispatch: function(t) {
2512            t = pt.event.fix(t);
2513            var e, i, n, s, o, r = [], a = st.call(arguments), l = (pt._data(this, "events") || {})[t.type] || [], h = pt.event.special[t.type] || {};
2514            if (a[0] = t,
2515            t.delegateTarget = this,
2516            !h.preDispatch || h.preDispatch.call(this, t) !== !1) {
2517                for (r = pt.event.handlers.call(this, t, l),
2518                e = 0; (s = r[e++]) && !t.isPropagationStopped(); )
2519                    for (t.currentTarget = s.elem,
2520                    i = 0; (o = s.handlers[i++]) && !t.isImmediatePropagationStopped(); )
2521                        t.rnamespace && !t.rnamespace.test(o.namespace) || (t.handleObj = o,
2522                        t.data = o.data,
2523                        n = ((pt.event.special[o.origType] || {}).handle || o.handler).apply(s.elem, a),
2524                        void 0 !== n && (t.result = n) === !1 && (t.preventDefault(),
2525                        t.stopPropagation()));
2526                return h.postDispatch && h.postDispatch.call(this, t),
2527                t.result
2528            }
2529        },
2530        handlers: function(t, e) {
2531            var i, n, s, o, r = [], a = e.delegateCount, l = t.target;
2532            if (a && l.nodeType && ("click" !== t.type || isNaN(t.button) || t.button < 1))
2533                for (; l != this; l = l.parentNode || this)
2534                    if (1 === l.nodeType && (l.disabled !== !0 || "click" !== t.type)) {
2535                        for (n = [],
2536                        i = 0; i < a; i++)
2537                            o = e[i],
2538                            s = o.selector + " ",
2539                            void 0 === n[s] && (n[s] = o.needsContext ? pt(s, this).index(l) > -1 : pt.find(s, this, null, [l]).length),
2540                            n[s] && n.push(o);
2541                        n.length && r.push({
2542                            elem: l,
2543                            handlers: n
2544                        })
2545                    }
2546            return a < e.length && r.push({
2547                elem: this,
2548                handlers: e.slice(a)
2549            }),
2550            r
2551        },
2552        fix: function(t) {
2553            if (t[pt.expando])
2554                return t;
2555            var e, i, n, s = t.type, o = t, r = this.fixHooks[s];
2556            for (r || (this.fixHooks[s] = r = Qt.test(s) ? this.mouseHooks : Vt.test(s) ? this.keyHooks : {}),
2557            n = r.props ? this.props.concat(r.props) : this.props,
2558            t = new pt.Event(o),
2559            e = n.length; e--; )
2560                i = n[e],
2561                t[i] = o[i];
2562            return t.target || (t.target = o.srcElement || nt),
2563            3 === t.target.nodeType && (t.target = t.target.parentNode),
2564            t.metaKey = !!t.metaKey,
2565            r.filter ? r.filter(t, o) : t
2566        },
2567        props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
2568        fixHooks: {},
2569        keyHooks: {
2570            props: "char charCode key keyCode".split(" "),
2571            filter: function(t, e) {
2572                return null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode),
2573                t
2574            }
2575        },
2576        mouseHooks: {
2577            props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
2578            filter: function(t, e) {
2579                var i, n, s, o = e.button, r = e.fromElement;
2580                return null == t.pageX && null != e.clientX && (n = t.target.ownerDocument || nt,
2581                s = n.documentElement,
2582                i = n.body,
2583                t.pageX = e.clientX + (s && s.scrollLeft || i && i.scrollLeft || 0) - (s && s.clientLeft || i && i.clientLeft || 0),
2584                t.pageY = e.clientY + (s && s.scrollTop || i && i.scrollTop || 0) - (s && s.clientTop || i && i.clientTop || 0)),
2585                !t.relatedTarget && r && (t.relatedTarget = r === t.target ? e.toElement : r),
2586                t.which || void 0 === o || (t.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0),
2587                t
2588            }
2589        },
2590        special: {
2591            load: {
2592                noBubble: !0
2593            },
2594            focus: {
2595                trigger: function() {
2596                    if (this !== y() && this.focus)
2597                        try {
2598                            return this.focus(),
2599                            !1
2600                        } catch (t) {}
2601                },
2602                delegateType: "focusin"
2603            },
2604            blur: {
2605                trigger: function() {
2606                    if (this === y() && this.blur)
2607                        return this.blur(),
2608                        !1
2609                },
2610                delegateType: "focusout"
2611            },
2612            click: {
2613                trigger: function() {
2614                    if (pt.nodeName(this, "input") && "checkbox" === this.type && this.click)
2615                        return this.click(),
2616                        !1
2617                },
2618                _default: function(t) {
2619                    return pt.nodeName(t.target, "a")
2620                }
2621            },
2622            beforeunload: {
2623                postDispatch: function(t) {
2624                    void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result)
2625                }
2626            }
2627        },
2628        simulate: function(t, e, i) {
2629            var n = pt.extend(new pt.Event, i, {
2630                type: t,
2631                isSimulated: !0
2632            });
2633            pt.event.trigger(n, null, e),
2634            n.isDefaultPrevented() && i.preventDefault()
2635        }
2636    },
2637    pt.removeEvent = nt.removeEventListener ? function(t, e, i) {
2638        t.removeEventListener && t.removeEventListener(e, i)
2639    }
2640    : function(t, e, i) {
2641        var n = "on" + e;
2642        t.detachEvent && ("undefined" == typeof t[n] && (t[n] = null),
2643        t.detachEvent(n, i))
2644    }
2645    ,
2646    pt.Event = function(t, e) {
2647        return this instanceof pt.Event ? (t && t.type ? (this.originalEvent = t,
2648        this.type = t.type,
2649        this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && t.returnValue === !1 ? b : _) : this.type = t,
2650        e && pt.extend(this, e),
2651        this.timeStamp = t && t.timeStamp || pt.now(),
2652        void (this[pt.expando] = !0)) : new pt.Event(t,e)
2653    }
2654    ,
2655    pt.Event.prototype = {
2656        constructor: pt.Event,
2657        isDefaultPrevented: _,
2658        isPropagationStopped: _,
2659        isImmediatePropagationStopped: _,
2660        preventDefault: function() {
2661            var t = this.originalEvent;
2662            this.isDefaultPrevented = b,
2663            t && (t.preventDefault ? t.preventDefault() : t.returnValue = !1)
2664        },
2665        stopPropagation: function() {
2666            var t = this.originalEvent;
2667            this.isPropagationStopped = b,
2668            t && !this.isSimulated && (t.stopPropagation && t.stopPropagation(),
2669            t.cancelBubble = !0)
2670        },
2671        stopImmediatePropagation: function() {
2672            var t = this.originalEvent;
2673            this.isImmediatePropagationStopped = b,
2674            t && t.stopImmediatePropagation && t.stopImmediatePropagation(),
2675            this.stopPropagation()
2676        }
2677    },
2678    pt.each({
2679        mouseenter: "mouseover",
2680        mouseleave: "mouseout",
2681        pointerenter: "pointerover",
2682        pointerleave: "pointerout"
2683    }, function(t, e) {
2684        pt.event.special[t] = {
2685            delegateType: e,
2686            bindType: e,
2687            handle: function(t) {
2688                var i, n = this, s = t.relatedTarget, o = t.handleObj;
2689                return s && (s === n || pt.contains(n, s)) || (t.type = o.origType,
2690                i = o.handler.apply(this, arguments),
2691                t.type = e),
2692                i
2693            }
2694        }
2695    }),
2696    ct.submit || (pt.event.special.submit = {
2697        setup: function() {
2698            return !pt.nodeName(this, "form") && void pt.event.add(this, "click._submit keypress._submit", function(t) {
2699                var e = t.target
2700                  , i = pt.nodeName(e, "input") || pt.nodeName(e, "button") ? pt.prop(e, "form") : void 0;
2701                i && !pt._data(i, "submit") && (pt.event.add(i, "submit._submit", function(t) {
2702                    t._submitBubble = !0
2703                }),
2704                pt._data(i, "submit", !0))
2705            })
2706        },
2707        postDispatch: function(t) {
2708            t._submitBubble && (delete t._submitBubble,
2709            this.parentNode && !t.isTrigger && pt.event.simulate("submit", this.parentNode, t))
2710        },
2711        teardown: function() {
2712            return !pt.nodeName(this, "form") && void pt.event.remove(this, "._submit")
2713        }
2714    }),
2715    ct.change || (pt.event.special.change = {
2716        setup: function() {
2717            return Xt.test(this.nodeName) ? ("checkbox" !== this.type && "radio" !== this.type || (pt.event.add(this, "propertychange._change", function(t) {
2718                "checked" === t.originalEvent.propertyName && (this._justChanged = !0)
2719            }),
2720            pt.event.add(this, "click._change", function(t) {
2721                this._justChanged && !t.isTrigger && (this._justChanged = !1),
2722                pt.event.simulate("change", this, t)
2723            })),
2724            !1) : void pt.event.add(this, "beforeactivate._change", function(t) {
2725                var e = t.target;
2726                Xt.test(e.nodeName) && !pt._data(e, "change") && (pt.event.add(e, "change._change", function(t) {
2727                    !this.parentNode || t.isSimulated || t.isTrigger || pt.event.simulate("change", this.parentNode, t)
2728                }),
2729                pt._data(e, "change", !0))
2730            })
2731        },
2732        handle: function(t) {
2733            var e = t.target;
2734            if (this !== e || t.isSimulated || t.isTrigger || "radio" !== e.type && "checkbox" !== e.type)
2735                return t.handleObj.handler.apply(this, arguments)
2736        },
2737        teardown: function() {
2738            return pt.event.remove(this, "._change"),
2739            !Xt.test(this.nodeName)
2740        }
2741    }),
2742    ct.focusin || pt.each({
2743        focus: "focusin",
2744        blur: "focusout"
2745    }, function(t, e) {
2746        var i = function(t) {
2747            pt.event.simulate(e, t.target, pt.event.fix(t))
2748        };
2749        pt.event.special[e] = {
2750            setup: function() {
2751                var n = this.ownerDocument || this
2752                  , s = pt._data(n, e);
2753                s || n.addEventListener(t, i, !0),
2754                pt._data(n, e, (s || 0) + 1)
2755            },
2756            teardown: function() {
2757                var n = this.ownerDocument || this
2758                  , s = pt._data(n, e) - 1;
2759                s ? pt._data(n, e, s) : (n.removeEventListener(t, i, !0),
2760                pt._removeData(n, e))
2761            }
2762        }
2763    }),
2764    pt.fn.extend({
2765        on: function(t, e, i, n) {
2766            return w(this, t, e, i, n)
2767        },
2768        one: function(t, e, i, n) {
2769            return w(this, t, e, i, n, 1)
2770        },
2771        off: function(t, e, i) {
2772            var n, s;
2773            if (t && t.preventDefault && t.handleObj)
2774                return n = t.handleObj,
2775                pt(t.delegateTarget).off(n.namespace ? n.origType + "." + n.namespace : n.origType, n.selector, n.handler),
2776                this;
2777            if ("object" == typeof t) {
2778                for (s in t)
2779                    this.off(s, e, t[s]);
2780                return this
2781            }
2782            return e !== !1 && "function" != typeof e || (i = e,
2783            e = void 0),
2784            i === !1 && (i = _),
2785            this.each(function() {
2786                pt.event.remove(this, t, i, e)
2787            })
2788        },
2789        trigger: function(t, e) {
2790            return this.each(function() {
2791                pt.event.trigger(t, e, this)
2792            })
2793        },
2794        triggerHandler: function(t, e) {
2795            var i = this[0];
2796            if (i)
2797                return pt.event.trigger(t, e, i, !0)
2798        }
2799    });
2800    var Zt = / jQuery\d+="(?:null|\d+)"/g
2801      , te = new RegExp("<(?:" + Yt + ")[\\s/>]","i")
2802      , ee = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi
2803      , ie = /<script|<style|<link/i
2804      , ne = /checked\s*(?:[^=]|=\s*.checked.)/i
2805      , se = /^true\/(.*)/
2806      , oe = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g
2807      , re = p(nt)
2808      , ae = re.appendChild(nt.createElement("div"));
2809    pt.extend({
2810        htmlPrefilter: function(t) {
2811            return t.replace(ee, "<$1></$2>")
2812        },
2813        clone: function(t, e, i) {
2814            var n, s, o, r, a, l = pt.contains(t.ownerDocument, t);
2815            if (ct.html5Clone || pt.isXMLDoc(t) || !te.test("<" + t.nodeName + ">") ? o = t.cloneNode(!0) : (ae.innerHTML = t.outerHTML,
2816            ae.removeChild(o = ae.firstChild)),
2817            !(ct.noCloneEvent && ct.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || pt.isXMLDoc(t)))
2818                for (n = f(o),
2819                a = f(t),
2820                r = 0; null != (s = a[r]); ++r)
2821                    n[r] && T(s, n[r]);
2822            if (e)
2823                if (i)
2824                    for (a = a || f(t),
2825                    n = n || f(o),
2826                    r = 0; null != (s = a[r]); r++)
2827                        D(s, n[r]);
2828                else
2829                    D(t, o);
2830            return n = f(o, "script"),
2831            n.length > 0 && g(n, !l && f(t, "script")),
2832            n = a = s = null,
2833            o
2834        },
2835        cleanData: function(t, e) {
2836            for (var i, n, s, o, r = 0, a = pt.expando, l = pt.cache, h = ct.attributes, u = pt.event.special; null != (i = t[r]); r++)
2837                if ((e || At(i)) && (s = i[a],
2838                o = s && l[s])) {
2839                    if (o.events)
2840                        for (n in o.events)
2841                            u[n] ? pt.event.remove(i, n) : pt.removeEvent(i, n, o.handle);
2842                    l[s] && (delete l[s],
2843                    h || "undefined" == typeof i.removeAttribute ? i[a] = void 0 : i.removeAttribute(a),
2844                    it.push(s))
2845                }
2846        }
2847    }),
2848    pt.fn.extend({
2849        domManip: S,
2850        detach: function(t) {
2851            return I(this, t, !0)
2852        },
2853        remove: function(t) {
2854            return I(this, t)
2855        },
2856        text: function(t) {
2857            return Ft(this, function(t) {
2858                return void 0 === t ? pt.text(this) : this.empty().append((this[0] && this[0].ownerDocument || nt).createTextNode(t))
2859            }, null, t, arguments.length)
2860        },
2861        append: function() {
2862            return S(this, arguments, function(t) {
2863                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
2864                    var e = x(this, t);
2865                    e.appendChild(t)
2866                }
2867            })
2868        },
2869        prepend: function() {
2870            return S(this, arguments, function(t) {
2871                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
2872                    var e = x(this, t);
2873                    e.insertBefore(t, e.firstChild)
2874                }
2875            })
2876        },
2877        before: function() {
2878            return S(this, arguments, function(t) {
2879                this.parentNode && this.parentNode.insertBefore(t, this)
2880            })
2881        },
2882        after: function() {
2883            return S(this, arguments, function(t) {
2884                this.parentNode && this.parentNode.insertBefore(t, this.nextSibling)
2885            })
2886        },
2887        empty: function() {
2888            for (var t, e = 0; null != (t = this[e]); e++) {
2889                for (1 === t.nodeType && pt.cleanData(f(t, !1)); t.firstChild; )
2890                    t.removeChild(t.firstChild);
2891                t.options && pt.nodeName(t, "select") && (t.options.length = 0)
2892            }
2893            return this
2894        },
2895        clone: function(t, e) {
2896            return t = null != t && t,
2897            e = null == e ? t : e,
2898            this.map(function() {
2899                return pt.clone(this, t, e)
2900            })
2901        },
2902        html: function(t) {
2903            return Ft(this, function(t) {
2904                var e = this[0] || {}
2905                  , i = 0
2906                  , n = this.length;
2907                if (void 0 === t)
2908                    return 1 === e.nodeType ? e.innerHTML.replace(Zt, "") : void 0;
2909                if ("string" == typeof t && !ie.test(t) && (ct.htmlSerialize || !te.test(t)) && (ct.leadingWhitespace || !Bt.test(t)) && !$t[(Rt.exec(t) || ["", ""])[1].toLowerCase()]) {
2910                    t = pt.htmlPrefilter(t);
2911                    try {
2912                        for (; i < n; i++)
2913                            e = this[i] || {},
2914                            1 === e.nodeType && (pt.cleanData(f(e, !1)),
2915                            e.innerHTML = t);
2916                        e = 0
2917                    } catch (t) {}
2918                }
2919                e && this.empty().append(t)
2920            }, null, t, arguments.length)
2921        },
2922        replaceWith: function() {
2923            var t = [];
2924            return S(this, arguments, function(e) {
2925                var i = this.parentNode;
2926                pt.inArray(this, t) < 0 && (pt.cleanData(f(this)),
2927                i && i.replaceChild(e, this))
2928            }, t)
2929        }
2930    }),
2931    pt.each({
2932        appendTo: "append",
2933        prependTo: "prepend",
2934        insertBefore: "before",
2935        insertAfter: "after",
2936        replaceAll: "replaceWith"
2937    }, function(t, e) {
2938        pt.fn[t] = function(t) {
2939            for (var i, n = 0, s = [], o = pt(t), r = o.length - 1; n <= r; n++)
2940                i = n === r ? this : this.clone(!0),
2941                pt(o[n])[e](i),
2942                rt.apply(s, i.get());
2943            return this.pushStack(s)
2944        }
2945    });
2946    var le, he = {
2947        HTML: "block",
2948        BODY: "block"
2949    }, ue = /^margin/, ce = new RegExp("^(" + zt + ")(?!px)[a-z%]+$","i"), de = function(t, e, i, n) {
2950        var s, o, r = {};
2951        for (o in e)
2952            r[o] = t.style[o],
2953            t.style[o] = e[o];
2954        s = i.apply(t, n || []);
2955        for (o in e)
2956            t.style[o] = r[o];
2957        return s
2958    }, pe = nt.documentElement;
2959    !function() {
2960        function e() {
2961            var e, u, c = nt.documentElement;
2962            c.appendChild(l),
2963            h.style.cssText = "-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",
2964            i = s = a = !1,
2965            n = r = !0,
2966            t.getComputedStyle && (u = t.getComputedStyle(h),
2967            i = "1%" !== (u || {}).top,
2968            a = "2px" === (u || {}).marginLeft,
2969            s = "4px" === (u || {
2970                width: "4px"
2971            }).width,
2972            h.style.marginRight = "50%",
2973            n = "4px" === (u || {
2974                marginRight: "4px"
2975            }).marginRight,
2976            e = h.appendChild(nt.createElement("div")),
2977            e.style.cssText = h.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",
2978            e.style.marginRight = e.style.width = "0",
2979            h.style.width = "1px",
2980            r = !parseFloat((t.getComputedStyle(e) || {}).marginRight),
2981            h.removeChild(e)),
2982            h.style.display = "none",
2983            o = 0 === h.getClientRects().length,
2984            o && (h.style.display = "",
2985            h.innerHTML = "<table><tr><td></td><td>t</td></tr></table>",
2986            h.childNodes[0].style.borderCollapse = "separate",
2987            e = h.getElementsByTagName("td"),
2988            e[0].style.cssText = "margin:0;border:0;padding:0;display:none",
2989            o = 0 === e[0].offsetHeight,
2990            o && (e[0].style.display = "",
2991            e[1].style.display = "none",
2992            o = 0 === e[0].offsetHeight)),
2993            c.removeChild(l)
2994        }
2995        var i, n, s, o, r, a, l = nt.createElement("div"), h = nt.createElement("div");
2996        h.style && (h.style.cssText = "float:left;opacity:.5",
2997        ct.opacity = "0.5" === h.style.opacity,
2998        ct.cssFloat = !!h.style.cssFloat,
2999        h.style.backgroundClip = "content-box",
3000        h.cloneNode(!0).style.backgroundClip = "",
3001        ct.clearCloneStyle = "content-box" === h.style.backgroundClip,
3002        l = nt.createElement("div"),
3003        l.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",
3004        h.innerHTML = "",
3005        l.appendChild(h),
3006        ct.boxSizing = "" === h.style.boxSizing || "" === h.style.MozBoxSizing || "" === h.style.WebkitBoxSizing,
3007        pt.extend(ct, {
3008            reliableHiddenOffsets: function() {
3009                return null == i && e(),
3010                o
3011            },
3012            boxSizingReliable: function() {
3013                return null == i && e(),
3014                s
3015            },
3016            pixelMarginRight: function() {
3017                return null == i && e(),
3018                n
3019            },
3020            pixelPosition: function() {
3021                return null == i && e(),
3022                i
3023            },
3024            reliableMarginRight: function() {
3025                return null == i && e(),
3026                r
3027            },
3028            reliableMarginLeft: function() {
3029                return null == i && e(),
3030                a
3031            }
3032        }))
3033    }();
3034    var fe, ge, me = /^(top|right|bottom|left)$/;
3035    t.getComputedStyle ? (fe = function(e) {
3036        var i = e.ownerDocument.defaultView;
3037        return i && i.opener || (i = t),
3038        i.getComputedStyle(e)
3039    }
3040    ,
3041    ge = function(t, e, i) {
3042        var n, s, o, r, a = t.style;
3043        return i = i || fe(t),
3044        r = i ? i.getPropertyValue(e) || i[e] : void 0,
3045        "" !== r && void 0 !== r || pt.contains(t.ownerDocument, t) || (r = pt.style(t, e)),
3046        i && !ct.pixelMarginRight() && ce.test(r) && ue.test(e) && (n = a.width,
3047        s = a.minWidth,
3048        o = a.maxWidth,
3049        a.minWidth = a.maxWidth = a.width = r,
3050        r = i.width,
3051        a.width = n,
3052        a.minWidth = s,
3053        a.maxWidth = o),
3054        void 0 === r ? r : r + ""
3055    }
3056    ) : pe.currentStyle && (fe = function(t) {
3057        return t.currentStyle
3058    }
3059    ,
3060    ge = function(t, e, i) {
3061        var n, s, o, r, a = t.style;
3062        return i = i || fe(t),
3063        r = i ? i[e] : void 0,
3064        null == r && a && a[e] && (r = a[e]),
3065        ce.test(r) && !me.test(e) && (n = a.left,
3066        s = t.runtimeStyle,
3067        o = s && s.left,
3068        o && (s.left = t.currentStyle.left),
3069        a.left = "fontSize" === e ? "1em" : r,
3070        r = a.pixelLeft + "px",
3071        a.left = n,
3072        o && (s.left = o)),
3073        void 0 === r ? r : r + "" || "auto"
3074    }
3075    );
3076    var ve = /alpha\([^)]*\)/i
3077      , be = /opacity\s*=\s*([^)]*)/i
3078      , _e = /^(none|table(?!-c[ea]).+)/
3079      , ye = new RegExp("^(" + zt + ")(.*)$","i")
3080      , we = {
3081        position: "absolute",
3082        visibility: "hidden",
3083        display: "block"
3084    }
3085      , xe = {
3086        letterSpacing: "0",
3087        fontWeight: "400"
3088    }
3089      , ke = ["Webkit", "O", "Moz", "ms"]
3090      , Ce = nt.createElement("div").style;
3091    pt.extend({
3092        cssHooks: {
3093            opacity: {
3094                get: function(t, e) {
3095                    if (e) {
3096                        var i = ge(t, "opacity");
3097                        return "" === i ? "1" : i
3098                    }
3099                }
3100            }
3101        },
3102        cssNumber: {
3103            animationIterationCount: !0,
3104            columnCount: !0,
3105            fillOpacity: !0,
3106            flexGrow: !0,
3107            flexShrink: !0,
3108            fontWeight: !0,
3109            lineHeight: !0,
3110            opacity: !0,
3111            order: !0,
3112            orphans: !0,
3113            widows: !0,
3114            zIndex: !0,
3115            zoom: !0
3116        },
3117        cssProps: {
3118            "float": ct.cssFloat ? "cssFloat" : "styleFloat"
3119        },
3120        style: function(t, e, i, n) {
3121            if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
3122                var s, o, r, a = pt.camelCase(e), l = t.style;
3123                if (e = pt.cssProps[a] || (pt.cssProps[a] = A(a) || a),
3124                r = pt.cssHooks[e] || pt.cssHooks[a],
3125                void 0 === i)
3126                    return r && "get"in r && void 0 !== (s = r.get(t, !1, n)) ? s : l[e];
3127                if (o = typeof i,
3128                "string" === o && (s = jt.exec(i)) && s[1] && (i = d(t, e, s),
3129                o = "number"),
3130                null != i && i === i && ("number" === o && (i += s && s[3] || (pt.cssNumber[a] ? "" : "px")),
3131                ct.clearCloneStyle || "" !== i || 0 !== e.indexOf("background") || (l[e] = "inherit"),
3132                !(r && "set"in r && void 0 === (i = r.set(t, i, n)))))
3133                    try {
3134                        l[e] = i
3135                    } catch (t) {}
3136            }
3137        },
3138        css: function(t, e, i, n) {
3139            var s, o, r, a = pt.camelCase(e);
3140            return e = pt.cssProps[a] || (pt.cssProps[a] = A(a) || a),
3141            r = pt.cssHooks[e] || pt.cssHooks[a],
3142            r && "get"in r && (o = r.get(t, !0, i)),
3143            void 0 === o && (o = ge(t, e, n)),
3144            "normal" === o && e in xe && (o = xe[e]),
3145            "" === i || i ? (s = parseFloat(o),
3146            i === !0 || isFinite(s) ? s || 0 : o) : o
3147        }
3148    }),
3149    pt.each(["height", "width"], function(t, e) {
3150        pt.cssHooks[e] = {
3151            get: function(t, i, n) {
3152                if (i)
3153                    return _e.test(pt.css(t, "display")) && 0 === t.offsetWidth ? de(t, we, function() {
3154                        return j(t, e, n)
3155                    }) : j(t, e, n)
3156            },
3157            set: function(t, i, n) {
3158                var s = n && fe(t);
3159                return H(t, i, n ? z(t, e, n, ct.boxSizing && "border-box" === pt.css(t, "boxSizing", !1, s), s) : 0)
3160            }
3161        }
3162    }),
3163    ct.opacity || (pt.cssHooks.opacity = {
3164        get: function(t, e) {
3165            return be.test((e && t.currentStyle ? t.currentStyle.filter : t.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : e ? "1" : ""
3166        },
3167        set: function(t, e) {
3168            var i = t.style
3169              , n = t.currentStyle
3170              , s = pt.isNumeric(e) ? "alpha(opacity=" + 100 * e + ")" : ""
3171              , o = n && n.filter || i.filter || "";
3172            i.zoom = 1,
3173            (e >= 1 || "" === e) && "" === pt.trim(o.replace(ve, "")) && i.removeAttribute && (i.removeAttribute("filter"),
3174            "" === e || n && !n.filter) || (i.filter = ve.test(o) ? o.replace(ve, s) : o + " " + s)
3175        }
3176    }),
3177    pt.cssHooks.marginRight = M(ct.reliableMarginRight, function(t, e) {
3178        if (e)
3179            return de(t, {
3180                display: "inline-block"
3181            }, ge, [t, "marginRight"])
3182    }),
3183    pt.cssHooks.marginLeft = M(ct.reliableMarginLeft, function(t, e) {
3184        if (e)
3185            return (parseFloat(ge(t, "marginLeft")) || (pt.contains(t.ownerDocument, t) ? t.getBoundingClientRect().left - de(t, {
3186                marginLeft: 0
3187            }, function() {
3188                return t.getBoundingClientRect().left
3189            }) : 0)) + "px"
3190    }),
3191    pt.each({
3192        margin: "",
3193        padding: "",
3194        border: "Width"
3195    }, function(t, e) {
3196        pt.cssHooks[t + e] = {
3197            expand: function(i) {
3198                for (var n = 0, s = {}, o = "string" == typeof i ? i.split(" ") : [i]; n < 4; n++)
3199                    s[t + Ot[n] + e] = o[n] || o[n - 2] || o[0];
3200                return s
3201            }
3202        },
3203        ue.test(t) || (pt.cssHooks[t + e].set = H)
3204    }),
3205    pt.fn.extend({
3206        css: function(t, e) {
3207            return Ft(this, function(t, e, i) {
3208                var n, s, o = {}, r = 0;
3209                if (pt.isArray(e)) {
3210                    for (n = fe(t),
3211                    s = e.length; r < s; r++)
3212                        o[e[r]] = pt.css(t, e[r], !1, n);
3213                    return o
3214                }
3215                return void 0 !== i ? pt.style(t, e, i) : pt.css(t, e)
3216            }, t, e, arguments.length > 1)
3217        },
3218        show: function() {
3219            return N(this, !0)
3220        },
3221        hide: function() {
3222            return N(this)
3223        },
3224        toggle: function(t) {
3225            return "boolean" == typeof t ? t ? this.show() : this.hide() : this.each(function() {
3226                Wt(this) ? pt(this).show() : pt(this).hide()
3227            })
3228        }
3229    }),
3230    pt.Tween = O,
3231    O.prototype = {
3232        constructor: O,
3233        init: function(t, e, i, n, s, o) {
3234            this.elem = t,
3235            this.prop = i,
3236            this.easing = s || pt.easing._default,
3237            this.options = e,
3238            this.start = this.now = this.cur(),
3239            this.end = n,
3240            this.unit = o || (pt.cssNumber[i] ? "" : "px")
3241        },
3242        cur: function() {
3243            var t = O.propHooks[this.prop];
3244            return t && t.get ? t.get(this) : O.propHooks._default.get(this)
3245        },
3246        run: function(t) {
3247            var e, i = O.propHooks[this.prop];
3248            return this.options.duration ? this.pos = e = pt.easing[this.easing](t, this.options.duration * t, 0, 1, this.options.duration) : this.pos = e = t,
3249            this.now = (this.end - this.start) * e + this.start,
3250            this.options.step && this.options.step.call(this.elem, this.now, this),
3251            i && i.set ? i.set(this) : O.propHooks._default.set(this),
3252            this
3253        }
3254    },
3255    O.prototype.init.prototype = O.prototype,
3256    O.propHooks = {
3257        _default: {
3258            get: function(t) {
3259                var e;
3260                return 1 !== t.elem.nodeType || null != t.elem[t.prop] && null == t.elem.style[t.prop] ? t.elem[t.prop] : (e = pt.css(t.elem, t.prop, ""),
3261                e && "auto" !== e ? e : 0)
3262            },
3263            set: function(t) {
3264                pt.fx.step[t.prop] ? pt.fx.step[t.prop](t) : 1 !== t.elem.nodeType || null == t.elem.style[pt.cssProps[t.prop]] && !pt.cssHooks[t.prop] ? t.elem[t.prop] = t.now : pt.style(t.elem, t.prop, t.now + t.unit)
3265            }
3266        }
3267    },
3268    O.propHooks.scrollTop = O.propHooks.scrollLeft = {
3269        set: function(t) {
3270            t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now)
3271        }
3272    },
3273    pt.easing = {
3274        linear: function(t) {
3275            return t
3276        },
3277        swing: function(t) {
3278            return .5 - Math.cos(t * Math.PI) / 2
3279        },
3280        _default: "swing"
3281    },
3282    pt.fx = O.prototype.init,
3283    pt.fx.step = {};
3284    var De, Te, Se = /^(?:toggle|show|hide)$/, Ie = /queueHooks$/;
3285    pt.Animation = pt.extend(B, {
3286        tweeners: {
3287            "*": [function(t, e) {
3288                var i = this.createTween(t, e);
3289                return d(i.elem, t, jt.exec(e), i),
3290                i
3291            }
3292            ]
3293        },
3294        tweener: function(t, e) {
3295            pt.isFunction(t) ? (e = t,
3296            t = ["*"]) : t = t.match(Et);
3297            for (var i, n = 0, s = t.length; n < s; n++)
3298                i = t[n],
3299                B.tweeners[i] = B.tweeners[i] || [],
3300                B.tweeners[i].unshift(e)
3301        },
3302        prefilters: [R],
3303        prefilter: function(t, e) {
3304            e ? B.prefilters.unshift(t) : B.prefilters.push(t)
3305        }
3306    }),
3307    pt.speed = function(t, e, i) {
3308        var n = t && "object" == typeof t ? pt.extend({}, t) : {
3309            complete: i || !i && e || pt.isFunction(t) && t,
3310            duration: t,
3311            easing: i && e || e && !pt.isFunction(e) && e
3312        };
3313        return n.duration = pt.fx.off ? 0 : "number" == typeof n.duration ? n.duration : n.duration in pt.fx.speeds ? pt.fx.speeds[n.duration] : pt.fx.speeds._default,
3314        null != n.queue && n.queue !== !0 || (n.queue = "fx"),
3315        n.old = n.complete,
3316        n.complete = function() {
3317            pt.isFunction(n.old) && n.old.call(this),
3318            n.queue && pt.dequeue(this, n.queue)
3319        }
3320        ,
3321        n
3322    }
3323    ,
3324    pt.fn.extend({
3325        fadeTo: function(t, e, i, n) {
3326            return this.filter(Wt).css("opacity", 0).show().end().animate({
3327                opacity: e
3328            }, t, i, n)
3329        },
3330        animate: function(t, e, i, n) {
3331            var s = pt.isEmptyObject(t)
3332              , o = pt.speed(e, i, n)
3333              , r = function() {
3334                var e = B(this, pt.extend({}, t), o);
3335                (s || pt._data(this, "finish")) && e.stop(!0)
3336            };
3337            return r.finish = r,
3338            s || o.queue === !1 ? this.each(r) : this.queue(o.queue, r)
3339        },
3340        stop: function(t, e, i) {
3341            var n = function(t) {
3342                var e = t.stop;
3343                delete t.stop,
3344                e(i)
3345            };
3346            return "string" != typeof t && (i = e,
3347            e = t,
3348            t = void 0),
3349            e && t !== !1 && this.queue(t || "fx", []),
3350            this.each(function() {
3351                var e = !0
3352                  , s = null != t && t + "queueHooks"
3353                  , o = pt.timers
3354                  , r = pt._data(this);
3355                if (s)
3356                    r[s] && r[s].stop && n(r[s]);
3357                else
3358                    for (s in r)
3359                        r[s] && r[s].stop && Ie.test(s) && n(r[s]);
3360                for (s = o.length; s--; )
3361                    o[s].elem !== this || null != t && o[s].queue !== t || (o[s].anim.stop(i),
3362                    e = !1,
3363                    o.splice(s, 1));
3364                !e && i || pt.dequeue(this, t)
3365            })
3366        },
3367        finish: function(t) {
3368            return t !== !1 && (t = t || "fx"),
3369            this.each(function() {
3370                var e, i = pt._data(this), n = i[t + "queue"], s = i[t + "queueHooks"], o = pt.timers, r = n ? n.length : 0;
3371                for (i.finish = !0,
3372                pt.queue(this, t, []),
3373                s && s.stop && s.stop.call(this, !0),
3374                e = o.length; e--; )
3375                    o[e].elem === this && o[e].queue === t && (o[e].anim.stop(!0),
3376                    o.splice(e, 1));
3377                for (e = 0; e < r; e++)
3378                    n[e] && n[e].finish && n[e].finish.call(this);
3379                delete i.finish
3380            })
3381        }
3382    }),
3383    pt.each(["toggle", "show", "hide"], function(t, e) {
3384        var i = pt.fn[e];
3385        pt.fn[e] = function(t, n, s) {
3386            return null == t || "boolean" == typeof t ? i.apply(this, arguments) : this.animate(F(e, !0), t, n, s)
3387        }
3388    }),
3389    pt.each({
3390        slideDown: F("show"),
3391        slideUp: F("hide"),
3392        slideToggle: F("toggle"),
3393        fadeIn: {
3394            opacity: "show"
3395        },
3396        fadeOut: {
3397            opacity: "hide"
3398        },
3399        fadeToggle: {
3400            opacity: "toggle"
3401        }
3402    }, function(t, e) {
3403        pt.fn[t] = function(t, i, n) {
3404            return this.animate(e, t, i, n)
3405        }
3406    }),
3407    pt.timers = [],
3408    pt.fx.tick = function() {
3409        var t, e = pt.timers, i = 0;
3410        for (De = pt.now(); i < e.length; i++)
3411            t = e[i],
3412            t() || e[i] !== t || e.splice(i--, 1);
3413        e.length || pt.fx.stop(),
3414        De = void 0
3415    }
3416    ,
3417    pt.fx.timer = function(t) {
3418        pt.timers.push(t),
3419        t() ? pt.fx.start() : pt.timers.pop()
3420    }
3421    ,
3422    pt.fx.interval = 13,
3423    pt.fx.start = function() {
3424        Te || (Te = t.setInterval(pt.fx.tick, pt.fx.interval))
3425    }
3426    ,
3427    pt.fx.stop = function() {
3428        t.clearInterval(Te),
3429        Te = null
3430    }
3431    ,
3432    pt.fx.speeds = {
3433        slow: 600,
3434        fast: 200,
3435        _default: 400
3436    },
3437    pt.fn.delay = function(e, i) {
3438        return e = pt.fx ? pt.fx.speeds[e] || e : e,
3439        i = i || "fx",
3440        this.queue(i, function(i, n) {
3441            var s = t.setTimeout(i, e);
3442            n.stop = function() {
3443                t.clearTimeout(s)
3444            }
3445        })
3446    }
3447    ,
3448    function() {
3449        var t, e = nt.createElement("input"), i = nt.createElement("div"), n = nt.createElement("select"), s = n.appendChild(nt.createElement("option"));
3450        i = nt.createElement("div"),
3451        i.setAttribute("className", "t"),
3452        i.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",
3453        t = i.getElementsByTagName("a")[0],
3454        e.setAttribute("type", "checkbox"),
3455        i.appendChild(e),
3456        t = i.getElementsByTagName("a")[0],
3457        t.style.cssText = "top:1px",
3458        ct.getSetAttribute = "t" !== i.className,
3459        ct.style = /top/.test(t.getAttribute("style")),
3460        ct.hrefNormalized = "/a" === t.getAttribute("href"),
3461        ct.checkOn = !!e.value,
3462        ct.optSelected = s.selected,
3463        ct.enctype = !!nt.createElement("form").enctype,
3464        n.disabled = !0,
3465        ct.optDisabled = !s.disabled,
3466        e = nt.createElement("input"),
3467        e.setAttribute("value", ""),
3468        ct.input = "" === e.getAttribute("value"),
3469        e.value = "t",
3470        e.setAttribute("type", "radio"),
3471        ct.radioValue = "t" === e.value
3472    }();
3473    var Ee = /\r/g
3474      , Pe = /[\x20\t\r\n\f]+/g;
3475    pt.fn.extend({
3476        val: function(t) {
3477            var e, i, n, s = this[0];
3478            {
3479                if (arguments.length)
3480                    return n = pt.isFunction(t),
3481                    this.each(function(i) {
3482                        var s;
3483                        1 === this.nodeType && (s = n ? t.call(this, i, pt(this).val()) : t,
3484                        null == s ? s = "" : "number" == typeof s ? s += "" : pt.isArray(s) && (s = pt.map(s, function(t) {
3485                            return null == t ? "" : t + ""
3486                        })),
3487                        e = pt.valHooks[this.type] || pt.valHooks[this.nodeName.toLowerCase()],
3488                        e && "set"in e && void 0 !== e.set(this, s, "value") || (this.value = s))
3489                    });
3490                if (s)
3491                    return e = pt.valHooks[s.type] || pt.valHooks[s.nodeName.toLowerCase()],
3492                    e && "get"in e && void 0 !== (i = e.get(s, "value")) ? i : (i = s.value,
3493                    "string" == typeof i ? i.replace(Ee, "") : null == i ? "" : i)
3494            }
3495        }
3496    }),
3497    pt.extend({
3498        valHooks: {
3499            option: {
3500                get: function(t) {
3501                    var e = pt.find.attr(t, "value");
3502                    return null != e ? e : pt.trim(pt.text(t)).replace(Pe, " ")
3503                }
3504            },
3505            select: {
3506                get: function(t) {
3507                    for (var e, i, n = t.options, s = t.selectedIndex, o = "select-one" === t.type || s < 0, r = o ? null : [], a = o ? s + 1 : n.length, l = s < 0 ? a : o ? s : 0; l < a; l++)
3508                        if (i = n[l],
3509                        (i.selected || l === s) && (ct.optDisabled ? !i.disabled : null === i.getAttribute("disabled")) && (!i.parentNode.disabled || !pt.nodeName(i.parentNode, "optgroup"))) {
3510                            if (e = pt(i).val(),
3511                            o)
3512                                return e;
3513                            r.push(e)
3514                        }
3515                    return r
3516                },
3517                set: function(t, e) {
3518                    for (var i, n, s = t.options, o = pt.makeArray(e), r = s.length; r--; )
3519                        if (n = s[r],
3520                        pt.inArray(pt.valHooks.option.get(n), o) > -1)
3521                            try {
3522                                n.selected = i = !0
3523                            } catch (t) {
3524                                n.scrollHeight
3525                            }
3526                        else
3527                            n.selected = !1;
3528                    return i || (t.selectedIndex = -1),
3529                    s
3530                }
3531            }
3532        }
3533    }),
3534    pt.each(["radio", "checkbox"], function() {
3535        pt.valHooks[this] = {
3536            set: function(t, e) {
3537                if (pt.isArray(e))
3538                    return t.checked = pt.inArray(pt(t).val(), e) > -1
3539            }
3540        },
3541        ct.checkOn || (pt.valHooks[this].get = function(t) {
3542            return null === t.getAttribute("value") ? "on" : t.value
3543        }
3544        )
3545    });
3546    var Me, Ae, Ne = pt.expr.attrHandle, He = /^(?:checked|selected)$/i, ze = ct.getSetAttribute, je = ct.input;
3547    pt.fn.extend({
3548        attr: function(t, e) {
3549            return Ft(this, pt.attr, t, e, arguments.length > 1)
3550        },
3551        removeAttr: function(t) {
3552            return this.each(function() {
3553                pt.removeAttr(this, t)
3554            })
3555        }
3556    }),
3557    pt.extend({
3558        attr: function(t, e, i) {
3559            var n, s, o = t.nodeType;
3560            if (3 !== o && 8 !== o && 2 !== o)
3561                return "undefined" == typeof t.getAttribute ? pt.prop(t, e, i) : (1 === o && pt.isXMLDoc(t) || (e = e.toLowerCase(),
3562                s = pt.attrHooks[e] || (pt.expr.match.bool.test(e) ? Ae : Me)),
3563                void 0 !== i ? null === i ? void pt.removeAttr(t, e) : s && "set"in s && void 0 !== (n = s.set(t, i, e)) ? n : (t.setAttribute(e, i + ""),
3564                i) : s && "get"in s && null !== (n = s.get(t, e)) ? n : (n = pt.find.attr(t, e),
3565                null == n ? void 0 : n))
3566        },
3567        attrHooks: {
3568            type: {
3569                set: function(t, e) {
3570                    if (!ct.radioValue && "radio" === e && pt.nodeName(t, "input")) {
3571                        var i = t.value;
3572                        return t.setAttribute("type", e),
3573                        i && (t.value = i),
3574                        e
3575                    }
3576                }
3577            }
3578        },
3579        removeAttr: function(t, e) {
3580            var i, n, s = 0, o = e && e.match(Et);
3581            if (o && 1 === t.nodeType)
3582                for (; i = o[s++]; )
3583                    n = pt.propFix[i] || i,
3584                    pt.expr.match.bool.test(i) ? je && ze || !He.test(i) ? t[n] = !1 : t[pt.camelCase("default-" + i)] = t[n] = !1 : pt.attr(t, i, ""),
3585                    t.removeAttribute(ze ? i : n)
3586        }
3587    }),
3588    Ae = {
3589        set: function(t, e, i) {
3590            return e === !1 ? pt.removeAttr(t, i) : je && ze || !He.test(i) ? t.setAttribute(!ze && pt.propFix[i] || i, i) : t[pt.camelCase("default-" + i)] = t[i] = !0,
3591            i
3592        }
3593    },
3594    pt.each(pt.expr.match.bool.source.match(/\w+/g), function(t, e) {
3595        var i = Ne[e] || pt.find.attr;
3596        je && ze || !He.test(e) ? Ne[e] = function(t, e, n) {
3597            var s, o;
3598            return n || (o = Ne[e],
3599            Ne[e] = s,
3600            s = null != i(t, e, n) ? e.toLowerCase() : null,
3601            Ne[e] = o),
3602            s
3603        }
3604        : Ne[e] = function(t, e, i) {
3605            if (!i)
3606                return t[pt.camelCase("default-" + e)] ? e.toLowerCase() : null
3607        }
3608    }),
3609    je && ze || (pt.attrHooks.value = {
3610        set: function(t, e, i) {
3611            return pt.nodeName(t, "input") ? void (t.defaultValue = e) : Me && Me.set(t, e, i)
3612        }
3613    }),
3614    ze || (Me = {
3615        set: function(t, e, i) {
3616            var n = t.getAttributeNode(i);
3617            if (n || t.setAttributeNode(n = t.ownerDocument.createAttribute(i)),
3618            n.value = e += "",
3619            "value" === i || e === t.getAttribute(i))
3620                return e
3621        }
3622    },
3623    Ne.id = Ne.name = Ne.coords = function(t, e, i) {
3624        var n;
3625        if (!i)
3626            return (n = t.getAttributeNode(e)) && "" !== n.value ? n.value : null
3627    }
3628    ,
3629    pt.valHooks.button = {
3630        get: function(t, e) {
3631            var i = t.getAttributeNode(e);
3632            if (i && i.specified)
3633                return i.value
3634        },
3635        set: Me.set
3636    },
3637    pt.attrHooks.contenteditable = {
3638        set: function(t, e, i) {
3639            Me.set(t, "" !== e && e, i)
3640        }
3641    },
3642    pt.each(["width", "height"], function(t, e) {
3643        pt.attrHooks[e] = {
3644            set: function(t, i) {
3645                if ("" === i)
3646                    return t.setAttribute(e, "auto"),
3647                    i
3648            }
3649        }
3650    })),
3651    ct.style || (pt.attrHooks.style = {
3652        get: function(t) {
3653            return t.style.cssText || void 0
3654        },
3655        set: function(t, e) {
3656            return t.style.cssText = e + ""
3657        }
3658    });
3659    var Oe = /^(?:input|select|textarea|button|object)$/i
3660      , We = /^(?:a|area)$/i;
3661    pt.fn.extend({
3662        prop: function(t, e) {
3663            return Ft(this, pt.prop, t, e, arguments.length > 1)
3664        },
3665        removeProp: function(t) {
3666            return t = pt.propFix[t] || t,
3667            this.each(function() {
3668                try {
3669                    this[t] = void 0,
3670                    delete this[t]
3671                } catch (t) {}
3672            })
3673        }
3674    }),
3675    pt.extend({
3676        prop: function(t, e, i) {
3677            var n, s, o = t.nodeType;
3678            if (3 !== o && 8 !== o && 2 !== o)
3679                return 1 === o && pt.isXMLDoc(t) || (e = pt.propFix[e] || e,
3680                s = pt.propHooks[e]),
3681                void 0 !== i ? s && "set"in s && void 0 !== (n = s.set(t, i, e)) ? n : t[e] = i : s && "get"in s && null !== (n = s.get(t, e)) ? n : t[e]
3682        },
3683        propHooks: {
3684            tabIndex: {
3685                get: function(t) {
3686                    var e = pt.find.attr(t, "tabindex");
3687                    return e ? parseInt(e, 10) : Oe.test(t.nodeName) || We.test(t.nodeName) && t.href ? 0 : -1
3688                }
3689            }
3690        },
3691        propFix: {
3692            "for": "htmlFor",
3693            "class": "className"
3694        }
3695    }),
3696    ct.hrefNormalized || pt.each(["href", "src"], function(t, e) {
3697        pt.propHooks[e] = {
3698            get: function(t) {
3699                return t.getAttribute(e, 4)
3700            }
3701        }
3702    }),
3703    ct.optSelected || (pt.propHooks.selected = {
3704        get: function(t) {
3705            var e = t.parentNode;
3706            return e && (e.selectedIndex,
3707            e.parentNode && e.parentNode.selectedIndex),
3708            null
3709        },
3710        set: function(t) {
3711            var e = t.parentNode;
3712            e && (e.selectedIndex,
3713            e.parentNode && e.parentNode.selectedIndex)
3714        }
3715    }),
3716    pt.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
3717        pt.propFix[this.toLowerCase()] = this
3718    }),
3719    ct.enctype || (pt.propFix.enctype = "encoding");
3720    var Fe = /[\t\r\n\f]/g;
3721    pt.fn.extend({
3722        addClass: function(t) {
3723            var e, i, n, s, o, r, a, l = 0;
3724            if (pt.isFunction(t))
3725                return this.each(function(e) {
3726                    pt(this).addClass(t.call(this, e, Y(this)))
3727                });
3728            if ("string" == typeof t && t)
3729                for (e = t.match(Et) || []; i = this[l++]; )
3730                    if (s = Y(i),
3731                    n = 1 === i.nodeType && (" " + s + " ").replace(Fe, " ")) {
3732                        for (r = 0; o = e[r++]; )
3733                            n.indexOf(" " + o + " ") < 0 && (n += o + " ");
3734                        a = pt.trim(n),
3735                        s !== a && pt.attr(i, "class", a)
3736                    }
3737            return this
3738        },
3739        removeClass: function(t) {
3740            var e, i, n, s, o, r, a, l = 0;
3741            if (pt.isFunction(t))
3742                return this.each(function(e) {
3743                    pt(this).removeClass(t.call(this, e, Y(this)))
3744                });
3745            if (!arguments.length)
3746                return this.attr("class", "");
3747            if ("string" == typeof t && t)
3748                for (e = t.match(Et) || []; i = this[l++]; )
3749                    if (s = Y(i),
3750                    n = 1 === i.nodeType && (" " + s + " ").replace(Fe, " ")) {
3751                        for (r = 0; o = e[r++]; )
3752                            for (; n.indexOf(" " + o + " ") > -1; )
3753                                n = n.replace(" " + o + " ", " ");
3754                        a = pt.trim(n),
3755                        s !== a && pt.attr(i, "class", a)
3756                    }
3757            return this
3758        },
3759        toggleClass: function(t, e) {
3760            var i = typeof t;
3761            return "boolean" == typeof e && "string" === i ? e ? this.addClass(t) : this.removeClass(t) : pt.isFunction(t) ? this.each(function(i) {
3762                pt(this).toggleClass(t.call(this, i, Y(this), e), e)
3763            }) : this.each(function() {
3764                var e, n, s, o;
3765                if ("string" === i)
3766                    for (n = 0,
3767                    s = pt(this),
3768                    o = t.match(Et) || []; e = o[n++]; )
3769                        s.hasClass(e) ? s.removeClass(e) : s.addClass(e);
3770                else
3771                    void 0 !== t && "boolean" !== i || (e = Y(this),
3772                    e && pt._data(this, "__className__", e),
3773                    pt.attr(this, "class", e || t === !1 ? "" : pt._data(this, "__className__") || ""))
3774            })
3775        },
3776        hasClass: function(t) {
3777            var e, i, n = 0;
3778            for (e = " " + t + " "; i = this[n++]; )
3779                if (1 === i.nodeType && (" " + Y(i) + " ").replace(Fe, " ").indexOf(e) > -1)
3780                    return !0;
3781            return !1
3782        }
3783    }),
3784    pt.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) {
3785        pt.fn[e] = function(t, i) {
3786            return arguments.length > 0 ? this.on(e, null, t, i) : this.trigger(e)
3787        }
3788    }),
3789    pt.fn.extend({
3790        hover: function(t, e) {
3791            return this.mouseenter(t).mouseleave(e || t)
3792        }
3793    });
3794    var Le = t.location
3795      , Re = pt.now()
3796      , qe = /\?/
3797      , Be = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
3798    pt.parseJSON = function(e) {
3799        if (t.JSON && t.JSON.parse)
3800            return t.JSON.parse(e + "");
3801        var i, n = null, s = pt.trim(e + "");
3802        return s && !pt.trim(s.replace(Be, function(t, e, s, o) {
3803            return i && e && (n = 0),
3804            0 === n ? t : (i = s || e,
3805            n += !o - !s,
3806            "")
3807        })) ? Function("return " + s)() : pt.error("Invalid JSON: " + e)
3808    }
3809    ,
3810    pt.parseXML = function(e) {
3811        var i, n;
3812        if (!e || "string" != typeof e)
3813            return null;
3814        try {
3815            t.DOMParser ? (n = new t.DOMParser,
3816            i = n.parseFromString(e, "text/xml")) : (i = new t.ActiveXObject("Microsoft.XMLDOM"),
3817            i.async = "false",
3818            i.loadXML(e))
3819        } catch (t) {
3820            i = void 0
3821        }
3822        return i && i.documentElement && !i.getElementsByTagName("parsererror").length || pt.error("Invalid XML: " + e),
3823        i
3824    }
3825    ;
3826    var Ye = /#.*$/
3827      , $e = /([?&])_=[^&]*/
3828      , Ue = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm
3829      , Ke = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/
3830      , Xe = /^(?:GET|HEAD)$/
3831      , Ve = /^\/\//
3832      , Qe = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/
3833      , Ge = {}
3834      , Je = {}
3835      , Ze = "*/".concat("*")
3836      , ti = Le.href
3837      , ei = Qe.exec(ti.toLowerCase()) || [];
3838    pt.extend({
3839        active: 0,
3840        lastModified: {},
3841        etag: {},
3842        ajaxSettings: {
3843            url: ti,
3844            type: "GET",
3845            isLocal: Ke.test(ei[1]),
3846            global: !0,
3847            processData: !0,
3848            async: !0,
3849            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
3850            accepts: {
3851                "*": Ze,
3852                text: "text/plain",
3853                html: "text/html",
3854                xml: "application/xml, text/xml",
3855                json: "application/json, text/javascript"
3856            },
3857            contents: {
3858                xml: /\bxml\b/,
3859                html: /\bhtml/,
3860                json: /\bjson\b/
3861            },
3862            responseFields: {
3863                xml: "responseXML",
3864                text: "responseText",
3865                json: "responseJSON"
3866            },
3867            converters: {
3868                "* text": String,
3869                "text html": !0,
3870                "text json": pt.parseJSON,
3871                "text xml": pt.parseXML
3872            },
3873            flatOptions: {
3874                url: !0,
3875                context: !0
3876            }
3877        },
3878        ajaxSetup: function(t, e) {
3879            return e ? K(K(t, pt.ajaxSettings), e) : K(pt.ajaxSettings, t)
3880        },
3881        ajaxPrefilter: $(Ge),
3882        ajaxTransport: $(Je),
3883        ajax: function(e, i) {
3884            function n(e, i, n, s) {
3885                var o, c, b, _, w, k = i;
3886                2 !== y && (y = 2,
3887                l && t.clearTimeout(l),
3888                u = void 0,
3889                a = s || "",
3890                x.readyState = e > 0 ? 4 : 0,
3891                o = e >= 200 && e < 300 || 304 === e,
3892                n && (_ = X(d, x, n)),
3893                _ = V(d, _, x, o),
3894                o ? (d.ifModified && (w = x.getResponseHeader("Last-Modified"),
3895                w && (pt.lastModified[r] = w),
3896                w = x.getResponseHeader("etag"),
3897                w && (pt.etag[r] = w)),
3898                204 === e || "HEAD" === d.type ? k = "nocontent" : 304 === e ? k = "notmodified" : (k = _.state,
3899                c = _.data,
3900                b = _.error,
3901                o = !b)) : (b = k,
3902                !e && k || (k = "error",
3903                e < 0 && (e = 0))),
3904                x.status = e,
3905                x.statusText = (i || k) + "",
3906                o ? g.resolveWith(p, [c, k, x]) : g.rejectWith(p, [x, k, b]),
3907                x.statusCode(v),
3908                v = void 0,
3909                h && f.trigger(o ? "ajaxSuccess" : "ajaxError", [x, d, o ? c : b]),
3910                m.fireWith(p, [x, k]),
3911                h && (f.trigger("ajaxComplete", [x, d]),
3912                --pt.active || pt.event.trigger("ajaxStop")))
3913            }
3914            "object" == typeof e && (i = e,
3915            e = void 0),
3916            i = i || {};
3917            var s, o, r, a, l, h, u, c, d = pt.ajaxSetup({}, i), p = d.context || d, f = d.context && (p.nodeType || p.jquery) ? pt(p) : pt.event, g = pt.Deferred(), m = pt.Callbacks("once memory"), v = d.statusCode || {}, b = {}, _ = {}, y = 0, w = "canceled", x = {
3918                readyState: 0,
3919                getResponseHeader: function(t) {
3920                    var e;
3921                    if (2 === y) {
3922                        if (!c)
3923                            for (c = {}; e = Ue.exec(a); )
3924                                c[e[1].toLowerCase()] = e[2];
3925                        e = c[t.toLowerCase()]
3926                    }
3927                    return null == e ? null : e
3928                },
3929                getAllResponseHeaders: function() {
3930                    return 2 === y ? a : null
3931                },
3932                setRequestHeader: function(t, e) {
3933                    var i = t.toLowerCase();
3934                    return y || (t = _[i] = _[i] || t,
3935                    b[t] = e),
3936                    this
3937                },
3938                overrideMimeType: function(t) {
3939                    return y || (d.mimeType = t),
3940                    this
3941                },
3942                statusCode: function(t) {
3943                    var e;
3944                    if (t)
3945                        if (y < 2)
3946                            for (e in t)
3947                                v[e] = [v[e], t[e]];
3948                        else
3949                            x.always(t[x.status]);
3950                    return this
3951                },
3952                abort: function(t) {
3953                    var e = t || w;
3954                    return u && u.abort(e),
3955                    n(0, e),
3956                    this
3957                }
3958            };
3959            if (g.promise(x).complete = m.add,
3960            x.success = x.done,
3961            x.error = x.fail,
3962            d.url = ((e || d.url || ti) + "").replace(Ye, "").replace(Ve, ei[1] + "//"),
3963            d.type = i.method || i.type || d.method || d.type,
3964            d.dataTypes = pt.trim(d.dataType || "*").toLowerCase().match(Et) || [""],
3965            null == d.crossDomain && (s = Qe.exec(d.url.toLowerCase()),
3966            d.crossDomain = !(!s || s[1] === ei[1] && s[2] === ei[2] && (s[3] || ("http:" === s[1] ? "80" : "443")) === (ei[3] || ("http:" === ei[1] ? "80" : "443")))),
3967            d.data && d.processData && "string" != typeof d.data && (d.data = pt.param(d.data, d.traditional)),
3968            U(Ge, d, i, x),
3969            2 === y)
3970                return x;
3971            h = pt.event && d.global,
3972            h && 0 === pt.active++ && pt.event.trigger("ajaxStart"),
3973            d.type = d.type.toUpperCase(),
3974            d.hasContent = !Xe.test(d.type),
3975            r = d.url,
3976            d.hasContent || (d.data && (r = d.url += (qe.test(r) ? "&" : "?") + d.data,
3977            delete d.data),
3978            d.cache === !1 && (d.url = $e.test(r) ? r.replace($e, "$1_=" + Re++) : r + (qe.test(r) ? "&" : "?") + "_=" + Re++)),
3979            d.ifModified && (pt.lastModified[r] && x.setRequestHeader("If-Modified-Since", pt.lastModified[r]),
3980            pt.etag[r] && x.setRequestHeader("If-None-Match", pt.etag[r])),
3981            (d.data && d.hasContent && d.contentType !== !1 || i.contentType) && x.setRequestHeader("Content-Type", d.contentType),
3982            x.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + Ze + "; q=0.01" : "") : d.accepts["*"]);
3983            for (o in d.headers)
3984                x.setRequestHeader(o, d.headers[o]);
3985            if (d.beforeSend && (d.beforeSend.call(p, x, d) === !1 || 2 === y))
3986                return x.abort();
3987            w = "abort";
3988            for (o in {
3989                success: 1,
3990                error: 1,
3991                complete: 1
3992            })
3993                x[o](d[o]);
3994            if (u = U(Je, d, i, x)) {
3995                if (x.readyState = 1,
3996                h && f.trigger("ajaxSend", [x, d]),
3997                2 === y)
3998                    return x;
3999                d.async && d.timeout > 0 && (l = t.setTimeout(function() {
4000                    x.abort("timeout")
4001                }, d.timeout));
4002                try {
4003                    y = 1,
4004                    u.send(b, n)
4005                } catch (t) {
4006                    if (!(y < 2))
4007                        throw t;
4008                    n(-1, t)
4009                }
4010            } else
4011                n(-1, "No Transport");
4012            return x
4013        },
4014        getJSON: function(t, e, i) {
4015            return pt.get(t, e, i, "json")
4016        },
4017        getScript: function(t, e) {
4018            return pt.get(t, void 0, e, "script")
4019        }
4020    }),
4021    pt.each(["get", "post"], function(t, e) {
4022        pt[e] = function(t, i, n, s) {
4023            return pt.isFunction(i) && (s = s || n,
4024            n = i,
4025            i = void 0),
4026            pt.ajax(pt.extend({
4027                url: t,
4028                type: e,
4029                dataType: s,
4030                data: i,
4031                success: n
4032            }, pt.isPlainObject(t) && t))
4033        }
4034    }),
4035    pt._evalUrl = function(t) {
4036        return pt.ajax({
4037            url: t,
4038            type: "GET",
4039            dataType: "script",
4040            cache: !0,
4041            async: !1,
4042            global: !1,
4043            "throws": !0
4044        })
4045    }
4046    ,
4047    pt.fn.extend({
4048        wrapAll: function(t) {
4049            if (pt.isFunction(t))
4050                return this.each(function(e) {
4051                    pt(this).wrapAll(t.call(this, e))
4052                });
4053            if (this[0]) {
4054                var e = pt(t, this[0].ownerDocument).eq(0).clone(!0);
4055                this[0].parentNode && e.insertBefore(this[0]),
4056                e.map(function() {
4057                    for (var t = this; t.firstChild && 1 === t.firstChild.nodeType; )
4058                        t = t.firstChild;
4059                    return t
4060                }).append(this)
4061            }
4062            return this
4063        },
4064        wrapInner: function(t) {
4065            return pt.isFunction(t) ? this.each(function(e) {
4066                pt(this).wrapInner(t.call(this, e))
4067            }) : this.each(function() {
4068                var e = pt(this)
4069                  , i = e.contents();
4070                i.length ? i.wrapAll(t) : e.append(t)
4071            })
4072        },
4073        wrap: function(t) {
4074            var e = pt.isFunction(t);
4075            return this.each(function(i) {
4076                pt(this).wrapAll(e ? t.call(this, i) : t)
4077            })
4078        },
4079        unwrap: function() {
4080            return this.parent().each(function() {
4081                pt.nodeName(this, "body") || pt(this).replaceWith(this.childNodes)
4082            }).end()
4083        }
4084    }),
4085    pt.expr.filters.hidden = function(t) {
4086        return ct.reliableHiddenOffsets() ? t.offsetWidth <= 0 && t.offsetHeight <= 0 && !t.getClientRects().length : G(t)
4087    }
4088    ,
4089    pt.expr.filters.visible = function(t) {
4090        return !pt.expr.filters.hidden(t)
4091    }
4092    ;
4093    var ii = /%20/g
4094      , ni = /\[\]$/
4095      , si = /\r?\n/g
4096      , oi = /^(?:submit|button|image|reset|file)$/i
4097      , ri = /^(?:input|select|textarea|keygen)/i;
4098    pt.param = function(t, e) {
4099        var i, n = [], s = function(t, e) {
4100            e = pt.isFunction(e) ? e() : null == e ? "" : e,
4101            n[n.length] = encodeURIComponent(t) + "=" + encodeURIComponent(e)
4102        };
4103        if (void 0 === e && (e = pt.ajaxSettings && pt.ajaxSettings.traditional),
4104        pt.isArray(t) || t.jquery && !pt.isPlainObject(t))
4105            pt.each(t, function() {
4106                s(this.name, this.value)
4107            });
4108        else
4109            for (i in t)
4110                J(i, t[i], e, s);
4111        return n.join("&").replace(ii, "+")
4112    }
4113    ,
4114    pt.fn.extend({
4115        serialize: function() {
4116            return pt.param(this.serializeArray())
4117        },
4118        serializeArray: function() {
4119            return this.map(function() {
4120                var t = pt.prop(this, "elements");
4121                return t ? pt.makeArray(t) : this
4122            }).filter(function() {
4123                var t = this.type;
4124                return this.name && !pt(this).is(":disabled") && ri.test(this.nodeName) && !oi.test(t) && (this.checked || !Lt.test(t))
4125            }).map(function(t, e) {
4126                var i = pt(this).val();
4127                return null == i ? null : pt.isArray(i) ? pt.map(i, function(t) {
4128                    return {
4129                        name: e.name,
4130                        value: t.replace(si, "\r\n")
4131                    }
4132                }) : {
4133                    name: e.name,
4134                    value: i.replace(si, "\r\n")
4135                }
4136            }).get()
4137        }
4138    }),
4139    pt.ajaxSettings.xhr = void 0 !== t.ActiveXObject ? function() {
4140        return this.isLocal ? tt() : nt.documentMode > 8 ? Z() : /^(get|post|head|put|delete|options)$/i.test(this.type) && Z() || tt()
4141    }
4142    : Z;
4143    var ai = 0
4144      , li = {}
4145      , hi = pt.ajaxSettings.xhr();
4146    t.attachEvent && t.attachEvent("onunload", function() {
4147        for (var t in li)
4148            li[t](void 0, !0)
4149    }),
4150    ct.cors = !!hi && "withCredentials"in hi,
4151    hi = ct.ajax = !!hi,
4152    hi && pt.ajaxTransport(function(e) {
4153        if (!e.crossDomain || ct.cors) {
4154            var i;
4155            return {
4156                send: function(n, s) {
4157                    var o, r = e.xhr(), a = ++ai;
4158                    if (r.open(e.type, e.url, e.async, e.username, e.password),
4159                    e.xhrFields)
4160                        for (o in e.xhrFields)
4161                            r[o] = e.xhrFields[o];
4162                    e.mimeType && r.overrideMimeType && r.overrideMimeType(e.mimeType),
4163                    e.crossDomain || n["X-Requested-With"] || (n["X-Requested-With"] = "XMLHttpRequest");
4164                    for (o in n)
4165                        void 0 !== n[o] && r.setRequestHeader(o, n[o] + "");
4166                    r.send(e.hasContent && e.data || null),
4167                    i = function(t, n) {
4168                        var o, l, h;
4169                        if (i && (n || 4 === r.readyState))
4170                            if (delete li[a],
4171                            i = void 0,
4172                            r.onreadystatechange = pt.noop,
4173                            n)
4174                                4 !== r.readyState && r.abort();
4175                            else {
4176                                h = {},
4177                                o = r.status,
4178                                "string" == typeof r.responseText && (h.text = r.responseText);
4179                                try {
4180                                    l = r.statusText
4181                                } catch (t) {
4182                                    l = ""
4183                                }
4184                                o || !e.isLocal || e.crossDomain ? 1223 === o && (o = 204) : o = h.text ? 200 : 404
4185                            }
4186                        h && s(o, l, h, r.getAllResponseHeaders())
4187                    }
4188                    ,
4189                    e.async ? 4 === r.readyState ? t.setTimeout(i) : r.onreadystatechange = li[a] = i : i()
4190                },
4191                abort: function() {
4192                    i && i(void 0, !0)
4193                }
4194            }
4195        }
4196    }),
4197    pt.ajaxSetup({
4198        accepts: {
4199            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
4200        },
4201        contents: {
4202            script: /\b(?:java|ecma)script\b/
4203        },
4204        converters: {
4205            "text script": function(t) {
4206                return pt.globalEval(t),
4207                t
4208            }
4209        }
4210    }),
4211    pt.ajaxPrefilter("script", function(t) {
4212        void 0 === t.cache && (t.cache = !1),
4213        t.crossDomain && (t.type = "GET",
4214        t.global = !1)
4215    }),
4216    pt.ajaxTransport("script", function(t) {
4217        if (t.crossDomain) {
4218            var e, i = nt.head || pt("head")[0] || nt.documentElement;
4219            return {
4220                send: function(n, s) {
4221                    e = nt.createElement("script"),
4222                    e.async = !0,
4223                    t.scriptCharset && (e.charset = t.scriptCharset),
4224                    e.src = t.url,
4225                    e.onload = e.onreadystatechange = function(t, i) {
4226                        (i || !e.readyState || /loaded|complete/.test(e.readyState)) && (e.onload = e.onreadystatechange = null,
4227                        e.parentNode && e.parentNode.removeChild(e),
4228                        e = null,
4229                        i || s(200, "success"))
4230                    }
4231                    ,
4232                    i.insertBefore(e, i.firstChild)
4233                },
4234                abort: function() {
4235                    e && e.onload(void 0, !0)
4236                }
4237            }
4238        }
4239    });
4240    var ui = []
4241      , ci = /(=)\?(?=&|$)|\?\?/;
4242    pt.ajaxSetup({
4243        jsonp: "callback",
4244        jsonpCallback: function() {
4245            var t = ui.pop() || pt.expando + "_" + Re++;
4246            return this[t] = !0,
4247            t
4248        }
4249    }),
4250    pt.ajaxPrefilter("json jsonp", function(e, i, n) {
4251        var s, o, r, a = e.jsonp !== !1 && (ci.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && ci.test(e.data) && "data");
4252        if (a || "jsonp" === e.dataTypes[0])
4253            return s = e.jsonpCallback = pt.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback,
4254            a ? e[a] = e[a].replace(ci, "$1" + s) : e.jsonp !== !1 && (e.url += (qe.test(e.url) ? "&" : "?") + e.jsonp + "=" + s),
4255            e.converters["script json"] = function() {
4256                return r || pt.error(s + " was not called"),
4257                r[0]
4258            }
4259            ,
4260            e.dataTypes[0] = "json",
4261            o = t[s],
4262            t[s] = function() {
4263                r = arguments
4264            }
4265            ,
4266            n.always(function() {
4267                void 0 === o ? pt(t).removeProp(s) : t[s] = o,
4268                e[s] && (e.jsonpCallback = i.jsonpCallback,
4269                ui.push(s)),
4270                r && pt.isFunction(o) && o(r[0]),
4271                r = o = void 0
4272            }),
4273            "script"
4274    }),
4275    pt.parseHTML = function(t, e, i) {
4276        if (!t || "string" != typeof t)
4277            return null;
4278        "boolean" == typeof e && (i = e,
4279        e = !1),
4280        e = e || nt;
4281        var n = xt.exec(t)
4282          , s = !i && [];
4283        return n ? [e.createElement(n[1])] : (n = v([t], e, s),
4284        s && s.length && pt(s).remove(),
4285        pt.merge([], n.childNodes))
4286    }
4287    ;
4288    var di = pt.fn.load;
4289    pt.fn.load = function(t, e, i) {
4290        if ("string" != typeof t && di)
4291            return di.apply(this, arguments);
4292        var n, s, o, r = this, a = t.indexOf(" ");
4293        return a > -1 && (n = pt.trim(t.slice(a, t.length)),
4294        t = t.slice(0, a)),
4295        pt.isFunction(e) ? (i = e,
4296        e = void 0) : e && "object" == typeof e && (s = "POST"),
4297        r.length > 0 && pt.ajax({
4298            url: t,
4299            type: s || "GET",
4300            dataType: "html",
4301            data: e
4302        }).done(function(t) {
4303            o = arguments,
4304            r.html(n ? pt("<div>").append(pt.parseHTML(t)).find(n) : t)
4305        }).always(i && function(t, e) {
4306            r.each(function() {
4307                i.apply(this, o || [t.responseText, e, t])
4308            })
4309        }
4310        ),
4311        this
4312    }
4313    ,
4314    pt.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(t, e) {
4315        pt.fn[e] = function(t) {
4316            return this.on(e, t)
4317        }
4318    }),
4319    pt.expr.filters.animated = function(t) {
4320        return pt.grep(pt.timers, function(e) {
4321            return t === e.elem
4322        }).length
4323    }
4324    ,
4325    pt.offset = {
4326        setOffset: function(t, e, i) {
4327            var n, s, o, r, a, l, h, u = pt.css(t, "position"), c = pt(t), d = {};
4328            "static" === u && (t.style.position = "relative"),
4329            a = c.offset(),
4330            o = pt.css(t, "top"),
4331            l = pt.css(t, "left"),
4332            h = ("absolute" === u || "fixed" === u) && pt.inArray("auto", [o, l]) > -1,
4333            h ? (n = c.position(),
4334            r = n.top,
4335            s = n.left) : (r = parseFloat(o) || 0,
4336            s = parseFloat(l) || 0),
4337            pt.isFunction(e) && (e = e.call(t, i, pt.extend({}, a))),
4338            null != e.top && (d.top = e.top - a.top + r),
4339            null != e.left && (d.left = e.left - a.left + s),
4340            "using"in e ? e.using.call(t, d) : c.css(d)
4341        }
4342    },
4343    pt.fn.extend({
4344        offset: function(t) {
4345            if (arguments.length)
4346                return void 0 === t ? this : this.each(function(e) {
4347                    pt.offset.setOffset(this, t, e)
4348                });
4349            var e, i, n = {
4350                top: 0,
4351                left: 0
4352            }, s = this[0], o = s && s.ownerDocument;
4353            if (o)
4354                return e = o.documentElement,
4355                pt.contains(e, s) ? ("undefined" != typeof s.getBoundingClientRect && (n = s.getBoundingClientRect()),
4356                i = et(o),
4357                {
4358                    top: n.top + (i.pageYOffset || e.scrollTop) - (e.clientTop || 0),
4359                    left: n.left + (i.pageXOffset || e.scrollLeft) - (e.clientLeft || 0)
4360                }) : n
4361        },
4362        position: function() {
4363            if (this[0]) {
4364                var t, e, i = {
4365                    top: 0,
4366                    left: 0
4367                }, n = this[0];
4368                return "fixed" === pt.css(n, "position") ? e = n.getBoundingClientRect() : (t = this.offsetParent(),
4369                e = this.offset(),
4370                pt.nodeName(t[0], "html") || (i = t.offset()),
4371                i.top += pt.css(t[0], "borderTopWidth", !0),
4372                i.left += pt.css(t[0], "borderLeftWidth", !0)),
4373                {
4374                    top: e.top - i.top - pt.css(n, "marginTop", !0),
4375                    left: e.left - i.left - pt.css(n, "marginLeft", !0)
4376                }
4377            }
4378        },
4379        offsetParent: function() {
4380            return this.map(function() {
4381                for (var t = this.offsetParent; t && !pt.nodeName(t, "html") && "static" === pt.css(t, "position"); )
4382                    t = t.offsetParent;
4383                return t || pe
4384            })
4385        }
4386    }),
4387    pt.each({
4388        scrollLeft: "pageXOffset",
4389        scrollTop: "pageYOffset"
4390    }, function(t, e) {
4391        var i = /Y/.test(e);
4392        pt.fn[t] = function(n) {
4393            return Ft(this, function(t, n, s) {
4394                var o = et(t);
4395                return void 0 === s ? o ? e in o ? o[e] : o.document.documentElement[n] : t[n] : void (o ? o.scrollTo(i ? pt(o).scrollLeft() : s, i ? s : pt(o).scrollTop()) : t[n] = s)
4396            }, t, n, arguments.length, null)
4397        }
4398    }),
4399    pt.each(["top", "left"], function(t, e) {
4400        pt.cssHooks[e] = M(ct.pixelPosition, function(t, i) {
4401            if (i)
4402                return i = ge(t, e),
4403                ce.test(i) ? pt(t).position()[e] + "px" : i
4404        })
4405    }),
4406    pt.each({
4407        Height: "height",
4408        Width: "width"
4409    }, function(t, e) {
4410        pt.each({
4411            padding: "inner" + t,
4412            content: e,
4413            "": "outer" + t
4414        }, function(i, n) {
4415            pt.fn[n] = function(n, s) {
4416                var o = arguments.length && (i || "boolean" != typeof n)
4417                  , r = i || (n === !0 || s === !0 ? "margin" : "border");
4418                return Ft(this, function(e, i, n) {
4419                    var s;
4420                    return pt.isWindow(e) ? e.document.documentElement["client" + t] : 9 === e.nodeType ? (s = e.documentElement,
4421                    Math.max(e.body["scroll" + t], s["scroll" + t], e.body["offset" + t], s["offset" + t], s["client" + t])) : void 0 === n ? pt.css(e, i, r) : pt.style(e, i, n, r)
4422                }, e, o ? n : void 0, o, null)
4423            }
4424        })
4425    }),
4426    pt.fn.extend({
4427        bind: function(t, e, i) {
4428            return this.on(t, null, e, i)
4429        },
4430        unbind: function(t, e) {
4431            return this.off(t, null, e)
4432        },
4433        delegate: function(t, e, i, n) {
4434            return this.on(e, t, i, n)
4435        },
4436        undelegate: function(t, e, i) {
4437            return 1 === arguments.length ? this.off(t, "**") : this.off(e, t || "**", i)
4438        }
4439    }),
4440    pt.fn.size = function() {
4441        return this.length
4442    }
4443    ,
4444    pt.fn.andSelf = pt.fn.addBack,
4445    "function" == typeof define && define.amd && define("jquery", [], function() {
4446        return pt
4447    });
4448    var pi = t.jQuery
4449      , fi = t.$;
4450    return pt.noConflict = function(e) {
4451        return t.$ === pt && (t.$ = fi),
4452        e && t.jQuery === pt && (t.jQuery = pi),
4453        pt
4454    }
4455    ,
4456    e || (t.jQuery = t.$ = pt),
4457    pt
4458}),
4459function(t) {
4460    "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
4461}(function(t) {
4462    return t.ui = t.ui || {},
4463    t.ui.version = "1.12.1"
4464}),
4465function(t) {
4466    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4467}(function(t) {
4468    return t.extend(t.expr[":"], {
4469        data: t.expr.createPseudo ? t.expr.createPseudo(function(e) {
4470            return function(i) {
4471                return !!t.data(i, e)
4472            }
4473        }) : function(e, i, n) {
4474            return !!t.data(e, n[3])
4475        }
4476    })
4477}),
4478function(t) {
4479    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4480}(function(t) {
4481    return t.fn.extend({
4482        disableSelection: function() {
4483            var t = "onselectstart"in document.createElement("div") ? "selectstart" : "mousedown";
4484            return function() {
4485                return this.on(t + ".ui-disableSelection", function(t) {
4486                    t.preventDefault()
4487                })
4488            }
4489        }(),
4490        enableSelection: function() {
4491            return this.off(".ui-disableSelection")
4492        }
4493    })
4494}),
4495function(t) {
4496    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4497}(function(t) {
4498    function e(t) {
4499        for (var e = t.css("visibility"); "inherit" === e; )
4500            t = t.parent(),
4501            e = t.css("visibility");
4502        return "hidden" !== e
4503    }
4504    return t.ui.focusable = function(i, n) {
4505        var s, o, r, a, l, h = i.nodeName.toLowerCase();
4506        return "area" === h ? (s = i.parentNode,
4507        o = s.name,
4508        !(!i.href || !o || "map" !== s.nodeName.toLowerCase()) && (r = t("img[usemap='#" + o + "']"),
4509        r.length > 0 && r.is(":visible"))) : (/^(input|select|textarea|button|object)$/.test(h) ? (a = !i.disabled,
4510        a && (l = t(i).closest("fieldset")[0],
4511        l && (a = !l.disabled))) : a = "a" === h ? i.href || n : n,
4512        a && t(i).is(":visible") && e(t(i)))
4513    }
4514    ,
4515    t.extend(t.expr[":"], {
4516        focusable: function(e) {
4517            return t.ui.focusable(e, null != t.attr(e, "tabindex"))
4518        }
4519    }),
4520    t.ui.focusable
4521}),
4522function(t) {
4523    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4524}(function(t) {
4525    return t.fn.form = function() {
4526        return "string" == typeof this[0].form ? this.closest("form") : t(this[0].form)
4527    }
4528}),
4529function(t) {
4530    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4531}(function(t) {
4532    return t.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())
4533}),
4534function(t) {
4535    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4536}(function(t) {
4537    return t.ui.keyCode = {
4538        BACKSPACE: 8,
4539        COMMA: 188,
4540        DELETE: 46,
4541        DOWN: 40,
4542        END: 35,
4543        ENTER: 13,
4544        ESCAPE: 27,
4545        HOME: 36,
4546        LEFT: 37,
4547        PAGE_DOWN: 34,
4548        PAGE_UP: 33,
4549        PERIOD: 190,
4550        RIGHT: 39,
4551        SPACE: 32,
4552        TAB: 9,
4553        UP: 38
4554    }
4555}),
4556function(t) {
4557    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4558}(function(t) {
4559    return t.ui.escapeSelector = function() {
4560        var t = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;
4561        return function(e) {
4562            return e.replace(t, "\\$1")
4563        }
4564    }()
4565}),
4566function(t) {
4567    "function" == typeof define && define.amd ? define(["jquery", "./version", "./escape-selector"], t) : t(jQuery)
4568}(function(t) {
4569    return t.fn.labels = function() {
4570        var e, i, n, s, o;
4571        return this[0].labels && this[0].labels.length ? this.pushStack(this[0].labels) : (s = this.eq(0).parents("label"),
4572        n = this.attr("id"),
vendor: 13,616 bytes, lines 4573-4940
4573        n && (e = this.eq(0).parents().last(),
4574        o = e.add(e.length ? e.siblings() : this.siblings()),
4575        i = "label[for='" + t.ui.escapeSelector(n) + "']",
4576        s = s.add(o.find(i).addBack(i))),
4577        this.pushStack(s))
4578    }
4579}),
4580function(t) {
4581    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4582}(function(t) {
4583    "1.7" === t.fn.jquery.substring(0, 3) && (t.each(["Width", "Height"], function(e, i) {
4584        function n(e, i, n, o) {
4585            return t.each(s, function() {
4586                i -= parseFloat(t.css(e, "padding" + this)) || 0,
4587                n && (i -= parseFloat(t.css(e, "border" + this + "Width")) || 0),
4588                o && (i -= parseFloat(t.css(e, "margin" + this)) || 0)
4589            }),
4590            i
4591        }
4592        var s = "Width" === i ? ["Left", "Right"] : ["Top", "Bottom"]
4593          , o = i.toLowerCase()
4594          , r = {
4595            innerWidth: t.fn.innerWidth,
4596            innerHeight: t.fn.innerHeight,
4597            outerWidth: t.fn.outerWidth,
4598            outerHeight: t.fn.outerHeight
4599        };
4600        t.fn["inner" + i] = function(e) {
4601            return void 0 === e ? r["inner" + i].call(this) : this.each(function() {
4602                t(this).css(o, n(this, e) + "px")
4603            })
4604        }
4605        ,
4606        t.fn["outer" + i] = function(e, s) {
4607            return "number" != typeof e ? r["outer" + i].call(this, e) : this.each(function() {
4608                t(this).css(o, n(this, e, !0, s) + "px")
4609            })
4610        }
4611    }),
4612    t.fn.addBack = function(t) {
4613        return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
4614    }
4615    )
4616}),
4617function(t) {
4618    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4619}(function(t) {
4620    return t.ui.plugin = {
4621        add: function(e, i, n) {
4622            var s, o = t.ui[e].prototype;
4623            for (s in n)
4624                o.plugins[s] = o.plugins[s] || [],
4625                o.plugins[s].push([i, n[s]])
4626        },
4627        call: function(t, e, i, n) {
4628            var s, o = t.plugins[e];
4629            if (o && (n || t.element[0].parentNode && 11 !== t.element[0].parentNode.nodeType))
4630                for (s = 0; s < o.length; s++)
4631                    t.options[o[s][0]] && o[s][1].apply(t.element, i)
4632        }
4633    }
4634}),
4635function(t) {
4636    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4637}(function(t) {
4638    return t.ui.safeActiveElement = function(t) {
4639        var e;
4640        try {
4641            e = t.activeElement
4642        } catch (i) {
4643            e = t.body
4644        }
4645        return e || (e = t.body),
4646        e.nodeName || (e = t.body),
4647        e
4648    }
4649}),
4650function(t) {
4651    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4652}(function(t) {
4653    return t.ui.safeBlur = function(e) {
4654        e && "body" !== e.nodeName.toLowerCase() && t(e).trigger("blur")
4655    }
4656}),
4657function(t) {
4658    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4659}(function(t) {
4660    return t.fn.scrollParent = function(e) {
4661        var i = this.css("position")
4662          , n = "absolute" === i
4663          , s = e ? /(auto|scroll|hidden)/ : /(auto|scroll)/
4664          , o = this.parents().filter(function() {
4665            var e = t(this);
4666            return (!n || "static" !== e.css("position")) && s.test(e.css("overflow") + e.css("overflow-y") + e.css("overflow-x"))
4667        }).eq(0);
4668        return "fixed" !== i && o.length ? o : t(this[0].ownerDocument || document)
4669    }
4670}),
4671function(t) {
4672    "function" == typeof define && define.amd ? define(["jquery", "./version", "./focusable"], t) : t(jQuery)
4673}(function(t) {
4674    return t.extend(t.expr[":"], {
4675        tabbable: function(e) {
4676            var i = t.attr(e, "tabindex")
4677              , n = null != i;
4678            return (!n || i >= 0) && t.ui.focusable(e, n)
4679        }
4680    })
4681}),
4682function(t) {
4683    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4684}(function(t) {
4685    return t.fn.extend({
4686        uniqueId: function() {
4687            var t = 0;
4688            return function() {
4689                return this.each(function() {
4690                    this.id || (this.id = "ui-id-" + ++t)
4691                })
4692            }
4693        }(),
4694        removeUniqueId: function() {
4695            return this.each(function() {
4696                /^ui-id-\d+$/.test(this.id) && t(this).removeAttr("id")
4697            })
4698        }
4699    })
4700}),
4701function(t) {
4702    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
4703}(function(t) {
4704    var e = "ui-effects-"
4705      , i = "ui-effects-style"
4706      , n = "ui-effects-animated"
4707      , s = t;
4708    return t.effects = {
4709        effect: {}
4710    },
4711    function(t, e) {
4712        function i(t, e, i) {
4713            var n = c[e.type] || {};
4714            return null == t ? i || !e.def ? null : e.def : (t = n.floor ? ~~t : parseFloat(t),
4715            isNaN(t) ? e.def : n.mod ? (t + n.mod) % n.mod : 0 > t ? 0 : n.max < t ? n.max : t)
4716        }
4717        function n(e) {
4718            var i = h()
4719              , n = i._rgba = [];
4720            return e = e.toLowerCase(),
4721            f(l, function(t, s) {
4722                var o, r = s.re.exec(e), a = r && s.parse(r), l = s.space || "rgba";
4723                if (a)
4724                    return o = i[l](a),
4725                    i[u[l].cache] = o[u[l].cache],
4726                    n = i._rgba = o._rgba,
4727                    !1
4728            }),
4729            n.length ? ("0,0,0,0" === n.join() && t.extend(n, o.transparent),
4730            i) : o[e]
4731        }
4732        function s(t, e, i) {
4733            return i = (i + 1) % 1,
4734            6 * i < 1 ? t + (e - t) * i * 6 : 2 * i < 1 ? e : 3 * i < 2 ? t + (e - t) * (2 / 3 - i) * 6 : t
4735        }
4736        var o, r = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", a = /^([\-+])=\s*(\d+\.?\d*)/, l = [{
4737            re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
4738            parse: function(t) {
4739                return [t[1], t[2], t[3], t[4]]
4740            }
4741        }, {
4742            re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
4743            parse: function(t) {
4744                return [2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]]
4745            }
4746        }, {
4747            re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
4748            parse: function(t) {
4749                return [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)]
4750            }
4751        }, {
4752            re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
4753            parse: function(t) {
4754                return [parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16)]
4755            }
4756        }, {
4757            re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
4758            space: "hsla",
4759            parse: function(t) {
4760                return [t[1], t[2] / 100, t[3] / 100, t[4]]
4761            }
4762        }], h = t.Color = function(e, i, n, s) {
4763            return new t.Color.fn.parse(e,i,n,s)
4764        }
4765        , u = {
4766            rgba: {
4767                props: {
4768                    red: {
4769                        idx: 0,
4770                        type: "byte"
4771                    },
4772                    green: {
4773                        idx: 1,
4774                        type: "byte"
4775                    },
4776                    blue: {
4777                        idx: 2,
4778                        type: "byte"
4779                    }
4780                }
4781            },
4782            hsla: {
4783                props: {
4784                    hue: {
4785                        idx: 0,
4786                        type: "degrees"
4787                    },
4788                    saturation: {
4789                        idx: 1,
4790                        type: "percent"
4791                    },
4792                    lightness: {
4793                        idx: 2,
4794                        type: "percent"
4795                    }
4796                }
4797            }
4798        }, c = {
4799            "byte": {
4800                floor: !0,
4801                max: 255
4802            },
4803            percent: {
4804                max: 1
4805            },
4806            degrees: {
4807                mod: 360,
4808                floor: !0
4809            }
4810        }, d = h.support = {}, p = t("<p>")[0], f = t.each;
4811        p.style.cssText = "background-color:rgba(1,1,1,.5)",
4812        d.rgba = p.style.backgroundColor.indexOf("rgba") > -1,
4813        f(u, function(t, e) {
4814            e.cache = "_" + t,
4815            e.props.alpha = {
4816                idx: 3,
4817                type: "percent",
4818                def: 1
4819            }
4820        }),
4821        h.fn = t.extend(h.prototype, {
4822            parse: function(s, r, a, l) {
4823                if (s === e)
4824                    return this._rgba = [null, null, null, null],
4825                    this;
4826                (s.jquery || s.nodeType) && (s = t(s).css(r),
4827                r = e);
4828                var c = this
4829                  , d = t.type(s)
4830                  , p = this._rgba = [];
4831                return r !== e && (s = [s, r, a, l],
4832                d = "array"),
4833                "string" === d ? this.parse(n(s) || o._default) : "array" === d ? (f(u.rgba.props, function(t, e) {
4834                    p[e.idx] = i(s[e.idx], e)
4835                }),
4836                this) : "object" === d ? (s instanceof h ? f(u, function(t, e) {
4837                    s[e.cache] && (c[e.cache] = s[e.cache].slice())
4838                }) : f(u, function(e, n) {
4839                    var o = n.cache;
4840                    f(n.props, function(t, e) {
4841                        if (!c[o] && n.to) {
4842                            if ("alpha" === t || null == s[t])
4843                                return;
4844                            c[o] = n.to(c._rgba)
4845                        }
4846                        c[o][e.idx] = i(s[t], e, !0)
4847                    }),
4848                    c[o] && t.inArray(null, c[o].slice(0, 3)) < 0 && (c[o][3] = 1,
4849                    n.from && (c._rgba = n.from(c[o])))
4850                }),
4851                this) : void 0
4852            },
4853            is: function(t) {
4854                var e = h(t)
4855                  , i = !0
4856                  , n = this;
4857                return f(u, function(t, s) {
4858                    var o, r = e[s.cache];
4859                    return r && (o = n[s.cache] || s.to && s.to(n._rgba) || [],
4860                    f(s.props, function(t, e) {
4861                        if (null != r[e.idx])
4862                            return i = r[e.idx] === o[e.idx]
4863                    })),
4864                    i
4865                }),
4866                i
4867            },
4868            _space: function() {
4869                var t = []
4870                  , e = this;
4871                return f(u, function(i, n) {
4872                    e[n.cache] && t.push(i)
4873                }),
4874                t.pop()
4875            },
4876            transition: function(t, e) {
4877                var n = h(t)
4878                  , s = n._space()
4879                  , o = u[s]
4880                  , r = 0 === this.alpha() ? h("transparent") : this
4881                  , a = r[o.cache] || o.to(r._rgba)
4882                  , l = a.slice();
4883                return n = n[o.cache],
4884                f(o.props, function(t, s) {
4885                    var o = s.idx
4886                      , r = a[o]
4887                      , h = n[o]
4888                      , u = c[s.type] || {};
4889                    null !== h && (null === r ? l[o] = h : (u.mod && (h - r > u.mod / 2 ? r += u.mod : r - h > u.mod / 2 && (r -= u.mod)),
4890                    l[o] = i((h - r) * e + r, s)))
4891                }),
4892                this[s](l)
4893            },
4894            blend: function(e) {
4895                if (1 === this._rgba[3])
4896                    return this;
4897                var i = this._rgba.slice()
4898                  , n = i.pop()
4899                  , s = h(e)._rgba;
4900                return h(t.map(i, function(t, e) {
4901                    return (1 - n) * s[e] + n * t
4902                }))
4903            },
4904            toRgbaString: function() {
4905                var e = "rgba("
4906                  , i = t.map(this._rgba, function(t, e) {
4907                    return null == t ? e > 2 ? 1 : 0 : t
4908                });
4909                return 1 === i[3] && (i.pop(),
4910                e = "rgb("),
4911                e + i.join() + ")"
4912            },
4913            toHslaString: function() {
4914                var e = "hsla("
4915                  , i = t.map(this.hsla(), function(t, e) {
4916                    return null == t && (t = e > 2 ? 1 : 0),
4917                    e && e < 3 && (t = Math.round(100 * t) + "%"),
4918                    t
4919                });
4920                return 1 === i[3] && (i.pop(),
4921                e = "hsl("),
4922                e + i.join() + ")"
4923            },
4924            toHexString: function(e) {
4925                var i = this._rgba.slice()
4926                  , n = i.pop();
4927                return e && i.push(~~(255 * n)),
4928                "#" + t.map(i, function(t) {
4929                    return t = (t || 0).toString(16),
4930                    1 === t.length ? "0" + t : t
4931                }).join("")
4932            },
4933            toString: function() {
4934                return 0 === this._rgba[3] ? "transparent" : this.toRgbaString()
4935            }
4936        }),
4937        h.fn.parse.prototype = h.fn,
4938        u.hsla.to = function(t) {
4939            if (null == t[0] || null == t[1] || null == t[2])
4940                return [null, null, null, t[3]];
vendor: 9,781 bytes, lines 4941-5194
4941            var e, i, n = t[0] / 255, s = t[1] / 255, o = t[2] / 255, r = t[3], a = Math.max(n, s, o), l = Math.min(n, s, o), h = a - l, u = a + l, c = .5 * u;
4942            return e = l === a ? 0 : n === a ? 60 * (s - o) / h + 360 : s === a ? 60 * (o - n) / h + 120 : 60 * (n - s) / h + 240,
4943            i = 0 === h ? 0 : c <= .5 ? h / u : h / (2 - u),
4944            [Math.round(e) % 360, i, c, null == r ? 1 : r]
4945        }
4946        ,
4947        u.hsla.from = function(t) {
4948            if (null == t[0] || null == t[1] || null == t[2])
4949                return [null, null, null, t[3]];
4950            var e = t[0] / 360
4951              , i = t[1]
4952              , n = t[2]
4953              , o = t[3]
4954              , r = n <= .5 ? n * (1 + i) : n + i - n * i
4955              , a = 2 * n - r;
4956            return [Math.round(255 * s(a, r, e + 1 / 3)), Math.round(255 * s(a, r, e)), Math.round(255 * s(a, r, e - 1 / 3)), o]
4957        }
4958        ,
4959        f(u, function(n, s) {
4960            var o = s.props
4961              , r = s.cache
4962              , l = s.to
4963              , u = s.from;
4964            h.fn[n] = function(n) {
4965                if (l && !this[r] && (this[r] = l(this._rgba)),
4966                n === e)
4967                    return this[r].slice();
4968                var s, a = t.type(n), c = "array" === a || "object" === a ? n : arguments, d = this[r].slice();
4969                return f(o, function(t, e) {
4970                    var n = c["object" === a ? t : e.idx];
4971                    null == n && (n = d[e.idx]),
4972                    d[e.idx] = i(n, e)
4973                }),
4974                u ? (s = h(u(d)),
4975                s[r] = d,
4976                s) : h(d)
4977            }
4978            ,
4979            f(o, function(e, i) {
4980                h.fn[e] || (h.fn[e] = function(s) {
4981                    var o, r = t.type(s), l = "alpha" === e ? this._hsla ? "hsla" : "rgba" : n, h = this[l](), u = h[i.idx];
4982                    return "undefined" === r ? u : ("function" === r && (s = s.call(this, u),
4983                    r = t.type(s)),
4984                    null == s && i.empty ? this : ("string" === r && (o = a.exec(s),
4985                    o && (s = u + parseFloat(o[2]) * ("+" === o[1] ? 1 : -1))),
4986                    h[i.idx] = s,
4987                    this[l](h)))
4988                }
4989                )
4990            })
4991        }),
4992        h.hook = function(e) {
4993            var i = e.split(" ");
4994            f(i, function(e, i) {
4995                t.cssHooks[i] = {
4996                    set: function(e, s) {
4997                        var o, r, a = "";
4998                        if ("transparent" !== s && ("string" !== t.type(s) || (o = n(s)))) {
4999                            if (s = h(o || s),
5000                            !d.rgba && 1 !== s._rgba[3]) {
5001                                for (r = "backgroundColor" === i ? e.parentNode : e; ("" === a || "transparent" === a) && r && r.style; )
5002                                    try {
5003                                        a = t.css(r, "backgroundColor"),
5004                                        r = r.parentNode
5005                                    } catch (t) {}
5006                                s = s.blend(a && "transparent" !== a ? a : "_default")
5007                            }
5008                            s = s.toRgbaString()
5009                        }
5010                        try {
5011                            e.style[i] = s
5012                        } catch (t) {}
5013                    }
5014                },
5015                t.fx.step[i] = function(e) {
5016                    e.colorInit || (e.start = h(e.elem, i),
5017                    e.end = h(e.end),
5018                    e.colorInit = !0),
5019                    t.cssHooks[i].set(e.elem, e.start.transition(e.end, e.pos))
5020                }
5021            })
5022        }
5023        ,
5024        h.hook(r),
5025        t.cssHooks.borderColor = {
5026            expand: function(t) {
5027                var e = {};
5028                return f(["Top", "Right", "Bottom", "Left"], function(i, n) {
5029                    e["border" + n + "Color"] = t
5030                }),
5031                e
5032            }
5033        },
5034        o = t.Color.names = {
5035            aqua: "#00ffff",
5036            black: "#000000",
5037            blue: "#0000ff",
5038            fuchsia: "#ff00ff",
5039            gray: "#808080",
5040            green: "#008000",
5041            lime: "#00ff00",
5042            maroon: "#800000",
5043            navy: "#000080",
5044            olive: "#808000",
5045            purple: "#800080",
5046            red: "#ff0000",
5047            silver: "#c0c0c0",
5048            teal: "#008080",
5049            white: "#ffffff",
5050            yellow: "#ffff00",
5051            transparent: [null, null, null, 0],
5052            _default: "#ffffff"
5053        }
5054    }(s),
5055    function() {
5056        function e(e) {
5057            var i, n, s = e.ownerDocument.defaultView ? e.ownerDocument.defaultView.getComputedStyle(e, null) : e.currentStyle, o = {};
5058            if (s && s.length && s[0] && s[s[0]])
5059                for (n = s.length; n--; )
5060                    i = s[n],
5061                    "string" == typeof s[i] && (o[t.camelCase(i)] = s[i]);
5062            else
5063                for (i in s)
5064                    "string" == typeof s[i] && (o[i] = s[i]);
5065            return o
5066        }
5067        function i(e, i) {
5068            var n, s, r = {};
5069            for (n in i)
5070                s = i[n],
5071                e[n] !== s && (o[n] || !t.fx.step[n] && isNaN(parseFloat(s)) || (r[n] = s));
5072            return r
5073        }
5074        var n = ["add", "remove", "toggle"]
5075          , o = {
5076            border: 1,
5077            borderBottom: 1,
5078            borderColor: 1,
5079            borderLeft: 1,
5080            borderRight: 1,
5081            borderTop: 1,
5082            borderWidth: 1,
5083            margin: 1,
5084            padding: 1
5085        };
5086        t.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(e, i) {
5087            t.fx.step[i] = function(t) {
5088                ("none" !== t.end && !t.setAttr || 1 === t.pos && !t.setAttr) && (s.style(t.elem, i, t.end),
5089                t.setAttr = !0)
5090            }
5091        }),
5092        t.fn.addBack || (t.fn.addBack = function(t) {
5093            return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
5094        }
5095        ),
5096        t.effects.animateClass = function(s, o, r, a) {
5097            var l = t.speed(o, r, a);
5098            return this.queue(function() {
5099                var o, r = t(this), a = r.attr("class") || "", h = l.children ? r.find("*").addBack() : r;
5100                h = h.map(function() {
5101                    var i = t(this);
5102                    return {
5103                        el: i,
5104                        start: e(this)
5105                    }
5106                }),
5107                o = function() {
5108                    t.each(n, function(t, e) {
5109                        s[e] && r[e + "Class"](s[e])
5110                    })
5111                }
5112                ,
5113                o(),
5114                h = h.map(function() {
5115                    return this.end = e(this.el[0]),
5116                    this.diff = i(this.start, this.end),
5117                    this
5118                }),
5119                r.attr("class", a),
5120                h = h.map(function() {
5121                    var e = this
5122                      , i = t.Deferred()
5123                      , n = t.extend({}, l, {
5124                        queue: !1,
5125                        complete: function() {
5126                            i.resolve(e)
5127                        }
5128                    });
5129                    return this.el.animate(this.diff, n),
5130                    i.promise()
5131                }),
5132                t.when.apply(t, h.get()).done(function() {
5133                    o(),
5134                    t.each(arguments, function() {
5135                        var e = this.el;
5136                        t.each(this.diff, function(t) {
5137                            e.css(t, "")
5138                        })
5139                    }),
5140                    l.complete.call(r[0])
5141                })
5142            })
5143        }
5144        ,
5145        t.fn.extend({
5146            addClass: function(e) {
5147                return function(i, n, s, o) {
5148                    return n ? t.effects.animateClass.call(this, {
5149                        add: i
5150                    }, n, s, o) : e.apply(this, arguments)
5151                }
5152            }(t.fn.addClass),
5153            removeClass: function(e) {
5154                return function(i, n, s, o) {
5155                    return arguments.length > 1 ? t.effects.animateClass.call(this, {
5156                        remove: i
5157                    }, n, s, o) : e.apply(this, arguments)
5158                }
5159            }(t.fn.removeClass),
5160            toggleClass: function(e) {
5161                return function(i, n, s, o, r) {
5162                    return "boolean" == typeof n || void 0 === n ? s ? t.effects.animateClass.call(this, n ? {
5163                        add: i
5164                    } : {
5165                        remove: i
5166                    }, s, o, r) : e.apply(this, arguments) : t.effects.animateClass.call(this, {
5167                        toggle: i
5168                    }, n, s, o)
5169                }
5170            }(t.fn.toggleClass),
5171            switchClass: function(e, i, n, s, o) {
5172                return t.effects.animateClass.call(this, {
5173                    add: i,
5174                    remove: e
5175                }, n, s, o)
5176            }
5177        })
5178    }(),
5179    function() {
5180        function s(e, i, n, s) {
5181            return t.isPlainObject(e) && (i = e,
5182            e = e.effect),
5183            e = {
5184                effect: e
5185            },
5186            null == i && (i = {}),
5187            t.isFunction(i) && (s = i,
5188            n = null,
5189            i = {}),
5190            ("number" == typeof i || t.fx.speeds[i]) && (s = n,
5191            n = i,
5192            i = {}),
5193            t.isFunction(n) && (s = n,
5194            n = null),
vendor: 14,262 bytes, lines 5195-5555
5195            i && t.extend(e, i),
5196            n = n || i.duration,
5197            e.duration = t.fx.off ? 0 : "number" == typeof n ? n : n in t.fx.speeds ? t.fx.speeds[n] : t.fx.speeds._default,
5198            e.complete = s || i.complete,
5199            e
5200        }
5201        function o(e) {
5202            return !(e && "number" != typeof e && !t.fx.speeds[e]) || ("string" == typeof e && !t.effects.effect[e] || (!!t.isFunction(e) || "object" == typeof e && !e.effect))
5203        }
5204        function r(t, e) {
5205            var i = e.outerWidth()
5206              , n = e.outerHeight()
5207              , s = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/
5208              , o = s.exec(t) || ["", 0, i, n, 0];
5209            return {
5210                top: parseFloat(o[1]) || 0,
5211                right: "auto" === o[2] ? i : parseFloat(o[2]),
5212                bottom: "auto" === o[3] ? n : parseFloat(o[3]),
5213                left: parseFloat(o[4]) || 0
5214            }
5215        }
5216        t.expr && t.expr.filters && t.expr.filters.animated && (t.expr.filters.animated = function(e) {
5217            return function(i) {
5218                return !!t(i).data(n) || e(i)
5219            }
5220        }(t.expr.filters.animated)),
5221        t.uiBackCompat !== !1 && t.extend(t.effects, {
5222            save: function(t, i) {
5223                for (var n = 0, s = i.length; n < s; n++)
5224                    null !== i[n] && t.data(e + i[n], t[0].style[i[n]])
5225            },
5226            restore: function(t, i) {
5227                for (var n, s = 0, o = i.length; s < o; s++)
5228                    null !== i[s] && (n = t.data(e + i[s]),
5229                    t.css(i[s], n))
5230            },
5231            setMode: function(t, e) {
5232                return "toggle" === e && (e = t.is(":hidden") ? "show" : "hide"),
5233                e
5234            },
5235            createWrapper: function(e) {
5236                if (e.parent().is(".ui-effects-wrapper"))
5237                    return e.parent();
5238                var i = {
5239                    width: e.outerWidth(!0),
5240                    height: e.outerHeight(!0),
5241                    "float": e.css("float")
5242                }
5243                  , n = t("<div></div>").addClass("ui-effects-wrapper").css({
5244                    fontSize: "100%",
5245                    background: "transparent",
5246                    border: "none",
5247                    margin: 0,
5248                    padding: 0
5249                })
5250                  , s = {
5251                    width: e.width(),
5252                    height: e.height()
5253                }
5254                  , o = document.activeElement;
5255                try {
5256                    o.id
5257                } catch (t) {
5258                    o = document.body
5259                }
5260                return e.wrap(n),
5261                (e[0] === o || t.contains(e[0], o)) && t(o).trigger("focus"),
5262                n = e.parent(),
5263                "static" === e.css("position") ? (n.css({
5264                    position: "relative"
5265                }),
5266                e.css({
5267                    position: "relative"
5268                })) : (t.extend(i, {
5269                    position: e.css("position"),
5270                    zIndex: e.css("z-index")
5271                }),
5272                t.each(["top", "left", "bottom", "right"], function(t, n) {
5273                    i[n] = e.css(n),
5274                    isNaN(parseInt(i[n], 10)) && (i[n] = "auto")
5275                }),
5276                e.css({
5277                    position: "relative",
5278                    top: 0,
5279                    left: 0,
5280                    right: "auto",
5281                    bottom: "auto"
5282                })),
5283                e.css(s),
5284                n.css(i).show()
5285            },
5286            removeWrapper: function(e) {
5287                var i = document.activeElement;
5288                return e.parent().is(".ui-effects-wrapper") && (e.parent().replaceWith(e),
5289                (e[0] === i || t.contains(e[0], i)) && t(i).trigger("focus")),
5290                e
5291            }
5292        }),
5293        t.extend(t.effects, {
5294            version: "1.12.1",
5295            define: function(e, i, n) {
5296                return n || (n = i,
5297                i = "effect"),
5298                t.effects.effect[e] = n,
5299                t.effects.effect[e].mode = i,
5300                n
5301            },
5302            scaledDimensions: function(t, e, i) {
5303                if (0 === e)
5304                    return {
5305                        height: 0,
5306                        width: 0,
5307                        outerHeight: 0,
5308                        outerWidth: 0
5309                    };
5310                var n = "horizontal" !== i ? (e || 100) / 100 : 1
5311                  , s = "vertical" !== i ? (e || 100) / 100 : 1;
5312                return {
5313                    height: t.height() * s,
5314                    width: t.width() * n,
5315                    outerHeight: t.outerHeight() * s,
5316                    outerWidth: t.outerWidth() * n
5317                }
5318            },
5319            clipToBox: function(t) {
5320                return {
5321                    width: t.clip.right - t.clip.left,
5322                    height: t.clip.bottom - t.clip.top,
5323                    left: t.clip.left,
5324                    top: t.clip.top
5325                }
5326            },
5327            unshift: function(t, e, i) {
5328                var n = t.queue();
5329                e > 1 && n.splice.apply(n, [1, 0].concat(n.splice(e, i))),
5330                t.dequeue()
5331            },
5332            saveStyle: function(t) {
5333                t.data(i, t[0].style.cssText)
5334            },
5335            restoreStyle: function(t) {
5336                t[0].style.cssText = t.data(i) || "",
5337                t.removeData(i)
5338            },
5339            mode: function(t, e) {
5340                var i = t.is(":hidden");
5341                return "toggle" === e && (e = i ? "show" : "hide"),
5342                (i ? "hide" === e : "show" === e) && (e = "none"),
5343                e
5344            },
5345            getBaseline: function(t, e) {
5346                var i, n;
5347                switch (t[0]) {
5348                case "top":
5349                    i = 0;
5350                    break;
5351                case "middle":
5352                    i = .5;
5353                    break;
5354                case "bottom":
5355                    i = 1;
5356                    break;
5357                default:
5358                    i = t[0] / e.height
5359                }
5360                switch (t[1]) {
5361                case "left":
5362                    n = 0;
5363                    break;
5364                case "center":
5365                    n = .5;
5366                    break;
5367                case "right":
5368                    n = 1;
5369                    break;
5370                default:
5371                    n = t[1] / e.width
5372                }
5373                return {
5374                    x: n,
5375                    y: i
5376                }
5377            },
5378            createPlaceholder: function(i) {
5379                var n, s = i.css("position"), o = i.position();
5380                return i.css({
5381                    marginTop: i.css("marginTop"),
5382                    marginBottom: i.css("marginBottom"),
5383                    marginLeft: i.css("marginLeft"),
5384                    marginRight: i.css("marginRight")
5385                }).outerWidth(i.outerWidth()).outerHeight(i.outerHeight()),
5386                /^(static|relative)/.test(s) && (s = "absolute",
5387                n = t("<" + i[0].nodeName + ">").insertAfter(i).css({
5388                    display: /^(inline|ruby)/.test(i.css("display")) ? "inline-block" : "block",
5389                    visibility: "hidden",
5390                    marginTop: i.css("marginTop"),
5391                    marginBottom: i.css("marginBottom"),
5392                    marginLeft: i.css("marginLeft"),
5393                    marginRight: i.css("marginRight"),
5394                    "float": i.css("float")
5395                }).outerWidth(i.outerWidth()).outerHeight(i.outerHeight()).addClass("ui-effects-placeholder"),
5396                i.data(e + "placeholder", n)),
5397                i.css({
5398                    position: s,
5399                    left: o.left,
5400                    top: o.top
5401                }),
5402                n
5403            },
5404            removePlaceholder: function(t) {
5405                var i = e + "placeholder"
5406                  , n = t.data(i);
5407                n && (n.remove(),
5408                t.removeData(i))
5409            },
5410            cleanUp: function(e) {
5411                t.effects.restoreStyle(e),
5412                t.effects.removePlaceholder(e)
5413            },
5414            setTransition: function(e, i, n, s) {
5415                return s = s || {},
5416                t.each(i, function(t, i) {
5417                    var o = e.cssUnit(i);
5418                    o[0] > 0 && (s[i] = o[0] * n + o[1])
5419                }),
5420                s
5421            }
5422        }),
5423        t.fn.extend({
5424            effect: function() {
5425                function e(e) {
5426                    function s() {
5427                        l.removeData(n),
5428                        t.effects.cleanUp(l),
5429                        "hide" === i.mode && l.hide(),
5430                        a()
5431                    }
5432                    function a() {
5433                        t.isFunction(h) && h.call(l[0]),
5434                        t.isFunction(e) && e()
5435                    }
5436                    var l = t(this);
5437                    i.mode = c.shift(),
5438                    t.uiBackCompat === !1 || r ? "none" === i.mode ? (l[u](),
5439                    a()) : o.call(l[0], i, s) : (l.is(":hidden") ? "hide" === u : "show" === u) ? (l[u](),
5440                    a()) : o.call(l[0], i, a)
5441                }
5442                var i = s.apply(this, arguments)
5443                  , o = t.effects.effect[i.effect]
5444                  , r = o.mode
5445                  , a = i.queue
5446                  , l = a || "fx"
5447                  , h = i.complete
5448                  , u = i.mode
5449                  , c = []
5450                  , d = function(e) {
5451                    var i = t(this)
5452                      , s = t.effects.mode(i, u) || r;
5453                    i.data(n, !0),
5454                    c.push(s),
5455                    r && ("show" === s || s === r && "hide" === s) && i.show(),
5456                    r && "none" === s || t.effects.saveStyle(i),
5457                    t.isFunction(e) && e()
5458                };
5459                return t.fx.off || !o ? u ? this[u](i.duration, h) : this.each(function() {
5460                    h && h.call(this)
5461                }) : a === !1 ? this.each(d).each(e) : this.queue(l, d).queue(l, e)
5462            },
5463            show: function(t) {
5464                return function(e) {
5465                    if (o(e))
5466                        return t.apply(this, arguments);
5467                    var i = s.apply(this, arguments);
5468                    return i.mode = "show",
5469                    this.effect.call(this, i)
5470                }
5471            }(t.fn.show),
5472            hide: function(t) {
5473                return function(e) {
5474                    if (o(e))
5475                        return t.apply(this, arguments);
5476                    var i = s.apply(this, arguments);
5477                    return i.mode = "hide",
5478                    this.effect.call(this, i)
5479                }
5480            }(t.fn.hide),
5481            toggle: function(t) {
5482                return function(e) {
5483                    if (o(e) || "boolean" == typeof e)
5484                        return t.apply(this, arguments);
5485                    var i = s.apply(this, arguments);
5486                    return i.mode = "toggle",
5487                    this.effect.call(this, i)
5488                }
5489            }(t.fn.toggle),
5490            cssUnit: function(e) {
5491                var i = this.css(e)
5492                  , n = [];
5493                return t.each(["em", "px", "%", "pt"], function(t, e) {
5494                    i.indexOf(e) > 0 && (n = [parseFloat(i), e])
5495                }),
5496                n
5497            },
5498            cssClip: function(t) {
5499                return t ? this.css("clip", "rect(" + t.top + "px " + t.right + "px " + t.bottom + "px " + t.left + "px)") : r(this.css("clip"), this)
5500            },
5501            transfer: function(e, i) {
5502                var n = t(this)
5503                  , s = t(e.to)
5504                  , o = "fixed" === s.css("position")
5505                  , r = t("body")
5506                  , a = o ? r.scrollTop() : 0
5507                  , l = o ? r.scrollLeft() : 0
5508                  , h = s.offset()
5509                  , u = {
5510                    top: h.top - a,
5511                    left: h.left - l,
5512                    height: s.innerHeight(),
5513                    width: s.innerWidth()
5514                }
5515                  , c = n.offset()
5516                  , d = t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({
5517                    top: c.top - a,
5518                    left: c.left - l,
5519                    height: n.innerHeight(),
5520                    width: n.innerWidth(),
5521                    position: o ? "fixed" : "absolute"
5522                }).animate(u, e.duration, e.easing, function() {
5523                    d.remove(),
5524                    t.isFunction(i) && i()
5525                })
5526            }
5527        }),
5528        t.fx.step.clip = function(e) {
5529            e.clipInit || (e.start = t(e.elem).cssClip(),
5530            "string" == typeof e.end && (e.end = r(e.end, e.elem)),
5531            e.clipInit = !0),
5532            t(e.elem).cssClip({
5533                top: e.pos * (e.end.top - e.start.top) + e.start.top,
5534                right: e.pos * (e.end.right - e.start.right) + e.start.right,
5535                bottom: e.pos * (e.end.bottom - e.start.bottom) + e.start.bottom,
5536                left: e.pos * (e.end.left - e.start.left) + e.start.left
5537            })
5538        }
5539    }(),
5540    function() {
5541        var e = {};
5542        t.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(t, i) {
5543            e[i] = function(e) {
5544                return Math.pow(e, t + 2)
5545            }
5546        }),
5547        t.extend(e, {
5548            Sine: function(t) {
5549                return 1 - Math.cos(t * Math.PI / 2)
5550            },
5551            Circ: function(t) {
5552                return 1 - Math.sqrt(1 - t * t)
5553            },
5554            Elastic: function(t) {
5555                return 0 === t || 1 === t ? t : -Math.pow(2, 8 * (t - 1)) * Math.sin((80 * (t - 1) 
vendor: 6,618 bytes, lines 5555-5718
5555- 7.5) * Math.PI / 15)
5556            },
5557            Back: function(t) {
5558                return t * t * (3 * t - 2)
5559            },
5560            Bounce: function(t) {
5561                for (var e, i = 4; t < ((e = Math.pow(2, --i)) - 1) / 11; )
5562                    ;
5563                return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2)
5564            }
5565        }),
5566        t.each(e, function(e, i) {
5567            t.easing["easeIn" + e] = i,
5568            t.easing["easeOut" + e] = function(t) {
5569                return 1 - i(1 - t)
5570            }
5571            ,
5572            t.easing["easeInOut" + e] = function(t) {
5573                return t < .5 ? i(2 * t) / 2 : 1 - i(t * -2 + 2) / 2
5574            }
5575        })
5576    }(),
5577    t.effects
5578}),
5579function(t) {
5580    "function" == typeof define && define.amd ? define(["jquery", "./form", "./version"], t) : t(jQuery)
5581}(function(t) {
5582    return t.ui.formResetMixin = {
5583        _formResetHandler: function() {
5584            var e = t(this);
5585            setTimeout(function() {
5586                var i = e.data("ui-form-reset-instances");
5587                t.each(i, function() {
5588                    this.refresh()
5589                })
5590            })
5591        },
5592        _bindFormResetHandler: function() {
5593            if (this.form = this.element.form(),
5594            this.form.length) {
5595                var t = this.form.data("ui-form-reset-instances") || [];
5596                t.length || this.form.on("reset.ui-form-reset", this._formResetHandler),
5597                t.push(this),
5598                this.form.data("ui-form-reset-instances", t)
5599            }
5600        },
5601        _unbindFormResetHandler: function() {
5602            if (this.form.length) {
5603                var e = this.form.data("ui-form-reset-instances");
5604                e.splice(t.inArray(this, e), 1),
5605                e.length ? this.form.data("ui-form-reset-instances", e) : this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")
5606            }
5607        }
5608    }
5609}),
5610function(t) {
5611    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
5612}(function(t) {
5613    return function() {
5614        function e(t, e, i) {
5615            return [parseFloat(t[0]) * (c.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (c.test(t[1]) ? i / 100 : 1)]
5616        }
5617        function i(e, i) {
5618            return parseInt(t.css(e, i), 10) || 0
5619        }
5620        function n(e) {
5621            var i = e[0];
5622            return 9 === i.nodeType ? {
5623                width: e.width(),
5624                height: e.height(),
5625                offset: {
5626                    top: 0,
5627                    left: 0
5628                }
5629            } : t.isWindow(i) ? {
5630                width: e.width(),
5631                height: e.height(),
5632                offset: {
5633                    top: e.scrollTop(),
5634                    left: e.scrollLeft()
5635                }
5636            } : i.preventDefault ? {
5637                width: 0,
5638                height: 0,
5639                offset: {
5640                    top: i.pageY,
5641                    left: i.pageX
5642                }
5643            } : {
5644                width: e.outerWidth(),
5645                height: e.outerHeight(),
5646                offset: e.offset()
5647            }
5648        }
5649        var s, o = Math.max, r = Math.abs, a = /left|center|right/, l = /top|center|bottom/, h = /[\+\-]\d+(\.[\d]+)?%?/, u = /^\w+/, c = /%$/, d = t.fn.position;
5650        t.position = {
5651            scrollbarWidth: function() {
5652                if (void 0 !== s)
5653                    return s;
5654                var e, i, n = t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), o = n.children()[0];
5655                return t("body").append(n),
5656                e = o.offsetWidth,
5657                n.css("overflow", "scroll"),
5658                i = o.offsetWidth,
5659                e === i && (i = n[0].clientWidth),
5660                n.remove(),
5661                s = e - i
5662            },
5663            getScrollInfo: function(e) {
5664                var i = e.isWindow || e.isDocument ? "" : e.element.css("overflow-x")
5665                  , n = e.isWindow || e.isDocument ? "" : e.element.css("overflow-y")
5666                  , s = "scroll" === i || "auto" === i && e.width < e.element[0].scrollWidth
5667                  , o = "scroll" === n || "auto" === n && e.height < e.element[0].scrollHeight;
5668                return {
5669                    width: o ? t.position.scrollbarWidth() : 0,
5670                    height: s ? t.position.scrollbarWidth() : 0
5671                }
5672            },
5673            getWithinInfo: function(e) {
5674                var i = t(e || window)
5675                  , n = t.isWindow(i[0])
5676                  , s = !!i[0] && 9 === i[0].nodeType
5677                  , o = !n && !s;
5678                return {
5679                    element: i,
5680                    isWindow: n,
5681                    isDocument: s,
5682                    offset: o ? t(e).offset() : {
5683                        left: 0,
5684                        top: 0
5685                    },
5686                    scrollLeft: i.scrollLeft(),
5687                    scrollTop: i.scrollTop(),
5688                    width: i.outerWidth(),
5689                    height: i.outerHeight()
5690                }
5691            }
5692        },
5693        t.fn.position = function(s) {
5694            if (!s || !s.of)
5695                return d.apply(this, arguments);
5696            s = t.extend({}, s);
5697            var c, p, f, g, m, v, b = t(s.of), _ = t.position.getWithinInfo(s.within), y = t.position.getScrollInfo(_), w = (s.collision || "flip").split(" "), x = {};
5698            return v = n(b),
5699            b[0].preventDefault && (s.at = "left top"),
5700            p = v.width,
5701            f = v.height,
5702            g = v.offset,
5703            m = t.extend({}, g),
5704            t.each(["my", "at"], function() {
5705                var t, e, i = (s[this] || "").split(" ");
5706                1 === i.length && (i = a.test(i[0]) ? i.concat(["center"]) : l.test(i[0]) ? ["center"].concat(i) : ["center", "center"]),
5707                i[0] = a.test(i[0]) ? i[0] : "center",
5708                i[1] = l.test(i[1]) ? i[1] : "center",
5709                t = h.exec(i[0]),
5710                e = h.exec(i[1]),
5711                x[this] = [t ? t[0] : 0, e ? e[0] : 0],
5712                s[this] = [u.exec(i[0])[0], u.exec(i[1])[0]]
5713            }),
5714            1 === w.length && (w[1] = w[0]),
5715            "right" === s.at[0] ? m.left += p : "center" === s.at[0] && (m.left += p / 2),
5716            "bottom" === s.at[1] ? m.top += f : "center" === s.at[1] && (m.top += f / 2),
5717            c = e(x.at, p, f),
5718            m.left += c[0],
vendor: 22,825 bytes, lines 5719-6264
5719            m.top += c[1],
5720            this.each(function() {
5721                var n, a, l = t(this), h = l.outerWidth(), u = l.outerHeight(), d = i(this, "marginLeft"), v = i(this, "marginTop"), k = h + d + i(this, "marginRight") + y.width, C = u + v + i(this, "marginBottom") + y.height, D = t.extend({}, m), T = e(x.my, l.outerWidth(), l.outerHeight());
5722                "right" === s.my[0] ? D.left -= h : "center" === s.my[0] && (D.left -= h / 2),
5723                "bottom" === s.my[1] ? D.top -= u : "center" === s.my[1] && (D.top -= u / 2),
5724                D.left += T[0],
5725                D.top += T[1],
5726                n = {
5727                    marginLeft: d,
5728                    marginTop: v
5729                },
5730                t.each(["left", "top"], function(e, i) {
5731                    t.ui.position[w[e]] && t.ui.position[w[e]][i](D, {
5732                        targetWidth: p,
5733                        targetHeight: f,
5734                        elemWidth: h,
5735                        elemHeight: u,
5736                        collisionPosition: n,
5737                        collisionWidth: k,
5738                        collisionHeight: C,
5739                        offset: [c[0] + T[0], c[1] + T[1]],
5740                        my: s.my,
5741                        at: s.at,
5742                        within: _,
5743                        elem: l
5744                    })
5745                }),
5746                s.using && (a = function(t) {
5747                    var e = g.left - D.left
5748                      , i = e + p - h
5749                      , n = g.top - D.top
5750                      , a = n + f - u
5751                      , c = {
5752                        target: {
5753                            element: b,
5754                            left: g.left,
5755                            top: g.top,
5756                            width: p,
5757                            height: f
5758                        },
5759                        element: {
5760                            element: l,
5761                            left: D.left,
5762                            top: D.top,
5763                            width: h,
5764                            height: u
5765                        },
5766                        horizontal: i < 0 ? "left" : e > 0 ? "right" : "center",
5767                        vertical: a < 0 ? "top" : n > 0 ? "bottom" : "middle"
5768                    };
5769                    p < h && r(e + i) < p && (c.horizontal = "center"),
5770                    f < u && r(n + a) < f && (c.vertical = "middle"),
5771                    o(r(e), r(i)) > o(r(n), r(a)) ? c.important = "horizontal" : c.important = "vertical",
5772                    s.using.call(this, t, c)
5773                }
5774                ),
5775                l.offset(t.extend(D, {
5776                    using: a
5777                }))
5778            })
5779        }
5780        ,
5781        t.ui.position = {
5782            fit: {
5783                left: function(t, e) {
5784                    var i, n = e.within, s = n.isWindow ? n.scrollLeft : n.offset.left, r = n.width, a = t.left - e.collisionPosition.marginLeft, l = s - a, h = a + e.collisionWidth - r - s;
5785                    e.collisionWidth > r ? l > 0 && h <= 0 ? (i = t.left + l + e.collisionWidth - r - s,
5786                    t.left += l - i) : h > 0 && l <= 0 ? t.left = s : l > h ? t.left = s + r - e.collisionWidth : t.left = s : l > 0 ? t.left += l : h > 0 ? t.left -= h : t.left = o(t.left - a, t.left)
5787                },
5788                top: function(t, e) {
5789                    var i, n = e.within, s = n.isWindow ? n.scrollTop : n.offset.top, r = e.within.height, a = t.top - e.collisionPosition.marginTop, l = s - a, h = a + e.collisionHeight - r - s;
5790                    e.collisionHeight > r ? l > 0 && h <= 0 ? (i = t.top + l + e.collisionHeight - r - s,
5791                    t.top += l - i) : h > 0 && l <= 0 ? t.top = s : l > h ? t.top = s + r - e.collisionHeight : t.top = s : l > 0 ? t.top += l : h > 0 ? t.top -= h : t.top = o(t.top - a, t.top)
5792                }
5793            },
5794            flip: {
5795                left: function(t, e) {
5796                    var i, n, s = e.within, o = s.offset.left + s.scrollLeft, a = s.width, l = s.isWindow ? s.scrollLeft : s.offset.left, h = t.left - e.collisionPosition.marginLeft, u = h - l, c = h + e.collisionWidth - a - l, d = "left" === e.my[0] ? -e.elemWidth : "right" === e.my[0] ? e.elemWidth : 0, p = "left" === e.at[0] ? e.targetWidth : "right" === e.at[0] ? -e.targetWidth : 0, f = -2 * e.offset[0];
5797                    u < 0 ? (i = t.left + d + p + f + e.collisionWidth - a - o,
5798                    (i < 0 || i < r(u)) && (t.left += d + p + f)) : c > 0 && (n = t.left - e.collisionPosition.marginLeft + d + p + f - l,
5799                    (n > 0 || r(n) < c) && (t.left += d + p + f))
5800                },
5801                top: function(t, e) {
5802                    var i, n, s = e.within, o = s.offset.top + s.scrollTop, a = s.height, l = s.isWindow ? s.scrollTop : s.offset.top, h = t.top - e.collisionPosition.marginTop, u = h - l, c = h + e.collisionHeight - a - l, d = "top" === e.my[1], p = d ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0, f = "top" === e.at[1] ? e.targetHeight : "bottom" === e.at[1] ? -e.targetHeight : 0, g = -2 * e.offset[1];
5803                    u < 0 ? (n = t.top + p + f + g + e.collisionHeight - a - o,
5804                    (n < 0 || n < r(u)) && (t.top += p + f + g)) : c > 0 && (i = t.top - e.collisionPosition.marginTop + p + f + g - l,
5805                    (i > 0 || r(i) < c) && (t.top += p + f + g))
5806                }
5807            },
5808            flipfit: {
5809                left: function() {
5810                    t.ui.position.flip.left.apply(this, arguments),
5811                    t.ui.position.fit.left.apply(this, arguments)
5812                },
5813                top: function() {
5814                    t.ui.position.flip.top.apply(this, arguments),
5815                    t.ui.position.fit.top.apply(this, arguments)
5816                }
5817            }
5818        }
5819    }(),
5820    t.ui.position
5821}),
5822function(t) {
5823    "function" == typeof define && define.amd ? define(["jquery", "./version"], t) : t(jQuery)
5824}(function(t) {
5825    var e = 0
5826      , i = Array.prototype.slice;
5827    return t.cleanData = function(e) {
5828        return function(i) {
5829            var n, s, o;
5830            for (o = 0; null != (s = i[o]); o++)
5831                try {
5832                    n = t._data(s, "events"),
5833                    n && n.remove && t(s).triggerHandler("remove")
5834                } catch (t) {}
5835            e(i)
5836        }
5837    }(t.cleanData),
5838    t.widget = function(e, i, n) {
5839        var s, o, r, a = {}, l = e.split(".")[0];
5840        e = e.split(".")[1];
5841        var h = l + "-" + e;
5842        return n || (n = i,
5843        i = t.Widget),
5844        t.isArray(n) && (n = t.extend.apply(null, [{}].concat(n))),
5845        t.expr[":"][h.toLowerCase()] = function(e) {
5846            return !!t.data(e, h)
5847        }
5848        ,
5849        t[l] = t[l] || {},
5850        s = t[l][e],
5851        o = t[l][e] = function(t, e) {
5852            return this._createWidget ? void (arguments.length && this._createWidget(t, e)) : new o(t,e)
5853        }
5854        ,
5855        t.extend(o, s, {
5856            version: n.version,
5857            _proto: t.extend({}, n),
5858            _childConstructors: []
5859        }),
5860        r = new i,
5861        r.options = t.widget.extend({}, r.options),
5862        t.each(n, function(e, n) {
5863            return t.isFunction(n) ? void (a[e] = function() {
5864                function t() {
5865                    return i.prototype[e].apply(this, arguments)
5866                }
5867                function s(t) {
5868                    return i.prototype[e].apply(this, t)
5869                }
5870                return function() {
5871                    var e, i = this._super, o = this._superApply;
5872                    return this._super = t,
5873                    this._superApply = s,
5874                    e = n.apply(this, arguments),
5875                    this._super = i,
5876                    this._superApply = o,
5877                    e
5878                }
5879            }()) : void (a[e] = n)
5880        }),
5881        o.prototype = t.widget.extend(r, {
5882            widgetEventPrefix: s ? r.widgetEventPrefix || e : e
5883        }, a, {
5884            constructor: o,
5885            namespace: l,
5886            widgetName: e,
5887            widgetFullName: h
5888        }),
5889        s ? (t.each(s._childConstructors, function(e, i) {
5890            var n = i.prototype;
5891            t.widget(n.namespace + "." + n.widgetName, o, i._proto)
5892        }),
5893        delete s._childConstructors) : i._childConstructors.push(o),
5894        t.widget.bridge(e, o),
5895        o
5896    }
5897    ,
5898    t.widget.extend = function(e) {
5899        for (var n, s, o = i.call(arguments, 1), r = 0, a = o.length; r < a; r++)
5900            for (n in o[r])
5901                s = o[r][n],
5902                o[r].hasOwnProperty(n) && void 0 !== s && (t.isPlainObject(s) ? e[n] = t.isPlainObject(e[n]) ? t.widget.extend({}, e[n], s) : t.widget.extend({}, s) : e[n] = s);
5903        return e
5904    }
5905    ,
5906    t.widget.bridge = function(e, n) {
5907        var s = n.prototype.widgetFullName || e;
5908        t.fn[e] = function(o) {
5909            var r = "string" == typeof o
5910              , a = i.call(arguments, 1)
5911              , l = this;
5912            return r ? this.length || "instance" !== o ? this.each(function() {
5913                var i, n = t.data(this, s);
5914                return "instance" === o ? (l = n,
5915                !1) : n ? t.isFunction(n[o]) && "_" !== o.charAt(0) ? (i = n[o].apply(n, a),
5916                i !== n && void 0 !== i ? (l = i && i.jquery ? l.pushStack(i.get()) : i,
5917                !1) : void 0) : t.error("no such method '" + o + "' for " + e + " widget instance") : t.error("cannot call methods on " + e + " prior to initialization; attempted to call method '" + o + "'")
5918            }) : l = void 0 : (a.length && (o = t.widget.extend.apply(null, [o].concat(a))),
5919            this.each(function() {
5920                var e = t.data(this, s);
5921                e ? (e.option(o || {}),
5922                e._init && e._init()) : t.data(this, s, new n(o,this))
5923            })),
5924            l
5925        }
5926    }
5927    ,
5928    t.Widget = function() {}
5929    ,
5930    t.Widget._childConstructors = [],
5931    t.Widget.prototype = {
5932        widgetName: "widget",
5933        widgetEventPrefix: "",
5934        defaultElement: "<div>",
5935        options: {
5936            classes: {},
5937            disabled: !1,
5938            create: null
5939        },
5940        _createWidget: function(i, n) {
5941            n = t(n || this.defaultElement || this)[0],
5942            this.element = t(n),
5943            this.uuid = e++,
5944            this.eventNamespace = "." + this.widgetName + this.uuid,
5945            this.bindings = t(),
5946            this.hoverable = t(),
5947            this.focusable = t(),
5948            this.classesElementLookup = {},
5949            n !== this && (t.data(n, this.widgetFullName, this),
5950            this._on(!0, this.element, {
5951                remove: function(t) {
5952                    t.target === n && this.destroy()
5953                }
5954            }),
5955            this.document = t(n.style ? n.ownerDocument : n.document || n),
5956            this.window = t(this.document[0].defaultView || this.document[0].parentWindow)),
5957            this.options = t.widget.extend({}, this.options, this._getCreateOptions(), i),
5958            this._create(),
5959            this.options.disabled && this._setOptionDisabled(this.options.disabled),
5960            this._trigger("create", null, this._getCreateEventData()),
5961            this._init()
5962        },
5963        _getCreateOptions: function() {
5964            return {}
5965        },
5966        _getCreateEventData: t.noop,
5967        _create: t.noop,
5968        _init: t.noop,
5969        destroy: function() {
5970            var e = this;
5971            this._destroy(),
5972            t.each(this.classesElementLookup, function(t, i) {
5973                e._removeClass(i, t)
5974            }),
5975            this.element.off(this.eventNamespace).removeData(this.widgetFullName),
5976            this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),
5977            this.bindings.off(this.eventNamespace)
5978        },
5979        _destroy: t.noop,
5980        widget: function() {
5981            return this.element
5982        },
5983        option: function(e, i) {
5984            var n, s, o, r = e;
5985            if (0 === arguments.length)
5986                return t.widget.extend({}, this.options);
5987            if ("string" == typeof e)
5988                if (r = {},
5989                n = e.split("."),
5990                e = n.shift(),
5991                n.length) {
5992                    for (s = r[e] = t.widget.extend({}, this.options[e]),
5993                    o = 0; o < n.length - 1; o++)
5994                        s[n[o]] = s[n[o]] || {},
5995                        s = s[n[o]];
5996                    if (e = n.pop(),
5997                    1 === arguments.length)
5998                        return void 0 === s[e] ? null : s[e];
5999                    s[e] = i
6000                } else {
6001                    if (1 === arguments.length)
6002                        return void 0 === this.options[e] ? null : this.options[e];
6003                    r[e] = i
6004                }
6005            return this._setOptions(r),
6006            this
6007        },
6008        _setOptions: function(t) {
6009            var e;
6010            for (e in t)
6011                this._setOption(e, t[e]);
6012            return this
6013        },
6014        _setOption: function(t, e) {
6015            return "classes" === t && this._setOptionClasses(e),
6016            this.options[t] = e,
6017            "disabled" === t && this._setOptionDisabled(e),
6018            this
6019        },
6020        _setOptionClasses: function(e) {
6021            var i, n, s;
6022            for (i in e)
6023                s = this.classesElementLookup[i],
6024                e[i] !== this.options.classes[i] && s && s.length && (n = t(s.get()),
6025                this._removeClass(s, i),
6026                n.addClass(this._classes({
6027                    element: n,
6028                    keys: i,
6029                    classes: e,
6030                    add: !0
6031                })))
6032        },
6033        _setOptionDisabled: function(t) {
6034            this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!t),
6035            t && (this._removeClass(this.hoverable, null, "ui-state-hover"),
6036            this._removeClass(this.focusable, null, "ui-state-focus"))
6037        },
6038        enable: function() {
6039            return this._setOptions({
6040                disabled: !1
6041            })
6042        },
6043        disable: function() {
6044            return this._setOptions({
6045                disabled: !0
6046            })
6047        },
6048        _classes: function(e) {
6049            function i(i, o) {
6050                var r, a;
6051                for (a = 0; a < i.length; a++)
6052                    r = s.classesElementLookup[i[a]] || t(),
6053                    r = t(e.add ? t.unique(r.get().concat(e.element.get())) : r.not(e.element).get()),
6054                    s.classesElementLookup[i[a]] = r,
6055                    n.push(i[a]),
6056                    o && e.classes[i[a]] && n.push(e.classes[i[a]])
6057            }
6058            var n = []
6059              , s = this;
6060            return e = t.extend({
6061                element: this.element,
6062                classes: this.options.classes || {}
6063            }, e),
6064            this._on(e.element, {
6065                remove: "_untrackClassesElement"
6066            }),
6067            e.keys && i(e.keys.match(/\S+/g) || [], !0),
6068            e.extra && i(e.extra.match(/\S+/g) || []),
6069            n.join(" ")
6070        },
6071        _untrackClassesElement: function(e) {
6072            var i = this;
6073            t.each(i.classesElementLookup, function(n, s) {
6074                t.inArray(e.target, s) !== -1 && (i.classesElementLookup[n] = t(s.not(e.target).get()))
6075            })
6076        },
6077        _removeClass: function(t, e, i) {
6078            return this._toggleClass(t, e, i, !1)
6079        },
6080        _addClass: function(t, e, i) {
6081            return this._toggleClass(t, e, i, !0)
6082        },
6083        _toggleClass: function(t, e, i, n) {
6084            n = "boolean" == typeof n ? n : i;
6085            var s = "string" == typeof t || null === t
6086              , o = {
6087                extra: s ? e : i,
6088                keys: s ? t : e,
6089                element: s ? this.element : t,
6090                add: n
6091            };
6092            return o.element.toggleClass(this._classes(o), n),
6093            this
6094        },
6095        _on: function(e, i, n) {
6096            var s, o = this;
6097            "boolean" != typeof e && (n = i,
6098            i = e,
6099            e = !1),
6100            n ? (i = s = t(i),
6101            this.bindings = this.bindings.add(i)) : (n = i,
6102            i = this.element,
6103            s = this.widget()),
6104            t.each(n, function(n, r) {
6105                function a() {
6106                    if (e || o.options.disabled !== !0 && !t(this).hasClass("ui-state-disabled"))
6107                        return ("string" == typeof r ? o[r] : r).apply(o, arguments)
6108                }
6109                "string" != typeof r && (a.guid = r.guid = r.guid || a.guid || t.guid++);
6110                var l = n.match(/^([\w:-]*)\s*(.*)$/)
6111                  , h = l[1] + o.eventNamespace
6112                  , u = l[2];
6113                u ? s.on(h, u, a) : i.on(h, a)
6114            })
6115        },
6116        _off: function(e, i) {
6117            i = (i || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace,
6118            e.off(i).off(i),
6119            this.bindings = t(this.bindings.not(e).get()),
6120            this.focusable = t(this.focusable.not(e).get()),
6121            this.hoverable = t(this.hoverable.not(e).get())
6122        },
6123        _delay: function(t, e) {
6124            function i() {
6125                return ("string" == typeof t ? n[t] : t).apply(n, arguments)
6126            }
6127            var n = this;
6128            return setTimeout(i, e || 0)
6129        },
6130        _hoverable: function(e) {
6131            this.hoverable = this.hoverable.add(e),
6132            this._on(e, {
6133                mouseenter: function(e) {
6134                    this._addClass(t(e.currentTarget), null, "ui-state-hover")
6135                },
6136                mouseleave: function(e) {
6137                    this._removeClass(t(e.currentTarget), null, "ui-state-hover")
6138                }
6139            })
6140        },
6141        _focusable: function(e) {
6142            this.focusable = this.focusable.add(e),
6143            this._on(e, {
6144                focusin: function(e) {
6145                    this._addClass(t(e.currentTarget), null, "ui-state-focus")
6146                },
6147                focusout: function(e) {
6148                    this._removeClass(t(e.currentTarget), null, "ui-state-focus")
6149                }
6150            })
6151        },
6152        _trigger: function(e, i, n) {
6153            var s, o, r = this.options[e];
6154            if (n = n || {},
6155            i = t.Event(i),
6156            i.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(),
6157            i.target = this.element[0],
6158            o = i.originalEvent)
6159                for (s in o)
6160                    s in i || (i[s] = o[s]);
6161            return this.element.trigger(i, n),
6162            !(t.isFunction(r) && r.apply(this.element[0], [i].concat(n)) === !1 || i.isDefaultPrevented())
6163        }
6164    },
6165    t.each({
6166        show: "fadeIn",
6167        hide: "fadeOut"
6168    }, function(e, i) {
6169        t.Widget.prototype["_" + e] = function(n, s, o) {
6170            "string" == typeof s && (s = {
6171                effect: s
6172            });
6173            var r, a = s ? s === !0 || "number" == typeof s ? i : s.effect || i : e;
6174            s = s || {},
6175            "number" == typeof s && (s = {
6176                duration: s
6177            }),
6178            r = !t.isEmptyObject(s),
6179            s.complete = o,
6180            s.delay && n.delay(s.delay),
6181            r && t.effects && t.effects.effect[a] ? n[e](s) : a !== e && n[a] ? n[a](s.duration, s.easing, o) : n.queue(function(i) {
6182                t(this)[e](),
6183                o && o.call(n[0]),
6184                i()
6185            })
6186        }
6187    }),
6188    t.widget
6189}),
6190function(t) {
6191    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6192}(function(t) {
6193    return t.effects.define("blind", "hide", function(e, i) {
6194        var n = {
6195            up: ["bottom", "top"],
6196            vertical: ["bottom", "top"],
6197            down: ["top", "bottom"],
6198            left: ["right", "left"],
6199            horizontal: ["right", "left"],
6200            right: ["left", "right"]
6201        }
6202          , s = t(this)
6203          , o = e.direction || "up"
6204          , r = s.cssClip()
6205          , a = {
6206            clip: t.extend({}, r)
6207        }
6208          , l = t.effects.createPlaceholder(s);
6209        a.clip[n[o][0]] = a.clip[n[o][1]],
6210        "show" === e.mode && (s.cssClip(a.clip),
6211        l && l.css(t.effects.clipToBox(a)),
6212        a.clip = r),
6213        l && l.animate(t.effects.clipToBox(a), e.duration, e.easing),
6214        s.animate(a, {
6215            queue: !1,
6216            duration: e.duration,
6217            easing: e.easing,
6218            complete: i
6219        })
6220    })
6221}),
6222function(t) {
6223    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6224}(function(t) {
6225    return t.effects.define("bounce", function(e, i) {
6226        var n, s, o, r = t(this), a = e.mode, l = "hide" === a, h = "show" === a, u = e.direction || "up", c = e.distance, d = e.times || 5, p = 2 * d + (h || l ? 1 : 0), f = e.duration / p, g = e.easing, m = "up" === u || "down" === u ? "top" : "left", v = "up" === u || "left" === u, b = 0, _ = r.queue().length;
6227        for (t.effects.createPlaceholder(r),
6228        o = r.css(m),
6229        c || (c = r["top" === m ? "outerHeight" : "outerWidth"]() / 3),
6230        h && (s = {
6231            opacity: 1
6232        },
6233        s[m] = o,
6234        r.css("opacity", 0).css(m, v ? 2 * -c : 2 * c).animate(s, f, g)),
6235        l && (c /= Math.pow(2, d - 1)),
6236        s = {},
6237        s[m] = o; b < d; b++)
6238            n = {},
6239            n[m] = (v ? "-=" : "+=") + c,
6240            r.animate(n, f, g).animate(s, f, g),
6241            c = l ? 2 * c : c / 2;
6242        l && (n = {
6243            opacity: 0
6244        },
6245        n[m] = (v ? "-=" : "+=") + c,
6246        r.animate(n, f, g)),
6247        r.queue(i),
6248        t.effects.unshift(r, _, p + 1)
6249    })
6250}),
6251function(t) {
6252    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6253}(function(t) {
6254    return t.effects.define("clip", "hide", function(e, i) {
6255        var n, s = {}, o = t(this), r = e.direction || "vertical", a = "both" === r, l = a || "horizontal" === r, h = a || "vertical" === r;
6256        n = o.cssClip(),
6257        s.clip = {
6258            top: h ? (n.bottom - n.top) / 2 : n.top,
6259            right: l ? (n.right - n.left) / 2 : n.right,
6260            bottom: h ? (n.bottom - n.top) / 2 : n.bottom,
6261            left: l ? (n.right - n.left) / 2 : n.left
6262        },
6263        t.effects.createPlaceholder(o),
6264        "show" === e.mode && (o.cssClip(s.clip),
vendor: 13,886 bytes, lines 6265-6633
6265        s.clip = n),
6266        o.animate(s, {
6267            queue: !1,
6268            duration: e.duration,
6269            easing: e.easing,
6270            complete: i
6271        })
6272    })
6273}),
6274function(t) {
6275    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6276}(function(t) {
6277    return t.effects.define("drop", "hide", function(e, i) {
6278        var n, s = t(this), o = e.mode, r = "show" === o, a = e.direction || "left", l = "up" === a || "down" === a ? "top" : "left", h = "up" === a || "left" === a ? "-=" : "+=", u = "+=" === h ? "-=" : "+=", c = {
6279            opacity: 0
6280        };
6281        t.effects.createPlaceholder(s),
6282        n = e.distance || s["top" === l ? "outerHeight" : "outerWidth"](!0) / 2,
6283        c[l] = h + n,
6284        r && (s.css(c),
6285        c[l] = u + n,
6286        c.opacity = 1),
6287        s.animate(c, {
6288            queue: !1,
6289            duration: e.duration,
6290            easing: e.easing,
6291            complete: i
6292        })
6293    })
6294}),
6295function(t) {
6296    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6297}(function(t) {
6298    return t.effects.define("explode", "hide", function(e, i) {
6299        function n() {
6300            _.push(this),
6301            _.length === c * d && s()
6302        }
6303        function s() {
6304            p.css({
6305                visibility: "visible"
6306            }),
6307            t(_).remove(),
6308            i()
6309        }
6310        var o, r, a, l, h, u, c = e.pieces ? Math.round(Math.sqrt(e.pieces)) : 3, d = c, p = t(this), f = e.mode, g = "show" === f, m = p.show().css("visibility", "hidden").offset(), v = Math.ceil(p.outerWidth() / d), b = Math.ceil(p.outerHeight() / c), _ = [];
6311        for (o = 0; o < c; o++)
6312            for (l = m.top + o * b,
6313            u = o - (c - 1) / 2,
6314            r = 0; r < d; r++)
6315                a = m.left + r * v,
6316                h = r - (d - 1) / 2,
6317                p.clone().appendTo("body").wrap("<div></div>").css({
6318                    position: "absolute",
6319                    visibility: "visible",
6320                    left: -r * v,
6321                    top: -o * b
6322                }).parent().addClass("ui-effects-explode").css({
6323                    position: "absolute",
6324                    overflow: "hidden",
6325                    width: v,
6326                    height: b,
6327                    left: a + (g ? h * v : 0),
6328                    top: l + (g ? u * b : 0),
6329                    opacity: g ? 0 : 1
6330                }).animate({
6331                    left: a + (g ? 0 : h * v),
6332                    top: l + (g ? 0 : u * b),
6333                    opacity: g ? 1 : 0
6334                }, e.duration || 500, e.easing, n)
6335    })
6336}),
6337function(t) {
6338    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6339}(function(t) {
6340    return t.effects.define("fade", "toggle", function(e, i) {
6341        var n = "show" === e.mode;
6342        t(this).css("opacity", n ? 0 : 1).animate({
6343            opacity: n ? 1 : 0
6344        }, {
6345            queue: !1,
6346            duration: e.duration,
6347            easing: e.easing,
6348            complete: i
6349        })
6350    })
6351}),
6352function(t) {
6353    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6354}(function(t) {
6355    return t.effects.define("fold", "hide", function(e, i) {
6356        var n = t(this)
6357          , s = e.mode
6358          , o = "show" === s
6359          , r = "hide" === s
6360          , a = e.size || 15
6361          , l = /([0-9]+)%/.exec(a)
6362          , h = !!e.horizFirst
6363          , u = h ? ["right", "bottom"] : ["bottom", "right"]
6364          , c = e.duration / 2
6365          , d = t.effects.createPlaceholder(n)
6366          , p = n.cssClip()
6367          , f = {
6368            clip: t.extend({}, p)
6369        }
6370          , g = {
6371            clip: t.extend({}, p)
6372        }
6373          , m = [p[u[0]], p[u[1]]]
6374          , v = n.queue().length;
6375        l && (a = parseInt(l[1], 10) / 100 * m[r ? 0 : 1]),
6376        f.clip[u[0]] = a,
6377        g.clip[u[0]] = a,
6378        g.clip[u[1]] = 0,
6379        o && (n.cssClip(g.clip),
6380        d && d.css(t.effects.clipToBox(g)),
6381        g.clip = p),
6382        n.queue(function(i) {
6383            d && d.animate(t.effects.clipToBox(f), c, e.easing).animate(t.effects.clipToBox(g), c, e.easing),
6384            i()
6385        }).animate(f, c, e.easing).animate(g, c, e.easing).queue(i),
6386        t.effects.unshift(n, v, 4)
6387    })
6388}),
6389function(t) {
6390    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6391}(function(t) {
6392    return t.effects.define("highlight", "show", function(e, i) {
6393        var n = t(this)
6394          , s = {
6395            backgroundColor: n.css("backgroundColor")
6396        };
6397        "hide" === e.mode && (s.opacity = 0),
6398        t.effects.saveStyle(n),
6399        n.css({
6400            backgroundImage: "none",
6401            backgroundColor: e.color || "#ffff99"
6402        }).animate(s, {
6403            queue: !1,
6404            duration: e.duration,
6405            easing: e.easing,
6406            complete: i
6407        })
6408    })
6409}),
6410function(t) {
6411    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6412}(function(t) {
6413    return t.effects.define("size", function(e, i) {
6414        var n, s, o, r = t(this), a = ["fontSize"], l = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], h = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], u = e.mode, c = "effect" !== u, d = e.scale || "both", p = e.origin || ["middle", "center"], f = r.css("position"), g = r.position(), m = t.effects.scaledDimensions(r), v = e.from || m, b = e.to || t.effects.scaledDimensions(r, 0);
6415        t.effects.createPlaceholder(r),
6416        "show" === u && (o = v,
6417        v = b,
6418        b = o),
6419        s = {
6420            from: {
6421                y: v.height / m.height,
6422                x: v.width / m.width
6423            },
6424            to: {
6425                y: b.height / m.height,
6426                x: b.width / m.width
6427            }
6428        },
6429        "box" !== d && "both" !== d || (s.from.y !== s.to.y && (v = t.effects.setTransition(r, l, s.from.y, v),
6430        b = t.effects.setTransition(r, l, s.to.y, b)),
6431        s.from.x !== s.to.x && (v = t.effects.setTransition(r, h, s.from.x, v),
6432        b = t.effects.setTransition(r, h, s.to.x, b))),
6433        "content" !== d && "both" !== d || s.from.y !== s.to.y && (v = t.effects.setTransition(r, a, s.from.y, v),
6434        b = t.effects.setTransition(r, a, s.to.y, b)),
6435        p && (n = t.effects.getBaseline(p, m),
6436        v.top = (m.outerHeight - v.outerHeight) * n.y + g.top,
6437        v.left = (m.outerWidth - v.outerWidth) * n.x + g.left,
6438        b.top = (m.outerHeight - b.outerHeight) * n.y + g.top,
6439        b.left = (m.outerWidth - b.outerWidth) * n.x + g.left),
6440        r.css(v),
6441        "content" !== d && "both" !== d || (l = l.concat(["marginTop", "marginBottom"]).concat(a),
6442        h = h.concat(["marginLeft", "marginRight"]),
6443        r.find("*[width]").each(function() {
6444            var i = t(this)
6445              , n = t.effects.scaledDimensions(i)
6446              , o = {
6447                height: n.height * s.from.y,
6448                width: n.width * s.from.x,
6449                outerHeight: n.outerHeight * s.from.y,
6450                outerWidth: n.outerWidth * s.from.x
6451            }
6452              , r = {
6453                height: n.height * s.to.y,
6454                width: n.width * s.to.x,
6455                outerHeight: n.height * s.to.y,
6456                outerWidth: n.width * s.to.x
6457            };
6458            s.from.y !== s.to.y && (o = t.effects.setTransition(i, l, s.from.y, o),
6459            r = t.effects.setTransition(i, l, s.to.y, r)),
6460            s.from.x !== s.to.x && (o = t.effects.setTransition(i, h, s.from.x, o),
6461            r = t.effects.setTransition(i, h, s.to.x, r)),
6462            c && t.effects.saveStyle(i),
6463            i.css(o),
6464            i.animate(r, e.duration, e.easing, function() {
6465                c && t.effects.restoreStyle(i)
6466            })
6467        })),
6468        r.animate(b, {
6469            queue: !1,
6470            duration: e.duration,
6471            easing: e.easing,
6472            complete: function() {
6473                var e = r.offset();
6474                0 === b.opacity && r.css("opacity", v.opacity),
6475                c || (r.css("position", "static" === f ? "relative" : f).offset(e),
6476                t.effects.saveStyle(r)),
6477                i()
6478            }
6479        })
6480    })
6481}),
6482function(t) {
6483    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect", "./effect-size"], t) : t(jQuery)
6484}(function(t) {
6485    return t.effects.define("scale", function(e, i) {
6486        var n = t(this)
6487          , s = e.mode
6488          , o = parseInt(e.percent, 10) || (0 === parseInt(e.percent, 10) ? 0 : "effect" !== s ? 0 : 100)
6489          , r = t.extend(!0, {
6490            from: t.effects.scaledDimensions(n),
6491            to: t.effects.scaledDimensions(n, o, e.direction || "both"),
6492            origin: e.origin || ["middle", "center"]
6493        }, e);
6494        e.fade && (r.from.opacity = 1,
6495        r.to.opacity = 0),
6496        t.effects.effect.size.call(this, r, i)
6497    })
6498}),
6499function(t) {
6500    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect", "./effect-scale"], t) : t(jQuery)
6501}(function(t) {
6502    return t.effects.define("puff", "hide", function(e, i) {
6503        var n = t.extend(!0, {}, e, {
6504            fade: !0,
6505            percent: parseInt(e.percent, 10) || 150
6506        });
6507        t.effects.effect.scale.call(this, n, i)
6508    })
6509}),
6510function(t) {
6511    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6512}(function(t) {
6513    return t.effects.define("pulsate", "show", function(e, i) {
6514        var n = t(this)
6515          , s = e.mode
6516          , o = "show" === s
6517          , r = "hide" === s
6518          , a = o || r
6519          , l = 2 * (e.times || 5) + (a ? 1 : 0)
6520          , h = e.duration / l
6521          , u = 0
6522          , c = 1
6523          , d = n.queue().length;
6524        for (!o && n.is(":visible") || (n.css("opacity", 0).show(),
6525        u = 1); c < l; c++)
6526            n.animate({
6527                opacity: u
6528            }, h, e.easing),
6529            u = 1 - u;
6530        n.animate({
6531            opacity: u
6532        }, h, e.easing),
6533        n.queue(i),
6534        t.effects.unshift(n, d, l + 1)
6535    })
6536}),
6537function(t) {
6538    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6539}(function(t) {
6540    return t.effects.define("shake", function(e, i) {
6541        var n = 1
6542          , s = t(this)
6543          , o = e.direction || "left"
6544          , r = e.distance || 20
6545          , a = e.times || 3
6546          , l = 2 * a + 1
6547          , h = Math.round(e.duration / l)
6548          , u = "up" === o || "down" === o ? "top" : "left"
6549          , c = "up" === o || "left" === o
6550          , d = {}
6551          , p = {}
6552          , f = {}
6553          , g = s.queue().length;
6554        for (t.effects.createPlaceholder(s),
6555        d[u] = (c ? "-=" : "+=") + r,
6556        p[u] = (c ? "+=" : "-=") + 2 * r,
6557        f[u] = (c ? "-=" : "+=") + 2 * r,
6558        s.animate(d, h, e.easing); n < a; n++)
6559            s.animate(p, h, e.easing).animate(f, h, e.easing);
6560        s.animate(p, h, e.easing).animate(d, h / 2, e.easing).queue(i),
6561        t.effects.unshift(s, g, l + 1)
6562    })
6563}),
6564function(t) {
6565    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6566}(function(t) {
6567    return t.effects.define("slide", "show", function(e, i) {
6568        var n, s, o = t(this), r = {
6569            up: ["bottom", "top"],
6570            down: ["top", "bottom"],
6571            left: ["right", "left"],
6572            right: ["left", "right"]
6573        }, a = e.mode, l = e.direction || "left", h = "up" === l || "down" === l ? "top" : "left", u = "up" === l || "left" === l, c = e.distance || o["top" === h ? "outerHeight" : "outerWidth"](!0), d = {};
6574        t.effects.createPlaceholder(o),
6575        n = o.cssClip(),
6576        s = o.position()[h],
6577        d[h] = (u ? -1 : 1) * c + s,
6578        d.clip = o.cssClip(),
6579        d.clip[r[l][1]] = d.clip[r[l][0]],
6580        "show" === a && (o.cssClip(d.clip),
6581        o.css(h, d[h]),
6582        d.clip = n,
6583        d[h] = s),
6584        o.animate(d, {
6585            queue: !1,
6586            duration: e.duration,
6587            easing: e.easing,
6588            complete: i
6589        })
6590    })
6591}),
6592function(t) {
6593    "function" == typeof define && define.amd ? define(["jquery", "../version", "../effect"], t) : t(jQuery)
6594}(function(t) {
6595    var e;
6596    return t.uiBackCompat !== !1 && (e = t.effects.define("transfer", function(e, i) {
6597        t(this).transfer(e, i)
6598    })),
6599    e
6600}),
6601function(t) {
6602    "function" == typeof define && define.amd ? define(["jquery", "../version", "../keycode", "../unique-id", "../widget"], t) : t(jQuery)
6603}(function(t) {
6604    return t.widget("ui.accordion", {
6605        version: "1.12.1",
6606        options: {
6607            active: 0,
6608            animate: {},
6609            classes: {
6610                "ui-accordion-header": "ui-corner-top",
6611                "ui-accordion-header-collapsed": "ui-corner-all",
6612                "ui-accordion-content": "ui-corner-bottom"
6613            },
6614            collapsible: !1,
6615            event: "click",
6616            header: "> li > :first-child, > :not(li):even",
6617            heightStyle: "auto",
6618            icons: {
6619                activeHeader: "ui-icon-triangle-1-s",
6620                header: "ui-icon-triangle-1-e"
6621            },
6622            activate: null,
6623            beforeActivate: null
6624        },
6625        hideProps: {
6626            borderTopWidth: "hide",
6627            borderBottomWidth: "hide",
6628            paddingTop: "hide",
6629            paddingBottom: "hide",
6630            height: "hide"
6631        },
6632        showProps: {
6633            borderTopWidth: "show",
vendor: 8,956 bytes, lines 6634-6830
6634            borderBottomWidth: "show",
6635            paddingTop: "show",
6636            paddingBottom: "show",
6637            height: "show"
6638        },
6639        _create: function() {
6640            var e = this.options;
6641            this.prevShow = this.prevHide = t(),
6642            this._addClass("ui-accordion", "ui-widget ui-helper-reset"),
6643            this.element.attr("role", "tablist"),
6644            e.collapsible || e.active !== !1 && null != e.active || (e.active = 0),
6645            this._processPanels(),
6646            e.active < 0 && (e.active += this.headers.length),
6647            this._refresh()
6648        },
6649        _getCreateEventData: function() {
6650            return {
6651                header: this.active,
6652                panel: this.active.length ? this.active.next() : t()
6653            }
6654        },
6655        _createIcons: function() {
6656            var e, i, n = this.options.icons;
6657            n && (e = t("<span>"),
6658            this._addClass(e, "ui-accordion-header-icon", "ui-icon " + n.header),
6659            e.prependTo(this.headers),
6660            i = this.active.children(".ui-accordion-header-icon"),
6661            this._removeClass(i, n.header)._addClass(i, null, n.activeHeader)._addClass(this.headers, "ui-accordion-icons"))
6662        },
6663        _destroyIcons: function() {
6664            this._removeClass(this.headers, "ui-accordion-icons"),
6665            this.headers.children(".ui-accordion-header-icon").remove()
6666        },
6667        _destroy: function() {
6668            var t;
6669            this.element.removeAttr("role"),
6670            this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),
6671            this._destroyIcons(),
6672            t = this.headers.next().css("display", "").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),
6673            "content" !== this.options.heightStyle && t.css("height", "")
6674        },
6675        _setOption: function(t, e) {
6676            return "active" === t ? void this._activate(e) : ("event" === t && (this.options.event && this._off(this.headers, this.options.event),
6677            this._setupEvents(e)),
6678            this._super(t, e),
6679            "collapsible" !== t || e || this.options.active !== !1 || this._activate(0),
6680            void ("icons" === t && (this._destroyIcons(),
6681            e && this._createIcons())))
6682        },
6683        _setOptionDisabled: function(t) {
6684            this._super(t),
6685            this.element.attr("aria-disabled", t),
6686            this._toggleClass(null, "ui-state-disabled", !!t),
6687            this._toggleClass(this.headers.add(this.headers.next()), null, "ui-state-disabled", !!t)
6688        },
6689        _keydown: function(e) {
6690            if (!e.altKey && !e.ctrlKey) {
6691                var i = t.ui.keyCode
6692                  , n = this.headers.length
6693                  , s = this.headers.index(e.target)
6694                  , o = !1;
6695                switch (e.keyCode) {
6696                case i.RIGHT:
6697                case i.DOWN:
6698                    o = this.headers[(s + 1) % n];
6699                    break;
6700                case i.LEFT:
6701                case i.UP:
6702                    o = this.headers[(s - 1 + n) % n];
6703                    break;
6704                case i.SPACE:
6705                case i.ENTER:
6706                    this._eventHandler(e);
6707                    break;
6708                case i.HOME:
6709                    o = this.headers[0];
6710                    break;
6711                case i.END:
6712                    o = this.headers[n - 1]
6713                }
6714                o && (t(e.target).attr("tabIndex", -1),
6715                t(o).attr("tabIndex", 0),
6716                t(o).trigger("focus"),
6717                e.preventDefault())
6718            }
6719        },
6720        _panelKeyDown: function(e) {
6721            e.keyCode === t.ui.keyCode.UP && e.ctrlKey && t(e.currentTarget).prev().trigger("focus")
6722        },
6723        refresh: function() {
6724            var e = this.options;
6725            this._processPanels(),
6726            e.active === !1 && e.collapsible === !0 || !this.headers.length ? (e.active = !1,
6727            this.active = t()) : e.active === !1 ? this._activate(0) : this.active.length && !t.contains(this.element[0], this.active[0]) ? this.headers.length === this.headers.find(".ui-state-disabled").length ? (e.active = !1,
6728            this.active = t()) : this._activate(Math.max(0, e.active - 1)) : e.active = this.headers.index(this.active),
6729            this._destroyIcons(),
6730            this._refresh()
6731        },
6732        _processPanels: function() {
6733            var t = this.headers
6734              , e = this.panels;
6735            this.headers = this.element.find(this.options.header),
6736            this._addClass(this.headers, "ui-accordion-header ui-accordion-header-collapsed", "ui-state-default"),
6737            this.panels = this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),
6738            this._addClass(this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content"),
6739            e && (this._off(t.not(this.headers)),
6740            this._off(e.not(this.panels)))
6741        },
6742        _refresh: function() {
6743            var e, i = this.options, n = i.heightStyle, s = this.element.parent();
6744            this.active = this._findActive(i.active),
6745            this._addClass(this.active, "ui-accordion-header-active", "ui-state-active")._removeClass(this.active, "ui-accordion-header-collapsed"),
6746            this._addClass(this.active.next(), "ui-accordion-content-active"),
6747            this.active.next().show(),
6748            this.headers.attr("role", "tab").each(function() {
6749                var e = t(this)
6750                  , i = e.uniqueId().attr("id")
6751                  , n = e.next()
6752                  , s = n.uniqueId().attr("id");
6753                e.attr("aria-controls", s),
6754                n.attr("aria-labelledby", i)
6755            }).next().attr("role", "tabpanel"),
6756            this.headers.not(this.active).attr({
6757                "aria-selected": "false",
6758                "aria-expanded": "false",
6759                tabIndex: -1
6760            }).next().attr({
6761                "aria-hidden": "true"
6762            }).hide(),
6763            this.active.length ? this.active.attr({
6764                "aria-selected": "true",
6765                "aria-expanded": "true",
6766                tabIndex: 0
6767            }).next().attr({
6768                "aria-hidden": "false"
6769            }) : this.headers.eq(0).attr("tabIndex", 0),
6770            this._createIcons(),
6771            this._setupEvents(i.event),
6772            "fill" === n ? (e = s.height(),
6773            this.element.siblings(":visible").each(function() {
6774                var i = t(this)
6775                  , n = i.css("position");
6776                "absolute" !== n && "fixed" !== n && (e -= i.outerHeight(!0))
6777            }),
6778            this.headers.each(function() {
6779                e -= t(this).outerHeight(!0)
6780            }),
6781            this.headers.next().each(function() {
6782                t(this).height(Math.max(0, e - t(this).innerHeight() + t(this).height()))
6783            }).css("overflow", "auto")) : "auto" === n && (e = 0,
6784            this.headers.next().each(function() {
6785                var i = t(this).is(":visible");
6786                i || t(this).show(),
6787                e = Math.max(e, t(this).css("height", "").height()),
6788                i || t(this).hide()
6789            }).height(e))
6790        },
6791        _activate: function(e) {
6792            var i = this._findActive(e)[0];
6793            i !== this.active[0] && (i = i || this.active[0],
6794            this._eventHandler({
6795                target: i,
6796                currentTarget: i,
6797                preventDefault: t.noop
6798            }))
6799        },
6800        _findActive: function(e) {
6801            return "number" == typeof e ? this.headers.eq(e) : t()
6802        },
6803        _setupEvents: function(e) {
6804            var i = {
6805                keydown: "_keydown"
6806            };
6807            e && t.each(e.split(" "), function(t, e) {
6808                i[e] = "_eventHandler"
6809            }),
6810            this._off(this.headers.add(this.headers.next())),
6811            this._on(this.headers, i),
6812            this._on(this.headers.next(), {
6813                keydown: "_panelKeyDown"
6814            }),
6815            this._hoverable(this.headers),
6816            this._focusable(this.headers)
6817        },
6818        _eventHandler: function(e) {
6819            var i, n, s = this.options, o = this.active, r = t(e.currentTarget), a = r[0] === o[0], l = a && s.collapsible, h = l ? t() : r.next(), u = o.next(), c = {
6820                oldHeader: o,
6821                oldPanel: u,
6822                newHeader: l ? t() : r,
6823                newPanel: h
6824            };
6825            e.preventDefault(),
6826            a && !s.collapsible || this._trigger("beforeActivate", e, c) === !1 || (s.active = !l && this.headers.index(r),
6827            this.active = a ? t() : r,
6828            this._toggle(c),
6829            this._removeClass(o, "ui-accordion-header-active", "ui-state-active"),
6830            s.icons && (i = o.children(".ui-accordion-header-icon"),
vendor: 16,384 bytes, lines 6831-7196
6831            this._removeClass(i, null, s.icons.activeHeader)._addClass(i, null, s.icons.header)),
6832            a || (this._removeClass(r, "ui-accordion-header-collapsed")._addClass(r, "ui-accordion-header-active", "ui-state-active"),
6833            s.icons && (n = r.children(".ui-accordion-header-icon"),
6834            this._removeClass(n, null, s.icons.header)._addClass(n, null, s.icons.activeHeader)),
6835            this._addClass(r.next(), "ui-accordion-content-active")))
6836        },
6837        _toggle: function(e) {
6838            var i = e.newPanel
6839              , n = this.prevShow.length ? this.prevShow : e.oldPanel;
6840            this.prevShow.add(this.prevHide).stop(!0, !0),
6841            this.prevShow = i,
6842            this.prevHide = n,
6843            this.options.animate ? this._animate(i, n, e) : (n.hide(),
6844            i.show(),
6845            this._toggleComplete(e)),
6846            n.attr({
6847                "aria-hidden": "true"
6848            }),
6849            n.prev().attr({
6850                "aria-selected": "false",
6851                "aria-expanded": "false"
6852            }),
6853            i.length && n.length ? n.prev().attr({
6854                tabIndex: -1,
6855                "aria-expanded": "false"
6856            }) : i.length && this.headers.filter(function() {
6857                return 0 === parseInt(t(this).attr("tabIndex"), 10)
6858            }).attr("tabIndex", -1),
6859            i.attr("aria-hidden", "false").prev().attr({
6860                "aria-selected": "true",
6861                "aria-expanded": "true",
6862                tabIndex: 0
6863            })
6864        },
6865        _animate: function(t, e, i) {
6866            var n, s, o, r = this, a = 0, l = t.css("box-sizing"), h = t.length && (!e.length || t.index() < e.index()), u = this.options.animate || {}, c = h && u.down || u, d = function() {
6867                r._toggleComplete(i)
6868            };
6869            return "number" == typeof c && (o = c),
6870            "string" == typeof c && (s = c),
6871            s = s || c.easing || u.easing,
6872            o = o || c.duration || u.duration,
6873            e.length ? t.length ? (n = t.show().outerHeight(),
6874            e.animate(this.hideProps, {
6875                duration: o,
6876                easing: s,
6877                step: function(t, e) {
6878                    e.now = Math.round(t)
6879                }
6880            }),
6881            void t.hide().animate(this.showProps, {
6882                duration: o,
6883                easing: s,
6884                complete: d,
6885                step: function(t, i) {
6886                    i.now = Math.round(t),
6887                    "height" !== i.prop ? "content-box" === l && (a += i.now) : "content" !== r.options.heightStyle && (i.now = Math.round(n - e.outerHeight() - a),
6888                    a = 0)
6889                }
6890            })) : e.animate(this.hideProps, o, s, d) : t.animate(this.showProps, o, s, d)
6891        },
6892        _toggleComplete: function(t) {
6893            var e = t.oldPanel
6894              , i = e.prev();
6895            this._removeClass(e, "ui-accordion-content-active"),
6896            this._removeClass(i, "ui-accordion-header-active")._addClass(i, "ui-accordion-header-collapsed"),
6897            e.length && (e.parent()[0].className = e.parent()[0].className),
6898            this._trigger("activate", null, t)
6899        }
6900    })
6901}),
6902function(t) {
6903    "function" == typeof define && define.amd ? define(["jquery", "../keycode", "../position", "../safe-active-element", "../unique-id", "../version", "../widget"], t) : t(jQuery)
6904}(function(t) {
6905    return t.widget("ui.menu", {
6906        version: "1.12.1",
6907        defaultElement: "<ul>",
6908        delay: 300,
6909        options: {
6910            icons: {
6911                submenu: "ui-icon-caret-1-e"
6912            },
6913            items: "> *",
6914            menus: "ul",
6915            position: {
6916                my: "left top",
6917                at: "right top"
6918            },
6919            role: "menu",
6920            blur: null,
6921            focus: null,
6922            select: null
6923        },
6924        _create: function() {
6925            this.activeMenu = this.element,
6926            this.mouseHandled = !1,
6927            this.element.uniqueId().attr({
6928                role: this.options.role,
6929                tabIndex: 0
6930            }),
6931            this._addClass("ui-menu", "ui-widget ui-widget-content"),
6932            this._on({
6933                "mousedown .ui-menu-item": function(t) {
6934                    t.preventDefault()
6935                },
6936                "click .ui-menu-item": function(e) {
6937                    var i = t(e.target)
6938                      , n = t(t.ui.safeActiveElement(this.document[0]));
6939                    !this.mouseHandled && i.not(".ui-state-disabled").length && (this.select(e),
6940                    e.isPropagationStopped() || (this.mouseHandled = !0),
6941                    i.has(".ui-menu").length ? this.expand(e) : !this.element.is(":focus") && n.closest(".ui-menu").length && (this.element.trigger("focus", [!0]),
6942                    this.active && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer)))
6943                },
6944                "mouseenter .ui-menu-item": function(e) {
6945                    if (!this.previousFilter) {
6946                        var i = t(e.target).closest(".ui-menu-item")
6947                          , n = t(e.currentTarget);
6948                        i[0] === n[0] && (this._removeClass(n.siblings().children(".ui-state-active"), null, "ui-state-active"),
6949                        this.focus(e, n))
6950                    }
6951                },
6952                mouseleave: "collapseAll",
6953                "mouseleave .ui-menu": "collapseAll",
6954                focus: function(t, e) {
6955                    var i = this.active || this.element.find(this.options.items).eq(0);
6956                    e || this.focus(t, i)
6957                },
6958                blur: function(e) {
6959                    this._delay(function() {
6960                        var i = !t.contains(this.element[0], t.ui.safeActiveElement(this.document[0]));
6961                        i && this.collapseAll(e)
6962                    })
6963                },
6964                keydown: "_keydown"
6965            }),
6966            this.refresh(),
6967            this._on(this.document, {
6968                click: function(t) {
6969                    this._closeOnDocumentClick(t) && this.collapseAll(t),
6970                    this.mouseHandled = !1
6971                }
6972            })
6973        },
6974        _destroy: function() {
6975            var e = this.element.find(".ui-menu-item").removeAttr("role aria-disabled")
6976              , i = e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");
6977            this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),
6978            i.children().each(function() {
6979                var e = t(this);
6980                e.data("ui-menu-submenu-caret") && e.remove()
6981            })
6982        },
6983        _keydown: function(e) {
6984            var i, n, s, o, r = !0;
6985            switch (e.keyCode) {
6986            case t.ui.keyCode.PAGE_UP:
6987                this.previousPage(e);
6988                break;
6989            case t.ui.keyCode.PAGE_DOWN:
6990                this.nextPage(e);
6991                break;
6992            case t.ui.keyCode.HOME:
6993                this._move("first", "first", e);
6994                break;
6995            case t.ui.keyCode.END:
6996                this._move("last", "last", e);
6997                break;
6998            case t.ui.keyCode.UP:
6999                this.previous(e);
7000                break;
7001            case t.ui.keyCode.DOWN:
7002                this.next(e);
7003                break;
7004            case t.ui.keyCode.LEFT:
7005                this.collapse(e);
7006                break;
7007            case t.ui.keyCode.RIGHT:
7008                this.active && !this.active.is(".ui-state-disabled") && this.expand(e);
7009                break;
7010            case t.ui.keyCode.ENTER:
7011            case t.ui.keyCode.SPACE:
7012                this._activate(e);
7013                break;
7014            case t.ui.keyCode.ESCAPE:
7015                this.collapse(e);
7016                break;
7017            default:
7018                r = !1,
7019                n = this.previousFilter || "",
7020                o = !1,
7021                s = e.keyCode >= 96 && e.keyCode <= 105 ? (e.keyCode - 96).toString() : String.fromCharCode(e.keyCode),
7022                clearTimeout(this.filterTimer),
7023                s === n ? o = !0 : s = n + s,
7024                i = this._filterMenuItems(s),
7025                i = o && i.index(this.active.next()) !== -1 ? this.active.nextAll(".ui-menu-item") : i,
7026                i.length || (s = String.fromCharCode(e.keyCode),
7027                i = this._filterMenuItems(s)),
7028                i.length ? (this.focus(e, i),
7029                this.previousFilter = s,
7030                this.filterTimer = this._delay(function() {
7031                    delete this.previousFilter
7032                }, 1e3)) : delete this.previousFilter
7033            }
7034            r && e.preventDefault()
7035        },
7036        _activate: function(t) {
7037            this.active && !this.active.is(".ui-state-disabled") && (this.active.children("[aria-haspopup='true']").length ? this.expand(t) : this.select(t))
7038        },
7039        refresh: function() {
7040            var e, i, n, s, o, r = this, a = this.options.icons.submenu, l = this.element.find(this.options.menus);
7041            this._toggleClass("ui-menu-icons", null, !!this.element.find(".ui-icon").length),
7042            n = l.filter(":not(.ui-menu)").hide().attr({
7043                role: this.options.role,
7044                "aria-hidden": "true",
7045                "aria-expanded": "false"
7046            }).each(function() {
7047                var e = t(this)
7048                  , i = e.prev()
7049                  , n = t("<span>").data("ui-menu-submenu-caret", !0);
7050                r._addClass(n, "ui-menu-icon", "ui-icon " + a),
7051                i.attr("aria-haspopup", "true").prepend(n),
7052                e.attr("aria-labelledby", i.attr("id"))
7053            }),
7054            this._addClass(n, "ui-menu", "ui-widget ui-widget-content ui-front"),
7055            e = l.add(this.element),
7056            i = e.find(this.options.items),
7057            i.not(".ui-menu-item").each(function() {
7058                var e = t(this);
7059                r._isDivider(e) && r._addClass(e, "ui-menu-divider", "ui-widget-content")
7060            }),
7061            s = i.not(".ui-menu-item, .ui-menu-divider"),
7062            o = s.children().not(".ui-menu").uniqueId().attr({
7063                tabIndex: -1,
7064                role: this._itemRole()
7065            }),
7066            this._addClass(s, "ui-menu-item")._addClass(o, "ui-menu-item-wrapper"),
7067            i.filter(".ui-state-disabled").attr("aria-disabled", "true"),
7068            this.active && !t.contains(this.element[0], this.active[0]) && this.blur()
7069        },
7070        _itemRole: function() {
7071            return {
7072                menu: "menuitem",
7073                listbox: "option"
7074            }[this.options.role]
7075        },
7076        _setOption: function(t, e) {
7077            if ("icons" === t) {
7078                var i = this.element.find(".ui-menu-icon");
7079                this._removeClass(i, null, this.options.icons.submenu)._addClass(i, null, e.submenu)
7080            }
7081            this._super(t, e)
7082        },
7083        _setOptionDisabled: function(t) {
7084            this._super(t),
7085            this.element.attr("aria-disabled", String(t)),
7086            this._toggleClass(null, "ui-state-disabled", !!t)
7087        },
7088        focus: function(t, e) {
7089            var i, n, s;
7090            this.blur(t, t && "focus" === t.type),
7091            this._scrollIntoView(e),
7092            this.active = e.first(),
7093            n = this.active.children(".ui-menu-item-wrapper"),
7094            this._addClass(n, null, "ui-state-active"),
7095            this.options.role && this.element.attr("aria-activedescendant", n.attr("id")),
7096            s = this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),
7097            this._addClass(s, null, "ui-state-active"),
7098            t && "keydown" === t.type ? this._close() : this.timer = this._delay(function() {
7099                this._close()
7100            }, this.delay),
7101            i = e.children(".ui-menu"),
7102            i.length && t && /^mouse/.test(t.type) && this._startOpening(i),
7103            this.activeMenu = e.parent(),
7104            this._trigger("focus", t, {
7105                item: e
7106            })
7107        },
7108        _scrollIntoView: function(e) {
7109            var i, n, s, o, r, a;
7110            this._hasScroll() && (i = parseFloat(t.css(this.activeMenu[0], "borderTopWidth")) || 0,
7111            n = parseFloat(t.css(this.activeMenu[0], "paddingTop")) || 0,
7112            s = e.offset().top - this.activeMenu.offset().top - i - n,
7113            o = this.activeMenu.scrollTop(),
7114            r = this.activeMenu.height(),
7115            a = e.outerHeight(),
7116            s < 0 ? this.activeMenu.scrollTop(o + s) : s + a > r && this.activeMenu.scrollTop(o + s - r + a))
7117        },
7118        blur: function(t, e) {
7119            e || clearTimeout(this.timer),
7120            this.active && (this._removeClass(this.active.children(".ui-menu-item-wrapper"), null, "ui-state-active"),
7121            this._trigger("blur", t, {
7122                item: this.active
7123            }),
7124            this.active = null)
7125        },
7126        _startOpening: function(t) {
7127            clearTimeout(this.timer),
7128            "true" === t.attr("aria-hidden") && (this.timer = this._delay(function() {
7129                this._close(),
7130                this._open(t)
7131            }, this.delay))
7132        },
7133        _open: function(e) {
7134            var i = t.extend({
7135                of: this.active
7136            }, this.options.position);
7137            clearTimeout(this.timer),
7138            this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden", "true"),
7139            e.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(i)
7140        },
7141        collapseAll: function(e, i) {
7142            clearTimeout(this.timer),
7143            this.timer = this._delay(function() {
7144                var n = i ? this.element : t(e && e.target).closest(this.element.find(".ui-menu"));
7145                n.length || (n = this.element),
7146                this._close(n),
7147                this.blur(e),
7148                this._removeClass(n.find(".ui-state-active"), null, "ui-state-active"),
7149                this.activeMenu = n
7150            }, this.delay)
7151        },
7152        _close: function(t) {
7153            t || (t = this.active ? this.active.parent() : this.element),
7154            t.find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false")
7155        },
7156        _closeOnDocumentClick: function(e) {
7157            return !t(e.target).closest(".ui-menu").length
7158        },
7159        _isDivider: function(t) {
7160            return !/[^\-\u2014\u2013\s]/.test(t.text())
7161        },
7162        collapse: function(t) {
7163            var e = this.active && this.active.parent().closest(".ui-menu-item", this.element);
7164            e && e.length && (this._close(),
7165            this.focus(t, e))
7166        },
7167        expand: function(t) {
7168            var e = this.active && this.active.children(".ui-menu ").find(this.options.items).first();
7169            e && e.length && (this._open(e.parent()),
7170            this._delay(function() {
7171                this.focus(t, e)
7172            }))
7173        },
7174        next: function(t) {
7175            this._move("next", "first", t)
7176        },
7177        previous: function(t) {
7178            this._move("prev", "last", t)
7179        },
7180        isFirstItem: function() {
7181            return this.active && !this.active.prevAll(".ui-menu-item").length
7182        },
7183        isLastItem: function() {
7184            return this.active && !this.active.nextAll(".ui-menu-item").length
7185        },
7186        _move: function(t, e, i) {
7187            var n;
7188            this.active && (n = "first" === t || "last" === t ? this.active["first" === t ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : this.active[t + "All"](".ui-menu-item").eq(0)),
7189            n && n.length && this.active || (n = this.activeMenu.find(this.options.items)[e]()),
7190            this.focus(i, n)
7191        },
7192        nextPage: function(e) {
7193            var i, n, s;
7194            return this.active ? void (this.isLastItem() || (this._hasScroll() ? (n = this.active.offset().top,
7195            s = this.element.height(),
7196            this.active.nextAll(".ui-menu-item").each(fu
vendor: 5,735 bytes, lines 7196-7337
7196nction() {
7197                return i = t(this),
7198                i.offset().top - n - s < 0
7199            }),
7200            this.focus(e, i)) : this.focus(e, this.activeMenu.find(this.options.items)[this.active ? "last" : "first"]()))) : void this.next(e)
7201        },
7202        previousPage: function(e) {
7203            var i, n, s;
7204            return this.active ? void (this.isFirstItem() || (this._hasScroll() ? (n = this.active.offset().top,
7205            s = this.element.height(),
7206            this.active.prevAll(".ui-menu-item").each(function() {
7207                return i = t(this),
7208                i.offset().top - n + s > 0
7209            }),
7210            this.focus(e, i)) : this.focus(e, this.activeMenu.find(this.options.items).first()))) : void this.next(e)
7211        },
7212        _hasScroll: function() {
7213            return this.element.outerHeight() < this.element.prop("scrollHeight")
7214        },
7215        select: function(e) {
7216            this.active = this.active || t(e.target).closest(".ui-menu-item");
7217            var i = {
7218                item: this.active
7219            };
7220            this.active.has(".ui-menu").length || this.collapseAll(e, !0),
7221            this._trigger("select", e, i)
7222        },
7223        _filterMenuItems: function(e) {
7224            var i = e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
7225              , n = new RegExp("^" + i,"i");
7226            return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function() {
7227                return n.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))
7228            })
7229        }
7230    })
7231}),
7232function(t) {
7233    "function" == typeof define && define.amd ? define(["jquery", "./menu", "../keycode", "../position", "../safe-active-element", "../version", "../widget"], t) : t(jQuery)
7234}(function(t) {
7235    return t.widget("ui.autocomplete", {
7236        version: "1.12.1",
7237        defaultElement: "<input>",
7238        options: {
7239            appendTo: null,
7240            autoFocus: !1,
7241            delay: 300,
7242            minLength: 1,
7243            position: {
7244                my: "left top",
7245                at: "left bottom",
7246                collision: "none"
7247            },
7248            source: null,
7249            change: null,
7250            close: null,
7251            focus: null,
7252            open: null,
7253            response: null,
7254            search: null,
7255            select: null
7256        },
7257        requestIndex: 0,
7258        pending: 0,
7259        _create: function() {
7260            var e, i, n, s = this.element[0].nodeName.toLowerCase(), o = "textarea" === s, r = "input" === s;
7261            this.isMultiLine = o || !r && this._isContentEditable(this.element),
7262            this.valueMethod = this.element[o || r ? "val" : "text"],
7263            this.isNewMenu = !0,
7264            this._addClass("ui-autocomplete-input"),
7265            this.element.attr("autocomplete", "off"),
7266            this._on(this.element, {
7267                keydown: function(s) {
7268                    if (this.element.prop("readOnly"))
7269                        return e = !0,
7270                        n = !0,
7271                        void (i = !0);
7272                    e = !1,
7273                    n = !1,
7274                    i = !1;
7275                    var o = t.ui.keyCode;
7276                    switch (s.keyCode) {
7277                    case o.PAGE_UP:
7278                        e = !0,
7279                        this._move("previousPage", s);
7280                        break;
7281                    case o.PAGE_DOWN:
7282                        e = !0,
7283                        this._move("nextPage", s);
7284                        break;
7285                    case o.UP:
7286                        e = !0,
7287                        this._keyEvent("previous", s);
7288                        break;
7289                    case o.DOWN:
7290                        e = !0,
7291                        this._keyEvent("next", s);
7292                        break;
7293                    case o.ENTER:
7294                        this.menu.active && (e = !0,
7295                        s.preventDefault(),
7296                        this.menu.select(s));
7297                        break;
7298                    case o.TAB:
7299                        this.menu.active && this.menu.select(s);
7300                        break;
7301                    case o.ESCAPE:
7302                        this.menu.element.is(":visible") && (this.isMultiLine || this._value(this.term),
7303                        this.close(s),
7304                        s.preventDefault());
7305                        break;
7306                    default:
7307                        i = !0,
7308                        this._searchTimeout(s)
7309                    }
7310                },
7311                keypress: function(n) {
7312                    if (e)
7313                        return e = !1,
7314                        void (this.isMultiLine && !this.menu.element.is(":visible") || n.preventDefault());
7315                    if (!i) {
7316                        var s = t.ui.keyCode;
7317                        switch (n.keyCode) {
7318                        case s.PAGE_UP:
7319                            this._move("previousPage", n);
7320                            break;
7321                        case s.PAGE_DOWN:
7322                            this._move("nextPage", n);
7323                            break;
7324                        case s.UP:
7325                            this._keyEvent("previous", n);
7326                            break;
7327                        case s.DOWN:
7328                            this._keyEvent("next", n)
7329                        }
7330                    }
7331                },
7332                input: function(t) {
7333                    return n ? (n = !1,
7334                    void t.preventDefault()) : void this._searchTimeout(t)
7335                },
7336                focus: function() {
7337                    this.selectedItem = null,
vendor: 5,152 bytes, lines 7338-7454
7338                    this.previous = this._value()
7339                },
7340                blur: function(t) {
7341                    return this.cancelBlur ? void delete this.cancelBlur : (clearTimeout(this.searching),
7342                    this.close(t),
7343                    void this._change(t))
7344                }
7345            }),
7346            this._initSource(),
7347            this.menu = t("<ul>").appendTo(this._appendTo()).menu({
7348                role: null
7349            }).hide().menu("instance"),
7350            this._addClass(this.menu.element, "ui-autocomplete", "ui-front"),
7351            this._on(this.menu.element, {
7352                mousedown: function(e) {
7353                    e.preventDefault(),
7354                    this.cancelBlur = !0,
7355                    this._delay(function() {
7356                        delete this.cancelBlur,
7357                        this.element[0] !== t.ui.safeActiveElement(this.document[0]) && this.element.trigger("focus")
7358                    })
7359                },
7360                menufocus: function(e, i) {
7361                    var n, s;
7362                    return this.isNewMenu && (this.isNewMenu = !1,
7363                    e.originalEvent && /^mouse/.test(e.originalEvent.type)) ? (this.menu.blur(),
7364                    void this.document.one("mousemove", function() {
7365                        t(e.target).trigger(e.originalEvent)
7366                    })) : (s = i.item.data("ui-autocomplete-item"),
7367                    !1 !== this._trigger("focus", e, {
7368                        item: s
7369                    }) && e.originalEvent && /^key/.test(e.originalEvent.type) && this._value(s.value),
7370                    n = i.item.attr("aria-label") || s.value,
7371                    void (n && t.trim(n).length && (this.liveRegion.children().hide(),
7372                    t("<div>").text(n).appendTo(this.liveRegion))))
7373                },
7374                menuselect: function(e, i) {
7375                    var n = i.item.data("ui-autocomplete-item")
7376                      , s = this.previous;
7377                    this.element[0] !== t.ui.safeActiveElement(this.document[0]) && (this.element.trigger("focus"),
7378                    this.previous = s,
7379                    this._delay(function() {
7380                        this.previous = s,
7381                        this.selectedItem = n
7382                    })),
7383                    !1 !== this._trigger("select", e, {
7384                        item: n
7385                    }) && this._value(n.value),
7386                    this.term = this._value(),
7387                    this.close(e),
7388                    this.selectedItem = n
7389                }
7390            }),
7391            this.liveRegion = t("<div>", {
7392                role: "status",
7393                "aria-live": "assertive",
7394                "aria-relevant": "additions"
7395            }).appendTo(this.document[0].body),
7396            this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"),
7397            this._on(this.window, {
7398                beforeunload: function() {
7399                    this.element.removeAttr("autocomplete")
7400                }
7401            })
7402        },
7403        _destroy: function() {
7404            clearTimeout(this.searching),
7405            this.element.removeAttr("autocomplete"),
7406            this.menu.element.remove(),
7407            this.liveRegion.remove()
7408        },
7409        _setOption: function(t, e) {
7410            this._super(t, e),
7411            "source" === t && this._initSource(),
7412            "appendTo" === t && this.menu.element.appendTo(this._appendTo()),
7413            "disabled" === t && e && this.xhr && this.xhr.abort()
7414        },
7415        _isEventTargetInWidget: function(e) {
7416            var i = this.menu.element[0];
7417            return e.target === this.element[0] || e.target === i || t.contains(i, e.target)
7418        },
7419        _closeOnClickOutside: function(t) {
7420            this._isEventTargetInWidget(t) || this.close()
7421        },
7422        _appendTo: function() {
7423            var e = this.options.appendTo;
7424            return e && (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)),
7425            e && e[0] || (e = this.element.closest(".ui-front, dialog")),
7426            e.length || (e = this.document[0].body),
7427            e
7428        },
7429        _initSource: function() {
7430            var e, i, n = this;
7431            t.isArray(this.options.source) ? (e = this.options.source,
7432            this.source = function(i, n) {
7433                n(t.ui.autocomplete.filter(e, i.term))
7434            }
7435            ) : "string" == typeof this.options.source ? (i = this.options.source,
7436            this.source = function(e, s) {
7437                n.xhr && n.xhr.abort(),
7438                n.xhr = t.ajax({
7439                    url: i,
7440                    data: e,
7441                    dataType: "json",
7442                    success: function(t) {
7443                        s(t)
7444                    },
7445                    error: function() {
7446                        s([])
7447                    }
7448                })
7449            }
7450            ) : this.source = this.options.source
7451        },
7452        _searchTimeout: function(t) {
7453            clearTimeout(this.searching),
7454            this.searching = this._delay(function() {
vendor: 15,241 bytes, lines 7455-7813
7455                var e = this.term === this._value()
7456                  , i = this.menu.element.is(":visible")
7457                  , n = t.altKey || t.ctrlKey || t.metaKey || t.shiftKey;
7458                e && (!e || i || n) || (this.selectedItem = null,
7459                this.search(null, t))
7460            }, this.options.delay)
7461        },
7462        search: function(t, e) {
7463            return t = null != t ? t : this._value(),
7464            this.term = this._value(),
7465            t.length < this.options.minLength ? this.close(e) : this._trigger("search", e) !== !1 ? this._search(t) : void 0
7466        },
7467        _search: function(t) {
7468            this.pending++,
7469            this._addClass("ui-autocomplete-loading"),
7470            this.cancelSearch = !1,
7471            this.source({
7472                term: t
7473            }, this._response())
7474        },
7475        _response: function() {
7476            var e = ++this.requestIndex;
7477            return t.proxy(function(t) {
7478                e === this.requestIndex && this.__response(t),
7479                this.pending--,
7480                this.pending || this._removeClass("ui-autocomplete-loading")
7481            }, this)
7482        },
7483        __response: function(t) {
7484            t && (t = this._normalize(t)),
7485            this._trigger("response", null, {
7486                content: t
7487            }),
7488            !this.options.disabled && t && t.length && !this.cancelSearch ? (this._suggest(t),
7489            this._trigger("open")) : this._close()
7490        },
7491        close: function(t) {
7492            this.cancelSearch = !0,
7493            this._close(t)
7494        },
7495        _close: function(t) {
7496            this._off(this.document, "mousedown"),
7497            this.menu.element.is(":visible") && (this.menu.element.hide(),
7498            this.menu.blur(),
7499            this.isNewMenu = !0,
7500            this._trigger("close", t))
7501        },
7502        _change: function(t) {
7503            this.previous !== this._value() && this._trigger("change", t, {
7504                item: this.selectedItem
7505            })
7506        },
7507        _normalize: function(e) {
7508            return e.length && e[0].label && e[0].value ? e : t.map(e, function(e) {
7509                return "string" == typeof e ? {
7510                    label: e,
7511                    value: e
7512                } : t.extend({}, e, {
7513                    label: e.label || e.value,
7514                    value: e.value || e.label
7515                })
7516            })
7517        },
7518        _suggest: function(e) {
7519            var i = this.menu.element.empty();
7520            this._renderMenu(i, e),
7521            this.isNewMenu = !0,
7522            this.menu.refresh(),
7523            i.show(),
7524            this._resizeMenu(),
7525            i.position(t.extend({
7526                of: this.element
7527            }, this.options.position)),
7528            this.options.autoFocus && this.menu.next(),
7529            this._on(this.document, {
7530                mousedown: "_closeOnClickOutside"
7531            })
7532        },
7533        _resizeMenu: function() {
7534            var t = this.menu.element;
7535            t.outerWidth(Math.max(t.width("").outerWidth() + 1, this.element.outerWidth()))
7536        },
7537        _renderMenu: function(e, i) {
7538            var n = this;
7539            t.each(i, function(t, i) {
7540                n._renderItemData(e, i)
7541            })
7542        },
7543        _renderItemData: function(t, e) {
7544            return this._renderItem(t, e).data("ui-autocomplete-item", e)
7545        },
7546        _renderItem: function(e, i) {
7547            return t("<li>").append(t("<div>").text(i.label)).appendTo(e)
7548        },
7549        _move: function(t, e) {
7550            return this.menu.element.is(":visible") ? this.menu.isFirstItem() && /^previous/.test(t) || this.menu.isLastItem() && /^next/.test(t) ? (this.isMultiLine || this._value(this.term),
7551            void this.menu.blur()) : void this.menu[t](e) : void this.search(null, e)
7552        },
7553        widget: function() {
7554            return this.menu.element
7555        },
7556        _value: function() {
7557            return this.valueMethod.apply(this.element, arguments)
7558        },
7559        _keyEvent: function(t, e) {
7560            this.isMultiLine && !this.menu.element.is(":visible") || (this._move(t, e),
7561            e.preventDefault())
7562        },
7563        _isContentEditable: function(t) {
7564            if (!t.length)
7565                return !1;
7566            var e = t.prop("contentEditable");
7567            return "inherit" === e ? this._isContentEditable(t.parent()) : "true" === e
7568        }
7569    }),
7570    t.extend(t.ui.autocomplete, {
7571        escapeRegex: function(t) {
7572            return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
7573        },
7574        filter: function(e, i) {
7575            var n = new RegExp(t.ui.autocomplete.escapeRegex(i),"i");
7576            return t.grep(e, function(t) {
7577                return n.test(t.label || t.value || t)
7578            })
7579        }
7580    }),
7581    t.widget("ui.autocomplete", t.ui.autocomplete, {
7582        options: {
7583            messages: {
7584                noResults: "No search results.",
7585                results: function(t) {
7586                    return t + (t > 1 ? " results are" : " result is") + " available, use up and down arrow keys to navigate."
7587                }
7588            }
7589        },
7590        __response: function(e) {
7591            var i;
7592            this._superApply(arguments),
7593            this.options.disabled || this.cancelSearch || (i = e && e.length ? this.options.messages.results(e.length) : this.options.messages.noResults,
7594            this.liveRegion.children().hide(),
7595            t("<div>").text(i).appendTo(this.liveRegion))
7596        }
7597    }),
7598    t.ui.autocomplete
7599}),
7600function(t) {
7601    "function" == typeof define && define.amd ? define(["jquery", "../widget"], t) : t(jQuery)
7602}(function(t) {
7603    var e = /ui-corner-([a-z]){2,6}/g;
7604    return t.widget("ui.controlgroup", {
7605        version: "1.12.1",
7606        defaultElement: "<div>",
7607        options: {
7608            direction: "horizontal",
7609            disabled: null,
7610            onlyVisible: !0,
7611            items: {
7612                button: "input[type=button], input[type=submit], input[type=reset], button, a",
7613                controlgroupLabel: ".ui-controlgroup-label",
7614                checkboxradio: "input[type='checkbox'], input[type='radio']",
7615                selectmenu: "select",
7616                spinner: ".ui-spinner-input"
7617            }
7618        },
7619        _create: function() {
7620            this._enhance()
7621        },
7622        _enhance: function() {
7623            this.element.attr("role", "toolbar"),
7624            this.refresh()
7625        },
7626        _destroy: function() {
7627            this._callChildMethod("destroy"),
7628            this.childWidgets.removeData("ui-controlgroup-data"),
7629            this.element.removeAttr("role"),
7630            this.options.items.controlgroupLabel && this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()
7631        },
7632        _initWidgets: function() {
7633            var e = this
7634              , i = [];
7635            t.each(this.options.items, function(n, s) {
7636                var o, r = {};
7637                if (s)
7638                    return "controlgroupLabel" === n ? (o = e.element.find(s),
7639                    o.each(function() {
7640                        var e = t(this);
7641                        e.children(".ui-controlgroup-label-contents").length || e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")
7642                    }),
7643                    e._addClass(o, null, "ui-widget ui-widget-content ui-state-default"),
7644                    void (i = i.concat(o.get()))) : void (t.fn[n] && (r = e["_" + n + "Options"] ? e["_" + n + "Options"]("middle") : {
7645                        classes: {}
7646                    },
7647                    e.element.find(s).each(function() {
7648                        var s = t(this)
7649                          , o = s[n]("instance")
7650                          , a = t.widget.extend({}, r);
7651                        if ("button" !== n || !s.parent(".ui-spinner").length) {
7652                            o || (o = s[n]()[n]("instance")),
7653                            o && (a.classes = e._resolveClassesValues(a.classes, o)),
7654                            s[n](a);
7655                            var l = s[n]("widget");
7656                            t.data(l[0], "ui-controlgroup-data", o ? o : s[n]("instance")),
7657                            i.push(l[0])
7658                        }
7659                    })))
7660            }),
7661            this.childWidgets = t(t.unique(i)),
7662            this._addClass(this.childWidgets, "ui-controlgroup-item")
7663        },
7664        _callChildMethod: function(e) {
7665            this.childWidgets.each(function() {
7666                var i = t(this)
7667                  , n = i.data("ui-controlgroup-data");
7668                n && n[e] && n[e]()
7669            })
7670        },
7671        _updateCornerClass: function(t, e) {
7672            var i = "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"
7673              , n = this._buildSimpleOptions(e, "label").classes.label;
7674            this._removeClass(t, null, i),
7675            this._addClass(t, null, n)
7676        },
7677        _buildSimpleOptions: function(t, e) {
7678            var i = "vertical" === this.options.direction
7679              , n = {
7680                classes: {}
7681            };
7682            return n.classes[e] = {
7683                middle: "",
7684                first: "ui-corner-" + (i ? "top" : "left"),
7685                last: "ui-corner-" + (i ? "bottom" : "right"),
7686                only: "ui-corner-all"
7687            }[t],
7688            n
7689        },
7690        _spinnerOptions: function(t) {
7691            var e = this._buildSimpleOptions(t, "ui-spinner");
7692            return e.classes["ui-spinner-up"] = "",
7693            e.classes["ui-spinner-down"] = "",
7694            e
7695        },
7696        _buttonOptions: function(t) {
7697            return this._buildSimpleOptions(t, "ui-button")
7698        },
7699        _checkboxradioOptions: function(t) {
7700            return this._buildSimpleOptions(t, "ui-checkboxradio-label")
7701        },
7702        _selectmenuOptions: function(t) {
7703            var e = "vertical" === this.options.direction;
7704            return {
7705                width: !!e && "auto",
7706                classes: {
7707                    middle: {
7708                        "ui-selectmenu-button-open": "",
7709                        "ui-selectmenu-button-closed": ""
7710                    },
7711                    first: {
7712                        "ui-selectmenu-button-open": "ui-corner-" + (e ? "top" : "tl"),
7713                        "ui-selectmenu-button-closed": "ui-corner-" + (e ? "top" : "left")
7714                    },
7715                    last: {
7716                        "ui-selectmenu-button-open": e ? "" : "ui-corner-tr",
7717                        "ui-selectmenu-button-closed": "ui-corner-" + (e ? "bottom" : "right")
7718                    },
7719                    only: {
7720                        "ui-selectmenu-button-open": "ui-corner-top",
7721                        "ui-selectmenu-button-closed": "ui-corner-all"
7722                    }
7723                }[t]
7724            }
7725        },
7726        _resolveClassesValues: function(i, n) {
7727            var s = {};
7728            return t.each(i, function(o) {
7729                var r = n.options.classes[o] || "";
7730                r = t.trim(r.replace(e, "")),
7731                s[o] = (r + " " + i[o]).replace(/\s+/g, " ")
7732            }),
7733            s
7734        },
7735        _setOption: function(t, e) {
7736            return "direction" === t && this._removeClass("ui-controlgroup-" + this.options.direction),
7737            this._super(t, e),
7738            "disabled" === t ? void this._callChildMethod(e ? "disable" : "enable") : void this.refresh()
7739        },
7740        refresh: function() {
7741            var e, i = this;
7742            this._addClass("ui-controlgroup ui-controlgroup-" + this.options.direction),
7743            "horizontal" === this.options.direction && this._addClass(null, "ui-helper-clearfix"),
7744            this._initWidgets(),
7745            e = this.childWidgets,
7746            this.options.onlyVisible && (e = e.filter(":visible")),
7747            e.length && (t.each(["first", "last"], function(t, n) {
7748                var s = e[n]().data("ui-controlgroup-data");
7749                if (s && i["_" + s.widgetName + "Options"]) {
7750                    var o = i["_" + s.widgetName + "Options"](1 === e.length ? "only" : n);
7751                    o.classes = i._resolveClassesValues(o.classes, s),
7752                    s.element[s.widgetName](o)
7753                } else
7754                    i._updateCornerClass(e[n](), n)
7755            }),
7756            this._callChildMethod("refresh"))
7757        }
7758    })
7759}),
7760function(t) {
7761    "function" == typeof define && define.amd ? define(["jquery", "../escape-selector", "../form-reset-mixin", "../labels", "../widget"], t) : t(jQuery)
7762}(function(t) {
7763    return t.widget("ui.checkboxradio", [t.ui.formResetMixin, {
7764        version: "1.12.1",
7765        options: {
7766            disabled: null,
7767            label: null,
7768            icon: !0,
7769            classes: {
7770                "ui-checkboxradio-label": "ui-corner-all",
7771                "ui-checkboxradio-icon": "ui-corner-all"
7772            }
7773        },
7774        _getCreateOptions: function() {
7775            var e, i, n = this, s = this._super() || {};
7776            return this._readType(),
7777            i = this.element.labels(),
7778            this.label = t(i[i.length - 1]),
7779            this.label.length || t.error("No label found for checkboxradio widget"),
7780            this.originalLabel = "",
7781            this.label.contents().not(this.element[0]).each(function() {
7782                n.originalLabel += 3 === this.nodeType ? t(this).text() : this.outerHTML
7783            }),
7784            this.originalLabel && (s.label = this.originalLabel),
7785            e = this.element[0].disabled,
7786            null != e && (s.disabled = e),
7787            s
7788        },
7789        _create: function() {
7790            var t = this.element[0].checked;
7791            this._bindFormResetHandler(),
7792            null == this.options.disabled && (this.options.disabled = this.element[0].disabled),
7793            this._setOption("disabled", this.options.disabled),
7794            this._addClass("ui-checkboxradio", "ui-helper-hidden-accessible"),
7795            this._addClass(this.label, "ui-checkboxradio-label", "ui-button ui-widget"),
7796            "radio" === this.type && this._addClass(this.label, "ui-checkboxradio-radio-label"),
7797            this.options.label && this.options.label !== this.originalLabel ? this._updateLabel() : this.originalLabel && (this.options.label = this.originalLabel),
7798            this._enhance(),
7799            t && (this._addClass(this.label, "ui-checkboxradio-checked", "ui-state-active"),
7800            this.icon && this._addClass(this.icon, null, "ui-state-hover")),
7801            this._on({
7802                change: "_toggleClasses",
7803                focus: function() {
7804                    this._addClass(this.label, null, "ui-state-focus ui-visual-focus")
7805                },
7806                blur: function() {
7807                    this._removeClass(this.label, null, "ui-state-focus ui-visual-focus")
7808                }
7809            })
7810        },
7811        _readType: function() {
7812            var e = this.element[0].nodeName.toLowerCase();
7813            this.type = this.element[0].type,
vendor: 1,991 bytes, lines 7814-7852
7814            "input" === e && /radio|checkbox/.test(this.type) || t.error("Can't create checkboxradio on element.nodeName=" + e + " and element.type=" + this.type)
7815        },
7816        _enhance: function() {
7817            this._updateIcon(this.element[0].checked)
7818        },
7819        widget: function() {
7820            return this.label
7821        },
7822        _getRadioGroup: function() {
7823            var e, i = this.element[0].name, n = "input[name='" + t.ui.escapeSelector(i) + "']";
7824            return i ? (e = this.form.length ? t(this.form[0].elements).filter(n) : t(n).filter(function() {
7825                return 0 === t(this).form().length
7826            }),
7827            e.not(this.element)) : t([])
7828        },
7829        _toggleClasses: function() {
7830            var e = this.element[0].checked;
7831            this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", e),
7832            this.options.icon && "checkbox" === this.type && this._toggleClass(this.icon, null, "ui-icon-check ui-state-checked", e)._toggleClass(this.icon, null, "ui-icon-blank", !e),
7833            "radio" === this.type && this._getRadioGroup().each(function() {
7834                var e = t(this).checkboxradio("instance");
7835                e && e._removeClass(e.label, "ui-checkboxradio-checked", "ui-state-active")
7836            })
7837        },
7838        _destroy: function() {
7839            this._unbindFormResetHandler(),
7840            this.icon && (this.icon.remove(),
7841            this.iconSpace.remove())
7842        },
7843        _setOption: function(t, e) {
7844            if ("label" !== t || e)
7845                return this._super(t, e),
7846                "disabled" === t ? (this._toggleClass(this.label, null, "ui-state-disabled", e),
7847                void (this.element[0].disabled = e)) : void this.refresh()
7848        },
7849        _updateIcon: function(e) {
7850            var i = "ui-icon ui-icon-background ";
7851            this.options.icon ? (this.icon || (this.icon = t("<span>"),
7852            this.iconSpace = t("<span> </span>"),
vendor: 4,275 bytes, lines 7853-7940
7853            this._addClass(this.iconSpace, "ui-checkboxradio-icon-space")),
7854            "checkbox" === this.type ? (i += e ? "ui-icon-check ui-state-checked" : "ui-icon-blank",
7855            this._removeClass(this.icon, null, e ? "ui-icon-blank" : "ui-icon-check")) : i += "ui-icon-blank",
7856            this._addClass(this.icon, "ui-checkboxradio-icon", i),
7857            e || this._removeClass(this.icon, null, "ui-icon-check ui-state-checked"),
7858            this.icon.prependTo(this.label).after(this.iconSpace)) : void 0 !== this.icon && (this.icon.remove(),
7859            this.iconSpace.remove(),
7860            delete this.icon)
7861        },
7862        _updateLabel: function() {
7863            var t = this.label.contents().not(this.element[0]);
7864            this.icon && (t = t.not(this.icon[0])),
7865            this.iconSpace && (t = t.not(this.iconSpace[0])),
7866            t.remove(),
7867            this.label.append(this.options.label)
7868        },
7869        refresh: function() {
7870            var t = this.element[0].checked
7871              , e = this.element[0].disabled;
7872            this._updateIcon(t),
7873            this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", t),
7874            null !== this.options.label && this._updateLabel(),
7875            e !== this.options.disabled && this._setOptions({
7876                disabled: e
7877            })
7878        }
7879    }]),
7880    t.ui.checkboxradio
7881}),
7882function(t) {
7883    "function" == typeof define && define.amd ? define(["jquery", "./controlgroup", "./checkboxradio", "../keycode", "../widget"], t) : t(jQuery)
7884}(function(t) {
7885    return t.widget("ui.button", {
7886        version: "1.12.1",
7887        defaultElement: "<button>",
7888        options: {
7889            classes: {
7890                "ui-button": "ui-corner-all"
7891            },
7892            disabled: null,
7893            icon: null,
7894            iconPosition: "beginning",
7895            label: null,
7896            showLabel: !0
7897        },
7898        _getCreateOptions: function() {
7899            var t, e = this._super() || {};
7900            return this.isInput = this.element.is("input"),
7901            t = this.element[0].disabled,
7902            null != t && (e.disabled = t),
7903            this.originalLabel = this.isInput ? this.element.val() : this.element.html(),
7904            this.originalLabel && (e.label = this.originalLabel),
7905            e
7906        },
7907        _create: function() {
7908            !this.option.showLabel & !this.options.icon && (this.options.showLabel = !0),
7909            null == this.options.disabled && (this.options.disabled = this.element[0].disabled || !1),
7910            this.hasTitle = !!this.element.attr("title"),
7911            this.options.label && this.options.label !== this.originalLabel && (this.isInput ? this.element.val(this.options.label) : this.element.html(this.options.label)),
7912            this._addClass("ui-button", "ui-widget"),
7913            this._setOption("disabled", this.options.disabled),
7914            this._enhance(),
7915            this.element.is("a") && this._on({
7916                keyup: function(e) {
7917                    e.keyCode === t.ui.keyCode.SPACE && (e.preventDefault(),
7918                    this.element[0].click ? this.element[0].click() : this.element.trigger("click"))
7919                }
7920            })
7921        },
7922        _enhance: function() {
7923            this.element.is("button") || this.element.attr("role", "button"),
7924            this.options.icon && (this._updateIcon("icon", this.options.icon),
7925            this._updateTooltip())
7926        },
7927        _updateTooltip: function() {
7928            this.title = this.element.attr("title"),
7929            this.options.showLabel || this.title || this.element.attr("title", this.options.label)
7930        },
7931        _updateIcon: function(e, i) {
7932            var n = "iconPosition" !== e
7933              , s = n ? this.options.iconPosition : i
7934              , o = "top" === s || "bottom" === s;
7935            this.icon ? n && this._removeClass(this.icon, null, this.options.icon) : (this.icon = t("<span>"),
7936            this._addClass(this.icon, "ui-button-icon", "ui-icon"),
7937            this.options.showLabel || this._addClass("ui-button-icon-only")),
7938            n && this._addClass(this.icon, null, i),
7939            this._attachIcon(s),
7940            o ? (this._addClass(this.icon, null, "ui-widget-icon-block"),
vendor: 15,599 bytes, lines 7941-8271
7941            this.iconSpace && this.iconSpace.remove()) : (this.iconSpace || (this.iconSpace = t("<span> </span>"),
7942            this._addClass(this.iconSpace, "ui-button-icon-space")),
7943            this._removeClass(this.icon, null, "ui-wiget-icon-block"),
7944            this._attachIconSpace(s))
7945        },
7946        _destroy: function() {
7947            this.element.removeAttr("role"),
7948            this.icon && this.icon.remove(),
7949            this.iconSpace && this.iconSpace.remove(),
7950            this.hasTitle || this.element.removeAttr("title")
7951        },
7952        _attachIconSpace: function(t) {
7953            this.icon[/^(?:end|bottom)/.test(t) ? "before" : "after"](this.iconSpace)
7954        },
7955        _attachIcon: function(t) {
7956            this.element[/^(?:end|bottom)/.test(t) ? "append" : "prepend"](this.icon)
7957        },
7958        _setOptions: function(t) {
7959            var e = void 0 === t.showLabel ? this.options.showLabel : t.showLabel
7960              , i = void 0 === t.icon ? this.options.icon : t.icon;
7961            e || i || (t.showLabel = !0),
7962            this._super(t)
7963        },
7964        _setOption: function(t, e) {
7965            "icon" === t && (e ? this._updateIcon(t, e) : this.icon && (this.icon.remove(),
7966            this.iconSpace && this.iconSpace.remove())),
7967            "iconPosition" === t && this._updateIcon(t, e),
7968            "showLabel" === t && (this._toggleClass("ui-button-icon-only", null, !e),
7969            this._updateTooltip()),
7970            "label" === t && (this.isInput ? this.element.val(e) : (this.element.html(e),
7971            this.icon && (this._attachIcon(this.options.iconPosition),
7972            this._attachIconSpace(this.options.iconPosition)))),
7973            this._super(t, e),
7974            "disabled" === t && (this._toggleClass(null, "ui-state-disabled", e),
7975            this.element[0].disabled = e,
7976            e && this.element.blur())
7977        },
7978        refresh: function() {
7979            var t = this.element.is("input, button") ? this.element[0].disabled : this.element.hasClass("ui-button-disabled");
7980            t !== this.options.disabled && this._setOptions({
7981                disabled: t
7982            }),
7983            this._updateTooltip()
7984        }
7985    }),
7986    t.uiBackCompat !== !1 && (t.widget("ui.button", t.ui.button, {
7987        options: {
7988            text: !0,
7989            icons: {
7990                primary: null,
7991                secondary: null
7992            }
7993        },
7994        _create: function() {
7995            this.options.showLabel && !this.options.text && (this.options.showLabel = this.options.text),
7996            !this.options.showLabel && this.options.text && (this.options.text = this.options.showLabel),
7997            this.options.icon || !this.options.icons.primary && !this.options.icons.secondary ? this.options.icon && (this.options.icons.primary = this.options.icon) : this.options.icons.primary ? this.options.icon = this.options.icons.primary : (this.options.icon = this.options.icons.secondary,
7998            this.options.iconPosition = "end"),
7999            this._super()
8000        },
8001        _setOption: function(t, e) {
8002            return "text" === t ? void this._super("showLabel", e) : ("showLabel" === t && (this.options.text = e),
8003            "icon" === t && (this.options.icons.primary = e),
8004            "icons" === t && (e.primary ? (this._super("icon", e.primary),
8005            this._super("iconPosition", "beginning")) : e.secondary && (this._super("icon", e.secondary),
8006            this._super("iconPosition", "end"))),
8007            void this._superApply(arguments))
8008        }
8009    }),
8010    t.fn.button = function(e) {
8011        return function() {
8012            return !this.length || this.length && "INPUT" !== this[0].tagName || this.length && "INPUT" === this[0].tagName && "checkbox" !== this.attr("type") && "radio" !== this.attr("type") ? e.apply(this, arguments) : (t.ui.checkboxradio || t.error("Checkboxradio widget missing"),
8013            0 === arguments.length ? this.checkboxradio({
8014                icon: !1
8015            }) : this.checkboxradio.apply(this, arguments))
8016        }
8017    }(t.fn.button),
8018    t.fn.buttonset = function() {
8019        return t.ui.controlgroup || t.error("Controlgroup widget missing"),
8020        "option" === arguments[0] && "items" === arguments[1] && arguments[2] ? this.controlgroup.apply(this, [arguments[0], "items.button", arguments[2]]) : "option" === arguments[0] && "items" === arguments[1] ? this.controlgroup.apply(this, [arguments[0], "items.button"]) : ("object" == typeof arguments[0] && arguments[0].items && (arguments[0].items = {
8021            button: arguments[0].items
8022        }),
8023        this.controlgroup.apply(this, arguments))
8024    }
8025    ),
8026    t.ui.button
8027}),
8028function(t) {
8029    "function" == typeof define && define.amd ? define(["jquery", "../version", "../keycode"], t) : t(jQuery)
8030}(function(t) {
8031    function e(t) {
8032        for (var e, i; t.length && t[0] !== document; ) {
8033            if (e = t.css("position"),
8034            ("absolute" === e || "relative" === e || "fixed" === e) && (i = parseInt(t.css("zIndex"), 10),
8035            !isNaN(i) && 0 !== i))
8036                return i;
8037            t = t.parent()
8038        }
8039        return 0
8040    }
8041    function i() {
8042        this._curInst = null,
8043        this._keyEvent = !1,
8044        this._disabledInputs = [],
8045        this._datepickerShowing = !1,
8046        this._inDialog = !1,
8047        this._mainDivId = "ui-datepicker-div",
8048        this._inlineClass = "ui-datepicker-inline",
8049        this._appendClass = "ui-datepicker-append",
8050        this._triggerClass = "ui-datepicker-trigger",
8051        this._dialogClass = "ui-datepicker-dialog",
8052        this._disableClass = "ui-datepicker-disabled",
8053        this._unselectableClass = "ui-datepicker-unselectable",
8054        this._currentClass = "ui-datepicker-current-day",
8055        this._dayOverClass = "ui-datepicker-days-cell-over",
8056        this.regional = [],
8057        this.regional[""] = {
8058            closeText: "Done",
8059            prevText: "Prev",
8060            nextText: "Next",
8061            currentText: "Today",
8062            monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
8063            monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
8064            dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
8065            dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
8066            dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
8067            weekHeader: "Wk",
8068            dateFormat: "mm/dd/yy",
8069            firstDay: 0,
8070            isRTL: !1,
8071            showMonthAfterYear: !1,
8072            yearSuffix: ""
8073        },
8074        this._defaults = {
8075            showOn: "focus",
8076            showAnim: "fadeIn",
8077            showOptions: {},
8078            defaultDate: null,
8079            appendText: "",
8080            buttonText: "...",
8081            buttonImage: "",
8082            buttonImageOnly: !1,
8083            hideIfNoPrevNext: !1,
8084            navigationAsDateFormat: !1,
8085            gotoCurrent: !1,
8086            changeMonth: !1,
8087            changeYear: !1,
8088            yearRange: "c-10:c+10",
8089            showOtherMonths: !1,
8090            selectOtherMonths: !1,
8091            showWeek: !1,
8092            calculateWeek: this.iso8601Week,
8093            shortYearCutoff: "+10",
8094            minDate: null,
8095            maxDate: null,
8096            duration: "fast",
8097            beforeShowDay: null,
8098            beforeShow: null,
8099            onSelect: null,
8100            onChangeMonthYear: null,
8101            onClose: null,
8102            numberOfMonths: 1,
8103            showCurrentAtPos: 0,
8104            stepMonths: 1,
8105            stepBigMonths: 12,
8106            altField: "",
8107            altFormat: "",
8108            constrainInput: !0,
8109            showButtonPanel: !1,
8110            autoSize: !1,
8111            disabled: !1
8112        },
8113        t.extend(this._defaults, this.regional[""]),
8114        this.regional.en = t.extend(!0, {}, this.regional[""]),
8115        this.regional["en-US"] = t.extend(!0, {}, this.regional.en),
8116        this.dpDiv = n(t("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))
8117    }
8118    function n(e) {
8119        var i = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
8120        return e.on("mouseout", i, function() {
8121            t(this).removeClass("ui-state-hover"),
8122            this.className.indexOf("ui-datepicker-prev") !== -1 && t(this).removeClass("ui-datepicker-prev-hover"),
8123            this.className.indexOf("ui-datepicker-next") !== -1 && t(this).removeClass("ui-datepicker-next-hover")
8124        }).on("mouseover", i, s)
8125    }
8126    function s() {
8127        t.datepicker._isDisabledDatepicker(r.inline ? r.dpDiv.parent()[0] : r.input[0]) || (t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),
8128        t(this).addClass("ui-state-hover"),
8129        this.className.indexOf("ui-datepicker-prev") !== -1 && t(this).addClass("ui-datepicker-prev-hover"),
8130        this.className.indexOf("ui-datepicker-next") !== -1 && t(this).addClass("ui-datepicker-next-hover"))
8131    }
8132    function o(e, i) {
8133        t.extend(e, i);
8134        for (var n in i)
8135            null == i[n] && (e[n] = i[n]);
8136        return e
8137    }
8138    t.extend(t.ui, {
8139        datepicker: {
8140            version: "1.12.1"
8141        }
8142    });
8143    var r;
8144    return t.extend(i.prototype, {
8145        markerClassName: "hasDatepicker",
8146        maxRows: 4,
8147        _widgetDatepicker: function() {
8148            return this.dpDiv
8149        },
8150        setDefaults: function(t) {
8151            return o(this._defaults, t || {}),
8152            this
8153        },
8154        _attachDatepicker: function(e, i) {
8155            var n, s, o;
8156            n = e.nodeName.toLowerCase(),
8157            s = "div" === n || "span" === n,
8158            e.id || (this.uuid += 1,
8159            e.id = "dp" + this.uuid),
8160            o = this._newInst(t(e), s),
8161            o.settings = t.extend({}, i || {}),
8162            "input" === n ? this._connectDatepicker(e, o) : s && this._inlineDatepicker(e, o)
8163        },
8164        _newInst: function(e, i) {
8165            var s = e[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1");
8166            return {
8167                id: s,
8168                input: e,
8169                selectedDay: 0,
8170                selectedMonth: 0,
8171                selectedYear: 0,
8172                drawMonth: 0,
8173                drawYear: 0,
8174                inline: i,
8175                dpDiv: i ? n(t("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) : this.dpDiv
8176            }
8177        },
8178        _connectDatepicker: function(e, i) {
8179            var n = t(e);
8180            i.append = t([]),
8181            i.trigger = t([]),
8182            n.hasClass(this.markerClassName) || (this._attachments(n, i),
8183            n.addClass(this.markerClassName).on("keydown", this._doKeyDown).on("keypress", this._doKeyPress).on("keyup", this._doKeyUp),
8184            this._autoSize(i),
8185            t.data(e, "datepicker", i),
8186            i.settings.disabled && this._disableDatepicker(e))
8187        },
8188        _attachments: function(e, i) {
8189            var n, s, o, r = this._get(i, "appendText"), a = this._get(i, "isRTL");
8190            i.append && i.append.remove(),
8191            r && (i.append = t("<span class='" + this._appendClass + "'>" + r + "</span>"),
8192            e[a ? "before" : "after"](i.append)),
8193            e.off("focus", this._showDatepicker),
8194            i.trigger && i.trigger.remove(),
8195            n = this._get(i, "showOn"),
8196            "focus" !== n && "both" !== n || e.on("focus", this._showDatepicker),
8197            "button" !== n && "both" !== n || (s = this._get(i, "buttonText"),
8198            o = this._get(i, "buttonImage"),
8199            i.trigger = t(this._get(i, "buttonImageOnly") ? t("<img/>").addClass(this._triggerClass).attr({
8200                src: o,
8201                alt: s,
8202                title: s
8203            }) : t("<button type='button'></button>").addClass(this._triggerClass).html(o ? t("<img/>").attr({
8204                src: o,
8205                alt: s,
8206                title: s
8207            }) : s)),
8208            e[a ? "before" : "after"](i.trigger),
8209            i.trigger.on("click", function() {
8210                return t.datepicker._datepickerShowing && t.datepicker._lastInput === e[0] ? t.datepicker._hideDatepicker() : t.datepicker._datepickerShowing && t.datepicker._lastInput !== e[0] ? (t.datepicker._hideDatepicker(),
8211                t.datepicker._showDatepicker(e[0])) : t.datepicker._showDatepicker(e[0]),
8212                !1
8213            }))
8214        },
8215        _autoSize: function(t) {
8216            if (this._get(t, "autoSize") && !t.inline) {
8217                var e, i, n, s, o = new Date(2009,11,20), r = this._get(t, "dateFormat");
8218                r.match(/[DM]/) && (e = function(t) {
8219                    for (i = 0,
8220                    n = 0,
8221                    s = 0; s < t.length; s++)
8222                        t[s].length > i && (i = t[s].length,
8223                        n = s);
8224                    return n
8225                }
8226                ,
8227                o.setMonth(e(this._get(t, r.match(/MM/) ? "monthNames" : "monthNamesShort"))),
8228                o.setDate(e(this._get(t, r.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - o.getDay())),
8229                t.input.attr("size", this._formatDate(t, o).length)
8230            }
8231        },
8232        _inlineDatepicker: function(e, i) {
8233            var n = t(e);
8234            n.hasClass(this.markerClassName) || (n.addClass(this.markerClassName).append(i.dpDiv),
8235            t.data(e, "datepicker", i),
8236            this._setDate(i, this._getDefaultDate(i), !0),
8237            this._updateDatepicker(i),
8238            this._updateAlternate(i),
8239            i.settings.disabled && this._disableDatepicker(e),
8240            i.dpDiv.css("display", "block"))
8241        },
8242        _dialogDatepicker: function(e, i, n, s, r) {
8243            var a, l, h, u, c, d = this._dialogInst;
8244            return d || (this.uuid += 1,
8245            a = "dp" + this.uuid,
8246            this._dialogInput = t("<input type='text' id='" + a + "' style='position: absolute; top: -100px; width: 0px;'/>"),
8247            this._dialogInput.on("keydown", this._doKeyDown),
8248            t("body").append(this._dialogInput),
8249            d = this._dialogInst = this._newInst(this._dialogInput, !1),
8250            d.settings = {},
8251            t.data(this._dialogInput[0], "datepicker", d)),
8252            o(d.settings, s || {}),
8253            i = i && i.constructor === Date ? this._formatDate(d, i) : i,
8254            this._dialogInput.val(i),
8255            this._pos = r ? r.length ? r : [r.pageX, r.pageY] : null,
8256            this._pos || (l = document.documentElement.clientWidth,
8257            h = document.documentElement.clientHeight,
8258            u = document.documentElement.scrollLeft || document.body.scrollLeft,
8259            c = document.documentElement.scrollTop || document.body.scrollTop,
8260            this._pos = [l / 2 - 100 + u, h / 2 - 150 + c]),
8261            this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"),
8262            d.settings.onSelect = n,
8263            this._inDialog = !0,
8264            this.dpDiv.addClass(this._dialogClass),
8265            this._showDatepicker(this._dialogInput[0]),
8266            t.blockUI && t.blockUI(this.dpDiv),
8267            t.data(this._dialogInput[0], "datepicker", d),
8268            this
8269        },
8270        _destroyDatepicker: function(e) {
8271            var i, n = t(e), s = t.data(e, "datepicker");
vendor: 8,163 bytes, lines 8272-8431
8272            n.hasClass(this.markerClassName) && (i = e.nodeName.toLowerCase(),
8273            t.removeData(e, "datepicker"),
8274            "input" === i ? (s.append.remove(),
8275            s.trigger.remove(),
8276            n.removeClass(this.markerClassName).off("focus", this._showDatepicker).off("keydown", this._doKeyDown).off("keypress", this._doKeyPress).off("keyup", this._doKeyUp)) : "div" !== i && "span" !== i || n.removeClass(this.markerClassName).empty(),
8277            r === s && (r = null))
8278        },
8279        _enableDatepicker: function(e) {
8280            var i, n, s = t(e), o = t.data(e, "datepicker");
8281            s.hasClass(this.markerClassName) && (i = e.nodeName.toLowerCase(),
8282            "input" === i ? (e.disabled = !1,
8283            o.trigger.filter("button").each(function() {
8284                this.disabled = !1
8285            }).end().filter("img").css({
8286                opacity: "1.0",
8287                cursor: ""
8288            })) : "div" !== i && "span" !== i || (n = s.children("." + this._inlineClass),
8289            n.children().removeClass("ui-state-disabled"),
8290            n.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1)),
8291            this._disabledInputs = t.map(this._disabledInputs, function(t) {
8292                return t === e ? null : t
8293            }))
8294        },
8295        _disableDatepicker: function(e) {
8296            var i, n, s = t(e), o = t.data(e, "datepicker");
8297            s.hasClass(this.markerClassName) && (i = e.nodeName.toLowerCase(),
8298            "input" === i ? (e.disabled = !0,
8299            o.trigger.filter("button").each(function() {
8300                this.disabled = !0
8301            }).end().filter("img").css({
8302                opacity: "0.5",
8303                cursor: "default"
8304            })) : "div" !== i && "span" !== i || (n = s.children("." + this._inlineClass),
8305            n.children().addClass("ui-state-disabled"),
8306            n.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0)),
8307            this._disabledInputs = t.map(this._disabledInputs, function(t) {
8308                return t === e ? null : t
8309            }),
8310            this._disabledInputs[this._disabledInputs.length] = e)
8311        },
8312        _isDisabledDatepicker: function(t) {
8313            if (!t)
8314                return !1;
8315            for (var e = 0; e < this._disabledInputs.length; e++)
8316                if (this._disabledInputs[e] === t)
8317                    return !0;
8318            return !1
8319        },
8320        _getInst: function(e) {
8321            try {
8322                return t.data(e, "datepicker")
8323            } catch (t) {
8324                throw "Missing instance data for this datepicker"
8325            }
8326        },
8327        _optionDatepicker: function(e, i, n) {
8328            var s, r, a, l, h = this._getInst(e);
8329            return 2 === arguments.length && "string" == typeof i ? "defaults" === i ? t.extend({}, t.datepicker._defaults) : h ? "all" === i ? t.extend({}, h.settings) : this._get(h, i) : null : (s = i || {},
8330            "string" == typeof i && (s = {},
8331            s[i] = n),
8332            void (h && (this._curInst === h && this._hideDatepicker(),
8333            r = this._getDateDatepicker(e, !0),
8334            a = this._getMinMaxDate(h, "min"),
8335            l = this._getMinMaxDate(h, "max"),
8336            o(h.settings, s),
8337            null !== a && void 0 !== s.dateFormat && void 0 === s.minDate && (h.settings.minDate = this._formatDate(h, a)),
8338            null !== l && void 0 !== s.dateFormat && void 0 === s.maxDate && (h.settings.maxDate = this._formatDate(h, l)),
8339            "disabled"in s && (s.disabled ? this._disableDatepicker(e) : this._enableDatepicker(e)),
8340            this._attachments(t(e), h),
8341            this._autoSize(h),
8342            this._setDate(h, r),
8343            this._updateAlternate(h),
8344            this._updateDatepicker(h))))
8345        },
8346        _changeDatepicker: function(t, e, i) {
8347            this._optionDatepicker(t, e, i)
8348        },
8349        _refreshDatepicker: function(t) {
8350            var e = this._getInst(t);
8351            e && this._updateDatepicker(e)
8352        },
8353        _setDateDatepicker: function(t, e) {
8354            var i = this._getInst(t);
8355            i && (this._setDate(i, e),
8356            this._updateDatepicker(i),
8357            this._updateAlternate(i))
8358        },
8359        _getDateDatepicker: function(t, e) {
8360            var i = this._getInst(t);
8361            return i && !i.inline && this._setDateFromField(i, e),
8362            i ? this._getDate(i) : null
8363        },
8364        _doKeyDown: function(e) {
8365            var i, n, s, o = t.datepicker._getInst(e.target), r = !0, a = o.dpDiv.is(".ui-datepicker-rtl");
8366            if (o._keyEvent = !0,
8367            t.datepicker._datepickerShowing)
8368                switch (e.keyCode) {
8369                case 9:
8370                    t.datepicker._hideDatepicker(),
8371                    r = !1;
8372                    break;
8373                case 13:
8374                    return s = t("td." + t.datepicker._dayOverClass + ":not(." + t.datepicker._currentClass + ")", o.dpDiv),
8375                    s[0] && t.datepicker._selectDay(e.target, o.selectedMonth, o.selectedYear, s[0]),
8376                    i = t.datepicker._get(o, "onSelect"),
8377                    i ? (n = t.datepicker._formatDate(o),
8378                    i.apply(o.input ? o.input[0] : null, [n, o])) : t.datepicker._hideDatepicker(),
8379                    !1;
8380                case 27:
8381                    t.datepicker._hideDatepicker();
8382                    break;
8383                case 33:
8384                    t.datepicker._adjustDate(e.target, e.ctrlKey ? -t.datepicker._get(o, "stepBigMonths") : -t.datepicker._get(o, "stepMonths"), "M");
8385                    break;
8386                case 34:
8387                    t.datepicker._adjustDate(e.target, e.ctrlKey ? +t.datepicker._get(o, "stepBigMonths") : +t.datepicker._get(o, "stepMonths"), "M");
8388                    break;
8389                case 35:
8390                    (e.ctrlKey || e.metaKey) && t.datepicker._clearDate(e.target),
8391                    r = e.ctrlKey || e.metaKey;
8392                    break;
8393                case 36:
8394                    (e.ctrlKey || e.metaKey) && t.datepicker._gotoToday(e.target),
8395                    r = e.ctrlKey || e.metaKey;
8396                    break;
8397                case 37:
8398                    (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, a ? 1 : -1, "D"),
8399                    r = e.ctrlKey || e.metaKey,
8400                    e.originalEvent.altKey && t.datepicker._adjustDate(e.target, e.ctrlKey ? -t.datepicker._get(o, "stepBigMonths") : -t.datepicker._get(o, "stepMonths"), "M");
8401                    break;
8402                case 38:
8403                    (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, -7, "D"),
8404                    r = e.ctrlKey || e.metaKey;
8405                    break;
8406                case 39:
8407                    (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, a ? -1 : 1, "D"),
8408                    r = e.ctrlKey || e.metaKey,
8409                    e.originalEvent.altKey && t.datepicker._adjustDate(e.target, e.ctrlKey ? +t.datepicker._get(o, "stepBigMonths") : +t.datepicker._get(o, "stepMonths"), "M");
8410                    break;
8411                case 40:
8412                    (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, 7, "D"),
8413                    r = e.ctrlKey || e.metaKey;
8414                    break;
8415                default:
8416                    r = !1
8417                }
8418            else
8419                36 === e.keyCode && e.ctrlKey ? t.datepicker._showDatepicker(this) : r = !1;
8420            r && (e.preventDefault(),
8421            e.stopPropagation())
8422        },
8423        _doKeyPress: function(e) {
8424            var i, n, s = t.datepicker._getInst(e.target);
8425            if (t.datepicker._get(s, "constrainInput"))
8426                return i = t.datepicker._possibleChars(t.datepicker._get(s, "dateFormat")),
8427                n = String.fromCharCode(null == e.charCode ? e.keyCode : e.charCode),
8428                e.ctrlKey || e.metaKey || n < " " || !i || i.indexOf(n) > -1
8429        },
8430        _doKeyUp: function(e) {
8431            var i, n = t.datepicker._getInst(e.target);
vendor: 9,959 bytes, lines 8432-8619
8432            if (n.input.val() !== n.lastVal)
8433                try {
8434                    i = t.datepicker.parseDate(t.datepicker._get(n, "dateFormat"), n.input ? n.input.val() : null, t.datepicker._getFormatConfig(n)),
8435                    i && (t.datepicker._setDateFromField(n),
8436                    t.datepicker._updateAlternate(n),
8437                    t.datepicker._updateDatepicker(n))
8438                } catch (t) {}
8439            return !0
8440        },
8441        _showDatepicker: function(i) {
8442            if (i = i.target || i,
8443            "input" !== i.nodeName.toLowerCase() && (i = t("input", i.parentNode)[0]),
8444            !t.datepicker._isDisabledDatepicker(i) && t.datepicker._lastInput !== i) {
8445                var n, s, r, a, l, h, u;
8446                n = t.datepicker._getInst(i),
8447                t.datepicker._curInst && t.datepicker._curInst !== n && (t.datepicker._curInst.dpDiv.stop(!0, !0),
8448                n && t.datepicker._datepickerShowing && t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),
8449                s = t.datepicker._get(n, "beforeShow"),
8450                r = s ? s.apply(i, [i, n]) : {},
8451                r !== !1 && (o(n.settings, r),
8452                n.lastVal = null,
8453                t.datepicker._lastInput = i,
8454                t.datepicker._setDateFromField(n),
8455                t.datepicker._inDialog && (i.value = ""),
8456                t.datepicker._pos || (t.datepicker._pos = t.datepicker._findPos(i),
8457                t.datepicker._pos[1] += i.offsetHeight),
8458                a = !1,
8459                t(i).parents().each(function() {
8460                    return a |= "fixed" === t(this).css("position"),
8461                    !a
8462                }),
8463                l = {
8464                    left: t.datepicker._pos[0],
8465                    top: t.datepicker._pos[1]
8466                },
8467                t.datepicker._pos = null,
8468                n.dpDiv.empty(),
8469                n.dpDiv.css({
8470                    position: "absolute",
8471                    display: "block",
8472                    top: "-1000px"
8473                }),
8474                t.datepicker._updateDatepicker(n),
8475                l = t.datepicker._checkOffset(n, l, a),
8476                n.dpDiv.css({
8477                    position: t.datepicker._inDialog && t.blockUI ? "static" : a ? "fixed" : "absolute",
8478                    display: "none",
8479                    left: l.left + "px",
8480                    top: l.top + "px"
8481                }),
8482                n.inline || (h = t.datepicker._get(n, "showAnim"),
8483                u = t.datepicker._get(n, "duration"),
8484                n.dpDiv.css("z-index", e(t(i)) + 1),
8485                t.datepicker._datepickerShowing = !0,
8486                t.effects && t.effects.effect[h] ? n.dpDiv.show(h, t.datepicker._get(n, "showOptions"), u) : n.dpDiv[h || "show"](h ? u : null),
8487                t.datepicker._shouldFocusInput(n) && n.input.trigger("focus"),
8488                t.datepicker._curInst = n))
8489            }
8490        },
8491        _updateDatepicker: function(e) {
8492            this.maxRows = 4,
8493            r = e,
8494            e.dpDiv.empty().append(this._generateHTML(e)),
8495            this._attachHandlers(e);
8496            var i, n = this._getNumberOfMonths(e), o = n[1], a = 17, l = e.dpDiv.find("." + this._dayOverClass + " a");
8497            l.length > 0 && s.apply(l.get(0)),
8498            e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),
8499            o > 1 && e.dpDiv.addClass("ui-datepicker-multi-" + o).css("width", a * o + "em"),
8500            e.dpDiv[(1 !== n[0] || 1 !== n[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi"),
8501            e.dpDiv[(this._get(e, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"),
8502            e === t.datepicker._curInst && t.datepicker._datepickerShowing && t.datepicker._shouldFocusInput(e) && e.input.trigger("focus"),
8503            e.yearshtml && (i = e.yearshtml,
8504            setTimeout(function() {
8505                i === e.yearshtml && e.yearshtml && e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),
8506                i = e.yearshtml = null
8507            }, 0))
8508        },
8509        _shouldFocusInput: function(t) {
8510            return t.input && t.input.is(":visible") && !t.input.is(":disabled") && !t.input.is(":focus")
8511        },
8512        _checkOffset: function(e, i, n) {
8513            var s = e.dpDiv.outerWidth()
8514              , o = e.dpDiv.outerHeight()
8515              , r = e.input ? e.input.outerWidth() : 0
8516              , a = e.input ? e.input.outerHeight() : 0
8517              , l = document.documentElement.clientWidth + (n ? 0 : t(document).scrollLeft())
8518              , h = document.documentElement.clientHeight + (n ? 0 : t(document).scrollTop());
8519            return i.left -= this._get(e, "isRTL") ? s - r : 0,
8520            i.left -= n && i.left === e.input.offset().left ? t(document).scrollLeft() : 0,
8521            i.top -= n && i.top === e.input.offset().top + a ? t(document).scrollTop() : 0,
8522            i.left -= Math.min(i.left, i.left + s > l && l > s ? Math.abs(i.left + s - l) : 0),
8523            i.top -= Math.min(i.top, i.top + o > h && h > o ? Math.abs(o + a) : 0),
8524            i
8525        },
8526        _findPos: function(e) {
8527            for (var i, n = this._getInst(e), s = this._get(n, "isRTL"); e && ("hidden" === e.type || 1 !== e.nodeType || t.expr.filters.hidden(e)); )
8528                e = e[s ? "previousSibling" : "nextSibling"];
8529            return i = t(e).offset(),
8530            [i.left, i.top]
8531        },
8532        _hideDatepicker: function(e) {
8533            var i, n, s, o, r = this._curInst;
8534            !r || e && r !== t.data(e, "datepicker") || this._datepickerShowing && (i = this._get(r, "showAnim"),
8535            n = this._get(r, "duration"),
8536            s = function() {
8537                t.datepicker._tidyDialog(r)
8538            }
8539            ,
8540            t.effects && (t.effects.effect[i] || t.effects[i]) ? r.dpDiv.hide(i, t.datepicker._get(r, "showOptions"), n, s) : r.dpDiv["slideDown" === i ? "slideUp" : "fadeIn" === i ? "fadeOut" : "hide"](i ? n : null, s),
8541            i || s(),
8542            this._datepickerShowing = !1,
8543            o = this._get(r, "onClose"),
8544            o && o.apply(r.input ? r.input[0] : null, [r.input ? r.input.val() : "", r]),
8545            this._lastInput = null,
8546            this._inDialog && (this._dialogInput.css({
8547                position: "absolute",
8548                left: "0",
8549                top: "-100px"
8550            }),
8551            t.blockUI && (t.unblockUI(),
8552            t("body").append(this.dpDiv))),
8553            this._inDialog = !1)
8554        },
8555        _tidyDialog: function(t) {
8556            t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")
8557        },
8558        _checkExternalClick: function(e) {
8559            if (t.datepicker._curInst) {
8560                var i = t(e.target)
8561                  , n = t.datepicker._getInst(i[0]);
8562                (i[0].id === t.datepicker._mainDivId || 0 !== i.parents("#" + t.datepicker._mainDivId).length || i.hasClass(t.datepicker.markerClassName) || i.closest("." + t.datepicker._triggerClass).length || !t.datepicker._datepickerShowing || t.datepicker._inDialog && t.blockUI) && (!i.hasClass(t.datepicker.markerClassName) || t.datepicker._curInst === n) || t.datepicker._hideDatepicker()
8563            }
8564        },
8565        _adjustDate: function(e, i, n) {
8566            var s = t(e)
8567              , o = this._getInst(s[0]);
8568            this._isDisabledDatepicker(s[0]) || (this._adjustInstDate(o, i + ("M" === n ? this._get(o, "showCurrentAtPos") : 0), n),
8569            this._updateDatepicker(o))
8570        },
8571        _gotoToday: function(e) {
8572            var i, n = t(e), s = this._getInst(n[0]);
8573            this._get(s, "gotoCurrent") && s.currentDay ? (s.selectedDay = s.currentDay,
8574            s.drawMonth = s.selectedMonth = s.currentMonth,
8575            s.drawYear = s.selectedYear = s.currentYear) : (i = new Date,
8576            s.selectedDay = i.getDate(),
8577            s.drawMonth = s.selectedMonth = i.getMonth(),
8578            s.drawYear = s.selectedYear = i.getFullYear()),
8579            this._notifyChange(s),
8580            this._adjustDate(n)
8581        },
8582        _selectMonthYear: function(e, i, n) {
8583            var s = t(e)
8584              , o = this._getInst(s[0]);
8585            o["selected" + ("M" === n ? "Month" : "Year")] = o["draw" + ("M" === n ? "Month" : "Year")] = parseInt(i.options[i.selectedIndex].value, 10),
8586            this._notifyChange(o),
8587            this._adjustDate(s)
8588        },
8589        _selectDay: function(e, i, n, s) {
8590            var o, r = t(e);
8591            t(s).hasClass(this._unselectableClass) || this._isDisabledDatepicker(r[0]) || (o = this._getInst(r[0]),
8592            o.selectedDay = o.currentDay = t("a", s).html(),
8593            o.selectedMonth = o.currentMonth = i,
8594            o.selectedYear = o.currentYear = n,
8595            this._selectDate(e, this._formatDate(o, o.currentDay, o.currentMonth, o.currentYear)))
8596        },
8597        _clearDate: function(e) {
8598            var i = t(e);
8599            this._selectDate(i, "")
8600        },
8601        _selectDate: function(e, i) {
8602            var n, s = t(e), o = this._getInst(s[0]);
8603            i = null != i ? i : this._formatDate(o),
8604            o.input && o.input.val(i),
8605            this._updateAlternate(o),
8606            n = this._get(o, "onSelect"),
8607            n ? n.apply(o.input ? o.input[0] : null, [i, o]) : o.input && o.input.trigger("change"),
8608            o.inline ? this._updateDatepicker(o) : (this._hideDatepicker(),
8609            this._lastInput = o.input[0],
8610            "object" != typeof o.input[0] && o.input.trigger("focus"),
8611            this._lastInput = null)
8612        },
8613        _updateAlternate: function(e) {
8614            var i, n, s, o = this._get(e, "altField");
8615            o && (i = this._get(e, "altFormat") || this._get(e, "dateFormat"),
8616            n = this._getDate(e),
8617            s = this.formatDate(i, n, this._getFormatConfig(e)),
8618            t(o).val(s))
8619        },
vendor: 7,591 bytes, lines 8620-8791
8620        noWeekends: function(t) {
8621            var e = t.getDay();
8622            return [e > 0 && e < 6, ""]
8623        },
8624        iso8601Week: function(t) {
8625            var e, i = new Date(t.getTime());
8626            return i.setDate(i.getDate() + 4 - (i.getDay() || 7)),
8627            e = i.getTime(),
8628            i.setMonth(0),
8629            i.setDate(1),
8630            Math.floor(Math.round((e - i) / 864e5) / 7) + 1
8631        },
8632        parseDate: function(e, i, n) {
8633            if (null == e || null == i)
8634                throw "Invalid arguments";
8635            if (i = "object" == typeof i ? i.toString() : i + "",
8636            "" === i)
8637                return null;
8638            var s, o, r, a, l = 0, h = (n ? n.shortYearCutoff : null) || this._defaults.shortYearCutoff, u = "string" != typeof h ? h : (new Date).getFullYear() % 100 + parseInt(h, 10), c = (n ? n.dayNamesShort : null) || this._defaults.dayNamesShort, d = (n ? n.dayNames : null) || this._defaults.dayNames, p = (n ? n.monthNamesShort : null) || this._defaults.monthNamesShort, f = (n ? n.monthNames : null) || this._defaults.monthNames, g = -1, m = -1, v = -1, b = -1, _ = !1, y = function(t) {
8639                var i = s + 1 < e.length && e.charAt(s + 1) === t;
8640                return i && s++,
8641                i
8642            }, w = function(t) {
8643                var e = y(t)
8644                  , n = "@" === t ? 14 : "!" === t ? 20 : "y" === t && e ? 4 : "o" === t ? 3 : 2
8645                  , s = "y" === t ? n : 1
8646                  , o = new RegExp("^\\d{" + s + "," + n + "}")
8647                  , r = i.substring(l).match(o);
8648                if (!r)
8649                    throw "Missing number at position " + l;
8650                return l += r[0].length,
8651                parseInt(r[0], 10)
8652            }, x = function(e, n, s) {
8653                var o = -1
8654                  , r = t.map(y(e) ? s : n, function(t, e) {
8655                    return [[e, t]]
8656                }).sort(function(t, e) {
8657                    return -(t[1].length - e[1].length)
8658                });
8659                if (t.each(r, function(t, e) {
8660                    var n = e[1];
8661                    if (i.substr(l, n.length).toLowerCase() === n.toLowerCase())
8662                        return o = e[0],
8663                        l += n.length,
8664                        !1
8665                }),
8666                o !== -1)
8667                    return o + 1;
8668                throw "Unknown name at position " + l
8669            }, k = function() {
8670                if (i.charAt(l) !== e.charAt(s))
8671                    throw "Unexpected literal at position " + l;
8672                l++
8673            };
8674            for (s = 0; s < e.length; s++)
8675                if (_)
8676                    "'" !== e.charAt(s) || y("'") ? k() : _ = !1;
8677                else
8678                    switch (e.charAt(s)) {
8679                    case "d":
8680                        v = w("d");
8681                        break;
8682                    case "D":
8683                        x("D", c, d);
8684                        break;
8685                    case "o":
8686                        b = w("o");
8687                        break;
8688                    case "m":
8689                        m = w("m");
8690                        break;
8691                    case "M":
8692                        m = x("M", p, f);
8693                        break;
8694                    case "y":
8695                        g = w("y");
8696                        break;
8697                    case "@":
8698                        a = new Date(w("@")),
8699                        g = a.getFullYear(),
8700                        m = a.getMonth() + 1,
8701                        v = a.getDate();
8702                        break;
8703                    case "!":
8704                        a = new Date((w("!") - this._ticksTo1970) / 1e4),
8705                        g = a.getFullYear(),
8706                        m = a.getMonth() + 1,
8707                        v = a.getDate();
8708                        break;
8709                    case "'":
8710                        y("'") ? k() : _ = !0;
8711                        break;
8712                    default:
8713                        k()
8714                    }
8715            if (l < i.length && (r = i.substr(l),
8716            !/^\s+/.test(r)))
8717                throw "Extra/unparsed characters found in date: " + r;
8718            if (g === -1 ? g = (new Date).getFullYear() : g < 100 && (g += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (g <= u ? 0 : -100)),
8719            b > -1)
8720                for (m = 1,
8721                v = b; ; ) {
8722                    if (o = this._getDaysInMonth(g, m - 1),
8723                    v <= o)
8724                        break;
8725                    m++,
8726                    v -= o
8727                }
8728            if (a = this._daylightSavingAdjust(new Date(g,m - 1,v)),
8729            a.getFullYear() !== g || a.getMonth() + 1 !== m || a.getDate() !== v)
8730                throw "Invalid date";
8731            return a
8732        },
8733        ATOM: "yy-mm-dd",
8734        COOKIE: "D, dd M yy",
8735        ISO_8601: "yy-mm-dd",
8736        RFC_822: "D, d M y",
8737        RFC_850: "DD, dd-M-y",
8738        RFC_1036: "D, d M y",
8739        RFC_1123: "D, d M yy",
8740        RFC_2822: "D, d M yy",
8741        RSS: "D, d M y",
8742        TICKS: "!",
8743        TIMESTAMP: "@",
8744        W3C: "yy-mm-dd",
8745        _ticksTo1970: 24 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 60 * 60 * 1e7,
8746        formatDate: function(t, e, i) {
8747            if (!e)
8748                return "";
8749            var n, s = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort, o = (i ? i.dayNames : null) || this._defaults.dayNames, r = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort, a = (i ? i.monthNames : null) || this._defaults.monthNames, l = function(e) {
8750                var i = n + 1 < t.length && t.charAt(n + 1) === e;
8751                return i && n++,
8752                i
8753            }, h = function(t, e, i) {
8754                var n = "" + e;
8755                if (l(t))
8756                    for (; n.length < i; )
8757                        n = "0" + n;
8758                return n
8759            }, u = function(t, e, i, n) {
8760                return l(t) ? n[e] : i[e]
8761            }, c = "", d = !1;
8762            if (e)
8763                for (n = 0; n < t.length; n++)
8764                    if (d)
8765                        "'" !== t.charAt(n) || l("'") ? c += t.charAt(n) : d = !1;
8766                    else
8767                        switch (t.charAt(n)) {
8768                        case "d":
8769                            c += h("d", e.getDate(), 2);
8770                            break;
8771                        case "D":
8772                            c += u("D", e.getDay(), s, o);
8773                            break;
8774                        case "o":
8775                            c += h("o", Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime() - new Date(e.getFullYear(),0,0).getTime()) / 864e5), 3);
8776                            break;
8777                        case "m":
8778                            c += h("m", e.getMonth() + 1, 2);
8779                            break;
8780                        case "M":
8781                            c += u("M", e.getMonth(), r, a);
8782                            break;
8783                        case "y":
8784                            c += l("y") ? e.getFullYear() : (e.getFullYear() % 100 < 10 ? "0" : "") + e.getFullYear() % 100;
8785                            break;
8786                        case "@":
8787                            c += e.getTime();
8788                            break;
8789                        case "!":
8790                            c += 1e4 * e.getTime() + this._ticksTo1970;
8791                            break;
vendor: 5,416 bytes, lines 8792-8919
8792                        case "'":
8793                            l("'") ? c += "'" : d = !0;
8794                            break;
8795                        default:
8796                            c += t.charAt(n)
8797                        }
8798            return c
8799        },
8800        _possibleChars: function(t) {
8801            var e, i = "", n = !1, s = function(i) {
8802                var n = e + 1 < t.length && t.charAt(e + 1) === i;
8803                return n && e++,
8804                n
8805            };
8806            for (e = 0; e < t.length; e++)
8807                if (n)
8808                    "'" !== t.charAt(e) || s("'") ? i += t.charAt(e) : n = !1;
8809                else
8810                    switch (t.charAt(e)) {
8811                    case "d":
8812                    case "m":
8813                    case "y":
8814                    case "@":
8815                        i += "0123456789";
8816                        break;
8817                    case "D":
8818                    case "M":
8819                        return null;
8820                    case "'":
8821                        s("'") ? i += "'" : n = !0;
8822                        break;
8823                    default:
8824                        i += t.charAt(e)
8825                    }
8826            return i
8827        },
8828        _get: function(t, e) {
8829            return void 0 !== t.settings[e] ? t.settings[e] : this._defaults[e]
8830        },
8831        _setDateFromField: function(t, e) {
8832            if (t.input.val() !== t.lastVal) {
8833                var i = this._get(t, "dateFormat")
8834                  , n = t.lastVal = t.input ? t.input.val() : null
8835                  , s = this._getDefaultDate(t)
8836                  , o = s
8837                  , r = this._getFormatConfig(t);
8838                try {
8839                    o = this.parseDate(i, n, r) || s
8840                } catch (t) {
8841                    n = e ? "" : n
8842                }
8843                t.selectedDay = o.getDate(),
8844                t.drawMonth = t.selectedMonth = o.getMonth(),
8845                t.drawYear = t.selectedYear = o.getFullYear(),
8846                t.currentDay = n ? o.getDate() : 0,
8847                t.currentMonth = n ? o.getMonth() : 0,
8848                t.currentYear = n ? o.getFullYear() : 0,
8849                this._adjustInstDate(t)
8850            }
8851        },
8852        _getDefaultDate: function(t) {
8853            return this._restrictMinMax(t, this._determineDate(t, this._get(t, "defaultDate"), new Date))
8854        },
8855        _determineDate: function(e, i, n) {
8856            var s = function(t) {
8857                var e = new Date;
8858                return e.setDate(e.getDate() + t),
8859                e
8860            }
8861              , o = function(i) {
8862                try {
8863                    return t.datepicker.parseDate(t.datepicker._get(e, "dateFormat"), i, t.datepicker._getFormatConfig(e))
8864                } catch (t) {}
8865                for (var n = (i.toLowerCase().match(/^c/) ? t.datepicker._getDate(e) : null) || new Date, s = n.getFullYear(), o = n.getMonth(), r = n.getDate(), a = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, l = a.exec(i); l; ) {
8866                    switch (l[2] || "d") {
8867                    case "d":
8868                    case "D":
8869                        r += parseInt(l[1], 10);
8870                        break;
8871                    case "w":
8872                    case "W":
8873                        r += 7 * parseInt(l[1], 10);
8874                        break;
8875                    case "m":
8876                    case "M":
8877                        o += parseInt(l[1], 10),
8878                        r = Math.min(r, t.datepicker._getDaysInMonth(s, o));
8879                        break;
8880                    case "y":
8881                    case "Y":
8882                        s += parseInt(l[1], 10),
8883                        r = Math.min(r, t.datepicker._getDaysInMonth(s, o))
8884                    }
8885                    l = a.exec(i)
8886                }
8887                return new Date(s,o,r)
8888            }
8889              , r = null == i || "" === i ? n : "string" == typeof i ? o(i) : "number" == typeof i ? isNaN(i) ? n : s(i) : new Date(i.getTime());
8890            return r = r && "Invalid Date" === r.toString() ? n : r,
8891            r && (r.setHours(0),
8892            r.setMinutes(0),
8893            r.setSeconds(0),
8894            r.setMilliseconds(0)),
8895            this._daylightSavingAdjust(r)
8896        },
8897        _daylightSavingAdjust: function(t) {
8898            return t ? (t.setHours(t.getHours() > 12 ? t.getHours() + 2 : 0),
8899            t) : null
8900        },
8901        _setDate: function(t, e, i) {
8902            var n = !e
8903              , s = t.selectedMonth
8904              , o = t.selectedYear
8905              , r = this._restrictMinMax(t, this._determineDate(t, e, new Date));
8906            t.selectedDay = t.currentDay = r.getDate(),
8907            t.drawMonth = t.selectedMonth = t.currentMonth = r.getMonth(),
8908            t.drawYear = t.selectedYear = t.currentYear = r.getFullYear(),
8909            s === t.selectedMonth && o === t.selectedYear || i || this._notifyChange(t),
8910            this._adjustInstDate(t),
8911            t.input && t.input.val(n ? "" : this._formatDate(t))
8912        },
8913        _getDate: function(t) {
8914            var e = !t.currentYear || t.input && "" === t.input.val() ? null : this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));
8915            return e
8916        },
8917        _attachHandlers: function(e) {
8918            var i = this._get(e, "stepMonths")
8919              , n = "#" + e.id.replace(/\\\\/g, "\\");
vendor: 29,803 bytes, lines 8920-9461
8920            e.dpDiv.find("[data-handler]").map(function() {
8921                var e = {
8922                    prev: function() {
8923                        t.datepicker._adjustDate(n, -i, "M")
8924                    },
8925                    next: function() {
8926                        t.datepicker._adjustDate(n, +i, "M")
8927                    },
8928                    hide: function() {
8929                        t.datepicker._hideDatepicker()
8930                    },
8931                    today: function() {
8932                        t.datepicker._gotoToday(n)
8933                    },
8934                    selectDay: function() {
8935                        return t.datepicker._selectDay(n, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this),
8936                        !1
8937                    },
8938                    selectMonth: function() {
8939                        return t.datepicker._selectMonthYear(n, this, "M"),
8940                        !1
8941                    },
8942                    selectYear: function() {
8943                        return t.datepicker._selectMonthYear(n, this, "Y"),
8944                        !1
8945                    }
8946                };
8947                t(this).on(this.getAttribute("data-event"), e[this.getAttribute("data-handler")])
8948            })
8949        },
8950        _generateHTML: function(t) {
8951            var e, i, n, s, o, r, a, l, h, u, c, d, p, f, g, m, v, b, _, y, w, x, k, C, D, T, S, I, E, P, M, A, N, H, z, j, O, W, F, L = new Date, R = this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())), q = this._get(t, "isRTL"), B = this._get(t, "showButtonPanel"), Y = this._get(t, "hideIfNoPrevNext"), $ = this._get(t, "navigationAsDateFormat"), U = this._getNumberOfMonths(t), K = this._get(t, "showCurrentAtPos"), X = this._get(t, "stepMonths"), V = 1 !== U[0] || 1 !== U[1], Q = this._daylightSavingAdjust(t.currentDay ? new Date(t.currentYear,t.currentMonth,t.currentDay) : new Date(9999,9,9)), G = this._getMinMaxDate(t, "min"), J = this._getMinMaxDate(t, "max"), Z = t.drawMonth - K, tt = t.drawYear;
8952            if (Z < 0 && (Z += 12,
8953            tt--),
8954            J)
8955                for (e = this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth() - U[0] * U[1] + 1,J.getDate())),
8956                e = G && e < G ? G : e; this._daylightSavingAdjust(new Date(tt,Z,1)) > e; )
8957                    Z--,
8958                    Z < 0 && (Z = 11,
8959                    tt--);
8960            for (t.drawMonth = Z,
8961            t.drawYear = tt,
8962            i = this._get(t, "prevText"),
8963            i = $ ? this.formatDate(i, this._daylightSavingAdjust(new Date(tt,Z - X,1)), this._getFormatConfig(t)) : i,
8964            n = this._canAdjustMonth(t, -1, tt, Z) ? "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='" + i + "'><span class='ui-icon ui-icon-circle-triangle-" + (q ? "e" : "w") + "'>" + i + "</span></a>" : Y ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + i + "'><span class='ui-icon ui-icon-circle-triangle-" + (q ? "e" : "w") + "'>" + i + "</span></a>",
8965            s = this._get(t, "nextText"),
8966            s = $ ? this.formatDate(s, this._daylightSavingAdjust(new Date(tt,Z + X,1)), this._getFormatConfig(t)) : s,
8967            o = this._canAdjustMonth(t, 1, tt, Z) ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" + s + "'><span class='ui-icon ui-icon-circle-triangle-" + (q ? "w" : "e") + "'>" + s + "</span></a>" : Y ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + s + "'><span class='ui-icon ui-icon-circle-triangle-" + (q ? "w" : "e") + "'>" + s + "</span></a>",
8968            r = this._get(t, "currentText"),
8969            a = this._get(t, "gotoCurrent") && t.currentDay ? Q : R,
8970            r = $ ? this.formatDate(r, a, this._getFormatConfig(t)) : r,
8971            l = t.inline ? "" : "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + this._get(t, "closeText") + "</button>",
8972            h = B ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (q ? l : "") + (this._isInRange(t, a) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" + r + "</button>" : "") + (q ? "" : l) + "</div>" : "",
8973            u = parseInt(this._get(t, "firstDay"), 10),
8974            u = isNaN(u) ? 0 : u,
8975            c = this._get(t, "showWeek"),
8976            d = this._get(t, "dayNames"),
8977            p = this._get(t, "dayNamesMin"),
8978            f = this._get(t, "monthNames"),
8979            g = this._get(t, "monthNamesShort"),
8980            m = this._get(t, "beforeShowDay"),
8981            v = this._get(t, "showOtherMonths"),
8982            b = this._get(t, "selectOtherMonths"),
8983            _ = this._getDefaultDate(t),
8984            y = "",
8985            x = 0; x < U[0]; x++) {
8986                for (k = "",
8987                this.maxRows = 4,
8988                C = 0; C < U[1]; C++) {
8989                    if (D = this._daylightSavingAdjust(new Date(tt,Z,t.selectedDay)),
8990                    T = " ui-corner-all",
8991                    S = "",
8992                    V) {
8993                        if (S += "<div class='ui-datepicker-group",
8994                        U[1] > 1)
8995                            switch (C) {
8996                            case 0:
8997                                S += " ui-datepicker-group-first",
8998                                T = " ui-corner-" + (q ? "right" : "left");
8999                                break;
9000                            case U[1] - 1:
9001                                S += " ui-datepicker-group-last",
9002                                T = " ui-corner-" + (q ? "left" : "right");
9003                                break;
9004                            default:
9005                                S += " ui-datepicker-group-middle",
9006                                T = ""
9007                            }
9008                        S += "'>"
9009                    }
9010                    for (S += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + T + "'>" + (/all|left/.test(T) && 0 === x ? q ? o : n : "") + (/all|right/.test(T) && 0 === x ? q ? n : o : "") + this._generateMonthYearHeader(t, Z, tt, G, J, x > 0 || C > 0, f, g) + "</div><table class='ui-datepicker-calendar'><thead><tr>",
9011                    I = c ? "<th class='ui-datepicker-week-col'>" + this._get(t, "weekHeader") + "</th>" : "",
9012                    w = 0; w < 7; w++)
9013                        E = (w + u) % 7,
9014                        I += "<th scope='col'" + ((w + u + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + "><span title='" + d[E] + "'>" + p[E] + "</span></th>";
9015                    for (S += I + "</tr></thead><tbody>",
9016                    P = this._getDaysInMonth(tt, Z),
9017                    tt === t.selectedYear && Z === t.selectedMonth && (t.selectedDay = Math.min(t.selectedDay, P)),
9018                    M = (this._getFirstDayOfMonth(tt, Z) - u + 7) % 7,
9019                    A = Math.ceil((M + P) / 7),
9020                    N = V && this.maxRows > A ? this.maxRows : A,
9021                    this.maxRows = N,
9022                    H = this._daylightSavingAdjust(new Date(tt,Z,1 - M)),
9023                    z = 0; z < N; z++) {
9024                        for (S += "<tr>",
9025                        j = c ? "<td class='ui-datepicker-week-col'>" + this._get(t, "calculateWeek")(H) + "</td>" : "",
9026                        w = 0; w < 7; w++)
9027                            O = m ? m.apply(t.input ? t.input[0] : null, [H]) : [!0, ""],
9028                            W = H.getMonth() !== Z,
9029                            F = W && !b || !O[0] || G && H < G || J && H > J,
9030                            j += "<td class='" + ((w + u + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (W ? " ui-datepicker-other-month" : "") + (H.getTime() === D.getTime() && Z === t.selectedMonth && t._keyEvent || _.getTime() === H.getTime() && _.getTime() === D.getTime() ? " " + this._dayOverClass : "") + (F ? " " + this._unselectableClass + " ui-state-disabled" : "") + (W && !v ? "" : " " + O[1] + (H.getTime() === Q.getTime() ? " " + this._currentClass : "") + (H.getTime() === R.getTime() ? " ui-datepicker-today" : "")) + "'" + (W && !v || !O[2] ? "" : " title='" + O[2].replace(/'/g, "&#39;") + "'") + (F ? "" : " data-handler='selectDay' data-event='click' data-month='" + H.getMonth() + "' data-year='" + H.getFullYear() + "'") + ">" + (W && !v ? "&#xa0;" : F ? "<span class='ui-state-default'>" + H.getDate() + "</span>" : "<a class='ui-state-default" + (H.getTime() === R.getTime() ? " ui-state-highlight" : "") + (H.getTime() === Q.getTime() ? " ui-state-active" : "") + (W ? " ui-priority-secondary" : "") + "' href='#'>" + H.getDate() + "</a>") + "</td>",
9031                            H.setDate(H.getDate() + 1),
9032                            H = this._daylightSavingAdjust(H);
9033                        S += j + "</tr>"
9034                    }
9035                    Z++,
9036                    Z > 11 && (Z = 0,
9037                    tt++),
9038                    S += "</tbody></table>" + (V ? "</div>" + (U[0] > 0 && C === U[1] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "") : ""),
9039                    k += S
9040                }
9041                y += k
9042            }
9043            return y += h,
9044            t._keyEvent = !1,
9045            y
9046        },
9047        _generateMonthYearHeader: function(t, e, i, n, s, o, r, a) {
9048            var l, h, u, c, d, p, f, g, m = this._get(t, "changeMonth"), v = this._get(t, "changeYear"), b = this._get(t, "showMonthAfterYear"), _ = "<div class='ui-datepicker-title'>", y = "";
9049            if (o || !m)
9050                y += "<span class='ui-datepicker-month'>" + r[e] + "</span>";
9051            else {
9052                for (l = n && n.getFullYear() === i,
9053                h = s && s.getFullYear() === i,
9054                y += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",
9055                u = 0; u < 12; u++)
9056                    (!l || u >= n.getMonth()) && (!h || u <= s.getMonth()) && (y += "<option value='" + u + "'" + (u === e ? " selected='selected'" : "") + ">" + a[u] + "</option>");
9057                y += "</select>"
9058            }
9059            if (b || (_ += y + (!o && m && v ? "" : "&#xa0;")),
9060            !t.yearshtml)
9061                if (t.yearshtml = "",
9062                o || !v)
9063                    _ += "<span class='ui-datepicker-year'>" + i + "</span>";
9064                else {
9065                    for (c = this._get(t, "yearRange").split(":"),
9066                    d = (new Date).getFullYear(),
9067                    p = function(t) {
9068                        var e = t.match(/c[+\-].*/) ? i + parseInt(t.substring(1), 10) : t.match(/[+\-].*/) ? d + parseInt(t, 10) : parseInt(t, 10);
9069                        return isNaN(e) ? d : e
9070                    }
9071                    ,
9072                    f = p(c[0]),
9073                    g = Math.max(f, p(c[1] || "")),
9074                    f = n ? Math.max(f, n.getFullYear()) : f,
9075                    g = s ? Math.min(g, s.getFullYear()) : g,
9076                    t.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; f <= g; f++)
9077                        t.yearshtml += "<option value='" + f + "'" + (f === i ? " selected='selected'" : "") + ">" + f + "</option>";
9078                    t.yearshtml += "</select>",
9079                    _ += t.yearshtml,
9080                    t.yearshtml = null
9081                }
9082            return _ += this._get(t, "yearSuffix"),
9083            b && (_ += (!o && m && v ? "" : "&#xa0;") + y),
9084            _ += "</div>"
9085        },
9086        _adjustInstDate: function(t, e, i) {
9087            var n = t.selectedYear + ("Y" === i ? e : 0)
9088              , s = t.selectedMonth + ("M" === i ? e : 0)
9089              , o = Math.min(t.selectedDay, this._getDaysInMonth(n, s)) + ("D" === i ? e : 0)
9090              , r = this._restrictMinMax(t, this._daylightSavingAdjust(new Date(n,s,o)));
9091            t.selectedDay = r.getDate(),
9092            t.drawMonth = t.selectedMonth = r.getMonth(),
9093            t.drawYear = t.selectedYear = r.getFullYear(),
9094            "M" !== i && "Y" !== i || this._notifyChange(t)
9095        },
9096        _restrictMinMax: function(t, e) {
9097            var i = this._getMinMaxDate(t, "min")
9098              , n = this._getMinMaxDate(t, "max")
9099              , s = i && e < i ? i : e;
9100            return n && s > n ? n : s
9101        },
9102        _notifyChange: function(t) {
9103            var e = this._get(t, "onChangeMonthYear");
9104            e && e.apply(t.input ? t.input[0] : null, [t.selectedYear, t.selectedMonth + 1, t])
9105        },
9106        _getNumberOfMonths: function(t) {
9107            var e = this._get(t, "numberOfMonths");
9108            return null == e ? [1, 1] : "number" == typeof e ? [1, e] : e
9109        },
9110        _getMinMaxDate: function(t, e) {
9111            return this._determineDate(t, this._get(t, e + "Date"), null)
9112        },
9113        _getDaysInMonth: function(t, e) {
9114            return 32 - this._daylightSavingAdjust(new Date(t,e,32)).getDate()
9115        },
9116        _getFirstDayOfMonth: function(t, e) {
9117            return new Date(t,e,1).getDay()
9118        },
9119        _canAdjustMonth: function(t, e, i, n) {
9120            var s = this._getNumberOfMonths(t)
9121              , o = this._daylightSavingAdjust(new Date(i,n + (e < 0 ? e : s[0] * s[1]),1));
9122            return e < 0 && o.setDate(this._getDaysInMonth(o.getFullYear(), o.getMonth())),
9123            this._isInRange(t, o)
9124        },
9125        _isInRange: function(t, e) {
9126            var i, n, s = this._getMinMaxDate(t, "min"), o = this._getMinMaxDate(t, "max"), r = null, a = null, l = this._get(t, "yearRange");
9127            return l && (i = l.split(":"),
9128            n = (new Date).getFullYear(),
9129            r = parseInt(i[0], 10),
9130            a = parseInt(i[1], 10),
9131            i[0].match(/[+\-].*/) && (r += n),
9132            i[1].match(/[+\-].*/) && (a += n)),
9133            (!s || e.getTime() >= s.getTime()) && (!o || e.getTime() <= o.getTime()) && (!r || e.getFullYear() >= r) && (!a || e.getFullYear() <= a)
9134        },
9135        _getFormatConfig: function(t) {
9136            var e = this._get(t, "shortYearCutoff");
9137            return e = "string" != typeof e ? e : (new Date).getFullYear() % 100 + parseInt(e, 10),
9138            {
9139                shortYearCutoff: e,
9140                dayNamesShort: this._get(t, "dayNamesShort"),
9141                dayNames: this._get(t, "dayNames"),
9142                monthNamesShort: this._get(t, "monthNamesShort"),
9143                monthNames: this._get(t, "monthNames")
9144            }
9145        },
9146        _formatDate: function(t, e, i, n) {
9147            e || (t.currentDay = t.selectedDay,
9148            t.currentMonth = t.selectedMonth,
9149            t.currentYear = t.selectedYear);
9150            var s = e ? "object" == typeof e ? e : this._daylightSavingAdjust(new Date(n,i,e)) : this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));
9151            return this.formatDate(this._get(t, "dateFormat"), s, this._getFormatConfig(t))
9152        }
9153    }),
9154    t.fn.datepicker = function(e) {
9155        if (!this.length)
9156            return this;
9157        t.datepicker.initialized || (t(document).on("mousedown", t.datepicker._checkExternalClick),
9158        t.datepicker.initialized = !0),
9159        0 === t("#" + t.datepicker._mainDivId).length && t("body").append(t.datepicker.dpDiv);
9160        var i = Array.prototype.slice.call(arguments, 1);
9161        return "string" != typeof e || "isDisabled" !== e && "getDate" !== e && "widget" !== e ? "option" === e && 2 === arguments.length && "string" == typeof arguments[1] ? t.datepicker["_" + e + "Datepicker"].apply(t.datepicker, [this[0]].concat(i)) : this.each(function() {
9162            "string" == typeof e ? t.datepicker["_" + e + "Datepicker"].apply(t.datepicker, [this].concat(i)) : t.datepicker._attachDatepicker(this, e)
9163        }) : t.datepicker["_" + e + "Datepicker"].apply(t.datepicker, [this[0]].concat(i))
9164    }
9165    ,
9166    t.datepicker = new i,
9167    t.datepicker.initialized = !1,
9168    t.datepicker.uuid = (new Date).getTime(),
9169    t.datepicker.version = "1.12.1",
9170    t.datepicker
9171}),
9172function(t) {
9173    "function" == typeof define && define.amd ? define(["jquery", "../ie", "../version", "../widget"], t) : t(jQuery)
9174}(function(t) {
9175    var e = !1;
9176    return t(document).on("mouseup", function() {
9177        e = !1
9178    }),
9179    t.widget("ui.mouse", {
9180        version: "1.12.1",
9181        options: {
9182            cancel: "input, textarea, button, select, option",
9183            distance: 1,
9184            delay: 0
9185        },
9186        _mouseInit: function() {
9187            var e = this;
9188            this.element.on("mousedown." + this.widgetName, function(t) {
9189                return e._mouseDown(t)
9190            }).on("click." + this.widgetName, function(i) {
9191                if (!0 === t.data(i.target, e.widgetName + ".preventClickEvent"))
9192                    return t.removeData(i.target, e.widgetName + ".preventClickEvent"),
9193                    i.stopImmediatePropagation(),
9194                    !1
9195            }),
9196            this.started = !1
9197        },
9198        _mouseDestroy: function() {
9199            this.element.off("." + this.widgetName),
9200            this._mouseMoveDelegate && this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate)
9201        },
9202        _mouseDown: function(i) {
9203            if (!e) {
9204                this._mouseMoved = !1,
9205                this._mouseStarted && this._mouseUp(i),
9206                this._mouseDownEvent = i;
9207                var n = this
9208                  , s = 1 === i.which
9209                  , o = !("string" != typeof this.options.cancel || !i.target.nodeName) && t(i.target).closest(this.options.cancel).length;
9210                return !(s && !o && this._mouseCapture(i)) || (this.mouseDelayMet = !this.options.delay,
9211                this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
9212                    n.mouseDelayMet = !0
9213                }, this.options.delay)),
9214                this._mouseDistanceMet(i) && this._mouseDelayMet(i) && (this._mouseStarted = this._mouseStart(i) !== !1,
9215                !this._mouseStarted) ? (i.preventDefault(),
9216                !0) : (!0 === t.data(i.target, this.widgetName + ".preventClickEvent") && t.removeData(i.target, this.widgetName + ".preventClickEvent"),
9217                this._mouseMoveDelegate = function(t) {
9218                    return n._mouseMove(t)
9219                }
9220                ,
9221                this._mouseUpDelegate = function(t) {
9222                    return n._mouseUp(t)
9223                }
9224                ,
9225                this.document.on("mousemove." + this.widgetName, this._mouseMoveDelegate).on("mouseup." + this.widgetName, this._mouseUpDelegate),
9226                i.preventDefault(),
9227                e = !0,
9228                !0))
9229            }
9230        },
9231        _mouseMove: function(e) {
9232            if (this._mouseMoved) {
9233                if (t.ui.ie && (!document.documentMode || document.documentMode < 9) && !e.button)
9234                    return this._mouseUp(e);
9235                if (!e.which)
9236                    if (e.originalEvent.altKey || e.originalEvent.ctrlKey || e.originalEvent.metaKey || e.originalEvent.shiftKey)
9237                        this.ignoreMissingWhich = !0;
9238                    else if (!this.ignoreMissingWhich)
9239                        return this._mouseUp(e)
9240            }
9241            return (e.which || e.button) && (this._mouseMoved = !0),
9242            this._mouseStarted ? (this._mouseDrag(e),
9243            e.preventDefault()) : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, e) !== !1,
9244            this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)),
9245            !this._mouseStarted)
9246        },
9247        _mouseUp: function(i) {
9248            this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate),
9249            this._mouseStarted && (this._mouseStarted = !1,
9250            i.target === this._mouseDownEvent.target && t.data(i.target, this.widgetName + ".preventClickEvent", !0),
9251            this._mouseStop(i)),
9252            this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer),
9253            delete this._mouseDelayTimer),
9254            this.ignoreMissingWhich = !1,
9255            e = !1,
9256            i.preventDefault()
9257        },
9258        _mouseDistanceMet: function(t) {
9259            return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance
9260        },
9261        _mouseDelayMet: function() {
9262            return this.mouseDelayMet
9263        },
9264        _mouseStart: function() {},
9265        _mouseDrag: function() {},
9266        _mouseStop: function() {},
9267        _mouseCapture: function() {
9268            return !0
9269        }
9270    })
9271}),
9272function(t) {
9273    "function" == typeof define && define.amd ? define(["jquery", "./mouse", "../data", "../plugin", "../safe-active-element", "../safe-blur", "../scroll-parent", "../version", "../widget"], t) : t(jQuery)
9274}(function(t) {
9275    return t.widget("ui.draggable", t.ui.mouse, {
9276        version: "1.12.1",
9277        widgetEventPrefix: "drag",
9278        options: {
9279            addClasses: !0,
9280            appendTo: "parent",
9281            axis: !1,
9282            connectToSortable: !1,
9283            containment: !1,
9284            cursor: "auto",
9285            cursorAt: !1,
9286            grid: !1,
9287            handle: !1,
9288            helper: "original",
9289            iframeFix: !1,
9290            opacity: !1,
9291            refreshPositions: !1,
9292            revert: !1,
9293            revertDuration: 500,
9294            scope: "default",
9295            scroll: !0,
9296            scrollSensitivity: 20,
9297            scrollSpeed: 20,
9298            snap: !1,
9299            snapMode: "both",
9300            snapTolerance: 20,
9301            stack: !1,
9302            zIndex: !1,
9303            drag: null,
9304            start: null,
9305            stop: null
9306        },
9307        _create: function() {
9308            "original" === this.options.helper && this._setPositionRelative(),
9309            this.options.addClasses && this._addClass("ui-draggable"),
9310            this._setHandleClassName(),
9311            this._mouseInit()
9312        },
9313        _setOption: function(t, e) {
9314            this._super(t, e),
9315            "handle" === t && (this._removeHandleClassName(),
9316            this._setHandleClassName())
9317        },
9318        _destroy: function() {
9319            return (this.helper || this.element).is(".ui-draggable-dragging") ? void (this.destroyOnClear = !0) : (this._removeHandleClassName(),
9320            void this._mouseDestroy())
9321        },
9322        _mouseCapture: function(e) {
9323            var i = this.options;
9324            return !(this.helper || i.disabled || t(e.target).closest(".ui-resizable-handle").length > 0) && (this.handle = this._getHandle(e),
9325            !!this.handle && (this._blurActiveElement(e),
9326            this._blockFrames(i.iframeFix === !0 ? "iframe" : i.iframeFix),
9327            !0))
9328        },
9329        _blockFrames: function(e) {
9330            this.iframeBlocks = this.document.find(e).map(function() {
9331                var e = t(this);
9332                return t("<div>").css("position", "absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]
9333            })
9334        },
9335        _unblockFrames: function() {
9336            this.iframeBlocks && (this.iframeBlocks.remove(),
9337            delete this.iframeBlocks)
9338        },
9339        _blurActiveElement: function(e) {
9340            var i = t.ui.safeActiveElement(this.document[0])
9341              , n = t(e.target);
9342            n.closest(i).length || t.ui.safeBlur(i)
9343        },
9344        _mouseStart: function(e) {
9345            var i = this.options;
9346            return this.helper = this._createHelper(e),
9347            this._addClass(this.helper, "ui-draggable-dragging"),
9348            this._cacheHelperProportions(),
9349            t.ui.ddmanager && (t.ui.ddmanager.current = this),
9350            this._cacheMargins(),
9351            this.cssPosition = this.helper.css("position"),
9352            this.scrollParent = this.helper.scrollParent(!0),
9353            this.offsetParent = this.helper.offsetParent(),
9354            this.hasFixedAncestor = this.helper.parents().filter(function() {
9355                return "fixed" === t(this).css("position")
9356            }).length > 0,
9357            this.positionAbs = this.element.offset(),
9358            this._refreshOffsets(e),
9359            this.originalPosition = this.position = this._generatePosition(e, !1),
9360            this.originalPageX = e.pageX,
9361            this.originalPageY = e.pageY,
9362            i.cursorAt && this._adjustOffsetFromHelper(i.cursorAt),
9363            this._setContainment(),
9364            this._trigger("start", e) === !1 ? (this._clear(),
9365            !1) : (this._cacheHelperProportions(),
9366            t.ui.ddmanager && !i.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e),
9367            this._mouseDrag(e, !0),
9368            t.ui.ddmanager && t.ui.ddmanager.dragStart(this, e),
9369            !0)
9370        },
9371        _refreshOffsets: function(t) {
9372            this.offset = {
9373                top: this.positionAbs.top - this.margins.top,
9374                left: this.positionAbs.left - this.margins.left,
9375                scroll: !1,
9376                parent: this._getParentOffset(),
9377                relative: this._getRelativeOffset()
9378            },
9379            this.offset.click = {
9380                left: t.pageX - this.offset.left,
9381                top: t.pageY - this.offset.top
9382            }
9383        },
9384        _mouseDrag: function(e, i) {
9385            if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()),
9386            this.position = this._generatePosition(e, !0),
9387            this.positionAbs = this._convertPositionTo("absolute"),
9388            !i) {
9389                var n = this._uiHash();
9390                if (this._trigger("drag", e, n) === !1)
9391                    return this._mouseUp(new t.Event("mouseup",e)),
9392                    !1;
9393                this.position = n.position
9394            }
9395            return this.helper[0].style.left = this.position.left + "px",
9396            this.helper[0].style.top = this.position.top + "px",
9397            t.ui.ddmanager && t.ui.ddmanager.drag(this, e),
9398            !1
9399        },
9400        _mouseStop: function(e) {
9401            var i = this
9402              , n = !1;
9403            return t.ui.ddmanager && !this.options.dropBehaviour && (n = t.ui.ddmanager.drop(this, e)),
9404            this.dropped && (n = this.dropped,
9405            this.dropped = !1),
9406            "invalid" === this.options.revert && !n || "valid" === this.options.revert && n || this.options.revert === !0 || t.isFunction(this.options.revert) && this.options.revert.call(this.element, n) ? t(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
9407                i._trigger("stop", e) !== !1 && i._clear()
9408            }) : this._trigger("stop", e) !== !1 && this._clear(),
9409            !1
9410        },
9411        _mouseUp: function(e) {
9412            return this._unblockFrames(),
9413            t.ui.ddmanager && t.ui.ddmanager.dragStop(this, e),
9414            this.handleElement.is(e.target) && this.element.trigger("focus"),
9415            t.ui.mouse.prototype._mouseUp.call(this, e)
9416        },
9417        cancel: function() {
9418            return this.helper.is(".ui-draggable-dragging") ? this._mouseUp(new t.Event("mouseup",{
9419                target: this.element[0]
9420            })) : this._clear(),
9421            this
9422        },
9423        _getHandle: function(e) {
9424            return !this.options.handle || !!t(e.target).closest(this.element.find(this.options.handle)).length
9425        },
9426        _setHandleClassName: function() {
9427            this.handleElement = this.options.handle ? this.element.find(this.options.handle) : this.element,
9428            this._addClass(this.handleElement, "ui-draggable-handle")
9429        },
9430        _removeHandleClassName: function() {
9431            this._removeClass(this.handleElement, "ui-draggable-handle")
9432        },
9433        _createHelper: function(e) {
9434            var i = this.options
9435              , n = t.isFunction(i.helper)
9436              , s = n ? t(i.helper.apply(this.element[0], [e])) : "clone" === i.helper ? this.element.clone().removeAttr("id") : this.element;
9437            return s.parents("body").length || s.appendTo("parent" === i.appendTo ? this.element[0].parentNode : i.appendTo),
9438            n && s[0] === this.element[0] && this._setPositionRelative(),
9439            s[0] === this.element[0] || /(fixed|absolute)/.test(s.css("position")) || s.css("position", "absolute"),
9440            s
9441        },
9442        _setPositionRelative: function() {
9443            /^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative")
9444        },
9445        _adjustOffsetFromHelper: function(e) {
9446            "string" == typeof e && (e = e.split(" ")),
9447            t.isArray(e) && (e = {
9448                left: +e[0],
9449                top: +e[1] || 0
9450            }),
9451            "left"in e && (this.offset.click.left = e.left + this.margins.left),
9452            "right"in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left),
9453            "top"in e && (this.offset.click.top = e.top + this.margins.top),
9454            "bottom"in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top)
9455        },
9456        _isRootNode: function(t) {
9457            return /(html|body)/i.test(t.tagName) || t === this.document[0]
9458        },
9459        _getParentOffset: function() {
9460            var e = this.offsetParent.offset()
9461              , i
vendor: 4,321 bytes, lines 9461-9519
9461 = this.document[0];
9462            return "absolute" === this.cssPosition && this.scrollParent[0] !== i && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(),
9463            e.top += this.scrollParent.scrollTop()),
9464            this._isRootNode(this.offsetParent[0]) && (e = {
9465                top: 0,
9466                left: 0
9467            }),
9468            {
9469                top: e.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
9470                left: e.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
9471            }
9472        },
9473        _getRelativeOffset: function() {
9474            if ("relative" !== this.cssPosition)
9475                return {
9476                    top: 0,
9477                    left: 0
9478                };
9479            var t = this.element.position()
9480              , e = this._isRootNode(this.scrollParent[0]);
9481            return {
9482                top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + (e ? 0 : this.scrollParent.scrollTop()),
9483                left: t.left - (parseInt(this.helper.css("left"), 10) || 0) + (e ? 0 : this.scrollParent.scrollLeft())
9484            }
9485        },
9486        _cacheMargins: function() {
9487            this.margins = {
9488                left: parseInt(this.element.css("marginLeft"), 10) || 0,
9489                top: parseInt(this.element.css("marginTop"), 10) || 0,
9490                right: parseInt(this.element.css("marginRight"), 10) || 0,
9491                bottom: parseInt(this.element.css("marginBottom"), 10) || 0
9492            }
9493        },
9494        _cacheHelperProportions: function() {
9495            this.helperProportions = {
9496                width: this.helper.outerWidth(),
9497                height: this.helper.outerHeight()
9498            }
9499        },
9500        _setContainment: function() {
9501            var e, i, n, s = this.options, o = this.document[0];
9502            return this.relativeContainer = null,
9503            s.containment ? "window" === s.containment ? void (this.containment = [t(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, t(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, t(window).scrollLeft() + t(window).width() - this.helperProportions.width - this.margins.left, t(window).scrollTop() + (t(window).height() || o.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]) : "document" === s.containment ? void (this.containment = [0, 0, t(o).width() - this.helperProportions.width - this.margins.left, (t(o).height() || o.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]) : s.containment.constructor === Array ? void (this.containment = s.containment) : ("parent" === s.containment && (s.containment = this.helper[0].parentNode),
9504            i = t(s.containment),
9505            n = i[0],
9506            void (n && (e = /(scroll|auto)/.test(i.css("overflow")),
9507            this.containment = [(parseInt(i.css("borderLeftWidth"), 10) || 0) + (parseInt(i.css("paddingLeft"), 10) || 0), (parseInt(i.css("borderTopWidth"), 10) || 0) + (parseInt(i.css("paddingTop"), 10) || 0), (e ? Math.max(n.scrollWidth, n.offsetWidth) : n.offsetWidth) - (parseInt(i.css("borderRightWidth"), 10) || 0) - (parseInt(i.css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (e ? Math.max(n.scrollHeight, n.offsetHeight) : n.offsetHeight) - (parseInt(i.css("borderBottomWidth"), 10) || 0) - (parseInt(i.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom],
9508            this.relativeContainer = i))) : void (this.containment = null)
9509        },
9510        _convertPositionTo: function(t, e) {
9511            e || (e = this.position);
9512            var i = "absolute" === t ? 1 : -1
9513              , n = this._isRootNode(this.scrollParent[0]);
9514            return {
9515                top: e.top + this.offset.relative.top * i + this.offset.parent.top * i - ("fixed" === this.cssPosition ? -this.offset.scroll.top : n ? 0 : this.offset.scroll.top) * i,
9516                left: e.left + this.offset.relative.left * i + this.offset.parent.left * i - ("fixed" === this.cssPosition ? -this.offset.scroll.left : n ? 0 : this.offset.scroll.left) * i
9517            }
9518        },
9519        _generatePosition: function(t, e) {
vendor: 2,561 bytes, lines 9520-9551
9520            var i, n, s, o, r = this.options, a = this._isRootNode(this.scrollParent[0]), l = t.pageX, h = t.pageY;
9521            return a && this.offset.scroll || (this.offset.scroll = {
9522                top: this.scrollParent.scrollTop(),
9523                left: this.scrollParent.scrollLeft()
9524            }),
9525            e && (this.containment && (this.relativeContainer ? (n = this.relativeContainer.offset(),
9526            i = [this.containment[0] + n.left, this.containment[1] + n.top, this.containment[2] + n.left, this.containment[3] + n.top]) : i = this.containment,
9527            t.pageX - this.offset.click.left < i[0] && (l = i[0] + this.offset.click.left),
9528            t.pageY - this.offset.click.top < i[1] && (h = i[1] + this.offset.click.top),
9529            t.pageX - this.offset.click.left > i[2] && (l = i[2] + this.offset.click.left),
9530            t.pageY - this.offset.click.top > i[3] && (h = i[3] + this.offset.click.top)),
9531            r.grid && (s = r.grid[1] ? this.originalPageY + Math.round((h - this.originalPageY) / r.grid[1]) * r.grid[1] : this.originalPageY,
9532            h = i ? s - this.offset.click.top >= i[1] || s - this.offset.click.top > i[3] ? s : s - this.offset.click.top >= i[1] ? s - r.grid[1] : s + r.grid[1] : s,
9533            o = r.grid[0] ? this.originalPageX + Math.round((l - this.originalPageX) / r.grid[0]) * r.grid[0] : this.originalPageX,
9534            l = i ? o - this.offset.click.left >= i[0] || o - this.offset.click.left > i[2] ? o : o - this.offset.click.left >= i[0] ? o - r.grid[0] : o + r.grid[0] : o),
9535            "y" === r.axis && (l = this.originalPageX),
9536            "x" === r.axis && (h = this.originalPageY)),
9537            {
9538                top: h - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.offset.scroll.top : a ? 0 : this.offset.scroll.top),
9539                left: l - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.offset.scroll.left : a ? 0 : this.offset.scroll.left)
9540            }
9541        },
9542        _clear: function() {
9543            this._removeClass(this.helper, "ui-draggable-dragging"),
9544            this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(),
9545            this.helper = null,
9546            this.cancelHelperRemoval = !1,
9547            this.destroyOnClear && this.destroy()
9548        },
9549        _trigger: function(e, i, n) {
9550            return n = n || this._uiHash(),
9551            t.ui.plugin.call(this, e, [i, n, this], !0),
vendor: 4,996 bytes, lines 9552-9672
9552            /^(drag|start|stop)/.test(e) && (this.positionAbs = this._convertPositionTo("absolute"),
9553            n.offset = this.positionAbs),
9554            t.Widget.prototype._trigger.call(this, e, i, n)
9555        },
9556        plugins: {},
9557        _uiHash: function() {
9558            return {
9559                helper: this.helper,
9560                position: this.position,
9561                originalPosition: this.originalPosition,
9562                offset: this.positionAbs
9563            }
9564        }
9565    }),
9566    t.ui.plugin.add("draggable", "connectToSortable", {
9567        start: function(e, i, n) {
9568            var s = t.extend({}, i, {
9569                item: n.element
9570            });
9571            n.sortables = [],
9572            t(n.options.connectToSortable).each(function() {
9573                var i = t(this).sortable("instance");
9574                i && !i.options.disabled && (n.sortables.push(i),
9575                i.refreshPositions(),
9576                i._trigger("activate", e, s))
9577            })
9578        },
9579        stop: function(e, i, n) {
9580            var s = t.extend({}, i, {
9581                item: n.element
9582            });
9583            n.cancelHelperRemoval = !1,
9584            t.each(n.sortables, function() {
9585                var t = this;
9586                t.isOver ? (t.isOver = 0,
9587                n.cancelHelperRemoval = !0,
9588                t.cancelHelperRemoval = !1,
9589                t._storedCSS = {
9590                    position: t.placeholder.css("position"),
9591                    top: t.placeholder.css("top"),
9592                    left: t.placeholder.css("left")
9593                },
9594                t._mouseStop(e),
9595                t.options.helper = t.options._helper) : (t.cancelHelperRemoval = !0,
9596                t._trigger("deactivate", e, s))
9597            })
9598        },
9599        drag: function(e, i, n) {
9600            t.each(n.sortables, function() {
9601                var s = !1
9602                  , o = this;
9603                o.positionAbs = n.positionAbs,
9604                o.helperProportions = n.helperProportions,
9605                o.offset.click = n.offset.click,
9606                o._intersectsWith(o.containerCache) && (s = !0,
9607                t.each(n.sortables, function() {
9608                    return this.positionAbs = n.positionAbs,
9609                    this.helperProportions = n.helperProportions,
9610                    this.offset.click = n.offset.click,
9611                    this !== o && this._intersectsWith(this.containerCache) && t.contains(o.element[0], this.element[0]) && (s = !1),
9612                    s
9613                })),
9614                s ? (o.isOver || (o.isOver = 1,
9615                n._parent = i.helper.parent(),
9616                o.currentItem = i.helper.appendTo(o.element).data("ui-sortable-item", !0),
9617                o.options._helper = o.options.helper,
9618                o.options.helper = function() {
9619                    return i.helper[0]
9620                }
9621                ,
9622                e.target = o.currentItem[0],
9623                o._mouseCapture(e, !0),
9624                o._mouseStart(e, !0, !0),
9625                o.offset.click.top = n.offset.click.top,
9626                o.offset.click.left = n.offset.click.left,
9627                o.offset.parent.left -= n.offset.parent.left - o.offset.parent.left,
9628                o.offset.parent.top -= n.offset.parent.top - o.offset.parent.top,
9629                n._trigger("toSortable", e),
9630                n.dropped = o.element,
9631                t.each(n.sortables, function() {
9632                    this.refreshPositions()
9633                }),
9634                n.currentItem = n.element,
9635                o.fromOutside = n),
9636                o.currentItem && (o._mouseDrag(e),
9637                i.position = o.position)) : o.isOver && (o.isOver = 0,
9638                o.cancelHelperRemoval = !0,
9639                o.options._revert = o.options.revert,
9640                o.options.revert = !1,
9641                o._trigger("out", e, o._uiHash(o)),
9642                o._mouseStop(e, !0),
9643                o.options.revert = o.options._revert,
9644                o.options.helper = o.options._helper,
9645                o.placeholder && o.placeholder.remove(),
9646                i.helper.appendTo(n._parent),
9647                n._refreshOffsets(e),
9648                i.position = n._generatePosition(e, !0),
9649                n._trigger("fromSortable", e),
9650                n.dropped = !1,
9651                t.each(n.sortables, function() {
9652                    this.refreshPositions()
9653                }))
9654            })
9655        }
9656    }),
9657    t.ui.plugin.add("draggable", "cursor", {
9658        start: function(e, i, n) {
9659            var s = t("body")
9660              , o = n.options;
9661            s.css("cursor") && (o._cursor = s.css("cursor")),
9662            s.css("cursor", o.cursor)
9663        },
9664        stop: function(e, i, n) {
9665            var s = n.options;
9666            s._cursor && t("body").css("cursor", s._cursor)
9667        }
9668    }),
9669    t.ui.plugin.add("draggable", "opacity", {
9670        start: function(e, i, n) {
9671            var s = t(i.helper)
9672              , o = n.options;
vendor: 20,737 bytes, lines 9673-10116
9673            s.css("opacity") && (o._opacity = s.css("opacity")),
9674            s.css("opacity", o.opacity)
9675        },
9676        stop: function(e, i, n) {
9677            var s = n.options;
9678            s._opacity && t(i.helper).css("opacity", s._opacity)
9679        }
9680    }),
9681    t.ui.plugin.add("draggable", "scroll", {
9682        start: function(t, e, i) {
9683            i.scrollParentNotHidden || (i.scrollParentNotHidden = i.helper.scrollParent(!1)),
9684            i.scrollParentNotHidden[0] !== i.document[0] && "HTML" !== i.scrollParentNotHidden[0].tagName && (i.overflowOffset = i.scrollParentNotHidden.offset())
9685        },
9686        drag: function(e, i, n) {
9687            var s = n.options
9688              , o = !1
9689              , r = n.scrollParentNotHidden[0]
9690              , a = n.document[0];
9691            r !== a && "HTML" !== r.tagName ? (s.axis && "x" === s.axis || (n.overflowOffset.top + r.offsetHeight - e.pageY < s.scrollSensitivity ? r.scrollTop = o = r.scrollTop + s.scrollSpeed : e.pageY - n.overflowOffset.top < s.scrollSensitivity && (r.scrollTop = o = r.scrollTop - s.scrollSpeed)),
9692            s.axis && "y" === s.axis || (n.overflowOffset.left + r.offsetWidth - e.pageX < s.scrollSensitivity ? r.scrollLeft = o = r.scrollLeft + s.scrollSpeed : e.pageX - n.overflowOffset.left < s.scrollSensitivity && (r.scrollLeft = o = r.scrollLeft - s.scrollSpeed))) : (s.axis && "x" === s.axis || (e.pageY - t(a).scrollTop() < s.scrollSensitivity ? o = t(a).scrollTop(t(a).scrollTop() - s.scrollSpeed) : t(window).height() - (e.pageY - t(a).scrollTop()) < s.scrollSensitivity && (o = t(a).scrollTop(t(a).scrollTop() + s.scrollSpeed))),
9693            s.axis && "y" === s.axis || (e.pageX - t(a).scrollLeft() < s.scrollSensitivity ? o = t(a).scrollLeft(t(a).scrollLeft() - s.scrollSpeed) : t(window).width() - (e.pageX - t(a).scrollLeft()) < s.scrollSensitivity && (o = t(a).scrollLeft(t(a).scrollLeft() + s.scrollSpeed)))),
9694            o !== !1 && t.ui.ddmanager && !s.dropBehaviour && t.ui.ddmanager.prepareOffsets(n, e)
9695        }
9696    }),
9697    t.ui.plugin.add("draggable", "snap", {
9698        start: function(e, i, n) {
9699            var s = n.options;
9700            n.snapElements = [],
9701            t(s.snap.constructor !== String ? s.snap.items || ":data(ui-draggable)" : s.snap).each(function() {
9702                var e = t(this)
9703                  , i = e.offset();
9704                this !== n.element[0] && n.snapElements.push({
9705                    item: this,
9706                    width: e.outerWidth(),
9707                    height: e.outerHeight(),
9708                    top: i.top,
9709                    left: i.left
9710                })
9711            })
9712        },
9713        drag: function(e, i, n) {
9714            var s, o, r, a, l, h, u, c, d, p, f = n.options, g = f.snapTolerance, m = i.offset.left, v = m + n.helperProportions.width, b = i.offset.top, _ = b + n.helperProportions.height;
9715            for (d = n.snapElements.length - 1; d >= 0; d--)
9716                l = n.snapElements[d].left - n.margins.left,
9717                h = l + n.snapElements[d].width,
9718                u = n.snapElements[d].top - n.margins.top,
9719                c = u + n.snapElements[d].height,
9720                v < l - g || m > h + g || _ < u - g || b > c + g || !t.contains(n.snapElements[d].item.ownerDocument, n.snapElements[d].item) ? (n.snapElements[d].snapping && n.options.snap.release && n.options.snap.release.call(n.element, e, t.extend(n._uiHash(), {
9721                    snapItem: n.snapElements[d].item
9722                })),
9723                n.snapElements[d].snapping = !1) : ("inner" !== f.snapMode && (s = Math.abs(u - _) <= g,
9724                o = Math.abs(c - b) <= g,
9725                r = Math.abs(l - v) <= g,
9726                a = Math.abs(h - m) <= g,
9727                s && (i.position.top = n._convertPositionTo("relative", {
9728                    top: u - n.helperProportions.height,
9729                    left: 0
9730                }).top),
9731                o && (i.position.top = n._convertPositionTo("relative", {
9732                    top: c,
9733                    left: 0
9734                }).top),
9735                r && (i.position.left = n._convertPositionTo("relative", {
9736                    top: 0,
9737                    left: l - n.helperProportions.width
9738                }).left),
9739                a && (i.position.left = n._convertPositionTo("relative", {
9740                    top: 0,
9741                    left: h
9742                }).left)),
9743                p = s || o || r || a,
9744                "outer" !== f.snapMode && (s = Math.abs(u - b) <= g,
9745                o = Math.abs(c - _) <= g,
9746                r = Math.abs(l - m) <= g,
9747                a = Math.abs(h - v) <= g,
9748                s && (i.position.top = n._convertPositionTo("relative", {
9749                    top: u,
9750                    left: 0
9751                }).top),
9752                o && (i.position.top = n._convertPositionTo("relative", {
9753                    top: c - n.helperProportions.height,
9754                    left: 0
9755                }).top),
9756                r && (i.position.left = n._convertPositionTo("relative", {
9757                    top: 0,
9758                    left: l
9759                }).left),
9760                a && (i.position.left = n._convertPositionTo("relative", {
9761                    top: 0,
9762                    left: h - n.helperProportions.width
9763                }).left)),
9764                !n.snapElements[d].snapping && (s || o || r || a || p) && n.options.snap.snap && n.options.snap.snap.call(n.element, e, t.extend(n._uiHash(), {
9765                    snapItem: n.snapElements[d].item
9766                })),
9767                n.snapElements[d].snapping = s || o || r || a || p)
9768        }
9769    }),
9770    t.ui.plugin.add("draggable", "stack", {
9771        start: function(e, i, n) {
9772            var s, o = n.options, r = t.makeArray(t(o.stack)).sort(function(e, i) {
9773                return (parseInt(t(e).css("zIndex"), 10) || 0) - (parseInt(t(i).css("zIndex"), 10) || 0)
9774            });
9775            r.length && (s = parseInt(t(r[0]).css("zIndex"), 10) || 0,
9776            t(r).each(function(e) {
9777                t(this).css("zIndex", s + e)
9778            }),
9779            this.css("zIndex", s + r.length))
9780        }
9781    }),
9782    t.ui.plugin.add("draggable", "zIndex", {
9783        start: function(e, i, n) {
9784            var s = t(i.helper)
9785              , o = n.options;
9786            s.css("zIndex") && (o._zIndex = s.css("zIndex")),
9787            s.css("zIndex", o.zIndex)
9788        },
9789        stop: function(e, i, n) {
9790            var s = n.options;
9791            s._zIndex && t(i.helper).css("zIndex", s._zIndex)
9792        }
9793    }),
9794    t.ui.draggable
9795}),
9796function(t) {
9797    "function" == typeof define && define.amd ? define(["jquery", "./mouse", "../disable-selection", "../plugin", "../version", "../widget"], t) : t(jQuery)
9798}(function(t) {
9799    return t.widget("ui.resizable", t.ui.mouse, {
9800        version: "1.12.1",
9801        widgetEventPrefix: "resize",
9802        options: {
9803            alsoResize: !1,
9804            animate: !1,
9805            animateDuration: "slow",
9806            animateEasing: "swing",
9807            aspectRatio: !1,
9808            autoHide: !1,
9809            classes: {
9810                "ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se"
9811            },
9812            containment: !1,
9813            ghost: !1,
9814            grid: !1,
9815            handles: "e,s,se",
9816            helper: !1,
9817            maxHeight: null,
9818            maxWidth: null,
9819            minHeight: 10,
9820            minWidth: 10,
9821            zIndex: 90,
9822            resize: null,
9823            start: null,
9824            stop: null
9825        },
9826        _num: function(t) {
9827            return parseFloat(t) || 0
9828        },
9829        _isNumber: function(t) {
9830            return !isNaN(parseFloat(t))
9831        },
9832        _hasScroll: function(e, i) {
9833            if ("hidden" === t(e).css("overflow"))
9834                return !1;
9835            var n = i && "left" === i ? "scrollLeft" : "scrollTop"
9836              , s = !1;
9837            return e[n] > 0 || (e[n] = 1,
9838            s = e[n] > 0,
9839            e[n] = 0,
9840            s)
9841        },
9842        _create: function() {
9843            var e, i = this.options, n = this;
9844            this._addClass("ui-resizable"),
9845            t.extend(this, {
9846                _aspectRatio: !!i.aspectRatio,
9847                aspectRatio: i.aspectRatio,
9848                originalElement: this.element,
9849                _proportionallyResizeElements: [],
9850                _helper: i.helper || i.ghost || i.animate ? i.helper || "ui-resizable-helper" : null
9851            }),
9852            this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i) && (this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({
9853                position: this.element.css("position"),
9854                width: this.element.outerWidth(),
9855                height: this.element.outerHeight(),
9856                top: this.element.css("top"),
9857                left: this.element.css("left")
9858            })),
9859            this.element = this.element.parent().data("ui-resizable", this.element.resizable("instance")),
9860            this.elementIsWrapper = !0,
9861            e = {
9862                marginTop: this.originalElement.css("marginTop"),
9863                marginRight: this.originalElement.css("marginRight"),
9864                marginBottom: this.originalElement.css("marginBottom"),
9865                marginLeft: this.originalElement.css("marginLeft")
9866            },
9867            this.element.css(e),
9868            this.originalElement.css("margin", 0),
9869            this.originalResizeStyle = this.originalElement.css("resize"),
9870            this.originalElement.css("resize", "none"),
9871            this._proportionallyResizeElements.push(this.originalElement.css({
9872                position: "static",
9873                zoom: 1,
9874                display: "block"
9875            })),
9876            this.originalElement.css(e),
9877            this._proportionallyResize()),
9878            this._setupHandles(),
9879            i.autoHide && t(this.element).on("mouseenter", function() {
9880                i.disabled || (n._removeClass("ui-resizable-autohide"),
9881                n._handles.show())
9882            }).on("mouseleave", function() {
9883                i.disabled || n.resizing || (n._addClass("ui-resizable-autohide"),
9884                n._handles.hide())
9885            }),
9886            this._mouseInit()
9887        },
9888        _destroy: function() {
9889            this._mouseDestroy();
9890            var e, i = function(e) {
9891                t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()
9892            };
9893            return this.elementIsWrapper && (i(this.element),
9894            e = this.element,
9895            this.originalElement.css({
9896                position: e.css("position"),
9897                width: e.outerWidth(),
9898                height: e.outerHeight(),
9899                top: e.css("top"),
9900                left: e.css("left")
9901            }).insertAfter(e),
9902            e.remove()),
9903            this.originalElement.css("resize", this.originalResizeStyle),
9904            i(this.originalElement),
9905            this
9906        },
9907        _setOption: function(t, e) {
9908            switch (this._super(t, e),
9909            t) {
9910            case "handles":
9911                this._removeHandles(),
9912                this._setupHandles()
9913            }
9914        },
9915        _setupHandles: function() {
9916            var e, i, n, s, o, r = this.options, a = this;
9917            if (this.handles = r.handles || (t(".ui-resizable-handle", this.element).length ? {
9918                n: ".ui-resizable-n",
9919                e: ".ui-resizable-e",
9920                s: ".ui-resizable-s",
9921                w: ".ui-resizable-w",
9922                se: ".ui-resizable-se",
9923                sw: ".ui-resizable-sw",
9924                ne: ".ui-resizable-ne",
9925                nw: ".ui-resizable-nw"
9926            } : "e,s,se"),
9927            this._handles = t(),
9928            this.handles.constructor === String)
9929                for ("all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"),
9930                n = this.handles.split(","),
9931                this.handles = {},
9932                i = 0; i < n.length; i++)
9933                    e = t.trim(n[i]),
9934                    s = "ui-resizable-" + e,
9935                    o = t("<div>"),
9936                    this._addClass(o, "ui-resizable-handle " + s),
9937                    o.css({
9938                        zIndex: r.zIndex
9939                    }),
9940                    this.handles[e] = ".ui-resizable-" + e,
9941                    this.element.append(o);
9942            this._renderAxis = function(e) {
9943                var i, n, s, o;
9944                e = e || this.element;
9945                for (i in this.handles)
9946                    this.handles[i].constructor === String ? this.handles[i] = this.element.children(this.handles[i]).first().show() : (this.handles[i].jquery || this.handles[i].nodeType) && (this.handles[i] = t(this.handles[i]),
9947                    this._on(this.handles[i], {
9948                        mousedown: a._mouseDown
9949                    })),
9950                    this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i) && (n = t(this.handles[i], this.element),
9951                    o = /sw|ne|nw|se|n|s/.test(i) ? n.outerHeight() : n.outerWidth(),
9952                    s = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join(""),
9953                    e.css(s, o),
9954                    this._proportionallyResize()),
9955                    this._handles = this._handles.add(this.handles[i])
9956            }
9957            ,
9958            this._renderAxis(this.element),
9959            this._handles = this._handles.add(this.element.find(".ui-resizable-handle")),
9960            this._handles.disableSelection(),
9961            this._handles.on("mouseover", function() {
9962                a.resizing || (this.className && (o = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),
9963                a.axis = o && o[1] ? o[1] : "se")
9964            }),
9965            r.autoHide && (this._handles.hide(),
9966            this._addClass("ui-resizable-autohide"))
9967        },
9968        _removeHandles: function() {
9969            this._handles.remove()
9970        },
9971        _mouseCapture: function(e) {
9972            var i, n, s = !1;
9973            for (i in this.handles)
9974                n = t(this.handles[i])[0],
9975                (n === e.target || t.contains(n, e.target)) && (s = !0);
9976            return !this.options.disabled && s
9977        },
9978        _mouseStart: function(e) {
9979            var i, n, s, o = this.options, r = this.element;
9980            return this.resizing = !0,
9981            this._renderProxy(),
9982            i = this._num(this.helper.css("left")),
9983            n = this._num(this.helper.css("top")),
9984            o.containment && (i += t(o.containment).scrollLeft() || 0,
9985            n += t(o.containment).scrollTop() || 0),
9986            this.offset = this.helper.offset(),
9987            this.position = {
9988                left: i,
9989                top: n
9990            },
9991            this.size = this._helper ? {
9992                width: this.helper.width(),
9993                height: this.helper.height()
9994            } : {
9995                width: r.width(),
9996                height: r.height()
9997            },
9998            this.originalSize = this._helper ? {
9999                width: r.outerWidth(),
10000                height: r.outerHeight()
10001            } : {
10002                width: r.width(),
10003                height: r.height()
10004            },
10005            this.sizeDiff = {
10006                width: r.outerWidth() - r.width(),
10007                height: r.outerHeight() - r.height()
10008            },
10009            this.originalPosition = {
10010                left: i,
10011                top: n
10012            },
10013            this.originalMousePosition = {
10014                left: e.pageX,
10015                top: e.pageY
10016            },
10017            this.aspectRatio = "number" == typeof o.aspectRatio ? o.aspectRatio : this.originalSize.width / this.originalSize.height || 1,
10018            s = t(".ui-resizable-" + this.axis).css("cursor"),
10019            t("body").css("cursor", "auto" === s ? this.axis + "-resize" : s),
10020            this._addClass("ui-resizable-resizing"),
10021            this._propagate("start", e),
10022            !0
10023        },
10024        _mouseDrag: function(e) {
10025            var i, n, s = this.originalMousePosition, o = this.axis, r = e.pageX - s.left || 0, a = e.pageY - s.top || 0, l = this._change[o];
10026            return this._updatePrevProperties(),
10027            !!l && (i = l.apply(this, [e, r, a]),
10028            this._updateVirtualBoundaries(e.shiftKey),
10029            (this._aspectRatio || e.shiftKey) && (i = this._updateRatio(i, e)),
10030            i = this._respectSize(i, e),
10031            this._updateCache(i),
10032            this._propagate("resize", e),
10033            n = this._applyChanges(),
10034            !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(),
10035            t.isEmptyObject(n) || (this._updatePrevProperties(),
10036            this._trigger("resize", e, this.ui()),
10037            this._applyChanges()),
10038            !1)
10039        },
10040        _mouseStop: function(e) {
10041            this.resizing = !1;
10042            var i, n, s, o, r, a, l, h = this.options, u = this;
10043            return this._helper && (i = this._proportionallyResizeElements,
10044            n = i.length && /textarea/i.test(i[0].nodeName),
10045            s = n && this._hasScroll(i[0], "left") ? 0 : u.sizeDiff.height,
10046            o = n ? 0 : u.sizeDiff.width,
10047            r = {
10048                width: u.helper.width() - o,
10049                height: u.helper.height() - s
10050            },
10051            a = parseFloat(u.element.css("left")) + (u.position.left - u.originalPosition.left) || null,
10052            l = parseFloat(u.element.css("top")) + (u.position.top - u.originalPosition.top) || null,
10053            h.animate || this.element.css(t.extend(r, {
10054                top: l,
10055                left: a
10056            })),
10057            u.helper.height(u.size.height),
10058            u.helper.width(u.size.width),
10059            this._helper && !h.animate && this._proportionallyResize()),
10060            t("body").css("cursor", "auto"),
10061            this._removeClass("ui-resizable-resizing"),
10062            this._propagate("stop", e),
10063            this._helper && this.helper.remove(),
10064            !1
10065        },
10066        _updatePrevProperties: function() {
10067            this.prevPosition = {
10068                top: this.position.top,
10069                left: this.position.left
10070            },
10071            this.prevSize = {
10072                width: this.size.width,
10073                height: this.size.height
10074            }
10075        },
10076        _applyChanges: function() {
10077            var t = {};
10078            return this.position.top !== this.prevPosition.top && (t.top = this.position.top + "px"),
10079            this.position.left !== this.prevPosition.left && (t.left = this.position.left + "px"),
10080            this.size.width !== this.prevSize.width && (t.width = this.size.width + "px"),
10081            this.size.height !== this.prevSize.height && (t.height = this.size.height + "px"),
10082            this.helper.css(t),
10083            t
10084        },
10085        _updateVirtualBoundaries: function(t) {
10086            var e, i, n, s, o, r = this.options;
10087            o = {
10088                minWidth: this._isNumber(r.minWidth) ? r.minWidth : 0,
10089                maxWidth: this._isNumber(r.maxWidth) ? r.maxWidth : 1 / 0,
10090                minHeight: this._isNumber(r.minHeight) ? r.minHeight : 0,
10091                maxHeight: this._isNumber(r.maxHeight) ? r.maxHeight : 1 / 0
10092            },
10093            (this._aspectRatio || t) && (e = o.minHeight * this.aspectRatio,
10094            n = o.minWidth / this.aspectRatio,
10095            i = o.maxHeight * this.aspectRatio,
10096            s = o.maxWidth / this.aspectRatio,
10097            e > o.minWidth && (o.minWidth = e),
10098            n > o.minHeight && (o.minHeight = n),
10099            i < o.maxWidth && (o.maxWidth = i),
10100            s < o.maxHeight && (o.maxHeight = s)),
10101            this._vBoundaries = o
10102        },
10103        _updateCache: function(t) {
10104            this.offset = this.helper.offset(),
10105            this._isNumber(t.left) && (this.position.left = t.left),
10106            this._isNumber(t.top) && (this.position.top = t.top),
10107            this._isNumber(t.height) && (this.size.height = t.height),
10108            this._isNumber(t.width) && (this.size.width = t.width)
10109        },
10110        _updateRatio: function(t) {
10111            var e = this.position
10112              , i = this.size
10113              , n = this.axis;
10114            return this._isNumber(t.height) ? t.width = t.height * this.aspectRatio : this._isNumber(t.width) && (t.height = t.width / this.aspectRatio),
10115            "sw" === n && (t.left = e.left + (i.width - t.width),
10116            t.top = null),
vendor: 7,940 bytes, lines 10117-10297
10117            "nw" === n && (t.top = e.top + (i.height - t.height),
10118            t.left = e.left + (i.width - t.width)),
10119            t
10120        },
10121        _respectSize: function(t) {
10122            var e = this._vBoundaries
10123              , i = this.axis
10124              , n = this._isNumber(t.width) && e.maxWidth && e.maxWidth < t.width
10125              , s = this._isNumber(t.height) && e.maxHeight && e.maxHeight < t.height
10126              , o = this._isNumber(t.width) && e.minWidth && e.minWidth > t.width
10127              , r = this._isNumber(t.height) && e.minHeight && e.minHeight > t.height
10128              , a = this.originalPosition.left + this.originalSize.width
10129              , l = this.originalPosition.top + this.originalSize.height
10130              , h = /sw|nw|w/.test(i)
10131              , u = /nw|ne|n/.test(i);
10132            return o && (t.width = e.minWidth),
10133            r && (t.height = e.minHeight),
10134            n && (t.width = e.maxWidth),
10135            s && (t.height = e.maxHeight),
10136            o && h && (t.left = a - e.minWidth),
10137            n && h && (t.left = a - e.maxWidth),
10138            r && u && (t.top = l - e.minHeight),
10139            s && u && (t.top = l - e.maxHeight),
10140            t.width || t.height || t.left || !t.top ? t.width || t.height || t.top || !t.left || (t.left = null) : t.top = null,
10141            t
10142        },
10143        _getPaddingPlusBorderDimensions: function(t) {
10144            for (var e = 0, i = [], n = [t.css("borderTopWidth"), t.css("borderRightWidth"), t.css("borderBottomWidth"), t.css("borderLeftWidth")], s = [t.css("paddingTop"), t.css("paddingRight"), t.css("paddingBottom"), t.css("paddingLeft")]; e < 4; e++)
10145                i[e] = parseFloat(n[e]) || 0,
10146                i[e] += parseFloat(s[e]) || 0;
10147            return {
10148                height: i[0] + i[2],
10149                width: i[1] + i[3]
10150            }
10151        },
10152        _proportionallyResize: function() {
10153            if (this._proportionallyResizeElements.length)
10154                for (var t, e = 0, i = this.helper || this.element; e < this._proportionallyResizeElements.length; e++)
10155                    t = this._proportionallyResizeElements[e],
10156                    this.outerDimensions || (this.outerDimensions = this._getPaddingPlusBorderDimensions(t)),
10157                    t.css({
10158                        height: i.height() - this.outerDimensions.height || 0,
10159                        width: i.width() - this.outerDimensions.width || 0
10160                    })
10161        },
10162        _renderProxy: function() {
10163            var e = this.element
10164              , i = this.options;
10165            this.elementOffset = e.offset(),
10166            this._helper ? (this.helper = this.helper || t("<div style='overflow:hidden;'></div>"),
10167            this._addClass(this.helper, this._helper),
10168            this.helper.css({
10169                width: this.element.outerWidth(),
10170                height: this.element.outerHeight(),
10171                position: "absolute",
10172                left: this.elementOffset.left + "px",
10173                top: this.elementOffset.top + "px",
10174                zIndex: ++i.zIndex
10175            }),
10176            this.helper.appendTo("body").disableSelection()) : this.helper = this.element
10177        },
10178        _change: {
10179            e: function(t, e) {
10180                return {
10181                    width: this.originalSize.width + e
10182                }
10183            },
10184            w: function(t, e) {
10185                var i = this.originalSize
10186                  , n = this.originalPosition;
10187                return {
10188                    left: n.left + e,
10189                    width: i.width - e
10190                }
10191            },
10192            n: function(t, e, i) {
10193                var n = this.originalSize
10194                  , s = this.originalPosition;
10195                return {
10196                    top: s.top + i,
10197                    height: n.height - i
10198                }
10199            },
10200            s: function(t, e, i) {
10201                return {
10202                    height: this.originalSize.height + i
10203                }
10204            },
10205            se: function(e, i, n) {
10206                return t.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [e, i, n]))
10207            },
10208            sw: function(e, i, n) {
10209                return t.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [e, i, n]))
10210            },
10211            ne: function(e, i, n) {
10212                return t.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [e, i, n]))
10213            },
10214            nw: function(e, i, n) {
10215                return t.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [e, i, n]))
10216            }
10217        },
10218        _propagate: function(e, i) {
10219            t.ui.plugin.call(this, e, [i, this.ui()]),
10220            "resize" !== e && this._trigger(e, i, this.ui())
10221        },
10222        plugins: {},
10223        ui: function() {
10224            return {
10225                originalElement: this.originalElement,
10226                element: this.element,
10227                helper: this.helper,
10228                position: this.position,
10229                size: this.size,
10230                originalSize: this.originalSize,
10231                originalPosition: this.originalPosition
10232            }
10233        }
10234    }),
10235    t.ui.plugin.add("resizable", "animate", {
10236        stop: function(e) {
10237            var i = t(this).resizable("instance")
10238              , n = i.options
10239              , s = i._proportionallyResizeElements
10240              , o = s.length && /textarea/i.test(s[0].nodeName)
10241              , r = o && i._hasScroll(s[0], "left") ? 0 : i.sizeDiff.height
10242              , a = o ? 0 : i.sizeDiff.width
10243              , l = {
10244                width: i.size.width - a,
10245                height: i.size.height - r
10246            }
10247              , h = parseFloat(i.element.css("left")) + (i.position.left - i.originalPosition.left) || null
10248              , u = parseFloat(i.element.css("top")) + (i.position.top - i.originalPosition.top) || null;
10249            i.element.animate(t.extend(l, u && h ? {
10250                top: u,
10251                left: h
10252            } : {}), {
10253                duration: n.animateDuration,
10254                easing: n.animateEasing,
10255                step: function() {
10256                    var n = {
10257                        width: parseFloat(i.element.css("width")),
10258                        height: parseFloat(i.element.css("height")),
10259                        top: parseFloat(i.element.css("top")),
10260                        left: parseFloat(i.element.css("left"))
10261                    };
10262                    s && s.length && t(s[0]).css({
10263                        width: n.width,
10264                        height: n.height
10265                    }),
10266                    i._updateCache(n),
10267                    i._propagate("resize", e)
10268                }
10269            })
10270        }
10271    }),
10272    t.ui.plugin.add("resizable", "containment", {
10273        start: function() {
10274            var e, i, n, s, o, r, a, l = t(this).resizable("instance"), h = l.options, u = l.element, c = h.containment, d = c instanceof t ? c.get(0) : /parent/.test(c) ? u.parent().get(0) : c;
10275            d && (l.containerElement = t(d),
10276            /document/.test(c) || c === document ? (l.containerOffset = {
10277                left: 0,
10278                top: 0
10279            },
10280            l.containerPosition = {
10281                left: 0,
10282                top: 0
10283            },
10284            l.parentData = {
10285                element: t(document),
10286                left: 0,
10287                top: 0,
10288                width: t(document).width(),
10289                height: t(document).height() || document.body.parentNode.scrollHeight
10290            }) : (e = t(d),
10291            i = [],
10292            t(["Top", "Right", "Left", "Bottom"]).each(function(t, n) {
10293                i[t] = l._num(e.css("padding" + n))
10294            }),
10295            l.containerOffset = e.offset(),
10296            l.containerPosition = e.position(),
10297            l.containerSize = {
vendor: 5,577 bytes, lines 10298-10424
10298                height: e.innerHeight() - i[3],
10299                width: e.innerWidth() - i[1]
10300            },
10301            n = l.containerOffset,
10302            s = l.containerSize.height,
10303            o = l.containerSize.width,
10304            r = l._hasScroll(d, "left") ? d.scrollWidth : o,
10305            a = l._hasScroll(d) ? d.scrollHeight : s,
10306            l.parentData = {
10307                element: d,
10308                left: n.left,
10309                top: n.top,
10310                width: r,
10311                height: a
10312            }))
10313        },
10314        resize: function(e) {
10315            var i, n, s, o, r = t(this).resizable("instance"), a = r.options, l = r.containerOffset, h = r.position, u = r._aspectRatio || e.shiftKey, c = {
10316                top: 0,
10317                left: 0
10318            }, d = r.containerElement, p = !0;
10319            d[0] !== document && /static/.test(d.css("position")) && (c = l),
10320            h.left < (r._helper ? l.left : 0) && (r.size.width = r.size.width + (r._helper ? r.position.left - l.left : r.position.left - c.left),
10321            u && (r.size.height = r.size.width / r.aspectRatio,
10322            p = !1),
10323            r.position.left = a.helper ? l.left : 0),
10324            h.top < (r._helper ? l.top : 0) && (r.size.height = r.size.height + (r._helper ? r.position.top - l.top : r.position.top),
10325            u && (r.size.width = r.size.height * r.aspectRatio,
10326            p = !1),
10327            r.position.top = r._helper ? l.top : 0),
10328            s = r.containerElement.get(0) === r.element.parent().get(0),
10329            o = /relative|absolute/.test(r.containerElement.css("position")),
10330            s && o ? (r.offset.left = r.parentData.left + r.position.left,
10331            r.offset.top = r.parentData.top + r.position.top) : (r.offset.left = r.element.offset().left,
10332            r.offset.top = r.element.offset().top),
10333            i = Math.abs(r.sizeDiff.width + (r._helper ? r.offset.left - c.left : r.offset.left - l.left)),
10334            n = Math.abs(r.sizeDiff.height + (r._helper ? r.offset.top - c.top : r.offset.top - l.top)),
10335            i + r.size.width >= r.parentData.width && (r.size.width = r.parentData.width - i,
10336            u && (r.size.height = r.size.width / r.aspectRatio,
10337            p = !1)),
10338            n + r.size.height >= r.parentData.height && (r.size.height = r.parentData.height - n,
10339            u && (r.size.width = r.size.height * r.aspectRatio,
10340            p = !1)),
10341            p || (r.position.left = r.prevPosition.left,
10342            r.position.top = r.prevPosition.top,
10343            r.size.width = r.prevSize.width,
10344            r.size.height = r.prevSize.height)
10345        },
10346        stop: function() {
10347            var e = t(this).resizable("instance")
10348              , i = e.options
10349              , n = e.containerOffset
10350              , s = e.containerPosition
10351              , o = e.containerElement
10352              , r = t(e.helper)
10353              , a = r.offset()
10354              , l = r.outerWidth() - e.sizeDiff.width
10355              , h = r.outerHeight() - e.sizeDiff.height;
10356            e._helper && !i.animate && /relative/.test(o.css("position")) && t(this).css({
10357                left: a.left - s.left - n.left,
10358                width: l,
10359                height: h
10360            }),
10361            e._helper && !i.animate && /static/.test(o.css("position")) && t(this).css({
10362                left: a.left - s.left - n.left,
10363                width: l,
10364                height: h
10365            })
10366        }
10367    }),
10368    t.ui.plugin.add("resizable", "alsoResize", {
10369        start: function() {
10370            var e = t(this).resizable("instance")
10371              , i = e.options;
10372            t(i.alsoResize).each(function() {
10373                var e = t(this);
10374                e.data("ui-resizable-alsoresize", {
10375                    width: parseFloat(e.width()),
10376                    height: parseFloat(e.height()),
10377                    left: parseFloat(e.css("left")),
10378                    top: parseFloat(e.css("top"))
10379                })
10380            })
10381        },
10382        resize: function(e, i) {
10383            var n = t(this).resizable("instance")
10384              , s = n.options
10385              , o = n.originalSize
10386              , r = n.originalPosition
10387              , a = {
10388                height: n.size.height - o.height || 0,
10389                width: n.size.width - o.width || 0,
10390                top: n.position.top - r.top || 0,
10391                left: n.position.left - r.left || 0
10392            };
10393            t(s.alsoResize).each(function() {
10394                var e = t(this)
10395                  , n = t(this).data("ui-resizable-alsoresize")
10396                  , s = {}
10397                  , o = e.parents(i.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
10398                t.each(o, function(t, e) {
10399                    var i = (n[e] || 0) + (a[e] || 0);
10400                    i && i >= 0 && (s[e] = i || null)
10401                }),
10402                e.css(s)
10403            })
10404        },
10405        stop: function() {
10406            t(this).removeData("ui-resizable-alsoresize")
10407        }
10408    }),
10409    t.ui.plugin.add("resizable", "ghost", {
10410        start: function() {
10411            var e = t(this).resizable("instance")
10412              , i = e.size;
10413            e.ghost = e.originalElement.clone(),
10414            e.ghost.css({
10415                opacity: .25,
10416                display: "block",
10417                position: "relative",
10418                height: i.height,
10419                width: i.width,
10420                margin: 0,
10421                left: 0,
10422                top: 0
10423            }),
10424            e._addClass(e.ghost, "ui-resizable-ghost"),
vendor: 31,862 bytes, lines 10425-11171
10425            t.uiBackCompat !== !1 && "string" == typeof e.options.ghost && e.ghost.addClass(this.options.ghost),
10426            e.ghost.appendTo(e.helper)
10427        },
10428        resize: function() {
10429            var e = t(this).resizable("instance");
10430            e.ghost && e.ghost.css({
10431                position: "relative",
10432                height: e.size.height,
10433                width: e.size.width
10434            })
10435        },
10436        stop: function() {
10437            var e = t(this).resizable("instance");
10438            e.ghost && e.helper && e.helper.get(0).removeChild(e.ghost.get(0))
10439        }
10440    }),
10441    t.ui.plugin.add("resizable", "grid", {
10442        resize: function() {
10443            var e, i = t(this).resizable("instance"), n = i.options, s = i.size, o = i.originalSize, r = i.originalPosition, a = i.axis, l = "number" == typeof n.grid ? [n.grid, n.grid] : n.grid, h = l[0] || 1, u = l[1] || 1, c = Math.round((s.width - o.width) / h) * h, d = Math.round((s.height - o.height) / u) * u, p = o.width + c, f = o.height + d, g = n.maxWidth && n.maxWidth < p, m = n.maxHeight && n.maxHeight < f, v = n.minWidth && n.minWidth > p, b = n.minHeight && n.minHeight > f;
10444            n.grid = l,
10445            v && (p += h),
10446            b && (f += u),
10447            g && (p -= h),
10448            m && (f -= u),
10449            /^(se|s|e)$/.test(a) ? (i.size.width = p,
10450            i.size.height = f) : /^(ne)$/.test(a) ? (i.size.width = p,
10451            i.size.height = f,
10452            i.position.top = r.top - d) : /^(sw)$/.test(a) ? (i.size.width = p,
10453            i.size.height = f,
10454            i.position.left = r.left - c) : ((f - u <= 0 || p - h <= 0) && (e = i._getPaddingPlusBorderDimensions(this)),
10455            f - u > 0 ? (i.size.height = f,
10456            i.position.top = r.top - d) : (f = u - e.height,
10457            i.size.height = f,
10458            i.position.top = r.top + o.height - f),
10459            p - h > 0 ? (i.size.width = p,
10460            i.position.left = r.left - c) : (p = h - e.width,
10461            i.size.width = p,
10462            i.position.left = r.left + o.width - p))
10463        }
10464    }),
10465    t.ui.resizable
10466}),
10467function(t) {
10468    "function" == typeof define && define.amd ? define(["jquery", "./button", "./draggable", "./mouse", "./resizable", "../focusable", "../keycode", "../position", "../safe-active-element", "../safe-blur", "../tabbable", "../unique-id", "../version", "../widget"], t) : t(jQuery)
10469}(function(t) {
10470    return t.widget("ui.dialog", {
10471        version: "1.12.1",
10472        options: {
10473            appendTo: "body",
10474            autoOpen: !0,
10475            buttons: [],
10476            classes: {
10477                "ui-dialog": "ui-corner-all",
10478                "ui-dialog-titlebar": "ui-corner-all"
10479            },
10480            closeOnEscape: !0,
10481            closeText: "Close",
10482            draggable: !0,
10483            hide: null,
10484            height: "auto",
10485            maxHeight: null,
10486            maxWidth: null,
10487            minHeight: 150,
10488            minWidth: 150,
10489            modal: !1,
10490            position: {
10491                my: "center",
10492                at: "center",
10493                of: window,
10494                collision: "fit",
10495                using: function(e) {
10496                    var i = t(this).css(e).offset().top;
10497                    i < 0 && t(this).css("top", e.top - i)
10498                }
10499            },
10500            resizable: !0,
10501            show: null,
10502            title: null,
10503            width: 300,
10504            beforeClose: null,
10505            close: null,
10506            drag: null,
10507            dragStart: null,
10508            dragStop: null,
10509            focus: null,
10510            open: null,
10511            resize: null,
10512            resizeStart: null,
10513            resizeStop: null
10514        },
10515        sizeRelatedOptions: {
10516            buttons: !0,
10517            height: !0,
10518            maxHeight: !0,
10519            maxWidth: !0,
10520            minHeight: !0,
10521            minWidth: !0,
10522            width: !0
10523        },
10524        resizableRelatedOptions: {
10525            maxHeight: !0,
10526            maxWidth: !0,
10527            minHeight: !0,
10528            minWidth: !0
10529        },
10530        _create: function() {
10531            this.originalCss = {
10532                display: this.element[0].style.display,
10533                width: this.element[0].style.width,
10534                minHeight: this.element[0].style.minHeight,
10535                maxHeight: this.element[0].style.maxHeight,
10536                height: this.element[0].style.height
10537            },
10538            this.originalPosition = {
10539                parent: this.element.parent(),
10540                index: this.element.parent().children().index(this.element)
10541            },
10542            this.originalTitle = this.element.attr("title"),
10543            null == this.options.title && null != this.originalTitle && (this.options.title = this.originalTitle),
10544            this.options.disabled && (this.options.disabled = !1),
10545            this._createWrapper(),
10546            this.element.show().removeAttr("title").appendTo(this.uiDialog),
10547            this._addClass("ui-dialog-content", "ui-widget-content"),
10548            this._createTitlebar(),
10549            this._createButtonPane(),
10550            this.options.draggable && t.fn.draggable && this._makeDraggable(),
10551            this.options.resizable && t.fn.resizable && this._makeResizable(),
10552            this._isOpen = !1,
10553            this._trackFocus()
10554        },
10555        _init: function() {
10556            this.options.autoOpen && this.open()
10557        },
10558        _appendTo: function() {
10559            var e = this.options.appendTo;
10560            return e && (e.jquery || e.nodeType) ? t(e) : this.document.find(e || "body").eq(0)
10561        },
10562        _destroy: function() {
10563            var t, e = this.originalPosition;
10564            this._untrackInstance(),
10565            this._destroyOverlay(),
10566            this.element.removeUniqueId().css(this.originalCss).detach(),
10567            this.uiDialog.remove(),
10568            this.originalTitle && this.element.attr("title", this.originalTitle),
10569            t = e.parent.children().eq(e.index),
10570            t.length && t[0] !== this.element[0] ? t.before(this.element) : e.parent.append(this.element)
10571        },
10572        widget: function() {
10573            return this.uiDialog
10574        },
10575        disable: t.noop,
10576        enable: t.noop,
10577        close: function(e) {
10578            var i = this;
10579            this._isOpen && this._trigger("beforeClose", e) !== !1 && (this._isOpen = !1,
10580            this._focusedElement = null,
10581            this._destroyOverlay(),
10582            this._untrackInstance(),
10583            this.opener.filter(":focusable").trigger("focus").length || t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),
10584            this._hide(this.uiDialog, this.options.hide, function() {
10585                i._trigger("close", e)
10586            }))
10587        },
10588        isOpen: function() {
10589            return this._isOpen
10590        },
10591        moveToTop: function() {
10592            this._moveToTop()
10593        },
10594        _moveToTop: function(e, i) {
10595            var n = !1
10596              , s = this.uiDialog.siblings(".ui-front:visible").map(function() {
10597                return +t(this).css("z-index")
10598            }).get()
10599              , o = Math.max.apply(null, s);
10600            return o >= +this.uiDialog.css("z-index") && (this.uiDialog.css("z-index", o + 1),
10601            n = !0),
10602            n && !i && this._trigger("focus", e),
10603            n
10604        },
10605        open: function() {
10606            var e = this;
10607            return this._isOpen ? void (this._moveToTop() && this._focusTabbable()) : (this._isOpen = !0,
10608            this.opener = t(t.ui.safeActiveElement(this.document[0])),
10609            this._size(),
10610            this._position(),
10611            this._createOverlay(),
10612            this._moveToTop(null, !0),
10613            this.overlay && this.overlay.css("z-index", this.uiDialog.css("z-index") - 1),
10614            this._show(this.uiDialog, this.options.show, function() {
10615                e._focusTabbable(),
10616                e._trigger("focus")
10617            }),
10618            this._makeFocusTarget(),
10619            void this._trigger("open"))
10620        },
10621        _focusTabbable: function() {
10622            var t = this._focusedElement;
10623            t || (t = this.element.find("[autofocus]")),
10624            t.length || (t = this.element.find(":tabbable")),
10625            t.length || (t = this.uiDialogButtonPane.find(":tabbable")),
10626            t.length || (t = this.uiDialogTitlebarClose.filter(":tabbable")),
10627            t.length || (t = this.uiDialog),
10628            t.eq(0).trigger("focus")
10629        },
10630        _keepFocus: function(e) {
10631            function i() {
10632                var e = t.ui.safeActiveElement(this.document[0])
10633                  , i = this.uiDialog[0] === e || t.contains(this.uiDialog[0], e);
10634                i || this._focusTabbable()
10635            }
10636            e.preventDefault(),
10637            i.call(this),
10638            this._delay(i)
10639        },
10640        _createWrapper: function() {
10641            this.uiDialog = t("<div>").hide().attr({
10642                tabIndex: -1,
10643                role: "dialog"
10644            }).appendTo(this._appendTo()),
10645            this._addClass(this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front"),
10646            this._on(this.uiDialog, {
10647                keydown: function(e) {
10648                    if (this.options.closeOnEscape && !e.isDefaultPrevented() && e.keyCode && e.keyCode === t.ui.keyCode.ESCAPE)
10649                        return e.preventDefault(),
10650                        void this.close(e);
10651                    if (e.keyCode === t.ui.keyCode.TAB && !e.isDefaultPrevented()) {
10652                        var i = this.uiDialog.find(":tabbable")
10653                          , n = i.filter(":first")
10654                          , s = i.filter(":last");
10655                        e.target !== s[0] && e.target !== this.uiDialog[0] || e.shiftKey ? e.target !== n[0] && e.target !== this.uiDialog[0] || !e.shiftKey || (this._delay(function() {
10656                            s.trigger("focus")
10657                        }),
10658                        e.preventDefault()) : (this._delay(function() {
10659                            n.trigger("focus")
10660                        }),
10661                        e.preventDefault())
10662                    }
10663                },
10664                mousedown: function(t) {
10665                    this._moveToTop(t) && this._focusTabbable()
10666                }
10667            }),
10668            this.element.find("[aria-describedby]").length || this.uiDialog.attr({
10669                "aria-describedby": this.element.uniqueId().attr("id")
10670            })
10671        },
10672        _createTitlebar: function() {
10673            var e;
10674            this.uiDialogTitlebar = t("<div>"),
10675            this._addClass(this.uiDialogTitlebar, "ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix"),
10676            this._on(this.uiDialogTitlebar, {
10677                mousedown: function(e) {
10678                    t(e.target).closest(".ui-dialog-titlebar-close") || this.uiDialog.trigger("focus")
10679                }
10680            }),
10681            this.uiDialogTitlebarClose = t("<button type='button'></button>").button({
10682                label: t("<a>").text(this.options.closeText).html(),
10683                icon: "ui-icon-closethick",
10684                showLabel: !1
10685            }).appendTo(this.uiDialogTitlebar),
10686            this._addClass(this.uiDialogTitlebarClose, "ui-dialog-titlebar-close"),
10687            this._on(this.uiDialogTitlebarClose, {
10688                click: function(t) {
10689                    t.preventDefault(),
10690                    this.close(t)
10691                }
10692            }),
10693            e = t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),
10694            this._addClass(e, "ui-dialog-title"),
10695            this._title(e),
10696            this.uiDialogTitlebar.prependTo(this.uiDialog),
10697            this.uiDialog.attr({
10698                "aria-labelledby": e.attr("id")
10699            })
10700        },
10701        _title: function(t) {
10702            this.options.title ? t.text(this.options.title) : t.html("&#160;")
10703        },
10704        _createButtonPane: function() {
10705            this.uiDialogButtonPane = t("<div>"),
10706            this._addClass(this.uiDialogButtonPane, "ui-dialog-buttonpane", "ui-widget-content ui-helper-clearfix"),
10707            this.uiButtonSet = t("<div>").appendTo(this.uiDialogButtonPane),
10708            this._addClass(this.uiButtonSet, "ui-dialog-buttonset"),
10709            this._createButtons()
10710        },
10711        _createButtons: function() {
10712            var e = this
10713              , i = this.options.buttons;
10714            return this.uiDialogButtonPane.remove(),
10715            this.uiButtonSet.empty(),
10716            t.isEmptyObject(i) || t.isArray(i) && !i.length ? void this._removeClass(this.uiDialog, "ui-dialog-buttons") : (t.each(i, function(i, n) {
10717                var s, o;
10718                n = t.isFunction(n) ? {
10719                    click: n,
10720                    text: i
10721                } : n,
10722                n = t.extend({
10723                    type: "button"
10724                }, n),
10725                s = n.click,
10726                o = {
10727                    icon: n.icon,
10728                    iconPosition: n.iconPosition,
10729                    showLabel: n.showLabel,
10730                    icons: n.icons,
10731                    text: n.text
10732                },
10733                delete n.click,
10734                delete n.icon,
10735                delete n.iconPosition,
10736                delete n.showLabel,
10737                delete n.icons,
10738                "boolean" == typeof n.text && delete n.text,
10739                t("<button></button>", n).button(o).appendTo(e.uiButtonSet).on("click", function() {
10740                    s.apply(e.element[0], arguments)
10741                })
10742            }),
10743            this._addClass(this.uiDialog, "ui-dialog-buttons"),
10744            void this.uiDialogButtonPane.appendTo(this.uiDialog))
10745        },
10746        _makeDraggable: function() {
10747            function e(t) {
10748                return {
10749                    position: t.position,
10750                    offset: t.offset
10751                }
10752            }
10753            var i = this
10754              , n = this.options;
10755            this.uiDialog.draggable({
10756                cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
10757                handle: ".ui-dialog-titlebar",
10758                containment: "document",
10759                start: function(n, s) {
10760                    i._addClass(t(this), "ui-dialog-dragging"),
10761                    i._blockFrames(),
10762                    i._trigger("dragStart", n, e(s))
10763                },
10764                drag: function(t, n) {
10765                    i._trigger("drag", t, e(n))
10766                },
10767                stop: function(s, o) {
10768                    var r = o.offset.left - i.document.scrollLeft()
10769                      , a = o.offset.top - i.document.scrollTop();
10770                    n.position = {
10771                        my: "left top",
10772                        at: "left" + (r >= 0 ? "+" : "") + r + " top" + (a >= 0 ? "+" : "") + a,
10773                        of: i.window
10774                    },
10775                    i._removeClass(t(this), "ui-dialog-dragging"),
10776                    i._unblockFrames(),
10777                    i._trigger("dragStop", s, e(o))
10778                }
10779            })
10780        },
10781        _makeResizable: function() {
10782            function e(t) {
10783                return {
10784                    originalPosition: t.originalPosition,
10785                    originalSize: t.originalSize,
10786                    position: t.position,
10787                    size: t.size
10788                }
10789            }
10790            var i = this
10791              , n = this.options
10792              , s = n.resizable
10793              , o = this.uiDialog.css("position")
10794              , r = "string" == typeof s ? s : "n,e,s,w,se,sw,ne,nw";
10795            this.uiDialog.resizable({
10796                cancel: ".ui-dialog-content",
10797                containment: "document",
10798                alsoResize: this.element,
10799                maxWidth: n.maxWidth,
10800                maxHeight: n.maxHeight,
10801                minWidth: n.minWidth,
10802                minHeight: this._minHeight(),
10803                handles: r,
10804                start: function(n, s) {
10805                    i._addClass(t(this), "ui-dialog-resizing"),
10806                    i._blockFrames(),
10807                    i._trigger("resizeStart", n, e(s))
10808                },
10809                resize: function(t, n) {
10810                    i._trigger("resize", t, e(n))
10811                },
10812                stop: function(s, o) {
10813                    var r = i.uiDialog.offset()
10814                      , a = r.left - i.document.scrollLeft()
10815                      , l = r.top - i.document.scrollTop();
10816                    n.height = i.uiDialog.height(),
10817                    n.width = i.uiDialog.width(),
10818                    n.position = {
10819                        my: "left top",
10820                        at: "left" + (a >= 0 ? "+" : "") + a + " top" + (l >= 0 ? "+" : "") + l,
10821                        of: i.window
10822                    },
10823                    i._removeClass(t(this), "ui-dialog-resizing"),
10824                    i._unblockFrames(),
10825                    i._trigger("resizeStop", s, e(o))
10826                }
10827            }).css("position", o)
10828        },
10829        _trackFocus: function() {
10830            this._on(this.widget(), {
10831                focusin: function(e) {
10832                    this._makeFocusTarget(),
10833                    this._focusedElement = t(e.target)
10834                }
10835            })
10836        },
10837        _makeFocusTarget: function() {
10838            this._untrackInstance(),
10839            this._trackingInstances().unshift(this)
10840        },
10841        _untrackInstance: function() {
10842            var e = this._trackingInstances()
10843              , i = t.inArray(this, e);
10844            i !== -1 && e.splice(i, 1)
10845        },
10846        _trackingInstances: function() {
10847            var t = this.document.data("ui-dialog-instances");
10848            return t || (t = [],
10849            this.document.data("ui-dialog-instances", t)),
10850            t
10851        },
10852        _minHeight: function() {
10853            var t = this.options;
10854            return "auto" === t.height ? t.minHeight : Math.min(t.minHeight, t.height)
10855        },
10856        _position: function() {
10857            var t = this.uiDialog.is(":visible");
10858            t || this.uiDialog.show(),
10859            this.uiDialog.position(this.options.position),
10860            t || this.uiDialog.hide()
10861        },
10862        _setOptions: function(e) {
10863            var i = this
10864              , n = !1
10865              , s = {};
10866            t.each(e, function(t, e) {
10867                i._setOption(t, e),
10868                t in i.sizeRelatedOptions && (n = !0),
10869                t in i.resizableRelatedOptions && (s[t] = e)
10870            }),
10871            n && (this._size(),
10872            this._position()),
10873            this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", s)
10874        },
10875        _setOption: function(e, i) {
10876            var n, s, o = this.uiDialog;
10877            "disabled" !== e && (this._super(e, i),
10878            "appendTo" === e && this.uiDialog.appendTo(this._appendTo()),
10879            "buttons" === e && this._createButtons(),
10880            "closeText" === e && this.uiDialogTitlebarClose.button({
10881                label: t("<a>").text("" + this.options.closeText).html()
10882            }),
10883            "draggable" === e && (n = o.is(":data(ui-draggable)"),
10884            n && !i && o.draggable("destroy"),
10885            !n && i && this._makeDraggable()),
10886            "position" === e && this._position(),
10887            "resizable" === e && (s = o.is(":data(ui-resizable)"),
10888            s && !i && o.resizable("destroy"),
10889            s && "string" == typeof i && o.resizable("option", "handles", i),
10890            s || i === !1 || this._makeResizable()),
10891            "title" === e && this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))
10892        },
10893        _size: function() {
10894            var t, e, i, n = this.options;
10895            this.element.show().css({
10896                width: "auto",
10897                minHeight: 0,
10898                maxHeight: "none",
10899                height: 0
10900            }),
10901            n.minWidth > n.width && (n.width = n.minWidth),
10902            t = this.uiDialog.css({
10903                height: "auto",
10904                width: n.width
10905            }).outerHeight(),
10906            e = Math.max(0, n.minHeight - t),
10907            i = "number" == typeof n.maxHeight ? Math.max(0, n.maxHeight - t) : "none",
10908            "auto" === n.height ? this.element.css({
10909                minHeight: e,
10910                maxHeight: i,
10911                height: "auto"
10912            }) : this.element.height(Math.max(0, n.height - t)),
10913            this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
10914        },
10915        _blockFrames: function() {
10916            this.iframeBlocks = this.document.find("iframe").map(function() {
10917                var e = t(this);
10918                return t("<div>").css({
10919                    position: "absolute",
10920                    width: e.outerWidth(),
10921                    height: e.outerHeight()
10922                }).appendTo(e.parent()).offset(e.offset())[0]
10923            })
10924        },
10925        _unblockFrames: function() {
10926            this.iframeBlocks && (this.iframeBlocks.remove(),
10927            delete this.iframeBlocks)
10928        },
10929        _allowInteraction: function(e) {
10930            return !!t(e.target).closest(".ui-dialog").length || !!t(e.target).closest(".ui-datepicker").length
10931        },
10932        _createOverlay: function() {
10933            if (this.options.modal) {
10934                var e = !0;
10935                this._delay(function() {
10936                    e = !1
10937                }),
10938                this.document.data("ui-dialog-overlays") || this._on(this.document, {
10939                    focusin: function(t) {
10940                        e || this._allowInteraction(t) || (t.preventDefault(),
10941                        this._trackingInstances()[0]._focusTabbable())
10942                    }
10943                }),
10944                this.overlay = t("<div>").appendTo(this._appendTo()),
10945                this._addClass(this.overlay, null, "ui-widget-overlay ui-front"),
10946                this._on(this.overlay, {
10947                    mousedown: "_keepFocus"
10948                }),
10949                this.document.data("ui-dialog-overlays", (this.document.data("ui-dialog-overlays") || 0) + 1)
10950            }
10951        },
10952        _destroyOverlay: function() {
10953            if (this.options.modal && this.overlay) {
10954                var t = this.document.data("ui-dialog-overlays") - 1;
10955                t ? this.document.data("ui-dialog-overlays", t) : (this._off(this.document, "focusin"),
10956                this.document.removeData("ui-dialog-overlays")),
10957                this.overlay.remove(),
10958                this.overlay = null
10959            }
10960        }
10961    }),
10962    t.uiBackCompat !== !1 && t.widget("ui.dialog", t.ui.dialog, {
10963        options: {
10964            dialogClass: ""
10965        },
10966        _createWrapper: function() {
10967            this._super(),
10968            this.uiDialog.addClass(this.options.dialogClass)
10969        },
10970        _setOption: function(t, e) {
10971            "dialogClass" === t && this.uiDialog.removeClass(this.options.dialogClass).addClass(e),
10972            this._superApply(arguments)
10973        }
10974    }),
10975    t.ui.dialog
10976}),
10977function(t) {
10978    "function" == typeof define && define.amd ? define(["jquery", "./draggable", "./mouse", "../version", "../widget"], t) : t(jQuery)
10979}(function(t) {
10980    t.widget("ui.droppable", {
10981        version: "1.12.1",
10982        widgetEventPrefix: "drop",
10983        options: {
10984            accept: "*",
10985            addClasses: !0,
10986            greedy: !1,
10987            scope: "default",
10988            tolerance: "intersect",
10989            activate: null,
10990            deactivate: null,
10991            drop: null,
10992            out: null,
10993            over: null
10994        },
10995        _create: function() {
10996            var e, i = this.options, n = i.accept;
10997            this.isover = !1,
10998            this.isout = !0,
10999            this.accept = t.isFunction(n) ? n : function(t) {
11000                return t.is(n)
11001            }
11002            ,
11003            this.proportions = function() {
11004                return arguments.length ? void (e = arguments[0]) : e ? e : e = {
11005                    width: this.element[0].offsetWidth,
11006                    height: this.element[0].offsetHeight
11007                }
11008            }
11009            ,
11010            this._addToManager(i.scope),
11011            i.addClasses && this._addClass("ui-droppable")
11012        },
11013        _addToManager: function(e) {
11014            t.ui.ddmanager.droppables[e] = t.ui.ddmanager.droppables[e] || [],
11015            t.ui.ddmanager.droppables[e].push(this)
11016        },
11017        _splice: function(t) {
11018            for (var e = 0; e < t.length; e++)
11019                t[e] === this && t.splice(e, 1)
11020        },
11021        _destroy: function() {
11022            var e = t.ui.ddmanager.droppables[this.options.scope];
11023            this._splice(e)
11024        },
11025        _setOption: function(e, i) {
11026            if ("accept" === e)
11027                this.accept = t.isFunction(i) ? i : function(t) {
11028                    return t.is(i)
11029                }
11030                ;
11031            else if ("scope" === e) {
11032                var n = t.ui.ddmanager.droppables[this.options.scope];
11033                this._splice(n),
11034                this._addToManager(i)
11035            }
11036            this._super(e, i)
11037        },
11038        _activate: function(e) {
11039            var i = t.ui.ddmanager.current;
11040            this._addActiveClass(),
11041            i && this._trigger("activate", e, this.ui(i))
11042        },
11043        _deactivate: function(e) {
11044            var i = t.ui.ddmanager.current;
11045            this._removeActiveClass(),
11046            i && this._trigger("deactivate", e, this.ui(i))
11047        },
11048        _over: function(e) {
11049            var i = t.ui.ddmanager.current;
11050            i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this._addHoverClass(),
11051            this._trigger("over", e, this.ui(i)))
11052        },
11053        _out: function(e) {
11054            var i = t.ui.ddmanager.current;
11055            i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this._removeHoverClass(),
11056            this._trigger("out", e, this.ui(i)))
11057        },
11058        _drop: function(i, n) {
11059            var s = n || t.ui.ddmanager.current
11060              , o = !1;
11061            return !(!s || (s.currentItem || s.element)[0] === this.element[0]) && (this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() {
11062                var n = t(this).droppable("instance");
11063                if (n.options.greedy && !n.options.disabled && n.options.scope === s.options.scope && n.accept.call(n.element[0], s.currentItem || s.element) && e(s, t.extend(n, {
11064                    offset: n.element.offset()
11065                }), n.options.tolerance, i))
11066                    return o = !0,
11067                    !1
11068            }),
11069            !o && (!!this.accept.call(this.element[0], s.currentItem || s.element) && (this._removeActiveClass(),
11070            this._removeHoverClass(),
11071            this._trigger("drop", i, this.ui(s)),
11072            this.element)))
11073        },
11074        ui: function(t) {
11075            return {
11076                draggable: t.currentItem || t.element,
11077                helper: t.helper,
11078                position: t.position,
11079                offset: t.positionAbs
11080            }
11081        },
11082        _addHoverClass: function() {
11083            this._addClass("ui-droppable-hover")
11084        },
11085        _removeHoverClass: function() {
11086            this._removeClass("ui-droppable-hover")
11087        },
11088        _addActiveClass: function() {
11089            this._addClass("ui-droppable-active")
11090        },
11091        _removeActiveClass: function() {
11092            this._removeClass("ui-droppable-active")
11093        }
11094    });
11095    var e = t.ui.intersect = function() {
11096        function t(t, e, i) {
11097            return t >= e && t < e + i
11098        }
11099        return function(e, i, n, s) {
11100            if (!i.offset)
11101                return !1;
11102            var o = (e.positionAbs || e.position.absolute).left + e.margins.left
11103              , r = (e.positionAbs || e.position.absolute).top + e.margins.top
11104              , a = o + e.helperProportions.width
11105              , l = r + e.helperProportions.height
11106              , h = i.offset.left
11107              , u = i.offset.top
11108              , c = h + i.proportions().width
11109              , d = u + i.proportions().height;
11110            switch (n) {
11111            case "fit":
11112                return h <= o && a <= c && u <= r && l <= d;
11113            case "intersect":
11114                return h < o + e.helperProportions.width / 2 && a - e.helperProportions.width / 2 < c && u < r + e.helperProportions.height / 2 && l - e.helperProportions.height / 2 < d;
11115            case "pointer":
11116                return t(s.pageY, u, i.proportions().height) && t(s.pageX, h, i.proportions().width);
11117            case "touch":
11118                return (r >= u && r <= d || l >= u && l <= d || r < u && l > d) && (o >= h && o <= c || a >= h && a <= c || o < h && a > c);
11119            default:
11120                return !1
11121            }
11122        }
11123    }();
11124    return t.ui.ddmanager = {
11125        current: null,
11126        droppables: {
11127            "default": []
11128        },
11129        prepareOffsets: function(e, i) {
11130            var n, s, o = t.ui.ddmanager.droppables[e.options.scope] || [], r = i ? i.type : null, a = (e.currentItem || e.element).find(":data(ui-droppable)").addBack();
11131            t: for (n = 0; n < o.length; n++)
11132                if (!(o[n].options.disabled || e && !o[n].accept.call(o[n].element[0], e.currentItem || e.element))) {
11133                    for (s = 0; s < a.length; s++)
11134                        if (a[s] === o[n].element[0]) {
11135                            o[n].proportions().height = 0;
11136                            continue t
11137                        }
11138                    o[n].visible = "none" !== o[n].element.css("display"),
11139                    o[n].visible && ("mousedown" === r && o[n]._activate.call(o[n], i),
11140                    o[n].offset = o[n].element.offset(),
11141                    o[n].proportions({
11142                        width: o[n].element[0].offsetWidth,
11143                        height: o[n].element[0].offsetHeight
11144                    }))
11145                }
11146        },
11147        drop: function(i, n) {
11148            var s = !1;
11149            return t.each((t.ui.ddmanager.droppables[i.options.scope] || []).slice(), function() {
11150                this.options && (!this.options.disabled && this.visible && e(i, this, this.options.tolerance, n) && (s = this._drop.call(this, n) || s),
11151                !this.options.disabled && this.visible && this.accept.call(this.element[0], i.currentItem || i.element) && (this.isout = !0,
11152                this.isover = !1,
11153                this._deactivate.call(this, n)))
11154            }),
11155            s
11156        },
11157        dragStart: function(e, i) {
11158            e.element.parentsUntil("body").on("scroll.droppable", function() {
11159                e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i)
11160            })
11161        },
11162        drag: function(i, n) {
11163            i.options.refreshPositions && t.ui.ddmanager.prepareOffsets(i, n),
11164            t.each(t.ui.ddmanager.droppables[i.options.scope] || [], function() {
11165                if (!this.options.disabled && !this.greedyChild && this.visible) {
11166                    var s, o, r, a = e(i, this, this.options.tolerance, n), l = !a && this.isover ? "isout" : a && !this.isover ? "isover" : null;
11167                    l && (this.options.greedy && (o = this.options.scope,
11168                    r = this.element.parents(":data(ui-droppable)").filter(function() {
11169                        return t(this).droppable("instance").options.scope === o
11170                    }),
11171                    r.length && (s = t(r[0]).droppable("instance"),
vendor: 7,460 bytes, lines 11172-11357
11172                    s.greedyChild = "isover" === l)),
11173                    s && "isover" === l && (s.isover = !1,
11174                    s.isout = !0,
11175                    s._out.call(s, n)),
11176                    this[l] = !0,
11177                    this["isout" === l ? "isover" : "isout"] = !1,
11178                    this["isover" === l ? "_over" : "_out"].call(this, n),
11179                    s && "isout" === l && (s.isout = !1,
11180                    s.isover = !0,
11181                    s._over.call(s, n)))
11182                }
11183            })
11184        },
11185        dragStop: function(e, i) {
11186            e.element.parentsUntil("body").off("scroll.droppable"),
11187            e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i)
11188        }
11189    },
11190    t.uiBackCompat !== !1 && t.widget("ui.droppable", t.ui.droppable, {
11191        options: {
11192            hoverClass: !1,
11193            activeClass: !1
11194        },
11195        _addActiveClass: function() {
11196            this._super(),
11197            this.options.activeClass && this.element.addClass(this.options.activeClass)
11198        },
11199        _removeActiveClass: function() {
11200            this._super(),
11201            this.options.activeClass && this.element.removeClass(this.options.activeClass)
11202        },
11203        _addHoverClass: function() {
11204            this._super(),
11205            this.options.hoverClass && this.element.addClass(this.options.hoverClass)
11206        },
11207        _removeHoverClass: function() {
11208            this._super(),
11209            this.options.hoverClass && this.element.removeClass(this.options.hoverClass)
11210        }
11211    }),
11212    t.ui.droppable
11213}),
11214function(t) {
11215    "function" == typeof define && define.amd ? define(["jquery", "../version", "../widget"], t) : t(jQuery)
11216}(function(t) {
11217    return t.widget("ui.progressbar", {
11218        version: "1.12.1",
11219        options: {
11220            classes: {
11221                "ui-progressbar": "ui-corner-all",
11222                "ui-progressbar-value": "ui-corner-left",
11223                "ui-progressbar-complete": "ui-corner-right"
11224            },
11225            max: 100,
11226            value: 0,
11227            change: null,
11228            complete: null
11229        },
11230        min: 0,
11231        _create: function() {
11232            this.oldValue = this.options.value = this._constrainedValue(),
11233            this.element.attr({
11234                role: "progressbar",
11235                "aria-valuemin": this.min
11236            }),
11237            this._addClass("ui-progressbar", "ui-widget ui-widget-content"),
11238            this.valueDiv = t("<div>").appendTo(this.element),
11239            this._addClass(this.valueDiv, "ui-progressbar-value", "ui-widget-header"),
11240            this._refreshValue()
11241        },
11242        _destroy: function() {
11243            this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),
11244            this.valueDiv.remove()
11245        },
11246        value: function(t) {
11247            return void 0 === t ? this.options.value : (this.options.value = this._constrainedValue(t),
11248            void this._refreshValue())
11249        },
11250        _constrainedValue: function(t) {
11251            return void 0 === t && (t = this.options.value),
11252            this.indeterminate = t === !1,
11253            "number" != typeof t && (t = 0),
11254            !this.indeterminate && Math.min(this.options.max, Math.max(this.min, t))
11255        },
11256        _setOptions: function(t) {
11257            var e = t.value;
11258            delete t.value,
11259            this._super(t),
11260            this.options.value = this._constrainedValue(e),
11261            this._refreshValue()
11262        },
11263        _setOption: function(t, e) {
11264            "max" === t && (e = Math.max(this.min, e)),
11265            this._super(t, e)
11266        },
11267        _setOptionDisabled: function(t) {
11268            this._super(t),
11269            this.element.attr("aria-disabled", t),
11270            this._toggleClass(null, "ui-state-disabled", !!t)
11271        },
11272        _percentage: function() {
11273            return this.indeterminate ? 100 : 100 * (this.options.value - this.min) / (this.options.max - this.min)
11274        },
11275        _refreshValue: function() {
11276            var e = this.options.value
11277              , i = this._percentage();
11278            this.valueDiv.toggle(this.indeterminate || e > this.min).width(i.toFixed(0) + "%"),
11279            this._toggleClass(this.valueDiv, "ui-progressbar-complete", null, e === this.options.max)._toggleClass("ui-progressbar-indeterminate", null, this.indeterminate),
11280            this.indeterminate ? (this.element.removeAttr("aria-valuenow"),
11281            this.overlayDiv || (this.overlayDiv = t("<div>").appendTo(this.valueDiv),
11282            this._addClass(this.overlayDiv, "ui-progressbar-overlay"))) : (this.element.attr({
11283                "aria-valuemax": this.options.max,
11284                "aria-valuenow": e
11285            }),
11286            this.overlayDiv && (this.overlayDiv.remove(),
11287            this.overlayDiv = null)),
11288            this.oldValue !== e && (this.oldValue = e,
11289            this._trigger("change")),
11290            e === this.options.max && this._trigger("complete")
11291        }
11292    })
11293}),
11294function(t) {
11295    "function" == typeof define && define.amd ? define(["jquery", "./mouse", "../version", "../widget"], t) : t(jQuery)
11296}(function(t) {
11297    return t.widget("ui.selectable", t.ui.mouse, {
11298        version: "1.12.1",
11299        options: {
11300            appendTo: "body",
11301            autoRefresh: !0,
11302            distance: 0,
11303            filter: "*",
11304            tolerance: "touch",
11305            selected: null,
11306            selecting: null,
11307            start: null,
11308            stop: null,
11309            unselected: null,
11310            unselecting: null
11311        },
11312        _create: function() {
11313            var e = this;
11314            this._addClass("ui-selectable"),
11315            this.dragged = !1,
11316            this.refresh = function() {
11317                e.elementPos = t(e.element[0]).offset(),
11318                e.selectees = t(e.options.filter, e.element[0]),
11319                e._addClass(e.selectees, "ui-selectee"),
11320                e.selectees.each(function() {
11321                    var i = t(this)
11322                      , n = i.offset()
11323                      , s = {
11324                        left: n.left - e.elementPos.left,
11325                        top: n.top - e.elementPos.top
11326                    };
11327                    t.data(this, "selectable-item", {
11328                        element: this,
11329                        $element: i,
11330                        left: s.left,
11331                        top: s.top,
11332                        right: s.left + i.outerWidth(),
11333                        bottom: s.top + i.outerHeight(),
11334                        startselected: !1,
11335                        selected: i.hasClass("ui-selected"),
11336                        selecting: i.hasClass("ui-selecting"),
11337                        unselecting: i.hasClass("ui-unselecting")
11338                    })
11339                })
11340            }
11341            ,
11342            this.refresh(),
11343            this._mouseInit(),
11344            this.helper = t("<div>"),
11345            this._addClass(this.helper, "ui-selectable-helper")
11346        },
11347        _destroy: function() {
11348            this.selectees.removeData("selectable-item"),
11349            this._mouseDestroy()
11350        },
11351        _mouseStart: function(e) {
11352            var i = this
11353              , n = this.options;
11354            this.opos = [e.pageX, e.pageY],
11355            this.elementPos = t(this.element[0]).offset(),
11356            this.options.disabled || (this.selectees = t(n.filter, this.element[0]),
11357            this._trigger("start", e),
vendor: 16,384 bytes, lines 11358-11747
11358            t(n.appendTo).append(this.helper),
11359            this.helper.css({
11360                left: e.pageX,
11361                top: e.pageY,
11362                width: 0,
11363                height: 0
11364            }),
11365            n.autoRefresh && this.refresh(),
11366            this.selectees.filter(".ui-selected").each(function() {
11367                var n = t.data(this, "selectable-item");
11368                n.startselected = !0,
11369                e.metaKey || e.ctrlKey || (i._removeClass(n.$element, "ui-selected"),
11370                n.selected = !1,
11371                i._addClass(n.$element, "ui-unselecting"),
11372                n.unselecting = !0,
11373                i._trigger("unselecting", e, {
11374                    unselecting: n.element
11375                }))
11376            }),
11377            t(e.target).parents().addBack().each(function() {
11378                var n, s = t.data(this, "selectable-item");
11379                if (s)
11380                    return n = !e.metaKey && !e.ctrlKey || !s.$element.hasClass("ui-selected"),
11381                    i._removeClass(s.$element, n ? "ui-unselecting" : "ui-selected")._addClass(s.$element, n ? "ui-selecting" : "ui-unselecting"),
11382                    s.unselecting = !n,
11383                    s.selecting = n,
11384                    s.selected = n,
11385                    n ? i._trigger("selecting", e, {
11386                        selecting: s.element
11387                    }) : i._trigger("unselecting", e, {
11388                        unselecting: s.element
11389                    }),
11390                    !1
11391            }))
11392        },
11393        _mouseDrag: function(e) {
11394            if (this.dragged = !0,
11395            !this.options.disabled) {
11396                var i, n = this, s = this.options, o = this.opos[0], r = this.opos[1], a = e.pageX, l = e.pageY;
11397                return o > a && (i = a,
11398                a = o,
11399                o = i),
11400                r > l && (i = l,
11401                l = r,
11402                r = i),
11403                this.helper.css({
11404                    left: o,
11405                    top: r,
11406                    width: a - o,
11407                    height: l - r
11408                }),
11409                this.selectees.each(function() {
11410                    var i = t.data(this, "selectable-item")
11411                      , h = !1
11412                      , u = {};
11413                    i && i.element !== n.element[0] && (u.left = i.left + n.elementPos.left,
11414                    u.right = i.right + n.elementPos.left,
11415                    u.top = i.top + n.elementPos.top,
11416                    u.bottom = i.bottom + n.elementPos.top,
11417                    "touch" === s.tolerance ? h = !(u.left > a || u.right < o || u.top > l || u.bottom < r) : "fit" === s.tolerance && (h = u.left > o && u.right < a && u.top > r && u.bottom < l),
11418                    h ? (i.selected && (n._removeClass(i.$element, "ui-selected"),
11419                    i.selected = !1),
11420                    i.unselecting && (n._removeClass(i.$element, "ui-unselecting"),
11421                    i.unselecting = !1),
11422                    i.selecting || (n._addClass(i.$element, "ui-selecting"),
11423                    i.selecting = !0,
11424                    n._trigger("selecting", e, {
11425                        selecting: i.element
11426                    }))) : (i.selecting && ((e.metaKey || e.ctrlKey) && i.startselected ? (n._removeClass(i.$element, "ui-selecting"),
11427                    i.selecting = !1,
11428                    n._addClass(i.$element, "ui-selected"),
11429                    i.selected = !0) : (n._removeClass(i.$element, "ui-selecting"),
11430                    i.selecting = !1,
11431                    i.startselected && (n._addClass(i.$element, "ui-unselecting"),
11432                    i.unselecting = !0),
11433                    n._trigger("unselecting", e, {
11434                        unselecting: i.element
11435                    }))),
11436                    i.selected && (e.metaKey || e.ctrlKey || i.startselected || (n._removeClass(i.$element, "ui-selected"),
11437                    i.selected = !1,
11438                    n._addClass(i.$element, "ui-unselecting"),
11439                    i.unselecting = !0,
11440                    n._trigger("unselecting", e, {
11441                        unselecting: i.element
11442                    })))))
11443                }),
11444                !1
11445            }
11446        },
11447        _mouseStop: function(e) {
11448            var i = this;
11449            return this.dragged = !1,
11450            t(".ui-unselecting", this.element[0]).each(function() {
11451                var n = t.data(this, "selectable-item");
11452                i._removeClass(n.$element, "ui-unselecting"),
11453                n.unselecting = !1,
11454                n.startselected = !1,
11455                i._trigger("unselected", e, {
11456                    unselected: n.element
11457                })
11458            }),
11459            t(".ui-selecting", this.element[0]).each(function() {
11460                var n = t.data(this, "selectable-item");
11461                i._removeClass(n.$element, "ui-selecting")._addClass(n.$element, "ui-selected"),
11462                n.selecting = !1,
11463                n.selected = !0,
11464                n.startselected = !0,
11465                i._trigger("selected", e, {
11466                    selected: n.element
11467                })
11468            }),
11469            this._trigger("stop", e),
11470            this.helper.remove(),
11471            !1
11472        }
11473    })
11474}),
11475function(t) {
11476    "function" == typeof define && define.amd ? define(["jquery", "./menu", "../escape-selector", "../form-reset-mixin", "../keycode", "../labels", "../position", "../unique-id", "../version", "../widget"], t) : t(jQuery)
11477}(function(t) {
11478    return t.widget("ui.selectmenu", [t.ui.formResetMixin, {
11479        version: "1.12.1",
11480        defaultElement: "<select>",
11481        options: {
11482            appendTo: null,
11483            classes: {
11484                "ui-selectmenu-button-open": "ui-corner-top",
11485                "ui-selectmenu-button-closed": "ui-corner-all"
11486            },
11487            disabled: null,
11488            icons: {
11489                button: "ui-icon-triangle-1-s"
11490            },
11491            position: {
11492                my: "left top",
11493                at: "left bottom",
11494                collision: "none"
11495            },
11496            width: !1,
11497            change: null,
11498            close: null,
11499            focus: null,
11500            open: null,
11501            select: null
11502        },
11503        _create: function() {
11504            var e = this.element.uniqueId().attr("id");
11505            this.ids = {
11506                element: e,
11507                button: e + "-button",
11508                menu: e + "-menu"
11509            },
11510            this._drawButton(),
11511            this._drawMenu(),
11512            this._bindFormResetHandler(),
11513            this._rendered = !1,
11514            this.menuItems = t()
11515        },
11516        _drawButton: function() {
11517            var e, i = this, n = this._parseOption(this.element.find("option:selected"), this.element[0].selectedIndex);
11518            this.labels = this.element.labels().attr("for", this.ids.button),
11519            this._on(this.labels, {
11520                click: function(t) {
11521                    this.button.focus(),
11522                    t.preventDefault()
11523                }
11524            }),
11525            this.element.hide(),
11526            this.button = t("<span>", {
11527                tabindex: this.options.disabled ? -1 : 0,
11528                id: this.ids.button,
11529                role: "combobox",
11530                "aria-expanded": "false",
11531                "aria-autocomplete": "list",
11532                "aria-owns": this.ids.menu,
11533                "aria-haspopup": "true",
11534                title: this.element.attr("title")
11535            }).insertAfter(this.element),
11536            this._addClass(this.button, "ui-selectmenu-button ui-selectmenu-button-closed", "ui-button ui-widget"),
11537            e = t("<span>").appendTo(this.button),
11538            this._addClass(e, "ui-selectmenu-icon", "ui-icon " + this.options.icons.button),
11539            this.buttonItem = this._renderButtonItem(n).appendTo(this.button),
11540            this.options.width !== !1 && this._resizeButton(),
11541            this._on(this.button, this._buttonEvents),
11542            this.button.one("focusin", function() {
11543                i._rendered || i._refreshMenu()
11544            })
11545        },
11546        _drawMenu: function() {
11547            var e = this;
11548            this.menu = t("<ul>", {
11549                "aria-hidden": "true",
11550                "aria-labelledby": this.ids.button,
11551                id: this.ids.menu
11552            }),
11553            this.menuWrap = t("<div>").append(this.menu),
11554            this._addClass(this.menuWrap, "ui-selectmenu-menu", "ui-front"),
11555            this.menuWrap.appendTo(this._appendTo()),
11556            this.menuInstance = this.menu.menu({
11557                classes: {
11558                    "ui-menu": "ui-corner-bottom"
11559                },
11560                role: "listbox",
11561                select: function(t, i) {
11562                    t.preventDefault(),
11563                    e._setSelection(),
11564                    e._select(i.item.data("ui-selectmenu-item"), t)
11565                },
11566                focus: function(t, i) {
11567                    var n = i.item.data("ui-selectmenu-item");
11568                    null != e.focusIndex && n.index !== e.focusIndex && (e._trigger("focus", t, {
11569                        item: n
11570                    }),
11571                    e.isOpen || e._select(n, t)),
11572                    e.focusIndex = n.index,
11573                    e.button.attr("aria-activedescendant", e.menuItems.eq(n.index).attr("id"))
11574                }
11575            }).menu("instance"),
11576            this.menuInstance._off(this.menu, "mouseleave"),
11577            this.menuInstance._closeOnDocumentClick = function() {
11578                return !1
11579            }
11580            ,
11581            this.menuInstance._isDivider = function() {
11582                return !1
11583            }
11584        },
11585        refresh: function() {
11586            this._refreshMenu(),
11587            this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item") || {})),
11588            null === this.options.width && this._resizeButton()
11589        },
11590        _refreshMenu: function() {
11591            var t, e = this.element.find("option");
11592            this.menu.empty(),
11593            this._parseOptions(e),
11594            this._renderMenu(this.menu, this.items),
11595            this.menuInstance.refresh(),
11596            this.menuItems = this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),
11597            this._rendered = !0,
11598            e.length && (t = this._getSelectedItem(),
11599            this.menuInstance.focus(null, t),
11600            this._setAria(t.data("ui-selectmenu-item")),
11601            this._setOption("disabled", this.element.prop("disabled")))
11602        },
11603        open: function(t) {
11604            this.options.disabled || (this._rendered ? (this._removeClass(this.menu.find(".ui-state-active"), null, "ui-state-active"),
11605            this.menuInstance.focus(null, this._getSelectedItem())) : this._refreshMenu(),
11606            this.menuItems.length && (this.isOpen = !0,
11607            this._toggleAttr(),
11608            this._resizeMenu(),
11609            this._position(),
11610            this._on(this.document, this._documentClick),
11611            this._trigger("open", t)))
11612        },
11613        _position: function() {
11614            this.menuWrap.position(t.extend({
11615                of: this.button
11616            }, this.options.position))
11617        },
11618        close: function(t) {
11619            this.isOpen && (this.isOpen = !1,
11620            this._toggleAttr(),
11621            this.range = null,
11622            this._off(this.document),
11623            this._trigger("close", t))
11624        },
11625        widget: function() {
11626            return this.button
11627        },
11628        menuWidget: function() {
11629            return this.menu
11630        },
11631        _renderButtonItem: function(e) {
11632            var i = t("<span>");
11633            return this._setText(i, e.label),
11634            this._addClass(i, "ui-selectmenu-text"),
11635            i
11636        },
11637        _renderMenu: function(e, i) {
11638            var n = this
11639              , s = "";
11640            t.each(i, function(i, o) {
11641                var r;
11642                o.optgroup !== s && (r = t("<li>", {
11643                    text: o.optgroup
11644                }),
11645                n._addClass(r, "ui-selectmenu-optgroup", "ui-menu-divider" + (o.element.parent("optgroup").prop("disabled") ? " ui-state-disabled" : "")),
11646                r.appendTo(e),
11647                s = o.optgroup),
11648                n._renderItemData(e, o)
11649            })
11650        },
11651        _renderItemData: function(t, e) {
11652            return this._renderItem(t, e).data("ui-selectmenu-item", e)
11653        },
11654        _renderItem: function(e, i) {
11655            var n = t("<li>")
11656              , s = t("<div>", {
11657                title: i.element.attr("title")
11658            });
11659            return i.disabled && this._addClass(n, null, "ui-state-disabled"),
11660            this._setText(s, i.label),
11661            n.append(s).appendTo(e)
11662        },
11663        _setText: function(t, e) {
11664            e ? t.text(e) : t.html("&#160;")
11665        },
11666        _move: function(t, e) {
11667            var i, n, s = ".ui-menu-item";
11668            this.isOpen ? i = this.menuItems.eq(this.focusIndex).parent("li") : (i = this.menuItems.eq(this.element[0].selectedIndex).parent("li"),
11669            s += ":not(.ui-state-disabled)"),
11670            n = "first" === t || "last" === t ? i["first" === t ? "prevAll" : "nextAll"](s).eq(-1) : i[t + "All"](s).eq(0),
11671            n.length && this.menuInstance.focus(e, n)
11672        },
11673        _getSelectedItem: function() {
11674            return this.menuItems.eq(this.element[0].selectedIndex).parent("li")
11675        },
11676        _toggle: function(t) {
11677            this[this.isOpen ? "close" : "open"](t)
11678        },
11679        _setSelection: function() {
11680            var t;
11681            this.range && (window.getSelection ? (t = window.getSelection(),
11682            t.removeAllRanges(),
11683            t.addRange(this.range)) : this.range.select(),
11684            this.button.focus())
11685        },
11686        _documentClick: {
11687            mousedown: function(e) {
11688                this.isOpen && (t(e.target).closest(".ui-selectmenu-menu, #" + t.ui.escapeSelector(this.ids.button)).length || this.close(e))
11689            }
11690        },
11691        _buttonEvents: {
11692            mousedown: function() {
11693                var t;
11694                window.getSelection ? (t = window.getSelection(),
11695                t.rangeCount && (this.range = t.getRangeAt(0))) : this.range = document.selection.createRange()
11696            },
11697            click: function(t) {
11698                this._setSelection(),
11699                this._toggle(t)
11700            },
11701            keydown: function(e) {
11702                var i = !0;
11703                switch (e.keyCode) {
11704                case t.ui.keyCode.TAB:
11705                case t.ui.keyCode.ESCAPE:
11706                    this.close(e),
11707                    i = !1;
11708                    break;
11709                case t.ui.keyCode.ENTER:
11710                    this.isOpen && this._selectFocusedItem(e);
11711                    break;
11712                case t.ui.keyCode.UP:
11713                    e.altKey ? this._toggle(e) : this._move("prev", e);
11714                    break;
11715                case t.ui.keyCode.DOWN:
11716                    e.altKey ? this._toggle(e) : this._move("next", e);
11717                    break;
11718                case t.ui.keyCode.SPACE:
11719                    this.isOpen ? this._selectFocusedItem(e) : this._toggle(e);
11720                    break;
11721                case t.ui.keyCode.LEFT:
11722                    this._move("prev", e);
11723                    break;
11724                case t.ui.keyCode.RIGHT:
11725                    this._move("next", e);
11726                    break;
11727                case t.ui.keyCode.HOME:
11728                case t.ui.keyCode.PAGE_UP:
11729                    this._move("first", e);
11730                    break;
11731                case t.ui.keyCode.END:
11732                case t.ui.keyCode.PAGE_DOWN:
11733                    this._move("last", e);
11734                    break;
11735                default:
11736                    this.menu.trigger(e),
11737                    i = !1
11738                }
11739                i && e.preventDefault()
11740            }
11741        },
11742        _selectFocusedItem: function(t) {
11743            var e = this.menuItems.eq(this.focusIndex).parent("li");
11744            e.hasClass("ui-state-disabled") || this._select(e.data("ui-selectmenu-item"), t)
11745        },
11746        _select: function(t, e) {
11747            var i = this.element[0].select
vendor: 5,475 bytes, lines 11747-11888
11747edIndex;
11748            this.element[0].selectedIndex = t.index,
11749            this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(t)),
11750            this._setAria(t),
11751            this._trigger("select", e, {
11752                item: t
11753            }),
11754            t.index !== i && this._trigger("change", e, {
11755                item: t
11756            }),
11757            this.close(e)
11758        },
11759        _setAria: function(t) {
11760            var e = this.menuItems.eq(t.index).attr("id");
11761            this.button.attr({
11762                "aria-labelledby": e,
11763                "aria-activedescendant": e
11764            }),
11765            this.menu.attr("aria-activedescendant", e)
11766        },
11767        _setOption: function(t, e) {
11768            if ("icons" === t) {
11769                var i = this.button.find("span.ui-icon");
11770                this._removeClass(i, null, this.options.icons.button)._addClass(i, null, e.button)
11771            }
11772            this._super(t, e),
11773            "appendTo" === t && this.menuWrap.appendTo(this._appendTo()),
11774            "width" === t && this._resizeButton()
11775        },
11776        _setOptionDisabled: function(t) {
11777            this._super(t),
11778            this.menuInstance.option("disabled", t),
11779            this.button.attr("aria-disabled", t),
11780            this._toggleClass(this.button, null, "ui-state-disabled", t),
11781            this.element.prop("disabled", t),
11782            t ? (this.button.attr("tabindex", -1),
11783            this.close()) : this.button.attr("tabindex", 0)
11784        },
11785        _appendTo: function() {
11786            var e = this.options.appendTo;
11787            return e && (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)),
11788            e && e[0] || (e = this.element.closest(".ui-front, dialog")),
11789            e.length || (e = this.document[0].body),
11790            e
11791        },
11792        _toggleAttr: function() {
11793            this.button.attr("aria-expanded", this.isOpen),
11794            this._removeClass(this.button, "ui-selectmenu-button-" + (this.isOpen ? "closed" : "open"))._addClass(this.button, "ui-selectmenu-button-" + (this.isOpen ? "open" : "closed"))._toggleClass(this.menuWrap, "ui-selectmenu-open", null, this.isOpen),
11795            this.menu.attr("aria-hidden", !this.isOpen)
11796        },
11797        _resizeButton: function() {
11798            var t = this.options.width;
11799            return t === !1 ? void this.button.css("width", "") : (null === t && (t = this.element.show().outerWidth(),
11800            this.element.hide()),
11801            void this.button.outerWidth(t))
11802        },
11803        _resizeMenu: function() {
11804            this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width("").outerWidth() + 1))
11805        },
11806        _getCreateOptions: function() {
11807            var t = this._super();
11808            return t.disabled = this.element.prop("disabled"),
11809            t
11810        },
11811        _parseOptions: function(e) {
11812            var i = this
11813              , n = [];
11814            e.each(function(e, s) {
11815                n.push(i._parseOption(t(s), e))
11816            }),
11817            this.items = n
11818        },
11819        _parseOption: function(t, e) {
11820            var i = t.parent("optgroup");
11821            return {
11822                element: t,
11823                index: e,
11824                value: t.val(),
11825                label: t.text(),
11826                optgroup: i.attr("label") || "",
11827                disabled: i.prop("disabled") || t.prop("disabled")
11828            }
11829        },
11830        _destroy: function() {
11831            this._unbindFormResetHandler(),
11832            this.menuWrap.remove(),
11833            this.button.remove(),
11834            this.element.show(),
11835            this.element.removeUniqueId(),
11836            this.labels.attr("for", this.ids.element)
11837        }
11838    }])
11839}),
11840function(t) {
11841    "function" == typeof define && define.amd ? define(["jquery", "./mouse", "../keycode", "../version", "../widget"], t) : t(jQuery)
11842}(function(t) {
11843    return t.widget("ui.slider", t.ui.mouse, {
11844        version: "1.12.1",
11845        widgetEventPrefix: "slide",
11846        options: {
11847            animate: !1,
11848            classes: {
11849                "ui-slider": "ui-corner-all",
11850                "ui-slider-handle": "ui-corner-all",
11851                "ui-slider-range": "ui-corner-all ui-widget-header"
11852            },
11853            distance: 0,
11854            max: 100,
11855            min: 0,
11856            orientation: "horizontal",
11857            range: !1,
11858            step: 1,
11859            value: 0,
11860            values: null,
11861            change: null,
11862            slide: null,
11863            start: null,
11864            stop: null
11865        },
11866        numPages: 5,
11867        _create: function() {
11868            this._keySliding = !1,
11869            this._mouseSliding = !1,
11870            this._animateOff = !0,
11871            this._handleIndex = null,
11872            this._detectOrientation(),
11873            this._mouseInit(),
11874            this._calculateNewMax(),
11875            this._addClass("ui-slider ui-slider-" + this.orientation, "ui-widget ui-widget-content"),
11876            this._refresh(),
11877            this._animateOff = !1
11878        },
11879        _refresh: function() {
11880            this._createRange(),
11881            this._createHandles(),
11882            this._setupEvents(),
11883            this._refreshValue()
11884        },
11885        _createHandles: function() {
11886            var e, i, n = this.options, s = this.element.find(".ui-slider-handle"), o = "<span tabindex='0'></span>", r = [];
11887            for (i = n.values && n.values.length || 1,
11888            s.length > i && (s.slice(i).remove(),
vendor: 6,335 bytes, lines 11889-12031
11889            s = s.slice(0, i)),
11890            e = s.length; e < i; e++)
11891                r.push(o);
11892            this.handles = s.add(t(r.join("")).appendTo(this.element)),
11893            this._addClass(this.handles, "ui-slider-handle", "ui-state-default"),
11894            this.handle = this.handles.eq(0),
11895            this.handles.each(function(e) {
11896                t(this).data("ui-slider-handle-index", e).attr("tabIndex", 0)
11897            })
11898        },
11899        _createRange: function() {
11900            var e = this.options;
11901            e.range ? (e.range === !0 && (e.values ? e.values.length && 2 !== e.values.length ? e.values = [e.values[0], e.values[0]] : t.isArray(e.values) && (e.values = e.values.slice(0)) : e.values = [this._valueMin(), this._valueMin()]),
11902            this.range && this.range.length ? (this._removeClass(this.range, "ui-slider-range-min ui-slider-range-max"),
11903            this.range.css({
11904                left: "",
11905                bottom: ""
11906            })) : (this.range = t("<div>").appendTo(this.element),
11907            this._addClass(this.range, "ui-slider-range")),
11908            "min" !== e.range && "max" !== e.range || this._addClass(this.range, "ui-slider-range-" + e.range)) : (this.range && this.range.remove(),
11909            this.range = null)
11910        },
11911        _setupEvents: function() {
11912            this._off(this.handles),
11913            this._on(this.handles, this._handleEvents),
11914            this._hoverable(this.handles),
11915            this._focusable(this.handles)
11916        },
11917        _destroy: function() {
11918            this.handles.remove(),
11919            this.range && this.range.remove(),
11920            this._mouseDestroy()
11921        },
11922        _mouseCapture: function(e) {
11923            var i, n, s, o, r, a, l, h, u = this, c = this.options;
11924            return !c.disabled && (this.elementSize = {
11925                width: this.element.outerWidth(),
11926                height: this.element.outerHeight()
11927            },
11928            this.elementOffset = this.element.offset(),
11929            i = {
11930                x: e.pageX,
11931                y: e.pageY
11932            },
11933            n = this._normValueFromMouse(i),
11934            s = this._valueMax() - this._valueMin() + 1,
11935            this.handles.each(function(e) {
11936                var i = Math.abs(n - u.values(e));
11937                (s > i || s === i && (e === u._lastChangedValue || u.values(e) === c.min)) && (s = i,
11938                o = t(this),
11939                r = e)
11940            }),
11941            a = this._start(e, r),
11942            a !== !1 && (this._mouseSliding = !0,
11943            this._handleIndex = r,
11944            this._addClass(o, null, "ui-state-active"),
11945            o.trigger("focus"),
11946            l = o.offset(),
11947            h = !t(e.target).parents().addBack().is(".ui-slider-handle"),
11948            this._clickOffset = h ? {
11949                left: 0,
11950                top: 0
11951            } : {
11952                left: e.pageX - l.left - o.width() / 2,
11953                top: e.pageY - l.top - o.height() / 2 - (parseInt(o.css("borderTopWidth"), 10) || 0) - (parseInt(o.css("borderBottomWidth"), 10) || 0) + (parseInt(o.css("marginTop"), 10) || 0)
11954            },
11955            this.handles.hasClass("ui-state-hover") || this._slide(e, r, n),
11956            this._animateOff = !0,
11957            !0))
11958        },
11959        _mouseStart: function() {
11960            return !0
11961        },
11962        _mouseDrag: function(t) {
11963            var e = {
11964                x: t.pageX,
11965                y: t.pageY
11966            }
11967              , i = this._normValueFromMouse(e);
11968            return this._slide(t, this._handleIndex, i),
11969            !1
11970        },
11971        _mouseStop: function(t) {
11972            return this._removeClass(this.handles, null, "ui-state-active"),
11973            this._mouseSliding = !1,
11974            this._stop(t, this._handleIndex),
11975            this._change(t, this._handleIndex),
11976            this._handleIndex = null,
11977            this._clickOffset = null,
11978            this._animateOff = !1,
11979            !1
11980        },
11981        _detectOrientation: function() {
11982            this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal"
11983        },
11984        _normValueFromMouse: function(t) {
11985            var e, i, n, s, o;
11986            return "horizontal" === this.orientation ? (e = this.elementSize.width,
11987            i = t.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (e = this.elementSize.height,
11988            i = t.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)),
11989            n = i / e,
11990            n > 1 && (n = 1),
11991            n < 0 && (n = 0),
11992            "vertical" === this.orientation && (n = 1 - n),
11993            s = this._valueMax() - this._valueMin(),
11994            o = this._valueMin() + n * s,
11995            this._trimAlignValue(o)
11996        },
11997        _uiHash: function(t, e, i) {
11998            var n = {
11999                handle: this.handles[t],
12000                handleIndex: t,
12001                value: void 0 !== e ? e : this.value()
12002            };
12003            return this._hasMultipleValues() && (n.value = void 0 !== e ? e : this.values(t),
12004            n.values = i || this.values()),
12005            n
12006        },
12007        _hasMultipleValues: function() {
12008            return this.options.values && this.options.values.length
12009        },
12010        _start: function(t, e) {
12011            return this._trigger("start", t, this._uiHash(e))
12012        },
12013        _slide: function(t, e, i) {
12014            var n, s, o = this.value(), r = this.values();
12015            this._hasMultipleValues() && (s = this.values(e ? 0 : 1),
12016            o = this.values(e),
12017            2 === this.options.values.length && this.options.range === !0 && (i = 0 === e ? Math.min(s, i) : Math.max(s, i)),
12018            r[e] = i),
12019            i !== o && (n = this._trigger("slide", t, this._uiHash(e, i, r)),
12020            n !== !1 && (this._hasMultipleValues() ? this.values(e, i) : this.value(i)))
12021        },
12022        _stop: function(t, e) {
12023            this._trigger("stop", t, this._uiHash(e))
12024        },
12025        _change: function(t, e) {
12026            this._keySliding || this._mouseSliding || (this._lastChangedValue = e,
12027            this._trigger("change", t, this._uiHash(e)))
12028        },
12029        value: function(t) {
12030            return arguments.length ? (this.options.value = this._trimAlignValue(t),
12031            this._refreshValue(),
vendor: 24,841 bytes, lines 12032-12546
12032            void this._change(null, 0)) : this._value()
12033        },
12034        values: function(e, i) {
12035            var n, s, o;
12036            if (arguments.length > 1)
12037                return this.options.values[e] = this._trimAlignValue(i),
12038                this._refreshValue(),
12039                void this._change(null, e);
12040            if (!arguments.length)
12041                return this._values();
12042            if (!t.isArray(arguments[0]))
12043                return this._hasMultipleValues() ? this._values(e) : this.value();
12044            for (n = this.options.values,
12045            s = arguments[0],
12046            o = 0; o < n.length; o += 1)
12047                n[o] = this._trimAlignValue(s[o]),
12048                this._change(null, o);
12049            this._refreshValue()
12050        },
12051        _setOption: function(e, i) {
12052            var n, s = 0;
12053            switch ("range" === e && this.options.range === !0 && ("min" === i ? (this.options.value = this._values(0),
12054            this.options.values = null) : "max" === i && (this.options.value = this._values(this.options.values.length - 1),
12055            this.options.values = null)),
12056            t.isArray(this.options.values) && (s = this.options.values.length),
12057            this._super(e, i),
12058            e) {
12059            case "orientation":
12060                this._detectOrientation(),
12061                this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-" + this.orientation),
12062                this._refreshValue(),
12063                this.options.range && this._refreshRange(i),
12064                this.handles.css("horizontal" === i ? "bottom" : "left", "");
12065                break;
12066            case "value":
12067                this._animateOff = !0,
12068                this._refreshValue(),
12069                this._change(null, 0),
12070                this._animateOff = !1;
12071                break;
12072            case "values":
12073                for (this._animateOff = !0,
12074                this._refreshValue(),
12075                n = s - 1; n >= 0; n--)
12076                    this._change(null, n);
12077                this._animateOff = !1;
12078                break;
12079            case "step":
12080            case "min":
12081            case "max":
12082                this._animateOff = !0,
12083                this._calculateNewMax(),
12084                this._refreshValue(),
12085                this._animateOff = !1;
12086                break;
12087            case "range":
12088                this._animateOff = !0,
12089                this._refresh(),
12090                this._animateOff = !1
12091            }
12092        },
12093        _setOptionDisabled: function(t) {
12094            this._super(t),
12095            this._toggleClass(null, "ui-state-disabled", !!t)
12096        },
12097        _value: function() {
12098            var t = this.options.value;
12099            return t = this._trimAlignValue(t)
12100        },
12101        _values: function(t) {
12102            var e, i, n;
12103            if (arguments.length)
12104                return e = this.options.values[t],
12105                e = this._trimAlignValue(e);
12106            if (this._hasMultipleValues()) {
12107                for (i = this.options.values.slice(),
12108                n = 0; n < i.length; n += 1)
12109                    i[n] = this._trimAlignValue(i[n]);
12110                return i
12111            }
12112            return []
12113        },
12114        _trimAlignValue: function(t) {
12115            if (t <= this._valueMin())
12116                return this._valueMin();
12117            if (t >= this._valueMax())
12118                return this._valueMax();
12119            var e = this.options.step > 0 ? this.options.step : 1
12120              , i = (t - this._valueMin()) % e
12121              , n = t - i;
12122            return 2 * Math.abs(i) >= e && (n += i > 0 ? e : -e),
12123            parseFloat(n.toFixed(5))
12124        },
12125        _calculateNewMax: function() {
12126            var t = this.options.max
12127              , e = this._valueMin()
12128              , i = this.options.step
12129              , n = Math.round((t - e) / i) * i;
12130            t = n + e,
12131            t > this.options.max && (t -= i),
12132            this.max = parseFloat(t.toFixed(this._precision()))
12133        },
12134        _precision: function() {
12135            var t = this._precisionOf(this.options.step);
12136            return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))),
12137            t
12138        },
12139        _precisionOf: function(t) {
12140            var e = t.toString()
12141              , i = e.indexOf(".");
12142            return i === -1 ? 0 : e.length - i - 1
12143        },
12144        _valueMin: function() {
12145            return this.options.min
12146        },
12147        _valueMax: function() {
12148            return this.max
12149        },
12150        _refreshRange: function(t) {
12151            "vertical" === t && this.range.css({
12152                width: "",
12153                left: ""
12154            }),
12155            "horizontal" === t && this.range.css({
12156                height: "",
12157                bottom: ""
12158            })
12159        },
12160        _refreshValue: function() {
12161            var e, i, n, s, o, r = this.options.range, a = this.options, l = this, h = !this._animateOff && a.animate, u = {};
12162            this._hasMultipleValues() ? this.handles.each(function(n) {
12163                i = (l.values(n) - l._valueMin()) / (l._valueMax() - l._valueMin()) * 100,
12164                u["horizontal" === l.orientation ? "left" : "bottom"] = i + "%",
12165                t(this).stop(1, 1)[h ? "animate" : "css"](u, a.animate),
12166                l.options.range === !0 && ("horizontal" === l.orientation ? (0 === n && l.range.stop(1, 1)[h ? "animate" : "css"]({
12167                    left: i + "%"
12168                }, a.animate),
12169                1 === n && l.range[h ? "animate" : "css"]({
12170                    width: i - e + "%"
12171                }, {
12172                    queue: !1,
12173                    duration: a.animate
12174                })) : (0 === n && l.range.stop(1, 1)[h ? "animate" : "css"]({
12175                    bottom: i + "%"
12176                }, a.animate),
12177                1 === n && l.range[h ? "animate" : "css"]({
12178                    height: i - e + "%"
12179                }, {
12180                    queue: !1,
12181                    duration: a.animate
12182                }))),
12183                e = i
12184            }) : (n = this.value(),
12185            s = this._valueMin(),
12186            o = this._valueMax(),
12187            i = o !== s ? (n - s) / (o - s) * 100 : 0,
12188            u["horizontal" === this.orientation ? "left" : "bottom"] = i + "%",
12189            this.handle.stop(1, 1)[h ? "animate" : "css"](u, a.animate),
12190            "min" === r && "horizontal" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({
12191                width: i + "%"
12192            }, a.animate),
12193            "max" === r && "horizontal" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({
12194                width: 100 - i + "%"
12195            }, a.animate),
12196            "min" === r && "vertical" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({
12197                height: i + "%"
12198            }, a.animate),
12199            "max" === r && "vertical" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({
12200                height: 100 - i + "%"
12201            }, a.animate))
12202        },
12203        _handleEvents: {
12204            keydown: function(e) {
12205                var i, n, s, o, r = t(e.target).data("ui-slider-handle-index");
12206                switch (e.keyCode) {
12207                case t.ui.keyCode.HOME:
12208                case t.ui.keyCode.END:
12209                case t.ui.keyCode.PAGE_UP:
12210                case t.ui.keyCode.PAGE_DOWN:
12211                case t.ui.keyCode.UP:
12212                case t.ui.keyCode.RIGHT:
12213                case t.ui.keyCode.DOWN:
12214                case t.ui.keyCode.LEFT:
12215                    if (e.preventDefault(),
12216                    !this._keySliding && (this._keySliding = !0,
12217                    this._addClass(t(e.target), null, "ui-state-active"),
12218                    i = this._start(e, r),
12219                    i === !1))
12220                        return
12221                }
12222                switch (o = this.options.step,
12223                n = s = this._hasMultipleValues() ? this.values(r) : this.value(),
12224                e.keyCode) {
12225                case t.ui.keyCode.HOME:
12226                    s = this._valueMin();
12227                    break;
12228                case t.ui.keyCode.END:
12229                    s = this._valueMax();
12230                    break;
12231                case t.ui.keyCode.PAGE_UP:
12232                    s = this._trimAlignValue(n + (this._valueMax() - this._valueMin()) / this.numPages);
12233                    break;
12234                case t.ui.keyCode.PAGE_DOWN:
12235                    s = this._trimAlignValue(n - (this._valueMax() - this._valueMin()) / this.numPages);
12236                    break;
12237                case t.ui.keyCode.UP:
12238                case t.ui.keyCode.RIGHT:
12239                    if (n === this._valueMax())
12240                        return;
12241                    s = this._trimAlignValue(n + o);
12242                    break;
12243                case t.ui.keyCode.DOWN:
12244                case t.ui.keyCode.LEFT:
12245                    if (n === this._valueMin())
12246                        return;
12247                    s = this._trimAlignValue(n - o)
12248                }
12249                this._slide(e, r, s)
12250            },
12251            keyup: function(e) {
12252                var i = t(e.target).data("ui-slider-handle-index");
12253                this._keySliding && (this._keySliding = !1,
12254                this._stop(e, i),
12255                this._change(e, i),
12256                this._removeClass(t(e.target), null, "ui-state-active"))
12257            }
12258        }
12259    })
12260}),
12261function(t) {
12262    "function" == typeof define && define.amd ? define(["jquery", "./mouse", "../data", "../ie", "../scroll-parent", "../version", "../widget"], t) : t(jQuery)
12263}(function(t) {
12264    return t.widget("ui.sortable", t.ui.mouse, {
12265        version: "1.12.1",
12266        widgetEventPrefix: "sort",
12267        ready: !1,
12268        options: {
12269            appendTo: "parent",
12270            axis: !1,
12271            connectWith: !1,
12272            containment: !1,
12273            cursor: "auto",
12274            cursorAt: !1,
12275            dropOnEmpty: !0,
12276            forcePlaceholderSize: !1,
12277            forceHelperSize: !1,
12278            grid: !1,
12279            handle: !1,
12280            helper: "original",
12281            items: "> *",
12282            opacity: !1,
12283            placeholder: !1,
12284            revert: !1,
12285            scroll: !0,
12286            scrollSensitivity: 20,
12287            scrollSpeed: 20,
12288            scope: "default",
12289            tolerance: "intersect",
12290            zIndex: 1e3,
12291            activate: null,
12292            beforeStop: null,
12293            change: null,
12294            deactivate: null,
12295            out: null,
12296            over: null,
12297            receive: null,
12298            remove: null,
12299            sort: null,
12300            start: null,
12301            stop: null,
12302            update: null
12303        },
12304        _isOverAxis: function(t, e, i) {
12305            return t >= e && t < e + i
12306        },
12307        _isFloating: function(t) {
12308            return /left|right/.test(t.css("float")) || /inline|table-cell/.test(t.css("display"))
12309        },
12310        _create: function() {
12311            this.containerCache = {},
12312            this._addClass("ui-sortable"),
12313            this.refresh(),
12314            this.offset = this.element.offset(),
12315            this._mouseInit(),
12316            this._setHandleClassName(),
12317            this.ready = !0
12318        },
12319        _setOption: function(t, e) {
12320            this._super(t, e),
12321            "handle" === t && this._setHandleClassName()
12322        },
12323        _setHandleClassName: function() {
12324            var e = this;
12325            this._removeClass(this.element.find(".ui-sortable-handle"), "ui-sortable-handle"),
12326            t.each(this.items, function() {
12327                e._addClass(this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item, "ui-sortable-handle")
12328            })
12329        },
12330        _destroy: function() {
12331            this._mouseDestroy();
12332            for (var t = this.items.length - 1; t >= 0; t--)
12333                this.items[t].item.removeData(this.widgetName + "-item");
12334            return this
12335        },
12336        _mouseCapture: function(e, i) {
12337            var n = null
12338              , s = !1
12339              , o = this;
12340            return !this.reverting && (!this.options.disabled && "static" !== this.options.type && (this._refreshItems(e),
12341            t(e.target).parents().each(function() {
12342                if (t.data(this, o.widgetName + "-item") === o)
12343                    return n = t(this),
12344                    !1
12345            }),
12346            t.data(e.target, o.widgetName + "-item") === o && (n = t(e.target)),
12347            !!n && (!(this.options.handle && !i && (t(this.options.handle, n).find("*").addBack().each(function() {
12348                this === e.target && (s = !0)
12349            }),
12350            !s)) && (this.currentItem = n,
12351            this._removeCurrentsFromItems(),
12352            !0))))
12353        },
12354        _mouseStart: function(e, i, n) {
12355            var s, o, r = this.options;
12356            if (this.currentContainer = this,
12357            this.refreshPositions(),
12358            this.helper = this._createHelper(e),
12359            this._cacheHelperProportions(),
12360            this._cacheMargins(),
12361            this.scrollParent = this.helper.scrollParent(),
12362            this.offset = this.currentItem.offset(),
12363            this.offset = {
12364                top: this.offset.top - this.margins.top,
12365                left: this.offset.left - this.margins.left
12366            },
12367            t.extend(this.offset, {
12368                click: {
12369                    left: e.pageX - this.offset.left,
12370                    top: e.pageY - this.offset.top
12371                },
12372                parent: this._getParentOffset(),
12373                relative: this._getRelativeOffset()
12374            }),
12375            this.helper.css("position", "absolute"),
12376            this.cssPosition = this.helper.css("position"),
12377            this.originalPosition = this._generatePosition(e),
12378            this.originalPageX = e.pageX,
12379            this.originalPageY = e.pageY,
12380            r.cursorAt && this._adjustOffsetFromHelper(r.cursorAt),
12381            this.domPosition = {
12382                prev: this.currentItem.prev()[0],
12383                parent: this.currentItem.parent()[0]
12384            },
12385            this.helper[0] !== this.currentItem[0] && this.currentItem.hide(),
12386            this._createPlaceholder(),
12387            r.containment && this._setContainment(),
12388            r.cursor && "auto" !== r.cursor && (o = this.document.find("body"),
12389            this.storedCursor = o.css("cursor"),
12390            o.css("cursor", r.cursor),
12391            this.storedStylesheet = t("<style>*{ cursor: " + r.cursor + " !important; }</style>").appendTo(o)),
12392            r.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")),
12393            this.helper.css("opacity", r.opacity)),
12394            r.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")),
12395            this.helper.css("zIndex", r.zIndex)),
12396            this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()),
12397            this._trigger("start", e, this._uiHash()),
12398            this._preserveHelperProportions || this._cacheHelperProportions(),
12399            !n)
12400                for (s = this.containers.length - 1; s >= 0; s--)
12401                    this.containers[s]._trigger("activate", e, this._uiHash(this));
12402            return t.ui.ddmanager && (t.ui.ddmanager.current = this),
12403            t.ui.ddmanager && !r.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e),
12404            this.dragging = !0,
12405            this._addClass(this.helper, "ui-sortable-helper"),
12406            this._mouseDrag(e),
12407            !0
12408        },
12409        _mouseDrag: function(e) {
12410            var i, n, s, o, r = this.options, a = !1;
12411            for (this.position = this._generatePosition(e),
12412            this.positionAbs = this._convertPositionTo("absolute"),
12413            this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs),
12414            this.options.scroll && (this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - e.pageY < r.scrollSensitivity ? this.scrollParent[0].scrollTop = a = this.scrollParent[0].scrollTop + r.scrollSpeed : e.pageY - this.overflowOffset.top < r.scrollSensitivity && (this.scrollParent[0].scrollTop = a = this.scrollParent[0].scrollTop - r.scrollSpeed),
12415            this.overflowOffset.left + this.scrollParent[0].offsetWidth - e.pageX < r.scrollSensitivity ? this.scrollParent[0].scrollLeft = a = this.scrollParent[0].scrollLeft + r.scrollSpeed : e.pageX - this.overflowOffset.left < r.scrollSensitivity && (this.scrollParent[0].scrollLeft = a = this.scrollParent[0].scrollLeft - r.scrollSpeed)) : (e.pageY - this.document.scrollTop() < r.scrollSensitivity ? a = this.document.scrollTop(this.document.scrollTop() - r.scrollSpeed) : this.window.height() - (e.pageY - this.document.scrollTop()) < r.scrollSensitivity && (a = this.document.scrollTop(this.document.scrollTop() + r.scrollSpeed)),
12416            e.pageX - this.document.scrollLeft() < r.scrollSensitivity ? a = this.document.scrollLeft(this.document.scrollLeft() - r.scrollSpeed) : this.window.width() - (e.pageX - this.document.scrollLeft()) < r.scrollSensitivity && (a = this.document.scrollLeft(this.document.scrollLeft() + r.scrollSpeed))),
12417            a !== !1 && t.ui.ddmanager && !r.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e)),
12418            this.positionAbs = this._convertPositionTo("absolute"),
12419            this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"),
12420            this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"),
12421            i = this.items.length - 1; i >= 0; i--)
12422                if (n = this.items[i],
12423                s = n.item[0],
12424                o = this._intersectsWithPointer(n),
12425                o && n.instance === this.currentContainer && !(s === this.currentItem[0] || this.placeholder[1 === o ? "next" : "prev"]()[0] === s || t.contains(this.placeholder[0], s) || "semi-dynamic" === this.options.type && t.contains(this.element[0], s))) {
12426                    if (this.direction = 1 === o ? "down" : "up",
12427                    "pointer" !== this.options.tolerance && !this._intersectsWithSides(n))
12428                        break;
12429                    this._rearrange(e, n),
12430                    this._trigger("change", e, this._uiHash());
12431                    break
12432                }
12433            return this._contactContainers(e),
12434            t.ui.ddmanager && t.ui.ddmanager.drag(this, e),
12435            this._trigger("sort", e, this._uiHash()),
12436            this.lastPositionAbs = this.positionAbs,
12437            !1
12438        },
12439        _mouseStop: function(e, i) {
12440            if (e) {
12441                if (t.ui.ddmanager && !this.options.dropBehaviour && t.ui.ddmanager.drop(this, e),
12442                this.options.revert) {
12443                    var n = this
12444                      , s = this.placeholder.offset()
12445                      , o = this.options.axis
12446                      , r = {};
12447                    o && "x" !== o || (r.left = s.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft)),
12448                    o && "y" !== o || (r.top = s.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop)),
12449                    this.reverting = !0,
12450                    t(this.helper).animate(r, parseInt(this.options.revert, 10) || 500, function() {
12451                        n._clear(e)
12452                    })
12453                } else
12454                    this._clear(e, i);
12455                return !1
12456            }
12457        },
12458        cancel: function() {
12459            if (this.dragging) {
12460                this._mouseUp(new t.Event("mouseup",{
12461                    target: null
12462                })),
12463                "original" === this.options.helper ? (this.currentItem.css(this._storedCSS),
12464                this._removeClass(this.currentItem, "ui-sortable-helper")) : this.currentItem.show();
12465                for (var e = this.containers.length - 1; e >= 0; e--)
12466                    this.containers[e]._trigger("deactivate", null, this._uiHash(this)),
12467                    this.containers[e].containerCache.over && (this.containers[e]._trigger("out", null, this._uiHash(this)),
12468                    this.containers[e].containerCache.over = 0)
12469            }
12470            return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
12471            "original" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(),
12472            t.extend(this, {
12473                helper: null,
12474                dragging: !1,
12475                reverting: !1,
12476                _noFinalSort: null
12477            }),
12478            this.domPosition.prev ? t(this.domPosition.prev).after(this.currentItem) : t(this.domPosition.parent).prepend(this.currentItem)),
12479            this
12480        },
12481        serialize: function(e) {
12482            var i = this._getItemsAsjQuery(e && e.connected)
12483              , n = [];
12484            return e = e || {},
12485            t(i).each(function() {
12486                var i = (t(e.item || this).attr(e.attribute || "id") || "").match(e.expression || /(.+)[\-=_](.+)/);
12487                i && n.push((e.key || i[1] + "[]") + "=" + (e.key && e.expression ? i[1] : i[2]))
12488            }),
12489            !n.length && e.key && n.push(e.key + "="),
12490            n.join("&")
12491        },
12492        toArray: function(e) {
12493            var i = this._getItemsAsjQuery(e && e.connected)
12494              , n = [];
12495            return e = e || {},
12496            i.each(function() {
12497                n.push(t(e.item || this).attr(e.attribute || "id") || "")
12498            }),
12499            n
12500        },
12501        _intersectsWith: function(t) {
12502            var e = this.positionAbs.left
12503              , i = e + this.helperProportions.width
12504              , n = this.positionAbs.top
12505              , s = n + this.helperProportions.height
12506              , o = t.left
12507              , r = o + t.width
12508              , a = t.top
12509              , l = a + t.height
12510              , h = this.offset.click.top
12511              , u = this.offset.click.left
12512              , c = "x" === this.options.axis || n + h > a && n + h < l
12513              , d = "y" === this.options.axis || e + u > o && e + u < r
12514              , p = c && d;
12515            return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > t[this.floating ? "width" : "height"] ? p : o < e + this.helperProportions.width / 2 && i - this.helperProportions.width / 2 < r && a < n + this.helperProportions.height / 2 && s - this.helperProportions.height / 2 < l
12516        },
12517        _intersectsWithPointer: function(t) {
12518            var e, i, n = "x" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top, t.height), s = "y" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left, t.width), o = n && s;
12519            return !!o && (e = this._getDragVerticalDirection(),
12520            i = this._getDragHorizontalDirection(),
12521            this.floating ? "right" === i || "down" === e ? 2 : 1 : e && ("down" === e ? 2 : 1))
12522        },
12523        _intersectsWithSides: function(t) {
12524            var e = this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top + t.height / 2, t.height)
12525              , i = this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left + t.width / 2, t.width)
12526              , n = this._getDragVerticalDirection()
12527              , s = this._getDragHorizontalDirection();
12528            return this.floating && s ? "right" === s && i || "left" === s && !i : n && ("down" === n && e || "up" === n && !e)
12529        },
12530        _getDragVerticalDirection: function() {
12531            var t = this.positionAbs.top - this.lastPositionAbs.top;
12532            return 0 !== t && (t > 0 ? "down" : "up")
12533        },
12534        _getDragHorizontalDirection: function() {
12535            var t = this.positionAbs.left - this.lastPositionAbs.left;
12536            return 0 !== t && (t > 0 ? "right" : "left")
12537        },
12538        refresh: function(t) {
12539            return this._refreshItems(t),
12540            this._setHandleClassName(),
12541            this.refreshPositions(),
12542            this
12543        },
12544        _connectWith: function() {
12545            var t = this.options;
12546            return t.connectWith.constructor === String ? [t.connectWith
vendor: 3,797 bytes, lines 12546-12619
12546] : t.connectWith
12547        },
12548        _getItemsAsjQuery: function(e) {
12549            function i() {
12550                a.push(this)
12551            }
12552            var n, s, o, r, a = [], l = [], h = this._connectWith();
12553            if (h && e)
12554                for (n = h.length - 1; n >= 0; n--)
12555                    for (o = t(h[n], this.document[0]),
12556                    s = o.length - 1; s >= 0; s--)
12557                        r = t.data(o[s], this.widgetFullName),
12558                        r && r !== this && !r.options.disabled && l.push([t.isFunction(r.options.items) ? r.options.items.call(r.element) : t(r.options.items, r.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), r]);
12559            for (l.push([t.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
12560                options: this.options,
12561                item: this.currentItem
12562            }) : t(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]),
12563            n = l.length - 1; n >= 0; n--)
12564                l[n][0].each(i);
12565            return t(a)
12566        },
12567        _removeCurrentsFromItems: function() {
12568            var e = this.currentItem.find(":data(" + this.widgetName + "-item)");
12569            this.items = t.grep(this.items, function(t) {
12570                for (var i = 0; i < e.length; i++)
12571                    if (e[i] === t.item[0])
12572                        return !1;
12573                return !0
12574            })
12575        },
12576        _refreshItems: function(e) {
12577            this.items = [],
12578            this.containers = [this];
12579            var i, n, s, o, r, a, l, h, u = this.items, c = [[t.isFunction(this.options.items) ? this.options.items.call(this.element[0], e, {
12580                item: this.currentItem
12581            }) : t(this.options.items, this.element), this]], d = this._connectWith();
12582            if (d && this.ready)
12583                for (i = d.length - 1; i >= 0; i--)
12584                    for (s = t(d[i], this.document[0]),
12585                    n = s.length - 1; n >= 0; n--)
12586                        o = t.data(s[n], this.widgetFullName),
12587                        o && o !== this && !o.options.disabled && (c.push([t.isFunction(o.options.items) ? o.options.items.call(o.element[0], e, {
12588                            item: this.currentItem
12589                        }) : t(o.options.items, o.element), o]),
12590                        this.containers.push(o));
12591            for (i = c.length - 1; i >= 0; i--)
12592                for (r = c[i][1],
12593                a = c[i][0],
12594                n = 0,
12595                h = a.length; n < h; n++)
12596                    l = t(a[n]),
12597                    l.data(this.widgetName + "-item", r),
12598                    u.push({
12599                        item: l,
12600                        instance: r,
12601                        width: 0,
12602                        height: 0,
12603                        left: 0,
12604                        top: 0
12605                    })
12606        },
12607        refreshPositions: function(e) {
12608            this.floating = !!this.items.length && ("x" === this.options.axis || this._isFloating(this.items[0].item)),
12609            this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());
12610            var i, n, s, o;
12611            for (i = this.items.length - 1; i >= 0; i--)
12612                n = this.items[i],
12613                n.instance !== this.currentContainer && this.currentContainer && n.item[0] !== this.currentItem[0] || (s = this.options.toleranceElement ? t(this.options.toleranceElement, n.item) : n.item,
12614                e || (n.width = s.outerWidth(),
12615                n.height = s.outerHeight()),
12616                o = s.offset(),
12617                n.left = o.left,
12618                n.top = o.top);
12619            if (this.options.custom && this.options.custom.refreshContainers
vendor: 1,600 bytes, lines 12619-12644
12619)
12620                this.options.custom.refreshContainers.call(this);
12621            else
12622                for (i = this.containers.length - 1; i >= 0; i--)
12623                    o = this.containers[i].element.offset(),
12624                    this.containers[i].containerCache.left = o.left,
12625                    this.containers[i].containerCache.top = o.top,
12626                    this.containers[i].containerCache.width = this.containers[i].element.outerWidth(),
12627                    this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
12628            return this
12629        },
12630        _createPlaceholder: function(e) {
12631            e = e || this;
12632            var i, n = e.options;
12633            n.placeholder && n.placeholder.constructor !== String || (i = n.placeholder,
12634            n.placeholder = {
12635                element: function() {
12636                    var n = e.currentItem[0].nodeName.toLowerCase()
12637                      , s = t("<" + n + ">", e.document[0]);
12638                    return e._addClass(s, "ui-sortable-placeholder", i || e.currentItem[0].className)._removeClass(s, "ui-sortable-helper"),
12639                    "tbody" === n ? e._createTrPlaceholder(e.currentItem.find("tr").eq(0), t("<tr>", e.document[0]).appendTo(s)) : "tr" === n ? e._createTrPlaceholder(e.currentItem, s) : "img" === n && s.attr("src", e.currentItem.attr("src")),
12640                    i || s.css("visibility", "hidden"),
12641                    s
12642                },
12643                update: function(t, s) {
12644                    i && !n.forcePlaceholderSize || (s.height() || s.height(e.currentItem.innerHe
vendor: 14,770 bytes, lines 12644-12860
12644ight() - parseInt(e.currentItem.css("paddingTop") || 0, 10) - parseInt(e.currentItem.css("paddingBottom") || 0, 10)),
12645                    s.width() || s.width(e.currentItem.innerWidth() - parseInt(e.currentItem.css("paddingLeft") || 0, 10) - parseInt(e.currentItem.css("paddingRight") || 0, 10)))
12646                }
12647            }),
12648            e.placeholder = t(n.placeholder.element.call(e.element, e.currentItem)),
12649            e.currentItem.after(e.placeholder),
12650            n.placeholder.update(e, e.placeholder)
12651        },
12652        _createTrPlaceholder: function(e, i) {
12653            var n = this;
12654            e.children().each(function() {
12655                t("<td>&#160;</td>", n.document[0]).attr("colspan", t(this).attr("colspan") || 1).appendTo(i)
12656            })
12657        },
12658        _contactContainers: function(e) {
12659            var i, n, s, o, r, a, l, h, u, c, d = null, p = null;
12660            for (i = this.containers.length - 1; i >= 0; i--)
12661                if (!t.contains(this.currentItem[0], this.containers[i].element[0]))
12662                    if (this._intersectsWith(this.containers[i].containerCache)) {
12663                        if (d && t.contains(this.containers[i].element[0], d.element[0]))
12664                            continue;
12665                        d = this.containers[i],
12666                        p = i
12667                    } else
12668                        this.containers[i].containerCache.over && (this.containers[i]._trigger("out", e, this._uiHash(this)),
12669                        this.containers[i].containerCache.over = 0);
12670            if (d)
12671                if (1 === this.containers.length)
12672                    this.containers[p].containerCache.over || (this.containers[p]._trigger("over", e, this._uiHash(this)),
12673                    this.containers[p].containerCache.over = 1);
12674                else {
12675                    for (s = 1e4,
12676                    o = null,
12677                    u = d.floating || this._isFloating(this.currentItem),
12678                    r = u ? "left" : "top",
12679                    a = u ? "width" : "height",
12680                    c = u ? "pageX" : "pageY",
12681                    n = this.items.length - 1; n >= 0; n--)
12682                        t.contains(this.containers[p].element[0], this.items[n].item[0]) && this.items[n].item[0] !== this.currentItem[0] && (l = this.items[n].item.offset()[r],
12683                        h = !1,
12684                        e[c] - l > this.items[n][a] / 2 && (h = !0),
12685                        Math.abs(e[c] - l) < s && (s = Math.abs(e[c] - l),
12686                        o = this.items[n],
12687                        this.direction = h ? "up" : "down"));
12688                    if (!o && !this.options.dropOnEmpty)
12689                        return;
12690                    if (this.currentContainer === this.containers[p])
12691                        return void (this.currentContainer.containerCache.over || (this.containers[p]._trigger("over", e, this._uiHash()),
12692                        this.currentContainer.containerCache.over = 1));
12693                    o ? this._rearrange(e, o, null, !0) : this._rearrange(e, null, this.containers[p].element, !0),
12694                    this._trigger("change", e, this._uiHash()),
12695                    this.containers[p]._trigger("change", e, this._uiHash(this)),
12696                    this.currentContainer = this.containers[p],
12697                    this.options.placeholder.update(this.currentContainer, this.placeholder),
12698                    this.containers[p]._trigger("over", e, this._uiHash(this)),
12699                    this.containers[p].containerCache.over = 1
12700                }
12701        },
12702        _createHelper: function(e) {
12703            var i = this.options
12704              , n = t.isFunction(i.helper) ? t(i.helper.apply(this.element[0], [e, this.currentItem])) : "clone" === i.helper ? this.currentItem.clone() : this.currentItem;
12705            return n.parents("body").length || t("parent" !== i.appendTo ? i.appendTo : this.currentItem[0].parentNode)[0].appendChild(n[0]),
12706            n[0] === this.currentItem[0] && (this._storedCSS = {
12707                width: this.currentItem[0].style.width,
12708                height: this.currentItem[0].style.height,
12709                position: this.currentItem.css("position"),
12710                top: this.currentItem.css("top"),
12711                left: this.currentItem.css("left")
12712            }),
12713            n[0].style.width && !i.forceHelperSize || n.width(this.currentItem.width()),
12714            n[0].style.height && !i.forceHelperSize || n.height(this.currentItem.height()),
12715            n
12716        },
12717        _adjustOffsetFromHelper: function(e) {
12718            "string" == typeof e && (e = e.split(" ")),
12719            t.isArray(e) && (e = {
12720                left: +e[0],
12721                top: +e[1] || 0
12722            }),
12723            "left"in e && (this.offset.click.left = e.left + this.margins.left),
12724            "right"in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left),
12725            "top"in e && (this.offset.click.top = e.top + this.margins.top),
12726            "bottom"in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top)
12727        },
12728        _getParentOffset: function() {
12729            this.offsetParent = this.helper.offsetParent();
12730            var e = this.offsetParent.offset();
12731            return "absolute" === this.cssPosition && this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(),
12732            e.top += this.scrollParent.scrollTop()),
12733            (this.offsetParent[0] === this.document[0].body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && t.ui.ie) && (e = {
12734                top: 0,
12735                left: 0
12736            }),
12737            {
12738                top: e.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
12739                left: e.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
12740            }
12741        },
12742        _getRelativeOffset: function() {
12743            if ("relative" === this.cssPosition) {
12744                var t = this.currentItem.position();
12745                return {
12746                    top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
12747                    left: t.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
12748                }
12749            }
12750            return {
12751                top: 0,
12752                left: 0
12753            }
12754        },
12755        _cacheMargins: function() {
12756            this.margins = {
12757                left: parseInt(this.currentItem.css("marginLeft"), 10) || 0,
12758                top: parseInt(this.currentItem.css("marginTop"), 10) || 0
12759            }
12760        },
12761        _cacheHelperProportions: function() {
12762            this.helperProportions = {
12763                width: this.helper.outerWidth(),
12764                height: this.helper.outerHeight()
12765            }
12766        },
12767        _setContainment: function() {
12768            var e, i, n, s = this.options;
12769            "parent" === s.containment && (s.containment = this.helper[0].parentNode),
12770            "document" !== s.containment && "window" !== s.containment || (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, "document" === s.containment ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, ("document" === s.containment ? this.document.height() || document.body.parentNode.scrollHeight : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]),
12771            /^(document|window|parent)$/.test(s.containment) || (e = t(s.containment)[0],
12772            i = t(s.containment).offset(),
12773            n = "hidden" !== t(e).css("overflow"),
12774            this.containment = [i.left + (parseInt(t(e).css("borderLeftWidth"), 10) || 0) + (parseInt(t(e).css("paddingLeft"), 10) || 0) - this.margins.left, i.top + (parseInt(t(e).css("borderTopWidth"), 10) || 0) + (parseInt(t(e).css("paddingTop"), 10) || 0) - this.margins.top, i.left + (n ? 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, i.top + (n ? 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])
12775        },
12776        _convertPositionTo: function(e, i) {
12777            i || (i = this.position);
12778            var n = "absolute" === e ? 1 : -1
12779              , s = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent
12780              , o = /(html|body)/i.test(s[0].tagName);
12781            return {
12782                top: i.top + this.offset.relative.top * n + this.offset.parent.top * n - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : o ? 0 : s.scrollTop()) * n,
12783                left: i.left + this.offset.relative.left * n + this.offset.parent.left * n - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : o ? 0 : s.scrollLeft()) * n
12784            }
12785        },
12786        _generatePosition: function(e) {
12787            var i, n, s = this.options, o = e.pageX, r = e.pageY, a = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, l = /(html|body)/i.test(a[0].tagName);
12788            return "relative" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()),
12789            this.originalPosition && (this.containment && (e.pageX - this.offset.click.left < this.containment[0] && (o = this.containment[0] + this.offset.click.left),
12790            e.pageY - this.offset.click.top < this.containment[1] && (r = this.containment[1] + this.offset.click.top),
12791            e.pageX - this.offset.click.left > this.containment[2] && (o = this.containment[2] + this.offset.click.left),
12792            e.pageY - this.offset.click.top > this.containment[3] && (r = this.containment[3] + this.offset.click.top)),
12793            s.grid && (i = this.originalPageY + Math.round((r - this.originalPageY) / s.grid[1]) * s.grid[1],
12794            r = this.containment ? i - this.offset.click.top >= this.containment[1] && i - this.offset.click.top <= this.containment[3] ? i : i - this.offset.click.top >= this.containment[1] ? i - s.grid[1] : i + s.grid[1] : i,
12795            n = this.originalPageX + Math.round((o - this.originalPageX) / s.grid[0]) * s.grid[0],
12796            o = this.containment ? n - this.offset.click.left >= this.containment[0] && n - this.offset.click.left <= this.containment[2] ? n : n - this.offset.click.left >= this.containment[0] ? n - s.grid[0] : n + s.grid[0] : n)),
12797            {
12798                top: r - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : l ? 0 : a.scrollTop()),
12799                left: o - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : l ? 0 : a.scrollLeft())
12800            }
12801        },
12802        _rearrange: function(t, e, i, n) {
12803            i ? i[0].appendChild(this.placeholder[0]) : e.item[0].parentNode.insertBefore(this.placeholder[0], "down" === this.direction ? e.item[0] : e.item[0].nextSibling),
12804            this.counter = this.counter ? ++this.counter : 1;
12805            var s = this.counter;
12806            this._delay(function() {
12807                s === this.counter && this.refreshPositions(!n)
12808            })
12809        },
12810        _clear: function(t, e) {
12811            function i(t, e, i) {
12812                return function(n) {
12813                    i._trigger(t, n, e._uiHash(e))
12814                }
12815            }
12816            this.reverting = !1;
12817            var n, s = [];
12818            if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem),
12819            this._noFinalSort = null,
12820            this.helper[0] === this.currentItem[0]) {
12821                for (n in this._storedCSS)
12822                    "auto" !== this._storedCSS[n] && "static" !== this._storedCSS[n] || (this._storedCSS[n] = "");
12823                this.currentItem.css(this._storedCSS),
12824                this._removeClass(this.currentItem, "ui-sortable-helper")
12825            } else
12826                this.currentItem.show();
12827            for (this.fromOutside && !e && s.push(function(t) {
12828                this._trigger("receive", t, this._uiHash(this.fromOutside))
12829            }),
12830            !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || e || s.push(function(t) {
12831                this._trigger("update", t, this._uiHash())
12832            }),
12833            this !== this.currentContainer && (e || (s.push(function(t) {
12834                this._trigger("remove", t, this._uiHash())
12835            }),
12836            s.push(function(t) {
12837                return function(e) {
12838                    t._trigger("receive", e, this._uiHash(this))
12839                }
12840            }
12841            .call(this, this.currentContainer)),
12842            s.push(function(t) {
12843                return function(e) {
12844                    t._trigger("update", e, this._uiHash(this))
12845                }
12846            }
12847            .call(this, this.currentContainer)))),
12848            n = this.containers.length - 1; n >= 0; n--)
12849                e || s.push(i("deactivate", this, this.containers[n])),
12850                this.containers[n].containerCache.over && (s.push(i("out", this, this.containers[n])),
12851                this.containers[n].containerCache.over = 0);
12852            if (this.storedCursor && (this.document.find("body").css("cursor", this.storedCursor),
12853            this.storedStylesheet.remove()),
12854            this._storedOpacity && this.helper.css("opacity", this._storedOpacity),
12855            this._storedZIndex && this.helper.css("zIndex", "auto" === this._storedZIndex ? "" : this._storedZIndex),
12856            this.dragging = !1,
12857            e || this._trigger("beforeStop", t, this._uiHash()),
12858            this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
12859            this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(),
12860            this.helper = null),
vendor: 22,817 bytes, lines 12861-13417
12861            !e) {
12862                for (n = 0; n < s.length; n++)
12863                    s[n].call(this, t);
12864                this._trigger("stop", t, this._uiHash())
12865            }
12866            return this.fromOutside = !1,
12867            !this.cancelHelperRemoval
12868        },
12869        _trigger: function() {
12870            t.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel()
12871        },
12872        _uiHash: function(e) {
12873            var i = e || this;
12874            return {
12875                helper: i.helper,
12876                placeholder: i.placeholder || t([]),
12877                position: i.position,
12878                originalPosition: i.originalPosition,
12879                offset: i.positionAbs,
12880                item: i.currentItem,
12881                sender: e ? e.element : null
12882            }
12883        }
12884    })
12885}),
12886function(t) {
12887    "function" == typeof define && define.amd ? define(["jquery", "./button", "../version", "../keycode", "../safe-active-element", "../widget"], t) : t(jQuery)
12888}(function(t) {
12889    function e(t) {
12890        return function() {
12891            var e = this.element.val();
12892            t.apply(this, arguments),
12893            this._refresh(),
12894            e !== this.element.val() && this._trigger("change")
12895        }
12896    }
12897    return t.widget("ui.spinner", {
12898        version: "1.12.1",
12899        defaultElement: "<input>",
12900        widgetEventPrefix: "spin",
12901        options: {
12902            classes: {
12903                "ui-spinner": "ui-corner-all",
12904                "ui-spinner-down": "ui-corner-br",
12905                "ui-spinner-up": "ui-corner-tr"
12906            },
12907            culture: null,
12908            icons: {
12909                down: "ui-icon-triangle-1-s",
12910                up: "ui-icon-triangle-1-n"
12911            },
12912            incremental: !0,
12913            max: null,
12914            min: null,
12915            numberFormat: null,
12916            page: 10,
12917            step: 1,
12918            change: null,
12919            spin: null,
12920            start: null,
12921            stop: null
12922        },
12923        _create: function() {
12924            this._setOption("max", this.options.max),
12925            this._setOption("min", this.options.min),
12926            this._setOption("step", this.options.step),
12927            "" !== this.value() && this._value(this.element.val(), !0),
12928            this._draw(),
12929            this._on(this._events),
12930            this._refresh(),
12931            this._on(this.window, {
12932                beforeunload: function() {
12933                    this.element.removeAttr("autocomplete")
12934                }
12935            })
12936        },
12937        _getCreateOptions: function() {
12938            var e = this._super()
12939              , i = this.element;
12940            return t.each(["min", "max", "step"], function(t, n) {
12941                var s = i.attr(n);
12942                null != s && s.length && (e[n] = s)
12943            }),
12944            e
12945        },
12946        _events: {
12947            keydown: function(t) {
12948                this._start(t) && this._keydown(t) && t.preventDefault()
12949            },
12950            keyup: "_stop",
12951            focus: function() {
12952                this.previous = this.element.val()
12953            },
12954            blur: function(t) {
12955                return this.cancelBlur ? void delete this.cancelBlur : (this._stop(),
12956                this._refresh(),
12957                void (this.previous !== this.element.val() && this._trigger("change", t)))
12958            },
12959            mousewheel: function(t, e) {
12960                if (e) {
12961                    if (!this.spinning && !this._start(t))
12962                        return !1;
12963                    this._spin((e > 0 ? 1 : -1) * this.options.step, t),
12964                    clearTimeout(this.mousewheelTimer),
12965                    this.mousewheelTimer = this._delay(function() {
12966                        this.spinning && this._stop(t)
12967                    }, 100),
12968                    t.preventDefault()
12969                }
12970            },
12971            "mousedown .ui-spinner-button": function(e) {
12972                function i() {
12973                    var e = this.element[0] === t.ui.safeActiveElement(this.document[0]);
12974                    e || (this.element.trigger("focus"),
12975                    this.previous = n,
12976                    this._delay(function() {
12977                        this.previous = n
12978                    }))
12979                }
12980                var n;
12981                n = this.element[0] === t.ui.safeActiveElement(this.document[0]) ? this.previous : this.element.val(),
12982                e.preventDefault(),
12983                i.call(this),
12984                this.cancelBlur = !0,
12985                this._delay(function() {
12986                    delete this.cancelBlur,
12987                    i.call(this)
12988                }),
12989                this._start(e) !== !1 && this._repeat(null, t(e.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, e)
12990            },
12991            "mouseup .ui-spinner-button": "_stop",
12992            "mouseenter .ui-spinner-button": function(e) {
12993                if (t(e.currentTarget).hasClass("ui-state-active"))
12994                    return this._start(e) !== !1 && void this._repeat(null, t(e.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, e)
12995            },
12996            "mouseleave .ui-spinner-button": "_stop"
12997        },
12998        _enhance: function() {
12999            this.uiSpinner = this.element.attr("autocomplete", "off").wrap("<span>").parent().append("<a></a><a></a>")
13000        },
13001        _draw: function() {
13002            this._enhance(),
13003            this._addClass(this.uiSpinner, "ui-spinner", "ui-widget ui-widget-content"),
13004            this._addClass("ui-spinner-input"),
13005            this.element.attr("role", "spinbutton"),
13006            this.buttons = this.uiSpinner.children("a").attr("tabIndex", -1).attr("aria-hidden", !0).button({
13007                classes: {
13008                    "ui-button": ""
13009                }
13010            }),
13011            this._removeClass(this.buttons, "ui-corner-all"),
13012            this._addClass(this.buttons.first(), "ui-spinner-button ui-spinner-up"),
13013            this._addClass(this.buttons.last(), "ui-spinner-button ui-spinner-down"),
13014            this.buttons.first().button({
13015                icon: this.options.icons.up,
13016                showLabel: !1
13017            }),
13018            this.buttons.last().button({
13019                icon: this.options.icons.down,
13020                showLabel: !1
13021            }),
13022            this.buttons.height() > Math.ceil(.5 * this.uiSpinner.height()) && this.uiSpinner.height() > 0 && this.uiSpinner.height(this.uiSpinner.height())
13023        },
13024        _keydown: function(e) {
13025            var i = this.options
13026              , n = t.ui.keyCode;
13027            switch (e.keyCode) {
13028            case n.UP:
13029                return this._repeat(null, 1, e),
13030                !0;
13031            case n.DOWN:
13032                return this._repeat(null, -1, e),
13033                !0;
13034            case n.PAGE_UP:
13035                return this._repeat(null, i.page, e),
13036                !0;
13037            case n.PAGE_DOWN:
13038                return this._repeat(null, -i.page, e),
13039                !0
13040            }
13041            return !1
13042        },
13043        _start: function(t) {
13044            return !(!this.spinning && this._trigger("start", t) === !1) && (this.counter || (this.counter = 1),
13045            this.spinning = !0,
13046            !0)
13047        },
13048        _repeat: function(t, e, i) {
13049            t = t || 500,
13050            clearTimeout(this.timer),
13051            this.timer = this._delay(function() {
13052                this._repeat(40, e, i)
13053            }, t),
13054            this._spin(e * this.options.step, i)
13055        },
13056        _spin: function(t, e) {
13057            var i = this.value() || 0;
13058            this.counter || (this.counter = 1),
13059            i = this._adjustValue(i + t * this._increment(this.counter)),
13060            this.spinning && this._trigger("spin", e, {
13061                value: i
13062            }) === !1 || (this._value(i),
13063            this.counter++)
13064        },
13065        _increment: function(e) {
13066            var i = this.options.incremental;
13067            return i ? t.isFunction(i) ? i(e) : Math.floor(e * e * e / 5e4 - e * e / 500 + 17 * e / 200 + 1) : 1
13068        },
13069        _precision: function() {
13070            var t = this._precisionOf(this.options.step);
13071            return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))),
13072            t
13073        },
13074        _precisionOf: function(t) {
13075            var e = t.toString()
13076              , i = e.indexOf(".");
13077            return i === -1 ? 0 : e.length - i - 1
13078        },
13079        _adjustValue: function(t) {
13080            var e, i, n = this.options;
13081            return e = null !== n.min ? n.min : 0,
13082            i = t - e,
13083            i = Math.round(i / n.step) * n.step,
13084            t = e + i,
13085            t = parseFloat(t.toFixed(this._precision())),
13086            null !== n.max && t > n.max ? n.max : null !== n.min && t < n.min ? n.min : t
13087        },
13088        _stop: function(t) {
13089            this.spinning && (clearTimeout(this.timer),
13090            clearTimeout(this.mousewheelTimer),
13091            this.counter = 0,
13092            this.spinning = !1,
13093            this._trigger("stop", t))
13094        },
13095        _setOption: function(t, e) {
13096            var i, n, s;
13097            return "culture" === t || "numberFormat" === t ? (i = this._parse(this.element.val()),
13098            this.options[t] = e,
13099            void this.element.val(this._format(i))) : ("max" !== t && "min" !== t && "step" !== t || "string" == typeof e && (e = this._parse(e)),
13100            "icons" === t && (n = this.buttons.first().find(".ui-icon"),
13101            this._removeClass(n, null, this.options.icons.up),
13102            this._addClass(n, null, e.up),
13103            s = this.buttons.last().find(".ui-icon"),
13104            this._removeClass(s, null, this.options.icons.down),
13105            this._addClass(s, null, e.down)),
13106            void this._super(t, e))
13107        },
13108        _setOptionDisabled: function(t) {
13109            this._super(t),
13110            this._toggleClass(this.uiSpinner, null, "ui-state-disabled", !!t),
13111            this.element.prop("disabled", !!t),
13112            this.buttons.button(t ? "disable" : "enable")
13113        },
13114        _setOptions: e(function(t) {
13115            this._super(t)
13116        }),
13117        _parse: function(t) {
13118            return "string" == typeof t && "" !== t && (t = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(t, 10, this.options.culture) : +t),
13119            "" === t || isNaN(t) ? null : t
13120        },
13121        _format: function(t) {
13122            return "" === t ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(t, this.options.numberFormat, this.options.culture) : t
13123        },
13124        _refresh: function() {
13125            this.element.attr({
13126                "aria-valuemin": this.options.min,
13127                "aria-valuemax": this.options.max,
13128                "aria-valuenow": this._parse(this.element.val())
13129            })
13130        },
13131        isValid: function() {
13132            var t = this.value();
13133            return null !== t && t === this._adjustValue(t)
13134        },
13135        _value: function(t, e) {
13136            var i;
13137            "" !== t && (i = this._parse(t),
13138            null !== i && (e || (i = this._adjustValue(i)),
13139            t = this._format(i))),
13140            this.element.val(t),
13141            this._refresh()
13142        },
13143        _destroy: function() {
13144            this.element.prop("disabled", !1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),
13145            this.uiSpinner.replaceWith(this.element)
13146        },
13147        stepUp: e(function(t) {
13148            this._stepUp(t)
13149        }),
13150        _stepUp: function(t) {
13151            this._start() && (this._spin((t || 1) * this.options.step),
13152            this._stop())
13153        },
13154        stepDown: e(function(t) {
13155            this._stepDown(t)
13156        }),
13157        _stepDown: function(t) {
13158            this._start() && (this._spin((t || 1) * -this.options.step),
13159            this._stop())
13160        },
13161        pageUp: e(function(t) {
13162            this._stepUp((t || 1) * this.options.page)
13163        }),
13164        pageDown: e(function(t) {
13165            this._stepDown((t || 1) * this.options.page)
13166        }),
13167        value: function(t) {
13168            return arguments.length ? void e(this._value).call(this, t) : this._parse(this.element.val())
13169        },
13170        widget: function() {
13171            return this.uiSpinner
13172        }
13173    }),
13174    t.uiBackCompat !== !1 && t.widget("ui.spinner", t.ui.spinner, {
13175        _enhance: function() {
13176            this.uiSpinner = this.element.attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())
13177        },
13178        _uiSpinnerHtml: function() {
13179            return "<span>"
13180        },
13181        _buttonHtml: function() {
13182            return "<a></a><a></a>"
13183        }
13184    }),
13185    t.ui.spinner
13186}),
13187function(t) {
13188    "function" == typeof define && define.amd ? define(["jquery", "../escape-selector", "../keycode", "../safe-active-element", "../unique-id", "../version", "../widget"], t) : t(jQuery)
13189}(function(t) {
13190    return t.widget("ui.tabs", {
13191        version: "1.12.1",
13192        delay: 300,
13193        options: {
13194            active: null,
13195            classes: {
13196                "ui-tabs": "ui-corner-all",
13197                "ui-tabs-nav": "ui-corner-all",
13198                "ui-tabs-panel": "ui-corner-bottom",
13199                "ui-tabs-tab": "ui-corner-top"
13200            },
13201            collapsible: !1,
13202            event: "click",
13203            heightStyle: "content",
13204            hide: null,
13205            show: null,
13206            activate: null,
13207            beforeActivate: null,
13208            beforeLoad: null,
13209            load: null
13210        },
13211        _isLocal: function() {
13212            var t = /#.*$/;
13213            return function(e) {
13214                var i, n;
13215                i = e.href.replace(t, ""),
13216                n = location.href.replace(t, "");
13217                try {
13218                    i = decodeURIComponent(i)
13219                } catch (t) {}
13220                try {
13221                    n = decodeURIComponent(n)
13222                } catch (t) {}
13223                return e.hash.length > 1 && i === n
13224            }
13225        }(),
13226        _create: function() {
13227            var e = this
13228              , i = this.options;
13229            this.running = !1,
13230            this._addClass("ui-tabs", "ui-widget ui-widget-content"),
13231            this._toggleClass("ui-tabs-collapsible", null, i.collapsible),
13232            this._processTabs(),
13233            i.active = this._initialActive(),
13234            t.isArray(i.disabled) && (i.disabled = t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"), function(t) {
13235                return e.tabs.index(t)
13236            }))).sort()),
13237            this.options.active !== !1 && this.anchors.length ? this.active = this._findActive(i.active) : this.active = t(),
13238            this._refresh(),
13239            this.active.length && this.load(i.active)
13240        },
13241        _initialActive: function() {
13242            var e = this.options.active
13243              , i = this.options.collapsible
13244              , n = location.hash.substring(1);
13245            return null === e && (n && this.tabs.each(function(i, s) {
13246                if (t(s).attr("aria-controls") === n)
13247                    return e = i,
13248                    !1
13249            }),
13250            null === e && (e = this.tabs.index(this.tabs.filter(".ui-tabs-active"))),
13251            null !== e && e !== -1 || (e = !!this.tabs.length && 0)),
13252            e !== !1 && (e = this.tabs.index(this.tabs.eq(e)),
13253            e === -1 && (e = !i && 0)),
13254            !i && e === !1 && this.anchors.length && (e = 0),
13255            e
13256        },
13257        _getCreateEventData: function() {
13258            return {
13259                tab: this.active,
13260                panel: this.active.length ? this._getPanelForTab(this.active) : t()
13261            }
13262        },
13263        _tabKeydown: function(e) {
13264            var i = t(t.ui.safeActiveElement(this.document[0])).closest("li")
13265              , n = this.tabs.index(i)
13266              , s = !0;
13267            if (!this._handlePageNav(e)) {
13268                switch (e.keyCode) {
13269                case t.ui.keyCode.RIGHT:
13270                case t.ui.keyCode.DOWN:
13271                    n++;
13272                    break;
13273                case t.ui.keyCode.UP:
13274                case t.ui.keyCode.LEFT:
13275                    s = !1,
13276                    n--;
13277                    break;
13278                case t.ui.keyCode.END:
13279                    n = this.anchors.length - 1;
13280                    break;
13281                case t.ui.keyCode.HOME:
13282                    n = 0;
13283                    break;
13284                case t.ui.keyCode.SPACE:
13285                    return e.preventDefault(),
13286                    clearTimeout(this.activating),
13287                    void this._activate(n);
13288                case t.ui.keyCode.ENTER:
13289                    return e.preventDefault(),
13290                    clearTimeout(this.activating),
13291                    void this._activate(n !== this.options.active && n);
13292                default:
13293                    return
13294                }
13295                e.preventDefault(),
13296                clearTimeout(this.activating),
13297                n = this._focusNextTab(n, s),
13298                e.ctrlKey || e.metaKey || (i.attr("aria-selected", "false"),
13299                this.tabs.eq(n).attr("aria-selected", "true"),
13300                this.activating = this._delay(function() {
13301                    this.option("active", n)
13302                }, this.delay))
13303            }
13304        },
13305        _panelKeydown: function(e) {
13306            this._handlePageNav(e) || e.ctrlKey && e.keyCode === t.ui.keyCode.UP && (e.preventDefault(),
13307            this.active.trigger("focus"))
13308        },
13309        _handlePageNav: function(e) {
13310            return e.altKey && e.keyCode === t.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)),
13311            !0) : e.altKey && e.keyCode === t.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)),
13312            !0) : void 0
13313        },
13314        _findNextTab: function(e, i) {
13315            function n() {
13316                return e > s && (e = 0),
13317                e < 0 && (e = s),
13318                e
13319            }
13320            for (var s = this.tabs.length - 1; t.inArray(n(), this.options.disabled) !== -1; )
13321                e = i ? e + 1 : e - 1;
13322            return e
13323        },
13324        _focusNextTab: function(t, e) {
13325            return t = this._findNextTab(t, e),
13326            this.tabs.eq(t).trigger("focus"),
13327            t
13328        },
13329        _setOption: function(t, e) {
13330            return "active" === t ? void this._activate(e) : (this._super(t, e),
13331            "collapsible" === t && (this._toggleClass("ui-tabs-collapsible", null, e),
13332            e || this.options.active !== !1 || this._activate(0)),
13333            "event" === t && this._setupEvents(e),
13334            void ("heightStyle" === t && this._setupHeightStyle(e)))
13335        },
13336        _sanitizeSelector: function(t) {
13337            return t ? t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : ""
13338        },
13339        refresh: function() {
13340            var e = this.options
13341              , i = this.tablist.children(":has(a[href])");
13342            e.disabled = t.map(i.filter(".ui-state-disabled"), function(t) {
13343                return i.index(t)
13344            }),
13345            this._processTabs(),
13346            e.active !== !1 && this.anchors.length ? this.active.length && !t.contains(this.tablist[0], this.active[0]) ? this.tabs.length === e.disabled.length ? (e.active = !1,
13347            this.active = t()) : this._activate(this._findNextTab(Math.max(0, e.active - 1), !1)) : e.active = this.tabs.index(this.active) : (e.active = !1,
13348            this.active = t()),
13349            this._refresh()
13350        },
13351        _refresh: function() {
13352            this._setOptionDisabled(this.options.disabled),
13353            this._setupEvents(this.options.event),
13354            this._setupHeightStyle(this.options.heightStyle),
13355            this.tabs.not(this.active).attr({
13356                "aria-selected": "false",
13357                "aria-expanded": "false",
13358                tabIndex: -1
13359            }),
13360            this.panels.not(this._getPanelForTab(this.active)).hide().attr({
13361                "aria-hidden": "true"
13362            }),
13363            this.active.length ? (this.active.attr({
13364                "aria-selected": "true",
13365                "aria-expanded": "true",
13366                tabIndex: 0
13367            }),
13368            this._addClass(this.active, "ui-tabs-active", "ui-state-active"),
13369            this._getPanelForTab(this.active).show().attr({
13370                "aria-hidden": "false"
13371            })) : this.tabs.eq(0).attr("tabIndex", 0)
13372        },
13373        _processTabs: function() {
13374            var e = this
13375              , i = this.tabs
13376              , n = this.anchors
13377              , s = this.panels;
13378            this.tablist = this._getList().attr("role", "tablist"),
13379            this._addClass(this.tablist, "ui-tabs-nav", "ui-helper-reset ui-helper-clearfix ui-widget-header"),
13380            this.tablist.on("mousedown" + this.eventNamespace, "> li", function(e) {
13381                t(this).is(".ui-state-disabled") && e.preventDefault()
13382            }).on("focus" + this.eventNamespace, ".ui-tabs-anchor", function() {
13383                t(this).closest("li").is(".ui-state-disabled") && this.blur()
13384            }),
13385            this.tabs = this.tablist.find("> li:has(a[href])").attr({
13386                role: "tab",
13387                tabIndex: -1
13388            }),
13389            this._addClass(this.tabs, "ui-tabs-tab", "ui-state-default"),
13390            this.anchors = this.tabs.map(function() {
13391                return t("a", this)[0]
13392            }).attr({
13393                role: "presentation",
13394                tabIndex: -1
13395            }),
13396            this._addClass(this.anchors, "ui-tabs-anchor"),
13397            this.panels = t(),
13398            this.anchors.each(function(i, n) {
13399                var s, o, r, a = t(n).uniqueId().attr("id"), l = t(n).closest("li"), h = l.attr("aria-controls");
13400                e._isLocal(n) ? (s = n.hash,
13401                r = s.substring(1),
13402                o = e.element.find(e._sanitizeSelector(s))) : (r = l.attr("aria-controls") || t({}).uniqueId()[0].id,
13403                s = "#" + r,
13404                o = e.element.find(s),
13405                o.length || (o = e._createPanel(r),
13406                o.insertAfter(e.panels[i - 1] || e.tablist)),
13407                o.attr("aria-live", "polite")),
13408                o.length && (e.panels = e.panels.add(o)),
13409                h && l.data("ui-tabs-aria-controls", h),
13410                l.attr({
13411                    "aria-controls": r,
13412                    "aria-labelledby": a
13413                }),
13414                o.attr("aria-labelledby", a)
13415            }),
13416            this.panels.attr("role", "tabpanel"),
13417            this._addClass(this.panels, "ui-tabs-panel", "ui-widget-content"),
vendor: 16,384 bytes, lines 13418-13818
13418            i && (this._off(i.not(this.tabs)),
13419            this._off(n.not(this.anchors)),
13420            this._off(s.not(this.panels)))
13421        },
13422        _getList: function() {
13423            return this.tablist || this.element.find("ol, ul").eq(0)
13424        },
13425        _createPanel: function(e) {
13426            return t("<div>").attr("id", e).data("ui-tabs-destroy", !0)
13427        },
13428        _setOptionDisabled: function(e) {
13429            var i, n, s;
13430            for (t.isArray(e) && (e.length ? e.length === this.anchors.length && (e = !0) : e = !1),
13431            s = 0; n = this.tabs[s]; s++)
13432                i = t(n),
13433                e === !0 || t.inArray(s, e) !== -1 ? (i.attr("aria-disabled", "true"),
13434                this._addClass(i, null, "ui-state-disabled")) : (i.removeAttr("aria-disabled"),
13435                this._removeClass(i, null, "ui-state-disabled"));
13436            this.options.disabled = e,
13437            this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, e === !0)
13438        },
13439        _setupEvents: function(e) {
13440            var i = {};
13441            e && t.each(e.split(" "), function(t, e) {
13442                i[e] = "_eventHandler"
13443            }),
13444            this._off(this.anchors.add(this.tabs).add(this.panels)),
13445            this._on(!0, this.anchors, {
13446                click: function(t) {
13447                    t.preventDefault()
13448                }
13449            }),
13450            this._on(this.anchors, i),
13451            this._on(this.tabs, {
13452                keydown: "_tabKeydown"
13453            }),
13454            this._on(this.panels, {
13455                keydown: "_panelKeydown"
13456            }),
13457            this._focusable(this.tabs),
13458            this._hoverable(this.tabs)
13459        },
13460        _setupHeightStyle: function(e) {
13461            var i, n = this.element.parent();
13462            "fill" === e ? (i = n.height(),
13463            i -= this.element.outerHeight() - this.element.height(),
13464            this.element.siblings(":visible").each(function() {
13465                var e = t(this)
13466                  , n = e.css("position");
13467                "absolute" !== n && "fixed" !== n && (i -= e.outerHeight(!0))
13468            }),
13469            this.element.children().not(this.panels).each(function() {
13470                i -= t(this).outerHeight(!0)
13471            }),
13472            this.panels.each(function() {
13473                t(this).height(Math.max(0, i - t(this).innerHeight() + t(this).height()))
13474            }).css("overflow", "auto")) : "auto" === e && (i = 0,
13475            this.panels.each(function() {
13476                i = Math.max(i, t(this).height("").height())
13477            }).height(i))
13478        },
13479        _eventHandler: function(e) {
13480            var i = this.options
13481              , n = this.active
13482              , s = t(e.currentTarget)
13483              , o = s.closest("li")
13484              , r = o[0] === n[0]
13485              , a = r && i.collapsible
13486              , l = a ? t() : this._getPanelForTab(o)
13487              , h = n.length ? this._getPanelForTab(n) : t()
13488              , u = {
13489                oldTab: n,
13490                oldPanel: h,
13491                newTab: a ? t() : o,
13492                newPanel: l
13493            };
13494            e.preventDefault(),
13495            o.hasClass("ui-state-disabled") || o.hasClass("ui-tabs-loading") || this.running || r && !i.collapsible || this._trigger("beforeActivate", e, u) === !1 || (i.active = !a && this.tabs.index(o),
13496            this.active = r ? t() : o,
13497            this.xhr && this.xhr.abort(),
13498            h.length || l.length || t.error("jQuery UI Tabs: Mismatching fragment identifier."),
13499            l.length && this.load(this.tabs.index(o), e),
13500            this._toggle(e, u))
13501        },
13502        _toggle: function(e, i) {
13503            function n() {
13504                o.running = !1,
13505                o._trigger("activate", e, i)
13506            }
13507            function s() {
13508                o._addClass(i.newTab.closest("li"), "ui-tabs-active", "ui-state-active"),
13509                r.length && o.options.show ? o._show(r, o.options.show, n) : (r.show(),
13510                n())
13511            }
13512            var o = this
13513              , r = i.newPanel
13514              , a = i.oldPanel;
13515            this.running = !0,
13516            a.length && this.options.hide ? this._hide(a, this.options.hide, function() {
13517                o._removeClass(i.oldTab.closest("li"), "ui-tabs-active", "ui-state-active"),
13518                s()
13519            }) : (this._removeClass(i.oldTab.closest("li"), "ui-tabs-active", "ui-state-active"),
13520            a.hide(),
13521            s()),
13522            a.attr("aria-hidden", "true"),
13523            i.oldTab.attr({
13524                "aria-selected": "false",
13525                "aria-expanded": "false"
13526            }),
13527            r.length && a.length ? i.oldTab.attr("tabIndex", -1) : r.length && this.tabs.filter(function() {
13528                return 0 === t(this).attr("tabIndex")
13529            }).attr("tabIndex", -1),
13530            r.attr("aria-hidden", "false"),
13531            i.newTab.attr({
13532                "aria-selected": "true",
13533                "aria-expanded": "true",
13534                tabIndex: 0
13535            })
13536        },
13537        _activate: function(e) {
13538            var i, n = this._findActive(e);
13539            n[0] !== this.active[0] && (n.length || (n = this.active),
13540            i = n.find(".ui-tabs-anchor")[0],
13541            this._eventHandler({
13542                target: i,
13543                currentTarget: i,
13544                preventDefault: t.noop
13545            }))
13546        },
13547        _findActive: function(e) {
13548            return e === !1 ? t() : this.tabs.eq(e)
13549        },
13550        _getIndex: function(e) {
13551            return "string" == typeof e && (e = this.anchors.index(this.anchors.filter("[href$='" + t.ui.escapeSelector(e) + "']"))),
13552            e
13553        },
13554        _destroy: function() {
13555            this.xhr && this.xhr.abort(),
13556            this.tablist.removeAttr("role").off(this.eventNamespace),
13557            this.anchors.removeAttr("role tabIndex").removeUniqueId(),
13558            this.tabs.add(this.panels).each(function() {
13559                t.data(this, "ui-tabs-destroy") ? t(this).remove() : t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")
13560            }),
13561            this.tabs.each(function() {
13562                var e = t(this)
13563                  , i = e.data("ui-tabs-aria-controls");
13564                i ? e.attr("aria-controls", i).removeData("ui-tabs-aria-controls") : e.removeAttr("aria-controls")
13565            }),
13566            this.panels.show(),
13567            "content" !== this.options.heightStyle && this.panels.css("height", "")
13568        },
13569        enable: function(e) {
13570            var i = this.options.disabled;
13571            i !== !1 && (void 0 === e ? i = !1 : (e = this._getIndex(e),
13572            i = t.isArray(i) ? t.map(i, function(t) {
13573                return t !== e ? t : null
13574            }) : t.map(this.tabs, function(t, i) {
13575                return i !== e ? i : null
13576            })),
13577            this._setOptionDisabled(i))
13578        },
13579        disable: function(e) {
13580            var i = this.options.disabled;
13581            if (i !== !0) {
13582                if (void 0 === e)
13583                    i = !0;
13584                else {
13585                    if (e = this._getIndex(e),
13586                    t.inArray(e, i) !== -1)
13587                        return;
13588                    i = t.isArray(i) ? t.merge([e], i).sort() : [e]
13589                }
13590                this._setOptionDisabled(i)
13591            }
13592        },
13593        load: function(e, i) {
13594            e = this._getIndex(e);
13595            var n = this
13596              , s = this.tabs.eq(e)
13597              , o = s.find(".ui-tabs-anchor")
13598              , r = this._getPanelForTab(s)
13599              , a = {
13600                tab: s,
13601                panel: r
13602            }
13603              , l = function(t, e) {
13604                "abort" === e && n.panels.stop(!1, !0),
13605                n._removeClass(s, "ui-tabs-loading"),
13606                r.removeAttr("aria-busy"),
13607                t === n.xhr && delete n.xhr
13608            };
13609            this._isLocal(o[0]) || (this.xhr = t.ajax(this._ajaxSettings(o, i, a)),
13610            this.xhr && "canceled" !== this.xhr.statusText && (this._addClass(s, "ui-tabs-loading"),
13611            r.attr("aria-busy", "true"),
13612            this.xhr.done(function(t, e, s) {
13613                setTimeout(function() {
13614                    r.html(t),
13615                    n._trigger("load", i, a),
13616                    l(s, e)
13617                }, 1)
13618            }).fail(function(t, e) {
13619                setTimeout(function() {
13620                    l(t, e)
13621                }, 1)
13622            })))
13623        },
13624        _ajaxSettings: function(e, i, n) {
13625            var s = this;
13626            return {
13627                url: e.attr("href").replace(/#.*$/, ""),
13628                beforeSend: function(e, o) {
13629                    return s._trigger("beforeLoad", i, t.extend({
13630                        jqXHR: e,
13631                        ajaxSettings: o
13632                    }, n))
13633                }
13634            }
13635        },
13636        _getPanelForTab: function(e) {
13637            var i = t(e).attr("aria-controls");
13638            return this.element.find(this._sanitizeSelector("#" + i))
13639        }
13640    }),
13641    t.uiBackCompat !== !1 && t.widget("ui.tabs", t.ui.tabs, {
13642        _processTabs: function() {
13643            this._superApply(arguments),
13644            this._addClass(this.tabs, "ui-tab")
13645        }
13646    }),
13647    t.ui.tabs
13648}),
13649function(t) {
13650    "function" == typeof define && define.amd ? define(["jquery", "../keycode", "../position", "../unique-id", "../version", "../widget"], t) : t(jQuery)
13651}(function(t) {
13652    return t.widget("ui.tooltip", {
13653        version: "1.12.1",
13654        options: {
13655            classes: {
13656                "ui-tooltip": "ui-corner-all ui-widget-shadow"
13657            },
13658            content: function() {
13659                var e = t(this).attr("title") || "";
13660                return t("<a>").text(e).html()
13661            },
13662            hide: !0,
13663            items: "[title]:not([disabled])",
13664            position: {
13665                my: "left top+15",
13666                at: "left bottom",
13667                collision: "flipfit flip"
13668            },
13669            show: !0,
13670            track: !1,
13671            close: null,
13672            open: null
13673        },
13674        _addDescribedBy: function(e, i) {
13675            var n = (e.attr("aria-describedby") || "").split(/\s+/);
13676            n.push(i),
13677            e.data("ui-tooltip-id", i).attr("aria-describedby", t.trim(n.join(" ")))
13678        },
13679        _removeDescribedBy: function(e) {
13680            var i = e.data("ui-tooltip-id")
13681              , n = (e.attr("aria-describedby") || "").split(/\s+/)
13682              , s = t.inArray(i, n);
13683            s !== -1 && n.splice(s, 1),
13684            e.removeData("ui-tooltip-id"),
13685            n = t.trim(n.join(" ")),
13686            n ? e.attr("aria-describedby", n) : e.removeAttr("aria-describedby")
13687        },
13688        _create: function() {
13689            this._on({
13690                mouseover: "open",
13691                focusin: "open"
13692            }),
13693            this.tooltips = {},
13694            this.parents = {},
13695            this.liveRegion = t("<div>").attr({
13696                role: "log",
13697                "aria-live": "assertive",
13698                "aria-relevant": "additions"
13699            }).appendTo(this.document[0].body),
13700            this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"),
13701            this.disabledTitles = t([])
13702        },
13703        _setOption: function(e, i) {
13704            var n = this;
13705            this._super(e, i),
13706            "content" === e && t.each(this.tooltips, function(t, e) {
13707                n._updateContent(e.element)
13708            })
13709        },
13710        _setOptionDisabled: function(t) {
13711            this[t ? "_disable" : "_enable"]()
13712        },
13713        _disable: function() {
13714            var e = this;
13715            t.each(this.tooltips, function(i, n) {
13716                var s = t.Event("blur");
13717                s.target = s.currentTarget = n.element[0],
13718                e.close(s, !0)
13719            }),
13720            this.disabledTitles = this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function() {
13721                var e = t(this);
13722                if (e.is("[title]"))
13723                    return e.data("ui-tooltip-title", e.attr("title")).removeAttr("title")
13724            }))
13725        },
13726        _enable: function() {
13727            this.disabledTitles.each(function() {
13728                var e = t(this);
13729                e.data("ui-tooltip-title") && e.attr("title", e.data("ui-tooltip-title"))
13730            }),
13731            this.disabledTitles = t([])
13732        },
13733        open: function(e) {
13734            var i = this
13735              , n = t(e ? e.target : this.element).closest(this.options.items);
13736            n.length && !n.data("ui-tooltip-id") && (n.attr("title") && n.data("ui-tooltip-title", n.attr("title")),
13737            n.data("ui-tooltip-open", !0),
13738            e && "mouseover" === e.type && n.parents().each(function() {
13739                var e, n = t(this);
13740                n.data("ui-tooltip-open") && (e = t.Event("blur"),
13741                e.target = e.currentTarget = this,
13742                i.close(e, !0)),
13743                n.attr("title") && (n.uniqueId(),
13744                i.parents[this.id] = {
13745                    element: this,
13746                    title: n.attr("title")
13747                },
13748                n.attr("title", ""))
13749            }),
13750            this._registerCloseHandlers(e, n),
13751            this._updateContent(n, e))
13752        },
13753        _updateContent: function(t, e) {
13754            var i, n = this.options.content, s = this, o = e ? e.type : null;
13755            return "string" == typeof n || n.nodeType || n.jquery ? this._open(e, t, n) : (i = n.call(t[0], function(i) {
13756                s._delay(function() {
13757                    t.data("ui-tooltip-open") && (e && (e.type = o),
13758                    this._open(e, t, i))
13759                })
13760            }),
13761            void (i && this._open(e, t, i)))
13762        },
13763        _open: function(e, i, n) {
13764            function s(t) {
13765                h.of = t,
13766                r.is(":hidden") || r.position(h)
13767            }
13768            var o, r, a, l, h = t.extend({}, this.options.position);
13769            if (n) {
13770                if (o = this._find(i))
13771                    return void o.tooltip.find(".ui-tooltip-content").html(n);
13772                i.is("[title]") && (e && "mouseover" === e.type ? i.attr("title", "") : i.removeAttr("title")),
13773                o = this._tooltip(i),
13774                r = o.tooltip,
13775                this._addDescribedBy(i, r.attr("id")),
13776                r.find(".ui-tooltip-content").html(n),
13777                this.liveRegion.children().hide(),
13778                l = t("<div>").html(r.find(".ui-tooltip-content").html()),
13779                l.removeAttr("name").find("[name]").removeAttr("name"),
13780                l.removeAttr("id").find("[id]").removeAttr("id"),
13781                l.appendTo(this.liveRegion),
13782                this.options.track && e && /^mouse/.test(e.type) ? (this._on(this.document, {
13783                    mousemove: s
13784                }),
13785                s(e)) : r.position(t.extend({
13786                    of: i
13787                }, this.options.position)),
13788                r.hide(),
13789                this._show(r, this.options.show),
13790                this.options.track && this.options.show && this.options.show.delay && (a = this.delayedShow = setInterval(function() {
13791                    r.is(":visible") && (s(h.of),
13792                    clearInterval(a))
13793                }, t.fx.interval)),
13794                this._trigger("open", e, {
13795                    tooltip: r
13796                })
13797            }
13798        },
13799        _registerCloseHandlers: function(e, i) {
13800            var n = {
13801                keyup: function(e) {
13802                    if (e.keyCode === t.ui.keyCode.ESCAPE) {
13803                        var n = t.Event(e);
13804                        n.currentTarget = i[0],
13805                        this.close(n, !0)
13806                    }
13807                }
13808            };
13809            i[0] !== this.element[0] && (n.remove = function() {
13810                this._removeTooltip(this._find(i).tooltip)
13811            }
13812            ),
13813            e && "mouseover" !== e.type || (n.mouseleave = "close"),
13814            e && "focusin" !== e.type || (n.focusout = "close"),
13815            this._on(!0, i, n)
13816        },
13817        close: function(e) {
13818            var i, n = this, s = t(e ? e.curr
vendor: 1,612 bytes, lines 13818-13855
13818entTarget : this.element), o = this._find(s);
13819            return o ? (i = o.tooltip,
13820            void (o.closing || (clearInterval(this.delayedShow),
13821            s.data("ui-tooltip-title") && !s.attr("title") && s.attr("title", s.data("ui-tooltip-title")),
13822            this._removeDescribedBy(s),
13823            o.hiding = !0,
13824            i.stop(!0),
13825            this._hide(i, this.options.hide, function() {
13826                n._removeTooltip(t(this))
13827            }),
13828            s.removeData("ui-tooltip-open"),
13829            this._off(s, "mouseleave focusout keyup"),
13830            s[0] !== this.element[0] && this._off(s, "remove"),
13831            this._off(this.document, "mousemove"),
13832            e && "mouseleave" === e.type && t.each(this.parents, function(e, i) {
13833                t(i.element).attr("title", i.title),
13834                delete n.parents[e]
13835            }),
13836            o.closing = !0,
13837            this._trigger("close", e, {
13838                tooltip: i
13839            }),
13840            o.hiding || (o.closing = !1)))) : void s.removeData("ui-tooltip-open")
13841        },
13842        _tooltip: function(e) {
13843            var i = t("<div>").attr("role", "tooltip")
13844              , n = t("<div>").appendTo(i)
13845              , s = i.uniqueId().attr("id");
13846            return this._addClass(n, "ui-tooltip-content"),
13847            this._addClass(i, "ui-tooltip", "ui-widget ui-widget-content"),
13848            i.appendTo(this._appendTo(e)),
13849            this.tooltips[s] = {
13850                element: e,
13851                tooltip: i
13852            }
13853        },
13854        _find: function(t) {
13855            var e = t.data("ui-tooltip-id");
13856            return e ? this.tooltips[e] : null
13857        },
13858        _removeTooltip: function(t) {
13859            t.remove(),
13860            delete this.tooltips[t.attr("id")]
13861        },
13862        _appendTo: function(t) {
13863            var e = t.closest(".ui-front, dialog");
13864            return e.length || (e = this.document[0].body),
13865            e
13866        },
13867        _destroy: function() {
13868            var e = this;
13869            t.each(this.tooltips, function(i, n) {
13870                var s = t.Event("blur")
13871                  , o = n.element;
13872                s.target = s.currentTarget = o[0],
13873                e.close(s, !0),
13874                t("#" + i).remove(),
13875                o.data("ui-tooltip-title") && (o.attr("title") || o.attr("title", o.data("ui-tooltip-title")),
13876                o.removeData("ui-tooltip-title"))
13877            }),
13878            this.liveRegion.remove()
13879        }
13880    }),
13881    t.uiBackCompat !== !1 && t.widget("ui.tooltip", t.ui.tooltip, {
13882        options: {
13883            tooltipClass: null
13884        },
13885        _tooltip: function() {
13886            var t = this._superApply(arguments);
13887            return this.options.tooltipClass && t.tooltip.addClass(this.options.tooltipClass),
13888            t
13889        }
13890    }),
13891    t.ui.tooltip
13892}),
13893function(t, e) {
13894    "use strict";
13895    t.rails !== e && t.error("jquery-ujs has already been loaded!");
13896    var i, n = t(document);
13897    t.rails = i = {
13898        linkClickSelector: "a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]",
13899        buttonClickSelector: "button[data-remote]:not([form]):not(form button), button[data-confirm]:not([form]):not(form button)",
13900        inputChangeSelector: "select[data-remote], input[data-remote], textarea[data-remote]",
13901        formSubmitSelector: "form",
13902        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])",
13903        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",
13904        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",
13905        requiredInputSelector: "input[name][required]:not([disabled]), textarea[name][required]:not([disabled])",
13906        fileInputSelector: "input[name][type=file]:not([disabled])",
13907        linkDisableSelector: "a[data-disable-with], a[data-disable]",
13908        buttonDisableSelector: "button[data-remote][data-disable-with], button[data-remote][data-disable]",
13909        csrfToken: function() {
13910            return t("meta[name=csrf-token]").attr("content")
13911        },
13912        csrfParam: function() {
13913            return t("meta[name=csrf-param]").attr("content")
13914        },
13915        CSRFProtection: function(t) {
13916            var e = i.csrfToken();
13917            e && t.setRequestHeader("X-CSRF-Token", e)
13918        },
13919        refreshCSRFTokens: function() {
13920            t('form input[name="' + i.csrfParam() + '"]').val(i.csrfToken())
13921        },
13922        fire: function(e, i, n) {
13923            var s = t.Event(i);
13924            return e.trigger(s, n),
13925            s.result !== !1
13926        },
13927        confirm: function(t) {
13928            return confirm(t)
13929        },
13930        ajax: function(e) {
13931            return t.ajax(e)
13932        },
13933        href: function(t) {
13934            return t[0].href
13935        },
13936        isRemote: function(t) {
13937            return t.data("remote") !== e && t.data("remote") !== !1
13938        },
13939        handleRemote: function(n) {
13940            var s, o, r, a, l, h;
13941            if (i.fire(n, "ajax:before")) {
13942                if (a = n.data("with-credentials") || null,
13943                l = n.data("type") || t.ajaxSettings && t.ajaxSettings.dataType,
13944                n.is("form")) {
13945                    s = n.data("ujs:submit-button-formmethod") || n.attr("method"),
13946                    o = n.data("ujs:submit-button-formaction") || n.attr("action"),
13947                    r = t(n[0]).serializeArray();
13948                    var u = n.data("ujs:submit-button");
13949                    u && (r.push(u),
13950                    n.data("ujs:submit-button", null)),
13951                    n.data("ujs:submit-button-formmethod", null),
13952                    n.data("ujs:submit-button-formaction", null)
13953                } else
13954                    n.is(i.inputChangeSelector) ? (s = n.data("method"),
13955                    o = n.data("url"),
13956                    r = n.serialize(),
13957                    n.data("params") && (r = r + "&" + n.data("params"))) : n.is(i.buttonClickSelector) ? (s = n.data("method") || "get",
13958                    o = n.data("url"),
13959                    r = n.serialize(),
13960                    n.data("params") && (r = r + "&" + n.data("params"))) : (s = n.data("method"),
13961                    o = i.href(n),
13962                    r = n.data("params") || null);
13963                return h = {
13964                    type: s || "GET",
13965                    data: r,
13966                    dataType: l,
13967                    beforeSend: function(t, s) {
13968                        return s.dataType === e && t.setRequestHeader("accept", "*/*;q=0.5, " + s.accepts.script),
13969                        !!i.fire(n, "ajax:beforeSend", [t, s]) && void n.trigger("ajax:send", t)
13970                    },
13971                    success: function(t, e, i) {
13972                        n.trigger("ajax:success", [t, e, i])
13973                    },
13974                    complete: function(t, e) {
13975                        n.trigger("ajax:complete", [t, e])
13976                    },
13977                    error: function(t, e, i) {
13978                        n.trigger("ajax:error", [t, e, i])
13979                    },
13980                    crossDomain: i.isCrossDomain(o)
13981                },
13982                a && (h.xhrFields = {
13983                    withCredentials: a
13984                }),
13985                o && (h.url = o),
13986                i.ajax(h)
13987            }
13988            return !1
13989        },
13990        isCrossDomain: function(t) {
13991            var e = document.createElement("a");
13992            e.href = location.href;
13993            var i = document.createElement("a");
13994            try {
13995                return i.href = t,
13996                i.href = i.href,
13997                !((!i.protocol || ":" === i.protocol) && !i.host || e.protocol + "//" + e.host == i.protocol + "//" + i.host)
13998            } catch (t) {
13999                return !0
14000            }
14001        },
14002        handleMethod: function(n) {
14003            var s = i.href(n)
14004              , o = n.data("method")
14005              , r = n.attr("target")
14006              , a = i.csrfToken()
14007              , l = i.csrfParam()
14008              , h = t('<form method="post" action="' + s + '"></form>')
14009              , u = '<input name="_method" value="' + o + '" type="hidden" />';
14010            l === e || a === e || i.isCrossDomain(s) || (u += '<input name="' + l + '" value="' + a + '" type="hidden" />'),
14011            r && h.attr("target", r),
14012            h.hide().append(u).appendTo("body"),
14013            h.submit()
14014        },
14015        formElements: function(e, i) {
14016            return e.is("form") ? t(e[0].elements).filter(i) : e.find(i)
14017        },
14018        disableFormElements: function(e) {
14019            i.formElements(e, i.disableSelector).each(function() {
14020                i.disableFormElement(t(this))
14021            })
14022        },
14023        disableFormElement: function(t) {
14024            var i, n;
14025            i = t.is("button") ? "html" : "val",
14026            n = t.data("disable-with"),
14027            n !== e && (t.data("ujs:enable-with", t[i]()),
14028            t[i](n)),
14029            t.prop("disabled", !0),
14030            t.data("ujs:disabled", !0)
14031        },
14032        enableFormElements: function(e) {
14033            i.formElements(e, i.enableSelector).each(function() {
14034                i.enableFormElement(t(this))
14035            })
14036        },
14037        enableFormElement: function(t) {
14038            var i = t.is("button") ? "html" : "val";
14039            t.data("ujs:enable-with") !== e && (t[i](t.data("ujs:enable-with")),
14040            t.removeData("ujs:enable-with")),
14041            t.prop("disabled", !1),
14042            t.removeData("ujs:disabled")
14043        },
14044        allowAction: function(t) {
14045            var e, n = t.data("confirm"), s = !1;
14046            if (!n)
14047                return !0;
14048            if (i.fire(t, "confirm")) {
14049                try {
14050                    s = i.confirm(n)
14051                } catch (t) {
14052                    (console.error || console.log).call(console, t.stack || t)
14053                }
14054                e = i.fire(t, "confirm:complete", [s])
14055            }
14056            return s && e
14057        },
14058        blankInputs: function(e, i, n) {
14059            var s, o, r, a, l = t(), h = i || "input,textarea", u = e.find(h), c = {};
14060            return u.each(function() {
14061                s = t(this),
14062                s.is("input[type=radio]") ? (a = s.attr("name"),
14063                c[a] || (0 === e.find('input[type=radio]:checked[name="' + a + '"]').length && (r = e.find('input[type=radio][name="' + a + '"]'),
14064                l = l.add(r)),
14065                c[a] = a)) : (o = s.is("input[type=checkbox],input[type=radio]") ? s.is(":checked") : !!s.val(),
14066                o === n && (l = l.add(s)))
14067            }),
14068            !!l.length && l
14069        },
14070        nonBlankInputs: function(t, e) {
14071            return i.blankInputs(t, e, !0)
14072        },
14073        stopEverything: function(e) {
14074            return t(e.target).trigger("ujs:everythingStopped"),
14075            e.stopImmediatePropagation(),
14076            !1
14077        },
14078        disableElement: function(t) {
14079            var n = t.data("disable-with");
14080            n !== e && (t.data("ujs:enable-with", t.html()),
14081            t.html(n)),
14082            t.bind("click.railsDisable", function(t) {
14083                return i.stopEverything(t)
14084            }),
14085            t.data("ujs:disabled", !0)
14086        },
14087        enableElement: function(t) {
14088            t.data("ujs:enable-with") !== e && (t.html(t.data("ujs:enable-with")),
14089            t.removeData("ujs:enable-with")),
14090            t.unbind("click.railsDisable"),
14091            t.removeData("ujs:disabled")
14092        }
14093    },
14094    i.fire(n, "rails:attachBindings") && (t.ajaxPrefilter(function(t, e, n) {
14095        t.crossDomain || i.CSRFProtection(n)
14096    }),
14097    t(window).on("pageshow.rails", function() {
14098        t(t.rails.enableSelector).each(function() {
14099            var e = t(this);
14100            e.data("ujs:disabled") && t.rails.enableFormElement(e)
14101        }),
14102        t(t.rails.linkDisableSelector).each(function() {
14103            var e = t(this);
14104            e.data("ujs:disabled") && t.rails.enableElement(e)
14105        })
14106    }),
14107    n.on("ajax:complete", i.linkDisableSelector, function() {
14108        i.enableElement(t(this))
14109    }),
14110    n.on("ajax:complete", i.buttonDisableSelector, function() {
14111        i.enableFormElement(t(this))
14112    }),
14113    n.on("click.rails", i.linkClickSelector, function(e) {
14114        var n = t(this)
14115          , s = n.data("method")
14116          , o = n.data("params")
14117          , r = e.metaKey || e.ctrlKey;
14118        if (!i.allowAction(n))
14119            return i.stopEverything(e);
14120        if (!r && n.is(i.linkDisableSelector) && i.disableElement(n),
14121        i.isRemote(n)) {
14122            if (r && (!s || "GET" === s) && !o)
14123                return !0;
14124            var a = i.handleRemote(n);
14125            return a === !1 ? i.enableElement(n) : a.fail(function() {
14126                i.enableElement(n)
14127            }),
14128            !1
14129        }
14130        return s ? (i.handleMethod(n),
14131        !1) : void 0
14132    }),
14133    n.on("click.rails", i.buttonClickSelector, function(e) {
14134        var n = t(this);
14135        if (!i.allowAction(n) || !i.isRemote(n))
14136            return i.stopEverything(e);
14137        n.is(i.buttonDisableSelector) && i.disableFormElement(n);
14138        var s = i.handleRemote(n);
14139        return s === !1 ? i.enableFormElement(n) : s.fail(function() {
14140            i.enableFormElement(n)
14141        }),
14142        !1
14143    }),
14144    n.on("change.rails", i.inputChangeSelector, function(e) {
14145        var n = t(this);
14146        return i.allowAction(n) && i.isRemote(n) ? (i.handleRemote(n),
14147        !1) : i.stopEverything(e)
14148    }),
14149    n.on("submit.rails", i.formSubmitSelector, function(n) {
14150        var s, o, r = t(this), a = i.isRemote(r);
14151        if (!i.allowAction(r))
14152            return i.stopEverything(n);
14153        if (r.attr("novalidate") === e)
14154            if (r.data("ujs:formnovalidate-button") === e) {
14155                if (s = i.blankInputs(r, i.requiredInputSelector, !1),
14156                s && i.fire(r, "ajax:aborted:required", [s]))
14157                    return i.stopEverything(n)
14158            } else
14159                r.data("ujs:formnovalidate-button", e);
14160        if (a) {
14161            if (o = i.nonBlankInputs(r, i.fileInputSelector)) {
14162                setTimeout(function() {
14163                    i.disableFormElements(r)
14164                }, 13);
14165                var l = i.fire(r, "ajax:aborted:file", [o]);
14166                return l || setTimeout(function() {
14167                    i.enableFormElements(r)
14168                }, 13),
14169                l
14170            }
14171            return i.handleRemote(r),
14172            !1
14173        }
14174        setTimeout(function() {
14175            i.disableFormElements(r)
14176        }, 13)
14177    }),
14178    n.on("click.rails", i.formInputClickSelector, function(e) {
14179        var n = t(this);
14180        if (!i.allowAction(n))
14181            return i.stopEverything(e);
14182        var s = n.attr("name")
14183          , o = s ? {
14184            name: s,
14185            value: n.val()
14186        } : null
14187          , r = n.closest("form");
14188        0 === r.length && (r = t("#" + n.attr("form"))),
14189        r.data("ujs:submit-button", o),
14190        r.data("ujs:formnovalidate-button", n.attr("formnovalidate")),
14191        r.data("ujs:submit-button-formaction", n.attr("formaction")),
14192        r.data("ujs:submit-button-formmethod", n.attr("formmethod"))
14193    }),
14194    n.on("ajax:send.rails", i.formSubmitSelector, function(e) {
14195        this === e.target && i.disableFormElements(t(this))
14196    }),
14197    n.on("ajax:complete.rails", i.formSubmitSelector, function(e) {
14198        this === e.target && i.enableFormElements(t(this))
14199    }),
14200    t(function() {
14201        i.refreshCSRFTokens()
14202    }))
14203}(jQuery),
14204function(t) {
14205    var e = !1;
14206    if ("function" == typeof define && define.amd && (define(t),
14207    e = !0),
14208    "object" == typeof exports && (module.exports = t(),
14209    e = !0),
14210    !e) {
14211        var i = window.Cookies
14212          , n = window.Cookies = t();
14213        n.noConflict = function() {
14214            return window.Cookies = i,
14215            n
14216        }
14217    }
14218}(function() {
14219    function t() {
14220        for (var t = 0, e = {}; t < arguments.length; t++) {
14221            var i = arguments[t];
14222            for (var n in i)
14223                e[n] = i[n]
14224        }
14225        return e
14226    }
14227    function e(i) {
14228        function n(e, s, o) {
14229            var r;
14230            if ("undefined" != typeof document) {
14231                if (arguments.length > 1) {
14232                    if (o = t({
14233                        path: "/"
14234                    }, n.defaults, o),
14235                    "number" == typeof o.expires) {
14236                        var a = new Date;
14237                        a.setMilliseconds(a.getMilliseconds() + 864e5 * o.expires),
14238                        o.expires = a
14239                    }
14240                    o.expires = o.expires ? o.expires.toUTCString() : "";
14241                    try {
14242                        r = JSON.stringify(s),
14243                        /^[\{\[]/.test(r) && (s = r)
14244                    } catch (t) {}
14245                    s = i.write ? i.write(s, e) : encodeURIComponent(String(s)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent),
14246                    e = encodeURIComponent(String(e)),
14247                    e = e.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent),
14248                    e = e.replace(/[\(\)]/g, escape);
14249                    var l = "";
14250                    for (var h in o)
14251                        o[h] && (l += "; " + h,
14252                        o[h] !== !0 && (l += "=" + o[h]));
14253                    return document.cookie = e + "=" + s + l
14254            
14254    }
14255                e || (r = {});
14256                for (var u = document.cookie ? document.cookie.split("; ") : [], c = /(%[0-9A-Z]{2})+/g, d = 0; d < u.length; d++) {
14257                    var p = u[d].split("=")
14258                      , f = p.slice(1).join("=");
14259                    '"' === f.charAt(0) && (f = f.slice(1, -1));
14260                    try {
14261                        var g = p[0].replace(c, decodeURIComponent);
14262                        if (f = i.read ? i.read(f, g) : i(f, g) || f.replace(c, decodeURIComponent),
14263                        this.json)
14264                            try {
14265                                f = JSON.parse(f)
14266                            } catch (t) {}
14267                        if (e === g) {
14268                            r = f;
14269                            break
14270                        }
14271                        e || (r[g] = f)
14272                    } catch (t) {}
14273                }
14274                return r
14275            }
14276        }
14277        return n.set = n,
14278        n.get = function(t) {
14279            return n.call(n, t)
14280        }
14281        ,
14282        n.getJSON = function() {
14283            return n.apply({
14284                json: !0
14285            }, [].slice.call(arguments))
14286        }
14287        ,
14288        n.defaults = {},
14289        n.remove = function(e, i) {
14290            n(e, "", t(i, {
14291                expires: -1
14292            }))
14293        }
14294        ,
14295        n.withConverter = e,
14296        n
14297    }
14298    return e(function() {})
14299}),
14300!function(t, e) {
14301    var i = function(t, e) {
14302        function i() {}
14303        var n;
14304        return i.prototype.make = function(e) {
14305            return n = "undefined" != typeof e ? parseInt(e) : 0,
14306            this[t.options.type](),
14307            this
14308        }
14309        ,
14310        i.prototype.after = function(e) {
14311            return setTimeout(function() {
14312                e()
14313            }, t.options.animationDuration + 20)
14314        }
14315        ,
14316        i.prototype.slider = function() {
14317            var i = t[t.size] * (t.current - 1)
14318              , s = e.Clones.shift - t.paddings;
14319            e.Run.isStart() ? (s = t.options.centered ? Math.abs(s) : 0,
14320            e.Arrows.disable("prev")) : e.Run.isEnd() ? (s = Math.abs(t.options.centered ? s : 2 * s),
14321            e.Arrows.disable("next")) : (s = Math.abs(s),
14322            e.Arrows.enable()),
14323            t.track.css({
14324                transition: e.Transition.get("all"),
14325                transform: e.Translate.set(t.axis, i - s - n)
14326            })
14327        }
14328        ,
14329        i.prototype.carousel = function() {
14330            var i, s = t[t.size] * t.current;
14331            i = t.options.centered ? e.Clones.shift - t.paddings : e.Clones.shift,
14332            e.Run.isOffset("<") && (s = 0,
14333            e.Run.flag = !1,
14334            this.after(function() {
14335                t.track.css({
14336                    transition: e.Transition.clear("all"),
14337                    transform: e.Translate.set(t.axis, t[t.size] * t.length + i)
14338                })
14339            })),
14340            e.Run.isOffset(">") && (s = t[t.size] * t.length + t[t.size],
14341            e.Run.flag = !1,
14342            this.after(function() {
14343                t.track.css({
14344                    transition: e.Transition.clear("all"),
14345                    transform: e.Translate.set(t.axis, t[t.size] + i)
14346                })
14347            })),
14348            t.track.css({
14349                transition: e.Transition.get("all"),
14350                transform: e.Translate.set(t.axis, s + i - n)
14351            })
14352        }
14353        ,
14354        i.prototype.slideshow = function() {
14355            t.slides.css("transition", e.Transition.get("opacity")).eq(t.current - 1).css("opacity", 1).siblings().css("opacity", 0)
14356        }
14357        ,
14358        new i
14359    }
14360      , n = function(t, e) {
14361        function i() {}
14362        return i.prototype.instance = function() {
14363            return {
14364                current: function() {
14365                    return t.current
14366                },
14367                go: function(t, i) {
14368                    return e.Run.make(t, i)
14369                },
14370                jump: function(t, i) {
14371                    return e.Transition.jumping = !0,
14372                    e.Animation.after(function() {
14373                        e.Transition.jumping = !1
14374                    }),
14375                    e.Run.make(t, i)
14376                },
14377                animate: function(t) {
14378                    e.Transition.jumping = !0,
14379                    e.Animation.make(t),
14380                    e.Transition.jumping = !1
14381                },
14382                start: function(i) {
14383                    return e.Run.running = !0,
14384                    t.options.autoplay = parseInt(i),
14385                    e.Run.play()
14386                },
14387                play: function() {
14388                    return e.Run.play()
14389                },
14390                pause: function() {
14391                    return e.Run.pause()
14392                },
14393                destroy: function() {
14394                    e.Run.pause(),
14395                    e.Clones.remove(),
14396                    e.Helper.removeStyles([t.track, t.slides]),
14397                    e.Bullets.remove(),
14398                    t.slider.removeData("glide_api"),
14399                    e.Events.unbind(),
14400                    e.Touch.unbind(),
14401                    e.Arrows.unbind(),
14402                    e.Bullets.unbind(),
14403                    delete t.slider,
14404                    delete t.track,
14405                    delete t.slides,
14406                    delete t.width,
14407                    delete t.length
14408                },
14409                refresh: function() {
14410                    e.Run.pause(),
14411                    t.collect(),
14412                    t.setup(),
14413                    e.Clones.remove().init(),
14414                    e.Bullets.remove().init(),
14415                    e.Build.init(),
14416                    e.Run.make("=" + parseInt(t.options.startAt), e.Run.play())
14417                }
14418            }
14419        }
14420        ,
14421        new i
14422    }
14423      , s = function(e, i) {
14424        function n() {
14425            this.build(),
14426            this.bind()
14427        }
14428        return n.prototype.build = function() {
14429            this.wrapper = e.slider.find("." + e.options.classes.arrows),
14430            this.items = this.wrapper.children()
14431        }
14432        ,
14433        n.prototype.disable = function(t) {
14434            var n = e.options.classes;
14435            return this.items.filter("." + n["arrow" + i.Helper.capitalise(t)]).unbind("click.glide touchstart.glide").addClass(n.disabled).siblings().bind("click.glide touchstart.glide", this.click).removeClass(n.disabled)
14436        }
14437        ,
14438        n.prototype.enable = function() {
14439            return this.bind(),
14440            this.items.removeClass(e.options.classes.disabled)
14441        }
14442        ,
14443        n.prototype.click = function(e) {
14444            e.preventDefault(),
14445            i.Events.disabled || (i.Run.pause(),
14446            i.Run.make(t(this).data("glide-dir")),
14447            i.Animation.after(function() {
14448                i.Run.play()
14449            }))
14450        }
14451        ,
14452        n.prototype.bind = function() {
14453            return this.items.on("click.glide touchstart.glide", this.click)
14454        }
14455        ,
14456        n.prototype.unbind = function() {
14457            return this.items.off("click.glide touchstart.glide")
14458        }
14459        ,
14460        new n
14461    }
14462      , o = function(t, e) {
14463        function i() {
14464            this.init()
14465        }
14466        return i.prototype.init = function() {
14467            this[t.options.type](),
14468            this.active(),
14469            e.Height.set()
14470        }
14471        ,
14472        i.prototype.isType = function(e) {
14473            return t.options.type === e
14474        }
14475        ,
14476        i.prototype.isMode = function(e) {
14477            return t.options.mode === e
14478        }
14479        ,
14480        i.prototype.slider = function() {
14481            e.Transition.jumping = !0,
14482            t.slides[t.size](t[t.size]),
14483            t.track.css(t.size, t[t.size] * t.length),
14484            this.isMode("vertical") && e.Height.set(!0),
14485            e.Animation.make(),
14486            e.Transition.jumping = !1
14487        }
14488        ,
14489        i.prototype.carousel = function() {
14490            e.Transition.jumping = !0,
14491            e.Clones.shift = t[t.size] * e.Clones.items.length / 2 - t[t.size],
14492            t.slides[t.size](t[t.size]),
14493            t.track.css(t.size, t[t.size] * t.length + e.Clones.getGrowth()),
14494            this.isMode("vertical") && e.Height.set(!0),
14495            e.Animation.make(),
14496            e.Clones.append(),
14497            e.Transition.jumping = !1
14498        }
14499        ,
14500        i.prototype.slideshow = function() {
14501            e.Transition.jumping = !0,
14502            e.Animation.make(),
14503            e.Transition.jumping = !1
14504        }
14505        ,
14506        i.prototype.active = function() {
14507            t.slides.eq(t.current - 1).addClass(t.options.classes.active).siblings().removeClass(t.options.classes.active)
14508        }
14509        ,
14510        new i
14511    }
14512      , r = function(e, i) {
14513        function n() {
14514            this.init(),
14515            this.bind()
14516        }
14517        return n.prototype.init = function() {
14518            return this.build(),
14519            this.active(),
14520            this
14521        }
14522        ,
14523        n.prototype.build = function() {
14524            this.wrapper = e.slider.children("." + e.options.classes.bullets);
14525            for (var i = 1; i <= e.length; i++)
14526                t("<button>", {
14527                    "class": e.options.classes.bullet,
14528                    "data-glide-dir": "=" + i
14529                }).appendTo(this.wrapper);
14530            this.items = this.wrapper.children()
14531        }
14532        ,
14533        n.prototype.active = function() {
14534            return this.items.eq(e.current - 1).addClass("active").siblings().removeClass("active")
14535        }
14536        ,
14537        n.prototype.remove = function() {
14538            return this.items.remove(),
14539            this
14540        }
14541        ,
14542        n.prototype.click = function(e) {
14543            e.preventDefault(),
14544            i.Events.disabled || (i.Run.pause(),
14545            i.Run.make(t(this).data("glide-dir")),
14546            i.Animation.after(function() {
14547                i.Run.play()
14548            }))
14549        }
14550        ,
14551        n.prototype.bind = function() {
14552            return this.wrapper.on("click.glide touchstart.glide", "button", this.click)
14553        }
14554        ,
14555        n.prototype.unbind = function() {
14556            return this.wrapper.on("click.glide touchstart.glide", "button")
14557        }
14558        ,
14559        new n
14560    }
14561      , a = function(t) {
14562        function e() {
14563            this.init()
14564        }
14565        var i, n = [0, 1];
14566        return e.prototype.init = function() {
14567            return this.items = [],
14568            this.map(),
14569            this.collect(),
14570            this.shift = 0,
14571            this
14572        }
14573        ,
14574        e.prototype.map = function() {
14575            i = [];
14576            for (var t in n)
14577                i.push(-1 - t, t)
14578        }
14579        ,
14580        e.prototype.collect = function() {
14581            var e;
14582            for (var n in i)
vendor: 16,285 bytes, lines 14583-15040
14583                e = t.slides.eq(i[n]).clone().addClass(t.options.classes.clone),
14584                this.items.push(e)
14585        }
14586        ,
14587        e.prototype.append = function() {
14588            var e;
14589            for (var n in this.items)
14590                e = this.items[n][t.size](t[t.size]),
14591                i[n] >= 0 ? e.appendTo(t.track) : e.prependTo(t.track)
14592        }
14593        ,
14594        e.prototype.remove = function() {
14595            for (var t in this.items)
14596                this.items[t].remove();
14597            return this
14598        }
14599        ,
14600        e.prototype.getGrowth = function() {
14601            return t.width * this.items.length
14602        }
14603        ,
14604        new e
14605    }
14606      , l = function(t, e) {
14607        function i() {
14608            for (var i in e)
14609                this[i] = new e[i](t,this)
14610        }
14611        return new i
14612    }
14613      , h = function(i, n) {
14614        function s() {
14615            this.disabled = !1,
14616            this.keyboard(),
14617            this.hoverpause(),
14618            this.resize(),
14619            this.bindTriggers()
14620        }
14621        var o = t("[data-glide-trigger]");
14622        return s.prototype.keyboard = function() {
14623            i.options.keyboard && t(e).on("keyup.glide", function(t) {
14624                39 === t.keyCode && n.Run.make(">"),
14625                37 === t.keyCode && n.Run.make("<")
14626            })
14627        }
14628        ,
14629        s.prototype.hoverpause = function() {
14630            i.options.hoverpause && i.track.on("mouseover.glide", function() {
14631                n.Run.pause(),
14632                n.Events.trigger("mouseOver")
14633            }).on("mouseout.glide", function() {
14634                n.Run.play(),
14635                n.Events.trigger("mouseOut")
14636            })
14637        }
14638        ,
14639        s.prototype.resize = function() {
14640            t(e).on("resize.glide", n.Helper.throttle(function() {
14641                n.Transition.jumping = !0,
14642                i.setup(),
14643                n.Build.init(),
14644                n.Run.make("=" + i.current, !1),
14645                n.Run.play(),
14646                n.Transition.jumping = !1
14647            }, i.options.throttle))
14648        }
14649        ,
14650        s.prototype.bindTriggers = function() {
14651            o.length && o.off("click.glide touchstart.glide").on("click.glide touchstart.glide", this.handleTrigger)
14652        }
14653        ,
14654        s.prototype.handleTrigger = function(e) {
14655            e.preventDefault();
14656            var i = t(this).data("glide-trigger").split(" ");
14657            if (!this.disabled)
14658                for (var n in i) {
14659                    var s = t(i[n]).data("glide_api");
14660                    s.pause(),
14661                    s.go(t(this).data("glide-dir"), this.activeTrigger),
14662                    s.play()
14663                }
14664        }
14665        ,
14666        s.prototype.disable = function() {
14667            return this.disabled = !0,
14668            this
14669        }
14670        ,
14671        s.prototype.enable = function() {
14672            return this.disabled = !1,
14673            this
14674        }
14675        ,
14676        s.prototype.detachClicks = function() {
14677            return i.track.off("click", "a"),
14678            this
14679        }
14680        ,
14681        s.prototype.preventClicks = function() {
14682            return i.track.one("click", "a", function(t) {
14683                t.preventDefault()
14684            }),
14685            this
14686        }
14687        ,
14688        s.prototype.call = function(t) {
14689            return "undefined" !== t && "function" == typeof t && t(this.getParams()),
14690            this
14691        }
14692        ,
14693        s.prototype.trigger = function(t) {
14694            return i.slider.trigger(t + ".glide", [this.getParams()]),
14695            this
14696        }
14697        ,
14698        s.prototype.getParams = function() {
14699            return {
14700                index: i.current,
14701                length: i.slides.length,
14702                current: i.slides.eq(i.current - 1),
14703                slider: i.slider,
14704                swipe: {
14705                    distance: n.Touch.distance || 0
14706                }
14707            }
14708        }
14709        ,
14710        s.prototype.unbind = function() {
14711            i.track.off("keyup.glide").off("mouseover.glide").off("mouseout.glide"),
14712            o.off("click.glide touchstart.glide"),
14713            t(e).off("keyup.glide").off("resize.glide")
14714        }
14715        ,
14716        new s
14717    }
14718      , u = function(t, e) {
14719        function i() {
14720            t.options.autoheight && t.wrapper.css({
14721                transition: e.Transition.get("height")
14722            })
14723        }
14724        return i.prototype.get = function() {
14725            var e = "y" === t.axis ? 2 * t.paddings : 0;
14726            return t.slides.eq(t.current - 1).height() + e
14727        }
14728        ,
14729        i.prototype.set = function(e) {
14730            return !(!t.options.autoheight && !e) && t.wrapper.height(this.get())
14731        }
14732        ,
14733        new i
14734    }
14735      , c = function(t) {
14736        function e() {}
14737        return e.prototype.byAxis = function(e, i) {
14738            return "y" === t.axis ? i : e
14739        }
14740        ,
14741        e.prototype.capitalise = function(t) {
14742            return t.charAt(0).toUpperCase() + t.slice(1)
14743        }
14744        ,
14745        e.prototype.now = Date.now || function() {
14746            return (new Date).getTime()
14747        }
14748        ,
14749        e.prototype.throttle = function(t, e, i) {
14750            var n, s, o, r = this, a = null, l = 0;
14751            i || (i = {});
14752            var h = function() {
14753                l = i.leading === !1 ? 0 : r.now(),
14754                a = null,
14755                o = t.apply(n, s),
14756                a || (n = s = null)
14757            };
14758            return function() {
14759                var u = r.now();
14760                l || i.leading !== !1 || (l = u);
14761                var c = e - (u - l);
14762                return n = this,
14763                s = arguments,
14764                0 >= c || c > e ? (a && (clearTimeout(a),
14765                a = null),
14766                l = u,
14767                o = t.apply(n, s),
14768                a || (n = s = null)) : a || i.trailing === !1 || (a = setTimeout(h, c)),
14769                o
14770            }
14771        }
14772        ,
14773        e.prototype.removeStyles = function(t) {
14774            for (var e in t)
14775                t[e].removeAttr("style")
14776        }
14777        ,
14778        new e
14779    }
14780      , d = function(t, e) {
14781        function i() {
14782            this.running = !1,
14783            this.flag = !1,
14784            this.play()
14785        }
14786        return i.prototype.play = function() {
14787            var e = this;
14788            return (t.options.autoplay || this.running) && "undefined" == typeof this.interval && (this.interval = setInterval(function() {
14789                e.pause(),
14790                e.make(">"),
14791                e.play()
14792            }, this.getInterval())),
14793            this.interval
14794        }
14795        ,
14796        i.prototype.getInterval = function() {
14797            return t.slides.eq(t.current - 1).data("glide-autoplay") || t.options.autoplay
14798        }
14799        ,
14800        i.prototype.pause = function() {
14801            return (t.options.autoplay || this.running) && this.interval >= 0 && (this.interval = clearInterval(this.interval)),
14802            this.interval
14803        }
14804        ,
14805        i.prototype.isStart = function() {
14806            return 1 === t.current
14807        }
14808        ,
14809        i.prototype.isEnd = function() {
14810            return t.current === t.length
14811        }
14812        ,
14813        i.prototype.isOffset = function(t) {
14814            return this.flag && this.direction === t
14815        }
14816        ,
14817        i.prototype.make = function(i, n) {
14818            var s = this;
14819            switch (this.direction = i.substr(0, 1),
14820            this.steps = i.substr(1) ? i.substr(1) : 0,
14821            t.options.hoverpause || this.pause(),
14822            n !== !1 && e.Events.disable().call(t.options.beforeTransition).trigger("beforeTransition"),
14823            this.direction) {
14824            case ">":
14825                this.isEnd() ? (t.current = 1,
14826                this.flag = !0) : ">" === this.steps ? t.current = t.length : t.current = t.current + 1;
14827                break;
14828            case "<":
14829                this.isStart() ? (t.current = t.length,
14830                this.flag = !0) : "<" === this.steps ? t.current = 1 : t.current = t.current - 1;
14831                break;
14832            case "=":
14833                t.current = parseInt(this.steps)
14834            }
14835            e.Height.set(),
14836            e.Bullets.active(),
14837            e.Animation.make().after(function() {
14838                e.Build.active(),
14839                n !== !1 && e.Events.enable().call(n).call(t.options.afterTransition).trigger("afterTransition"),
14840                t.options.hoverpause || s.play()
14841            }),
14842            e.Events.call(t.options.duringTransition).trigger("duringTransition")
14843        }
14844        ,
14845        new i
14846    }
14847      , p = function(e, i) {
14848        function n() {
14849            this.dragging = !1,
14850            e.options.touchDistance && e.track.on({
14851                "touchstart.glide": t.proxy(this.start, this)
14852            }),
14853            e.options.dragDistance && e.track.on({
14854                "mousedown.glide": t.proxy(this.start, this)
14855            })
14856        }
14857        var s;
14858        return n.prototype.unbind = function() {
14859            e.track.off("touchstart.glide mousedown.glide").off("touchmove.glide mousemove.glide").off("touchend.glide touchcancel.glide mouseup.glide mouseleave.glide")
14860        }
14861        ,
14862        n.prototype.start = function(n) {
14863            i.Events.disabled || this.dragging || (s = "mousedown" === n.type ? n.originalEvent : n.originalEvent.touches[0] || n.originalEvent.changedTouches[0],
14864            i.Transition.jumping = !0,
14865            this.touchStartX = parseInt(s.pageX),
14866            this.touchStartY = parseInt(s.pageY),
14867            this.touchSin = null,
14868            this.dragging = !0,
14869            e.track.on({
14870                "touchmove.glide mousemove.glide": i.Helper.throttle(t.proxy(this.move, this), e.options.throttle),
14871                "touchend.glide touchcancel.glide mouseup.glide mouseleave.glide": t.proxy(this.end, this)
14872            }),
14873            i.Events.detachClicks().call(e.options.swipeStart).trigger("swipeStart"),
14874            i.Run.pause())
14875        }
14876        ,
14877        n.prototype.move = function(t) {
14878            if (!i.Events.disabled && this.dragging) {
14879                s = "mousemove" === t.type ? t.originalEvent : t.originalEvent.touches[0] || t.originalEvent.changedTouches[0];
14880                var n = parseInt(s.pageX) - this.touchStartX
14881                  , o = parseInt(s.pageY) - this.touchStartY
14882                  , r = Math.abs(n << 2)
14883                  , a = Math.abs(o << 2)
14884                  , l = Math.sqrt(r + a)
14885                  , h = Math.sqrt(i.Helper.byAxis(a, r));
14886                if (this.touchSin = Math.asin(h / l),
14887                this.distance = i.Helper.byAxis(s.pageX - this.touchStartX, s.pageY - this.touchStartY),
14888                i.Animation.make(i.Helper.byAxis(n, o)),
14889                i.Events.preventClicks().call(e.options.swipeMove).trigger("swipeMove"),
14890                i.Build.isMode("vertical")) {
14891                    if (i.Run.isStart() && o > 0)
14892                        return;
14893                    if (i.Run.isEnd() && 0 > o)
14894                        return
14895                }
14896                if (!(180 * this.touchSin / Math.PI < 45))
14897                    return;
14898                t.stopPropagation(),
14899                t.preventDefault(),
14900                e.track.addClass(e.options.classes.dragging)
14901            }
14902        }
14903        ,
14904        n.prototype.end = function(t) {
14905            if (!i.Events.disabled && this.dragging) {
14906                s = "mouseup" === t.type || "mouseleave" === t.type ? t.originalEvent : t.originalEvent.touches[0] || t.originalEvent.changedTouches[0];
14907                var n = i.Helper.byAxis(s.pageX - this.touchStartX, s.pageY - this.touchStartY)
14908                  , o = 180 * this.touchSin / Math.PI;
14909                i.Transition.jumping = !1,
14910                i.Build.isType("slider") && (i.Run.isStart() && n > 0 && (n = 0),
14911                i.Run.isEnd() && 0 > n && (n = 0)),
14912                n > e.options.touchDistance && 45 > o ? i.Run.make("<") : n < -e.options.touchDistance && 45 > o ? i.Run.make(">") : i.Animation.make(),
14913                i.Animation.after(function() {
14914                    i.Events.enable(),
14915                    i.Run.play()
14916                }),
14917                this.dragging = !1,
14918                i.Events.disable().call(e.options.swipeEnd).trigger("swipeEnd"),
14919                e.track.removeClass(e.options.classes.dragging).off("touchmove.glide mousemove.glide").off("touchend.glide touchcancel.glide mouseup.glide mouseleave.glide")
14920            }
14921        }
14922        ,
14923        new n
14924    }
14925      , f = function(t) {
14926        function e() {
14927            this.jumping = !1
14928        }
14929        return e.prototype.get = function(e) {
14930            return this.jumping ? this.clear("all") : e + " " + t.options.animationDuration + "ms " + t.options.animationTimingFunc
14931        }
14932        ,
14933        e.prototype.clear = function(e) {
14934            return e + " 0ms " + t.options.animationTimingFunc
14935        }
14936        ,
14937        new e
14938    }
14939      , g = function() {
14940        function t() {}
14941        var e = {
14942            x: 0,
14943            y: 0,
14944            z: 0
14945        };
14946        return t.prototype.set = function(t, i) {
14947            return e[t] = parseInt(i),
14948            "translate3d(" + -1 * e.x + "px, " + -1 * e.y + "px, " + -1 * e.z + "px)"
14949        }
14950        ,
14951        new t
14952    }
14953      , m = function(e, m) {
14954        var v = {
14955            autoplay: 4e3,
14956            type: "carousel",
14957            mode: "horizontal",
14958            startAt: 1,
14959            hoverpause: !0,
14960            keyboard: !0,
14961            touchDistance: 80,
14962            dragDistance: 120,
14963            animationDuration: 400,
14964            animationTimingFunc: "cubic-bezier(0.165, 0.840, 0.440, 1.000)",
14965            throttle: 16,
14966            autoheight: !1,
14967            paddings: 0,
14968            centered: !0,
14969            classes: {
14970                base: "glide",
14971                wrapper: "glide__wrapper",
14972                track: "glide__track",
14973                slide: "glide__slide",
14974                arrows: "glide__arrows",
14975                arrow: "glide__arrow",
14976                arrowNext: "next",
14977                arrowPrev: "prev",
14978                bullets: "glide__bullets",
14979                bullet: "glide__bullet",
14980                clone: "clone",
14981                active: "active",
14982                dragging: "dragging",
14983                disabled: "disabled"
14984            },
14985            beforeInit: function() {},
14986            afterInit: function() {},
14987            beforeTransition: function() {},
14988            duringTransition: function() {},
14989            afterTransition: function() {},
14990            swipeStart: function() {},
14991            swipeEnd: function() {},
14992            swipeMove: function() {}
14993        };
14994        this.options = t.extend({}, v, m),
14995        this.current = parseInt(this.options.startAt),
14996        this.element = e,
14997        this.collect(),
14998        this.setup(),
14999        this.options.beforeInit({
15000            index: this.current,
15001            length: this.slides.length,
15002            current: this.slides.eq(this.current - 1),
15003            slider: this.slider
15004        });
15005        var b = new l(this,{
15006            Helper: c,
15007            Translate: g,
15008            Transition: f,
15009            Run: d,
15010            Animation: i,
15011            Clones: a,
15012            Arrows: s,
15013            Bullets: r,
15014            Height: u,
15015            Build: o,
15016            Events: h,
15017            Touch: p,
15018            Api: n
15019        });
15020        return b.Events.call(this.options.afterInit),
15021        b.Api.instance()
15022    };
15023    m.prototype.collect = function() {
15024        var t = this.options
15025          , e = t.classes;
15026        this.slider = this.element.addClass(e.base + "--" + t.type).addClass(e.base + "--" + t.mode),
15027        this.track = this.slider.find("." + e.track),
15028        this.wrapper = this.slider.find("." + e.wrapper),
15029        this.slides = this.track.find("." + e.slide).not("." + e.clone)
15030    }
15031    ,
15032    m.prototype.setup = function() {
15033        var t = {
15034            horizontal: ["width", "x"],
15035            vertical: ["height", "y"]
15036        };
15037        this.size = t[this.options.mode][0],
15038        this.axis = t[this.options.mode][1],
15039        this.length = this.slides.length,
15040        this.paddings = this.getPaddings(),
15041        this[this.size] = this.getSize()
15042    }
15043    ,
15044    m.prototype.getPaddings = function() {
15045        var t = this.options.paddings;
15046        if ("string" == typeof t) {
15047            var e = parseInt(t, 10)
15048              , i = t.indexOf("%") >= 0;
15049            return i ? parseInt(this.slider[this.size]() * (e / 100)) : e
15050        }
15051        return t
15052    }
15053    ,
15054    m.prototype.getSize = function() {
15055        return this.slider[this.size]() - 2 * this.paddings
15056    }
15057    ,
15058    t.fn.glide = function(e) {
15059        return this.each(function() {
15060            t.data(this, "glide_api") || t.data(this, "glide_api", new m(t(this),e))
15061        })
15062    }
15063}(jQuery, window, document),
15064function(t, e) {
15065    t(function() {
15066        var i = t(e);
15067        if (t("a[rel=tooltip]").tooltip(),
15068        i.width() > 960) {
15069            var n = t(".sidebar-bottom")
15070              , s = t(".stop-ads")
15071              , o = n && n.length ? n.outerHeight(!0) : 0
15072              , r = n && n.length ? n.offset().top : 0;
15073            i.scroll(function() {
15074                var e = t(this).scrollTop();
15075                if (e > r + 400) {
15076                    var i = s && s.length ? s.offset().top + 280 : 280;
15077                    e + o > i ? (customTopPosition = i - (e + o),
15078                    n.css({
15079                        position: "fixed",
15080                        top: customTopPosition + "px"
15081                    })) : n.css({
15082                        position: "fixed",
15083                        top: "20px",
15084                        marginLeft: "20px",
15085                        width: "320px"
15086                    })
15087                } else
15088                    n.css({
15089                        position: "static",
15090                        top: "auto"
15091                    })
15092            });
15093            var a = t(".sidebar-left ul");
15094            if (t(".sidebar-left").height() < t("#content").height()) {
15095                t(".sidebar-left").css({
15096                    height: t("#content").height(),
15097                    position: "relative"
15098                });
15099                var l = i.height() - a.height()
15100                  , h = a.offset().top + -l
15101                  , u = a.offset().top + t("#content").height();
15102                i.scroll(function() {
15103                    if (i.height() < a.height())
15104                        h < i.scrollTop() && i.scrollTop() + i.height() < u ? a.css({
15105                            position: "fixed",
15106                            bottom: "100px"
15107                        }) : i.scrollTop() + i.height() >= u ? a.css({
15108                            position: "absolute",
15109                            bottom: "0"
15110                        }) : a.css("position", "static");
15111                    else {
15112                        var e = i.scrollTop() + a.height()
15113                          , n = i.height() - a.height();
15114                        if (t("#content").offset().top < i.scrollTop() && e < u)
15115                            a.css({
15116                                position: "fixed",
15117                                bottom: n,
15118                                width: t(".sidebar-left").width() + "px"
15119                            });
15120                        else if (e >= u) {
15121                            t("#content").height() - t(".sidebar-left").height();
15122                            a.css({
15123                                cssText: "position: absolute; bottom: 0; width:" + t(".sidebar-left").width() + "px"
15124                            })
15125                        } else
15126                            a.css("position", "static")
15127                    }
15128                })
15129            }
15130        } else
15131            t("#sidebar").hide()
15132    })
15133}(jQuery, window),
15134$(function() {
15135    $(".btn-search").click(function() {
15136        $(".search-section").toggle()
15137    }),
15138    $(".btn-search-close").click(function() {
15139        $(".search-section").toggle()
15140    }),
15141    $(".btn-menu").click(function() {
15142        $(".menu-section").toggle()
15143    }),
15144    $(".btn-menu-close").click(function() {
15145        $(".menu-section").toggle()
15146    })
15147});
15148$(function() {
15149    const tableEles = $('.table-striped');
15150    if (tableEles.length > 0) {
15151        tableEles.each((i , e) => {
15152            $(e)
15153                .addClass('table table-bordered')
15154                .removeClass('table-striped');
15155        })
15156    }
15157    const quoteEles = $('.blockquote-elements');
15158    if (quoteEles.length > 0) {
15159        quoteEles.each((i , e) => {
15160            prependImage($(e), 'blockquote-first.png', 'img-blockquote-first');
15161            prependImage($(e), 'blockquote-second.png', 'img-blockquote-second');
15162            const p = $('<p>').addClass('quote');
15163            $(e).prepend(p);
15164        })
15165        const citeEles = $('.blockquote-elements cite a');
15166        if (citeEles.length > 0) {
15167            citeEles.each(function () {
15168                var text = $(this).text().trim();
15168 // テキストを取得して前後の空白を削除
15169                if (text.length > 141) {
15170                    var truncatedText = text.substring(0, 141) + '... |'; // 141文字でカットして"… |"を追加
15171                    $(this).text(truncatedText); // 新しいテキストを設定
15172                }
15173            });
15174        }
15175    }
15176
15177    function prependImage(targetSelector, imagePath, className) {
15178        // 現在のドメインを取得
15179        const currentDomain = window.location.origin;
15180        // フルパスを生成
15181        const fullSrc = currentDomain + '/wp-content/themes/uranaru/assets/images/' + imagePath.replace(/^\/+/, ''); // 先頭のスラッシュを削除
15182        // 画像要素を作成
15183        const img = $('<img>').attr('src', fullSrc).addClass(className);
15184        // 対象の要素の最初の子要素として挿入
15185        $(targetSelector).prepend(img);
15186    }
15187
15188    const listTitleEles = $('.list-title');
15189    if (listTitleEles.length > 0) {
15190        listTitleEles.each((i , e) => {
15191            if ($(e).text() === '') {
15192                $(e).remove();
15193            }
15194        });
15195    }
15196    const listContEles = $('ul.list-contents');
15197    if (listContEles.length > 0) {
15198        listContEles.each((i , e) => {
15199            $(e).addClass('ul-list');
15200        });
15201    }
15202
15203});

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