var mod; function resizeView() { var e = document.documentElement.clientHeight, t = 0 < $(".footer").length ? $(".footer").css("height") : 0, a = 0 < $(".left-menu-content").length ? $(".left-menu-content").css("height") : 0; $(".main-panel-body,.panel-cut").css("min-height", e - 100), $(".caret-wxapp .panel-app").css("min-height", e - 95), parseInt(a) > e - 50 ? $(".skin-black .right-content>.content").css("min-height", parseInt(a) - parseInt(t) - 30 + "px") : $(".skin-black .right-content>.content").css("min-height", e - parseInt(t) - 93 + "px") } !function (L) { "use strict"; function $(s, o) { return o = o || Error, function () { var e, t, a = arguments, n = a[0], i = "[" + (s ? s + ":" : "") + n + "] "; for (i += a[1].replace(/\{\d+\}/g, function (e) { var t = 2 + +e.slice(1, -1); return t < a.length ? Be(a[t]) : e }), i += "\nhttp://errors.angularjs.org/1.5.6/" + (s ? s + "/" : "") + n, t = 2, e = "?"; t < a.length; t++, e = "&") i += e + "p" + (t - 2) + "=" + encodeURIComponent(Be(a[t])); return new o(i) } } var s = /^\/(.+)\/([a-z]*)$/, d = "validity", O = Object.prototype.hasOwnProperty, U = function (e) { return ge(e) ? e.toLowerCase() : e }, u = function (e) { return ge(e) ? e.toUpperCase() : e }; "i" !== "I".toLowerCase() && (U = function (e) { return ge(e) ? e.replace(/[A-Z]/g, function (e) { return String.fromCharCode(32 | e.charCodeAt(0)) }) : e }, u = function (e) { return ge(e) ? e.replace(/[a-z]/g, function (e) { return String.fromCharCode(-33 & e.charCodeAt(0)) }) : e }); var N, ce, o, h, r = [].slice, a = [].splice, e = [].push, B = Object.prototype.toString, l = Object.getPrototypeOf, c = $("ng"), S = L.angular || (L.angular = {}), t = 0; function j(e) { if (null == e || _(e)) return !1; if (fe(e) || ge(e) || ce && e instanceof ce) return !0; var t = "length" in Object(e) && e.length; return w(t) && (0 <= t && (t - 1 in e || e instanceof Array) || "function" == typeof e.item) } function ue(e, t, a) { var n, i; if (e) if (he(e)) for (n in e) "prototype" == n || "length" == n || "name" == n || e.hasOwnProperty && !e.hasOwnProperty(n) || t.call(a, e[n], n, e); else if (fe(e) || j(e)) { var s = "object" != typeof e; for (n = 0, i = e.length; n < i; n++) (s || n in e) && t.call(a, e[n], n, e) } else if (e.forEach && e.forEach !== ue) e.forEach(t, a, e); else if (b(e)) for (n in e) t.call(a, e[n], n, e); else if ("function" == typeof e.hasOwnProperty) for (n in e) e.hasOwnProperty(n) && t.call(a, e[n], n, e); else for (n in e) O.call(e, n) && t.call(a, e[n], n, e); return e } function p(e, t, a) { for (var n = Object.keys(e).sort(), i = 0; i < n.length; i++) t.call(a, e[n[i]], n[i]); return n } function v(a) { return function (e, t) { a(t, e) } } function A() { return ++t } function m(e, t) { t ? e.$$hashKey = t : delete e.$$hashKey } function g(e, t, a) { for (var n = e.$$hashKey, i = 0, s = t.length; i < s; ++i) { var o = t[i]; if (me(o) || he(o)) for (var r = Object.keys(o), l = 0, c = r.length; l < c; l++) { var u = r[l], d = o[u]; a && me(d) ? k(d) ? e[u] = new Date(d.valueOf()) : x(d) ? e[u] = new RegExp(d) : d.nodeName ? e[u] = d.cloneNode(!0) : T(d) ? e[u] = d.clone() : (me(e[u]) || (e[u] = fe(d) ? [] : {}), g(e[u], [d], !0)) : e[u] = d } } return m(e, n), e } function de(e) { return g(e, r.call(arguments, 1), !1) } function n(e) { return g(e, r.call(arguments, 1), !0) } function f(e) { return parseInt(e, 10) } function R(e, t) { return de(Object.create(e), t) } function q() { } function Y(e) { return e } function I(e) { return function () { return e } } function y(e) { return he(e.toString) && e.toString !== B } function pe(e) { return void 0 === e } function V(e) { return void 0 !== e } function me(e) { return null !== e && "object" == typeof e } function b(e) { return null !== e && "object" == typeof e && !l(e) } function ge(e) { return "string" == typeof e } function w(e) { return "number" == typeof e } function k(e) { return "[object Date]" === B.call(e) } N = L.document.documentMode, q.$inject = [], Y.$inject = []; var fe = Array.isArray; function he(e) { return "function" == typeof e } function x(e) { return "[object RegExp]" === B.call(e) } function _(e) { return e && e.window === e } function ve(e) { return e && e.$evalAsync && e.$watch } function ye(e) { return "boolean" == typeof e } function C(e) { return e && he(e.then) } var M = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/; var be = function (e) { return ge(e) ? e.trim() : e }, D = function (e) { return e.replace(/([-()\[\]{}+?*.$\^|,:#").append(e).html(); try { return e[0].nodeType === Le ? U(t) : t.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function (e, t) { return "<" + U(t) }) } catch (e) { return U(t) } } function Z(e) { try { return decodeURIComponent(e) } catch (e) { } } function X(e) { var i = {}; return ue((e || "").split("&"), function (e) { var t, a, n; e && (a = e = e.replace(/\+/g, "%20"), -1 !== (t = e.indexOf("=")) && (a = e.substring(0, t), n = e.substring(t + 1)), V(a = Z(a)) && (n = !V(n) || Z(n), O.call(i, a) ? fe(i[a]) ? i[a].push(n) : i[a] = [i[a], n] : i[a] = n)) }), i } function ee(e) { var a = []; return ue(e, function (e, t) { fe(e) ? ue(e, function (e) { a.push(ae(t, !0) + (!0 === e ? "" : "=" + ae(e, !0))) }) : a.push(ae(t, !0) + (!0 === e ? "" : "=" + ae(e, !0))) }), a.length ? a.join("&") : "" } function te(e) { return ae(e, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+") } function ae(e, t) { return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%3B/gi, ";").replace(/%20/g, t ? "%20" : "+") } var ne = ["ng-", "data-ng-", "ng:", "x-ng-"]; function ie(n, e) { var i, s, t = {}; ue(ne, function (e) { var t = e + "app"; !i && n.hasAttribute && n.hasAttribute(t) && (s = (i = n).getAttribute(t)) }), ue(ne, function (e) { var t, a = e + "app"; !i && (t = n.querySelector("[" + a.replace(":", "\\:") + "]")) && (s = (i = t).getAttribute(a)) }), i && (t.strictDi = null !== function (e, t) { var a, n, i = ne.length; for (n = 0; n < i; ++n) if (a = ne[n] + t, ge(a = e.getAttribute(a))) return a; return null }(i, "strict-di"), e(i, s ? [s] : [], t)) } function se(a, n, i) { me(i) || (i = {}); i = de({strictDi: !1}, i); function t() { if ((a = ce(a)).injector()) { var e = a[0] === L.document ? "document" : Se(a); throw c("btstrpd", "App already bootstrapped with this element '{0}'", e.replace(//, ">")) } (n = n || []).unshift(["$provide", function (e) { e.value("$rootElement", a) }]), i.debugInfoEnabled && n.push(["$compileProvider", function (e) { e.debugInfoEnabled(!0) }]), n.unshift("ng"); var t = qt(n, i.strictDi); return t.invoke(["$rootScope", "$rootElement", "$compile", "$injector", function (e, t, a, n) { e.$apply(function () { t.data("$injector", n), a(t)(e) }) }]), t } var e = /^NG_ENABLE_DEBUG_INFO!/, s = /^NG_DEFER_BOOTSTRAP!/; if (L && e.test(L.name) && (i.debugInfoEnabled = !0, L.name = L.name.replace(e, "")), L && !s.test(L.name)) return t(); L.name = L.name.replace(s, ""), S.resumeBootstrap = function (e) { return ue(e, function (e) { n.push(e) }), t() }, he(S.resumeDeferredBootstrap) && S.resumeDeferredBootstrap() } function oe() { L.name = "NG_ENABLE_DEBUG_INFO!" + L.name, L.location.reload() } function re(e) { var t = S.element(e).injector(); if (!t) throw c("test", "no injector found for element argument to getTestability"); return t.get("$$testability") } var le = /[A-Z]/g; function Ie(e, a) { return a = a || "_", e.replace(le, function (e, t) { return (t ? a : "") + e.toLowerCase() }) } var Ce = !1; function Ae(e, t, a) { if (!e) throw c("areq", "Argument '{0}' is {1}", t || "?", a || "required"); return e } function Me(e, t, a) { return a && fe(e) && (e = e[e.length - 1]), Ae(he(e), t, "not a function, got " + (e && "object" == typeof e ? e.constructor.name || "Object" : typeof e)), e } function De(e, t) { if ("hasOwnProperty" === e) throw c("badname", "hasOwnProperty is not a valid {0} name", t) } function Te(e, t, a) { if (!t) return e; for (var n, i = t.split("."), s = e, o = i.length, r = 0; r < o; r++) n = i[r], e && (e = (s = e)[n]); return !a && he(e) ? _e(s, e) : e } function Pe(e) { for (var t, a = e[0], n = e[e.length - 1], i = 1; a !== n && (a = a.nextSibling); i++) !t && e[i] === a || (t || (t = ce(r.call(e, 0, i))), t.push(a)); return t || e } function Ee() { return Object.create(null) } var je = 1, Le = 3, Oe = 8, Ue = 9, Ne = 11; function Be(e) { return "function" == typeof e ? e.toString().replace(/ \{[\s\S]*$/, "") : pe(e) ? "undefined" : "string" != typeof e ? function (e) { var a = []; return JSON.stringify(e, function (e, t) { if (me(t = i(e, t))) { if (0 <= a.indexOf(t)) return "..."; a.push(t) } return t }) }(e) : e } var Re = {full: "1.5.6", major: 1, minor: 5, dot: 6, codeName: "arrow-stringification"}; ot.expando = "ng339"; var qe = ot.cache = {}, Ye = 1, Ve = function (e, t, a) { e.addEventListener(t, a, !1) }, Fe = function (e, t, a) { e.removeEventListener(t, a, !1) }; ot._data = function (e) { return this.cache[e[this.expando]] || {} }; var ze = /([\:\-\_]+(.))/g, He = /^moz([A-Z])/, We = {mouseleave: "mouseout", mouseenter: "mouseover"}, Ge = $("jqLite"); function Qe(e) { return e.replace(ze, function (e, t, a, n) { return n ? a.toUpperCase() : a }).replace(He, "Moz$1") } var Ke = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, Je = /<|&#?\w+;/, Ze = /<([\w:-]+)/, Xe = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, et = { option: [1, '"], thead: [1, "", "
"], col: [2, "", "
"], tr: [2, "", "
"], td: [3, "", "
"], _default: [0, "", ""] }; function tt(e) { return !Je.test(e) } function at(e) { var t = e.nodeType; return t === je || !t || t === Ue } function nt(e, t) { var a, n, i, s, o = t.createDocumentFragment(), r = []; if (tt(e)) r.push(t.createTextNode(e)); else { for (a = a || o.appendChild(t.createElement("div")), n = (Ze.exec(e) || ["", ""])[1].toLowerCase(), i = et[n] || et._default, a.innerHTML = i[1] + e.replace(Xe, "<$1>") + i[2], s = i[0]; s--;) a = a.lastChild; r = H(r, a.childNodes), (a = o.firstChild).textContent = "" } return o.textContent = "", o.innerHTML = "", ue(r, function (e) { o.appendChild(e) }), o } function it(e, t) { var a = e.parentNode; a && a.replaceChild(t, e), t.appendChild(e) } et.optgroup = et.option, et.tbody = et.tfoot = et.colgroup = et.caption = et.thead, et.th = et.td; var st = L.Node.prototype.contains || function (e) { return !!(16 & this.compareDocumentPosition(e)) }; function ot(e) { if (e instanceof ot) return e; var t; if (ge(e) && (e = be(e), t = !0), !(this instanceof ot)) { if (t && "<" != e.charAt(0)) throw Ge("nosel", "Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element"); return new ot(e) } ht(this, t ? function (e, t) { var a; return t = t || L.document, (a = Ke.exec(e)) ? [t.createElement(a[1])] : (a = nt(e, t)) ? a.childNodes : [] }(e) : e) } function rt(e) { return e.cloneNode(!0) } function lt(e, t) { if (t || ut(e), e.querySelectorAll) for (var a = e.querySelectorAll("*"), n = 0, i = a.length; n < i; n++) ut(a[n]) } function ct(a, e, n, t) { if (V(t)) throw Ge("offargs", "jqLite#off() does not support the `selector` argument"); var i = dt(a), s = i && i.events, o = i && i.handle; if (o) if (e) { var r = function (e) { var t = s[e]; V(n) && $e(t || [], n), V(n) && t && 0 < t.length || (Fe(a, e, o), delete s[e]) }; ue(e.split(" "), function (e) { r(e), We[e] && r(We[e]) }) } else for (e in s) "$destroy" !== e && Fe(a, e, o), delete s[e] } function ut(e, t) { var a = e.ng339, n = a && qe[a]; if (n) { if (t) return void delete n.data[t]; n.handle && (n.events.$destroy && n.handle({}, "$destroy"), ct(e)), delete qe[a], e.ng339 = void 0 } } function dt(e, t) { var a = e.ng339, n = a && qe[a]; return t && !n && (e.ng339 = a = ++Ye, n = qe[a] = {events: {}, data: {}, handle: void 0}), n } function pt(e, t, a) { if (at(e)) { var n = V(a), i = !n && t && !me(t), s = !t, o = dt(e, !i), r = o && o.data; if (n) r[t] = a; else { if (s) return r; if (i) return r && r[t]; de(r, t) } } } function mt(e, t) { return !!e.getAttribute && -1 < (" " + (e.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").indexOf(" " + t + " ") } function gt(t, e) { e && t.setAttribute && ue(e.split(" "), function (e) { t.setAttribute("class", be((" " + (t.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").replace(" " + be(e) + " ", " "))) }) } function ft(e, t) { if (t && e.setAttribute) { var a = (" " + (e.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " "); ue(t.split(" "), function (e) { e = be(e), -1 === a.indexOf(" " + e + " ") && (a += e + " ") }), e.setAttribute("class", be(a)) } } function ht(e, t) { if (t) if (t.nodeType) e[e.length++] = t; else { var a = t.length; if ("number" == typeof a && t.window !== t) { if (a) for (var n = 0; n < a; n++) e[e.length++] = t[n] } else e[e.length++] = t } } function vt(e, t) { return yt(e, "$" + (t || "ngController") + "Controller") } function yt(e, t, a) { e.nodeType == Ue && (e = e.documentElement); for (var n = fe(t) ? t : [t]; e;) { for (var i = 0, s = n.length; i < s; i++) if (V(a = ce.data(e, n[i]))) return a; e = e.parentNode || e.nodeType === Ne && e.host } } function bt(e) { for (lt(e, !0); e.firstChild;) e.removeChild(e.firstChild) } function wt(e, t) { t || lt(e); var a = e.parentNode; a && a.removeChild(e) } var $t = ot.prototype = { ready: function (e) { var t = !1; function a() { t || (t = !0, e()) } "complete" === L.document.readyState ? L.setTimeout(a) : (this.on("DOMContentLoaded", a), ot(L).on("load", a)) }, toString: function () { var t = []; return ue(this, function (e) { t.push("" + e) }), "[" + t.join(", ") + "]" }, eq: function (e) { return ce(0 <= e ? this[e] : this[this.length + e]) }, length: 0, push: e, sort: [].sort, splice: [].splice }, kt = {}; ue("multiple,selected,checked,disabled,readOnly,required,open".split(","), function (e) { kt[U(e)] = e }); var xt = {}; ue("input,select,option,textarea,button,form,details".split(","), function (e) { xt[e] = !0 }); var _t = {ngMinlength: "minlength", ngMaxlength: "maxlength", ngMin: "min", ngMax: "max", ngPattern: "pattern"}; function St(e, t) { var a = kt[t.toLowerCase()]; return a && xt[we(e)] && a } function It(e, t) { if (pe(t)) { var a = e.nodeType; return a === je || a === Le ? e.textContent : "" } e.textContent = t } function Ct(e, t, a) { a.call(e, t) } function At(e, t, a) { var n = t.relatedTarget; n && (n === e || st.call(e, n)) || a.call(e, t) } function Mt() { this.$get = function () { return de(ot, { hasClass: function (e, t) { return e.attr && (e = e[0]), mt(e, t) }, addClass: function (e, t) { return e.attr && (e = e[0]), ft(e, t) }, removeClass: function (e, t) { return e.attr && (e = e[0]), gt(e, t) } }) } } function Dt(e, t) { var a = e && e.$$hashKey; if (a) return "function" == typeof a && (a = e.$$hashKey()), a; var n = typeof e; return a = "function" == n || "object" == n && null !== e ? e.$$hashKey = n + ":" + (t || A)() : n + ":" + e } function Tt(e, t) { if (t) { var a = 0; this.nextUid = function () { return ++a } } ue(e, this.put, this) } ue({ data: pt, removeData: ut, hasData: function (e) { for (var t in qe[e.ng339]) return !0; return !1 }, cleanData: function (e) { for (var t = 0, a = e.length; t < a; t++) ut(e[t]) } }, function (e, t) { ot[t] = e }), ue({ data: pt, inheritedData: yt, scope: function (e) { return ce.data(e, "$scope") || yt(e.parentNode || e, ["$isolateScope", "$scope"]) }, isolateScope: function (e) { return ce.data(e, "$isolateScope") || ce.data(e, "$isolateScopeNoTemplate") }, controller: vt, injector: function (e) { return yt(e, "$injector") }, removeAttr: function (e, t) { e.removeAttribute(t) }, hasClass: mt, css: function (e, t, a) { if (t = Qe(t), !V(a)) return e.style[t]; e.style[t] = a }, attr: function (e, t, a) { var n = e.nodeType; if (n !== Le && 2 !== n && n !== Oe) { var i = U(t); if (kt[i]) { if (!V(a)) return e[t] || (e.attributes.getNamedItem(t) || q).specified ? i : void 0; a ? (e[t] = !0, e.setAttribute(t, i)) : (e[t] = !1, e.removeAttribute(i)) } else if (V(a)) e.setAttribute(t, a); else if (e.getAttribute) { var s = e.getAttribute(t, 2); return null === s ? void 0 : s } } }, prop: function (e, t, a) { if (!V(a)) return e[t]; e[t] = a }, text: (It.$dv = "", It), val: function (e, t) { if (pe(t)) { if (e.multiple && "select" === we(e)) { var a = []; return ue(e.options, function (e) { e.selected && a.push(e.value || e.text) }), 0 === a.length ? null : a } return e.value } e.value = t }, html: function (e, t) { if (pe(t)) return e.innerHTML; lt(e, !0), e.innerHTML = t }, empty: bt }, function (c, e) { ot.prototype[e] = function (e, t) { var a, n, i = this.length; if (c !== bt && pe(2 == c.length && c !== mt && c !== vt ? e : t)) { if (me(e)) { for (a = 0; a < i; a++) if (c === pt) c(this[a], e); else for (n in e) c(this[a], n, e[n]); return this } for (var s = c.$dv, o = pe(s) ? Math.min(i, 1) : i, r = 0; r < o; r++) { var l = c(this[r], e, t); s = s ? s + l : l } return s } for (a = 0; a < i; a++) c(this[a], e, t); return this } }), ue({ removeData: ut, on: function (i, e, s, t) { if (V(t)) throw Ge("onargs", "jqLite#on() does not support the `selector` or `eventData` parameters"); if (at(i)) { var a = dt(i, !0), o = a.events, r = a.handle; r || (r = a.handle = function (r, l) { function e(e, t) { e.isDefaultPrevented = function () { return e.defaultPrevented }; var a = l[t || e.type], n = a ? a.length : 0; if (n) { if (pe(e.immediatePropagationStopped)) { var i = e.stopImmediatePropagation; e.stopImmediatePropagation = function () { e.immediatePropagationStopped = !0, e.stopPropagation && e.stopPropagation(), i && i.call(e) } } e.isImmediatePropagationStopped = function () { return !0 === e.immediatePropagationStopped }; var s = a.specialHandlerWrapper || Ct; 1 < n && (a = E(a)); for (var o = 0; o < n; o++) e.isImmediatePropagationStopped() || s(r, e, a[o]) } } return e.elem = r, e }(i, o)); for (var n = 0 <= e.indexOf(" ") ? e.split(" ") : [e], l = n.length, c = function (e, t, a) { var n = o[e]; n || ((n = o[e] = []).specialHandlerWrapper = t, "$destroy" === e || a || Ve(i, e, r)), n.push(s) }; l--;) e = n[l], We[e] ? (c(We[e], At), c(e, void 0, !0)) : c(e) } }, off: ct, one: function (t, a, n) { (t = ce(t)).on(a, function e() { t.off(a, n), t.off(a, e) }), t.on(a, n) }, replaceWith: function (t, e) { var a, n = t.parentNode; lt(t), ue(new ot(e), function (e) { a ? n.insertBefore(e, a.nextSibling) : n.replaceChild(e, t), a = e }) }, children: function (e) { var t = []; return ue(e.childNodes, function (e) { e.nodeType === je && t.push(e) }), t }, contents: function (e) { return e.contentDocument || e.childNodes || [] }, append: function (e, t) { var a = e.nodeType; if (a === je || a === Ne) for (var n = 0, i = (t = new ot(t)).length; n < i; n++) { var s = t[n]; e.appendChild(s) } }, prepend: function (t, e) { if (t.nodeType === je) { var a = t.firstChild; ue(new ot(e), function (e) { t.insertBefore(e, a) }) } }, wrap: function (e, t) { it(e, ce(t).eq(0).clone()[0]) }, remove: wt, detach: function (e) { wt(e, !0) }, after: function (e, t) { for (var a = e, n = e.parentNode, i = 0, s = (t = new ot(t)).length; i < s; i++) { var o = t[i]; n.insertBefore(o, a.nextSibling), a = o } }, addClass: ft, removeClass: gt, toggleClass: function (a, e, n) { e && ue(e.split(" "), function (e) { var t = n; pe(t) && (t = !mt(a, e)), (t ? ft : gt)(a, e) }) }, parent: function (e) { var t = e.parentNode; return t && t.nodeType !== Ne ? t : null }, next: function (e) { return e.nextElementSibling }, find: function (e, t) { return e.getElementsByTagName ? e.getElementsByTagName(t) : [] }, clone: rt, triggerHandler: function (t, e, a) { var n, i, s, o = e.type || e, r = dt(t), l = r && r.events, c = l && l[o]; c && (n = { preventDefault: function () { this.defaultPrevented = !0 }, isDefaultPrevented: function () { return !0 === this.defaultPrevented }, stopImmediatePropagation: function () { this.immediatePropagationStopped = !0 }, isImmediatePropagationStopped: function () { return !0 === this.immediatePropagationStopped }, stopPropagation: q, type: o, target: t }, e.type && (n = de(n, e)), i = E(c), s = a ? [n].concat(a) : [n], ue(i, function (e) { n.isImmediatePropagationStopped() || e.apply(t, s) })) } }, function (o, e) { ot.prototype[e] = function (e, t, a) { for (var n, i = 0, s = this.length; i < s; i++) pe(n) ? V(n = o(this[i], e, t, a)) && (n = ce(n)) : ht(n, o(this[i], e, t, a)); return V(n) ? n : this }, ot.prototype.bind = ot.prototype.on, ot.prototype.unbind = ot.prototype.off }), Tt.prototype = { put: function (e, t) { this[Dt(e, this.nextUid)] = t }, get: function (e) { return this[Dt(e, this.nextUid)] }, remove: function (e) { var t = this[e = Dt(e, this.nextUid)]; return delete this[e], t } }; var Pt = [function () { this.$get = [function () { return Tt }] }], Et = /^([^\(]+?)=>/, jt = /^[^\(]*\(\s*([^\)]*)\)/m, Lt = /,/, Ot = /^\s*(_?)(\S+?)\1\s*$/, Ut = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm, Nt = $("$injector"); function Bt(e) { return Function.prototype.toString.call(e) + " " } function Rt(e) { var t = Bt(e).replace(Ut, ""); return t.match(Et) || t.match(jt) } function qt(e, c) { c = !0 === c; var i = {}, o = "Provider", r = [], s = new Tt([], !0), u = { $provide: { provider: p(m), factory: p(g), service: p(function (e, t) { return g(e, ["$injector", function (e) { return e.instantiate(t) }]) }), value: p(function (e, t) { return g(e, I(t), !1) }), constant: p(function (e, t) { De(e, "constant"), u[e] = t, a[e] = t }), decorator: function (e, t) { var a = l.get(e + o), n = a.$get; a.$get = function () { var e = d.invoke(n, a); return d.invoke(t, null, {$delegate: e}) } } } }, l = u.$injector = f(u, function (e, t) { throw S.isString(t) && r.push(t), Nt("unpr", "Unknown provider: {0}", r.join(" <- ")) }), a = {}, t = f(a, function (e, t) { var a = l.get(e + o, t); return d.invoke(a.$get, a, void 0, e) }), d = t; u["$injector" + o] = {$get: I(t)}; var n = function a(e) { Ae(pe(e) || fe(e), "modulesToLoad", "not an array"); var n, i = []; ue(e, function (t) { if (!s.get(t)) { s.put(t, !0); try { ge(t) ? (n = h(t), i = i.concat(a(n.requires)).concat(n._runBlocks), e(n._invokeQueue), e(n._configBlocks)) : he(t) ? i.push(l.invoke(t)) : fe(t) ? i.push(l.invoke(t)) : Me(t, "module") } catch (e) { throw fe(t) && (t = t[t.length - 1]), e.message && e.stack && -1 == e.stack.indexOf(e.message) && (e = e.message + "\n" + e.stack), Nt("modulerr", "Failed to instantiate module {0} due to:\n{1}", t, e.stack || e.message || e) } } function e(e) { var t, a; for (t = 0, a = e.length; t < a; t++) { var n = e[t], i = l.get(n[0]); i[n[1]].apply(i, n[2]) } } }); return i }(e); return (d = t.get("$injector")).strictDi = c, ue(n, function (e) { e && d.invoke(e) }), d; function p(a) { return function (e, t) { if (!me(e)) return a(e, t); ue(e, v(a)) } } function m(e, t) { if (De(e, "service"), (he(t) || fe(t)) && (t = l.instantiate(t)), !t.$get) throw Nt("pget", "Provider '{0}' must define $get factory method.", e); return u[e + o] = t } function g(e, t, a) { return m(e, { $get: !1 !== a ? function (t, a) { return function () { var e = d.invoke(a, this); if (pe(e)) throw Nt("undef", "Provider '{0}' must return a value from $get factory method.", t); return e } }(e, t) : t }) } function f(a, n) { function l(t, e) { if (a.hasOwnProperty(t)) { if (a[t] === i) throw Nt("cdep", "Circular dependency found: {0}", t + " <- " + r.join(" <- ")); return a[t] } try { return r.unshift(t), a[t] = i, a[t] = n(t, e) } catch (e) { throw a[t] === i && delete a[t], e } finally { r.shift() } } function s(e, t, a) { for (var n = [], i = qt.$$annotate(e, c, a), s = 0, o = i.length; s < o; s++) { var r = i[s]; if ("string" != typeof r) throw Nt("itkn", "Incorrect injection token! Expected service name as string, got {0}", r); n.push(t && t.hasOwnProperty(r) ? t[r] : l(r, a)) } return n } return { invoke: function (e, t, a, n) { "string" == typeof a && (n = a, a = null); var i = s(e, a, n); return fe(e) && (e = e[e.length - 1]), function (e) { return !(N <= 11) && ("function" == typeof e && /^(?:class\s|constructor\()/.test(Bt(e))) }(e) ? (i.unshift(null), new (Function.prototype.bind.apply(e, i))) : e.apply(t, i) }, instantiate: function (e, t, a) { var n = fe(e) ? e[e.length - 1] : e, i = s(e, t, a); return i.unshift(null), new (Function.prototype.bind.apply(n, i)) }, get: l, annotate: qt.$$annotate, has: function (e) { return u.hasOwnProperty(e + o) || a.hasOwnProperty(e) } } } } function Yt() { var e = !0; this.disableAutoScrolling = function () { e = !1 }, this.$get = ["$window", "$location", "$rootScope", function (n, a, i) { var s = n.document; function o(e) { if (e) { e.scrollIntoView(); var t = function () { var e = r.yOffset; if (he(e)) e = e(); else if (T(e)) { var t = e[0]; e = "fixed" !== n.getComputedStyle(t).position ? 0 : t.getBoundingClientRect().bottom } else w(e) || (e = 0); return e }(); if (t) { var a = e.getBoundingClientRect().top; n.scrollBy(0, a - t) } } else n.scrollTo(0, 0) } function r(e) { var t; (e = ge(e) ? e : a.hash()) ? (t = s.getElementById(e)) ? o(t) : (t = function (e) { var t = null; return Array.prototype.some.call(e, function (e) { if ("a" === we(e)) return t = e, !0 }), t }(s.getElementsByName(e))) ? o(t) : "top" === e && o(null) : o(null) } return e && i.$watch(function () { return a.hash() }, function (e, t) { e === t && "" === e || function (e, t) { "complete" === (t = t || L).document.readyState ? t.setTimeout(e) : ce(t).on("load", e) }(function () { i.$evalAsync(r) }) }), r }] } qt.$$annotate = function (e, t, a) { var n, i; if ("function" == typeof e) { if (!(n = e.$inject)) { if (n = [], e.length) { if (t) throw ge(a) && a || (a = e.name || function (e) { var t = Rt(e); return t ? "function(" + (t[1] || "").replace(/[\s\r\n]+/, " ") + ")" : "fn" }(e)), Nt("strictdi", "{0} is not using explicit annotation and cannot be invoked in strict mode", a); ue(Rt(e)[1].split(Lt), function (e) { e.replace(Ot, function (e, t, a) { n.push(a) }) }) } e.$inject = n } } else fe(e) ? (Me(e[i = e.length - 1], "fn"), n = e.slice(0, i)) : Me(e, "fn", !0); return n }; var Vt = $("$animate"), Ft = 1, zt = "ng-animate"; function Ht(e, t) { return e || t ? e ? t ? (fe(e) && (e = e.join(" ")), fe(t) && (t = t.join(" ")), e + " " + t) : e : t : "" } function Wt(e) { return me(e) ? e : {} } function Gt() { this.$get = q } function Qt() { var c = new Tt, u = []; this.$get = ["$$AnimateRunner", "$rootScope", function (s, o) { return { enabled: q, on: q, off: q, pin: q, push: function (e, t, a, n) { n && n(), (a = a || {}).from && e.css(a.from), a.to && e.css(a.to), (a.addClass || a.removeClass) && function (e, t, a) { var n = c.get(e) || {}, i = r(n, t, !0), s = r(n, a, !1); (i || s) && (c.put(e, n), u.push(e), 1 === u.length && o.$$postDigest(l)) }(e, a.addClass, a.removeClass); var i = new s; return i.complete(), i } }; function r(t, e, a) { var n = !1; return e && ue(e = ge(e) ? e.split(" ") : fe(e) ? e : [], function (e) { e && (n = !0, t[e] = a) }), n } function l() { ue(u, function (e) { var t = c.get(e); if (t) { var a = function (e) { ge(e) && (e = e.split(" ")); var t = Ee(); return ue(e, function (e) { e.length && (t[e] = !0) }), t }(e.attr("class")), n = "", i = ""; ue(t, function (e, t) { e !== !!a[t] && (e ? n += (n.length ? " " : "") + t : i += (i.length ? " " : "") + t) }), ue(e, function (e) { n && ft(e, n), i && gt(e, i) }), c.remove(e) } }), u.length = 0 } }] } function Kt() { this.$get = ["$$rAF", function (t) { var a = []; function n(e) { a.push(e), 1 < a.length || t(function () { for (var e = 0; e < a.length; e++) a[e](); a = [] }) } return function () { var t = !1; return n(function () { t = !0 }), function (e) { t ? e() : n(e) } } }] } function Jt() { this.$get = ["$q", "$sniffer", "$$animateAsyncRun", "$document", "$timeout", function (t, e, n, i, s) { function a(e) { this.setHost(e); var a = n(); this._doneCallbacks = [], this._tick = function (e) { var t = i[0]; t && t.hidden ? function (e) { s(e, 0, !1) }(e) : a(e) }, this._state = 0 } return a.chain = function (e, a) { var n = 0; !function t() { if (n === e.length) return void a(!0); e[n](function (e) { !1 !== e ? (n++, t()) : a(!1) }) }() }, a.all = function (t, a) { var n = 0, i = !0; function s(e) { i = i && e, ++n === t.length && a(i) } ue(t, function (e) { e.done(s) }) }, a.prototype = { setHost: function (e) { this.host = e || {} }, done: function (e) { 2 === this._state ? e() : this._doneCallbacks.push(e) }, progress: q, getPromise: function () { if (!this.promise) { var e = this; this.promise = t(function (t, a) { e.done(function (e) { !1 === e ? a() : t() }) }) } return this.promise }, then: function (e, t) { return this.getPromise().then(e, t) }, catch: function (e) { return this.getPromise().catch(e) }, finally: function (e) { return this.getPromise().finally(e) }, pause: function () { this.host.pause && this.host.pause() }, resume: function () { this.host.resume && this.host.resume() }, end: function () { this.host.end && this.host.end(), this._resolve(!0) }, cancel: function () { this.host.cancel && this.host.cancel(), this._resolve(!1) }, complete: function (e) { var t = this; 0 === t._state && (t._state = 1, t._tick(function () { t._resolve(e) })) }, _resolve: function (t) { 2 !== this._state && (ue(this._doneCallbacks, function (e) { e(t) }), this._doneCallbacks.length = 0, this._state = 2) } }, a }] } function Zt() { this.$get = ["$$rAF", "$q", "$$AnimateRunner", function (o, e, r) { return function (e, t) { var a = t || {}; a.$$prepared || (a = P(a)), a.cleanupStyles && (a.from = a.to = null), a.from && (e.css(a.from), a.from = null); var n, i = new r; return {start: s, end: s}; function s() { return o(function () { !function () { a.addClass && (e.addClass(a.addClass), a.addClass = null); a.removeClass && (e.removeClass(a.removeClass), a.removeClass = null); a.to && (e.css(a.to), a.to = null) }(), n || i.complete(), n = !0 }), i } } }] } var Xt = ["$provide", function (n) { var i = this; this.$$registeredAnimations = Object.create(null), this.register = function (e, t) { if (e && "." !== e.charAt(0)) throw Vt("notcsel", "Expecting class selector starting with '.' got '{0}'.", e); var a = e + "-animation"; i.$$registeredAnimations[e.substr(1)] = a, n.factory(a, t) }, this.classNameFilter = function (e) { if (1 === arguments.length && (this.$$classNameFilter = e instanceof RegExp ? e : null, this.$$classNameFilter && new RegExp("(\\s+|\\/)" + zt + "(\\s+|\\/)").test(this.$$classNameFilter.toString()))) throw Vt("nongcls", '$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.', zt); return this.$$classNameFilter }, this.$get = ["$$animateQueue", function (s) { function i(e, t, a) { if (a) { var n = function (e) { for (var t = 0; t < e.length; t++) { var a = e[t]; if (a.nodeType === Ft) return a } }(a); !n || n.parentNode || n.previousElementSibling || (a = null) } a ? a.after(e) : t.prepend(e) } return { on: s.on, off: s.off, pin: s.pin, enabled: s.enabled, cancel: function (e) { e.end && e.end() }, enter: function (e, t, a, n) { return t = t && ce(t), a = a && ce(a), i(e, t = t || a.parent(), a), s.push(e, "enter", Wt(n)) }, move: function (e, t, a, n) { return t = t && ce(t), a = a && ce(a), i(e, t = t || a.parent(), a), s.push(e, "move", Wt(n)) }, leave: function (e, t) { return s.push(e, "leave", Wt(t), function () { e.remove() }) }, addClass: function (e, t, a) { return (a = Wt(a)).addClass = Ht(a.addclass, t), s.push(e, "addClass", a) }, removeClass: function (e, t, a) { return (a = Wt(a)).removeClass = Ht(a.removeClass, t), s.push(e, "removeClass", a) }, setClass: function (e, t, a, n) { return (n = Wt(n)).addClass = Ht(n.addClass, t), n.removeClass = Ht(n.removeClass, a), s.push(e, "setClass", n) }, animate: function (e, t, a, n, i) { return (i = Wt(i)).from = i.from ? de(i.from, t) : t, i.to = i.to ? de(i.to, a) : a, n = n || "ng-inline-animate", i.tempClasses = Ht(i.tempClasses, n), s.push(e, "animate", i) } } }] }]; function ea(s, e, t, o) { var r = this, l = s.location, c = s.history, n = s.setTimeout, a = s.clearTimeout, i = {}; r.isMock = !1; var u = 0, d = []; function p(e) { try { e.apply(null, xe(arguments, 1)) } finally { if (0 === --u) for (; d.length;) try { d.pop()() } catch (e) { t.error(e) } } } r.$$completeOutstandingRequest = p, r.$$incOutstandingRequestCount = function () { u++ }, r.notifyWhenNoOutstandingRequests = function (e) { 0 === u ? e() : d.push(e) }; var m, g, f = l.href, h = e.find("base"), v = null, y = o.history ? function () { try { return c.state } catch (e) { } } : q; x(), g = m, r.url = function (e, t, a) { if (pe(a) && (a = null), l !== s.location && (l = s.location), c !== s.history && (c = s.history), e) { var n = g === a; if (f === e && (!o.history || n)) return r; var i = f && Ga(f) === Ga(e); return f = e, g = a, !o.history || i && n ? (i || (v = e), t ? l.replace(e) : i ? l.hash = function (e) { var t = e.indexOf("#"); return -1 === t ? "" : e.substr(t) }(e) : l.href = e, l.href !== e && (v = e)) : (c[t ? "replaceState" : "pushState"](a, "", e), x(), g = m), v && (v = e), r } return v || l.href.replace(/%27/g, "'") }, r.state = function () { return m }; var b = [], w = !1; function $() { v = null, x(), _() } var k = null; function x() { ke(m = pe(m = y()) ? null : m, k) && (m = k), k = m } function _() { f === r.url() && g === m || (f = r.url(), g = m, ue(b, function (e) { e(r.url(), m) })) } r.onUrlChange = function (e) { return w || (o.history && ce(s).on("popstate", $), ce(s).on("hashchange", $), w = !0), b.push(e), e }, r.$$applicationDestroyed = function () { ce(s).off("hashchange popstate", $) }, r.$$checkUrlChange = _, r.baseHref = function () { var e = h.attr("href"); return e ? e.replace(/^(https?\:)?\/\/[^\/]*/, "") : "" }, r.defer = function (e, t) { var a; return u++, a = n(function () { delete i[a], p(e) }, t || 0), i[a] = !0, a }, r.defer.cancel = function (e) { return !!i[e] && (delete i[e], a(e), p(q), !0) } } function ta() { this.$get = ["$window", "$log", "$sniffer", "$document", function (e, t, a, n) { return new ea(e, n, t, a) }] } function aa() { this.$get = function () { var d = {}; function e(e, t) { if (e in d) throw $("$cacheFactory")("iid", "CacheId '{0}' is already taken!", e); var a = 0, n = de({}, t, {id: e}), i = Ee(), s = t && t.capacity || Number.MAX_VALUE, o = Ee(), r = null, l = null; return d[e] = { put: function (e, t) { if (!pe(t)) { if (s < Number.MAX_VALUE) c(o[e] || (o[e] = {key: e})); return e in i || a++, i[e] = t, s < a && this.remove(l.key), t } }, get: function (e) { if (s < Number.MAX_VALUE) { var t = o[e]; if (!t) return; c(t) } return i[e] }, remove: function (e) { if (s < Number.MAX_VALUE) { var t = o[e]; if (!t) return; t == r && (r = t.p), t == l && (l = t.n), u(t.n, t.p), delete o[e] } e in i && (delete i[e], a--) }, removeAll: function () { i = Ee(), a = 0, o = Ee(), r = l = null }, destroy: function () { o = n = i = null, delete d[e] }, info: function () { return de({}, n, {size: a}) } }; function c(e) { e != r && (l ? l == e && (l = e.n) : l = e, u(e.n, e.p), u(e, r), (r = e).n = null) } function u(e, t) { e != t && (e && (e.p = t), t && (t.n = e)) } } return e.info = function () { var a = {}; return ue(d, function (e, t) { a[t] = e.info() }), a }, e.get = function (e) { return d[e] }, e } } function na() { this.$get = ["$cacheFactory", function (e) { return e("templates") }] } var ia = $("$compile"); var sa = new function () { }; function oa(a, t) { var g = {}, f = "Directive", P = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/, E = /(([\w\-]+)(?:\:([^;]+))?;?)/, u = function (e) { var t, a = {}, n = e.split(","); for (t = 0; t < n.length; t++) a[n[t]] = !0; return a }("ngSrc,ngSrcset,src,srcset"), p = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/, d = /^(on[a-z]+|formaction)$/, r = Ee(); function s(e, n, i) { var s = /^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/, o = Ee(); return ue(e, function (e, t) { if (e in r) o[t] = r[e]; else { var a = e.match(s); if (!a) throw ia("iscp", "Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}", n, t, e, i ? "controller bindings definition" : "isolate scope definition"); o[t] = { mode: a[1][0], collection: "*" === a[2], optional: "?" === a[3], attrName: a[4] || t }, a[4] && (r[e] = o[t]) } }), o } function h(e, t) { var a = {isolateScope: null, bindToController: null}; if (me(e.scope) && (!0 === e.bindToController ? (a.bindToController = s(e.scope, t, !0), a.isolateScope = {}) : a.isolateScope = s(e.scope, t, !1)), me(e.bindToController) && (a.bindToController = s(e.bindToController, t, !0)), me(a.bindToController)) { var n = e.controller, i = e.controllerAs; if (!n) throw ia("noctrl", "Cannot bind to controller without directive '{0}'s controller.", t); if (!ga(n, i)) throw ia("noident", "Cannot bind to controller without identifier for directive '{0}'.", t) } return a } this.directive = function e(o, t) { return De(o, "directive"), ge(o) ? (function (e) { var t = e.charAt(0); if (!t || t !== U(t)) throw ia("baddir", "Directive/Component name '{0}' is invalid. The first character must be a lowercase letter", e); if (e !== e.trim()) throw ia("baddir", "Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces", e) }(o), Ae(t, "directiveFactory"), g.hasOwnProperty(o) || (g[o] = [], a.factory(o + f, ["$injector", "$exceptionHandler", function (n, i) { var s = []; return ue(g[o], function (e, t) { try { var a = n.invoke(e); he(a) ? a = {compile: I(a)} : !a.compile && a.link && (a.compile = I(a.link)), a.priority = a.priority || 0, a.index = t, a.name = a.name || o, a.require = function (e) { var n = e.require || e.controller && e.name; return !fe(n) && me(n) && ue(n, function (e, t) { var a = e.match(p); e.substring(a[0].length) || (n[t] = a[0] + t) }), n }(a), a.restrict = a.restrict || "EA", a.$$moduleName = e.$$moduleName, s.push(a) } catch (e) { i(e) } }), s }])), g[o].push(t)) : ue(o, v(e)), this }, this.component = function (e, i) { var s = i.controller || function () { }; function a(n) { function e(a) { return he(a) || fe(a) ? function (e, t) { return n.invoke(a, this, {$element: e, $attrs: t}) } : a } var t = i.template || i.templateUrl ? i.template : "", a = { controller: s, controllerAs: ga(i.controller) || i.controllerAs || "$ctrl", template: e(t), templateUrl: e(i.templateUrl), transclude: i.transclude, scope: {}, bindToController: i.bindings || {}, restrict: "E", require: i.require }; return ue(i, function (e, t) { "$" === t.charAt(0) && (a[t] = e) }), a } return ue(i, function (e, t) { "$" === t.charAt(0) && (a[t] = e, he(s) && (s[t] = e)) }), a.$inject = ["$injector"], this.directive(e, a) }, this.aHrefSanitizationWhitelist = function (e) { return V(e) ? (t.aHrefSanitizationWhitelist(e), this) : t.aHrefSanitizationWhitelist() }, this.imgSrcSanitizationWhitelist = function (e) { return V(e) ? (t.imgSrcSanitizationWhitelist(e), this) : t.imgSrcSanitizationWhitelist() }; var c = !0; this.debugInfoEnabled = function (e) { return V(e) ? (c = e, this) : c }; var j = 10; this.onChangesTtl = function (e) { return arguments.length ? (j = e, this) : j }, this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$templateRequest", "$parse", "$controller", "$rootScope", "$sce", "$animate", "$$sanitizeUri", function (m, $, F, e, y, z, s, n, i, v) { var o, b = /^\w/, w = L.document.createElement("div"), t = j; function r() { try { if (!--t) throw o = void 0, ia("infchng", "{0} $onChanges() iterations reached. Aborting!\n", j); s.$apply(function () { for (var e = 0, t = o.length; e < t; ++e) o[e](); o = void 0 }) } finally { t++ } } function H(e, t) { if (t) { var a, n, i, s = Object.keys(t); for (a = 0, n = s.length; a < n; a++) this[i = s[a]] = t[i] } else this.$attr = {}; this.$$element = e } function A(e, t) { try { e.addClass(t) } catch (e) { } } H.prototype = { $normalize: ca, $addClass: function (e) { e && 0 < e.length && i.addClass(this.$$element, e) }, $removeClass: function (e) { e && 0 < e.length && i.removeClass(this.$$element, e) }, $updateClass: function (e, t) { var a = ua(e, t); a && a.length && i.addClass(this.$$element, a); var n = ua(t, e); n && n.length && i.removeClass(this.$$element, n) }, $set: function (e, t, a, n) { var i, s = St(this.$$element[0], e), o = function (e) { return _t[e] }(e), r = e; if (s ? (this.$$element.prop(e, t), n = s) : o && (this[o] = t, r = o), this[e] = t, n ? this.$attr[e] = n : (n = this.$attr[e]) || (this.$attr[e] = n = Ie(e, "-")), "a" === (i = we(this.$$element)) && ("href" === e || "xlinkHref" === e) || "img" === i && "src" === e) this[e] = t = v(t, "src" === e); else if ("img" === i && "srcset" === e && V(t)) { for (var l = "", c = be(t), u = /\s/.test(c) ? /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/ : /(,)/, d = c.split(u), p = Math.floor(d.length / 2), m = 0; m < p; m++) { var g = 2 * m; l += v(be(d[g]), !0), l += " " + be(d[1 + g]) } var f = be(d[2 * m]).split(/\s/); l += v(be(f[0]), !0), 2 === f.length && (l += " " + be(f[1])), this[e] = t = l } !1 !== a && (null === t || pe(t) ? this.$$element.removeAttr(n) : b.test(n) ? this.$$element.attr(n, t) : function (e, t, a) { w.innerHTML = ""; var n = w.firstChild.attributes, i = n[0]; n.removeNamedItem(i.name), i.value = a, e.attributes.setNamedItem(i) }(this.$$element[0], n, t)); var h = this.$$observers; h && ue(h[r], function (e) { try { e(t) } catch (e) { F(e) } }) }, $observe: function (e, t) { var a = this, n = a.$$observers || (a.$$observers = Ee()), i = n[e] || (n[e] = []); return i.push(t), s.$evalAsync(function () { i.$$inter || !a.hasOwnProperty(e) || pe(a[e]) || t(a[e]) }), function () { $e(i, t) } } }; var a = $.startSymbol(), l = $.endSymbol(), W = "{{" == a && "}}" == l ? Y : function (e) { return e.replace(/\{\{/g, a).replace(/}}/g, l) }, k = /^ngAttr[A-Z]/, x = /^(.+)Start$/; return G.$$addBindingInfo = c ? function (e, t) { var a = e.data("$binding") || []; fe(t) ? a = a.concat(t) : a.push(t), e.data("$binding", a) } : q, G.$$addBindingClass = c ? function (e) { A(e, "ng-binding") } : q, G.$$addScopeInfo = c ? function (e, t, a, n) { var i = a ? n ? "$isolateScopeNoTemplate" : "$isolateScope" : "$scope"; e.data(i, t) } : q, G.$$addScopeClass = c ? function (e, t) { A(e, t ? "ng-isolate-scope" : "ng-scope") } : q, G.$$createComment = function (e, t) { var a = ""; return c && (a = " " + (e || "") + ": ", t && (a += t + " ")), L.document.createComment(a) }, G; function G(l, e, t, a, c) { l instanceof ce || (l = ce(l)); for (var n = /\S+/, i = 0, s = l.length; i < s; i++) { var o = l[i]; o.nodeType === Le && o.nodeValue.match(n) && it(o, l[i] = L.document.createElement("span")) } var u = M(l, e, l, t, a, c); G.$$addScopeClass(l); var d = null; return function (e, t, a) { Ae(e, "scope"), c && c.needsNewScope && (e = e.$parent.$new()); var n, i = (a = a || {}).parentBoundTranscludeFn, s = a.transcludeControllers, o = a.futureParentElement; if (i && i.$$boundTransclude && (i = i.$$boundTransclude), d || (d = function (e) { var t = e && e[0]; return t && "foreignobject" !== we(t) && B.call(t).match(/SVG/) ? "svg" : "html" }(o)), n = "html" !== d ? ce(ie(d, ce("
").append(l).html())) : t ? $t.clone.call(l) : l, s) for (var r in s) n.data("$" + r + "Controller", s[r].instance); return G.$$addScopeInfo(n, e), t && t(n, e), u && u(e, n, n, i), n } } function M(e, g, t, a, n, i) { for (var s, o, r, l, c, u, f, h = [], d = 0; d < e.length; d++) s = new H, (r = (o = Q(e[d], [], s, 0 === d ? a : void 0, n)).length ? T(o, e[d], s, g, t, null, [], [], i) : null) && r.scope && G.$$addScopeClass(s.$$element), c = r && r.terminal || !(l = e[d].childNodes) || !l.length ? null : M(l, r ? (r.transcludeOnThisElement || !r.templateOnThisElement) && r.transclude : g), (r || c) && (h.push(d, r, c), u = !0, f = f || r), i = null; return u ? function (e, t, a, n) { var i, s, o, r, l, c, u, d, p; if (f) { var m = t.length; for (p = new Array(m), l = 0; l < h.length; l += 3) u = h[l], p[u] = t[u] } else p = t; for (l = 0, c = h.length; l < c;) o = p[h[l++]], i = h[l++], s = h[l++], i ? (i.scope ? (r = e.$new(), G.$$addScopeInfo(ce(o), r)) : r = e, d = i.transcludeOnThisElement ? D(e, i.transclude, n) : !i.templateOnThisElement && n ? n : !n && g ? D(e, g) : null, i(s, r, o, a, d)) : s && s(e, o.childNodes, void 0, n) } : null } function D(s, o, r) { function e(e, t, a, n, i) { return e || ((e = s.$new(!1, i)).$$transcluded = !0), o(e, t, { parentBoundTranscludeFn: r, transcludeControllers: a, futureParentElement: n }) } var t = e.$$slots = Ee(); for (var a in o.$$slots) o.$$slots[a] ? t[a] = D(s, o.$$slots[a], r) : t[a] = null; return e } function Q(e, t, a, n, i) { var s, o, r = e.nodeType, l = a.$attr; switch (r) { case je: _(t, ca(we(e)), "E", n, i); for (var c, u, d, p, m, g, f = e.attributes, h = 0, v = f && f.length; h < v; h++) { var y = !1, b = !1; u = (c = f[h]).name, m = be(c.value), p = ca(u), (g = k.test(p)) && (u = u.replace(la, "").substr(8).replace(/_(.)/g, function (e, t) { return t.toUpperCase() })); var w = p.match(x); w && S(w[1]) && (b = (y = u).substr(0, u.length - 5) + "end", u = u.substr(0, u.length - 6)), l[d = ca(u.toLowerCase())] = u, !g && a.hasOwnProperty(d) || (a[d] = m, St(e, d) && (a[d] = !0)), C(e, t, m, d, g), _(t, d, "A", n, i, y, b) } if (me(o = e.className) && (o = o.animVal), ge(o) && "" !== o) for (; s = E.exec(o);) _(t, d = ca(s[2]), "C", n, i) && (a[d] = be(s[3])), o = o.substr(s.index + s[0].length); break; case Le: if (11 === N) for (; e.parentNode && e.nextSibling && e.nextSibling.nodeType === Le;) e.nodeValue = e.nodeValue + e.nextSibling.nodeValue, e.parentNode.removeChild(e.nextSibling); !function (e, t) { var i = $(t, !0); i && e.push({ priority: 0, compile: function (e) { var t = e.parent(), n = !!t.length; return n && G.$$addBindingClass(t), function (e, t) { var a = t.parent(); n || G.$$addBindingClass(a), G.$$addBindingInfo(a, i.expressions), e.$watch(i, function (e) { t[0].nodeValue = e }) } } }) }(t, e.nodeValue); break; case Oe: try { (s = P.exec(e.nodeValue)) && _(t, d = ca(s[1]), "M", n, i) && (a[d] = be(s[2])) } catch (e) { } } return t.sort(I), t } function K(e, t, a) { var n = [], i = 0; if (t && e.hasAttribute && e.hasAttribute(t)) do { if (!e) throw ia("uterdir", "Unterminated attribute, found '{0}' but no matching '{1}' found.", t, a); e.nodeType == je && (e.hasAttribute(t) && i++, e.hasAttribute(a) && i--), n.push(e), e = e.nextSibling } while (0 < i); else n.push(e); return ce(n) } function J(s, o, r) { return function (e, t, a, n, i) { return t = K(t[0], o, r), s(e, t, a, n, i) } } function Z(e, t, a, n, i, s) { var o; return e ? G(t, a, n, i, s) : function () { return o || (o = G(t, a, n, i, s), t = a = s = null), o.apply(this, arguments) } } function T(e, $, k, t, a, n, x, _, i) { i = i || {}; for (var s, o, r, l, c, u = -Number.MAX_VALUE, S = i.newScopeDirective, I = i.controllerDirectives, C = i.newIsolateScopeDirective, A = i.templateDirective, d = i.nonTlbTranscludeDirective, p = !1, m = !1, M = i.hasElementTranscludeDirective, g = k.$$element = ce($), f = n, h = t, v = !1, y = !1, b = 0, w = e.length; b < w; b++) { var D = (s = e[b]).$$start, T = s.$$end; if (D && (g = K($, D, T)), r = void 0, u > s.priority) break; if ((c = s.scope) && (s.templateUrl || (me(c) ? (ne("new/isolated scope", C || S, s, g), C = s) : ne("new/isolated scope", C, s, g)), S = S || s), o = s.name, !v && (s.replace && (s.templateUrl || s.template) || s.transclude && !s.$$tlb)) { for (var P, E = b + 1; P = e[E++];) if (P.transclude && !P.$$tlb || P.replace && (P.templateUrl || P.template)) { y = !0; break } v = !0 } if (!s.templateUrl && s.controller && (c = s.controller, I = I || Ee(), ne("'" + o + "' controller", I[o], s, g), I[o] = s), c = s.transclude) if (p = !0, s.$$tlb || (ne("transclusion", d, s, g), d = s), "element" == c) M = !0, u = s.priority, r = g, g = k.$$element = ce(G.$$createComment(o, k[o])), $ = g[0], se(a, xe(r), $), r[0].$$parentNode = r[0].parentNode, h = Z(y, r, t, u, f && f.name, {nonTlbTranscludeDirective: d}); else { var j = Ee(); if (r = ce(rt($)).contents(), me(c)) { r = []; var L = Ee(), O = Ee(); for (var U in ue(c, function (e, t) { var a = "?" === e.charAt(0); e = a ? e.substring(1) : e, L[e] = t, j[t] = null, O[t] = a }), ue(g.contents(), function (e) { var t = L[ca(we(e))]; t ? (O[t] = !0, j[t] = j[t] || [], j[t].push(e)) : r.push(e) }), ue(O, function (e, t) { if (!e) throw ia("reqslot", "Required transclusion slot `{0}` was not filled.", t) }), j) j[U] && (j[U] = Z(y, j[U], t)) } g.empty(), (h = Z(y, r, t, void 0, void 0, {needsNewScope: s.$$isolateScope || s.$$newScope})).$$slots = j } if (s.template) if (m = !0, ne("template", A, s, g), c = he((A = s).template) ? s.template(g, k) : s.template, c = W(c), s.replace) { if (f = s, r = tt(c) ? [] : da(ie(s.templateNamespace, be(c))), $ = r[0], 1 != r.length || $.nodeType !== je) throw ia("tplrt", "Template for directive '{0}' must have exactly one root element. {1}", o, ""); se(a, g, $); var N = {$attr: {}}, B = Q($, [], N), R = e.splice(b + 1, e.length - (b + 1)); (C || S) && ee(B, C, S), e = e.concat(B).concat(R), te(k, N), w = e.length } else g.html(c); if (s.templateUrl) m = !0, ne("template", A, s, g), (A = s).replace && (f = s), V = ae(e.splice(b, e.length - b), g, k, a, p && h, x, _, { controllerDirectives: I, newScopeDirective: S !== s && S, newIsolateScopeDirective: C, templateDirective: A, nonTlbTranscludeDirective: d }), w = e.length; else if (s.compile) try { l = s.compile(g, k, h); var q = s.$$originalDirective || s; he(l) ? Y(null, _e(q, l), D, T) : l && Y(_e(q, l.pre), _e(q, l.post), D, T) } catch (e) { F(e, Se(g)) } s.terminal && (V.terminal = !0, u = Math.max(u, s.priority)) } return V.scope = S && !0 === S.scope, V.transcludeOnThisElement = p, V.templateOnThisElement = m, V.transclude = h, i.hasElementTranscludeDirective = M, V; function Y(e, t, a, n) { e && (a && (e = J(e, a, n)), e.require = s.require, e.directiveName = o, C !== s && !s.$$isolateScope || (e = oe(e, {isolateScope: !0})), x.push(e)), t && (a && (t = J(t, a, n)), t.require = s.require, t.directiveName = o, C !== s && !s.$$isolateScope || (t = oe(t, {isolateScope: !0})), _.push(t)) } function V(e, t, a, n, o) { var i, s, r, l, c, u, d, p, m, g; for (var f in $ === a ? p = (m = k).$$element : m = new H(p = ce(a), k), c = t, C ? l = t.$new(!0) : S && (c = t.$parent), o && ((d = function (e, t, a, n) { var i; ve(e) || (n = a, a = t, t = e, e = void 0); M && (i = u); a || (a = M ? p.parent() : p); { if (!n) return o(e, t, i, a, w); var s = o.$$slots[n]; if (s) return s(e, t, i, a, w); if (pe(s)) throw ia("noslot", 'No parent directive that requires a transclusion with slot name "{0}". Element: {1}', n, Se(p)) } }).$$boundTransclude = o, d.isSlotFilled = function (e) { return !!o.$$slots[e] }), I && (u = function (e, t, a, n, i, s, o) { var r = Ee(); for (var l in n) { var c = n[l], u = { $scope: c === o || c.$$isolateScope ? i : s, $element: e, $attrs: t, $transclude: a }, d = c.controller; "@" == d && (d = t[c.name]); var p = z(d, u, !0, c.controllerAs); r[c.name] = p, e.data("$" + c.name + "Controller", p.instance) } return r }(p, m, d, I, l, t, C)), C && (G.$$addScopeInfo(p, l, !0, !(A && (A === C || A === C.$$originalDirective))), G.$$addScopeClass(p, !0), l.$$isolateBindings = C.$$isolateBindings, (g = le(t, m, l, l.$$isolateBindings, C)).removeWatches && l.$on("$destroy", g.removeWatches)), u) { var h = I[f], v = u[f], y = h.$$bindings.bindToController; v.identifier && y ? v.bindingInfo = le(c, m, v.instance, y, h) : v.bindingInfo = {}; var b = v(); b !== v.instance && (v.instance = b, p.data("$" + h.name + "Controller", b), v.bindingInfo.removeWatches && v.bindingInfo.removeWatches(), v.bindingInfo = le(c, m, v.instance, y, h)) } for (ue(I, function (e, t) { var a = e.require; e.bindToController && !fe(a) && me(a) && de(u[t].instance, X(t, a, p, u)) }), ue(u, function (e) { var t = e.instance; he(t.$onChanges) && t.$onChanges(e.bindingInfo.initialChanges), he(t.$onInit) && t.$onInit(), he(t.$onDestroy) && c.$on("$destroy", function () { t.$onDestroy() }) }), i = 0, s = x.length; i < s; i++) re(r = x[i], r.isolateScope ? l : t, p, m, r.require && X(r.directiveName, r.require, p, u), d); var w = t; for (C && (C.template || null === C.templateUrl) && (w = l), e && e(w, a.childNodes, void 0, o), i = _.length - 1; 0 <= i; i--) re(r = _[i], r.isolateScope ? l : t, p, m, r.require && X(r.directiveName, r.require, p, u), d); ue(u, function (e) { var t = e.instance; he(t.$postLink) && t.$postLink() }) } } function X(a, e, n, i) { var s; if (ge(e)) { var t = e.match(p), o = e.substring(t[0].length), r = t[1] || t[3], l = "?" === t[2]; if ("^^" === r ? n = n.parent() : s = (s = i && i[o]) && s.instance, !s) { var c = "$" + o + "Controller"; s = r ? n.inheritedData(c) : n.data(c) } if (!s && !l) throw ia("ctreq", "Controller '{0}', required by directive '{1}', can't be found!", o, a) } else if (fe(e)) { s = []; for (var u = 0, d = e.length; u < d; u++) s[u] = X(a, e[u], n, i) } else me(e) && (s = {}, ue(e, function (e, t) { s[t] = X(a, e, n, i) })); return s || null } function ee(e, t, a) { for (var n = 0, i = e.length; n < i; n++) e[n] = R(e[n], {$$isolateScope: t, $$newScope: a}) } function _(e, t, a, n, i, s, o) { if (t === i) return null; var r = null; if (g.hasOwnProperty(t)) for (var l, c = m.get(t + f), u = 0, d = c.length; u < d; u++) try { if (l = c[u], (pe(n) || n > l.priority) && -1 != l.restrict.indexOf(a)) { if (s && (l = R(l, {$$start: s, $$end: o})), !l.$$bindings) { var p = l.$$bindings = h(l, l.name); me(p.isolateScope) && (l.$$isolateBindings = p.isolateScope) } e.push(l), r = l } } catch (e) { F(e) } return r } function S(e) { if (g.hasOwnProperty(e)) for (var t = m.get(e + f), a = 0, n = t.length; a < n; a++) if (t[a].multiElement) return !0; return !1 } function te(a, n) { var i = n.$attr, s = a.$attr, o = a.$$element; ue(a, function (e, t) { "$" != t.charAt(0) && (n[t] && n[t] !== e && (e += ("style" === t ? ";" : " ") + n[t]), a.$set(t, e, !0, i[t])) }), ue(n, function (e, t) { "class" == t ? (A(o, e), a.class = (a.class ? a.class + " " : "") + e) : "style" == t ? (o.attr("style", o.attr("style") + ";" + e), a.style = (a.style ? a.style + ";" : "") + e) : "$" == t.charAt(0) || a.hasOwnProperty(t) || (a[t] = e, s[t] = i[t]) }) } function ae(p, m, g, f, h, v, y, b) { var w, $, k = [], x = m[0], _ = p.shift(), S = R(_, {templateUrl: null, transclude: null, replace: null, $$originalDirective: _}), I = he(_.templateUrl) ? _.templateUrl(m, g) : _.templateUrl, C = _.templateNamespace; return m.empty(), e(I).then(function (e) { var a, t, n, i; if (e = W(e), _.replace) { if (n = tt(e) ? [] : da(ie(C, be(e))), a = n[0], 1 != n.length || a.nodeType !== je) throw ia("tplrt", "Template for directive '{0}' must have exactly one root element. {1}", _.name, I); t = {$attr: {}}, se(f, m, a); var s = Q(a, [], t); me(_.scope) && ee(s, !0), p = s.concat(p), te(g, t) } else a = x, m.html(e); for (p.unshift(S), w = T(p, a, g, h, m, _, v, y, b), ue(f, function (e, t) { e == a && (f[t] = m[0]) }), $ = M(m[0].childNodes, h); k.length;) { var o = k.shift(), r = k.shift(), l = k.shift(), c = k.shift(), u = m[0]; if (!o.$$destroyed) { if (r !== x) { var d = r.className; b.hasElementTranscludeDirective && _.replace || (u = rt(a)), se(l, ce(r), u), A(ce(u), d) } i = w.transcludeOnThisElement ? D(o, w.transclude, c) : c, w($, o, u, f, i) } } k = null }), function (e, t, a, n, i) { var s = i; t.$$destroyed || (k ? k.push(t, a, n, s) : (w.transcludeOnThisElement && (s = D(t, w.transclude, i)), w($, t, a, n, s))) } } function I(e, t) { var a = t.priority - e.priority; return 0 != a ? a : e.name !== t.name ? e.name < t.name ? -1 : 1 : e.index - t.index } function ne(e, t, a, n) { function i(e) { return e ? " (module: " + e + ")" : "" } if (t) throw ia("multidir", "Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}", t.name, i(t.$$moduleName), a.name, i(a.$$moduleName), e, Se(n)) } function ie(e, t) { switch (e = U(e || "html")) { case"svg": case"math": var a = L.document.createElement("div"); return a.innerHTML = "<" + e + ">" + t + "", a.childNodes[0].childNodes; default: return t } } function C(e, t, s, o, r) { var l = function (e, t) { if ("srcdoc" == t) return n.HTML; var a = we(e); return "xlinkHref" == t || "form" == a && "action" == t || "img" != a && ("src" == t || "ngSrc" == t) ? n.RESOURCE_URL : void 0 }(e, o); r = u[o] || r; var c = $(s, !0, l, r); if (c) { if ("multiple" === o && "select" === we(e)) throw ia("selmulti", "Binding to the 'multiple' attribute is not supported. Element: {0}", Se(e)); t.push({ priority: 100, compile: function () { return { pre: function (e, t, a) { var n = a.$$observers || (a.$$observers = Ee()); if (d.test(o)) throw ia("nodomevents", "Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead."); var i = a[o]; i !== s && (c = i && $(i, !0, l, r), s = i), c && (a[o] = c(e), (n[o] || (n[o] = [])).$$inter = !0, (a.$$observers && a.$$observers[o].$$scope || e).$watch(c, function (e, t) { "class" === o && e != t ? a.$updateClass(e, t) : a.$set(o, e) })) } } } }) } } function se(e, t, a) { var n, i, s = t[0], o = t.length, r = s.parentNode; if (e) for (n = 0, i = e.length; n < i; n++) if (e[n] == s) { e[n++] = a; for (var l = n, c = l + o - 1, u = e.length; l < u; l++, c++) c < u ? e[l] = e[c] : delete e[l]; e.length -= o - 1, e.context === s && (e.context = a); break } r && r.replaceChild(a, s); var d = L.document.createDocumentFragment(); for (n = 0; n < o; n++) d.appendChild(t[n]); for (ce.hasData(s) && (ce.data(a, ce.data(s)), ce(s).off("$destroy")), ce.cleanData(d.querySelectorAll("*")), n = 1; n < o; n++) delete t[n]; t[0] = a, t.length = 1 } function oe(e, t) { return de(function () { return e.apply(null, arguments) }, e, t) } function re(e, t, a, n, i, s) { try { e(t, a, n, i, s) } catch (e) { F(e, Se(a)) } } function le(d, p, m, e, g) { var n, f = [], h = {}; function v(e, t, a) { he(m.$onChanges) && t !== a && (o || (d.$$postDigest(r), o = []), n || (n = {}, o.push(i)), n[e] && (a = n[e].previousValue), n[e] = new ra(a, t)) } function i() { m.$onChanges(n), n = void 0 } return ue(e, function (e, a) { var t, n, i, s, o, r = e.attrName, l = e.optional; switch (e.mode) { case"@": l || O.call(p, r) || (m[a] = p[r] = void 0), p.$observe(r, function (e) { if (ge(e) || ye(e)) { var t = m[a]; v(a, e, t), m[a] = e } }), p.$$observers[r].$$scope = d, ge(t = p[r]) ? m[a] = $(t)(d) : ye(t) && (m[a] = t), h[a] = new ra(sa, m[a]); break; case"=": if (!O.call(p, r)) { if (l) break; p[r] = void 0 } if (l && !p[r]) break; n = y(p[r]), s = n.literal ? ke : function (e, t) { return e === t || e != e && t != t }, i = n.assign || function () { throw t = m[a] = n(d), ia("nonassign", "Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!", p[r], r, g.name) }, t = m[a] = n(d); var c = function (e) { return s(e, m[a]) || (s(e, t) ? i(d, e = m[a]) : m[a] = e), t = e }; c.$stateful = !0, o = e.collection ? d.$watchCollection(p[r], c) : d.$watch(y(p[r], c), null, n.literal), f.push(o); break; case"<": if (!O.call(p, r)) { if (l) break; p[r] = void 0 } if (l && !p[r]) break; n = y(p[r]); var u = m[a] = n(d); h[a] = new ra(sa, m[a]), o = d.$watch(n, function (e, t) { if (t === e) { if (t === u) return; t = u } v(a, e, t), m[a] = e }, n.literal), f.push(o); break; case"&": if ((n = p.hasOwnProperty(r) ? y(p[r]) : q) === q && l) break; m[a] = function (e) { return n(d, e) } } }), { initialChanges: h, removeWatches: f.length && function () { for (var e = 0, t = f.length; e < t; ++e) f[e]() } } } }] } function ra(e, t) { this.previousValue = e, this.currentValue = t } oa.$inject = ["$provide", "$$sanitizeUriProvider"], ra.prototype.isFirstChange = function () { return this.previousValue === sa }; var la = /^((?:x|data)[\:\-_])/i; function ca(e) { return Qe(e.replace(la, "")) } function ua(e, t) { var a = "", n = e.split(/\s+/), i = t.split(/\s+/); e:for (var s = 0; s < n.length; s++) { for (var o = n[s], r = 0; r < i.length; r++) if (o == i[r]) continue e; a += (0 < a.length ? " " : "") + o } return a } function da(e) { var t = (e = ce(e)).length; if (t <= 1) return e; for (; t--;) { e[t].nodeType === Oe && a.call(e, t, 1) } return e } var pa = $("$controller"), ma = /^(\S+)(\s+as\s+([\w$]+))?$/; function ga(e, t) { if (t && ge(t)) return t; if (ge(e)) { var a = ma.exec(e); if (a) return a[3] } } function fa() { var p = {}, m = !1; this.has = function (e) { return p.hasOwnProperty(e) }, this.register = function (e, t) { De(e, "controller"), me(e) ? de(p, e) : p[e] = t }, this.allowGlobals = function () { m = !0 }, this.$get = ["$injector", "$window", function (c, u) { return function (t, a, e, n) { var i, s, o, r; if (e = !0 === e, n && ge(n) && (r = n), ge(t)) { if (!(s = t.match(ma))) throw pa("ctrlfmt", "Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.", t); o = s[1], r = r || s[3], Me(t = p.hasOwnProperty(o) ? p[o] : Te(a.$scope, o, !0) || (m ? Te(u, o, !0) : void 0), o, !0) } if (e) { var l = (fe(t) ? t[t.length - 1] : t).prototype; return i = Object.create(l || null), r && d(a, r, i, o || t.name), de(function () { var e = c.invoke(t, i, a, o); return e !== i && (me(e) || he(e)) && (i = e, r && d(a, r, i, o || t.name)), i }, {instance: i, identifier: r}) } return i = c.instantiate(t, a, o), r && d(a, r, i, o || t.name), i }; function d(e, t, a, n) { if (!e || !me(e.$scope)) throw $("$controller")("noscp", "Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.", n, t); e.$scope[t] = a } }] } function ha() { this.$get = ["$window", function (e) { return ce(e.document) }] } function va() { this.$get = ["$log", function (a) { return function (e, t) { a.error.apply(a, arguments) } }] } function ya() { this.$get = ["$document", function (t) { return function (e) { return e ? !e.nodeType && e instanceof ce && (e = e[0]) : e = t[0].body, e.offsetWidth + 1 } }] } var ba = "application/json", wa = {"Content-Type": ba + ";charset=utf-8"}, $a = /^\[|^\{(?!\{)/, ka = {"[": /]$/, "{": /}$/}, xa = /^\)\]\}',?\n/, _a = $("$http"), Sa = function (e) { return function () { throw _a("legacy", "The method `{0}` on the promise returned from `$http` has been disabled.", e) } }; function Ia(e) { return me(e) ? k(e) ? e.toISOString() : W(e) : e } function Ca() { this.$get = function () { return function (e) { if (!e) return ""; var a = []; return p(e, function (e, t) { null === e || pe(e) || (fe(e) ? ue(e, function (e) { a.push(ae(t) + "=" + ae(Ia(e))) }) : a.push(ae(t) + "=" + ae(Ia(e)))) }), a.join("&") } } } function Aa() { this.$get = function () { return function (e) { if (!e) return ""; var t = []; return function a(e, n, i) { if (null === e || pe(e)) return; fe(e) ? ue(e, function (e, t) { a(e, n + "[" + (me(e) ? t : "") + "]") }) : me(e) && !k(e) ? p(e, function (e, t) { a(e, n + (i ? "" : "[") + t + (i ? "" : "]")) }) : t.push(ae(n) + "=" + ae(Ia(e))) }(e, "", !0), t.join("&") } } } function Ma(e, t) { if (ge(e)) { var a = e.replace(xa, "").trim(); if (a) { var n = t("Content-Type"); (n && 0 === n.indexOf(ba) || function (e) { var t = e.match($a); return t && ka[t[0]].test(e) }(a)) && (e = G(a)) } } return e } function Da(e) { var t, a = Ee(); function n(e, t) { e && (a[e] = a[e] ? a[e] + ", " + t : t) } return ge(e) ? ue(e.split("\n"), function (e) { t = e.indexOf(":"), n(U(be(e.substr(0, t))), be(e.substr(t + 1))) }) : me(e) && ue(e, function (e, t) { n(U(t), be(e)) }), a } function Ta(a) { var n; return function (e) { if (n || (n = Da(a)), e) { var t = n[U(e)]; return void 0 === t && (t = null), t } return n } } function Pa(t, a, n, e) { return he(e) ? e(t, a, n) : (ue(e, function (e) { t = e(t, a, n) }), t) } function Ea(e) { return 200 <= e && e < 300 } function ja() { var b = this.defaults = { transformResponse: [Ma], transformRequest: [function (e) { return !me(e) || function (e) { return "[object File]" === B.call(e) }(e) || function (e) { return "[object Blob]" === B.call(e) }(e) || function (e) { return "[object FormData]" === B.call(e) }(e) ? e : W(e) }], headers: {common: {Accept: "application/json, text/plain, */*"}, post: E(wa), put: E(wa), patch: E(wa)}, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", paramSerializer: "$httpParamSerializer" }, w = !1; this.useApplyAsync = function (e) { return V(e) ? (w = !!e, this) : w }; var c = !0; this.useLegacyPromiseExtensions = function (e) { return V(e) ? (c = !!e, this) : c }; var t = this.interceptors = []; this.$get = ["$httpBackend", "$$cookieReader", "$cacheFactory", "$rootScope", "$q", "$injector", function (m, g, e, f, h, r) { var v = e("$http"); b.paramSerializer = ge(b.paramSerializer) ? r.get(b.paramSerializer) : b.paramSerializer; var l = []; function y(e) { if (!me(e)) throw $("$http")("badreq", "Http request configuration must be an object. Received: {0}", e); if (!ge(e.url)) throw $("$http")("badreq", "Http request configuration url must be a string. Received: {0}", e.url); var a = de({ method: "get", transformRequest: b.transformRequest, transformResponse: b.transformResponse, paramSerializer: b.paramSerializer }, e); a.headers = function (e) { var t, a, n, i = b.headers, s = de({}, e.headers); i = de({}, i.common, i[U(e.method)]); e:for (t in i) { for (n in a = U(t), s) if (U(n) === a) continue e; s[t] = i[t] } return function (e, a) { var n, i = {}; return ue(e, function (e, t) { he(e) ? null != (n = e(a)) && (i[t] = n) : i[t] = e }), i }(s, E(e)) }(e), a.method = u(a.method), a.paramSerializer = ge(a.paramSerializer) ? r.get(a.paramSerializer) : a.paramSerializer; var t = [function (e) { var a = e.headers, t = Pa(e.data, Ta(a), void 0, e.transformRequest); return pe(t) && ue(a, function (e, t) { "content-type" === U(t) && delete a[t] }), pe(e.withCredentials) && !pe(b.withCredentials) && (e.withCredentials = b.withCredentials), function (i, e) { var s, t, o = h.defer(), a = o.promise, n = i.headers, r = function (e, t) { 0 < t.length && (e += (-1 == e.indexOf("?") ? "?" : "&") + t); return e }(i.url, i.paramSerializer(i.params)); y.pendingRequests.push(i), a.then(p, p), !i.cache && !b.cache || !1 === i.cache || "GET" !== i.method && "JSONP" !== i.method || (s = me(i.cache) ? i.cache : me(b.cache) ? b.cache : v); s && (V(t = s.get(r)) ? C(t) ? t.then(d, d) : fe(t) ? u(t[1], t[0], E(t[2]), t[3]) : u(t, 200, {}, "OK") : s.put(r, a)); if (pe(t)) { var l = Xn(i.url) ? g()[i.xsrfCookieName || b.xsrfCookieName] : void 0; l && (n[i.xsrfHeaderName || b.xsrfHeaderName] = l), m(i.method, r, e, function (e, t, a, n) { s && (Ea(e) ? s.put(r, [e, t, Da(a), n]) : s.remove(r)); function i() { u(t, e, a, n) } w ? f.$applyAsync(i) : (i(), f.$$phase || f.$apply()) }, n, i.timeout, i.withCredentials, i.responseType, c(i.eventHandlers), c(i.uploadEventHandlers)) } return a; function c(e) { if (e) { var t = {}; return ue(e, function (a, e) { t[e] = function (e) { function t() { a(e) } w ? f.$applyAsync(t) : f.$$phase ? t() : f.$apply(t) } }), t } } function u(e, t, a, n) { (Ea(t = -1 <= t ? t : 0) ? o.resolve : o.reject)({ data: e, status: t, headers: Ta(a), config: i, statusText: n }) } function d(e) { u(e.data, e.status, E(e.headers()), e.statusText) } function p() { var e = y.pendingRequests.indexOf(i); -1 !== e && y.pendingRequests.splice(e, 1) } }(e, t).then(o, o) }, void 0], n = h.when(a); for (ue(l, function (e) { (e.request || e.requestError) && t.unshift(e.request, e.requestError), (e.response || e.responseError) && t.push(e.response, e.responseError) }); t.length;) { var i = t.shift(), s = t.shift(); n = n.then(i, s) } return c ? (n.success = function (t) { return Me(t, "fn"), n.then(function (e) { t(e.data, e.status, e.headers, a) }), n }, n.error = function (t) { return Me(t, "fn"), n.then(null, function (e) { t(e.data, e.status, e.headers, a) }), n }) : (n.success = Sa("success"), n.error = Sa("error")), n; function o(e) { var t = de({}, e); return t.data = Pa(e.data, e.headers, e.status, a.transformResponse), Ea(e.status) ? t : h.reject(t) } } return ue(t, function (e) { l.unshift(ge(e) ? r.get(e) : r.invoke(e)) }), y.pendingRequests = [], function (e) { ue(arguments, function (a) { y[a] = function (e, t) { return y(de({}, t || {}, {method: a, url: e})) } }) }("get", "delete", "head", "jsonp"), function (e) { ue(arguments, function (n) { y[n] = function (e, t, a) { return y(de({}, a || {}, {method: n, url: e, data: t})) } }) }("post", "put", "patch"), y.defaults = b, y }] } function La() { this.$get = function () { return function () { return new L.XMLHttpRequest } } } function Oa() { this.$get = ["$browser", "$window", "$document", "$xhrFactory", function (e, t, a, n) { return function (v, y, b, w, $) { return function (e, n, t, i, a, s, o, r, l, c) { if (v.$$incOutstandingRequestCount(), n = n || v.url(), "jsonp" == U(e)) { var u = "_" + (w.counter++).toString(36); w[u] = function (e) { w[u].data = e, w[u].called = !0 }; var d = function (e, n, i) { var s = $.createElement("script"), o = null; return s.type = "text/javascript", s.src = e, s.async = !0, o = function (e) { Fe(s, "load", o), Fe(s, "error", o), $.body.removeChild(s), s = null; var t = -1, a = "unknown"; e && ("load" !== e.type || w[n].called || (e = {type: "error"}), a = e.type, t = "error" === e.type ? 404 : 200), i && i(t, a) }, Ve(s, "load", o), Ve(s, "error", o), $.body.appendChild(s), o }(n.replace("JSON_CALLBACK", "angular.callbacks." + u), u, function (e, t) { h(i, e, w[u].data, "", t), w[u] = q }) } else { var p = y(e, n); p.open(e, n, !0), ue(a, function (e, t) { V(e) && p.setRequestHeader(t, e) }), p.onload = function () { var e = p.statusText || "", t = "response" in p ? p.response : p.responseText, a = 1223 === p.status ? 204 : p.status; 0 === a && (a = t ? 200 : "file" == Zn(n).protocol ? 404 : 0), h(i, a, t, p.getAllResponseHeaders(), e) }; var m = function () { h(i, -1, null, null, "") }; if (p.onerror = m, p.onabort = m, ue(l, function (e, t) { p.addEventListener(t, e) }), ue(c, function (e, t) { p.upload.addEventListener(t, e) }), o && (p.withCredentials = !0), r) try { p.responseType = r } catch (e) { if ("json" !== r) throw e } p.send(pe(t) ? null : t) } if (0 < s) var g = b(f, s); else C(s) && s.then(f); function f() { d && d(), p && p.abort() } function h(e, t, a, n, i) { V(g) && b.cancel(g), d = p = null, e(t, a, n, i), v.$$completeOutstandingRequest(q) } } }(e, n, e.defer, t.angular.callbacks, a[0]) }] } var Ua = S.$interpolateMinErr = $("$interpolate"); function Na() { var _ = "{{", S = "}}"; this.startSymbol = function (e) { return e ? (_ = e, this) : _ }, this.endSymbol = function (e) { return e ? (S = e, this) : S }, this.$get = ["$parse", "$exceptionHandler", "$sce", function (v, y, b) { var w = _.length, $ = S.length, t = new RegExp(_.replace(/./g, e), "g"), a = new RegExp(S.replace(/./g, e), "g"); function e(e) { return "\\\\\\" + e } function k(e) { return e.replace(t, _).replace(a, S) } function x(e, t, a, n) { var i; return i = e.$watch(function (e) { return i(), n(e) }, t, a) } function n(i, e, t, n) { if (!i.length || -1 === i.indexOf(_)) { var a; if (!e) (a = I(k(i))).exp = i, a.expressions = [], a.$$watchDelegate = x; return a } n = !!n; for (var s, o, r, l = 0, c = [], u = [], d = i.length, p = [], m = []; l < d;) { if (-1 == (s = i.indexOf(_, l)) || -1 == (o = i.indexOf(S, s + w))) { l !== d && p.push(k(i.substring(l))); break } l !== s && p.push(k(i.substring(l, s))), r = i.substring(s + w, o), c.push(r), u.push(v(r, h)), l = o + $, m.push(p.length), p.push("") } if (t && 1 < p.length && Ua.throwNoconcat(i), !e || c.length) { var g = function (e) { for (var t = 0, a = c.length; t < a; t++) { if (n && pe(e[t])) return; p[m[t]] = e[t] } return p.join("") }, f = function (e) { return t ? b.getTrusted(t, e) : b.valueOf(e) }; return de(function (e) { var t = 0, a = c.length, n = new Array(a); try { for (; t < a; t++) n[t] = u[t](e); return g(n) } catch (e) { y(Ua.interr(i, e)) } }, { exp: i, expressions: c, $$watchDelegate: function (n, i) { var s; return n.$watchGroup(u, function (e, t) { var a = g(e); he(i) && i.call(this, a, e !== t ? s : a, n), s = a }) } }) } function h(e) { try { return e = f(e), n && !V(e) ? e : function (e) { if (null == e) return ""; switch (typeof e) { case"string": break; case"number": e = "" + e; break; default: e = W(e) } return e }(e) } catch (e) { y(Ua.interr(i, e)) } } } return n.startSymbol = function () { return _ }, n.endSymbol = function () { return S }, n }] } function Ba() { this.$get = ["$rootScope", "$window", "$q", "$$q", "$browser", function (m, g, f, h, v) { var y = {}; function e(e, t, a, n) { var i = 4 < arguments.length, s = i ? xe(arguments, 4) : [], o = g.setInterval, r = g.clearInterval, l = 0, c = V(n) && !n, u = (c ? h : f).defer(), d = u.promise; return a = V(a) ? a : 0, d.$$intervalId = o(function () { c ? v.defer(p) : m.$evalAsync(p), u.notify(l++), 0 < a && a <= l && (u.resolve(l), r(d.$$intervalId), delete y[d.$$intervalId]), c || m.$apply() }, t), y[d.$$intervalId] = u, d; function p() { i ? e.apply(null, s) : e(l) } } return e.cancel = function (e) { return !!(e && e.$$intervalId in y) && (y[e.$$intervalId].reject("canceled"), g.clearInterval(e.$$intervalId), delete y[e.$$intervalId], !0) }, e }] } Ua.throwNoconcat = function (e) { throw Ua("noconcat", "Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce", e) }, Ua.interr = function (e, t) { return Ua("interr", "Can't interpolate: {0}\n{1}", e, t.toString()) }; var Ra = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/, qa = {http: 80, https: 443, ftp: 21}, Ya = $("$location"); function Va(e) { for (var t = e.split("/"), a = t.length; a--;) t[a] = te(t[a]); return t.join("/") } function Fa(e, t) { var a = Zn(e); t.$$protocol = a.protocol, t.$$host = a.hostname, t.$$port = f(a.port) || qa[a.protocol] || null } function za(e, t) { var a = "/" !== e.charAt(0); a && (e = "/" + e); var n = Zn(e); t.$$path = decodeURIComponent(a && "/" === n.pathname.charAt(0) ? n.pathname.substring(1) : n.pathname), t.$$search = X(n.search), t.$$hash = decodeURIComponent(n.hash), t.$$path && "/" != t.$$path.charAt(0) && (t.$$path = "/" + t.$$path) } function Ha(e, t) { return 0 === e.lastIndexOf(t, 0) } function Wa(e, t) { if (Ha(t, e)) return t.substr(e.length) } function Ga(e) { var t = e.indexOf("#"); return -1 == t ? e : e.substr(0, t) } function Qa(e) { return e.replace(/(#.+)|#$/, "$1") } function Ka(s, o, r) { this.$$html5 = !0, r = r || "", Fa(s, this), this.$$parse = function (e) { var t = Wa(o, e); if (!ge(t)) throw Ya("ipthprfx", 'Invalid url "{0}", missing path prefix "{1}".', e, o); za(t, this), this.$$path || (this.$$path = "/"), this.$$compose() }, this.$$compose = function () { var e = ee(this.$$search), t = this.$$hash ? "#" + te(this.$$hash) : ""; this.$$url = Va(this.$$path) + (e ? "?" + e : "") + t, this.$$absUrl = o + this.$$url.substr(1) }, this.$$parseLinkUrl = function (e, t) { return t && "#" === t[0] ? (this.hash(t.slice(1)), !0) : (V(a = Wa(s, e)) ? i = V(a = Wa(r, n = a)) ? o + (Wa("/", a) || a) : s + n : V(a = Wa(o, e)) ? i = o + a : o == e + "/" && (i = o), i && this.$$parse(i), !!i); var a, n, i } } function Ja(n, i, s) { Fa(n, this), this.$$parse = function (e) { var t, a = Wa(n, e) || Wa(i, e); pe(a) || "#" !== a.charAt(0) ? this.$$html5 ? t = a : (t = "", pe(a) && (n = e, this.replace())) : pe(t = Wa(s, a)) && (t = a), za(t, this), this.$$path = function (e, t, a) { var n, i = /^\/[A-Z]:(\/.*)/; Ha(t, a) && (t = t.replace(a, "")); if (i.exec(t)) return e; return (n = i.exec(e)) ? n[1] : e }(this.$$path, t, n), this.$$compose() }, this.$$compose = function () { var e = ee(this.$$search), t = this.$$hash ? "#" + te(this.$$hash) : ""; this.$$url = Va(this.$$path) + (e ? "?" + e : "") + t, this.$$absUrl = n + (this.$$url ? s + this.$$url : "") }, this.$$parseLinkUrl = function (e, t) { return Ga(n) == Ga(e) && (this.$$parse(e), !0) } } function Za(i, s, o) { this.$$html5 = !0, Ja.apply(this, arguments), this.$$parseLinkUrl = function (e, t) { return t && "#" === t[0] ? (this.hash(t.slice(1)), !0) : (i == Ga(e) ? a = e : (n = Wa(s, e)) ? a = i + o + n : s === e + "/" && (a = s), a && this.$$parse(a), !!a); var a, n }, this.$$compose = function () { var e = ee(this.$$search), t = this.$$hash ? "#" + te(this.$$hash) : ""; this.$$url = Va(this.$$path) + (e ? "?" + e : "") + t, this.$$absUrl = i + o + this.$$url } } var Xa = { $$html5: !1, $$replace: !1, absUrl: en("$$absUrl"), url: function (e) { if (pe(e)) return this.$$url; var t = Ra.exec(e); return !t[1] && "" !== e || this.path(decodeURIComponent(t[1])), (t[2] || t[1] || "" === e) && this.search(t[3] || ""), this.hash(t[5] || ""), this }, protocol: en("$$protocol"), host: en("$$host"), port: en("$$port"), path: tn("$$path", function (e) { return "/" == (e = null !== e ? e.toString() : "").charAt(0) ? e : "/" + e }), search: function (a, e) { switch (arguments.length) { case 0: return this.$$search; case 1: if (ge(a) || w(a)) a = a.toString(), this.$$search = X(a); else { if (!me(a)) throw Ya("isrcharg", "The first argument of the `$location#search()` call must be a string or an object."); ue(a = P(a, {}), function (e, t) { null == e && delete a[t] }), this.$$search = a } break; default: pe(e) || null === e ? delete this.$$search[a] : this.$$search[a] = e } return this.$$compose(), this }, hash: tn("$$hash", function (e) { return null !== e ? e.toString() : "" }), replace: function () { return this.$$replace = !0, this } }; function en(e) { return function () { return this[e] } } function tn(t, a) { return function (e) { return pe(e) ? this[t] : (this[t] = a(e), this.$$compose(), this) } } function an() { var f = "", h = {enabled: !1, requireBase: !0, rewriteLinks: !0}; this.hashPrefix = function (e) { return V(e) ? (f = e, this) : f }, this.html5Mode = function (e) { return ye(e) ? (h.enabled = e, this) : me(e) ? (ye(e.enabled) && (h.enabled = e.enabled), ye(e.requireBase) && (h.requireBase = e.requireBase), ye(e.rewriteLinks) && (h.rewriteLinks = e.rewriteLinks), this) : h }, this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement", "$window", function (o, r, t, i, s) { var l, e, a, n = r.baseHref(), c = r.url(); if (h.enabled) { if (!n && h.requireBase) throw Ya("nobase", "$location in HTML5 mode requires a tag to be present!"); a = function (e) { return e.substring(0, e.indexOf("/", e.indexOf("//") + 2)) }(c) + (n || "/"), e = t.history ? Ka : Za } else a = Ga(c), e = Ja; var u = function (e) { return e.substr(0, Ga(e).lastIndexOf("/") + 1) }(a); (l = new e(a, u, "#" + f)).$$parseLinkUrl(c, c), l.$$state = r.state(); var d = /^\s*(javascript|mailto):/i; function p(e, t, a) { var n = l.url(), i = l.$$state; try { r.url(e, t, a), l.$$state = r.state() } catch (e) { throw l.url(n), l.$$state = i, e } } i.on("click", function (e) { if (h.rewriteLinks && !e.ctrlKey && !e.metaKey && !e.shiftKey && 2 != e.which && 2 != e.button) { for (var t = ce(e.target); "a" !== we(t[0]);) if (t[0] === i[0] || !(t = t.parent())[0]) return; var a = t.prop("href"), n = t.attr("href") || t.attr("xlink:href"); me(a) && "[object SVGAnimatedString]" === a.toString() && (a = Zn(a.animVal).href), d.test(a) || !a || t.attr("target") || e.isDefaultPrevented() || l.$$parseLinkUrl(a, n) && (e.preventDefault(), l.absUrl() != r.url() && (o.$apply(), s.angular["ff-684208-preventDefault"] = !0)) } }), Qa(l.absUrl()) != Qa(c) && r.url(l.absUrl(), !0); var m = !0; return r.onUrlChange(function (n, i) { pe(Wa(u, n)) ? s.location.href = n : (o.$evalAsync(function () { var e, t = l.absUrl(), a = l.$$state; n = Qa(n), l.$$parse(n), l.$$state = i, e = o.$broadcast("$locationChangeStart", n, t, i, a).defaultPrevented, l.absUrl() === n && (e ? (l.$$parse(t), p(t, !1, l.$$state = a)) : (m = !1, g(t, a))) }), o.$$phase || o.$digest()) }), o.$watch(function () { var a = Qa(r.url()), e = Qa(l.absUrl()), n = r.state(), i = l.$$replace, s = a !== e || l.$$html5 && t.history && n !== l.$$state; (m || s) && (m = !1, o.$evalAsync(function () { var e = l.absUrl(), t = o.$broadcast("$locationChangeStart", e, a, l.$$state, n).defaultPrevented; l.absUrl() === e && (t ? (l.$$parse(a), l.$$state = n) : (s && p(e, i, n === l.$$state ? null : l.$$state), g(a, n))) })), l.$$replace = !1 }), l; function g(e, t) { o.$broadcast("$locationChangeSuccess", l.absUrl(), e, l.$$state, t) } }] } function nn() { var a = !0, n = this; this.debugEnabled = function (e) { return V(e) ? (a = e, this) : a }, this.$get = ["$window", function (i) { return { log: t("log"), info: t("info"), warn: t("warn"), error: t("error"), debug: (e = t("debug"), function () { a && e.apply(n, arguments) }) }; var e; function t(e) { var a = i.console || {}, n = a[e] || a.log || q, t = !1; try { t = !!n.apply } catch (e) { } return t ? function () { var t = []; return ue(arguments, function (e) { t.push(function (e) { return e instanceof Error && (e.stack ? e = e.message && -1 === e.stack.indexOf(e.message) ? "Error: " + e.message + "\n" + e.stack : e.stack : e.sourceURL && (e = e.message + "\n" + e.sourceURL + ":" + e.line)), e }(e)) }), n.apply(a, t) } : function (e, t) { n(e, null == t ? "" : t) } } }] } ue([Za, Ja, Ka], function (t) { t.prototype = Object.create(Xa), t.prototype.state = function (e) { if (!arguments.length) return this.$$state; if (t !== Ka || !this.$$html5) throw Ya("nostate", "History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API"); return this.$$state = pe(e) ? null : e, this } }); var sn = $("$parse"); function on(e, t) { if ("__defineGetter__" === e || "__defineSetter__" === e || "__lookupGetter__" === e || "__lookupSetter__" === e || "__proto__" === e) throw sn("isecfld", "Attempting to access a disallowed field in Angular expressions! Expression: {0}", t); return e } function rn(e) { return e + "" } function ln(e, t) { if (e) { if (e.constructor === e) throw sn("isecfn", "Referencing Function in Angular expressions is disallowed! Expression: {0}", t); if (e.window === e) throw sn("isecwindow", "Referencing the Window in Angular expressions is disallowed! Expression: {0}", t); if (e.children && (e.nodeName || e.prop && e.attr && e.find)) throw sn("isecdom", "Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}", t); if (e === Object) throw sn("isecobj", "Referencing Object in Angular expressions is disallowed! Expression: {0}", t) } return e } var cn = Function.prototype.call, un = Function.prototype.apply, dn = Function.prototype.bind; function pn(e, t) { if (e) { if (e.constructor === e) throw sn("isecfn", "Referencing Function in Angular expressions is disallowed! Expression: {0}", t); if (e === cn || e === un || e === dn) throw sn("isecff", "Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}", t) } } function mn(e, t) { if (e && (e === (0).constructor || e === (!1).constructor || e === "".constructor || e === {}.constructor || e === [].constructor || e === Function.constructor)) throw sn("isecaf", "Assigning to a constructor is disallowed! Expression: {0}", t) } var gn = Ee(); ue("+ - * / % === !== == != < > <= >= && || ! = |".split(" "), function (e) { gn[e] = !0 }); var fn = {n: "\n", f: "\f", r: "\r", t: "\t", v: "\v", "'": "'", '"': '"'}, hn = function (e) { this.options = e }; hn.prototype = { constructor: hn, lex: function (e) { for (this.text = e, this.index = 0, this.tokens = []; this.index < this.text.length;) { var t = this.text.charAt(this.index); if ('"' === t || "'" === t) this.readString(t); else if (this.isNumber(t) || "." === t && this.isNumber(this.peek())) this.readNumber(); else if (this.isIdentifierStart(this.peekMultichar())) this.readIdent(); else if (this.is(t, "(){}[].,;:?")) this.tokens.push({ index: this.index, text: t }), this.index++; else if (this.isWhitespace(t)) this.index++; else { var a = t + this.peek(), n = a + this.peek(2), i = gn[t], s = gn[a], o = gn[n]; if (i || s || o) { var r = o ? n : s ? a : t; this.tokens.push({index: this.index, text: r, operator: !0}), this.index += r.length } else this.throwError("Unexpected next character ", this.index, this.index + 1) } } return this.tokens }, is: function (e, t) { return -1 !== t.indexOf(e) }, peek: function (e) { var t = e || 1; return this.index + t < this.text.length && this.text.charAt(this.index + t) }, isNumber: function (e) { return "0" <= e && e <= "9" && "string" == typeof e }, isWhitespace: function (e) { return " " === e || "\r" === e || "\t" === e || "\n" === e || "\v" === e || " " === e }, isIdentifierStart: function (e) { return this.options.isIdentifierStart ? this.options.isIdentifierStart(e, this.codePointAt(e)) : this.isValidIdentifierStart(e) }, isValidIdentifierStart: function (e) { return "a" <= e && e <= "z" || "A" <= e && e <= "Z" || "_" === e || "$" === e }, isIdentifierContinue: function (e) { return this.options.isIdentifierContinue ? this.options.isIdentifierContinue(e, this.codePointAt(e)) : this.isValidIdentifierContinue(e) }, isValidIdentifierContinue: function (e, t) { return this.isValidIdentifierStart(e, t) || this.isNumber(e) }, codePointAt: function (e) { return 1 === e.length ? e.charCodeAt(0) : (e.charCodeAt(0) << 10) + e.charCodeAt(1) - 56613888 }, peekMultichar: function () { var e = this.text.charAt(this.index), t = this.peek(); if (!t) return e; var a = e.charCodeAt(0), n = t.charCodeAt(0); return 55296 <= a && a <= 56319 && 56320 <= n && n <= 57343 ? e + t : e }, isExpOperator: function (e) { return "-" === e || "+" === e || this.isNumber(e) }, throwError: function (e, t, a) { a = a || this.index; var n = V(t) ? "s " + t + "-" + this.index + " [" + this.text.substring(t, a) + "]" : " " + a; throw sn("lexerr", "Lexer Error: {0} at column{1} in expression [{2}].", e, n, this.text) }, readNumber: function () { for (var e = "", t = this.index; this.index < this.text.length;) { var a = U(this.text.charAt(this.index)); if ("." == a || this.isNumber(a)) e += a; else { var n = this.peek(); if ("e" == a && this.isExpOperator(n)) e += a; else if (this.isExpOperator(a) && n && this.isNumber(n) && "e" == e.charAt(e.length - 1)) e += a; else { if (!this.isExpOperator(a) || n && this.isNumber(n) || "e" != e.charAt(e.length - 1)) break; this.throwError("Invalid exponent") } } this.index++ } this.tokens.push({index: t, text: e, constant: !0, value: Number(e)}) }, readIdent: function () { var e = this.index; for (this.index += this.peekMultichar().length; this.index < this.text.length;) { var t = this.peekMultichar(); if (!this.isIdentifierContinue(t)) break; this.index += t.length } this.tokens.push({index: e, text: this.text.slice(e, this.index), identifier: !0}) }, readString: function (e) { var t = this.index; this.index++; for (var a = "", n = e, i = !1; this.index < this.text.length;) { var s = this.text.charAt(this.index); if (n += s, i) { if ("u" === s) { var o = this.text.substring(this.index + 1, this.index + 5); o.match(/[\da-f]{4}/i) || this.throwError("Invalid unicode escape [\\u" + o + "]"), this.index += 4, a += String.fromCharCode(parseInt(o, 16)) } else { a += fn[s] || s } i = !1 } else if ("\\" === s) i = !0; else { if (s === e) return this.index++, void this.tokens.push({ index: t, text: n, constant: !0, value: a }); a += s } this.index++ } this.throwError("Unterminated quote", t) } }; var vn = function (e, t) { this.lexer = e, this.options = t }; function yn(e, t) { return void 0 !== e ? e : t } function bn(e, t) { return void 0 === e ? t : void 0 === t ? e : e + t } function wn(e, t) { return !e(t).$stateful } function $n(e, t) { var a, n; switch (e.type) { case vn.Program: a = !0, ue(e.body, function (e) { $n(e.expression, t), a = a && e.expression.constant }), e.constant = a; break; case vn.Literal: e.constant = !0, e.toWatch = []; break; case vn.UnaryExpression: $n(e.argument, t), e.constant = e.argument.constant, e.toWatch = e.argument.toWatch; break; case vn.BinaryExpression: $n(e.left, t), $n(e.right, t), e.constant = e.left.constant && e.right.constant, e.toWatch = e.left.toWatch.concat(e.right.toWatch); break; case vn.LogicalExpression: $n(e.left, t), $n(e.right, t), e.constant = e.left.constant && e.right.constant, e.toWatch = e.constant ? [] : [e]; break; case vn.ConditionalExpression: $n(e.test, t), $n(e.alternate, t), $n(e.consequent, t), e.constant = e.test.constant && e.alternate.constant && e.consequent.constant, e.toWatch = e.constant ? [] : [e]; break; case vn.Identifier: e.constant = !1, e.toWatch = [e]; break; case vn.MemberExpression: $n(e.object, t), e.computed && $n(e.property, t), e.constant = e.object.constant && (!e.computed || e.property.constant), e.toWatch = [e]; break; case vn.CallExpression: a = !!e.filter && wn(t, e.callee.name), n = [], ue(e.arguments, function (e) { $n(e, t), a = a && e.constant, e.constant || n.push.apply(n, e.toWatch) }), e.constant = a, e.toWatch = e.filter && wn(t, e.callee.name) ? n : [e]; break; case vn.AssignmentExpression: $n(e.left, t), $n(e.right, t), e.constant = e.left.constant && e.right.constant, e.toWatch = [e]; break; case vn.ArrayExpression: a = !0, n = [], ue(e.elements, function (e) { $n(e, t), a = a && e.constant, e.constant || n.push.apply(n, e.toWatch) }), e.constant = a, e.toWatch = n; break; case vn.ObjectExpression: a = !0, n = [], ue(e.properties, function (e) { $n(e.value, t), a = a && e.value.constant && !e.computed, e.value.constant || n.push.apply(n, e.value.toWatch) }), e.constant = a, e.toWatch = n; break; case vn.ThisExpression: case vn.LocalsExpression: e.constant = !1, e.toWatch = [] } } function kn(e) { if (1 == e.length) { var t = e[0].expression, a = t.toWatch; return 1 !== a.length ? a : a[0] !== t ? a : void 0 } } function xn(e) { return e.type === vn.Identifier || e.type === vn.MemberExpression } function _n(e) { if (1 === e.body.length && xn(e.body[0].expression)) return { type: vn.AssignmentExpression, left: e.body[0].expression, right: {type: vn.NGValueParameter}, operator: "=" } } function Sn(e) { return 0 === e.body.length || 1 === e.body.length && (e.body[0].expression.type === vn.Literal || e.body[0].expression.type === vn.ArrayExpression || e.body[0].expression.type === vn.ObjectExpression) } function In(e) { return e.constant } function Cn(e, t) { this.astBuilder = e, this.$filter = t } function An(e, t) { this.astBuilder = e, this.$filter = t } vn.Program = "Program", vn.ExpressionStatement = "ExpressionStatement", vn.AssignmentExpression = "AssignmentExpression", vn.ConditionalExpression = "ConditionalExpression", vn.LogicalExpression = "LogicalExpression", vn.BinaryExpression = "BinaryExpression", vn.UnaryExpression = "UnaryExpression", vn.CallExpression = "CallExpression", vn.MemberExpression = "MemberExpression", vn.Identifier = "Identifier", vn.Literal = "Literal", vn.ArrayExpression = "ArrayExpression", vn.Property = "Property", vn.ObjectExpression = "ObjectExpression", vn.ThisExpression = "ThisExpression", vn.LocalsExpression = "LocalsExpression", vn.NGValueParameter = "NGValueParameter", vn.prototype = { ast: function (e) { this.text = e, this.tokens = this.lexer.lex(e); var t = this.program(); return 0 !== this.tokens.length && this.throwError("is an unexpected token", this.tokens[0]), t }, program: function () { for (var e = []; ;) if (0 < this.tokens.length && !this.peek("}", ")", ";", "]") && e.push(this.expressionStatement()), !this.expect(";")) return { type: vn.Program, body: e } }, expressionStatement: function () { return {type: vn.ExpressionStatement, expression: this.filterChain()} }, filterChain: function () { for (var e = this.expression(); this.expect("|");) e = this.filter(e); return e }, expression: function () { return this.assignment() }, assignment: function () { var e = this.ternary(); return this.expect("=") && (e = { type: vn.AssignmentExpression, left: e, right: this.assignment(), operator: "=" }), e }, ternary: function () { var e, t, a = this.logicalOR(); return this.expect("?") && (e = this.expression(), this.consume(":")) ? (t = this.expression(), { type: vn.ConditionalExpression, test: a, alternate: e, consequent: t }) : a }, logicalOR: function () { for (var e = this.logicalAND(); this.expect("||");) e = { type: vn.LogicalExpression, operator: "||", left: e, right: this.logicalAND() }; return e }, logicalAND: function () { for (var e = this.equality(); this.expect("&&");) e = { type: vn.LogicalExpression, operator: "&&", left: e, right: this.equality() }; return e }, equality: function () { for (var e, t = this.relational(); e = this.expect("==", "!=", "===", "!==");) t = { type: vn.BinaryExpression, operator: e.text, left: t, right: this.relational() }; return t }, relational: function () { for (var e, t = this.additive(); e = this.expect("<", ">", "<=", ">=");) t = { type: vn.BinaryExpression, operator: e.text, left: t, right: this.additive() }; return t }, additive: function () { for (var e, t = this.multiplicative(); e = this.expect("+", "-");) t = { type: vn.BinaryExpression, operator: e.text, left: t, right: this.multiplicative() }; return t }, multiplicative: function () { for (var e, t = this.unary(); e = this.expect("*", "/", "%");) t = { type: vn.BinaryExpression, operator: e.text, left: t, right: this.unary() }; return t }, unary: function () { var e; return (e = this.expect("+", "-", "!")) ? { type: vn.UnaryExpression, operator: e.text, prefix: !0, argument: this.unary() } : this.primary() }, primary: function () { var e, t; for (this.expect("(") ? (e = this.filterChain(), this.consume(")")) : this.expect("[") ? e = this.arrayDeclaration() : this.expect("{") ? e = this.object() : this.selfReferential.hasOwnProperty(this.peek().text) ? e = P(this.selfReferential[this.consume().text]) : this.options.literals.hasOwnProperty(this.peek().text) ? e = { type: vn.Literal, value: this.options.literals[this.consume().text] } : this.peek().identifier ? e = this.identifier() : this.peek().constant ? e = this.constant() : this.throwError("not a primary expression", this.peek()); t = this.expect("(", "[", ".");) "(" === t.text ? (e = { type: vn.CallExpression, callee: e, arguments: this.parseArguments() }, this.consume(")")) : "[" === t.text ? (e = { type: vn.MemberExpression, object: e, property: this.expression(), computed: !0 }, this.consume("]")) : "." === t.text ? e = { type: vn.MemberExpression, object: e, property: this.identifier(), computed: !1 } : this.throwError("IMPOSSIBLE"); return e }, filter: function (e) { for (var t = [e], a = { type: vn.CallExpression, callee: this.identifier(), arguments: t, filter: !0 }; this.expect(":");) t.push(this.expression()); return a }, parseArguments: function () { var e = []; if (")" !== this.peekToken().text) for (; e.push(this.expression()), this.expect(",");) ; return e }, identifier: function () { var e = this.consume(); return e.identifier || this.throwError("is not a valid identifier", e), {type: vn.Identifier, name: e.text} }, constant: function () { return {type: vn.Literal, value: this.consume().value} }, arrayDeclaration: function () { var e = []; if ("]" !== this.peekToken().text) do { if (this.peek("]")) break; e.push(this.expression()) } while (this.expect(",")); return this.consume("]"), {type: vn.ArrayExpression, elements: e} }, object: function () { var e, t = []; if ("}" !== this.peekToken().text) do { if (this.peek("}")) break; e = { type: vn.Property, kind: "init" }, this.peek().constant ? (e.key = this.constant(), e.computed = !1, this.consume(":"), e.value = this.expression()) : this.peek().identifier ? (e.key = this.identifier(), e.computed = !1, this.peek(":") ? (this.consume(":"), e.value = this.expression()) : e.value = e.key) : this.peek("[") ? (this.consume("["), e.key = this.expression(), this.consume("]"), e.computed = !0, this.consume(":"), e.value = this.expression()) : this.throwError("invalid key", this.peek()), t.push(e) } while (this.expect(",")); return this.consume("}"), {type: vn.ObjectExpression, properties: t} }, throwError: function (e, t) { throw sn("syntax", "Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].", t.text, e, t.index + 1, this.text, this.text.substring(t.index)) }, consume: function (e) { if (0 === this.tokens.length) throw sn("ueoe", "Unexpected end of expression: {0}", this.text); var t = this.expect(e); return t || this.throwError("is unexpected, expecting [" + e + "]", this.peek()), t }, peekToken: function () { if (0 === this.tokens.length) throw sn("ueoe", "Unexpected end of expression: {0}", this.text); return this.tokens[0] }, peek: function (e, t, a, n) { return this.peekAhead(0, e, t, a, n) }, peekAhead: function (e, t, a, n, i) { if (this.tokens.length > e) { var s = this.tokens[e], o = s.text; if (o === t || o === a || o === n || o === i || !t && !a && !n && !i) return s } return !1 }, expect: function (e, t, a, n) { var i = this.peek(e, t, a, n); return !!i && (this.tokens.shift(), i) }, selfReferential: {this: {type: vn.ThisExpression}, $locals: {type: vn.LocalsExpression}} }, Cn.prototype = { compile: function (e, t) { var i = this, a = this.astBuilder.ast(e); this.state = { nextId: 0, filters: {}, expensiveChecks: t, fn: {vars: [], body: [], own: {}}, assign: {vars: [], body: [], own: {}}, inputs: [] }, $n(a, i.$filter); var n, s = ""; if (this.stage = "assign", n = _n(a)) { this.state.computing = "assign"; var o = this.nextId(); this.recurse(n, o), this.return_(o), s = "fn.assign=" + this.generateFunction("assign", "s,v,l") } var r = kn(a.body); i.stage = "inputs", ue(r, function (e, t) { var a = "fn" + t; i.state[a] = {vars: [], body: [], own: {}}, i.state.computing = a; var n = i.nextId(); i.recurse(e, n), i.return_(n), i.state.inputs.push(a), e.watchId = t }), this.state.computing = "fn", this.stage = "main", this.recurse(a); var l = '"' + this.USE + " " + this.STRICT + '";\n' + this.filterPrefix() + "var fn=" + this.generateFunction("fn", "s,l,a,i") + s + this.watchFns() + "return fn;", c = new Function("$filter", "ensureSafeMemberName", "ensureSafeObject", "ensureSafeFunction", "getStringValue", "ensureSafeAssignContext", "ifDefined", "plus", "text", l)(this.$filter, on, ln, pn, rn, mn, yn, bn, e); return this.state = this.stage = void 0, c.literal = Sn(a), c.constant = In(a), c }, USE: "use", STRICT: "strict", watchFns: function () { var t = [], e = this.state.inputs, a = this; return ue(e, function (e) { t.push("var " + e + "=" + a.generateFunction(e, "s")) }), e.length && t.push("fn.inputs=[" + e.join(",") + "];"), t.join("") }, generateFunction: function (e, t) { return "function(" + t + "){" + this.varsPrefix(e) + this.body(e) + "};" }, filterPrefix: function () { var a = [], n = this; return ue(this.state.filters, function (e, t) { a.push(e + "=$filter(" + n.escape(t) + ")") }), a.length ? "var " + a.join(",") + ";" : "" }, varsPrefix: function (e) { return this.state[e].vars.length ? "var " + this.state[e].vars.join(",") + ";" : "" }, body: function (e) { return this.state[e].body.join("") }, recurse: function (a, t, e, n, i, s) { var o, r, l, c, u, d = this; if (n = n || q, !s && V(a.watchId)) return t = t || this.nextId(), void this.if_("i", this.lazyAssign(t, this.computedMember("i", a.watchId)), this.lazyRecurse(a, t, e, n, i, !0)); switch (a.type) { case vn.Program: ue(a.body, function (e, t) { d.recurse(e.expression, void 0, void 0, function (e) { r = e }), t !== a.body.length - 1 ? d.current().body.push(r, ";") : d.return_(r) }); break; case vn.Literal: c = this.escape(a.value), this.assign(t, c), n(c); break; case vn.UnaryExpression: this.recurse(a.argument, void 0, void 0, function (e) { r = e }), c = a.operator + "(" + this.ifDefined(r, 0) + ")", this.assign(t, c), n(c); break; case vn.BinaryExpression: this.recurse(a.left, void 0, void 0, function (e) { o = e }), this.recurse(a.right, void 0, void 0, function (e) { r = e }), c = "+" === a.operator ? this.plus(o, r) : "-" === a.operator ? this.ifDefined(o, 0) + a.operator + this.ifDefined(r, 0) : "(" + o + ")" + a.operator + "(" + r + ")", this.assign(t, c), n(c); break; case vn.LogicalExpression: t = t || this.nextId(), d.recurse(a.left, t), d.if_("&&" === a.operator ? t : d.not(t), d.lazyRecurse(a.right, t)), n(t); break; case vn.ConditionalExpression: t = t || this.nextId(), d.recurse(a.test, t), d.if_(t, d.lazyRecurse(a.alternate, t), d.lazyRecurse(a.consequent, t)), n(t); break; case vn.Identifier: t = t || this.nextId(), e && (e.context = "inputs" === d.stage ? "s" : this.assign(this.nextId(), this.getHasOwnProperty("l", a.name) + "?l:s"), e.computed = !1, e.name = a.name), on(a.name), d.if_("inputs" === d.stage || d.not(d.getHasOwnProperty("l", a.name)), function () { d.if_("inputs" === d.stage || "s", function () { i && 1 !== i && d.if_(d.not(d.nonComputedMember("s", a.name)), d.lazyAssign(d.nonComputedMember("s", a.name), "{}")), d.assign(t, d.nonComputedMember("s", a.name)) }) }, t && d.lazyAssign(t, d.nonComputedMember("l", a.name))), (d.state.expensiveChecks || Dn(a.name)) && d.addEnsureSafeObject(t), n(t); break; case vn.MemberExpression: o = e && (e.context = this.nextId()) || this.nextId(), t = t || this.nextId(), d.recurse(a.object, o, void 0, function () { d.if_(d.notNull(o), function () { i && 1 !== i && d.addEnsureSafeAssignContext(o), a.computed ? (r = d.nextId(), d.recurse(a.property, r), d.getStringValue(r), d.addEnsureSafeMemberName(r), i && 1 !== i && d.if_(d.not(d.computedMember(o, r)), d.lazyAssign(d.computedMember(o, r), "{}")), c = d.ensureSafeObject(d.computedMember(o, r)), d.assign(t, c), e && (e.computed = !0, e.name = r)) : (on(a.property.name), i && 1 !== i && d.if_(d.not(d.nonComputedMember(o, a.property.name)), d.lazyAssign(d.nonComputedMember(o, a.property.name), "{}")), c = d.nonComputedMember(o, a.property.name), (d.state.expensiveChecks || Dn(a.property.name)) && (c = d.ensureSafeObject(c)), d.assign(t, c), e && (e.computed = !1, e.name = a.property.name)) }, function () { d.assign(t, "undefined") }), n(t) }, !!i); break; case vn.CallExpression: t = t || this.nextId(), a.filter ? (r = d.filter(a.callee.name), l = [], ue(a.arguments, function (e) { var t = d.nextId(); d.recurse(e, t), l.push(t) }), c = r + "(" + l.join(",") + ")", d.assign(t, c), n(t)) : (r = d.nextId(), o = {}, l = [], d.recurse(a.callee, r, o, function () { d.if_(d.notNull(r), function () { d.addEnsureSafeFunction(r), ue(a.arguments, function (e) { d.recurse(e, d.nextId(), void 0, function (e) { l.push(d.ensureSafeObject(e)) }) }), c = o.name ? (d.state.expensiveChecks || d.addEnsureSafeObject(o.context), d.member(o.context, o.name, o.computed) + "(" + l.join(",") + ")") : r + "(" + l.join(",") + ")", c = d.ensureSafeObject(c), d.assign(t, c) }, function () { d.assign(t, "undefined") }), n(t) })); break; case vn.AssignmentExpression: if (r = this.nextId(), o = {}, !xn(a.left)) throw sn("lval", "Trying to assign a value to a non l-value"); this.recurse(a.left, void 0, o, function () { d.if_(d.notNull(o.context), function () { d.recurse(a.right, r), d.addEnsureSafeObject(d.member(o.context, o.name, o.computed)), d.addEnsureSafeAssignContext(o.context), c = d.member(o.context, o.name, o.computed) + a.operator + r, d.assign(t, c), n(t || c) }) }, 1); break; case vn.ArrayExpression: l = [], ue(a.elements, function (e) { d.recurse(e, d.nextId(), void 0, function (e) { l.push(e) }) }), c = "[" + l.join(",") + "]", this.assign(t, c), n(c); break; case vn.ObjectExpression: u = !(l = []), ue(a.properties, function (e) { e.computed && (u = !0) }), u ? (t = t || this.nextId(), this.assign(t, "{}"), ue(a.properties, function (e) { e.computed ? (o = d.nextId(), d.recurse(e.key, o)) : o = e.key.type === vn.Identifier ? e.key.name : "" + e.key.value, r = d.nextId(), d.recurse(e.value, r), d.assign(d.member(t, o, e.computed), r) })) : (ue(a.properties, function (t) { d.recurse(t.value, a.constant ? void 0 : d.nextId(), void 0, function (e) { l.push(d.escape(t.key.type === vn.Identifier ? t.key.name : "" + t.key.value) + ":" + e) }) }), c = "{" + l.join(",") + "}", this.assign(t, c)), n(t || c); break; case vn.ThisExpression: this.assign(t, "s"), n("s"); break; case vn.LocalsExpression: this.assign(t, "l"), n("l"); break; case vn.NGValueParameter: this.assign(t, "v"), n("v") } }, getHasOwnProperty: function (e, t) { var a = e + "." + t, n = this.current().own; return n.hasOwnProperty(a) || (n[a] = this.nextId(!1, e + "&&(" + this.escape(t) + " in " + e + ")")), n[a] }, assign: function (e, t) { if (e) return this.current().body.push(e, "=", t, ";"), e }, filter: function (e) { return this.state.filters.hasOwnProperty(e) || (this.state.filters[e] = this.nextId(!0)), this.state.filters[e] }, ifDefined: function (e, t) { return "ifDefined(" + e + "," + this.escape(t) + ")" }, plus: function (e, t) { return "plus(" + e + "," + t + ")" }, return_: function (e) { this.current().body.push("return ", e, ";") }, if_: function (e, t, a) { if (!0 === e) t(); else { var n = this.current().body; n.push("if(", e, "){"), t(), n.push("}"), a && (n.push("else{"), a(), n.push("}")) } }, not: function (e) { return "!(" + e + ")" }, notNull: function (e) { return e + "!=null" }, nonComputedMember: function (e, t) { return /[$_a-zA-Z][$_a-zA-Z0-9]*/.test(t) ? e + "." + t : e + '["' + t.replace(/[^$_a-zA-Z0-9]/g, this.stringEscapeFn) + '"]' }, computedMember: function (e, t) { return e + "[" + t + "]" }, member: function (e, t, a) { return a ? this.computedMember(e, t) : this.nonComputedMember(e, t) }, addEnsureSafeObject: function (e) { this.current().body.push(this.ensureSafeObject(e), ";") }, addEnsureSafeMemberName: function (e) { this.current().body.push(this.ensureSafeMemberName(e), ";") }, addEnsureSafeFunction: function (e) { this.current().body.push(this.ensureSafeFunction(e), ";") }, addEnsureSafeAssignContext: function (e) { this.current().body.push(this.ensureSafeAssignContext(e), ";") }, ensureSafeObject: function (e) { return "ensureSafeObject(" + e + ",text)" }, ensureSafeMemberName: function (e) { return "ensureSafeMemberName(" + e + ",text)" }, ensureSafeFunction: function (e) { return "ensureSafeFunction(" + e + ",text)" }, getStringValue: function (e) { this.assign(e, "getStringValue(" + e + ")") }, ensureSafeAssignContext: function (e) { return "ensureSafeAssignContext(" + e + ",text)" }, lazyRecurse: function (e, t, a, n, i, s) { var o = this; return function () { o.recurse(e, t, a, n, i, s) } }, lazyAssign: function (e, t) { var a = this; return function () { a.assign(e, t) } }, stringEscapeRegex: /[^ a-zA-Z0-9]/g, stringEscapeFn: function (e) { return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) }, escape: function (e) { if (ge(e)) return "'" + e.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'"; if (w(e)) return e.toString(); if (!0 === e) return "true"; if (!1 === e) return "false"; if (null === e) return "null"; if (void 0 === e) return "undefined"; throw sn("esc", "IMPOSSIBLE") }, nextId: function (e, t) { var a = "v" + this.state.nextId++; return e || this.current().vars.push(a + (t ? "=" + t : "")), a }, current: function () { return this.state[this.state.computing] } }, An.prototype = { compile: function (e, t) { var a, n, i = this, s = this.astBuilder.ast(e); this.expression = e, this.expensiveChecks = t, $n(s, i.$filter), (a = _n(s)) && (n = this.recurse(a)); var o, r = kn(s.body); r && (o = [], ue(r, function (e, t) { var a = i.recurse(e); e.input = a, o.push(a), e.watchId = t })); var l = []; ue(s.body, function (e) { l.push(i.recurse(e.expression)) }); var c = 0 === s.body.length ? q : 1 === s.body.length ? l[0] : function (t, a) { var n; return ue(l, function (e) { n = e(t, a) }), n }; return n && (c.assign = function (e, t, a) { return n(e, a, t) }), o && (c.inputs = o), c.literal = Sn(s), c.constant = In(s), c }, recurse: function (e, l, t) { var o, c, u, d = this; if (e.input) return this.inputs(e.input, e.watchId); switch (e.type) { case vn.Literal: return this.value(e.value, l); case vn.UnaryExpression: return c = this.recurse(e.argument), this["unary" + e.operator](c, l); case vn.BinaryExpression: case vn.LogicalExpression: return o = this.recurse(e.left), c = this.recurse(e.right), this["binary" + e.operator](o, c, l); case vn.ConditionalExpression: return this["ternary?:"](this.recurse(e.test), this.recurse(e.alternate), this.recurse(e.consequent), l); case vn.Identifier: return on(e.name, d.expression), d.identifier(e.name, d.expensiveChecks || Dn(e.name), l, t, d.expression); case vn.MemberExpression: return o = this.recurse(e.object, !1, !!t), e.computed || (on(e.property.name, d.expression), c = e.property.name), e.computed && (c = this.recurse(e.property)), e.computed ? this.computedMember(o, c, l, t, d.expression) : this.nonComputedMember(o, c, d.expensiveChecks, l, t, d.expression); case vn.CallExpression: return u = [], ue(e.arguments, function (e) { u.push(d.recurse(e)) }), e.filter && (c = this.$filter(e.callee.name)), e.filter || (c = this.recurse(e.callee, !0)), e.filter ? function (e, t, a, n) { for (var i = [], s = 0; s < u.length; ++s) i.push(u[s](e, t, a, n)); var o = c.apply(void 0, i, n); return l ? {context: void 0, name: void 0, value: o} : o } : function (e, t, a, n) { var i, s = c(e, t, a, n); if (null != s.value) { ln(s.context, d.expression), pn(s.value, d.expression); for (var o = [], r = 0; r < u.length; ++r) o.push(ln(u[r](e, t, a, n), d.expression)); i = ln(s.value.apply(s.context, o), d.expression) } return l ? {value: i} : i }; case vn.AssignmentExpression: return o = this.recurse(e.left, !0, 1), c = this.recurse(e.right), function (e, t, a, n) { var i = o(e, t, a, n), s = c(e, t, a, n); return ln(i.value, d.expression), mn(i.context), i.context[i.name] = s, l ? {value: s} : s }; case vn.ArrayExpression: return u = [], ue(e.elements, function (e) { u.push(d.recurse(e)) }), function (e, t, a, n) { for (var i = [], s = 0; s < u.length; ++s) i.push(u[s](e, t, a, n)); return l ? {value: i} : i }; case vn.ObjectExpression: return u = [], ue(e.properties, function (e) { e.computed ? u.push({ key: d.recurse(e.key), computed: !0, value: d.recurse(e.value) }) : u.push({ key: e.key.type === vn.Identifier ? e.key.name : "" + e.key.value, computed: !1, value: d.recurse(e.value) }) }), function (e, t, a, n) { for (var i = {}, s = 0; s < u.length; ++s) u[s].computed ? i[u[s].key(e, t, a, n)] = u[s].value(e, t, a, n) : i[u[s].key] = u[s].value(e, t, a, n); return l ? {value: i} : i }; case vn.ThisExpression: return function (e) { return l ? {value: e} : e }; case vn.LocalsExpression: return function (e, t) { return l ? {value: t} : t }; case vn.NGValueParameter: return function (e, t, a) { return l ? {value: a} : a } } }, "unary+": function (s, o) { return function (e, t, a, n) { var i = s(e, t, a, n); return i = V(i) ? +i : 0, o ? {value: i} : i } }, "unary-": function (s, o) { return function (e, t, a, n) { var i = s(e, t, a, n); return i = V(i) ? -i : 0, o ? {value: i} : i } }, "unary!": function (s, o) { return function (e, t, a, n) { var i = !s(e, t, a, n); return o ? {value: i} : i } }, "binary+": function (s, o, r) { return function (e, t, a, n) { var i = bn(s(e, t, a, n), o(e, t, a, n)); return r ? {value: i} : i } }, "binary-": function (r, l, c) { return function (e, t, a, n) { var i = r(e, t, a, n), s = l(e, t, a, n), o = (V(i) ? i : 0) - (V(s) ? s : 0); return c ? {value: o} : o } }, "binary*": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) * o(e, t, a, n); return r ? {value: i} : i } }, "binary/": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) / o(e, t, a, n); return r ? {value: i} : i } }, "binary%": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) % o(e, t, a, n); return r ? {value: i} : i } }, "binary===": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) === o(e, t, a, n); return r ? {value: i} : i } }, "binary!==": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) !== o(e, t, a, n); return r ? {value: i} : i } }, "binary==": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) == o(e, t, a, n); return r ? {value: i} : i } }, "binary!=": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) != o(e, t, a, n); return r ? {value: i} : i } }, "binary<": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) < o(e, t, a, n); return r ? {value: i} : i } }, "binary>": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) > o(e, t, a, n); return r ? {value: i} : i } }, "binary<=": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) <= o(e, t, a, n); return r ? {value: i} : i } }, "binary>=": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) >= o(e, t, a, n); return r ? {value: i} : i } }, "binary&&": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) && o(e, t, a, n); return r ? {value: i} : i } }, "binary||": function (s, o, r) { return function (e, t, a, n) { var i = s(e, t, a, n) || o(e, t, a, n); return r ? {value: i} : i } }, "ternary?:": function (s, o, r, l) { return function (e, t, a, n) { var i = s(e, t, a, n) ? o(e, t, a, n) : r(e, t, a, n); return l ? {value: i} : i } }, value: function (e, t) { return function () { return t ? {context: void 0, name: void 0, value: e} : e } }, identifier: function (o, r, l, c, u) { return function (e, t, a, n) { var i = t && o in t ? t : e; c && 1 !== c && i && !i[o] && (i[o] = {}); var s = i ? i[o] : void 0; return r && ln(s, u), l ? {context: i, name: o, value: s} : s } }, computedMember: function (r, l, c, u, d) { return function (e, t, a, n) { var i, s, o = r(e, t, a, n); return null != o && (on(i = rn(i = l(e, t, a, n)), d), u && 1 !== u && (mn(o), o && !o[i] && (o[i] = {})), ln(s = o[i], d)), c ? { context: o, name: i, value: s } : s } }, nonComputedMember: function (o, r, l, c, u, d) { return function (e, t, a, n) { var i = o(e, t, a, n); u && 1 !== u && (mn(i), i && !i[r] && (i[r] = {})); var s = null != i ? i[r] : void 0; return (l || Dn(r)) && ln(s, d), c ? {context: i, name: r, value: s} : s } }, inputs: function (i, s) { return function (e, t, a, n) { return n ? n[s] : i(e, t, a) } } }; var Mn = function (e, t, a) { this.lexer = e, this.$filter = t, this.options = a, this.ast = new vn(e, a), this.astCompiler = a.csp ? new An(this.ast, t) : new Cn(this.ast, t) }; function Dn(e) { return "constructor" == e } Mn.prototype = { constructor: Mn, parse: function (e) { return this.astCompiler.compile(e, this.options.expensiveChecks) } }; var Tn = Object.prototype.valueOf; function Pn(e) { return he(e.valueOf) ? e.valueOf() : Tn.call(e) } function En() { var a, n, b = Ee(), w = Ee(), i = {true: !0, false: !1, null: null, undefined: void 0}; this.addLiteral = function (e, t) { i[e] = t }, this.setIdentifierFns = function (e, t) { return a = e, n = t, this }, this.$get = ["$filter", function (c) { var e = F().noUnsafeEval, u = { csp: e, expensiveChecks: !1, literals: P(i), isIdentifierStart: he(a) && a, isIdentifierContinue: he(n) && n }, d = { csp: e, expensiveChecks: !0, literals: P(i), isIdentifierStart: he(a) && a, isIdentifierContinue: he(n) && n }, p = !1; return t.$$runningExpensiveChecks = function () { return p }, t; function t(e, t, a) { var n, i, s; switch (a = a || p, typeof e) { case"string": e = e.trim(); var o = a ? w : b; if (!(n = o[s = e])) { ":" === e.charAt(0) && ":" === e.charAt(1) && (i = !0, e = e.substring(2)); var r = a ? d : u, l = new hn(r); (n = new Mn(l, c, r).parse(e)).constant ? n.$$watchDelegate = v : i ? n.$$watchDelegate = n.literal ? h : f : n.inputs && (n.$$watchDelegate = g), a && (n = function e(s) { if (!s) return s; a.$$watchDelegate = s.$$watchDelegate; a.assign = e(s.assign); a.constant = s.constant; a.literal = s.literal; for (var t = 0; s.inputs && t < s.inputs.length; ++t) s.inputs[t] = e(s.inputs[t]); a.inputs = s.inputs; return a; function a(e, t, a, n) { var i = p; p = !0; try { return s(e, t, a, n) } finally { p = i } } }(n)), o[s] = n } return y(n, t); case"function": return y(e, t); default: return y(q, t) } } function m(e, t) { return null == e || null == t ? e === t : ("object" != typeof e || "object" != typeof (e = Pn(e))) && (e === t || e != e && t != t) } function g(e, t, a, s, n) { var o, r = s.inputs; if (1 === r.length) { var i = m; return r = r[0], e.$watch(function (e) { var t = r(e); return m(t, i) || (o = s(e, void 0, void 0, [t]), i = t && Pn(t)), o }, t, a, n) } for (var l = [], c = [], u = 0, d = r.length; u < d; u++) l[u] = m, c[u] = null; return e.$watch(function (e) { for (var t = !1, a = 0, n = r.length; a < n; a++) { var i = r[a](e); (t || (t = !m(i, l[a]))) && (c[a] = i, l[a] = i && Pn(i)) } return t && (o = s(e, void 0, void 0, c)), o }, t, a, n) } function f(e, n, t, a) { var i, s; return i = e.$watch(function (e) { return a(e) }, function (e, t, a) { s = e, he(n) && n.apply(this, arguments), V(e) && a.$$postDigest(function () { V(s) && i() }) }, t) } function h(e, n, t, a) { var i, s; return i = e.$watch(function (e) { return a(e) }, function (e, t, a) { s = e, he(n) && n.call(this, e, t, a), o(e) && a.$$postDigest(function () { o(s) && i() }) }, t); function o(e) { var t = !0; return ue(e, function (e) { V(e) || (t = !1) }), t } } function v(e, t, a, n) { var i; return i = e.$watch(function (e) { return i(), n(e) }, t, a) } function y(o, r) { if (!r) return o; var e = o.$$watchDelegate, s = !1, t = e !== h && e !== f ? function (e, t, a, n) { var i = s && n ? n[0] : o(e, t, a, n); return r(i, e, t) } : function (e, t, a, n) { var i = o(e, t, a, n), s = r(i, e, t); return V(i) ? s : i }; return o.$$watchDelegate && o.$$watchDelegate !== g ? t.$$watchDelegate = o.$$watchDelegate : r.$stateful || (t.$$watchDelegate = g, s = !o.inputs, t.inputs = o.inputs ? o.inputs : [o]), t } }] } function jn() { this.$get = ["$rootScope", "$exceptionHandler", function (t, e) { return On(function (e) { t.$evalAsync(e) }, e) }] } function Ln() { this.$get = ["$browser", "$exceptionHandler", function (t, e) { return On(function (e) { t.defer(e) }, e) }] } function On(t, o) { var a = $("$q", TypeError); function e() { this.$$state = {status: 0} } function s(t, a) { return function (e) { a.call(t, e) } } function r(e) { !e.processScheduled && e.pending && (e.processScheduled = !0, t(function () { !function (e) { var t, a, n; n = e.pending, e.processScheduled = !1, e.pending = void 0; for (var i = 0, s = n.length; i < s; ++i) { a = n[i][0], t = n[i][e.status]; try { he(t) ? a.resolve(t(e.value)) : 1 === e.status ? a.resolve(e.value) : a.reject(e.value) } catch (e) { a.reject(e), o(e) } } }(e) })) } function l() { this.promise = new e } de(e.prototype, { then: function (e, t, a) { if (pe(e) && pe(t) && pe(a)) return this; var n = new l; return this.$$state.pending = this.$$state.pending || [], this.$$state.pending.push([n, e, t, a]), 0 < this.$$state.status && r(this.$$state), n.promise }, catch: function (e) { return this.then(null, e) }, finally: function (t, e) { return this.then(function (e) { return n(e, !0, t) }, function (e) { return n(e, !1, t) }, e) } }), de(l.prototype, { resolve: function (e) { this.promise.$$state.status || (e === this.promise ? this.$$reject(a("qcycle", "Expected promise to be resolved with value other than itself '{0}'", e)) : this.$$resolve(e)) }, $$resolve: function (e) { var t, a = this, n = !1; try { (me(e) || he(e)) && (t = e && e.then), he(t) ? (this.promise.$$state.status = -1, t.call(e, function (e) { if (n) return; n = !0, a.$$resolve(e) }, i, s(this, this.notify))) : (this.promise.$$state.value = e, this.promise.$$state.status = 1, r(this.promise.$$state)) } catch (e) { i(e), o(e) } function i(e) { n || (n = !0, a.$$reject(e)) } }, reject: function (e) { this.promise.$$state.status || this.$$reject(e) }, $$reject: function (e) { this.promise.$$state.value = e, this.promise.$$state.status = 2, r(this.promise.$$state) }, notify: function (i) { var s = this.promise.$$state.pending; this.promise.$$state.status <= 0 && s && s.length && t(function () { for (var e, t, a = 0, n = s.length; a < n; a++) { t = s[a][0], e = s[a][3]; try { t.notify(he(e) ? e(i) : i) } catch (e) { o(e) } } }) } }); function i(e, t) { var a = new l; return t ? a.resolve(e) : a.reject(e), a.promise } function c(e, t, a, n) { var i = new l; return i.resolve(e), i.promise.then(t, a, n) } var n = function (e, t, a) { var n = null; try { he(a) && (n = a()) } catch (e) { return i(e, !1) } return C(n) ? n.then(function () { return i(e, t) }, function (e) { return i(e, !1) }) : i(e, t) }, u = c; function d(e) { if (!he(e)) throw a("norslvr", "Expected resolverFn, got '{0}'", e); var t = new l; return e(function (e) { t.resolve(e) }, function (e) { t.reject(e) }), t.promise } return d.prototype = e.prototype, d.defer = function () { var e = new l; return e.resolve = s(e, e.resolve), e.reject = s(e, e.reject), e.notify = s(e, e.notify), e }, d.reject = function (e) { var t = new l; return t.reject(e), t.promise }, d.when = c, d.resolve = u, d.all = function (e) { var a = new l, n = 0, i = fe(e) ? [] : {}; return ue(e, function (e, t) { n++, c(e).then(function (e) { i.hasOwnProperty(t) || (i[t] = e, --n || a.resolve(i)) }, function (e) { i.hasOwnProperty(t) || a.reject(e) }) }), 0 === n && a.resolve(i), a.promise }, d } function Un() { this.$get = ["$window", "$timeout", function (e, a) { var n = e.requestAnimationFrame || e.webkitRequestAnimationFrame, i = e.cancelAnimationFrame || e.webkitCancelAnimationFrame || e.webkitCancelRequestAnimationFrame, t = !!n, s = t ? function (e) { var t = n(e); return function () { i(t) } } : function (e) { var t = a(e, 16.66, !1); return function () { a.cancel(t) } }; return s.supported = t, s }] } function Nn() { var _ = 10, S = $("$rootScope"), I = null, C = null; this.digestTtl = function (e) { return arguments.length && (_ = e), _ }, this.$get = ["$exceptionHandler", "$parse", "$browser", function (m, g, f) { function n(e) { e.currentScope.$$destroyed = !0 } function i() { this.$id = A(), this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null, (this.$root = this).$$destroyed = !1, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$$isolateBindings = null } i.prototype = { constructor: i, $new: function (e, t) { var a; return t = t || this, e ? (a = new i).$root = this.$root : (this.$$ChildScope || (this.$$ChildScope = function (e) { function t() { this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$id = A(), this.$$ChildScope = null } return t.prototype = e, t }(this)), a = new this.$$ChildScope), a.$parent = t, a.$$prevSibling = t.$$childTail, t.$$childHead ? (t.$$childTail.$$nextSibling = a, t.$$childTail = a) : t.$$childHead = t.$$childTail = a, !e && t == this || a.$on("$destroy", n), a }, $watch: function (e, t, a, n) { var i = g(e); if (i.$$watchDelegate) return i.$$watchDelegate(this, t, a, i, e); var s = this, o = s.$$watchers, r = {fn: t, last: k, get: i, exp: n || e, eq: !!a}; return I = null, he(t) || (r.fn = q), o || (o = s.$$watchers = []), o.unshift(r), l(this, 1), function () { 0 <= $e(o, r) && l(s, -1), I = null } }, $watchGroup: function (e, n) { var i = new Array(e.length), s = new Array(e.length), o = [], r = this, l = !1, t = !0; if (!e.length) { var a = !0; return r.$evalAsync(function () { a && n(s, s, r) }), function () { a = !1 } } if (1 === e.length) return this.$watch(e[0], function (e, t, a) { s[0] = e, i[0] = t, n(s, e === t ? s : i, a) }); function c() { l = !1, t ? (t = !1, n(s, s, r)) : n(s, i, r) } return ue(e, function (e, a) { var t = r.$watch(e, function (e, t) { s[a] = e, i[a] = t, l || (l = !0, r.$evalAsync(c)) }); o.push(t) }), function () { for (; o.length;) o.shift()() } }, $watchCollection: function (e, a) { m.$stateful = !0; var o, r, n, i = this, s = 1 < a.length, l = 0, t = g(e, m), c = [], u = {}, d = !0, p = 0; function m(e) { var t, a, n, i; if (!pe(o = e)) { if (me(o)) if (j(o)) { r !== c && (p = (r = c).length = 0, l++), t = o.length, p !== t && (l++, r.length = p = t); for (var s = 0; s < t; s++) i = r[s], n = o[s], i != i && n != n || i === n || (l++, r[s] = n) } else { for (a in r !== u && (r = u = {}, p = 0, l++), t = 0, o) O.call(o, a) && (t++, n = o[a], i = r[a], a in r ? i != i && n != n || i === n || (l++, r[a] = n) : (p++, r[a] = n, l++)); if (t < p) for (a in l++, r) O.call(o, a) || (p--, delete r[a]) } else r !== o && (r = o, l++); return l } } return this.$watch(t, function () { if (d ? (d = !1, a(o, o, i)) : a(o, n, i), s) if (me(o)) if (j(o)) { n = new Array(o.length); for (var e = 0; e < o.length; e++) n[e] = o[e] } else for (var t in n = {}, o) O.call(o, t) && (n[t] = o[t]); else n = o }) }, $digest: function () { var e, t, a, n, i, s, o, r, l, c, u = _, d = []; w("$digest"), f.$$checkUrlChange(), this === h && null !== C && (f.defer.cancel(C), x()), I = null; do { s = !1, r = this; for (var p = 0; p < v.length; p++) { try { (c = v[p]).scope.$eval(c.expression, c.locals) } catch (e) { m(e) } I = null } v.length = 0; e:do { if (n = r.$$watchers) for (i = n.length; i--;) try { if (e = n[i]) if ((t = (0, e.get)(r)) === (a = e.last) || (e.eq ? ke(t, a) : "number" == typeof t && "number" == typeof a && isNaN(t) && isNaN(a))) { if (e === I) { s = !1; break e } } else s = !0, (I = e).last = e.eq ? P(t, null) : t, (0, e.fn)(t, a === k ? t : a, r), u < 5 && (d[l = 4 - u] || (d[l] = []), d[l].push({ msg: he(e.exp) ? "fn: " + (e.exp.name || e.exp.toString()) : e.exp, newVal: t, oldVal: a })) } catch (e) { m(e) } if (!(o = r.$$watchersCount && r.$$childHead || r !== this && r.$$nextSibling)) for (; r !== this && !(o = r.$$nextSibling);) r = r.$parent } while (r = o); if ((s || v.length) && !u--) throw $(), S("infdig", "{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}", _, d) } while (s || v.length); for ($(); b < y.length;) try { y[b++]() } catch (e) { m(e) } y.length = b = 0 }, $destroy: function () { if (!this.$$destroyed) { var e = this.$parent; for (var t in this.$broadcast("$destroy"), this.$$destroyed = !0, this === h && f.$$applicationDestroyed(), l(this, -this.$$watchersCount), this.$$listenerCount) s(this, this.$$listenerCount[t], t); e && e.$$childHead == this && (e.$$childHead = this.$$nextSibling), e && e.$$childTail == this && (e.$$childTail = this.$$prevSibling), this.$$prevSibling && (this.$$prevSibling.$$nextSibling = this.$$nextSibling), this.$$nextSibling && (this.$$nextSibling.$$prevSibling = this.$$prevSibling), this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = q, this.$on = this.$watch = this.$watchGroup = function () { return q }, this.$$listeners = {}, this.$$nextSibling = null, function e(t) { 9 === N && (t.$$childHead && e(t.$$childHead), t.$$nextSibling && e(t.$$nextSibling)), t.$parent = t.$$nextSibling = t.$$prevSibling = t.$$childHead = t.$$childTail = t.$root = t.$$watchers = null }(this) } }, $eval: function (e, t) { return g(e)(this, t) }, $evalAsync: function (e, t) { h.$$phase || v.length || f.defer(function () { v.length && h.$digest() }), v.push({scope: this, expression: g(e), locals: t}) }, $$postDigest: function (e) { y.push(e) }, $apply: function (e) { try { w("$apply"); try { return this.$eval(e) } finally { $() } } catch (e) { m(e) } finally { try { h.$digest() } catch (e) { throw m(e), e } } }, $applyAsync: function (e) { var t = this; e && a.push(function () { t.$eval(e) }), e = g(e), null === C && (C = f.defer(function () { h.$apply(x) })) }, $on: function (t, a) { var n = this.$$listeners[t]; n || (this.$$listeners[t] = n = []), n.push(a); for (var e = this; e.$$listenerCount[t] || (e.$$listenerCount[t] = 0), e.$$listenerCount[t]++, e = e.$parent;) ; var i = this; return function () { var e = n.indexOf(a); -1 !== e && (n[e] = null, s(i, 1, t)) } }, $emit: function (e, t) { var a, n, i, s = [], o = this, r = !1, l = { name: e, targetScope: o, stopPropagation: function () { r = !0 }, preventDefault: function () { l.defaultPrevented = !0 }, defaultPrevented: !1 }, c = H([l], arguments, 1); do { for (a = o.$$listeners[e] || s, l.currentScope = o, n = 0, i = a.length; n < i; n++) if (a[n]) try { a[n].apply(null, c) } catch (e) { m(e) } else a.splice(n, 1), n--, i--; if (r) return l.currentScope = null, l; o = o.$parent } while (o); return l.currentScope = null, l }, $broadcast: function (e, t) { var a = this, n = a, i = a, s = { name: e, targetScope: a, preventDefault: function () { s.defaultPrevented = !0 }, defaultPrevented: !1 }; if (!a.$$listenerCount[e]) return s; for (var o, r, l, c = H([s], arguments, 1); n = i;) { for (r = 0, l = (o = (s.currentScope = n).$$listeners[e] || []).length; r < l; r++) if (o[r]) try { o[r].apply(null, c) } catch (e) { m(e) } else o.splice(r, 1), r--, l--; if (!(i = n.$$listenerCount[e] && n.$$childHead || n !== a && n.$$nextSibling)) for (; n !== a && !(i = n.$$nextSibling);) n = n.$parent } return s.currentScope = null, s } }; var h = new i, v = h.$$asyncQueue = [], y = h.$$postDigestQueue = [], a = h.$$applyAsyncQueue = [], b = 0; return h; function w(e) { if (h.$$phase) throw S("inprog", "{0} already in progress", h.$$phase); h.$$phase = e } function $() { h.$$phase = null } function l(e, t) { for (; e.$$watchersCount += t, e = e.$parent;) ; } function s(e, t, a) { for (; e.$$listenerCount[a] -= t, 0 === e.$$listenerCount[a] && delete e.$$listenerCount[a], e = e.$parent;) ; } function k() { } function x() { for (; a.length;) try { a.shift()() } catch (e) { m(e) } C = null } }] } function Bn() { var i = /^\s*(https?|ftp|mailto|tel|file):/, s = /^\s*((https?|ftp|file|blob):|data:image\/)/; this.aHrefSanitizationWhitelist = function (e) { return V(e) ? (i = e, this) : i }, this.imgSrcSanitizationWhitelist = function (e) { return V(e) ? (s = e, this) : s }, this.$get = function () { return function (e, t) { var a, n = t ? s : i; return "" === (a = Zn(e).href) || a.match(n) ? e : "unsafe:" + a } } } var Rn = $("$sce"), qn = {HTML: "html", CSS: "css", URL: "url", RESOURCE_URL: "resourceUrl", JS: "js"}; function Yn(e) { var t = []; return V(e) && ue(e, function (e) { t.push(function (e) { if ("self" === e) return e; if (ge(e)) { if (-1 < e.indexOf("***")) throw Rn("iwcard", "Illegal sequence *** in string matcher. String: {0}", e); return e = D(e).replace("\\*\\*", ".*").replace("\\*", "[^:/.?&;]*"), new RegExp("^" + e + "$") } if (x(e)) return new RegExp("^" + e.source + "$"); throw Rn("imatcher", 'Matchers may only be "self", string patterns or RegExp objects') }(e)) }), t } function Vn() { this.SCE_CONTEXTS = qn; var o = ["self"], r = []; this.resourceUrlWhitelist = function (e) { return arguments.length && (o = Yn(e)), o }, this.resourceUrlBlacklist = function (e) { return arguments.length && (r = Yn(e)), r }, this.$get = ["$injector", function (e) { var n = function (e) { throw Rn("unsafe", "Attempting to use an unsafe value in a safe context.") }; function s(e, t) { return "self" === e ? Xn(t) : !!e.exec(t.href) } function t(e) { function t(e) { this.$$unwrapTrustedValue = function () { return e } } return e && (t.prototype = new e), t.prototype.valueOf = function () { return this.$$unwrapTrustedValue() }, t.prototype.toString = function () { return this.$$unwrapTrustedValue().toString() }, t } e.has("$sanitize") && (n = e.get("$sanitize")); var a = t(), i = {}; return i[qn.HTML] = t(a), i[qn.CSS] = t(a), i[qn.URL] = t(a), i[qn.JS] = t(a), i[qn.RESOURCE_URL] = t(i[qn.URL]), { trustAs: function (e, t) { var a = i.hasOwnProperty(e) ? i[e] : null; if (!a) throw Rn("icontext", "Attempted to trust a value in invalid context. Context: {0}; Value: {1}", e, t); if (null === t || pe(t) || "" === t) return t; if ("string" != typeof t) throw Rn("itype", "Attempted to trust a non-string value in a content requiring a string: Context: {0}", e); return new a(t) }, getTrusted: function (e, t) { if (null === t || pe(t) || "" === t) return t; var a = i.hasOwnProperty(e) ? i[e] : null; if (a && t instanceof a) return t.$$unwrapTrustedValue(); if (e === qn.RESOURCE_URL) { if (function (e) { var t, a, n = Zn(e.toString()), i = !1; for (t = 0, a = o.length; t < a; t++) if (s(o[t], n)) { i = !0; break } if (i) for (t = 0, a = r.length; t < a; t++) if (s(r[t], n)) { i = !1; break } return i }(t)) return t; throw Rn("insecurl", "Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}", t.toString()) } if (e === qn.HTML) return n(t); throw Rn("unsafe", "Attempting to use an unsafe value in a safe context.") }, valueOf: function (e) { return e instanceof a ? e.$$unwrapTrustedValue() : e } } }] } function Fn() { var t = !0; this.enabled = function (e) { return arguments.length && (t = !!e), t }, this.$get = ["$parse", "$sceDelegate", function (n, e) { if (t && N < 8) throw Rn("iequirks", "Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information."); var i = E(qn); i.isEnabled = function () { return t }, i.trustAs = e.trustAs, i.getTrusted = e.getTrusted, i.valueOf = e.valueOf, t || (i.trustAs = i.getTrusted = function (e, t) { return t }, i.valueOf = Y), i.parseAs = function (t, e) { var a = n(e); return a.literal && a.constant ? a : n(e, function (e) { return i.getTrusted(t, e) }) }; var s = i.parseAs, o = i.getTrusted, r = i.trustAs; return ue(qn, function (t, e) { var a = U(e); i[Qe("parse_as_" + a)] = function (e) { return s(t, e) }, i[Qe("get_trusted_" + a)] = function (e) { return o(t, e) }, i[Qe("trust_as_" + a)] = function (e) { return r(t, e) } }), i }] } function zn() { this.$get = ["$window", "$document", function (e, t) { var a, n, i = {}, s = !(e.chrome && e.chrome.app && e.chrome.app.runtime) && e.history && e.history.pushState, o = f((/android (\d+)/.exec(U((e.navigator || {}).userAgent)) || [])[1]), r = /Boxee/i.test((e.navigator || {}).userAgent), l = t[0] || {}, c = /^(Moz|webkit|ms)(?=[A-Z])/, u = l.body && l.body.style, d = !1, p = !1; if (u) { for (var m in u) if (n = c.exec(m)) { a = (a = n[0])[0].toUpperCase() + a.substr(1); break } a || (a = "WebkitOpacity" in u && "webkit"), d = !!("transition" in u || a + "Transition" in u), p = !!("animation" in u || a + "Animation" in u), !o || d && p || (d = ge(u.webkitTransition), p = ge(u.webkitAnimation)) } return { history: !(!s || o < 4 || r), hasEvent: function (e) { if ("input" === e && N <= 11) return !1; if (pe(i[e])) { var t = l.createElement("div"); i[e] = "on" + e in t } return i[e] }, csp: F(), vendorPrefix: a, transitions: d, animations: p, android: o } }] } var Hn = $("$compile"); function Wn() { var l; this.httpOptions = function (e) { return e ? (l = e, this) : l }, this.$get = ["$templateCache", "$http", "$q", "$sce", function (n, i, s, o) { function r(t, a) { r.totalPendingRequests++, ge(t) && !pe(n.get(t)) || (t = o.getTrustedResourceUrl(t)); var e = i.defaults && i.defaults.transformResponse; return fe(e) ? e = e.filter(function (e) { return e !== Ma }) : e === Ma && (e = null), i.get(t, de({cache: n, transformResponse: e}, l)).finally(function () { r.totalPendingRequests-- }).then(function (e) { return n.put(t, e.data), e.data }, function (e) { if (a) return s.reject(e); throw Hn("tpload", "Failed to load template: {0} (HTTP status: {1} {2})", t, e.status, e.statusText) }) } return r.totalPendingRequests = 0, r }] } function Gn() { this.$get = ["$rootScope", "$browser", "$location", function (t, a, n) { var e = { findBindings: function (e, a, n) { var t = e.getElementsByClassName("ng-binding"), i = []; return ue(t, function (t) { var e = S.element(t).data("$binding"); e && ue(e, function (e) { n ? new RegExp("(^|\\s)" + D(a) + "(\\s|\\||$)").test(e) && i.push(t) : -1 != e.indexOf(a) && i.push(t) }) }), i }, findModels: function (e, t, a) { for (var n = ["ng-", "data-ng-", "ng\\:"], i = 0; i < n.length; ++i) { var s = "[" + n[i] + "model" + (a ? "=" : "*=") + '"' + t + '"]', o = e.querySelectorAll(s); if (o.length) return o } }, getLocation: function () { return n.url() }, setLocation: function (e) { e !== n.url() && (n.url(e), t.$digest()) }, whenStable: function (e) { a.notifyWhenNoOutstandingRequests(e) } }; return e }] } function Qn() { this.$get = ["$rootScope", "$browser", "$q", "$$q", "$exceptionHandler", function (l, c, u, d, p) { var m = {}; function e(e, t, a) { he(e) || (a = t, t = e, e = q); var n, i = xe(arguments, 3), s = V(a) && !a, o = (s ? d : u).defer(), r = o.promise; return n = c.defer(function () { try { o.resolve(e.apply(null, i)) } catch (e) { o.reject(e), p(e) } finally { delete m[r.$$timeoutId] } s || l.$apply() }, t), r.$$timeoutId = n, m[n] = o, r } return e.cancel = function (e) { return !!(e && e.$$timeoutId in m) && (m[e.$$timeoutId].reject("canceled"), delete m[e.$$timeoutId], c.defer.cancel(e.$$timeoutId)) }, e }] } var Kn = L.document.createElement("a"), Jn = Zn(L.location.href); function Zn(e) { var t = e; return N && (Kn.setAttribute("href", t), t = Kn.href), Kn.setAttribute("href", t), { href: Kn.href, protocol: Kn.protocol ? Kn.protocol.replace(/:$/, "") : "", host: Kn.host, search: Kn.search ? Kn.search.replace(/^\?/, "") : "", hash: Kn.hash ? Kn.hash.replace(/^#/, "") : "", hostname: Kn.hostname, port: Kn.port, pathname: "/" === Kn.pathname.charAt(0) ? Kn.pathname : "/" + Kn.pathname } } function Xn(e) { var t = ge(e) ? Zn(e) : e; return t.protocol === Jn.protocol && t.host === Jn.host } function ei() { this.$get = I(L) } function ti(e) { var o = e[0] || {}, r = {}, l = ""; function c(t) { try { return decodeURIComponent(t) } catch (e) { return t } } return function () { var e, t, a, n, i, s = o.cookie || ""; if (s !== l) for (e = (l = s).split("; "), r = {}, a = 0; a < e.length; a++) 0 < (n = (t = e[a]).indexOf("=")) && (i = c(t.substring(0, n)), pe(r[i]) && (r[i] = c(t.substring(n + 1)))); return r } } function ai() { this.$get = ti } function ni(n) { var i = "Filter"; function s(e, t) { if (me(e)) { var a = {}; return ue(e, function (e, t) { a[t] = s(t, e) }), a } return n.factory(e + i, t) } this.register = s, this.$get = ["$injector", function (t) { return function (e) { return t.get(e + i) } }], s("currency", ui), s("date", ki), s("filter", ii), s("json", xi), s("limitTo", Ii), s("lowercase", _i), s("number", di), s("orderBy", Ci), s("uppercase", Si) } function ii() { return function (e, t, a) { if (!j(e)) { if (null == e) return e; throw $("filter")("notarray", "Expected array but received: {0}", e) } var n, i; switch (oi(t)) { case"function": n = t; break; case"boolean": case"null": case"number": case"string": i = !0; case"object": n = function (t, a, n) { var i = me(t) && "$" in t; !0 === a ? a = ke : he(a) || (a = function (e, t) { return !pe(e) && (null === e || null === t ? e === t : !(me(t) || me(e) && !y(e)) && (e = U("" + e), t = U("" + t), -1 !== e.indexOf(t))) }); return function (e) { return i && !me(e) ? si(e, t.$, a, !1) : si(e, t, a, n) } }(t, a, i); break; default: return e } return Array.prototype.filter.call(e, n) } } function si(e, t, a, n, i) { var s = oi(e), o = oi(t); if ("string" === o && "!" === t.charAt(0)) return !si(e, t.substring(1), a, n); if (fe(e)) return e.some(function (e) { return si(e, t, a, n) }); switch (s) { case"object": var r; if (n) { for (r in e) if ("$" !== r.charAt(0) && si(e[r], t, a, !0)) return !0; return !i && si(e, t, a, !1) } if ("object" !== o) return a(e, t); for (r in t) { var l = t[r]; if (!he(l) && !pe(l)) { var c = "$" === r; if (!si(c ? e : e[r], l, a, c, c)) return !1 } } return !0; case"function": return !1; default: return a(e, t) } } function oi(e) { return null === e ? "null" : typeof e } ti.$inject = ["$document"], ni.$inject = ["$provide"]; var ri = 22, li = ".", ci = "0"; function ui(e) { var n = e.NUMBER_FORMATS; return function (e, t, a) { return pe(t) && (t = n.CURRENCY_SYM), pe(a) && (a = n.PATTERNS[1].maxFrac), null == e ? e : pi(e, n.PATTERNS[1], n.GROUP_SEP, n.DECIMAL_SEP, a).replace(/\u00A4/g, t) } } function di(e) { var a = e.NUMBER_FORMATS; return function (e, t) { return null == e ? e : pi(e, a.PATTERNS[0], a.GROUP_SEP, a.DECIMAL_SEP, t) } } function pi(e, t, a, n, i) { if (!ge(e) && !w(e) || isNaN(e)) return ""; var s, o = !isFinite(e), r = !1, l = Math.abs(e) + "", c = ""; if (o) c = "∞"; else { (function (e, t, a, n) { var i = e.d, s = i.length - e.i, o = (t = pe(t) ? Math.min(Math.max(a, s), n) : +t) + e.i, r = i[o]; if (0 < o) { i.splice(Math.max(e.i, o)); for (var l = o; l < i.length; l++) i[l] = 0 } else { s = Math.max(0, s), e.i = 1, i.length = Math.max(1, o = t + 1), i[0] = 0; for (var c = 1; c < o; c++) i[c] = 0 } if (5 <= r) if (o - 1 < 0) { for (var u = 0; o < u; u--) i.unshift(0), e.i++; i.unshift(1), e.i++ } else i[o - 1]++; for (; s < Math.max(0, t); s++) i.push(0); var d = i.reduceRight(function (e, t, a, n) { return t += e, n[a] = t % 10, Math.floor(t / 10) }, 0); d && (i.unshift(d), e.i++) })(s = function (e) { var t, a, n, i, s, o = 0; for (-1 < (a = e.indexOf(li)) && (e = e.replace(li, "")), 0 < (n = e.search(/e/i)) ? (a < 0 && (a = n), a += +e.slice(n + 1), e = e.substring(0, n)) : a < 0 && (a = e.length), n = 0; e.charAt(n) == ci; n++) ; if (n == (s = e.length)) t = [0], a = 1; else { for (s--; e.charAt(s) == ci;) s--; for (a -= n, t = [], i = 0; n <= s; n++, i++) t[i] = +e.charAt(n) } return ri < a && (t = t.splice(0, ri - 1), o = a - 1, a = 1), {d: t, e: o, i: a} }(l), i, t.minFrac, t.maxFrac); var u = s.d, d = s.i, p = s.e, m = []; for (r = u.reduce(function (e, t) { return e && !t }, !0); d < 0;) u.unshift(0), d++; 0 < d ? m = u.splice(d, u.length) : (m = u, u = [0]); var g = []; for (u.length >= t.lgSize && g.unshift(u.splice(-t.lgSize, u.length).join("")); u.length > t.gSize;) g.unshift(u.splice(-t.gSize, u.length).join("")); u.length && g.unshift(u.join("")), c = g.join(a), m.length && (c += n + m.join("")), p && (c += "e+" + p) } return e < 0 && !r ? t.negPre + c + t.negSuf : t.posPre + c + t.posSuf } function mi(e, t, a, n) { var i = ""; for ((e < 0 || n && e <= 0) && (n ? e = 1 - e : (e = -e, i = "-")), e = "" + e; e.length < t;) e = ci + e; return a && (e = e.substr(e.length - t)), i + e } function gi(a, n, i, s, o) { return i = i || 0, function (e) { var t = e["get" + a](); return (0 < i || -i < t) && (t += i), 0 === t && -12 == i && (t = 12), mi(t, n, s, o) } } function fi(n, i, s) { return function (e, t) { var a = e["get" + n](); return t[u((s ? "STANDALONE" : "") + (i ? "SHORT" : "") + n)][a] } } function hi(e) { var t = new Date(e, 0, 1).getDay(); return new Date(e, 0, (t <= 4 ? 5 : 12) - t) } function vi(n) { return function (e) { var t = hi(e.getFullYear()), a = +function (e) { return new Date(e.getFullYear(), e.getMonth(), e.getDate() + (4 - e.getDay())) }(e) - +t; return mi(1 + Math.round(a / 6048e5), n) } } function yi(e, t) { return e.getFullYear() <= 0 ? t.ERAS[0] : t.ERAS[1] } ui.$inject = ["$locale"]; var bi = { yyyy: gi("FullYear", 4, 0, !(di.$inject = ["$locale"]), !0), yy: gi("FullYear", 2, 0, !0, !0), y: gi("FullYear", 1, 0, !1, !0), MMMM: fi("Month"), MMM: fi("Month", !0), MM: gi("Month", 2, 1), M: gi("Month", 1, 1), LLLL: fi("Month", !1, !0), dd: gi("Date", 2), d: gi("Date", 1), HH: gi("Hours", 2), H: gi("Hours", 1), hh: gi("Hours", 2, -12), h: gi("Hours", 1, -12), mm: gi("Minutes", 2), m: gi("Minutes", 1), ss: gi("Seconds", 2), s: gi("Seconds", 1), sss: gi("Milliseconds", 3), EEEE: fi("Day"), EEE: fi("Day", !0), a: function (e, t) { return e.getHours() < 12 ? t.AMPMS[0] : t.AMPMS[1] }, Z: function (e, t, a) { var n = -1 * a, i = 0 <= n ? "+" : ""; return i += mi(Math[0 < n ? "floor" : "ceil"](n / 60), 2) + mi(Math.abs(n % 60), 2) }, ww: vi(2), w: vi(1), G: yi, GG: yi, GGG: yi, GGGG: function (e, t) { return e.getFullYear() <= 0 ? t.ERANAMES[0] : t.ERANAMES[1] } }, wi = /((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, $i = /^\-?\d+$/; function ki(l) { var d = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; return function (t, e, a) { var n, i, s = "", o = []; if (e = e || "mediumDate", e = l.DATETIME_FORMATS[e] || e, ge(t) && (t = $i.test(t) ? f(t) : function (e) { var t; if (t = e.match(d)) { var a = new Date(0), n = 0, i = 0, s = t[8] ? a.setUTCFullYear : a.setFullYear, o = t[8] ? a.setUTCHours : a.setHours; t[9] && (n = f(t[9] + t[10]), i = f(t[9] + t[11])), s.call(a, f(t[1]), f(t[2]) - 1, f(t[3])); var r = f(t[4] || 0) - n, l = f(t[5] || 0) - i, c = f(t[6] || 0), u = Math.round(1e3 * parseFloat("0." + (t[7] || 0))); return o.call(a, r, l, c, u), a } return e }(t)), w(t) && (t = new Date(t)), !k(t) || !isFinite(t.getTime())) return t; for (; e;) e = (i = wi.exec(e)) ? (o = H(o, i, 1)).pop() : (o.push(e), null); var r = t.getTimezoneOffset(); return a && (r = K(a, r), t = J(t, a, !0)), ue(o, function (e) { n = bi[e], s += n ? n(t, l.DATETIME_FORMATS, r) : "''" === e ? "'" : e.replace(/(^'|'$)/g, "").replace(/''/g, "'") }), s } } function xi() { return function (e, t) { return pe(t) && (t = 2), W(e, t) } } ki.$inject = ["$locale"]; var _i = I(U), Si = I(u); function Ii() { return function (e, t, a) { return t = Math.abs(Number(t)) === 1 / 0 ? Number(t) : f(t), isNaN(t) ? e : (w(e) && (e = e.toString()), fe(e) || ge(e) ? (a = (a = !a || isNaN(a) ? 0 : f(a)) < 0 ? Math.max(0, e.length + a) : a, 0 <= t ? e.slice(a, a + t) : 0 === a ? e.slice(t, e.length) : e.slice(Math.max(0, a + t), a)) : e) } } function Ci(o) { return function (e, t, a) { if (null == e) return e; if (!j(e)) throw $("orderBy")("notarray", "Expected array but received: {0}", e); fe(t) || (t = [t]), 0 === t.length && (t = ["+"]); var s = function (e, i) { return i = i ? -1 : 1, e.map(function (e) { var t = 1, a = Y; if (he(e)) a = e; else if (ge(e) && ("+" != e.charAt(0) && "-" != e.charAt(0) || (t = "-" == e.charAt(0) ? -1 : 1, e = e.substring(1)), "" !== e && (a = o(e)).constant)) { var n = a(); a = function (e) { return e[n] } } return {get: a, descending: t * i} }) }(t, a); s.push({ get: function () { return {} }, descending: a ? -1 : 1 }); var n = Array.prototype.map.call(e, function (t, a) { return { value: t, predicateValues: s.map(function (e) { return function (e, t) { var a = typeof e; null === e ? (a = "string", e = "null") : "string" === a ? e = e.toLowerCase() : "object" === a && (e = function (e, t) { if ("function" == typeof e.valueOf && i(e = e.valueOf())) return e; if (y(e) && i(e = e.toString())) return e; return t }(e, t)); return {value: e, type: a} }(e.get(t), a) }) } }); return n.sort(function (e, t) { for (var a = 0, n = 0, i = s.length; n < i && !(a = r(e.predicateValues[n], t.predicateValues[n]) * s[n].descending); ++n) ; return a }), e = n.map(function (e) { return e.value }) }; function i(e) { switch (typeof e) { case"number": case"boolean": case"string": return !0; default: return !1 } } function r(e, t) { var a = 0; return e.type === t.type ? e.value !== t.value && (a = e.value < t.value ? -1 : 1) : a = e.type < t.type ? -1 : 1, a } } function Ai(e) { return he(e) && (e = {link: e}), e.restrict = e.restrict || "AC", I(e) } Ci.$inject = ["$parse"]; var Mi = I({ restrict: "E", compile: function (e, t) { if (!t.href && !t.xlinkHref) return function (e, t) { if ("a" === t[0].nodeName.toLowerCase()) { var a = "[object SVGAnimatedString]" === B.call(t.prop("href")) ? "xlink:href" : "href"; t.on("click", function (e) { t.attr(a) || e.preventDefault() }) } } } }), Di = {}; ue(kt, function (e, n) { if ("multiple" != e) { var i = ca("ng-" + n), t = s; "checked" === e && (t = function (e, t, a) { a.ngModel !== a[i] && s(e, 0, a) }), Di[i] = function () { return {restrict: "A", priority: 100, link: t} } } function s(e, t, a) { e.$watch(a[i], function (e) { a.$set(n, !!e) }) } }), ue(_t, function (e, i) { Di[i] = function () { return { priority: 100, link: function (e, t, a) { if ("ngPattern" === i && "/" == a.ngPattern.charAt(0)) { var n = a.ngPattern.match(s); if (n) return void a.$set("ngPattern", new RegExp(n[1], n[2])) } e.$watch(a[i], function (e) { a.$set(i, e) }) } } } }), ue(["src", "srcset", "href"], function (s) { var o = ca("ng-" + s); Di[o] = function () { return { priority: 99, link: function (e, t, a) { var n = s, i = s; "href" === s && "[object SVGAnimatedString]" === B.call(t.prop("href")) && (i = "xlinkHref", a.$attr[i] = "xlink:href", n = null), a.$observe(o, function (e) { e ? (a.$set(i, e), N && n && t.prop(n, a[i])) : "href" === s && a.$set(i, null) }) } } } }); var Ti = { $addControl: q, $$renameControl: function (e, t) { e.$name = t }, $removeControl: q, $setValidity: q, $setDirty: q, $setPristine: q, $setSubmitted: q }, Pi = "ng-submitted"; function Ei(e, t, a, n, i) { var s = this, o = []; s.$error = {}, s.$$success = {}, s.$pending = void 0, s.$name = i(t.name || t.ngForm || "")(a), s.$dirty = !1, s.$pristine = !0, s.$valid = !0, s.$invalid = !1, s.$submitted = !1, s.$$parentForm = Ti, s.$rollbackViewValue = function () { ue(o, function (e) { e.$rollbackViewValue() }) }, s.$commitViewValue = function () { ue(o, function (e) { e.$commitViewValue() }) }, s.$addControl = function (e) { De(e.$name, "input"), o.push(e), e.$name && (s[e.$name] = e), e.$$parentForm = s }, s.$$renameControl = function (e, t) { var a = e.$name; s[a] === e && delete s[a], (s[t] = e).$name = t }, s.$removeControl = function (a) { a.$name && s[a.$name] === a && delete s[a.$name], ue(s.$pending, function (e, t) { s.$setValidity(t, null, a) }), ue(s.$error, function (e, t) { s.$setValidity(t, null, a) }), ue(s.$$success, function (e, t) { s.$setValidity(t, null, a) }), $e(o, a), a.$$parentForm = Ti }, Ls({ ctrl: this, $element: e, set: function (e, t, a) { var n = e[t]; n ? -1 === n.indexOf(a) && n.push(a) : e[t] = [a] }, unset: function (e, t, a) { var n = e[t]; n && ($e(n, a), 0 === n.length && delete e[t]) }, $animate: n }), s.$setDirty = function () { n.removeClass(e, _s), n.addClass(e, Ss), s.$dirty = !0, s.$pristine = !1, s.$$parentForm.$setDirty() }, s.$setPristine = function () { n.setClass(e, _s, Ss + " " + Pi), s.$dirty = !1, s.$pristine = !0, s.$submitted = !1, ue(o, function (e) { e.$setPristine() }) }, s.$setUntouched = function () { ue(o, function (e) { e.$setUntouched() }) }, s.$setSubmitted = function () { n.addClass(e, Pi), s.$submitted = !0, s.$$parentForm.$setSubmitted() } } Ei.$inject = ["$element", "$attrs", "$scope", "$animate", "$interpolate"]; function ji(a) { return ["$timeout", "$parse", function (l, t) { return { name: "form", restrict: a ? "EAC" : "E", require: ["form", "^^?form"], controller: Ei, compile: function (e, t) { e.addClass(_s).addClass(ks); var r = t.name ? "name" : !(!a || !t.ngForm) && "ngForm"; return { pre: function (t, e, a, n) { var i = n[0]; if (!("action" in a)) { var s = function (e) { t.$apply(function () { i.$commitViewValue(), i.$setSubmitted() }), e.preventDefault() }; Ve(e[0], "submit", s), e.on("$destroy", function () { l(function () { Fe(e[0], "submit", s) }, 0, !1) }) } (n[1] || i.$$parentForm).$addControl(i); var o = r ? c(i.$name) : q; r && (o(t, i), a.$observe(r, function (e) { i.$name !== e && (o(t, void 0), i.$$parentForm.$$renameControl(i, e), (o = c(i.$name))(t, i)) })), e.on("$destroy", function () { i.$$parentForm.$removeControl(i), o(t, void 0), de(i, Ti) }) } } } }; function c(e) { return "" === e ? t('this[""]').assign : t(e).assign || q } }] } var Li = ji(), Oi = ji(!0), Ui = /^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/, Ni = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i, Bi = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i, Ri = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/, qi = /^(\d{4,})-(\d{2})-(\d{2})$/, Yi = /^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/, Vi = /^(\d{4,})-W(\d\d)$/, Fi = /^(\d{4,})-(\d\d)$/, zi = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/, Hi = "keydown wheel mousedown", Wi = Ee(); ue("date,datetime-local,month,time,week".split(","), function (e) { Wi[e] = !0 }); var Gi = { text: function (e, t, a, n, i, s) { Ki(e, t, a, n, i, s), Qi(n) }, date: Zi("date", qi, Ji(qi, ["yyyy", "MM", "dd"]), "yyyy-MM-dd"), "datetime-local": Zi("datetimelocal", Yi, Ji(Yi, ["yyyy", "MM", "dd", "HH", "mm", "ss", "sss"]), "yyyy-MM-ddTHH:mm:ss.sss"), time: Zi("time", zi, Ji(zi, ["HH", "mm", "ss", "sss"]), "HH:mm:ss.sss"), week: Zi("week", Vi, function (e, t) { if (k(e)) return e; if (ge(e)) { Vi.lastIndex = 0; var a = Vi.exec(e); if (a) { var n = +a[1], i = +a[2], s = 0, o = 0, r = 0, l = 0, c = hi(n), u = 7 * (i - 1); return t && (s = t.getHours(), o = t.getMinutes(), r = t.getSeconds(), l = t.getMilliseconds()), new Date(n, 0, c.getDate() + u, s, o, r, l) } } return NaN }, "yyyy-Www"), month: Zi("month", Fi, Ji(Fi, ["yyyy", "MM"]), "yyyy-MM"), number: function (e, t, a, n, i, s) { if (Xi(e, t, a, n), Ki(e, t, a, n, i, s), n.$$parserName = "number", n.$parsers.push(function (e) { return n.$isEmpty(e) ? null : Ri.test(e) ? parseFloat(e) : void 0 }), n.$formatters.push(function (e) { if (!n.$isEmpty(e)) { if (!w(e)) throw Ts("numfmt", "Expected `{0}` to be a number", e); e = e.toString() } return e }), V(a.min) || a.ngMin) { var o; n.$validators.min = function (e) { return n.$isEmpty(e) || pe(o) || o <= e }, a.$observe("min", function (e) { V(e) && !w(e) && (e = parseFloat(e, 10)), o = w(e) && !isNaN(e) ? e : void 0, n.$validate() }) } if (V(a.max) || a.ngMax) { var r; n.$validators.max = function (e) { return n.$isEmpty(e) || pe(r) || e <= r }, a.$observe("max", function (e) { V(e) && !w(e) && (e = parseFloat(e, 10)), r = w(e) && !isNaN(e) ? e : void 0, n.$validate() }) } }, url: function (e, t, a, n, i, s) { Ki(e, t, a, n, i, s), Qi(n), n.$$parserName = "url", n.$validators.url = function (e, t) { var a = e || t; return n.$isEmpty(a) || Ni.test(a) } }, email: function (e, t, a, n, i, s) { Ki(e, t, a, n, i, s), Qi(n), n.$$parserName = "email", n.$validators.email = function (e, t) { var a = e || t; return n.$isEmpty(a) || Bi.test(a) } }, radio: function (e, t, a, n) { pe(a.name) && t.attr("name", A()); t.on("click", function (e) { t[0].checked && n.$setViewValue(a.value, e && e.type) }), n.$render = function () { var e = a.value; t[0].checked = e == n.$viewValue }, a.$observe("value", n.$render) }, checkbox: function (e, t, a, n, i, s, o, r) { var l = es(r, e, "ngTrueValue", a.ngTrueValue, !0), c = es(r, e, "ngFalseValue", a.ngFalseValue, !1); t.on("click", function (e) { n.$setViewValue(t[0].checked, e && e.type) }), n.$render = function () { t[0].checked = n.$viewValue }, n.$isEmpty = function (e) { return !1 === e }, n.$formatters.push(function (e) { return ke(e, l) }), n.$parsers.push(function (e) { return e ? l : c }) }, hidden: q, button: q, submit: q, reset: q, file: q }; function Qi(t) { t.$formatters.push(function (e) { return t.$isEmpty(e) ? e : e.toString() }) } function Ki(e, n, i, s, t, o) { var r, l = U(n[0].type); if (!t.android) { var c = !1; n.on("compositionstart", function () { c = !0 }), n.on("compositionend", function () { c = !1, u() }) } var u = function (e) { if (r && (o.defer.cancel(r), r = null), !c) { var t = n.val(), a = e && e.type; "password" === l || i.ngTrim && "false" === i.ngTrim || (t = be(t)), (s.$viewValue !== t || "" === t && s.$$hasNativeValidators) && s.$setViewValue(t, a) } }; if (t.hasEvent("input")) n.on("input", u); else { var a = function (e, t, a) { r || (r = o.defer(function () { r = null, t && t.value === a || u(e) })) }; n.on("keydown", function (e) { var t = e.keyCode; 91 === t || 15 < t && t < 19 || 37 <= t && t <= 40 || a(e, this, this.value) }), t.hasEvent("paste") && n.on("paste cut", a) } n.on("change", u), Wi[l] && s.$$hasNativeValidators && l === i.type && n.on(Hi, function (e) { if (!r) { var t = this[d], a = t.badInput, n = t.typeMismatch; r = o.defer(function () { r = null, t.badInput === a && t.typeMismatch === n || u(e) }) } }), s.$render = function () { var e = s.$isEmpty(s.$viewValue) ? "" : s.$viewValue; n.val() !== e && n.val(e) } } function Ji(i, s) { return function (e, t) { var a, n; if (k(e)) return e; if (ge(e)) { if ('"' == e.charAt(0) && '"' == e.charAt(e.length - 1) && (e = e.substring(1, e.length - 1)), Ui.test(e)) return new Date(e); if (i.lastIndex = 0, a = i.exec(e)) return a.shift(), n = t ? { yyyy: t.getFullYear(), MM: t.getMonth() + 1, dd: t.getDate(), HH: t.getHours(), mm: t.getMinutes(), ss: t.getSeconds(), sss: t.getMilliseconds() / 1e3 } : {yyyy: 1970, MM: 1, dd: 1, HH: 0, mm: 0, ss: 0, sss: 0}, ue(a, function (e, t) { t < s.length && (n[s[t]] = +e) }), new Date(n.yyyy, n.MM - 1, n.dd, n.HH, n.mm, n.ss || 0, 1e3 * n.sss || 0) } return NaN } } function Zi(m, g, f, h) { return function (e, t, a, n, i, s, o) { Xi(e, t, a, n), Ki(0, t, a, n, i, s); var r, l, c, u = n && n.$options && n.$options.timezone; n.$$parserName = m, n.$parsers.push(function (e) { if (n.$isEmpty(e)) return null; if (g.test(e)) { var t = f(e, r); return u && (t = J(t, u)), t } }), n.$formatters.push(function (e) { if (e && !k(e)) throw Ts("datefmt", "Expected `{0}` to be a date", e); return d(e) ? ((r = e) && u && (r = J(r, u, !0)), o("date")(e, h, u)) : (r = null, "") }), (V(a.min) || a.ngMin) && (n.$validators.min = function (e) { return !d(e) || pe(l) || f(e) >= l }, a.$observe("min", function (e) { l = p(e), n.$validate() })); (V(a.max) || a.ngMax) && (n.$validators.max = function (e) { return !d(e) || pe(c) || f(e) <= c }, a.$observe("max", function (e) { c = p(e), n.$validate() })); function d(e) { return e && !(e.getTime && e.getTime() != e.getTime()) } function p(e) { return V(e) && !k(e) ? f(e) || void 0 : e } } } function Xi(e, a, t, n) { var i = a[0]; (n.$$hasNativeValidators = me(i.validity)) && n.$parsers.push(function (e) { var t = a.prop(d) || {}; return t.badInput || t.typeMismatch ? void 0 : e }) } function es(e, t, a, n, i) { var s; if (V(n)) { if (!(s = e(n)).constant) throw Ts("constexpr", "Expected constant expression for `{0}`, but saw `{1}`.", a, n); return s(t) } return i } function ts() { return { restrict: "A", priority: 100, compile: function (e, t) { return ns.test(t.ngValue) ? function (e, t, a) { a.$set("value", e.$eval(a.ngValue)) } : function (e, t, a) { e.$watch(a.ngValue, function (e) { a.$set("value", e) }) } } } } var as = ["$browser", "$sniffer", "$filter", "$parse", function (i, s, o, r) { return { restrict: "E", require: ["?ngModel"], link: { pre: function (e, t, a, n) { n[0] && (Gi[U(a.type)] || Gi.text)(e, t, a, n[0], s, i, o, r) } } } }], ns = /^(true|false|\d+)$/, is = ["$compile", function (n) { return { restrict: "AC", compile: function (e) { return n.$$addBindingClass(e), function (e, t, a) { n.$$addBindingInfo(t, a.ngBind), t = t[0], e.$watch(a.ngBind, function (e) { t.textContent = pe(e) ? "" : e }) } } } }], ss = ["$interpolate", "$compile", function (i, s) { return { compile: function (e) { return s.$$addBindingClass(e), function (e, t, a) { var n = i(t.attr(a.$attr.ngBindTemplate)); s.$$addBindingInfo(t, n.expressions), t = t[0], a.$observe("ngBindTemplate", function (e) { t.textContent = pe(e) ? "" : e }) } } } }], os = ["$sce", "$parse", "$compile", function (s, a, o) { return { restrict: "A", compile: function (e, t) { var n = a(t.ngBindHtml), i = a(t.ngBindHtml, function (e) { return s.valueOf(e) }); return o.$$addBindingClass(e), function (t, a, e) { o.$$addBindingInfo(a, e.ngBindHtml), t.$watch(i, function () { var e = n(t); a.html(s.getTrustedHtml(e) || "") }) } } } }], rs = I({ restrict: "A", require: "ngModel", link: function (e, t, a, n) { n.$viewChangeListeners.push(function () { e.$eval(a.ngChange) }) } }); function ls(p, m) { return p = "ngClass" + p, ["$animate", function (c) { return { restrict: "AC", link: function (i, s, o) { var a; function r(e) { var t = l(e, 1); o.$addClass(t) } function l(e, t) { var a = s.data("$classCounts") || Ee(), n = []; return ue(e, function (e) { (0 < t || a[e]) && (a[e] = (a[e] || 0) + t, a[e] === +(0 < t) && n.push(e)) }), s.data("$classCounts", a), n.join(" ") } function t(e) { if (!0 === m || (1 & i.$index) === m) { var t = d(e || []); if (a) { if (!ke(e, a)) { !function (e, t) { var a = u(t, e), n = u(e, t); a = l(a, 1), n = l(n, -1), a && a.length && c.addClass(s, a), n && n.length && c.removeClass(s, n) }(d(a), t) } } else r(t) } a = fe(e) ? e.map(function (e) { return E(e) }) : E(e) } i.$watch(o[p], t, !0), o.$observe("class", function (e) { t(i.$eval(o[p])) }), "ngClass" !== p && i.$watch("$index", function (e, t) { var a = 1 & e; if (a != (1 & t)) { var n = d(i.$eval(o[p])); a === m ? r(n) : function (e) { var t = l(e, -1); o.$removeClass(t) }(n) } }) } }; function u(e, t) { var a = []; e:for (var n = 0; n < e.length; n++) { for (var i = e[n], s = 0; s < t.length; s++) if (i == t[s]) continue e; a.push(i) } return a } function d(e) { var a = []; return fe(e) ? (ue(e, function (e) { a = a.concat(d(e)) }), a) : ge(e) ? e.split(" ") : me(e) ? (ue(e, function (e, t) { e && (a = a.concat(t.split(" "))) }), a) : e } }] } var cs = ls("", !0), us = ls("Odd", 0), ds = ls("Even", 1), ps = Ai({ compile: function (e, t) { t.$set("ngCloak", void 0), e.removeClass("ng-cloak") } }), ms = [function () { return {restrict: "A", scope: !0, controller: "@", priority: 500} }], gs = {}, fs = {blur: !0, focus: !0}; ue("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), function (s) { var o = ca("ng-" + s); gs[o] = ["$parse", "$rootScope", function (a, i) { return { restrict: "A", compile: function (e, t) { var n = a(t[o], null, !0); return function (a, e) { e.on(s, function (e) { function t() { n(a, {$event: e}) } fs[s] && i.$$phase ? a.$evalAsync(t) : a.$apply(t) }) } } } }] }); function hs() { return { restrict: "A", priority: 100, require: "ngModel", link: function (e, t, a, n) { var i = t.attr(a.$attr.ngList) || ", ", s = "false" !== a.ngTrim, o = s ? be(i) : i; n.$parsers.push(function (e) { if (!pe(e)) { var t = []; return e && ue(e.split(o), function (e) { e && t.push(s ? be(e) : e) }), t } }), n.$formatters.push(function (e) { if (fe(e)) return e.join(i) }), n.$isEmpty = function (e) { return !e || !e.length } } } } function vs() { return { restrict: "A", controller: ["$scope", "$attrs", function (e, t) { var a = this; this.$options = P(e.$eval(t.ngModelOptions)), V(this.$options.updateOn) ? (this.$options.updateOnDefault = !1, this.$options.updateOn = be(this.$options.updateOn.replace(js, function () { return a.$options.updateOnDefault = !0, " " }))) : this.$options.updateOnDefault = !0 }] } } var ys = ["$animate", "$compile", function (l, c) { return { multiElement: !0, transclude: "element", priority: 600, terminal: !0, restrict: "A", $$tlb: !0, link: function (e, a, n, t, i) { var s, o, r; e.$watch(n.ngIf, function (e) { e ? o || i(function (e, t) { o = t, e[e.length++] = c.$$createComment("end ngIf", n.ngIf), s = {clone: e}, l.enter(e, a.parent(), a) }) : (r && (r.remove(), r = null), o && (o.$destroy(), o = null), s && (r = Pe(s.clone), l.leave(r).then(function () { r = null }), s = null)) }) } } }], bs = ["$templateRequest", "$anchorScroll", "$animate", function (h, v, y) { return { restrict: "ECA", priority: 400, terminal: !0, transclude: "element", controller: S.noop, compile: function (e, t) { var a = t.ngInclude || t.src, g = t.onload || "", f = t.autoscroll; return function (o, r, e, l, c) { function u() { t && (t.remove(), t = null), d && (d.$destroy(), d = null), p && (y.leave(p).then(function () { t = null }), t = p, p = null) } var d, t, p, m = 0; o.$watch(a, function (n) { function i() { !V(f) || f && !o.$eval(f) || v() } var s = ++m; n ? (h(n, !0).then(function (e) { if (!o.$$destroyed && s === m) { var t = o.$new(); l.template = e; var a = c(t, function (e) { u(), y.enter(e, null, r).then(i) }); p = a, (d = t).$emit("$includeContentLoaded", n), o.$eval(g) } }, function () { o.$$destroyed || s === m && (u(), o.$emit("$includeContentError", n)) }), o.$emit("$includeContentRequested", n)) : (u(), l.template = null) }) } } } }], ws = ["$compile", function (i) { return { restrict: "ECA", priority: -400, require: "ngInclude", link: function (e, t, a, n) { if (B.call(t[0]).match(/SVG/)) return t.empty(), void i(nt(n.template, L.document).childNodes)(e, function (e) { t.append(e) }, {futureParentElement: t}); t.html(n.template), i(t.contents())(e) } } }], $s = Ai({ priority: 450, compile: function () { return { pre: function (e, t, a) { e.$eval(a.ngInit) } } } }), ks = "ng-valid", xs = "ng-invalid", _s = "ng-pristine", Ss = "ng-dirty", Is = "ng-untouched", Cs = "ng-touched", As = "ng-pending", Ms = "ng-empty", Ds = "ng-not-empty", Ts = $("ngModel"), Ps = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse", "$animate", "$timeout", "$rootScope", "$q", "$interpolate", function (s, t, i, o, r, a, l, c, u, e) { this.$viewValue = Number.NaN, this.$modelValue = Number.NaN, this.$$rawModelValue = void 0, this.$validators = {}, this.$asyncValidators = {}, this.$parsers = [], this.$formatters = [], this.$viewChangeListeners = [], this.$untouched = !0, this.$touched = !1, this.$pristine = !0, this.$dirty = !1, this.$valid = !0, this.$invalid = !1, this.$error = {}, this.$$success = {}, this.$pending = void 0, this.$name = e(i.name || "", !1)(s), this.$$parentForm = Ti; var d, p = r(i.ngModel), m = p.assign, g = p, f = m, h = null, v = this; this.$$setOptions = function (e) { if ((v.$options = e) && e.getterSetter) { var a = r(i.ngModel + "()"), n = r(i.ngModel + "($$$p)"); g = function (e) { var t = p(e); return he(t) && (t = a(e)), t }, f = function (e, t) { he(p(e)) ? n(e, {$$$p: t}) : m(e, t) } } else if (!p.assign) throw Ts("nonassign", "Expression '{0}' is non-assignable. Element: {1}", i.ngModel, Se(o)) }, this.$render = q, this.$isEmpty = function (e) { return pe(e) || "" === e || null === e || e != e }, this.$$updateEmptyClasses = function (e) { v.$isEmpty(e) ? (a.removeClass(o, Ds), a.addClass(o, Ms)) : (a.removeClass(o, Ms), a.addClass(o, Ds)) }; var y = 0; Ls({ ctrl: this, $element: o, set: function (e, t) { e[t] = !0 }, unset: function (e, t) { delete e[t] }, $animate: a }), this.$setPristine = function () { v.$dirty = !1, v.$pristine = !0, a.removeClass(o, Ss), a.addClass(o, _s) }, this.$setDirty = function () { v.$dirty = !0, v.$pristine = !1, a.removeClass(o, _s), a.addClass(o, Ss), v.$$parentForm.$setDirty() }, this.$setUntouched = function () { v.$touched = !1, v.$untouched = !0, a.setClass(o, Is, Cs) }, this.$setTouched = function () { v.$touched = !0, v.$untouched = !1, a.setClass(o, Cs, Is) }, this.$rollbackViewValue = function () { l.cancel(h), v.$viewValue = v.$$lastCommittedViewValue, v.$render() }, this.$validate = function () { if (!w(v.$modelValue) || !isNaN(v.$modelValue)) { var e = v.$$lastCommittedViewValue, t = v.$$rawModelValue, a = v.$valid, n = v.$modelValue, i = v.$options && v.$options.allowInvalid; v.$$runValidators(t, e, function (e) { i || a === e || (v.$modelValue = e ? t : void 0, v.$modelValue !== n && v.$$writeModelToScope()) }) } }, this.$$runValidators = function (n, i, t) { var s, o, r, a = ++y; (function () { var e = v.$$parserName || "parse"; { if (!pe(d)) return d || (ue(v.$validators, function (e, t) { l(t, null) }), ue(v.$asyncValidators, function (e, t) { l(t, null) })), l(e, d), d; l(e, null) } return !0 })() ? (s = !0, ue(v.$validators, function (e, t) { var a = e(n, i); s = s && a, l(t, a) }), s || (ue(v.$asyncValidators, function (e, t) { l(t, null) }), 0) ? (o = [], r = !0, ue(v.$asyncValidators, function (e, t) { var a = e(n, i); if (!C(a)) throw Ts("nopromise", "Expected asynchronous validator to return a promise but got '{0}' instead.", a); l(t, void 0), o.push(a.then(function () { l(t, !0) }, function () { l(t, r = !1) })) }), o.length ? u.all(o).then(function () { e(r) }, q) : e(!0)) : e(!1)) : e(!1); function l(e, t) { a === y && v.$setValidity(e, t) } function e(e) { a === y && t(e) } }, this.$commitViewValue = function () { var e = v.$viewValue; l.cancel(h), (v.$$lastCommittedViewValue !== e || "" === e && v.$$hasNativeValidators) && (v.$$updateEmptyClasses(e), v.$$lastCommittedViewValue = e, v.$pristine && this.$setDirty(), this.$$parseAndValidate()) }, this.$$parseAndValidate = function () { var t = v.$$lastCommittedViewValue; if (d = !pe(t) || void 0) for (var e = 0; e < v.$parsers.length; e++) if (pe(t = v.$parsers[e](t))) { d = !1; break } w(v.$modelValue) && isNaN(v.$modelValue) && (v.$modelValue = g(s)); var a = v.$modelValue, n = v.$options && v.$options.allowInvalid; function i() { v.$modelValue !== a && v.$$writeModelToScope() } v.$$rawModelValue = t, n && (v.$modelValue = t, i()), v.$$runValidators(t, v.$$lastCommittedViewValue, function (e) { n || (v.$modelValue = e ? t : void 0, i()) }) }, this.$$writeModelToScope = function () { f(s, v.$modelValue), ue(v.$viewChangeListeners, function (e) { try { e() } catch (e) { t(e) } }) }, this.$setViewValue = function (e, t) { v.$viewValue = e, v.$options && !v.$options.updateOnDefault || v.$$debounceViewValueCommit(t) }, this.$$debounceViewValueCommit = function (e) { var t, a = 0, n = v.$options; n && V(n.debounce) && (w(t = n.debounce) ? a = t : w(t[e]) ? a = t[e] : w(t.default) && (a = t.default)), l.cancel(h), a ? h = l(function () { v.$commitViewValue() }, a) : c.$$phase ? v.$commitViewValue() : s.$apply(function () { v.$commitViewValue() }) }, s.$watch(function () { var e = g(s); if (e !== v.$modelValue && (v.$modelValue == v.$modelValue || e == e)) { v.$modelValue = v.$$rawModelValue = e, d = void 0; for (var t = v.$formatters, a = t.length, n = e; a--;) n = t[a](n); v.$viewValue !== n && (v.$$updateEmptyClasses(n), v.$viewValue = v.$$lastCommittedViewValue = n, v.$render(), v.$$runValidators(e, n, q)) } return e }) }], Es = ["$rootScope", function (s) { return { restrict: "A", require: ["ngModel", "^?form", "^?ngModelOptions"], controller: Ps, priority: 1, compile: function (e) { return e.addClass(_s).addClass(Is).addClass(ks), { pre: function (e, t, a, n) { var i = n[0], s = n[1] || i.$$parentForm; i.$$setOptions(n[2] && n[2].$options), s.$addControl(i), a.$observe("name", function (e) { i.$name !== e && i.$$parentForm.$$renameControl(i, e) }), e.$on("$destroy", function () { i.$$parentForm.$removeControl(i) }) }, post: function (e, t, a, n) { var i = n[0]; i.$options && i.$options.updateOn && t.on(i.$options.updateOn, function (e) { i.$$debounceViewValueCommit(e && e.type) }), t.on("blur", function () { i.$touched || (s.$$phase ? e.$evalAsync(i.$setTouched) : e.$apply(i.$setTouched)) }) } } } } }], js = /(\s+|^)default(\s+|$)/; function Ls(e) { var i = e.ctrl, a = e.$element, n = {}, s = e.set, o = e.unset, r = e.$animate; function l(e, t) { t && !n[e] ? (r.addClass(a, e), n[e] = !0) : !t && n[e] && (r.removeClass(a, e), n[e] = !1) } function c(e, t) { e = e ? "-" + Ie(e, "-") : "", l(ks + e, !0 === t), l(xs + e, !1 === t) } n[xs] = !(n[ks] = a.hasClass(ks)), i.$setValidity = function (e, t, a) { pe(t) ? function (e, t, a) { i[e] || (i[e] = {}); s(i[e], t, a) }("$pending", e, a) : function (e, t, a) { i[e] && o(i[e], t, a); Os(i[e]) && (i[e] = void 0) }("$pending", e, a); ye(t) ? t ? (o(i.$error, e, a), s(i.$$success, e, a)) : (s(i.$error, e, a), o(i.$$success, e, a)) : (o(i.$error, e, a), o(i.$$success, e, a)); i.$pending ? (l(As, !0), i.$valid = i.$invalid = void 0, c("", null)) : (l(As, !1), i.$valid = Os(i.$error), i.$invalid = !i.$valid, c("", i.$valid)); var n; n = i.$pending && i.$pending[e] ? void 0 : !i.$error[e] && (!!i.$$success[e] || null); c(e, n), i.$$parentForm.$setValidity(e, n, i) } } function Os(e) { if (e) for (var t in e) if (e.hasOwnProperty(t)) return !1; return !0 } var Us = Ai({terminal: !0, priority: 1e3}), Ns = $("ngOptions"), Bs = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/, Rs = ["$compile", "$document", "$parse", function (w, $, _) { var k = L.document.createElement("option"), x = L.document.createElement("optgroup"); return { restrict: "A", terminal: !0, require: ["select", "ngModel"], link: { pre: function (e, t, a, n) { n[0].registerOption = q }, post: function (e, s, t, a) { for (var o, r = a[0], l = a[1], c = t.multiple, n = 0, i = s.children(), u = i.length; n < u; n++) if ("" === i[n].value) { o = i.eq(n); break } var d, p = !!o, m = ce(k.cloneNode(!1)); function g() { p || o.remove() } function f() { m.remove() } m.val("?"); var h = function (e, t, p) { var d = e.match(Bs); if (!d) throw Ns("iexp", "Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}", e, Se(t)); function m(e, t) { return h(e, $(e, t)) } var a = d[5] || d[7], n = d[6], i = / as /.test(d[0]) && d[1], g = d[9], s = _(d[2] ? d[1] : a), f = i && _(i) || s, o = g && _(g), h = g ? function (e, t) { return o(p, t) } : function (e) { return Dt(e) }, v = _(d[2] || d[1]), y = _(d[3] || ""), b = _(d[4] || ""), w = _(d[8]), r = {}, $ = n ? function (e, t) { return r[n] = t, r[a] = e, r } : function (e) { return r[a] = e, r }; function k(e, t, a, n, i) { this.selectValue = e, this.viewValue = t, this.label = a, this.group = n, this.disabled = i } function x(e) { var t; if (!n && j(e)) t = e; else for (var a in t = [], e) e.hasOwnProperty(a) && "$" !== a.charAt(0) && t.push(a); return t } return { trackBy: g, getTrackByValue: m, getWatchables: _(w, function (e) { for (var t = [], a = x(e = e || []), n = a.length, i = 0; i < n; i++) { var s = e === a ? i : a[i], o = e[s], r = $(o, s), l = h(o, r); if (t.push(l), d[2] || d[1]) { var c = v(p, r); t.push(c) } if (d[4]) { var u = b(p, r); t.push(u) } } return t }), getOptions: function () { for (var e = [], t = {}, a = w(p) || [], n = x(a), i = n.length, s = 0; s < i; s++) { var o = a === n ? s : n[s], r = a[o], l = $(r, o), c = f(p, l), u = h(c, l), d = new k(u, c, v(p, l), y(p, l), b(p, l)); e.push(d), t[u] = d } return { items: e, selectValueMap: t, getOptionFromViewValue: function (e) { return t[m(e)] }, getViewValueFromOption: function (e) { return g ? S.copy(e.viewValue) : e.viewValue } } } } }(t.ngOptions, s, e), v = $[0].createDocumentFragment(); function y(e, t) { var a = k.cloneNode(!1); t.appendChild(a), function (e, t) { (e.element = t).disabled = e.disabled, e.label !== t.label && (t.label = e.label, t.textContent = e.label); e.value !== t.value && (t.value = e.selectValue) }(e, a) } function b() { var e = d && r.readValue(); if (d) for (var t = d.items.length - 1; 0 <= t; t--) { var a = d.items[t]; a.group ? wt(a.element.parentNode) : wt(a.element) } d = h.getOptions(); var n = {}; if (p && s.prepend(o), d.items.forEach(function (e) { var t; V(e.group) ? ((t = n[e.group]) || (t = x.cloneNode(!1), v.appendChild(t), t.label = e.group, n[e.group] = t), y(e, t)) : y(e, v) }), s[0].appendChild(v), l.$render(), !l.$isEmpty(e)) { var i = r.readValue(); (h.trackBy || c ? ke(e, i) : e === i) || (l.$setViewValue(i), l.$render()) } } c ? (l.$isEmpty = function (e) { return !e || 0 === e.length }, r.writeValue = function (e) { d.items.forEach(function (e) { e.element.selected = !1 }), e && e.forEach(function (e) { var t = d.getOptionFromViewValue(e); t && (t.element.selected = !0) }) }, r.readValue = function () { var e = s.val() || [], a = []; return ue(e, function (e) { var t = d.selectValueMap[e]; t && !t.disabled && a.push(d.getViewValueFromOption(t)) }), a }, h.trackBy && e.$watchCollection(function () { if (fe(l.$viewValue)) return l.$viewValue.map(function (e) { return h.getTrackByValue(e) }) }, function () { l.$render() })) : (r.writeValue = function (e) { var t = d.getOptionFromViewValue(e); t ? (s[0].value !== t.selectValue && (f(), g(), s[0].value = t.selectValue, t.element.selected = !0), t.element.setAttribute("selected", "selected")) : null === e || p ? (f(), p || s.prepend(o), s.val(""), o.prop("selected", !0), o.attr("selected", !0)) : (g(), s.prepend(m), s.val("?"), m.prop("selected", !0), m.attr("selected", !0)) }, r.readValue = function () { var e = d.selectValueMap[s.val()]; return e && !e.disabled ? (g(), f(), d.getViewValueFromOption(e)) : null }, h.trackBy && e.$watch(function () { return h.getTrackByValue(l.$viewValue) }, function () { l.$render() })), p ? (o.remove(), w(o)(e), o.removeClass("ng-scope")) : o = ce(k.cloneNode(!1)), s.empty(), b(), e.$watchCollection(h.getWatchables, b) } } } }], qs = ["$locale", "$interpolate", "$log", function (g, f, h) { var v = /{}/g, y = /^when(Minus)?(.+)$/; return { link: function (i, s, o) { var r, e = o.count, l = o.$attr.when && s.attr(o.$attr.when), c = o.offset || 0, u = i.$eval(l) || {}, d = {}, t = f.startSymbol(), a = f.endSymbol(), n = t + e + "-" + c + a, p = S.noop; function m(e) { s.text(e || "") } ue(o, function (e, t) { var a = y.exec(t); if (a) { var n = (a[1] ? "-" : "") + U(a[2]); u[n] = s.attr(o.$attr[t]) } }), ue(u, function (e, t) { d[t] = f(e.replace(v, n)) }), i.$watch(e, function (e) { var t = parseFloat(e), a = isNaN(t); if (a || t in u || (t = g.pluralCat(t - c)), t !== r && !(a && w(r) && isNaN(r))) { p(); var n = d[t]; pe(n) ? (null != e && h.debug("ngPluralize: no rule defined for '" + t + "' in " + l), p = q, m()) : p = i.$watch(n, m), r = t } }) } } }], Ys = ["$parse", "$animate", "$compile", function (l, D, c) { function T(e, t, a, n, i, s, o) { e[a] = n, i && (e[i] = s), e.$index = t, e.$first = 0 === t, e.$last = t === o - 1, e.$middle = !(e.$first || e.$last), e.$odd = !(e.$even = 0 == (1 & t)) } var P = "$$NG_REMOVED", E = $("ngRepeat"); return { restrict: "A", multiElement: !0, transclude: "element", priority: 1e3, terminal: !0, $$tlb: !0, compile: function (e, t) { var k = t.ngRepeat, x = c.$$createComment("end ngRepeat", k), a = k.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/); if (!a) throw E("iexp", "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", k); var n = a[1], i = a[2], _ = a[3], s = a[4]; if (!(a = n.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/))) throw E("iidexp", "'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.", n); var o, S, I, C, A = a[3] || a[1], M = a[2]; if (_ && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(_) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(_))) throw E("badident", "alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.", _); var r = {$id: Dt}; return s ? o = l(s) : (I = function (e, t) { return Dt(t) }, C = function (e) { return e }), function (y, b, e, t, w) { o && (S = function (e, t, a) { return M && (r[M] = e), r[A] = t, r.$index = a, o(y, r) }); var $ = Ee(); y.$watchCollection(i, function (e) { var n, t, a, i, s, o, r, l, c, u, d, p, m, g = b[0], f = Ee(); if (_ && (y[_] = e), j(e)) c = e, l = S || I; else for (var h in l = S || C, c = [], e) O.call(e, h) && "$" !== h.charAt(0) && c.push(h); for (i = c.length, d = new Array(i), n = 0; n < i; n++) if (s = e === c ? n : c[n], o = e[s], r = l(s, o, n), $[r]) u = $[r], delete $[r], f[r] = u, d[n] = u; else { if (f[r]) throw ue(d, function (e) { e && e.scope && ($[e.id] = e) }), E("dupes", "Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}", k, r, o); d[n] = {id: r, scope: void 0, clone: void 0}, f[r] = !0 } for (var v in $) { if (p = Pe((u = $[v]).clone), D.leave(p), p[0].parentNode) for (n = 0, t = p.length; n < t; n++) p[n][P] = !0; u.scope.$destroy() } for (n = 0; n < i; n++) if (s = e === c ? n : c[n], o = e[s], (u = d[n]).scope) { for (a = g; (a = a.nextSibling) && a[P];) ; u.clone[0] != a && D.move(Pe(u.clone), null, g), g = (m = u).clone[m.clone.length - 1], T(u.scope, n, A, o, M, s, i) } else w(function (e, t) { u.scope = t; var a = x.cloneNode(!1); e[e.length++] = a, D.enter(e, null, g), g = a, u.clone = e, f[u.id] = u, T(u.scope, n, A, o, M, s, i) }); $ = f }) } } } }], Vs = "ng-hide", Fs = "ng-hide-animate", zs = ["$animate", function (n) { return { restrict: "A", multiElement: !0, link: function (e, t, a) { e.$watch(a.ngShow, function (e) { n[e ? "removeClass" : "addClass"](t, Vs, {tempClasses: Fs}) }) } } }], Hs = ["$animate", function (n) { return { restrict: "A", multiElement: !0, link: function (e, t, a) { e.$watch(a.ngHide, function (e) { n[e ? "addClass" : "removeClass"](t, Vs, {tempClasses: Fs}) }) } } }], Ws = Ai(function (e, a, t) { e.$watch(t.ngStyle, function (e, t) { t && e !== t && ue(t, function (e, t) { a.css(t, "") }), e && a.css(e) }, !0) }), Gs = ["$animate", "$compile", function (u, d) { return { require: "ngSwitch", controller: ["$scope", function () { this.cases = {} }], link: function (e, t, a, i) { function s(e, t) { return function () { e.splice(t, 1) } } var n = a.ngSwitch || a.on, o = [], r = [], l = [], c = []; e.$watch(n, function (e) { var t, a; for (t = 0, a = l.length; t < a; ++t) u.cancel(l[t]); for (t = l.length = 0, a = c.length; t < a; ++t) { var n = Pe(r[t].clone); c[t].$destroy(), (l[t] = u.leave(n)).then(s(l, t)) } r.length = 0, c.length = 0, (o = i.cases["!" + e] || i.cases["?"]) && ue(o, function (i) { i.transclude(function (e, t) { c.push(t); var a = i.element; e[e.length++] = d.$$createComment("end ngSwitchWhen"); var n = {clone: e}; r.push(n), u.enter(e, a.parent(), a) }) }) }) } } }], Qs = Ai({ transclude: "element", priority: 1200, require: "^ngSwitch", multiElement: !0, link: function (e, t, a, n, i) { n.cases["!" + a.ngSwitchWhen] = n.cases["!" + a.ngSwitchWhen] || [], n.cases["!" + a.ngSwitchWhen].push({ transclude: i, element: t }) } }), Ks = Ai({ transclude: "element", priority: 1200, require: "^ngSwitch", multiElement: !0, link: function (e, t, a, n, i) { n.cases["?"] = n.cases["?"] || [], n.cases["?"].push({transclude: i, element: t}) } }), Js = $("ngTransclude"), Zs = Ai({ restrict: "EAC", link: function (e, t, a, n, i) { if (a.ngTransclude === a.$attr.ngTransclude && (a.ngTransclude = ""), !i) throw Js("orphan", "Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}", Se(t)); i(function (e) { e.length && (t.empty(), t.append(e)) }, null, a.ngTransclude || a.ngTranscludeSlot) } }), Xs = ["$templateCache", function (i) { return { restrict: "E", terminal: !0, compile: function (e, t) { if ("text/ng-template" == t.type) { var a = t.id, n = e[0].text; i.put(a, n) } } } }], eo = {$setViewValue: q, $render: q}; function to() { return { restrict: "E", require: ["select", "?ngModel"], controller: uo, priority: 1, link: { pre: function (e, a, t, n) { var i = n[1]; if (!i) return; var s = n[0]; if (s.ngModelCtrl = i, a.on("change", function () { e.$apply(function () { i.$setViewValue(s.readValue()) }) }), t.multiple) { s.readValue = function () { var t = []; return ue(a.find("option"), function (e) { e.selected && t.push(e.value) }), t }, s.writeValue = function (e) { var t = new Tt(e); ue(a.find("option"), function (e) { e.selected = V(t.get(e.value)) }) }; var o, r = NaN; e.$watch(function () { r !== i.$viewValue || ke(o, i.$viewValue) || (o = E(i.$viewValue), i.$render()), r = i.$viewValue }), i.$isEmpty = function (e) { return !e || 0 === e.length } } }, post: function (e, t, a, n) { var i = n[1]; if (!i) return; var s = n[0]; i.$render = function () { s.writeValue(i.$viewValue) } } } } } function ao() { return { restrict: "A", require: "?ngModel", link: function (e, t, a, n) { n && (a.required = !0, n.$validators.required = function (e, t) { return !a.required || !n.$isEmpty(t) }, a.$observe("required", function () { n.$validate() })) } } } function no() { return { restrict: "A", require: "?ngModel", link: function (e, t, a, n) { if (n) { var i, s = a.ngPattern || a.pattern; a.$observe("pattern", function (e) { if (ge(e) && 0 < e.length && (e = new RegExp("^" + e + "$")), e && !e.test) throw $("ngPattern")("noregexp", "Expected {0} to be a RegExp but was {1}. Element: {2}", s, e, Se(t)); i = e || void 0, n.$validate() }), n.$validators.pattern = function (e, t) { return n.$isEmpty(t) || pe(i) || i.test(t) } } } } } function io() { return { restrict: "A", require: "?ngModel", link: function (e, t, a, n) { if (n) { var i = -1; a.$observe("maxlength", function (e) { var t = f(e); i = isNaN(t) ? -1 : t, n.$validate() }), n.$validators.maxlength = function (e, t) { return i < 0 || n.$isEmpty(t) || t.length <= i } } } } } function so() { return { restrict: "A", require: "?ngModel", link: function (e, t, a, n) { if (n) { var i = 0; a.$observe("minlength", function (e) { i = f(e) || 0, n.$validate() }), n.$validators.minlength = function (e, t) { return n.$isEmpty(t) || t.length >= i } } } } } var oo, ro, lo, co, uo = ["$element", "$scope", function (a, e) { var o = this, n = new Tt; o.ngModelCtrl = eo, o.unknownOption = ce(L.document.createElement("option")), o.renderUnknownOption = function (e) { var t = "? " + Dt(e) + " ?"; o.unknownOption.val(t), a.prepend(o.unknownOption), a.val(t) }, e.$on("$destroy", function () { o.renderUnknownOption = q }), o.removeUnknownOption = function () { o.unknownOption.parent() && o.unknownOption.remove() }, o.readValue = function () { return o.removeUnknownOption(), a.val() }, o.writeValue = function (e) { o.hasOption(e) ? (o.removeUnknownOption(), a.val(e), "" === e && o.emptyOption.prop("selected", !0)) : null == e && o.emptyOption ? (o.removeUnknownOption(), a.val("")) : o.renderUnknownOption(e) }, o.addOption = function (e, t) { if (t[0].nodeType !== Oe) { De(e, '"option value"'), "" === e && (o.emptyOption = t); var a = n.get(e) || 0; n.put(e, a + 1), o.ngModelCtrl.$render(), function (e) { e[0].hasAttribute("selected") && (e[0].selected = !0) }(t) } }, o.removeOption = function (e) { var t = n.get(e); t && (1 === t ? (n.remove(e), "" === e && (o.emptyOption = void 0)) : n.put(e, t - 1)) }, o.hasOption = function (e) { return !!n.get(e) }, o.registerOption = function (e, a, n, t, i) { var s; t ? n.$observe("value", function (e) { V(s) && o.removeOption(s), s = e, o.addOption(e, a) }) : i ? e.$watch(i, function (e, t) { n.$set("value", e), t !== e && o.removeOption(t), o.addOption(e, a) }) : o.addOption(n.value, a); a.on("$destroy", function () { o.removeOption(n.value), o.ngModelCtrl.$render() }) } }], po = ["$interpolate", function (a) { return { restrict: "E", priority: 100, compile: function (e, t) { if (V(t.value)) var o = a(t.value, !0); else { var r = a(e.text(), !0); r || t.$set("value", e.text()) } return function (e, t, a) { var n = "$selectController", i = t.parent(), s = i.data(n) || i.parent().data(n); s && s.registerOption(e, t, a, o, r) } } } }], mo = I({restrict: "E", terminal: !1}); L.angular.bootstrap ? L.console && console.log("WARNING: Tried to load angular more than once.") : (function () { var i; if (!Ce) { var e = z(); (o = pe(e) ? L.jQuery : e ? L[e] : void 0) && o.fn.on ? (de((ce = o).fn, { scope: $t.scope, isolateScope: $t.isolateScope, controller: $t.controller, injector: $t.injector, inheritedData: $t.inheritedData }), i = o.cleanData, o.cleanData = function (e) { for (var t, a, n = 0; null != (a = e[n]); n++) (t = o._data(a, "events")) && t.$destroy && o(a).triggerHandler("$destroy"); i(e) }) : ce = ot, S.element = ce, Ce = !0 } }(), de(S, { bootstrap: se, copy: P, extend: de, merge: n, equals: ke, element: ce, forEach: ue, injector: qt, noop: q, bind: _e, toJson: W, fromJson: G, identity: Y, isUndefined: pe, isDefined: V, isString: ge, isFunction: he, isObject: me, isNumber: w, isElement: T, isArray: fe, version: Re, isDate: k, lowercase: U, uppercase: u, callbacks: {counter: 0}, getTestability: re, $$minErr: $, $$csp: F, reloadWithDebugInfo: oe }), oo = L, ro = $("$injector"), lo = $("ng"), (co = go(oo, "angular", Object)).$$minErr = co.$$minErr || $, (h = go(co, "module", function () { var e = {}; return function (r, l, c) { return function (e, t) { if ("hasOwnProperty" === e) throw lo("badname", "hasOwnProperty is not a valid {0} name", t) }(r, "module"), l && e.hasOwnProperty(r) && (e[r] = null), go(e, r, function () { if (!l) throw ro("nomod", "Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.", r); var i = [], e = [], t = [], a = n("$injector", "invoke", "push", e), s = { _invokeQueue: i, _configBlocks: e, _runBlocks: t, requires: l, name: r, provider: o("$provide", "provider"), factory: o("$provide", "factory"), service: o("$provide", "service"), value: n("$provide", "value"), constant: n("$provide", "constant", "unshift"), decorator: o("$provide", "decorator"), animation: o("$animateProvider", "register"), filter: o("$filterProvider", "register"), controller: o("$controllerProvider", "register"), directive: o("$compileProvider", "directive"), component: o("$compileProvider", "component"), config: a, run: function (e) { return t.push(e), this } }; return c && a(c), s; function n(e, t, a, n) { return n || (n = i), function () { return n[a || "push"]([e, t, arguments]), s } } function o(a, n) { return function (e, t) { return t && he(t) && (t.$$moduleName = r), i.push([a, n, arguments]), s } } }) } }))("ng", ["ngLocale"], ["$provide", function (e) { e.provider({$$sanitizeUri: Bn}), e.provider("$compile", oa).directive({ a: Mi, input: as, textarea: as, form: Li, script: Xs, select: to, style: mo, option: po, ngBind: is, ngBindHtml: os, ngBindTemplate: ss, ngClass: cs, ngClassEven: ds, ngClassOdd: us, ngCloak: ps, ngController: ms, ngForm: Oi, ngHide: Hs, ngIf: ys, ngInclude: bs, ngInit: $s, ngNonBindable: Us, ngPluralize: qs, ngRepeat: Ys, ngShow: zs, ngStyle: Ws, ngSwitch: Gs, ngSwitchWhen: Qs, ngSwitchDefault: Ks, ngOptions: Rs, ngTransclude: Zs, ngModel: Es, ngList: hs, ngChange: rs, pattern: no, ngPattern: no, required: ao, ngRequired: ao, minlength: so, ngMinlength: so, maxlength: io, ngMaxlength: io, ngValue: ts, ngModelOptions: vs }).directive({ngInclude: ws}).directive(Di).directive(gs), e.provider({ $anchorScroll: Yt, $animate: Xt, $animateCss: Zt, $$animateJs: Gt, $$animateQueue: Qt, $$AnimateRunner: Jt, $$animateAsyncRun: Kt, $browser: ta, $cacheFactory: aa, $controller: fa, $document: ha, $exceptionHandler: va, $filter: ni, $$forceReflow: ya, $interpolate: Na, $interval: Ba, $http: ja, $httpParamSerializer: Ca, $httpParamSerializerJQLike: Aa, $httpBackend: Oa, $xhrFactory: La, $location: an, $log: nn, $parse: En, $rootScope: Nn, $q: jn, $$q: Ln, $sce: Fn, $sceDelegate: Vn, $sniffer: zn, $templateCache: na, $templateRequest: Wn, $$testability: Gn, $timeout: Qn, $window: ei, $$rAF: Un, $$jqLite: Mt, $$HashMap: Pt, $$cookieReader: ai }) }]), S.module("ngLocale", [], ["$provide", function (e) { var i = "one", s = "other"; e.value("$locale", { DATETIME_FORMATS: { AMPMS: ["AM", "PM"], DAY: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], ERANAMES: ["Before Christ", "Anno Domini"], ERAS: ["BC", "AD"], FIRSTDAYOFWEEK: 6, MONTH: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], SHORTDAY: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], SHORTMONTH: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], STANDALONEMONTH: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], WEEKENDRANGE: [5, 6], fullDate: "EEEE, MMMM d, y", longDate: "MMMM d, y", medium: "MMM d, y h:mm:ss a", mediumDate: "MMM d, y", mediumTime: "h:mm:ss a", short: "M/d/yy h:mm a", shortDate: "M/d/yy", shortTime: "h:mm a" }, NUMBER_FORMATS: { CURRENCY_SYM: "$", DECIMAL_SEP: ".", GROUP_SEP: ",", PATTERNS: [{ gSize: 3, lgSize: 3, maxFrac: 3, minFrac: 0, minInt: 1, negPre: "-", negSuf: "", posPre: "", posSuf: "" }, { gSize: 3, lgSize: 3, maxFrac: 2, minFrac: 2, minInt: 1, negPre: "-¤", negSuf: "", posPre: "¤", posSuf: "" }] }, id: "en-us", localeID: "en_US", pluralCat: function (e, t) { var a = 0 | e, n = function (e, t) { var a = t; void 0 === a && (a = Math.min(function (e) { var t = (e += "").indexOf("."); return -1 == t ? 0 : e.length - t - 1 }(e), 3)); var n = Math.pow(10, a); return {v: a, f: (e * n | 0) % n} }(e, t); return 1 == a && 0 == n.v ? i : s } }) }]), ce(L.document).ready(function () { ie(L.document, se) })); function go(e, t, a) { return e[t] || (e[t] = a()) } }(window), window.angular.$$csp().noInlineStyle || window.angular.element(document.head).prepend(''), function (c, u) { "use strict"; var ie, se, oe, re, le = u.noop, ce = u.copy, d = u.extend, B = u.element, ue = u.forEach, de = u.isArray, R = u.isString, q = u.isObject, Y = u.isUndefined, V = u.isDefined, $ = u.isFunction, p = u.isElement, F = 1, pe = "-add", me = "-remove", ge = "ng-", k = "ng-animate", z = "$$ngAnimateChildren"; se = Y(c.ontransitionend) && V(c.onwebkittransitionend) ? ("-webkit-", ie = "WebkitTransition", "webkitTransitionEnd transitionend") : (ie = "transition", "transitionend"), re = Y(c.onanimationend) && V(c.onwebkitanimationend) ? ("-webkit-", oe = "WebkitAnimation", "webkitAnimationEnd animationend") : (oe = "animation", "animationend"); var i = "Duration", fe = "TimingFunction", s = "PlayState", a = oe + "Delay", he = oe + i, n = ie + "Delay", e = ie + i, o = u.$$minErr("ng"); function m(e, t, a) { if (!e) throw o("areq", "Argument '{0}' is {1}", t || "?", a || "required"); return e } function x(e, t) { return e || t ? e ? t ? (de(e) && (e = e.join(" ")), de(t) && (t = t.join(" ")), e + " " + t) : e : t : "" } function ve(e, a, n) { var i = ""; return e = de(e) ? e : e && R(e) && e.length ? e.split(/\s+/) : [], ue(e, function (e, t) { e && 0 < e.length && (i += 0 < t ? " " : "", i += n ? a + e : e + a) }), i } function H(e) { if (!e[0]) return e; for (var t = 0; t < e.length; t++) { var a = e[t]; if (a.nodeType == F) return a } } function ye(a) { return function (e, t) { t.addClass && (function (t, e, a) { ue(e, function (e) { t.addClass(e, a) }) }(a, e, t.addClass), t.addClass = null), t.removeClass && (function (t, e, a) { ue(e, function (e) { t.removeClass(e, a) }) }(a, e, t.removeClass), t.removeClass = null) } } function be(e) { if (!(e = e || {}).$$prepared) { var t = e.domOperation || le; e.domOperation = function () { e.$$domOperationFired = !0, t(), t = le }, e.$$prepared = !0 } return e } function we(e, t) { $e(e, t), ke(e, t) } function $e(e, t) { t.from && (e.css(t.from), t.from = null) } function ke(e, t) { t.to && (e.css(t.to), t.to = null) } function W(e, t, a) { var n = t.options || {}, i = a.options || {}, s = (n.addClass || "") + " " + (i.addClass || ""), o = (n.removeClass || "") + " " + (i.removeClass || ""), r = function (i, e, t) { var a = {}; i = n(i), e = n(e), ue(e, function (e, t) { a[t] = 1 }), t = n(t), ue(t, function (e, t) { a[t] = 1 === a[t] ? null : -1 }); var s = {addClass: "", removeClass: ""}; function n(e) { R(e) && (e = e.split(" ")); var t = {}; return ue(e, function (e) { e.length && (t[e] = !0) }), t } return ue(a, function (e, t) { var a, n; 1 === e ? (a = "addClass", n = !i[t]) : -1 === e && (a = "removeClass", n = i[t]), n && (s[a].length && (s[a] += " "), s[a] += t) }), s }(e.attr("class"), s, o); i.preparationClasses && (n.preparationClasses = G(i.preparationClasses, n.preparationClasses), delete i.preparationClasses); var l = n.domOperation !== le ? n.domOperation : null; return d(n, i), l && (n.domOperation = l), r.addClass ? n.addClass = r.addClass : n.addClass = null, r.removeClass ? n.removeClass = r.removeClass : n.removeClass = null, t.addClass = n.addClass, t.removeClass = n.removeClass, n } function xe(e) { return e instanceof u.element ? e[0] : e } function _e(e, t) { var a = t ? "-" + t + "s" : ""; return Ie(e, [n, a]), [n, a] } function Se(e, t) { var a = t ? "paused" : "", n = oe + s; return Ie(e, [n, a]), [n, a] } function Ie(e, t) { var a = t[0], n = t[1]; e.style[a] = n } function G(e, t) { return e ? t ? e + " " + t : e : t } var t = ["$interpolate", function (s) { return { link: function (e, t, a) { var n = a.ngAnimateChildren; function i(e) { e = "on" === e || "true" === e, t.data(z, e) } u.isString(n) && 0 === n.length ? t.data(z, !0) : (i(s(n)(e)), a.$observe("ngAnimateChildren", i)) } } }], Ce = "$$animateCss", r = { transitionDuration: e, transitionDelay: n, transitionProperty: ie + "Property", animationDuration: he, animationDelay: a, animationIterationCount: oe + "IterationCount" }, Ae = {transitionDuration: e, transitionDelay: n, animationDuration: he, animationDelay: a}; function Me(e, t) { return [t ? a : n, e + "s"] } function De(e, t, a) { var i = Object.create(null), s = e.getComputedStyle(t) || {}; return ue(a, function (e, t) { var a = s[e]; if (a) { var n = a.charAt(0); ("-" === n || "+" === n || 0 <= n) && (a = function (e) { var t = 0, a = e.split(/\s*,\s*/); return ue(a, function (e) { "s" == e.charAt(e.length - 1) && (e = e.substring(0, e.length - 1)), e = parseFloat(e) || 0, t = t ? Math.max(e, t) : e }), t }(a)), 0 === a && (a = null), i[t] = a } }), i } function Te(e) { return 0 === e || null != e } function Pe(e, t) { var a = ie, n = e + "s"; return t ? a += i : n += " linear all", [a, n] } function l() { var a = Object.create(null); return { flush: function () { a = Object.create(null) }, count: function (e) { var t = a[e]; return t ? t.total : 0 }, get: function (e) { var t = a[e]; return t && t.value }, put: function (e, t) { a[e] ? a[e].total++ : a[e] = {total: 1, value: t} } } } function Ee(t, a, e) { ue(e, function (e) { t[e] = V(t[e]) ? t[e] : a.style.getPropertyValue(e) }) } var g = ["$animateProvider", function (e) { var ae = l(), ne = l(); this.$get = ["$window", "$$jqLite", "$$AnimateRunner", "$timeout", "$$forceReflow", "$sniffer", "$$rAFScheduler", "$$animateQueue", function (H, W, G, Q, a, K, t, J) { var Z = ye(W), i = 0; function X(e, t) { var a = "$$ngAnimateParentKey", n = e.parentNode; return (n[a] || (n[a] = ++i)) + "-" + e.getAttribute("class") + "-" + t } var n = []; function ee(e) { n.push(e), t.waitUntilQuiet(function () { ae.flush(), ne.flush(); for (var e = a(), t = 0; t < n.length; t++) n[t](e); n.length = 0 }) } function te(e, t, a) { var n = function (e, t, a, n) { var i = ae.get(a); return i || "infinite" === (i = De(H, e, n)).animationIterationCount && (i.animationIterationCount = 1), ae.put(a, i), i }(e, 0, a, r), i = n.animationDelay, s = n.transitionDelay; return n.maxDelay = i && s ? Math.max(i, s) : i || s, n.maxDuration = Math.max(n.animationDuration * n.animationIterationCount, n.transitionDuration), n } return function (c, e) { var u = e || {}; u.$$prepared || (u = be(ce(u))); var d = {}, p = xe(c); if (!p || !p.parentNode || !J.enabled()) return V(); var m, n, i, a, s, g, f, h, v, y, b = [], t = c.attr("class"), o = function (e) { var t = {}; return e && (e.to || e.from) && (t.to = e.to, t.from = e.from), t }(u), w = []; if (0 === u.duration || !K.animations && !K.transitions) return V(); var r = u.event && de(u.event) ? u.event.join(" ") : u.event, l = "", $ = ""; r && u.structural ? l = ve(r, ge, !0) : r && (l = r), u.addClass && ($ += ve(u.addClass, pe)), u.removeClass && ($.length && ($ += " "), $ += ve(u.removeClass, me)), u.applyClassesEarly && $.length && Z(c, u); var k, x, _, S = [l, $].join(" ").trim(), I = t + " " + S, C = ve(S, "-active"), A = o.to && 0 < Object.keys(o.to).length; if (!(0 < (u.keyframeStyle || "").length) && !A && !S) return V(); if (0 < u.stagger) { var M = parseFloat(u.stagger); x = {transitionDelay: M, animationDelay: M, transitionDuration: 0, animationDuration: 0} } else k = X(p, I), x = function (e, t, a, n) { var i; if (0 < ae.count(a) && !(i = ne.get(a))) { var s = ve(t, "-stagger"); W.addClass(e, s), (i = De(H, e, n)).animationDuration = Math.max(i.animationDuration, 0), i.transitionDuration = Math.max(i.transitionDuration, 0), W.removeClass(e, s), ne.put(a, i) } return i || {} }(p, S, k, Ae); if (u.$$skipPreparationClasses || W.addClass(c, S), u.transitionStyle) { var D = [ie, u.transitionStyle]; Ie(p, D), b.push(D) } if (0 <= u.duration) { _ = 0 < p.style[ie].length; var T = Pe(u.duration, _); Ie(p, T), b.push(T) } if (u.keyframeStyle) { var P = [oe, u.keyframeStyle]; Ie(p, P), b.push(P) } var E = x ? 0 <= u.staggerIndex ? u.staggerIndex : ae.count(k) : 0, j = 0 === E; j && !u.skipBlocking && _e(p, 9999); var L = te(p, 0, k), O = L.maxDelay; g = Math.max(O, 0), h = L.maxDuration; var U, N = {}; if (N.hasTransitions = 0 < L.transitionDuration, N.hasAnimations = 0 < L.animationDuration, N.hasTransitionAll = N.hasTransitions && "all" == L.transitionProperty, N.applyTransitionDuration = A && (N.hasTransitions && !N.hasTransitionAll || N.hasAnimations && !N.hasTransitions), N.applyAnimationDuration = u.duration && N.hasAnimations, N.applyTransitionDelay = Te(u.delay) && (N.applyTransitionDuration || N.hasTransitions), N.applyAnimationDelay = Te(u.delay) && N.hasAnimations, N.recalculateTimingStyles = 0 < $.length, (N.applyTransitionDuration || N.applyAnimationDuration) && (h = u.duration ? parseFloat(u.duration) : h, N.applyTransitionDuration && (N.hasTransitions = !0, L.transitionDuration = h, _ = 0 < p.style[ie + "Property"].length, b.push(Pe(h, _))), N.applyAnimationDuration && (N.hasAnimations = !0, L.animationDuration = h, b.push(function (e) { return [he, e + "s"] }(h)))), 0 === h && !N.recalculateTimingStyles) return V(); null != u.delay && ("boolean" != typeof u.delay && (U = parseFloat(u.delay), g = Math.max(U, 0)), N.applyTransitionDelay && b.push(Me(U)), N.applyAnimationDelay && b.push(Me(U, !0))); return null == u.duration && 0 < L.transitionDuration && (N.recalculateTimingStyles = N.recalculateTimingStyles || j), f = 1e3 * g, v = 1e3 * h, u.skipBlocking || (N.blockTransition = 0 < L.transitionDuration, N.blockKeyframeAnimation = 0 < L.animationDuration && 0 < x.animationDelay && 0 === x.animationDuration), u.from && (u.cleanupStyles && Ee(d, p, Object.keys(u.from)), $e(c, u)), N.blockTransition || N.blockKeyframeAnimation ? Y(h) : u.skipBlocking || _e(p, !1), { $$willAnimate: !0, end: B, start: function () { if (!m) return a = new G(s = {end: B, cancel: R, resume: null, pause: null}), ee(z), a } }; function B() { q() } function R() { q(!0) } function q(e) { if (!(m || i && n)) { n = !(m = !0), u.$$skipPreparationClasses || W.removeClass(c, S), W.removeClass(c, C), Se(p, !1), _e(p, !1), ue(b, function (e) { p.style[e[0]] = "" }), Z(c, u), we(c, u), Object.keys(d).length && ue(d, function (e, t) { e ? p.style.setProperty(t, e) : p.style.removeProperty(t) }), u.onDone && u.onDone(), w && w.length && c.off(w.join(" "), F); var t = c.data(Ce); t && (Q.cancel(t[0].timer), c.removeData(Ce)), a && a.complete(!e) } } function Y(e) { N.blockTransition && _e(p, e), N.blockKeyframeAnimation && Se(p, !!e) } function V() { return a = new G({end: B, cancel: R}), ee(le), q(), { $$willAnimate: !1, start: function () { return a }, end: B } } function F(e) { e.stopPropagation(); var t = e.originalEvent || e, a = t.$manualTimeStamp || Date.now(), n = parseFloat(t.elapsedTime.toFixed(3)); Math.max(a - y, 0) >= f && h <= n && (i = !0, q()) } function z() { if (!m) if (p.parentNode) { var e = function (e) { if (i) n && e && (n = !1, q()); else if (n = !e, L.animationDuration) { var t = Se(p, n); n ? b.push(t) : function (e, t) { var a = e.indexOf(t); 0 <= t && e.splice(a, 1) }(b, t) } }, t = 0 < E && (L.transitionDuration && 0 === x.transitionDuration || L.animationDuration && 0 === x.animationDuration) && Math.max(x.animationDelay, x.transitionDelay); t ? Q(a, Math.floor(t * E * 1e3), !1) : a(), s.resume = function () { e(!0) }, s.pause = function () { e(!1) } } else q(); function a() { if (!m) { if (Y(!1), ue(b, function (e) { var t = e[0], a = e[1]; p.style[t] = a }), Z(c, u), W.addClass(c, C), N.recalculateTimingStyles) { if (I = p.className + " " + S, k = X(p, I), L = te(p, 0, k), O = L.maxDelay, g = Math.max(O, 0), 0 === (h = L.maxDuration)) return void q(); N.hasTransitions = 0 < L.transitionDuration, N.hasAnimations = 0 < L.animationDuration } if (N.applyAnimationDelay && (O = "boolean" != typeof u.delay && Te(u.delay) ? parseFloat(u.delay) : O, g = Math.max(O, 0), L.animationDelay = O, U = Me(O, !0), b.push(U), p.style[U[0]] = U[1]), f = 1e3 * g, v = 1e3 * h, u.easing) { var e, t = u.easing; N.hasTransitions && (e = ie + fe, b.push([e, t]), p.style[e] = t), N.hasAnimations && (e = oe + fe, b.push([e, t]), p.style[e] = t) } L.transitionDuration && w.push(se), L.animationDuration && w.push(re), y = Date.now(); var a = f + 1.5 * v, n = y + a, i = c.data(Ce) || [], s = !0; if (i.length) { var o = i[0]; (s = n > o.expectedEndTime) ? Q.cancel(o.timer) : i.push(q) } if (s) { var r = Q(l, a, !1); i[0] = {timer: r, expectedEndTime: n}, i.push(q), c.data(Ce, i) } w.length && c.on(w.join(" "), F), u.to && (u.cleanupStyles && Ee(d, p, Object.keys(u.to)), ke(c, u)) } } function l() { var e = c.data(Ce); if (e) { for (var t = 1; t < e.length; t++) e[t](); c.removeData(Ce) } } } } }] }], f = ["$$animationProvider", function (e) { e.drivers.push("$$animateCssDriver"); var y = "ng-animate-shim", b = "ng-anchor-out"; this.$get = ["$animateCss", "$rootScope", "$$AnimateRunner", "$rootElement", "$sniffer", "$$jqLite", "$document", function (p, e, m, t, a, n, i) { if (!a.animations && !a.transitions) return le; var g = i[0].body, s = xe(t), f = B(function (e) { return e.parentNode && 11 === e.parentNode.nodeType }(s) || g.contains(s) ? s : g); ye(n); return function (e) { return e.from && e.to ? function (e, t, a, n) { var i = r(e), s = r(t), o = []; if (ue(n, function (e) { var t = function (e, t, i) { var s = B(xe(t).cloneNode(!0)), o = h(c(s)); t.addClass(y), i.addClass(y), s.addClass("ng-anchor"), f.append(s); var n, a = function () { var e = p(s, {addClass: b, delay: !0, from: l(t)}); return e.$$willAnimate ? e : null }(); if (!a && !(n = u())) return d(); var r = a || n; return { start: function () { var e, t = r.start(); return t.done(function () { if (t = null, !n && (n = u())) return (t = n.start()).done(function () { t = null, d(), e.complete() }), t; d(), e.complete() }), e = new m({end: a, cancel: a}); function a() { t && t.end() } } }; function l(e) { var a = {}, n = xe(e).getBoundingClientRect(); return ue(["width", "height", "top", "left"], function (e) { var t = n[e]; switch (e) { case"top": t += g.scrollTop; break; case"left": t += g.scrollLeft } a[e] = Math.floor(t) + "px" }), a } function c(e) { return e.attr("class") || "" } function u() { var e = h(c(i)), t = v(e, o), a = v(o, e), n = p(s, { to: l(i), addClass: "ng-anchor-in " + t, removeClass: b + " " + a, delay: !0 }); return n.$$willAnimate ? n : null } function d() { s.remove(), t.removeClass(y), i.removeClass(y) } }(0, e.out, e.in); t && o.push(t) }), !i && !s && 0 === o.length) return; return { start: function () { var t = []; i && t.push(i.start()), s && t.push(s.start()), ue(o, function (e) { t.push(e.start()) }); var a = new m({end: e, cancel: e}); return m.all(t, function (e) { a.complete(e) }), a; function e() { ue(t, function (e) { e.end() }) } } } }(e.from, e.to, e.classes, e.anchors) : r(e) }; function h(e) { return e.replace(/\bng-\S+\b/g, "") } function v(e, t) { return R(e) && (e = e.split(" ")), R(t) && (t = t.split(" ")), e.filter(function (e) { return -1 === t.indexOf(e) }).join(" ") } function r(e) { var t = e.element, a = e.options || {}; e.structural && (a.event = e.event, a.structural = !0, a.applyClassesEarly = !0, "leave" === e.event && (a.onDone = a.domOperation)), a.preparationClasses && (a.event = G(a.event, a.preparationClasses)); var n = p(t, a); return n.$$willAnimate ? n : null } }] }], h = ["$animateProvider", function (w) { this.$get = ["$injector", "$$AnimateRunner", "$$jqLite", function (v, y, e) { var b = ye(e); return function (e, t, a, n) { var i = !1; 3 === arguments.length && q(a) && (n = a, a = null), n = be(n), a || (a = e.attr("class") || "", n.addClass && (a += " " + n.addClass), n.removeClass && (a += " " + n.removeClass)); var s, o, r, l, c, u = n.addClass, d = n.removeClass, p = function (e) { e = de(e) ? e : e.split(" "); for (var t = [], a = {}, n = 0; n < e.length; n++) { var i = e[n], s = w.$$registeredAnimations[i]; s && !a[i] && (t.push(v.get(s)), a[i] = !0) } return t }(a); p.length && (r = "leave" == t ? (l = "leave", "afterLeave") : (l = "before" + t.charAt(0).toUpperCase() + t.substr(1), t), "enter" !== t && "move" !== t && (s = h(e, t, n, p, l)), o = h(e, t, n, p, r)); if (s || o) return { $$willAnimate: !0, end: function () { return c ? c.end() : (g(), (c = new y).complete(!0)), c }, start: function () { if (c) return c; var t; c = new y; var e = []; return s && e.push(function (e) { t = s(e) }), e.length ? e.push(function (e) { m(), e(!0) }) : m(), o && e.push(function (e) { t = o(e) }), c.setHost({ end: function () { n() }, cancel: function () { n(!0) } }), y.chain(e, a), c; function a(e) { g(), c.complete(e) } function n(e) { i || ((t || le)(e), a(e)) } } }; function m() { n.domOperation(), b(e, n) } function g() { i = !0, m(), we(e, n) } function f(o, r, l, e, t) { var a = []; return ue(e, function (e) { var s = e[t]; s && a.push(function () { function t(e) { i || (i = !0, (n || le)(e), a.complete(!e)) } var a, n, i = !1; return a = new y({ end: function () { t() }, cancel: function () { t(!0) } }), n = function (e, t, a, n, i) { var s; switch (a) { case"animate": s = [t, n.from, n.to, i]; break; case"setClass": s = [t, u, d, i]; break; case"addClass": s = [t, u, i]; break; case"removeClass": s = [t, d, i]; break; default: s = [t, i] } s.push(n); var o = e.apply(e, s); if (o) if ($(o.start) && (o = o.start()), o instanceof y) o.done(i); else if ($(o)) return o; return le }(s, o, r, l, function (e) { t(!1 === e) }), a }) }), a } function h(e, t, a, n, i) { var s, o, r = f(e, t, a, n, i); 0 === r.length && ("beforeSetClass" === i ? (s = f(e, "removeClass", a, n, "beforeRemoveClass"), o = f(e, "addClass", a, n, "beforeAddClass")) : "setClass" === i && (s = f(e, "removeClass", a, n, "removeClass"), o = f(e, "addClass", a, n, "addClass")), s && (r = r.concat(s)), o && (r = r.concat(o))); if (0 !== r.length) return function (e) { var a = []; return r.length && ue(r, function (e) { a.push(e()) }), a.length ? y.all(a, e) : e(), function (t) { ue(a, function (e) { t ? e.cancel() : e.end() }) } } } } }] }], v = ["$$animationProvider", function (e) { e.drivers.push("$$animateJsDriver"), this.$get = ["$$animateJs", "$$AnimateRunner", function (s, o) { return function (e) { if (e.from && e.to) { var n = t(e.from), i = t(e.to); if (!n && !i) return; return { start: function () { var e = []; n && e.push(n.start()), i && e.push(i.start()), o.all(e, function (e) { t.complete(e) }); var t = new o({end: a(), cancel: a()}); return t; function a() { return function () { ue(e, function (e) { e.end() }) } } } } } return t(e) }; function t(e) { var t = e.element, a = e.event, n = e.options, i = e.classes; return s(t, a, i, n) } }] }], Q = "data-ng-animate", K = "$ngAnimatePin", y = ["$animateProvider", function (l) { var n = " ", i = this.rules = {skip: [], cancel: [], join: []}; function r(e, t) { if (e && t) { var a = function (e) { if (!e) return null; var t = e.split(n), a = Object.create(null); return ue(t, function (e) { a[e] = !0 }), a }(t); return e.split(n).some(function (e) { return a[e] }) } } function U(e, t, a, n) { return i[e].some(function (e) { return e(t, a, n) }) } function N(e, t) { var a = 0 < (e.addClass || "").length, n = 0 < (e.removeClass || "").length; return t ? a && n : a || n } i.join.push(function (e, t, a) { return !t.structural && N(t) }), i.skip.push(function (e, t, a) { return !t.structural && !N(t) }), i.skip.push(function (e, t, a) { return "leave" == a.event && t.structural }), i.skip.push(function (e, t, a) { return a.structural && 2 === a.state && !t.structural }), i.cancel.push(function (e, t, a) { return a.structural && t.structural }), i.cancel.push(function (e, t, a) { return 2 === a.state && t.structural }), i.cancel.push(function (e, t, a) { if (a.structural) return !1; var n = t.addClass, i = t.removeClass, s = a.addClass, o = a.removeClass; return !(Y(n) && Y(i) || Y(s) && Y(o)) && (r(n, o) || r(i, s)) }), this.$get = ["$$rAF", "$rootScope", "$rootElement", "$document", "$$HashMap", "$$animation", "$$AnimateRunner", "$templateRequest", "$$jqLite", "$$forceReflow", function (b, w, $, k, e, x, _, t, a, n) { var S = new e, I = new e, C = null; var i = w.$watch(function () { return 0 === t.totalPendingRequests }, function (e) { e && (i(), w.$$postDigest(function () { w.$$postDigest(function () { null === C && (C = !0) }) })) }), A = {}, s = l.classNameFilter(), M = s ? function (e) { return s.test(e) } : function () { return !0 }, D = ye(a); function T(e, t) { return W(e, t, {}) } var P = c.Node.prototype.contains || function (e) { return this === e || !!(16 & this.compareDocumentPosition(e)) }; function o(e, t, a) { var n = H(t); return e.filter(function (e) { return !(e.node === n && (!a || e.callback === a)) }) } function E(e, t) { "close" !== e || t[0].parentNode || r.off(t) } var r = { on: function (e, t, a) { var n = H(t); A[e] = A[e] || [], A[e].push({node: n, callback: a}), B(t).on("$destroy", function () { S.get(n) || r.off(e, t, a) }) }, off: function (e, t, a) { if (1 !== arguments.length || u.isString(e)) { var n = A[e]; n && (A[e] = 1 === arguments.length ? null : o(n, t, a)) } else for (var i in t = e, A) A[i] = o(A[i], t) }, pin: function (e, t) { m(p(e), "element", "not an element"), m(p(t), "parentElement", "not an element"), e.data(K, t) }, push: function (e, t, a, n) { return (a = a || {}).domOperation = n, function (i, s, e) { var o, r, l = ce(e); (i = function (e) { if (e instanceof B) switch (e.length) { case 0: return e; case 1: if (e[0].nodeType === F) return e; break; default: return B(H(e)) } if (e.nodeType === F) return B(e) }(i)) && (o = xe(i), r = i.parent()); l = be(l); var c = new _, u = function () { var t = !1; return function (e) { t ? e() : w.$$postDigest(function () { t = !0, e() }) } }(); de(l.addClass) && (l.addClass = l.addClass.join(" ")); l.addClass && !R(l.addClass) && (l.addClass = null); de(l.removeClass) && (l.removeClass = l.removeClass.join(" ")); l.removeClass && !R(l.removeClass) && (l.removeClass = null); l.from && !q(l.from) && (l.from = null); l.to && !q(l.to) && (l.to = null); if (!o) return y(), c; var t = [o.className, l.addClass, l.removeClass].join(" "); if (!M(t)) return y(), c; var d = 0 <= ["enter", "move", "leave"].indexOf(s), a = k[0].hidden, n = !C || a || I.get(o), p = !n && S.get(o) || {}, m = !!p.state; n || m && 1 == p.state || (n = !function (e, t) { var a, n = B(k[0].body), i = L(e, n) || "HTML" === e[0].nodeName, s = L(e, $), o = !1, r = I.get(xe(e)), l = B.data(e[0], K); l && (t = l); t = xe(t); for (; t && (s || (s = L(t, $)), t.nodeType === F);) { var c = S.get(t) || {}; if (!o) { var u = I.get(t); if (!0 === u && !1 !== r) { r = !0; break } !1 === u && (r = !1), o = c.structural } if (Y(a) || !0 === a) { var d = B.data(t, z); V(d) && (a = d) } if (o && !1 === a) break; if (i || (i = L(t, n)), i && s) break; t = s || !(l = B.data(t, K)) ? t.parentNode : xe(l) } return (!o || a) && !0 !== r && s && i }(i, r)); if (n) return a && v(c, s, "start"), y(), a && v(c, s, "close"), c; d && function (e) { var t = xe(e).querySelectorAll("[" + Q + "]"); ue(t, function (e) { var t = parseInt(e.getAttribute(Q)), a = S.get(e); if (a) switch (t) { case 2: a.runner.end(); case 1: S.remove(e) } }) }(i); var g = { structural: d, element: i, event: s, addClass: l.addClass, removeClass: l.removeClass, close: y, options: l, runner: c }; if (m) { if (U("skip", i, g, p)) return 2 === p.state ? (y(), c) : (W(i, p, g), p.runner); if (U("cancel", i, g, p)) if (2 === p.state) p.runner.end(); else { if (!p.structural) return W(i, p, g), p.runner; p.close() } else if (U("join", i, g, p)) { if (2 !== p.state) return function (e, t, a) { var n = ""; t && (n = ve(t, ge, !0)), a.addClass && (n = G(n, ve(a.addClass, pe))), a.removeClass && (n = G(n, ve(a.removeClass, me))), n.length && (a.preparationClasses = n, e.addClass(n)) }(i, d ? s : null, l), s = g.event = p.event, l = W(i, p, g), p.runner; T(i, g) } } else T(i, g); var f = g.structural; f || (f = "animate" === g.event && 0 < Object.keys(g.options.to || {}).length || N(g)); if (!f) return y(), j(i), c; var h = (p.counter || 0) + 1; return g.counter = h, O(i, 1, g), w.$$postDigest(function () { var e = S.get(o), t = !e; e = e || {}; var a = 0 < (i.parent() || []).length && ("animate" === e.event || e.structural || N(e)); if (t || e.counter !== h || !a) return t && (D(i, l), we(i, l)), (t || d && e.event !== s) && (l.domOperation(), c.end()), void (a || j(i)); s = !e.structural && N(e, !0) ? "setClass" : e.event, O(i, 2); var n = x(i, s, e.options); c.setHost(n), v(c, s, "start", {}), n.done(function (e) { y(!e); var t = S.get(o); t && t.counter === h && j(xe(i)), v(c, s, "close", {}) }) }), c; function v(e, t, a, n) { u(function () { var e = function (e, t, a) { var n = xe(t), i = xe(e), s = [], o = A[a]; return o && ue(o, function (e) { P.call(e.node, n) ? s.push(e.callback) : "leave" === a && P.call(e.node, i) && s.push(e.callback) }), s }(r, i, t); e.length ? b(function () { ue(e, function (e) { e(i, a, n) }), E(a, i) }) : E(a, i) }), e.progress(t, a, n) } function y(e) { !function (e, t) { t.preparationClasses && (e.removeClass(t.preparationClasses), t.preparationClasses = null), t.activeClasses && (e.removeClass(t.activeClasses), t.activeClasses = null) }(i, l), D(i, l), we(i, l), l.domOperation(), c.complete(!e) } }(e, t, a) }, enabled: function (e, t) { var a = arguments.length; if (0 === a) t = !!C; else if (p(e)) { var n = xe(e), i = I.get(n); 1 === a ? t = !i : I.put(n, !t) } else t = C = !!e; return t } }; return r; function j(e) { var t = xe(e); t.removeAttribute(Q), S.remove(t) } function L(e, t) { return xe(e) === xe(t) } function O(e, t, a) { (a = a || {}).state = t; var n = xe(e); n.setAttribute(Q, t); var i = S.get(n), s = i ? d(i, a) : a; S.put(n, s) } }] }], b = ["$animateProvider", function (e) { var y = "ng-animate-ref", b = this.drivers = [], w = "$$animationRunner"; function $(e) { return e.data(w) } this.$get = ["$$jqLite", "$rootScope", "$injector", "$$AnimateRunner", "$$HashMap", "$$rAFScheduler", function (u, d, p, m, g, f) { var h = [], v = ye(u); return function (t, a, n) { n = be(n); var e = 0 <= ["enter", "move", "leave"].indexOf(a), i = new m({ end: function () { c() }, cancel: function () { c(!0) } }); if (!b.length) return c(), i; !function (e, t) { e.data(w, t) }(t, i); var s, o = x(t.attr("class"), x(n.addClass, n.removeClass)), r = n.tempClasses; return r && (o += " " + r, n.tempClasses = null), e && (s = "ng-" + a + "-prepare", u.addClass(t, s)), h.push({ element: t, classes: o, event: a, structural: e, options: n, beforeStart: function () { t.addClass(k), r && u.addClass(t, r); s && (u.removeClass(t, s), s = null) }, close: c }), t.on("$destroy", l), 1 < h.length || d.$$postDigest(function () { var t = []; ue(h, function (e) { $(e.element) ? t.push(e) : e.close() }), h.length = 0; var e = function (u) { var d = [], r = {}; ue(u, function (e, a) { var t = xe(e.element), n = e.event, i = 0 <= ["enter", "move"].indexOf(n), s = e.structural ? function (e) { var t = e.hasAttribute(y) ? [e] : e.querySelectorAll("[ng-animate-ref]"), a = []; return ue(t, function (e) { var t = e.getAttribute(y); t && t.length && a.push(e) }), a }(t) : []; if (s.length) { var o = i ? "to" : "from"; ue(s, function (e) { var t = e.getAttribute(y); r[t] = r[t] || {}, r[t][o] = {animationID: a, element: B(e)} }) } else d.push(e) }); var p = {}, m = {}; return ue(r, function (e, t) { var a = e.from, n = e.to; if (a && n) { var i = u[a.animationID], s = u[n.animationID], o = a.animationID.toString(); if (!m[o]) { var r = m[o] = { structural: !0, beforeStart: function () { i.beforeStart(), s.beforeStart() }, close: function () { i.close(), s.close() }, classes: function (e, t) { e = e.split(" "), t = t.split(" "); for (var a = [], n = 0; n < e.length; n++) { var i = e[n]; if ("ng-" !== i.substring(0, 3)) for (var s = 0; s < t.length; s++) if (i === t[s]) { a.push(i); break } } return a.join(" ") }(i.classes, s.classes), from: i, to: s, anchors: [] }; r.classes.length ? d.push(r) : (d.push(i), d.push(s)) } m[o].anchors.push({out: a.element, in: n.element}) } else { var l = a ? a.animationID : n.animationID, c = l.toString(); p[c] || (p[c] = !0, d.push(u[l])) } }), d }(t), a = []; ue(e, function (i) { a.push({ domNode: xe(i.from ? i.from.element : i.element), fn: function () { i.beforeStart(); var e, t = i.close; if ($(i.anchors ? i.from.element || i.to.element : i.element)) { var a = function (e) { for (var t = b.length - 1; 0 <= t; t--) { var a = b[t]; if (p.has(a)) { var n = p.get(a)(e); if (n) return n } } }(i); a && (e = a.start) } if (e) { var n = e(); n.done(function (e) { t(!e) }), function (e, a) { e.from && e.to ? (t(e.from.element), t(e.to.element)) : t(e.element); function t(e) { var t = $(e); t && t.setHost(a) } }(i, n) } else t() } }) }), f(function (e) { var t, i = {children: []}, s = new g; for (t = 0; t < e.length; t++) { var a = e[t]; s.put(a.domNode, e[t] = {domNode: a.domNode, fn: a.fn, children: []}) } for (t = 0; t < e.length; t++) o(e[t]); return function (e) { var t, a = [], n = []; for (t = 0; t < e.children.length; t++) n.push(e.children[t]); var i = n.length, s = 0, o = []; for (t = 0; t < n.length; t++) { var r = n[t]; i <= 0 && (i = s, s = 0, a.push(o), o = []), o.push(r.fn), r.children.forEach(function (e) { s++, n.push(e) }), i-- } o.length && a.push(o); return a }(i); function o(e) { if (e.processed) return e; e.processed = !0; var t, a = e.domNode, n = a.parentNode; for (s.put(a, e); n;) { if (t = s.get(n)) { t.processed || (t = o(t)); break } n = n.parentNode } return (t || i).children.push(e), e } }(a)) }), i; function l() { var e = $(t); !e || "leave" === a && n.$$domOperationFired || e.end() } function c(e) { t.off("$destroy", l), function (e) { e.removeData(w) }(t), v(t, n), we(t, n), n.domOperation(), r && u.removeClass(t, r), t.removeClass(k), i.complete(!e) } } }] }]; u.module("ngAnimate", []).directive("ngAnimateSwap", ["$animate", "$rootScope", function (r, e) { return { restrict: "A", transclude: "element", terminal: !0, priority: 600, link: function (t, a, e, n, i) { var s, o; t.$watchCollection(e.ngAnimateSwap || e.for, function (e) { s && r.leave(s), o && (o.$destroy(), o = null), !e && 0 !== e || (o = t.$new(), i(o, function (e) { s = e, r.enter(e, null, a) })) }) } } }]).directive("ngAnimateChildren", t).factory("$$rAFScheduler", ["$$rAF", function (a) { var n, i; function e(e) { n = n.concat(e), s() } return n = e.queue = [], e.waitUntilQuiet = function (e) { i && i(), i = a(function () { i = null, e(), s() }) }, e; function s() { if (n.length) { for (var e = n.shift(), t = 0; t < e.length; t++) e[t](); i || a(function () { i || s() }) } } }]).provider("$$animateQueue", y).provider("$$animation", b).provider("$animateCss", g).provider("$$animateCssDriver", f).provider("$$animateJs", h).provider("$$animateJsDriver", v) }(window, window.angular), angular.module("ui.bootstrap", ["ui.bootstrap.tpls", "ui.bootstrap.collapse", "ui.bootstrap.tabindex", "ui.bootstrap.accordion", "ui.bootstrap.alert", "ui.bootstrap.buttons", "ui.bootstrap.carousel", "ui.bootstrap.dateparser", "ui.bootstrap.isClass", "ui.bootstrap.datepicker", "ui.bootstrap.position", "ui.bootstrap.datepickerPopup", "ui.bootstrap.debounce", "ui.bootstrap.dropdown", "ui.bootstrap.stackedMap", "ui.bootstrap.modal", "ui.bootstrap.paging", "ui.bootstrap.pager", "ui.bootstrap.pagination", "ui.bootstrap.tooltip", "ui.bootstrap.popover", "ui.bootstrap.progressbar", "ui.bootstrap.rating", "ui.bootstrap.tabs", "ui.bootstrap.timepicker", "ui.bootstrap.typeahead"]), angular.module("ui.bootstrap.tpls", ["uib/template/accordion/accordion-group.html", "uib/template/accordion/accordion.html", "uib/template/alert/alert.html", "uib/template/carousel/carousel.html", "uib/template/carousel/slide.html", "uib/template/datepicker/datepicker.html", "uib/template/datepicker/day.html", "uib/template/datepicker/month.html", "uib/template/datepicker/year.html", "uib/template/datepickerPopup/popup.html", "uib/template/modal/window.html", "uib/template/pager/pager.html", "uib/template/pagination/pagination.html", "uib/template/tooltip/tooltip-html-popup.html", "uib/template/tooltip/tooltip-popup.html", "uib/template/tooltip/tooltip-template-popup.html", "uib/template/popover/popover-html.html", "uib/template/popover/popover-template.html", "uib/template/popover/popover.html", "uib/template/progressbar/bar.html", "uib/template/progressbar/progress.html", "uib/template/progressbar/progressbar.html", "uib/template/rating/rating.html", "uib/template/tabs/tab.html", "uib/template/tabs/tabset.html", "uib/template/timepicker/timepicker.html", "uib/template/typeahead/typeahead-match.html", "uib/template/typeahead/typeahead-popup.html"]), angular.module("ui.bootstrap.collapse", []).directive("uibCollapse", ["$animate", "$q", "$parse", "$injector", function (m, g, f, e) { var h = e.has("$animateCss") ? e.get("$animateCss") : null; return { link: function (t, a, e) { var n = f(e.expanding), i = f(e.expanded), s = f(e.collapsing), o = f(e.collapsed), r = !1, l = {}, c = {}; function u(e) { return r ? {width: e.scrollWidth + "px"} : {height: e.scrollHeight + "px"} } function d() { a.removeClass("collapsing").addClass("collapse").css(l), i(t) } function p() { a.css(c), a.removeClass("collapsing").addClass("collapse"), o(t) } !function () { c = (r = !!("horizontal" in e)) ? (l = { width: "auto", height: "inherit" }, {width: "0"}) : (l = {width: "inherit", height: "auto"}, {height: "0"}); t.$eval(e.uibCollapse) || a.addClass("in").addClass("collapse").attr("aria-expanded", !0).attr("aria-hidden", !1).css(l) }(), t.$watch(e.uibCollapse, function (e) { e ? function () { if (!a.hasClass("collapse") && !a.hasClass("in")) return p(); g.resolve(s(t)).then(function () { a.css(u(a[0])).removeClass("collapse").addClass("collapsing").attr("aria-expanded", !1).attr("aria-hidden", !0), h ? h(a, { removeClass: "in", to: c }).start().finally(p) : m.removeClass(a, "in", {to: c}).then(p) }) }() : a.hasClass("collapse") && a.hasClass("in") || g.resolve(n(t)).then(function () { a.removeClass("collapse").addClass("collapsing").attr("aria-expanded", !0).attr("aria-hidden", !1), h ? h(a, { addClass: "in", easing: "ease", to: u(a[0]) }).start().finally(d) : m.addClass(a, "in", {to: u(a[0])}).then(d) }) }) } } }]), angular.module("ui.bootstrap.tabindex", []).directive("uibTabindexToggle", function () { return { restrict: "A", link: function (e, t, a) { a.$observe("disabled", function (e) { a.$set("tabindex", e ? -1 : null) }) } } }), angular.module("ui.bootstrap.accordion", ["ui.bootstrap.collapse", "ui.bootstrap.tabindex"]).constant("uibAccordionConfig", {closeOthers: !0}).controller("UibAccordionController", ["$scope", "$attrs", "uibAccordionConfig", function (e, a, n) { this.groups = [], this.closeOthers = function (t) { (angular.isDefined(a.closeOthers) ? e.$eval(a.closeOthers) : n.closeOthers) && angular.forEach(this.groups, function (e) { e !== t && (e.isOpen = !1) }) }, this.addGroup = function (t) { var a = this; this.groups.push(t), t.$on("$destroy", function (e) { a.removeGroup(t) }) }, this.removeGroup = function (e) { var t = this.groups.indexOf(e); -1 !== t && this.groups.splice(t, 1) } }]).directive("uibAccordion", function () { return { controller: "UibAccordionController", controllerAs: "accordion", transclude: !0, templateUrl: function (e, t) { return t.templateUrl || "uib/template/accordion/accordion.html" } } }).directive("uibAccordionGroup", function () { return { require: "^uibAccordion", transclude: !0, restrict: "A", templateUrl: function (e, t) { return t.templateUrl || "uib/template/accordion/accordion-group.html" }, scope: {heading: "@", panelClass: "@?", isOpen: "=?", isDisabled: "=?"}, controller: function () { this.setHeading = function (e) { this.heading = e } }, link: function (t, a, e, n) { a.addClass("panel"), n.addGroup(t), t.openClass = e.openClass || "panel-open", t.panelClass = e.panelClass || "panel-default", t.$watch("isOpen", function (e) { a.toggleClass(t.openClass, !!e), e && n.closeOthers(t) }), t.toggleOpen = function (e) { t.isDisabled || e && 32 !== e.which || (t.isOpen = !t.isOpen) }; var i = "accordiongroup-" + t.$id + "-" + Math.floor(1e4 * Math.random()); t.headingId = i + "-tab", t.panelId = i + "-panel" } } }).directive("uibAccordionHeading", function () { return { transclude: !0, template: "", replace: !0, require: "^uibAccordionGroup", link: function (e, t, a, n, i) { n.setHeading(i(e, angular.noop)) } } }).directive("uibAccordionTransclude", function () { return { require: "^uibAccordionGroup", link: function (e, a, t, n) { e.$watch(function () { return n[t.uibAccordionTransclude] }, function (e) { if (e) { var t = angular.element(a[0].querySelector("uib-accordion-header,data-uib-accordion-header,x-uib-accordion-header,uib\\:accordion-header,[uib-accordion-header],[data-uib-accordion-header],[x-uib-accordion-header]")); t.html(""), t.append(e) } }) } } }), angular.module("ui.bootstrap.alert", []).controller("UibAlertController", ["$scope", "$element", "$attrs", "$interpolate", "$timeout", function (e, t, a, n, i) { e.closeable = !!a.close, t.addClass("alert"), a.$set("role", "alert"), e.closeable && t.addClass("alert-dismissible"); var s = angular.isDefined(a.dismissOnTimeout) ? n(a.dismissOnTimeout)(e.$parent) : null; s && i(function () { e.close() }, parseInt(s, 10)) }]).directive("uibAlert", function () { return { controller: "UibAlertController", controllerAs: "alert", restrict: "A", templateUrl: function (e, t) { return t.templateUrl || "uib/template/alert/alert.html" }, transclude: !0, scope: {close: "&"} } }), angular.module("ui.bootstrap.buttons", []).constant("uibButtonConfig", { activeClass: "active", toggleEvent: "click" }).controller("UibButtonsController", ["uibButtonConfig", function (e) { this.activeClass = e.activeClass || "active", this.toggleEvent = e.toggleEvent || "click" }]).directive("uibBtnRadio", ["$parse", function (r) { return { require: ["uibBtnRadio", "ngModel"], controller: "UibButtonsController", controllerAs: "buttons", link: function (t, a, n, e) { var i = e[0], s = e[1], o = r(n.uibUncheckable); a.find("input").css({display: "none"}), s.$render = function () { a.toggleClass(i.activeClass, angular.equals(s.$modelValue, t.$eval(n.uibBtnRadio))) }, a.on(i.toggleEvent, function () { if (!n.disabled) { var e = a.hasClass(i.activeClass); e && !angular.isDefined(n.uncheckable) || t.$apply(function () { s.$setViewValue(e ? null : t.$eval(n.uibBtnRadio)), s.$render() }) } }), n.uibUncheckable && t.$watch(o, function (e) { n.$set("uncheckable", e ? "" : void 0) }) } } }]).directive("uibBtnCheckbox", function () { return { require: ["uibBtnCheckbox", "ngModel"], controller: "UibButtonsController", controllerAs: "button", link: function (a, e, t, n) { var i = n[0], s = n[1]; function o() { return r(t.btnCheckboxTrue, !0) } function r(e, t) { return angular.isDefined(e) ? a.$eval(e) : t } e.find("input").css({display: "none"}), s.$render = function () { e.toggleClass(i.activeClass, angular.equals(s.$modelValue, o())) }, e.on(i.toggleEvent, function () { t.disabled || a.$apply(function () { s.$setViewValue(e.hasClass(i.activeClass) ? r(t.btnCheckboxFalse, !1) : o()), s.$render() }) }) } } }), angular.module("ui.bootstrap.carousel", []).controller("UibCarouselController", ["$scope", "$element", "$interval", "$timeout", "$animate", function (o, i, t, e, r) { var a, n, l = this, c = l.slides = o.slides = [], u = "uib-slideDirection", d = o.active, p = [], m = !1; function g() { for (; p.length;) p.shift() } function f(e) { for (var t = 0; t < c.length; t++) c[t].slide.active = t === e } function s(e) { for (var t = 0; t < c.length; t++) if (c[t].slide === e) return t } function h() { a && (t.cancel(a), a = null) } function v() { h(); var e = +o.interval; !isNaN(e) && 0 < e && (a = t(y, e)) } function y() { var e = +o.interval; n && !isNaN(e) && 0 < e && c.length ? o.next() : o.pause() } i.addClass("carousel"), l.addSlide = function (e, t) { c.push({slide: e, element: t}), c.sort(function (e, t) { return +e.slide.index - +t.slide.index }), e.index !== o.active && (1 !== c.length || angular.isNumber(o.active)) || (o.$currentTransition && (o.$currentTransition = null), d = e.index, o.active = e.index, f(d), l.select(c[s(e)]), 1 === c.length && o.play()) }, l.getCurrentIndex = function () { for (var e = 0; e < c.length; e++) if (c[e].slide.index === d) return e }, l.next = o.next = function () { var e = (l.getCurrentIndex() + 1) % c.length; if (0 != e || !o.noWrap()) return l.select(c[e], "next"); o.pause() }, l.prev = o.prev = function () { var e = l.getCurrentIndex() - 1 < 0 ? c.length - 1 : l.getCurrentIndex() - 1; if (!o.noWrap() || e != c.length - 1) return l.select(c[e], "prev"); o.pause() }, l.removeSlide = function (e) { var t = s(e), a = p.indexOf(c[t]); -1 !== a && p.splice(a, 1), c.splice(t, 1), 0 < c.length && d === t ? t >= c.length ? (d = c.length - 1, f(o.active = d), l.select(c[c.length - 1])) : (d = t, f(o.active = d), l.select(c[t])) : t < d && (d--, o.active = d), 0 === c.length && (d = null, o.active = null, g()) }, l.select = o.select = function (e, t) { var a = s(e.slide); void 0 === t && (t = a > l.getCurrentIndex() ? "next" : "prev"), e.slide.index === d || o.$currentTransition ? e && e.slide.index !== d && o.$currentTransition && p.push(c[a]) : function s(e, t, a) { if (m) return; angular.extend(e, {direction: a}); angular.extend(c[d].slide || {}, {direction: a}); if (r.enabled(i) && !o.$currentTransition && c[t].element && 1 < l.slides.length) { c[t].element.data(u, e.direction); var n = l.getCurrentIndex(); angular.isNumber(n) && c[n].element && c[n].element.data(u, e.direction), o.$currentTransition = !0, r.on("addClass", c[t].element, function (e, t) { if ("close" === t && (o.$currentTransition = null, r.off("addClass", e), p.length)) { var a = p.pop().slide, n = a.index, i = n > l.getCurrentIndex() ? "next" : "prev"; g(), s(a, n, i) } }) } o.active = e.index; d = e.index; f(t); v() }(e.slide, a, t) }, o.indexOfSlide = function (e) { return +e.slide.index }, o.isActive = function (e) { return o.active === e.slide.index }, o.isPrevDisabled = function () { return 0 === o.active && o.noWrap() }, o.isNextDisabled = function () { return o.active === c.length - 1 && o.noWrap() }, o.pause = function () { o.noPause || (n = !1, h()) }, o.play = function () { n || (n = !0, v()) }, i.on("mouseenter", o.pause), i.on("mouseleave", o.play), o.$on("$destroy", function () { m = !0, h() }), o.$watch("noTransition", function (e) { r.enabled(i, !e) }), o.$watch("interval", v), o.$watchCollection("slides", function (e) { e.length || (o.$currentTransition = null, g()) }), o.$watch("active", function (e) { if (angular.isNumber(e) && d !== e) { for (var t = 0; t < c.length; t++) if (c[t].slide.index === e) { e = t; break } c[e] && (f(e), l.select(c[e]), d = e) } }) }]).directive("uibCarousel", function () { return { transclude: !0, controller: "UibCarouselController", controllerAs: "carousel", restrict: "A", templateUrl: function (e, t) { return t.templateUrl || "uib/template/carousel/carousel.html" }, scope: {active: "=", interval: "=", noTransition: "=", noPause: "=", noWrap: "&"} } }).directive("uibSlide", ["$animate", function (i) { return { require: "^uibCarousel", restrict: "A", transclude: !0, templateUrl: function (e, t) { return t.templateUrl || "uib/template/carousel/slide.html" }, scope: {actual: "=?", index: "=?"}, link: function (e, t, a, n) { t.addClass("item"), n.addSlide(e, t), e.$on("$destroy", function () { n.removeSlide(e) }), e.$watch("active", function (e) { i[e ? "addClass" : "removeClass"](t, "active") }) } } }]).animation(".item", ["$animateCss", function (o) { var r = "uib-slideDirection"; function l(e, t, a) { e.removeClass(t), a && a() } return { beforeAddClass: function (e, t, a) { if ("active" === t) { var n = e.data(r), i = "next" === n ? "left" : "right", s = l.bind(this, e, i + " " + n, a); return e.addClass(n), o(e, {addClass: i}).start().done(s), function () { !0 } } a() }, beforeRemoveClass: function (e, t, a) { if ("active" === t) { var n = "next" === e.data(r) ? "left" : "right", i = l.bind(this, e, n, a); return o(e, {addClass: n}).start().done(i), function () { !0 } } a() } } }]), angular.module("ui.bootstrap.dateparser", []).service("uibDateParser", ["$log", "$locale", "dateFilter", "orderByFilter", function (f, h, a, v) { var y, b, w = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; function s(e, t, a) { return function () { return e.substr(t + 1, a - t - 1) } } function o(e, t) { for (var a = e.substr(t), n = 0; n < b.length; n++) if (new RegExp("^" + b[n].key).test(a)) { var i = b[n]; return {endIdx: t + i.key.length, parser: i.formatter} } return { endIdx: t + 1, parser: function () { return a.charAt(0) } } } function r(e) { return parseInt(e, 10) } function i(e, t) { e = e.replace(/:/g, ""); var a = Date.parse("Jan 01, 1970 00:00:00 " + e) / 6e4; return isNaN(a) ? t : a } function l(e, t) { return (e = new Date(e.getTime())).setMinutes(e.getMinutes() + t), e } function n(e, t, a) { a = a ? -1 : 1; var n = e.getTimezoneOffset(); return l(e, a * (i(t, n) - n)) } this.init = function () { y = h.id, this.parsers = {}, this.formatters = {}, b = [{ key: "yyyy", regex: "\\d{4}", apply: function (e) { this.year = +e }, formatter: function (e) { var t = new Date; return t.setFullYear(Math.abs(e.getFullYear())), a(t, "yyyy") } }, { key: "yy", regex: "\\d{2}", apply: function (e) { e = +e, this.year = e < 69 ? e + 2e3 : e + 1900 }, formatter: function (e) { var t = new Date; return t.setFullYear(Math.abs(e.getFullYear())), a(t, "yy") } }, { key: "y", regex: "\\d{1,4}", apply: function (e) { this.year = +e }, formatter: function (e) { var t = new Date; return t.setFullYear(Math.abs(e.getFullYear())), a(t, "y") } }, { key: "M!", regex: "0?[1-9]|1[0-2]", apply: function (e) { this.month = e - 1 }, formatter: function (e) { var t = e.getMonth(); return /^[0-9]$/.test(t) ? a(e, "MM") : a(e, "M") } }, { key: "MMMM", regex: h.DATETIME_FORMATS.MONTH.join("|"), apply: function (e) { this.month = h.DATETIME_FORMATS.MONTH.indexOf(e) }, formatter: function (e) { return a(e, "MMMM") } }, { key: "MMM", regex: h.DATETIME_FORMATS.SHORTMONTH.join("|"), apply: function (e) { this.month = h.DATETIME_FORMATS.SHORTMONTH.indexOf(e) }, formatter: function (e) { return a(e, "MMM") } }, { key: "MM", regex: "0[1-9]|1[0-2]", apply: function (e) { this.month = e - 1 }, formatter: function (e) { return a(e, "MM") } }, { key: "M", regex: "[1-9]|1[0-2]", apply: function (e) { this.month = e - 1 }, formatter: function (e) { return a(e, "M") } }, { key: "d!", regex: "[0-2]?[0-9]{1}|3[0-1]{1}", apply: function (e) { this.date = +e }, formatter: function (e) { var t = e.getDate(); return /^[1-9]$/.test(t) ? a(e, "dd") : a(e, "d") } }, { key: "dd", regex: "[0-2][0-9]{1}|3[0-1]{1}", apply: function (e) { this.date = +e }, formatter: function (e) { return a(e, "dd") } }, { key: "d", regex: "[1-2]?[0-9]{1}|3[0-1]{1}", apply: function (e) { this.date = +e }, formatter: function (e) { return a(e, "d") } }, { key: "EEEE", regex: h.DATETIME_FORMATS.DAY.join("|"), formatter: function (e) { return a(e, "EEEE") } }, { key: "EEE", regex: h.DATETIME_FORMATS.SHORTDAY.join("|"), formatter: function (e) { return a(e, "EEE") } }, { key: "HH", regex: "(?:0|1)[0-9]|2[0-3]", apply: function (e) { this.hours = +e }, formatter: function (e) { return a(e, "HH") } }, { key: "hh", regex: "0[0-9]|1[0-2]", apply: function (e) { this.hours = +e }, formatter: function (e) { return a(e, "hh") } }, { key: "H", regex: "1?[0-9]|2[0-3]", apply: function (e) { this.hours = +e }, formatter: function (e) { return a(e, "H") } }, { key: "h", regex: "[0-9]|1[0-2]", apply: function (e) { this.hours = +e }, formatter: function (e) { return a(e, "h") } }, { key: "mm", regex: "[0-5][0-9]", apply: function (e) { this.minutes = +e }, formatter: function (e) { return a(e, "mm") } }, { key: "m", regex: "[0-9]|[1-5][0-9]", apply: function (e) { this.minutes = +e }, formatter: function (e) { return a(e, "m") } }, { key: "sss", regex: "[0-9][0-9][0-9]", apply: function (e) { this.milliseconds = +e }, formatter: function (e) { return a(e, "sss") } }, { key: "ss", regex: "[0-5][0-9]", apply: function (e) { this.seconds = +e }, formatter: function (e) { return a(e, "ss") } }, { key: "s", regex: "[0-9]|[1-5][0-9]", apply: function (e) { this.seconds = +e }, formatter: function (e) { return a(e, "s") } }, { key: "a", regex: h.DATETIME_FORMATS.AMPMS.join("|"), apply: function (e) { 12 === this.hours && (this.hours = 0), "PM" === e && (this.hours += 12) }, formatter: function (e) { return a(e, "a") } }, { key: "Z", regex: "[+-]\\d{4}", apply: function (e) { var t = e.match(/([+-])(\d{2})(\d{2})/), a = t[1], n = t[2], i = t[3]; this.hours += r(a + n), this.minutes += r(a + i) }, formatter: function (e) { return a(e, "Z") } }, { key: "ww", regex: "[0-4][0-9]|5[0-3]", formatter: function (e) { return a(e, "ww") } }, { key: "w", regex: "[0-9]|[1-4][0-9]|5[0-3]", formatter: function (e) { return a(e, "w") } }, { key: "GGGG", regex: h.DATETIME_FORMATS.ERANAMES.join("|").replace(/\s/g, "\\s"), formatter: function (e) { return a(e, "GGGG") } }, { key: "GGG", regex: h.DATETIME_FORMATS.ERAS.join("|"), formatter: function (e) { return a(e, "GGG") } }, { key: "GG", regex: h.DATETIME_FORMATS.ERAS.join("|"), formatter: function (e) { return a(e, "GG") } }, { key: "G", regex: h.DATETIME_FORMATS.ERAS.join("|"), formatter: function (e) { return a(e, "G") } }] }, this.init(), this.filter = function (a, e) { return angular.isDate(a) && !isNaN(a) && e ? (e = h.DATETIME_FORMATS[e] || e, h.id !== y && this.init(), this.formatters[e] || (this.formatters[e] = function (e) { for (var t, a, n = [], i = 0; i < e.length;) if (angular.isNumber(a)) { if ("'" === e.charAt(i)) (i + 1 >= e.length || "'" !== e.charAt(i + 1)) && (n.push(s(e, a, i)), a = null); else if (i === e.length) for (; a < e.length;) t = o(e, a), n.push(t), a = t.endIdx; i++ } else "'" !== e.charAt(i) ? (t = o(e, i), n.push(t.parser), i = t.endIdx) : (a = i, i++); return n }(e)), this.formatters[e].reduce(function (e, t) { return e + t(a) }, "")) : "" }, this.parse = function (e, t, a) { if (!angular.isString(e) || !t) return e; t = (t = h.DATETIME_FORMATS[t] || t).replace(w, "\\$&"), h.id !== y && this.init(), this.parsers[t] || (this.parsers[t] = function (i) { var s = [], o = i.split(""), e = i.indexOf("'"); if (-1 < e) { var t = !1; i = i.split(""); for (var a = e; a < i.length; a++) t ? ("'" === i[a] && (a + 1 < i.length && "'" === i[a + 1] ? (i[a + 1] = "$", o[a + 1] = "") : (o[a] = "", t = !1)), i[a] = "$") : "'" === i[a] && (i[a] = "$", t = !(o[a] = "")); i = i.join("") } return angular.forEach(b, function (e) { var t = i.indexOf(e.key); if (-1 < t) { i = i.split(""), o[t] = "(" + e.regex + ")", i[t] = "$"; for (var a = t + 1, n = t + e.key.length; a < n; a++) o[a] = "", i[a] = "$"; i = i.join(""), s.push({index: t, key: e.key, apply: e.apply, matcher: e.regex}) } }), {regex: new RegExp("^" + o.join("") + "$"), map: v(s, "index")} }(t)); var n = this.parsers[t], i = n.regex, s = n.map, o = e.match(i), r = !1; if (o && o.length) { var l, c; l = angular.isDate(a) && !isNaN(a.getTime()) ? { year: a.getFullYear(), month: a.getMonth(), date: a.getDate(), hours: a.getHours(), minutes: a.getMinutes(), seconds: a.getSeconds(), milliseconds: a.getMilliseconds() } : (a && f.warn("dateparser:", "baseDate is not a valid date"), { year: 1900, month: 0, date: 1, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 }); for (var u = 1, d = o.length; u < d; u++) { var p = s[u - 1]; "Z" === p.matcher && (r = !0), p.apply && p.apply.call(l, o[u]) } var m = r ? Date.prototype.setUTCFullYear : Date.prototype.setFullYear, g = r ? Date.prototype.setUTCHours : Date.prototype.setHours; return function (e, t, a) { if (a < 1) return !1; if (1 === t && 28 < a) return 29 === a && (e % 4 == 0 && e % 100 != 0 || e % 400 == 0); return 3 !== t && 5 !== t && 8 !== t && 10 !== t || a < 31 }(l.year, l.month, l.date) && (!angular.isDate(a) || isNaN(a.getTime()) || r ? (c = new Date(0), m.call(c, l.year, l.month, l.date), g.call(c, l.hours || 0, l.minutes || 0, l.seconds || 0, l.milliseconds || 0)) : (c = new Date(a), m.call(c, l.year, l.month, l.date), g.call(c, l.hours, l.minutes, l.seconds, l.milliseconds))), c } }, this.toTimezone = function (e, t) { return e && t ? n(e, t) : e }, this.fromTimezone = function (e, t) { return e && t ? n(e, t, !0) : e }, this.timezoneToOffset = i, this.addDateMinutes = l, this.convertTimezoneToLocal = n }]), angular.module("ui.bootstrap.isClass", []).directive("uibIsClass", ["$animate", function (u) { var o = /^\s*([\s\S]+?)\s+on\s+([\s\S]+?)\s*$/, d = /^\s*([\s\S]+?)\s+for\s+([\s\S]+?)\s*$/; return { restrict: "A", compile: function (e, t) { var i = [], r = [], l = {}, a = t.uibIsClass.match(o), c = a[2], n = a[1].split(","); return function (a, e, t) { i.push(a), r.push({scope: a, element: e}), n.forEach(function (e, t) { !function (e, t) { var a = e.match(d), n = t.$eval(a[1]), i = a[2], s = l[e]; if (!s) { function o(t) { var a = null; r.some(function (e) { if (e.scope.$eval(c) === t) return a = e, !0 }), s.lastActivated !== a && (s.lastActivated && u.removeClass(s.lastActivated.element, n), a && u.addClass(a.element, n), s.lastActivated = a) } l[e] = s = { lastActivated: null, scope: t, watchFn: o, compareWithExp: i, watcher: t.$watch(i, o) } } s.watchFn(t.$eval(i)) }(e, a) }), a.$on("$destroy", s) }; function s(e) { var t = e.targetScope, a = i.indexOf(t); if (i.splice(a, 1), r.splice(a, 1), i.length) { var n = i[0]; angular.forEach(l, function (e) { e.scope === t && (e.watcher = n.$watch(e.compareWithExp, e.watchFn), e.scope = n) }) } else l = {} } } } }]), angular.module("ui.bootstrap.datepicker", ["ui.bootstrap.dateparser", "ui.bootstrap.isClass"]).value("$datepickerSuppressError", !1).value("$datepickerLiteralWarning", !0).constant("uibDatepickerConfig", { datepickerMode: "day", formatDay: "dd", formatMonth: "MMMM", formatYear: "yyyy", formatDayHeader: "EEE", formatDayTitle: "MMMM yyyy", formatMonthTitle: "yyyy", maxDate: null, maxMode: "year", minDate: null, minMode: "day", monthColumns: 3, ngModelOptions: {}, shortcutPropagation: !1, showWeeks: !0, yearColumns: 5, yearRows: 4 }).controller("UibDatepickerController", ["$scope", "$element", "$attrs", "$parse", "$interpolate", "$locale", "$log", "dateFilter", "uibDatepickerConfig", "$datepickerLiteralWarning", "$datepickerSuppressError", "uibDateParser", function (o, e, t, a, n, i, s, r, l, c, u, d) { var p = this, m = {$setViewValue: angular.noop}, g = {}, f = []; e.addClass("uib-datepicker"), t.$set("role", "application"), o.datepickerOptions || (o.datepickerOptions = {}), this.modes = ["day", "month", "year"], ["customClass", "dateDisabled", "datepickerMode", "formatDay", "formatDayHeader", "formatDayTitle", "formatMonth", "formatMonthTitle", "formatYear", "maxDate", "maxMode", "minDate", "minMode", "monthColumns", "showWeeks", "shortcutPropagation", "startingDay", "yearColumns", "yearRows"].forEach(function (t) { switch (t) { case"customClass": case"dateDisabled": o[t] = o.datepickerOptions[t] || angular.noop; break; case"datepickerMode": o.datepickerMode = angular.isDefined(o.datepickerOptions.datepickerMode) ? o.datepickerOptions.datepickerMode : l.datepickerMode; break; case"formatDay": case"formatDayHeader": case"formatDayTitle": case"formatMonth": case"formatMonthTitle": case"formatYear": p[t] = angular.isDefined(o.datepickerOptions[t]) ? n(o.datepickerOptions[t])(o.$parent) : l[t]; break; case"monthColumns": case"showWeeks": case"shortcutPropagation": case"yearColumns": case"yearRows": p[t] = angular.isDefined(o.datepickerOptions[t]) ? o.datepickerOptions[t] : l[t]; break; case"startingDay": angular.isDefined(o.datepickerOptions.startingDay) ? p.startingDay = o.datepickerOptions.startingDay : angular.isNumber(l.startingDay) ? p.startingDay = l.startingDay : p.startingDay = (i.DATETIME_FORMATS.FIRSTDAYOFWEEK + 8) % 7; break; case"maxDate": case"minDate": o.$watch("datepickerOptions." + t, function (e) { e ? angular.isDate(e) ? p[t] = d.fromTimezone(new Date(e), g.timezone) : (c && s.warn("Literal date support has been deprecated, please switch to date object usage"), p[t] = new Date(r(e, "medium"))) : p[t] = l[t] ? d.fromTimezone(new Date(l[t]), g.timezone) : null, p.refreshView() }); break; case"maxMode": case"minMode": o.datepickerOptions[t] ? o.$watch(function () { return o.datepickerOptions[t] }, function (e) { p[t] = o[t] = angular.isDefined(e) ? e : datepickerOptions[t], ("minMode" === t && p.modes.indexOf(o.datepickerOptions.datepickerMode) < p.modes.indexOf(p[t]) || "maxMode" === t && p.modes.indexOf(o.datepickerOptions.datepickerMode) > p.modes.indexOf(p[t])) && (o.datepickerMode = p[t], o.datepickerOptions.datepickerMode = p[t]) }) : p[t] = o[t] = l[t] || null } }), o.uniqueId = "datepicker-" + o.$id + "-" + Math.floor(1e4 * Math.random()), o.disabled = angular.isDefined(t.disabled) || !1, angular.isDefined(t.ngDisabled) && f.push(o.$parent.$watch(t.ngDisabled, function (e) { o.disabled = e, p.refreshView() })), o.isActive = function (e) { return 0 === p.compare(e.date, p.activeDate) && (o.activeDateId = e.uid, !0) }, this.init = function (e) { g = (m = e).$options || o.datepickerOptions.ngModelOptions || l.ngModelOptions, o.datepickerOptions.initDate ? (p.activeDate = d.fromTimezone(o.datepickerOptions.initDate, g.timezone) || new Date, o.$watch("datepickerOptions.initDate", function (e) { e && (m.$isEmpty(m.$modelValue) || m.$invalid) && (p.activeDate = d.fromTimezone(e, g.timezone), p.refreshView()) })) : p.activeDate = new Date; var t = m.$modelValue ? new Date(m.$modelValue) : new Date; this.activeDate = isNaN(t) ? d.fromTimezone(new Date, g.timezone) : d.fromTimezone(t, g.timezone), m.$render = function () { p.render() } }, this.render = function () { if (m.$viewValue) { var e = new Date(m.$viewValue); !isNaN(e) ? this.activeDate = d.fromTimezone(e, g.timezone) : u || s.error('Datepicker directive: "ng-model" value must be a Date object') } this.refreshView() }, this.refreshView = function () { if (this.element) { o.selectedDt = null, this._refreshView(), o.activeDt && (o.activeDateId = o.activeDt.uid); var e = m.$viewValue ? new Date(m.$viewValue) : null; e = d.fromTimezone(e, g.timezone), m.$setValidity("dateDisabled", !e || this.element && !this.isDisabled(e)) } }, this.createDateObject = function (e, t) { var a = m.$viewValue ? new Date(m.$viewValue) : null; a = d.fromTimezone(a, g.timezone); var n = new Date; n = d.fromTimezone(n, g.timezone); var i = this.compare(e, n), s = { date: e, label: d.filter(e, t), selected: a && 0 === this.compare(e, a), disabled: this.isDisabled(e), past: i < 0, current: 0 === i, future: 0 < i, customClass: this.customClass(e) || null }; return a && 0 === this.compare(e, a) && (o.selectedDt = s), p.activeDate && 0 === this.compare(s.date, p.activeDate) && (o.activeDt = s), s }, this.isDisabled = function (e) { return o.disabled || this.minDate && this.compare(e, this.minDate) < 0 || this.maxDate && 0 < this.compare(e, this.maxDate) || o.dateDisabled && o.dateDisabled({ date: e, mode: o.datepickerMode }) }, this.customClass = function (e) { return o.customClass({date: e, mode: o.datepickerMode}) }, this.split = function (e, t) { for (var a = []; 0 < e.length;) a.push(e.splice(0, t)); return a }, o.select = function (e) { if (o.datepickerMode === p.minMode) { var t = m.$viewValue ? d.fromTimezone(new Date(m.$viewValue), g.timezone) : new Date(0, 0, 0, 0, 0, 0, 0); t.setFullYear(e.getFullYear(), e.getMonth(), e.getDate()), t = d.toTimezone(t, g.timezone), m.$setViewValue(t), m.$render() } else p.activeDate = e, h(p.modes[p.modes.indexOf(o.datepickerMode) - 1]), o.$emit("uib:datepicker.mode"); o.$broadcast("uib:datepicker.focus") }, o.move = function (e) { var t = p.activeDate.getFullYear() + e * (p.step.years || 0), a = p.activeDate.getMonth() + e * (p.step.months || 0); p.activeDate.setFullYear(t, a, 1), p.refreshView() }, o.toggleMode = function (e) { e = e || 1, o.datepickerMode === p.maxMode && 1 === e || o.datepickerMode === p.minMode && -1 === e || (h(p.modes[p.modes.indexOf(o.datepickerMode) + e]), o.$emit("uib:datepicker.mode")) }, o.keys = { 13: "enter", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home", 37: "left", 38: "up", 39: "right", 40: "down" }; function h(e) { o.datepickerMode = e, o.datepickerOptions.datepickerMode = e } o.$on("uib:datepicker.focus", function () { p.element[0].focus() }), o.keydown = function (e) { var t = o.keys[e.which]; if (t && !e.shiftKey && !e.altKey && !o.disabled) if (e.preventDefault(), p.shortcutPropagation || e.stopPropagation(), "enter" === t || "space" === t) { if (p.isDisabled(p.activeDate)) return; o.select(p.activeDate) } else !e.ctrlKey || "up" !== t && "down" !== t ? (p.handleKeyDown(t, e), p.refreshView()) : o.toggleMode("up" === t ? 1 : -1) }, e.on("keydown", function (e) { o.$apply(function () { o.keydown(e) }) }), o.$on("$destroy", function () { for (; f.length;) f.shift()() }) }]).controller("UibDaypickerController", ["$scope", "$element", "dateFilter", function (p, e, m) { var a = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; function i(e, t) { return 1 !== t || e % 4 != 0 || e % 100 == 0 && e % 400 != 0 ? a[t] : 29 } function g(e) { var t = new Date(e); t.setDate(t.getDate() + 4 - (t.getDay() || 7)); var a = t.getTime(); return t.setMonth(0), t.setDate(1), Math.floor(Math.round((a - t) / 864e5) / 7) + 1 } this.step = {months: 1}, this.element = e, this.init = function (e) { angular.extend(e, this), p.showWeeks = e.showWeeks, e.refreshView() }, this.getDates = function (e, t) { for (var a, n = new Array(t), i = new Date(e), s = 0; s < t;) a = new Date(i), n[s++] = a, i.setDate(i.getDate() + 1); return n }, this._refreshView = function () { var e = this.activeDate.getFullYear(), t = this.activeDate.getMonth(), a = new Date(this.activeDate); a.setFullYear(e, t, 1); var n = this.startingDay - a.getDay(), i = 0 < n ? 7 - n : -n, s = new Date(a); 0 < i && s.setDate(1 - i); for (var o = this.getDates(s, 42), r = 0; r < 42; r++) o[r] = angular.extend(this.createDateObject(o[r], this.formatDay), { secondary: o[r].getMonth() !== t, uid: p.uniqueId + "-" + r }); p.labels = new Array(7); for (var l = 0; l < 7; l++) p.labels[l] = { abbr: m(o[l].date, this.formatDayHeader), full: m(o[l].date, "EEEE") }; if (p.title = m(this.activeDate, this.formatDayTitle), p.rows = this.split(o, 7), p.showWeeks) { p.weekNumbers = []; for (var c = (11 - this.startingDay) % 7, u = p.rows.length, d = 0; d < u; d++) p.weekNumbers.push(g(p.rows[d][c].date)) } }, this.compare = function (e, t) { var a = new Date(e.getFullYear(), e.getMonth(), e.getDate()), n = new Date(t.getFullYear(), t.getMonth(), t.getDate()); return a.setFullYear(e.getFullYear()), n.setFullYear(t.getFullYear()), a - n }, this.handleKeyDown = function (e, t) { var a = this.activeDate.getDate(); if ("left" === e) a -= 1; else if ("up" === e) a -= 7; else if ("right" === e) a += 1; else if ("down" === e) a += 7; else if ("pageup" === e || "pagedown" === e) { var n = this.activeDate.getMonth() + ("pageup" === e ? -1 : 1); this.activeDate.setMonth(n, 1), a = Math.min(i(this.activeDate.getFullYear(), this.activeDate.getMonth()), a) } else "home" === e ? a = 1 : "end" === e && (a = i(this.activeDate.getFullYear(), this.activeDate.getMonth())); this.activeDate.setDate(a) } }]).controller("UibMonthpickerController", ["$scope", "$element", "dateFilter", function (i, e, s) { this.step = {years: 1}, this.element = e, this.init = function (e) { angular.extend(e, this), e.refreshView() }, this._refreshView = function () { for (var e, t = new Array(12), a = this.activeDate.getFullYear(), n = 0; n < 12; n++) (e = new Date(this.activeDate)).setFullYear(a, n, 1), t[n] = angular.extend(this.createDateObject(e, this.formatMonth), {uid: i.uniqueId + "-" + n}); i.title = s(this.activeDate, this.formatMonthTitle), i.rows = this.split(t, this.monthColumns), i.yearHeaderColspan = 3 < this.monthColumns ? this.monthColumns - 2 : 1 }, this.compare = function (e, t) { var a = new Date(e.getFullYear(), e.getMonth()), n = new Date(t.getFullYear(), t.getMonth()); return a.setFullYear(e.getFullYear()), n.setFullYear(t.getFullYear()), a - n }, this.handleKeyDown = function (e, t) { var a = this.activeDate.getMonth(); if ("left" === e) a -= 1; else if ("up" === e) a -= this.monthColumns; else if ("right" === e) a += 1; else if ("down" === e) a += this.monthColumns; else if ("pageup" === e || "pagedown" === e) { var n = this.activeDate.getFullYear() + ("pageup" === e ? -1 : 1); this.activeDate.setFullYear(n) } else "home" === e ? a = 0 : "end" === e && (a = 11); this.activeDate.setMonth(a) } }]).controller("UibYearpickerController", ["$scope", "$element", "dateFilter", function (i, e, t) { var s, o; function r(e) { return parseInt((e - 1) / o, 10) * o + 1 } this.element = e, this.yearpickerInit = function () { s = this.yearColumns, o = this.yearRows * s, this.step = {years: o} }, this._refreshView = function () { for (var e, t = new Array(o), a = 0, n = r(this.activeDate.getFullYear()); a < o; a++) (e = new Date(this.activeDate)).setFullYear(n + a, 0, 1), t[a] = angular.extend(this.createDateObject(e, this.formatYear), {uid: i.uniqueId + "-" + a}); i.title = [t[0].label, t[o - 1].label].join(" - "), i.rows = this.split(t, s), i.columns = s }, this.compare = function (e, t) { return e.getFullYear() - t.getFullYear() }, this.handleKeyDown = function (e, t) { var a = this.activeDate.getFullYear(); "left" === e ? a -= 1 : "up" === e ? a -= s : "right" === e ? a += 1 : "down" === e ? a += s : "pageup" === e || "pagedown" === e ? a += ("pageup" === e ? -1 : 1) * o : "home" === e ? a = r(this.activeDate.getFullYear()) : "end" === e && (a = r(this.activeDate.getFullYear()) + o - 1), this.activeDate.setFullYear(a) } }]).directive("uibDatepicker", function () { return { templateUrl: function (e, t) { return t.templateUrl || "uib/template/datepicker/datepicker.html" }, scope: {datepickerOptions: "=?"}, require: ["uibDatepicker", "^ngModel"], restrict: "A", controller: "UibDatepickerController", controllerAs: "datepicker", link: function (e, t, a, n) { var i = n[0], s = n[1]; i.init(s) } } }).directive("uibDaypicker", function () { return { templateUrl: function (e, t) { return t.templateUrl || "uib/template/datepicker/day.html" }, require: ["^uibDatepicker", "uibDaypicker"], restrict: "A", controller: "UibDaypickerController", link: function (e, t, a, n) { var i = n[0]; n[1].init(i) } } }).directive("uibMonthpicker", function () { return { templateUrl: function (e, t) { return t.templateUrl || "uib/template/datepicker/month.html" }, require: ["^uibDatepicker", "uibMonthpicker"], restrict: "A", controller: "UibMonthpickerController", link: function (e, t, a, n) { var i = n[0]; n[1].init(i) } } }).directive("uibYearpicker", function () { return { templateUrl: function (e, t) { return t.templateUrl || "uib/template/datepicker/year.html" }, require: ["^uibDatepicker", "uibYearpicker"], restrict: "A", controller: "UibYearpickerController", link: function (e, t, a, n) { var i = n[0]; angular.extend(i, n[1]), i.yearpickerInit(), i.refreshView() } } }), angular.module("ui.bootstrap.position", []).factory("$uibPosition", ["$document", "$window", function (c, g) { var n, i, u = {normal: /(auto|scroll)/, hidden: /(auto|scroll|hidden)/}, f = { auto: /\s?auto?\s?/i, primary: /^(top|bottom|left|right)$/, secondary: /^(top|bottom|left|right|center)$/, vertical: /^(top|bottom)$/ }, o = /(HTML|BODY)/; return { getRawNode: function (e) { return e.nodeName ? e : e[0] || e }, parseStyle: function (e) { return e = parseFloat(e), isFinite(e) ? e : 0 }, offsetParent: function (e) { var t, a = (e = this.getRawNode(e)).offsetParent || c[0].documentElement; for (; a && a !== c[0].documentElement && (t = a, "static" === (g.getComputedStyle(t).position || "static"));) a = a.offsetParent; return a || c[0].documentElement }, scrollbarWidth: function (e) { if (e) { if (angular.isUndefined(i)) { var t = c.find("body"); t.addClass("uib-position-body-scrollbar-measure"), i = g.innerWidth - t[0].clientWidth, i = isFinite(i) ? i : 0, t.removeClass("uib-position-body-scrollbar-measure") } return i } if (angular.isUndefined(n)) { var a = angular.element('
'); c.find("body").append(a), n = a[0].offsetWidth - a[0].clientWidth, n = isFinite(n) ? n : 0, a.remove() } return n }, scrollbarPadding: function (e) { e = this.getRawNode(e); var t = g.getComputedStyle(e), a = this.parseStyle(t.paddingRight), n = this.parseStyle(t.paddingBottom), i = this.scrollParent(e, !1, !0), s = this.scrollbarWidth(i, o.test(i.tagName)); return { scrollbarWidth: s, widthOverflow: i.scrollWidth > i.clientWidth, right: a + s, originalRight: a, heightOverflow: i.scrollHeight > i.clientHeight, bottom: n + s, originalBottom: n } }, isScrollable: function (e, t) { e = this.getRawNode(e); var a = t ? u.hidden : u.normal, n = g.getComputedStyle(e); return a.test(n.overflow + n.overflowY + n.overflowX) }, scrollParent: function (e, t, a) { e = this.getRawNode(e); var n = t ? u.hidden : u.normal, i = c[0].documentElement, s = g.getComputedStyle(e); if (a && n.test(s.overflow + s.overflowY + s.overflowX)) return e; var o = "absolute" === s.position, r = e.parentElement || i; if (r === i || "fixed" === s.position) return i; for (; r.parentElement && r !== i;) { var l = g.getComputedStyle(r); if (o && "static" !== l.position && (o = !1), !o && n.test(l.overflow + l.overflowY + l.overflowX)) break; r = r.parentElement } return r }, position: function (e, t) { e = this.getRawNode(e); var a = this.offset(e); if (t) { var n = g.getComputedStyle(e); a.top -= this.parseStyle(n.marginTop), a.left -= this.parseStyle(n.marginLeft) } var i = this.offsetParent(e), s = {top: 0, left: 0}; return i !== c[0].documentElement && ((s = this.offset(i)).top += i.clientTop - i.scrollTop, s.left += i.clientLeft - i.scrollLeft), { width: Math.round(angular.isNumber(a.width) ? a.width : e.offsetWidth), height: Math.round(angular.isNumber(a.height) ? a.height : e.offsetHeight), top: Math.round(a.top - s.top), left: Math.round(a.left - s.left) } }, offset: function (e) { var t = (e = this.getRawNode(e)).getBoundingClientRect(); return { width: Math.round(angular.isNumber(t.width) ? t.width : e.offsetWidth), height: Math.round(angular.isNumber(t.height) ? t.height : e.offsetHeight), top: Math.round(t.top + (g.pageYOffset || c[0].documentElement.scrollTop)), left: Math.round(t.left + (g.pageXOffset || c[0].documentElement.scrollLeft)) } }, viewportOffset: function (e, t, a) { a = !1 !== a; var n = (e = this.getRawNode(e)).getBoundingClientRect(), i = {top: 0, left: 0, bottom: 0, right: 0}, s = t ? c[0].documentElement : this.scrollParent(e), o = s.getBoundingClientRect(); if (i.top = o.top + s.clientTop, i.left = o.left + s.clientLeft, s === c[0].documentElement && (i.top += g.pageYOffset, i.left += g.pageXOffset), i.bottom = i.top + s.clientHeight, i.right = i.left + s.clientWidth, a) { var r = g.getComputedStyle(s); i.top += this.parseStyle(r.paddingTop), i.bottom -= this.parseStyle(r.paddingBottom), i.left += this.parseStyle(r.paddingLeft), i.right -= this.parseStyle(r.paddingRight) } return { top: Math.round(n.top - i.top), bottom: Math.round(i.bottom - n.bottom), left: Math.round(n.left - i.left), right: Math.round(i.right - n.right) } }, parsePlacement: function (e) { var t = f.auto.test(e); return t && (e = e.replace(f.auto, "")), (e = e.split("-"))[0] = e[0] || "top", f.primary.test(e[0]) || (e[0] = "top"), e[1] = e[1] || "center", f.secondary.test(e[1]) || (e[1] = "center"), e[2] = !!t, e }, positionElements: function (e, t, a, n) { e = this.getRawNode(e), t = this.getRawNode(t); var i = angular.isDefined(t.offsetWidth) ? t.offsetWidth : t.prop("offsetWidth"), s = angular.isDefined(t.offsetHeight) ? t.offsetHeight : t.prop("offsetHeight"); a = this.parsePlacement(a); var o = n ? this.offset(e) : this.position(e), r = {top: 0, left: 0, placement: ""}; if (a[2]) { var l = this.viewportOffset(e, n), c = g.getComputedStyle(t), u = i + Math.round(Math.abs(this.parseStyle(c.marginLeft) + this.parseStyle(c.marginRight))), d = s + Math.round(Math.abs(this.parseStyle(c.marginTop) + this.parseStyle(c.marginBottom))); if (a[0] = "top" === a[0] && d > l.top && d <= l.bottom ? "bottom" : "bottom" === a[0] && d > l.bottom && d <= l.top ? "top" : "left" === a[0] && u > l.left && u <= l.right ? "right" : "right" === a[0] && u > l.right && u <= l.left ? "left" : a[0], a[1] = "top" === a[1] && d - o.height > l.bottom && d - o.height <= l.top ? "bottom" : "bottom" === a[1] && d - o.height > l.top && d - o.height <= l.bottom ? "top" : "left" === a[1] && u - o.width > l.right && u - o.width <= l.left ? "right" : "right" === a[1] && u - o.width > l.left && u - o.width <= l.right ? "left" : a[1], "center" === a[1]) if (f.vertical.test(a[0])) { var p = o.width / 2 - i / 2; l.left + p < 0 && u - o.width <= l.right ? a[1] = "left" : l.right + p < 0 && u - o.width <= l.left && (a[1] = "right") } else { var m = o.height / 2 - d / 2; l.top + m < 0 && d - o.height <= l.bottom ? a[1] = "top" : l.bottom + m < 0 && d - o.height <= l.top && (a[1] = "bottom") } } switch (a[0]) { case"top": r.top = o.top - s; break; case"bottom": r.top = o.top + o.height; break; case"left": r.left = o.left - i; break; case"right": r.left = o.left + o.width } switch (a[1]) { case"top": r.top = o.top; break; case"bottom": r.top = o.top + o.height - s; break; case"left": r.left = o.left; break; case"right": r.left = o.left + o.width - i; break; case"center": f.vertical.test(a[0]) ? r.left = o.left + o.width / 2 - i / 2 : r.top = o.top + o.height / 2 - s / 2 } return r.top = Math.round(r.top), r.left = Math.round(r.left), r.placement = "center" === a[1] ? a[0] : a[0] + "-" + a[1], r }, adjustTop: function (e, t, a, n) { if (-1 !== e.indexOf("top") && a !== n) return {top: t.top - n + "px"} }, positionArrow: function (e, t) { var a = (e = this.getRawNode(e)).querySelector(".tooltip-inner, .popover-inner"); if (a) { var n = angular.element(a).hasClass("tooltip-inner"), i = n ? e.querySelector(".tooltip-arrow") : e.querySelector(".arrow"); if (i) { var s = {top: "", bottom: "", left: "", right: ""}; if ("center" !== (t = this.parsePlacement(t))[1]) { var o = "border-" + t[0] + "-width", r = g.getComputedStyle(i)[o], l = "border-"; f.vertical.test(t[0]) ? l += t[0] + "-" + t[1] : l += t[1] + "-" + t[0], l += "-radius"; var c = g.getComputedStyle(n ? a : e)[l]; switch (t[0]) { case"top": s.bottom = n ? "0" : "-" + r; break; case"bottom": s.top = n ? "0" : "-" + r; break; case"left": s.right = n ? "0" : "-" + r; break; case"right": s.left = n ? "0" : "-" + r } s[t[1]] = c, angular.element(i).css(s) } else angular.element(i).css(s) } } } } }]), angular.module("ui.bootstrap.datepickerPopup", ["ui.bootstrap.datepicker", "ui.bootstrap.position"]).value("$datepickerPopupLiteralWarning", !0).constant("uibDatepickerPopupConfig", { altInputFormats: [], appendToBody: !1, clearText: "Clear", closeOnDateSelection: !0, closeText: "Done", currentText: "Today", datepickerPopup: "yyyy-MM-dd", datepickerPopupTemplateUrl: "uib/template/datepickerPopup/popup.html", datepickerTemplateUrl: "uib/template/datepicker/datepicker.html", html5Types: {date: "yyyy-MM-dd", "datetime-local": "yyyy-MM-ddTHH:mm:ss.sss", month: "yyyy-MM"}, onOpenFocus: !0, showButtonBar: !0, placement: "auto bottom-left" }).controller("UibDatepickerPopupController", ["$scope", "$element", "$attrs", "$compile", "$log", "$parse", "$window", "$document", "$rootScope", "$uibPosition", "dateFilter", "uibDateParser", "uibDatepickerPopupConfig", "$timeout", "uibDatepickerConfig", "$datepickerPopupLiteralWarning", function (i, s, n, t, a, e, o, r, l, c, u, d, p, m, g, f) { var h, v, y, b, w, $, k, x, _, S, I, C, A = !1, M = []; function D(e) { var t = d.parse(e, h, i.date); if (isNaN(t)) for (var a = 0; a < C.length; a++) if (t = d.parse(e, C[a], i.date), !isNaN(t)) return t; return t } function T(e) { if (angular.isNumber(e) && (e = new Date(e)), !e) return null; if (angular.isDate(e) && !isNaN(e)) return e; if (angular.isString(e)) { var t = D(e); if (!isNaN(t)) return t } return S.$options && S.$options.allowInvalid ? e : void 0 } function P(e, t) { var a = e || t; return !n.ngRequired && !a || (angular.isNumber(a) && (a = new Date(a)), !a || (!(!angular.isDate(a) || isNaN(a)) || !!angular.isString(a) && !isNaN(D(a)))) } function E(e) { if (i.isOpen || !i.disabled) { var t = I[0], a = s[0].contains(e.target), n = void 0 !== t.contains && t.contains(e.target); !i.isOpen || a || n || i.$apply(function () { i.isOpen = !1 }) } } function j(e) { 27 === e.which && i.isOpen ? (e.preventDefault(), e.stopPropagation(), i.$apply(function () { i.isOpen = !1 }), s[0].focus()) : 40 !== e.which || i.isOpen || (e.preventDefault(), e.stopPropagation(), i.$apply(function () { i.isOpen = !0 })) } function L() { if (i.isOpen) { var e = angular.element(I[0].querySelector(".uib-datepicker-popup")), t = n.popupPlacement ? n.popupPlacement : p.placement, a = c.positionElements(s, e, t, y); e.css({ top: a.top + "px", left: a.left + "px" }), e.hasClass("uib-position-measure") && e.removeClass("uib-position-measure") } } this.init = function (e) { if ((S = e).$options, v = angular.isDefined(n.closeOnDateSelection) ? i.$parent.$eval(n.closeOnDateSelection) : p.closeOnDateSelection, y = angular.isDefined(n.datepickerAppendToBody) ? i.$parent.$eval(n.datepickerAppendToBody) : p.appendToBody, b = angular.isDefined(n.onOpenFocus) ? i.$parent.$eval(n.onOpenFocus) : p.onOpenFocus, w = angular.isDefined(n.datepickerPopupTemplateUrl) ? n.datepickerPopupTemplateUrl : p.datepickerPopupTemplateUrl, $ = angular.isDefined(n.datepickerTemplateUrl) ? n.datepickerTemplateUrl : p.datepickerTemplateUrl, C = angular.isDefined(n.altInputFormats) ? i.$parent.$eval(n.altInputFormats) : p.altInputFormats, i.showButtonBar = angular.isDefined(n.showButtonBar) ? i.$parent.$eval(n.showButtonBar) : p.showButtonBar, p.html5Types[n.type] ? (h = p.html5Types[n.type], A = !0) : (h = n.uibDatepickerPopup || p.datepickerPopup, n.$observe("uibDatepickerPopup", function (e, t) { var a = e || p.datepickerPopup; if (a !== h && (h = a, S.$modelValue = null, !h)) throw new Error("uibDatepickerPopup must have a date format specified.") })), !h) throw new Error("uibDatepickerPopup must have a date format specified."); if (A && n.uibDatepickerPopup) throw new Error("HTML5 date input types do not support custom formats."); (k = angular.element("
")).attr({ "ng-model": "date", "ng-change": "dateSelection(date)", "template-url": w }), (x = angular.element(k.children()[0])).attr("template-url", $), i.datepickerOptions || (i.datepickerOptions = {}), A && "month" === n.type && (i.datepickerOptions.datepickerMode = "month", i.datepickerOptions.minMode = "month"), x.attr("datepicker-options", "datepickerOptions"), A ? S.$formatters.push(function (e) { return i.date = e }) : (S.$$parserName = "date", S.$validators.date = P, S.$parsers.unshift(T), S.$formatters.push(function (e) { return S.$isEmpty(e) ? i.date = e : (angular.isNumber(e) && (e = new Date(e)), i.date = e, d.filter(i.date, h)) })), S.$viewChangeListeners.push(function () { i.date = D(S.$viewValue) }), s.on("keydown", j), I = t(k)(i), k.remove(), y ? r.find("body").append(I) : s.after(I), i.$on("$destroy", function () { for (!0 === i.isOpen && (l.$$phase || i.$apply(function () { i.isOpen = !1 })), I.remove(), s.off("keydown", j), r.off("click", E), _ && _.off("scroll", L), angular.element(o).off("resize", L); M.length;) M.shift()() }) }, i.getText = function (e) { return i[e + "Text"] || p[e + "Text"] }, i.isDisabled = function (e) { "today" === e && (e = new Date); var t = {}; return angular.forEach(["minDate", "maxDate"], function (e) { i.datepickerOptions[e] ? angular.isDate(i.datepickerOptions[e]) ? t[e] = new Date(i.datepickerOptions[e]) : (f && a.warn("Literal date support has been deprecated, please switch to date object usage"), t[e] = new Date(u(i.datepickerOptions[e], "medium"))) : t[e] = null }), i.datepickerOptions && t.minDate && i.compare(e, t.minDate) < 0 || t.maxDate && 0 < i.compare(e, t.maxDate) }, i.compare = function (e, t) { return new Date(e.getFullYear(), e.getMonth(), e.getDate()) - new Date(t.getFullYear(), t.getMonth(), t.getDate()) }, i.dateSelection = function (e) { i.date = e; var t = i.date ? d.filter(i.date, h) : null; s.val(t), S.$setViewValue(t), v && (i.isOpen = !1, s[0].focus()) }, i.keydown = function (e) { 27 === e.which && (e.stopPropagation(), i.isOpen = !1, s[0].focus()) }, i.select = function (e, t) { if (t.stopPropagation(), "today" === e) { var a = new Date; angular.isDate(i.date) ? (e = new Date(i.date)).setFullYear(a.getFullYear(), a.getMonth(), a.getDate()) : e = new Date(a.setHours(0, 0, 0, 0)) } i.dateSelection(e) }, i.close = function (e) { e.stopPropagation(), i.isOpen = !1, s[0].focus() }, i.disabled = angular.isDefined(n.disabled) || !1, n.ngDisabled && M.push(i.$parent.$watch(e(n.ngDisabled), function (e) { i.disabled = e })), i.$watch("isOpen", function (e) { e ? i.disabled ? i.isOpen = !1 : m(function () { L(), b && i.$broadcast("uib:datepicker.focus"), r.on("click", E); var e = n.popupPlacement ? n.popupPlacement : p.placement; y || c.parsePlacement(e)[2] ? (_ = _ || angular.element(c.scrollParent(s))) && _.on("scroll", L) : _ = null, angular.element(o).on("resize", L) }, 0, !1) : (r.off("click", E), _ && _.off("scroll", L), angular.element(o).off("resize", L)) }), i.$on("uib:datepicker.mode", function () { m(L, 0, !1) }) }]).directive("uibDatepickerPopup", function () { return { require: ["ngModel", "uibDatepickerPopup"], controller: "UibDatepickerPopupController", scope: {datepickerOptions: "=?", isOpen: "=?", currentText: "@", clearText: "@", closeText: "@"}, link: function (e, t, a, n) { var i = n[0]; n[1].init(i) } } }).directive("uibDatepickerPopupWrap", function () { return { restrict: "A", transclude: !0, templateUrl: function (e, t) { return t.templateUrl || "uib/template/datepickerPopup/popup.html" } } }), angular.module("ui.bootstrap.debounce", []).factory("$$debounce", ["$timeout", function (s) { return function (a, n) { var i; return function () { var e = this, t = Array.prototype.slice.call(arguments); i && s.cancel(i), i = s(function () { a.apply(e, t) }, n) } } }]), angular.module("ui.bootstrap.dropdown", ["ui.bootstrap.position"]).constant("uibDropdownConfig", { appendToOpenClass: "uib-dropdown-open", openClass: "open" }).service("uibDropdownService", ["$document", "$rootScope", function (n, i) { var s = null; this.open = function (e, t) { s || n.on("click", o), s && s !== e && (s.isOpen = !1), s = e }, this.close = function (e, t) { if (s === e) { s = null, n.off("click", o); var a = e.getDropdownElement(); a && a.off("keydown", this.keybindFilter) } }; var o = function (e) { if (s && !(e && "disabled" === s.getAutoClose() || e && 3 === e.which)) { var t = s.getToggleElement(); if (!(e && t && t[0].contains(e.target))) { var a = s.getDropdownElement(); e && "outsideClick" === s.getAutoClose() && a && a[0].contains(e.target) || (s.isOpen = !1, s.focusToggleElement(), i.$$phase || s.$apply()) } } }; this.keybindFilter = function (e) { 27 === e.which ? (e.stopPropagation(), s.focusToggleElement(), o()) : s.isKeynavEnabled() && -1 !== [38, 40].indexOf(e.which) && s.isOpen && (e.preventDefault(), e.stopPropagation(), s.focusDropdownEntry(e.which)) } }]).controller("UibDropdownController", ["$scope", "$element", "$attrs", "$parse", "uibDropdownConfig", "uibDropdownService", "$animate", "$uibPosition", "$document", "$compile", "$templateRequest", function (u, d, t, a, e, p, m, g, n, f, h) { var v, i, y = this, b = u.$new(), w = e.appendToOpenClass, $ = e.openClass, k = angular.noop, x = t.onToggle ? a(t.onToggle) : angular.noop, _ = !1, S = null, s = !1, o = n.find("body"); d.addClass("dropdown"), this.init = function () { if (t.isOpen && (i = a(t.isOpen), k = i.assign, u.$watch(i, function (e) { b.isOpen = !!e })), angular.isDefined(t.dropdownAppendTo)) { var e = a(t.dropdownAppendTo)(b); e && (S = angular.element(e)) } _ = angular.isDefined(t.dropdownAppendToBody), s = angular.isDefined(t.keyboardNav), _ && !S && (S = o), S && y.dropdownMenu && (S.append(y.dropdownMenu), d.on("$destroy", function () { y.dropdownMenu.remove() })) }, this.toggle = function (e) { return b.isOpen = arguments.length ? !!e : !b.isOpen, angular.isFunction(k) && k(b, b.isOpen), b.isOpen }, this.isOpen = function () { return b.isOpen }, b.getToggleElement = function () { return y.toggleElement }, b.getAutoClose = function () { return t.autoClose || "always" }, b.getElement = function () { return d }, b.isKeynavEnabled = function () { return s }, b.focusDropdownEntry = function (e) { var t = y.dropdownMenu ? angular.element(y.dropdownMenu).find("a") : d.find("ul").eq(0).find("a"); switch (e) { case 40: angular.isNumber(y.selectedOption) ? y.selectedOption = y.selectedOption === t.length - 1 ? y.selectedOption : y.selectedOption + 1 : y.selectedOption = 0; break; case 38: angular.isNumber(y.selectedOption) ? y.selectedOption = 0 === y.selectedOption ? 0 : y.selectedOption - 1 : y.selectedOption = t.length - 1 } t[y.selectedOption].focus() }, b.getDropdownElement = function () { return y.dropdownMenu }, b.focusToggleElement = function () { y.toggleElement && y.toggleElement[0].focus() }, b.$watch("isOpen", function (e, t) { if (S && y.dropdownMenu) { var a, n, i, s = g.positionElements(d, y.dropdownMenu, "bottom-left", !0), o = 0; if (a = { top: s.top + "px", display: e ? "block" : "none" }, (n = y.dropdownMenu.hasClass("dropdown-menu-right")) ? (a.left = "auto", (i = g.scrollbarPadding(S)).heightOverflow && i.scrollbarWidth && (o = i.scrollbarWidth), a.right = window.innerWidth - o - (s.left + d.prop("offsetWidth")) + "px") : (a.left = s.left + "px", a.right = "auto"), !_) { var r = g.offset(S); a.top = s.top - r.top + "px", n ? a.right = window.innerWidth - (s.left - r.left + d.prop("offsetWidth")) + "px" : a.left = s.left - r.left + "px" } y.dropdownMenu.css(a) } var l = S || d; if (l.hasClass(S ? w : $) === !e && m[e ? "addClass" : "removeClass"](l, S ? w : $).then(function () { angular.isDefined(e) && e !== t && x(u, {open: !!e}) }), e) y.dropdownMenuTemplateUrl ? h(y.dropdownMenuTemplateUrl).then(function (e) { v = b.$new(), f(e.trim())(v, function (e) { var t = e; y.dropdownMenu.replaceWith(t), y.dropdownMenu = t, y.dropdownMenu.on("keydown", p.keybindFilter) }) }) : y.dropdownMenu && y.dropdownMenu.on("keydown", p.keybindFilter), b.focusToggleElement(), p.open(b, d); else { if (p.close(b, d), y.dropdownMenuTemplateUrl) { v && v.$destroy(); var c = angular.element(''); y.dropdownMenu.replaceWith(c), y.dropdownMenu = c } y.selectedOption = null } angular.isFunction(k) && k(u, e) }) }]).directive("uibDropdown", function () { return { controller: "UibDropdownController", link: function (e, t, a, n) { n.init() } } }).directive("uibDropdownMenu", function () { return { restrict: "A", require: "?^uibDropdown", link: function (e, t, a, n) { if (n && !angular.isDefined(a.dropdownNested)) { t.addClass("dropdown-menu"); var i = a.templateUrl; i && (n.dropdownMenuTemplateUrl = i), n.dropdownMenu || (n.dropdownMenu = t) } } } }).directive("uibDropdownToggle", function () { return { require: "?^uibDropdown", link: function (t, a, n, i) { if (i) { a.addClass("dropdown-toggle"), i.toggleElement = a; function e(e) { e.preventDefault(), a.hasClass("disabled") || n.disabled || t.$apply(function () { i.toggle() }) } a.bind("click", e), a.attr({ "aria-haspopup": !0, "aria-expanded": !1 }), t.$watch(i.isOpen, function (e) { a.attr("aria-expanded", !!e) }), t.$on("$destroy", function () { a.unbind("click", e) }) } } } }), angular.module("ui.bootstrap.stackedMap", []).factory("$$stackedMap", function () { return { createNew: function () { var n = []; return { add: function (e, t) { n.push({key: e, value: t}) }, get: function (e) { for (var t = 0; t < n.length; t++) if (e === n[t].key) return n[t] }, keys: function () { for (var e = [], t = 0; t < n.length; t++) e.push(n[t].key); return e }, top: function () { return n[n.length - 1] }, remove: function (e) { for (var t = -1, a = 0; a < n.length; a++) if (e === n[a].key) { t = a; break } return n.splice(t, 1)[0] }, removeTop: function () { return n.pop() }, length: function () { return n.length } } } } }), angular.module("ui.bootstrap.modal", ["ui.bootstrap.stackedMap", "ui.bootstrap.position"]).factory("$$multiMap", function () { return { createNew: function () { var i = {}; return { entries: function () { return Object.keys(i).map(function (e) { return {key: e, value: i[e]} }) }, get: function (e) { return i[e] }, hasKey: function (e) { return !!i[e] }, keys: function () { return Object.keys(i) }, put: function (e, t) { i[e] || (i[e] = []), i[e].push(t) }, remove: function (e, t) { var a = i[e]; if (a) { var n = a.indexOf(t); -1 !== n && a.splice(n, 1), a.length || delete i[e] } } } } } }).provider("$uibResolve", function () { var e = this; this.resolver = null, this.setResolver = function (e) { this.resolver = e }, this.$get = ["$injector", "$q", function (s, o) { var r = e.resolver ? s.get(e.resolver) : null; return { resolve: function (e, t, a, n) { if (r) return r.resolve(e, t, a, n); var i = []; return angular.forEach(e, function (e) { angular.isFunction(e) || angular.isArray(e) ? i.push(o.resolve(s.invoke(e))) : angular.isString(e) ? i.push(o.resolve(s.get(e))) : i.push(o.resolve(e)) }), o.all(i).then(function (a) { var n = {}, i = 0; return angular.forEach(e, function (e, t) { n[t] = a[i++] }), n }) } } }] }).directive("uibModalBackdrop", ["$animate", "$injector", "$uibModalStack", function (o, e, t) { return { restrict: "A", compile: function (e, t) { return e.addClass(t.backdropClass), a } }; function a(n, i, s) { s.modalInClass && (o.addClass(i, s.modalInClass), n.$on(t.NOW_CLOSING_EVENT, function (e, t) { var a = t(); n.modalOptions.animation ? o.removeClass(i, s.modalInClass).then(a) : a() })) } }]).directive("uibModalWindow", ["$uibModalStack", "$q", "$animateCss", "$document", function (a, s, o, r) { return { scope: {index: "@"}, restrict: "A", transclude: !0, templateUrl: function (e, t) { return t.templateUrl || "uib/template/modal/window.html" }, link: function (t, n, i) { n.addClass(i.windowTopClass || ""), t.size = i.size, t.close = function (e) { var t = a.getTop(); t && t.value.backdrop && "static" !== t.value.backdrop && e.target === e.currentTarget && (e.preventDefault(), e.stopPropagation(), a.dismiss(t.key, "backdrop click")) }, n.on("click", t.close), t.$isRendered = !0; var e = s.defer(); t.$$postDigest(function () { e.resolve() }), e.promise.then(function () { var e = null; i.modalInClass && (e = o(n, {addClass: i.modalInClass}).start(), t.$on(a.NOW_CLOSING_EVENT, function (e, t) { var a = t(); o(n, {removeClass: i.modalInClass}).start().then(a) })), s.when(e).then(function () { var e = a.getTop(); if (e && a.modalRendered(e.key), !r[0].activeElement || !n[0].contains(r[0].activeElement)) { var t = n[0].querySelector("[autofocus]"); t ? t.focus() : n[0].focus() } }) }) } } }]).directive("uibModalAnimationClass", function () { return { compile: function (e, t) { t.modalAnimation && e.addClass(t.uibModalAnimationClass) } } }).directive("uibModalTransclude", ["$animate", function (s) { return { link: function (e, t, a, n, i) { i(e.$parent, function (e) { t.empty(), s.enter(e, t) }) } } }]).factory("$uibModalStack", ["$animate", "$animateCss", "$document", "$compile", "$rootScope", "$q", "$$multiMap", "$$stackedMap", "$uibPosition", function (r, e, l, c, u, o, t, a, d) { var p, m, g, f = "modal-open", h = a.createNew(), v = t.createNew(), y = {NOW_CLOSING_EVENT: "modal.stack.now-closing"}, b = 0, w = null; function $() { for (var e = -1, t = h.keys(), a = 0; a < t.length; a++) h.get(t[a]).value.backdrop && (e = a); return -1 < e && e < b && (e = b), e } function n(a, e) { var n = h.get(a).value, i = n.appendTo; h.remove(a), (w = h.top()) && (b = parseInt(w.value.modalDomEl.attr("index"), 10)), s(n.modalDomEl, n.modalScope, function () { var e = n.openedClass || f; v.remove(e, a); var t = v.hasKey(e); i.toggleClass(e, t), !t && g && g.heightOverflow && g.scrollbarWidth && (g.originalRight ? i.css({paddingRight: g.originalRight + "px"}) : i.css({paddingRight: ""}), g = null), k(!0) }, n.closedDeferred), function () { if (p && -1 === $()) { s(p, m, function () { null }), m = p = void 0 } }(), e && e.focus ? e.focus() : i.focus && i.focus() } function k(e) { var t; 0 < h.length() && (t = h.top().value).modalDomEl.toggleClass(t.windowTopClass || "", e) } function s(t, a, n, i) { var e, s = null; return a.$broadcast(y.NOW_CLOSING_EVENT, function () { return e || (e = o.defer(), s = e.promise), function () { e.resolve() } }), o.when(s).then(function e() { if (e.done) return; e.done = !0; r.leave(t).then(function () { n && n(), t.remove(), i && i.resolve() }); a.$destroy() }) } function i(e) { if (e.isDefaultPrevented()) return e; var t = h.top(); if (t) switch (e.which) { case 27: t.value.keyboard && (e.preventDefault(), u.$apply(function () { y.dismiss(t.key, "escape key press") })); break; case 9: var a = y.loadFocusElementList(t), n = !1; e.shiftKey ? (y.isFocusInFirstItem(e, a) || y.isModalFocused(e, t)) && (n = y.focusLastFocusableElement(a)) : y.isFocusInLastItem(e, a) && (n = y.focusFirstFocusableElement(a)), n && (e.preventDefault(), e.stopPropagation()) } } function x(e, t, a) { return !e.value.modalScope.$broadcast("modal.closing", t, a).defaultPrevented } return u.$watch($, function (e) { m && (m.index = e) }), l.on("keydown", i), u.$on("$destroy", function () { l.off("keydown", i) }), y.open = function (e, t) { var a = l[0].activeElement, n = t.openedClass || f; k(!1), w = h.top(), h.add(e, { deferred: t.deferred, renderDeferred: t.renderDeferred, closedDeferred: t.closedDeferred, modalScope: t.scope, backdrop: t.backdrop, keyboard: t.keyboard, openedClass: t.openedClass, windowTopClass: t.windowTopClass, animation: t.animation, appendTo: t.appendTo }), v.put(n, e); var i = t.appendTo, s = $(); if (!i.length) throw new Error("appendTo element not found. Make sure that the element passed is in DOM."); 0 <= s && !p && ((m = u.$new(!0)).modalOptions = t, m.index = s, (p = angular.element('
')).attr({ class: "modal-backdrop", "ng-style": "{'z-index': 1040 + (index && 1 || 0) + index*10}", "uib-modal-animation-class": "fade", "modal-in-class": "in" }), t.backdropClass && p.addClass(t.backdropClass), t.animation && p.attr("modal-animation", "true"), c(p)(m), r.enter(p, i), d.isScrollable(i) && (g = d.scrollbarPadding(i)).heightOverflow && g.scrollbarWidth && i.css({paddingRight: g.right + "px"})), b = w ? parseInt(w.value.modalDomEl.attr("index"), 10) + 1 : 0; var o = angular.element('
'); o.attr({ class: "modal", "template-url": t.windowTemplateUrl, "window-top-class": t.windowTopClass, role: "dialog", size: t.size, index: b, animate: "animate", "ng-style": "{'z-index': 1050 + index*10, display: 'block'}", tabindex: -1, "uib-modal-animation-class": "fade", "modal-in-class": "in" }).html(t.content), t.windowClass && o.addClass(t.windowClass), t.animation && o.attr("modal-animation", "true"), i.addClass(n), r.enter(c(o)(t.scope), i), h.top().value.modalDomEl = o, h.top().value.modalOpener = a }, y.close = function (e, t) { var a = h.get(e); return a && x(a, t, !0) ? (a.value.modalScope.$$uibDestructionScheduled = !0, a.value.deferred.resolve(t), n(e, a.value.modalOpener), !0) : !a }, y.dismiss = function (e, t) { var a = h.get(e); return a && x(a, t, !1) ? (a.value.modalScope.$$uibDestructionScheduled = !0, a.value.deferred.reject(t), n(e, a.value.modalOpener), !0) : !a }, y.dismissAll = function (e) { for (var t = this.getTop(); t && this.dismiss(t.key, e);) t = this.getTop() }, y.getTop = function () { return h.top() }, y.modalRendered = function (e) { var t = h.get(e); t && t.value.renderDeferred.resolve() }, y.focusFirstFocusableElement = function (e) { return 0 < e.length && (e[0].focus(), !0) }, y.focusLastFocusableElement = function (e) { return 0 < e.length && (e[e.length - 1].focus(), !0) }, y.isModalFocused = function (e, t) { if (e && t) { var a = t.value.modalDomEl; if (a && a.length) return (e.target || e.srcElement) === a[0] } return !1 }, y.isFocusInFirstItem = function (e, t) { return 0 < t.length && (e.target || e.srcElement) === t[0] }, y.isFocusInLastItem = function (e, t) { return 0 < t.length && (e.target || e.srcElement) === t[t.length - 1] }, y.loadFocusElementList = function (e) { if (e) { var t = e.value.modalDomEl; if (t && t.length) { var a = t[0].querySelectorAll("a[href], area[href], input:not([disabled]):not([tabindex='-1']), button:not([disabled]):not([tabindex='-1']),select:not([disabled]):not([tabindex='-1']), textarea:not([disabled]):not([tabindex='-1']), iframe, object, embed, *[tabindex]:not([tabindex='-1']), *[contenteditable=true]"); return a ? Array.prototype.filter.call(a, function (e) { return function (e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) }(e) }) : a } } }, y }]).provider("$uibModal", function () { var v = { options: {animation: !0, backdrop: !0, keyboard: !0}, $get: ["$rootScope", "$q", "$document", "$templateRequest", "$controller", "$uibResolve", "$uibModalStack", function (p, n, i, s, m, g, f) { var e = {}; var h = null; return e.getPromiseChain = function () { return h }, e.open = function (o) { var r = n.defer(), l = n.defer(), c = n.defer(), u = n.defer(), d = { result: r.promise, opened: l.promise, closed: c.promise, rendered: u.promise, close: function (e) { return f.close(d, e) }, dismiss: function (e) { return f.dismiss(d, e) } }; if ((o = angular.extend({}, v.options, o)).resolve = o.resolve || {}, o.appendTo = o.appendTo || i.find("body").eq(0), !o.template && !o.templateUrl) throw new Error("One of template or templateUrl options is required."); var e, t = n.all([function (e) { return e.template ? n.when(e.template) : s(angular.isFunction(e.templateUrl) ? e.templateUrl() : e.templateUrl) }(o), g.resolve(o.resolve, {}, null, null)]); function a() { return t } return e = h = n.all([h]).then(a, a).then(function (e) { var t = o.scope || p, a = t.$new(); a.$close = d.close, a.$dismiss = d.dismiss, a.$on("$destroy", function () { a.$$uibDestructionScheduled || a.$dismiss("$uibUnscheduledDestruction") }); var n, i, s = {}; o.controller && (s.$scope = a, s.$scope.$resolve = {}, s.$uibModalInstance = d, angular.forEach(e[1], function (e, t) { s[t] = e, s.$scope.$resolve[t] = e }), i = m(o.controller, s, !0, o.controllerAs), o.controllerAs && o.bindToController && ((n = i.instance).$close = a.$close, n.$dismiss = a.$dismiss, angular.extend(n, {$resolve: s.$scope.$resolve}, t)), n = i(), angular.isFunction(n.$onInit) && n.$onInit()), f.open(d, { scope: a, deferred: r, renderDeferred: u, closedDeferred: c, content: e[0], animation: o.animation, backdrop: o.backdrop, keyboard: o.keyboard, backdropClass: o.backdropClass, windowTopClass: o.windowTopClass, windowClass: o.windowClass, windowTemplateUrl: o.windowTemplateUrl, size: o.size, openedClass: o.openedClass, appendTo: o.appendTo }), l.resolve(!0) }, function (e) { l.reject(e), r.reject(e) }).finally(function () { h === e && (h = null) }), d }, e }] }; return v }), angular.module("ui.bootstrap.paging", []).factory("uibPaging", ["$parse", function (e) { return { create: function (a, n, i) { a.setNumPages = i.numPages ? e(i.numPages).assign : angular.noop, a.ngModelCtrl = {$setViewValue: angular.noop}, a._watchers = [], a.init = function (e, t) { a.ngModelCtrl = e, a.config = t, e.$render = function () { a.render() }, i.itemsPerPage ? a._watchers.push(n.$parent.$watch(i.itemsPerPage, function (e) { a.itemsPerPage = parseInt(e, 10), n.totalPages = a.calculateTotalPages(), a.updatePage() })) : a.itemsPerPage = t.itemsPerPage, n.$watch("totalItems", function (e, t) { !angular.isDefined(e) && e === t || (n.totalPages = a.calculateTotalPages(), a.updatePage()) }) }, a.calculateTotalPages = function () { var e = a.itemsPerPage < 1 ? 1 : Math.ceil(n.totalItems / a.itemsPerPage); return Math.max(e || 0, 1) }, a.render = function () { n.page = parseInt(a.ngModelCtrl.$viewValue, 10) || 1 }, n.selectPage = function (e, t) { t && t.preventDefault(), (!n.ngDisabled || !t) && n.page !== e && 0 < e && e <= n.totalPages && (t && t.target && t.target.blur(), a.ngModelCtrl.$setViewValue(e), a.ngModelCtrl.$render()) }, n.getText = function (e) { return n[e + "Text"] || a.config[e + "Text"] }, n.noPrevious = function () { return 1 === n.page }, n.noNext = function () { return n.page === n.totalPages }, a.updatePage = function () { a.setNumPages(n.$parent, n.totalPages), n.page > n.totalPages ? n.selectPage(n.totalPages) : a.ngModelCtrl.$render() }, n.$on("$destroy", function () { for (; a._watchers.length;) a._watchers.shift()() }) } } }]), angular.module("ui.bootstrap.pager", ["ui.bootstrap.paging", "ui.bootstrap.tabindex"]).controller("UibPagerController", ["$scope", "$attrs", "uibPaging", "uibPagerConfig", function (e, t, a, n) { e.align = angular.isDefined(t.align) ? e.$parent.$eval(t.align) : n.align, a.create(this, e, t) }]).constant("uibPagerConfig", { itemsPerPage: 10, previousText: "« Previous", nextText: "Next »", align: !0 }).directive("uibPager", ["uibPagerConfig", function (o) { return { scope: {totalItems: "=", previousText: "@", nextText: "@", ngDisabled: "="}, require: ["uibPager", "?ngModel"], restrict: "A", controller: "UibPagerController", controllerAs: "pager", templateUrl: function (e, t) { return t.templateUrl || "uib/template/pager/pager.html" }, link: function (e, t, a, n) { t.addClass("pager"); var i = n[0], s = n[1]; s && i.init(s, o) } } }]), angular.module("ui.bootstrap.pagination", ["ui.bootstrap.paging", "ui.bootstrap.tabindex"]).controller("UibPaginationController", ["$scope", "$attrs", "$parse", "uibPaging", "uibPaginationConfig", function (t, a, e, n, i) { var s = this, g = angular.isDefined(a.maxSize) ? t.$parent.$eval(a.maxSize) : i.maxSize, f = angular.isDefined(a.rotate) ? t.$parent.$eval(a.rotate) : i.rotate, h = angular.isDefined(a.forceEllipses) ? t.$parent.$eval(a.forceEllipses) : i.forceEllipses, v = angular.isDefined(a.boundaryLinkNumbers) ? t.$parent.$eval(a.boundaryLinkNumbers) : i.boundaryLinkNumbers, y = angular.isDefined(a.pageLabel) ? function (e) { return t.$parent.$eval(a.pageLabel, {$page: e}) } : angular.identity; function b(e, t, a) { return {number: e, text: t, active: a} } t.boundaryLinks = angular.isDefined(a.boundaryLinks) ? t.$parent.$eval(a.boundaryLinks) : i.boundaryLinks, t.directionLinks = angular.isDefined(a.directionLinks) ? t.$parent.$eval(a.directionLinks) : i.directionLinks, n.create(this, t, a), a.maxSize && s._watchers.push(t.$parent.$watch(e(a.maxSize), function (e) { g = parseInt(e, 10), s.render() })); var o = this.render; this.render = function () { o(), 0 < t.page && t.page <= t.totalPages && (t.pages = function (e, t) { var a = [], n = 1, i = t, s = angular.isDefined(g) && g < t; s && (f ? t < (i = (n = Math.max(e - Math.floor(g / 2), 1)) + g - 1) && (n = (i = t) - g + 1) : (n = (Math.ceil(e / g) - 1) * g + 1, i = Math.min(n + g - 1, t))); for (var o = n; o <= i; o++) { var r = b(o, y(o), o === e); a.push(r) } if (s && 0 < g && (!f || h || v)) { if (1 < n) { if (!v || 3 < n) { var l = b(n - 1, "...", !1); a.unshift(l) } if (v) { if (3 === n) { var c = b(2, "2", !1); a.unshift(c) } var u = b(1, "1", !1); a.unshift(u) } } if (i < t) { if (!v || i < t - 2) { var d = b(i + 1, "...", !1); a.push(d) } if (v) { if (i === t - 2) { var p = b(t - 1, t - 1, !1); a.push(p) } var m = b(t, t, !1); a.push(m) } } } return a }(t.page, t.totalPages)) } }]).constant("uibPaginationConfig", { itemsPerPage: 10, boundaryLinks: !1, boundaryLinkNumbers: !1, directionLinks: !0, firstText: "First", previousText: "Previous", nextText: "Next", lastText: "Last", rotate: !0, forceEllipses: !1 }).directive("uibPagination", ["$parse", "uibPaginationConfig", function (e, o) { return { scope: {totalItems: "=", firstText: "@", previousText: "@", nextText: "@", lastText: "@", ngDisabled: "="}, require: ["uibPagination", "?ngModel"], restrict: "A", controller: "UibPaginationController", controllerAs: "pagination", templateUrl: function (e, t) { return t.templateUrl || "uib/template/pagination/pagination.html" }, link: function (e, t, a, n) { t.addClass("pagination"); var i = n[0], s = n[1]; s && i.init(s, o) } } }]), angular.module("ui.bootstrap.tooltip", ["ui.bootstrap.position", "ui.bootstrap.stackedMap"]).provider("$uibTooltip", function () { var r = { placement: "top", placementClassPrefix: "", animation: !0, popupDelay: 0, popupCloseDelay: 0, useContentExp: !1 }, l = {mouseenter: "mouseleave", click: "click", outsideClick: "outsideClick", focus: "blur", none: ""}, c = {}; this.options = function (e) { angular.extend(c, e) }, this.setTriggers = function (e) { angular.extend(l, e) }, this.$get = ["$window", "$compile", "$timeout", "$document", "$uibPosition", "$interpolate", "$rootScope", "$parse", "$$stackedMap", function (e, s, Y, V, F, o, t, z, a) { var H = a.createNew(); function n(e) { if (27 === e.which) { var t = H.top(); t && (t.value.close(), H.removeTop(), t = null) } } return V.on("keypress", n), t.$on("$destroy", function () { V.off("keypress", n) }), function (N, B, n, R) { function q(e) { var t = (e || R.trigger || n).split(" "), a = t.map(function (e) { return l[e] || e }); return {show: t, hide: a} } R = angular.extend({}, r, c, R); var e = function (e) { return e.replace(/[A-Z]/g, function (e, t) { return (t ? "-" : "") + e.toLowerCase() }) }(N), t = o.startSymbol(), a = o.endSymbol(), i = "
'; return { compile: function (e, t) { var U = s(i); return function (n, s, i, e) { var o, t, a, r, l, c, u, d = !!angular.isDefined(R.appendToBody) && R.appendToBody, p = q(void 0), m = angular.isDefined(i[B + "Enable"]), g = n.$new(!0), f = !1, h = !!angular.isDefined(i[B + "IsOpen"]) && z(i[B + "IsOpen"]), v = !!R.useContentExp && z(i[N]), y = [], b = function () { o && o.html() && (c || (c = Y(function () { var e = F.positionElements(s, o, g.placement, d), a = angular.isDefined(o.offsetHeight) ? o.offsetHeight : o.prop("offsetHeight"), n = d ? F.offset(s) : F.position(s); o.css({top: e.top + "px", left: e.left + "px"}); var i = e.placement.split("-"); o.hasClass(i[0]) || (o.removeClass(u.split("-")[0]), o.addClass(i[0])), o.hasClass(R.placementClassPrefix + e.placement) || (o.removeClass(R.placementClassPrefix + u), o.addClass(R.placementClassPrefix + e.placement)), Y(function () { var e = angular.isDefined(o.offsetHeight) ? o.offsetHeight : o.prop("offsetHeight"), t = F.adjustTop(i, n, a, e); t && o.css(t) }, 0, !1), o.hasClass("uib-position-measure") ? (F.positionArrow(o, e.placement), o.removeClass("uib-position-measure")) : u !== e.placement && F.positionArrow(o, e.placement), u = e.placement, c = null }, 0, !1))) }; function w() { g.isOpen ? k() : $() } function $() { m && !n.$eval(i[B + "Enable"]) || (I(), function () { g.title = i[B + "Title"], g.content = v ? v(n) : i[N]; g.popupClass = i[B + "Class"], g.placement = angular.isDefined(i[B + "Placement"]) ? i[B + "Placement"] : R.placement; var e = F.parsePlacement(g.placement); u = e[1] ? e[0] + "-" + e[1] : e[0]; var t = parseInt(i[B + "PopupDelay"], 10), a = parseInt(i[B + "PopupCloseDelay"], 10); g.popupDelay = isNaN(t) ? R.popupDelay : t, g.popupCloseDelay = isNaN(a) ? R.popupCloseDelay : a }(), g.popupDelay ? r || (r = Y(x, g.popupDelay, !1)) : x()) } function k() { _(), g.popupCloseDelay ? l || (l = Y(S, g.popupCloseDelay, !1)) : S() } function x() { if (_(), I(), !g.content) return angular.noop; !function () { if (o) return; t = g.$new(), o = U(t, function (e) { d ? V.find("body").append(e) : s.after(e) }), function () { y.length = 0, v ? (y.push(n.$watch(v, function (e) { !(g.content = e) && g.isOpen && S() })), y.push(t.$watch(function () { f || (f = !0, t.$$postDigest(function () { f = !1, g && g.isOpen && b() })) }))) : y.push(i.$observe(N, function (e) { !(g.content = e) && g.isOpen ? S() : b() })); y.push(i.$observe(B + "Title", function (e) { g.title = e, g.isOpen && b() })), y.push(i.$observe(B + "Placement", function (e) { g.placement = e || R.placement, g.isOpen && b() })) }() }(), g.$evalAsync(function () { A(g.isOpen = !0), b() }) } function _() { r && (Y.cancel(r), r = null), c && (Y.cancel(c), c = null) } function S() { g && g.$evalAsync(function () { g && (A(g.isOpen = !1), g.animation ? a || (a = Y(C, 150, !1)) : C()) }) } function I() { l && (Y.cancel(l), l = null), a && (Y.cancel(a), a = null) } function C() { _(), I(), y.length && (angular.forEach(y, function (e) { e() }), y.length = 0), o && (o.remove(), o = null), t && (t.$destroy(), t = null) } function A(e) { h && angular.isFunction(h.assign) && h.assign(n, e) } function M(e) { g && g.isOpen && o && (s[0].contains(e.target) || o[0].contains(e.target) || k()) } g.origScope = n, g.isOpen = !1, H.add(g, {close: S}), g.contentExp = function () { return g.content }, i.$observe("disabled", function (e) { e && _(), e && g.isOpen && S() }), h && n.$watch(h, function (e) { g && !e === g.isOpen && w() }); function D() { p.show.forEach(function (e) { "outsideClick" === e ? s.off("click", w) : (s.off(e, $), s.off(e, w)) }), p.hide.forEach(function (e) { "outsideClick" === e ? V.off("click", M) : s.off(e, k) }) } var T, P, E; T = [], P = [], E = n.$eval(i[B + "Trigger"]), D(), "none" !== (p = angular.isObject(E) ? (Object.keys(E).forEach(function (e) { T.push(e), P.push(E[e]) }), {show: T, hide: P}) : q(E)).show && p.show.forEach(function (e, t) { "outsideClick" === e ? (s.on("click", w), V.on("click", M)) : e === p.hide[t] ? s.on(e, w) : e && (s.on(e, $), s.on(p.hide[t], k)), s.on("keypress", function (e) { 27 === e.which && k() }) }); var j, L = n.$eval(i[B + "Animation"]); g.animation = angular.isDefined(L) ? !!L : R.animation; var O = B + "AppendToBody"; j = O in i && void 0 === i[O] || n.$eval(i[O]), d = angular.isDefined(j) ? j : d, n.$on("$destroy", function () { D(), C(), H.remove(g), g = null }) } } } } }] }).directive("uibTooltipTemplateTransclude", ["$animate", "$sce", "$compile", "$templateRequest", function (d, n, p, m) { return { link: function (e, s, t) { function o() { a && (a.remove(), a = null), r && (r.$destroy(), r = null), l && (d.leave(l).then(function () { a = null }), a = l, l = null) } var r, a, l, c = e.$eval(t.tooltipTemplateTranscludeScope), u = 0; e.$watch(n.parseAsResourceUrl(t.uibTooltipTemplateTransclude), function (n) { var i = ++u; n ? (m(n, !0).then(function (e) { if (i === u) { var t = c.$new(), a = p(e)(t, function (e) { o(), d.enter(e, s) }); l = a, (r = t).$emit("$includeContentLoaded", n) } }, function () { i === u && (o(), e.$emit("$includeContentError", n)) }), e.$emit("$includeContentRequested", n)) : o() }), e.$on("$destroy", o) } } }]).directive("uibTooltipClasses", ["$uibPosition", function (i) { return { restrict: "A", link: function (e, t, a) { if (e.placement) { var n = i.parsePlacement(e.placement); t.addClass(n[0]) } e.popupClass && t.addClass(e.popupClass), e.animation && t.addClass(a.tooltipAnimationClass) } } }]).directive("uibTooltipPopup", function () { return {restrict: "A", scope: {content: "@"}, templateUrl: "uib/template/tooltip/tooltip-popup.html"} }).directive("uibTooltip", ["$uibTooltip", function (e) { return e("uibTooltip", "tooltip", "mouseenter") }]).directive("uibTooltipTemplatePopup", function () { return { restrict: "A", scope: {contentExp: "&", originScope: "&"}, templateUrl: "uib/template/tooltip/tooltip-template-popup.html" } }).directive("uibTooltipTemplate", ["$uibTooltip", function (e) { return e("uibTooltipTemplate", "tooltip", "mouseenter", {useContentExp: !0}) }]).directive("uibTooltipHtmlPopup", function () { return {restrict: "A", scope: {contentExp: "&"}, templateUrl: "uib/template/tooltip/tooltip-html-popup.html"} }).directive("uibTooltipHtml", ["$uibTooltip", function (e) { return e("uibTooltipHtml", "tooltip", "mouseenter", {useContentExp: !0}) }]), angular.module("ui.bootstrap.popover", ["ui.bootstrap.tooltip"]).directive("uibPopoverTemplatePopup", function () { return { restrict: "A", scope: {uibTitle: "@", contentExp: "&", originScope: "&"}, templateUrl: "uib/template/popover/popover-template.html" } }).directive("uibPopoverTemplate", ["$uibTooltip", function (e) { return e("uibPopoverTemplate", "popover", "click", {useContentExp: !0}) }]).directive("uibPopoverHtmlPopup", function () { return { restrict: "A", scope: {contentExp: "&", uibTitle: "@"}, templateUrl: "uib/template/popover/popover-html.html" } }).directive("uibPopoverHtml", ["$uibTooltip", function (e) { return e("uibPopoverHtml", "popover", "click", {useContentExp: !0}) }]).directive("uibPopoverPopup", function () { return {restrict: "A", scope: {uibTitle: "@", content: "@"}, templateUrl: "uib/template/popover/popover.html"} }).directive("uibPopover", ["$uibTooltip", function (e) { return e("uibPopover", "popover", "click") }]), angular.module("ui.bootstrap.progressbar", []).constant("uibProgressConfig", { animate: !0, max: 100 }).controller("UibProgressController", ["$scope", "$attrs", "uibProgressConfig", function (e, t, a) { var n = this, i = angular.isDefined(t.animate) ? e.$parent.$eval(t.animate) : a.animate; function s() { return angular.isDefined(e.maxParam) ? e.maxParam : a.max } this.bars = [], e.max = s(), this.addBar = function (t, e, a) { i || e.css({transition: "none"}), this.bars.push(t), t.max = s(), t.title = a && angular.isDefined(a.title) ? a.title : "progressbar", t.$watch("value", function (e) { t.recalculatePercentage() }), t.recalculatePercentage = function () { var e = n.bars.reduce(function (e, t) { return t.percent = +(100 * t.value / t.max).toFixed(2), e + t.percent }, 0); 100 < e && (t.percent -= e - 100) }, t.$on("$destroy", function () { e = null, n.removeBar(t) }) }, this.removeBar = function (e) { this.bars.splice(this.bars.indexOf(e), 1), this.bars.forEach(function (e) { e.recalculatePercentage() }) }, e.$watch("maxParam", function (e) { n.bars.forEach(function (e) { e.max = s(), e.recalculatePercentage() }) }) }]).directive("uibProgress", function () { return { replace: !0, transclude: !0, controller: "UibProgressController", require: "uibProgress", scope: {maxParam: "=?max"}, templateUrl: "uib/template/progressbar/progress.html" } }).directive("uibBar", function () { return { replace: !0, transclude: !0, require: "^uibProgress", scope: {value: "=", type: "@"}, templateUrl: "uib/template/progressbar/bar.html", link: function (e, t, a, n) { n.addBar(e, t, a) } } }).directive("uibProgressbar", function () { return { replace: !0, transclude: !0, controller: "UibProgressController", scope: {value: "=", maxParam: "=?max", type: "@"}, templateUrl: "uib/template/progressbar/progressbar.html", link: function (e, t, a, n) { n.addBar(e, angular.element(t.children()[0]), {title: a.title}) } } }), angular.module("ui.bootstrap.rating", []).constant("uibRatingConfig", { max: 5, stateOn: null, stateOff: null, enableReset: !0, titles: ["one", "two", "three", "four", "five"] }).controller("UibRatingController", ["$scope", "$attrs", "uibRatingConfig", function (n, i, s) { var o = {$setViewValue: angular.noop}, a = this; this.init = function (e) { (o = e).$render = this.render, o.$formatters.push(function (e) { return angular.isNumber(e) && e << 0 !== e && (e = Math.round(e)), e }), this.stateOn = angular.isDefined(i.stateOn) ? n.$parent.$eval(i.stateOn) : s.stateOn, this.stateOff = angular.isDefined(i.stateOff) ? n.$parent.$eval(i.stateOff) : s.stateOff, this.enableReset = angular.isDefined(i.enableReset) ? n.$parent.$eval(i.enableReset) : s.enableReset; var t = angular.isDefined(i.titles) ? n.$parent.$eval(i.titles) : s.titles; this.titles = angular.isArray(t) && 0 < t.length ? t : s.titles; var a = angular.isDefined(i.ratingStates) ? n.$parent.$eval(i.ratingStates) : new Array(angular.isDefined(i.max) ? n.$parent.$eval(i.max) : s.max); n.range = this.buildTemplateObjects(a) }, this.buildTemplateObjects = function (e) { for (var t = 0, a = e.length; t < a; t++) e[t] = angular.extend({index: t}, { stateOn: this.stateOn, stateOff: this.stateOff, title: this.getTitle(t) }, e[t]); return e }, this.getTitle = function (e) { return e >= this.titles.length ? e + 1 : this.titles[e] }, n.rate = function (e) { if (!n.readonly && 0 <= e && e <= n.range.length) { var t = a.enableReset && o.$viewValue === e ? 0 : e; o.$setViewValue(t), o.$render() } }, n.enter = function (e) { n.readonly || (n.value = e), n.onHover({value: e}) }, n.reset = function () { n.value = o.$viewValue, n.onLeave() }, n.onKeydown = function (e) { /(37|38|39|40)/.test(e.which) && (e.preventDefault(), e.stopPropagation(), n.rate(n.value + (38 === e.which || 39 === e.which ? 1 : -1))) }, this.render = function () { n.value = o.$viewValue, n.title = a.getTitle(n.value - 1) } }]).directive("uibRating", function () { return { require: ["uibRating", "ngModel"], restrict: "A", scope: {readonly: "=?readOnly", onHover: "&", onLeave: "&"}, controller: "UibRatingController", templateUrl: "uib/template/rating/rating.html", link: function (e, t, a, n) { var i = n[0], s = n[1]; i.init(s) } } }), angular.module("ui.bootstrap.tabs", []).controller("UibTabsetController", ["$scope", function (e) { var s, o, r = this; function l(e) { for (var t = 0; t < r.tabs.length; t++) if (r.tabs[t].index === e) return t } r.tabs = [], r.select = function (e, t) { if (!o) { var a = l(s), n = r.tabs[a]; if (n) { if (n.tab.onDeselect({$event: t, $selectedIndex: e}), t && t.isDefaultPrevented()) return; n.tab.active = !1 } var i = r.tabs[e]; i ? (i.tab.onSelect({$event: t}), i.tab.active = !0, r.active = i.index, s = i.index) : !i && angular.isDefined(s) && (r.active = null, s = null) } }, r.addTab = function (e) { if (r.tabs.push({tab: e, index: e.index}), r.tabs.sort(function (e, t) { return e.index > t.index ? 1 : e.index < t.index ? -1 : 0 }), e.index === r.active || !angular.isDefined(r.active) && 1 === r.tabs.length) { var t = l(e.index); r.select(t) } }, r.removeTab = function (e) { for (var t, a = 0; a < r.tabs.length; a++) if (r.tabs[a].tab === e) { t = a; break } if (r.tabs[t].index === r.active) { var n = t === r.tabs.length - 1 ? t - 1 : t + 1 % r.tabs.length; r.select(n) } r.tabs.splice(t, 1) }, e.$watch("tabset.active", function (e) { angular.isDefined(e) && e !== s && r.select(l(e)) }), e.$on("$destroy", function () { o = !0 }) }]).directive("uibTabset", function () { return { transclude: !0, replace: !0, scope: {}, bindToController: {active: "=?", type: "@"}, controller: "UibTabsetController", controllerAs: "tabset", templateUrl: function (e, t) { return t.templateUrl || "uib/template/tabs/tabset.html" }, link: function (e, t, a) { e.vertical = !!angular.isDefined(a.vertical) && e.$parent.$eval(a.vertical), e.justified = !!angular.isDefined(a.justified) && e.$parent.$eval(a.justified) } } }).directive("uibTab", ["$parse", function (s) { return { require: "^uibTabset", replace: !0, templateUrl: function (e, t) { return t.templateUrl || "uib/template/tabs/tab.html" }, transclude: !0, scope: {heading: "@", index: "=?", classes: "@?", onSelect: "&select", onDeselect: "&deselect"}, controller: function () { }, controllerAs: "tab", link: function (n, e, t, i, a) { n.disabled = !1, t.disable && n.$parent.$watch(s(t.disable), function (e) { n.disabled = !!e }), angular.isUndefined(t.index) && (i.tabs && i.tabs.length ? n.index = Math.max.apply(null, i.tabs.map(function (e) { return e.index })) + 1 : n.index = 0), angular.isUndefined(t.classes) && (n.classes = ""), n.select = function (e) { if (!n.disabled) { for (var t, a = 0; a < i.tabs.length; a++) if (i.tabs[a].tab === n) { t = a; break } i.select(t, e) } }, i.addTab(n), n.$on("$destroy", function () { i.removeTab(n) }), n.$transcludeFn = a } } }]).directive("uibTabHeadingTransclude", function () { return { restrict: "A", require: "^uibTab", link: function (e, t) { e.$watch("headingElement", function (e) { e && (t.html(""), t.append(e)) }) } } }).directive("uibTabContentTransclude", function () { return { restrict: "A", require: "^uibTabset", link: function (e, t, a) { var n = e.$eval(a.uibTabContentTransclude).tab; n.$transcludeFn(n.$parent, function (e) { angular.forEach(e, function (e) { !function (e) { return e.tagName && (e.hasAttribute("uib-tab-heading") || e.hasAttribute("data-uib-tab-heading") || e.hasAttribute("x-uib-tab-heading") || "uib-tab-heading" === e.tagName.toLowerCase() || "data-uib-tab-heading" === e.tagName.toLowerCase() || "x-uib-tab-heading" === e.tagName.toLowerCase() || "uib:tab-heading" === e.tagName.toLowerCase()) }(e) ? t.append(e) : n.headingElement = e }) }) } } }), angular.module("ui.bootstrap.timepicker", []).constant("uibTimepickerConfig", { hourStep: 1, minuteStep: 1, secondStep: 1, showMeridian: !0, showSeconds: !1, meridians: null, readonlyInput: !1, mousewheel: !0, arrowkeys: !0, showSpinners: !0, templateUrl: "uib/template/timepicker/timepicker.html" }).controller("UibTimepickerController", ["$scope", "$element", "$attrs", "$parse", "$log", "$locale", "uibTimepickerConfig", function (s, e, o, t, a, n, r) { var i = new Date, l = [], c = {$setViewValue: angular.noop}, u = angular.isDefined(o.meridians) ? s.$parent.$eval(o.meridians) : r.meridians || n.DATETIME_FORMATS.AMPMS, d = !angular.isDefined(o.padHours) || s.$parent.$eval(o.padHours); s.tabindex = angular.isDefined(o.tabindex) ? o.tabindex : 0, e.removeAttr("tabindex"), this.init = function (e, t) { (c = e).$render = this.render, c.$formatters.unshift(function (e) { return e ? new Date(e) : null }); var a = t.eq(0), n = t.eq(1), i = t.eq(2); (angular.isDefined(o.mousewheel) ? s.$parent.$eval(o.mousewheel) : r.mousewheel) && this.setupMousewheelEvents(a, n, i), (angular.isDefined(o.arrowkeys) ? s.$parent.$eval(o.arrowkeys) : r.arrowkeys) && this.setupArrowkeyEvents(a, n, i), s.readonlyInput = angular.isDefined(o.readonlyInput) ? s.$parent.$eval(o.readonlyInput) : r.readonlyInput, this.setupInputEvents(a, n, i) }; var p = r.hourStep; o.hourStep && l.push(s.$parent.$watch(t(o.hourStep), function (e) { p = +e })); var m, g, f = r.minuteStep; o.minuteStep && l.push(s.$parent.$watch(t(o.minuteStep), function (e) { f = +e })), l.push(s.$parent.$watch(t(o.min), function (e) { var t = new Date(e); m = isNaN(t) ? void 0 : t })), l.push(s.$parent.$watch(t(o.max), function (e) { var t = new Date(e); g = isNaN(t) ? void 0 : t })); var h = !1; o.ngDisabled && l.push(s.$parent.$watch(t(o.ngDisabled), function (e) { h = e })), s.noIncrementHours = function () { var e = S(i, 60 * p); return h || g < e || e < i && e < m }, s.noDecrementHours = function () { var e = S(i, 60 * -p); return h || e < m || i < e && g < e }, s.noIncrementMinutes = function () { var e = S(i, f); return h || g < e || e < i && e < m }, s.noDecrementMinutes = function () { var e = S(i, -f); return h || e < m || i < e && g < e }, s.noIncrementSeconds = function () { var e = I(i, v); return h || g < e || e < i && e < m }, s.noDecrementSeconds = function () { var e = I(i, -v); return h || e < m || i < e && g < e }, s.noToggleMeridian = function () { return i.getHours() < 12 ? h || S(i, 720) > g : h || S(i, -720) < m }; var v = r.secondStep; function y() { var e = +s.hours; if ((s.showMeridian ? 0 < e && e < 13 : 0 <= e && e < 24) && "" !== s.hours) return s.showMeridian && (12 === e && (e = 0), s.meridian === u[1] && (e += 12)), e } function b() { var e = +s.minutes; if (0 <= e && e < 60 && "" !== s.minutes) return e } function w(e, t) { return null === e ? "" : angular.isDefined(e) && e.toString().length < 2 && !t ? "0" + e : e.toString() } function $(e) { k(), c.$setViewValue(new Date(i)), x(e) } function k() { c.$setValidity("time", !0), s.invalidHours = !1, s.invalidMinutes = !1, s.invalidSeconds = !1 } function x(e) { if (c.$modelValue) { var t = i.getHours(), a = i.getMinutes(), n = i.getSeconds(); s.showMeridian && (t = 0 === t || 12 === t ? 12 : t % 12), s.hours = "h" === e ? t : w(t, !d), "m" !== e && (s.minutes = w(a)), s.meridian = i.getHours() < 12 ? u[0] : u[1], "s" !== e && (s.seconds = w(n)), s.meridian = i.getHours() < 12 ? u[0] : u[1] } else s.hours = null, s.minutes = null, s.seconds = null, s.meridian = u[0] } function _(e) { i = I(i, e), $() } function S(e, t) { return I(e, 60 * t) } function I(e, t) { var a = new Date(e.getTime() + 1e3 * t), n = new Date(e); return n.setHours(a.getHours(), a.getMinutes(), a.getSeconds()), n } function C() { return (null === s.hours || "" === s.hours) && (null === s.minutes || "" === s.minutes) && (!s.showSeconds || s.showSeconds && (null === s.seconds || "" === s.seconds)) } o.secondStep && l.push(s.$parent.$watch(t(o.secondStep), function (e) { v = +e })), s.showSeconds = r.showSeconds, o.showSeconds && l.push(s.$parent.$watch(t(o.showSeconds), function (e) { s.showSeconds = !!e })), s.showMeridian = r.showMeridian, o.showMeridian && l.push(s.$parent.$watch(t(o.showMeridian), function (e) { if (s.showMeridian = !!e, c.$error.time) { var t = y(), a = b(); angular.isDefined(t) && angular.isDefined(a) && (i.setHours(t), $()) } else x() })), this.setupMousewheelEvents = function (e, t, a) { function n(e) { e.originalEvent && (e = e.originalEvent); var t = e.wheelDelta ? e.wheelDelta : -e.deltaY; return e.detail || 0 < t } e.bind("mousewheel wheel", function (e) { h || s.$apply(n(e) ? s.incrementHours() : s.decrementHours()), e.preventDefault() }), t.bind("mousewheel wheel", function (e) { h || s.$apply(n(e) ? s.incrementMinutes() : s.decrementMinutes()), e.preventDefault() }), a.bind("mousewheel wheel", function (e) { h || s.$apply(n(e) ? s.incrementSeconds() : s.decrementSeconds()), e.preventDefault() }) }, this.setupArrowkeyEvents = function (e, t, a) { e.bind("keydown", function (e) { h || (38 === e.which ? (e.preventDefault(), s.incrementHours(), s.$apply()) : 40 === e.which && (e.preventDefault(), s.decrementHours(), s.$apply())) }), t.bind("keydown", function (e) { h || (38 === e.which ? (e.preventDefault(), s.incrementMinutes(), s.$apply()) : 40 === e.which && (e.preventDefault(), s.decrementMinutes(), s.$apply())) }), a.bind("keydown", function (e) { h || (38 === e.which ? (e.preventDefault(), s.incrementSeconds(), s.$apply()) : 40 === e.which && (e.preventDefault(), s.decrementSeconds(), s.$apply())) }) }, this.setupInputEvents = function (e, t, a) { if (s.readonlyInput) return s.updateHours = angular.noop, s.updateMinutes = angular.noop, void (s.updateSeconds = angular.noop); function n(e, t, a) { c.$setViewValue(null), c.$setValidity("time", !1), angular.isDefined(e) && (s.invalidHours = e), angular.isDefined(t) && (s.invalidMinutes = t), angular.isDefined(a) && (s.invalidSeconds = a) } s.updateHours = function () { var e = y(), t = b(); c.$setDirty(), angular.isDefined(e) && angular.isDefined(t) ? (i.setHours(e), i.setMinutes(t), i < m || g < i ? n(!0) : $("h")) : n(!0) }, e.bind("blur", function (e) { c.$setTouched(), C() ? k() : null === s.hours || "" === s.hours ? n(!0) : !s.invalidHours && s.hours < 10 && s.$apply(function () { s.hours = w(s.hours, !d) }) }), s.updateMinutes = function () { var e = b(), t = y(); c.$setDirty(), angular.isDefined(e) && angular.isDefined(t) ? (i.setHours(t), i.setMinutes(e), i < m || g < i ? n(void 0, !0) : $("m")) : n(void 0, !0) }, t.bind("blur", function (e) { c.$setTouched(), C() ? k() : null === s.minutes ? n(void 0, !0) : !s.invalidMinutes && s.minutes < 10 && s.$apply(function () { s.minutes = w(s.minutes) }) }), s.updateSeconds = function () { var e = function () { var e = +s.seconds; return 0 <= e && e < 60 ? e : void 0 }(); c.$setDirty(), angular.isDefined(e) ? (i.setSeconds(e), $("s")) : n(void 0, void 0, !0) }, a.bind("blur", function (e) { C() ? k() : !s.invalidSeconds && s.seconds < 10 && s.$apply(function () { s.seconds = w(s.seconds) }) }) }, this.render = function () { var e = c.$viewValue; isNaN(e) ? (c.$setValidity("time", !1), a.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')) : (e && (i = e), i < m || g < i ? (c.$setValidity("time", !1), s.invalidHours = !0, s.invalidMinutes = !0) : k(), x()) }, s.showSpinners = angular.isDefined(o.showSpinners) ? s.$parent.$eval(o.showSpinners) : r.showSpinners, s.incrementHours = function () { s.noIncrementHours() || _(60 * p * 60) }, s.decrementHours = function () { s.noDecrementHours() || _(60 * -p * 60) }, s.incrementMinutes = function () { s.noIncrementMinutes() || _(60 * f) }, s.decrementMinutes = function () { s.noDecrementMinutes() || _(60 * -f) }, s.incrementSeconds = function () { s.noIncrementSeconds() || _(v) }, s.decrementSeconds = function () { s.noDecrementSeconds() || _(-v) }, s.toggleMeridian = function () { var e = b(), t = y(); s.noToggleMeridian() || (angular.isDefined(e) && angular.isDefined(t) ? _(720 * (i.getHours() < 12 ? 60 : -60)) : s.meridian = s.meridian === u[0] ? u[1] : u[0]) }, s.blur = function () { c.$setTouched() }, s.$on("$destroy", function () { for (; l.length;) l.shift()() }) }]).directive("uibTimepicker", ["uibTimepickerConfig", function (a) { return { require: ["uibTimepicker", "?^ngModel"], restrict: "A", controller: "UibTimepickerController", controllerAs: "timepicker", scope: {}, templateUrl: function (e, t) { return t.templateUrl || a.templateUrl }, link: function (e, t, a, n) { var i = n[0], s = n[1]; s && i.init(s, t.find("input")) } } }]), angular.module("ui.bootstrap.typeahead", ["ui.bootstrap.debounce", "ui.bootstrap.position"]).factory("uibTypeaheadParser", ["$parse", function (a) { var n = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/; return { parse: function (e) { var t = e.match(n); if (!t) throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "' + e + '".'); return {itemName: t[3], source: a(t[4]), viewMapper: a(t[2] || t[1]), modelMapper: a(t[1])} } } }]).controller("UibTypeaheadController", ["$scope", "$element", "$attrs", "$compile", "$parse", "$q", "$timeout", "$document", "$window", "$rootScope", "$$debounce", "$uibPosition", "uibTypeaheadParser", function (r, l, s, e, a, t, o, n, i, c, u, d, p) { var m, g, f = [9, 13, 27, 38, 40], h = r.$eval(s.typeaheadMinLength); h || 0 === h || (h = 1), r.$watch(s.typeaheadMinLength, function (e) { h = e || 0 === e ? e : 1 }); var v = r.$eval(s.typeaheadWaitMs) || 0, y = !1 !== r.$eval(s.typeaheadEditable); r.$watch(s.typeaheadEditable, function (e) { y = !1 !== e }); var b, w, $ = a(s.typeaheadLoading).assign || angular.noop, k = s.typeaheadShouldSelect ? a(s.typeaheadShouldSelect) : function (e, t) { var a = t.$event; return 13 === a.which || 9 === a.which }, x = a(s.typeaheadOnSelect), _ = !!angular.isDefined(s.typeaheadSelectOnBlur) && r.$eval(s.typeaheadSelectOnBlur), S = a(s.typeaheadNoResults).assign || angular.noop, I = s.typeaheadInputFormatter ? a(s.typeaheadInputFormatter) : void 0, C = !!s.typeaheadAppendToBody && r.$eval(s.typeaheadAppendToBody), A = s.typeaheadAppendTo ? r.$eval(s.typeaheadAppendTo) : null, M = !1 !== r.$eval(s.typeaheadFocusFirst), D = !!s.typeaheadSelectOnExact && r.$eval(s.typeaheadSelectOnExact), T = a(s.typeaheadIsOpen).assign || angular.noop, P = r.$eval(s.typeaheadShowHint) || !1, E = a(s.ngModel), j = a(s.ngModel + "($$$p)"), L = p.parse(s.uibTypeahead), O = r.$new(), U = r.$on("$destroy", function () { O.$destroy() }); O.$on("$destroy", U); var N, B, R = "typeahead-" + O.$id + "-" + Math.floor(1e4 * Math.random()); l.attr({ "aria-autocomplete": "list", "aria-expanded": !1, "aria-owns": R }), P && ((N = angular.element("
")).css("position", "relative"), l.after(N), (B = l.clone()).attr("placeholder", ""), B.attr("tabindex", "-1"), B.val(""), B.css({ position: "absolute", top: "0px", left: "0px", "border-color": "transparent", "box-shadow": "none", opacity: 1, background: "none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255)", color: "#999" }), l.css({ position: "relative", "vertical-align": "top", "background-color": "transparent" }), B.attr("id") && B.removeAttr("id"), N.append(B), B.after(l)); var q = angular.element("
"); q.attr({ id: R, matches: "matches", active: "activeIdx", select: "select(activeIdx, evt)", "move-in-progress": "moveInProgress", query: "query", position: "position", "assign-is-open": "assignIsOpen(isOpen)", debounce: "debounceUpdate" }), angular.isDefined(s.typeaheadTemplateUrl) && q.attr("template-url", s.typeaheadTemplateUrl), angular.isDefined(s.typeaheadPopupTemplateUrl) && q.attr("popup-template-url", s.typeaheadPopupTemplateUrl); function Y() { O.matches = [], O.activeIdx = -1, l.attr("aria-expanded", !1), P && B.val("") } function V(e) { return R + "-option-" + e } O.$watch("activeIdx", function (e) { e < 0 ? l.removeAttr("aria-activedescendant") : l.attr("aria-activedescendant", V(e)) }); function F(i, s) { var o = {$viewValue: i}; $(r, !0), S(r, !1), t.when(L.source(r, o)).then(function (e) { var t = i === m.$viewValue; if (t && b) if (e && 0 < e.length) { O.activeIdx = M ? 0 : -1, S(r, !1); for (var a = O.matches.length = 0; a < e.length; a++) o[L.itemName] = e[a], O.matches.push({ id: V(a), label: L.viewMapper(O, o), model: e[a] }); if (O.query = i, G(), l.attr("aria-expanded", !0), D && 1 === O.matches.length && function (e, t) { return !!(O.matches.length > t && e) && e.toUpperCase() === O.matches[t].label.toUpperCase() }(i, 0) && (angular.isNumber(O.debounceUpdate) || angular.isObject(O.debounceUpdate) ? u(function () { O.select(0, s) }, angular.isNumber(O.debounceUpdate) ? O.debounceUpdate : O.debounceUpdate.default) : O.select(0, s)), P) { var n = O.matches[0].label; angular.isString(i) && 0 < i.length && n.slice(0, i.length).toUpperCase() === i.toUpperCase() ? B.val(i + n.slice(i.length)) : B.val("") } } else Y(), S(r, !0); t && $(r, !1) }, function () { Y(), $(r, !1), S(r, !0) }) } C && (angular.element(i).on("resize", W), n.find("body").on("scroll", W)); var z, H = u(function () { O.matches.length && G(), O.moveInProgress = !1 }, 200); function W() { O.moveInProgress || (O.moveInProgress = !0, O.$digest()), H() } function G() { O.position = C ? d.offset(l) : d.position(l), O.position.top += l.prop("offsetHeight") } O.moveInProgress = !1, O.query = void 0; function Q() { z && o.cancel(z) } Y(), O.assignIsOpen = function (e) { T(r, e) }, O.select = function (e, t) { var a, n, i = {}; w = !0, i[L.itemName] = n = O.matches[e].model, a = L.modelMapper(r, i), function (e, t) { angular.isFunction(E(r)) && g && g.$options && g.$options.getterSetter ? j(e, {$$$p: t}) : E.assign(e, t) }(r, a), m.$setValidity("editable", !0), m.$setValidity("parse", !0), x(r, { $item: n, $model: a, $label: L.viewMapper(r, i), $event: t }), Y(), !1 !== O.$eval(s.typeaheadFocusOnSelect) && o(function () { l[0].focus() }, 0, !1) }, l.on("keydown", function (e) { if (0 !== O.matches.length && -1 !== f.indexOf(e.which)) { var t, a = k(r, {$event: e}); if (-1 === O.activeIdx && a || 9 === e.which && e.shiftKey) return Y(), void O.$digest(); switch (e.preventDefault(), e.which) { case 27: e.stopPropagation(), Y(), r.$digest(); break; case 38: O.activeIdx = (0 < O.activeIdx ? O.activeIdx : O.matches.length) - 1, O.$digest(), (t = q[0].querySelectorAll(".uib-typeahead-match")[O.activeIdx]).parentNode.scrollTop = t.offsetTop; break; case 40: O.activeIdx = (O.activeIdx + 1) % O.matches.length, O.$digest(), (t = q[0].querySelectorAll(".uib-typeahead-match")[O.activeIdx]).parentNode.scrollTop = t.offsetTop; break; default: a && O.$apply(function () { angular.isNumber(O.debounceUpdate) || angular.isObject(O.debounceUpdate) ? u(function () { O.select(O.activeIdx, e) }, angular.isNumber(O.debounceUpdate) ? O.debounceUpdate : O.debounceUpdate.default) : O.select(O.activeIdx, e) }) } } }), l.bind("focus", function (e) { b = !0, 0 !== h || m.$viewValue || o(function () { F(m.$viewValue, e) }, 0) }), l.bind("blur", function (e) { _ && O.matches.length && -1 !== O.activeIdx && !w && (w = !0, O.$apply(function () { angular.isObject(O.debounceUpdate) && angular.isNumber(O.debounceUpdate.blur) ? u(function () { O.select(O.activeIdx, e) }, O.debounceUpdate.blur) : O.select(O.activeIdx, e) })), !y && m.$error.editable && (m.$setViewValue(), O.$apply(function () { m.$setValidity("editable", !0), m.$setValidity("parse", !0) }), l.val("")), w = b = !1 }); function K(e) { l[0] !== e.target && 3 !== e.which && 0 !== O.matches.length && (Y(), c.$$phase || r.$digest()) } n.on("click", K), r.$on("$destroy", function () { n.off("click", K), (C || A) && J.remove(), C && (angular.element(i).off("resize", W), n.find("body").off("scroll", W)), q.remove(), P && N.remove() }); var J = e(q)(O); C ? n.find("body").append(J) : A ? angular.element(A).eq(0).append(J) : l.after(J), this.init = function (e, t) { m = e, g = t, O.debounceUpdate = m.$options && a(m.$options.debounce)(r), m.$parsers.unshift(function (e) { return b = !0, 0 === h || e && e.length >= h ? 0 < v ? (Q(), function (e) { z = o(function () { F(e) }, v) }(e)) : F(e) : ($(r, !1), Q(), Y()), y ? e : e ? void m.$setValidity("editable", !1) : (m.$setValidity("editable", !0), null) }), m.$formatters.push(function (e) { var t, a = {}; return y || m.$setValidity("editable", !0), I ? (a.$model = e, I(r, a)) : (a[L.itemName] = e, t = L.viewMapper(r, a), a[L.itemName] = void 0, t !== L.viewMapper(r, a) ? t : e) }) } }]).directive("uibTypeahead", function () { return { controller: "UibTypeaheadController", require: ["ngModel", "^?ngModelOptions", "uibTypeahead"], link: function (e, t, a, n) { n[2].init(n[0], n[1]) } } }).directive("uibTypeaheadPopup", ["$$debounce", function (i) { return { scope: { matches: "=", query: "=", active: "=", position: "&", moveInProgress: "=", select: "&", assignIsOpen: "&", debounce: "&" }, replace: !0, templateUrl: function (e, t) { return t.popupTemplateUrl || "uib/template/typeahead/typeahead-popup.html" }, link: function (n, e, t) { n.templateUrl = t.templateUrl, n.isOpen = function () { var e = 0 < n.matches.length; return n.assignIsOpen({isOpen: e}), e }, n.isActive = function (e) { return n.active === e }, n.selectActive = function (e) { n.active = e }, n.selectMatch = function (e, t) { var a = n.debounce(); angular.isNumber(a) || angular.isObject(a) ? i(function () { n.select({activeIdx: e, evt: t}) }, angular.isNumber(a) ? a : a.default) : n.select({activeIdx: e, evt: t}) } } } }]).directive("uibTypeaheadMatch", ["$templateRequest", "$compile", "$parse", function (i, s, o) { return { scope: {index: "=", match: "=", query: "="}, link: function (a, n, e) { var t = o(e.templateUrl)(a.$parent) || "uib/template/typeahead/typeahead-match.html"; i(t).then(function (e) { var t = angular.element(e.trim()); n.replaceWith(t), s(t)(a) }) } } }]).filter("uibTypeaheadHighlight", ["$sce", "$injector", "$log", function (a, e, n) { var i; return i = e.has("$sanitize"), function (e, t) { return !i && function (e) { return /<.*>/g.test(e) }(e) && n.warn("Unsafe use of typeahead please use ngSanitize"), e = t ? ("" + e).replace(new RegExp(function (e) { return e.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1") }(t), "gi"), "$&") : e, i || (e = a.trustAsHtml(e)), e } }]), angular.module("uib/template/accordion/accordion-group.html", []).run(["$templateCache", function (e) { e.put("uib/template/accordion/accordion-group.html", '\n
\n
\n
\n') }]), angular.module("uib/template/accordion/accordion.html", []).run(["$templateCache", function (e) { e.put("uib/template/accordion/accordion.html", '
') }]), angular.module("uib/template/alert/alert.html", []).run(["$templateCache", function (e) { e.put("uib/template/alert/alert.html", '\n
\n') }]), angular.module("uib/template/carousel/carousel.html", []).run(["$templateCache", function (e) { e.put("uib/template/carousel/carousel.html", '\n\n \n previous\n\n\n \n next\n\n\n') }]), angular.module("uib/template/carousel/slide.html", []).run(["$templateCache", function (e) { e.put("uib/template/carousel/slide.html", '
\n') }]), angular.module("uib/template/datepicker/datepicker.html", []).run(["$templateCache", function (e) { e.put("uib/template/datepicker/datepicker.html", '
\n
\n
\n
\n
\n') }]), angular.module("uib/template/datepicker/day.html", []).run(["$templateCache", function (e) { e.put("uib/template/datepicker/day.html", '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{::label.abbr}}
{{ weekNumbers[$index] }}\n \n
\n') }]), angular.module("uib/template/datepicker/month.html", []).run(["$templateCache", function (e) { e.put("uib/template/datepicker/month.html", '\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n') }]), angular.module("uib/template/datepicker/year.html", []).run(["$templateCache", function (e) { e.put("uib/template/datepicker/year.html", '\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n') }]), angular.module("uib/template/datepickerPopup/popup.html", []).run(["$templateCache", function (e) { e.put("uib/template/datepickerPopup/popup.html", '\n') }]), angular.module("uib/template/modal/window.html", []).run(["$templateCache", function (e) { e.put("uib/template/modal/window.html", "
\n") }]), angular.module("uib/template/pager/pager.html", []).run(["$templateCache", function (e) { e.put("uib/template/pager/pager.html", '
  • {{::getText(\'previous\')}}
  • \n
  • {{::getText(\'next\')}}
  • \n') }]), angular.module("uib/template/pagination/pagination.html", []).run(["$templateCache", function (e) { e.put("uib/template/pagination/pagination.html", '
  • {{::getText(\'first\')}}
  • \n
  • {{::getText(\'previous\')}}
  • \n
  • {{page.text}}
  • \n
  • {{::getText(\'next\')}}
  • \n
  • {{::getText(\'last\')}}
  • \n') }]), angular.module("uib/template/tooltip/tooltip-html-popup.html", []).run(["$templateCache", function (e) { e.put("uib/template/tooltip/tooltip-html-popup.html", '
    \n
    \n') }]), angular.module("uib/template/tooltip/tooltip-popup.html", []).run(["$templateCache", function (e) { e.put("uib/template/tooltip/tooltip-popup.html", '
    \n
    \n') }]), angular.module("uib/template/tooltip/tooltip-template-popup.html", []).run(["$templateCache", function (e) { e.put("uib/template/tooltip/tooltip-template-popup.html", '
    \n
    \n') }]), angular.module("uib/template/popover/popover-html.html", []).run(["$templateCache", function (e) { e.put("uib/template/popover/popover-html.html", '
    \n\n
    \n

    \n
    \n
    \n') }]), angular.module("uib/template/popover/popover-template.html", []).run(["$templateCache", function (e) { e.put("uib/template/popover/popover-template.html", '
    \n\n
    \n

    \n
    \n
    \n') }]), angular.module("uib/template/popover/popover.html", []).run(["$templateCache", function (e) { e.put("uib/template/popover/popover.html", '
    \n\n
    \n

    \n
    \n
    \n') }]), angular.module("uib/template/progressbar/bar.html", []).run(["$templateCache", function (e) { e.put("uib/template/progressbar/bar.html", '
    \n') }]), angular.module("uib/template/progressbar/progress.html", []).run(["$templateCache", function (e) { e.put("uib/template/progressbar/progress.html", '
    ') }]), angular.module("uib/template/progressbar/progressbar.html", []).run(["$templateCache", function (e) { e.put("uib/template/progressbar/progressbar.html", '
    \n
    \n
    \n') }]), angular.module("uib/template/rating/rating.html", []).run(["$templateCache", function (e) { e.put("uib/template/rating/rating.html", '\n ({{ $index < value ? \'*\' : \' \' }})\n \n\n') }]), angular.module("uib/template/tabs/tab.html", []).run(["$templateCache", function (e) { e.put("uib/template/tabs/tab.html", '\n') }]), angular.module("uib/template/tabs/tabset.html", []).run(["$templateCache", function (e) { e.put("uib/template/tabs/tabset.html", '
    \n \n
    \n
    \n
    \n
    \n
    \n') }]), angular.module("uib/template/timepicker/timepicker.html", []).run(["$templateCache", function (e) { e.put("uib/template/timepicker/timepicker.html", '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      
    \n \n :\n \n :\n \n
      
    \n') }]), angular.module("uib/template/typeahead/typeahead-match.html", []).run(["$templateCache", function (e) { e.put("uib/template/typeahead/typeahead-match.html", '\n') }]), angular.module("uib/template/typeahead/typeahead-popup.html", []).run(["$templateCache", function (e) { e.put("uib/template/typeahead/typeahead-popup.html", '\n') }]), angular.module("ui.bootstrap.carousel").run(function () { angular.$$csp().noInlineStyle || angular.$$uibCarouselCss || angular.element(document).find("head").prepend(''), angular.$$uibCarouselCss = !0 }), angular.module("ui.bootstrap.datepicker").run(function () { angular.$$csp().noInlineStyle || angular.$$uibDatepickerCss || angular.element(document).find("head").prepend(''), angular.$$uibDatepickerCss = !0 }), angular.module("ui.bootstrap.position").run(function () { angular.$$csp().noInlineStyle || angular.$$uibPositionCss || angular.element(document).find("head").prepend(''), angular.$$uibPositionCss = !0 }), angular.module("ui.bootstrap.datepickerPopup").run(function () { angular.$$csp().noInlineStyle || angular.$$uibDatepickerpopupCss || angular.element(document).find("head").prepend(''), angular.$$uibDatepickerpopupCss = !0 }), angular.module("ui.bootstrap.tooltip").run(function () { angular.$$csp().noInlineStyle || angular.$$uibTooltipCss || angular.element(document).find("head").prepend(''), angular.$$uibTooltipCss = !0 }), angular.module("ui.bootstrap.timepicker").run(function () { angular.$$csp().noInlineStyle || angular.$$uibTimepickerCss || angular.element(document).find("head").prepend(''), angular.$$uibTimepickerCss = !0 }), angular.module("ui.bootstrap.typeahead").run(function () { angular.$$csp().noInlineStyle || angular.$$uibTypeaheadCss || angular.element(document).find("head").prepend(''), angular.$$uibTypeaheadCss = !0 }), function (e, t) { "function" == typeof define && define.amd ? define(["angular"], t) : "object" == typeof module && module.exports ? module.exports = t(require("angular")) : e.angularClipboard = t(e.angular) }(this, function (i) { return i.module("angular-clipboard", []).factory("clipboard", ["$document", "$window", function (n, i) { return { copyText: function (e, t) { var a = function (e) { var t = n[0].createElement("textarea"); return t.style.position = "absolute", t.textContent = e, t.style.left = "-10000px", t.style.top = (i.pageYOffset || n[0].documentElement.scrollTop) + "px", t }(e); n[0].body.appendChild(a), function (e) { try { n[0].body.style.webkitUserSelect = "initial"; var t = n[0].getSelection(); if (t.removeAllRanges(), e.select(), !n[0].execCommand("copy")) throw"failure copy"; t.removeAllRanges() } finally { n[0].body.style.webkitUserSelect = "" } }(a), n[0].body.removeChild(a) }, supported: "queryCommandSupported" in n[0] && n[0].queryCommandSupported("copy") } }]).directive("clipboard", ["clipboard", function (n) { return { restrict: "A", scope: {onCopied: "&", onError: "&", text: "=", supported: "=?"}, link: function (t, a) { t.supported = n.supported, a.on("click", function (e) { try { n.copyText(t.text, a[0]), i.isFunction(t.onCopied) && t.$evalAsync(t.onCopied()) } catch (e) { i.isFunction(t.onError) && t.$evalAsync(t.onError({err: e})) } }) } } }]) }), function () { "use strict"; angular.module("cfp.hotkeys", []).provider("hotkeys", ["$injector", function (e) { this.includeCheatSheet = !0, this.useNgRoute = e.has("ngViewDirective"), this.templateTitle = "Keyboard Shortcuts:", this.templateHeader = null, this.templateFooter = null, this.template = '', this.cheatSheetHotkey = "?", this.cheatSheetDescription = "Show / hide this help menu", this.$get = ["$rootElement", "$rootScope", "$compile", "$window", "$document", function (e, s, t, n, a) { var i = !0; function o(e) { var t = { command: "⌘", shift: "⇧", left: "←", right: "→", up: "↑", down: "↓", return: "⏎", backspace: "⌫" }; e = e.split("+"); for (var a = 0; a < e.length; a++) "mod" === e[a] && (n.navigator && 0 <= n.navigator.platform.indexOf("Mac") ? e[a] = "command" : e[a] = "ctrl"), e[a] = t[e[a]] || e[a]; return e.join(" + ") } function d(e, t, a, n, i, s) { this.combo = e instanceof Array ? e : [e], this.description = t, this.callback = a, this.action = n, this.allowIn = i, this.persistent = s, this._formated = null } Mousetrap.prototype.stopCallback = function (e, t) { return !i || !(-1 < (" " + t.className + " ").indexOf(" mousetrap ")) && (t.contentEditable && "true" == t.contentEditable) }, d.prototype.format = function () { if (null === this._formated) { for (var e = this.combo[0].split(/[\s]/), t = 0; t < e.length; t++) e[t] = o(e[t]); this._formated = e } return this._formated }; var p = s.$new(); p.hotkeys = [], p.helpVisible = !1, p.title = this.templateTitle, p.header = this.templateHeader, p.footer = this.templateFooter, p.toggleCheatSheet = f; var r = {}; if (this.useNgRoute && s.$on("$routeChangeSuccess", function (e, a) { m(), a && a.hotkeys && angular.forEach(a.hotkeys, function (e) { var t = e[2]; ("string" == typeof t || t instanceof String) && (e[2] = [t, a]), e[5] = !1, h.apply(this, e) }) }), this.includeCheatSheet) { var l = a[0], c = e[0], u = angular.element(this.template); h(this.cheatSheetHotkey, this.cheatSheetDescription, f), c !== l && c !== l.documentElement || (c = l.body), angular.element(c).append(t(u)(p)) } function m() { for (var e = p.hotkeys.length; e--;) { var t = p.hotkeys[e]; t && !t.persistent && v(t) } } var g = !1; function f() { p.helpVisible = !p.helpVisible, p.helpVisible ? (g = y("esc"), v("esc"), h("esc", g.description, f, null, ["INPUT", "SELECT", "TEXTAREA"])) : (v("esc"), !1 !== g && h(g)) } function h(e, t, a, n, i, s) { var o, r = ["INPUT", "SELECT", "TEXTAREA"]; if ("[object Object]" === Object.prototype.toString.call(e) && (t = e.description, a = e.callback, n = e.action, s = e.persistent, i = e.allowIn, e = e.combo), v(e), t instanceof Function ? (n = a, a = t, t = "$$undefined$$") : angular.isUndefined(t) && (t = "$$undefined$$"), void 0 === s && (s = !0), "function" == typeof a) { var l; o = a, i instanceof Array || (i = []); for (var c = 0; c < i.length; c++) i[c] = i[c].toUpperCase(), -1 !== (l = r.indexOf(i[c])) && r.splice(l, 1); a = function (e) { var t = !0; if (e) { var a = e.target || e.srcElement, n = a.nodeName.toUpperCase(); if (-1 < (" " + a.className + " ").indexOf(" mousetrap ")) t = !0; else for (var i = 0; i < r.length; i++) if (r[i] === n) { t = !1; break } } t && b(o.apply(this, arguments)) } } "string" == typeof n ? Mousetrap.bind(e, b(a), n) : Mousetrap.bind(e, b(a)); var u = new d(e, t, a, n, i, s); return p.hotkeys.push(u), u } function v(e) { var t = e instanceof d ? e.combo : e; if (Mousetrap.unbind(t), angular.isArray(t)) { for (var a = !0, n = t.length; n--;) a = v(t[n]) && a; return a } var i = p.hotkeys.indexOf(y(t)); return -1 < i && (1 < p.hotkeys[i].combo.length ? p.hotkeys[i].combo.splice(p.hotkeys[i].combo.indexOf(t), 1) : (angular.forEach(r, function (e) { var t = e.indexOf(p.hotkeys[i]); -1 !== t && e.splice(t, 1) }), p.hotkeys.splice(i, 1)), !0) } function y(e) { if (!e) return p.hotkeys; for (var t, a = 0; a < p.hotkeys.length; a++) if (-1 < (t = p.hotkeys[a]).combo.indexOf(e)) return t; return !1 } function b(i) { return function (e, t) { if (i instanceof Array) { var a = i[0], n = i[1]; i = function (e) { n.scope.$eval(a) } } s.$apply(function () { i(e, y(t)) }) } } return { add: h, del: v, get: y, bindTo: function (a) { return a.$id in r || (r[a.$id] = [], a.$on("$destroy", function () { for (var e = r[a.$id].length; e--;) v(r[a.$id].pop()) })), { add: function (e) { var t; return t = 1 < arguments.length ? h.apply(this, arguments) : h(e), r[a.$id].push(t), this } } }, template: this.template, toggleCheatSheet: f, includeCheatSheet: this.includeCheatSheet, cheatSheetHotkey: this.cheatSheetHotkey, cheatSheetDescription: this.cheatSheetDescription, useNgRoute: this.useNgRoute, purgeHotkeys: m, templateTitle: this.templateTitle, pause: function () { i = !1 }, unpause: function () { i = !0 } } }] }]).directive("hotkey", ["hotkeys", function (s) { return { restrict: "A", link: function (e, t, a) { var n, i = []; angular.forEach(e.$eval(a.hotkey), function (e, t) { n = "string" == typeof a.hotkeyAllowIn ? a.hotkeyAllowIn.split(/[\s,]+/) : [], i.push(t), s.add({ combo: t, description: a.hotkeyDescription, callback: e, action: a.hotkeyAction, allowIn: n }) }), t.bind("$destroy", function () { angular.forEach(i, s.del) }) } } }]).run(["hotkeys", function (e) { }]) }(), function (e, n) { for (var i, s = { 8: "backspace", 9: "tab", 13: "enter", 16: "shift", 17: "ctrl", 18: "alt", 20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home", 37: "left", 38: "up", 39: "right", 40: "down", 45: "ins", 46: "del", 91: "meta", 93: "meta", 224: "meta" }, a = { 106: "*", 107: "+", 109: "-", 110: ".", 111: "/", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'" }, o = { "~": "`", "!": "1", "@": "2", "#": "3", $: "4", "%": "5", "^": "6", "&": "7", "*": "8", "(": "9", ")": "0", _: "-", "+": "=", ":": ";", '"': "'", "<": ",", ">": ".", "?": "/", "|": "\\" }, r = { option: "alt", command: "meta", return: "enter", escape: "esc", plus: "+", mod: /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? "meta" : "ctrl" }, t = 1; t < 20; ++t) s[111 + t] = "f" + t; for (t = 0; t <= 9; ++t) s[t + 96] = t; function y(e, t, a) { e.addEventListener ? e.addEventListener(t, a, !1) : e.attachEvent("on" + t, a) } function b(e) { if ("keypress" != e.type) return s[e.which] ? s[e.which] : a[e.which] ? a[e.which] : String.fromCharCode(e.which).toLowerCase(); var t = String.fromCharCode(e.which); return e.shiftKey || (t = t.toLowerCase()), t } function w(e) { return "shift" == e || "ctrl" == e || "alt" == e || "meta" == e } function l(e, t, a) { return a || (a = function () { if (!i) for (var e in i = {}, s) 95 < e && e < 112 || s.hasOwnProperty(e) && (i[s[e]] = e); return i }()[e] ? "keydown" : "keypress"), "keypress" == a && t.length && (a = "keydown"), a } function $(e, t) { var a, n, i, s = []; for (a = function (e) { return "+" === e ? ["+"] : (e = e.replace(/\+{2}/g, "+plus")).split("+") }(e), i = 0; i < a.length; ++i) n = a[i], r[n] && (n = r[n]), t && "keypress" != t && o[n] && (n = o[n], s.push("shift")), w(n) && s.push(n); return {key: n, modifiers: s, action: t = l(n, s, t)} } function k(e) { var g = this; if (e = e || n, !(g instanceof k)) return new k(e); g.target = e, g._callbacks = {}, g._directMap = {}; var l, f = {}, c = !1, u = !1, d = !1; function p(e) { e = e || {}; var t, a = !1; for (t in f) e[t] ? a = !0 : f[t] = 0; a || (d = !1) } function m(e, t, a, n, i, s) { var o, r, l, c, u = [], d = a.type; if (!g._callbacks[e]) return []; for ("keyup" == d && w(e) && (t = [e]), o = 0; o < g._callbacks[e].length; ++o) if (r = g._callbacks[e][o], (n || !r.seq || f[r.seq] == r.level) && d == r.action && ("keypress" == d && !a.metaKey && !a.ctrlKey || (l = t, c = r.modifiers, l.sort().join(",") === c.sort().join(",")))) { var p = !n && r.combo == i, m = n && r.seq == n && r.level == s; (p || m) && g._callbacks[e].splice(o, 1), u.push(r) } return u } function h(e, t, a, n) { g.stopCallback(t, t.target || t.srcElement, a, n) || !1 === e(t, a) && (function (e) { e.preventDefault ? e.preventDefault() : e.returnValue = !1 }(t), function (e) { e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0 }(t)) } function t(e) { "number" != typeof e.which && (e.which = e.keyCode); var t = b(e); t && ("keyup" != e.type || c !== t ? g.handleKey(t, function (e) { var t = []; return e.shiftKey && t.push("shift"), e.altKey && t.push("alt"), e.ctrlKey && t.push("ctrl"), e.metaKey && t.push("meta"), t }(e), e) : c = !1) } function r(t, e, a, n) { function i(e) { return function () { d = e, ++f[t], clearTimeout(l), l = setTimeout(p, 1e3) } } function s(e) { h(a, e, t), "keyup" !== n && (c = b(e)), setTimeout(p, 10) } for (var o = f[t] = 0; o < e.length; ++o) { var r = o + 1 === e.length ? s : i(n || $(e[o + 1]).action); v(e[o], r, n, t, o) } } function v(e, t, a, n, i) { g._directMap[e + ":" + a] = t; var s, o = (e = e.replace(/\s+/g, " ")).split(" "); 1 < o.length ? r(e, o, t, a) : (s = $(e, a), g._callbacks[s.key] = g._callbacks[s.key] || [], m(s.key, s.modifiers, {type: s.action}, n, e, i), g._callbacks[s.key][n ? "unshift" : "push"]({ callback: t, modifiers: s.modifiers, action: s.action, seq: n, level: i, combo: e })) } g._handleKey = function (e, t, a) { var n, i = m(e, t, a), s = {}, o = 0, r = !1; for (n = 0; n < i.length; ++n) i[n].seq && (o = Math.max(o, i[n].level)); for (n = 0; n < i.length; ++n) if (i[n].seq) { if (i[n].level != o) continue; r = !0, s[i[n].seq] = 1, h(i[n].callback, a, i[n].combo, i[n].seq) } else r || h(i[n].callback, a, i[n].combo); var l = "keypress" == a.type && u; a.type != d || w(e) || l || p(s), u = r && "keydown" == a.type }, g._bindMultiple = function (e, t, a) { for (var n = 0; n < e.length; ++n) v(e[n], t, a) }, y(e, "keypress", t), y(e, "keydown", t), y(e, "keyup", t) } k.prototype.bind = function (e, t, a) { return e = e instanceof Array ? e : [e], this._bindMultiple.call(this, e, t, a), this }, k.prototype.unbind = function (e, t) { return this.bind.call(this, e, function () { }, t) }, k.prototype.trigger = function (e, t) { return this._directMap[e + ":" + t] && this._directMap[e + ":" + t]({}, e), this }, k.prototype.reset = function () { return this._callbacks = {}, this._directMap = {}, this }, k.prototype.stopCallback = function (e, t) { return !(-1 < (" " + t.className + " ").indexOf(" mousetrap ")) && (!function e(t, a) { return t !== n && (t === a || e(t.parentNode, a)) }(t, this.target) && ("INPUT" == t.tagName || "SELECT" == t.tagName || "TEXTAREA" == t.tagName || t.isContentEditable)) }, k.prototype.handleKey = function () { return this._handleKey.apply(this, arguments) }, k.init = function () { var t = k(n); for (var e in t) "_" !== e.charAt(0) && (k[e] = function (e) { return function () { return t[e].apply(t, arguments) } }(e)) }, k.init(), e.Mousetrap = k, "undefined" != typeof module && module.exports && (module.exports = k), "function" == typeof define && define.amd && define(function () { return k }) }(window, document), function (r, f) { "use strict"; var s = f.$$minErr("$sanitize"); var o, t = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, a = /([^\#-~ |!])/g, n = b("area,br,col,hr,img,wbr"), e = b("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), i = b("rp,rt"), l = f.extend({}, i, e), c = f.extend({}, e, b("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")), u = f.extend({}, i, b("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")), d = b("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"), p = b("script,style"), m = f.extend({}, n, c, u, l), g = b("background,cite,href,longdesc,src,xlink:href"), h = b("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"), v = b("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan", !0), y = f.extend({}, g, v, h); function b(e, t) { var a, n = {}, i = e.split(","); for (a = 0; a < i.length; a++) n[t ? f.lowercase(i[a]) : i[a]] = !0; return n } function w(e) { for (var t = {}, a = 0, n = e.length; a < n; a++) { var i = e[a]; t[i.name] = i.value } return t } function $(e) { return e.replace(/&/g, "&").replace(t, function (e) { return "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" }).replace(a, function (e) { return "&#" + e.charCodeAt(0) + ";" }).replace(//g, ">") } function k(e, s) { var t = !1, o = f.bind(e, e.push); return { start: function (i, e) { i = f.lowercase(i), !t && p[i] && (t = i), t || !0 !== m[i] || (o("<"), o(i), f.forEach(e, function (e, t) { var a = f.lowercase(t), n = "img" === i && "src" === a || "background" === a; !0 !== y[a] || !0 === g[a] && !s(e, n) || (o(" "), o(t), o('="'), o($(e)), o('"')) }), o(">")) }, end: function (e) { e = f.lowercase(e), t || !0 !== m[e] || !0 === n[e] || (o("")), e == t && (t = !1) }, chars: function (e) { t || o($(e)) } } } function x(e) { if (e.nodeType === r.Node.ELEMENT_NODE) for (var t = e.attributes, a = 0, n = t.length; a < n; a++) { var i = t[a], s = i.name.toLowerCase(); "xmlns:ns1" !== s && 0 !== s.lastIndexOf("ns1:", 0) || (e.removeAttributeNode(i), a--, n--) } var o = e.firstChild; o && x(o), (o = e.nextSibling) && x(o) } !function (e) { var t; if (!e.document || !e.document.implementation) throw s("noinert", "Can't create an inert html document"); var a = ((t = e.document.implementation.createHTMLDocument("inert")).documentElement || t.getDocumentElement()).getElementsByTagName("body"); if (1 === a.length) o = a[0]; else { var n = t.createElement("html"); o = t.createElement("body"), n.appendChild(o), t.appendChild(n) } }(r), f.module("ngSanitize", []).provider("$sanitize", function () { var t = !1; this.$get = ["$$sanitizeUri", function (a) { return t && f.extend(m, d), function (e) { var t = []; return function (e, t) { null == e ? e = "" : "string" != typeof e && (e = "" + e); o.innerHTML = e; var a = 5; do { if (0 === a) throw s("uinput", "Failed to sanitize html because the input is unstable"); a--, r.document.documentMode && x(o), e = o.innerHTML, o.innerHTML = e } while (e !== o.innerHTML); var n = o.firstChild; for (; n;) { switch (n.nodeType) { case 1: t.start(n.nodeName.toLowerCase(), w(n.attributes)); break; case 3: t.chars(n.textContent) } var i; if (!((i = n.firstChild) || (1 == n.nodeType && t.end(n.nodeName.toLowerCase()), i = n.nextSibling))) for (; null == i && (n = n.parentNode) !== o;) i = n.nextSibling, 1 == n.nodeType && t.end(n.nodeName.toLowerCase()); n = i } for (; n = o.firstChild;) o.removeChild(n) }(e, k(t, function (e, t) { return !/^unsafe:/.test(a(e, t)) })), t.join("") } }], this.enableSvg = function (e) { return f.isDefined(e) ? (t = e, this) : t } }), f.module("ngSanitize").filter("linky", ["$sanitize", function (u) { var d = /((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i, p = /^mailto:/i, m = f.$$minErr("linky"), g = f.isString; return function (e, n, i) { if (null == e || "" === e) return e; if (!g(e)) throw m("notstring", "Expected string but received: {0}", e); for (var t, a, s, o = e, r = []; t = o.match(d);) a = t[0], t[2] || t[4] || (a = (t[3] ? "http://" : "mailto:") + a), s = t.index, l(o.substr(0, s)), c(a, t[0].replace(p, "")), o = o.substring(s + t[0].length); return l(o), u(r.join("")); function l(e) { e && r.push(function (e) { var t = []; return k(t, f.noop).chars(e), t.join("") }(e)) } function c(e, t) { var a; if (r.push("'), l(t), r.push("") } } }]) }(window, window.angular), mod = angular.module("infinite-scroll", []), mod.directive("infiniteScroll", ["$rootScope", "$window", "$timeout", function (l, c, e) { return { link: function (a, n, i) { var s, t, o, r; return c = angular.element(c), o = 0, null != i.infiniteScrollDistance && a.$watch(i.infiniteScrollDistance, function (e) { return o = parseInt(e, 10) }), s = !(r = !0), null != i.infiniteScrollDisabled && a.$watch(i.infiniteScrollDisabled, function (e) { if ((r = !e) && s) return s = !1, t() }), t = function () { var e, t; return t = c.height() + c.scrollTop(), (e = n.offset().top + n.height() - t <= c.height() * o) && r ? l.$$phase ? a.$eval(i.infiniteScroll) : a.$apply(i.infiniteScroll) : e ? s = !0 : void 0 }, c.on("scroll", t), a.$on("$destroy", function () { return c.off("scroll", t) }), e(function () { return i.infiniteScrollImmediateCheck ? a.$eval(i.infiniteScrollImmediateCheck) ? t() : void 0 : t() }, 0) } } }]), function (e, k) { "use strict"; var t = k.module("ngTouch", []); function a(t, a) { var n = !1, i = !1; this.ngClickOverrideEnabled = function (e) { return k.isDefined(e) ? (e && !i && (i = !0, s.$$moduleName = "ngTouch", a.directive("ngClick", s), t.decorator("ngClickDirective", ["$delegate", function (e) { if (n) e.shift(); else for (var t = e.length - 1; 0 <= t;) { if ("ngTouch" === e[t].$$moduleName) { e.splice(t, 1); break } t-- } return e }])), n = e, this) : n }, this.$get = function () { return { ngClickOverrideEnabled: function () { return n } } } } t.provider("$touch", a), a.$inject = ["$provide", "$compileProvider"], t.factory("$swipe", [function () { var i = { mouse: {start: "mousedown", move: "mousemove", end: "mouseup"}, touch: {start: "touchstart", move: "touchmove", end: "touchend", cancel: "touchcancel"} }; function c(e) { var t = e.originalEvent || e, a = t.touches && t.touches.length ? t.touches : [t], n = t.changedTouches && t.changedTouches[0] || a[0]; return {x: n.clientX, y: n.clientY} } function u(e, a) { var n = []; return k.forEach(e, function (e) { var t = i[e][a]; t && n.push(t) }), n.join(" ") } return { bind: function (e, a, t) { var n, i, s, o, r = !1; t = t || ["mouse", "touch"], e.on(u(t, "start"), function (e) { s = c(e), r = !0, i = n = 0, o = s, a.start && a.start(s, e) }); var l = u(t, "cancel"); l && e.on(l, function (e) { r = !1, a.cancel && a.cancel(e) }), e.on(u(t, "move"), function (e) { if (r && s) { var t = c(e); if (n += Math.abs(t.x - o.x), i += Math.abs(t.y - o.y), o = t, !(n < 10 && i < 10)) return n < i ? (r = !1, void (a.cancel && a.cancel(e))) : (e.preventDefault(), void (a.move && a.move(t, e))) } }), e.on(u(t, "end"), function (e) { r && (r = !1, a.end && a.end(c(e), e)) }) } } }]); var s = ["$parse", "$timeout", "$rootElement", function (e, i, f) { var h, v, s, o = 2500, l = 25, y = "ng-click-active"; function b(e, t, a) { for (var n = 0; n < e.length; n += 2) if (i = e[n], s = e[n + 1], o = t, r = a, Math.abs(i - o) < l && Math.abs(s - r) < l) return e.splice(n, n + 2), !0; var i, s, o, r; return !1 } function w(e) { if (!(Date.now() - h > o)) { var t = e.touches && e.touches.length ? e.touches : [e], a = t[0].clientX, n = t[0].clientY; a < 1 && n < 1 || s && s[0] === a && s[1] === n || (s && (s = null), "label" === function (e) { return k.lowercase(e.nodeName || e[0] && e[0].nodeName) }(e.target) && (s = [a, n]), b(v, a, n) || (e.stopPropagation(), e.preventDefault(), e.target && e.target.blur && e.target.blur())) } } function $(e) { var t = e.touches && e.touches.length ? e.touches : [e], a = t[0].clientX, n = t[0].clientY; v.push(a, n), i(function () { for (var e = 0; e < v.length; e += 2) if (v[e] == a && v[e + 1] == n) return void v.splice(e, e + 2) }, o, !1) } return function (a, r, l) { var c, u, d, p, n = e(l.ngClick), m = !1; function g() { m = !1, r.removeClass(y) } r.on("touchstart", function (e) { m = !0, 3 == (c = e.target ? e.target : e.srcElement).nodeType && (c = c.parentNode), r.addClass(y), u = Date.now(); var t = e.originalEvent || e, a = (t.touches && t.touches.length ? t.touches : [t])[0]; d = a.clientX, p = a.clientY }), r.on("touchcancel", function (e) { g() }), r.on("touchend", function (e) { var t = Date.now() - u, a = e.originalEvent || e, n = (a.changedTouches && a.changedTouches.length ? a.changedTouches : a.touches && a.touches.length ? a.touches : [a])[0], i = n.clientX, s = n.clientY, o = Math.sqrt(Math.pow(i - d, 2) + Math.pow(s - p, 2)); m && t < 750 && o < 12 && (function (e, t) { v || (f[0].addEventListener("click", w, !0), f[0].addEventListener("touchstart", $, !0), v = []), h = Date.now(), b(v, e, t) }(i, s), c && c.blur(), k.isDefined(l.disabled) && !1 !== l.disabled || r.triggerHandler("click", [e])), g() }), r.onclick = function (e) { }, r.on("click", function (e, t) { a.$apply(function () { n(a, {$event: t || e}) }) }), r.on("mousedown", function (e) { r.addClass(y) }), r.on("mousemove mouseup", function (e) { r.removeClass(y) }) } }]; function n(c, u, d) { t.directive(c, ["$parse", "$swipe", function (r, l) { return function (a, n, e) { var i, s, o = r(e[c]); var t = ["touch"]; k.isDefined(e.ngSwipeDisableMouse) || t.push("mouse"), l.bind(n, { start: function (e, t) { i = e, s = !0 }, cancel: function (e) { s = !1 }, end: function (e, t) { !function (e) { if (!i) return !1; var t = Math.abs(e.y - i.y), a = (e.x - i.x) * u; return s && t < 75 && 0 < a && 30 < a && t / a < .3 }(e) || a.$apply(function () { n.triggerHandler(d), o(a, {$event: t}) }) } }, t) } }]) } n("ngSwipeLeft", -1, "swipeleft"), n("ngSwipeRight", 1, "swiperight") }(window, window.angular), angular.module("we7app", ["ngAnimate", "ngSanitize", "ui.bootstrap", "angular-clipboard"]), angular.module("we7app").run(["$rootScope", "we7TypeDefault", function (e, t) { e.URL = "test", e.we7TypeDefault = t }]), angular.module("we7app").factory("interceptors", [function () { return { request: function (e) { return e.beforeSend && e.beforeSend(), e }, response: function (e) { return e.config.complete && e.config.complete(e), e } } }]), angular.module("we7app").config(["$httpProvider", function (e) { e.interceptors.push("interceptors"), e.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=utf-8", e.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"; var l = function (e) { var t, a, n, i, s, o, r = ""; for (t in e) if ((a = e[t]) instanceof Array) for (o = 0; o < a.length; ++o) i = a[o], (s = {})[t + "[" + o + "]"] = i, r += l(s) + "&"; else if (a instanceof Object) for (n in a) i = a[n], (s = {})[t + "[" + n + "]"] = i, r += l(s) + "&"; else null != a && (r += encodeURIComponent(t) + "=" + encodeURIComponent(a) + "&"); return r.length ? r.substr(0, r.length - 1) : r }; e.defaults.transformRequest = [function (e) { return angular.isObject(e) && "[object File]" !== String(e) ? l(e) : e }] }]), window.we7ImgError = function (e) { if (!$(e).attr("onerror")) { console.log(1); var t = "resource/images/nopic-107.png"; $(e).width() == $(e).height() ? t = "resource/images/nopic-107.png" : $(e).width() < $(e).height() && (t = "resource/images/nopic-203.png"), $(e).hasClass("user-avatar") && (t = "resource/images/nopic-user.png"), $(e).hasClass("module-img") && (t = "resource/images/nopic-module.png"), $(e).hasClass("template-img") && (t = "resource/images/nopic-template.png"), $(e).hasClass("account-img") && (t = "resource/images/nopic-account.png"), $(e).attr("src", t) } }, window.addEventListener("error", function (e) { var t = e.target, a = t.tagName, n = Number(t.dataset.times) || 0; "IMG" === a.toUpperCase() && 0 == n && (we7ImgError(e.target), t.dataset.times = n + 1) }, !0), $(function () { if (util.cookie_message(), window.sysinfo.uid && util.cookie.set("__lastvisit_" + window.sysinfo.uid, [window.sysinfo.uniacid, window.sysinfo.siteurl], 604800), $(".js-clip").each(function () { util.clip(this, $(this).attr("data-url")) }), $.fn.tooltip && ($('[data-toggle="tooltip"]').tooltip(), $('[data-toggle="dropdown"]').dropdown(), $('[data-toggle="popover"]').popover()), $(function () { $(".we7-group-show").each(function () { 70 < $(this).find(".group-app-list").outerHeight() ? ($(this).addClass("closed"), $(this).find(".action").on("click", function () { console.log($(this).parent().toggleClass("closed")) })) : $(this).addClass("low") }) }), window.sysinfo.module && window.sysinfo.module.name && (null === util.cookie.get("module_status:" + window.sysinfo.module.name) && null === util.cookie.get("module_status:" + window.sysinfo.module.name) || (module_status = util.cookie.get("module_status:" + window.sysinfo.module.name), module_status = $.parseJSON(module_status), 1 == module_status.ban ? $(".head").after('') : 1 == module_status.upgrade.upgrade && 1 == window.sysinfo.isfounder && $(".head").after('"))), window.sysinfo.isfounder) { } }), window.UEDITOR_HOME_URL = "./resource/components/ueditor/", $(function () { if (1 == $("[data-skin='black']").length && resizeView(), 3 == $(".menu-fixed, .left-menu, .right-content").length) { require(["slimscroll"], function () { $(".plugin-menu-sub").slimscroll({width: "210px", height: "100%", opacity: .4, color: "#aaa"}) }); var n = document.documentElement.clientHeight, i = $(".left-menu"), s = i.offset().top, o = i.css("position"), e = 0 < $(".footer").length ? $(".footer").css("height") : 0; "default" == $(".skin-default").attr("data-skin") && $(".left-menu, .skin-default .right-content").css("min-height", n - 174 - parseInt(e) + "px"), "black" == $(".skin-black").attr("data-skin") && $(".left-menu, .skin-default .right-content").css("min-height", n - 51 + "px"), $(window).scroll(function () { var e = 0 < $(".footer").length && !$(".footer").is(":hidden") ? $(".footer").offset().top : 0, t = $(document).scrollTop(), a = e ? e - t : n; "default" == $(".skin-default").attr("data-skin") ? (s < t ? i.css({ position: "fixed", height: "auto", top: 0, bottom: a < n ? n - a + 31 + "px" : "0" }) : i.css({ position: o, height: n }), s < t ? $(".right-content").css({marginLeft: i.css("width")}) : $(".right-content").css({ marginLeft: 0, minHeight: i.height() })) : "black" == $(".skin-black").attr("data-skin") && (s < t ? i.css({ position: "fixed", top: 0, bottom: 0 }) : i.css({ position: o, top: t }), s < t ? $(".right-content").css({marginLeft: i.css("width")}) : $(".right-content").css({ marginLeft: 0, minHeight: i.height() })) }) } if (1 == $("[data-skin='classical']").length) { n = document.documentElement.clientHeight, e = 0 < $(".footer").length ? $(".footer").css("height") : 0; 2 == $(".left-menu, .right-content").length && $(".right-content>.content").css("min-height", n - parseInt(e) - 71), 0 < $(".panel-cut").length && $(".panel-cut").css("min-height", n - parseInt(e) - 71) } 1 == $("[data-skin='2']").length && require(["slimscroll"], function () { if ($(".skin-2__left .main-nav").slimScroll({ height: "calc(100vh - 90px)", opacity: .4, color: "#989898" }), $(".js-menu").length) { var e = $(".sub-top").outerHeight(), t = $(".js-menu").attr("id"), a = util.cookie.get("jsMenuScroll"); a && -1 !== a.indexOf(t + ":") ? a = a.split(":")[1] : (a = "", util.cookie.set("jsMenuScroll", "")), $(".js-menu").slimScroll({ width: "110px", height: $(".skin-2__sub")[0].clientHeight - e + "px", opacity: .4, color: "#989898", scrollTo: "100px" }).bind("scroll", function (e, t) { util.cookie.set("jsMenuScroll", e.currentTarget.id + ":" + $(e.currentTarget).scrollTop()) }), a && $(".js-menu").slimScroll({scrollTo: a + "px"}), setTimeout(function () { $(".js-menu").trigger("mouseenter") }, 100), $(".slimScrollBar").css("display", "none") } $(".js-lock-menu").on("click", function () { $(".skin-2__left").toggleClass("skin-2__left--small"), $(".js-lock-menu").toggleClass("lock"), util.cookie.set("jsMenuLock", 1 == util.cookie.get("jsMenuLock") ? 0 : 1) }), $(".action-cut").each(function () { $(this).hover(function () { $(this).hasClass("open") && $(this).find('[data-toggle="dropdown"]').dropdown("toggle") }), $(this).offset().left < 350 ? $(this).find(".dropdown-menu").addClass("dropdown-menu-left") : $(this).offset().left + 350 > $(document).width() && $(this).find(".dropdown-menu").addClass("dropdown-menu-right") }) }) }), angular.module("we7app").directive("we7Colorpicker", [function () { return { restrict: "AE", templateUrl: "directive-colorpicker-colorpicker.html", scope: {colorValue: "=we7MyColor", colorDefault: "=we7MyDefaultColor", colorFormName: "=we7FormName"}, link: function (t, a, e) { $(a).data("data-colorpicker-init") || (util.colorpicker(a, function (e) { $(a).parent().parent().find(":text").val(e.toHexString()), t.colorValue = e.toHexString(), t.$apply("colorValue"), t.$watch("colorValue", function (e) { $(a).spectrum("get") != e && ($(a).spectrum("set", e || t.colorDefault), $(a).parent().parent().find(":text").val(e || t.colorDefault), $(a).parent().parent().find(".input-group-addon").css("background-color", e || t.colorDefault)) }) }), $(a).find(".colorclean").click(function () { return $(a).find(":text").val("rgba(0,0,0,0)"), $(a).find(".input-group-addon").css("background-color", "rgba(0,0,0,0)"), t.colorValue = t.colorDefault = "rgba(0,0,0,0)", $(a).spectrum("set", t.colorDefault), t.$apply("colorValue"), !1 }), $(a).data("data-colorpicker-init", !0)) } } }]), angular.module("we7app").directive("we7DatePicker", ["$http", "$parse", function () { return { transclude: !0, template: "", scope: {dateValue: "=we7DateValue", type: "@dateType"}, link: function (n, t, e) { require(["datetimepicker"], function () { var a = "time" === n.type ? "H:i:s" : "date" === n.type ? "Y-m-d" : "Y-m-d H:i:s", e = { lang: "zh", step: "1", format: a, closeOnDateSelect: !0, datepicker: "time" != n.type, timepicker: "date" != n.type, onSelectDate: function (e, t) { n.dateValue = e.dateFormat(a), n.$apply("dateValue") }, onSelectTime: function (e, t) { n.dateValue = e.dateFormat(a), n.$apply("dateValue") } }; $(t).datetimepicker(e) }) } } }]), angular.module("we7app").directive("we7DateRangePicker", ["$compile", "$parse", "$filter", function (e, r, l) { return { restrict: "A", require: "?ngModel", link: function (i, s, e, o) { require(["daterangepicker"], function () { var t = {}; function a(e) { return moment.isMoment(e) ? e : moment(e) } function n(e) { return l("date")(function (e) { return moment.isMoment(e) ? e.toDate() : e }(e), t.format.replace(/Y/g, "y").replace(/D/g, "d")) } t.format = e.format || "YYYY-MM-DD", t.separator = e.separator || " - ", t.minDate = e.minDate && moment(e.minDate), t.maxDate = e.maxDate && moment(e.maxDate), t.dateLimit = e.limit && moment.duration.apply(this, e.limit.split(" ").map(function (e, t) { return 0 === t && parseInt(e, 10) || e })), t.ranges = e.ranges && r(e.ranges)(i), t.locale = e.locale && r(e.locale)(i), t.opens = e.opens || r(e.opens)(i), e.enabletimepicker && (t.timePicker = !0, angular.extend(t, r(e.enabletimepicker)(i))), o.$render = function () { o.$viewValue && o.$viewValue.startDate && s.val(function (e) { return [n(e.startDate), n(e.endDate)].join(t.separator) }(o.$viewValue)) }, i.$watch(function () { return e.ngModel }, function (e, t) { i[e] && i[e].startDate ? t === e && (s.data("daterangepicker").startDate = a(i[e].startDate), s.data("daterangepicker").endDate = a(i[e].endDate), s.data("daterangepicker").updateView(), s.data("daterangepicker").updateCalendars(), s.data("daterangepicker").updateInputText()) : o.$setViewValue({ startDate: moment().startOf("day"), endDate: moment().startOf("day") }) }), s.daterangepicker(t, function (e, t, a) { var n = o.$viewValue; angular.equals(e, n.startDate) && angular.equals(t, n.endDate) || i.$apply(function () { o.$setViewValue({ startDate: moment.isMoment(n.startDate) ? e : e.toDate(), endDate: moment.isMoment(n.endDate) ? t : t.toDate() }), o.$render() }) }) }) } } }]), angular.module("we7app").directive("we7Editor", function () { return { scope: {value: "=?we7MyValue", params: "=?we7MyParams", options: "@options", global: "@global"}, template: '', link: function (a, n, e) { if (!n.data("editor")) { n.find("textarea").attr("id", "editor" + (new Date).getTime()); var t = { callback: function (e, t) { n.data("editor", "true"), t.addListener("contentChange", function () { a.value = t.getContent(), a.value && (a.params = a.value.replace(/\"/g, "#quot;")), a.$root.$$phase || a.$apply("value") }), t.addListener("ready", function () { !a.value && a.params && (a.value = a.params.replace(/\#quot;/g, """)), a.value && t && t.getContent() != a.value && t.setContent(a.value), a.$watch("value", function (e) { t && t.getContent() != e && t.setContent(e || "") }) }) } }; a.options && "object" == typeof a.options && Object.assign(t, a.options), a.global && (t.global = !0, t.uniacid = 0), util.editor(n.find("textarea").attr("id"), t) } } } }), angular.module("we7app").directive("we7FileUp", ["$http", "$parse", function () { return { scope: { type: "@type", multiple: "@multiple", value: "=we7File", onConfirm: "=?onConfirm", options: "@options", global: "@global" }, link: function (t, a, n) { var i = { type: t.type || "image", direct: !1, multiple: t.multiple || !1, dest_dir: "", global: !1, thumb: !1, width: 0, needType: 2 }; t.options && "object" == typeof t.options && (i = $.extend({}, i, t.options)), t.global && (i.global = !0, i.uniacid = 0), a.on("click", function (e) { require(["fileUploader"], function (e) { e.show(function (e) { e && (t.value = e, t.onConfirm && "function" == typeof t.onConfirm && t.onConfirm(e, a, n), t.$root.$$phase || t.$apply("value")) }, i) }) }) } } }]), angular.module("we7app").directive("we7Iconer", ["$templateCache", function (e) { e.get("directive-iconer-nav-pills-inline.html"), e.get("directive-iconer-tab-content-inline.html"); return { scope: {image: "=we7MyImage", icon: "=we7MyIcon", iconcolor: "=we7MyIconColor"}, transclude: !0, templateUrl: "directive-iconer-iconer.html", link: function (t, e, a) { t.selectIcon = function () { require(["fileUploader"], function (e) { e.show(function (e) { t.icon = {}, t.icon.name = e.name, t.icon.color = e.color, t.$apply("image"), t.$apply("icon") }, {direct: !0, multiple: !1, type: "icon", otherVal: t.iconcolor}) }) }, t.removeIcon = function () { t.image = "", t.icon = {} } } } }]), angular.module("we7app").directive("we7InitialSearchbar", function () { return { templateUrl: "directive-initialsearchbar-searchbar.html", scope: {doSearch: "&we7SearchCallback"}, link: function (t, e, a) { t.alphabet = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"], t.searchResult = function (e) { t.activeLetter = e, t.doSearch({letter: e}) } } } }), angular.module("we7app").directive("we7Linker", ["$http", "$templateCache", function (n, e) { var s = e.get("directive-linker-cms-header-inline.html"), l = e.get("directive-linker-cms-content-inline.html"), c = e.get("directive-linker-cms-article-item-inline.html"), u = e.get("directive-linker-cms-cate-item-inline.html"), a = e.get("directive-linker-news-content-inline.html"), d = e.get("directive-linker-news-item-inline.html"), p = e.get("directive-linker-page-content-inline.html"), m = e.get("directive-linker-page-item-inline.html"), o = e.get("directive-linker-map-content-inline.html"), g = e.get("directive-linker-tel-content-inline.html"); return { templateUrl: "directive-linker-linker.html", scope: {url: "=we7MyUrl", title: "=we7MyTitle"}, link: function (r, t, e) { t.find(".input-group-btn").mouseover(function (e) { clearTimeout(r.timer), t.find(".dropdown-menu").show() }).mouseout(function () { r.timer = setTimeout(function () { t.find(".dropdown-menu").hide() }, 500) }), t.find(".dropdown-menu").mouseover(function () { clearTimeout(r.timer), t.find(".dropdown-menu").show() }).mouseout(function () { r.timer = setTimeout(function () { t.find(".dropdown-menu").hide() }, 500) }), r.addLink = function (e, t) { r.url = e, t && (r.title = t) }, r.searchSystemLinker = function () { r.modalobj = util.dialog("请选择链接", ["./index.php?c=utility&a=link&callback=selectLinkComplete"], "", {containerName: "link-search-system"}), r.modalobj.modal({keyboard: !1}), r.modalobj.find(".modal-body").css({ height: "680px", "overflow-y": "auto" }), r.modalobj.modal("show"), window.selectLinkComplete = function (e, t) { r.addLink(e, t), r.$apply("url", "title"), r.modalobj.modal("hide") } }, r.searchCmsLinker = function (e) { var o = {}; o.header = s, o.content = l, o.footer = "", o.articleitem = c, o.cateitem = u, $("#link-search-cms")[0] ? r.modalobj = $("#link-search-cms").data("modal") : (r.modalobj = util.dialog(o.header, o.content, o.footer, {containerName: "link-search-cms"}), r.modalobj.find(".modal-body").css({ height: "680px", "overflow-y": "auto" }), r.modalobj.modal("show"), r.modalobj.on("hidden.bs.modal", function () { r.modalobj.remove() }), $("#link-search-cms").data("modal", r.modalobj)), e = e || 1; var t = $("#articlelist .article-list-input").val(); n.get("./index.php?c=utility&a=link&do=articlelist&page=" + e + "&keyword=" + t).success(function (e, t, a, n) { var s = {items: []}; if (e.message = e.message.message, e.message.list) { for (i in e.message.list) s.items.push({ title: e.message.list[i].title, id: e.message.list[i].id, uniacid: e.message.list[i].uniacid, attachment: e.message.list[i].thumb_url, createtime: e.message.list[i].createtime }); r.modalobj.find("#articlelist tbody").html(_.template(o.articleitem)(s)), r.modalobj.find("#pager").html(e.message.pager), r.modalobj.find("#pager .pagination li[class!='active'] a").click(function () { return r.searchCmsLinker($(this).attr("page")), !1 }), r.modalobj.find("#articlelist .input-group-btn").click(function () { return r.searchCmsLinker(), !1 }), r.modalobj.find(".js-btn-select").click(function () { r.addLink($(this).attr("js-url"), $(this).attr("js-title")), r.$apply("url", "title"), r.modalobj.modal("hide") }) } }); var a = $("#category .category-list-input").val(); n.get("./index.php?c=utility&a=link&do=catelist&page=" + e + "&keyword=" + a).success(function (e, t, a, n) { var s = {items: []}; if (e.message = e.message.message, e.message) { for (i in e.message) s.items.push({ id: e.message[i].id, uniacid: e.message[i].uniacid, name: e.message[i].name, children: e.message[i].children }); r.modalobj.find("#category tbody").html(_.template(o.cateitem)(s)), r.modalobj.find("#category .input-group-btn").click(function () { return r.searchCmsLinker(), !1 }), r.modalobj.find(".js-btn-select").click(function () { r.addLink($(this).attr("js-url"), $(this).attr("js-title")), r.$apply("url", "title"), r.modalobj.modal("hide") }) } }) }, r.searchNewsLinker = function (e) { var o = {}; o.content = a, o.footer = "", o.newsitem = d, $("#link-search-news")[0] ? r.modalobj = $("#link-search-news").data("modal") : (r.modalobj = util.dialog(o.header, o.content, o.footer, {containerName: "link-search-news"}), r.modalobj.find(".modal-body").css({ height: "680px", "overflow-y": "auto" }), r.modalobj.modal("show"), r.modalobj.on("hidden.bs.modal", function () { r.modalobj.remove() }), $("#link-search-news").data("modal", r.modalobj)), e = e || 1; var t = $("#newslist .news-list-input").val(); n.get("./index.php?c=utility&a=link&do=newslist&page=" + e + "&keyword=" + t).success(function (e, t, a, n) { var s = {items: []}; if (e.message = e.message.message, e.message.list) { for (i in e.message.list) s.items.push({ title: e.message.list[i].title, id: e.message.list[i].id, uniacid: window.sysinfo.uniacid, attachment: e.message.list[i].thumb_url, createtime: e.message.list[i].createtime, url: e.message.list[i].url }); r.modalobj.find("#newslist tbody").html(_.template(o.newsitem)(s)), r.modalobj.find("#pager").html(e.message.pager), r.modalobj.find("#pager .pagination li[class!='active'] a").click(function () { return r.searchNewsLinker($(this).attr("page")), !1 }), r.modalobj.find("#newslist .input-group-btn").click(function () { return r.searchNewsLinker(), !1 }), r.modalobj.find(".js-btn-select").click(function () { r.addLink($(this).attr("js-url"), $(this).attr("js-title")), r.$apply("url", "title"), r.modalobj.modal("hide") }) } }) }, r.searchPageLinker = function (e) { var o = {}; o.content = p, o.footer = "", o.pageItem = m, $("#link-search-page")[0] ? r.modalobj = $("#link-search-page").data("modal") : (r.modalobj = util.dialog(o.header, o.content, o.footer, {containerName: "link-search-page"}), r.modalobj.find(".modal-body").css({ height: "680px", "overflow-y": "auto" }), r.modalobj.modal("show"), r.modalobj.on("hidden.bs.modal", function () { r.modalobj.remove() }), $("#link-search-page").data("modal", r.modalobj)), e = e || 1; var t = $("#pageList .page-list-input").val(); n.get("./index.php?c=utility&a=link&do=pagelist&&page=" + e + "&keyword=" + t).success(function (e, t, a, n) { var s = {items: []}; if (e.message = e.message.message, e.message.list) { for (i in e.message.list) s.items.push({ title: e.message.list[i].title, id: e.message.list[i].id, uniacid: window.sysinfo.uniacid, createtime: e.message.list[i].createtime }); r.modalobj.find("#pageList tbody").html(_.template(o.pageItem)(s)), r.modalobj.find("#pager").html(e.message.pager), r.modalobj.find("#pager .pagination li[class!='active'] a").click(function () { return r.searchPageLinker($(this).attr("page")), !1 }), r.modalobj.find("#pageList .input-group-btn").click(function () { return r.searchPageLinker(), !1 }), r.modalobj.find(".js-btn-select").click(function () { r.addLink($(this).attr("js-url"), $(this).attr("js-title")), r.$apply("url", "title"), r.modalobj.modal("hide") }) } }) }, r.searchMapPosLinker = function () { var e = {}; e.content = o, r.modalobj = util.dialog(e.content), r.modalobj.modal("show"), r.modalobj.find("#getnav").click(function () { r.addLink("https://api.map.baidu.com/marker?location=" + $("#navlat").val() + "," + $("#navlng").val() + "&title=" + $("#navtitle").val() + "&name=" + $("#navtitle").val() + "&output=html&src=we7", $("#navtitle").val()), r.$apply("url", "title"), r.modalobj.modal("hide") }) }, r.addTelLinker = function () { var e = {}; e.content = g, r.modalobj = util.dialog("一键拨号", e.content), r.modalobj.modal("show"), r.modalobj.find(".btn-primary").click(function () { r.addLink("tel:" + r.modalobj.find("#telphone").val(), ""), r.$apply("url", "title"), r.modalobj.modal("hide") }) } } } }]), angular.module("we7app").directive("we7ModalAccount", ["we7TypeDefault", function (n) { return { restrict: "AE", templateUrl: "directive-modal_account-modal_account.html", scope: {account: "=account", multiple: "=multiple", title: "=title", confirm: "&onConfirm", type: "=type"}, transclude: !0, link: function (o, t, e, a) { o.type = o.type || 1, o.showType = 3 != o.type ? "account" : "number", o.we7TypeDefault = n, o.module_keyword = "", o.time = (new Date).getTime(), o.checkAllStatus = !1, o.changePage = function (e, t) { var a = -1, n = (e - 1) * t; for (index in o.groups = [], o.checkAllStatus = !0, o.activeList) if (!(++a < n)) { if (n + t <= a) break; o.activeList[a].checked || (o.checkAllStatus = !1), o.groups.push(o.activeList[index]) } }, o.loadMore = function (e) { o.pageindex = e; for (var t in o.activeList = [], o.accountList) { var a = o.accountList[t]; a.checked = a.checked || 0, a.group_name = a.group_name || "", o.module_keyword && -1 === a.group_name.indexOf(o.module_keyword) || o.activeList.push(a) } if (totalPage = Math.ceil(o.activeList.length / 3), o.totalPage = totalPage, o.changePage(e, 3), totalPage < e) return !1; if (totalPage < 2) return !(o.pageList = []); e *= 1; var n = Math.max(1, e - 4), i = Math.min(totalPage, e + 4); i - n < 9 && (i = Math.min(totalPage, n + 8), n = Math.max(1, i - 8)), o.pageList = []; for (var s = n; s <= i; s++) o.pageList.push(s) }, o.checkAll = function () { for (var e in console.log(o.checkAllStatus), o.groups) o.groups[e].checked = o.checkAllStatus ? 1 : 0, console.log(o.groups[e]) }, o.tabChange = function (e) { o.showType = e }, o.ngConfirm = function () { 3 != o.type && (o.account.create_groups = JSON.parse(JSON.stringify(o.accountList))), 2 != o.type && (o.account.create_numbers = JSON.parse(JSON.stringify(o.numberList))), setTimeout(function () { o.confirm && "function" == typeof o.confirm && o.confirm() }, 0), t.find(".modal").modal("hide") }, o.check = function (e) { for (var t in e.checked = e.checked ? 0 : 1, o.multiple || o.ngConfirm(), o.checkAllStatus = !0, o.groups) o.groups[t].checked || (o.checkAllStatus = !1) }, t.on("click", "ng-transclude", function (e) { o.type = o.type || 1, o.accountList = 3 != o.type ? JSON.parse(JSON.stringify(o.account.create_groups)) : [], o.numberList = 2 != o.type ? JSON.parse(JSON.stringify(o.account.create_numbers)) : {}, 3 != o.type && o.loadMore(o.pageindex), o.$apply(), t.find(".modal").modal("show") }) }, controller: ["$scope", function (e) { this.$onInit = function () { } }] } }]), angular.module("we7app").directive("we7ModalAccountList", ["we7TypeDefault", function (n) { return { restrict: "AE", templateUrl: "directive-modal_account_list-modal_account_list.html", scope: {accountList: "=accountList", multiple: "=multiple", title: "=title", confirm: "&onConfirm"}, transclude: !0, link: function (i, t, e, a) { i.typeList = n, i.modules = [], i.activeList = [], i.appList = [], i.checkAllStatus = !1, i.pageindex = 1, i.changePage = function (e, t) { var a = -1, n = (e - 1) * t; for (index in i.modules = [], i.checkAllStatus = !0, i.accountModalList) if (!(++a < n)) { if (n + t <= a) break; i.accountModalList[a].checked || (i.checkAllStatus = !1), i.modules.push(i.accountModalList[index]) } }, i.loadMore = function (e) { i.pageindex = e; if (totalPage = Math.ceil(i.accountModalList.length / 21), i.totalPage = totalPage, i.changePage(e, 21), totalPage < e) return !1; if (totalPage < 2) return !(i.pageList = []); e *= 1; var t = Math.max(1, e - 4), a = Math.min(totalPage, e + 4); a - t < 9 && (a = Math.min(totalPage, t + 8), t = Math.max(1, a - 8)); i.pageList = []; for (var n = t; n <= a; n++) i.pageList.push(n) }, i.itemCheck = function (e) { for (var t in e.checked = e.checked ? 0 : 1, i.checkAllStatus = !0, i.modules) i.modules[t].checked || (i.checkAllStatus = !1); i.multiple || i.ngConfirm() }, i.ngConfirm = function () { i.accountList = i.accountModalList, setTimeout(function () { i.confirm && "function" == typeof i.confirm && (console.log(i.accountList), i.confirm()) }, 0), t.find(".modal").modal("hide") }, i.checkAll = function () { for (var e in i.modules) i.modules[e].checked = i.checkAllStatus ? 1 : 0 }, t.on("click", "ng-transclude", function (e) { i.accountModalList = i.accountList, i.loadMore(i.pageindex), i.$apply(), t.find(".modal").modal("show") }) }, controller: ["$scope", function (e) { this.$onInit = function () { } }] } }]), angular.module("we7app").directive("we7ModalApp", ["we7TypeDefault", function (n) { return { restrict: "AE", templateUrl: "directive-modal_app-modal_app.html", scope: {moduleList: "=moduleList", multiple: "=multiple", title: "=title", confirm: "&onConfirm"}, transclude: !0, link: function (s, t, e, a) { s.showType = "app", s.typeList = n, s.modules = [], s.activeList = [], s.appList = [], s.checkAllStatus = {checkAllStatus: !0}, s.time = (new Date).getTime(), s.manage = function () { if (s.modalType = 0, s.moduleList) { var e = JSON.parse(JSON.stringify(s.moduleList)); (e.modules || e.templates) && (s.modalType = 1, s.appList = e.modules, s.templateList = e.templates), e.groups && (s.modalType = s.modalType ? 2 : 3, s.groupList = e.groups), 3 == s.modalType && (s.showType = "group") } }, s.copy = function (e) { var t = []; for (var a in s[e]) { var n = s[e][a]; n.title = n.title || "", n.checked = n.checked || 0, s.module_keyword && -1 === n.title.indexOf(s.module_keyword) && -1 === n.name.indexOf(s.module_keyword) || "appList" == e && s.moduleType && n.support != s.moduleType || t.push(n) } return t }, s.changePage = function (e, t) { var a = -1, n = (e - 1) * t; for (index in s.modules = [], s.checkAllStatus.checkAllStatus = !0, s.activeList) if (!(++a < n)) { if (n + t <= a) break; s.activeList[a].checked || (s.checkAllStatus.checkAllStatus = !1), s.modules.push(s.activeList[index]) } }, s.loadMore = function (e) { s.pageindex = e; var t = 14; if (s.showType = s.showType || "app", "app" == s.showType ? s.activeList = s.copy("appList") : "template" == s.showType ? (s.activeList = s.copy("templateList"), t = 6) : "group" == s.showType && (s.activeList = s.copy("groupList"), t = 3), totalPage = Math.ceil(s.activeList.length / t), s.totalPage = totalPage, s.changePage(e, t), totalPage < e) return !1; if (totalPage < 2) return !(s.pageList = []); e *= 1; var a = Math.max(1, e - 4), n = Math.min(totalPage, e + 4); n - a < 9 && (n = Math.min(totalPage, a + 8), a = Math.max(1, n - 8)); s.pageList = []; for (var i = a; i <= n; i++) s.pageList.push(i) }, s.tabChange = function (e) { s.showType = e, s.loadMore(1), setTimeout(function () { t.find("select").niceSelect && t.find("select").niceSelect() }) }, s.itemCheck = function (e) { for (var t in e.checked = e.checked ? 0 : 1, s.multiple || s.ngConfirm(), s.checkAllStatus.checkAllStatus = !0, s.modules) s.modules[t].checked || (s.checkAllStatus.checkAllStatus = !1) }, s.ngConfirm = function () { 3 != s.modalType && (s.appList && (s.moduleList.modules = JSON.parse(JSON.stringify(s.appList))), s.templateList && (s.moduleList.templates = JSON.parse(JSON.stringify(s.templateList)))), 1 != s.modalType && s.groupList && (s.moduleList.groups = JSON.parse(JSON.stringify(s.groupList))), setTimeout(function () { s.confirm && "function" == typeof s.confirm && s.confirm() }, 0), t.find(".modal").modal("hide") }, s.checkAll = function () { for (var e in s.modules) s.modules[e].checked = s.checkAllStatus.checkAllStatus ? 1 : 0 }, s.manage(), s.loadMore(1), t.on("click", "ng-transclude", function (e) { s.manage(), s.tabChange(s.showType), s.$apply(), t.find(".modal").modal("show") }) }, controller: ["$scope", function (e) { this.$onInit = function () { } }] } }]), angular.module("we7app").directive("we7ModalForm", function () { return { restrict: "AE", templateUrl: "directive-modal_form-modal_form.html", scope: { type: "=type", rows: "@rows", label: "=label", name: "=name", options: "=options", key: "=key", value: "=value", help: "=help", confirm: "&onConfirm", cancel: "&onCancel", text: "=text" }, transclude: !1, link: function (t, a, e) { if (t.formRows = t.rows || 3, t.formValue = t.value || "", t.value && t.key) for (var n in t.options) t.options[n][t.key] == t.value[t.key] && (t.formValue = t.options[n]); t.showModal = function () { a.find(".modal").modal("show"), a.find("select").niceSelect && a.find("select").niceSelect() }, t.ngConfirm = function () { a.find(".modal").modal("hide"); var e = {value: JSON.parse(JSON.stringify(t.formValue))}; e.value && e.value.$$hashKey && delete e.value.$$hashKey, t.confirm && "function" == typeof t.confirm && t.confirm({formValue: e}) } }, controller: ["$scope", function (e) { this.$onInit = function () { e.formValue = e.value || "" } }] } }), angular.module("we7app").directive("we7ModalTip", function () { return { restrict: "AE", template: '', scope: {title: "=title", type: "=type", content: "=content", confirm: "&onConfirm", cancel: "&onCancel"}, transclude: !0, link: function (e, t, a) { t.on("click", "ng-transclude", function (e) { t.find(".modal").modal("show") }), e.ngConfirm = function () { t.find(".modal").modal("hide"), e.confirm && "function" == typeof e.confirm && e.confirm() } }, controller: ["$scope", function (e) { this.$onInit = function () { } }] } }), angular.module("we7app").directive("we7ModalType", function () { return { restrict: "AE", templateUrl: "directive-modal_type-modal_type.html", scope: {typeList: "=typeList", multiple: "=multiple", title: "=title", confirm: "&onConfirm"}, transclude: !0, link: function (a, n, e, t) { a.typeText = { wxapp_support: "小程序", account_support: "公众号", welcome_support: "系统首页", webapp_support: "PC", phoneapp_support: "APP", xzapp_support: "熊掌号", aliapp_support: "支付宝小程序" }, a.typeDefault = ["wxapp_support", "account_support", "welcome_support", "webapp_support", "phoneapp_support", "xzapp_support", "aliapp_support"], a.list = a.typeList || a.typeDefault, n.on("click", "ng-transclude", function (e) { a.list = a.typeList || a.typeDefault, a.$apply("list"), n.find(".modal").modal("show") }), a.checkArray = {}, a.check = function (e) { a.checkArray[e] = !a.checkArray[e], a.multiple || a.ngConfirm() }, a.ngConfirm = function () { var e = []; for (var t in a.checkArray) a.checkArray[t] && e.push(t); a.checkArray = {}, n.find(".modal").modal("hide"), setTimeout(function () { a.confirm({type: e}) }, 100) } }, controller: ["$scope", function (e) { this.$onInit = function () { } }] } }), angular.module("we7app").directive("img", ["$timeout", function (e) { return { restrict: "E", priority: -1, link: function (e, t, a) { t.bind("error", function () { e.setSrc(t, a) }), e.setSrc = function (e, t) { var a = "resource/images/nopic-107.png"; $(e).width() == $(e).height() ? a = "resource/images/nopic-107.png" : $(e).width() < $(e).height() && (a = "resource/images/nopic-203.png"), $(e).hasClass("user-avatar") && (a = "resource/images/nopic-user.png"), $(e).hasClass("module-img") && (a = "resource/images/nopic-module.png"), $(e).hasClass("template-img") && (a = "resource/images/nopic-template.png"), $(e).hasClass("account-img") && (a = "resource/images/nopic-account.png"), t.$set("src", a) }, setTimeout(function () { a.src || a.ngSrc || e.setSrc(t, a) }, 10) } } }]), angular.module("we7app").directive("ngModel", ["$timeout", function (n) { return { restrict: "A", priority: -1, link: function (e, a, t) { e.$watch(t.ngModel, function (e, t) { e && n(function () { if ("createEvent" in document) { var e = document.createEvent("HTMLEvents"); e.initEvent("change", !1, !0), a[0].dispatchEvent(e) } else a[0].fireEvent("onchange") }, 0, !1) }) } } }]), angular.module("we7app").directive("we7ResourcePicker", function () { return { scope: { type: "@type", isWechat: "@isWechat", multiple: "@mutiple", showType: "@showType", needType: "@needType", global: "@global", dest_dir: "@dest_dir", onSelect: "&onSelect" }, link: function (a, e, t) { $(e).unbind("click").on("click", function () { a.show() }), $(window).unbind("resource_selected").on("resource_selected", function (e, t) { a.finish(t.type, t.items) }) }, controller: function (n) { n.show = function () { var e = { type: n.type, isWechat: "true" === n.isWechat, multiple: "true" === n.multiple, needType: n.needType <= 3 ? n.needType : 3, global: "true" === n.global, dest_dir: n.dest_dir }; $("#material-Modal").remove(); var t = function (e) { return "' }(n.type); $(document.body).prepend(t); var a = $("#material-Modal"); a.modal("show"), angular.module("we7resource").value("config", e), angular.bootstrap(a, ["we7resource"]) }, n.finish = function (e, t) { n.onSelect({type: e, items: t}), $("#material-Modal").modal("hide") } } } }), angular.module("we7app").directive("we7Page", [function () { return { restrict: "EA", template: '', replace: !0, scope: {conf: "="}, link: function (i, e, t) { i.goPage = "", i.changeCurrentPage = function (e) { "..." != e && (i.conf.currentPage = e, i.conf.onChange && i.conf.onChange()) }, i.conf.pagesLength = parseInt(i.conf.pagesLength) ? parseInt(i.conf.pagesLength) : 9, i.conf.pagesLength % 2 == 0 && (i.conf.pagesLength = i.conf.pagesLength - 1), i.conf.perPageOptions || (i.conf.perPageOptions = [10, 15, 20, 30, 50]), i.prevPage = function () { 1 < i.conf.currentPage && (i.conf.currentPage -= 1, i.conf.onChange && i.conf.onChange()) }, i.nextPage = function () { i.conf.currentPage < i.conf.numberOfPages && (i.conf.currentPage += 1, i.conf.onChange && i.conf.onChange()) }, i.jumpToPage = function () { i.jumpPageNum = i.jumpPageNum.replace(/[^0-9]/g, ""), "" !== i.jumpPageNum && (i.conf.currentPage = i.jumpPageNum, i.conf.onChange && i.conf.onChange()) }, i.changeItemsPerPage = function () { i.conf.rememberPerPage && localStorage.removeItem(i.conf.rememberPerPage) }, i.$watch("conf", function (e, t) { t.currentPage == e.currentPage && t.totalItems == e.totalItems && t.itemsPerPage == e.itemsPerPage || function () { i.conf.currentPage = parseInt(i.conf.currentPage) ? parseInt(i.conf.currentPage) : 1, i.conf.totalItems = parseInt(i.conf.totalItems), i.conf.rememberPerPage ? (parseInt(localStorage[i.conf.rememberPerPage]) || (localStorage[i.conf.rememberPerPage] = parseInt(i.conf.itemsPerPage) ? parseInt(i.conf.itemsPerPage) : 15), i.conf.itemsPerPage = parseInt(localStorage[i.conf.rememberPerPage])) : i.conf.itemsPerPage = parseInt(i.conf.itemsPerPage) ? parseInt(i.conf.itemsPerPage) : 15, i.conf.numberOfPages = Math.ceil(i.conf.totalItems / i.conf.itemsPerPage), i.conf.currentPage < 1 && (i.conf.currentPage = 1), i.conf.currentPage > i.conf.numberOfPages && 0 < i.conf.numberOfPages && (i.conf.currentPage = i.conf.numberOfPages), i.jumpPageNum = i.conf.currentPage; for (var e, t = i.conf.perPageOptions.length, a = 0; a < t; a++) i.conf.perPageOptions[a] == i.conf.itemsPerPage && (e = !0); if (e || i.conf.perPageOptions.push(i.conf.itemsPerPage), i.conf.perPageOptions.sort(function (e, t) { return e - t }), i.pageList = [], i.conf.numberOfPages <= i.conf.pagesLength) for (a = 1; a <= i.conf.numberOfPages; a++) i.pageList.push(a); else { var n = (i.conf.pagesLength - 1) / 2; if (i.conf.currentPage <= n) { for (a = 1; a <= 1 + n; a++) i.pageList.push(a); i.pageList.push("..."), i.pageList.push(i.conf.numberOfPages) } else if (i.conf.currentPage > i.conf.numberOfPages - n) { for (i.pageList.push(1), i.pageList.push("..."), a = 1 + n; 1 <= a; a--) i.pageList.push(i.conf.numberOfPages - a); i.pageList.push(i.conf.numberOfPages) } else { for (i.pageList.push(1), i.pageList.push("..."), a = Math.ceil(n / 2); 1 <= a; a--) i.pageList.push(i.conf.currentPage - a); for (i.pageList.push(i.conf.currentPage), a = 1; a <= n / 2; a++) i.pageList.push(i.conf.currentPage + a); i.pageList.push("..."), i.pageList.push(i.conf.numberOfPages) } } i.$parent.conf = i.conf }() }, !0) } } }]), angular.module("we7app").filter("we7IsEmpty", function () { return function (e) { for (var t in e) if (e[t]) return !1; return !0 } }).filter("mobile", function () { return function (e) { return e ? e.substr(0, 3) + "****" + e.substr(7, 11) : "还未绑定手机号" } }), angular.module("we7app").constant("we7TypeDefault", { account: {name: "公众号", icon: "wi wi-account"}, wxapp: {name: "小程序", icon: "wi wi-wxapp"}, welcome: {name: "系统首页", icon: "wi wi-system-welcome"}, webapp: {name: "PC", icon: "wi wi-pc"}, phoneapp: {name: "APP", icon: "wi wi-app"}, aliapp: {name: "支付宝小程序", icon: "wi wi-aliapp"}, toutiaoapp: {name: "字节跳动小程序", icon: "wi wi-toutiaoapp"}, baiduapp: {name: "百度小程序", icon: "wi wi-baiduapp"} }),angular.module("we7app").filter("moduleInfo", ["we7TypeDefault", function (s) { return function (e, t) { var a = s; if (!e) return !1; if ("string" == typeof e) return -1 !== e.indexOf("_support") && (e = e.replace("_support", "")), a[e][t]; if ("object" == typeof e && !e.length) { var n = []; for (var i in e) 2 == e[i] && (-1 !== i.indexOf("_support") && (i = i.replace("_support", "")), t ? n.push(a[i][t]) : n.push(a[i])); return n } } }]),angular.module("we7app").run(["$templateCache", function (e) { "use strict"; e.put("directive-colorpicker-colorpicker.html", '
    '), e.put("directive-iconer-iconer.html", ''), e.put("directive-iconer-nav-pills-inline.html", ''), e.put("directive-iconer-tab-content-inline.html", '
    '), e.put("directive-initialsearchbar-searchbar.html", ''), e.put("directive-linker-cms-article-item-inline.html", '<%_.each(items, function(item) {%><%=item.title%><%=item.createtime%><%});%>'), e.put("directive-linker-cms-cate-item-inline.html", '<%_.each(items, function(item) {%><%=item.name%>选取<%_.each(item.children, function(child) {%><%=child.name%>选取<%});%><%});%>'), e.put("directive-linker-cms-content-inline.html", '
    标题创建时间
    标题创建时间
    '), e.put("directive-linker-cms-header-inline.html", ''), e.put("directive-linker-linker.html", ''), e.put("directive-linker-map-content-inline.html", '