PageSourceSearch

https://gardenclub.org/themes/custom/ngc/js/main.js?v=10.6.16

js gardenclub.org collected 2026-10-01 10:37:45 UTC 505,814 bytes, 8,460 lines download raw bytes

1function getAccordion(t, e) {
2    $(window).width() < e && $("section.ng-t4-course-listing-tabs, section.ng-t6-custom-detials-tabs").each(function() {
3        var e = $(this).find("#course-headline-title").data("course-title"),
4            i = "",
5            s = t + "-" + e;
6        obj_tabs = $(s + " li").toArray(), obj_cont = $(".tab-content .tab-pane").toArray(), jQuery.each(obj_tabs, function(t, s) {
7            i += '<div id="' + t + e + '" class="panel panel-default">', i += '<div class="panel-heading" role="tab" id="heading' + t + '">', i += '<h4 class="panel-title"><a role="button" data-toggle="collapse" data-parent="#custom-accordion-' + e + '" href="#' + e + t + '" aria-expanded="false" aria-controls="' + e + t + '">' + s.innerText + "</a></h4>", i += "</div>", i += '<div id="' + e + t + '" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading' + t + '">', i += '<div class="panel-body">' + obj_cont[t].innerHTML + "</div>", i += "</div>", i += "</div>"
8        }), $(this).find("#custom-accordion-" + e).html(i), $(this).find("#custom-accordion-" + e + " .panel .panel-collapse:first").addClass("in"), $(this).find("#custom-accordion-" + e + " .panel .panel-title a:first").attr("aria-expanded", "true"), $(s).remove(), $(this).find(".tab-content").remove()
9    })
10}
11
12function getAccordiontwo(t, e) {
13    if ($(window).width() < e) {
14        var i = "";
15        obj_tabs = $(t + " li").toArray(), obj_cont = $(".tab-content2 .tab-pane").toArray(), jQuery.each(obj_tabs, function(t, e) {
16            i += '<div id="' + t + '" class="panel panel-default">', i += '<div class="panel-heading" role="tab" id="heading' + t + '">', i += '<h4 class="panel-title"><a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapsetwo' + t + '" aria-expanded="false" aria-controls="collapsetwo' + t + '">' + e.innerText + "</a></h4>", i += "</div>", i += '<div id="collapsetwo' + t + '" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading' + t + '">', i += '<div class="panel-body">' + obj_cont[t].innerHTML + "</div>", i += "</div>", i += "</div>"
17        }), $("#custom-accordion2").html(i), $("#custom-accordion2").find(".panel-collapse:first").addClass("in"), $("#custom-accordion2").find(".panel-title a:first").attr("aria-expanded", "true"), $(t).remove(), $(".tab-content2").remove()
18    }
19}
20
21function codeLatLng(t, e) {
22    var i,code,state,lt = t, ln = e;
23    i = new google.maps.Geocoder;
24    var s = new google.maps.LatLng(t, e);
25    i.geocode({
26        latLng: s
27    }, function(t, e) {
28        if (e == google.maps.GeocoderStatus.OK)
29            if (t[1]) {
30                for (var i = 0; i < t[0].address_components.length; i++)
31                    for (var s = 0; s < t[0].address_components[i].types.length; s++) {
32                        if ("locality" == t[0].address_components[i].types[s]) {
33                            locality = t[0].address_components[i];
34                            break
35                        }
36                        if ("country" == t[0].address_components[i].types[s]) {
37                            country = t[0].address_components[i];
38                            break
39                        }
40                        if ("postal_code" == t[0].address_components[i].types[s]) {
41                            code = t[0].address_components[i];
42                            break
43                        }
44                        if ("administrative_area_level_1" == t[0].address_components[i].types[s]) {
45                            state = t[0].address_components[i];
46                            break
47                        }
48
49                    }
50                console.log(code.short_name+ ", " + locality.short_name+", "+state.long_name), jQuery('input[name="geolocation_geocoder_address"]').val(code.short_name+ ", " + locality.short_name+", "+state.short_name);
51                var n = jQuery('input[name="geolocation_geocoder_address"]').val();
52                jQuery('input.geolocation-input-latitude').val(lt);
53                jQuery('input.geolocation-input-longitude').val(ln);
54                "" != n && void 0 != n && jQuery(".views-exposed-form input.form-submit").trigger("click")
55            } else console.log("No results found");
56        else console.log("Geocoder failed due to: " + e)
57    })
58}
59if (function(t) {
60        "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
61    }(function(t) {
62        function e(t) {
63            for (var e = t.css("visibility");
64                "inherit" === e;) t = t.parent(), e = t.css("visibility");
65            return "hidden" !== e
66        }
67
68        function i(t) {
69            for (var e, i; t.length && t[0] !== document;) {
70                if (("absolute" === (e = t.css("position")) || "relative" === e || "fixed" === e) && (i = parseInt(t.css("zIndex"), 10), !isNaN(i) && 0 !== i)) return i;
71                t = t.parent()
72            }
73            return 0
74        }
75
76        function s() {
77            this._curInst = null, this._keyEvent = !1, this._disabledInputs = [], this._datepickerShowing = !1, this._inDialog = !1, this._mainDivId = "ui-datepicker-div", this._inlineClass = "ui-datepicker-inline", this._appendClass = "ui-datepicker-append", this._triggerClass = "ui-datepicker-trigger", this._dialogClass = "ui-datepicker-dialog", this._disableClass = "ui-datepicker-disabled", this._unselectableClass = "ui-datepicker-unselectable", this._currentClass = "ui-datepicker-current-day", this._dayOverClass = "ui-datepicker-days-cell-over", this.regional = [], this.regional[""] = {
78                closeText: "Done",
79                prevText: "Prev",
80                nextText: "Next",
81                currentText: "Today",
82                monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
vendor: 4,483 bytes, lines 82-175
82November", "December"],
83                monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
84                dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
85                dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
86                dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
87                weekHeader: "Wk",
88                dateFormat: "mm/dd/yy",
89                firstDay: 0,
90                isRTL: !1,
91                showMonthAfterYear: !1,
92                yearSuffix: ""
93            }, this._defaults = {
94                showOn: "focus",
95                showAnim: "fadeIn",
96                showOptions: {},
97                defaultDate: null,
98                appendText: "",
99                buttonText: "...",
100                buttonImage: "",
101                buttonImageOnly: !1,
102                hideIfNoPrevNext: !1,
103                navigationAsDateFormat: !1,
104                gotoCurrent: !1,
105                changeMonth: !1,
106                changeYear: !1,
107                yearRange: "c-10:c+10",
108                showOtherMonths: !1,
109                selectOtherMonths: !1,
110                showWeek: !1,
111                calculateWeek: this.iso8601Week,
112                shortYearCutoff: "+10",
113                minDate: null,
114                maxDate: null,
115                duration: "fast",
116                beforeShowDay: null,
117                beforeShow: null,
118                onSelect: null,
119                onChangeMonthYear: null,
120                onClose: null,
121                numberOfMonths: 1,
122                showCurrentAtPos: 0,
123                stepMonths: 1,
124                stepBigMonths: 12,
125                altField: "",
126                altFormat: "",
127                constrainInput: !0,
128                showButtonPanel: !1,
129                autoSize: !1,
130                disabled: !1
131            }, t.extend(this._defaults, this.regional[""]), this.regional.en = t.extend(!0, {}, this.regional[""]), this.regional["en-US"] = t.extend(!0, {}, this.regional.en), this.dpDiv = n(t("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))
132        }
133
134        function n(e) {
135            var i = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
136            return e.on("mouseout", i, function() {
137                t(this).removeClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && t(this).removeClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && t(this).removeClass("ui-datepicker-next-hover")
138            }).on("mouseover", i, o)
139        }
140
141        function o() {
142            t.datepicker._isDisabledDatepicker(g.inline ? g.dpDiv.parent()[0] : g.input[0]) || (t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"), t(this).addClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && t(this).addClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && t(this).addClass("ui-datepicker-next-hover"))
143        }
144
145        function a(e, i) {
146            t.extend(e, i);
147            for (var s in i) null == i[s] && (e[s] = i[s]);
148            return e
149        }
150
151        function r(t) {
152            return function() {
153                var e = this.element.val();
154                t.apply(this, arguments), this._refresh(), e !== this.element.val() && this._trigger("change")
155            }
156        }
157        t.ui = t.ui || {}, t.ui.version = "1.12.1";
158        var l = 0,
159            h = Array.prototype.slice;
160        t.cleanData = function(e) {
161                return function(i) {
162                    var s, n, o;
163                    for (o = 0; null != (n = i[o]); o++) try {
164                        (s = t._data(n, "events")) && s.remove && t(n).triggerHandler("remove")
165                    } catch (t) {}
166                    e(i)
167                }
168            }(t.cleanData), t.widget = function(e, i, s) {
169                var n, o, a, r = {},
170                    l = e.split(".")[0];
171                e = e.split(".")[1];
172                var h = l + "-" + e;
173                return s || (s = i, i = t.Widget), t.isArray(s) && (s = t.extend.apply(null, [{}].concat(s))), t.expr[":"][h.toLowerCase()] = function(e) {
174                    return !!t.data(e, h)
175                }, t[l] = t[l] || {}
vendor: 5,594 bytes, lines 175-261
175, n = t[l][e], o = t[l][e] = function(t, e) {
176                    return this._createWidget ? void(arguments.length && this._createWidget(t, e)) : new o(t, e)
177                }, t.extend(o, n, {
178                    version: s.version,
179                    _proto: t.extend({}, s),
180                    _childConstructors: []
181                }), a = new i, a.options = t.widget.extend({}, a.options), t.each(s, function(e, s) {
182                    return t.isFunction(s) ? void(r[e] = function() {
183                        function t() {
184                            return i.prototype[e].apply(this, arguments)
185                        }
186
187                        function n(t) {
188                            return i.prototype[e].apply(this, t)
189                        }
190                        return function() {
191                            var e, i = this._super,
192                                o = this._superApply;
193                            return this._super = t, this._superApply = n, e = s.apply(this, arguments), this._super = i, this._superApply = o, e
194                        }
195                    }()) : void(r[e] = s)
196                }), o.prototype = t.widget.extend(a, {
197                    widgetEventPrefix: n ? a.widgetEventPrefix || e : e
198                }, r, {
199                    constructor: o,
200                    namespace: l,
201                    widgetName: e,
202                    widgetFullName: h
203                }), n ? (t.each(n._childConstructors, function(e, i) {
204                    var s = i.prototype;
205                    t.widget(s.namespace + "." + s.widgetName, o, i._proto)
206                }), delete n._childConstructors) : i._childConstructors.push(o), t.widget.bridge(e, o), o
207            }, t.widget.extend = function(e) {
208                for (var i, s, n = h.call(arguments, 1), o = 0, a = n.length; a > o; o++)
209                    for (i in n[o]) s = n[o][i], n[o].hasOwnProperty(i) && void 0 !== s && (e[i] = t.isPlainObject(s) ? t.isPlainObject(e[i]) ? t.widget.extend({}, e[i], s) : t.widget.extend({}, s) : s);
210                return e
211            }, t.widget.bridge = function(e, i) {
212                var s = i.prototype.widgetFullName || e;
213                t.fn[e] = function(n) {
214                    var o = "string" == typeof n,
215                        a = h.call(arguments, 1),
216                        r = this;
217                    return o ? this.length || "instance" !== n ? this.each(function() {
218                        var i, o = t.data(this, s);
219                        return "instance" === n ? (r = o, !1) : o ? t.isFunction(o[n]) && "_" !== n.charAt(0) ? (i = o[n].apply(o, a), i !== o && void 0 !== i ? (r = i && i.jquery ? r.pushStack(i.get()) : i, !1) : void 0) : t.error("no such method '" + n + "' for " + e + " widget instance") : t.error("cannot call methods on " + e + " prior to initialization; attempted to call method '" + n + "'")
220                    }) : r = void 0 : (a.length && (n = t.widget.extend.apply(null, [n].concat(a))), this.each(function() {
221                        var e = t.data(this, s);
222                        e ? (e.option(n || {}), e._init && e._init()) : t.data(this, s, new i(n, this))
223                    })), r
224                }
225            }, t.Widget = function() {}, t.Widget._childConstructors = [], t.Widget.prototype = {
226                widgetName: "widget",
227                widgetEventPrefix: "",
228                defaultElement: "<div>",
229                options: {
230                    classes: {},
231                    disabled: !1,
232                    create: null
233                },
234                _createWidget: function(e, i) {
235                    i = t(i || this.defaultElement || this)[0], this.element = t(i), this.uuid = l++, this.eventNamespace = "." + this.widgetName + this.uuid, this.bindings = t(), this.hoverable = t(), this.focusable = t(), this.classesElementLookup = {}, i !== this && (t.data(i, this.widgetFullName, this), this._on(!0, this.element, {
236                        remove: function(t) {
237                            t.target === i && this.destroy()
238                        }
239                    }), this.document = t(i.style ? i.ownerDocument : i.document || i), this.window = t(this.document[0].defaultView || this.document[0].parentWindow)), this.options = t.widget.extend({}, this.options, this._getCreateOptions(), e), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger("create", null, this._getCreateEventData()), this._init()
240                },
241                _getCreateOptions: function() {
242                    return {}
243                },
244                _getCreateEventData: t.noop,
245                _create: t.noop,
246                _init: t.noop,
247                destroy: function() {
248                    var e = this;
249                    this._destroy(), t.each(this.classesElementLookup, function(t, i) {
250                        e._removeClass(i, t)
251                    }), this.element.off(this.eventNamespace).removeData(this.widgetFullName), this.widget().off(this.eventNamespace).removeAttr("aria-disabled"), this.bindings.off(this.eventNamespace)
252                },
253                _destroy: t.noop,
254                widget: function() {
255                    return this.element
256                },
257                option: function(e, i) {
258                    var s, n, o, a = e;
259                    if (0 === arguments.length) return t.widget.extend({}, this.options);
260                    if ("string" == typeof e)
261                        if (a = {}, s = e.split("."), e = s.shift(), s.length) {
vendor: 25,633 bytes, lines 262-733
262                            for (n = a[e] = t.widget.extend({}, this.options[e]), o = 0; s.length - 1 > o; o++) n[s[o]] = n[s[o]] || {}, n = n[s[o]];
263                            if (e = s.pop(), 1 === arguments.length) return void 0 === n[e] ? null : n[e];
264                            n[e] = i
265                        } else {
266                            if (1 === arguments.length) return void 0 === this.options[e] ? null : this.options[e];
267                            a[e] = i
268                        } return this._setOptions(a), this
269                },
270                _setOptions: function(t) {
271                    var e;
272                    for (e in t) this._setOption(e, t[e]);
273                    return this
274                },
275                _setOption: function(t, e) {
276                    return "classes" === t && this._setOptionClasses(e), this.options[t] = e, "disabled" === t && this._setOptionDisabled(e), this
277                },
278                _setOptionClasses: function(e) {
279                    var i, s, n;
280                    for (i in e) n = this.classesElementLookup[i], e[i] !== this.options.classes[i] && n && n.length && (s = t(n.get()), this._removeClass(n, i), s.addClass(this._classes({
281                        element: s,
282                        keys: i,
283                        classes: e,
284                        add: !0
285                    })))
286                },
287                _setOptionDisabled: function(t) {
288                    this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!t), t && (this._removeClass(this.hoverable, null, "ui-state-hover"), this._removeClass(this.focusable, null, "ui-state-focus"))
289                },
290                enable: function() {
291                    return this._setOptions({
292                        disabled: !1
293                    })
294                },
295                disable: function() {
296                    return this._setOptions({
297                        disabled: !0
298                    })
299                },
300                _classes: function(e) {
301                    function i(i, o) {
302                        var a, r;
303                        for (r = 0; i.length > r; r++) a = n.classesElementLookup[i[r]] || t(), a = t(e.add ? t.unique(a.get().concat(e.element.get())) : a.not(e.element).get()), n.classesElementLookup[i[r]] = a, s.push(i[r]), o && e.classes[i[r]] && s.push(e.classes[i[r]])
304                    }
305                    var s = [],
306                        n = this;
307                    return e = t.extend({
308                        element: this.element,
309                        classes: this.options.classes || {}
310                    }, e), this._on(e.element, {
311                        remove: "_untrackClassesElement"
312                    }), e.keys && i(e.keys.match(/\S+/g) || [], !0), e.extra && i(e.extra.match(/\S+/g) || []), s.join(" ")
313                },
314                _untrackClassesElement: function(e) {
315                    var i = this;
316                    t.each(i.classesElementLookup, function(s, n) {
317                        -1 !== t.inArray(e.target, n) && (i.classesElementLookup[s] = t(n.not(e.target).get()))
318                    })
319                },
320                _removeClass: function(t, e, i) {
321                    return this._toggleClass(t, e, i, !1)
322                },
323                _addClass: function(t, e, i) {
324                    return this._toggleClass(t, e, i, !0)
325                },
326                _toggleClass: function(t, e, i, s) {
327                    s = "boolean" == typeof s ? s : i;
328                    var n = "string" == typeof t || null === t,
329                        o = {
330                            extra: n ? e : i,
331                            keys: n ? t : e,
332                            element: n ? this.element : t,
333                            add: s
334                        };
335                    return o.element.toggleClass(this._classes(o), s), this
336                },
337                _on: function(e, i, s) {
338                    var n, o = this;
339                    "boolean" != typeof e && (s = i, i = e, e = !1), s ? (i = n = t(i), this.bindings = this.bindings.add(i)) : (s = i, i = this.element, n = this.widget()), t.each(s, function(s, a) {
340                        function r() {
341                            return e || !0 !== o.options.disabled && !t(this).hasClass("ui-state-disabled") ? ("string" == typeof a ? o[a] : a).apply(o, arguments) : void 0
342                        }
343                        "string" != typeof a && (r.guid = a.guid = a.guid || r.guid || t.guid++);
344                        var l = s.match(/^([\w:-]*)\s*(.*)$/),
345                            h = l[1] + o.eventNamespace,
346                            c = l[2];
347                        c ? n.on(h, c, r) : i.on(h, r)
348                    })
349                },
350                _off: function(e, i) {
351                    i = (i || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, e.off(i).off(i), this.bindings = t(this.bindings.not(e).get()), this.focusable = t(this.focusable.not(e).get()), this.hoverable = t(this.hoverable.not(e).get())
352                },
353                _delay: function(t, e) {
354                    function i() {
355                        return ("string" == typeof t ? s[t] : t).apply(s, arguments)
356                    }
357                    var s = this;
358                    return setTimeout(i, e || 0)
359                },
360                _hoverable: function(e) {
361                    this.hoverable = this.hoverable.add(e), this._on(e, {
362                        mouseenter: function(e) {
363                            this._addClass(t(e.currentTarget), null, "ui-state-hover")
364                        },
365                        mouseleave: function(e) {
366                            this._removeClass(t(e.currentTarget), null, "ui-state-hover")
367                        }
368                    })
369                },
370                _focusable: function(e) {
371                    this.focusable = this.focusable.add(e), this._on(e, {
372                        focusin: function(e) {
373                            this._addClass(t(e.currentTarget), null, "ui-state-focus")
374                        },
375                        focusout: function(e) {
376                            this._removeClass(t(e.currentTarget), null, "ui-state-focus")
377                        }
378                    })
379                },
380                _trigger: function(e, i, s) {
381                    var n, o, a = this.options[e];
382                    if (s = s || {}, i = t.Event(i), i.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(), i.target = this.element[0], o = i.originalEvent)
383                        for (n in o) n in i || (i[n] = o[n]);
384                    return this.element.trigger(i, s), !(t.isFunction(a) && !1 === a.apply(this.element[0], [i].concat(s)) || i.isDefaultPrevented())
385                }
386            }, t.each({
387                show: "fadeIn",
388                hide: "fadeOut"
389            }, function(e, i) {
390                t.Widget.prototype["_" + e] = function(s, n, o) {
391                    "string" == typeof n && (n = {
392                        effect: n
393                    });
394                    var a, r = n ? !0 === n || "number" == typeof n ? i : n.effect || i : e;
395                    n = n || {}, "number" == typeof n && (n = {
396                        duration: n
397                    }), a = !t.isEmptyObject(n), n.complete = o, n.delay && s.delay(n.delay), a && t.effects && t.effects.effect[r] ? s[e](n) : r !== e && s[r] ? s[r](n.duration, n.easing, o) : s.queue(function(i) {
398                        t(this)[e](), o && o.call(s[0]), i()
399                    })
400                }
401            }), t.widget,
402            function() {
403                function e(t, e, i) {
404                    return [parseFloat(t[0]) * (d.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (d.test(t[1]) ? i / 100 : 1)]
405                }
406
407                function i(e, i) {
408                    return parseInt(t.css(e, i), 10) || 0
409                }
410
411                function s(e) {
412                    var i = e[0];
413                    return 9 === i.nodeType ? {
414                        width: e.width(),
415                        height: e.height(),
416                        offset: {
417                            top: 0,
418                            left: 0
419                        }
420                    } : t.isWindow(i) ? {
421                        width: e.width(),
422                        height: e.height(),
423                        offset: {
424                            top: e.scrollTop(),
425                            left: e.scrollLeft()
426                        }
427                    } : i.preventDefault ? {
428                        width: 0,
429                        height: 0,
430                        offset: {
431                            top: i.pageY,
432                            left: i.pageX
433                        }
434                    } : {
435                        width: e.outerWidth(),
436                        height: e.outerHeight(),
437                        offset: e.offset()
438                    }
439                }
440                var n, o = Math.max,
441                    a = Math.abs,
442                    r = /left|center|right/,
443                    l = /top|center|bottom/,
444                    h = /[\+\-]\d+(\.[\d]+)?%?/,
445                    c = /^\w+/,
446                    d = /%$/,
447                    u = t.fn.position;
448                t.position = {
449                    scrollbarWidth: function() {
450                        if (void 0 !== n) return n;
451                        var e, i, s = t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),
452                            o = s.children()[0];
453                        return t("body").append(s), e = o.offsetWidth, s.css("overflow", "scroll"), i = o.offsetWidth, e === i && (i = s[0].clientWidth), s.remove(), n = e - i
454                    },
455                    getScrollInfo: function(e) {
456                        var i = e.isWindow || e.isDocument ? "" : e.element.css("overflow-x"),
457                            s = e.isWindow || e.isDocument ? "" : e.element.css("overflow-y"),
458                            n = "scroll" === i || "auto" === i && e.width < e.element[0].scrollWidth;
459                        return {
460                            width: "scroll" === s || "auto" === s && e.height < e.element[0].scrollHeight ? t.position.scrollbarWidth() : 0,
461                            height: n ? t.position.scrollbarWidth() : 0
462                        }
463                    },
464                    getWithinInfo: function(e) {
465                        var i = t(e || window),
466                            s = t.isWindow(i[0]),
467                            n = !!i[0] && 9 === i[0].nodeType;
468                        return {
469                            element: i,
470                            isWindow: s,
471                            isDocument: n,
472                            offset: s || n ? {
473                                left: 0,
474                                top: 0
475                            } : t(e).offset(),
476                            scrollLeft: i.scrollLeft(),
477                            scrollTop: i.scrollTop(),
478                            width: i.outerWidth(),
479                            height: i.outerHeight()
480                        }
481                    }
482                }, t.fn.position = function(n) {
483                    if (!n || !n.of) return u.apply(this, arguments);
484                    n = t.extend({}, n);
485                    var d, p, f, g, m, v, _ = t(n.of),
486                        b = t.position.getWithinInfo(n.within),
487                        y = t.position.getScrollInfo(b),
488                        w = (n.collision || "flip").split(" "),
489                        k = {};
490                    return v = s(_), _[0].preventDefault && (n.at = "left top"), p = v.width, f = v.height, g = v.offset, m = t.extend({}, g), t.each(["my", "at"], function() {
491                        var t, e, i = (n[this] || "").split(" ");
492                        1 === i.length && (i = r.test(i[0]) ? i.concat(["center"]) : l.test(i[0]) ? ["center"].concat(i) : ["center", "center"]), i[0] = r.test(i[0]) ? i[0] : "center", i[1] = l.test(i[1]) ? i[1] : "center", t = h.exec(i[0]), e = h.exec(i[1]), k[this] = [t ? t[0] : 0, e ? e[0] : 0], n[this] = [c.exec(i[0])[0], c.exec(i[1])[0]]
493                    }), 1 === w.length && (w[1] = w[0]), "right" === n.at[0] ? m.left += p : "center" === n.at[0] && (m.left += p / 2), "bottom" === n.at[1] ? m.top += f : "center" === n.at[1] && (m.top += f / 2), d = e(k.at, p, f), m.left += d[0], m.top += d[1], this.each(function() {
494                        var s, r, l = t(this),
495                            h = l.outerWidth(),
496                            c = l.outerHeight(),
497                            u = i(this, "marginLeft"),
498                            v = i(this, "marginTop"),
499                            x = h + u + i(this, "marginRight") + y.width,
500                            C = c + v + i(this, "marginBottom") + y.height,
501                            D = t.extend({}, m),
502                            T = e(k.my, l.outerWidth(), l.outerHeight());
503                        "right" === n.my[0] ? D.left -= h : "center" === n.my[0] && (D.left -= h / 2), "bottom" === n.my[1] ? D.top -= c : "center" === n.my[1] && (D.top -= c / 2), D.left += T[0], D.top += T[1], s = {
504                            marginLeft: u,
505                            marginTop: v
506                        }, t.each(["left", "top"], function(e, i) {
507                            t.ui.position[w[e]] && t.ui.position[w[e]][i](D, {
508                                targetWidth: p,
509                                targetHeight: f,
510                                elemWidth: h,
511                                elemHeight: c,
512                                collisionPosition: s,
513                                collisionWidth: x,
514                                collisionHeight: C,
515                                offset: [d[0] + T[0], d[1] + T[1]],
516                                my: n.my,
517                                at: n.at,
518                                within: b,
519                                elem: l
520                            })
521                        }), n.using && (r = function(t) {
522                            var e = g.left - D.left,
523                                i = e + p - h,
524                                s = g.top - D.top,
525                                r = s + f - c,
526                                d = {
527                                    target: {
528                                        element: _,
529                                        left: g.left,
530                                        top: g.top,
531                                        width: p,
532                                        height: f
533                                    },
534                                    element: {
535                                        element: l,
536                                        left: D.left,
537                                        top: D.top,
538                                        width: h,
539                                        height: c
540                                    },
541                                    horizontal: 0 > i ? "left" : e > 0 ? "right" : "center",
542                                    vertical: 0 > r ? "top" : s > 0 ? "bottom" : "middle"
543                                };
544                            h > p && p > a(e + i) && (d.horizontal = "center"), c > f && f > a(s + r) && (d.vertical = "middle"), d.important = o(a(e), a(i)) > o(a(s), a(r)) ? "horizontal" : "vertical", n.using.call(this, t, d)
545                        }), l.offset(t.extend(D, {
546                            using: r
547                        }))
548                    })
549                }, t.ui.position = {
550                    fit: {
551                        left: function(t, e) {
552                            var i, s = e.within,
553                                n = s.isWindow ? s.scrollLeft : s.offset.left,
554                                a = s.width,
555                                r = t.left - e.collisionPosition.marginLeft,
556                                l = n - r,
557                                h = r + e.collisionWidth - a - n;
558                            e.collisionWidth > a ? l > 0 && 0 >= h ? (i = t.left + l + e.collisionWidth - a - n, t.left += l - i) : t.left = h > 0 && 0 >= l ? n : l > h ? n + a - e.collisionWidth : n : l > 0 ? t.left += l : h > 0 ? t.left -= h : t.left = o(t.left - r, t.left)
559                        },
560                        top: function(t, e) {
561                            var i, s = e.within,
562                                n = s.isWindow ? s.scrollTop : s.offset.top,
563                                a = e.within.height,
564                                r = t.top - e.collisionPosition.marginTop,
565                                l = n - r,
566                                h = r + e.collisionHeight - a - n;
567                            e.collisionHeight > a ? l > 0 && 0 >= h ? (i = t.top + l + e.collisionHeight - a - n, t.top += l - i) : t.top = h > 0 && 0 >= l ? n : l > h ? n + a - e.collisionHeight : n : l > 0 ? t.top += l : h > 0 ? t.top -= h : t.top = o(t.top - r, t.top)
568                        }
569                    },
570                    flip: {
571                        left: function(t, e) {
572                            var i, s, n = e.within,
573                                o = n.offset.left + n.scrollLeft,
574                                r = n.width,
575                                l = n.isWindow ? n.scrollLeft : n.offset.left,
576                                h = t.left - e.collisionPosition.marginLeft,
577                                c = h - l,
578                                d = h + e.collisionWidth - r - l,
579                                u = "left" === e.my[0] ? -e.elemWidth : "right" === e.my[0] ? e.elemWidth : 0,
580                                p = "left" === e.at[0] ? e.targetWidth : "right" === e.at[0] ? -e.targetWidth : 0,
581                                f = -2 * e.offset[0];
582                            0 > c ? (0 > (i = t.left + u + p + f + e.collisionWidth - r - o) || a(c) > i) && (t.left += u + p + f) : d > 0 && ((s = t.left - e.collisionPosition.marginLeft + u + p + f - l) > 0 || d > a(s)) && (t.left += u + p + f)
583                        },
584                        top: function(t, e) {
585                            var i, s, n = e.within,
586                                o = n.offset.top + n.scrollTop,
587                                r = n.height,
588                                l = n.isWindow ? n.scrollTop : n.offset.top,
589                                h = t.top - e.collisionPosition.marginTop,
590                                c = h - l,
591                                d = h + e.collisionHeight - r - l,
592                                u = "top" === e.my[1],
593                                p = u ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0,
594                                f = "top" === e.at[1] ? e.targetHeight : "bottom" === e.at[1] ? -e.targetHeight : 0,
595                                g = -2 * e.offset[1];
596                            0 > c ? (0 > (s = t.top + p + f + g + e.collisionHeight - r - o) || a(c) > s) && (t.top += p + f + g) : d > 0 && ((i = t.top - e.collisionPosition.marginTop + p + f + g - l) > 0 || d > a(i)) && (t.top += p + f + g)
597                        }
598                    },
599                    flipfit: {
600                        left: function() {
601                            t.ui.position.flip.left.apply(this, arguments), t.ui.position.fit.left.apply(this, arguments)
602                        },
603                        top: function() {
604                            t.ui.position.flip.top.apply(this, arguments), t.ui.position.fit.top.apply(this, arguments)
605                        }
606                    }
607                }
608            }(), t.ui.position, t.extend(t.expr[":"], {
609                data: t.expr.createPseudo ? t.expr.createPseudo(function(e) {
610                    return function(i) {
611                        return !!t.data(i, e)
612                    }
613                }) : function(e, i, s) {
614                    return !!t.data(e, s[3])
615                }
616            }), t.fn.extend({
617                disableSelection: function() {
618                    var t = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown";
619                    return function() {
620                        return this.on(t + ".ui-disableSelection", function(t) {
621                            t.preventDefault()
622                        })
623                    }
624                }(),
625                enableSelection: function() {
626                    return this.off(".ui-disableSelection")
627                }
628            });
629        var c = "ui-effects-",
630            d = "ui-effects-style",
631            u = "ui-effects-animated",
632            p = t;
633        t.effects = {
634                effect: {}
635            },
636            function(t, e) {
637                function i(t, e, i) {
638                    var s = c[e.type] || {};
639                    return null == t ? i || !e.def ? null : e.def : (t = s.floor ? ~~t : parseFloat(t), isNaN(t) ? e.def : s.mod ? (t + s.mod) % s.mod : 0 > t ? 0 : t > s.max ? s.max : t)
640                }
641
642                function s(i) {
643                    var s = l(),
644                        n = s._rgba = [];
645                    return i = i.toLowerCase(), p(r, function(t, o) {
646                        var a, r = o.re.exec(i),
647                            l = r && o.parse(r),
648                            c = o.space || "rgba";
649                        return l ? (a = s[c](l), s[h[c].cache] = a[h[c].cache], n = s._rgba = a._rgba, !1) : e
650                    }), n.length ? ("0,0,0,0" === n.join() && t.extend(n, o.transparent), s) : o[i]
651                }
652
653                function n(t, e, i) {
654                    return i = (i + 1) % 1, 1 > 6 * i ? t + 6 * (e - t) * i : 1 > 2 * i ? e : 2 > 3 * i ? t + 6 * (e - t) * (2 / 3 - i) : t
655                }
656                var o, a = /^([\-+])=\s*(\d+\.?\d*)/,
657                    r = [{
658                        re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
659                        parse: function(t) {
660                            return [t[1], t[2], t[3], t[4]]
661                        }
662                    }, {
663                        re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
664                        parse: function(t) {
665                            return [2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]]
666                        }
667                    }, {
668                        re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
669                        parse: function(t) {
670                            return [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)]
671                        }
672                    }, {
673                        re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
674                        parse: function(t) {
675                            return [parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16)]
676                        }
677                    }, {
678                        re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
679                        space: "hsla",
680                        parse: function(t) {
681                            return [t[1], t[2] / 100, t[3] / 100, t[4]]
682                        }
683                    }],
684                    l = t.Color = function(e, i, s, n) {
685                        return new t.Color.fn.parse(e, i, s, n)
686                    },
687                    h = {
688                        rgba: {
689                            props: {
690                                red: {
691                                    idx: 0,
692                                    type: "byte"
693                                },
694                                green: {
695                                    idx: 1,
696                                    type: "byte"
697                                },
698                                blue: {
699                                    idx: 2,
700                                    type: "byte"
701                                }
702                            }
703                        },
704                        hsla: {
705                            props: {
706                                hue: {
707                                    idx: 0,
708                                    type: "degrees"
709                                },
710                                saturation: {
711                                    idx: 1,
712                                    type: "percent"
713                                },
714                                lightness: {
715                                    idx: 2,
716                                    type: "percent"
717                                }
718                            }
719                        }
720                    },
721                    c = {
722                        byte: {
723                            floor: !0,
724                            max: 255
725                        },
726                        percent: {
727                            max: 1
728                        },
729                        degrees: {
730                            mod: 360,
731                            floor: !0
732                        }
733                    },
vendor: 5,435 bytes, lines 734-832
734                    d = l.support = {},
735                    u = t("<p>")[0],
736                    p = t.each;
737                u.style.cssText = "background-color:rgba(1,1,1,.5)", d.rgba = u.style.backgroundColor.indexOf("rgba") > -1, p(h, function(t, e) {
738                    e.cache = "_" + t, e.props.alpha = {
739                        idx: 3,
740                        type: "percent",
741                        def: 1
742                    }
743                }), l.fn = t.extend(l.prototype, {
744                    parse: function(n, a, r, c) {
745                        if (n === e) return this._rgba = [null, null, null, null], this;
746                        (n.jquery || n.nodeType) && (n = t(n).css(a), a = e);
747                        var d = this,
748                            u = t.type(n),
749                            f = this._rgba = [];
750                        return a !== e && (n = [n, a, r, c], u = "array"), "string" === u ? this.parse(s(n) || o._default) : "array" === u ? (p(h.rgba.props, function(t, e) {
751                            f[e.idx] = i(n[e.idx], e)
752                        }), this) : "object" === u ? (n instanceof l ? p(h, function(t, e) {
753                            n[e.cache] && (d[e.cache] = n[e.cache].slice())
754                        }) : p(h, function(e, s) {
755                            var o = s.cache;
756                            p(s.props, function(t, e) {
757                                if (!d[o] && s.to) {
758                                    if ("alpha" === t || null == n[t]) return;
759                                    d[o] = s.to(d._rgba)
760                                }
761                                d[o][e.idx] = i(n[t], e, !0)
762                            }), d[o] && 0 > t.inArray(null, d[o].slice(0, 3)) && (d[o][3] = 1, s.from && (d._rgba = s.from(d[o])))
763                        }), this) : e
764                    },
765                    is: function(t) {
766                        var i = l(t),
767                            s = !0,
768                            n = this;
769                        return p(h, function(t, o) {
770                            var a, r = i[o.cache];
771                            return r && (a = n[o.cache] || o.to && o.to(n._rgba) || [], p(o.props, function(t, i) {
772                                return null != r[i.idx] ? s = r[i.idx] === a[i.idx] : e
773                            })), s
774                        }), s
775                    },
776                    _space: function() {
777                        var t = [],
778                            e = this;
779                        return p(h, function(i, s) {
780                            e[s.cache] && t.push(i)
781                        }), t.pop()
782                    },
783                    transition: function(t, e) {
784                        var s = l(t),
785                            n = s._space(),
786                            o = h[n],
787                            a = 0 === this.alpha() ? l("transparent") : this,
788                            r = a[o.cache] || o.to(a._rgba),
789                            d = r.slice();
790                        return s = s[o.cache], p(o.props, function(t, n) {
791                            var o = n.idx,
792                                a = r[o],
793                                l = s[o],
794                                h = c[n.type] || {};
795                            null !== l && (null === a ? d[o] = l : (h.mod && (l - a > h.mod / 2 ? a += h.mod : a - l > h.mod / 2 && (a -= h.mod)), d[o] = i((l - a) * e + a, n)))
796                        }), this[n](d)
797                    },
798                    blend: function(e) {
799                        if (1 === this._rgba[3]) return this;
800                        var i = this._rgba.slice(),
801                            s = i.pop(),
802                            n = l(e)._rgba;
803                        return l(t.map(i, function(t, e) {
804                            return (1 - s) * n[e] + s * t
805                        }))
806                    },
807                    toRgbaString: function() {
808                        var e = "rgba(",
809                            i = t.map(this._rgba, function(t, e) {
810                                return null == t ? e > 2 ? 1 : 0 : t
811                            });
812                        return 1 === i[3] && (i.pop(), e = "rgb("), e + i.join() + ")"
813                    },
814                    toHslaString: function() {
815                        var e = "hsla(",
816                            i = t.map(this.hsla(), function(t, e) {
817                                return null == t && (t = e > 2 ? 1 : 0), e && 3 > e && (t = Math.round(100 * t) + "%"), t
818                            });
819                        return 1 === i[3] && (i.pop(), e = "hsl("), e + i.join() + ")"
820                    },
821                    toHexString: function(e) {
822                        var i = this._rgba.slice(),
823                            s = i.pop();
824                        return e && i.push(~~(255 * s)), "#" + t.map(i, function(t) {
825                            return t = (t || 0).toString(16), 1 === t.length ? "0" + t : t
826                        }).join("")
827                    },
828                    toString: function() {
829                        return 0 === this._rgba[3] ? "transparent" : this.toRgbaString()
830                    }
831                }), l.fn.parse.prototype = l.fn, h.hsla.to = function(t) {
832                    if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]];
vendor: 46,602 bytes, lines 833-1728
833                    var e, i, s = t[0] / 255,
834                        n = t[1] / 255,
835                        o = t[2] / 255,
836                        a = t[3],
837                        r = Math.max(s, n, o),
838                        l = Math.min(s, n, o),
839                        h = r - l,
840                        c = r + l,
841                        d = .5 * c;
842                    return e = l === r ? 0 : s === r ? 60 * (n - o) / h + 360 : n === r ? 60 * (o - s) / h + 120 : 60 * (s - n) / h + 240, i = 0 === h ? 0 : .5 >= d ? h / c : h / (2 - c), [Math.round(e) % 360, i, d, null == a ? 1 : a]
843                }, h.hsla.from = function(t) {
844                    if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]];
845                    var e = t[0] / 360,
846                        i = t[1],
847                        s = t[2],
848                        o = t[3],
849                        a = .5 >= s ? s * (1 + i) : s + i - s * i,
850                        r = 2 * s - a;
851                    return [Math.round(255 * n(r, a, e + 1 / 3)), Math.round(255 * n(r, a, e)), Math.round(255 * n(r, a, e - 1 / 3)), o]
852                }, p(h, function(s, n) {
853                    var o = n.props,
854                        r = n.cache,
855                        h = n.to,
856                        c = n.from;
857                    l.fn[s] = function(s) {
858                        if (h && !this[r] && (this[r] = h(this._rgba)), s === e) return this[r].slice();
859                        var n, a = t.type(s),
860                            d = "array" === a || "object" === a ? s : arguments,
861                            u = this[r].slice();
862                        return p(o, function(t, e) {
863                            var s = d["object" === a ? t : e.idx];
864                            null == s && (s = u[e.idx]), u[e.idx] = i(s, e)
865                        }), c ? (n = l(c(u)), n[r] = u, n) : l(u)
866                    }, p(o, function(e, i) {
867                        l.fn[e] || (l.fn[e] = function(n) {
868                            var o, r = t.type(n),
869                                l = "alpha" === e ? this._hsla ? "hsla" : "rgba" : s,
870                                h = this[l](),
871                                c = h[i.idx];
872                            return "undefined" === r ? c : ("function" === r && (n = n.call(this, c), r = t.type(n)), null == n && i.empty ? this : ("string" === r && (o = a.exec(n)) && (n = c + parseFloat(o[2]) * ("+" === o[1] ? 1 : -1)), h[i.idx] = n, this[l](h)))
873                        })
874                    })
875                }), l.hook = function(e) {
876                    var i = e.split(" ");
877                    p(i, function(e, i) {
878                        t.cssHooks[i] = {
879                            set: function(e, n) {
880                                var o, a, r = "";
881                                if ("transparent" !== n && ("string" !== t.type(n) || (o = s(n)))) {
882                                    if (n = l(o || n), !d.rgba && 1 !== n._rgba[3]) {
883                                        for (a = "backgroundColor" === i ? e.parentNode : e;
884                                            ("" === r || "transparent" === r) && a && a.style;) try {
885                                            r = t.css(a, "backgroundColor"), a = a.parentNode
886                                        } catch (t) {}
887                                        n = n.blend(r && "transparent" !== r ? r : "_default")
888                                    }
889                                    n = n.toRgbaString()
890                                }
891                                try {
892                                    e.style[i] = n
893                                } catch (t) {}
894                            }
895                        }, t.fx.step[i] = function(e) {
896                            e.colorInit || (e.start = l(e.elem, i), e.end = l(e.end), e.colorInit = !0), t.cssHooks[i].set(e.elem, e.start.transition(e.end, e.pos))
897                        }
898                    })
899                }, l.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"), t.cssHooks.borderColor = {
900                    expand: function(t) {
901                        var e = {};
902                        return p(["Top", "Right", "Bottom", "Left"], function(i, s) {
903                            e["border" + s + "Color"] = t
904                        }), e
905                    }
906                }, o = t.Color.names = {
907                    aqua: "#00ffff",
908                    black: "#000000",
909                    blue: "#0000ff",
910                    fuchsia: "#ff00ff",
911                    gray: "#808080",
912                    green: "#008000",
913                    lime: "#00ff00",
914                    maroon: "#800000",
915                    navy: "#000080",
916                    olive: "#808000",
917                    purple: "#800080",
918                    red: "#ff0000",
919                    silver: "#c0c0c0",
920                    teal: "#008080",
921                    white: "#ffffff",
922                    yellow: "#ffff00",
923                    transparent: [null, null, null, 0],
924                    _default: "#ffffff"
925                }
926            }(p),
927            function() {
928                function e(e) {
929                    var i, s, n = e.ownerDocument.defaultView ? e.ownerDocument.defaultView.getComputedStyle(e, null) : e.currentStyle,
930                        o = {};
931                    if (n && n.length && n[0] && n[n[0]])
932                        for (s = n.length; s--;) i = n[s], "string" == typeof n[i] && (o[t.camelCase(i)] = n[i]);
933                    else
934                        for (i in n) "string" == typeof n[i] && (o[i] = n[i]);
935                    return o
936                }
937
938                function i(e, i) {
939                    var s, o, a = {};
940                    for (s in i) o = i[s], e[s] !== o && (n[s] || (t.fx.step[s] || !isNaN(parseFloat(o))) && (a[s] = o));
941                    return a
942                }
943                var s = ["add", "remove", "toggle"],
944                    n = {
945                        border: 1,
946                        borderBottom: 1,
947                        borderColor: 1,
948                        borderLeft: 1,
949                        borderRight: 1,
950                        borderTop: 1,
951                        borderWidth: 1,
952                        margin: 1,
953                        padding: 1
954                    };
955                t.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(e, i) {
956                    t.fx.step[i] = function(t) {
957                        ("none" !== t.end && !t.setAttr || 1 === t.pos && !t.setAttr) && (p.style(t.elem, i, t.end), t.setAttr = !0)
958                    }
959                }), t.fn.addBack || (t.fn.addBack = function(t) {
960                    return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
961                }), t.effects.animateClass = function(n, o, a, r) {
962                    var l = t.speed(o, a, r);
963                    return this.queue(function() {
964                        var o, a = t(this),
965                            r = a.attr("class") || "",
966                            h = l.children ? a.find("*").addBack() : a;
967                        h = h.map(function() {
968                            return {
969                                el: t(this),
970                                start: e(this)
971                            }
972                        }), o = function() {
973                            t.each(s, function(t, e) {
974                                n[e] && a[e + "Class"](n[e])
975                            })
976                        }, o(), h = h.map(function() {
977                            return this.end = e(this.el[0]), this.diff = i(this.start, this.end), this
978                        }), a.attr("class", r), h = h.map(function() {
979                            var e = this,
980                                i = t.Deferred(),
981                                s = t.extend({}, l, {
982                                    queue: !1,
983                                    complete: function() {
984                                        i.resolve(e)
985                                    }
986                                });
987                            return this.el.animate(this.diff, s), i.promise()
988                        }), t.when.apply(t, h.get()).done(function() {
989                            o(), t.each(arguments, function() {
990                                var e = this.el;
991                                t.each(this.diff, function(t) {
992                                    e.css(t, "")
993                                })
994                            }), l.complete.call(a[0])
995                        })
996                    })
997                }, t.fn.extend({
998                    addClass: function(e) {
999                        return function(i, s, n, o) {
1000                            return s ? t.effects.animateClass.call(this, {
1001                                add: i
1002                            }, s, n, o) : e.apply(this, arguments)
1003                        }
1004                    }(t.fn.addClass),
1005                    removeClass: function(e) {
1006                        return function(i, s, n, o) {
1007                            return arguments.length > 1 ? t.effects.animateClass.call(this, {
1008                                remove: i
1009                            }, s, n, o) : e.apply(this, arguments)
1010                        }
1011                    }(t.fn.removeClass),
1012                    toggleClass: function(e) {
1013                        return function(i, s, n, o, a) {
1014                            return "boolean" == typeof s || void 0 === s ? n ? t.effects.animateClass.call(this, s ? {
1015                                add: i
1016                            } : {
1017                                remove: i
1018                            }, n, o, a) : e.apply(this, arguments) : t.effects.animateClass.call(this, {
1019                                toggle: i
1020                            }, s, n, o)
1021                        }
1022                    }(t.fn.toggleClass),
1023                    switchClass: function(e, i, s, n, o) {
1024                        return t.effects.animateClass.call(this, {
1025                            add: i,
1026                            remove: e
1027                        }, s, n, o)
1028                    }
1029                })
1030            }(),
1031            function() {
1032                function e(e, i, s, n) {
1033                    return t.isPlainObject(e) && (i = e, e = e.effect), e = {
1034                        effect: e
1035                    }, null == i && (i = {}), t.isFunction(i) && (n = i, s = null, i = {}), ("number" == typeof i || t.fx.speeds[i]) && (n = s, s = i, i = {}), t.isFunction(s) && (n = s, s = null), i && t.extend(e, i), s = s || i.duration, e.duration = t.fx.off ? 0 : "number" == typeof s ? s : s in t.fx.speeds ? t.fx.speeds[s] : t.fx.speeds._default, e.complete = n || i.complete, e
1036                }
1037
1038                function i(e) {
1039                    return !(e && "number" != typeof e && !t.fx.speeds[e]) || ("string" == typeof e && !t.effects.effect[e] || (!!t.isFunction(e) || "object" == typeof e && !e.effect))
1040                }
1041
1042                function s(t, e) {
1043                    var i = e.outerWidth(),
1044                        s = e.outerHeight(),
1045                        n = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,
1046                        o = n.exec(t) || ["", 0, i, s, 0];
1047                    return {
1048                        top: parseFloat(o[1]) || 0,
1049                        right: "auto" === o[2] ? i : parseFloat(o[2]),
1050                        bottom: "auto" === o[3] ? s : parseFloat(o[3]),
1051                        left: parseFloat(o[4]) || 0
1052                    }
1053                }
1054                t.expr && t.expr.filters && t.expr.filters.animated && (t.expr.filters.animated = function(e) {
1055                    return function(i) {
1056                        return !!t(i).data(u) || e(i)
1057                    }
1058                }(t.expr.filters.animated)), !1 !== t.uiBackCompat && t.extend(t.effects, {
1059                    save: function(t, e) {
1060                        for (var i = 0, s = e.length; s > i; i++) null !== e[i] && t.data(c + e[i], t[0].style[e[i]])
1061                    },
1062                    restore: function(t, e) {
1063                        for (var i, s = 0, n = e.length; n > s; s++) null !== e[s] && (i = t.data(c + e[s]), t.css(e[s], i))
1064                    },
1065                    setMode: function(t, e) {
1066                        return "toggle" === e && (e = t.is(":hidden") ? "show" : "hide"), e
1067                    },
1068                    createWrapper: function(e) {
1069                        if (e.parent().is(".ui-effects-wrapper")) return e.parent();
1070                        var i = {
1071                                width: e.outerWidth(!0),
1072                                height: e.outerHeight(!0),
1073                                float: e.css("float")
1074                            },
1075                            s = t("<div></div>").addClass("ui-effects-wrapper").css({
1076                                fontSize: "100%",
1077                                background: "transparent",
1078                                border: "none",
1079                                margin: 0,
1080                                padding: 0
1081                            }),
1082                            n = {
1083                                width: e.width(),
1084                                height: e.height()
1085                            },
1086                            o = document.activeElement;
1087                        try {
1088                            o.id
1089                        } catch (t) {
1090                            o = document.body
1091                        }
1092                        return e.wrap(s), (e[0] === o || t.contains(e[0], o)) && t(o).trigger("focus"), s = e.parent(), "static" === e.css("position") ? (s.css({
1093                            position: "relative"
1094                        }), e.css({
1095                            position: "relative"
1096                        })) : (t.extend(i, {
1097                            position: e.css("position"),
1098                            zIndex: e.css("z-index")
1099                        }), t.each(["top", "left", "bottom", "right"], function(t, s) {
1100                            i[s] = e.css(s), isNaN(parseInt(i[s], 10)) && (i[s] = "auto")
1101                        }), e.css({
1102                            position: "relative",
1103                            top: 0,
1104                            left: 0,
1105                            right: "auto",
1106                            bottom: "auto"
1107                        })), e.css(n), s.css(i).show()
1108                    },
1109                    removeWrapper: function(e) {
1110                        var i = document.activeElement;
1111                        return e.parent().is(".ui-effects-wrapper") && (e.parent().replaceWith(e), (e[0] === i || t.contains(e[0], i)) && t(i).trigger("focus")), e
1112                    }
1113                }), t.extend(t.effects, {
1114                    version: "1.12.1",
1115                    define: function(e, i, s) {
1116                        return s || (s = i, i = "effect"), t.effects.effect[e] = s, t.effects.effect[e].mode = i, s
1117                    },
1118                    scaledDimensions: function(t, e, i) {
1119                        if (0 === e) return {
1120                            height: 0,
1121                            width: 0,
1122                            outerHeight: 0,
1123                            outerWidth: 0
1124                        };
1125                        var s = "horizontal" !== i ? (e || 100) / 100 : 1,
1126                            n = "vertical" !== i ? (e || 100) / 100 : 1;
1127                        return {
1128                            height: t.height() * n,
1129                            width: t.width() * s,
1130                            outerHeight: t.outerHeight() * n,
1131                            outerWidth: t.outerWidth() * s
1132                        }
1133                    },
1134                    clipToBox: function(t) {
1135                        return {
1136                            width: t.clip.right - t.clip.left,
1137                            height: t.clip.bottom - t.clip.top,
1138                            left: t.clip.left,
1139                            top: t.clip.top
1140                        }
1141                    },
1142                    unshift: function(t, e, i) {
1143                        var s = t.queue();
1144                        e > 1 && s.splice.apply(s, [1, 0].concat(s.splice(e, i))), t.dequeue()
1145                    },
1146                    saveStyle: function(t) {
1147                        t.data(d, t[0].style.cssText)
1148                    },
1149                    restoreStyle: function(t) {
1150                        t[0].style.cssText = t.data(d) || "", t.removeData(d)
1151                    },
1152                    mode: function(t, e) {
1153                        var i = t.is(":hidden");
1154                        return "toggle" === e && (e = i ? "show" : "hide"), (i ? "hide" === e : "show" === e) && (e = "none"), e
1155                    },
1156                    getBaseline: function(t, e) {
1157                        var i, s;
1158                        switch (t[0]) {
1159                            case "top":
1160                                i = 0;
1161                                break;
1162                            case "middle":
1163                                i = .5;
1164                                break;
1165                            case "bottom":
1166                                i = 1;
1167                                break;
1168                            default:
1169                                i = t[0] / e.height
1170                        }
1171                        switch (t[1]) {
1172                            case "left":
1173                                s = 0;
1174                                break;
1175                            case "center":
1176                                s = .5;
1177                                break;
1178                            case "right":
1179                                s = 1;
1180                                break;
1181                            default:
1182                                s = t[1] / e.width
1183                        }
1184                        return {
1185                            x: s,
1186                            y: i
1187                        }
1188                    },
1189                    createPlaceholder: function(e) {
1190                        var i, s = e.css("position"),
1191                            n = e.position();
1192                        return e.css({
1193                            marginTop: e.css("marginTop"),
1194                            marginBottom: e.css("marginBottom"),
1195                            marginLeft: e.css("marginLeft"),
1196                            marginRight: e.css("marginRight")
1197                        }).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()), /^(static|relative)/.test(s) && (s = "absolute", i = t("<" + e[0].nodeName + ">").insertAfter(e).css({
1198                            display: /^(inline|ruby)/.test(e.css("display")) ? "inline-block" : "block",
1199                            visibility: "hidden",
1200                            marginTop: e.css("marginTop"),
1201                            marginBottom: e.css("marginBottom"),
1202                            marginLeft: e.css("marginLeft"),
1203                            marginRight: e.css("marginRight"),
1204                            float: e.css("float")
1205                        }).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"), e.data(c + "placeholder", i)), e.css({
1206                            position: s,
1207                            left: n.left,
1208                            top: n.top
1209                        }), i
1210                    },
1211                    removePlaceholder: function(t) {
1212                        var e = c + "placeholder",
1213                            i = t.data(e);
1214                        i && (i.remove(), t.removeData(e))
1215                    },
1216                    cleanUp: function(e) {
1217                        t.effects.restoreStyle(e), t.effects.removePlaceholder(e)
1218                    },
1219                    setTransition: function(e, i, s, n) {
1220                        return n = n || {}, t.each(i, function(t, i) {
1221                            var o = e.cssUnit(i);
1222                            o[0] > 0 && (n[i] = o[0] * s + o[1])
1223                        }), n
1224                    }
1225                }), t.fn.extend({
1226                    effect: function() {
1227                        function i(e) {
1228                            function i() {
1229                                r.removeData(u), t.effects.cleanUp(r), "hide" === s.mode && r.hide(), a()
1230                            }
1231
1232                            function a() {
1233                                t.isFunction(l) && l.call(r[0]), t.isFunction(e) && e()
1234                            }
1235                            var r = t(this);
1236                            s.mode = c.shift(), !1 === t.uiBackCompat || o ? "none" === s.mode ? (r[h](), a()) : n.call(r[0], s, i) : (r.is(":hidden") ? "hide" === h : "show" === h) ? (r[h](), a()) : n.call(r[0], s, a)
1237                        }
1238                        var s = e.apply(this, arguments),
1239                            n = t.effects.effect[s.effect],
1240                            o = n.mode,
1241                            a = s.queue,
1242                            r = a || "fx",
1243                            l = s.complete,
1244                            h = s.mode,
1245                            c = [],
1246                            d = function(e) {
1247                                var i = t(this),
1248                                    s = t.effects.mode(i, h) || o;
1249                                i.data(u, !0), c.push(s), o && ("show" === s || s === o && "hide" === s) && i.show(), o && "none" === s || t.effects.saveStyle(i), t.isFunction(e) && e()
1250                            };
1251                        return t.fx.off || !n ? h ? this[h](s.duration, l) : this.each(function() {
1252                            l && l.call(this)
1253                        }) : !1 === a ? this.each(d).each(i) : this.queue(r, d).queue(r, i)
1254                    },
1255                    show: function(t) {
1256                        return function(s) {
1257                            if (i(s)) return t.apply(this, arguments);
1258                            var n = e.apply(this, arguments);
1259                            return n.mode = "show", this.effect.call(this, n)
1260                        }
1261                    }(t.fn.show),
1262                    hide: function(t) {
1263                        return function(s) {
1264                            if (i(s)) return t.apply(this, arguments);
1265                            var n = e.apply(this, arguments);
1266                            return n.mode = "hide", this.effect.call(this, n)
1267                        }
1268                    }(t.fn.hide),
1269                    toggle: function(t) {
1270                        return function(s) {
1271                            if (i(s) || "boolean" == typeof s) return t.apply(this, arguments);
1272                            var n = e.apply(this, arguments);
1273                            return n.mode = "toggle", this.effect.call(this, n)
1274                        }
1275                    }(t.fn.toggle),
1276                    cssUnit: function(e) {
1277                        var i = this.css(e),
1278                            s = [];
1279                        return t.each(["em", "px", "%", "pt"], function(t, e) {
1280                            i.indexOf(e) > 0 && (s = [parseFloat(i), e])
1281                        }), s
1282                    },
1283                    cssClip: function(t) {
1284                        return t ? this.css("clip", "rect(" + t.top + "px " + t.right + "px " + t.bottom + "px " + t.left + "px)") : s(this.css("clip"), this)
1285                    },
1286                    transfer: function(e, i) {
1287                        var s = t(this),
1288                            n = t(e.to),
1289                            o = "fixed" === n.css("position"),
1290                            a = t("body"),
1291                            r = o ? a.scrollTop() : 0,
1292                            l = o ? a.scrollLeft() : 0,
1293                            h = n.offset(),
1294                            c = {
1295                                top: h.top - r,
1296                                left: h.left - l,
1297                                height: n.innerHeight(),
1298                                width: n.innerWidth()
1299                            },
1300                            d = s.offset(),
1301                            u = t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({
1302                                top: d.top - r,
1303                                left: d.left - l,
1304                                height: s.innerHeight(),
1305                                width: s.innerWidth(),
1306                                position: o ? "fixed" : "absolute"
1307                            }).animate(c, e.duration, e.easing, function() {
1308                                u.remove(), t.isFunction(i) && i()
1309                            })
1310                    }
1311                }), t.fx.step.clip = function(e) {
1312                    e.clipInit || (e.start = t(e.elem).cssClip(), "string" == typeof e.end && (e.end = s(e.end, e.elem)), e.clipInit = !0), t(e.elem).cssClip({
1313                        top: e.pos * (e.end.top - e.start.top) + e.start.top,
1314                        right: e.pos * (e.end.right - e.start.right) + e.start.right,
1315                        bottom: e.pos * (e.end.bottom - e.start.bottom) + e.start.bottom,
1316                        left: e.pos * (e.end.left - e.start.left) + e.start.left
1317                    })
1318                }
1319            }(),
1320            function() {
1321                var e = {};
1322                t.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(t, i) {
1323                    e[i] = function(e) {
1324                        return Math.pow(e, t + 2)
1325                    }
1326                }), t.extend(e, {
1327                    Sine: function(t) {
1328                        return 1 - Math.cos(t * Math.PI / 2)
1329                    },
1330                    Circ: function(t) {
1331                        return 1 - Math.sqrt(1 - t * t)
1332                    },
1333                    Elastic: function(t) {
1334                        return 0 === t || 1 === t ? t : -Math.pow(2, 8 * (t - 1)) * Math.sin((80 * (t - 1) - 7.5) * Math.PI / 15)
1335                    },
1336                    Back: function(t) {
1337                        return t * t * (3 * t - 2)
1338                    },
1339                    Bounce: function(t) {
1340                        for (var e, i = 4;
1341                            ((e = Math.pow(2, --i)) - 1) / 11 > t;);
1342                        return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2)
1343                    }
1344                }), t.each(e, function(e, i) {
1345                    t.easing["easeIn" + e] = i, t.easing["easeOut" + e] = function(t) {
1346                        return 1 - i(1 - t)
1347                    }, t.easing["easeInOut" + e] = function(t) {
1348                        return .5 > t ? i(2 * t) / 2 : 1 - i(-2 * t + 2) / 2
1349                    }
1350                })
1351            }();
1352        t.effects;
1353        t.effects.define("blind", "hide", function(e, i) {
1354            var s = {
1355                    up: ["bottom", "top"],
1356                    vertical: ["bottom", "top"],
1357                    down: ["top", "bottom"],
1358                    left: ["right", "left"],
1359                    horizontal: ["right", "left"],
1360                    right: ["left", "right"]
1361                },
1362                n = t(this),
1363                o = e.direction || "up",
1364                a = n.cssClip(),
1365                r = {
1366                    clip: t.extend({}, a)
1367                },
1368                l = t.effects.createPlaceholder(n);
1369            r.clip[s[o][0]] = r.clip[s[o][1]], "show" === e.mode && (n.cssClip(r.clip), l && l.css(t.effects.clipToBox(r)), r.clip = a), l && l.animate(t.effects.clipToBox(r), e.duration, e.easing), n.animate(r, {
1370                queue: !1,
1371                duration: e.duration,
1372                easing: e.easing,
1373                complete: i
1374            })
1375        }), t.effects.define("bounce", function(e, i) {
1376            var s, n, o, a = t(this),
1377                r = e.mode,
1378                l = "hide" === r,
1379                h = "show" === r,
1380                c = e.direction || "up",
1381                d = e.distance,
1382                u = e.times || 5,
1383                p = 2 * u + (h || l ? 1 : 0),
1384                f = e.duration / p,
1385                g = e.easing,
1386                m = "up" === c || "down" === c ? "top" : "left",
1387                v = "up" === c || "left" === c,
1388                _ = 0,
1389                b = a.queue().length;
1390            for (t.effects.createPlaceholder(a), o = a.css(m), d || (d = a["top" === m ? "outerHeight" : "outerWidth"]() / 3), h && (n = {
1391                    opacity: 1
1392                }, n[m] = o, a.css("opacity", 0).css(m, v ? 2 * -d : 2 * d).animate(n, f, g)), l && (d /= Math.pow(2, u - 1)), n = {}, n[m] = o; u > _; _++) s = {}, s[m] = (v ? "-=" : "+=") + d, a.animate(s, f, g).animate(n, f, g), d = l ? 2 * d : d / 2;
1393            l && (s = {
1394                opacity: 0
1395            }, s[m] = (v ? "-=" : "+=") + d, a.animate(s, f, g)), a.queue(i), t.effects.unshift(a, b, p + 1)
1396        }), t.effects.define("clip", "hide", function(e, i) {
1397            var s, n = {},
1398                o = t(this),
1399                a = e.direction || "vertical",
1400                r = "both" === a,
1401                l = r || "horizontal" === a,
1402                h = r || "vertical" === a;
1403            s = o.cssClip(), n.clip = {
1404                top: h ? (s.bottom - s.top) / 2 : s.top,
1405                right: l ? (s.right - s.left) / 2 : s.right,
1406                bottom: h ? (s.bottom - s.top) / 2 : s.bottom,
1407                left: l ? (s.right - s.left) / 2 : s.left
1408            }, t.effects.createPlaceholder(o), "show" === e.mode && (o.cssClip(n.clip), n.clip = s), o.animate(n, {
1409                queue: !1,
1410                duration: e.duration,
1411                easing: e.easing,
1412                complete: i
1413            })
1414        }), t.effects.define("drop", "hide", function(e, i) {
1415            var s, n = t(this),
1416                o = e.mode,
1417                a = "show" === o,
1418                r = e.direction || "left",
1419                l = "up" === r || "down" === r ? "top" : "left",
1420                h = "up" === r || "left" === r ? "-=" : "+=",
1421                c = "+=" === h ? "-=" : "+=",
1422                d = {
1423                    opacity: 0
1424                };
1425            t.effects.createPlaceholder(n), s = e.distance || n["top" === l ? "outerHeight" : "outerWidth"](!0) / 2, d[l] = h + s, a && (n.css(d), d[l] = c + s, d.opacity = 1), n.animate(d, {
1426                queue: !1,
1427                duration: e.duration,
1428                easing: e.easing,
1429                complete: i
1430            })
1431        }), t.effects.define("explode", "hide", function(e, i) {
1432            function s() {
1433                b.push(this), b.length === d * u && n()
1434            }
1435
1436            function n() {
1437                p.css({
1438                    visibility: "visible"
1439                }), t(b).remove(), i()
1440            }
1441            var o, a, r, l, h, c, d = e.pieces ? Math.round(Math.sqrt(e.pieces)) : 3,
1442                u = d,
1443                p = t(this),
1444                f = e.mode,
1445                g = "show" === f,
1446                m = p.show().css("visibility", "hidden").offset(),
1447                v = Math.ceil(p.outerWidth() / u),
1448                _ = Math.ceil(p.outerHeight() / d),
1449                b = [];
1450            for (o = 0; d > o; o++)
1451                for (l = m.top + o * _, c = o - (d - 1) / 2, a = 0; u > a; a++) r = m.left + a * v, h = a - (u - 1) / 2, p.clone().appendTo("body").wrap("<div></div>").css({
1452                    position: "absolute",
1453                    visibility: "visible",
1454                    left: -a * v,
1455                    top: -o * _
1456                }).parent().addClass("ui-effects-explode").css({
1457                    position: "absolute",
1458                    overflow: "hidden",
1459                    width: v,
1460                    height: _,
1461                    left: r + (g ? h * v : 0),
1462                    top: l + (g ? c * _ : 0),
1463                    opacity: g ? 0 : 1
1464                }).animate({
1465                    left: r + (g ? 0 : h * v),
1466                    top: l + (g ? 0 : c * _),
1467                    opacity: g ? 1 : 0
1468                }, e.duration || 500, e.easing, s)
1469        }), t.effects.define("fade", "toggle", function(e, i) {
1470            var s = "show" === e.mode;
1471            t(this).css("opacity", s ? 0 : 1).animate({
1472                opacity: s ? 1 : 0
1473            }, {
1474                queue: !1,
1475                duration: e.duration,
1476                easing: e.easing,
1477                complete: i
1478            })
1479        }), t.effects.define("fold", "hide", function(e, i) {
1480            var s = t(this),
1481                n = e.mode,
1482                o = "show" === n,
1483                a = "hide" === n,
1484                r = e.size || 15,
1485                l = /([0-9]+)%/.exec(r),
1486                h = !!e.horizFirst,
1487                c = h ? ["right", "bottom"] : ["bottom", "right"],
1488                d = e.duration / 2,
1489                u = t.effects.createPlaceholder(s),
1490                p = s.cssClip(),
1491                f = {
1492                    clip: t.extend({}, p)
1493                },
1494                g = {
1495                    clip: t.extend({}, p)
1496                },
1497                m = [p[c[0]], p[c[1]]],
1498                v = s.queue().length;
1499            l && (r = parseInt(l[1], 10) / 100 * m[a ? 0 : 1]), f.clip[c[0]] = r, g.clip[c[0]] = r, g.clip[c[1]] = 0, o && (s.cssClip(g.clip), u && u.css(t.effects.clipToBox(g)), g.clip = p), s.queue(function(i) {
1500                u && u.animate(t.effects.clipToBox(f), d, e.easing).animate(t.effects.clipToBox(g), d, e.easing), i()
1501            }).animate(f, d, e.easing).animate(g, d, e.easing).queue(i), t.effects.unshift(s, v, 4)
1502        }), t.effects.define("highlight", "show", function(e, i) {
1503            var s = t(this),
1504                n = {
1505                    backgroundColor: s.css("backgroundColor")
1506                };
1507            "hide" === e.mode && (n.opacity = 0), t.effects.saveStyle(s), s.css({
1508                backgroundImage: "none",
1509                backgroundColor: e.color || "#ffff99"
1510            }).animate(n, {
1511                queue: !1,
1512                duration: e.duration,
1513                easing: e.easing,
1514                complete: i
1515            })
1516        }), t.effects.define("size", function(e, i) {
1517            var s, n, o, a = t(this),
1518                r = ["fontSize"],
1519                l = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"],
1520                h = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"],
1521                c = e.mode,
1522                d = "effect" !== c,
1523                u = e.scale || "both",
1524                p = e.origin || ["middle", "center"],
1525                f = a.css("position"),
1526                g = a.position(),
1527                m = t.effects.scaledDimensions(a),
1528                v = e.from || m,
1529                _ = e.to || t.effects.scaledDimensions(a, 0);
1530            t.effects.createPlaceholder(a), "show" === c && (o = v, v = _, _ = o), n = {
1531                from: {
1532                    y: v.height / m.height,
1533                    x: v.width / m.width
1534                },
1535                to: {
1536                    y: _.height / m.height,
1537                    x: _.width / m.width
1538                }
1539            }, ("box" === u || "both" === u) && (n.from.y !== n.to.y && (v = t.effects.setTransition(a, l, n.from.y, v), _ = t.effects.setTransition(a, l, n.to.y, _)), n.from.x !== n.to.x && (v = t.effects.setTransition(a, h, n.from.x, v), _ = t.effects.setTransition(a, h, n.to.x, _))), ("content" === u || "both" === u) && n.from.y !== n.to.y && (v = t.effects.setTransition(a, r, n.from.y, v), _ = t.effects.setTransition(a, r, n.to.y, _)), p && (s = t.effects.getBaseline(p, m), v.top = (m.outerHeight - v.outerHeight) * s.y + g.top, v.left = (m.outerWidth - v.outerWidth) * s.x + g.left, _.top = (m.outerHeight - _.outerHeight) * s.y + g.top, _.left = (m.outerWidth - _.outerWidth) * s.x + g.left), a.css(v), ("content" === u || "both" === u) && (l = l.concat(["marginTop", "marginBottom"]).concat(r), h = h.concat(["marginLeft", "marginRight"]), a.find("*[width]").each(function() {
1540                var i = t(this),
1541                    s = t.effects.scaledDimensions(i),
1542                    o = {
1543                        height: s.height * n.from.y,
1544                        width: s.width * n.from.x,
1545                        outerHeight: s.outerHeight * n.from.y,
1546                        outerWidth: s.outerWidth * n.from.x
1547                    },
1548                    a = {
1549                        height: s.height * n.to.y,
1550                        width: s.width * n.to.x,
1551                        outerHeight: s.height * n.to.y,
1552                        outerWidth: s.width * n.to.x
1553                    };
1554                n.from.y !== n.to.y && (o = t.effects.setTransition(i, l, n.from.y, o), a = t.effects.setTransition(i, l, n.to.y, a)), n.from.x !== n.to.x && (o = t.effects.setTransition(i, h, n.from.x, o), a = t.effects.setTransition(i, h, n.to.x, a)), d && t.effects.saveStyle(i), i.css(o), i.animate(a, e.duration, e.easing, function() {
1555                    d && t.effects.restoreStyle(i)
1556                })
1557            })), a.animate(_, {
1558                queue: !1,
1559                duration: e.duration,
1560                easing: e.easing,
1561                complete: function() {
1562                    var e = a.offset();
1563                    0 === _.opacity && a.css("opacity", v.opacity), d || (a.css("position", "static" === f ? "relative" : f).offset(e), t.effects.saveStyle(a)), i()
1564                }
1565            })
1566        }), t.effects.define("scale", function(e, i) {
1567            var s = t(this),
1568                n = e.mode,
1569                o = parseInt(e.percent, 10) || (0 === parseInt(e.percent, 10) ? 0 : "effect" !== n ? 0 : 100),
1570                a = t.extend(!0, {
1571                    from: t.effects.scaledDimensions(s),
1572                    to: t.effects.scaledDimensions(s, o, e.direction || "both"),
1573                    origin: e.origin || ["middle", "center"]
1574                }, e);
1575            e.fade && (a.from.opacity = 1, a.to.opacity = 0), t.effects.effect.size.call(this, a, i)
1576        }), t.effects.define("puff", "hide", function(e, i) {
1577            var s = t.extend(!0, {}, e, {
1578                fade: !0,
1579                percent: parseInt(e.percent, 10) || 150
1580            });
1581            t.effects.effect.scale.call(this, s, i)
1582        }), t.effects.define("pulsate", "show", function(e, i) {
1583            var s = t(this),
1584                n = e.mode,
1585                o = "show" === n,
1586                a = "hide" === n,
1587                r = o || a,
1588                l = 2 * (e.times || 5) + (r ? 1 : 0),
1589                h = e.duration / l,
1590                c = 0,
1591                d = 1,
1592                u = s.queue().length;
1593            for ((o || !s.is(":visible")) && (s.css("opacity", 0).show(), c = 1); l > d; d++) s.animate({
1594                opacity: c
1595            }, h, e.easing), c = 1 - c;
1596            s.animate({
1597                opacity: c
1598            }, h, e.easing), s.queue(i), t.effects.unshift(s, u, l + 1)
1599        }), t.effects.define("shake", function(e, i) {
1600            var s = 1,
1601                n = t(this),
1602                o = e.direction || "left",
1603                a = e.distance || 20,
1604                r = e.times || 3,
1605                l = 2 * r + 1,
1606                h = Math.round(e.duration / l),
1607                c = "up" === o || "down" === o ? "top" : "left",
1608                d = "up" === o || "left" === o,
1609                u = {},
1610                p = {},
1611                f = {},
1612                g = n.queue().length;
1613            for (t.effects.createPlaceholder(n), u[c] = (d ? "-=" : "+=") + a, p[c] = (d ? "+=" : "-=") + 2 * a, f[c] = (d ? "-=" : "+=") + 2 * a, n.animate(u, h, e.easing); r > s; s++) n.animate(p, h, e.easing).animate(f, h, e.easing);
1614            n.animate(p, h, e.easing).animate(u, h / 2, e.easing).queue(i), t.effects.unshift(n, g, l + 1)
1615        }), t.effects.define("slide", "show", function(e, i) {
1616            var s, n, o = t(this),
1617                a = {
1618                    up: ["bottom", "top"],
1619                    down: ["top", "bottom"],
1620                    left: ["right", "left"],
1621                    right: ["left", "right"]
1622                },
1623                r = e.mode,
1624                l = e.direction || "left",
1625                h = "up" === l || "down" === l ? "top" : "left",
1626                c = "up" === l || "left" === l,
1627                d = e.distance || o["top" === h ? "outerHeight" : "outerWidth"](!0),
1628                u = {};
1629            t.effects.createPlaceholder(o), s = o.cssClip(), n = o.position()[h], u[h] = (c ? -1 : 1) * d + n, u.clip = o.cssClip(), u.clip[a[l][1]] = u.clip[a[l][0]], "show" === r && (o.cssClip(u.clip), o.css(h, u[h]), u.clip = s, u[h] = n), o.animate(u, {
1630                queue: !1,
1631                duration: e.duration,
1632                easing: e.easing,
1633                complete: i
1634            })
1635        });
1636        !1 !== t.uiBackCompat && t.effects.define("transfer", function(e, i) {
1637            t(this).transfer(e, i)
1638        }), t.ui.focusable = function(i, s) {
1639            var n, o, a, r, l, h = i.nodeName.toLowerCase();
1640            return "area" === h ? (n = i.parentNode, o = n.name, !(!i.href || !o || "map" !== n.nodeName.toLowerCase()) && (a = t("img[usemap='#" + o + "']"), a.length > 0 && a.is(":visible"))) : (/^(input|select|textarea|button|object)$/.test(h) ? (r = !i.disabled) && (l = t(i).closest("fieldset")[0]) && (r = !l.disabled) : r = "a" === h ? i.href || s : s, r && t(i).is(":visible") && e(t(i)))
1641        }, t.extend(t.expr[":"], {
1642            focusable: function(e) {
1643                return t.ui.focusable(e, null != t.attr(e, "tabindex"))
1644            }
1645        }), t.ui.focusable, t.fn.form = function() {
1646            return "string" == typeof this[0].form ? this.closest("form") : t(this[0].form)
1647        }, t.ui.formResetMixin = {
1648            _formResetHandler: function() {
1649                var e = t(this);
1650                setTimeout(function() {
1651                    var i = e.data("ui-form-reset-instances");
1652                    t.each(i, function() {
1653                        this.refresh()
1654                    })
1655                })
1656            },
1657            _bindFormResetHandler: function() {
1658                if (this.form = this.element.form(), this.form.length) {
1659                    var t = this.form.data("ui-form-reset-instances") || [];
1660                    t.length || this.form.on("reset.ui-form-reset", this._formResetHandler), t.push(this), this.form.data("ui-form-reset-instances", t)
1661                }
1662            },
1663            _unbindFormResetHandler: function() {
1664                if (this.form.length) {
1665                    var e = this.form.data("ui-form-reset-instances");
1666                    e.splice(t.inArray(this, e), 1), e.length ? this.form.data("ui-form-reset-instances", e) : this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")
1667                }
1668            }
1669        }, "1.7" === t.fn.jquery.substring(0, 3) && (t.each(["Width", "Height"], function(e, i) {
1670            function s(e, i, s, o) {
1671                return t.each(n, function() {
1672                    i -= parseFloat(t.css(e, "padding" + this)) || 0, s && (i -= parseFloat(t.css(e, "border" + this + "Width")) || 0), o && (i -= parseFloat(t.css(e, "margin" + this)) || 0)
1673                }), i
1674            }
1675            var n = "Width" === i ? ["Left", "Right"] : ["Top", "Bottom"],
1676                o = i.toLowerCase(),
1677                a = {
1678                    innerWidth: t.fn.innerWidth,
1679                    innerHeight: t.fn.innerHeight,
1680                    outerWidth: t.fn.outerWidth,
1681                    outerHeight: t.fn.outerHeight
1682                };
1683            t.fn["inner" + i] = function(e) {
1684                return void 0 === e ? a["inner" + i].call(this) : this.each(function() {
1685                    t(this).css(o, s(this, e) + "px")
1686                })
1687            }, t.fn["outer" + i] = function(e, n) {
1688                return "number" != typeof e ? a["outer" + i].call(this, e) : this.each(function() {
1689                    t(this).css(o, s(this, e, !0, n) + "px")
1690                })
1691            }
1692        }), t.fn.addBack = function(t) {
1693            return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
1694        }), t.ui.keyCode = {
1695            BACKSPACE: 8,
1696            COMMA: 188,
1697            DELETE: 46,
1698            DOWN: 40,
1699            END: 35,
1700            ENTER: 13,
1701            ESCAPE: 27,
1702            HOME: 36,
1703            LEFT: 37,
1704            PAGE_DOWN: 34,
1705            PAGE_UP: 33,
1706            PERIOD: 190,
1707            RIGHT: 39,
1708            SPACE: 32,
1709            TAB: 9,
1710            UP: 38
1711        }, t.ui.escapeSelector = function() {
1712            var t = /([!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~])/g;
1713            return function(e) {
1714                return e.replace(t, "\\$1")
1715            }
1716        }(), t.fn.labels = function() {
1717            var e, i, s, n, o;
1718            return this[0].labels && this[0].labels.length ? this.pushStack(this[0].labels) : (n = this.eq(0).parents("label"), s = this.attr("id"), s && (e = this.eq(0).parents().last(), o = e.add(e.length ? e.siblings() : this.siblings()), i = "label[for='" + t.ui.escapeSelector(s) + "']", n = n.add(o.find(i).addBack(i))), this.pushStack(n))
1719        }, t.fn.scrollParent = function(e) {
1720            var i = this.css("position"),
1721                s = "absolute" === i,
1722                n = e ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
1723                o = this.parents().filter(function() {
1724                    var e = t(this);
1725                    return (!s || "static" !== e.css("position")) && n.test(e.css("overflow") + e.css("overflow-y") + e.css("overflow-x"))
1726                }).eq(0);
1727            return "fixed" !== i && o.length ? o : t(this[0].ownerDocument || document)
1728        }, t.extend(t.expr[":"], {
vendor: 16,384 bytes, lines 1729-2020
1729            tabbable: function(e) {
1730                var i = t.attr(e, "tabindex"),
1731                    s = null != i;
1732                return (!s || i >= 0) && t.ui.focusable(e, s)
1733            }
1734        }), t.fn.extend({
1735            uniqueId: function() {
1736                var t = 0;
1737                return function() {
1738                    return this.each(function() {
1739                        this.id || (this.id = "ui-id-" + ++t)
1740                    })
1741                }
1742            }(),
1743            removeUniqueId: function() {
1744                return this.each(function() {
1745                    /^ui-id-\d+$/.test(this.id) && t(this).removeAttr("id")
1746                })
1747            }
1748        }), t.widget("ui.accordion", {
1749            version: "1.12.1",
1750            options: {
1751                active: 0,
1752                animate: {},
1753                classes: {
1754                    "ui-accordion-header": "ui-corner-top",
1755                    "ui-accordion-header-collapsed": "ui-corner-all",
1756                    "ui-accordion-content": "ui-corner-bottom"
1757                },
1758                collapsible: !1,
1759                event: "click",
1760                header: "> li > :first-child, > :not(li):even",
1761                heightStyle: "auto",
1762                icons: {
1763                    activeHeader: "ui-icon-triangle-1-s",
1764                    header: "ui-icon-triangle-1-e"
1765                },
1766                activate: null,
1767                beforeActivate: null
1768            },
1769            hideProps: {
1770                borderTopWidth: "hide",
1771                borderBottomWidth: "hide",
1772                paddingTop: "hide",
1773                paddingBottom: "hide",
1774                height: "hide"
1775            },
1776            showProps: {
1777                borderTopWidth: "show",
1778                borderBottomWidth: "show",
1779                paddingTop: "show",
1780                paddingBottom: "show",
1781                height: "show"
1782            },
1783            _create: function() {
1784                var e = this.options;
1785                this.prevShow = this.prevHide = t(), this._addClass("ui-accordion", "ui-widget ui-helper-reset"), this.element.attr("role", "tablist"), e.collapsible || !1 !== e.active && null != e.active || (e.active = 0), this._processPanels(), 0 > e.active && (e.active += this.headers.length), this._refresh()
1786            },
1787            _getCreateEventData: function() {
1788                return {
1789                    header: this.active,
1790                    panel: this.active.length ? this.active.next() : t()
1791                }
1792            },
1793            _createIcons: function() {
1794                var e, i, s = this.options.icons;
1795                s && (e = t("<span>"), this._addClass(e, "ui-accordion-header-icon", "ui-icon " + s.header), e.prependTo(this.headers), i = this.active.children(".ui-accordion-header-icon"), this._removeClass(i, s.header)._addClass(i, null, s.activeHeader)._addClass(this.headers, "ui-accordion-icons"))
1796            },
1797            _destroyIcons: function() {
1798                this._removeClass(this.headers, "ui-accordion-icons"), this.headers.children(".ui-accordion-header-icon").remove()
1799            },
1800            _destroy: function() {
1801                var t;
1802                this.element.removeAttr("role"), this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(), this._destroyIcons(), t = this.headers.next().css("display", "").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(), "content" !== this.options.heightStyle && t.css("height", "")
1803            },
1804            _setOption: function(t, e) {
1805                return "active" === t ? void this._activate(e) : ("event" === t && (this.options.event && this._off(this.headers, this.options.event), this._setupEvents(e)), this._super(t, e), "collapsible" !== t || e || !1 !== this.options.active || this._activate(0), void("icons" === t && (this._destroyIcons(), e && this._createIcons())))
1806            },
1807            _setOptionDisabled: function(t) {
1808                this._super(t), this.element.attr("aria-disabled", t), this._toggleClass(null, "ui-state-disabled", !!t), this._toggleClass(this.headers.add(this.headers.next()), null, "ui-state-disabled", !!t)
1809            },
1810            _keydown: function(e) {
1811                if (!e.altKey && !e.ctrlKey) {
1812                    var i = t.ui.keyCode,
1813                        s = this.headers.length,
1814                        n = this.headers.index(e.target),
1815                        o = !1;
1816                    switch (e.keyCode) {
1817                        case i.RIGHT:
1818                        case i.DOWN:
1819                            o = this.headers[(n + 1) % s];
1820                            break;
1821                        case i.LEFT:
1822                        case i.UP:
1823                            o = this.headers[(n - 1 + s) % s];
1824                            break;
1825                        case i.SPACE:
1826                        case i.ENTER:
1827                            this._eventHandler(e);
1828                            break;
1829                        case i.HOME:
1830                            o = this.headers[0];
1831                            break;
1832                        case i.END:
1833                            o = this.headers[s - 1]
1834                    }
1835                    o && (t(e.target).attr("tabIndex", -1), t(o).attr("tabIndex", 0), t(o).trigger("focus"), e.preventDefault())
1836                }
1837            },
1838            _panelKeyDown: function(e) {
1839                e.keyCode === t.ui.keyCode.UP && e.ctrlKey && t(e.currentTarget).prev().trigger("focus")
1840            },
1841            refresh: function() {
1842                var e = this.options;
1843                this._processPanels(), !1 === e.active && !0 === e.collapsible || !this.headers.length ? (e.active = !1, this.active = t()) : !1 === e.active ? 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, this.active = t()) : this._activate(Math.max(0, e.active - 1)) : e.active = this.headers.index(this.active), this._destroyIcons(), this._refresh()
1844            },
1845            _processPanels: function() {
1846                var t = this.headers,
1847                    e = this.panels;
1848                this.headers = this.element.find(this.options.header), this._addClass(this.headers, "ui-accordion-header ui-accordion-header-collapsed", "ui-state-default"), this.panels = this.headers.next().filter(":not(.ui-accordion-content-active)").hide(), this._addClass(this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content"), e && (this._off(t.not(this.headers)), this._off(e.not(this.panels)))
1849            },
1850            _refresh: function() {
1851                var e, i = this.options,
1852                    s = i.heightStyle,
1853                    n = this.element.parent();
1854                this.active = this._findActive(i.active), this._addClass(this.active, "ui-accordion-header-active", "ui-state-active")._removeClass(this.active, "ui-accordion-header-collapsed"), this._addClass(this.active.next(), "ui-accordion-content-active"), this.active.next().show(), this.headers.attr("role", "tab").each(function() {
1855                    var e = t(this),
1856                        i = e.uniqueId().attr("id"),
1857                        s = e.next(),
1858                        n = s.uniqueId().attr("id");
1859                    e.attr("aria-controls", n), s.attr("aria-labelledby", i)
1860                }).next().attr("role", "tabpanel"), this.headers.not(this.active).attr({
1861                    "aria-selected": "false",
1862                    "aria-expanded": "false",
1863                    tabIndex: -1
1864                }).next().attr({
1865                    "aria-hidden": "true"
1866                }).hide(), this.active.length ? this.active.attr({
1867                    "aria-selected": "true",
1868                    "aria-expanded": "true",
1869                    tabIndex: 0
1870                }).next().attr({
1871                    "aria-hidden": "false"
1872                }) : this.headers.eq(0).attr("tabIndex", 0), this._createIcons(), this._setupEvents(i.event), "fill" === s ? (e = n.height(), this.element.siblings(":visible").each(function() {
1873                    var i = t(this),
1874                        s = i.css("position");
1875                    "absolute" !== s && "fixed" !== s && (e -= i.outerHeight(!0))
1876                }), this.headers.each(function() {
1877                    e -= t(this).outerHeight(!0)
1878                }), this.headers.next().each(function() {
1879                    t(this).height(Math.max(0, e - t(this).innerHeight() + t(this).height()))
1880                }).css("overflow", "auto")) : "auto" === s && (e = 0, this.headers.next().each(function() {
1881                    var i = t(this).is(":visible");
1882                    i || t(this).show(), e = Math.max(e, t(this).css("height", "").height()), i || t(this).hide()
1883                }).height(e))
1884            },
1885            _activate: function(e) {
1886                var i = this._findActive(e)[0];
1887                i !== this.active[0] && (i = i || this.active[0], this._eventHandler({
1888                    target: i,
1889                    currentTarget: i,
1890                    preventDefault: t.noop
1891                }))
1892            },
1893            _findActive: function(e) {
1894                return "number" == typeof e ? this.headers.eq(e) : t()
1895            },
1896            _setupEvents: function(e) {
1897                var i = {
1898                    keydown: "_keydown"
1899                };
1900                e && t.each(e.split(" "), function(t, e) {
1901                    i[e] = "_eventHandler"
1902                }), this._off(this.headers.add(this.headers.next())), this._on(this.headers, i), this._on(this.headers.next(), {
1903                    keydown: "_panelKeyDown"
1904                }), this._hoverable(this.headers), this._focusable(this.headers)
1905            },
1906            _eventHandler: function(e) {
1907                var i, s, n = this.options,
1908                    o = this.active,
1909                    a = t(e.currentTarget),
1910                    r = a[0] === o[0],
1911                    l = r && n.collapsible,
1912                    h = l ? t() : a.next(),
1913                    c = o.next(),
1914                    d = {
1915                        oldHeader: o,
1916                        oldPanel: c,
1917                        newHeader: l ? t() : a,
1918                        newPanel: h
1919                    };
1920                e.preventDefault(), r && !n.collapsible || !1 === this._trigger("beforeActivate", e, d) || (n.active = !l && this.headers.index(a), this.active = r ? t() : a, this._toggle(d), this._removeClass(o, "ui-accordion-header-active", "ui-state-active"), n.icons && (i = o.children(".ui-accordion-header-icon"), this._removeClass(i, null, n.icons.activeHeader)._addClass(i, null, n.icons.header)), r || (this._removeClass(a, "ui-accordion-header-collapsed")._addClass(a, "ui-accordion-header-active", "ui-state-active"), n.icons && (s = a.children(".ui-accordion-header-icon"), this._removeClass(s, null, n.icons.header)._addClass(s, null, n.icons.activeHeader)), this._addClass(a.next(), "ui-accordion-content-active")))
1921            },
1922            _toggle: function(e) {
1923                var i = e.newPanel,
1924                    s = this.prevShow.length ? this.prevShow : e.oldPanel;
1925                this.prevShow.add(this.prevHide).stop(!0, !0), this.prevShow = i, this.prevHide = s, this.options.animate ? this._animate(i, s, e) : (s.hide(), i.show(), this._toggleComplete(e)), s.attr({
1926                    "aria-hidden": "true"
1927                }), s.prev().attr({
1928                    "aria-selected": "false",
1929                    "aria-expanded": "false"
1930                }), i.length && s.length ? s.prev().attr({
1931                    tabIndex: -1,
1932                    "aria-expanded": "false"
1933                }) : i.length && this.headers.filter(function() {
1934                    return 0 === parseInt(t(this).attr("tabIndex"), 10)
1935                }).attr("tabIndex", -1), i.attr("aria-hidden", "false").prev().attr({
1936                    "aria-selected": "true",
1937                    "aria-expanded": "true",
1938                    tabIndex: 0
1939                })
1940            },
1941            _animate: function(t, e, i) {
1942                var s, n, o, a = this,
1943                    r = 0,
1944                    l = t.css("box-sizing"),
1945                    h = t.length && (!e.length || t.index() < e.index()),
1946                    c = this.options.animate || {},
1947                    d = h && c.down || c,
1948                    u = function() {
1949                        a._toggleComplete(i)
1950                    };
1951                return "number" == typeof d && (o = d), "string" == typeof d && (n = d), n = n || d.easing || c.easing, o = o || d.duration || c.duration, e.length ? t.length ? (s = t.show().outerHeight(), e.animate(this.hideProps, {
1952                    duration: o,
1953                    easing: n,
1954                    step: function(t, e) {
1955                        e.now = Math.round(t)
1956                    }
1957                }), void t.hide().animate(this.showProps, {
1958                    duration: o,
1959                    easing: n,
1960                    complete: u,
1961                    step: function(t, i) {
1962                        i.now = Math.round(t), "height" !== i.prop ? "content-box" === l && (r += i.now) : "content" !== a.options.heightStyle && (i.now = Math.round(s - e.outerHeight() - r), r = 0)
1963                    }
1964                })) : e.animate(this.hideProps, o, n, u) : t.animate(this.showProps, o, n, u)
1965            },
1966            _toggleComplete: function(t) {
1967                var e = t.oldPanel,
1968                    i = e.prev();
1969                this._removeClass(e, "ui-accordion-content-active"), this._removeClass(i, "ui-accordion-header-active")._addClass(i, "ui-accordion-header-collapsed"), e.length && (e.parent()[0].className = e.parent()[0].className), this._trigger("activate", null, t)
1970            }
1971        }), t.ui.safeActiveElement = function(t) {
1972            var e;
1973            try {
1974                e = t.activeElement
1975            } catch (i) {
1976                e = t.body
1977            }
1978            return e || (e = t.body), e.nodeName || (e = t.body), e
1979        }, t.widget("ui.menu", {
1980            version: "1.12.1",
1981            defaultElement: "<ul>",
1982            delay: 300,
1983            options: {
1984                icons: {
1985                    submenu: "ui-icon-caret-1-e"
1986                },
1987                items: "> *",
1988                menus: "ul",
1989                position: {
1990                    my: "left top",
1991                    at: "right top"
1992                },
1993                role: "menu",
1994                blur: null,
1995                focus: null,
1996                select: null
1997            },
1998            _create: function() {
1999                this.activeMenu = this.element, this.mouseHandled = !1, this.element.uniqueId().attr({
2000                    role: this.options.role,
2001                    tabIndex: 0
2002                }), this._addClass("ui-menu", "ui-widget ui-widget-content"), this._on({
2003                    "mousedown .ui-menu-item": function(t) {
2004                        t.preventDefault()
2005                    },
2006                    "click .ui-menu-item": function(e) {
2007                        var i = t(e.target),
2008                            s = t(t.ui.safeActiveElement(this.document[0]));
2009                        !this.mouseHandled && i.not(".ui-state-disabled").length && (this.select(e), e.isPropagationStopped() || (this.mouseHandled = !0), i.has(".ui-menu").length ? this.expand(e) : !this.element.is(":focus") && s.closest(".ui-menu").length && (this.element.trigger("focus", [!0]), this.active && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer)))
2010                    },
2011                    "mouseenter .ui-menu-item": function(e) {
2012                        if (!this.previousFilter) {
2013                            var i = t(e.target).closest(".ui-menu-item"),
2014                                s = t(e.currentTarget);
2015                            i[0] === s[0] && (this._removeClass(s.siblings().children(".ui-state-active"), null, "ui-state-active"), this.focus(e, s))
2016                        }
2017                    },
2018                    mouseleave: "collapseAll",
2019                    "mouseleave .ui-menu": "collapseAll",
2020                    focus: f
vendor: 16,363 bytes, lines 2020-2305
2020unction(t, e) {
2021                        var i = this.active || this.element.find(this.options.items).eq(0);
2022                        e || this.focus(t, i)
2023                    },
2024                    blur: function(e) {
2025                        this._delay(function() {
2026                            !t.contains(this.element[0], t.ui.safeActiveElement(this.document[0])) && this.collapseAll(e)
2027                        })
2028                    },
2029                    keydown: "_keydown"
2030                }), this.refresh(), this._on(this.document, {
2031                    click: function(t) {
2032                        this._closeOnDocumentClick(t) && this.collapseAll(t), this.mouseHandled = !1
2033                    }
2034                })
2035            },
2036            _destroy: function() {
2037                var e = this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),
2038                    i = e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");
2039                this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(), i.children().each(function() {
2040                    var e = t(this);
2041                    e.data("ui-menu-submenu-caret") && e.remove()
2042                })
2043            },
2044            _keydown: function(e) {
2045                var i, s, n, o, a = !0;
2046                switch (e.keyCode) {
2047                    case t.ui.keyCode.PAGE_UP:
2048                        this.previousPage(e);
2049                        break;
2050                    case t.ui.keyCode.PAGE_DOWN:
2051                        this.nextPage(e);
2052                        break;
2053                    case t.ui.keyCode.HOME:
2054                        this._move("first", "first", e);
2055                        break;
2056                    case t.ui.keyCode.END:
2057                        this._move("last", "last", e);
2058                        break;
2059                    case t.ui.keyCode.UP:
2060                        this.previous(e);
2061                        break;
2062                    case t.ui.keyCode.DOWN:
2063                        this.next(e);
2064                        break;
2065                    case t.ui.keyCode.LEFT:
2066                        this.collapse(e);
2067                        break;
2068                    case t.ui.keyCode.RIGHT:
2069                        this.active && !this.active.is(".ui-state-disabled") && this.expand(e);
2070                        break;
2071                    case t.ui.keyCode.ENTER:
2072                    case t.ui.keyCode.SPACE:
2073                        this._activate(e);
2074                        break;
2075                    case t.ui.keyCode.ESCAPE:
2076                        this.collapse(e);
2077                        break;
2078                    default:
2079                        a = !1, s = this.previousFilter || "", o = !1, n = e.keyCode >= 96 && 105 >= e.keyCode ? "" + (e.keyCode - 96) : String.fromCharCode(e.keyCode), clearTimeout(this.filterTimer), n === s ? o = !0 : n = s + n, i = this._filterMenuItems(n), i = o && -1 !== i.index(this.active.next()) ? this.active.nextAll(".ui-menu-item") : i, i.length || (n = String.fromCharCode(e.keyCode), i = this._filterMenuItems(n)), i.length ? (this.focus(e, i), this.previousFilter = n, this.filterTimer = this._delay(function() {
2080                            delete this.previousFilter
2081                        }, 1e3)) : delete this.previousFilter
2082                }
2083                a && e.preventDefault()
2084            },
2085            _activate: function(t) {
2086                this.active && !this.active.is(".ui-state-disabled") && (this.active.children("[aria-haspopup='true']").length ? this.expand(t) : this.select(t))
2087            },
2088            refresh: function() {
2089                var e, i, s, n, o, a = this,
2090                    r = this.options.icons.submenu,
2091                    l = this.element.find(this.options.menus);
2092                this._toggleClass("ui-menu-icons", null, !!this.element.find(".ui-icon").length), s = l.filter(":not(.ui-menu)").hide().attr({
2093                    role: this.options.role,
2094                    "aria-hidden": "true",
2095                    "aria-expanded": "false"
2096                }).each(function() {
2097                    var e = t(this),
2098                        i = e.prev(),
2099                        s = t("<span>").data("ui-menu-submenu-caret", !0);
2100                    a._addClass(s, "ui-menu-icon", "ui-icon " + r), i.attr("aria-haspopup", "true").prepend(s), e.attr("aria-labelledby", i.attr("id"))
2101                }), this._addClass(s, "ui-menu", "ui-widget ui-widget-content ui-front"), e = l.add(this.element), i = e.find(this.options.items), i.not(".ui-menu-item").each(function() {
2102                    var e = t(this);
2103                    a._isDivider(e) && a._addClass(e, "ui-menu-divider", "ui-widget-content")
2104                }), n = i.not(".ui-menu-item, .ui-menu-divider"), o = n.children().not(".ui-menu").uniqueId().attr({
2105                    tabIndex: -1,
2106                    role: this._itemRole()
2107                }), this._addClass(n, "ui-menu-item")._addClass(o, "ui-menu-item-wrapper"), i.filter(".ui-state-disabled").attr("aria-disabled", "true"), this.active && !t.contains(this.element[0], this.active[0]) && this.blur()
2108            },
2109            _itemRole: function() {
2110                return {
2111                    menu: "menuitem",
2112                    listbox: "option"
2113                } [this.options.role]
2114            },
2115            _setOption: function(t, e) {
2116                if ("icons" === t) {
2117                    var i = this.element.find(".ui-menu-icon");
2118                    this._removeClass(i, null, this.options.icons.submenu)._addClass(i, null, e.submenu)
2119                }
2120                this._super(t, e)
2121            },
2122            _setOptionDisabled: function(t) {
2123                this._super(t), this.element.attr("aria-disabled", t + ""), this._toggleClass(null, "ui-state-disabled", !!t)
2124            },
2125            focus: function(t, e) {
2126                var i, s, n;
2127                this.blur(t, t && "focus" === t.type), this._scrollIntoView(e), this.active = e.first(), s = this.active.children(".ui-menu-item-wrapper"), this._addClass(s, null, "ui-state-active"), this.options.role && this.element.attr("aria-activedescendant", s.attr("id")), n = this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"), this._addClass(n, null, "ui-state-active"), t && "keydown" === t.type ? this._close() : this.timer = this._delay(function() {
2128                    this._close()
2129                }, this.delay), i = e.children(".ui-menu"), i.length && t && /^mouse/.test(t.type) && this._startOpening(i), this.activeMenu = e.parent(), this._trigger("focus", t, {
2130                    item: e
2131                })
2132            },
2133            _scrollIntoView: function(e) {
2134                var i, s, n, o, a, r;
2135                this._hasScroll() && (i = parseFloat(t.css(this.activeMenu[0], "borderTopWidth")) || 0, s = parseFloat(t.css(this.activeMenu[0], "paddingTop")) || 0, n = e.offset().top - this.activeMenu.offset().top - i - s, o = this.activeMenu.scrollTop(), a = this.activeMenu.height(), r = e.outerHeight(), 0 > n ? this.activeMenu.scrollTop(o + n) : n + r > a && this.activeMenu.scrollTop(o + n - a + r))
2136            },
2137            blur: function(t, e) {
2138                e || clearTimeout(this.timer), this.active && (this._removeClass(this.active.children(".ui-menu-item-wrapper"), null, "ui-state-active"), this._trigger("blur", t, {
2139                    item: this.active
2140                }), this.active = null)
2141            },
2142            _startOpening: function(t) {
2143                clearTimeout(this.timer), "true" === t.attr("aria-hidden") && (this.timer = this._delay(function() {
2144                    this._close(), this._open(t)
2145                }, this.delay))
2146            },
2147            _open: function(e) {
2148                var i = t.extend({
2149                    of: this.active
2150                }, this.options.position);
2151                clearTimeout(this.timer), this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden", "true"), e.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(i)
2152            },
2153            collapseAll: function(e, i) {
2154                clearTimeout(this.timer), this.timer = this._delay(function() {
2155                    var s = i ? this.element : t(e && e.target).closest(this.element.find(".ui-menu"));
2156                    s.length || (s = this.element), this._close(s), this.blur(e), this._removeClass(s.find(".ui-state-active"), null, "ui-state-active"), this.activeMenu = s
2157                }, this.delay)
2158            },
2159            _close: function(t) {
2160                t || (t = this.active ? this.active.parent() : this.element), t.find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false")
2161            },
2162            _closeOnDocumentClick: function(e) {
2163                return !t(e.target).closest(".ui-menu").length
2164            },
2165            _isDivider: function(t) {
2166                return !/[^\-\u2014\u2013\s]/.test(t.text())
2167            },
2168            collapse: function(t) {
2169                var e = this.active && this.active.parent().closest(".ui-menu-item", this.element);
2170                e && e.length && (this._close(), this.focus(t, e))
2171            },
2172            expand: function(t) {
2173                var e = this.active && this.active.children(".ui-menu ").find(this.options.items).first();
2174                e && e.length && (this._open(e.parent()), this._delay(function() {
2175                    this.focus(t, e)
2176                }))
2177            },
2178            next: function(t) {
2179                this._move("next", "first", t)
2180            },
2181            previous: function(t) {
2182                this._move("prev", "last", t)
2183            },
2184            isFirstItem: function() {
2185                return this.active && !this.active.prevAll(".ui-menu-item").length
2186            },
2187            isLastItem: function() {
2188                return this.active && !this.active.nextAll(".ui-menu-item").length
2189            },
2190            _move: function(t, e, i) {
2191                var s;
2192                this.active && (s = "first" === t || "last" === t ? this.active["first" === t ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : this.active[t + "All"](".ui-menu-item").eq(0)), s && s.length && this.active || (s = this.activeMenu.find(this.options.items)[e]()), this.focus(i, s)
2193            },
2194            nextPage: function(e) {
2195                var i, s, n;
2196                return this.active ? void(this.isLastItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.nextAll(".ui-menu-item").each(function() {
2197                    return i = t(this), 0 > i.offset().top - s - n
2198                }), this.focus(e, i)) : this.focus(e, this.activeMenu.find(this.options.items)[this.active ? "last" : "first"]()))) : void this.next(e)
2199            },
2200            previousPage: function(e) {
2201                var i, s, n;
2202                return this.active ? void(this.isFirstItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.prevAll(".ui-menu-item").each(function() {
2203                    return i = t(this), i.offset().top - s + n > 0
2204                }), this.focus(e, i)) : this.focus(e, this.activeMenu.find(this.options.items).first()))) : void this.next(e)
2205            },
2206            _hasScroll: function() {
2207                return this.element.outerHeight() < this.element.prop("scrollHeight")
2208            },
2209            select: function(e) {
2210                this.active = this.active || t(e.target).closest(".ui-menu-item");
2211                var i = {
2212                    item: this.active
2213                };
2214                this.active.has(".ui-menu").length || this.collapseAll(e, !0), this._trigger("select", e, i)
2215            },
2216            _filterMenuItems: function(e) {
2217                var i = e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"),
2218                    s = RegExp("^" + i, "i");
2219                return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function() {
2220                    return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))
2221                })
2222            }
2223        }), t.widget("ui.autocomplete", {
2224            version: "1.12.1",
2225            defaultElement: "<input>",
2226            options: {
2227                appendTo: null,
2228                autoFocus: !1,
2229                delay: 300,
2230                minLength: 1,
2231                position: {
2232                    my: "left top",
2233                    at: "left bottom",
2234                    collision: "none"
2235                },
2236                source: null,
2237                change: null,
2238                close: null,
2239                focus: null,
2240                open: null,
2241                response: null,
2242                search: null,
2243                select: null
2244            },
2245            requestIndex: 0,
2246            pending: 0,
2247            _create: function() {
2248                var e, i, s, n = this.element[0].nodeName.toLowerCase(),
2249                    o = "textarea" === n,
2250                    a = "input" === n;
2251                this.isMultiLine = o || !a && this._isContentEditable(this.element), this.valueMethod = this.element[o || a ? "val" : "text"], this.isNewMenu = !0, this._addClass("ui-autocomplete-input"), this.element.attr("autocomplete", "off"), this._on(this.element, {
2252                    keydown: function(n) {
2253                        if (this.element.prop("readOnly")) return e = !0, s = !0, void(i = !0);
2254                        e = !1, s = !1, i = !1;
2255                        var o = t.ui.keyCode;
2256                        switch (n.keyCode) {
2257                            case o.PAGE_UP:
2258                                e = !0, this._move("previousPage", n);
2259                                break;
2260                            case o.PAGE_DOWN:
2261                                e = !0, this._move("nextPage", n);
2262                                break;
2263                            case o.UP:
2264                                e = !0, this._keyEvent("previous", n);
2265                                break;
2266                            case o.DOWN:
2267                                e = !0, this._keyEvent("next", n);
2268                                break;
2269                            case o.ENTER:
2270                                this.menu.active && (e = !0, n.preventDefault(), this.menu.select(n));
2271                                break;
2272                            case o.TAB:
2273                                this.menu.active && this.menu.select(n);
2274                                break;
2275                            case o.ESCAPE:
2276                                this.menu.element.is(":visible") && (this.isMultiLine || this._value(this.term), this.close(n), n.preventDefault());
2277                                break;
2278                            default:
2279                                i = !0, this._searchTimeout(n)
2280                        }
2281                    },
2282                    keypress: function(s) {
2283                        if (e) return e = !1, void((!this.isMultiLine || this.menu.element.is(":visible")) && s.preventDefault());
2284                        if (!i) {
2285                            var n = t.ui.keyCode;
2286                            switch (s.keyCode) {
2287                                case n.PAGE_UP:
2288                                    this._move("previousPage", s);
2289                                    break;
2290                                case n.PAGE_DOWN:
2291                                    this._move("nextPage", s);
2292                                    break;
2293                                case n.UP:
2294                                    this._keyEvent("previous", s);
2295                                    break;
2296                                case n.DOWN:
2297                                    this._keyEvent("next", s)
2298                            }
2299                        }
2300                    },
2301                    input: function(t) {
2302                        return s ? (s = !1, void t.preventDefault()) : void this._searchTimeout(t)
2303                    },
2304                    focus: function() {
2305                        this.selectedItem = null, this.previous = this._value(
vendor: 14,364 bytes, lines 2305-2566
2305)
2306                    },
2307                    blur: function(t) {
2308                        return this.cancelBlur ? void delete this.cancelBlur : (clearTimeout(this.searching), this.close(t), void this._change(t))
2309                    }
2310                }), this._initSource(), this.menu = t("<ul>").appendTo(this._appendTo()).menu({
2311                    role: null
2312                }).hide().menu("instance"), this._addClass(this.menu.element, "ui-autocomplete", "ui-front"), this._on(this.menu.element, {
2313                    mousedown: function(e) {
2314                        e.preventDefault(), this.cancelBlur = !0, this._delay(function() {
2315                            delete this.cancelBlur, this.element[0] !== t.ui.safeActiveElement(this.document[0]) && this.element.trigger("focus")
2316                        })
2317                    },
2318                    menufocus: function(e, i) {
2319                        var s, n;
2320                        return this.isNewMenu && (this.isNewMenu = !1, e.originalEvent && /^mouse/.test(e.originalEvent.type)) ? (this.menu.blur(), void this.document.one("mousemove", function() {
2321                            t(e.target).trigger(e.originalEvent)
2322                        })) : (n = i.item.data("ui-autocomplete-item"), !1 !== this._trigger("focus", e, {
2323                            item: n
2324                        }) && e.originalEvent && /^key/.test(e.originalEvent.type) && this._value(n.value), void((s = i.item.attr("aria-label") || n.value) && t.trim(s).length && (this.liveRegion.children().hide(), t("<div>").text(s).appendTo(this.liveRegion))))
2325                    },
2326                    menuselect: function(e, i) {
2327                        var s = i.item.data("ui-autocomplete-item"),
2328                            n = this.previous;
2329                        this.element[0] !== t.ui.safeActiveElement(this.document[0]) && (this.element.trigger("focus"), this.previous = n, this._delay(function() {
2330                            this.previous = n, this.selectedItem = s
2331                        })), !1 !== this._trigger("select", e, {
2332                            item: s
2333                        }) && this._value(s.value), this.term = this._value(), this.close(e), this.selectedItem = s
2334                    }
2335                }), this.liveRegion = t("<div>", {
2336                    role: "status",
2337                    "aria-live": "assertive",
2338                    "aria-relevant": "additions"
2339                }).appendTo(this.document[0].body), this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"), this._on(this.window, {
2340                    beforeunload: function() {
2341                        this.element.removeAttr("autocomplete")
2342                    }
2343                })
2344            },
2345            _destroy: function() {
2346                clearTimeout(this.searching), this.element.removeAttr("autocomplete"), this.menu.element.remove(), this.liveRegion.remove()
2347            },
2348            _setOption: function(t, e) {
2349                this._super(t, e), "source" === t && this._initSource(), "appendTo" === t && this.menu.element.appendTo(this._appendTo()), "disabled" === t && e && this.xhr && this.xhr.abort()
2350            },
2351            _isEventTargetInWidget: function(e) {
2352                var i = this.menu.element[0];
2353                return e.target === this.element[0] || e.target === i || t.contains(i, e.target)
2354            },
2355            _closeOnClickOutside: function(t) {
2356                this._isEventTargetInWidget(t) || this.close()
2357            },
2358            _appendTo: function() {
2359                var e = this.options.appendTo;
2360                return e && (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)), e && e[0] || (e = this.element.closest(".ui-front, dialog")), e.length || (e = this.document[0].body), e
2361            },
2362            _initSource: function() {
2363                var e, i, s = this;
2364                t.isArray(this.options.source) ? (e = this.options.source, this.source = function(i, s) {
2365                    s(t.ui.autocomplete.filter(e, i.term))
2366                }) : "string" == typeof this.options.source ? (i = this.options.source, this.source = function(e, n) {
2367                    s.xhr && s.xhr.abort(), s.xhr = t.ajax({
2368                        url: i,
2369                        data: e,
2370                        dataType: "json",
2371                        success: function(t) {
2372                            n(t)
2373                        },
2374                        error: function() {
2375                            n([])
2376                        }
2377                    })
2378                }) : this.source = this.options.source
2379            },
2380            _searchTimeout: function(t) {
2381                clearTimeout(this.searching), this.searching = this._delay(function() {
2382                    var e = this.term === this._value(),
2383                        i = this.menu.element.is(":visible"),
2384                        s = t.altKey || t.ctrlKey || t.metaKey || t.shiftKey;
2385                    (!e || e && !i && !s) && (this.selectedItem = null, this.search(null, t))
2386                }, this.options.delay)
2387            },
2388            search: function(t, e) {
2389                return t = null != t ? t : this._value(), this.term = this._value(), t.length < this.options.minLength ? this.close(e) : !1 !== this._trigger("search", e) ? this._search(t) : void 0
2390            },
2391            _search: function(t) {
2392                this.pending++, this._addClass("ui-autocomplete-loading"), this.cancelSearch = !1, this.source({
2393                    term: t
2394                }, this._response())
2395            },
2396            _response: function() {
2397                var e = ++this.requestIndex;
2398                return t.proxy(function(t) {
2399                    e === this.requestIndex && this.__response(t), --this.pending || this._removeClass("ui-autocomplete-loading")
2400                }, this)
2401            },
2402            __response: function(t) {
2403                t && (t = this._normalize(t)), this._trigger("response", null, {
2404                    content: t
2405                }), !this.options.disabled && t && t.length && !this.cancelSearch ? (this._suggest(t), this._trigger("open")) : this._close()
2406            },
2407            close: function(t) {
2408                this.cancelSearch = !0, this._close(t)
2409            },
2410            _close: function(t) {
2411                this._off(this.document, "mousedown"), this.menu.element.is(":visible") && (this.menu.element.hide(), this.menu.blur(), this.isNewMenu = !0, this._trigger("close", t))
2412            },
2413            _change: function(t) {
2414                this.previous !== this._value() && this._trigger("change", t, {
2415                    item: this.selectedItem
2416                })
2417            },
2418            _normalize: function(e) {
2419                return e.length && e[0].label && e[0].value ? e : t.map(e, function(e) {
2420                    return "string" == typeof e ? {
2421                        label: e,
2422                        value: e
2423                    } : t.extend({}, e, {
2424                        label: e.label || e.value,
2425                        value: e.value || e.label
2426                    })
2427                })
2428            },
2429            _suggest: function(e) {
2430                var i = this.menu.element.empty();
2431                this._renderMenu(i, e), this.isNewMenu = !0, this.menu.refresh(), i.show(), this._resizeMenu(), i.position(t.extend({
2432                    of: this.element
2433                }, this.options.position)), this.options.autoFocus && this.menu.next(), this._on(this.document, {
2434                    mousedown: "_closeOnClickOutside"
2435                })
2436            },
2437            _resizeMenu: function() {
2438                var t = this.menu.element;
2439                t.outerWidth(Math.max(t.width("").outerWidth() + 1, this.element.outerWidth()))
2440            },
2441            _renderMenu: function(e, i) {
2442                var s = this;
2443                t.each(i, function(t, i) {
2444                    s._renderItemData(e, i)
2445                })
2446            },
2447            _renderItemData: function(t, e) {
2448                return this._renderItem(t, e).data("ui-autocomplete-item", e)
2449            },
2450            _renderItem: function(e, i) {
2451                return t("<li>").append(t("<div>").text(i.label)).appendTo(e)
2452            },
2453            _move: function(t, e) {
2454                return this.menu.element.is(":visible") ? this.menu.isFirstItem() && /^previous/.test(t) || this.menu.isLastItem() && /^next/.test(t) ? (this.isMultiLine || this._value(this.term), void this.menu.blur()) : void this.menu[t](e) : void this.search(null, e)
2455            },
2456            widget: function() {
2457                return this.menu.element
2458            },
2459            _value: function() {
2460                return this.valueMethod.apply(this.element, arguments)
2461            },
2462            _keyEvent: function(t, e) {
2463                (!this.isMultiLine || this.menu.element.is(":visible")) && (this._move(t, e), e.preventDefault())
2464            },
2465            _isContentEditable: function(t) {
2466                if (!t.length) return !1;
2467                var e = t.prop("contentEditable");
2468                return "inherit" === e ? this._isContentEditable(t.parent()) : "true" === e
2469            }
2470        }), t.extend(t.ui.autocomplete, {
2471            escapeRegex: function(t) {
2472                return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
2473            },
2474            filter: function(e, i) {
2475                var s = RegExp(t.ui.autocomplete.escapeRegex(i), "i");
2476                return t.grep(e, function(t) {
2477                    return s.test(t.label || t.value || t)
2478                })
2479            }
2480        }), t.widget("ui.autocomplete", t.ui.autocomplete, {
2481            options: {
2482                messages: {
2483                    noResults: "No search results.",
2484                    results: function(t) {
2485                        return t + (t > 1 ? " results are" : " result is") + " available, use up and down arrow keys to navigate."
2486                    }
2487                }
2488            },
2489            __response: function(e) {
2490                var i;
2491                this._superApply(arguments), this.options.disabled || this.cancelSearch || (i = e && e.length ? this.options.messages.results(e.length) : this.options.messages.noResults, this.liveRegion.children().hide(), t("<div>").text(i).appendTo(this.liveRegion))
2492            }
2493        }), t.ui.autocomplete;
2494        var f = /ui-corner-([a-z]){2,6}/g;
2495        t.widget("ui.controlgroup", {
2496            version: "1.12.1",
2497            defaultElement: "<div>",
2498            options: {
2499                direction: "horizontal",
2500                disabled: null,
2501                onlyVisible: !0,
2502                items: {
2503                    button: "input[type=button], input[type=submit], input[type=reset], button, a",
2504                    controlgroupLabel: ".ui-controlgroup-label",
2505                    checkboxradio: "input[type='checkbox'], input[type='radio']",
2506                    selectmenu: "select",
2507                    spinner: ".ui-spinner-input"
2508                }
2509            },
2510            _create: function() {
2511                this._enhance()
2512            },
2513            _enhance: function() {
2514                this.element.attr("role", "toolbar"), this.refresh()
2515            },
2516            _destroy: function() {
2517                this._callChildMethod("destroy"), this.childWidgets.removeData("ui-controlgroup-data"), this.element.removeAttr("role"), this.options.items.controlgroupLabel && this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()
2518            },
2519            _initWidgets: function() {
2520                var e = this,
2521                    i = [];
2522                t.each(this.options.items, function(s, n) {
2523                    var o, a = {};
2524                    return n ? "controlgroupLabel" === s ? (o = e.element.find(n), o.each(function() {
2525                        var e = t(this);
2526                        e.children(".ui-controlgroup-label-contents").length || e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")
2527                    }), e._addClass(o, null, "ui-widget ui-widget-content ui-state-default"), void(i = i.concat(o.get()))) : void(t.fn[s] && (a = e["_" + s + "Options"] ? e["_" + s + "Options"]("middle") : {
2528                        classes: {}
2529                    }, e.element.find(n).each(function() {
2530                        var n = t(this),
2531                            o = n[s]("instance"),
2532                            r = t.widget.extend({}, a);
2533                        if ("button" !== s || !n.parent(".ui-spinner").length) {
2534                            o || (o = n[s]()[s]("instance")), o && (r.classes = e._resolveClassesValues(r.classes, o)), n[s](r);
2535                            var l = n[s]("widget");
2536                            t.data(l[0], "ui-controlgroup-data", o || n[s]("instance")), i.push(l[0])
2537                        }
2538                    }))) : void 0
2539                }), this.childWidgets = t(t.unique(i)), this._addClass(this.childWidgets, "ui-controlgroup-item")
2540            },
2541            _callChildMethod: function(e) {
2542                this.childWidgets.each(function() {
2543                    var i = t(this),
2544                        s = i.data("ui-controlgroup-data");
2545                    s && s[e] && s[e]()
2546                })
2547            },
2548            _updateCornerClass: function(t, e) {
2549                var i = this._buildSimpleOptions(e, "label").classes.label;
2550                this._removeClass(t, null, "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"), this._addClass(t, null, i)
2551            },
2552            _buildSimpleOptions: function(t, e) {
2553                var i = "vertical" === this.options.direction,
2554                    s = {
2555                        classes: {}
2556                    };
2557                return s.classes[e] = {
2558                    middle: "",
2559                    first: "ui-corner-" + (i ? "top" : "left"),
2560                    last: "ui-corner-" + (i ? "bottom" : "right"),
2561                    only: "ui-corner-all"
2562                } [t], s
2563            },
2564            _spinnerOptions: function(t) {
2565                var e = this._buildSimpleOptions(t, "ui-spinner");
2566                return e.classes["ui-spinner-up"] = "", e.classes["ui-spinner-down"] 
vendor: 5,306 bytes, lines 2566-2650
2566= "", e
2567            },
2568            _buttonOptions: function(t) {
2569                return this._buildSimpleOptions(t, "ui-button")
2570            },
2571            _checkboxradioOptions: function(t) {
2572                return this._buildSimpleOptions(t, "ui-checkboxradio-label")
2573            },
2574            _selectmenuOptions: function(t) {
2575                var e = "vertical" === this.options.direction;
2576                return {
2577                    width: !!e && "auto",
2578                    classes: {
2579                        middle: {
2580                            "ui-selectmenu-button-open": "",
2581                            "ui-selectmenu-button-closed": ""
2582                        },
2583                        first: {
2584                            "ui-selectmenu-button-open": "ui-corner-" + (e ? "top" : "tl"),
2585                            "ui-selectmenu-button-closed": "ui-corner-" + (e ? "top" : "left")
2586                        },
2587                        last: {
2588                            "ui-selectmenu-button-open": e ? "" : "ui-corner-tr",
2589                            "ui-selectmenu-button-closed": "ui-corner-" + (e ? "bottom" : "right")
2590                        },
2591                        only: {
2592                            "ui-selectmenu-button-open": "ui-corner-top",
2593                            "ui-selectmenu-button-closed": "ui-corner-all"
2594                        }
2595                    } [t]
2596                }
2597            },
2598            _resolveClassesValues: function(e, i) {
2599                var s = {};
2600                return t.each(e, function(n) {
2601                    var o = i.options.classes[n] || "";
2602                    o = t.trim(o.replace(f, "")), s[n] = (o + " " + e[n]).replace(/\s+/g, " ")
2603                }), s
2604            },
2605            _setOption: function(t, e) {
2606                return "direction" === t && this._removeClass("ui-controlgroup-" + this.options.direction), this._super(t, e), "disabled" === t ? void this._callChildMethod(e ? "disable" : "enable") : void this.refresh()
2607            },
2608            refresh: function() {
2609                var e, i = this;
2610                this._addClass("ui-controlgroup ui-controlgroup-" + this.options.direction), "horizontal" === this.options.direction && this._addClass(null, "ui-helper-clearfix"), this._initWidgets(), e = this.childWidgets, this.options.onlyVisible && (e = e.filter(":visible")), e.length && (t.each(["first", "last"], function(t, s) {
2611                    var n = e[s]().data("ui-controlgroup-data");
2612                    if (n && i["_" + n.widgetName + "Options"]) {
2613                        var o = i["_" + n.widgetName + "Options"](1 === e.length ? "only" : s);
2614                        o.classes = i._resolveClassesValues(o.classes, n), n.element[n.widgetName](o)
2615                    } else i._updateCornerClass(e[s](), s)
2616                }), this._callChildMethod("refresh"))
2617            }
2618        }), t.widget("ui.checkboxradio", [t.ui.formResetMixin, {
2619            version: "1.12.1",
2620            options: {
2621                disabled: null,
2622                label: null,
2623                icon: !0,
2624                classes: {
2625                    "ui-checkboxradio-label": "ui-corner-all",
2626                    "ui-checkboxradio-icon": "ui-corner-all"
2627                }
2628            },
2629            _getCreateOptions: function() {
2630                var e, i, s = this,
2631                    n = this._super() || {};
2632                return this._readType(), i = this.element.labels(), this.label = t(i[i.length - 1]), this.label.length || t.error("No label found for checkboxradio widget"), this.originalLabel = "", this.label.contents().not(this.element[0]).each(function() {
2633                    s.originalLabel += 3 === this.nodeType ? t(this).text() : this.outerHTML
2634                }), this.originalLabel && (n.label = this.originalLabel), e = this.element[0].disabled, null != e && (n.disabled = e), n
2635            },
2636            _create: function() {
2637                var t = this.element[0].checked;
2638                this._bindFormResetHandler(), null == this.options.disabled && (this.options.disabled = this.element[0].disabled), this._setOption("disabled", this.options.disabled), this._addClass("ui-checkboxradio", "ui-helper-hidden-accessible"), this._addClass(this.label, "ui-checkboxradio-label", "ui-button ui-widget"), "radio" === this.type && this._addClass(this.label, "ui-checkboxradio-radio-label"), this.options.label && this.options.label !== this.originalLabel ? this._updateLabel() : this.originalLabel && (this.options.label = this.originalLabel), this._enhance(), t && (this._addClass(this.label, "ui-checkboxradio-checked", "ui-state-active"), this.icon && this._addClass(this.icon, null, "ui-state-hover")), this._on({
2639                    change: "_toggleClasses",
2640                    focus: function() {
2641                        this._addClass(this.label, null, "ui-state-focus ui-visual-focus")
2642                    },
2643                    blur: function() {
2644                        this._removeClass(this.label, null, "ui-state-focus ui-visual-focus")
2645                    }
2646                })
2647            },
2648            _readType: function() {
2649                var e = this.element[0].nodeName.toLowerCase();
2650                this.type = this.element[0].type, "input" === e && /radio|checkbox/.test(this.t
vendor: 1,953 bytes, lines 2650-2680
2650ype) || t.error("Can't create checkboxradio on element.nodeName=" + e + " and element.type=" + this.type)
2651            },
2652            _enhance: function() {
2653                this._updateIcon(this.element[0].checked)
2654            },
2655            widget: function() {
2656                return this.label
2657            },
2658            _getRadioGroup: function() {
2659                var e, i = this.element[0].name,
2660                    s = "input[name='" + t.ui.escapeSelector(i) + "']";
2661                return i ? (e = this.form.length ? t(this.form[0].elements).filter(s) : t(s).filter(function() {
2662                    return 0 === t(this).form().length
2663                }), e.not(this.element)) : t([])
2664            },
2665            _toggleClasses: function() {
2666                var e = this.element[0].checked;
2667                this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", e), 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), "radio" === this.type && this._getRadioGroup().each(function() {
2668                    var e = t(this).checkboxradio("instance");
2669                    e && e._removeClass(e.label, "ui-checkboxradio-checked", "ui-state-active")
2670                })
2671            },
2672            _destroy: function() {
2673                this._unbindFormResetHandler(), this.icon && (this.icon.remove(), this.iconSpace.remove())
2674            },
2675            _setOption: function(t, e) {
2676                return "label" !== t || e ? (this._super(t, e), "disabled" === t ? (this._toggleClass(this.label, null, "ui-state-disabled", e), void(this.element[0].disabled = e)) : void this.refresh()) : void 0
2677            },
2678            _updateIcon: function(e) {
2679                var i = "ui-icon ui-icon-background ";
2680                this.options.icon ? (this.icon || (this.icon = t("<span>"), this.iconSpace = t("<span> </span>
vendor: 3,947 bytes, lines 2680-2727
2680"), this._addClass(this.iconSpace, "ui-checkboxradio-icon-space")), "checkbox" === this.type ? (i += e ? "ui-icon-check ui-state-checked" : "ui-icon-blank", this._removeClass(this.icon, null, e ? "ui-icon-blank" : "ui-icon-check")) : i += "ui-icon-blank", this._addClass(this.icon, "ui-checkboxradio-icon", i), e || this._removeClass(this.icon, null, "ui-icon-check ui-state-checked"), this.icon.prependTo(this.label).after(this.iconSpace)) : void 0 !== this.icon && (this.icon.remove(), this.iconSpace.remove(), delete this.icon)
2681            },
2682            _updateLabel: function() {
2683                var t = this.label.contents().not(this.element[0]);
2684                this.icon && (t = t.not(this.icon[0])), this.iconSpace && (t = t.not(this.iconSpace[0])), t.remove(), this.label.append(this.options.label)
2685            },
2686            refresh: function() {
2687                var t = this.element[0].checked,
2688                    e = this.element[0].disabled;
2689                this._updateIcon(t), this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", t), null !== this.options.label && this._updateLabel(), e !== this.options.disabled && this._setOptions({
2690                    disabled: e
2691                })
2692            }
2693        }]), t.ui.checkboxradio, t.widget("ui.button", {
2694            version: "1.12.1",
2695            defaultElement: "<button>",
2696            options: {
2697                classes: {
2698                    "ui-button": "ui-corner-all"
2699                },
2700                disabled: null,
2701                icon: null,
2702                iconPosition: "beginning",
2703                label: null,
2704                showLabel: !0
2705            },
2706            _getCreateOptions: function() {
2707                var t, e = this._super() || {};
2708                return this.isInput = this.element.is("input"), t = this.element[0].disabled, null != t && (e.disabled = t), this.originalLabel = this.isInput ? this.element.val() : this.element.html(), this.originalLabel && (e.label = this.originalLabel), e
2709            },
2710            _create: function() {
2711                !this.option.showLabel & !this.options.icon && (this.options.showLabel = !0), null == this.options.disabled && (this.options.disabled = this.element[0].disabled || !1), this.hasTitle = !!this.element.attr("title"), this.options.label && this.options.label !== this.originalLabel && (this.isInput ? this.element.val(this.options.label) : this.element.html(this.options.label)), this._addClass("ui-button", "ui-widget"), this._setOption("disabled", this.options.disabled), this._enhance(), this.element.is("a") && this._on({
2712                    keyup: function(e) {
2713                        e.keyCode === t.ui.keyCode.SPACE && (e.preventDefault(), this.element[0].click ? this.element[0].click() : this.element.trigger("click"))
2714                    }
2715                })
2716            },
2717            _enhance: function() {
2718                this.element.is("button") || this.element.attr("role", "button"), this.options.icon && (this._updateIcon("icon", this.options.icon), this._updateTooltip())
2719            },
2720            _updateTooltip: function() {
2721                this.title = this.element.attr("title"), this.options.showLabel || this.title || this.element.attr("title", this.options.label)
2722            },
2723            _updateIcon: function(e, i) {
2724                var s = "iconPosition" !== e,
2725                    n = s ? this.options.iconPosition : i,
2726                    o = "top" === n || "bottom" === n;
2727                this.icon ? s && this._removeClass(this.icon, null, this.options.icon) : (this.icon = t("<span>"), this._addClass(this.icon, "ui-button-icon", "ui-icon"), this.options.showLabel || this._addClass("ui-button-icon-only")), s && this._addClass(this.icon, null, i), this._attachIcon(n), o ? (this._addClass(this.icon, null, "ui-widget-icon-block"), this.iconSpace && this.iconSpace.remove()) : (this.iconSpace || (this.iconSpace = t("<span> </span>
vendor: 5,539 bytes, lines 2727-2804
2727"), this._addClass(this.iconSpace, "ui-button-icon-space")), this._removeClass(this.icon, null, "ui-wiget-icon-block"), this._attachIconSpace(n))
2728            },
2729            _destroy: function() {
2730                this.element.removeAttr("role"), this.icon && this.icon.remove(), this.iconSpace && this.iconSpace.remove(), this.hasTitle || this.element.removeAttr("title")
2731            },
2732            _attachIconSpace: function(t) {
2733                this.icon[/^(?:end|bottom)/.test(t) ? "before" : "after"](this.iconSpace)
2734            },
2735            _attachIcon: function(t) {
2736                this.element[/^(?:end|bottom)/.test(t) ? "append" : "prepend"](this.icon)
2737            },
2738            _setOptions: function(t) {
2739                var e = void 0 === t.showLabel ? this.options.showLabel : t.showLabel,
2740                    i = void 0 === t.icon ? this.options.icon : t.icon;
2741                e || i || (t.showLabel = !0), this._super(t)
2742            },
2743            _setOption: function(t, e) {
2744                "icon" === t && (e ? this._updateIcon(t, e) : this.icon && (this.icon.remove(), this.iconSpace && this.iconSpace.remove())), "iconPosition" === t && this._updateIcon(t, e), "showLabel" === t && (this._toggleClass("ui-button-icon-only", null, !e), this._updateTooltip()), "label" === t && (this.isInput ? this.element.val(e) : (this.element.html(e), this.icon && (this._attachIcon(this.options.iconPosition), this._attachIconSpace(this.options.iconPosition)))), this._super(t, e), "disabled" === t && (this._toggleClass(null, "ui-state-disabled", e), this.element[0].disabled = e, e && this.element.blur())
2745            },
2746            refresh: function() {
2747                var t = this.element.is("input, button") ? this.element[0].disabled : this.element.hasClass("ui-button-disabled");
2748                t !== this.options.disabled && this._setOptions({
2749                    disabled: t
2750                }), this._updateTooltip()
2751            }
2752        }), !1 !== t.uiBackCompat && (t.widget("ui.button", t.ui.button, {
2753            options: {
2754                text: !0,
2755                icons: {
2756                    primary: null,
2757                    secondary: null
2758                }
2759            },
2760            _create: function() {
2761                this.options.showLabel && !this.options.text && (this.options.showLabel = this.options.text), !this.options.showLabel && this.options.text && (this.options.text = this.options.showLabel), 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, this.options.iconPosition = "end"), this._super()
2762            },
2763            _setOption: function(t, e) {
2764                return "text" === t ? void this._super("showLabel", e) : ("showLabel" === t && (this.options.text = e), "icon" === t && (this.options.icons.primary = e), "icons" === t && (e.primary ? (this._super("icon", e.primary), this._super("iconPosition", "beginning")) : e.secondary && (this._super("icon", e.secondary), this._super("iconPosition", "end"))), void this._superApply(arguments))
2765            }
2766        }), t.fn.button = function(e) {
2767            return function() {
2768                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"), 0 === arguments.length ? this.checkboxradio({
2769                    icon: !1
2770                }) : this.checkboxradio.apply(this, arguments))
2771            }
2772        }(t.fn.button), t.fn.buttonset = function() {
2773            return t.ui.controlgroup || t.error("Controlgroup widget missing"), "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 = {
2774                button: arguments[0].items
2775            }), this.controlgroup.apply(this, arguments))
2776        }), t.ui.button, t.extend(t.ui, {
2777            datepicker: {
2778                version: "1.12.1"
2779            }
2780        });
2781        var g;
2782        t.extend(s.prototype, {
2783            markerClassName: "hasDatepicker",
2784            maxRows: 4,
2785            _widgetDatepicker: function() {
2786                return this.dpDiv
2787            },
2788            setDefaults: function(t) {
2789                return a(this._defaults, t || {}), this
2790            },
2791            _attachDatepicker: function(e, i) {
2792                var s, n, o;
2793                s = e.nodeName.toLowerCase(), n = "div" === s || "span" === s, e.id || (this.uuid += 1, e.id = "dp" + this.uuid), o = this._newInst(t(e), n), o.settings = t.extend({}, i || {}), "input" === s ? this._connectDatepicker(e, o) : n && this._inlineDatepicker(e, o)
2794            },
2795            _newInst: function(e, i) {
2796                return {
2797                    id: e[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"),
2798                    input: e,
2799                    selectedDay: 0,
2800                    selectedMonth: 0,
2801                    selectedYear: 0,
2802                    drawMonth: 0,
2803                    drawYear: 0,
2804                    inline: i,
vendor: 4,576 bytes, lines 2805-2847
2805                    dpDiv: i ? n(t("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) : this.dpDiv
2806                }
2807            },
2808            _connectDatepicker: function(e, i) {
2809                var s = t(e);
2810                i.append = t([]), i.trigger = t([]), s.hasClass(this.markerClassName) || (this._attachments(s, i), s.addClass(this.markerClassName).on("keydown", this._doKeyDown).on("keypress", this._doKeyPress).on("keyup", this._doKeyUp), this._autoSize(i), t.data(e, "datepicker", i), i.settings.disabled && this._disableDatepicker(e))
2811            },
2812            _attachments: function(e, i) {
2813                var s, n, o, a = this._get(i, "appendText"),
2814                    r = this._get(i, "isRTL");
2815                i.append && i.append.remove(), a && (i.append = t("<span class='" + this._appendClass + "'>" + a + "</span>"), e[r ? "before" : "after"](i.append)), e.off("focus", this._showDatepicker), i.trigger && i.trigger.remove(), s = this._get(i, "showOn"), ("focus" === s || "both" === s) && e.on("focus", this._showDatepicker), ("button" === s || "both" === s) && (n = this._get(i, "buttonText"), o = this._get(i, "buttonImage"), i.trigger = t(this._get(i, "buttonImageOnly") ? t("<img/>").addClass(this._triggerClass).attr({
2816                    src: o,
2817                    alt: n,
2818                    title: n
2819                }) : t("<button type='button'></button>").addClass(this._triggerClass).html(o ? t("<img/>").attr({
2820                    src: o,
2821                    alt: n,
2822                    title: n
2823                }) : n)), e[r ? "before" : "after"](i.trigger), i.trigger.on("click", function() {
2824                    return t.datepicker._datepickerShowing && t.datepicker._lastInput === e[0] ? t.datepicker._hideDatepicker() : t.datepicker._datepickerShowing && t.datepicker._lastInput !== e[0] ? (t.datepicker._hideDatepicker(), t.datepicker._showDatepicker(e[0])) : t.datepicker._showDatepicker(e[0]), !1
2825                }))
2826            },
2827            _autoSize: function(t) {
2828                if (this._get(t, "autoSize") && !t.inline) {
2829                    var e, i, s, n, o = new Date(2009, 11, 20),
2830                        a = this._get(t, "dateFormat");
2831                    a.match(/[DM]/) && (e = function(t) {
2832                        for (i = 0, s = 0, n = 0; t.length > n; n++) t[n].length > i && (i = t[n].length, s = n);
2833                        return s
2834                    }, o.setMonth(e(this._get(t, a.match(/MM/) ? "monthNames" : "monthNamesShort"))), o.setDate(e(this._get(t, a.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - o.getDay())), t.input.attr("size", this._formatDate(t, o).length)
2835                }
2836            },
2837            _inlineDatepicker: function(e, i) {
2838                var s = t(e);
2839                s.hasClass(this.markerClassName) || (s.addClass(this.markerClassName).append(i.dpDiv), t.data(e, "datepicker", i), this._setDate(i, this._getDefaultDate(i), !0), this._updateDatepicker(i), this._updateAlternate(i), i.settings.disabled && this._disableDatepicker(e), i.dpDiv.css("display", "block"))
2840            },
2841            _dialogDatepicker: function(e, i, s, n, o) {
2842                var r, l, h, c, d, u = this._dialogInst;
2843                return u || (this.uuid += 1, r = "dp" + this.uuid, this._dialogInput = t("<input type='text' id='" + r + "' style='position: absolute; top: -100px; width: 0px;'/>"), this._dialogInput.on("keydown", this._doKeyDown), t("body").append(this._dialogInput), u = this._dialogInst = this._newInst(this._dialogInput, !1), u.settings = {}, t.data(this._dialogInput[0], "datepicker", u)), a(u.settings, n || {}), i = i && i.constructor === Date ? this._formatDate(u, i) : i, this._dialogInput.val(i), this._pos = o ? o.length ? o : [o.pageX, o.pageY] : null, this._pos || (l = document.documentElement.clientWidth, h = document.documentElement.clientHeight, c = document.documentElement.scrollLeft || document.body.scrollLeft, d = document.documentElement.scrollTop || document.body.scrollTop, this._pos = [l / 2 - 100 + c, h / 2 - 150 + d]), this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"), u.settings.onSelect = s, this._inDialog = !0, this.dpDiv.addClass(this._dialogClass), this._showDatepicker(this._dialogInput[0]), t.blockUI && t.blockUI(this.dpDiv), t.data(this._dialogInput[0], "datepicker", u), this
2844            },
2845            _destroyDatepicker: function(e) {
2846                var i, s = t(e),
2847                    n = t.data(e, "datepicker");
vendor: 7,818 bytes, lines 2848-2953
2848                s.hasClass(this.markerClassName) && (i = e.nodeName.toLowerCase(), t.removeData(e, "datepicker"), "input" === i ? (n.append.remove(), n.trigger.remove(), s.removeClass(this.markerClassName).off("focus", this._showDatepicker).off("keydown", this._doKeyDown).off("keypress", this._doKeyPress).off("keyup", this._doKeyUp)) : ("div" === i || "span" === i) && s.removeClass(this.markerClassName).empty(), g === n && (g = null))
2849            },
2850            _enableDatepicker: function(e) {
2851                var i, s, n = t(e),
2852                    o = t.data(e, "datepicker");
2853                n.hasClass(this.markerClassName) && (i = e.nodeName.toLowerCase(), "input" === i ? (e.disabled = !1, o.trigger.filter("button").each(function() {
2854                    this.disabled = !1
2855                }).end().filter("img").css({
2856                    opacity: "1.0",
2857                    cursor: ""
2858                })) : ("div" === i || "span" === i) && (s = n.children("." + this._inlineClass), s.children().removeClass("ui-state-disabled"), s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1)), this._disabledInputs = t.map(this._disabledInputs, function(t) {
2859                    return t === e ? null : t
2860                }))
2861            },
2862            _disableDatepicker: function(e) {
2863                var i, s, n = t(e),
2864                    o = t.data(e, "datepicker");
2865                n.hasClass(this.markerClassName) && (i = e.nodeName.toLowerCase(), "input" === i ? (e.disabled = !0, o.trigger.filter("button").each(function() {
2866                    this.disabled = !0
2867                }).end().filter("img").css({
2868                    opacity: "0.5",
2869                    cursor: "default"
2870                })) : ("div" === i || "span" === i) && (s = n.children("." + this._inlineClass), s.children().addClass("ui-state-disabled"), s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0)), this._disabledInputs = t.map(this._disabledInputs, function(t) {
2871                    return t === e ? null : t
2872                }), this._disabledInputs[this._disabledInputs.length] = e)
2873            },
2874            _isDisabledDatepicker: function(t) {
2875                if (!t) return !1;
2876                for (var e = 0; this._disabledInputs.length > e; e++)
2877                    if (this._disabledInputs[e] === t) return !0;
2878                return !1
2879            },
2880            _getInst: function(e) {
2881                try {
2882                    return t.data(e, "datepicker")
2883                } catch (t) {
2884                    throw "Missing instance data for this datepicker"
2885                }
2886            },
2887            _optionDatepicker: function(e, i, s) {
2888                var n, o, r, l, h = this._getInst(e);
2889                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 : (n = i || {}, "string" == typeof i && (n = {}, n[i] = s), void(h && (this._curInst === h && this._hideDatepicker(), o = this._getDateDatepicker(e, !0), r = this._getMinMaxDate(h, "min"), l = this._getMinMaxDate(h, "max"), a(h.settings, n), null !== r && void 0 !== n.dateFormat && void 0 === n.minDate && (h.settings.minDate = this._formatDate(h, r)), null !== l && void 0 !== n.dateFormat && void 0 === n.maxDate && (h.settings.maxDate = this._formatDate(h, l)), "disabled" in n && (n.disabled ? this._disableDatepicker(e) : this._enableDatepicker(e)), this._attachments(t(e), h), this._autoSize(h), this._setDate(h, o), this._updateAlternate(h), this._updateDatepicker(h))))
2890            },
2891            _changeDatepicker: function(t, e, i) {
2892                this._optionDatepicker(t, e, i)
2893            },
2894            _refreshDatepicker: function(t) {
2895                var e = this._getInst(t);
2896                e && this._updateDatepicker(e)
2897            },
2898            _setDateDatepicker: function(t, e) {
2899                var i = this._getInst(t);
2900                i && (this._setDate(i, e), this._updateDatepicker(i), this._updateAlternate(i))
2901            },
2902            _getDateDatepicker: function(t, e) {
2903                var i = this._getInst(t);
2904                return i && !i.inline && this._setDateFromField(i, e), i ? this._getDate(i) : null
2905            },
2906            _doKeyDown: function(e) {
2907                var i, s, n, o = t.datepicker._getInst(e.target),
2908                    a = !0,
2909                    r = o.dpDiv.is(".ui-datepicker-rtl");
2910                if (o._keyEvent = !0, t.datepicker._datepickerShowing) switch (e.keyCode) {
2911                    case 9:
2912                        t.datepicker._hideDatepicker(), a = !1;
2913                        break;
2914                    case 13:
2915                        return n = t("td." + t.datepicker._dayOverClass + ":not(." + t.datepicker._currentClass + ")", o.dpDiv), n[0] && t.datepicker._selectDay(e.target, o.selectedMonth, o.selectedYear, n[0]), i = t.datepicker._get(o, "onSelect"), i ? (s = t.datepicker._formatDate(o), i.apply(o.input ? o.input[0] : null, [s, o])) : t.datepicker._hideDatepicker(), !1;
2916                    case 27:
2917                        t.datepicker._hideDatepicker();
2918                        break;
2919                    case 33:
2920                        t.datepicker._adjustDate(e.target, e.ctrlKey ? -t.datepicker._get(o, "stepBigMonths") : -t.datepicker._get(o, "stepMonths"), "M");
2921                        break;
2922                    case 34:
2923                        t.datepicker._adjustDate(e.target, e.ctrlKey ? +t.datepicker._get(o, "stepBigMonths") : +t.datepicker._get(o, "stepMonths"), "M");
2924                        break;
2925                    case 35:
2926                        (e.ctrlKey || e.metaKey) && t.datepicker._clearDate(e.target), a = e.ctrlKey || e.metaKey;
2927                        break;
2928                    case 36:
2929                        (e.ctrlKey || e.metaKey) && t.datepicker._gotoToday(e.target), a = e.ctrlKey || e.metaKey;
2930                        break;
2931                    case 37:
2932                        (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, r ? 1 : -1, "D"), a = e.ctrlKey || e.metaKey, e.originalEvent.altKey && t.datepicker._adjustDate(e.target, e.ctrlKey ? -t.datepicker._get(o, "stepBigMonths") : -t.datepicker._get(o, "stepMonths"), "M");
2933                        break;
2934                    case 38:
2935                        (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, -7, "D"), a = e.ctrlKey || e.metaKey;
2936                        break;
2937                    case 39:
2938                        (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, r ? -1 : 1, "D"), a = e.ctrlKey || e.metaKey, e.originalEvent.altKey && t.datepicker._adjustDate(e.target, e.ctrlKey ? +t.datepicker._get(o, "stepBigMonths") : +t.datepicker._get(o, "stepMonths"), "M");
2939                        break;
2940                    case 40:
2941                        (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, 7, "D"), a = e.ctrlKey || e.metaKey;
2942                        break;
2943                    default:
2944                        a = !1
2945                } else 36 === e.keyCode && e.ctrlKey ? t.datepicker._showDatepicker(this) : a = !1;
2946                a && (e.preventDefault(), e.stopPropagation())
2947            },
2948            _doKeyPress: function(e) {
2949                var i, s, n = t.datepicker._getInst(e.target);
2950                return t.datepicker._get(n, "constrainInput") ? (i = t.datepicker._possibleChars(t.datepicker._get(n, "dateFormat")), s = String.fromCharCode(null == e.charCode ? e.keyCode : e.charCode), e.ctrlKey || e.metaKey || " " > s || !i || i.indexOf(s) > -1) : void 0
2951            },
2952            _doKeyUp: function(e) {
2953                var i = t.datepicker._getInst(e.target);
vendor: 9,183 bytes, lines 2954-3055
2954                if (i.input.val() !== i.lastVal) try {
2955                    t.datepicker.parseDate(t.datepicker._get(i, "dateFormat"), i.input ? i.input.val() : null, t.datepicker._getFormatConfig(i)) && (t.datepicker._setDateFromField(i), t.datepicker._updateAlternate(i), t.datepicker._updateDatepicker(i))
2956                } catch (t) {}
2957                return !0
2958            },
2959            _showDatepicker: function(e) {
2960                if (e = e.target || e, "input" !== e.nodeName.toLowerCase() && (e = t("input", e.parentNode)[0]), !t.datepicker._isDisabledDatepicker(e) && t.datepicker._lastInput !== e) {
2961                    var s, n, o, r, l, h, c;
2962                    s = t.datepicker._getInst(e), t.datepicker._curInst && t.datepicker._curInst !== s && (t.datepicker._curInst.dpDiv.stop(!0, !0), s && t.datepicker._datepickerShowing && t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])), n = t.datepicker._get(s, "beforeShow"), !1 !== (o = n ? n.apply(e, [e, s]) : {}) && (a(s.settings, o), s.lastVal = null, t.datepicker._lastInput = e, t.datepicker._setDateFromField(s), t.datepicker._inDialog && (e.value = ""), t.datepicker._pos || (t.datepicker._pos = t.datepicker._findPos(e), t.datepicker._pos[1] += e.offsetHeight), r = !1, t(e).parents().each(function() {
2963                        return !(r |= "fixed" === t(this).css("position"))
2964                    }), l = {
2965                        left: t.datepicker._pos[0],
2966                        top: t.datepicker._pos[1]
2967                    }, t.datepicker._pos = null, s.dpDiv.empty(), s.dpDiv.css({
2968                        position: "absolute",
2969                        display: "block",
2970                        top: "-1000px"
2971                    }), t.datepicker._updateDatepicker(s), l = t.datepicker._checkOffset(s, l, r), s.dpDiv.css({
2972                        position: t.datepicker._inDialog && t.blockUI ? "static" : r ? "fixed" : "absolute",
2973                        display: "none",
2974                        left: l.left + "px",
2975                        top: l.top + "px"
2976                    }), s.inline || (h = t.datepicker._get(s, "showAnim"), c = t.datepicker._get(s, "duration"), s.dpDiv.css("z-index", i(t(e)) + 1), t.datepicker._datepickerShowing = !0, t.effects && t.effects.effect[h] ? s.dpDiv.show(h, t.datepicker._get(s, "showOptions"), c) : s.dpDiv[h || "show"](h ? c : null), t.datepicker._shouldFocusInput(s) && s.input.trigger("focus"), t.datepicker._curInst = s))
2977                }
2978            },
2979            _updateDatepicker: function(e) {
2980                this.maxRows = 4, g = e, e.dpDiv.empty().append(this._generateHTML(e)), this._attachHandlers(e);
2981                var i, s = this._getNumberOfMonths(e),
2982                    n = s[1],
2983                    a = e.dpDiv.find("." + this._dayOverClass + " a");
2984                a.length > 0 && o.apply(a.get(0)), e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""), n > 1 && e.dpDiv.addClass("ui-datepicker-multi-" + n).css("width", 17 * n + "em"), e.dpDiv[(1 !== s[0] || 1 !== s[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi"), e.dpDiv[(this._get(e, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"), e === t.datepicker._curInst && t.datepicker._datepickerShowing && t.datepicker._shouldFocusInput(e) && e.input.trigger("focus"), e.yearshtml && (i = e.yearshtml, setTimeout(function() {
2985                    i === e.yearshtml && e.yearshtml && e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml), i = e.yearshtml = null
2986                }, 0))
2987            },
2988            _shouldFocusInput: function(t) {
2989                return t.input && t.input.is(":visible") && !t.input.is(":disabled") && !t.input.is(":focus")
2990            },
2991            _checkOffset: function(e, i, s) {
2992                var n = e.dpDiv.outerWidth(),
2993                    o = e.dpDiv.outerHeight(),
2994                    a = e.input ? e.input.outerWidth() : 0,
2995                    r = e.input ? e.input.outerHeight() : 0,
2996                    l = document.documentElement.clientWidth + (s ? 0 : t(document).scrollLeft()),
2997                    h = document.documentElement.clientHeight + (s ? 0 : t(document).scrollTop());
2998                return i.left -= this._get(e, "isRTL") ? n - a : 0, i.left -= s && i.left === e.input.offset().left ? t(document).scrollLeft() : 0, i.top -= s && i.top === e.input.offset().top + r ? t(document).scrollTop() : 0, i.left -= Math.min(i.left, i.left + n > l && l > n ? Math.abs(i.left + n - l) : 0), i.top -= Math.min(i.top, i.top + o > h && h > o ? Math.abs(o + r) : 0), i
2999            },
3000            _findPos: function(e) {
3001                for (var i, s = this._getInst(e), n = this._get(s, "isRTL"); e && ("hidden" === e.type || 1 !== e.nodeType || t.expr.filters.hidden(e));) e = e[n ? "previousSibling" : "nextSibling"];
3002                return i = t(e).offset(), [i.left, i.top]
3003            },
3004            _hideDatepicker: function(e) {
3005                var i, s, n, o, a = this._curInst;
3006                !a || e && a !== t.data(e, "datepicker") || this._datepickerShowing && (i = this._get(a, "showAnim"), s = this._get(a, "duration"), n = function() {
3007                    t.datepicker._tidyDialog(a)
3008                }, t.effects && (t.effects.effect[i] || t.effects[i]) ? a.dpDiv.hide(i, t.datepicker._get(a, "showOptions"), s, n) : a.dpDiv["slideDown" === i ? "slideUp" : "fadeIn" === i ? "fadeOut" : "hide"](i ? s : null, n), i || n(), this._datepickerShowing = !1, o = this._get(a, "onClose"), o && o.apply(a.input ? a.input[0] : null, [a.input ? a.input.val() : "", a]), this._lastInput = null, this._inDialog && (this._dialogInput.css({
3009                    position: "absolute",
3010                    left: "0",
3011                    top: "-100px"
3012                }), t.blockUI && (t.unblockUI(), t("body").append(this.dpDiv))), this._inDialog = !1)
3013            },
3014            _tidyDialog: function(t) {
3015                t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")
3016            },
3017            _checkExternalClick: function(e) {
3018                if (t.datepicker._curInst) {
3019                    var i = t(e.target),
3020                        s = t.datepicker._getInst(i[0]);
3021                    (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 !== s) && t.datepicker._hideDatepicker()
3022                }
3023            },
3024            _adjustDate: function(e, i, s) {
3025                var n = t(e),
3026                    o = this._getInst(n[0]);
3027                this._isDisabledDatepicker(n[0]) || (this._adjustInstDate(o, i + ("M" === s ? this._get(o, "showCurrentAtPos") : 0), s), this._updateDatepicker(o))
3028            },
3029            _gotoToday: function(e) {
3030                var i, s = t(e),
3031                    n = this._getInst(s[0]);
3032                this._get(n, "gotoCurrent") && n.currentDay ? (n.selectedDay = n.currentDay, n.drawMonth = n.selectedMonth = n.currentMonth, n.drawYear = n.selectedYear = n.currentYear) : (i = new Date, n.selectedDay = i.getDate(), n.drawMonth = n.selectedMonth = i.getMonth(), n.drawYear = n.selectedYear = i.getFullYear()), this._notifyChange(n), this._adjustDate(s)
3033            },
3034            _selectMonthYear: function(e, i, s) {
3035                var n = t(e),
3036                    o = this._getInst(n[0]);
3037                o["selected" + ("M" === s ? "Month" : "Year")] = o["draw" + ("M" === s ? "Month" : "Year")] = parseInt(i.options[i.selectedIndex].value, 10), this._notifyChange(o), this._adjustDate(n)
3038            },
3039            _selectDay: function(e, i, s, n) {
3040                var o, a = t(e);
3041                t(n).hasClass(this._unselectableClass) || this._isDisabledDatepicker(a[0]) || (o = this._getInst(a[0]), o.selectedDay = o.currentDay = t("a", n).html(), o.selectedMonth = o.currentMonth = i, o.selectedYear = o.currentYear = s, this._selectDate(e, this._formatDate(o, o.currentDay, o.currentMonth, o.currentYear)))
3042            },
3043            _clearDate: function(e) {
3044                var i = t(e);
3045                this._selectDate(i, "")
3046            },
3047            _selectDate: function(e, i) {
3048                var s, n = t(e),
3049                    o = this._getInst(n[0]);
3050                i = null != i ? i : this._formatDate(o), o.input && o.input.val(i), this._updateAlternate(o), s = this._get(o, "onSelect"), s ? s.apply(o.input ? o.input[0] : null, [i, o]) : o.input && o.input.trigger("change"), o.inline ? this._updateDatepicker(o) : (this._hideDatepicker(), this._lastInput = o.input[0], "object" != typeof o.input[0] && o.input.trigger("focus"), this._lastInput = null)
3051            },
3052            _updateAlternate: function(e) {
3053                var i, s, n, o = this._get(e, "altField");
3054                o && (i = this._get(e, "altFormat") || this._get(e, "dateFormat"), s = this._getDate(e), n = this.formatDate(i, s, this._getFormatConfig(e)), t(o).val(n))
3055            },
vendor: 9,105 bytes, lines 3056-3238
3056            noWeekends: function(t) {
3057                var e = t.getDay();
3058                return [e > 0 && 6 > e, ""]
3059            },
3060            iso8601Week: function(t) {
3061                var e, i = new Date(t.getTime());
3062                return i.setDate(i.getDate() + 4 - (i.getDay() || 7)), e = i.getTime(), i.setMonth(0), i.setDate(1), Math.floor(Math.round((e - i) / 864e5) / 7) + 1
3063            },
3064            parseDate: function(e, i, s) {
3065                if (null == e || null == i) throw "Invalid arguments";
3066                if ("" === (i = "object" == typeof i ? "" + i : i + "")) return null;
3067                var n, o, a, r, l = 0,
3068                    h = (s ? s.shortYearCutoff : null) || this._defaults.shortYearCutoff,
3069                    c = "string" != typeof h ? h : (new Date).getFullYear() % 100 + parseInt(h, 10),
3070                    d = (s ? s.dayNamesShort : null) || this._defaults.dayNamesShort,
3071                    u = (s ? s.dayNames : null) || this._defaults.dayNames,
3072                    p = (s ? s.monthNamesShort : null) || this._defaults.monthNamesShort,
3073                    f = (s ? s.monthNames : null) || this._defaults.monthNames,
3074                    g = -1,
3075                    m = -1,
3076                    v = -1,
3077                    _ = -1,
3078                    b = !1,
3079                    y = function(t) {
3080                        var i = e.length > n + 1 && e.charAt(n + 1) === t;
3081                        return i && n++, i
3082                    },
3083                    w = function(t) {
3084                        var e = y(t),
3085                            s = "@" === t ? 14 : "!" === t ? 20 : "y" === t && e ? 4 : "o" === t ? 3 : 2,
3086                            n = "y" === t ? s : 1,
3087                            o = RegExp("^\\d{" + n + "," + s + "}"),
3088                            a = i.substring(l).match(o);
3089                        if (!a) throw "Missing number at position " + l;
3090                        return l += a[0].length, parseInt(a[0], 10)
3091                    },
3092                    k = function(e, s, n) {
3093                        var o = -1,
3094                            a = t.map(y(e) ? n : s, function(t, e) {
3095                                return [
3096                                    [e, t]
3097                                ]
3098                            }).sort(function(t, e) {
3099                                return -(t[1].length - e[1].length)
3100                            });
3101                        if (t.each(a, function(t, e) {
3102                                var s = e[1];
3103                                return i.substr(l, s.length).toLowerCase() === s.toLowerCase() ? (o = e[0], l += s.length, !1) : void 0
3104                            }), -1 !== o) return o + 1;
3105                        throw "Unknown name at position " + l
3106                    },
3107                    x = function() {
3108                        if (i.charAt(l) !== e.charAt(n)) throw "Unexpected literal at position " + l;
3109                        l++
3110                    };
3111                for (n = 0; e.length > n; n++)
3112                    if (b) "'" !== e.charAt(n) || y("'") ? x() : b = !1;
3113                    else switch (e.charAt(n)) {
3114                        case "d":
3115                            v = w("d");
3116                            break;
3117                        case "D":
3118                            k("D", d, u);
3119                            break;
3120                        case "o":
3121                            _ = w("o");
3122                            break;
3123                        case "m":
3124                            m = w("m");
3125                            break;
3126                        case "M":
3127                            m = k("M", p, f);
3128                            break;
3129                        case "y":
3130                            g = w("y");
3131                            break;
3132                        case "@":
3133                            r = new Date(w("@")), g = r.getFullYear(), m = r.getMonth() + 1, v = r.getDate();
3134                            break;
3135                        case "!":
3136                            r = new Date((w("!") - this._ticksTo1970) / 1e4), g = r.getFullYear(), m = r.getMonth() + 1, v = r.getDate();
3137                            break;
3138                        case "'":
3139                            y("'") ? x() : b = !0;
3140                            break;
3141                        default:
3142                            x()
3143                    }
3144                if (i.length > l && (a = i.substr(l), !/^\s+/.test(a))) throw "Extra/unparsed characters found in date: " + a;
3145                if (-1 === g ? g = (new Date).getFullYear() : 100 > g && (g += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (c >= g ? 0 : -100)), _ > -1)
3146                    for (m = 1, v = _; !((o = this._getDaysInMonth(g, m - 1)) >= v);) m++, v -= o;
3147                if (r = this._daylightSavingAdjust(new Date(g, m - 1, v)), r.getFullYear() !== g || r.getMonth() + 1 !== m || r.getDate() !== v) throw "Invalid date";
3148                return r
3149            },
3150            ATOM: "yy-mm-dd",
3151            COOKIE: "D, dd M yy",
3152            ISO_8601: "yy-mm-dd",
3153            RFC_822: "D, d M y",
3154            RFC_850: "DD, dd-M-y",
3155            RFC_1036: "D, d M y",
3156            RFC_1123: "D, d M yy",
3157            RFC_2822: "D, d M yy",
3158            RSS: "D, d M y",
3159            TICKS: "!",
3160            TIMESTAMP: "@",
3161            W3C: "yy-mm-dd",
3162            _ticksTo1970: 864e9 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)),
3163            formatDate: function(t, e, i) {
3164                if (!e) return "";
3165                var s, n = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort,
3166                    o = (i ? i.dayNames : null) || this._defaults.dayNames,
3167                    a = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort,
3168                    r = (i ? i.monthNames : null) || this._defaults.monthNames,
3169                    l = function(e) {
3170                        var i = t.length > s + 1 && t.charAt(s + 1) === e;
3171                        return i && s++, i
3172                    },
3173                    h = function(t, e, i) {
3174                        var s = "" + e;
3175                        if (l(t))
3176                            for (; i > s.length;) s = "0" + s;
3177                        return s
3178                    },
3179                    c = function(t, e, i, s) {
3180                        return l(t) ? s[e] : i[e]
3181                    },
3182                    d = "",
3183                    u = !1;
3184                if (e)
3185                    for (s = 0; t.length > s; s++)
3186                        if (u) "'" !== t.charAt(s) || l("'") ? d += t.charAt(s) : u = !1;
3187                        else switch (t.charAt(s)) {
3188                            case "d":
3189                                d += h("d", e.getDate(), 2);
3190                                break;
3191                            case "D":
3192                                d += c("D", e.getDay(), n, o);
3193                                break;
3194                            case "o":
3195                                d += h("o", Math.round((new Date(e.getFullYear(), e.getMonth(), e.getDate()).getTime() - new Date(e.getFullYear(), 0, 0).getTime()) / 864e5), 3);
3196                                break;
3197                            case "m":
3198                                d += h("m", e.getMonth() + 1, 2);
3199                                break;
3200                            case "M":
3201                                d += c("M", e.getMonth(), a, r);
3202                                break;
3203                            case "y":
3204                                d += l("y") ? e.getFullYear() : (10 > e.getFullYear() % 100 ? "0" : "") + e.getFullYear() % 100;
3205                                break;
3206                            case "@":
3207                                d += e.getTime();
3208                                break;
3209                            case "!":
3210                                d += 1e4 * e.getTime() + this._ticksTo1970;
3211                                break;
3212                            case "'":
3213                                l("'") ? d += "'" : u = !0;
3214                                break;
3215                            default:
3216                                d += t.charAt(s)
3217                        }
3218                return d
3219            },
3220            _possibleChars: function(t) {
3221                var e, i = "",
3222                    s = !1,
3223                    n = function(i) {
3224                        var s = t.length > e + 1 && t.charAt(e + 1) === i;
3225                        return s && e++, s
3226                    };
3227                for (e = 0; t.length > e; e++)
3228                    if (s) "'" !== t.charAt(e) || n("'") ? i += t.charAt(e) : s = !1;
3229                    else switch (t.charAt(e)) {
3230                        case "d":
3231                        case "m":
3232                        case "y":
3233                        case "@":
3234                            i += "0123456789";
3235                            break;
3236                        case "D":
3237                        case "M":
3238                            return null;
vendor: 4,606 bytes, lines 3239-3317
3239                        case "'":
3240                            n("'") ? i += "'" : s = !0;
3241                            break;
3242                        default:
3243                            i += t.charAt(e)
3244                    }
3245                return i
3246            },
3247            _get: function(t, e) {
3248                return void 0 !== t.settings[e] ? t.settings[e] : this._defaults[e]
3249            },
3250            _setDateFromField: function(t, e) {
3251                if (t.input.val() !== t.lastVal) {
3252                    var i = this._get(t, "dateFormat"),
3253                        s = t.lastVal = t.input ? t.input.val() : null,
3254                        n = this._getDefaultDate(t),
3255                        o = n,
3256                        a = this._getFormatConfig(t);
3257                    try {
3258                        o = this.parseDate(i, s, a) || n
3259                    } catch (t) {
3260                        s = e ? "" : s
3261                    }
3262                    t.selectedDay = o.getDate(), t.drawMonth = t.selectedMonth = o.getMonth(), t.drawYear = t.selectedYear = o.getFullYear(), t.currentDay = s ? o.getDate() : 0, t.currentMonth = s ? o.getMonth() : 0, t.currentYear = s ? o.getFullYear() : 0, this._adjustInstDate(t)
3263                }
3264            },
3265            _getDefaultDate: function(t) {
3266                return this._restrictMinMax(t, this._determineDate(t, this._get(t, "defaultDate"), new Date))
3267            },
3268            _determineDate: function(e, i, s) {
3269                var n = function(t) {
3270                        var e = new Date;
3271                        return e.setDate(e.getDate() + t), e
3272                    },
3273                    o = function(i) {
3274                        try {
3275                            return t.datepicker.parseDate(t.datepicker._get(e, "dateFormat"), i, t.datepicker._getFormatConfig(e))
3276                        } catch (t) {}
3277                        for (var s = (i.toLowerCase().match(/^c/) ? t.datepicker._getDate(e) : null) || new Date, n = s.getFullYear(), o = s.getMonth(), a = s.getDate(), r = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, l = r.exec(i); l;) {
3278                            switch (l[2] || "d") {
3279                                case "d":
3280                                case "D":
3281                                    a += parseInt(l[1], 10);
3282                                    break;
3283                                case "w":
3284                                case "W":
3285                                    a += 7 * parseInt(l[1], 10);
3286                                    break;
3287                                case "m":
3288                                case "M":
3289                                    o += parseInt(l[1], 10), a = Math.min(a, t.datepicker._getDaysInMonth(n, o));
3290                                    break;
3291                                case "y":
3292                                case "Y":
3293                                    n += parseInt(l[1], 10), a = Math.min(a, t.datepicker._getDaysInMonth(n, o))
3294                            }
3295                            l = r.exec(i)
3296                        }
3297                        return new Date(n, o, a)
3298                    },
3299                    a = null == i || "" === i ? s : "string" == typeof i ? o(i) : "number" == typeof i ? isNaN(i) ? s : n(i) : new Date(i.getTime());
3300                return a = a && "Invalid Date" == "" + a ? s : a, a && (a.setHours(0), a.setMinutes(0), a.setSeconds(0), a.setMilliseconds(0)), this._daylightSavingAdjust(a)
3301            },
3302            _daylightSavingAdjust: function(t) {
3303                return t ? (t.setHours(t.getHours() > 12 ? t.getHours() + 2 : 0), t) : null
3304            },
3305            _setDate: function(t, e, i) {
3306                var s = !e,
3307                    n = t.selectedMonth,
3308                    o = t.selectedYear,
3309                    a = this._restrictMinMax(t, this._determineDate(t, e, new Date));
3310                t.selectedDay = t.currentDay = a.getDate(), t.drawMonth = t.selectedMonth = t.currentMonth = a.getMonth(), t.drawYear = t.selectedYear = t.currentYear = a.getFullYear(), n === t.selectedMonth && o === t.selectedYear || i || this._notifyChange(t), this._adjustInstDate(t), t.input && t.input.val(s ? "" : this._formatDate(t))
3311            },
3312            _getDate: function(t) {
3313                return !t.currentYear || t.input && "" === t.input.val() ? null : this._daylightSavingAdjust(new Date(t.currentYear, t.currentMonth, t.currentDay))
3314            },
3315            _attachHandlers: function(e) {
3316                var i = this._get(e, "stepMonths"),
3317                    s = "#" + e.id.replace(/\\\\/g, "\\");
vendor: 11,378 bytes, lines 3318-3418
3318                e.dpDiv.find("[data-handler]").map(function() {
3319                    var e = {
3320                        prev: function() {
3321                            t.datepicker._adjustDate(s, -i, "M")
3322                        },
3323                        next: function() {
3324                            t.datepicker._adjustDate(s, +i, "M")
3325                        },
3326                        hide: function() {
3327                            t.datepicker._hideDatepicker()
3328                        },
3329                        today: function() {
3330                            t.datepicker._gotoToday(s)
3331                        },
3332                        selectDay: function() {
3333                            return t.datepicker._selectDay(s, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this), !1
3334                        },
3335                        selectMonth: function() {
3336                            return t.datepicker._selectMonthYear(s, this, "M"), !1
3337                        },
3338                        selectYear: function() {
3339                            return t.datepicker._selectMonthYear(s, this, "Y"), !1
3340                        }
3341                    };
3342                    t(this).on(this.getAttribute("data-event"), e[this.getAttribute("data-handler")])
3343                })
3344            },
3345            _generateHTML: function(t) {
3346                var e, i, s, n, o, a, r, l, h, c, d, u, p, f, g, m, v, _, b, y, w, k, x, C, D, T, S, I, P, M, E, A, O, N, H, z, $, W, L, F = new Date,
3347                    R = this._daylightSavingAdjust(new Date(F.getFullYear(), F.getMonth(), F.getDate())),
3348                    j = this._get(t, "isRTL"),
3349                    B = this._get(t, "showButtonPanel"),
3350                    q = this._get(t, "hideIfNoPrevNext"),
3351                    Y = this._get(t, "navigationAsDateFormat"),
3352                    U = this._getNumberOfMonths(t),
3353                    V = this._get(t, "showCurrentAtPos"),
3354                    K = this._get(t, "stepMonths"),
3355                    G = 1 !== U[0] || 1 !== U[1],
3356                    X = this._daylightSavingAdjust(t.currentDay ? new Date(t.currentYear, t.currentMonth, t.currentDay) : new Date(9999, 9, 9)),
3357                    Q = this._getMinMaxDate(t, "min"),
3358                    J = this._getMinMaxDate(t, "max"),
3359                    Z = t.drawMonth - V,
3360                    tt = t.drawYear;
3361                if (0 > Z && (Z += 12, tt--), J)
3362                    for (e = this._daylightSavingAdjust(new Date(J.getFullYear(), J.getMonth() - U[0] * U[1] + 1, J.getDate())), e = Q && Q > e ? Q : e; this._daylightSavingAdjust(new Date(tt, Z, 1)) > e;) 0 > --Z && (Z = 11, tt--);
3363                for (t.drawMonth = Z, t.drawYear = tt, i = this._get(t, "prevText"), i = Y ? this.formatDate(i, this._daylightSavingAdjust(new Date(tt, Z - K, 1)), this._getFormatConfig(t)) : i, s = 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-" + (j ? "e" : "w") + "'>" + i + "</span></a>" : q ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + i + "'><span class='ui-icon ui-icon-circle-triangle-" + (j ? "e" : "w") + "'>" + i + "</span></a>", n = this._get(t, "nextText"), n = Y ? this.formatDate(n, this._daylightSavingAdjust(new Date(tt, Z + K, 1)), this._getFormatConfig(t)) : n, o = this._canAdjustMonth(t, 1, tt, Z) ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" + n + "'><span class='ui-icon ui-icon-circle-triangle-" + (j ? "w" : "e") + "'>" + n + "</span></a>" : q ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + n + "'><span class='ui-icon ui-icon-circle-triangle-" + (j ? "w" : "e") + "'>" + n + "</span></a>", a = this._get(t, "currentText"), r = this._get(t, "gotoCurrent") && t.currentDay ? X : R, a = Y ? this.formatDate(a, r, this._getFormatConfig(t)) : a, 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>", h = B ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (j ? l : "") + (this._isInRange(t, r) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" + a + "</button>" : "") + (j ? "" : l) + "</div>" : "", c = parseInt(this._get(t, "firstDay"), 10), c = isNaN(c) ? 0 : c, d = this._get(t, "showWeek"), u = this._get(t, "dayNames"), p = this._get(t, "dayNamesMin"), f = this._get(t, "monthNames"), g = this._get(t, "monthNamesShort"), m = this._get(t, "beforeShowDay"), v = this._get(t, "showOtherMonths"), _ = this._get(t, "selectOtherMonths"), b = this._getDefaultDate(t), y = "", k = 0; U[0] > k; k++) {
3364                    for (x = "", this.maxRows = 4, C = 0; U[1] > C; C++) {
3365                        if (D = this._daylightSavingAdjust(new Date(tt, Z, t.selectedDay)), T = " ui-corner-all", S = "", G) {
3366                            if (S += "<div class='ui-datepicker-group", U[1] > 1) switch (C) {
3367                                case 0:
3368                                    S += " ui-datepicker-group-first", T = " ui-corner-" + (j ? "right" : "left");
3369                                    break;
3370                                case U[1] - 1:
3371                                    S += " ui-datepicker-group-last", T = " ui-corner-" + (j ? "left" : "right");
3372                                    break;
3373                                default:
3374                                    S += " ui-datepicker-group-middle", T = ""
3375                            }
3376                            S += "'>"
3377                        }
3378                        for (S += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + T + "'>" + (/all|left/.test(T) && 0 === k ? j ? o : s : "") + (/all|right/.test(T) && 0 === k ? j ? s : o : "") + this._generateMonthYearHeader(t, Z, tt, Q, J, k > 0 || C > 0, f, g) + "</div><table class='ui-datepicker-calendar'><thead><tr>", I = d ? "<th class='ui-datepicker-week-col'>" + this._get(t, "weekHeader") + "</th>" : "", w = 0; 7 > w; w++) P = (w + c) % 7, I += "<th scope='col'" + ((w + c + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + "><span title='" + u[P] + "'>" + p[P] + "</span></th>";
3379                        for (S += I + "</tr></thead><tbody>", M = this._getDaysInMonth(tt, Z), tt === t.selectedYear && Z === t.selectedMonth && (t.selectedDay = Math.min(t.selectedDay, M)), E = (this._getFirstDayOfMonth(tt, Z) - c + 7) % 7, A = Math.ceil((E + M) / 7), O = G && this.maxRows > A ? this.maxRows : A, this.maxRows = O, N = this._daylightSavingAdjust(new Date(tt, Z, 1 - E)), H = 0; O > H; H++) {
3380                            for (S += "<tr>", z = d ? "<td class='ui-datepicker-week-col'>" + this._get(t, "calculateWeek")(N) + "</td>" : "", w = 0; 7 > w; w++) $ = m ? m.apply(t.input ? t.input[0] : null, [N]) : [!0, ""], W = N.getMonth() !== Z, L = W && !_ || !$[0] || Q && Q > N || J && N > J, z += "<td class='" + ((w + c + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (W ? " ui-datepicker-other-month" : "") + (N.getTime() === D.getTime() && Z === t.selectedMonth && t._keyEvent || b.getTime() === N.getTime() && b.getTime() === D.getTime() ? " " + this._dayOverClass : "") + (L ? " " + this._unselectableClass + " ui-state-disabled" : "") + (W && !v ? "" : " " + $[1] + (N.getTime() === X.getTime() ? " " + this._currentClass : "") + (N.getTime() === R.getTime() ? " ui-datepicker-today" : "")) + "'" + (W && !v || !$[2] ? "" : " title='" + $[2].replace(/'/g, "&#39;") + "'") + (L ? "" : " data-handler='selectDay' data-event='click' data-month='" + N.getMonth() + "' data-year='" + N.getFullYear() + "'") + ">" + (W && !v ? "&#xa0;" : L ? "<span class='ui-state-default'>" + N.getDate() + "</span>" : "<a class='ui-state-default" + (N.getTime() === R.getTime() ? " ui-state-highlight" : "") + (N.getTime() === X.getTime() ? " ui-state-active" : "") + (W ? " ui-priority-secondary" : "") + "' href='#'>" + N.getDate() + "</a>") + "</td>", N.setDate(N.getDate() + 1), N = this._daylightSavingAdjust(N);
3381                            S += z + "</tr>"
3382                        }
3383                        Z++, Z > 11 && (Z = 0, tt++), S += "</tbody></table>" + (G ? "</div>" + (U[0] > 0 && C === U[1] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "") : ""), x += S
3384                    }
3385                    y += x
3386                }
3387                return y += h, t._keyEvent = !1, y
3388            },
3389            _generateMonthYearHeader: function(t, e, i, s, n, o, a, r) {
3390                var l, h, c, d, u, p, f, g, m = this._get(t, "changeMonth"),
3391                    v = this._get(t, "changeYear"),
3392                    _ = this._get(t, "showMonthAfterYear"),
3393                    b = "<div class='ui-datepicker-title'>",
3394                    y = "";
3395                if (o || !m) y += "<span class='ui-datepicker-month'>" + a[e] + "</span>";
3396                else {
3397                    for (l = s && s.getFullYear() === i, h = n && n.getFullYear() === i, y += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>", c = 0; 12 > c; c++)(!l || c >= s.getMonth()) && (!h || n.getMonth() >= c) && (y += "<option value='" + c + "'" + (c === e ? " selected='selected'" : "") + ">" + r[c] + "</option>");
3398                    y += "</select>"
3399                }
3400                if (_ || (b += y + (!o && m && v ? "" : "&#xa0;")), !t.yearshtml)
3401                    if (t.yearshtml = "", o || !v) b += "<span class='ui-datepicker-year'>" + i + "</span>";
3402                    else {
3403                        for (d = this._get(t, "yearRange").split(":"), u = (new Date).getFullYear(), p = function(t) {
3404                                var e = t.match(/c[+\-].*/) ? i + parseInt(t.substring(1), 10) : t.match(/[+\-].*/) ? u + parseInt(t, 10) : parseInt(t, 10);
3405                                return isNaN(e) ? u : e
3406                            }, f = p(d[0]), g = Math.max(f, p(d[1] || "")), f = s ? Math.max(f, s.getFullYear()) : f, g = n ? Math.min(g, n.getFullYear()) : g, t.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; g >= f; f++) t.yearshtml += "<option value='" + f + "'" + (f === i ? " selected='selected'" : "") + ">" + f + "</option>";
3407                        t.yearshtml += "</select>", b += t.yearshtml, t.yearshtml = null
3408                    } return b += this._get(t, "yearSuffix"), _ && (b += (!o && m && v ? "" : "&#xa0;") + y), b += "</div>"
3409            },
3410            _adjustInstDate: function(t, e, i) {
3411                var s = t.selectedYear + ("Y" === i ? e : 0),
3412                    n = t.selectedMonth + ("M" === i ? e : 0),
3413                    o = Math.min(t.selectedDay, this._getDaysInMonth(s, n)) + ("D" === i ? e : 0),
3414                    a = this._restrictMinMax(t, this._daylightSavingAdjust(new Date(s, n, o)));
3415                t.selectedDay = a.getDate(), t.drawMonth = t.selectedMonth = a.getMonth(), t.drawYear = t.selectedYear = a.getFullYear(), ("M" === i || "Y" === i) && this._notifyChange(t)
3416            },
3417            _restrictMinMax: function(t, e) {
3418                var i = this._getMinMaxDate(t, "min"),
vendor: 16,384 bytes, lines 3419-3662
3419                    s = this._getMinMaxDate(t, "max"),
3420                    n = i && i > e ? i : e;
3421                return s && n > s ? s : n
3422            },
3423            _notifyChange: function(t) {
3424                var e = this._get(t, "onChangeMonthYear");
3425                e && e.apply(t.input ? t.input[0] : null, [t.selectedYear, t.selectedMonth + 1, t])
3426            },
3427            _getNumberOfMonths: function(t) {
3428                var e = this._get(t, "numberOfMonths");
3429                return null == e ? [1, 1] : "number" == typeof e ? [1, e] : e
3430            },
3431            _getMinMaxDate: function(t, e) {
3432                return this._determineDate(t, this._get(t, e + "Date"), null)
3433            },
3434            _getDaysInMonth: function(t, e) {
3435                return 32 - this._daylightSavingAdjust(new Date(t, e, 32)).getDate()
3436            },
3437            _getFirstDayOfMonth: function(t, e) {
3438                return new Date(t, e, 1).getDay()
3439            },
3440            _canAdjustMonth: function(t, e, i, s) {
3441                var n = this._getNumberOfMonths(t),
3442                    o = this._daylightSavingAdjust(new Date(i, s + (0 > e ? e : n[0] * n[1]), 1));
3443                return 0 > e && o.setDate(this._getDaysInMonth(o.getFullYear(), o.getMonth())), this._isInRange(t, o)
3444            },
3445            _isInRange: function(t, e) {
3446                var i, s, n = this._getMinMaxDate(t, "min"),
3447                    o = this._getMinMaxDate(t, "max"),
3448                    a = null,
3449                    r = null,
3450                    l = this._get(t, "yearRange");
3451                return l && (i = l.split(":"), s = (new Date).getFullYear(), a = parseInt(i[0], 10), r = parseInt(i[1], 10), i[0].match(/[+\-].*/) && (a += s), i[1].match(/[+\-].*/) && (r += s)), (!n || e.getTime() >= n.getTime()) && (!o || e.getTime() <= o.getTime()) && (!a || e.getFullYear() >= a) && (!r || r >= e.getFullYear())
3452            },
3453            _getFormatConfig: function(t) {
3454                var e = this._get(t, "shortYearCutoff");
3455                return e = "string" != typeof e ? e : (new Date).getFullYear() % 100 + parseInt(e, 10), {
3456                    shortYearCutoff: e,
3457                    dayNamesShort: this._get(t, "dayNamesShort"),
3458                    dayNames: this._get(t, "dayNames"),
3459                    monthNamesShort: this._get(t, "monthNamesShort"),
3460                    monthNames: this._get(t, "monthNames")
3461                }
3462            },
3463            _formatDate: function(t, e, i, s) {
3464                e || (t.currentDay = t.selectedDay, t.currentMonth = t.selectedMonth, t.currentYear = t.selectedYear);
3465                var n = e ? "object" == typeof e ? e : this._daylightSavingAdjust(new Date(s, i, e)) : this._daylightSavingAdjust(new Date(t.currentYear, t.currentMonth, t.currentDay));
3466                return this.formatDate(this._get(t, "dateFormat"), n, this._getFormatConfig(t))
3467            }
3468        }), t.fn.datepicker = function(e) {
3469            if (!this.length) return this;
3470            t.datepicker.initialized || (t(document).on("mousedown", t.datepicker._checkExternalClick), t.datepicker.initialized = !0), 0 === t("#" + t.datepicker._mainDivId).length && t("body").append(t.datepicker.dpDiv);
3471            var i = Array.prototype.slice.call(arguments, 1);
3472            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() {
3473                "string" == typeof e ? t.datepicker["_" + e + "Datepicker"].apply(t.datepicker, [this].concat(i)) : t.datepicker._attachDatepicker(this, e)
3474            }) : t.datepicker["_" + e + "Datepicker"].apply(t.datepicker, [this[0]].concat(i))
3475        }, t.datepicker = new s, t.datepicker.initialized = !1, t.datepicker.uuid = (new Date).getTime(), t.datepicker.version = "1.12.1", t.datepicker, t.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());
3476        var m = !1;
3477        t(document).on("mouseup", function() {
3478            m = !1
3479        }), t.widget("ui.mouse", {
3480            version: "1.12.1",
3481            options: {
3482                cancel: "input, textarea, button, select, option",
3483                distance: 1,
3484                delay: 0
3485            },
3486            _mouseInit: function() {
3487                var e = this;
3488                this.element.on("mousedown." + this.widgetName, function(t) {
3489                    return e._mouseDown(t)
3490                }).on("click." + this.widgetName, function(i) {
3491                    return !0 === t.data(i.target, e.widgetName + ".preventClickEvent") ? (t.removeData(i.target, e.widgetName + ".preventClickEvent"), i.stopImmediatePropagation(), !1) : void 0
3492                }), this.started = !1
3493            },
3494            _mouseDestroy: function() {
3495                this.element.off("." + this.widgetName), this._mouseMoveDelegate && this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate)
3496            },
3497            _mouseDown: function(e) {
3498                if (!m) {
3499                    this._mouseMoved = !1, this._mouseStarted && this._mouseUp(e), this._mouseDownEvent = e;
3500                    var i = this,
3501                        s = 1 === e.which,
3502                        n = !("string" != typeof this.options.cancel || !e.target.nodeName) && t(e.target).closest(this.options.cancel).length;
3503                    return !(s && !n && this._mouseCapture(e)) || (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
3504                        i.mouseDelayMet = !0
3505                    }, this.options.delay)), this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = !1 !== this._mouseStart(e), !this._mouseStarted) ? (e.preventDefault(), !0) : (!0 === t.data(e.target, this.widgetName + ".preventClickEvent") && t.removeData(e.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function(t) {
3506                        return i._mouseMove(t)
3507                    }, this._mouseUpDelegate = function(t) {
3508                        return i._mouseUp(t)
3509                    }, this.document.on("mousemove." + this.widgetName, this._mouseMoveDelegate).on("mouseup." + this.widgetName, this._mouseUpDelegate), e.preventDefault(), m = !0, !0))
3510                }
3511            },
3512            _mouseMove: function(e) {
3513                if (this._mouseMoved) {
3514                    if (t.ui.ie && (!document.documentMode || 9 > document.documentMode) && !e.button) return this._mouseUp(e);
3515                    if (!e.which)
3516                        if (e.originalEvent.altKey || e.originalEvent.ctrlKey || e.originalEvent.metaKey || e.originalEvent.shiftKey) this.ignoreMissingWhich = !0;
3517                        else if (!this.ignoreMissingWhich) return this._mouseUp(e)
3518                }
3519                return (e.which || e.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(e), e.preventDefault()) : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = !1 !== this._mouseStart(this._mouseDownEvent, e), this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)), !this._mouseStarted)
3520            },
3521            _mouseUp: function(e) {
3522                this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, e.target === this._mouseDownEvent.target && t.data(e.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(e)), this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer), delete this._mouseDelayTimer), this.ignoreMissingWhich = !1, m = !1, e.preventDefault()
3523            },
3524            _mouseDistanceMet: function(t) {
3525                return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance
3526            },
3527            _mouseDelayMet: function() {
3528                return this.mouseDelayMet
3529            },
3530            _mouseStart: function() {},
3531            _mouseDrag: function() {},
3532            _mouseStop: function() {},
3533            _mouseCapture: function() {
3534                return !0
3535            }
3536        }), t.ui.plugin = {
3537            add: function(e, i, s) {
3538                var n, o = t.ui[e].prototype;
3539                for (n in s) o.plugins[n] = o.plugins[n] || [], o.plugins[n].push([i, s[n]])
3540            },
3541            call: function(t, e, i, s) {
3542                var n, o = t.plugins[e];
3543                if (o && (s || t.element[0].parentNode && 11 !== t.element[0].parentNode.nodeType))
3544                    for (n = 0; o.length > n; n++) t.options[o[n][0]] && o[n][1].apply(t.element, i)
3545            }
3546        }, t.ui.safeBlur = function(e) {
3547            e && "body" !== e.nodeName.toLowerCase() && t(e).trigger("blur")
3548        }, t.widget("ui.draggable", t.ui.mouse, {
3549            version: "1.12.1",
3550            widgetEventPrefix: "drag",
3551            options: {
3552                addClasses: !0,
3553                appendTo: "parent",
3554                axis: !1,
3555                connectToSortable: !1,
3556                containment: !1,
3557                cursor: "auto",
3558                cursorAt: !1,
3559                grid: !1,
3560                handle: !1,
3561                helper: "original",
3562                iframeFix: !1,
3563                opacity: !1,
3564                refreshPositions: !1,
3565                revert: !1,
3566                revertDuration: 500,
3567                scope: "default",
3568                scroll: !0,
3569                scrollSensitivity: 20,
3570                scrollSpeed: 20,
3571                snap: !1,
3572                snapMode: "both",
3573                snapTolerance: 20,
3574                stack: !1,
3575                zIndex: !1,
3576                drag: null,
3577                start: null,
3578                stop: null
3579            },
3580            _create: function() {
3581                "original" === this.options.helper && this._setPositionRelative(), this.options.addClasses && this._addClass("ui-draggable"), this._setHandleClassName(), this._mouseInit()
3582            },
3583            _setOption: function(t, e) {
3584                this._super(t, e), "handle" === t && (this._removeHandleClassName(), this._setHandleClassName())
3585            },
3586            _destroy: function() {
3587                return (this.helper || this.element).is(".ui-draggable-dragging") ? void(this.destroyOnClear = !0) : (this._removeHandleClassName(), void this._mouseDestroy())
3588            },
3589            _mouseCapture: function(e) {
3590                var i = this.options;
3591                return !(this.helper || i.disabled || t(e.target).closest(".ui-resizable-handle").length > 0) && (this.handle = this._getHandle(e), !!this.handle && (this._blurActiveElement(e), this._blockFrames(!0 === i.iframeFix ? "iframe" : i.iframeFix), !0))
3592            },
3593            _blockFrames: function(e) {
3594                this.iframeBlocks = this.document.find(e).map(function() {
3595                    var e = t(this);
3596                    return t("<div>").css("position", "absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]
3597                })
3598            },
3599            _unblockFrames: function() {
3600                this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks)
3601            },
3602            _blurActiveElement: function(e) {
3603                var i = t.ui.safeActiveElement(this.document[0]);
3604                t(e.target).closest(i).length || t.ui.safeBlur(i)
3605            },
3606            _mouseStart: function(e) {
3607                var i = this.options;
3608                return this.helper = this._createHelper(e), this._addClass(this.helper, "ui-draggable-dragging"), this._cacheHelperProportions(), t.ui.ddmanager && (t.ui.ddmanager.current = this), this._cacheMargins(), this.cssPosition = this.helper.css("position"), this.scrollParent = this.helper.scrollParent(!0), this.offsetParent = this.helper.offsetParent(), this.hasFixedAncestor = this.helper.parents().filter(function() {
3609                    return "fixed" === t(this).css("position")
3610                }).length > 0, this.positionAbs = this.element.offset(), this._refreshOffsets(e), this.originalPosition = this.position = this._generatePosition(e, !1), this.originalPageX = e.pageX, this.originalPageY = e.pageY, i.cursorAt && this._adjustOffsetFromHelper(i.cursorAt), this._setContainment(), !1 === this._trigger("start", e) ? (this._clear(), !1) : (this._cacheHelperProportions(), t.ui.ddmanager && !i.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e), this._mouseDrag(e, !0), t.ui.ddmanager && t.ui.ddmanager.dragStart(this, e), !0)
3611            },
3612            _refreshOffsets: function(t) {
3613                this.offset = {
3614                    top: this.positionAbs.top - this.margins.top,
3615                    left: this.positionAbs.left - this.margins.left,
3616                    scroll: !1,
3617                    parent: this._getParentOffset(),
3618                    relative: this._getRelativeOffset()
3619                }, this.offset.click = {
3620                    left: t.pageX - this.offset.left,
3621                    top: t.pageY - this.offset.top
3622                }
3623            },
3624            _mouseDrag: function(e, i) {
3625                if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()), this.position = this._generatePosition(e, !0), this.positionAbs = this._convertPositionTo("absolute"), !i) {
3626                    var s = this._uiHash();
3627                    if (!1 === this._trigger("drag", e, s)) return this._mouseUp(new t.Event("mouseup", e)), !1;
3628                    this.position = s.position
3629                }
3630                return this.helper[0].style.left = this.position.left + "px", this.helper[0].style.top = this.position.top + "px", t.ui.ddmanager && t.ui.ddmanager.drag(this, e), !1
3631            },
3632            _mouseStop: function(e) {
3633                var i = this,
3634                    s = !1;
3635                return t.ui.ddmanager && !this.options.dropBehaviour && (s = t.ui.ddmanager.drop(this, e)), this.dropped && (s = this.dropped, this.dropped = !1), "invalid" === this.options.revert && !s || "valid" === this.options.revert && s || !0 === this.options.revert || t.isFunction(this.options.revert) && this.options.revert.call(this.element, s) ? t(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
3636                    !1 !== i._trigger("stop", e) && i._clear()
3637                }) : !1 !== this._trigger("stop", e) && this._clear(), !1
3638            },
3639            _mouseUp: function(e) {
3640                return this._unblockFrames(), t.ui.ddmanager && t.ui.ddmanager.dragStop(this, e), this.handleElement.is(e.target) && this.element.trigger("focus"), t.ui.mouse.prototype._mouseUp.call(this, e)
3641            },
3642            cancel: function() {
3643                return this.helper.is(".ui-draggable-dragging") ? this._mouseUp(new t.Event("mouseup", {
3644                    target: this.element[0]
3645                })) : this._clear(), this
3646            },
3647            _getHandle: function(e) {
3648                return !this.options.handle || !!t(e.target).closest(this.element.find(this.options.handle)).length
3649            },
3650            _setHandleClassName: function() {
3651                this.handleElement = this.options.handle ? this.element.find(this.options.handle) : this.element, this._addClass(this.handleElement, "ui-draggable-handle")
3652            },
3653            _removeHandleClassName: function() {
3654                this._removeClass(this.handleElement, "ui-draggable-handle")
3655            },
3656            _createHelper: function(e) {
3657                var i = this.options,
3658                    s = t.isFunction(i.helper),
3659                    n = s ? t(i.helper.apply(this.element[0], [e])) : "clone" === i.helper ? this.element.clone().removeAttr("id") : this.element;
3660                return n.parents("body").length || n.appendTo("parent" === i.appendTo ? this.element[0].parentNode : i.appendTo), s && n[0] === this.element[0] && this._setPositionRelative(), n[0] === this.element[0] || /(fixed|absolute)/.test(n.css("position")) || n.css("position", "absolute"), n
3661            },
3662      
vendor: 1,260 bytes, lines 3662-3677
3662      _setPositionRelative: function() {
3663                /^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative")
3664            },
3665            _adjustOffsetFromHelper: function(e) {
3666                "string" == typeof e && (e = e.split(" ")), t.isArray(e) && (e = {
3667                    left: +e[0],
3668                    top: +e[1] || 0
3669                }), "left" in e && (this.offset.click.left = e.left + this.margins.left), "right" in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left), "top" in e && (this.offset.click.top = e.top + this.margins.top), "bottom" in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top)
3670            },
3671            _isRootNode: function(t) {
3672                return /(html|body)/i.test(t.tagName) || t === this.document[0]
3673            },
3674            _getParentOffset: function() {
3675                var e = this.offsetParent.offset(),
3676                    i = this.document[0];
3677                return "absolute" === this.cssPosition && this.scrollParent[0] !== i && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(), e.top += this.scrollParent.scrollTop()), this._isRo
vendor: 4,182 bytes, lines 3677-3726
3677otNode(this.offsetParent[0]) && (e = {
3678                    top: 0,
3679                    left: 0
3680                }), {
3681                    top: e.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
3682                    left: e.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
3683                }
3684            },
3685            _getRelativeOffset: function() {
3686                if ("relative" !== this.cssPosition) return {
3687                    top: 0,
3688                    left: 0
3689                };
3690                var t = this.element.position(),
3691                    e = this._isRootNode(this.scrollParent[0]);
3692                return {
3693                    top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + (e ? 0 : this.scrollParent.scrollTop()),
3694                    left: t.left - (parseInt(this.helper.css("left"), 10) || 0) + (e ? 0 : this.scrollParent.scrollLeft())
3695                }
3696            },
3697            _cacheMargins: function() {
3698                this.margins = {
3699                    left: parseInt(this.element.css("marginLeft"), 10) || 0,
3700                    top: parseInt(this.element.css("marginTop"), 10) || 0,
3701                    right: parseInt(this.element.css("marginRight"), 10) || 0,
3702                    bottom: parseInt(this.element.css("marginBottom"), 10) || 0
3703                }
3704            },
3705            _cacheHelperProportions: function() {
3706                this.helperProportions = {
3707                    width: this.helper.outerWidth(),
3708                    height: this.helper.outerHeight()
3709                }
3710            },
3711            _setContainment: function() {
3712                var e, i, s, n = this.options,
3713                    o = this.document[0];
3714                return this.relativeContainer = null, n.containment ? "window" === n.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" === n.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]) : n.containment.constructor === Array ? void(this.containment = n.containment) : ("parent" === n.containment && (n.containment = this.helper[0].parentNode), i = t(n.containment), void((s = i[0]) && (e = /(scroll|auto)/.test(i.css("overflow")), 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(s.scrollWidth, s.offsetWidth) : s.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(s.scrollHeight, s.offsetHeight) : s.offsetHeight) - (parseInt(i.css("borderBottomWidth"), 10) || 0) - (parseInt(i.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], this.relativeContainer = i))) : void(this.containment = null)
3715            },
3716            _convertPositionTo: function(t, e) {
3717                e || (e = this.position);
3718                var i = "absolute" === t ? 1 : -1,
3719                    s = this._isRootNode(this.scrollParent[0]);
3720                return {
3721                    top: e.top + this.offset.relative.top * i + this.offset.parent.top * i - ("fixed" === this.cssPosition ? -this.offset.scroll.top : s ? 0 : this.offset.scroll.top) * i,
3722                    left: e.left + this.offset.relative.left * i + this.offset.parent.left * i - ("fixed" === this.cssPosition ? -this.offset.scroll.left : s ? 0 : this.offset.scroll.left) * i
3723                }
3724            },
3725            _generatePosition: function(t, e) {
3726                var i, s, n, o, a = this.options,
vendor: 2,429 bytes, lines 3727-3742
3727                    r = this._isRootNode(this.scrollParent[0]),
3728                    l = t.pageX,
3729                    h = t.pageY;
3730                return r && this.offset.scroll || (this.offset.scroll = {
3731                    top: this.scrollParent.scrollTop(),
3732                    left: this.scrollParent.scrollLeft()
3733                }), e && (this.containment && (this.relativeContainer ? (s = this.relativeContainer.offset(), i = [this.containment[0] + s.left, this.containment[1] + s.top, this.containment[2] + s.left, this.containment[3] + s.top]) : i = this.containment, t.pageX - this.offset.click.left < i[0] && (l = i[0] + this.offset.click.left), t.pageY - this.offset.click.top < i[1] && (h = i[1] + this.offset.click.top), t.pageX - this.offset.click.left > i[2] && (l = i[2] + this.offset.click.left), t.pageY - this.offset.click.top > i[3] && (h = i[3] + this.offset.click.top)), a.grid && (n = a.grid[1] ? this.originalPageY + Math.round((h - this.originalPageY) / a.grid[1]) * a.grid[1] : this.originalPageY, h = i ? n - this.offset.click.top >= i[1] || n - this.offset.click.top > i[3] ? n : n - this.offset.click.top >= i[1] ? n - a.grid[1] : n + a.grid[1] : n, o = a.grid[0] ? this.originalPageX + Math.round((l - this.originalPageX) / a.grid[0]) * a.grid[0] : this.originalPageX, 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 - a.grid[0] : o + a.grid[0] : o), "y" === a.axis && (l = this.originalPageX), "x" === a.axis && (h = this.originalPageY)), {
3734                    top: h - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.offset.scroll.top : r ? 0 : this.offset.scroll.top),
3735                    left: l - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.offset.scroll.left : r ? 0 : this.offset.scroll.left)
3736                }
3737            },
3738            _clear: function() {
3739                this._removeClass(this.helper, "ui-draggable-dragging"), this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(), this.helper = null, this.cancelHelperRemoval = !1, this.destroyOnClear && this.destroy()
3740            },
3741            _trigger: function(e, i, s) {
3742                return s = s || this._uiHash(), t.ui.plugin.call(this, e, [i, s, this], !0), /^(drag|start|stop
vendor: 9,867 bytes, lines 3742-3876
3742)/.test(e) && (this.positionAbs = this._convertPositionTo("absolute"), s.offset = this.positionAbs), t.Widget.prototype._trigger.call(this, e, i, s)
3743            },
3744            plugins: {},
3745            _uiHash: function() {
3746                return {
3747                    helper: this.helper,
3748                    position: this.position,
3749                    originalPosition: this.originalPosition,
3750                    offset: this.positionAbs
3751                }
3752            }
3753        }), t.ui.plugin.add("draggable", "connectToSortable", {
3754            start: function(e, i, s) {
3755                var n = t.extend({}, i, {
3756                    item: s.element
3757                });
3758                s.sortables = [], t(s.options.connectToSortable).each(function() {
3759                    var i = t(this).sortable("instance");
3760                    i && !i.options.disabled && (s.sortables.push(i), i.refreshPositions(), i._trigger("activate", e, n))
3761                })
3762            },
3763            stop: function(e, i, s) {
3764                var n = t.extend({}, i, {
3765                    item: s.element
3766                });
3767                s.cancelHelperRemoval = !1, t.each(s.sortables, function() {
3768                    var t = this;
3769                    t.isOver ? (t.isOver = 0, s.cancelHelperRemoval = !0, t.cancelHelperRemoval = !1, t._storedCSS = {
3770                        position: t.placeholder.css("position"),
3771                        top: t.placeholder.css("top"),
3772                        left: t.placeholder.css("left")
3773                    }, t._mouseStop(e), t.options.helper = t.options._helper) : (t.cancelHelperRemoval = !0, t._trigger("deactivate", e, n))
3774                })
3775            },
3776            drag: function(e, i, s) {
3777                t.each(s.sortables, function() {
3778                    var n = !1,
3779                        o = this;
3780                    o.positionAbs = s.positionAbs, o.helperProportions = s.helperProportions, o.offset.click = s.offset.click, o._intersectsWith(o.containerCache) && (n = !0, t.each(s.sortables, function() {
3781                        return this.positionAbs = s.positionAbs, this.helperProportions = s.helperProportions, this.offset.click = s.offset.click, this !== o && this._intersectsWith(this.containerCache) && t.contains(o.element[0], this.element[0]) && (n = !1), n
3782                    })), n ? (o.isOver || (o.isOver = 1, s._parent = i.helper.parent(), o.currentItem = i.helper.appendTo(o.element).data("ui-sortable-item", !0), o.options._helper = o.options.helper, o.options.helper = function() {
3783                        return i.helper[0]
3784                    }, e.target = o.currentItem[0], o._mouseCapture(e, !0), o._mouseStart(e, !0, !0), o.offset.click.top = s.offset.click.top, o.offset.click.left = s.offset.click.left, o.offset.parent.left -= s.offset.parent.left - o.offset.parent.left, o.offset.parent.top -= s.offset.parent.top - o.offset.parent.top, s._trigger("toSortable", e), s.dropped = o.element, t.each(s.sortables, function() {
3785                        this.refreshPositions()
3786                    }), s.currentItem = s.element, o.fromOutside = s), o.currentItem && (o._mouseDrag(e), i.position = o.position)) : o.isOver && (o.isOver = 0, o.cancelHelperRemoval = !0, o.options._revert = o.options.revert, o.options.revert = !1, o._trigger("out", e, o._uiHash(o)), o._mouseStop(e, !0), o.options.revert = o.options._revert, o.options.helper = o.options._helper, o.placeholder && o.placeholder.remove(), i.helper.appendTo(s._parent), s._refreshOffsets(e), i.position = s._generatePosition(e, !0), s._trigger("fromSortable", e), s.dropped = !1, t.each(s.sortables, function() {
3787                        this.refreshPositions()
3788                    }))
3789                })
3790            }
3791        }), t.ui.plugin.add("draggable", "cursor", {
3792            start: function(e, i, s) {
3793                var n = t("body"),
3794                    o = s.options;
3795                n.css("cursor") && (o._cursor = n.css("cursor")), n.css("cursor", o.cursor)
3796            },
3797            stop: function(e, i, s) {
3798                var n = s.options;
3799                n._cursor && t("body").css("cursor", n._cursor)
3800            }
3801        }), t.ui.plugin.add("draggable", "opacity", {
3802            start: function(e, i, s) {
3803                var n = t(i.helper),
3804                    o = s.options;
3805                n.css("opacity") && (o._opacity = n.css("opacity")), n.css("opacity", o.opacity)
3806            },
3807            stop: function(e, i, s) {
3808                var n = s.options;
3809                n._opacity && t(i.helper).css("opacity", n._opacity)
3810            }
3811        }), t.ui.plugin.add("draggable", "scroll", {
3812            start: function(t, e, i) {
3813                i.scrollParentNotHidden || (i.scrollParentNotHidden = i.helper.scrollParent(!1)), i.scrollParentNotHidden[0] !== i.document[0] && "HTML" !== i.scrollParentNotHidden[0].tagName && (i.overflowOffset = i.scrollParentNotHidden.offset())
3814            },
3815            drag: function(e, i, s) {
3816                var n = s.options,
3817                    o = !1,
3818                    a = s.scrollParentNotHidden[0],
3819                    r = s.document[0];
3820                a !== r && "HTML" !== a.tagName ? (n.axis && "x" === n.axis || (s.overflowOffset.top + a.offsetHeight - e.pageY < n.scrollSensitivity ? a.scrollTop = o = a.scrollTop + n.scrollSpeed : e.pageY - s.overflowOffset.top < n.scrollSensitivity && (a.scrollTop = o = a.scrollTop - n.scrollSpeed)), n.axis && "y" === n.axis || (s.overflowOffset.left + a.offsetWidth - e.pageX < n.scrollSensitivity ? a.scrollLeft = o = a.scrollLeft + n.scrollSpeed : e.pageX - s.overflowOffset.left < n.scrollSensitivity && (a.scrollLeft = o = a.scrollLeft - n.scrollSpeed))) : (n.axis && "x" === n.axis || (e.pageY - t(r).scrollTop() < n.scrollSensitivity ? o = t(r).scrollTop(t(r).scrollTop() - n.scrollSpeed) : t(window).height() - (e.pageY - t(r).scrollTop()) < n.scrollSensitivity && (o = t(r).scrollTop(t(r).scrollTop() + n.scrollSpeed))), n.axis && "y" === n.axis || (e.pageX - t(r).scrollLeft() < n.scrollSensitivity ? o = t(r).scrollLeft(t(r).scrollLeft() - n.scrollSpeed) : t(window).width() - (e.pageX - t(r).scrollLeft()) < n.scrollSensitivity && (o = t(r).scrollLeft(t(r).scrollLeft() + n.scrollSpeed)))), !1 !== o && t.ui.ddmanager && !n.dropBehaviour && t.ui.ddmanager.prepareOffsets(s, e)
3821            }
3822        }), t.ui.plugin.add("draggable", "snap", {
3823            start: function(e, i, s) {
3824                var n = s.options;
3825                s.snapElements = [], t(n.snap.constructor !== String ? n.snap.items || ":data(ui-draggable)" : n.snap).each(function() {
3826                    var e = t(this),
3827                        i = e.offset();
3828                    this !== s.element[0] && s.snapElements.push({
3829                        item: this,
3830                        width: e.outerWidth(),
3831                        height: e.outerHeight(),
3832                        top: i.top,
3833                        left: i.left
3834                    })
3835                })
3836            },
3837            drag: function(e, i, s) {
3838                var n, o, a, r, l, h, c, d, u, p, f = s.options,
3839                    g = f.snapTolerance,
3840                    m = i.offset.left,
3841                    v = m + s.helperProportions.width,
3842                    _ = i.offset.top,
3843                    b = _ + s.helperProportions.height;
3844                for (u = s.snapElements.length - 1; u >= 0; u--) l = s.snapElements[u].left - s.margins.left, h = l + s.snapElements[u].width, c = s.snapElements[u].top - s.margins.top, d = c + s.snapElements[u].height, l - g > v || m > h + g || c - g > b || _ > d + g || !t.contains(s.snapElements[u].item.ownerDocument, s.snapElements[u].item) ? (s.snapElements[u].snapping && s.options.snap.release && s.options.snap.release.call(s.element, e, t.extend(s._uiHash(), {
3845                    snapItem: s.snapElements[u].item
3846                })), s.snapElements[u].snapping = !1) : ("inner" !== f.snapMode && (n = g >= Math.abs(c - b), o = g >= Math.abs(d - _), a = g >= Math.abs(l - v), r = g >= Math.abs(h - m), n && (i.position.top = s._convertPositionTo("relative", {
3847                    top: c - s.helperProportions.height,
3848                    left: 0
3849                }).top), o && (i.position.top = s._convertPositionTo("relative", {
3850                    top: d,
3851                    left: 0
3852                }).top), a && (i.position.left = s._convertPositionTo("relative", {
3853                    top: 0,
3854                    left: l - s.helperProportions.width
3855                }).left), r && (i.position.left = s._convertPositionTo("relative", {
3856                    top: 0,
3857                    left: h
3858                }).left)), p = n || o || a || r, "outer" !== f.snapMode && (n = g >= Math.abs(c - _), o = g >= Math.abs(d - b), a = g >= Math.abs(l - m), r = g >= Math.abs(h - v), n && (i.position.top = s._convertPositionTo("relative", {
3859                    top: c,
3860                    left: 0
3861                }).top), o && (i.position.top = s._convertPositionTo("relative", {
3862                    top: d - s.helperProportions.height,
3863                    left: 0
3864                }).top), a && (i.position.left = s._convertPositionTo("relative", {
3865                    top: 0,
3866                    left: l
3867                }).left), r && (i.position.left = s._convertPositionTo("relative", {
3868                    top: 0,
3869                    left: h - s.helperProportions.width
3870                }).left)), !s.snapElements[u].snapping && (n || o || a || r || p) && s.options.snap.snap && s.options.snap.snap.call(s.element, e, t.extend(s._uiHash(), {
3871                    snapItem: s.snapElements[u].item
3872                })), s.snapElements[u].snapping = n || o || a || r || p)
3873            }
3874        }), t.ui.plugin.add("draggable", "stack", {
3875            start: function(e, i, s) {
3876                var n, o = s.options,
vendor: 22,264 bytes, lines 3877-4243
3877                    a = t.makeArray(t(o.stack)).sort(function(e, i) {
3878                        return (parseInt(t(e).css("zIndex"), 10) || 0) - (parseInt(t(i).css("zIndex"), 10) || 0)
3879                    });
3880                a.length && (n = parseInt(t(a[0]).css("zIndex"), 10) || 0, t(a).each(function(e) {
3881                    t(this).css("zIndex", n + e)
3882                }), this.css("zIndex", n + a.length))
3883            }
3884        }), t.ui.plugin.add("draggable", "zIndex", {
3885            start: function(e, i, s) {
3886                var n = t(i.helper),
3887                    o = s.options;
3888                n.css("zIndex") && (o._zIndex = n.css("zIndex")), n.css("zIndex", o.zIndex)
3889            },
3890            stop: function(e, i, s) {
3891                var n = s.options;
3892                n._zIndex && t(i.helper).css("zIndex", n._zIndex)
3893            }
3894        }), t.ui.draggable, t.widget("ui.resizable", t.ui.mouse, {
3895            version: "1.12.1",
3896            widgetEventPrefix: "resize",
3897            options: {
3898                alsoResize: !1,
3899                animate: !1,
3900                animateDuration: "slow",
3901                animateEasing: "swing",
3902                aspectRatio: !1,
3903                autoHide: !1,
3904                classes: {
3905                    "ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se"
3906                },
3907                containment: !1,
3908                ghost: !1,
3909                grid: !1,
3910                handles: "e,s,se",
3911                helper: !1,
3912                maxHeight: null,
3913                maxWidth: null,
3914                minHeight: 10,
3915                minWidth: 10,
3916                zIndex: 90,
3917                resize: null,
3918                start: null,
3919                stop: null
3920            },
3921            _num: function(t) {
3922                return parseFloat(t) || 0
3923            },
3924            _isNumber: function(t) {
3925                return !isNaN(parseFloat(t))
3926            },
3927            _hasScroll: function(e, i) {
3928                if ("hidden" === t(e).css("overflow")) return !1;
3929                var s = i && "left" === i ? "scrollLeft" : "scrollTop",
3930                    n = !1;
3931                return e[s] > 0 || (e[s] = 1, n = e[s] > 0, e[s] = 0, n)
3932            },
3933            _create: function() {
3934                var e, i = this.options,
3935                    s = this;
3936                this._addClass("ui-resizable"), t.extend(this, {
3937                    _aspectRatio: !!i.aspectRatio,
3938                    aspectRatio: i.aspectRatio,
3939                    originalElement: this.element,
3940                    _proportionallyResizeElements: [],
3941                    _helper: i.helper || i.ghost || i.animate ? i.helper || "ui-resizable-helper" : null
3942                }), 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({
3943                    position: this.element.css("position"),
3944                    width: this.element.outerWidth(),
3945                    height: this.element.outerHeight(),
3946                    top: this.element.css("top"),
3947                    left: this.element.css("left")
3948                })), this.element = this.element.parent().data("ui-resizable", this.element.resizable("instance")), this.elementIsWrapper = !0, e = {
3949                    marginTop: this.originalElement.css("marginTop"),
3950                    marginRight: this.originalElement.css("marginRight"),
3951                    marginBottom: this.originalElement.css("marginBottom"),
3952                    marginLeft: this.originalElement.css("marginLeft")
3953                }, this.element.css(e), this.originalElement.css("margin", 0), this.originalResizeStyle = this.originalElement.css("resize"), this.originalElement.css("resize", "none"), this._proportionallyResizeElements.push(this.originalElement.css({
3954                    position: "static",
3955                    zoom: 1,
3956                    display: "block"
3957                })), this.originalElement.css(e), this._proportionallyResize()), this._setupHandles(), i.autoHide && t(this.element).on("mouseenter", function() {
3958                    i.disabled || (s._removeClass("ui-resizable-autohide"), s._handles.show())
3959                }).on("mouseleave", function() {
3960                    i.disabled || s.resizing || (s._addClass("ui-resizable-autohide"), s._handles.hide())
3961                }), this._mouseInit()
3962            },
3963            _destroy: function() {
3964                this._mouseDestroy();
3965                var e, i = function(e) {
3966                    t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()
3967                };
3968                return this.elementIsWrapper && (i(this.element), e = this.element, this.originalElement.css({
3969                    position: e.css("position"),
3970                    width: e.outerWidth(),
3971                    height: e.outerHeight(),
3972                    top: e.css("top"),
3973                    left: e.css("left")
3974                }).insertAfter(e), e.remove()), this.originalElement.css("resize", this.originalResizeStyle), i(this.originalElement), this
3975            },
3976            _setOption: function(t, e) {
3977                switch (this._super(t, e), t) {
3978                    case "handles":
3979                        this._removeHandles(), this._setupHandles()
3980                }
3981            },
3982            _setupHandles: function() {
3983                var e, i, s, n, o, a = this.options,
3984                    r = this;
3985                if (this.handles = a.handles || (t(".ui-resizable-handle", this.element).length ? {
3986                        n: ".ui-resizable-n",
3987                        e: ".ui-resizable-e",
3988                        s: ".ui-resizable-s",
3989                        w: ".ui-resizable-w",
3990                        se: ".ui-resizable-se",
3991                        sw: ".ui-resizable-sw",
3992                        ne: ".ui-resizable-ne",
3993                        nw: ".ui-resizable-nw"
3994                    } : "e,s,se"), this._handles = t(), this.handles.constructor === String)
3995                    for ("all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"), s = this.handles.split(","), this.handles = {}, i = 0; s.length > i; i++) e = t.trim(s[i]), n = "ui-resizable-" + e, o = t("<div>"), this._addClass(o, "ui-resizable-handle " + n), o.css({
3996                        zIndex: a.zIndex
3997                    }), this.handles[e] = ".ui-resizable-" + e, this.element.append(o);
3998                this._renderAxis = function(e) {
3999                    var i, s, n, o;
4000                    e = e || this.element;
4001                    for (i in this.handles) 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]), this._on(this.handles[i], {
4002                        mousedown: r._mouseDown
4003                    })), this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i) && (s = t(this.handles[i], this.element), o = /sw|ne|nw|se|n|s/.test(i) ? s.outerHeight() : s.outerWidth(), n = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join(""), e.css(n, o), this._proportionallyResize()), this._handles = this._handles.add(this.handles[i])
4004                }, this._renderAxis(this.element), this._handles = this._handles.add(this.element.find(".ui-resizable-handle")), this._handles.disableSelection(), this._handles.on("mouseover", function() {
4005                    r.resizing || (this.className && (o = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)), r.axis = o && o[1] ? o[1] : "se")
4006                }), a.autoHide && (this._handles.hide(), this._addClass("ui-resizable-autohide"))
4007            },
4008            _removeHandles: function() {
4009                this._handles.remove()
4010            },
4011            _mouseCapture: function(e) {
4012                var i, s, n = !1;
4013                for (i in this.handles)((s = t(this.handles[i])[0]) === e.target || t.contains(s, e.target)) && (n = !0);
4014                return !this.options.disabled && n
4015            },
4016            _mouseStart: function(e) {
4017                var i, s, n, o = this.options,
4018                    a = this.element;
4019                return this.resizing = !0, this._renderProxy(), i = this._num(this.helper.css("left")), s = this._num(this.helper.css("top")), o.containment && (i += t(o.containment).scrollLeft() || 0, s += t(o.containment).scrollTop() || 0), this.offset = this.helper.offset(), this.position = {
4020                    left: i,
4021                    top: s
4022                }, this.size = this._helper ? {
4023                    width: this.helper.width(),
4024                    height: this.helper.height()
4025                } : {
4026                    width: a.width(),
4027                    height: a.height()
4028                }, this.originalSize = this._helper ? {
4029                    width: a.outerWidth(),
4030                    height: a.outerHeight()
4031                } : {
4032                    width: a.width(),
4033                    height: a.height()
4034                }, this.sizeDiff = {
4035                    width: a.outerWidth() - a.width(),
4036                    height: a.outerHeight() - a.height()
4037                }, this.originalPosition = {
4038                    left: i,
4039                    top: s
4040                }, this.originalMousePosition = {
4041                    left: e.pageX,
4042                    top: e.pageY
4043                }, this.aspectRatio = "number" == typeof o.aspectRatio ? o.aspectRatio : this.originalSize.width / this.originalSize.height || 1, n = t(".ui-resizable-" + this.axis).css("cursor"), t("body").css("cursor", "auto" === n ? this.axis + "-resize" : n), this._addClass("ui-resizable-resizing"), this._propagate("start", e), !0
4044            },
4045            _mouseDrag: function(e) {
4046                var i, s, n = this.originalMousePosition,
4047                    o = this.axis,
4048                    a = e.pageX - n.left || 0,
4049                    r = e.pageY - n.top || 0,
4050                    l = this._change[o];
4051                return this._updatePrevProperties(), !!l && (i = l.apply(this, [e, a, r]), this._updateVirtualBoundaries(e.shiftKey), (this._aspectRatio || e.shiftKey) && (i = this._updateRatio(i, e)), i = this._respectSize(i, e), this._updateCache(i), this._propagate("resize", e), s = this._applyChanges(), !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(), t.isEmptyObject(s) || (this._updatePrevProperties(), this._trigger("resize", e, this.ui()), this._applyChanges()), !1)
4052            },
4053            _mouseStop: function(e) {
4054                this.resizing = !1;
4055                var i, s, n, o, a, r, l, h = this.options,
4056                    c = this;
4057                return this._helper && (i = this._proportionallyResizeElements, s = i.length && /textarea/i.test(i[0].nodeName), n = s && this._hasScroll(i[0], "left") ? 0 : c.sizeDiff.height, o = s ? 0 : c.sizeDiff.width, a = {
4058                    width: c.helper.width() - o,
4059                    height: c.helper.height() - n
4060                }, r = parseFloat(c.element.css("left")) + (c.position.left - c.originalPosition.left) || null, l = parseFloat(c.element.css("top")) + (c.position.top - c.originalPosition.top) || null, h.animate || this.element.css(t.extend(a, {
4061                    top: l,
4062                    left: r
4063                })), c.helper.height(c.size.height), c.helper.width(c.size.width), this._helper && !h.animate && this._proportionallyResize()), t("body").css("cursor", "auto"), this._removeClass("ui-resizable-resizing"), this._propagate("stop", e), this._helper && this.helper.remove(), !1
4064            },
4065            _updatePrevProperties: function() {
4066                this.prevPosition = {
4067                    top: this.position.top,
4068                    left: this.position.left
4069                }, this.prevSize = {
4070                    width: this.size.width,
4071                    height: this.size.height
4072                }
4073            },
4074            _applyChanges: function() {
4075                var t = {};
4076                return this.position.top !== this.prevPosition.top && (t.top = this.position.top + "px"), this.position.left !== this.prevPosition.left && (t.left = this.position.left + "px"), this.size.width !== this.prevSize.width && (t.width = this.size.width + "px"), this.size.height !== this.prevSize.height && (t.height = this.size.height + "px"), this.helper.css(t), t
4077            },
4078            _updateVirtualBoundaries: function(t) {
4079                var e, i, s, n, o, a = this.options;
4080                o = {
4081                    minWidth: this._isNumber(a.minWidth) ? a.minWidth : 0,
4082                    maxWidth: this._isNumber(a.maxWidth) ? a.maxWidth : 1 / 0,
4083                    minHeight: this._isNumber(a.minHeight) ? a.minHeight : 0,
4084                    maxHeight: this._isNumber(a.maxHeight) ? a.maxHeight : 1 / 0
4085                }, (this._aspectRatio || t) && (e = o.minHeight * this.aspectRatio, s = o.minWidth / this.aspectRatio, i = o.maxHeight * this.aspectRatio, n = o.maxWidth / this.aspectRatio, e > o.minWidth && (o.minWidth = e), s > o.minHeight && (o.minHeight = s), o.maxWidth > i && (o.maxWidth = i), o.maxHeight > n && (o.maxHeight = n)), this._vBoundaries = o
4086            },
4087            _updateCache: function(t) {
4088                this.offset = this.helper.offset(), this._isNumber(t.left) && (this.position.left = t.left), this._isNumber(t.top) && (this.position.top = t.top), this._isNumber(t.height) && (this.size.height = t.height), this._isNumber(t.width) && (this.size.width = t.width)
4089            },
4090            _updateRatio: function(t) {
4091                var e = this.position,
4092                    i = this.size,
4093                    s = this.axis;
4094                return this._isNumber(t.height) ? t.width = t.height * this.aspectRatio : this._isNumber(t.width) && (t.height = t.width / this.aspectRatio), "sw" === s && (t.left = e.left + (i.width - t.width), t.top = null), "nw" === s && (t.top = e.top + (i.height - t.height), t.left = e.left + (i.width - t.width)), t
4095            },
4096            _respectSize: function(t) {
4097                var e = this._vBoundaries,
4098                    i = this.axis,
4099                    s = this._isNumber(t.width) && e.maxWidth && e.maxWidth < t.width,
4100                    n = this._isNumber(t.height) && e.maxHeight && e.maxHeight < t.height,
4101                    o = this._isNumber(t.width) && e.minWidth && e.minWidth > t.width,
4102                    a = this._isNumber(t.height) && e.minHeight && e.minHeight > t.height,
4103                    r = this.originalPosition.left + this.originalSize.width,
4104                    l = this.originalPosition.top + this.originalSize.height,
4105                    h = /sw|nw|w/.test(i),
4106                    c = /nw|ne|n/.test(i);
4107                return o && (t.width = e.minWidth), a && (t.height = e.minHeight), s && (t.width = e.maxWidth), n && (t.height = e.maxHeight), o && h && (t.left = r - e.minWidth), s && h && (t.left = r - e.maxWidth), a && c && (t.top = l - e.minHeight), n && c && (t.top = l - e.maxHeight), t.width || t.height || t.left || !t.top ? t.width || t.height || t.top || !t.left || (t.left = null) : t.top = null, t
4108            },
4109            _getPaddingPlusBorderDimensions: function(t) {
4110                for (var e = 0, i = [], s = [t.css("borderTopWidth"), t.css("borderRightWidth"), t.css("borderBottomWidth"), t.css("borderLeftWidth")], n = [t.css("paddingTop"), t.css("paddingRight"), t.css("paddingBottom"), t.css("paddingLeft")]; 4 > e; e++) i[e] = parseFloat(s[e]) || 0, i[e] += parseFloat(n[e]) || 0;
4111                return {
4112                    height: i[0] + i[2],
4113                    width: i[1] + i[3]
4114                }
4115            },
4116            _proportionallyResize: function() {
4117                if (this._proportionallyResizeElements.length)
4118                    for (var t, e = 0, i = this.helper || this.element; this._proportionallyResizeElements.length > e; e++) t = this._proportionallyResizeElements[e], this.outerDimensions || (this.outerDimensions = this._getPaddingPlusBorderDimensions(t)), t.css({
4119                        height: i.height() - this.outerDimensions.height || 0,
4120                        width: i.width() - this.outerDimensions.width || 0
4121                    })
4122            },
4123            _renderProxy: function() {
4124                var e = this.element,
4125                    i = this.options;
4126                this.elementOffset = e.offset(), this._helper ? (this.helper = this.helper || t("<div style='overflow:hidden;'></div>"), this._addClass(this.helper, this._helper), this.helper.css({
4127                    width: this.element.outerWidth(),
4128                    height: this.element.outerHeight(),
4129                    position: "absolute",
4130                    left: this.elementOffset.left + "px",
4131                    top: this.elementOffset.top + "px",
4132                    zIndex: ++i.zIndex
4133                }), this.helper.appendTo("body").disableSelection()) : this.helper = this.element
4134            },
4135            _change: {
4136                e: function(t, e) {
4137                    return {
4138                        width: this.originalSize.width + e
4139                    }
4140                },
4141                w: function(t, e) {
4142                    var i = this.originalSize;
4143                    return {
4144                        left: this.originalPosition.left + e,
4145                        width: i.width - e
4146                    }
4147                },
4148                n: function(t, e, i) {
4149                    var s = this.originalSize;
4150                    return {
4151                        top: this.originalPosition.top + i,
4152                        height: s.height - i
4153                    }
4154                },
4155                s: function(t, e, i) {
4156                    return {
4157                        height: this.originalSize.height + i
4158                    }
4159                },
4160                se: function(e, i, s) {
4161                    return t.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [e, i, s]))
4162                },
4163                sw: function(e, i, s) {
4164                    return t.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [e, i, s]))
4165                },
4166                ne: function(e, i, s) {
4167                    return t.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [e, i, s]))
4168                },
4169                nw: function(e, i, s) {
4170                    return t.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [e, i, s]))
4171                }
4172            },
4173            _propagate: function(e, i) {
4174                t.ui.plugin.call(this, e, [i, this.ui()]), "resize" !== e && this._trigger(e, i, this.ui())
4175            },
4176            plugins: {},
4177            ui: function() {
4178                return {
4179                    originalElement: this.originalElement,
4180                    element: this.element,
4181                    helper: this.helper,
4182                    position: this.position,
4183                    size: this.size,
4184                    originalSize: this.originalSize,
4185                    originalPosition: this.originalPosition
4186                }
4187            }
4188        }), t.ui.plugin.add("resizable", "animate", {
4189            stop: function(e) {
4190                var i = t(this).resizable("instance"),
4191                    s = i.options,
4192                    n = i._proportionallyResizeElements,
4193                    o = n.length && /textarea/i.test(n[0].nodeName),
4194                    a = o && i._hasScroll(n[0], "left") ? 0 : i.sizeDiff.height,
4195                    r = o ? 0 : i.sizeDiff.width,
4196                    l = {
4197                        width: i.size.width - r,
4198                        height: i.size.height - a
4199                    },
4200                    h = parseFloat(i.element.css("left")) + (i.position.left - i.originalPosition.left) || null,
4201                    c = parseFloat(i.element.css("top")) + (i.position.top - i.originalPosition.top) || null;
4202                i.element.animate(t.extend(l, c && h ? {
4203                    top: c,
4204                    left: h
4205                } : {}), {
4206                    duration: s.animateDuration,
4207                    easing: s.animateEasing,
4208                    step: function() {
4209                        var s = {
4210                            width: parseFloat(i.element.css("width")),
4211                            height: parseFloat(i.element.css("height")),
4212                            top: parseFloat(i.element.css("top")),
4213                            left: parseFloat(i.element.css("left"))
4214                        };
4215                        n && n.length && t(n[0]).css({
4216                            width: s.width,
4217                            height: s.height
4218                        }), i._updateCache(s), i._propagate("resize", e)
4219                    }
4220                })
4221            }
4222        }), t.ui.plugin.add("resizable", "containment", {
4223            start: function() {
4224                var e, i, s, n, o, a, r, l = t(this).resizable("instance"),
4225                    h = l.options,
4226                    c = l.element,
4227                    d = h.containment,
4228                    u = d instanceof t ? d.get(0) : /parent/.test(d) ? c.parent().get(0) : d;
4229                u && (l.containerElement = t(u), /document/.test(d) || d === document ? (l.containerOffset = {
4230                    left: 0,
4231                    top: 0
4232                }, l.containerPosition = {
4233                    left: 0,
4234                    top: 0
4235                }, l.parentData = {
4236                    element: t(document),
4237                    left: 0,
4238                    top: 0,
4239                    width: t(document).width(),
4240                    height: t(document).height() || document.body.parentNode.scrollHeight
4241                }) : (e = t(u), i = [], t(["Top", "Right", "Left", "Bottom"]).each(function(t, s) {
4242                    i[t] = l._num(e.css("padding" + s))
4243                }), l.containerOffset = e.offset(), l.containerPosition = e.position(), l.containerSize = {
vendor: 5,741 bytes, lines 4244-4340
4244                    height: e.innerHeight() - i[3],
4245                    width: e.innerWidth() - i[1]
4246                }, s = l.containerOffset, n = l.containerSize.height, o = l.containerSize.width, a = l._hasScroll(u, "left") ? u.scrollWidth : o, r = l._hasScroll(u) ? u.scrollHeight : n, l.parentData = {
4247                    element: u,
4248                    left: s.left,
4249                    top: s.top,
4250                    width: a,
4251                    height: r
4252                }))
4253            },
4254            resize: function(e) {
4255                var i, s, n, o, a = t(this).resizable("instance"),
4256                    r = a.options,
4257                    l = a.containerOffset,
4258                    h = a.position,
4259                    c = a._aspectRatio || e.shiftKey,
4260                    d = {
4261                        top: 0,
4262                        left: 0
4263                    },
4264                    u = a.containerElement,
4265                    p = !0;
4266                u[0] !== document && /static/.test(u.css("position")) && (d = l), h.left < (a._helper ? l.left : 0) && (a.size.width = a.size.width + (a._helper ? a.position.left - l.left : a.position.left - d.left), c && (a.size.height = a.size.width / a.aspectRatio, p = !1), a.position.left = r.helper ? l.left : 0), h.top < (a._helper ? l.top : 0) && (a.size.height = a.size.height + (a._helper ? a.position.top - l.top : a.position.top), c && (a.size.width = a.size.height * a.aspectRatio, p = !1), a.position.top = a._helper ? l.top : 0), n = a.containerElement.get(0) === a.element.parent().get(0), o = /relative|absolute/.test(a.containerElement.css("position")), n && o ? (a.offset.left = a.parentData.left + a.position.left, a.offset.top = a.parentData.top + a.position.top) : (a.offset.left = a.element.offset().left, a.offset.top = a.element.offset().top), i = Math.abs(a.sizeDiff.width + (a._helper ? a.offset.left - d.left : a.offset.left - l.left)), s = Math.abs(a.sizeDiff.height + (a._helper ? a.offset.top - d.top : a.offset.top - l.top)), i + a.size.width >= a.parentData.width && (a.size.width = a.parentData.width - i, c && (a.size.height = a.size.width / a.aspectRatio, p = !1)), s + a.size.height >= a.parentData.height && (a.size.height = a.parentData.height - s, c && (a.size.width = a.size.height * a.aspectRatio, p = !1)), p || (a.position.left = a.prevPosition.left, a.position.top = a.prevPosition.top, a.size.width = a.prevSize.width, a.size.height = a.prevSize.height)
4267            },
4268            stop: function() {
4269                var e = t(this).resizable("instance"),
4270                    i = e.options,
4271                    s = e.containerOffset,
4272                    n = e.containerPosition,
4273                    o = e.containerElement,
4274                    a = t(e.helper),
4275                    r = a.offset(),
4276                    l = a.outerWidth() - e.sizeDiff.width,
4277                    h = a.outerHeight() - e.sizeDiff.height;
4278                e._helper && !i.animate && /relative/.test(o.css("position")) && t(this).css({
4279                    left: r.left - n.left - s.left,
4280                    width: l,
4281                    height: h
4282                }), e._helper && !i.animate && /static/.test(o.css("position")) && t(this).css({
4283                    left: r.left - n.left - s.left,
4284                    width: l,
4285                    height: h
4286                })
4287            }
4288        }), t.ui.plugin.add("resizable", "alsoResize", {
4289            start: function() {
4290                var e = t(this).resizable("instance"),
4291                    i = e.options;
4292                t(i.alsoResize).each(function() {
4293                    var e = t(this);
4294                    e.data("ui-resizable-alsoresize", {
4295                        width: parseFloat(e.width()),
4296                        height: parseFloat(e.height()),
4297                        left: parseFloat(e.css("left")),
4298                        top: parseFloat(e.css("top"))
4299                    })
4300                })
4301            },
4302            resize: function(e, i) {
4303                var s = t(this).resizable("instance"),
4304                    n = s.options,
4305                    o = s.originalSize,
4306                    a = s.originalPosition,
4307                    r = {
4308                        height: s.size.height - o.height || 0,
4309                        width: s.size.width - o.width || 0,
4310                        top: s.position.top - a.top || 0,
4311                        left: s.position.left - a.left || 0
4312                    };
4313                t(n.alsoResize).each(function() {
4314                    var e = t(this),
4315                        s = t(this).data("ui-resizable-alsoresize"),
4316                        n = {},
4317                        o = e.parents(i.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
4318                    t.each(o, function(t, e) {
4319                        var i = (s[e] || 0) + (r[e] || 0);
4320                        i && i >= 0 && (n[e] = i || null)
4321                    }), e.css(n)
4322                })
4323            },
4324            stop: function() {
4325                t(this).removeData("ui-resizable-alsoresize")
4326            }
4327        }), t.ui.plugin.add("resizable", "ghost", {
4328            start: function() {
4329                var e = t(this).resizable("instance"),
4330                    i = e.size;
4331                e.ghost = e.originalElement.clone(), e.ghost.css({
4332                    opacity: .25,
4333                    display: "block",
4334                    position: "relative",
4335                    height: i.height,
4336                    width: i.width,
4337                    margin: 0,
4338                    left: 0,
4339                    top: 0
4340                }), e._addClass(e.ghost, "ui-resizable-ghost"), !1 !== t.uiBackCompat && "string" == typeof e.o
vendor: 11,317 bytes, lines 4340-4539
4340ptions.ghost && e.ghost.addClass(this.options.ghost), e.ghost.appendTo(e.helper)
4341            },
4342            resize: function() {
4343                var e = t(this).resizable("instance");
4344                e.ghost && e.ghost.css({
4345                    position: "relative",
4346                    height: e.size.height,
4347                    width: e.size.width
4348                })
4349            },
4350            stop: function() {
4351                var e = t(this).resizable("instance");
4352                e.ghost && e.helper && e.helper.get(0).removeChild(e.ghost.get(0))
4353            }
4354        }), t.ui.plugin.add("resizable", "grid", {
4355            resize: function() {
4356                var e, i = t(this).resizable("instance"),
4357                    s = i.options,
4358                    n = i.size,
4359                    o = i.originalSize,
4360                    a = i.originalPosition,
4361                    r = i.axis,
4362                    l = "number" == typeof s.grid ? [s.grid, s.grid] : s.grid,
4363                    h = l[0] || 1,
4364                    c = l[1] || 1,
4365                    d = Math.round((n.width - o.width) / h) * h,
4366                    u = Math.round((n.height - o.height) / c) * c,
4367                    p = o.width + d,
4368                    f = o.height + u,
4369                    g = s.maxWidth && p > s.maxWidth,
4370                    m = s.maxHeight && f > s.maxHeight,
4371                    v = s.minWidth && s.minWidth > p,
4372                    _ = s.minHeight && s.minHeight > f;
4373                s.grid = l, v && (p += h), _ && (f += c), g && (p -= h), m && (f -= c), /^(se|s|e)$/.test(r) ? (i.size.width = p, i.size.height = f) : /^(ne)$/.test(r) ? (i.size.width = p, i.size.height = f, i.position.top = a.top - u) : /^(sw)$/.test(r) ? (i.size.width = p, i.size.height = f, i.position.left = a.left - d) : ((0 >= f - c || 0 >= p - h) && (e = i._getPaddingPlusBorderDimensions(this)), f - c > 0 ? (i.size.height = f, i.position.top = a.top - u) : (f = c - e.height, i.size.height = f, i.position.top = a.top + o.height - f), p - h > 0 ? (i.size.width = p, i.position.left = a.left - d) : (p = h - e.width, i.size.width = p, i.position.left = a.left + o.width - p))
4374            }
4375        }), t.ui.resizable, t.widget("ui.dialog", {
4376            version: "1.12.1",
4377            options: {
4378                appendTo: "body",
4379                autoOpen: !0,
4380                buttons: [],
4381                classes: {
4382                    "ui-dialog": "ui-corner-all",
4383                    "ui-dialog-titlebar": "ui-corner-all"
4384                },
4385                closeOnEscape: !0,
4386                closeText: "Close",
4387                draggable: !0,
4388                hide: null,
4389                height: "auto",
4390                maxHeight: null,
4391                maxWidth: null,
4392                minHeight: 150,
4393                minWidth: 150,
4394                modal: !1,
4395                position: {
4396                    my: "center",
4397                    at: "center",
4398                    of: window,
4399                    collision: "fit",
4400                    using: function(e) {
4401                        var i = t(this).css(e).offset().top;
4402                        0 > i && t(this).css("top", e.top - i)
4403                    }
4404                },
4405                resizable: !0,
4406                show: null,
4407                title: null,
4408                width: 300,
4409                beforeClose: null,
4410                close: null,
4411                drag: null,
4412                dragStart: null,
4413                dragStop: null,
4414                focus: null,
4415                open: null,
4416                resize: null,
4417                resizeStart: null,
4418                resizeStop: null
4419            },
4420            sizeRelatedOptions: {
4421                buttons: !0,
4422                height: !0,
4423                maxHeight: !0,
4424                maxWidth: !0,
4425                minHeight: !0,
4426                minWidth: !0,
4427                width: !0
4428            },
4429            resizableRelatedOptions: {
4430                maxHeight: !0,
4431                maxWidth: !0,
4432                minHeight: !0,
4433                minWidth: !0
4434            },
4435            _create: function() {
4436                this.originalCss = {
4437                    display: this.element[0].style.display,
4438                    width: this.element[0].style.width,
4439                    minHeight: this.element[0].style.minHeight,
4440                    maxHeight: this.element[0].style.maxHeight,
4441                    height: this.element[0].style.height
4442                }, this.originalPosition = {
4443                    parent: this.element.parent(),
4444                    index: this.element.parent().children().index(this.element)
4445                }, this.originalTitle = this.element.attr("title"), null == this.options.title && null != this.originalTitle && (this.options.title = this.originalTitle), this.options.disabled && (this.options.disabled = !1), this._createWrapper(), this.element.show().removeAttr("title").appendTo(this.uiDialog), this._addClass("ui-dialog-content", "ui-widget-content"), this._createTitlebar(), this._createButtonPane(), this.options.draggable && t.fn.draggable && this._makeDraggable(), this.options.resizable && t.fn.resizable && this._makeResizable(), this._isOpen = !1, this._trackFocus()
4446            },
4447            _init: function() {
4448                this.options.autoOpen && this.open()
4449            },
4450            _appendTo: function() {
4451                var e = this.options.appendTo;
4452                return e && (e.jquery || e.nodeType) ? t(e) : this.document.find(e || "body").eq(0)
4453            },
4454            _destroy: function() {
4455                var t, e = this.originalPosition;
4456                this._untrackInstance(), this._destroyOverlay(), this.element.removeUniqueId().css(this.originalCss).detach(), this.uiDialog.remove(), this.originalTitle && this.element.attr("title", this.originalTitle), t = e.parent.children().eq(e.index), t.length && t[0] !== this.element[0] ? t.before(this.element) : e.parent.append(this.element)
4457            },
4458            widget: function() {
4459                return this.uiDialog
4460            },
4461            disable: t.noop,
4462            enable: t.noop,
4463            close: function(e) {
4464                var i = this;
4465                this._isOpen && !1 !== this._trigger("beforeClose", e) && (this._isOpen = !1, this._focusedElement = null, this._destroyOverlay(), this._untrackInstance(), this.opener.filter(":focusable").trigger("focus").length || t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])), this._hide(this.uiDialog, this.options.hide, function() {
4466                    i._trigger("close", e)
4467                }))
4468            },
4469            isOpen: function() {
4470                return this._isOpen
4471            },
4472            moveToTop: function() {
4473                this._moveToTop()
4474            },
4475            _moveToTop: function(e, i) {
4476                var s = !1,
4477                    n = this.uiDialog.siblings(".ui-front:visible").map(function() {
4478                        return +t(this).css("z-index")
4479                    }).get(),
4480                    o = Math.max.apply(null, n);
4481                return o >= +this.uiDialog.css("z-index") && (this.uiDialog.css("z-index", o + 1), s = !0), s && !i && this._trigger("focus", e), s
4482            },
4483            open: function() {
4484                var e = this;
4485                return this._isOpen ? void(this._moveToTop() && this._focusTabbable()) : (this._isOpen = !0, this.opener = t(t.ui.safeActiveElement(this.document[0])), this._size(), this._position(), this._createOverlay(), this._moveToTop(null, !0), this.overlay && this.overlay.css("z-index", this.uiDialog.css("z-index") - 1), this._show(this.uiDialog, this.options.show, function() {
4486                    e._focusTabbable(), e._trigger("focus")
4487                }), this._makeFocusTarget(), void this._trigger("open"))
4488            },
4489            _focusTabbable: function() {
4490                var t = this._focusedElement;
4491                t || (t = this.element.find("[autofocus]")), t.length || (t = this.element.find(":tabbable")), t.length || (t = this.uiDialogButtonPane.find(":tabbable")), t.length || (t = this.uiDialogTitlebarClose.filter(":tabbable")), t.length || (t = this.uiDialog), t.eq(0).trigger("focus")
4492            },
4493            _keepFocus: function(e) {
4494                function i() {
4495                    var e = t.ui.safeActiveElement(this.document[0]);
4496                    this.uiDialog[0] === e || t.contains(this.uiDialog[0], e) || this._focusTabbable()
4497                }
4498                e.preventDefault(), i.call(this), this._delay(i)
4499            },
4500            _createWrapper: function() {
4501                this.uiDialog = t("<div>").hide().attr({
4502                    tabIndex: -1,
4503                    role: "dialog"
4504                }).appendTo(this._appendTo()), this._addClass(this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front"), this._on(this.uiDialog, {
4505                    keydown: function(e) {
4506                        if (this.options.closeOnEscape && !e.isDefaultPrevented() && e.keyCode && e.keyCode === t.ui.keyCode.ESCAPE) return e.preventDefault(), void this.close(e);
4507                        if (e.keyCode === t.ui.keyCode.TAB && !e.isDefaultPrevented()) {
4508                            var i = this.uiDialog.find(":tabbable"),
4509                                s = i.filter(":first"),
4510                                n = i.filter(":last");
4511                            e.target !== n[0] && e.target !== this.uiDialog[0] || e.shiftKey ? e.target !== s[0] && e.target !== this.uiDialog[0] || !e.shiftKey || (this._delay(function() {
4512                                n.trigger("focus")
4513                            }), e.preventDefault()) : (this._delay(function() {
4514                                s.trigger("focus")
4515                            }), e.preventDefault())
4516                        }
4517                    },
4518                    mousedown: function(t) {
4519                        this._moveToTop(t) && this._focusTabbable()
4520                    }
4521                }), this.element.find("[aria-describedby]").length || this.uiDialog.attr({
4522                    "aria-describedby": this.element.uniqueId().attr("id")
4523                })
4524            },
4525            _createTitlebar: function() {
4526                var e;
4527                this.uiDialogTitlebar = t("<div>"), this._addClass(this.uiDialogTitlebar, "ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix"), this._on(this.uiDialogTitlebar, {
4528                    mousedown: function(e) {
4529                        t(e.target).closest(".ui-dialog-titlebar-close") || this.uiDialog.trigger("focus")
4530                    }
4531                }), this.uiDialogTitlebarClose = t("<button type='button'></button>").button({
4532                    label: t("<a>").text(this.options.closeText).html(),
4533                    icon: "ui-icon-closethick",
4534                    showLabel: !1
4535                }).appendTo(this.uiDialogTitlebar), this._addClass(this.uiDialogTitlebarClose, "ui-dialog-titlebar-close"), this._on(this.uiDialogTitlebarClose, {
4536                    click: function(t) {
4537                        t.preventDefault(), this.close(t)
4538                    }
4539                }), e = t("<span>").uniqueId().prependTo(this.uiDialogTitlebar), this._addClass(e, "ui-dialog-title"), this._title(e), this.uiDialogTitlebar.prepe
vendor: 15,898 bytes, lines 4539-4839
4539ndTo(this.uiDialog), this.uiDialog.attr({
4540                    "aria-labelledby": e.attr("id")
4541                })
4542            },
4543            _title: function(t) {
4544                this.options.title ? t.text(this.options.title) : t.html("&#160;")
4545            },
4546            _createButtonPane: function() {
4547                this.uiDialogButtonPane = t("<div>"), this._addClass(this.uiDialogButtonPane, "ui-dialog-buttonpane", "ui-widget-content ui-helper-clearfix"), this.uiButtonSet = t("<div>").appendTo(this.uiDialogButtonPane), this._addClass(this.uiButtonSet, "ui-dialog-buttonset"), this._createButtons()
4548            },
4549            _createButtons: function() {
4550                var e = this,
4551                    i = this.options.buttons;
4552                return this.uiDialogButtonPane.remove(), this.uiButtonSet.empty(), t.isEmptyObject(i) || t.isArray(i) && !i.length ? void this._removeClass(this.uiDialog, "ui-dialog-buttons") : (t.each(i, function(i, s) {
4553                    var n, o;
4554                    s = t.isFunction(s) ? {
4555                        click: s,
4556                        text: i
4557                    } : s, s = t.extend({
4558                        type: "button"
4559                    }, s), n = s.click, o = {
4560                        icon: s.icon,
4561                        iconPosition: s.iconPosition,
4562                        showLabel: s.showLabel,
4563                        icons: s.icons,
4564                        text: s.text
4565                    }, delete s.click, delete s.icon, delete s.iconPosition, delete s.showLabel, delete s.icons, "boolean" == typeof s.text && delete s.text, t("<button></button>", s).button(o).appendTo(e.uiButtonSet).on("click", function() {
4566                        n.apply(e.element[0], arguments)
4567                    })
4568                }), this._addClass(this.uiDialog, "ui-dialog-buttons"), void this.uiDialogButtonPane.appendTo(this.uiDialog))
4569            },
4570            _makeDraggable: function() {
4571                function e(t) {
4572                    return {
4573                        position: t.position,
4574                        offset: t.offset
4575                    }
4576                }
4577                var i = this,
4578                    s = this.options;
4579                this.uiDialog.draggable({
4580                    cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
4581                    handle: ".ui-dialog-titlebar",
4582                    containment: "document",
4583                    start: function(s, n) {
4584                        i._addClass(t(this), "ui-dialog-dragging"), i._blockFrames(), i._trigger("dragStart", s, e(n))
4585                    },
4586                    drag: function(t, s) {
4587                        i._trigger("drag", t, e(s))
4588                    },
4589                    stop: function(n, o) {
4590                        var a = o.offset.left - i.document.scrollLeft(),
4591                            r = o.offset.top - i.document.scrollTop();
4592                        s.position = {
4593                            my: "left top",
4594                            at: "left" + (a >= 0 ? "+" : "") + a + " top" + (r >= 0 ? "+" : "") + r,
4595                            of: i.window
4596                        }, i._removeClass(t(this), "ui-dialog-dragging"), i._unblockFrames(), i._trigger("dragStop", n, e(o))
4597                    }
4598                })
4599            },
4600            _makeResizable: function() {
4601                function e(t) {
4602                    return {
4603                        originalPosition: t.originalPosition,
4604                        originalSize: t.originalSize,
4605                        position: t.position,
4606                        size: t.size
4607                    }
4608                }
4609                var i = this,
4610                    s = this.options,
4611                    n = s.resizable,
4612                    o = this.uiDialog.css("position"),
4613                    a = "string" == typeof n ? n : "n,e,s,w,se,sw,ne,nw";
4614                this.uiDialog.resizable({
4615                    cancel: ".ui-dialog-content",
4616                    containment: "document",
4617                    alsoResize: this.element,
4618                    maxWidth: s.maxWidth,
4619                    maxHeight: s.maxHeight,
4620                    minWidth: s.minWidth,
4621                    minHeight: this._minHeight(),
4622                    handles: a,
4623                    start: function(s, n) {
4624                        i._addClass(t(this), "ui-dialog-resizing"), i._blockFrames(), i._trigger("resizeStart", s, e(n))
4625                    },
4626                    resize: function(t, s) {
4627                        i._trigger("resize", t, e(s))
4628                    },
4629                    stop: function(n, o) {
4630                        var a = i.uiDialog.offset(),
4631                            r = a.left - i.document.scrollLeft(),
4632                            l = a.top - i.document.scrollTop();
4633                        s.height = i.uiDialog.height(), s.width = i.uiDialog.width(), s.position = {
4634                            my: "left top",
4635                            at: "left" + (r >= 0 ? "+" : "") + r + " top" + (l >= 0 ? "+" : "") + l,
4636                            of: i.window
4637                        }, i._removeClass(t(this), "ui-dialog-resizing"), i._unblockFrames(), i._trigger("resizeStop", n, e(o))
4638                    }
4639                }).css("position", o)
4640            },
4641            _trackFocus: function() {
4642                this._on(this.widget(), {
4643                    focusin: function(e) {
4644                        this._makeFocusTarget(), this._focusedElement = t(e.target)
4645                    }
4646                })
4647            },
4648            _makeFocusTarget: function() {
4649                this._untrackInstance(), this._trackingInstances().unshift(this)
4650            },
4651            _untrackInstance: function() {
4652                var e = this._trackingInstances(),
4653                    i = t.inArray(this, e); - 1 !== i && e.splice(i, 1)
4654            },
4655            _trackingInstances: function() {
4656                var t = this.document.data("ui-dialog-instances");
4657                return t || (t = [], this.document.data("ui-dialog-instances", t)), t
4658            },
4659            _minHeight: function() {
4660                var t = this.options;
4661                return "auto" === t.height ? t.minHeight : Math.min(t.minHeight, t.height)
4662            },
4663            _position: function() {
4664                var t = this.uiDialog.is(":visible");
4665                t || this.uiDialog.show(), this.uiDialog.position(this.options.position), t || this.uiDialog.hide()
4666            },
4667            _setOptions: function(e) {
4668                var i = this,
4669                    s = !1,
4670                    n = {};
4671                t.each(e, function(t, e) {
4672                    i._setOption(t, e), t in i.sizeRelatedOptions && (s = !0), t in i.resizableRelatedOptions && (n[t] = e)
4673                }), s && (this._size(), this._position()), this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", n)
4674            },
4675            _setOption: function(e, i) {
4676                var s, n, o = this.uiDialog;
4677                "disabled" !== e && (this._super(e, i), "appendTo" === e && this.uiDialog.appendTo(this._appendTo()), "buttons" === e && this._createButtons(), "closeText" === e && this.uiDialogTitlebarClose.button({
4678                    label: t("<a>").text("" + this.options.closeText).html()
4679                }), "draggable" === e && (s = o.is(":data(ui-draggable)"), s && !i && o.draggable("destroy"), !s && i && this._makeDraggable()), "position" === e && this._position(), "resizable" === e && (n = o.is(":data(ui-resizable)"), n && !i && o.resizable("destroy"), n && "string" == typeof i && o.resizable("option", "handles", i), n || !1 === i || this._makeResizable()), "title" === e && this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))
4680            },
4681            _size: function() {
4682                var t, e, i, s = this.options;
4683                this.element.show().css({
4684                    width: "auto",
4685                    minHeight: 0,
4686                    maxHeight: "none",
4687                    height: 0
4688                }), s.minWidth > s.width && (s.width = s.minWidth), t = this.uiDialog.css({
4689                    height: "auto",
4690                    width: s.width
4691                }).outerHeight(), e = Math.max(0, s.minHeight - t), i = "number" == typeof s.maxHeight ? Math.max(0, s.maxHeight - t) : "none", "auto" === s.height ? this.element.css({
4692                    minHeight: e,
4693                    maxHeight: i,
4694                    height: "auto"
4695                }) : this.element.height(Math.max(0, s.height - t)), this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
4696            },
4697            _blockFrames: function() {
4698                this.iframeBlocks = this.document.find("iframe").map(function() {
4699                    var e = t(this);
4700                    return t("<div>").css({
4701                        position: "absolute",
4702                        width: e.outerWidth(),
4703                        height: e.outerHeight()
4704                    }).appendTo(e.parent()).offset(e.offset())[0]
4705                })
4706            },
4707            _unblockFrames: function() {
4708                this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks)
4709            },
4710            _allowInteraction: function(e) {
4711                return !!t(e.target).closest(".ui-dialog").length || !!t(e.target).closest(".ui-datepicker").length
4712            },
4713            _createOverlay: function() {
4714                if (this.options.modal) {
4715                    var e = !0;
4716                    this._delay(function() {
4717                        e = !1
4718                    }), this.document.data("ui-dialog-overlays") || this._on(this.document, {
4719                        focusin: function(t) {
4720                            e || this._allowInteraction(t) || (t.preventDefault(), this._trackingInstances()[0]._focusTabbable())
4721                        }
4722                    }), this.overlay = t("<div>").appendTo(this._appendTo()), this._addClass(this.overlay, null, "ui-widget-overlay ui-front"), this._on(this.overlay, {
4723                        mousedown: "_keepFocus"
4724                    }), this.document.data("ui-dialog-overlays", (this.document.data("ui-dialog-overlays") || 0) + 1)
4725                }
4726            },
4727            _destroyOverlay: function() {
4728                if (this.options.modal && this.overlay) {
4729                    var t = this.document.data("ui-dialog-overlays") - 1;
4730                    t ? this.document.data("ui-dialog-overlays", t) : (this._off(this.document, "focusin"), this.document.removeData("ui-dialog-overlays")), this.overlay.remove(), this.overlay = null
4731                }
4732            }
4733        }), !1 !== t.uiBackCompat && t.widget("ui.dialog", t.ui.dialog, {
4734            options: {
4735                dialogClass: ""
4736            },
4737            _createWrapper: function() {
4738                this._super(), this.uiDialog.addClass(this.options.dialogClass)
4739            },
4740            _setOption: function(t, e) {
4741                "dialogClass" === t && this.uiDialog.removeClass(this.options.dialogClass).addClass(e), this._superApply(arguments)
4742            }
4743        }), t.ui.dialog, t.widget("ui.droppable", {
4744            version: "1.12.1",
4745            widgetEventPrefix: "drop",
4746            options: {
4747                accept: "*",
4748                addClasses: !0,
4749                greedy: !1,
4750                scope: "default",
4751                tolerance: "intersect",
4752                activate: null,
4753                deactivate: null,
4754                drop: null,
4755                out: null,
4756                over: null
4757            },
4758            _create: function() {
4759                var e, i = this.options,
4760                    s = i.accept;
4761                this.isover = !1, this.isout = !0, this.accept = t.isFunction(s) ? s : function(t) {
4762                    return t.is(s)
4763                }, this.proportions = function() {
4764                    return arguments.length ? void(e = arguments[0]) : e || (e = {
4765                        width: this.element[0].offsetWidth,
4766                        height: this.element[0].offsetHeight
4767                    })
4768                }, this._addToManager(i.scope), i.addClasses && this._addClass("ui-droppable")
4769            },
4770            _addToManager: function(e) {
4771                t.ui.ddmanager.droppables[e] = t.ui.ddmanager.droppables[e] || [], t.ui.ddmanager.droppables[e].push(this)
4772            },
4773            _splice: function(t) {
4774                for (var e = 0; t.length > e; e++) t[e] === this && t.splice(e, 1)
4775            },
4776            _destroy: function() {
4777                var e = t.ui.ddmanager.droppables[this.options.scope];
4778                this._splice(e)
4779            },
4780            _setOption: function(e, i) {
4781                if ("accept" === e) this.accept = t.isFunction(i) ? i : function(t) {
4782                    return t.is(i)
4783                };
4784                else if ("scope" === e) {
4785                    var s = t.ui.ddmanager.droppables[this.options.scope];
4786                    this._splice(s), this._addToManager(i)
4787                }
4788                this._super(e, i)
4789            },
4790            _activate: function(e) {
4791                var i = t.ui.ddmanager.current;
4792                this._addActiveClass(), i && this._trigger("activate", e, this.ui(i))
4793            },
4794            _deactivate: function(e) {
4795                var i = t.ui.ddmanager.current;
4796                this._removeActiveClass(), i && this._trigger("deactivate", e, this.ui(i))
4797            },
4798            _over: function(e) {
4799                var i = t.ui.ddmanager.current;
4800                i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this._addHoverClass(), this._trigger("over", e, this.ui(i)))
4801            },
4802            _out: function(e) {
4803                var i = t.ui.ddmanager.current;
4804                i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this._removeHoverClass(), this._trigger("out", e, this.ui(i)))
4805            },
4806            _drop: function(e, i) {
4807                var s = i || t.ui.ddmanager.current,
4808                    n = !1;
4809                return !(!s || (s.currentItem || s.element)[0] === this.element[0]) && (this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() {
4810                    var i = t(this).droppable("instance");
4811                    return i.options.greedy && !i.options.disabled && i.options.scope === s.options.scope && i.accept.call(i.element[0], s.currentItem || s.element) && v(s, t.extend(i, {
4812                        offset: i.element.offset()
4813                    }), i.options.tolerance, e) ? (n = !0, !1) : void 0
4814                }), !n && (!!this.accept.call(this.element[0], s.currentItem || s.element) && (this._removeActiveClass(), this._removeHoverClass(), this._trigger("drop", e, this.ui(s)), this.element)))
4815            },
4816            ui: function(t) {
4817                return {
4818                    draggable: t.currentItem || t.element,
4819                    helper: t.helper,
4820                    position: t.position,
4821                    offset: t.positionAbs
4822                }
4823            },
4824            _addHoverClass: function() {
4825                this._addClass("ui-droppable-hover")
4826            },
4827            _removeHoverClass: function() {
4828                this._removeClass("ui-droppable-hover")
4829            },
4830            _addActiveClass: function() {
4831                this._addClass("ui-droppable-active")
4832            },
4833            _removeActiveClass: function() {
4834                this._removeClass("ui-droppable-active")
4835            }
4836        });
4837        var v = t.ui.intersect = function() {
4838            function t(t, e, i) {
4839                return t >
vendor: 31,591 bytes, lines 4839-5382
4839= e && e + i > t
4840            }
4841            return function(e, i, s, n) {
4842                if (!i.offset) return !1;
4843                var o = (e.positionAbs || e.position.absolute).left + e.margins.left,
4844                    a = (e.positionAbs || e.position.absolute).top + e.margins.top,
4845                    r = o + e.helperProportions.width,
4846                    l = a + e.helperProportions.height,
4847                    h = i.offset.left,
4848                    c = i.offset.top,
4849                    d = h + i.proportions().width,
4850                    u = c + i.proportions().height;
4851                switch (s) {
4852                    case "fit":
4853                        return o >= h && d >= r && a >= c && u >= l;
4854                    case "intersect":
4855                        return o + e.helperProportions.width / 2 > h && d > r - e.helperProportions.width / 2 && a + e.helperProportions.height / 2 > c && u > l - e.helperProportions.height / 2;
4856                    case "pointer":
4857                        return t(n.pageY, c, i.proportions().height) && t(n.pageX, h, i.proportions().width);
4858                    case "touch":
4859                        return (a >= c && u >= a || l >= c && u >= l || c > a && l > u) && (o >= h && d >= o || r >= h && d >= r || h > o && r > d);
4860                    default:
4861                        return !1
4862                }
4863            }
4864        }();
4865        t.ui.ddmanager = {
4866            current: null,
4867            droppables: {
4868                default: []
4869            },
4870            prepareOffsets: function(e, i) {
4871                var s, n, o = t.ui.ddmanager.droppables[e.options.scope] || [],
4872                    a = i ? i.type : null,
4873                    r = (e.currentItem || e.element).find(":data(ui-droppable)").addBack();
4874                t: for (s = 0; o.length > s; s++)
4875                    if (!(o[s].options.disabled || e && !o[s].accept.call(o[s].element[0], e.currentItem || e.element))) {
4876                        for (n = 0; r.length > n; n++)
4877                            if (r[n] === o[s].element[0]) {
4878                                o[s].proportions().height = 0;
4879                                continue t
4880                            } o[s].visible = "none" !== o[s].element.css("display"), o[s].visible && ("mousedown" === a && o[s]._activate.call(o[s], i), o[s].offset = o[s].element.offset(), o[s].proportions({
4881                            width: o[s].element[0].offsetWidth,
4882                            height: o[s].element[0].offsetHeight
4883                        }))
4884                    }
4885            },
4886            drop: function(e, i) {
4887                var s = !1;
4888                return t.each((t.ui.ddmanager.droppables[e.options.scope] || []).slice(), function() {
4889                    this.options && (!this.options.disabled && this.visible && v(e, this, this.options.tolerance, i) && (s = this._drop.call(this, i) || s), !this.options.disabled && this.visible && this.accept.call(this.element[0], e.currentItem || e.element) && (this.isout = !0, this.isover = !1, this._deactivate.call(this, i)))
4890                }), s
4891            },
4892            dragStart: function(e, i) {
4893                e.element.parentsUntil("body").on("scroll.droppable", function() {
4894                    e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i)
4895                })
4896            },
4897            drag: function(e, i) {
4898                e.options.refreshPositions && t.ui.ddmanager.prepareOffsets(e, i), t.each(t.ui.ddmanager.droppables[e.options.scope] || [], function() {
4899                    if (!this.options.disabled && !this.greedyChild && this.visible) {
4900                        var s, n, o, a = v(e, this, this.options.tolerance, i),
4901                            r = !a && this.isover ? "isout" : a && !this.isover ? "isover" : null;
4902                        r && (this.options.greedy && (n = this.options.scope, o = this.element.parents(":data(ui-droppable)").filter(function() {
4903                            return t(this).droppable("instance").options.scope === n
4904                        }), o.length && (s = t(o[0]).droppable("instance"), s.greedyChild = "isover" === r)), s && "isover" === r && (s.isover = !1, s.isout = !0, s._out.call(s, i)), this[r] = !0, this["isout" === r ? "isover" : "isout"] = !1, this["isover" === r ? "_over" : "_out"].call(this, i), s && "isout" === r && (s.isout = !1, s.isover = !0, s._over.call(s, i)))
4905                    }
4906                })
4907            },
4908            dragStop: function(e, i) {
4909                e.element.parentsUntil("body").off("scroll.droppable"), e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i)
4910            }
4911        }, !1 !== t.uiBackCompat && t.widget("ui.droppable", t.ui.droppable, {
4912            options: {
4913                hoverClass: !1,
4914                activeClass: !1
4915            },
4916            _addActiveClass: function() {
4917                this._super(), this.options.activeClass && this.element.addClass(this.options.activeClass)
4918            },
4919            _removeActiveClass: function() {
4920                this._super(), this.options.activeClass && this.element.removeClass(this.options.activeClass)
4921            },
4922            _addHoverClass: function() {
4923                this._super(), this.options.hoverClass && this.element.addClass(this.options.hoverClass)
4924            },
4925            _removeHoverClass: function() {
4926                this._super(), this.options.hoverClass && this.element.removeClass(this.options.hoverClass)
4927            }
4928        }), t.ui.droppable, t.widget("ui.progressbar", {
4929            version: "1.12.1",
4930            options: {
4931                classes: {
4932                    "ui-progressbar": "ui-corner-all",
4933                    "ui-progressbar-value": "ui-corner-left",
4934                    "ui-progressbar-complete": "ui-corner-right"
4935                },
4936                max: 100,
4937                value: 0,
4938                change: null,
4939                complete: null
4940            },
4941            min: 0,
4942            _create: function() {
4943                this.oldValue = this.options.value = this._constrainedValue(), this.element.attr({
4944                    role: "progressbar",
4945                    "aria-valuemin": this.min
4946                }), this._addClass("ui-progressbar", "ui-widget ui-widget-content"), this.valueDiv = t("<div>").appendTo(this.element), this._addClass(this.valueDiv, "ui-progressbar-value", "ui-widget-header"), this._refreshValue()
4947            },
4948            _destroy: function() {
4949                this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"), this.valueDiv.remove()
4950            },
4951            value: function(t) {
4952                return void 0 === t ? this.options.value : (this.options.value = this._constrainedValue(t), void this._refreshValue())
4953            },
4954            _constrainedValue: function(t) {
4955                return void 0 === t && (t = this.options.value), this.indeterminate = !1 === t, "number" != typeof t && (t = 0), !this.indeterminate && Math.min(this.options.max, Math.max(this.min, t))
4956            },
4957            _setOptions: function(t) {
4958                var e = t.value;
4959                delete t.value, this._super(t), this.options.value = this._constrainedValue(e), this._refreshValue()
4960            },
4961            _setOption: function(t, e) {
4962                "max" === t && (e = Math.max(this.min, e)), this._super(t, e)
4963            },
4964            _setOptionDisabled: function(t) {
4965                this._super(t), this.element.attr("aria-disabled", t), this._toggleClass(null, "ui-state-disabled", !!t)
4966            },
4967            _percentage: function() {
4968                return this.indeterminate ? 100 : 100 * (this.options.value - this.min) / (this.options.max - this.min)
4969            },
4970            _refreshValue: function() {
4971                var e = this.options.value,
4972                    i = this._percentage();
4973                this.valueDiv.toggle(this.indeterminate || e > this.min).width(i.toFixed(0) + "%"), this._toggleClass(this.valueDiv, "ui-progressbar-complete", null, e === this.options.max)._toggleClass("ui-progressbar-indeterminate", null, this.indeterminate), this.indeterminate ? (this.element.removeAttr("aria-valuenow"), this.overlayDiv || (this.overlayDiv = t("<div>").appendTo(this.valueDiv), this._addClass(this.overlayDiv, "ui-progressbar-overlay"))) : (this.element.attr({
4974                    "aria-valuemax": this.options.max,
4975                    "aria-valuenow": e
4976                }), this.overlayDiv && (this.overlayDiv.remove(), this.overlayDiv = null)), this.oldValue !== e && (this.oldValue = e, this._trigger("change")), e === this.options.max && this._trigger("complete")
4977            }
4978        }), t.widget("ui.selectable", t.ui.mouse, {
4979            version: "1.12.1",
4980            options: {
4981                appendTo: "body",
4982                autoRefresh: !0,
4983                distance: 0,
4984                filter: "*",
4985                tolerance: "touch",
4986                selected: null,
4987                selecting: null,
4988                start: null,
4989                stop: null,
4990                unselected: null,
4991                unselecting: null
4992            },
4993            _create: function() {
4994                var e = this;
4995                this._addClass("ui-selectable"), this.dragged = !1, this.refresh = function() {
4996                    e.elementPos = t(e.element[0]).offset(), e.selectees = t(e.options.filter, e.element[0]), e._addClass(e.selectees, "ui-selectee"), e.selectees.each(function() {
4997                        var i = t(this),
4998                            s = i.offset(),
4999                            n = {
5000                                left: s.left - e.elementPos.left,
5001                                top: s.top - e.elementPos.top
5002                            };
5003                        t.data(this, "selectable-item", {
5004                            element: this,
5005                            $element: i,
5006                            left: n.left,
5007                            top: n.top,
5008                            right: n.left + i.outerWidth(),
5009                            bottom: n.top + i.outerHeight(),
5010                            startselected: !1,
5011                            selected: i.hasClass("ui-selected"),
5012                            selecting: i.hasClass("ui-selecting"),
5013                            unselecting: i.hasClass("ui-unselecting")
5014                        })
5015                    })
5016                }, this.refresh(), this._mouseInit(), this.helper = t("<div>"), this._addClass(this.helper, "ui-selectable-helper")
5017            },
5018            _destroy: function() {
5019                this.selectees.removeData("selectable-item"), this._mouseDestroy()
5020            },
5021            _mouseStart: function(e) {
5022                var i = this,
5023                    s = this.options;
5024                this.opos = [e.pageX, e.pageY], this.elementPos = t(this.element[0]).offset(), this.options.disabled || (this.selectees = t(s.filter, this.element[0]), this._trigger("start", e), t(s.appendTo).append(this.helper), this.helper.css({
5025                    left: e.pageX,
5026                    top: e.pageY,
5027                    width: 0,
5028                    height: 0
5029                }), s.autoRefresh && this.refresh(), this.selectees.filter(".ui-selected").each(function() {
5030                    var s = t.data(this, "selectable-item");
5031                    s.startselected = !0, e.metaKey || e.ctrlKey || (i._removeClass(s.$element, "ui-selected"), s.selected = !1, i._addClass(s.$element, "ui-unselecting"), s.unselecting = !0, i._trigger("unselecting", e, {
5032                        unselecting: s.element
5033                    }))
5034                }), t(e.target).parents().addBack().each(function() {
5035                    var s, n = t.data(this, "selectable-item");
5036                    return n ? (s = !e.metaKey && !e.ctrlKey || !n.$element.hasClass("ui-selected"), i._removeClass(n.$element, s ? "ui-unselecting" : "ui-selected")._addClass(n.$element, s ? "ui-selecting" : "ui-unselecting"), n.unselecting = !s, n.selecting = s, n.selected = s, s ? i._trigger("selecting", e, {
5037                        selecting: n.element
5038                    }) : i._trigger("unselecting", e, {
5039                        unselecting: n.element
5040                    }), !1) : void 0
5041                }))
5042            },
5043            _mouseDrag: function(e) {
5044                if (this.dragged = !0, !this.options.disabled) {
5045                    var i, s = this,
5046                        n = this.options,
5047                        o = this.opos[0],
5048                        a = this.opos[1],
5049                        r = e.pageX,
5050                        l = e.pageY;
5051                    return o > r && (i = r, r = o, o = i), a > l && (i = l, l = a, a = i), this.helper.css({
5052                        left: o,
5053                        top: a,
5054                        width: r - o,
5055                        height: l - a
5056                    }), this.selectees.each(function() {
5057                        var i = t.data(this, "selectable-item"),
5058                            h = !1,
5059                            c = {};
5060                        i && i.element !== s.element[0] && (c.left = i.left + s.elementPos.left, c.right = i.right + s.elementPos.left, c.top = i.top + s.elementPos.top, c.bottom = i.bottom + s.elementPos.top, "touch" === n.tolerance ? h = !(c.left > r || o > c.right || c.top > l || a > c.bottom) : "fit" === n.tolerance && (h = c.left > o && r > c.right && c.top > a && l > c.bottom), h ? (i.selected && (s._removeClass(i.$element, "ui-selected"), i.selected = !1), i.unselecting && (s._removeClass(i.$element, "ui-unselecting"), i.unselecting = !1), i.selecting || (s._addClass(i.$element, "ui-selecting"), i.selecting = !0, s._trigger("selecting", e, {
5061                            selecting: i.element
5062                        }))) : (i.selecting && ((e.metaKey || e.ctrlKey) && i.startselected ? (s._removeClass(i.$element, "ui-selecting"), i.selecting = !1, s._addClass(i.$element, "ui-selected"), i.selected = !0) : (s._removeClass(i.$element, "ui-selecting"), i.selecting = !1, i.startselected && (s._addClass(i.$element, "ui-unselecting"), i.unselecting = !0), s._trigger("unselecting", e, {
5063                            unselecting: i.element
5064                        }))), i.selected && (e.metaKey || e.ctrlKey || i.startselected || (s._removeClass(i.$element, "ui-selected"), i.selected = !1, s._addClass(i.$element, "ui-unselecting"), i.unselecting = !0, s._trigger("unselecting", e, {
5065                            unselecting: i.element
5066                        })))))
5067                    }), !1
5068                }
5069            },
5070            _mouseStop: function(e) {
5071                var i = this;
5072                return this.dragged = !1, t(".ui-unselecting", this.element[0]).each(function() {
5073                    var s = t.data(this, "selectable-item");
5074                    i._removeClass(s.$element, "ui-unselecting"), s.unselecting = !1, s.startselected = !1, i._trigger("unselected", e, {
5075                        unselected: s.element
5076                    })
5077                }), t(".ui-selecting", this.element[0]).each(function() {
5078                    var s = t.data(this, "selectable-item");
5079                    i._removeClass(s.$element, "ui-selecting")._addClass(s.$element, "ui-selected"), s.selecting = !1, s.selected = !0, s.startselected = !0, i._trigger("selected", e, {
5080                        selected: s.element
5081                    })
5082                }), this._trigger("stop", e), this.helper.remove(), !1
5083            }
5084        }), t.widget("ui.selectmenu", [t.ui.formResetMixin, {
5085            version: "1.12.1",
5086            defaultElement: "<select>",
5087            options: {
5088                appendTo: null,
5089                classes: {
5090                    "ui-selectmenu-button-open": "ui-corner-top",
5091                    "ui-selectmenu-button-closed": "ui-corner-all"
5092                },
5093                disabled: null,
5094                icons: {
5095                    button: "ui-icon-triangle-1-s"
5096                },
5097                position: {
5098                    my: "left top",
5099                    at: "left bottom",
5100                    collision: "none"
5101                },
5102                width: !1,
5103                change: null,
5104                close: null,
5105                focus: null,
5106                open: null,
5107                select: null
5108            },
5109            _create: function() {
5110                var e = this.element.uniqueId().attr("id");
5111                this.ids = {
5112                    element: e,
5113                    button: e + "-button",
5114                    menu: e + "-menu"
5115                }, this._drawButton(), this._drawMenu(), this._bindFormResetHandler(), this._rendered = !1, this.menuItems = t()
5116            },
5117            _drawButton: function() {
5118                var e, i = this,
5119                    s = this._parseOption(this.element.find("option:selected"), this.element[0].selectedIndex);
5120                this.labels = this.element.labels().attr("for", this.ids.button), this._on(this.labels, {
5121                    click: function(t) {
5122                        this.button.focus(), t.preventDefault()
5123                    }
5124                }), this.element.hide(), this.button = t("<span>", {
5125                    tabindex: this.options.disabled ? -1 : 0,
5126                    id: this.ids.button,
5127                    role: "combobox",
5128                    "aria-expanded": "false",
5129                    "aria-autocomplete": "list",
5130                    "aria-owns": this.ids.menu,
5131                    "aria-haspopup": "true",
5132                    title: this.element.attr("title")
5133                }).insertAfter(this.element), this._addClass(this.button, "ui-selectmenu-button ui-selectmenu-button-closed", "ui-button ui-widget"), e = t("<span>").appendTo(this.button), this._addClass(e, "ui-selectmenu-icon", "ui-icon " + this.options.icons.button), this.buttonItem = this._renderButtonItem(s).appendTo(this.button), !1 !== this.options.width && this._resizeButton(), this._on(this.button, this._buttonEvents), this.button.one("focusin", function() {
5134                    i._rendered || i._refreshMenu()
5135                })
5136            },
5137            _drawMenu: function() {
5138                var e = this;
5139                this.menu = t("<ul>", {
5140                    "aria-hidden": "true",
5141                    "aria-labelledby": this.ids.button,
5142                    id: this.ids.menu
5143                }), this.menuWrap = t("<div>").append(this.menu), this._addClass(this.menuWrap, "ui-selectmenu-menu", "ui-front"), this.menuWrap.appendTo(this._appendTo()), this.menuInstance = this.menu.menu({
5144                    classes: {
5145                        "ui-menu": "ui-corner-bottom"
5146                    },
5147                    role: "listbox",
5148                    select: function(t, i) {
5149                        t.preventDefault(), e._setSelection(), e._select(i.item.data("ui-selectmenu-item"), t)
5150                    },
5151                    focus: function(t, i) {
5152                        var s = i.item.data("ui-selectmenu-item");
5153                        null != e.focusIndex && s.index !== e.focusIndex && (e._trigger("focus", t, {
5154                            item: s
5155                        }), e.isOpen || e._select(s, t)), e.focusIndex = s.index, e.button.attr("aria-activedescendant", e.menuItems.eq(s.index).attr("id"))
5156                    }
5157                }).menu("instance"), this.menuInstance._off(this.menu, "mouseleave"), this.menuInstance._closeOnDocumentClick = function() {
5158                    return !1
5159                }, this.menuInstance._isDivider = function() {
5160                    return !1
5161                }
5162            },
5163            refresh: function() {
5164                this._refreshMenu(), this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item") || {})), null === this.options.width && this._resizeButton()
5165            },
5166            _refreshMenu: function() {
5167                var t, e = this.element.find("option");
5168                this.menu.empty(), this._parseOptions(e), this._renderMenu(this.menu, this.items), this.menuInstance.refresh(), this.menuItems = this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"), this._rendered = !0, e.length && (t = this._getSelectedItem(), this.menuInstance.focus(null, t), this._setAria(t.data("ui-selectmenu-item")), this._setOption("disabled", this.element.prop("disabled")))
5169            },
5170            open: function(t) {
5171                this.options.disabled || (this._rendered ? (this._removeClass(this.menu.find(".ui-state-active"), null, "ui-state-active"), this.menuInstance.focus(null, this._getSelectedItem())) : this._refreshMenu(), this.menuItems.length && (this.isOpen = !0, this._toggleAttr(), this._resizeMenu(), this._position(), this._on(this.document, this._documentClick), this._trigger("open", t)))
5172            },
5173            _position: function() {
5174                this.menuWrap.position(t.extend({
5175                    of: this.button
5176                }, this.options.position))
5177            },
5178            close: function(t) {
5179                this.isOpen && (this.isOpen = !1, this._toggleAttr(), this.range = null, this._off(this.document), this._trigger("close", t))
5180            },
5181            widget: function() {
5182                return this.button
5183            },
5184            menuWidget: function() {
5185                return this.menu
5186            },
5187            _renderButtonItem: function(e) {
5188                var i = t("<span>");
5189                return this._setText(i, e.label), this._addClass(i, "ui-selectmenu-text"), i
5190            },
5191            _renderMenu: function(e, i) {
5192                var s = this,
5193                    n = "";
5194                t.each(i, function(i, o) {
5195                    var a;
5196                    o.optgroup !== n && (a = t("<li>", {
5197                        text: o.optgroup
5198                    }), s._addClass(a, "ui-selectmenu-optgroup", "ui-menu-divider" + (o.element.parent("optgroup").prop("disabled") ? " ui-state-disabled" : "")), a.appendTo(e), n = o.optgroup), s._renderItemData(e, o)
5199                })
5200            },
5201            _renderItemData: function(t, e) {
5202                return this._renderItem(t, e).data("ui-selectmenu-item", e)
5203            },
5204            _renderItem: function(e, i) {
5205                var s = t("<li>"),
5206                    n = t("<div>", {
5207                        title: i.element.attr("title")
5208                    });
5209                return i.disabled && this._addClass(s, null, "ui-state-disabled"), this._setText(n, i.label), s.append(n).appendTo(e)
5210            },
5211            _setText: function(t, e) {
5212                e ? t.text(e) : t.html("&#160;")
5213            },
5214            _move: function(t, e) {
5215                var i, s, n = ".ui-menu-item";
5216                this.isOpen ? i = this.menuItems.eq(this.focusIndex).parent("li") : (i = this.menuItems.eq(this.element[0].selectedIndex).parent("li"), n += ":not(.ui-state-disabled)"), s = "first" === t || "last" === t ? i["first" === t ? "prevAll" : "nextAll"](n).eq(-1) : i[t + "All"](n).eq(0), s.length && this.menuInstance.focus(e, s)
5217            },
5218            _getSelectedItem: function() {
5219                return this.menuItems.eq(this.element[0].selectedIndex).parent("li")
5220            },
5221            _toggle: function(t) {
5222                this[this.isOpen ? "close" : "open"](t)
5223            },
5224            _setSelection: function() {
5225                var t;
5226                this.range && (window.getSelection ? (t = window.getSelection(), t.removeAllRanges(), t.addRange(this.range)) : this.range.select(), this.button.focus())
5227            },
5228            _documentClick: {
5229                mousedown: function(e) {
5230                    this.isOpen && (t(e.target).closest(".ui-selectmenu-menu, #" + t.ui.escapeSelector(this.ids.button)).length || this.close(e))
5231                }
5232            },
5233            _buttonEvents: {
5234                mousedown: function() {
5235                    var t;
5236                    window.getSelection ? (t = window.getSelection(), t.rangeCount && (this.range = t.getRangeAt(0))) : this.range = document.selection.createRange()
5237                },
5238                click: function(t) {
5239                    this._setSelection(), this._toggle(t)
5240                },
5241                keydown: function(e) {
5242                    var i = !0;
5243                    switch (e.keyCode) {
5244                        case t.ui.keyCode.TAB:
5245                        case t.ui.keyCode.ESCAPE:
5246                            this.close(e), i = !1;
5247                            break;
5248                        case t.ui.keyCode.ENTER:
5249                            this.isOpen && this._selectFocusedItem(e);
5250                            break;
5251                        case t.ui.keyCode.UP:
5252                            e.altKey ? this._toggle(e) : this._move("prev", e);
5253                            break;
5254                        case t.ui.keyCode.DOWN:
5255                            e.altKey ? this._toggle(e) : this._move("next", e);
5256                            break;
5257                        case t.ui.keyCode.SPACE:
5258                            this.isOpen ? this._selectFocusedItem(e) : this._toggle(e);
5259                            break;
5260                        case t.ui.keyCode.LEFT:
5261                            this._move("prev", e);
5262                            break;
5263                        case t.ui.keyCode.RIGHT:
5264                            this._move("next", e);
5265                            break;
5266                        case t.ui.keyCode.HOME:
5267                        case t.ui.keyCode.PAGE_UP:
5268                            this._move("first", e);
5269                            break;
5270                        case t.ui.keyCode.END:
5271                        case t.ui.keyCode.PAGE_DOWN:
5272                            this._move("last", e);
5273                            break;
5274                        default:
5275                            this.menu.trigger(e), i = !1
5276                    }
5277                    i && e.preventDefault()
5278                }
5279            },
5280            _selectFocusedItem: function(t) {
5281                var e = this.menuItems.eq(this.focusIndex).parent("li");
5282                e.hasClass("ui-state-disabled") || this._select(e.data("ui-selectmenu-item"), t)
5283            },
5284            _select: function(t, e) {
5285                var i = this.element[0].selectedIndex;
5286                this.element[0].selectedIndex = t.index, this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(t)), this._setAria(t), this._trigger("select", e, {
5287                    item: t
5288                }), t.index !== i && this._trigger("change", e, {
5289                    item: t
5290                }), this.close(e)
5291            },
5292            _setAria: function(t) {
5293                var e = this.menuItems.eq(t.index).attr("id");
5294                this.button.attr({
5295                    "aria-labelledby": e,
5296                    "aria-activedescendant": e
5297                }), this.menu.attr("aria-activedescendant", e)
5298            },
5299            _setOption: function(t, e) {
5300                if ("icons" === t) {
5301                    var i = this.button.find("span.ui-icon");
5302                    this._removeClass(i, null, this.options.icons.button)._addClass(i, null, e.button)
5303                }
5304                this._super(t, e), "appendTo" === t && this.menuWrap.appendTo(this._appendTo()), "width" === t && this._resizeButton()
5305            },
5306            _setOptionDisabled: function(t) {
5307                this._super(t), this.menuInstance.option("disabled", t), this.button.attr("aria-disabled", t), this._toggleClass(this.button, null, "ui-state-disabled", t), this.element.prop("disabled", t), t ? (this.button.attr("tabindex", -1), this.close()) : this.button.attr("tabindex", 0)
5308            },
5309            _appendTo: function() {
5310                var e = this.options.appendTo;
5311                return e && (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)), e && e[0] || (e = this.element.closest(".ui-front, dialog")), e.length || (e = this.document[0].body), e
5312            },
5313            _toggleAttr: function() {
5314                this.button.attr("aria-expanded", this.isOpen), 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), this.menu.attr("aria-hidden", !this.isOpen)
5315            },
5316            _resizeButton: function() {
5317                var t = this.options.width;
5318                return !1 === t ? void this.button.css("width", "") : (null === t && (t = this.element.show().outerWidth(), this.element.hide()), void this.button.outerWidth(t))
5319            },
5320            _resizeMenu: function() {
5321                this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width("").outerWidth() + 1))
5322            },
5323            _getCreateOptions: function() {
5324                var t = this._super();
5325                return t.disabled = this.element.prop("disabled"), t
5326            },
5327            _parseOptions: function(e) {
5328                var i = this,
5329                    s = [];
5330                e.each(function(e, n) {
5331                    s.push(i._parseOption(t(n), e))
5332                }), this.items = s
5333            },
5334            _parseOption: function(t, e) {
5335                var i = t.parent("optgroup");
5336                return {
5337                    element: t,
5338                    index: e,
5339                    value: t.val(),
5340                    label: t.text(),
5341                    optgroup: i.attr("label") || "",
5342                    disabled: i.prop("disabled") || t.prop("disabled")
5343                }
5344            },
5345            _destroy: function() {
5346                this._unbindFormResetHandler(), this.menuWrap.remove(), this.button.remove(), this.element.show(), this.element.removeUniqueId(), this.labels.attr("for", this.ids.element)
5347            }
5348        }]), t.widget("ui.slider", t.ui.mouse, {
5349            version: "1.12.1",
5350            widgetEventPrefix: "slide",
5351            options: {
5352                animate: !1,
5353                classes: {
5354                    "ui-slider": "ui-corner-all",
5355                    "ui-slider-handle": "ui-corner-all",
5356                    "ui-slider-range": "ui-corner-all ui-widget-header"
5357                },
5358                distance: 0,
5359                max: 100,
5360                min: 0,
5361                orientation: "horizontal",
5362                range: !1,
5363                step: 1,
5364                value: 0,
5365                values: null,
5366                change: null,
5367                slide: null,
5368                start: null,
5369                stop: null
5370            },
5371            numPages: 5,
5372            _create: function() {
5373                this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this._calculateNewMax(), this._addClass("ui-slider ui-slider-" + this.orientation, "ui-widget ui-widget-content"), this._refresh(), this._animateOff = !1
5374            },
5375            _refresh: function() {
5376                this._createRange(), this._createHandles(), this._setupEvents(), this._refreshValue()
5377            },
5378            _createHandles: function() {
5379                var e, i, s = this.options,
5380                    n = this.element.find(".ui-slider-handle"),
5381                    o = [];
5382                for (i = s.values && s.values.length || 1, n.length >
vendor: 30,010 bytes, lines 5382-5815
5382 i && (n.slice(i).remove(), n = n.slice(0, i)), e = n.length; i > e; e++) o.push("<span tabindex='0'></span>");
5383                this.handles = n.add(t(o.join("")).appendTo(this.element)), this._addClass(this.handles, "ui-slider-handle", "ui-state-default"), this.handle = this.handles.eq(0), this.handles.each(function(e) {
5384                    t(this).data("ui-slider-handle-index", e).attr("tabIndex", 0)
5385                })
5386            },
5387            _createRange: function() {
5388                var e = this.options;
5389                e.range ? (!0 === e.range && (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()]), this.range && this.range.length ? (this._removeClass(this.range, "ui-slider-range-min ui-slider-range-max"), this.range.css({
5390                    left: "",
5391                    bottom: ""
5392                })) : (this.range = t("<div>").appendTo(this.element), this._addClass(this.range, "ui-slider-range")), ("min" === e.range || "max" === e.range) && this._addClass(this.range, "ui-slider-range-" + e.range)) : (this.range && this.range.remove(), this.range = null)
5393            },
5394            _setupEvents: function() {
5395                this._off(this.handles), this._on(this.handles, this._handleEvents), this._hoverable(this.handles), this._focusable(this.handles)
5396            },
5397            _destroy: function() {
5398                this.handles.remove(), this.range && this.range.remove(), this._mouseDestroy()
5399            },
5400            _mouseCapture: function(e) {
5401                var i, s, n, o, a, r, l, h = this,
5402                    c = this.options;
5403                return !c.disabled && (this.elementSize = {
5404                    width: this.element.outerWidth(),
5405                    height: this.element.outerHeight()
5406                }, this.elementOffset = this.element.offset(), i = {
5407                    x: e.pageX,
5408                    y: e.pageY
5409                }, s = this._normValueFromMouse(i), n = this._valueMax() - this._valueMin() + 1, this.handles.each(function(e) {
5410                    var i = Math.abs(s - h.values(e));
5411                    (n > i || n === i && (e === h._lastChangedValue || h.values(e) === c.min)) && (n = i, o = t(this), a = e)
5412                }), !1 !== this._start(e, a) && (this._mouseSliding = !0, this._handleIndex = a, this._addClass(o, null, "ui-state-active"), o.trigger("focus"), r = o.offset(), l = !t(e.target).parents().addBack().is(".ui-slider-handle"), this._clickOffset = l ? {
5413                    left: 0,
5414                    top: 0
5415                } : {
5416                    left: e.pageX - r.left - o.width() / 2,
5417                    top: e.pageY - r.top - o.height() / 2 - (parseInt(o.css("borderTopWidth"), 10) || 0) - (parseInt(o.css("borderBottomWidth"), 10) || 0) + (parseInt(o.css("marginTop"), 10) || 0)
5418                }, this.handles.hasClass("ui-state-hover") || this._slide(e, a, s), this._animateOff = !0, !0))
5419            },
5420            _mouseStart: function() {
5421                return !0
5422            },
5423            _mouseDrag: function(t) {
5424                var e = {
5425                        x: t.pageX,
5426                        y: t.pageY
5427                    },
5428                    i = this._normValueFromMouse(e);
5429                return this._slide(t, this._handleIndex, i), !1
5430            },
5431            _mouseStop: function(t) {
5432                return this._removeClass(this.handles, null, "ui-state-active"), this._mouseSliding = !1, this._stop(t, this._handleIndex), this._change(t, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1
5433            },
5434            _detectOrientation: function() {
5435                this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal"
5436            },
5437            _normValueFromMouse: function(t) {
5438                var e, i, s, n, o;
5439                return "horizontal" === this.orientation ? (e = this.elementSize.width, i = t.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (e = this.elementSize.height, i = t.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), s = i / e, s > 1 && (s = 1), 0 > s && (s = 0), "vertical" === this.orientation && (s = 1 - s), n = this._valueMax() - this._valueMin(), o = this._valueMin() + s * n, this._trimAlignValue(o)
5440            },
5441            _uiHash: function(t, e, i) {
5442                var s = {
5443                    handle: this.handles[t],
5444                    handleIndex: t,
5445                    value: void 0 !== e ? e : this.value()
5446                };
5447                return this._hasMultipleValues() && (s.value = void 0 !== e ? e : this.values(t), s.values = i || this.values()), s
5448            },
5449            _hasMultipleValues: function() {
5450                return this.options.values && this.options.values.length
5451            },
5452            _start: function(t, e) {
5453                return this._trigger("start", t, this._uiHash(e))
5454            },
5455            _slide: function(t, e, i) {
5456                var s, n = this.value(),
5457                    o = this.values();
5458                this._hasMultipleValues() && (s = this.values(e ? 0 : 1), n = this.values(e), 2 === this.options.values.length && !0 === this.options.range && (i = 0 === e ? Math.min(s, i) : Math.max(s, i)), o[e] = i), i !== n && !1 !== this._trigger("slide", t, this._uiHash(e, i, o)) && (this._hasMultipleValues() ? this.values(e, i) : this.value(i))
5459            },
5460            _stop: function(t, e) {
5461                this._trigger("stop", t, this._uiHash(e))
5462            },
5463            _change: function(t, e) {
5464                this._keySliding || this._mouseSliding || (this._lastChangedValue = e, this._trigger("change", t, this._uiHash(e)))
5465            },
5466            value: function(t) {
5467                return arguments.length ? (this.options.value = this._trimAlignValue(t), this._refreshValue(), void this._change(null, 0)) : this._value()
5468            },
5469            values: function(e, i) {
5470                var s, n, o;
5471                if (arguments.length > 1) return this.options.values[e] = this._trimAlignValue(i), this._refreshValue(), void this._change(null, e);
5472                if (!arguments.length) return this._values();
5473                if (!t.isArray(arguments[0])) return this._hasMultipleValues() ? this._values(e) : this.value();
5474                for (s = this.options.values, n = arguments[0], o = 0; s.length > o; o += 1) s[o] = this._trimAlignValue(n[o]), this._change(null, o);
5475                this._refreshValue()
5476            },
5477            _setOption: function(e, i) {
5478                var s, n = 0;
5479                switch ("range" === e && !0 === this.options.range && ("min" === i ? (this.options.value = this._values(0), this.options.values = null) : "max" === i && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), t.isArray(this.options.values) && (n = this.options.values.length), this._super(e, i), e) {
5480                    case "orientation":
5481                        this._detectOrientation(), this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-" + this.orientation), this._refreshValue(), this.options.range && this._refreshRange(i), this.handles.css("horizontal" === i ? "bottom" : "left", "");
5482                        break;
5483                    case "value":
5484                        this._animateOff = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1;
5485                        break;
5486                    case "values":
5487                        for (this._animateOff = !0, this._refreshValue(), s = n - 1; s >= 0; s--) this._change(null, s);
5488                        this._animateOff = !1;
5489                        break;
5490                    case "step":
5491                    case "min":
5492                    case "max":
5493                        this._animateOff = !0, this._calculateNewMax(), this._refreshValue(), this._animateOff = !1;
5494                        break;
5495                    case "range":
5496                        this._animateOff = !0, this._refresh(), this._animateOff = !1
5497                }
5498            },
5499            _setOptionDisabled: function(t) {
5500                this._super(t), this._toggleClass(null, "ui-state-disabled", !!t)
5501            },
5502            _value: function() {
5503                var t = this.options.value;
5504                return t = this._trimAlignValue(t)
5505            },
5506            _values: function(t) {
5507                var e, i, s;
5508                if (arguments.length) return e = this.options.values[t], e = this._trimAlignValue(e);
5509                if (this._hasMultipleValues()) {
5510                    for (i = this.options.values.slice(), s = 0; i.length > s; s += 1) i[s] = this._trimAlignValue(i[s]);
5511                    return i
5512                }
5513                return []
5514            },
5515            _trimAlignValue: function(t) {
5516                if (this._valueMin() >= t) return this._valueMin();
5517                if (t >= this._valueMax()) return this._valueMax();
5518                var e = this.options.step > 0 ? this.options.step : 1,
5519                    i = (t - this._valueMin()) % e,
5520                    s = t - i;
5521                return 2 * Math.abs(i) >= e && (s += i > 0 ? e : -e), parseFloat(s.toFixed(5))
5522            },
5523            _calculateNewMax: function() {
5524                var t = this.options.max,
5525                    e = this._valueMin(),
5526                    i = this.options.step;
5527                t = Math.round((t - e) / i) * i + e, t > this.options.max && (t -= i), this.max = parseFloat(t.toFixed(this._precision()))
5528            },
5529            _precision: function() {
5530                var t = this._precisionOf(this.options.step);
5531                return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))), t
5532            },
5533            _precisionOf: function(t) {
5534                var e = "" + t,
5535                    i = e.indexOf(".");
5536                return -1 === i ? 0 : e.length - i - 1
5537            },
5538            _valueMin: function() {
5539                return this.options.min
5540            },
5541            _valueMax: function() {
5542                return this.max
5543            },
5544            _refreshRange: function(t) {
5545                "vertical" === t && this.range.css({
5546                    width: "",
5547                    left: ""
5548                }), "horizontal" === t && this.range.css({
5549                    height: "",
5550                    bottom: ""
5551                })
5552            },
5553            _refreshValue: function() {
5554                var e, i, s, n, o, a = this.options.range,
5555                    r = this.options,
5556                    l = this,
5557                    h = !this._animateOff && r.animate,
5558                    c = {};
5559                this._hasMultipleValues() ? this.handles.each(function(s) {
5560                    i = (l.values(s) - l._valueMin()) / (l._valueMax() - l._valueMin()) * 100, c["horizontal" === l.orientation ? "left" : "bottom"] = i + "%", t(this).stop(1, 1)[h ? "animate" : "css"](c, r.animate), !0 === l.options.range && ("horizontal" === l.orientation ? (0 === s && l.range.stop(1, 1)[h ? "animate" : "css"]({
5561                        left: i + "%"
5562                    }, r.animate), 1 === s && l.range[h ? "animate" : "css"]({
5563                        width: i - e + "%"
5564                    }, {
5565                        queue: !1,
5566                        duration: r.animate
5567                    })) : (0 === s && l.range.stop(1, 1)[h ? "animate" : "css"]({
5568                        bottom: i + "%"
5569                    }, r.animate), 1 === s && l.range[h ? "animate" : "css"]({
5570                        height: i - e + "%"
5571                    }, {
5572                        queue: !1,
5573                        duration: r.animate
5574                    }))), e = i
5575                }) : (s = this.value(), n = this._valueMin(), o = this._valueMax(), i = o !== n ? (s - n) / (o - n) * 100 : 0, c["horizontal" === this.orientation ? "left" : "bottom"] = i + "%", this.handle.stop(1, 1)[h ? "animate" : "css"](c, r.animate), "min" === a && "horizontal" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({
5576                    width: i + "%"
5577                }, r.animate), "max" === a && "horizontal" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({
5578                    width: 100 - i + "%"
5579                }, r.animate), "min" === a && "vertical" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({
5580                    height: i + "%"
5581                }, r.animate), "max" === a && "vertical" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({
5582                    height: 100 - i + "%"
5583                }, r.animate))
5584            },
5585            _handleEvents: {
5586                keydown: function(e) {
5587                    var i, s, n, o = t(e.target).data("ui-slider-handle-index");
5588                    switch (e.keyCode) {
5589                        case t.ui.keyCode.HOME:
5590                        case t.ui.keyCode.END:
5591                        case t.ui.keyCode.PAGE_UP:
5592                        case t.ui.keyCode.PAGE_DOWN:
5593                        case t.ui.keyCode.UP:
5594                        case t.ui.keyCode.RIGHT:
5595                        case t.ui.keyCode.DOWN:
5596                        case t.ui.keyCode.LEFT:
5597                            if (e.preventDefault(), !this._keySliding && (this._keySliding = !0, this._addClass(t(e.target), null, "ui-state-active"), !1 === this._start(e, o))) return
5598                    }
5599                    switch (n = this.options.step, i = s = this._hasMultipleValues() ? this.values(o) : this.value(), e.keyCode) {
5600                        case t.ui.keyCode.HOME:
5601                            s = this._valueMin();
5602                            break;
5603                        case t.ui.keyCode.END:
5604                            s = this._valueMax();
5605                            break;
5606                        case t.ui.keyCode.PAGE_UP:
5607                            s = this._trimAlignValue(i + (this._valueMax() - this._valueMin()) / this.numPages);
5608                            break;
5609                        case t.ui.keyCode.PAGE_DOWN:
5610                            s = this._trimAlignValue(i - (this._valueMax() - this._valueMin()) / this.numPages);
5611                            break;
5612                        case t.ui.keyCode.UP:
5613                        case t.ui.keyCode.RIGHT:
5614                            if (i === this._valueMax()) return;
5615                            s = this._trimAlignValue(i + n);
5616                            break;
5617                        case t.ui.keyCode.DOWN:
5618                        case t.ui.keyCode.LEFT:
5619                            if (i === this._valueMin()) return;
5620                            s = this._trimAlignValue(i - n)
5621                    }
5622                    this._slide(e, o, s)
5623                },
5624                keyup: function(e) {
5625                    var i = t(e.target).data("ui-slider-handle-index");
5626                    this._keySliding && (this._keySliding = !1, this._stop(e, i), this._change(e, i), this._removeClass(t(e.target), null, "ui-state-active"))
5627                }
5628            }
5629        }), t.widget("ui.sortable", t.ui.mouse, {
5630            version: "1.12.1",
5631            widgetEventPrefix: "sort",
5632            ready: !1,
5633            options: {
5634                appendTo: "parent",
5635                axis: !1,
5636                connectWith: !1,
5637                containment: !1,
5638                cursor: "auto",
5639                cursorAt: !1,
5640                dropOnEmpty: !0,
5641                forcePlaceholderSize: !1,
5642                forceHelperSize: !1,
5643                grid: !1,
5644                handle: !1,
5645                helper: "original",
5646                items: "> *",
5647                opacity: !1,
5648                placeholder: !1,
5649                revert: !1,
5650                scroll: !0,
5651                scrollSensitivity: 20,
5652                scrollSpeed: 20,
5653                scope: "default",
5654                tolerance: "intersect",
5655                zIndex: 1e3,
5656                activate: null,
5657                beforeStop: null,
5658                change: null,
5659                deactivate: null,
5660                out: null,
5661                over: null,
5662                receive: null,
5663                remove: null,
5664                sort: null,
5665                start: null,
5666                stop: null,
5667                update: null
5668            },
5669            _isOverAxis: function(t, e, i) {
5670                return t >= e && e + i > t
5671            },
5672            _isFloating: function(t) {
5673                return /left|right/.test(t.css("float")) || /inline|table-cell/.test(t.css("display"))
5674            },
5675            _create: function() {
5676                this.containerCache = {}, this._addClass("ui-sortable"), this.refresh(), this.offset = this.element.offset(), this._mouseInit(), this._setHandleClassName(), this.ready = !0
5677            },
5678            _setOption: function(t, e) {
5679                this._super(t, e), "handle" === t && this._setHandleClassName()
5680            },
5681            _setHandleClassName: function() {
5682                var e = this;
5683                this._removeClass(this.element.find(".ui-sortable-handle"), "ui-sortable-handle"), t.each(this.items, function() {
5684                    e._addClass(this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item, "ui-sortable-handle")
5685                })
5686            },
5687            _destroy: function() {
5688                this._mouseDestroy();
5689                for (var t = this.items.length - 1; t >= 0; t--) this.items[t].item.removeData(this.widgetName + "-item");
5690                return this
5691            },
5692            _mouseCapture: function(e, i) {
5693                var s = null,
5694                    n = !1,
5695                    o = this;
5696                return !this.reverting && (!this.options.disabled && "static" !== this.options.type && (this._refreshItems(e), t(e.target).parents().each(function() {
5697                    return t.data(this, o.widgetName + "-item") === o ? (s = t(this), !1) : void 0
5698                }), t.data(e.target, o.widgetName + "-item") === o && (s = t(e.target)), !!s && (!(this.options.handle && !i && (t(this.options.handle, s).find("*").addBack().each(function() {
5699                    this === e.target && (n = !0)
5700                }), !n)) && (this.currentItem = s, this._removeCurrentsFromItems(), !0))))
5701            },
5702            _mouseStart: function(e, i, s) {
5703                var n, o, a = this.options;
5704                if (this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(e), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = {
5705                        top: this.offset.top - this.margins.top,
5706                        left: this.offset.left - this.margins.left
5707                    }, t.extend(this.offset, {
5708                        click: {
5709                            left: e.pageX - this.offset.left,
5710                            top: e.pageY - this.offset.top
5711                        },
5712                        parent: this._getParentOffset(),
5713                        relative: this._getRelativeOffset()
5714                    }), this.helper.css("position", "absolute"), this.cssPosition = this.helper.css("position"), this.originalPosition = this._generatePosition(e), this.originalPageX = e.pageX, this.originalPageY = e.pageY, a.cursorAt && this._adjustOffsetFromHelper(a.cursorAt), this.domPosition = {
5715                        prev: this.currentItem.prev()[0],
5716                        parent: this.currentItem.parent()[0]
5717                    }, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), a.containment && this._setContainment(), a.cursor && "auto" !== a.cursor && (o = this.document.find("body"), this.storedCursor = o.css("cursor"), o.css("cursor", a.cursor), this.storedStylesheet = t("<style>*{ cursor: " + a.cursor + " !important; }</style>").appendTo(o)), a.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), this.helper.css("opacity", a.opacity)), a.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), this.helper.css("zIndex", a.zIndex)), this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger("start", e, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !s)
5718                    for (n = this.containers.length - 1; n >= 0; n--) this.containers[n]._trigger("activate", e, this._uiHash(this));
5719                return t.ui.ddmanager && (t.ui.ddmanager.current = this), t.ui.ddmanager && !a.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e), this.dragging = !0, this._addClass(this.helper, "ui-sortable-helper"), this._mouseDrag(e), !0
5720            },
5721            _mouseDrag: function(e) {
5722                var i, s, n, o, a = this.options,
5723                    r = !1;
5724                for (this.position = this._generatePosition(e), this.positionAbs = this._convertPositionTo("absolute"), this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), this.options.scroll && (this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - e.pageY < a.scrollSensitivity ? this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop + a.scrollSpeed : e.pageY - this.overflowOffset.top < a.scrollSensitivity && (this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop - a.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - e.pageX < a.scrollSensitivity ? this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft + a.scrollSpeed : e.pageX - this.overflowOffset.left < a.scrollSensitivity && (this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft - a.scrollSpeed)) : (e.pageY - this.document.scrollTop() < a.scrollSensitivity ? r = this.document.scrollTop(this.document.scrollTop() - a.scrollSpeed) : this.window.height() - (e.pageY - this.document.scrollTop()) < a.scrollSensitivity && (r = this.document.scrollTop(this.document.scrollTop() + a.scrollSpeed)), e.pageX - this.document.scrollLeft() < a.scrollSensitivity ? r = this.document.scrollLeft(this.document.scrollLeft() - a.scrollSpeed) : this.window.width() - (e.pageX - this.document.scrollLeft()) < a.scrollSensitivity && (r = this.document.scrollLeft(this.document.scrollLeft() + a.scrollSpeed))), !1 !== r && t.ui.ddmanager && !a.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e)), this.positionAbs = this._convertPositionTo("absolute"), this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"), this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"), i = this.items.length - 1; i >= 0; i--)
5725                    if (s = this.items[i], n = s.item[0], (o = this._intersectsWithPointer(s)) && s.instance === this.currentContainer && n !== this.currentItem[0] && this.placeholder[1 === o ? "next" : "prev"]()[0] !== n && !t.contains(this.placeholder[0], n) && ("semi-dynamic" !== this.options.type || !t.contains(this.element[0], n))) {
5726                        if (this.direction = 1 === o ? "down" : "up", "pointer" !== this.options.tolerance && !this._intersectsWithSides(s)) break;
5727                        this._rearrange(e, s), this._trigger("change", e, this._uiHash());
5728                        break
5729                    } return this._contactContainers(e), t.ui.ddmanager && t.ui.ddmanager.drag(this, e), this._trigger("sort", e, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1
5730            },
5731            _mouseStop: function(e, i) {
5732                if (e) {
5733                    if (t.ui.ddmanager && !this.options.dropBehaviour && t.ui.ddmanager.drop(this, e), this.options.revert) {
5734                        var s = this,
5735                            n = this.placeholder.offset(),
5736                            o = this.options.axis,
5737                            a = {};
5738                        o && "x" !== o || (a.left = n.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft)), o && "y" !== o || (a.top = n.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop)), this.reverting = !0, t(this.helper).animate(a, parseInt(this.options.revert, 10) || 500, function() {
5739                            s._clear(e)
5740                        })
5741                    } else this._clear(e, i);
5742                    return !1
5743                }
5744            },
5745            cancel: function() {
5746                if (this.dragging) {
5747                    this._mouseUp(new t.Event("mouseup", {
5748                        target: null
5749                    })), "original" === this.options.helper ? (this.currentItem.css(this._storedCSS), this._removeClass(this.currentItem, "ui-sortable-helper")) : this.currentItem.show();
5750                    for (var e = this.containers.length - 1; e >= 0; e--) this.containers[e]._trigger("deactivate", null, this._uiHash(this)), this.containers[e].containerCache.over && (this.containers[e]._trigger("out", null, this._uiHash(this)), this.containers[e].containerCache.over = 0)
5751                }
5752                return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), "original" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), t.extend(this, {
5753                    helper: null,
5754                    dragging: !1,
5755                    reverting: !1,
5756                    _noFinalSort: null
5757                }), this.domPosition.prev ? t(this.domPosition.prev).after(this.currentItem) : t(this.domPosition.parent).prepend(this.currentItem)), this
5758            },
5759            serialize: function(e) {
5760                var i = this._getItemsAsjQuery(e && e.connected),
5761                    s = [];
5762                return e = e || {}, t(i).each(function() {
5763                    var i = (t(e.item || this).attr(e.attribute || "id") || "").match(e.expression || /(.+)[\-=_](.+)/);
5764                    i && s.push((e.key || i[1] + "[]") + "=" + (e.key && e.expression ? i[1] : i[2]))
5765                }), !s.length && e.key && s.push(e.key + "="), s.join("&")
5766            },
5767            toArray: function(e) {
5768                var i = this._getItemsAsjQuery(e && e.connected),
5769                    s = [];
5770                return e = e || {}, i.each(function() {
5771                    s.push(t(e.item || this).attr(e.attribute || "id") || "")
5772                }), s
5773            },
5774            _intersectsWith: function(t) {
5775                var e = this.positionAbs.left,
5776                    i = e + this.helperProportions.width,
5777                    s = this.positionAbs.top,
5778                    n = s + this.helperProportions.height,
5779                    o = t.left,
5780                    a = o + t.width,
5781                    r = t.top,
5782                    l = r + t.height,
5783                    h = this.offset.click.top,
5784                    c = this.offset.click.left,
5785                    d = "x" === this.options.axis || s + h > r && l > s + h,
5786                    u = "y" === this.options.axis || e + c > o && a > e + c,
5787                    p = d && u;
5788                return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > t[this.floating ? "width" : "height"] ? p : e + this.helperProportions.width / 2 > o && a > i - this.helperProportions.width / 2 && s + this.helperProportions.height / 2 > r && l > n - this.helperProportions.height / 2
5789            },
5790            _intersectsWithPointer: function(t) {
5791                var e, i, s = "x" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top, t.height),
5792                    n = "y" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left, t.width);
5793                return !(!s || !n) && (e = this._getDragVerticalDirection(), i = this._getDragHorizontalDirection(), this.floating ? "right" === i || "down" === e ? 2 : 1 : e && ("down" === e ? 2 : 1))
5794            },
5795            _intersectsWithSides: function(t) {
5796                var e = this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top + t.height / 2, t.height),
5797                    i = this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left + t.width / 2, t.width),
5798                    s = this._getDragVerticalDirection(),
5799                    n = this._getDragHorizontalDirection();
5800                return this.floating && n ? "right" === n && i || "left" === n && !i : s && ("down" === s && e || "up" === s && !e)
5801            },
5802            _getDragVerticalDirection: function() {
5803                var t = this.positionAbs.top - this.lastPositionAbs.top;
5804                return 0 !== t && (t > 0 ? "down" : "up")
5805            },
5806            _getDragHorizontalDirection: function() {
5807                var t = this.positionAbs.left - this.lastPositionAbs.left;
5808                return 0 !== t && (t > 0 ? "right" : "left")
5809            },
5810            refresh: function(t) {
5811                return this._refreshItems(t), this._setHandleClassName(), this.refreshPositions(), this
5812            },
5813            _connectWith: function() {
5814                var t = this.options;
5815                return t.connectWith.constructor === String ? [t.connectWith
vendor: 3,647 bytes, lines 5815-5869
5815] : t.connectWith
5816            },
5817            _getItemsAsjQuery: function(e) {
5818                function i() {
5819                    r.push(this)
5820                }
5821                var s, n, o, a, r = [],
5822                    l = [],
5823                    h = this._connectWith();
5824                if (h && e)
5825                    for (s = h.length - 1; s >= 0; s--)
5826                        for (o = t(h[s], this.document[0]), n = o.length - 1; n >= 0; n--)(a = t.data(o[n], this.widgetFullName)) && a !== this && !a.options.disabled && l.push([t.isFunction(a.options.items) ? a.options.items.call(a.element) : t(a.options.items, a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), a]);
5827                for (l.push([t.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
5828                        options: this.options,
5829                        item: this.currentItem
5830                    }) : t(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]), s = l.length - 1; s >= 0; s--) l[s][0].each(i);
5831                return t(r)
5832            },
5833            _removeCurrentsFromItems: function() {
5834                var e = this.currentItem.find(":data(" + this.widgetName + "-item)");
5835                this.items = t.grep(this.items, function(t) {
5836                    for (var i = 0; e.length > i; i++)
5837                        if (e[i] === t.item[0]) return !1;
5838                    return !0
5839                })
5840            },
5841            _refreshItems: function(e) {
5842                this.items = [], this.containers = [this];
5843                var i, s, n, o, a, r, l, h, c = this.items,
5844                    d = [
5845                        [t.isFunction(this.options.items) ? this.options.items.call(this.element[0], e, {
5846                            item: this.currentItem
5847                        }) : t(this.options.items, this.element), this]
5848                    ],
5849                    u = this._connectWith();
5850                if (u && this.ready)
5851                    for (i = u.length - 1; i >= 0; i--)
5852                        for (n = t(u[i], this.document[0]), s = n.length - 1; s >= 0; s--)(o = t.data(n[s], this.widgetFullName)) && o !== this && !o.options.disabled && (d.push([t.isFunction(o.options.items) ? o.options.items.call(o.element[0], e, {
5853                            item: this.currentItem
5854                        }) : t(o.options.items, o.element), o]), this.containers.push(o));
5855                for (i = d.length - 1; i >= 0; i--)
5856                    for (a = d[i][1], r = d[i][0], s = 0, h = r.length; h > s; s++) l = t(r[s]), l.data(this.widgetName + "-item", a), c.push({
5857                        item: l,
5858                        instance: a,
5859                        width: 0,
5860                        height: 0,
5861                        left: 0,
5862                        top: 0
5863                    })
5864            },
5865            refreshPositions: function(e) {
5866                this.floating = !!this.items.length && ("x" === this.options.axis || this._isFloating(this.items[0].item)), this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());
5867                var i, s, n, o;
5868                for (i = this.items.length - 1; i >= 0; i--) s = this.items[i], s.instance !== this.currentContainer && this.currentContainer && s.item[0] !== this.currentItem[0] || (n = this.options.toleranceElement ? t(this.options.toleranceElement, s.item) : s.item, e || (s.width = n.outerWidth(), s.height = n.outerHeight()), o = n.offset(), s.left = o.left, s.top = o.top);
5869                if (this.options.custom && this.options.custom.refreshContainers
vendor: 18,074 bytes, lines 5869-6082
5869) this.options.custom.refreshContainers.call(this);
5870                else
5871                    for (i = this.containers.length - 1; i >= 0; i--) o = this.containers[i].element.offset(), this.containers[i].containerCache.left = o.left, this.containers[i].containerCache.top = o.top, this.containers[i].containerCache.width = this.containers[i].element.outerWidth(), this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
5872                return this
5873            },
5874            _createPlaceholder: function(e) {
5875                e = e || this;
5876                var i, s = e.options;
5877                s.placeholder && s.placeholder.constructor !== String || (i = s.placeholder, s.placeholder = {
5878                    element: function() {
5879                        var s = e.currentItem[0].nodeName.toLowerCase(),
5880                            n = t("<" + s + ">", e.document[0]);
5881                        return e._addClass(n, "ui-sortable-placeholder", i || e.currentItem[0].className)._removeClass(n, "ui-sortable-helper"), "tbody" === s ? e._createTrPlaceholder(e.currentItem.find("tr").eq(0), t("<tr>", e.document[0]).appendTo(n)) : "tr" === s ? e._createTrPlaceholder(e.currentItem, n) : "img" === s && n.attr("src", e.currentItem.attr("src")), i || n.css("visibility", "hidden"), n
5882                    },
5883                    update: function(t, n) {
5884                        (!i || s.forcePlaceholderSize) && (n.height() || n.height(e.currentItem.innerHeight() - parseInt(e.currentItem.css("paddingTop") || 0, 10) - parseInt(e.currentItem.css("paddingBottom") || 0, 10)), n.width() || n.width(e.currentItem.innerWidth() - parseInt(e.currentItem.css("paddingLeft") || 0, 10) - parseInt(e.currentItem.css("paddingRight") || 0, 10)))
5885                    }
5886                }), e.placeholder = t(s.placeholder.element.call(e.element, e.currentItem)), e.currentItem.after(e.placeholder), s.placeholder.update(e, e.placeholder)
5887            },
5888            _createTrPlaceholder: function(e, i) {
5889                var s = this;
5890                e.children().each(function() {
5891                    t("<td>&#160;</td>", s.document[0]).attr("colspan", t(this).attr("colspan") || 1).appendTo(i)
5892                })
5893            },
5894            _contactContainers: function(e) {
5895                var i, s, n, o, a, r, l, h, c, d, u = null,
5896                    p = null;
5897                for (i = this.containers.length - 1; i >= 0; i--)
5898                    if (!t.contains(this.currentItem[0], this.containers[i].element[0]))
5899                        if (this._intersectsWith(this.containers[i].containerCache)) {
5900                            if (u && t.contains(this.containers[i].element[0], u.element[0])) continue;
5901                            u = this.containers[i], p = i
5902                        } else this.containers[i].containerCache.over && (this.containers[i]._trigger("out", e, this._uiHash(this)), this.containers[i].containerCache.over = 0);
5903                if (u)
5904                    if (1 === this.containers.length) this.containers[p].containerCache.over || (this.containers[p]._trigger("over", e, this._uiHash(this)), this.containers[p].containerCache.over = 1);
5905                    else {
5906                        for (n = 1e4, o = null, c = u.floating || this._isFloating(this.currentItem), a = c ? "left" : "top", r = c ? "width" : "height", d = c ? "pageX" : "pageY", s = this.items.length - 1; s >= 0; s--) t.contains(this.containers[p].element[0], this.items[s].item[0]) && this.items[s].item[0] !== this.currentItem[0] && (l = this.items[s].item.offset()[a], h = !1, e[d] - l > this.items[s][r] / 2 && (h = !0), n > Math.abs(e[d] - l) && (n = Math.abs(e[d] - l), o = this.items[s], this.direction = h ? "up" : "down"));
5907                        if (!o && !this.options.dropOnEmpty) return;
5908                        if (this.currentContainer === this.containers[p]) return void(this.currentContainer.containerCache.over || (this.containers[p]._trigger("over", e, this._uiHash()), this.currentContainer.containerCache.over = 1));
5909                        o ? this._rearrange(e, o, null, !0) : this._rearrange(e, null, this.containers[p].element, !0), this._trigger("change", e, this._uiHash()), this.containers[p]._trigger("change", e, this._uiHash(this)), this.currentContainer = this.containers[p], this.options.placeholder.update(this.currentContainer, this.placeholder), this.containers[p]._trigger("over", e, this._uiHash(this)), this.containers[p].containerCache.over = 1
5910                    }
5911            },
5912            _createHelper: function(e) {
5913                var i = this.options,
5914                    s = t.isFunction(i.helper) ? t(i.helper.apply(this.element[0], [e, this.currentItem])) : "clone" === i.helper ? this.currentItem.clone() : this.currentItem;
5915                return s.parents("body").length || t("parent" !== i.appendTo ? i.appendTo : this.currentItem[0].parentNode)[0].appendChild(s[0]), s[0] === this.currentItem[0] && (this._storedCSS = {
5916                    width: this.currentItem[0].style.width,
5917                    height: this.currentItem[0].style.height,
5918                    position: this.currentItem.css("position"),
5919                    top: this.currentItem.css("top"),
5920                    left: this.currentItem.css("left")
5921                }), (!s[0].style.width || i.forceHelperSize) && s.width(this.currentItem.width()), (!s[0].style.height || i.forceHelperSize) && s.height(this.currentItem.height()), s
5922            },
5923            _adjustOffsetFromHelper: function(e) {
5924                "string" == typeof e && (e = e.split(" ")), t.isArray(e) && (e = {
5925                    left: +e[0],
5926                    top: +e[1] || 0
5927                }), "left" in e && (this.offset.click.left = e.left + this.margins.left), "right" in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left), "top" in e && (this.offset.click.top = e.top + this.margins.top), "bottom" in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top)
5928            },
5929            _getParentOffset: function() {
5930                this.offsetParent = this.helper.offsetParent();
5931                var e = this.offsetParent.offset();
5932                return "absolute" === this.cssPosition && this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(), e.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === this.document[0].body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && t.ui.ie) && (e = {
5933                    top: 0,
5934                    left: 0
5935                }), {
5936                    top: e.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
5937                    left: e.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
5938                }
5939            },
5940            _getRelativeOffset: function() {
5941                if ("relative" === this.cssPosition) {
5942                    var t = this.currentItem.position();
5943                    return {
5944                        top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
5945                        left: t.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
5946                    }
5947                }
5948                return {
5949                    top: 0,
5950                    left: 0
5951                }
5952            },
5953            _cacheMargins: function() {
5954                this.margins = {
5955                    left: parseInt(this.currentItem.css("marginLeft"), 10) || 0,
5956                    top: parseInt(this.currentItem.css("marginTop"), 10) || 0
5957                }
5958            },
5959            _cacheHelperProportions: function() {
5960                this.helperProportions = {
5961                    width: this.helper.outerWidth(),
5962                    height: this.helper.outerHeight()
5963                }
5964            },
5965            _setContainment: function() {
5966                var e, i, s, n = this.options;
5967                "parent" === n.containment && (n.containment = this.helper[0].parentNode), ("document" === n.containment || "window" === n.containment) && (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, "document" === n.containment ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, ("document" === n.containment ? this.document.height() || document.body.parentNode.scrollHeight : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), /^(document|window|parent)$/.test(n.containment) || (e = t(n.containment)[0], i = t(n.containment).offset(), s = "hidden" !== t(e).css("overflow"), 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 + (s ? 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 + (s ? 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])
5968            },
5969            _convertPositionTo: function(e, i) {
5970                i || (i = this.position);
5971                var s = "absolute" === e ? 1 : -1,
5972                    n = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
5973                    o = /(html|body)/i.test(n[0].tagName);
5974                return {
5975                    top: i.top + this.offset.relative.top * s + this.offset.parent.top * s - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : o ? 0 : n.scrollTop()) * s,
5976                    left: i.left + this.offset.relative.left * s + this.offset.parent.left * s - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : o ? 0 : n.scrollLeft()) * s
5977                }
5978            },
5979            _generatePosition: function(e) {
5980                var i, s, n = this.options,
5981                    o = e.pageX,
5982                    a = e.pageY,
5983                    r = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
5984                    l = /(html|body)/i.test(r[0].tagName);
5985                return "relative" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()), this.originalPosition && (this.containment && (e.pageX - this.offset.click.left < this.containment[0] && (o = this.containment[0] + this.offset.click.left), e.pageY - this.offset.click.top < this.containment[1] && (a = this.containment[1] + this.offset.click.top), e.pageX - this.offset.click.left > this.containment[2] && (o = this.containment[2] + this.offset.click.left), e.pageY - this.offset.click.top > this.containment[3] && (a = this.containment[3] + this.offset.click.top)), n.grid && (i = this.originalPageY + Math.round((a - this.originalPageY) / n.grid[1]) * n.grid[1], a = 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 - n.grid[1] : i + n.grid[1] : i, s = this.originalPageX + Math.round((o - this.originalPageX) / n.grid[0]) * n.grid[0], o = this.containment ? s - this.offset.click.left >= this.containment[0] && s - this.offset.click.left <= this.containment[2] ? s : s - this.offset.click.left >= this.containment[0] ? s - n.grid[0] : s + n.grid[0] : s)), {
5986                    top: a - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : l ? 0 : r.scrollTop()),
5987                    left: o - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : l ? 0 : r.scrollLeft())
5988                }
5989            },
5990            _rearrange: function(t, e, i, s) {
5991                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), this.counter = this.counter ? ++this.counter : 1;
5992                var n = this.counter;
5993                this._delay(function() {
5994                    n === this.counter && this.refreshPositions(!s)
5995                })
5996            },
5997            _clear: function(t, e) {
5998                function i(t, e, i) {
5999                    return function(s) {
6000                        i._trigger(t, s, e._uiHash(e))
6001                    }
6002                }
6003                this.reverting = !1;
6004                var s, n = [];
6005                if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) {
6006                    for (s in this._storedCSS)("auto" === this._storedCSS[s] || "static" === this._storedCSS[s]) && (this._storedCSS[s] = "");
6007                    this.currentItem.css(this._storedCSS), this._removeClass(this.currentItem, "ui-sortable-helper")
6008                } else this.currentItem.show();
6009                for (this.fromOutside && !e && n.push(function(t) {
6010                        this._trigger("receive", t, this._uiHash(this.fromOutside))
6011                    }), !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || e || n.push(function(t) {
6012                        this._trigger("update", t, this._uiHash())
6013                    }), this !== this.currentContainer && (e || (n.push(function(t) {
6014                        this._trigger("remove", t, this._uiHash())
6015                    }), n.push(function(t) {
6016                        return function(e) {
6017                            t._trigger("receive", e, this._uiHash(this))
6018                        }
6019                    }.call(this, this.currentContainer)), n.push(function(t) {
6020                        return function(e) {
6021                            t._trigger("update", e, this._uiHash(this))
6022                        }
6023                    }.call(this, this.currentContainer)))), s = this.containers.length - 1; s >= 0; s--) e || n.push(i("deactivate", this, this.containers[s])), this.containers[s].containerCache.over && (n.push(i("out", this, this.containers[s])), this.containers[s].containerCache.over = 0);
6024                if (this.storedCursor && (this.document.find("body").css("cursor", this.storedCursor), this.storedStylesheet.remove()), this._storedOpacity && this.helper.css("opacity", this._storedOpacity), this._storedZIndex && this.helper.css("zIndex", "auto" === this._storedZIndex ? "" : this._storedZIndex), this.dragging = !1, e || this._trigger("beforeStop", t, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null), !e) {
6025                    for (s = 0; n.length > s; s++) n[s].call(this, t);
6026                    this._trigger("stop", t, this._uiHash())
6027                }
6028                return this.fromOutside = !1, !this.cancelHelperRemoval
6029            },
6030            _trigger: function() {
6031                !1 === t.Widget.prototype._trigger.apply(this, arguments) && this.cancel()
6032            },
6033            _uiHash: function(e) {
6034                var i = e || this;
6035                return {
6036                    helper: i.helper,
6037                    placeholder: i.placeholder || t([]),
6038                    position: i.position,
6039                    originalPosition: i.originalPosition,
6040                    offset: i.positionAbs,
6041                    item: i.currentItem,
6042                    sender: e ? e.element : null
6043                }
6044            }
6045        }), t.widget("ui.spinner", {
6046            version: "1.12.1",
6047            defaultElement: "<input>",
6048            widgetEventPrefix: "spin",
6049            options: {
6050                classes: {
6051                    "ui-spinner": "ui-corner-all",
6052                    "ui-spinner-down": "ui-corner-br",
6053                    "ui-spinner-up": "ui-corner-tr"
6054                },
6055                culture: null,
6056                icons: {
6057                    down: "ui-icon-triangle-1-s",
6058                    up: "ui-icon-triangle-1-n"
6059                },
6060                incremental: !0,
6061                max: null,
6062                min: null,
6063                numberFormat: null,
6064                page: 10,
6065                step: 1,
6066                change: null,
6067                spin: null,
6068                start: null,
6069                stop: null
6070            },
6071            _create: function() {
6072                this._setOption("max", this.options.max), this._setOption("min", this.options.min), this._setOption("step", this.options.step), "" !== this.value() && this._value(this.element.val(), !0), this._draw(), this._on(this._events), this._refresh(), this._on(this.window, {
6073                    beforeunload: function() {
6074                        this.element.removeAttr("autocomplete")
6075                    }
6076                })
6077            },
6078            _getCreateOptions: function() {
6079                var e = this._super(),
6080                    i = this.element;
6081                return t.each(["min", "max", "step"], function(t, s) {
6082                    var n = i.attr(s);
vendor: 11,240 bytes, lines 6083-6293
6083                    null != n && n.length && (e[s] = n)
6084                }), e
6085            },
6086            _events: {
6087                keydown: function(t) {
6088                    this._start(t) && this._keydown(t) && t.preventDefault()
6089                },
6090                keyup: "_stop",
6091                focus: function() {
6092                    this.previous = this.element.val()
6093                },
6094                blur: function(t) {
6095                    return this.cancelBlur ? void delete this.cancelBlur : (this._stop(), this._refresh(), void(this.previous !== this.element.val() && this._trigger("change", t)))
6096                },
6097                mousewheel: function(t, e) {
6098                    if (e) {
6099                        if (!this.spinning && !this._start(t)) return !1;
6100                        this._spin((e > 0 ? 1 : -1) * this.options.step, t), clearTimeout(this.mousewheelTimer), this.mousewheelTimer = this._delay(function() {
6101                            this.spinning && this._stop(t)
6102                        }, 100), t.preventDefault()
6103                    }
6104                },
6105                "mousedown .ui-spinner-button": function(e) {
6106                    function i() {
6107                        this.element[0] === t.ui.safeActiveElement(this.document[0]) || (this.element.trigger("focus"), this.previous = s, this._delay(function() {
6108                            this.previous = s
6109                        }))
6110                    }
6111                    var s;
6112                    s = this.element[0] === t.ui.safeActiveElement(this.document[0]) ? this.previous : this.element.val(), e.preventDefault(), i.call(this), this.cancelBlur = !0, this._delay(function() {
6113                        delete this.cancelBlur, i.call(this)
6114                    }), !1 !== this._start(e) && this._repeat(null, t(e.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, e)
6115                },
6116                "mouseup .ui-spinner-button": "_stop",
6117                "mouseenter .ui-spinner-button": function(e) {
6118                    return t(e.currentTarget).hasClass("ui-state-active") ? !1 !== this._start(e) && void this._repeat(null, t(e.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, e) : void 0
6119                },
6120                "mouseleave .ui-spinner-button": "_stop"
6121            },
6122            _enhance: function() {
6123                this.uiSpinner = this.element.attr("autocomplete", "off").wrap("<span>").parent().append("<a></a><a></a>")
6124            },
6125            _draw: function() {
6126                this._enhance(), this._addClass(this.uiSpinner, "ui-spinner", "ui-widget ui-widget-content"), this._addClass("ui-spinner-input"), this.element.attr("role", "spinbutton"), this.buttons = this.uiSpinner.children("a").attr("tabIndex", -1).attr("aria-hidden", !0).button({
6127                    classes: {
6128                        "ui-button": ""
6129                    }
6130                }), this._removeClass(this.buttons, "ui-corner-all"), this._addClass(this.buttons.first(), "ui-spinner-button ui-spinner-up"), this._addClass(this.buttons.last(), "ui-spinner-button ui-spinner-down"), this.buttons.first().button({
6131                    icon: this.options.icons.up,
6132                    showLabel: !1
6133                }), this.buttons.last().button({
6134                    icon: this.options.icons.down,
6135                    showLabel: !1
6136                }), this.buttons.height() > Math.ceil(.5 * this.uiSpinner.height()) && this.uiSpinner.height() > 0 && this.uiSpinner.height(this.uiSpinner.height())
6137            },
6138            _keydown: function(e) {
6139                var i = this.options,
6140                    s = t.ui.keyCode;
6141                switch (e.keyCode) {
6142                    case s.UP:
6143                        return this._repeat(null, 1, e), !0;
6144                    case s.DOWN:
6145                        return this._repeat(null, -1, e), !0;
6146                    case s.PAGE_UP:
6147                        return this._repeat(null, i.page, e), !0;
6148                    case s.PAGE_DOWN:
6149                        return this._repeat(null, -i.page, e), !0
6150                }
6151                return !1
6152            },
6153            _start: function(t) {
6154                return !(!this.spinning && !1 === this._trigger("start", t)) && (this.counter || (this.counter = 1), this.spinning = !0, !0)
6155            },
6156            _repeat: function(t, e, i) {
6157                t = t || 500, clearTimeout(this.timer), this.timer = this._delay(function() {
6158                    this._repeat(40, e, i)
6159                }, t), this._spin(e * this.options.step, i)
6160            },
6161            _spin: function(t, e) {
6162                var i = this.value() || 0;
6163                this.counter || (this.counter = 1), i = this._adjustValue(i + t * this._increment(this.counter)), this.spinning && !1 === this._trigger("spin", e, {
6164                    value: i
6165                }) || (this._value(i), this.counter++)
6166            },
6167            _increment: function(e) {
6168                var i = this.options.incremental;
6169                return i ? t.isFunction(i) ? i(e) : Math.floor(e * e * e / 5e4 - e * e / 500 + 17 * e / 200 + 1) : 1
6170            },
6171            _precision: function() {
6172                var t = this._precisionOf(this.options.step);
6173                return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))), t
6174            },
6175            _precisionOf: function(t) {
6176                var e = "" + t,
6177                    i = e.indexOf(".");
6178                return -1 === i ? 0 : e.length - i - 1
6179            },
6180            _adjustValue: function(t) {
6181                var e, i, s = this.options;
6182                return e = null !== s.min ? s.min : 0, i = t - e, i = Math.round(i / s.step) * s.step, t = e + i, t = parseFloat(t.toFixed(this._precision())), null !== s.max && t > s.max ? s.max : null !== s.min && s.min > t ? s.min : t
6183            },
6184            _stop: function(t) {
6185                this.spinning && (clearTimeout(this.timer), clearTimeout(this.mousewheelTimer), this.counter = 0, this.spinning = !1, this._trigger("stop", t))
6186            },
6187            _setOption: function(t, e) {
6188                var i, s, n;
6189                return "culture" === t || "numberFormat" === t ? (i = this._parse(this.element.val()), this.options[t] = e, void this.element.val(this._format(i))) : (("max" === t || "min" === t || "step" === t) && "string" == typeof e && (e = this._parse(e)), "icons" === t && (s = this.buttons.first().find(".ui-icon"), this._removeClass(s, null, this.options.icons.up), this._addClass(s, null, e.up), n = this.buttons.last().find(".ui-icon"), this._removeClass(n, null, this.options.icons.down), this._addClass(n, null, e.down)), void this._super(t, e))
6190            },
6191            _setOptionDisabled: function(t) {
6192                this._super(t), this._toggleClass(this.uiSpinner, null, "ui-state-disabled", !!t), this.element.prop("disabled", !!t), this.buttons.button(t ? "disable" : "enable")
6193            },
6194            _setOptions: r(function(t) {
6195                this._super(t)
6196            }),
6197            _parse: function(t) {
6198                return "string" == typeof t && "" !== t && (t = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(t, 10, this.options.culture) : +t), "" === t || isNaN(t) ? null : t
6199            },
6200            _format: function(t) {
6201                return "" === t ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(t, this.options.numberFormat, this.options.culture) : t
6202            },
6203            _refresh: function() {
6204                this.element.attr({
6205                    "aria-valuemin": this.options.min,
6206                    "aria-valuemax": this.options.max,
6207                    "aria-valuenow": this._parse(this.element.val())
6208                })
6209            },
6210            isValid: function() {
6211                var t = this.value();
6212                return null !== t && t === this._adjustValue(t)
6213            },
6214            _value: function(t, e) {
6215                var i;
6216                "" !== t && null !== (i = this._parse(t)) && (e || (i = this._adjustValue(i)), t = this._format(i)), this.element.val(t), this._refresh()
6217            },
6218            _destroy: function() {
6219                this.element.prop("disabled", !1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"), this.uiSpinner.replaceWith(this.element)
6220            },
6221            stepUp: r(function(t) {
6222                this._stepUp(t)
6223            }),
6224            _stepUp: function(t) {
6225                this._start() && (this._spin((t || 1) * this.options.step), this._stop())
6226            },
6227            stepDown: r(function(t) {
6228                this._stepDown(t)
6229            }),
6230            _stepDown: function(t) {
6231                this._start() && (this._spin((t || 1) * -this.options.step), this._stop())
6232            },
6233            pageUp: r(function(t) {
6234                this._stepUp((t || 1) * this.options.page)
6235            }),
6236            pageDown: r(function(t) {
6237                this._stepDown((t || 1) * this.options.page)
6238            }),
6239            value: function(t) {
6240                return arguments.length ? void r(this._value).call(this, t) : this._parse(this.element.val())
6241            },
6242            widget: function() {
6243                return this.uiSpinner
6244            }
6245        }), !1 !== t.uiBackCompat && t.widget("ui.spinner", t.ui.spinner, {
6246            _enhance: function() {
6247                this.uiSpinner = this.element.attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())
6248            },
6249            _uiSpinnerHtml: function() {
6250                return "<span>"
6251            },
6252            _buttonHtml: function() {
6253                return "<a></a><a></a>"
6254            }
6255        }), t.ui.spinner, t.widget("ui.tabs", {
6256            version: "1.12.1",
6257            delay: 300,
6258            options: {
6259                active: null,
6260                classes: {
6261                    "ui-tabs": "ui-corner-all",
6262                    "ui-tabs-nav": "ui-corner-all",
6263                    "ui-tabs-panel": "ui-corner-bottom",
6264                    "ui-tabs-tab": "ui-corner-top"
6265                },
6266                collapsible: !1,
6267                event: "click",
6268                heightStyle: "content",
6269                hide: null,
6270                show: null,
6271                activate: null,
6272                beforeActivate: null,
6273                beforeLoad: null,
6274                load: null
6275            },
6276            _isLocal: function() {
6277                var t = /#.*$/;
6278                return function(e) {
6279                    var i, s;
6280                    i = e.href.replace(t, ""), s = location.href.replace(t, "");
6281                    try {
6282                        i = decodeURIComponent(i)
6283                    } catch (t) {}
6284                    try {
6285                        s = decodeURIComponent(s)
6286                    } catch (t) {}
6287                    return e.hash.length > 1 && i === s
6288                }
6289            }(),
6290            _create: function() {
6291                var e = this,
6292                    i = this.options;
6293                this.running = !1, this._addClass("ui-tabs", "ui-widget ui-widget-content"), this._toggleClass("ui-tabs-collapsible", null, i.c
vendor: 8,147 bytes, lines 6293-6412
6293ollapsible), this._processTabs(), i.active = this._initialActive(), t.isArray(i.disabled) && (i.disabled = t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"), function(t) {
6294                    return e.tabs.index(t)
6295                }))).sort()), this.active = !1 !== this.options.active && this.anchors.length ? this._findActive(i.active) : t(), this._refresh(), this.active.length && this.load(i.active)
6296            },
6297            _initialActive: function() {
6298                var e = this.options.active,
6299                    i = this.options.collapsible,
6300                    s = location.hash.substring(1);
6301                return null === e && (s && this.tabs.each(function(i, n) {
6302                    return t(n).attr("aria-controls") === s ? (e = i, !1) : void 0
6303                }), null === e && (e = this.tabs.index(this.tabs.filter(".ui-tabs-active"))), (null === e || -1 === e) && (e = !!this.tabs.length && 0)), !1 !== e && -1 === (e = this.tabs.index(this.tabs.eq(e))) && (e = !i && 0), !i && !1 === e && this.anchors.length && (e = 0), e
6304            },
6305            _getCreateEventData: function() {
6306                return {
6307                    tab: this.active,
6308                    panel: this.active.length ? this._getPanelForTab(this.active) : t()
6309                }
6310            },
6311            _tabKeydown: function(e) {
6312                var i = t(t.ui.safeActiveElement(this.document[0])).closest("li"),
6313                    s = this.tabs.index(i),
6314                    n = !0;
6315                if (!this._handlePageNav(e)) {
6316                    switch (e.keyCode) {
6317                        case t.ui.keyCode.RIGHT:
6318                        case t.ui.keyCode.DOWN:
6319                            s++;
6320                            break;
6321                        case t.ui.keyCode.UP:
6322                        case t.ui.keyCode.LEFT:
6323                            n = !1, s--;
6324                            break;
6325                        case t.ui.keyCode.END:
6326                            s = this.anchors.length - 1;
6327                            break;
6328                        case t.ui.keyCode.HOME:
6329                            s = 0;
6330                            break;
6331                        case t.ui.keyCode.SPACE:
6332                            return e.preventDefault(), clearTimeout(this.activating), void this._activate(s);
6333                        case t.ui.keyCode.ENTER:
6334                            return e.preventDefault(), clearTimeout(this.activating), void this._activate(s !== this.options.active && s);
6335                        default:
6336                            return
6337                    }
6338                    e.preventDefault(), clearTimeout(this.activating), s = this._focusNextTab(s, n), e.ctrlKey || e.metaKey || (i.attr("aria-selected", "false"), this.tabs.eq(s).attr("aria-selected", "true"), this.activating = this._delay(function() {
6339                        this.option("active", s)
6340                    }, this.delay))
6341                }
6342            },
6343            _panelKeydown: function(e) {
6344                this._handlePageNav(e) || e.ctrlKey && e.keyCode === t.ui.keyCode.UP && (e.preventDefault(), this.active.trigger("focus"))
6345            },
6346            _handlePageNav: function(e) {
6347                return e.altKey && e.keyCode === t.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0) : e.altKey && e.keyCode === t.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0) : void 0
6348            },
6349            _findNextTab: function(e, i) {
6350                function s() {
6351                    return e > n && (e = 0), 0 > e && (e = n), e
6352                }
6353                for (var n = this.tabs.length - 1; - 1 !== t.inArray(s(), this.options.disabled);) e = i ? e + 1 : e - 1;
6354                return e
6355            },
6356            _focusNextTab: function(t, e) {
6357                return t = this._findNextTab(t, e), this.tabs.eq(t).trigger("focus"), t
6358            },
6359            _setOption: function(t, e) {
6360                return "active" === t ? void this._activate(e) : (this._super(t, e), "collapsible" === t && (this._toggleClass("ui-tabs-collapsible", null, e), e || !1 !== this.options.active || this._activate(0)), "event" === t && this._setupEvents(e), void("heightStyle" === t && this._setupHeightStyle(e)))
6361            },
6362            _sanitizeSelector: function(t) {
6363                return t ? t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : ""
6364            },
6365            refresh: function() {
6366                var e = this.options,
6367                    i = this.tablist.children(":has(a[href])");
6368                e.disabled = t.map(i.filter(".ui-state-disabled"), function(t) {
6369                    return i.index(t)
6370                }), this._processTabs(), !1 !== e.active && this.anchors.length ? this.active.length && !t.contains(this.tablist[0], this.active[0]) ? this.tabs.length === e.disabled.length ? (e.active = !1, this.active = t()) : this._activate(this._findNextTab(Math.max(0, e.active - 1), !1)) : e.active = this.tabs.index(this.active) : (e.active = !1, this.active = t()), this._refresh()
6371            },
6372            _refresh: function() {
6373                this._setOptionDisabled(this.options.disabled), this._setupEvents(this.options.event), this._setupHeightStyle(this.options.heightStyle), this.tabs.not(this.active).attr({
6374                    "aria-selected": "false",
6375                    "aria-expanded": "false",
6376                    tabIndex: -1
6377                }), this.panels.not(this._getPanelForTab(this.active)).hide().attr({
6378                    "aria-hidden": "true"
6379                }), this.active.length ? (this.active.attr({
6380                    "aria-selected": "true",
6381                    "aria-expanded": "true",
6382                    tabIndex: 0
6383                }), this._addClass(this.active, "ui-tabs-active", "ui-state-active"), this._getPanelForTab(this.active).show().attr({
6384                    "aria-hidden": "false"
6385                })) : this.tabs.eq(0).attr("tabIndex", 0)
6386            },
6387            _processTabs: function() {
6388                var e = this,
6389                    i = this.tabs,
6390                    s = this.anchors,
6391                    n = this.panels;
6392                this.tablist = this._getList().attr("role", "tablist"), this._addClass(this.tablist, "ui-tabs-nav", "ui-helper-reset ui-helper-clearfix ui-widget-header"), this.tablist.on("mousedown" + this.eventNamespace, "> li", function(e) {
6393                    t(this).is(".ui-state-disabled") && e.preventDefault()
6394                }).on("focus" + this.eventNamespace, ".ui-tabs-anchor", function() {
6395                    t(this).closest("li").is(".ui-state-disabled") && this.blur()
6396                }), this.tabs = this.tablist.find("> li:has(a[href])").attr({
6397                    role: "tab",
6398                    tabIndex: -1
6399                }), this._addClass(this.tabs, "ui-tabs-tab", "ui-state-default"), this.anchors = this.tabs.map(function() {
6400                    return t("a", this)[0]
6401                }).attr({
6402                    role: "presentation",
6403                    tabIndex: -1
6404                }), this._addClass(this.anchors, "ui-tabs-anchor"), this.panels = t(), this.anchors.each(function(i, s) {
6405                    var n, o, a, r = t(s).uniqueId().attr("id"),
6406                        l = t(s).closest("li"),
6407                        h = l.attr("aria-controls");
6408                    e._isLocal(s) ? (n = s.hash, a = n.substring(1), o = e.element.find(e._sanitizeSelector(n))) : (a = l.attr("aria-controls") || t({}).uniqueId()[0].id, n = "#" + a, o = e.element.find(n), o.length || (o = e._createPanel(a), o.insertAfter(e.panels[i - 1] || e.tablist)), o.attr("aria-live", "polite")), o.length && (e.panels = e.panels.add(o)), h && l.data("ui-tabs-aria-controls", h), l.attr({
6409                        "aria-controls": a,
6410                        "aria-labelledby": r
6411                    }), o.attr("aria-labelledby", r)
6412                }), this.panels.attr("role", "tabpanel"), this._addClass(this.panels, "ui-tabs-panel", "ui-widget-content"), i && (this._off(i.not(this.tabs)
vendor: 16,384 bytes, lines 6412-6703
6412), this._off(s.not(this.anchors)), this._off(n.not(this.panels)))
6413            },
6414            _getList: function() {
6415                return this.tablist || this.element.find("ol, ul").eq(0)
6416            },
6417            _createPanel: function(e) {
6418                return t("<div>").attr("id", e).data("ui-tabs-destroy", !0)
6419            },
6420            _setOptionDisabled: function(e) {
6421                var i, s, n;
6422                for (t.isArray(e) && (e.length ? e.length === this.anchors.length && (e = !0) : e = !1), n = 0; s = this.tabs[n]; n++) i = t(s), !0 === e || -1 !== t.inArray(n, e) ? (i.attr("aria-disabled", "true"), this._addClass(i, null, "ui-state-disabled")) : (i.removeAttr("aria-disabled"), this._removeClass(i, null, "ui-state-disabled"));
6423                this.options.disabled = e, this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !0 === e)
6424            },
6425            _setupEvents: function(e) {
6426                var i = {};
6427                e && t.each(e.split(" "), function(t, e) {
6428                    i[e] = "_eventHandler"
6429                }), this._off(this.anchors.add(this.tabs).add(this.panels)), this._on(!0, this.anchors, {
6430                    click: function(t) {
6431                        t.preventDefault()
6432                    }
6433                }), this._on(this.anchors, i), this._on(this.tabs, {
6434                    keydown: "_tabKeydown"
6435                }), this._on(this.panels, {
6436                    keydown: "_panelKeydown"
6437                }), this._focusable(this.tabs), this._hoverable(this.tabs)
6438            },
6439            _setupHeightStyle: function(e) {
6440                var i, s = this.element.parent();
6441                "fill" === e ? (i = s.height(), i -= this.element.outerHeight() - this.element.height(), this.element.siblings(":visible").each(function() {
6442                    var e = t(this),
6443                        s = e.css("position");
6444                    "absolute" !== s && "fixed" !== s && (i -= e.outerHeight(!0))
6445                }), this.element.children().not(this.panels).each(function() {
6446                    i -= t(this).outerHeight(!0)
6447                }), this.panels.each(function() {
6448                    t(this).height(Math.max(0, i - t(this).innerHeight() + t(this).height()))
6449                }).css("overflow", "auto")) : "auto" === e && (i = 0, this.panels.each(function() {
6450                    i = Math.max(i, t(this).height("").height())
6451                }).height(i))
6452            },
6453            _eventHandler: function(e) {
6454                var i = this.options,
6455                    s = this.active,
6456                    n = t(e.currentTarget),
6457                    o = n.closest("li"),
6458                    a = o[0] === s[0],
6459                    r = a && i.collapsible,
6460                    l = r ? t() : this._getPanelForTab(o),
6461                    h = s.length ? this._getPanelForTab(s) : t(),
6462                    c = {
6463                        oldTab: s,
6464                        oldPanel: h,
6465                        newTab: r ? t() : o,
6466                        newPanel: l
6467                    };
6468                e.preventDefault(), o.hasClass("ui-state-disabled") || o.hasClass("ui-tabs-loading") || this.running || a && !i.collapsible || !1 === this._trigger("beforeActivate", e, c) || (i.active = !r && this.tabs.index(o), this.active = a ? t() : o, this.xhr && this.xhr.abort(), h.length || l.length || t.error("jQuery UI Tabs: Mismatching fragment identifier."), l.length && this.load(this.tabs.index(o), e), this._toggle(e, c))
6469            },
6470            _toggle: function(e, i) {
6471                function s() {
6472                    o.running = !1, o._trigger("activate", e, i)
6473                }
6474
6475                function n() {
6476                    o._addClass(i.newTab.closest("li"), "ui-tabs-active", "ui-state-active"), a.length && o.options.show ? o._show(a, o.options.show, s) : (a.show(), s())
6477                }
6478                var o = this,
6479                    a = i.newPanel,
6480                    r = i.oldPanel;
6481                this.running = !0, r.length && this.options.hide ? this._hide(r, this.options.hide, function() {
6482                    o._removeClass(i.oldTab.closest("li"), "ui-tabs-active", "ui-state-active"), n()
6483                }) : (this._removeClass(i.oldTab.closest("li"), "ui-tabs-active", "ui-state-active"), r.hide(), n()), r.attr("aria-hidden", "true"), i.oldTab.attr({
6484                    "aria-selected": "false",
6485                    "aria-expanded": "false"
6486                }), a.length && r.length ? i.oldTab.attr("tabIndex", -1) : a.length && this.tabs.filter(function() {
6487                    return 0 === t(this).attr("tabIndex")
6488                }).attr("tabIndex", -1), a.attr("aria-hidden", "false"), i.newTab.attr({
6489                    "aria-selected": "true",
6490                    "aria-expanded": "true",
6491                    tabIndex: 0
6492                })
6493            },
6494            _activate: function(e) {
6495                var i, s = this._findActive(e);
6496                s[0] !== this.active[0] && (s.length || (s = this.active), i = s.find(".ui-tabs-anchor")[0], this._eventHandler({
6497                    target: i,
6498                    currentTarget: i,
6499                    preventDefault: t.noop
6500                }))
6501            },
6502            _findActive: function(e) {
6503                return !1 === e ? t() : this.tabs.eq(e)
6504            },
6505            _getIndex: function(e) {
6506                return "string" == typeof e && (e = this.anchors.index(this.anchors.filter("[href$='" + t.ui.escapeSelector(e) + "']"))), e
6507            },
6508            _destroy: function() {
6509                this.xhr && this.xhr.abort(), this.tablist.removeAttr("role").off(this.eventNamespace), this.anchors.removeAttr("role tabIndex").removeUniqueId(), this.tabs.add(this.panels).each(function() {
6510                    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")
6511                }), this.tabs.each(function() {
6512                    var e = t(this),
6513                        i = e.data("ui-tabs-aria-controls");
6514                    i ? e.attr("aria-controls", i).removeData("ui-tabs-aria-controls") : e.removeAttr("aria-controls")
6515                }), this.panels.show(), "content" !== this.options.heightStyle && this.panels.css("height", "")
6516            },
6517            enable: function(e) {
6518                var i = this.options.disabled;
6519                !1 !== i && (void 0 === e ? i = !1 : (e = this._getIndex(e), i = t.isArray(i) ? t.map(i, function(t) {
6520                    return t !== e ? t : null
6521                }) : t.map(this.tabs, function(t, i) {
6522                    return i !== e ? i : null
6523                })), this._setOptionDisabled(i))
6524            },
6525            disable: function(e) {
6526                var i = this.options.disabled;
6527                if (!0 !== i) {
6528                    if (void 0 === e) i = !0;
6529                    else {
6530                        if (e = this._getIndex(e), -1 !== t.inArray(e, i)) return;
6531                        i = t.isArray(i) ? t.merge([e], i).sort() : [e]
6532                    }
6533                    this._setOptionDisabled(i)
6534                }
6535            },
6536            load: function(e, i) {
6537                e = this._getIndex(e);
6538                var s = this,
6539                    n = this.tabs.eq(e),
6540                    o = n.find(".ui-tabs-anchor"),
6541                    a = this._getPanelForTab(n),
6542                    r = {
6543                        tab: n,
6544                        panel: a
6545                    },
6546                    l = function(t, e) {
6547                        "abort" === e && s.panels.stop(!1, !0), s._removeClass(n, "ui-tabs-loading"), a.removeAttr("aria-busy"), t === s.xhr && delete s.xhr
6548                    };
6549                this._isLocal(o[0]) || (this.xhr = t.ajax(this._ajaxSettings(o, i, r)), this.xhr && "canceled" !== this.xhr.statusText && (this._addClass(n, "ui-tabs-loading"), a.attr("aria-busy", "true"), this.xhr.done(function(t, e, n) {
6550                    setTimeout(function() {
6551                        a.html(t), s._trigger("load", i, r), l(n, e)
6552                    }, 1)
6553                }).fail(function(t, e) {
6554                    setTimeout(function() {
6555                        l(t, e)
6556                    }, 1)
6557                })))
6558            },
6559            _ajaxSettings: function(e, i, s) {
6560                var n = this;
6561                return {
6562                    url: e.attr("href").replace(/#.*$/, ""),
6563                    beforeSend: function(e, o) {
6564                        return n._trigger("beforeLoad", i, t.extend({
6565                            jqXHR: e,
6566                            ajaxSettings: o
6567                        }, s))
6568                    }
6569                }
6570            },
6571            _getPanelForTab: function(e) {
6572                var i = t(e).attr("aria-controls");
6573                return this.element.find(this._sanitizeSelector("#" + i))
6574            }
6575        }), !1 !== t.uiBackCompat && t.widget("ui.tabs", t.ui.tabs, {
6576            _processTabs: function() {
6577                this._superApply(arguments), this._addClass(this.tabs, "ui-tab")
6578            }
6579        }), t.ui.tabs, t.widget("ui.tooltip", {
6580            version: "1.12.1",
6581            options: {
6582                classes: {
6583                    "ui-tooltip": "ui-corner-all ui-widget-shadow"
6584                },
6585                content: function() {
6586                    var e = t(this).attr("title") || "";
6587                    return t("<a>").text(e).html()
6588                },
6589                hide: !0,
6590                items: "[title]:not([disabled])",
6591                position: {
6592                    my: "left top+15",
6593                    at: "left bottom",
6594                    collision: "flipfit flip"
6595                },
6596                show: !0,
6597                track: !1,
6598                close: null,
6599                open: null
6600            },
6601            _addDescribedBy: function(e, i) {
6602                var s = (e.attr("aria-describedby") || "").split(/\s+/);
6603                s.push(i), e.data("ui-tooltip-id", i).attr("aria-describedby", t.trim(s.join(" ")))
6604            },
6605            _removeDescribedBy: function(e) {
6606                var i = e.data("ui-tooltip-id"),
6607                    s = (e.attr("aria-describedby") || "").split(/\s+/),
6608                    n = t.inArray(i, s); - 1 !== n && s.splice(n, 1), e.removeData("ui-tooltip-id"), s = t.trim(s.join(" ")), s ? e.attr("aria-describedby", s) : e.removeAttr("aria-describedby")
6609            },
6610            _create: function() {
6611                this._on({
6612                    mouseover: "open",
6613                    focusin: "open"
6614                }), this.tooltips = {}, this.parents = {}, this.liveRegion = t("<div>").attr({
6615                    role: "log",
6616                    "aria-live": "assertive",
6617                    "aria-relevant": "additions"
6618                }).appendTo(this.document[0].body), this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"), this.disabledTitles = t([])
6619            },
6620            _setOption: function(e, i) {
6621                var s = this;
6622                this._super(e, i), "content" === e && t.each(this.tooltips, function(t, e) {
6623                    s._updateContent(e.element)
6624                })
6625            },
6626            _setOptionDisabled: function(t) {
6627                this[t ? "_disable" : "_enable"]()
6628            },
6629            _disable: function() {
6630                var e = this;
6631                t.each(this.tooltips, function(i, s) {
6632                    var n = t.Event("blur");
6633                    n.target = n.currentTarget = s.element[0], e.close(n, !0)
6634                }), this.disabledTitles = this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function() {
6635                    var e = t(this);
6636                    return e.is("[title]") ? e.data("ui-tooltip-title", e.attr("title")).removeAttr("title") : void 0
6637                }))
6638            },
6639            _enable: function() {
6640                this.disabledTitles.each(function() {
6641                    var e = t(this);
6642                    e.data("ui-tooltip-title") && e.attr("title", e.data("ui-tooltip-title"))
6643                }), this.disabledTitles = t([])
6644            },
6645            open: function(e) {
6646                var i = this,
6647                    s = t(e ? e.target : this.element).closest(this.options.items);
6648                s.length && !s.data("ui-tooltip-id") && (s.attr("title") && s.data("ui-tooltip-title", s.attr("title")), s.data("ui-tooltip-open", !0), e && "mouseover" === e.type && s.parents().each(function() {
6649                    var e, s = t(this);
6650                    s.data("ui-tooltip-open") && (e = t.Event("blur"), e.target = e.currentTarget = this, i.close(e, !0)), s.attr("title") && (s.uniqueId(), i.parents[this.id] = {
6651                        element: this,
6652                        title: s.attr("title")
6653                    }, s.attr("title", ""))
6654                }), this._registerCloseHandlers(e, s), this._updateContent(s, e))
6655            },
6656            _updateContent: function(t, e) {
6657                var i, s = this.options.content,
6658                    n = this,
6659                    o = e ? e.type : null;
6660                return "string" == typeof s || s.nodeType || s.jquery ? this._open(e, t, s) : void((i = s.call(t[0], function(i) {
6661                    n._delay(function() {
6662                        t.data("ui-tooltip-open") && (e && (e.type = o), this._open(e, t, i))
6663                    })
6664                })) && this._open(e, t, i))
6665            },
6666            _open: function(e, i, s) {
6667                function n(t) {
6668                    h.of = t, a.is(":hidden") || a.position(h)
6669                }
6670                var o, a, r, l, h = t.extend({}, this.options.position);
6671                if (s) {
6672                    if (o = this._find(i)) return void o.tooltip.find(".ui-tooltip-content").html(s);
6673                    i.is("[title]") && (e && "mouseover" === e.type ? i.attr("title", "") : i.removeAttr("title")), o = this._tooltip(i), a = o.tooltip, this._addDescribedBy(i, a.attr("id")), a.find(".ui-tooltip-content").html(s), this.liveRegion.children().hide(), l = t("<div>").html(a.find(".ui-tooltip-content").html()), l.removeAttr("name").find("[name]").removeAttr("name"), l.removeAttr("id").find("[id]").removeAttr("id"), l.appendTo(this.liveRegion), this.options.track && e && /^mouse/.test(e.type) ? (this._on(this.document, {
6674                        mousemove: n
6675                    }), n(e)) : a.position(t.extend({
6676                        of: i
6677                    }, this.options.position)), a.hide(), this._show(a, this.options.show), this.options.track && this.options.show && this.options.show.delay && (r = this.delayedShow = setInterval(function() {
6678                        a.is(":visible") && (n(h.of), clearInterval(r))
6679                    }, t.fx.interval)), this._trigger("open", e, {
6680                        tooltip: a
6681                    })
6682                }
6683            },
6684            _registerCloseHandlers: function(e, i) {
6685                var s = {
6686                    keyup: function(e) {
6687                        if (e.keyCode === t.ui.keyCode.ESCAPE) {
6688                            var s = t.Event(e);
6689                            s.currentTarget = i[0], this.close(s, !0)
6690                        }
6691                    }
6692                };
6693                i[0] !== this.element[0] && (s.remove = function() {
6694                    this._removeTooltip(this._find(i).tooltip)
6695                }), e && "mouseover" !== e.type || (s.mouseleave = "close"), e && "focusin" !== e.type || (s.focusout = "close"), this._on(!0, i, s)
6696            },
6697            close: function(e) {
6698                var i, s = this,
6699                    n = t(e ? e.currentTarget : this.element),
6700                    o = this._find(n);
6701                return o ? (i = o.tooltip, void(o.closing || (clearInterval(this.delayedShow), n.data("ui-tooltip-title") && !n.attr("title") && n.attr("title", n.data("ui-tooltip-title")), this._removeDescribedBy(n), o.hiding = !0, i.stop(!0), this._hide(i, this.options.hide, function() {
6702                    s._removeTooltip(t(this))
6703                }), n.removeData("ui-tooltip-open"), this._off(n, "mouseleave focusout keyup"), n[0] !== this.element[0] && this._of
6703f(n, "remove"), this._off(this.document, "mousemove"), e && "mouseleave" === e.type && t.each(this.parents, function(e, i) {
6704                    t(i.element).attr("title", i.title), delete s.parents[e]
6705                }), o.closing = !0, this._trigger("close", e, {
6706                    tooltip: i
6707                }), o.hiding || (o.closing = !1)))) : void n.removeData("ui-tooltip-open")
6708            },
6709            _tooltip: function(e) {
6710                var i = t("<div>").attr("role", "tooltip"),
6711                    s = t("<div>").appendTo(i),
6712                    n = i.uniqueId().attr("id");
6713                return this._addClass(s, "ui-tooltip-content"), this._addClass(i, "ui-tooltip", "ui-widget ui-widget-content"), i.appendTo(this._appendTo(e)), this.tooltips[n] = {
6714                    element: e,
6715                    tooltip: i
6716                }
6717            },
6718            _find: function(t) {
6719                var e = t.data("ui-tooltip-id");
6720                return e ? this.tooltips[e] : null
6721            },
6722            _removeTooltip: function(t) {
6723                t.remove(), delete this.tooltips[t.attr("id")]
6724            },
6725            _appendTo: function(t) {
6726                var e = t.closest(".ui-front, dialog");
6727                return e.length || (e = this.document[0].body), e
6728            },
6729            _destroy: function() {
6730                var e = this;
6731                t.each(this.tooltips, function(i, s) {
6732                    var n = t.Event("blur"),
6733                        o = s.element;
6734                    n.target = n.currentTarget = o[0], e.close(n, !0), t("#" + i).remove(), o.data("ui-tooltip-title") && (o.attr("title") || o.attr("title", o.data("ui-tooltip-title")), o.removeData("ui-tooltip-title"))
6735                }), this.liveRegion.remove()
6736            }
6737        }), !1 !== t.uiBackCompat && t.widget("ui.tooltip", t.ui.tooltip, {
6738            options: {
6739                tooltipClass: null
6740            },
6741            _tooltip: function() {
6742                var t = this._superApply(arguments);
6743                return this.options.tooltipClass && t.tooltip.addClass(this.options.tooltipClass), t
6744            }
6745        }), t.ui.tooltip
6746    }), "undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery");
6747! function(t) {
6748    "use strict";
6749    var e = jQuery.fn.jquery.split(" ")[0].split(".");
6750    if (e[0] < 2 && e[1] < 9 || 1 == e[0] && 9 == e[1] && e[2] < 1 || 3 < e[0]) throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")
6751}(),
6752function(t) {
6753    "use strict";
6754    t.fn.emulateTransitionEnd = function(e) {
6755        var i = !1,
6756            s = this;
6757        return t(this).one("bsTransitionEnd", function() {
6758            i = !0
6759        }), setTimeout(function() {
6760            i || t(s).trigger(t.support.transition.end)
6761        }, e), this
6762    }, t(function() {
6763        t.support.transition = function() {
6764            var t = document.createElement("bootstrap"),
6765                e = {
6766                    WebkitTransition: "webkitTransitionEnd",
6767                    MozTransition: "transitionend",
6768                    OTransition: "oTransitionEnd otransitionend",
6769                    transition: "transitionend"
6770                };
6771            for (var i in e)
6772                if (void 0 !== t.style[i]) return {
6773                    end: e[i]
6774                };
6775            return !1
6776        }(), t.support.transition && (t.event.special.bsTransitionEnd = {
6777            bindType: t.support.transition.end,
6778            delegateType: t.support.transition.end,
6779            handle: function(e) {
6780                if (t(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
6781            }
6782        })
6783    })
6784}(jQuery),
6785function(t) {
6786    "use strict";
6787    var e = '[data-dismiss="alert"]',
6788        i = function(i) {
6789            t(i).on("click", e, this.close)
6790        };
6791    i.VERSION = "3.4.1", i.TRANSITION_DURATION = 150, i.prototype.close = function(e) {
6792        function s() {
6793            a.detach().trigger("closed.bs.alert").remove()
6794        }
6795        var n = t(this),
6796            o = n.attr("data-target");
6797        o || (o = (o = n.attr("href")) && o.replace(/.*(?=#[^\s]*$)/, "")), o = "#" === o ? [] : o;
6798        var a = t(document).find(o);
6799        e && e.preventDefault(), a.length || (a = n.closest(".alert")), a.trigger(e = t.Event("close.bs.alert")), e.isDefaultPrevented() || (a.removeClass("in"), t.support.transition && a.hasClass("fade") ? a.one("bsTransitionEnd", s).emulateTransitionEnd(i.TRANSITION_DURATION) : s())
6800    };
6801    var s = t.fn.alert;
6802    t.fn.alert = function(e) {
6803        return this.each(function() {
6804            var s = t(this),
6805                n = s.data("bs.alert");
6806            n || s.data("bs.alert", n = new i(this)), "string" == typeof e && n[e].call(s)
6807        })
6808    }, t.fn.alert.Constructor = i, t.fn.alert.noConflict = function() {
6809        return t.fn.alert = s, this
6810    }, t(document).on("click.bs.alert.data-api", e, i.prototype.close)
6811}(jQuery),
6812function(t) {
6813    "use strict";
6814
6815    function e(e) {
6816        return this.each(function() {
6817            var s = t(this),
6818                n = s.data("bs.button"),
6819                o = "object" == typeof e && e;
6820            n || s.data("bs.button", n = new i(this, o)), "toggle" == e ? n.toggle() : e && n.setState(e)
6821        })
6822    }
6823    var i = function(e, s) {
6824        this.$element = t(e), this.options = t.extend({}, i.DEFAULTS, s), this.isLoading = !1
6825    };
6826    i.VERSION = "3.4.1", i.DEFAULTS = {
6827        loadingText: "loading..."
6828    }, i.prototype.setState = function(e) {
6829        var i = "disabled",
6830            s = this.$element,
6831            n = s.is("input") ? "val" : "html",
6832            o = s.data();
6833        e += "Text", null == o.resetText && s.data("resetText", s[n]()), setTimeout(t.proxy(function() {
6834            s[n](null == o[e] ? this.options[e] : o[e]), "loadingText" == e ? (this.isLoading = !0, s.addClass(i).attr(i, i).prop(i, !0)) : this.isLoading && (this.isLoading = !1, s.removeClass(i).removeAttr(i).prop(i, !1))
6835        }, this), 0)
6836    }, i.prototype.toggle = function() {
6837        var t = !0,
6838            e = this.$element.closest('[data-toggle="buttons"]');
6839        if (e.length) {
6840            var i = this.$element.find("input");
6841            "radio" == i.prop("type") ? (i.prop("checked") && (t = !1), e.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == i.prop("type") && (i.prop("checked") !== this.$element.hasClass("active") && (t = !1), this.$element.toggleClass("active")), i.prop("checked", this.$element.hasClass("active")), t && i.trigger("change")
6842        } else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active")
6843    };
6844    var s = t.fn.button;
6845    t.fn.button = e, t.fn.button.Constructor = i, t.fn.button.noConflict = function() {
6846        return t.fn.button = s, this
6847    }, t(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(i) {
6848        var s = t(i.target).closest(".btn");
6849        e.call(s, "toggle"), t(i.target).is('input[type="radio"], input[type="checkbox"]') || (i.preventDefault(), s.is("input,button") ? s.trigger("focus") : s.find("input:visible,button:visible").first().trigger("focus"))
6850    }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(e) {
6851        t(e.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(e.type))
6852    })
6853}(jQuery),
6854function(t) {
6855    "use strict";
6856
6857    function e(e) {
6858        return this.each(function() {
6859            var s = t(this),
6860                n = s.data("bs.carousel"),
6861                o = t.extend({}, i.DEFAULTS, s.data(), "object" == typeof e && e),
6862                a = "string" == typeof e ? e : o.slide;
6863            n || s.data("bs.carousel", n = new i(this, o)), "number" == typeof e ? n.to(e) : a ? n[a]() : o.interval && n.pause().cycle()
6864        })
6865    }
6866    var i = function(e, i) {
6867        this.$element = t(e), this.$indicators = this.$element.find(".carousel-indicators"), this.options = i, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("key
vendor: 10,656 bytes, lines 6867-7067
6867down.bs.carousel", t.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", t.proxy(this.pause, this)).on("mouseleave.bs.carousel", t.proxy(this.cycle, this))
6868    };
6869    i.VERSION = "3.4.1", i.TRANSITION_DURATION = 600, i.DEFAULTS = {
6870        interval: 5e3,
6871        pause: "hover",
6872        wrap: !0,
6873        keyboard: !0
6874    }, i.prototype.keydown = function(t) {
6875        if (!/input|textarea/i.test(t.target.tagName)) {
6876            switch (t.which) {
6877                case 37:
6878                    this.prev();
6879                    break;
6880                case 39:
6881                    this.next();
6882                    break;
6883                default:
6884                    return
6885            }
6886            t.preventDefault()
6887        }
6888    }, i.prototype.cycle = function(e) {
6889        return e || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(t.proxy(this.next, this), this.options.interval)), this
6890    }, i.prototype.getItemIndex = function(t) {
6891        return this.$items = t.parent().children(".item"), this.$items.index(t || this.$active)
6892    }, i.prototype.getItemForDirection = function(t, e) {
6893        var i = this.getItemIndex(e);
6894        if (("prev" == t && 0 === i || "next" == t && i == this.$items.length - 1) && !this.options.wrap) return e;
6895        var s = (i + ("prev" == t ? -1 : 1)) % this.$items.length;
6896        return this.$items.eq(s)
6897    }, i.prototype.to = function(t) {
6898        var e = this,
6899            i = this.getItemIndex(this.$active = this.$element.find(".item.active"));
6900        if (!(t > this.$items.length - 1 || t < 0)) return this.sliding ? this.$element.one("slid.bs.carousel", function() {
6901            e.to(t)
6902        }) : i == t ? this.pause().cycle() : this.slide(i < t ? "next" : "prev", this.$items.eq(t))
6903    }, i.prototype.pause = function(e) {
6904        return e || (this.paused = !0), this.$element.find(".next, .prev").length && t.support.transition && (this.$element.trigger(t.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
6905    }, i.prototype.next = function() {
6906        if (!this.sliding) return this.slide("next")
6907    }, i.prototype.prev = function() {
6908        if (!this.sliding) return this.slide("prev")
6909    }, i.prototype.slide = function(e, s) {
6910        var n = this.$element.find(".item.active"),
6911            o = s || this.getItemForDirection(e, n),
6912            a = this.interval,
6913            r = "next" == e ? "left" : "right",
6914            l = this;
6915        if (o.hasClass("active")) return this.sliding = !1;
6916        var h = o[0],
6917            c = t.Event("slide.bs.carousel", {
6918                relatedTarget: h,
6919                direction: r
6920            });
6921        if (this.$element.trigger(c), !c.isDefaultPrevented()) {
6922            if (this.sliding = !0, a && this.pause(), this.$indicators.length) {
6923                this.$indicators.find(".active").removeClass("active");
6924                var d = t(this.$indicators.children()[this.getItemIndex(o)]);
6925                d && d.addClass("active")
6926            }
6927            var u = t.Event("slid.bs.carousel", {
6928                relatedTarget: h,
6929                direction: r
6930            });
6931            return t.support.transition && this.$element.hasClass("slide") ? (o.addClass(e), "object" == typeof o && o.length && o[0].offsetWidth, n.addClass(r), o.addClass(r), n.one("bsTransitionEnd", function() {
6932                o.removeClass([e, r].join(" ")).addClass("active"), n.removeClass(["active", r].join(" ")), l.sliding = !1, setTimeout(function() {
6933                    l.$element.trigger(u)
6934                }, 0)
6935            }).emulateTransitionEnd(i.TRANSITION_DURATION)) : (n.removeClass("active"), o.addClass("active"), this.sliding = !1, this.$element.trigger(u)), a && this.cycle(), this
6936        }
6937    };
6938    var s = t.fn.carousel;
6939    t.fn.carousel = e, t.fn.carousel.Constructor = i, t.fn.carousel.noConflict = function() {
6940        return t.fn.carousel = s, this
6941    };
6942    var n = function(i) {
6943        var s = t(this),
6944            n = s.attr("href");
6945        n && (n = n.replace(/.*(?=#[^\s]+$)/, ""));
6946        var o = s.attr("data-target") || n,
6947            a = t(document).find(o);
6948        if (a.hasClass("carousel")) {
6949            var r = t.extend({}, a.data(), s.data()),
6950                l = s.attr("data-slide-to");
6951            l && (r.interval = !1), e.call(a, r), l && a.data("bs.carousel").to(l), i.preventDefault()
6952        }
6953    };
6954    t(document).on("click.bs.carousel.data-api", "[data-slide]", n).on("click.bs.carousel.data-api", "[data-slide-to]", n), t(window).on("load", function() {
6955        t('[data-ride="carousel"]').each(function() {
6956            var i = t(this);
6957            e.call(i, i.data())
6958        })
6959    })
6960}(jQuery),
6961function(t) {
6962    "use strict";
6963
6964    function e(e) {
6965        var i, s = e.attr("data-target") || (i = e.attr("href")) && i.replace(/.*(?=#[^\s]+$)/, "");
6966        return t(document).find(s)
6967    }
6968
6969    function i(e) {
6970        return this.each(function() {
6971            var i = t(this),
6972                n = i.data("bs.collapse"),
6973                o = t.extend({}, s.DEFAULTS, i.data(), "object" == typeof e && e);
6974            !n && o.toggle && /show|hide/.test(e) && (o.toggle = !1), n || i.data("bs.collapse", n = new s(this, o)), "string" == typeof e && n[e]()
6975        })
6976    }
6977    var s = function(e, i) {
6978        this.$element = t(e), this.options = t.extend({}, s.DEFAULTS, i), this.$trigger = t('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle()
6979    };
6980    s.VERSION = "3.4.1", s.TRANSITION_DURATION = 350, s.DEFAULTS = {
6981        toggle: !0
6982    }, s.prototype.dimension = function() {
6983        return this.$element.hasClass("width") ? "width" : "height"
6984    }, s.prototype.show = function() {
6985        if (!this.transitioning && !this.$element.hasClass("in")) {
6986            var e, n = this.$parent && this.$parent.children(".panel").children(".in, .collapsing");
6987            if (!(n && n.length && (e = n.data("bs.collapse")) && e.transitioning)) {
6988                var o = t.Event("show.bs.collapse");
6989                if (this.$element.trigger(o), !o.isDefaultPrevented()) {
6990                    n && n.length && (i.call(n, "hide"), e || n.data("bs.collapse", null));
6991                    var a = this.dimension();
6992                    this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1;
6993                    var r = function() {
6994                        this.$element.removeClass("collapsing").addClass("collapse in")[a](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")
6995                    };
6996                    if (!t.support.transition) return r.call(this);
6997                    var l = t.camelCase(["scroll", a].join("-"));
6998                    this.$element.one("bsTransitionEnd", t.proxy(r, this)).emulateTransitionEnd(s.TRANSITION_DURATION)[a](this.$element[0][l])
6999                }
7000            }
7001        }
7002    }, s.prototype.hide = function() {
7003        if (!this.transitioning && this.$element.hasClass("in")) {
7004            var e = t.Event("hide.bs.collapse");
7005            if (this.$element.trigger(e), !e.isDefaultPrevented()) {
7006                var i = this.dimension();
7007                this.$element[i](this.$element[i]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1;
7008                var n = function() {
7009                    this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")
7010                };
7011                if (!t.support.transition) return n.call(this);
7012                this.$element[i](0).one("bsTransitionEnd", t.proxy(n, this)).emulateTransitionEnd(s.TRANSITION_DURATION)
7013            }
7014        }
7015    }, s.prototype.toggle = function() {
7016        this[this.$element.hasClass("in") ? "hide" : "show"]()
7017    }, s.prototype.getParent = function() {
7018        return t(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(t.proxy(function(i, s) {
7019            var n = t(s);
7020            this.addAriaAndCollapsedClass(e(n), n)
7021        }, this)).end()
7022    }, s.prototype.addAriaAndCollapsedClass = function(t, e) {
7023        var i = t.hasClass("in");
7024        t.attr("aria-expanded", i), e.toggleClass("collapsed", !i).attr("aria-expanded", i)
7025    };
7026    var n = t.fn.collapse;
7027    t.fn.collapse = i, t.fn.collapse.Constructor = s, t.fn.collapse.noConflict = function() {
7028        return t.fn.collapse = n, this
7029    }, t(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(s) {
7030        var n = t(this);
7031        n.attr("data-target") || s.preventDefault();
7032        var o = e(n),
7033            a = o.data("bs.collapse") ? "toggle" : n.data();
7034        i.call(o, a)
7035    })
7036}(jQuery),
7037function(t) {
7038    "use strict";
7039
7040    function e(e) {
7041        var i = e.attr("data-target");
7042        i || (i = (i = e.attr("href")) && /#[A-Za-z]/.test(i) && i.replace(/.*(?=#[^\s]*$)/, ""));
7043        var s = "#" !== i ? t(document).find(i) : null;
7044        return s && s.length ? s : e.parent()
7045    }
7046
7047    function i(i) {
7048        i && 3 === i.which || (t(".dropdown-backdrop").remove(), t(s).each(function() {
7049            var s = t(this),
7050                n = e(s),
7051                o = {
7052                    relatedTarget: this
7053                };
7054            n.hasClass("open") && (i && "click" == i.type && /input|textarea/i.test(i.target.tagName) && t.contains(n[0], i.target) || (n.trigger(i = t.Event("hide.bs.dropdown", o)), i.isDefaultPrevented() || (s.attr("aria-expanded", "false"), n.removeClass("open").trigger(t.Event("hidden.bs.dropdown", o)))))
7055        }))
7056    }
7057    var s = '[data-toggle="dropdown"]',
7058        n = function(e) {
7059            t(e).on("click.bs.dropdown", this.toggle)
7060        };
7061    n.VERSION = "3.4.1", n.prototype.toggle = function(s) {
7062        var n = t(this);
7063        if (!n.is(".disabled, :disabled")) {
7064            var o = e(n),
7065                a = o.hasClass("open");
7066            if (i(), !a) {
7067                "ontouchstart" in document.documentElement && !o.closest(".
vendor: 4,813 bytes, lines 7067-7146
7067navbar-nav").length && t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click", i);
7068                var r = {
7069                    relatedTarget: this
7070                };
7071                if (o.trigger(s = t.Event("show.bs.dropdown", r)), s.isDefaultPrevented()) return;
7072                n.trigger("focus").attr("aria-expanded", "true"), o.toggleClass("open").trigger(t.Event("shown.bs.dropdown", r))
7073            }
7074            return !1
7075        }
7076    }, n.prototype.keydown = function(i) {
7077        if (/(38|40|27|32)/.test(i.which) && !/input|textarea/i.test(i.target.tagName)) {
7078            var n = t(this);
7079            if (i.preventDefault(), i.stopPropagation(), !n.is(".disabled, :disabled")) {
7080                var o = e(n),
7081                    a = o.hasClass("open");
7082                if (!a && 27 != i.which || a && 27 == i.which) return 27 == i.which && o.find(s).trigger("focus"), n.trigger("click");
7083                var r = o.find(".dropdown-menu li:not(.disabled):visible a");
7084                if (r.length) {
7085                    var l = r.index(i.target);
7086                    38 == i.which && 0 < l && l--, 40 == i.which && l < r.length - 1 && l++, ~l || (l = 0), r.eq(l).trigger("focus")
7087                }
7088            }
7089        }
7090    };
7091    var o = t.fn.dropdown;
7092    t.fn.dropdown = function(e) {
7093        return this.each(function() {
7094            var i = t(this),
7095                s = i.data("bs.dropdown");
7096            s || i.data("bs.dropdown", s = new n(this)), "string" == typeof e && s[e].call(i)
7097        })
7098    }, t.fn.dropdown.Constructor = n, t.fn.dropdown.noConflict = function() {
7099        return t.fn.dropdown = o, this
7100    }, t(document).on("click.bs.dropdown.data-api", i).on("click.bs.dropdown.data-api", ".dropdown form", function(t) {
7101        t.stopPropagation()
7102    }).on("click.bs.dropdown.data-api", s, n.prototype.toggle).on("keydown.bs.dropdown.data-api", s, n.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", n.prototype.keydown)
7103}(jQuery),
7104function(t) {
7105    "use strict";
7106
7107    function e(e, s) {
7108        return this.each(function() {
7109            var n = t(this),
7110                o = n.data("bs.modal"),
7111                a = t.extend({}, i.DEFAULTS, n.data(), "object" == typeof e && e);
7112            o || n.data("bs.modal", o = new i(this, a)), "string" == typeof e ? o[e](s) : a.show && o.show(s)
7113        })
7114    }
7115    var i = function(e, i) {
7116        this.options = i, this.$body = t(document.body), this.$element = t(e), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.fixedContent = ".navbar-fixed-top, .navbar-fixed-bottom", this.options.remote && this.$element.find(".modal-content").load(this.options.remote, t.proxy(function() {
7117            this.$element.trigger("loaded.bs.modal")
7118        }, this))
7119    };
7120    i.VERSION = "3.4.1", i.TRANSITION_DURATION = 300, i.BACKDROP_TRANSITION_DURATION = 150, i.DEFAULTS = {
7121        backdrop: !0,
7122        keyboard: !0,
7123        show: !0
7124    }, i.prototype.toggle = function(t) {
7125        return this.isShown ? this.hide() : this.show(t)
7126    }, i.prototype.show = function(e) {
7127        var s = this,
7128            n = t.Event("show.bs.modal", {
7129                relatedTarget: e
7130            });
7131        this.$element.trigger(n), this.isShown || n.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', t.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function() {
7132            s.$element.one("mouseup.dismiss.bs.modal", function(e) {
7133                t(e.target).is(s.$element) && (s.ignoreBackdropClick = !0)
7134            })
7135        }), this.backdrop(function() {
7136            var n = t.support.transition && s.$element.hasClass("fade");
7137            s.$element.parent().length || s.$element.appendTo(s.$body), s.$element.show().scrollTop(0), s.adjustDialog(), n && s.$element[0].offsetWidth, s.$element.addClass("in"), s.enforceFocus();
7138            var o = t.Event("shown.bs.modal", {
7139                relatedTarget: e
7140            });
7141            n ? s.$dialog.one("bsTransitionEnd", function() {
7142                s.$element.trigger("focus").trigger(o)
7143            }).emulateTransitionEnd(i.TRANSITION_DURATION) : s.$element.trigger("focus").trigger(o)
7144        }))
7145    }, i.prototype.hide = function(e) {
7146        e && e.preventDefault(), e = t.Event("hide.bs.modal"), this.$element.trigger(e), this.isShown && !e.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), t(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("
vendor: 31,475 bytes, lines 7146-7755
7146click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), t.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", t.proxy(this.hideModal, this)).emulateTransitionEnd(i.TRANSITION_DURATION) : this.hideModal())
7147    }, i.prototype.enforceFocus = function() {
7148        t(document).off("focusin.bs.modal").on("focusin.bs.modal", t.proxy(function(t) {
7149            document === t.target || this.$element[0] === t.target || this.$element.has(t.target).length || this.$element.trigger("focus")
7150        }, this))
7151    }, i.prototype.escape = function() {
7152        this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", t.proxy(function(t) {
7153            27 == t.which && this.hide()
7154        }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal")
7155    }, i.prototype.resize = function() {
7156        this.isShown ? t(window).on("resize.bs.modal", t.proxy(this.handleUpdate, this)) : t(window).off("resize.bs.modal")
7157    }, i.prototype.hideModal = function() {
7158        var t = this;
7159        this.$element.hide(), this.backdrop(function() {
7160            t.$body.removeClass("modal-open"), t.resetAdjustments(), t.resetScrollbar(), t.$element.trigger("hidden.bs.modal")
7161        })
7162    }, i.prototype.removeBackdrop = function() {
7163        this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
7164    }, i.prototype.backdrop = function(e) {
7165        var s = this,
7166            n = this.$element.hasClass("fade") ? "fade" : "";
7167        if (this.isShown && this.options.backdrop) {
7168            var o = t.support.transition && n;
7169            if (this.$backdrop = t(document.createElement("div")).addClass("modal-backdrop " + n).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", t.proxy(function(t) {
7170                    this.ignoreBackdropClick ? this.ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide())
7171                }, this)), o && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !e) return;
7172            o ? this.$backdrop.one("bsTransitionEnd", e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION) : e()
7173        } else if (!this.isShown && this.$backdrop) {
7174            this.$backdrop.removeClass("in");
7175            var a = function() {
7176                s.removeBackdrop(), e && e()
7177            };
7178            t.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", a).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION) : a()
7179        } else e && e()
7180    }, i.prototype.handleUpdate = function() {
7181        this.adjustDialog()
7182    }, i.prototype.adjustDialog = function() {
7183        var t = this.$element[0].scrollHeight > document.documentElement.clientHeight;
7184        this.$element.css({
7185            paddingLeft: !this.bodyIsOverflowing && t ? this.scrollbarWidth : "",
7186            paddingRight: this.bodyIsOverflowing && !t ? this.scrollbarWidth : ""
7187        })
7188    }, i.prototype.resetAdjustments = function() {
7189        this.$element.css({
7190            paddingLeft: "",
7191            paddingRight: ""
7192        })
7193    }, i.prototype.checkScrollbar = function() {
7194        var t = window.innerWidth;
7195        if (!t) {
7196            var e = document.documentElement.getBoundingClientRect();
7197            t = e.right - Math.abs(e.left)
7198        }
7199        this.bodyIsOverflowing = document.body.clientWidth < t, this.scrollbarWidth = this.measureScrollbar()
7200    }, i.prototype.setScrollbar = function() {
7201        var e = parseInt(this.$body.css("padding-right") || 0, 10);
7202        this.originalBodyPad = document.body.style.paddingRight || "";
7203        var i = this.scrollbarWidth;
7204        this.bodyIsOverflowing && (this.$body.css("padding-right", e + i), t(this.fixedContent).each(function(e, s) {
7205            var n = s.style.paddingRight,
7206                o = t(s).css("padding-right");
7207            t(s).data("padding-right", n).css("padding-right", parseFloat(o) + i + "px")
7208        }))
7209    }, i.prototype.resetScrollbar = function() {
7210        this.$body.css("padding-right", this.originalBodyPad), t(this.fixedContent).each(function(e, i) {
7211            var s = t(i).data("padding-right");
7212            t(i).removeData("padding-right"), i.style.paddingRight = s || ""
7213        })
7214    }, i.prototype.measureScrollbar = function() {
7215        var t = document.createElement("div");
7216        t.className = "modal-scrollbar-measure", this.$body.append(t);
7217        var e = t.offsetWidth - t.clientWidth;
7218        return this.$body[0].removeChild(t), e
7219    };
7220    var s = t.fn.modal;
7221    t.fn.modal = e, t.fn.modal.Constructor = i, t.fn.modal.noConflict = function() {
7222        return t.fn.modal = s, this
7223    }, t(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(i) {
7224        var s = t(this),
7225            n = s.attr("href"),
7226            o = s.attr("data-target") || n && n.replace(/.*(?=#[^\s]+$)/, ""),
7227            a = t(document).find(o),
7228            r = a.data("bs.modal") ? "toggle" : t.extend({
7229                remote: !/#/.test(n) && n
7230            }, a.data(), s.data());
7231        s.is("a") && i.preventDefault(), a.one("show.bs.modal", function(t) {
7232            t.isDefaultPrevented() || a.one("hidden.bs.modal", function() {
7233                s.is(":visible") && s.trigger("focus")
7234            })
7235        }), e.call(a, r, this)
7236    })
7237}(jQuery),
7238function(t) {
7239    "use strict";
7240
7241    function e(e, i) {
7242        var s = e.nodeName.toLowerCase();
7243        if (-1 !== t.inArray(s, i)) return -1 === t.inArray(s, n) || Boolean(e.nodeValue.match(a) || e.nodeValue.match(r));
7244        for (var o = t(i).filter(function(t, e) {
7245                return e instanceof RegExp
7246            }), l = 0, h = o.length; l < h; l++)
7247            if (s.match(o[l])) return !0;
7248        return !1
7249    }
7250
7251    function i(i, s, n) {
7252        if (0 === i.length) return i;
7253        if (n && "function" == typeof n) return n(i);
7254        if (!document.implementation || !document.implementation.createHTMLDocument) return i;
7255        var o = document.implementation.createHTMLDocument("sanitization");
7256        o.body.innerHTML = i;
7257        for (var a = t.map(s, function(t, e) {
7258                return e
7259            }), r = t(o.body).find("*"), l = 0, h = r.length; l < h; l++) {
7260            var c = r[l],
7261                d = c.nodeName.toLowerCase();
7262            if (-1 !== t.inArray(d, a))
7263                for (var u = t.map(c.attributes, function(t) {
7264                        return t
7265                    }), p = [].concat(s["*"] || [], s[d] || []), f = 0, g = u.length; f < g; f++) e(u[f], p) || c.removeAttribute(u[f].nodeName);
7266            else c.parentNode.removeChild(c)
7267        }
7268        return o.body.innerHTML
7269    }
7270    var s = ["sanitize", "whiteList", "sanitizeFn"],
7271        n = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"],
7272        o = {
7273            "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
7274            a: ["target", "href", "title", "rel"],
7275            area: [],
7276            b: [],
7277            br: [],
7278            col: [],
7279            code: [],
7280            div: [],
7281            em: [],
7282            hr: [],
7283            h1: [],
7284            h2: [],
7285            h3: [],
7286            h4: [],
7287            h5: [],
7288            h6: [],
7289            i: [],
7290            img: ["src", "alt", "title", "width", "height"],
7291            li: [],
7292            ol: [],
7293            p: [],
7294            pre: [],
7295            s: [],
7296            small: [],
7297            span: [],
7298            sub: [],
7299            sup: [],
7300            strong: [],
7301            u: [],
7302            ul: []
7303        },
7304        a = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,
7305        r = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i,
7306        l = function(t, e) {
7307            this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", t, e)
7308        };
7309    l.VERSION = "3.4.1", l.TRANSITION_DURATION = 150, l.DEFAULTS = {
7310        animation: !0,
7311        placement: "top",
7312        selector: !1,
7313        template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
7314        trigger: "hover focus",
7315        title: "",
7316        delay: 0,
7317        html: !1,
7318        container: !1,
7319        viewport: {
7320            selector: "body",
7321            padding: 0
7322        },
7323        sanitize: !0,
7324        sanitizeFn: null,
7325        whiteList: o
7326    }, l.prototype.init = function(e, i, s) {
7327        if (this.enabled = !0, this.type = e, this.$element = t(i), this.options = this.getOptions(s), this.$viewport = this.options.viewport && t(document).find(t.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = {
7328                click: !1,
7329                hover: !1,
7330                focus: !1
7331            }, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!");
7332        for (var n = this.options.trigger.split(" "), o = n.length; o--;) {
7333            var a = n[o];
7334            if ("click" == a) this.$element.on("click." + this.type, this.options.selector, t.proxy(this.toggle, this));
7335            else if ("manual" != a) {
7336                var r = "hover" == a ? "mouseenter" : "focusin",
7337                    l = "hover" == a ? "mouseleave" : "focusout";
7338                this.$element.on(r + "." + this.type, this.options.selector, t.proxy(this.enter, this)), this.$element.on(l + "." + this.type, this.options.selector, t.proxy(this.leave, this))
7339            }
7340        }
7341        this.options.selector ? this._options = t.extend({}, this.options, {
7342            trigger: "manual",
7343            selector: ""
7344        }) : this.fixTitle()
7345    }, l.prototype.getDefaults = function() {
7346        return l.DEFAULTS
7347    }, l.prototype.getOptions = function(e) {
7348        var n = this.$element.data();
7349        for (var o in n) n.hasOwnProperty(o) && -1 !== t.inArray(o, s) && delete n[o];
7350        return (e = t.extend({}, this.getDefaults(), n, e)).delay && "number" == typeof e.delay && (e.delay = {
7351            show: e.delay,
7352            hide: e.delay
7353        }), e.sanitize && (e.template = i(e.template, e.whiteList, e.sanitizeFn)), e
7354    }, l.prototype.getDelegateOptions = function() {
7355        var e = {},
7356            i = this.getDefaults();
7357        return this._options && t.each(this._options, function(t, s) {
7358            i[t] != s && (e[t] = s)
7359        }), e
7360    }, l.prototype.enter = function(e) {
7361        var i = e instanceof this.constructor ? e : t(e.currentTarget).data("bs." + this.type);
7362        if (i || (i = new this.constructor(e.currentTarget, this.getDelegateOptions()), t(e.currentTarget).data("bs." + this.type, i)), e instanceof t.Event && (i.inState["focusin" == e.type ? "focus" : "hover"] = !0), i.tip().hasClass("in") || "in" == i.hoverState) i.hoverState = "in";
7363        else {
7364            if (clearTimeout(i.timeout), i.hoverState = "in", !i.options.delay || !i.options.delay.show) return i.show();
7365            i.timeout = setTimeout(function() {
7366                "in" == i.hoverState && i.show()
7367            }, i.options.delay.show)
7368        }
7369    }, l.prototype.isInStateTrue = function() {
7370        for (var t in this.inState)
7371            if (this.inState[t]) return !0;
7372        return !1
7373    }, l.prototype.leave = function(e) {
7374        var i = e instanceof this.constructor ? e : t(e.currentTarget).data("bs." + this.type);
7375        if (i || (i = new this.constructor(e.currentTarget, this.getDelegateOptions()), t(e.currentTarget).data("bs." + this.type, i)), e instanceof t.Event && (i.inState["focusout" == e.type ? "focus" : "hover"] = !1), !i.isInStateTrue()) {
7376            if (clearTimeout(i.timeout), i.hoverState = "out", !i.options.delay || !i.options.delay.hide) return i.hide();
7377            i.timeout = setTimeout(function() {
7378                "out" == i.hoverState && i.hide()
7379            }, i.options.delay.hide)
7380        }
7381    }, l.prototype.show = function() {
7382        var e = t.Event("show.bs." + this.type);
7383        if (this.hasContent() && this.enabled) {
7384            this.$element.trigger(e);
7385            var i = t.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]);
7386            if (e.isDefaultPrevented() || !i) return;
7387            var s = this,
7388                n = this.tip(),
7389                o = this.getUID(this.type);
7390            this.setContent(), n.attr("id", o), this.$element.attr("aria-describedby", o), this.options.animation && n.addClass("fade");
7391            var a = "function" == typeof this.options.placement ? this.options.placement.call(this, n[0], this.$element[0]) : this.options.placement,
7392                r = /\s?auto?\s?/i,
7393                h = r.test(a);
7394            h && (a = a.replace(r, "") || "top"), n.detach().css({
7395                top: 0,
7396                left: 0,
7397                display: "block"
7398            }).addClass(a).data("bs." + this.type, this), this.options.container ? n.appendTo(t(document).find(this.options.container)) : n.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type);
7399            var c = this.getPosition(),
7400                d = n[0].offsetWidth,
7401                u = n[0].offsetHeight;
7402            if (h) {
7403                var p = a,
7404                    f = this.getPosition(this.$viewport);
7405                a = "bottom" == a && c.bottom + u > f.bottom ? "top" : "top" == a && c.top - u < f.top ? "bottom" : "right" == a && c.right + d > f.width ? "left" : "left" == a && c.left - d < f.left ? "right" : a, n.removeClass(p).addClass(a)
7406            }
7407            var g = this.getCalculatedOffset(a, c, d, u);
7408            this.applyPlacement(g, a);
7409            var m = function() {
7410                var t = s.hoverState;
7411                s.$element.trigger("shown.bs." + s.type), s.hoverState = null, "out" == t && s.leave(s)
7412            };
7413            t.support.transition && this.$tip.hasClass("fade") ? n.one("bsTransitionEnd", m).emulateTransitionEnd(l.TRANSITION_DURATION) : m()
7414        }
7415    }, l.prototype.applyPlacement = function(e, i) {
7416        var s = this.tip(),
7417            n = s[0].offsetWidth,
7418            o = s[0].offsetHeight,
7419            a = parseInt(s.css("margin-top"), 10),
7420            r = parseInt(s.css("margin-left"), 10);
7421        isNaN(a) && (a = 0), isNaN(r) && (r = 0), e.top += a, e.left += r, t.offset.setOffset(s[0], t.extend({
7422            using: function(t) {
7423                s.css({
7424                    top: Math.round(t.top),
7425                    left: Math.round(t.left)
7426                })
7427            }
7428        }, e), 0), s.addClass("in");
7429        var l = s[0].offsetWidth,
7430            h = s[0].offsetHeight;
7431        "top" == i && h != o && (e.top = e.top + o - h);
7432        var c = this.getViewportAdjustedDelta(i, e, l, h);
7433        c.left ? e.left += c.left : e.top += c.top;
7434        var d = /top|bottom/.test(i),
7435            u = d ? 2 * c.left - n + l : 2 * c.top - o + h,
7436            p = d ? "offsetWidth" : "offsetHeight";
7437        s.offset(e), this.replaceArrow(u, s[0][p], d)
7438    }, l.prototype.replaceArrow = function(t, e, i) {
7439        this.arrow().css(i ? "left" : "top", 50 * (1 - t / e) + "%").css(i ? "top" : "left", "")
7440    }, l.prototype.setContent = function() {
7441        var t = this.tip(),
7442            e = this.getTitle();
7443        this.options.html ? (this.options.sanitize && (e = i(e, this.options.whiteList, this.options.sanitizeFn)), t.find(".tooltip-inner").html(e)) : t.find(".tooltip-inner").text(e), t.removeClass("fade in top bottom left right")
7444    }, l.prototype.hide = function(e) {
7445        function i() {
7446            "in" != s.hoverState && n.detach(), s.$element && s.$element.removeAttr("aria-describedby").trigger("hidden.bs." + s.type), e && e()
7447        }
7448        var s = this,
7449            n = t(this.$tip),
7450            o = t.Event("hide.bs." + this.type);
7451        if (this.$element.trigger(o), !o.isDefaultPrevented()) return n.removeClass("in"), t.support.transition && n.hasClass("fade") ? n.one("bsTransitionEnd", i).emulateTransitionEnd(l.TRANSITION_DURATION) : i(), this.hoverState = null, this
7452    }, l.prototype.fixTitle = function() {
7453        var t = this.$element;
7454        (t.attr("title") || "string" != typeof t.attr("data-original-title")) && t.attr("data-original-title", t.attr("title") || "").attr("title", "")
7455    }, l.prototype.hasContent = function() {
7456        return this.getTitle()
7457    }, l.prototype.getPosition = function(e) {
7458        var i = (e = e || this.$element)[0],
7459            s = "BODY" == i.tagName,
7460            n = i.getBoundingClientRect();
7461        null == n.width && (n = t.extend({}, n, {
7462            width: n.right - n.left,
7463            height: n.bottom - n.top
7464        }));
7465        var o = window.SVGElement && i instanceof window.SVGElement,
7466            a = s ? {
7467                top: 0,
7468                left: 0
7469            } : o ? null : e.offset(),
7470            r = {
7471                scroll: s ? document.documentElement.scrollTop || document.body.scrollTop : e.scrollTop()
7472            },
7473            l = s ? {
7474                width: t(window).width(),
7475                height: t(window).height()
7476            } : null;
7477        return t.extend({}, n, r, l, a)
7478    }, l.prototype.getCalculatedOffset = function(t, e, i, s) {
7479        return "bottom" == t ? {
7480            top: e.top + e.height,
7481            left: e.left + e.width / 2 - i / 2
7482        } : "top" == t ? {
7483            top: e.top - s,
7484            left: e.left + e.width / 2 - i / 2
7485        } : "left" == t ? {
7486            top: e.top + e.height / 2 - s / 2,
7487            left: e.left - i
7488        } : {
7489            top: e.top + e.height / 2 - s / 2,
7490            left: e.left + e.width
7491        }
7492    }, l.prototype.getViewportAdjustedDelta = function(t, e, i, s) {
7493        var n = {
7494            top: 0,
7495            left: 0
7496        };
7497        if (!this.$viewport) return n;
7498        var o = this.options.viewport && this.options.viewport.padding || 0,
7499            a = this.getPosition(this.$viewport);
7500        if (/right|left/.test(t)) {
7501            var r = e.top - o - a.scroll,
7502                l = e.top + o - a.scroll + s;
7503            r < a.top ? n.top = a.top - r : l > a.top + a.height && (n.top = a.top + a.height - l)
7504        } else {
7505            var h = e.left - o,
7506                c = e.left + o + i;
7507            h < a.left ? n.left = a.left - h : c > a.right && (n.left = a.left + a.width - c)
7508        }
7509        return n
7510    }, l.prototype.getTitle = function() {
7511        var t = this.$element,
7512            e = this.options;
7513        return t.attr("data-original-title") || ("function" == typeof e.title ? e.title.call(t[0]) : e.title)
7514    }, l.prototype.getUID = function(t) {
7515        for (; t += ~~(1e6 * Math.random()), document.getElementById(t););
7516        return t
7517    }, l.prototype.tip = function() {
7518        if (!this.$tip && (this.$tip = t(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!");
7519        return this.$tip
7520    }, l.prototype.arrow = function() {
7521        return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
7522    }, l.prototype.enable = function() {
7523        this.enabled = !0
7524    }, l.prototype.disable = function() {
7525        this.enabled = !1
7526    }, l.prototype.toggleEnabled = function() {
7527        this.enabled = !this.enabled
7528    }, l.prototype.toggle = function(e) {
7529        var i = this;
7530        e && ((i = t(e.currentTarget).data("bs." + this.type)) || (i = new this.constructor(e.currentTarget, this.getDelegateOptions()), t(e.currentTarget).data("bs." + this.type, i))), e ? (i.inState.click = !i.inState.click, i.isInStateTrue() ? i.enter(i) : i.leave(i)) : i.tip().hasClass("in") ? i.leave(i) : i.enter(i)
7531    }, l.prototype.destroy = function() {
7532        var t = this;
7533        clearTimeout(this.timeout), this.hide(function() {
7534            t.$element.off("." + t.type).removeData("bs." + t.type), t.$tip && t.$tip.detach(), t.$tip = null, t.$arrow = null, t.$viewport = null, t.$element = null
7535        })
7536    }, l.prototype.sanitizeHtml = function(t) {
7537        return i(t, this.options.whiteList, this.options.sanitizeFn)
7538    };
7539    var h = t.fn.tooltip;
7540    t.fn.tooltip = function(e) {
7541        return this.each(function() {
7542            var i = t(this),
7543                s = i.data("bs.tooltip"),
7544                n = "object" == typeof e && e;
7545            !s && /destroy|hide/.test(e) || (s || i.data("bs.tooltip", s = new l(this, n)), "string" == typeof e && s[e]())
7546        })
7547    }, t.fn.tooltip.Constructor = l, t.fn.tooltip.noConflict = function() {
7548        return t.fn.tooltip = h, this
7549    }
7550}(jQuery),
7551function(t) {
7552    "use strict";
7553    var e = function(t, e) {
7554        this.init("popover", t, e)
7555    };
7556    if (!t.fn.tooltip) throw new Error("Popover requires tooltip.js");
7557    e.VERSION = "3.4.1", e.DEFAULTS = t.extend({}, t.fn.tooltip.Constructor.DEFAULTS, {
7558        placement: "right",
7559        trigger: "click",
7560        content: "",
7561        template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
7562    }), ((e.prototype = t.extend({}, t.fn.tooltip.Constructor.prototype)).constructor = e).prototype.getDefaults = function() {
7563        return e.DEFAULTS
7564    }, e.prototype.setContent = function() {
7565        var t = this.tip(),
7566            e = this.getTitle(),
7567            i = this.getContent();
7568        if (this.options.html) {
7569            var s = typeof i;
7570            this.options.sanitize && (e = this.sanitizeHtml(e), "string" === s && (i = this.sanitizeHtml(i))), t.find(".popover-title").html(e), t.find(".popover-content").children().detach().end()["string" === s ? "html" : "append"](i)
7571        } else t.find(".popover-title").text(e), t.find(".popover-content").children().detach().end().text(i);
7572        t.removeClass("fade top bottom left right in"), t.find(".popover-title").html() || t.find(".popover-title").hide()
7573    }, e.prototype.hasContent = function() {
7574        return this.getTitle() || this.getContent()
7575    }, e.prototype.getContent = function() {
7576        var t = this.$element,
7577            e = this.options;
7578        return t.attr("data-content") || ("function" == typeof e.content ? e.content.call(t[0]) : e.content)
7579    }, e.prototype.arrow = function() {
7580        return this.$arrow = this.$arrow || this.tip().find(".arrow")
7581    };
7582    var i = t.fn.popover;
7583    t.fn.popover = function(i) {
7584        return this.each(function() {
7585            var s = t(this),
7586                n = s.data("bs.popover"),
7587                o = "object" == typeof i && i;
7588            !n && /destroy|hide/.test(i) || (n || s.data("bs.popover", n = new e(this, o)), "string" == typeof i && n[i]())
7589        })
7590    }, t.fn.popover.Constructor = e, t.fn.popover.noConflict = function() {
7591        return t.fn.popover = i, this
7592    }
7593}(jQuery),
7594function(t) {
7595    "use strict";
7596
7597    function e(i, s) {
7598        this.$body = t(document.body), this.$scrollElement = t(t(i).is(document.body) ? window : i), this.options = t.extend({}, e.DEFAULTS, s), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", t.proxy(this.process, this)), this.refresh(), this.process()
7599    }
7600
7601    function i(i) {
7602        return this.each(function() {
7603            var s = t(this),
7604                n = s.data("bs.scrollspy"),
7605                o = "object" == typeof i && i;
7606            n || s.data("bs.scrollspy", n = new e(this, o)), "string" == typeof i && n[i]()
7607        })
7608    }
7609    e.VERSION = "3.4.1", e.DEFAULTS = {
7610        offset: 10
7611    }, e.prototype.getScrollHeight = function() {
7612        return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
7613    }, e.prototype.refresh = function() {
7614        var e = this,
7615            i = "offset",
7616            s = 0;
7617        this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), t.isWindow(this.$scrollElement[0]) || (i = "position", s = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function() {
7618            var e = t(this),
7619                n = e.data("target") || e.attr("href"),
7620                o = /^#./.test(n) && t(n);
7621            return o && o.length && o.is(":visible") && [
7622                [o[i]().top + s, n]
7623            ] || null
7624        }).sort(function(t, e) {
7625            return t[0] - e[0]
7626        }).each(function() {
7627            e.offsets.push(this[0]), e.targets.push(this[1])
7628        })
7629    }, e.prototype.process = function() {
7630        var t, e = this.$scrollElement.scrollTop() + this.options.offset,
7631            i = this.getScrollHeight(),
7632            s = this.options.offset + i - this.$scrollElement.height(),
7633            n = this.offsets,
7634            o = this.targets,
7635            a = this.activeTarget;
7636        if (this.scrollHeight != i && this.refresh(), s <= e) return a != (t = o[o.length - 1]) && this.activate(t);
7637        if (a && e < n[0]) return this.activeTarget = null, this.clear();
7638        for (t = n.length; t--;) a != o[t] && e >= n[t] && (void 0 === n[t + 1] || e < n[t + 1]) && this.activate(o[t])
7639    }, e.prototype.activate = function(e) {
7640        this.activeTarget = e, this.clear();
7641        var i = this.selector + '[data-target="' + e + '"],' + this.selector + '[href="' + e + '"]',
7642            s = t(i).parents("li").addClass("active");
7643        s.parent(".dropdown-menu").length && (s = s.closest("li.dropdown").addClass("active")), s.trigger("activate.bs.scrollspy")
7644    }, e.prototype.clear = function() {
7645        t(this.selector).parentsUntil(this.options.target, ".active").removeClass("active")
7646    };
7647    var s = t.fn.scrollspy;
7648    t.fn.scrollspy = i, t.fn.scrollspy.Constructor = e, t.fn.scrollspy.noConflict = function() {
7649        return t.fn.scrollspy = s, this
7650    }, t(window).on("load.bs.scrollspy.data-api", function() {
7651        t('[data-spy="scroll"]').each(function() {
7652            var e = t(this);
7653            i.call(e, e.data())
7654        })
7655    })
7656}(jQuery),
7657function(t) {
7658    "use strict";
7659
7660    function e(e) {
7661        return this.each(function() {
7662            var s = t(this),
7663                n = s.data("bs.tab");
7664            n || s.data("bs.tab", n = new i(this)), "string" == typeof e && n[e]()
7665        })
7666    }
7667    var i = function(e) {
7668        this.element = t(e)
7669    };
7670    i.VERSION = "3.4.1", i.TRANSITION_DURATION = 150, i.prototype.show = function() {
7671        var e = this.element,
7672            i = e.closest("ul:not(.dropdown-menu)"),
7673            s = e.data("target");
7674        if (s || (s = (s = e.attr("href")) && s.replace(/.*(?=#[^\s]*$)/, "")), !e.parent("li").hasClass("active")) {
7675            var n = i.find(".active:last a"),
7676                o = t.Event("hide.bs.tab", {
7677                    relatedTarget: e[0]
7678                }),
7679                a = t.Event("show.bs.tab", {
7680                    relatedTarget: n[0]
7681                });
7682            if (n.trigger(o), e.trigger(a), !a.isDefaultPrevented() && !o.isDefaultPrevented()) {
7683                var r = t(document).find(s);
7684                this.activate(e.closest("li"), i), this.activate(r, r.parent(), function() {
7685                    n.trigger({
7686                        type: "hidden.bs.tab",
7687                        relatedTarget: e[0]
7688                    }), e.trigger({
7689                        type: "shown.bs.tab",
7690                        relatedTarget: n[0]
7691                    })
7692                })
7693            }
7694        }
7695    }, i.prototype.activate = function(e, s, n) {
7696        function o() {
7697            a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), r ? (e[0].offsetWidth, e.addClass("in")) : e.removeClass("fade"), e.parent(".dropdown-menu").length && e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), n && n()
7698        }
7699        var a = s.find("> .active"),
7700            r = n && t.support.transition && (a.length && a.hasClass("fade") || !!s.find("> .fade").length);
7701        a.length && r ? a.one("bsTransitionEnd", o).emulateTransitionEnd(i.TRANSITION_DURATION) : o(), a.removeClass("in")
7702    };
7703    var s = t.fn.tab;
7704    t.fn.tab = e, t.fn.tab.Constructor = i, t.fn.tab.noConflict = function() {
7705        return t.fn.tab = s, this
7706    };
7707    var n = function(i) {
7708        i.preventDefault(), e.call(t(this), "show")
7709    };
7710    t(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', n).on("click.bs.tab.data-api", '[data-toggle="pill"]', n)
7711}(jQuery),
7712function(t) {
7713    "use strict";
7714
7715    function e(e) {
7716        return this.each(function() {
7717            var s = t(this),
7718                n = s.data("bs.affix"),
7719                o = "object" == typeof e && e;
7720            n || s.data("bs.affix", n = new i(this, o)), "string" == typeof e && n[e]()
7721        })
7722    }
7723    var i = function(e, s) {
7724        this.options = t.extend({}, i.DEFAULTS, s);
7725        var n = this.options.target === i.DEFAULTS.target ? t(this.options.target) : t(document).find(this.options.target);
7726        this.$target = n.on("scroll.bs.affix.data-api", t.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", t.proxy(this.checkPositionWithEventLoop, this)), this.$element = t(e), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition()
7727    };
7728    i.VERSION = "3.4.1", i.RESET = "affix affix-top affix-bottom", i.DEFAULTS = {
7729        offset: 0,
7730        target: window
7731    }, i.prototype.getState = function(t, e, i, s) {
7732        var n = this.$target.scrollTop(),
7733            o = this.$element.offset(),
7734            a = this.$target.height();
7735        if (null != i && "top" == this.affixed) return n < i && "top";
7736        if ("bottom" == this.affixed) return null != i ? !(n + this.unpin <= o.top) && "bottom" : !(n + a <= t - s) && "bottom";
7737        var r = null == this.affixed,
7738            l = r ? n : o.top;
7739        return null != i && n <= i ? "top" : null != s && t - s <= l + (r ? a : e) && "bottom"
7740    }, i.prototype.getPinnedOffset = function() {
7741        if (this.pinnedOffset) return this.pinnedOffset;
7742        this.$element.removeClass(i.RESET).addClass("affix");
7743        var t = this.$target.scrollTop(),
7744            e = this.$element.offset();
7745        return this.pinnedOffset = e.top - t
7746    }, i.prototype.checkPositionWithEventLoop = function() {
7747        setTimeout(t.proxy(this.checkPosition, this), 1)
7748    }, i.prototype.checkPosition = function() {
7749        if (this.$element.is(":visible")) {
7750            var e = this.$element.height(),
7751                s = this.options.offset,
7752                n = s.top,
7753                o = s.bottom,
7754                a = Math.max(t(document).height(), t(document.body).height());
7755            "object" != typeof s && (o = n = s), "function" == typeof n && (n = s.top(this.$element)), "function" == typeof o && (o = s.bottom(this.$element));
7756            var r = this.getState(a, e, n, o);
7757            if (this.affixed != r) {
7758                null != this.unpin && this.$element.css("top", "");
7759                var l = "affix" + (r ? "-" + r : ""),
7760                    h = t.Event(l + ".bs.affix");
7761                if (this.$element.trigger(h), h.isDefaultPrevented()) return;
7762                this.affixed = r, this.unpin = "bottom" == r ? this.getPinnedOffset() : null, this.$element.removeClass(i.RESET).addClass(l).trigger(l.replace("affix", "affixed") + ".bs.affix")
7763            }
7764            "bottom" == r && this.$element.offset({
7765                top: a - e - o
7766            })
7767        }
7768    };
7769    var s = t.fn.affix;
7770    t.fn.affix = e, t.fn.affix.Constructor = i, t.fn.affix.noConflict = function() {
7771        return t.fn.affix = s, this
7772    }, t(window).on("load", function() {
7773        t('[data-spy="affix"]').each(function() {
7774            var i = t(this),
7775                s = i.data();
7776            s.offset = s.offset || {}, null != s.offsetBottom && (s.offset.bottom = s.offsetBottom), null != s.offsetTop && (s.offset.top = s.offsetTop), e.call(i, s)
7777        })
7778    })
7779}(jQuery),
7780function(t) {
7781    t.fn.extend({
7782        easyResponsiveTabs: function(e) {
7783            var i = {
7784                    type: "default",
7785                    width: "auto",
7786                    fit: !0,
7787                    closed: !1,
7788                    tabidentify: "",
7789                    activate: function() {}
7790                },
7791                e = t.extend(i, e),
7792                s = e,
7793                n = s.type,
7794                o = s.fit,
7795                a = s.width,
7796                r = window.location.hash,
7797                l = !(!window.history || !history.replaceState);
7798            t(this).bind("tabactivate", function(t, i) {
7799                "function" == typeof e.activate && e.activate.call(i, t)
7800            }), this.each(function() {
7801                function i() {
7802                    "vertical" == n && s.addClass("resp-vtabs").addClass(e.tabidentify), 1 == o && s.css({
7803                        width: "100%",
7804                        margin: "0px"
7805                    }), "accordion" == n && (s.addClass("resp-easy-accordion").addClass(e.tabidentify), s.find(".resp-tabs-list").css("display", "none"))
7806                }
7807                var s = t(this),
7808                    h = s.find("ul.resp-tabs-list." + e.tabidentify),
7809                    c = s.attr("id");
7810                s.find("ul.resp-tabs-list." + e.tabidentify + " li").addClass("resp-tab-item").addClass(e.tabidentify), s.css({
7811                    display: "block",
7812                    width: a
7813                }), "vertical" == e.type && s.find(".resp-tabs-container." + e.tabidentify + " > div").addClass("resp-tab-content").addClass(e.tabidentify), i();
7814                var d;
7815                s.find(".resp-tab-content." + e.tabidentify).before("<h2 class='resp-accordion " + e.tabidentify + "' role='faq-tab'><span class='resp-arrow'></span></h2>");
7816                var u = 0;
7817                s.find(".resp-accordion").each(function() {
7818                    d = t(this);
7819                    var i = s.find(".resp-tab-item:eq(" + u + ")"),
7820                        n = s.find(".resp-accordion:eq(" + u + ")");
7821                    n.append(i.html()), n.data(i.data()), d.attr("aria-controls", e.tabidentify + "_tab_item-" + u), u++
7822                });
7823                var p, f = 0;
7824                s.find(".resp-tab-item").each(function() {
7825                    $tabItem = t(this), $tabItem.attr("aria-controls", e.tabidentify + "_tab_item-" + f), $tabItem.attr("role", "faq-tab");
7826                    var i = 0;
7827                    s.find(".resp-tab-content." + e.tabidentify).each(function() {
7828                        p = t(this), p.attr("aria-labelledby", e.tabidentify + "_tab_item-" + i).css({
7829                            "border-color": e.active_border_color
7830                        }), i++
7831                    }), f++
7832                });
7833                var g = 0;
7834                if ("" != r) {
7835                    var m = r.match(new RegExp(c + "([0-9]+)"));
7836                    null !== m && 2 === m.length && (g = parseInt(m[1], 10) - 1) > f && (g = 0)
7837                }
7838                t(s.find(".resp-tab-item." + e.tabidentify)[g]).addClass("resp-tab-active").css({
7839                    "background-color": e.activetab_bg,
7840                    "border-color": e.active_border_color
7841                }), !0 === e.closed || "accordion" === e.closed && !h.is(":visible") || "tabs" === e.closed && h.is(":visible") || (t(s.find(".resp-accordion." + e.tabidentify)[g]).addClass("resp-tab-active").css({
7842                    "background-color": e.activetab_bg + " !important",
7843                    "border-color": e.active_border_color,
7844                    background: "none"
7845                }), t(s.find(".resp-tab-content." + e.tabidentify)[g]).addClass("resp-tab-content-active").addClass(e.tabidentify).attr("style", "display:block")), s.find("[role=faq-tab]").each(function() {
7846                    t(this).click(function() {
7847                        var i = t(this),
7848                            n = i.attr("aria-controls");
7849                        if (i.hasClass("resp-accordion") && i.hasClass("resp-tab-active")) return s.find(".resp-tab-content-active." + e.tabidentify).slideUp("", function() {
7850                            t(this).addClass("resp-accordion-closed")
7851                        }), i.removeClass("resp-tab-active").css({
7852                            "background-color": e.inactive_bg,
7853                            "border-color": "none"
7854                        }), !1;
7855                        if (!i.hasClass("resp-tab-active") && i.hasClass("resp-accordion") ? (s.find(".resp-tab-active." + e.tabidentify).removeClass("resp-tab-active").css({
7856                                "background-color": e.inactive_bg,
7857                                "border-color": "none"
7858                            }), s.find(".resp-tab-content-active." + e.tabidentify).slideUp().removeClass("resp-tab-content-active resp-accordion-closed"), s.find("[aria-controls=" + n + "]").addClass("resp-tab-active").css({
7859                                "background-color": e.activetab_bg,
7860                                "border-color": e.active_border_color
7861                            }), s.find(".resp-tab-content[aria-labelledby = " + n + "]." + e.tabidentify).slideDown().addClass("resp-tab-content-active")) : (s.find(".resp-tab-active." + e.tabidentify).removeClass("resp-tab-active").css({
7862                                "background-color": e.inactive_bg,
7863                                "border-color": "none"
7864                            }), s.find(".resp-tab-content-active." + e.tabidentify).removeAttr("style").removeClass("resp-tab-content-active").removeClass("resp-accordion-closed"), s.find("[aria-controls=" + n + "]").addClass("resp-tab-active").css({
7865                                "background-color": e.activetab_bg,
7866                                "border-color": e.active_border_color
7867                            }), s.find(".resp-tab-content[aria-labelledby = " + n + "]." + e.tabidentify).addClass("resp-tab-content-active").attr("style", "display:block")), i.trigger("tabactivate", i), l) {
7868                            var o = window.location.hash,
7869                                a = n.split("tab_item-"),
7870                                r = c + (parseInt(a[1], 10) + 1).toString();
7871                            if ("" != o) {
7872                                var h = new RegExp(c + "[0-9]+");
7873                                r = null != o.match(h) ? o.replace(h, r) : o + "|" + r
7874                            } else r = "#" + r;
7875                            history.replaceState(null, null, r)
7876                        }
7877                    })
7878                })
7879            })
7880        }
7881    })
7882}(jQuery);
7883var $ = jQuery;
7884$(document).ready(function() {
7885        $(".ng-search-block").hide();
7886        var t = new URLSearchParams(window.location.search),
7887            e = $(".geolocation-geocoder-address").val();
7888        $(".ng-join-a-club-steps .filter-container span strong").html(e), $(".ng-find-a-club-search .filter-container .sortby-form span strong").html(e), t.has("lat") || $(".ng-join-a-club-steps .filter-container").hide(), $(".view-detect").show(), $(".search-link").click(function(t) {
7889            t.preventDefault(), $(".ng-search-block").css("display", "flex")
7890        }), $(".close-btn").click(function(t) {
7891            t.preventDefault(), $(".ng-search-block").hide()
7892        }), $("#category").easyResponsiveTabs({
7893            type: "vertical",
7894            width: "auto",
7895            fit: !0,
7896            closed: "accordion",
7897            tabidentify: "hor_1"
7898        });
7899        var i = $(".ng-faqs-page .resp-tab-content #accordion div");
7900        i.first().find(".panel-heading").addClass("active"), i.first().find(".panel-collapse").addClass("in").removeAttr("style"), i.not(":eq(0)").find(".panel-collapse").removeClass("in");
7901        var s = $(".ng-faqs-page .resp-tab-content .ng-faq #accordiontwo .panel:first-child");
7902        s.find(".panel-heading").addClass("active"), s.find(".panel-collapse").addClass("in").removeAttr("style"), $(".ng-faqs-page .resp-tab-content .ng-faq #accordiontwo .panel:not(:first-child)").find(".panel-collapse").removeClass("in")
7903    }), $(".panel-collapse").on("show.bs.collapse", function() {
7904        $(this).siblings(".panel-heading").addClass("active"), $(this).parent().siblings().find(".panel-heading").removeClass("active"), $(this).parent().siblings().find(".panel-collapse").removeClass("in")
7905    }), $(".nav .dropdown-menu").hover(function() {
7906        $(this).parent().toggleClass("active-menu")
7907    }), $(".panel-collapse").on("hide.bs.collapse", function() {
7908        $(this).siblings(".panel-heading").removeClass("active")
7909    }), $(".panel-heading a").on("click", function(t) {
7910        $(this).parents(".panel").children(".panel-collapse").hasClass("in") && t.stopPropagation()
7911    }), $("[id*='edit-edit-quantity']").change(function() {
7912        $("#edit-actions #edit-submit").once().trigger("click")
7913    }), $(document).ready(function() {
7914        function t() {
7915            var t = $(".order-information"),
7916                e = t.find("input[type=radio][name^=shipping_information]:checked").next("label").text(),
7917                i = e.substr(e.indexOf("$") + 1).replace(/,/g, ''),
7918                s = t.find(".order-total-line__subtotal span.order-total-line-value").text(),
7919                n = s.substr(s.indexOf("$") + 1).replace(/,/g, '');
7920                if (!isNaN(i) && !isNaN(n)) {
7921                    console.log("calculated shipping cost: " + i);
7922                    o = parseFloat(i) + parseFloat(n);
7923                }                                                    
7924                if (typeof o !== 'undefined' && !isNaN(o)) {
7925                    t.find(".order-total-line__adjustment--shipping").length ? (t.find(".order-total-line__adjustment--shipping .order-total-line-value").text("$" + i), t.find(".order-total-line__total .order-total-line-value").text("$" + o.toFixed(2))) : (t.find(".order-total-line__subtotal").after('<div class="order-total-line order-total-line__adjustment order-total-line__adjustment--shipping"><span class="order-total-line-label">Shipping </span><span class="order-total-line-value">$' + i + "</span></div>"), t.find(".order-total-line__total .order-total-line-value").text("$" + o.toFixed(2)))
7926                } else {
7927                    console.log("error: shipping cost is not a number");
7928                }
7929
7930                
7931        }
7932        "/blog" == window.location.pathname && document.location.search.length > 0 && $("html, body").animate({
7933            scrollTop: $(".blog .ng-blog-posts").offset().top
7934        }, "slow"), t(), $(".order-information input[type=radio][name^=shipping_information]").change(function() {
7935            t()
7936        })
7937    }), window.addEventListener("load", function() {
7938        null != document.querySelector(".glider") && (document.querySelector(".glider").addEventListener("glider-slide-visible", function(t) {
7939            Glider(this), console.log("Slide Visible %s", t.detail.slide)
7940        }), document.querySelector(".glider").addEventListener("glider-slide-hidden", function(t) {
7941            console.log("Slide Hidden %s", t.detail.slide)
7942        }), document.querySelector(".glider").addEventListener("glider-refresh", function(t) {
7943            console.log("Refresh")
7944        }), document.querySelector(".glider").addEventListener("glider-loaded", function(t) {
7945            console.log("Loaded")
7946        }), window._ = new Glider(document.querySelector(".glider"), {
7947            slidesToShow: 1,
7948            slidesToScroll: 1,
7949            itemWidth: 150,
7950            draggable: !0,
7951            scrollLock: !1,
7952            dots: "#dots",
7953            rewind: !0,
7954            arrows: {
7955                prev: ".glider-prev",
7956                next: ".glider-next"
7957            },
7958            responsive: [{
7959                breakpoint: 1025,
7960                settings: {
7961                    slidesToScroll: 4,
7962                    slidesToShow: 4
7963                }
7964            }, {
7965                breakpoint: 768,
7966                settings: {
7967                    slidesToScroll: 2,
7968                    slidesToShow: 2
7969                }
7970            }, {
7971                breakpoint: 320,
7972                settings: {
7973                    slidesToScroll: 1,
7974                    slidesToShow: 1,
7975                    scrollLock: !0
7976                }
7977            }]
7978        }))
7979    }), window.addEventListener("load", function() {
7980        null != document.querySelector(".glider2") && (document.querySelector(".glider2").addEventListener("glider-slide-visible", function(t) {
7981            Glider(this), console.log("Slide Visible %s", t.detail.slide)
7982        }), document.querySelector(".glider2").addEventListener("glider-slide-hidden", function(t) {
7983            console.log("Slide Hidden %s", t.detail.slide)
7984        }), document.querySelector(".glider2").addEventListener("glider-refresh2", function(t) {
7985            console.log("Refresh")
7986        }), document.querySelector(".glider2").addEventListener("glider-loaded2", function(t) {
7987            console.log("Loaded")
7988        }), window._ = new Glider(document.querySelector(".glider2"), {
7989            slidesToShow: 1,
7990            slidesToScroll: 1,
7991            itemWidth: 150,
7992            draggable: !0,
7993            scrollLock: !1,
7994            dots: "#dots2",
7995            rewind: !0,
7996            arrows: {
7997                prev: ".glider-prev2",
7998                next: ".glider-next2"
7999            },
8000            responsive: [{
8001                breakpoint: 1025,
8002                settings: {
8003                    slidesToScroll: 3,
8004                    slidesToShow: 3
8005                }
8006            }, {
8007                breakpoint: 768,
8008                settings: {
8009                    slidesToScroll: 2,
8010                    slidesToShow: 2
8011                }
8012            }, {
8013                breakpoint: 320,
8014                settings: {
8015                    slidesToScroll: 1,
8016                    slidesToShow: 1,
8017                    scrollLock: !0
8018                }
8019            }]
8020        }))
8021    }), window.addEventListener("load", function() {
8022        null != document.querySelector(".glider3") && (document.querySelector(".glider3").addEventListener("glider-slide-visible", function(t) {
8023            Glider(this), console.log("Slide Visible %s", t.detail.slide)
8024        }), document.querySelector(".glider3").addEventListener("glider-slide-hidden", function(t) {
8025            console.log("Slide Hidden %s", t.detail.slide)
8026        }), document.querySelector(".glider3").addEventListener("glider-refresh3", function(t) {
8027            console.log("Refresh")
8028        }), document.querySelector(".glider3").addEventListener("glider-loaded3", function(t) {
8029            console.log("Loaded")
8030        }), window._ = new Glider(document.querySelector(".glider3"), {
8031            slidesToShow: 1,
8032            slidesToScroll: 1,
8033            itemWidth: 150,
8034            draggable: !0,
8035            scrollLock: !1,
8036            dots: "#dots3",
8037            rewind: !0,
8038            arrows: {
8039                prev: ".glider-prev3",
8040                next: ".glider-next3"
8041            },
8042            responsive: [{
8043                breakpoint: 1025,
8044                settings: {
8045                    slidesToScroll: 3,
8046                    slidesToShow: 3
8047                }
8048            }, {
8049                breakpoint: 768,
8050                settings: {
8051                    slidesToScroll: 2,
8052                    slidesToShow: 2
8053                }
8054            }, {
8055                breakpoint: 320,
8056                settings: {
8057                    slidesToScroll: 1,
8058                    slidesToShow: 1,
8059                    scrollLock: !0
8060                }
8061            }]
8062        }))
8063    }), window.addEventListener("load", function() {
8064        null != document.querySelector(".glider4") && (document.querySelector(".glider4").addEventListener("glider-slide-visible", function(t) {
8065            Glider(this), console.log("Slide Visible %s", t.detail.slide)
8066        }), document.querySelector(".glider4").addEventListener("glider-slide-hidden", function(t) {
8067            console.log("Slide Hidden %s", t.detail.slide)
8068        }), document.querySelector(".glider4").addEventListener("glider-refresh4", function(t) {
8069            console.log("Refresh")
8070        }), document.querySelector(".glider4").addEventListener("glider-loaded4", function(t) {
8071            console.log("Loaded")
8072        }), window._ = new Glider(document.querySelector(".glider4"), {
8073            slidesToShow: 1,
8074            slidesToScroll: 1,
8075            itemWidth: 150,
8076            draggable: !0,
8077            scrollLock: !1,
8078            dots: "#dots4",
8079            rewind: !0,
8080            arrows: {
8081                prev: ".glider-prev4",
8082                next: ".glider-next4"
8083            },
8084            responsive: [{
8085                breakpoint: 1025,
8086                settings: {
8087                    slidesToScroll: 3,
8088                    slidesToShow: 3
8089                }
8090            }, {
8091                breakpoint: 768,
8092                settings: {
8093                    slidesToScroll: 2,
8094                    slidesToShow: 2
8095                }
8096            }, {
8097                breakpoint: 320,
8098                settings: {
8099                    slidesToScroll: 1,
8100                    slidesToShow: 1,
8101                    scrollLock: !0
8102                }
8103            }]
8104        }))
8105    }), window.addEventListener("load", function() {
8106        null != document.querySelector(".glider5") && (document.querySelector(".glider5").addEventListener("glider-slide-visible", function(t) {
8107            Glider(this), console.log("Slide Visible %s", t.detail.slide)
8108        }), document.querySelector(".glider5").addEventListener("glider-slide-hidden", function(t) {
8109            console.log("Slide Hidden %s", t.detail.slide)
8110        }), document.querySelector(".glider5").addEventListener("glider-refresh5", function(t) {
8111            console.log("Refresh")
8112        }), document.querySelector(".glider5").addEventListener("glider-loaded5", function(t) {
8113            console.log("Loaded")
8114        }), window._ = new Glider(document.querySelector(".glider5"), {
8115            slidesToShow: 1,
8116            slidesToScroll: 1,
8117            itemWidth: 150,
8118            draggable: !0,
8119            scrollLock: !1,
8120            dots: "#dots5",
8121            rewind: !0,
8122            arrows: {
8123                prev: ".glider-prev5",
8124                next: ".glider-next5"
8125            },
8126            responsive: [{
8127                breakpoint: 1025,
8128                settings: {
8129                    slidesToScroll: 4,
8130                    slidesToShow: 3
8131                }
8132            }, {
8133                breakpoint: 768,
8134                settings: {
8135                    slidesToScroll: 2,
8136                    slidesToShow: 2
8137                }
8138            }, {
8139                breakpoint: 320,
8140                settings: {
8141                    slidesToScroll: 1,
8142                    slidesToShow: 1,
8143                    scrollLock: !0
8144                }
8145            }]
8146        }))
8147    }), window.addEventListener("load", function() {
8148        null != document.querySelector(".glider6") && (document.querySelector(".glider6").addEventListener("glider-slide-visible", function(t) {
8149            Glider(this), console.log("Slide Visible %s", t.detail.slide)
8150        }), document.querySelector(".glider6").addEventListener("glider-slide-hidden", function(t) {
8151            console.log("Slide Hidden %s", t.detail.slide)
8152        }), document.querySelector(".glider6").addEventListener("glider-refresh5", function(t) {
8153            console.log("Refresh")
8154        }), document.querySelector(".glider6").addEventListener("glider-loaded5", function(t) {
8155            console.log("Loaded")
8156        }), window._ = new Glider(document.querySelector(".glider6"), {
8157            slidesToShow: 1,
8158            slidesToScroll: 1,
8159            itemWidth: 150,
8160            draggable: !0,
8161            scrollLock: !1,
8162            dots: "#dots5",
8163            rewind: !0,
8164            arrows: {
8165                prev: ".glider-prev6",
8166                next: ".glider-next6"
8167            },
8168            responsive: [{
8169                breakpoint: 1025,
8170                settings: {
8171                    slidesToScroll: 2,
8172                    slidesToShow: 2
8173                }
8174            }, {
8175                breakpoint: 768,
8176                settings: {
8177                    slidesToScroll: 1,
8178                    slidesToShow: 1
8179                }
8180            }, {
8181                breakpoint: 320,
8182                settings: {
8183                    slidesToScroll: 1,
8184                    slidesToShow: 1,
8185                    scrollLock: !0
8186                }
8187            }]
8188        }))
8189    }), $a = $(".glider5 .content").length, 3 == $a && $(window).width(), $(".nested-accordion").find(".comment").slideUp(), $(".nested-accordion").find("h6").click(function() {
8190        $(this).next(".comment").slideToggle(100), $(this).toggleClass("selected")
8191    }), $(document).ready(function() {
8192        window.location.search.substring(1).includes("=category") && ($(".left-filter-block .main-title").toggleClass("down-arrow"), $(".left-filter-block .facets-widget-checkbox").toggleClass("show"))
8193    }), $(".left-filter-block .main-title").click(function() {
8194        $(this).toggleClass("down-arrow"), $(".left-filter-block .facets-widget-checkbox").toggleClass("show")
8195    }), $(".facets-checkbox").click(function(t) {
8196        t.preventDefault()
8197    }), $(document).ready(function() {
8198        getAccordion("#tabs", 1025)
8199    }), $(document).ready(function() {
8200        getAccordiontwo("#tabs2", 1025)
8201    }), $(window).width() > 1024 && $(".tab-content2").addClass("tab-content"), $(window).width() < 767 && ($(".geolocation-geocoder-a
8201ddress").attr("placeholder", "Enter Zipcode"), $("#edit-submit-club-locations").attr("value", "Find")), $(".cart-form .views-element-container table").wrap('<div class="table-parent"></div>'), $(document).ready(function() {
8202        $(".in").prev(".panel-heading").addClass("activetab"), $(".panel-heading h4 a").click(function() {
8203            $(this).parents(".panel").siblings().find(".panel-heading").removeClass("activetab"), $(this).closest(".panel").find(".panel-collapse").hasClass("in") || $(this).parents(".panel-heading").addClass("activetab")
8204        })
8205    }), $(".form-container #edit-anything-else-optional-").focusout(function() {
8206        this.value.length > 0 ? $(".form-container #edit-anything-else-optional-+.control-label").addClass("not-empty") : $(".form-container #edit-anything-else-optional-+.control-label").removeClass("not-empty")
8207    }), $(".form-container #edit-how-did-you-find-us-optional- ").focusout(function() {
8208        this.value.length > 0 ? $(".form-container #edit-how-did-you-find-us-optional-+.control-label").addClass("not-empty") : $(".form-container #edit-how-did-you-find-us-optional-+.control-label").removeClass("not-empty")
8209    }), $(".share-btn").click(function() {
8210        $(".ng-product-view .product-panel .col-md-7 .product-details .form-group .cart-btn, .ng-product-view .product-panel .col-md-7 .product-details hr").toggleClass("topmargin")
8211    }), $(".mobile-search-btn").click(function() {
8212        $("#views-exposed-form-store-store").toggleClass("show")
8213    }), $(".carousel").carousel({
8214        interval: !1
8215    }),
8216    function(t) {
8217        t(document).on("change", "#find-club-select", function() {
8218            var e = t(this).val();
8219            t(".find-club-proximity").val(e).change()
8220        }), t(document).on("change", "#find-club-sorting", function() {
8221            var e = t(this).val();
8222            t(".find-club-sortby").val(e).change()
8223        }), t(document).ajaxComplete(function(e, i, s) {
8224            if (void 0 != i.responseJSON && void 0 != i.responseJSON[0] && void 0 != i.responseJSON[0].settings) {
8225                var n = t(".ng-join-a-club-steps .filter-container"),
8226                    o = t(".geolocation-geocoder-address").val();
8227                n.show(), n.find("span strong").html(o);
8228                var a = t(".geolocation-geocoder-address").val();
8229                t(".ng-find-a-club-search .filter-container .sortby-form span strong").html(a), t(".view-detect").hide()
8230            }
8231        })
8232    }(jQuery),
8233    function(t) {
8234        "function" == typeof define && define.amd ? define(t) : "object" == typeof exports ? module.exports = t() : t()
8235    }(function() {
8236        var t = "undefined" != typeof window ? window : this,
8237            e = t.Glider = function(e, i) {
8238                var s = this;
8239                if (e._glider) return e._glider;
8240                if (s.ele = e, s.ele.classList.add("glider"), (s.ele._glider = s).opt = Object.assign({}, {
8241                        slidesToScroll: 1,
8242                        slidesToShow: 1,
8243                        resizeLock: !0,
8244                        duration: .5,
8245                        easing: function(t, e, i, s, n) {
8246                            return s * (e /= n) * e + i
8247                        }
8248                    }, i), s.animate_id = s.page = s.slide = 0, s.arrows = {}, s._opt = s.opt, s.opt.skipTrack) s.track = s.ele.children[0];
8249                else
8250                    for (s.track = document.createElement("div"), s.ele.appendChild(s.track); 1 !== s.ele.children.length;) s.track.appendChild(s.ele.children[0]);
8251                s.track.classList.add("glider-track"), s.init(), s.resize = s.init.bind(s, !0), s.event(s.ele, "add", {
8252                    scroll: s.updateControls.bind(s)
8253                }), s.event(t, "add", {
8254                    resize: s.resize
8255                })
8256            },
8257            i = e.prototype;
8258        return i.init = function(t, e) {
8259            var i = this,
8260                s = 0,
8261                n = 0;
8262            i.slides = i.track.children, [].forEach.call(i.slides, function(t) {
8263                t.classList.add("glider-slide")
8264            }), i.containerWidth = i.ele.clientWidth;
8265            var o = i.settingsBreakpoint();
8266            if (e = e || o, "auto" === i.opt.slidesToShow || i.opt._autoSlide) {
8267                var a = i.containerWidth / i.opt.itemWidth;
8268                i.opt._autoSlide = i.opt.slidesToShow = i.opt.exactWidth ? a : Math.floor(a)
8269            }
8270            "auto" === i.opt.slidesToScroll && (i.opt.slidesToScroll = Math.floor(i.opt.slidesToShow)), i.itemWidth = i.opt.exactWidth ? i.opt.itemWidth : i.containerWidth / i.opt.slidesToShow, [].forEach.call(i.slides, function(t) {
8271                t.style.height = "auto", t.style.width = i.itemWidth + "px", s += i.itemWidth, n = Math.max(t.offsetHeight, n)
8272            }), i.track.style.width = s + "px", i.trackWidth = s, i.opt.resizeLock && i.scrollTo(i.slide * i.itemWidth, 0), (o || e) && (i.bindArrows(), i.buildDots(), i.bindDrag()), i.updateControls(), i.emit(t ? "refresh" : "loaded")
8273        }, i.bindDrag = function() {
8274            function t() {
8275                e.mouseDown = void 0, e.ele.classList.remove("drag")
8276            }
8277            var e = this;
8278            e.mouse = e.mouse || e.handleMouse.bind(e);
8279            var i = {
8280                mouseup: t,
8281                mouseleave: t,
8282                mousedown: function(t) {
8283                    e.mouseDown = t.clientX, e.ele.classList.add("drag")
8284                },
8285                mousemove: e.mouse
8286            };
8287            e.ele.classList.toggle("draggable", !0 === e.opt.draggable), e.event(e.ele, "remove", i), e.opt.draggable && e.event(e.ele, "add", i)
8288        }, i.buildDots = function() {
8289            var t = this;
8290            if (t.opt.dots) {
8291                if ("string" == typeof t.opt.dots ? t.dots = document.querySelector(t.opt.dots) : t.dots = t.opt.dots, t.dots) {
8292                    t.dots.innerHTML = "", t.dots.className += " glider-dots";
8293                    for (var e = 0; e < Math.ceil(t.slides.length / t.opt.slidesToShow); ++e) {
8294                        var i = document.createElement("button");
8295                        i.dataset.index = e, i.setAttribute("aria-label", "Page " + (e + 1)), i.className = "glider-dot " + (e ? "" : "active"), t.event(i, "add", {
8296                            click: t.scrollItem.bind(t, e, !0)
8297                        }), t.dots.appendChild(i)
8298                    }
8299                }
8300            } else t.dots && (t.dots.innerHTML = "")
8301        }, i.bindArrows = function() {
8302            var t = this;
8303            t.opt.arrows ? ["prev", "next"].forEach(function(e) {
8304                var i = t.opt.arrows[e];
8305                i && ("string" == typeof i && (i = document.querySelector(i)), i._func = i._func || t.scrollItem.bind(t, e), t.event(i, "remove", {
8306                    click: i._func
8307                }), t.event(i, "add", {
8308                    click: i._func
8309                }), t.arrows[e] = i)
8310            }
8310) : Object.keys(t.arrows).forEach(function(e) {
8311                var i = t.arrows[e];
8312                t.event(i, "remove", {
8313                    click: i._func
8314                })
8315            })
8316        }, i.updateControls = function(t) {
8317            var e = this;
8318            t && !e.opt.scrollPropagate && t.stopPropagation();
8319            var i = e.containerWidth >= e.trackWidth;
8320            e.opt.rewind || (e.arrows.prev && e.arrows.prev.classList.toggle("disabled", e.ele.scrollLeft <= 0 || i), e.arrows.next && e.arrows.next.classList.toggle("disabled", e.ele.scrollLeft + e.containerWidth >= Math.floor(e.trackWidth) || i)), e.slide = Math.round(e.ele.scrollLeft / e.itemWidth), e.page = Math.round(e.ele.scrollLeft / e.containerWidth);
8321            var s = e.slide + Math.floor(Math.floor(e.opt.slidesToShow) / 2),
8322                n = Math.floor(e.opt.slidesToShow) % 2 ? 0 : s + 1;
8323            1 === Math.floor(e.opt.slidesToShow) && (n = 0), e.ele.scrollLeft + e.containerWidth >= Math.floor(e.trackWidth) && (e.page = e.dots ? e.dots.children.length - 1 : 0), [].forEach.call(e.slides, function(t, i) {
8324                var o = t.classList,
8325                    a = o.contains("visible"),
8326                    r = e.ele.scrollLeft,
8327                    l = e.ele.scrollLeft + e.containerWidth,
8328                    h = e.itemWidth * i,
8329                    c = h + e.itemWidth;
8330                [].forEach.call(o, function(t) {
8331                    /^left|right/.test(t) && o.remove(t)
8332                }), o.toggle("active", e.slide === i), s === i || n && n === i ? o.add("center") : (o.remove("center"), o.add([i < s ? "left" : "right", Math.abs(i - (i < s ? s : n || s))].join("-")));
8333                var d = Math.ceil(h) >= r && Math.floor(c) <= l;
8334                o.toggle("visible", d), d !== a && e.emit("slide-" + (d ? "visible" : "hidden"), {
8335                    slide: i
8336                })
8337            }), e.dots && [].forEach.call(e.dots.children, function(t, i) {
8338                t.classList.toggle("active", e.page === i)
8339            }), t && e.opt.scrollLock && (clearTimeout(e.scrollLock), e.scrollLock = setTimeout(function() {
8340                clearTimeout(e.scrollLock), .02 < Math.abs(e.ele.scrollLeft / e.itemWidth - e.slide) && (e.mouseDown || e.scrollItem(e.round(e.ele.scrollLeft / e.itemWidth)))
8341            }, e.opt.scrollLockDelay || 250))
8342        }, i.scrollItem = function(t, e, i) {
8343            i && i.preventDefault();
8344            var s = this,
8345                n = t;
8346            if (++s.animate_id, !0 === e) t *= s.containerWidth, t = Math.round(t / s.itemWidth) * s.itemWidth;
8347            else {
8348                if ("string" == typeof t) {
8349                    var o = "prev" === t;
8350                    if (t = s.opt.slidesToScroll % 1 || s.opt.slidesToShow % 1 ? s.round(s.ele.scrollLeft / s.itemWidth) : s.slide, o ? t -= s.opt.slidesToScroll : t += s.opt.slidesToScroll, s.opt.rewind) {
8351                        var a = s.ele.scrollLeft;
8352                        t = o && !a ? s.slides.length : !o && a + s.containerWidth >= Math.floor(s.trackWidth) ? 0 : t
8353                    }
8354                }
8355                t = Math.max(Math.min(t, s.slides.length), 0), s.slide = t, t = s.itemWidth * t
8356            }
8357            return s.scrollTo(t, s.opt.duration * Math.abs(s.ele.scrollLeft - t), function() {
8358                s.updateControls(), s.emit("animated", {
8359                    value: n,
8360                    type: "string" == typeof n ? "arrow" : e ? "dot" : "slide"
8361                })
8362            }), !1
8363        }, i.settingsBreakpoint = function() {
8364            var e = this,
8365                i = e._opt.responsive;
8366            if (i) {
8367                i.sort(function(t, e) {
8368                    return e.breakpoint - t.breakpoint
8369                });
8370                for (var s = 0; s < i.length; ++s) {
8371                    var n = i[s];
8372                    if (t.innerWidth >= n.breakpoint) return e.breakpoint !== n.breakpoint && (e.opt = Object.assign({}, e._opt, n.settings), e.breakpoint = n.breakpoint, !0)
8373                }
8374            }
8375            var o = 0 !== e.breakpoint;
8376            return e.opt = Object.assign({}, e._opt), e.breakpoint = 0, o
8377        }, i.scrollTo = function(e, i, s) {
8378            var n = this,
8379                o = (new Date).getTime(),
8380                a = n.animate_id,
8381                r = function() {
8382                    var l = (new Date).getTime() - o;
8383                    n.ele.scrollLeft = n.ele.scrollLeft + (e - n.ele.scrollLeft) * n.opt.easing(0, l, 0, 1, i), l < i && a === n.animate_id ? t.requestAnimationFrame(r) : (n.ele.scrollLeft = e, s && s.call(n))
8384                };
8385            t.requestAnimationFrame(r)
8386        }, i.removeItem = function(t) {
8387            var e = this;
8388            e.slides.length && (e.track.removeChild(e.slides[t]), e.refresh(!0), e.emit("remove"))
8389        }, i.addItem = function(t) {
8390            this.track.appendChild(t), this.refresh(!0), this.emit
vendor: 1,621 bytes, lines 8390-8422
8390("add")
8391        }, i.handleMouse = function(t) {
8392            var e = this;
8393            e.mouseDown && (e.ele.scrollLeft += (e.mouseDown - t.clientX) * (e.opt.dragVelocity || 3.3), e.mouseDown = t.clientX)
8394        }, i.round = function(t) {
8395            var e = 1 / (this.opt.slidesToScroll % 1 || 1);
8396            return Math.round(t * e) / e
8397        }, i.refresh = function(t) {
8398            this.init(!0, t)
8399        }, i.setOption = function(t, e) {
8400            var i = this;
8401            i.breakpoint && !e ? i._opt.responsive.forEach(function(e) {
8402                e.breakpoint === i.breakpoint && (e.settings = Object.assign({}, e.settings, t))
8403            }) : i._opt = Object.assign({}, i._opt, t), i.breakpoint = 0, i.settingsBreakpoint()
8404        }, i.destroy = function() {
8405            function e(t) {
8406                t.removeAttribute("style"), [].forEach.call(t.classList, function(e) {
8407                    /^glider/.test(e) && t.classList.remove(e)
8408                })
8409            }
8410            var i = this,
8411                s = i.ele.cloneNode(!0);
8412            s.children[0].outerHTML = s.children[0].innerHTML, e(s), [].forEach.call(s.getElementsByTagName("*"), e), i.ele.parentNode.replaceChild(s, i.ele), i.event(t, "remove", {
8413                resize: i.resize
8414            }), i.emit("destroy")
8415        }, i.emit = function(e, i) {
8416            var s = new t.CustomEvent("glider-" + e, {
8417                bubbles: !this.opt.eventPropagate,
8418                detail: i
8419            });
8420            this.ele.dispatchEvent(s)
8421        }, i.event = function(t, e, i) {
8422            var s = t[e + "EventListener"].bind(t);
8423            Object.keys(i).forEach(function(t) {
8424                s(t, i[t])
8425            })
8426        }, e
8427    }),
8428    function(t) {
8429        "use strict";
8430        t(document).on("click", ".detect-location", function() {
8431            var e = t(this);
8432            i({
8433                onAllow: function(t) {
8434                    codeLatLng(t.latitude, t.longitude)
8435                },
8436                onDeny: function() {
8437                    e.closest("form").find(".message").addClass("error").text("Please allow your browser to share your location to use \n this feature. Otherwise, please enter a zip code.")
8438                }
8439            })
8440        });
8441        var e = function(t, e) {
8442                sessionStorage.removeItem("geolocation");
8443                var i = null;
8444                null !== t && null !== e && (i = JSON.stringify({
8445                    lat: t,
8446                    lng: e
8447                })), sessionStorage.setItem("geolocation", i)
8448            },
8449            i = function(i) {
8450                var i = t.extend({}, {
8451                    onAllow: null,
8452                    onDeny: null
8453                }, i || {});
8454                navigator.geolocation || e(null, null), navigator.geolocation.getCurrentPosition(function(t) {
8455                    e(t.coords.latitude, t.coords.longitude), "function" == typeof i.onAllow && i.onAllow(t.coords)
8456                }, function() {
8457                    e(null, null), "function" == typeof i.onDeny && i.onDeny()
8458                })
8459            }
8460    }(jQuery);

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