PageSourceSearch

https://cargo.flowers/themes/default/cache/bd1a66add22db67d931aa8ba719d2433.js

js cargo.flowers collected 2026-10-04 04:22:23 UTC 459,058 bytes, 6,470 lines download raw bytes

1/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */�
vendor: 88,063 bytes, lines 1-4
1
2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
3
4/
4/! moment.js
5
6;(function (global, factory) {
7    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8    typeof define === 'function' && define.amd ? define(factory) :
9    global.moment = factory()
vendor: 35,273 bytes, lines 9-1148
9
10}(this, (function () { 'use strict';
11
12    var hookCallback;
13
14    function hooks () {
15        return hookCallback.apply(null, arguments);
16    }
17
18    // This is done to register the method called with moment()
19    // without creating circular dependencies.
20    function setHookCallback (callback) {
21        hookCallback = callback;
22    }
23
24    function isArray(input) {
25        return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
26    }
27
28    function isObject(input) {
29        // IE8 will treat undefined and null as object if it wasn't for
30        // input != null
31        return input != null && Object.prototype.toString.call(input) === '[object Object]';
32    }
33
34    function isObjectEmpty(obj) {
35        if (Object.getOwnPropertyNames) {
36            return (Object.getOwnPropertyNames(obj).length === 0);
37        } else {
38            var k;
39            for (k in obj) {
40                if (obj.hasOwnProperty(k)) {
41                    return false;
42                }
43            }
44            return true;
45        }
46    }
47
48    function isUndefined(input) {
49        return input === void 0;
50    }
51
52    function isNumber(input) {
53        return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
54    }
55
56    function isDate(input) {
57        return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
58    }
59
60    function map(arr, fn) {
61        var res = [], i;
62        for (i = 0; i < arr.length; ++i) {
63            res.push(fn(arr[i], i));
64        }
65        return res;
66    }
67
68    function hasOwnProp(a, b) {
69        return Object.prototype.hasOwnProperty.call(a, b);
70    }
71
72    function extend(a, b) {
73        for (var i in b) {
74            if (hasOwnProp(b, i)) {
75                a[i] = b[i];
76            }
77        }
78
79        if (hasOwnProp(b, 'toString')) {
80            a.toString = b.toString;
81        }
82
83        if (hasOwnProp(b, 'valueOf')) {
84            a.valueOf = b.valueOf;
85        }
86
87        return a;
88    }
89
90    function createUTC (input, format, locale, strict) {
91        return createLocalOrUTC(input, format, locale, strict, true).utc();
92    }
93
94    function defaultParsingFlags() {
95        // We need to deep clone this object.
96        return {
97            empty           : false,
98            unusedTokens    : [],
99            unusedInput     : [],
100            overflow        : -2,
101            charsLeftOver   : 0,
102            nullInput       : false,
103            invalidMonth    : null,
104            invalidFormat   : false,
105            userInvalidated : false,
106            iso             : false,
107            parsedDateParts : [],
108            meridiem        : null,
109            rfc2822         : false,
110            weekdayMismatch : false
111        };
112    }
113
114    function getParsingFlags(m) {
115        if (m._pf == null) {
116            m._pf = defaultParsingFlags();
117        }
118        return m._pf;
119    }
120
121    var some;
122    if (Array.prototype.some) {
123        some = Array.prototype.some;
124    } else {
125        some = function (fun) {
126            var t = Object(this);
127            var len = t.length >>> 0;
128
129            for (var i = 0; i < len; i++) {
130                if (i in t && fun.call(this, t[i], i, t)) {
131                    return true;
132                }
133            }
134
135            return false;
136        };
137    }
138
139    function isValid(m) {
140        if (m._isValid == null) {
141            var flags = getParsingFlags(m);
142            var parsedParts = some.call(flags.parsedDateParts, function (i) {
143                return i != null;
144            });
145            var isNowValid = !isNaN(m._d.getTime()) &&
146                flags.overflow < 0 &&
147                !flags.empty &&
148                !flags.invalidMonth &&
149                !flags.invalidWeekday &&
150                !flags.weekdayMismatch &&
151                !flags.nullInput &&
152                !flags.invalidFormat &&
153                !flags.userInvalidated &&
154                (!flags.meridiem || (flags.meridiem && parsedParts));
155
156            if (m._strict) {
157                isNowValid = isNowValid &&
158                    flags.charsLeftOver === 0 &&
159                    flags.unusedTokens.length === 0 &&
160                    flags.bigHour === undefined;
161            }
162
163            if (Object.isFrozen == null || !Object.isFrozen(m)) {
164                m._isValid = isNowValid;
165            }
166            else {
167                return isNowValid;
168            }
169        }
170        return m._isValid;
171    }
172
173    function createInvalid (flags) {
174        var m = createUTC(NaN);
175        if (flags != null) {
176            extend(getParsingFlags(m), flags);
177        }
178        else {
179            getParsingFlags(m).userInvalidated = true;
180        }
181
182        return m;
183    }
184
185    // Plugins that add properties should also add the key here (null value),
186    // so we can properly clone ourselves.
187    var momentProperties = hooks.momentProperties = [];
188
189    function copyConfig(to, from) {
190        var i, prop, val;
191
192        if (!isUndefined(from._isAMomentObject)) {
193            to._isAMomentObject = from._isAMomentObject;
194        }
195        if (!isUndefined(from._i)) {
196            to._i = from._i;
197        }
198        if (!isUndefined(from._f)) {
199            to._f = from._f;
200        }
201        if (!isUndefined(from._l)) {
202            to._l = from._l;
203        }
204        if (!isUndefined(from._strict)) {
205            to._strict = from._strict;
206        }
207        if (!isUndefined(from._tzm)) {
208            to._tzm = from._tzm;
209        }
210        if (!isUndefined(from._isUTC)) {
211            to._isUTC = from._isUTC;
212        }
213        if (!isUndefined(from._offset)) {
214            to._offset = from._offset;
215        }
216        if (!isUndefined(from._pf)) {
217            to._pf = getParsingFlags(from);
218        }
219        if (!isUndefined(from._locale)) {
220            to._locale = from._locale;
221        }
222
223        if (momentProperties.length > 0) {
224            for (i = 0; i < momentProperties.length; i++) {
225                prop = momentProperties[i];
226                val = from[prop];
227                if (!isUndefined(val)) {
228                    to[prop] = val;
229                }
230            }
231        }
232
233        return to;
234    }
235
236    var updateInProgress = false;
237
238    // Moment prototype object
239    function Moment(config) {
240        copyConfig(this, config);
241        this._d = new Date(config._d != null ? config._d.getTime() : NaN);
242        if (!this.isValid()) {
243            this._d = new Date(NaN);
244        }
245        // Prevent infinite loop in case updateOffset creates new moment
246        // objects.
247        if (updateInProgress === false) {
248            updateInProgress = true;
249            hooks.updateOffset(this);
250            updateInProgress = false;
251        }
252    }
253
254    function isMoment (obj) {
255        return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
256    }
257
258    function absFloor (number) {
259        if (number < 0) {
260            // -0 -> 0
261            return Math.ceil(number) || 0;
262        } else {
263            return Math.floor(number);
264        }
265    }
266
267    function toInt(argumentForCoercion) {
268        var coercedNumber = +argumentForCoercion,
269            value = 0;
270
271        if (coercedNumber !== 0 && isFinite(coercedNumber)) {
272            value = absFloor(coercedNumber);
273        }
274
275        return value;
276    }
277
278    // compare two arrays, return the number of differences
279    function compareArrays(array1, array2, dontConvert) {
280        var len = Math.min(array1.length, array2.length),
281            lengthDiff = Math.abs(array1.length - array2.length),
282            diffs = 0,
283            i;
284        for (i = 0; i < len; i++) {
285            if ((dontConvert && array1[i] !== array2[i]) ||
286                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
287                diffs++;
288            }
289        }
290        return diffs + lengthDiff;
291    }
292
293    function warn(msg) {
294        if (hooks.suppressDeprecationWarnings === false &&
295                (typeof console !==  'undefined') && console.warn) {
296            console.warn('Deprecation warning: ' + msg);
297        }
298    }
299
300    function deprecate(msg, fn) {
301        var firstTime = true;
302
303        return extend(function () {
304            if (hooks.deprecationHandler != null) {
305                hooks.deprecationHandler(null, msg);
306            }
307            if (firstTime) {
308                var args = [];
309                var arg;
310                for (var i = 0; i < arguments.length; i++) {
311                    arg = '';
312                    if (typeof arguments[i] === 'object') {
313                        arg += '\n[' + i + '] ';
314                        for (var key in arguments[0]) {
315                            arg += key + ': ' + arguments[0][key] + ', ';
316                        }
317                        arg = arg.slice(0, -2); // Remove trailing comma and space
318                    } else {
319                        arg = arguments[i];
320                    }
321                    args.push(arg);
322                }
323                warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
324                firstTime = false;
325            }
326            return fn.apply(this, arguments);
327        }, fn);
328    }
329
330    var deprecations = {};
331
332    function deprecateSimple(name, msg) {
333        if (hooks.deprecationHandler != null) {
334            hooks.deprecationHandler(name, msg);
335        }
336        if (!deprecations[name]) {
337            warn(msg);
338            deprecations[name] = true;
339        }
340    }
341
342    hooks.suppressDeprecationWarnings = false;
343    hooks.deprecationHandler = null;
344
345    function isFunction(input) {
346        return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
347    }
348
349    function set (config) {
350        var prop, i;
351        for (i in config) {
352            prop = config[i];
353            if (isFunction(prop)) {
354                this[i] = prop;
355            } else {
356                this['_' + i] = prop;
357            }
358        }
359        this._config = config;
360        // Lenient ordinal parsing accepts just a number in addition to
361        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
362        // TODO: Remove "ordinalParse" fallback in next major release.
363        this._dayOfMonthOrdinalParseLenient = new RegExp(
364            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
365                '|' + (/\d{1,2}/).source);
366    }
367
368    function mergeConfigs(parentConfig, childConfig) {
369        var res = extend({}, parentConfig), prop;
370        for (prop in childConfig) {
371            if (hasOwnProp(childConfig, prop)) {
372                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
373                    res[prop] = {};
374                    extend(res[prop], parentConfig[prop]);
375                    extend(res[prop], childConfig[prop]);
376                } else if (childConfig[prop] != null) {
377                    res[prop] = childConfig[prop];
378                } else {
379                    delete res[prop];
380                }
381            }
382        }
383        for (prop in parentConfig) {
384            if (hasOwnProp(parentConfig, prop) &&
385                    !hasOwnProp(childConfig, prop) &&
386                    isObject(parentConfig[prop])) {
387                // make sure changes to properties don't modify parent config
388                res[prop] = extend({}, res[prop]);
389            }
390        }
391        return res;
392    }
393
394    function Locale(config) {
395        if (config != null) {
396            this.set(config);
397        }
398    }
399
400    var keys;
401
402    if (Object.keys) {
403        keys = Object.keys;
404    } else {
405        keys = function (obj) {
406            var i, res = [];
407            for (i in obj) {
408                if (hasOwnProp(obj, i)) {
409                    res.push(i);
410                }
411            }
412            return res;
413        };
414    }
415
416    var defaultCalendar = {
417        sameDay : '[Today at] LT',
418        nextDay : '[Tomorrow at] LT',
419        nextWeek : 'dddd [at] LT',
420        lastDay : '[Yesterday at] LT',
421        lastWeek : '[Last] dddd [at] LT',
422        sameElse : 'L'
423    };
424
425    function calendar (key, mom, now) {
426        var output = this._calendar[key] || this._calendar['sameElse'];
427        return isFunction(output) ? output.call(mom, now) : output;
428    }
429
430    var defaultLongDateFormat = {
431        LTS  : 'h:mm:ss A',
432        LT   : 'h:mm A',
433        L    : 'MM/DD/YYYY',
434        LL   : 'MMMM D, YYYY',
435        LLL  : 'MMMM D, YYYY h:mm A',
436        LLLL : 'dddd, MMMM D, YYYY h:mm A'
437    };
438
439    function longDateFormat (key) {
440        var format = this._longDateFormat[key],
441            formatUpper = this._longDateFormat[key.toUpperCase()];
442
443        if (format || !formatUpper) {
444            return format;
445        }
446
447        this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
448            return val.slice(1);
449        });
450
451        return this._longDateFormat[key];
452    }
453
454    var defaultInvalidDate = 'Invalid date';
455
456    function invalidDate () {
457        return this._invalidDate;
458    }
459
460    var defaultOrdinal = '%d';
461    var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
462
463    function ordinal (number) {
464        return this._ordinal.replace('%d', number);
465    }
466
467    var defaultRelativeTime = {
468        future : 'in %s',
469        past   : '%s ago',
470        s  : 'a few seconds',
471        ss : '%d seconds',
472        m  : 'a minute',
473        mm : '%d minutes',
474        h  : 'an hour',
475        hh : '%d hours',
476        d  : 'a day',
477        dd : '%d days',
478        M  : 'a month',
479        MM : '%d months',
480        y  : 'a year',
481        yy : '%d years'
482    };
483
484    function relativeTime (number, withoutSuffix, string, isFuture) {
485        var output = this._relativeTime[string];
486        return (isFunction(output)) ?
487            output(number, withoutSuffix, string, isFuture) :
488            output.replace(/%d/i, number);
489    }
490
491    function pastFuture (diff, output) {
492        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
493        return isFunction(format) ? format(output) : format.replace(/%s/i, output);
494    }
495
496    var aliases = {};
497
498    function addUnitAlias (unit, shorthand) {
499        var lowerCase = unit.toLowerCase();
500        aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
501    }
502
503    function normalizeUnits(units) {
504        return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
505    }
506
507    function normalizeObjectUnits(inputObject) {
508        var normalizedInput = {},
509            normalizedProp,
510            prop;
511
512        for (prop in inputObject) {
513            if (hasOwnProp(inputObject, prop)) {
514                normalizedProp = normalizeUnits(prop);
515                if (normalizedProp) {
516                    normalizedInput[normalizedProp] = inputObject[prop];
517                }
518            }
519        }
520
521        return normalizedInput;
522    }
523
524    var priorities = {};
525
526    function addUnitPriority(unit, priority) {
527        priorities[unit] = priority;
528    }
529
530    function getPrioritizedUnits(unitsObj) {
531        var units = [];
532        for (var u in unitsObj) {
533            units.push({unit: u, priority: priorities[u]});
534        }
535        units.sort(function (a, b) {
536            return a.priority - b.priority;
537        });
538        return units;
539    }
540
541    function zeroFill(number, targetLength, forceSign) {
542        var absNumber = '' + Math.abs(number),
543            zerosToFill = targetLength - absNumber.length,
544            sign = number >= 0;
545        return (sign ? (forceSign ? '+' : '') : '-') +
546            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
547    }
548
549    var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
550
551    var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
552
553    var formatFunctions = {};
554
555    var formatTokenFunctions = {};
556
557    // token:    'M'
558    // padded:   ['MM', 2]
559    // ordinal:  'Mo'
560    // callback: function () { this.month() + 1 }
561    function addFormatToken (token, padded, ordinal, callback) {
562        var func = callback;
563        if (typeof callback === 'string') {
564            func = function () {
565                return this[callback]();
566            };
567        }
568        if (token) {
569            formatTokenFunctions[token] = func;
570        }
571        if (padded) {
572            formatTokenFunctions[padded[0]] = function () {
573                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
574            };
575        }
576        if (ordinal) {
577            formatTokenFunctions[ordinal] = function () {
578                return this.localeData().ordinal(func.apply(this, arguments), token);
579            };
580        }
581    }
582
583    function removeFormattingTokens(input) {
584        if (input.match(/\[[\s\S]/)) {
585            return input.replace(/^\[|\]$/g, '');
586        }
587        return input.replace(/\\/g, '');
588    }
589
590    function makeFormatFunction(format) {
591        var array = format.match(formattingTokens), i, length;
592
593        for (i = 0, length = array.length; i < length; i++) {
594            if (formatTokenFunctions[array[i]]) {
595                array[i] = formatTokenFunctions[array[i]];
596            } else {
597                array[i] = removeFormattingTokens(array[i]);
598            }
599        }
600
601        return function (mom) {
602            var output = '', i;
603            for (i = 0; i < length; i++) {
604                output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
605            }
606            return output;
607        };
608    }
609
610    // format date using native date object
611    function formatMoment(m, format) {
612        if (!m.isValid()) {
613            return m.localeData().invalidDate();
614        }
615
616        format = expandFormat(format, m.localeData());
617        formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
618
619        return formatFunctions[format](m);
620    }
621
622    function expandFormat(format, locale) {
623        var i = 5;
624
625        function replaceLongDateFormatTokens(input) {
626            return locale.longDateFormat(input) || input;
627        }
628
629        localFormattingTokens.lastIndex = 0;
630        while (i >= 0 && localFormattingTokens.test(format)) {
631            format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
632            localFormattingTokens.lastIndex = 0;
633            i -= 1;
634        }
635
636        return format;
637    }
638
639    var match1         = /\d/;            //       0 - 9
640    var match2         = /\d\d/;          //      00 - 99
641    var match3         = /\d{3}/;         //     000 - 999
642    var match4         = /\d{4}/;         //    0000 - 9999
643    var match6         = /[+-]?\d{6}/;    // -999999 - 999999
644    var match1to2      = /\d\d?/;         //       0 - 99
645    var match3to4      = /\d\d\d\d?/;     //     999 - 9999
646    var match5to6      = /\d\d\d\d\d\d?/; //   99999 - 999999
647    var match1to3      = /\d{1,3}/;       //       0 - 999
648    var match1to4      = /\d{1,4}/;       //       0 - 9999
649    var match1to6      = /[+-]?\d{1,6}/;  // -999999 - 999999
650
651    var matchUnsigned  = /\d+/;           //       0 - inf
652    var matchSigned    = /[+-]?\d+/;      //    -inf - inf
653
654    var matchOffset    = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
655    var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
656
657    var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
658
659    // any word (or two) characters or numbers including two/three word month in arabic.
660    // includes scottish gaelic two word and hyphenated months
661    var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
662
663    var regexes = {};
664
665    function addRegexToken (token, regex, strictRegex) {
666        regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
667            return (isStrict && strictRegex) ? strictRegex : regex;
668        };
669    }
670
671    function getParseRegexForToken (token, config) {
672        if (!hasOwnProp(regexes, token)) {
673            return new RegExp(unescapeFormat(token));
674        }
675
676        return regexes[token](config._strict, config._locale);
677    }
678
679    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
680    function unescapeFormat(s) {
681        return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
682            return p1 || p2 || p3 || p4;
683        }));
684    }
685
686    function regexEscape(s) {
687        return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
688    }
689
690    var tokens = {};
691
692    function addParseToken (token, callback) {
693        var i, func = callback;
694        if (typeof token === 'string') {
695            token = [token];
696        }
697        if (isNumber(callback)) {
698            func = function (input, array) {
699                array[callback] = toInt(input);
700            };
701        }
702        for (i = 0; i < token.length; i++) {
703            tokens[token[i]] = func;
704        }
705    }
706
707    function addWeekParseToken (token, callback) {
708        addParseToken(token, function (input, array, config, token) {
709            config._w = config._w || {};
710            callback(input, config._w, config, token);
711        });
712    }
713
714    function addTimeToArrayFromToken(token, input, config) {
715        if (input != null && hasOwnProp(tokens, token)) {
716            tokens[token](input, config._a, config, token);
717        }
718    }
719
720    var YEAR = 0;
721    var MONTH = 1;
722    var DATE = 2;
723    var HOUR = 3;
724    var MINUTE = 4;
725    var SECOND = 5;
726    var MILLISECOND = 6;
727    var WEEK = 7;
728    var WEEKDAY = 8;
729
730    // FORMATTING
731
732    addFormatToken('Y', 0, 0, function () {
733        var y = this.year();
734        return y <= 9999 ? '' + y : '+' + y;
735    });
736
737    addFormatToken(0, ['YY', 2], 0, function () {
738        return this.year() % 100;
739    });
740
741    addFormatToken(0, ['YYYY',   4],       0, 'year');
742    addFormatToken(0, ['YYYYY',  5],       0, 'year');
743    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
744
745    // ALIASES
746
747    addUnitAlias('year', 'y');
748
749    // PRIORITIES
750
751    addUnitPriority('year', 1);
752
753    // PARSING
754
755    addRegexToken('Y',      matchSigned);
756    addRegexToken('YY',     match1to2, match2);
757    addRegexToken('YYYY',   match1to4, match4);
758    addRegexToken('YYYYY',  match1to6, match6);
759    addRegexToken('YYYYYY', match1to6, match6);
760
761    addParseToken(['YYYYY', 'YYYYYY'], YEAR);
762    addParseToken('YYYY', function (input, array) {
763        array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
764    });
765    addParseToken('YY', function (input, array) {
766        array[YEAR] = hooks.parseTwoDigitYear(input);
767    });
768    addParseToken('Y', function (input, array) {
769        array[YEAR] = parseInt(input, 10);
770    });
771
772    // HELPERS
773
774    function daysInYear(year) {
775        return isLeapYear(year) ? 366 : 365;
776    }
777
778    function isLeapYear(year) {
779        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
780    }
781
782    // HOOKS
783
784    hooks.parseTwoDigitYear = function (input) {
785        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
786    };
787
788    // MOMENTS
789
790    var getSetYear = makeGetSet('FullYear', true);
791
792    function getIsLeapYear () {
793        return isLeapYear(this.year());
794    }
795
796    function makeGetSet (unit, keepTime) {
797        return function (value) {
798            if (value != null) {
799                set$1(this, unit, value);
800                hooks.updateOffset(this, keepTime);
801                return this;
802            } else {
803                return get(this, unit);
804            }
805        };
806    }
807
808    function get (mom, unit) {
809        return mom.isValid() ?
810            mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
811    }
812
813    function set$1 (mom, unit, value) {
814        if (mom.isValid() && !isNaN(value)) {
815            if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
816                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
817            }
818            else {
819                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
820            }
821        }
822    }
823
824    // MOMENTS
825
826    function stringGet (units) {
827        units = normalizeUnits(units);
828        if (isFunction(this[units])) {
829            return this[units]();
830        }
831        return this;
832    }
833
834
835    function stringSet (units, value) {
836        if (typeof units === 'object') {
837            units = normalizeObjectUnits(units);
838            var prioritized = getPrioritizedUnits(units);
839            for (var i = 0; i < prioritized.length; i++) {
840                this[prioritized[i].unit](units[prioritized[i].unit]);
841            }
842        } else {
843            units = normalizeUnits(units);
844            if (isFunction(this[units])) {
845                return this[units](value);
846            }
847        }
848        return this;
849    }
850
851    function mod(n, x) {
852        return ((n % x) + x) % x;
853    }
854
855    var indexOf;
856
857    if (Array.prototype.indexOf) {
858        indexOf = Array.prototype.indexOf;
859    } else {
860        indexOf = function (o) {
861            // I know
862            var i;
863            for (i = 0; i < this.length; ++i) {
864                if (this[i] === o) {
865                    return i;
866                }
867            }
868            return -1;
869        };
870    }
871
872    function daysInMonth(year, month) {
873        if (isNaN(year) || isNaN(month)) {
874            return NaN;
875        }
876        var modMonth = mod(month, 12);
877        year += (month - modMonth) / 12;
878        return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
879    }
880
881    // FORMATTING
882
883    addFormatToken('M', ['MM', 2], 'Mo', function () {
884        return this.month() + 1;
885    });
886
887    addFormatToken('MMM', 0, 0, function (format) {
888        return this.localeData().monthsShort(this, format);
889    });
890
891    addFormatToken('MMMM', 0, 0, function (format) {
892        return this.localeData().months(this, format);
893    });
894
895    // ALIASES
896
897    addUnitAlias('month', 'M');
898
899    // PRIORITY
900
901    addUnitPriority('month', 8);
902
903    // PARSING
904
905    addRegexToken('M',    match1to2);
906    addRegexToken('MM',   match1to2, match2);
907    addRegexToken('MMM',  function (isStrict, locale) {
908        return locale.monthsShortRegex(isStrict);
909    });
910    addRegexToken('MMMM', function (isStrict, locale) {
911        return locale.monthsRegex(isStrict);
912    });
913
914    addParseToken(['M', 'MM'], function (input, array) {
915        array[MONTH] = toInt(input) - 1;
916    });
917
918    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
919        var month = config._locale.monthsParse(input, token, config._strict);
920        // if we didn't find a month name, mark the date as invalid.
921        if (month != null) {
922            array[MONTH] = month;
923        } else {
924            getParsingFlags(config).invalidMonth = input;
925        }
926    });
927
928    // LOCALES
929
930    var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
931    var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
932    function localeMonths (m, format) {
933        if (!m) {
934            return isArray(this._months) ? this._months :
935                this._months['standalone'];
936        }
937        return isArray(this._months) ? this._months[m.month()] :
938            this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
939    }
940
941    var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
942    function localeMonthsShort (m, format) {
943        if (!m) {
944            return isArray(this._monthsShort) ? this._monthsShort :
945                this._monthsShort['standalone'];
946        }
947        return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
948            this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
949    }
950
951    function handleStrictParse(monthName, format, strict) {
952        var i, ii, mom, llc = monthName.toLocaleLowerCase();
953        if (!this._monthsParse) {
954            // this is not used
955            this._monthsParse = [];
956            this._longMonthsParse = [];
957            this._shortMonthsParse = [];
958            for (i = 0; i < 12; ++i) {
959                mom = createUTC([2000, i]);
960                this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
961                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
962            }
963        }
964
965        if (strict) {
966            if (format === 'MMM') {
967                ii = indexOf.call(this._shortMonthsParse, llc);
968                return ii !== -1 ? ii : null;
969            } else {
970                ii = indexOf.call(this._longMonthsParse, llc);
971                return ii !== -1 ? ii : null;
972            }
973        } else {
974            if (format === 'MMM') {
975                ii = indexOf.call(this._shortMonthsParse, llc);
976                if (ii !== -1) {
977                    return ii;
978                }
979                ii = indexOf.call(this._longMonthsParse, llc);
980                return ii !== -1 ? ii : null;
981            } else {
982                ii = indexOf.call(this._longMonthsParse, llc);
983                if (ii !== -1) {
984                    return ii;
985                }
986                ii = indexOf.call(this._shortMonthsParse, llc);
987                return ii !== -1 ? ii : null;
988            }
989        }
990    }
991
992    function localeMonthsParse (monthName, format, strict) {
993        var i, mom, regex;
994
995        if (this._monthsParseExact) {
996            return handleStrictParse.call(this, monthName, format, strict);
997        }
998
999        if (!this._monthsParse) {
1000            this._monthsParse = [];
1001            this._longMonthsParse = [];
1002            this._shortMonthsParse = [];
1003        }
1004
1005        // TODO: add sorting
1006        // Sorting makes sure if one month (or abbr) is a prefix of another
1007        // see sorting in computeMonthsParse
1008        for (i = 0; i < 12; i++) {
1009            // make the regex if we don't have it already
1010            mom = createUTC([2000, i]);
1011            if (strict && !this._longMonthsParse[i]) {
1012                this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
1013                this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
1014            }
1015            if (!strict && !this._monthsParse[i]) {
1016                regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
1017                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
1018            }
1019            // test the regex
1020            if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
1021                return i;
1022            } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
1023                return i;
1024            } else if (!strict && this._monthsParse[i].test(monthName)) {
1025                return i;
1026            }
1027        }
1028    }
1029
1030    // MOMENTS
1031
1032    function setMonth (mom, value) {
1033        var dayOfMonth;
1034
1035        if (!mom.isValid()) {
1036            // No op
1037            return mom;
1038        }
1039
1040        if (typeof value === 'string') {
1041            if (/^\d+$/.test(value)) {
1042                value = toInt(value);
1043            } else {
1044                value = mom.localeData().monthsParse(value);
1045                // TODO: Another silent failure?
1046                if (!isNumber(value)) {
1047                    return mom;
1048                }
1049            }
1050        }
1051
1052        dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
1053        mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
1054        return mom;
1055    }
1056
1057    function getSetMonth (value) {
1058        if (value != null) {
1059            setMonth(this, value);
1060            hooks.updateOffset(this, true);
1061            return this;
1062        } else {
1063            return get(this, 'Month');
1064        }
1065    }
1066
1067    function getDaysInMonth () {
1068        return daysInMonth(this.year(), this.month());
1069    }
1070
1071    var defaultMonthsShortRegex = matchWord;
1072    function monthsShortRegex (isStrict) {
1073        if (this._monthsParseExact) {
1074            if (!hasOwnProp(this, '_monthsRegex')) {
1075                computeMonthsParse.call(this);
1076            }
1077            if (isStrict) {
1078                return this._monthsShortStrictRegex;
1079            } else {
1080                return this._monthsShortRegex;
1081            }
1082        } else {
1083            if (!hasOwnProp(this, '_monthsShortRegex')) {
1084                this._monthsShortRegex = defaultMonthsShortRegex;
1085            }
1086            return this._monthsShortStrictRegex && isStrict ?
1087                this._monthsShortStrictRegex : this._monthsShortRegex;
1088        }
1089    }
1090
1091    var defaultMonthsRegex = matchWord;
1092    function monthsRegex (isStrict) {
1093        if (this._monthsParseExact) {
1094            if (!hasOwnProp(this, '_monthsRegex')) {
1095                computeMonthsParse.call(this);
1096            }
1097            if (isStrict) {
1098                return this._monthsStrictRegex;
1099            } else {
1100                return this._monthsRegex;
1101            }
1102        } else {
1103            if (!hasOwnProp(this, '_monthsRegex')) {
1104                this._monthsRegex = defaultMonthsRegex;
1105            }
1106            return this._monthsStrictRegex && isStrict ?
1107                this._monthsStrictRegex : this._monthsRegex;
1108        }
1109    }
1110
1111    function computeMonthsParse () {
1112        function cmpLenRev(a, b) {
1113            return b.length - a.length;
1114        }
1115
1116        var shortPieces = [], longPieces = [], mixedPieces = [],
1117            i, mom;
1118        for (i = 0; i < 12; i++) {
1119            // make the regex if we don't have it already
1120            mom = createUTC([2000, i]);
1121            shortPieces.push(this.monthsShort(mom, ''));
1122            longPieces.push(this.months(mom, ''));
1123            mixedPieces.push(this.months(mom, ''));
1124            mixedPieces.push(this.monthsShort(mom, ''));
1125        }
1126        // Sorting makes sure if one month (or abbr) is a prefix of another it
1127        // will match the longer piece.
1128        shortPieces.sort(cmpLenRev);
1129        longPieces.sort(cmpLenRev);
1130        mixedPieces.sort(cmpLenRev);
1131        for (i = 0; i < 12; i++) {
1132            shortPieces[i] = regexEscape(shortPieces[i]);
1133            longPieces[i] = regexEscape(longPieces[i]);
1134        }
1135        for (i = 0; i < 24; i++) {
1136            mixedPieces[i] = regexEscape(mixedPieces[i]);
1137        }
1138
1139        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1140        this._monthsShortRegex = this._monthsRegex;
1141        this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1142        this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1143    }
1144
1145    function createDate (y, m, d, h, M, s, ms) {
1146        // can't just apply() to create a date:
1147        // https://stackoverflow.com/q/181348
1148        var date
vendor: 3,190 bytes, lines 1148-1250
1148 = new Date(y, m, d, h, M, s, ms);
1149
1150        // the date constructor remaps years 0-99 to 1900-1999
1151        if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
1152            date.setFullYear(y);
1153        }
1154        return date;
1155    }
1156
1157    function createUTCDate (y) {
1158        var date = new Date(Date.UTC.apply(null, arguments));
1159
1160        // the Date.UTC function remaps years 0-99 to 1900-1999
1161        if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
1162            date.setUTCFullYear(y);
1163        }
1164        return date;
1165    }
1166
1167    // start-of-first-week - start-of-year
1168    function firstWeekOffset(year, dow, doy) {
1169        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1170            fwd = 7 + dow - doy,
1171            // first-week day local weekday -- which local weekday is fwd
1172            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1173
1174        return -fwdlw + fwd - 1;
1175    }
1176
1177    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1178    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1179        var localWeekday = (7 + weekday - dow) % 7,
1180            weekOffset = firstWeekOffset(year, dow, doy),
1181            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1182            resYear, resDayOfYear;
1183
1184        if (dayOfYear <= 0) {
1185            resYear = year - 1;
1186            resDayOfYear = daysInYear(resYear) + dayOfYear;
1187        } else if (dayOfYear > daysInYear(year)) {
1188            resYear = year + 1;
1189            resDayOfYear = dayOfYear - daysInYear(year);
1190        } else {
1191            resYear = year;
1192            resDayOfYear = dayOfYear;
1193        }
1194
1195        return {
1196            year: resYear,
1197            dayOfYear: resDayOfYear
1198        };
1199    }
1200
1201    function weekOfYear(mom, dow, doy) {
1202        var weekOffset = firstWeekOffset(mom.year(), dow, doy),
1203            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
1204            resWeek, resYear;
1205
1206        if (week < 1) {
1207            resYear = mom.year() - 1;
1208            resWeek = week + weeksInYear(resYear, dow, doy);
1209        } else if (week > weeksInYear(mom.year(), dow, doy)) {
1210            resWeek = week - weeksInYear(mom.year(), dow, doy);
1211            resYear = mom.year() + 1;
1212        } else {
1213            resYear = mom.year();
1214            resWeek = week;
1215        }
1216
1217        return {
1218            week: resWeek,
1219            year: resYear
1220        };
1221    }
1222
1223    function weeksInYear(year, dow, doy) {
1224        var weekOffset = firstWeekOffset(year, dow, doy),
1225            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
1226        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
1227    }
1228
1229    // FORMATTING
1230
1231    addFormatToken('w', ['ww', 2], 'wo', 'week');
1232    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1233
1234    // ALIASES
1235
1236    addUnitAlias('week', 'w');
1237    addUnitAlias('isoWeek', 'W');
1238
1239    // PRIORITIES
1240
1241    addUnitPriority('week', 5);
1242    addUnitPriority('isoWeek', 5);
1243
1244    // PARSING
1245
1246    addRegexToken('w',  match1to2);
1247    addRegexToken('ww', match1to2, match2);
1248    addRegexToken('W',  match1to2);
1249    addRegexToken('WW', match1to2, match2);
1250
vendor: 16,384 bytes, lines 1251-1733
1251    addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
1252        week[token.substr(0, 1)] = toInt(input);
1253    });
1254
1255    // HELPERS
1256
1257    // LOCALES
1258
1259    function localeWeek (mom) {
1260        return weekOfYear(mom, this._week.dow, this._week.doy).week;
1261    }
1262
1263    var defaultLocaleWeek = {
1264        dow : 0, // Sunday is the first day of the week.
1265        doy : 6  // The week that contains Jan 1st is the first week of the year.
1266    };
1267
1268    function localeFirstDayOfWeek () {
1269        return this._week.dow;
1270    }
1271
1272    function localeFirstDayOfYear () {
1273        return this._week.doy;
1274    }
1275
1276    // MOMENTS
1277
1278    function getSetWeek (input) {
1279        var week = this.localeData().week(this);
1280        return input == null ? week : this.add((input - week) * 7, 'd');
1281    }
1282
1283    function getSetISOWeek (input) {
1284        var week = weekOfYear(this, 1, 4).week;
1285        return input == null ? week : this.add((input - week) * 7, 'd');
1286    }
1287
1288    // FORMATTING
1289
1290    addFormatToken('d', 0, 'do', 'day');
1291
1292    addFormatToken('dd', 0, 0, function (format) {
1293        return this.localeData().weekdaysMin(this, format);
1294    });
1295
1296    addFormatToken('ddd', 0, 0, function (format) {
1297        return this.localeData().weekdaysShort(this, format);
1298    });
1299
1300    addFormatToken('dddd', 0, 0, function (format) {
1301        return this.localeData().weekdays(this, format);
1302    });
1303
1304    addFormatToken('e', 0, 0, 'weekday');
1305    addFormatToken('E', 0, 0, 'isoWeekday');
1306
1307    // ALIASES
1308
1309    addUnitAlias('day', 'd');
1310    addUnitAlias('weekday', 'e');
1311    addUnitAlias('isoWeekday', 'E');
1312
1313    // PRIORITY
1314    addUnitPriority('day', 11);
1315    addUnitPriority('weekday', 11);
1316    addUnitPriority('isoWeekday', 11);
1317
1318    // PARSING
1319
1320    addRegexToken('d',    match1to2);
1321    addRegexToken('e',    match1to2);
1322    addRegexToken('E',    match1to2);
1323    addRegexToken('dd',   function (isStrict, locale) {
1324        return locale.weekdaysMinRegex(isStrict);
1325    });
1326    addRegexToken('ddd',   function (isStrict, locale) {
1327        return locale.weekdaysShortRegex(isStrict);
1328    });
1329    addRegexToken('dddd',   function (isStrict, locale) {
1330        return locale.weekdaysRegex(isStrict);
1331    });
1332
1333    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
1334        var weekday = config._locale.weekdaysParse(input, token, config._strict);
1335        // if we didn't get a weekday name, mark the date as invalid
1336        if (weekday != null) {
1337            week.d = weekday;
1338        } else {
1339            getParsingFlags(config).invalidWeekday = input;
1340        }
1341    });
1342
1343    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
1344        week[token] = toInt(input);
1345    });
1346
1347    // HELPERS
1348
1349    function parseWeekday(input, locale) {
1350        if (typeof input !== 'string') {
1351            return input;
1352        }
1353
1354        if (!isNaN(input)) {
1355            return parseInt(input, 10);
1356        }
1357
1358        input = locale.weekdaysParse(input);
1359        if (typeof input === 'number') {
1360            return input;
1361        }
1362
1363        return null;
1364    }
1365
1366    function parseIsoWeekday(input, locale) {
1367        if (typeof input === 'string') {
1368            return locale.weekdaysParse(input) % 7 || 7;
1369        }
1370        return isNaN(input) ? null : input;
1371    }
1372
1373    // LOCALES
1374
1375    var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
1376    function localeWeekdays (m, format) {
1377        if (!m) {
1378            return isArray(this._weekdays) ? this._weekdays :
1379                this._weekdays['standalone'];
1380        }
1381        return isArray(this._weekdays) ? this._weekdays[m.day()] :
1382            this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
1383    }
1384
1385    var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
1386    function localeWeekdaysShort (m) {
1387        return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
1388    }
1389
1390    var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
1391    function localeWeekdaysMin (m) {
1392        return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
1393    }
1394
1395    function handleStrictParse$1(weekdayName, format, strict) {
1396        var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
1397        if (!this._weekdaysParse) {
1398            this._weekdaysParse = [];
1399            this._shortWeekdaysParse = [];
1400            this._minWeekdaysParse = [];
1401
1402            for (i = 0; i < 7; ++i) {
1403                mom = createUTC([2000, 1]).day(i);
1404                this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
1405                this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
1406                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
1407            }
1408        }
1409
1410        if (strict) {
1411            if (format === 'dddd') {
1412                ii = indexOf.call(this._weekdaysParse, llc);
1413                return ii !== -1 ? ii : null;
1414            } else if (format === 'ddd') {
1415                ii = indexOf.call(this._shortWeekdaysParse, llc);
1416                return ii !== -1 ? ii : null;
1417            } else {
1418                ii = indexOf.call(this._minWeekdaysParse, llc);
1419                return ii !== -1 ? ii : null;
1420            }
1421        } else {
1422            if (format === 'dddd') {
1423                ii = indexOf.call(this._weekdaysParse, llc);
1424                if (ii !== -1) {
1425                    return ii;
1426                }
1427                ii = indexOf.call(this._shortWeekdaysParse, llc);
1428                if (ii !== -1) {
1429                    return ii;
1430                }
1431                ii = indexOf.call(this._minWeekdaysParse, llc);
1432                return ii !== -1 ? ii : null;
1433            } else if (format === 'ddd') {
1434                ii = indexOf.call(this._shortWeekdaysParse, llc);
1435                if (ii !== -1) {
1436                    return ii;
1437                }
1438                ii = indexOf.call(this._weekdaysParse, llc);
1439                if (ii !== -1) {
1440                    return ii;
1441                }
1442                ii = indexOf.call(this._minWeekdaysParse, llc);
1443                return ii !== -1 ? ii : null;
1444            } else {
1445                ii = indexOf.call(this._minWeekdaysParse, llc);
1446                if (ii !== -1) {
1447                    return ii;
1448                }
1449                ii = indexOf.call(this._weekdaysParse, llc);
1450                if (ii !== -1) {
1451                    return ii;
1452                }
1453                ii = indexOf.call(this._shortWeekdaysParse, llc);
1454                return ii !== -1 ? ii : null;
1455            }
1456        }
1457    }
1458
1459    function localeWeekdaysParse (weekdayName, format, strict) {
1460        var i, mom, regex;
1461
1462        if (this._weekdaysParseExact) {
1463            return handleStrictParse$1.call(this, weekdayName, format, strict);
1464        }
1465
1466        if (!this._weekdaysParse) {
1467            this._weekdaysParse = [];
1468            this._minWeekdaysParse = [];
1469            this._shortWeekdaysParse = [];
1470            this._fullWeekdaysParse = [];
1471        }
1472
1473        for (i = 0; i < 7; i++) {
1474            // make the regex if we don't have it already
1475
1476            mom = createUTC([2000, 1]).day(i);
1477            if (strict && !this._fullWeekdaysParse[i]) {
1478                this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');
1479                this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');
1480                this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');
1481            }
1482            if (!this._weekdaysParse[i]) {
1483                regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
1484                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
1485            }
1486            // test the regex
1487            if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
1488                return i;
1489            } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
1490                return i;
1491            } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
1492                return i;
1493            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
1494                return i;
1495            }
1496        }
1497    }
1498
1499    // MOMENTS
1500
1501    function getSetDayOfWeek (input) {
1502        if (!this.isValid()) {
1503            return input != null ? this : NaN;
1504        }
1505        var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
1506        if (input != null) {
1507            input = parseWeekday(input, this.localeData());
1508            return this.add(input - day, 'd');
1509        } else {
1510            return day;
1511        }
1512    }
1513
1514    function getSetLocaleDayOfWeek (input) {
1515        if (!this.isValid()) {
1516            return input != null ? this : NaN;
1517        }
1518        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1519        return input == null ? weekday : this.add(input - weekday, 'd');
1520    }
1521
1522    function getSetISODayOfWeek (input) {
1523        if (!this.isValid()) {
1524            return input != null ? this : NaN;
1525        }
1526
1527        // behaves the same as moment#day except
1528        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1529        // as a setter, sunday should belong to the previous week.
1530
1531        if (input != null) {
1532            var weekday = parseIsoWeekday(input, this.localeData());
1533            return this.day(this.day() % 7 ? weekday : weekday - 7);
1534        } else {
1535            return this.day() || 7;
1536        }
1537    }
1538
1539    var defaultWeekdaysRegex = matchWord;
1540    function weekdaysRegex (isStrict) {
1541        if (this._weekdaysParseExact) {
1542            if (!hasOwnProp(this, '_weekdaysRegex')) {
1543                computeWeekdaysParse.call(this);
1544            }
1545            if (isStrict) {
1546                return this._weekdaysStrictRegex;
1547            } else {
1548                return this._weekdaysRegex;
1549            }
1550        } else {
1551            if (!hasOwnProp(this, '_weekdaysRegex')) {
1552                this._weekdaysRegex = defaultWeekdaysRegex;
1553            }
1554            return this._weekdaysStrictRegex && isStrict ?
1555                this._weekdaysStrictRegex : this._weekdaysRegex;
1556        }
1557    }
1558
1559    var defaultWeekdaysShortRegex = matchWord;
1560    function weekdaysShortRegex (isStrict) {
1561        if (this._weekdaysParseExact) {
1562            if (!hasOwnProp(this, '_weekdaysRegex')) {
1563                computeWeekdaysParse.call(this);
1564            }
1565            if (isStrict) {
1566                return this._weekdaysShortStrictRegex;
1567            } else {
1568                return this._weekdaysShortRegex;
1569            }
1570        } else {
1571            if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1572                this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1573            }
1574            return this._weekdaysShortStrictRegex && isStrict ?
1575                this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
1576        }
1577    }
1578
1579    var defaultWeekdaysMinRegex = matchWord;
1580    function weekdaysMinRegex (isStrict) {
1581        if (this._weekdaysParseExact) {
1582            if (!hasOwnProp(this, '_weekdaysRegex')) {
1583                computeWeekdaysParse.call(this);
1584            }
1585            if (isStrict) {
1586                return this._weekdaysMinStrictRegex;
1587            } else {
1588                return this._weekdaysMinRegex;
1589            }
1590        } else {
1591            if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1592                this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1593            }
1594            return this._weekdaysMinStrictRegex && isStrict ?
1595                this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
1596        }
1597    }
1598
1599
1600    function computeWeekdaysParse () {
1601        function cmpLenRev(a, b) {
1602            return b.length - a.length;
1603        }
1604
1605        var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
1606            i, mom, minp, shortp, longp;
1607        for (i = 0; i < 7; i++) {
1608            // make the regex if we don't have it already
1609            mom = createUTC([2000, 1]).day(i);
1610            minp = this.weekdaysMin(mom, '');
1611            shortp = this.weekdaysShort(mom, '');
1612            longp = this.weekdays(mom, '');
1613            minPieces.push(minp);
1614            shortPieces.push(shortp);
1615            longPieces.push(longp);
1616            mixedPieces.push(minp);
1617            mixedPieces.push(shortp);
1618            mixedPieces.push(longp);
1619        }
1620        // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1621        // will match the longer piece.
1622        minPieces.sort(cmpLenRev);
1623        shortPieces.sort(cmpLenRev);
1624        longPieces.sort(cmpLenRev);
1625        mixedPieces.sort(cmpLenRev);
1626        for (i = 0; i < 7; i++) {
1627            shortPieces[i] = regexEscape(shortPieces[i]);
1628            longPieces[i] = regexEscape(longPieces[i]);
1629            mixedPieces[i] = regexEscape(mixedPieces[i]);
1630        }
1631
1632        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1633        this._weekdaysShortRegex = this._weekdaysRegex;
1634        this._weekdaysMinRegex = this._weekdaysRegex;
1635
1636        this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1637        this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1638        this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
1639    }
1640
1641    // FORMATTING
1642
1643    function hFormat() {
1644        return this.hours() % 12 || 12;
1645    }
1646
1647    function kFormat() {
1648        return this.hours() || 24;
1649    }
1650
1651    addFormatToken('H', ['HH', 2], 0, 'hour');
1652    addFormatToken('h', ['hh', 2], 0, hFormat);
1653    addFormatToken('k', ['kk', 2], 0, kFormat);
1654
1655    addFormatToken('hmm', 0, 0, function () {
1656        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
1657    });
1658
1659    addFormatToken('hmmss', 0, 0, function () {
1660        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
1661            zeroFill(this.seconds(), 2);
1662    });
1663
1664    addFormatToken('Hmm', 0, 0, function () {
1665        return '' + this.hours() + zeroFill(this.minutes(), 2);
1666    });
1667
1668    addFormatToken('Hmmss', 0, 0, function () {
1669        return '' + this.hours() + zeroFill(this.minutes(), 2) +
1670            zeroFill(this.seconds(), 2);
1671    });
1672
1673    function meridiem (token, lowercase) {
1674        addFormatToken(token, 0, 0, function () {
1675            return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
1676        });
1677    }
1678
1679    meridiem('a', true);
1680    meridiem('A', false);
1681
1682    // ALIASES
1683
1684    addUnitAlias('hour', 'h');
1685
1686    // PRIORITY
1687    addUnitPriority('hour', 13);
1688
1689    // PARSING
1690
1691    function matchMeridiem (isStrict, locale) {
1692        return locale._meridiemParse;
1693    }
1694
1695    addRegexToken('a',  matchMeridiem);
1696    addRegexToken('A',  matchMeridiem);
1697    addRegexToken('H',  match1to2);
1698    addRegexToken('h',  match1to2);
1699    addRegexToken('k',  match1to2);
1700    addRegexToken('HH', match1to2, match2);
1701    addRegexToken('hh', match1to2, match2);
1702    addRegexToken('kk', match1to2, match2);
1703
1704    addRegexToken('hmm', match3to4);
1705    addRegexToken('hmmss', match5to6);
1706    addRegexToken('Hmm', match3to4);
1707    addRegexToken('Hmmss', match5to6);
1708
1709    addParseToken(['H', 'HH'], HOUR);
1710    addParseToken(['k', 'kk'], function (input, array, config) {
1711        var kInput = toInt(input);
1712        array[HOUR] = kInput === 24 ? 0 : kInput;
1713    });
1714    addParseToken(['a', 'A'], function (input, array, config) {
1715        config._isPm = config._locale.isPM(input);
1716        config._meridiem = input;
1717    });
1718    addParseToken(['h', 'hh'], function (input, array, config) {
1719        array[HOUR] = toInt(input);
1720        getParsingFlags(config).bigHour = true;
1721    });
1722    addParseToken('hmm', function (input, array, config) {
1723        var pos = input.length - 2;
1724        array[HOUR] = toInt(input.substr(0, pos));
1725        array[MINUTE] = toInt(input.substr(pos));
1726        getParsingFlags(config).bigHour = true;
1727    });
1728    addParseToken('hmmss', function (input, array, config) {
1729        var pos1 = input.length - 4;
1730        var pos2 = input.length - 2;
1731        array[HOUR] = toInt(input.substr(0, pos1));
1732        array[MINUTE] = toInt(input.substr(pos1, 2));
1733        array[SECOND] = toInt(input
vendor: 14,721 bytes, lines 1733-2147
1733.substr(pos2));
1734        getParsingFlags(config).bigHour = true;
1735    });
1736    addParseToken('Hmm', function (input, array, config) {
1737        var pos = input.length - 2;
1738        array[HOUR] = toInt(input.substr(0, pos));
1739        array[MINUTE] = toInt(input.substr(pos));
1740    });
1741    addParseToken('Hmmss', function (input, array, config) {
1742        var pos1 = input.length - 4;
1743        var pos2 = input.length - 2;
1744        array[HOUR] = toInt(input.substr(0, pos1));
1745        array[MINUTE] = toInt(input.substr(pos1, 2));
1746        array[SECOND] = toInt(input.substr(pos2));
1747    });
1748
1749    // LOCALES
1750
1751    function localeIsPM (input) {
1752        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
1753        // Using charAt should be more compatible.
1754        return ((input + '').toLowerCase().charAt(0) === 'p');
1755    }
1756
1757    var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
1758    function localeMeridiem (hours, minutes, isLower) {
1759        if (hours > 11) {
1760            return isLower ? 'pm' : 'PM';
1761        } else {
1762            return isLower ? 'am' : 'AM';
1763        }
1764    }
1765
1766
1767    // MOMENTS
1768
1769    // Setting the hour should keep the time, because the user explicitly
1770    // specified which hour they want. So trying to maintain the same hour (in
1771    // a new timezone) makes sense. Adding/subtracting hours does not follow
1772    // this rule.
1773    var getSetHour = makeGetSet('Hours', true);
1774
1775    var baseConfig = {
1776        calendar: defaultCalendar,
1777        longDateFormat: defaultLongDateFormat,
1778        invalidDate: defaultInvalidDate,
1779        ordinal: defaultOrdinal,
1780        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
1781        relativeTime: defaultRelativeTime,
1782
1783        months: defaultLocaleMonths,
1784        monthsShort: defaultLocaleMonthsShort,
1785
1786        week: defaultLocaleWeek,
1787
1788        weekdays: defaultLocaleWeekdays,
1789        weekdaysMin: defaultLocaleWeekdaysMin,
1790        weekdaysShort: defaultLocaleWeekdaysShort,
1791
1792        meridiemParse: defaultLocaleMeridiemParse
1793    };
1794
1795    // internal storage for locale config files
1796    var locales = {};
1797    var localeFamilies = {};
1798    var globalLocale;
1799
1800    function normalizeLocale(key) {
1801        return key ? key.toLowerCase().replace('_', '-') : key;
1802    }
1803
1804    // pick the locale from the array
1805    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
1806    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
1807    function chooseLocale(names) {
1808        var i = 0, j, next, locale, split;
1809
1810        while (i < names.length) {
1811            split = normalizeLocale(names[i]).split('-');
1812            j = split.length;
1813            next = normalizeLocale(names[i + 1]);
1814            next = next ? next.split('-') : null;
1815            while (j > 0) {
1816                locale = loadLocale(split.slice(0, j).join('-'));
1817                if (locale) {
1818                    return locale;
1819                }
1820                if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
1821                    //the next array item is better than a shallower substring of this one
1822                    break;
1823                }
1824                j--;
1825            }
1826            i++;
1827        }
1828        return globalLocale;
1829    }
1830
1831    function loadLocale(name) {
1832        var oldLocale = null;
1833        // TODO: Find a better way to register and load all the locales in Node
1834        if (!locales[name] && (typeof module !== 'undefined') &&
1835                module && module.exports) {
1836            try {
1837                oldLocale = globalLocale._abbr;
1838                var aliasedRequire = require;
1839                aliasedRequire('./locale/' + name);
1840                getSetGlobalLocale(oldLocale);
1841            } catch (e) {}
1842        }
1843        return locales[name];
1844    }
1845
1846    // This function will load locale and then set the global locale.  If
1847    // no arguments are passed in, it will simply return the current global
1848    // locale key.
1849    function getSetGlobalLocale (key, values) {
1850        var data;
1851        if (key) {
1852            if (isUndefined(values)) {
1853                data = getLocale(key);
1854            }
1855            else {
1856                data = defineLocale(key, values);
1857            }
1858
1859            if (data) {
1860                // moment.duration._locale = moment._locale = data;
1861                globalLocale = data;
1862            }
1863            else {
1864                if ((typeof console !==  'undefined') && console.warn) {
1865                    //warn user if arguments are passed but the locale could not be set
1866                    console.warn('Locale ' + key +  ' not found. Did you forget to load it?');
1867                }
1868            }
1869        }
1870
1871        return globalLocale._abbr;
1872    }
1873
1874    function defineLocale (name, config) {
1875        if (config !== null) {
1876            var locale, parentConfig = baseConfig;
1877            config.abbr = name;
1878            if (locales[name] != null) {
1879                deprecateSimple('defineLocaleOverride',
1880                        'use moment.updateLocale(localeName, config) to change ' +
1881                        'an existing locale. moment.defineLocale(localeName, ' +
1882                        'config) should only be used for creating a new locale ' +
1883                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
1884                parentConfig = locales[name]._config;
1885            } else if (config.parentLocale != null) {
1886                if (locales[config.parentLocale] != null) {
1887                    parentConfig = locales[config.parentLocale]._config;
1888                } else {
1889                    locale = loadLocale(config.parentLocale);
1890                    if (locale != null) {
1891                        parentConfig = locale._config;
1892                    } else {
1893                        if (!localeFamilies[config.parentLocale]) {
1894                            localeFamilies[config.parentLocale] = [];
1895                        }
1896                        localeFamilies[config.parentLocale].push({
1897                            name: name,
1898                            config: config
1899                        });
1900                        return null;
1901                    }
1902                }
1903            }
1904            locales[name] = new Locale(mergeConfigs(parentConfig, config));
1905
1906            if (localeFamilies[name]) {
1907                localeFamilies[name].forEach(function (x) {
1908                    defineLocale(x.name, x.config);
1909                });
1910            }
1911
1912            // backwards compat for now: also set the locale
1913            // make sure we set the locale AFTER all child locales have been
1914            // created, so we won't end up with the child locale set.
1915            getSetGlobalLocale(name);
1916
1917
1918            return locales[name];
1919        } else {
1920            // useful for testing
1921            delete locales[name];
1922            return null;
1923        }
1924    }
1925
1926    function updateLocale(name, config) {
1927        if (config != null) {
1928            var locale, tmpLocale, parentConfig = baseConfig;
1929            // MERGE
1930            tmpLocale = loadLocale(name);
1931            if (tmpLocale != null) {
1932                parentConfig = tmpLocale._config;
1933            }
1934            config = mergeConfigs(parentConfig, config);
1935            locale = new Locale(config);
1936            locale.parentLocale = locales[name];
1937            locales[name] = locale;
1938
1939            // backwards compat for now: also set the locale
1940            getSetGlobalLocale(name);
1941        } else {
1942            // pass null for config to unupdate, useful for tests
1943            if (locales[name] != null) {
1944                if (locales[name].parentLocale != null) {
1945                    locales[name] = locales[name].parentLocale;
1946                } else if (locales[name] != null) {
1947                    delete locales[name];
1948                }
1949            }
1950        }
1951        return locales[name];
1952    }
1953
1954    // returns locale data
1955    function getLocale (key) {
1956        var locale;
1957
1958        if (key && key._locale && key._locale._abbr) {
1959            key = key._locale._abbr;
1960        }
1961
1962        if (!key) {
1963            return globalLocale;
1964        }
1965
1966        if (!isArray(key)) {
1967            //short-circuit everything else
1968            locale = loadLocale(key);
1969            if (locale) {
1970                return locale;
1971            }
1972            key = [key];
1973        }
1974
1975        return chooseLocale(key);
1976    }
1977
1978    function listLocales() {
1979        return keys(locales);
1980    }
1981
1982    function checkOverflow (m) {
1983        var overflow;
1984        var a = m._a;
1985
1986        if (a && getParsingFlags(m).overflow === -2) {
1987            overflow =
1988                a[MONTH]       < 0 || a[MONTH]       > 11  ? MONTH :
1989                a[DATE]        < 1 || a[DATE]        > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
1990                a[HOUR]        < 0 || a[HOUR]        > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
1991                a[MINUTE]      < 0 || a[MINUTE]      > 59  ? MINUTE :
1992                a[SECOND]      < 0 || a[SECOND]      > 59  ? SECOND :
1993                a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
1994                -1;
1995
1996            if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
1997                overflow = DATE;
1998            }
1999            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
2000                overflow = WEEK;
2001            }
2002            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
2003                overflow = WEEKDAY;
2004            }
2005
2006            getParsingFlags(m).overflow = overflow;
2007        }
2008
2009        return m;
2010    }
2011
2012    // Pick the first defined of two or three arguments.
2013    function defaults(a, b, c) {
2014        if (a != null) {
2015            return a;
2016        }
2017        if (b != null) {
2018            return b;
2019        }
2020        return c;
2021    }
2022
2023    function currentDateArray(config) {
2024        // hooks is actually the exported moment object
2025        var nowValue = new Date(hooks.now());
2026        if (config._useUTC) {
2027            return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
2028        }
2029        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
2030    }
2031
2032    // convert an array to a date.
2033    // the array should mirror the parameters below
2034    // note: all values past the year are optional and will default to the lowest possible value.
2035    // [year, month, day , hour, minute, second, millisecond]
2036    function configFromArray (config) {
2037        var i, date, input = [], currentDate, expectedWeekday, yearToUse;
2038
2039        if (config._d) {
2040            return;
2041        }
2042
2043        currentDate = currentDateArray(config);
2044
2045        //compute day of the year from weeks and weekdays
2046        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
2047            dayOfYearFromWeekInfo(config);
2048        }
2049
2050        //if the day of the year is set, figure out what it is
2051        if (config._dayOfYear != null) {
2052            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
2053
2054            if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
2055                getParsingFlags(config)._overflowDayOfYear = true;
2056            }
2057
2058            date = createUTCDate(yearToUse, 0, config._dayOfYear);
2059            config._a[MONTH] = date.getUTCMonth();
2060            config._a[DATE] = date.getUTCDate();
2061        }
2062
2063        // Default to current date.
2064        // * if no year, month, day of month are given, default to today
2065        // * if day of month is given, default month and year
2066        // * if month is given, default only year
2067        // * if year is given, don't default anything
2068        for (i = 0; i < 3 && config._a[i] == null; ++i) {
2069            config._a[i] = input[i] = currentDate[i];
2070        }
2071
2072        // Zero out whatever was not defaulted, including time
2073        for (; i < 7; i++) {
2074            config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
2075        }
2076
2077        // Check for 24:00:00.000
2078        if (config._a[HOUR] === 24 &&
2079                config._a[MINUTE] === 0 &&
2080                config._a[SECOND] === 0 &&
2081                config._a[MILLISECOND] === 0) {
2082            config._nextDay = true;
2083            config._a[HOUR] = 0;
2084        }
2085
2086        config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
2087        expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
2088
2089        // Apply timezone offset from input. The actual utcOffset can be changed
2090        // with parseZone.
2091        if (config._tzm != null) {
2092            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2093        }
2094
2095        if (config._nextDay) {
2096            config._a[HOUR] = 24;
2097        }
2098
2099        // check for mismatching day of week
2100        if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
2101            getParsingFlags(config).weekdayMismatch = true;
2102        }
2103    }
2104
2105    function dayOfYearFromWeekInfo(config) {
2106        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
2107
2108        w = config._w;
2109        if (w.GG != null || w.W != null || w.E != null) {
2110            dow = 1;
2111            doy = 4;
2112
2113            // TODO: We need to take the current isoWeekYear, but that depends on
2114            // how we interpret now (local, utc, fixed offset). So create
2115            // a now version of current config (take local/utc/offset flags, and
2116            // create now).
2117            weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
2118            week = defaults(w.W, 1);
2119            weekday = defaults(w.E, 1);
2120            if (weekday < 1 || weekday > 7) {
2121                weekdayOverflow = true;
2122            }
2123        } else {
2124            dow = config._locale._week.dow;
2125            doy = config._locale._week.doy;
2126
2127            var curWeek = weekOfYear(createLocal(), dow, doy);
2128
2129            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
2130
2131            // Default to current week.
2132            week = defaults(w.w, curWeek.week);
2133
2134            if (w.d != null) {
2135                // weekday -- low day numbers are considered next week
2136                weekday = w.d;
2137                if (weekday < 0 || weekday > 6) {
2138                    weekdayOverflow = true;
2139                }
2140            } else if (w.e != null) {
2141                // local weekday -- counting starts from begining of week
2142                weekday = w.e + dow;
2143                if (w.e < 0 || w.e > 6) {
2144                    weekdayOverflow = true;
2145                }
2146            } else {
2147                // default to begi
vendor: 19,665 bytes, lines 2147-2741
2147ning of week
2148                weekday = dow;
2149            }
2150        }
2151        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
2152            getParsingFlags(config)._overflowWeeks = true;
2153        } else if (weekdayOverflow != null) {
2154            getParsingFlags(config)._overflowWeekday = true;
2155        } else {
2156            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
2157            config._a[YEAR] = temp.year;
2158            config._dayOfYear = temp.dayOfYear;
2159        }
2160    }
2161
2162    // iso 8601 regex
2163    // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
2164    var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
2165    var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
2166
2167    var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
2168
2169    var isoDates = [
2170        ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
2171        ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
2172        ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
2173        ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
2174        ['YYYY-DDD', /\d{4}-\d{3}/],
2175        ['YYYY-MM', /\d{4}-\d\d/, false],
2176        ['YYYYYYMMDD', /[+-]\d{10}/],
2177        ['YYYYMMDD', /\d{8}/],
2178        // YYYYMM is NOT allowed by the standard
2179        ['GGGG[W]WWE', /\d{4}W\d{3}/],
2180        ['GGGG[W]WW', /\d{4}W\d{2}/, false],
2181        ['YYYYDDD', /\d{7}/]
2182    ];
2183
2184    // iso time formats and regexes
2185    var isoTimes = [
2186        ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
2187        ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
2188        ['HH:mm:ss', /\d\d:\d\d:\d\d/],
2189        ['HH:mm', /\d\d:\d\d/],
2190        ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
2191        ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
2192        ['HHmmss', /\d\d\d\d\d\d/],
2193        ['HHmm', /\d\d\d\d/],
2194        ['HH', /\d\d/]
2195    ];
2196
2197    var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
2198
2199    // date from iso format
2200    function configFromISO(config) {
2201        var i, l,
2202            string = config._i,
2203            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
2204            allowTime, dateFormat, timeFormat, tzFormat;
2205
2206        if (match) {
2207            getParsingFlags(config).iso = true;
2208
2209            for (i = 0, l = isoDates.length; i < l; i++) {
2210                if (isoDates[i][1].exec(match[1])) {
2211                    dateFormat = isoDates[i][0];
2212                    allowTime = isoDates[i][2] !== false;
2213                    break;
2214                }
2215            }
2216            if (dateFormat == null) {
2217                config._isValid = false;
2218                return;
2219            }
2220            if (match[3]) {
2221                for (i = 0, l = isoTimes.length; i < l; i++) {
2222                    if (isoTimes[i][1].exec(match[3])) {
2223                        // match[2] should be 'T' or space
2224                        timeFormat = (match[2] || ' ') + isoTimes[i][0];
2225                        break;
2226                    }
2227                }
2228                if (timeFormat == null) {
2229                    config._isValid = false;
2230                    return;
2231                }
2232            }
2233            if (!allowTime && timeFormat != null) {
2234                config._isValid = false;
2235                return;
2236            }
2237            if (match[4]) {
2238                if (tzRegex.exec(match[4])) {
2239                    tzFormat = 'Z';
2240                } else {
2241                    config._isValid = false;
2242                    return;
2243                }
2244            }
2245            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
2246            configFromStringAndFormat(config);
2247        } else {
2248            config._isValid = false;
2249        }
2250    }
2251
2252    // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
2253    var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
2254
2255    function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
2256        var result = [
2257            untruncateYear(yearStr),
2258            defaultLocaleMonthsShort.indexOf(monthStr),
2259            parseInt(dayStr, 10),
2260            parseInt(hourStr, 10),
2261            parseInt(minuteStr, 10)
2262        ];
2263
2264        if (secondStr) {
2265            result.push(parseInt(secondStr, 10));
2266        }
2267
2268        return result;
2269    }
2270
2271    function untruncateYear(yearStr) {
2272        var year = parseInt(yearStr, 10);
2273        if (year <= 49) {
2274            return 2000 + year;
2275        } else if (year <= 999) {
2276            return 1900 + year;
2277        }
2278        return year;
2279    }
2280
2281    function preprocessRFC2822(s) {
2282        // Remove comments and folding whitespace and replace multiple-spaces with a single space
2283        return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
2284    }
2285
2286    function checkWeekday(weekdayStr, parsedInput, config) {
2287        if (weekdayStr) {
2288            // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
2289            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
2290                weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
2291            if (weekdayProvided !== weekdayActual) {
2292                getParsingFlags(config).weekdayMismatch = true;
2293                config._isValid = false;
2294                return false;
2295            }
2296        }
2297        return true;
2298    }
2299
2300    var obsOffsets = {
2301        UT: 0,
2302        GMT: 0,
2303        EDT: -4 * 60,
2304        EST: -5 * 60,
2305        CDT: -5 * 60,
2306        CST: -6 * 60,
2307        MDT: -6 * 60,
2308        MST: -7 * 60,
2309        PDT: -7 * 60,
2310        PST: -8 * 60
2311    };
2312
2313    function calculateOffset(obsOffset, militaryOffset, numOffset) {
2314        if (obsOffset) {
2315            return obsOffsets[obsOffset];
2316        } else if (militaryOffset) {
2317            // the only allowed military tz is Z
2318            return 0;
2319        } else {
2320            var hm = parseInt(numOffset, 10);
2321            var m = hm % 100, h = (hm - m) / 100;
2322            return h * 60 + m;
2323        }
2324    }
2325
2326    // date and time from ref 2822 format
2327    function configFromRFC2822(config) {
2328        var match = rfc2822.exec(preprocessRFC2822(config._i));
2329        if (match) {
2330            var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
2331            if (!checkWeekday(match[1], parsedArray, config)) {
2332                return;
2333            }
2334
2335            config._a = parsedArray;
2336            config._tzm = calculateOffset(match[8], match[9], match[10]);
2337
2338            config._d = createUTCDate.apply(null, config._a);
2339            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2340
2341            getParsingFlags(config).rfc2822 = true;
2342        } else {
2343            config._isValid = false;
2344        }
2345    }
2346
2347    // date from iso format or fallback
2348    function configFromString(config) {
2349        var matched = aspNetJsonRegex.exec(config._i);
2350
2351        if (matched !== null) {
2352            config._d = new Date(+matched[1]);
2353            return;
2354        }
2355
2356        configFromISO(config);
2357        if (config._isValid === false) {
2358            delete config._isValid;
2359        } else {
2360            return;
2361        }
2362
2363        configFromRFC2822(config);
2364        if (config._isValid === false) {
2365            delete config._isValid;
2366        } else {
2367            return;
2368        }
2369
2370        // Final attempt, use Input Fallback
2371        hooks.createFromInputFallback(config);
2372    }
2373
2374    hooks.createFromInputFallback = deprecate(
2375        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
2376        'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
2377        'discouraged and will be removed in an upcoming major release. Please refer to ' +
2378        'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
2379        function (config) {
2380            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
2381        }
2382    );
2383
2384    // constant that refers to the ISO standard
2385    hooks.ISO_8601 = function () {};
2386
2387    // constant that refers to the RFC 2822 form
2388    hooks.RFC_2822 = function () {};
2389
2390    // date from string and format string
2391    function configFromStringAndFormat(config) {
2392        // TODO: Move this to another part of the creation flow to prevent circular deps
2393        if (config._f === hooks.ISO_8601) {
2394            configFromISO(config);
2395            return;
2396        }
2397        if (config._f === hooks.RFC_2822) {
2398            configFromRFC2822(config);
2399            return;
2400        }
2401        config._a = [];
2402        getParsingFlags(config).empty = true;
2403
2404        // This array is used to make a Date, either with `new Date` or `Date.UTC`
2405        var string = '' + config._i,
2406            i, parsedInput, tokens, token, skipped,
2407            stringLength = string.length,
2408            totalParsedInputLength = 0;
2409
2410        tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
2411
2412        for (i = 0; i < tokens.length; i++) {
2413            token = tokens[i];
2414            parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
2415            // console.log('token', token, 'parsedInput', parsedInput,
2416            //         'regex', getParseRegexForToken(token, config));
2417            if (parsedInput) {
2418                skipped = string.substr(0, string.indexOf(parsedInput));
2419                if (skipped.length > 0) {
2420                    getParsingFlags(config).unusedInput.push(skipped);
2421                }
2422                string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
2423                totalParsedInputLength += parsedInput.length;
2424            }
2425            // don't parse if it's not a known token
2426            if (formatTokenFunctions[token]) {
2427                if (parsedInput) {
2428                    getParsingFlags(config).empty = false;
2429                }
2430                else {
2431                    getParsingFlags(config).unusedTokens.push(token);
2432                }
2433                addTimeToArrayFromToken(token, parsedInput, config);
2434            }
2435            else if (config._strict && !parsedInput) {
2436                getParsingFlags(config).unusedTokens.push(token);
2437            }
2438        }
2439
2440        // add remaining unparsed input length to the string
2441        getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
2442        if (string.length > 0) {
2443            getParsingFlags(config).unusedInput.push(string);
2444        }
2445
2446        // clear _12h flag if hour is <= 12
2447        if (config._a[HOUR] <= 12 &&
2448            getParsingFlags(config).bigHour === true &&
2449            config._a[HOUR] > 0) {
2450            getParsingFlags(config).bigHour = undefined;
2451        }
2452
2453        getParsingFlags(config).parsedDateParts = config._a.slice(0);
2454        getParsingFlags(config).meridiem = config._meridiem;
2455        // handle meridiem
2456        config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
2457
2458        configFromArray(config);
2459        checkOverflow(config);
2460    }
2461
2462
2463    function meridiemFixWrap (locale, hour, meridiem) {
2464        var isPm;
2465
2466        if (meridiem == null) {
2467            // nothing to do
2468            return hour;
2469        }
2470        if (locale.meridiemHour != null) {
2471            return locale.meridiemHour(hour, meridiem);
2472        } else if (locale.isPM != null) {
2473            // Fallback
2474            isPm = locale.isPM(meridiem);
2475            if (isPm && hour < 12) {
2476                hour += 12;
2477            }
2478            if (!isPm && hour === 12) {
2479                hour = 0;
2480            }
2481            return hour;
2482        } else {
2483            // this is not supposed to happen
2484            return hour;
2485        }
2486    }
2487
2488    // date from string and array of format strings
2489    function configFromStringAndArray(config) {
2490        var tempConfig,
2491            bestMoment,
2492
2493            scoreToBeat,
2494            i,
2495            currentScore;
2496
2497        if (config._f.length === 0) {
2498            getParsingFlags(config).invalidFormat = true;
2499            config._d = new Date(NaN);
2500            return;
2501        }
2502
2503        for (i = 0; i < config._f.length; i++) {
2504            currentScore = 0;
2505            tempConfig = copyConfig({}, config);
2506            if (config._useUTC != null) {
2507                tempConfig._useUTC = config._useUTC;
2508            }
2509            tempConfig._f = config._f[i];
2510            configFromStringAndFormat(tempConfig);
2511
2512            if (!isValid(tempConfig)) {
2513                continue;
2514            }
2515
2516            // if there is any input that was not parsed add a penalty for that format
2517            currentScore += getParsingFlags(tempConfig).charsLeftOver;
2518
2519            //or tokens
2520            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
2521
2522            getParsingFlags(tempConfig).score = currentScore;
2523
2524            if (scoreToBeat == null || currentScore < scoreToBeat) {
2525                scoreToBeat = currentScore;
2526                bestMoment = tempConfig;
2527            }
2528        }
2529
2530        extend(config, bestMoment || tempConfig);
2531    }
2532
2533    function configFromObject(config) {
2534        if (config._d) {
2535            return;
2536        }
2537
2538        var i = normalizeObjectUnits(config._i);
2539        config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
2540            return obj && parseInt(obj, 10);
2541        });
2542
2543        configFromArray(config);
2544    }
2545
2546    function createFromConfig (config) {
2547        var res = new Moment(checkOverflow(prepareConfig(config)));
2548        if (res._nextDay) {
2549            // Adding is smart enough around DST
2550            res.add(1, 'd');
2551            res._nextDay = undefined;
2552        }
2553
2554        return res;
2555    }
2556
2557    function prepareConfig (config) {
2558        var input = config._i,
2559            format = config._f;
2560
2561        config._locale = config._locale || getLocale(config._l);
2562
2563        if (input === null || (format === undefined && input === '')) {
2564            return createInvalid({nullInput: true});
2565        }
2566
2567        if (typeof input === 'string') {
2568            config._i = input = config._locale.preparse(input);
2569        }
2570
2571        if (isMoment(input)) {
2572            return new Moment(checkOverflow(input));
2573        } else if (isDate(input)) {
2574            config._d = input;
2575        } else if (isArray(format)) {
2576            configFromStringAndArray(config);
2577        } else if (format) {
2578            configFromStringAndFormat(config);
2579        }  else {
2580            configFromInput(config);
2581        }
2582
2583        if (!isValid(config)) {
2584            config._d = null;
2585        }
2586
2587        return config;
2588    }
2589
2590    function configFromInput(config) {
2591        var input = config._i;
2592        if (isUndefined(input)) {
2593            config._d = new Date(hooks.now());
2594        } else if (isDate(input)) {
2595            config._d = new Date(input.valueOf());
2596        } else if (typeof input === 'string') {
2597            configFromString(config);
2598        } else if (isArray(input)) {
2599            config._a = map(input.slice(0), function (obj) {
2600                return parseInt(obj, 10);
2601            });
2602            configFromArray(config);
2603        } else if (isObject(input)) {
2604            configFromObject(config);
2605        } else if (isNumber(input)) {
2606            // from milliseconds
2607            config._d = new Date(input);
2608        } else {
2609            hooks.createFromInputFallback(config);
2610        }
2611    }
2612
2613    function createLocalOrUTC (input, format, locale, strict, isUTC) {
2614        var c = {};
2615
2616        if (locale === true || locale === false) {
2617            strict = locale;
2618            locale = undefined;
2619        }
2620
2621        if ((isObject(input) && isObjectEmpty(input)) ||
2622                (isArray(input) && input.length === 0)) {
2623            input = undefined;
2624        }
2625        // object construction must be done this way.
2626        // https://github.com/moment/moment/issues/1423
2627        c._isAMomentObject = true;
2628        c._useUTC = c._isUTC = isUTC;
2629        c._l = locale;
2630        c._i = input;
2631        c._f = format;
2632        c._strict = strict;
2633
2634        return createFromConfig(c);
2635    }
2636
2637    function createLocal (input, format, locale, strict) {
2638        return createLocalOrUTC(input, format, locale, strict, false);
2639    }
2640
2641    var prototypeMin = deprecate(
2642        'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
2643        function () {
2644            var other = createLocal.apply(null, arguments);
2645            if (this.isValid() && other.isValid()) {
2646                return other < this ? this : other;
2647            } else {
2648                return createInvalid();
2649            }
2650        }
2651    );
2652
2653    var prototypeMax = deprecate(
2654        'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
2655        function () {
2656            var other = createLocal.apply(null, arguments);
2657            if (this.isValid() && other.isValid()) {
2658                return other > this ? this : other;
2659            } else {
2660                return createInvalid();
2661            }
2662        }
2663    );
2664
2665    // Pick a moment m from moments so that m[fn](other) is true for all
2666    // other. This relies on the function fn to be transitive.
2667    //
2668    // moments should either be an array of moment objects or an array, whose
2669    // first element is an array of moment objects.
2670    function pickBy(fn, moments) {
2671        var res, i;
2672        if (moments.length === 1 && isArray(moments[0])) {
2673            moments = moments[0];
2674        }
2675        if (!moments.length) {
2676            return createLocal();
2677        }
2678        res = moments[0];
2679        for (i = 1; i < moments.length; ++i) {
2680            if (!moments[i].isValid() || moments[i][fn](res)) {
2681                res = moments[i];
2682            }
2683        }
2684        return res;
2685    }
2686
2687    // TODO: Use [].sort instead?
2688    function min () {
2689        var args = [].slice.call(arguments, 0);
2690
2691        return pickBy('isBefore', args);
2692    }
2693
2694    function max () {
2695        var args = [].slice.call(arguments, 0);
2696
2697        return pickBy('isAfter', args);
2698    }
2699
2700    var now = function () {
2701        return Date.now ? Date.now() : +(new Date());
2702    };
2703
2704    var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
2705
2706    function isDurationValid(m) {
2707        for (var key in m) {
2708            if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
2709                return false;
2710            }
2711        }
2712
2713        var unitHasDecimal = false;
2714        for (var i = 0; i < ordering.length; ++i) {
2715            if (m[ordering[i]]) {
2716                if (unitHasDecimal) {
2717                    return false; // only allow non-integers for smallest unit
2718                }
2719                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
2720                    unitHasDecimal = true;
2721                }
2722            }
2723        }
2724
2725        return true;
2726    }
2727
2728    function isValid$1() {
2729        return this._isValid;
2730    }
2731
2732    function createInvalid$1() {
2733        return createDuration(NaN);
2734    }
2735
2736    function Duration (duration) {
2737        var normalizedInput = normalizeObjectUnits(duration),
2738            years = normalizedInput.year || 0,
2739            quarters = normalizedInput.quarter || 0,
2740            months = normalizedInput.month || 0,
2741            weeks = normalizedInput.week || 
vendor: 4,158 bytes, lines 2741-2868
27410,
2742            days = normalizedInput.day || 0,
2743            hours = normalizedInput.hour || 0,
2744            minutes = normalizedInput.minute || 0,
2745            seconds = normalizedInput.second || 0,
2746            milliseconds = normalizedInput.millisecond || 0;
2747
2748        this._isValid = isDurationValid(normalizedInput);
2749
2750        // representation for dateAddRemove
2751        this._milliseconds = +milliseconds +
2752            seconds * 1e3 + // 1000
2753            minutes * 6e4 + // 1000 * 60
2754            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
2755        // Because of dateAddRemove treats 24 hours as different from a
2756        // day when working around DST, we need to store them separately
2757        this._days = +days +
2758            weeks * 7;
2759        // It is impossible to translate months into days without knowing
2760        // which months you are are talking about, so we have to store
2761        // it separately.
2762        this._months = +months +
2763            quarters * 3 +
2764            years * 12;
2765
2766        this._data = {};
2767
2768        this._locale = getLocale();
2769
2770        this._bubble();
2771    }
2772
2773    function isDuration (obj) {
2774        return obj instanceof Duration;
2775    }
2776
2777    function absRound (number) {
2778        if (number < 0) {
2779            return Math.round(-1 * number) * -1;
2780        } else {
2781            return Math.round(number);
2782        }
2783    }
2784
2785    // FORMATTING
2786
2787    function offset (token, separator) {
2788        addFormatToken(token, 0, 0, function () {
2789            var offset = this.utcOffset();
2790            var sign = '+';
2791            if (offset < 0) {
2792                offset = -offset;
2793                sign = '-';
2794            }
2795            return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
2796        });
2797    }
2798
2799    offset('Z', ':');
2800    offset('ZZ', '');
2801
2802    // PARSING
2803
2804    addRegexToken('Z',  matchShortOffset);
2805    addRegexToken('ZZ', matchShortOffset);
2806    addParseToken(['Z', 'ZZ'], function (input, array, config) {
2807        config._useUTC = true;
2808        config._tzm = offsetFromString(matchShortOffset, input);
2809    });
2810
2811    // HELPERS
2812
2813    // timezone chunker
2814    // '+10:00' > ['10',  '00']
2815    // '-1530'  > ['-15', '30']
2816    var chunkOffset = /([\+\-]|\d\d)/gi;
2817
2818    function offsetFromString(matcher, string) {
2819        var matches = (string || '').match(matcher);
2820
2821        if (matches === null) {
2822            return null;
2823        }
2824
2825        var chunk   = matches[matches.length - 1] || [];
2826        var parts   = (chunk + '').match(chunkOffset) || ['-', 0, 0];
2827        var minutes = +(parts[1] * 60) + toInt(parts[2]);
2828
2829        return minutes === 0 ?
2830          0 :
2831          parts[0] === '+' ? minutes : -minutes;
2832    }
2833
2834    // Return a moment from input, that is local/utc/zone equivalent to model.
2835    function cloneWithOffset(input, model) {
2836        var res, diff;
2837        if (model._isUTC) {
2838            res = model.clone();
2839            diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
2840            // Use low-level api, because this fn is low-level api.
2841            res._d.setTime(res._d.valueOf() + diff);
2842            hooks.updateOffset(res, false);
2843            return res;
2844        } else {
2845            return createLocal(input).local();
2846        }
2847    }
2848
2849    function getDateOffset (m) {
2850        // On Firefox.24 Date#getTimezoneOffset returns a floating point.
2851        // https://github.com/moment/moment/pull/1871
2852        return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
2853    }
2854
2855    // HOOKS
2856
2857    // This function will be called whenever a moment is mutated.
2858    // It is intended to keep the offset in sync with the timezone.
2859    hooks.updateOffset = function () {};
2860
2861    // MOMENTS
2862
2863    // keepLocalTime = true means only change the timezone, without
2864    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
2865    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
2866    // +0200, so we adjust the time as needed, to be valid.
2867    //
2868    // Keeping the time actually adds/subtracts (one hour)
vendor: 20,735 bytes, lines 2869-3475
2869    // from the actual represented time. That is why we call updateOffset
2870    // a second time. In case it wants us to change the offset again
2871    // _changeInProgress == true case, then we have to adjust, because
2872    // there is no such time in the given timezone.
2873    function getSetOffset (input, keepLocalTime, keepMinutes) {
2874        var offset = this._offset || 0,
2875            localAdjust;
2876        if (!this.isValid()) {
2877            return input != null ? this : NaN;
2878        }
2879        if (input != null) {
2880            if (typeof input === 'string') {
2881                input = offsetFromString(matchShortOffset, input);
2882                if (input === null) {
2883                    return this;
2884                }
2885            } else if (Math.abs(input) < 16 && !keepMinutes) {
2886                input = input * 60;
2887            }
2888            if (!this._isUTC && keepLocalTime) {
2889                localAdjust = getDateOffset(this);
2890            }
2891            this._offset = input;
2892            this._isUTC = true;
2893            if (localAdjust != null) {
2894                this.add(localAdjust, 'm');
2895            }
2896            if (offset !== input) {
2897                if (!keepLocalTime || this._changeInProgress) {
2898                    addSubtract(this, createDuration(input - offset, 'm'), 1, false);
2899                } else if (!this._changeInProgress) {
2900                    this._changeInProgress = true;
2901                    hooks.updateOffset(this, true);
2902                    this._changeInProgress = null;
2903                }
2904            }
2905            return this;
2906        } else {
2907            return this._isUTC ? offset : getDateOffset(this);
2908        }
2909    }
2910
2911    function getSetZone (input, keepLocalTime) {
2912        if (input != null) {
2913            if (typeof input !== 'string') {
2914                input = -input;
2915            }
2916
2917            this.utcOffset(input, keepLocalTime);
2918
2919            return this;
2920        } else {
2921            return -this.utcOffset();
2922        }
2923    }
2924
2925    function setOffsetToUTC (keepLocalTime) {
2926        return this.utcOffset(0, keepLocalTime);
2927    }
2928
2929    function setOffsetToLocal (keepLocalTime) {
2930        if (this._isUTC) {
2931            this.utcOffset(0, keepLocalTime);
2932            this._isUTC = false;
2933
2934            if (keepLocalTime) {
2935                this.subtract(getDateOffset(this), 'm');
2936            }
2937        }
2938        return this;
2939    }
2940
2941    function setOffsetToParsedOffset () {
2942        if (this._tzm != null) {
2943            this.utcOffset(this._tzm, false, true);
2944        } else if (typeof this._i === 'string') {
2945            var tZone = offsetFromString(matchOffset, this._i);
2946            if (tZone != null) {
2947                this.utcOffset(tZone);
2948            }
2949            else {
2950                this.utcOffset(0, true);
2951            }
2952        }
2953        return this;
2954    }
2955
2956    function hasAlignedHourOffset (input) {
2957        if (!this.isValid()) {
2958            return false;
2959        }
2960        input = input ? createLocal(input).utcOffset() : 0;
2961
2962        return (this.utcOffset() - input) % 60 === 0;
2963    }
2964
2965    function isDaylightSavingTime () {
2966        return (
2967            this.utcOffset() > this.clone().month(0).utcOffset() ||
2968            this.utcOffset() > this.clone().month(5).utcOffset()
2969        );
2970    }
2971
2972    function isDaylightSavingTimeShifted () {
2973        if (!isUndefined(this._isDSTShifted)) {
2974            return this._isDSTShifted;
2975        }
2976
2977        var c = {};
2978
2979        copyConfig(c, this);
2980        c = prepareConfig(c);
2981
2982        if (c._a) {
2983            var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
2984            this._isDSTShifted = this.isValid() &&
2985                compareArrays(c._a, other.toArray()) > 0;
2986        } else {
2987            this._isDSTShifted = false;
2988        }
2989
2990        return this._isDSTShifted;
2991    }
2992
2993    function isLocal () {
2994        return this.isValid() ? !this._isUTC : false;
2995    }
2996
2997    function isUtcOffset () {
2998        return this.isValid() ? this._isUTC : false;
2999    }
3000
3001    function isUtc () {
3002        return this.isValid() ? this._isUTC && this._offset === 0 : false;
3003    }
3004
3005    // ASP.NET json date format regex
3006    var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
3007
3008    // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
3009    // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
3010    // and further modified to allow for strings containing both week and day
3011    var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
3012
3013    function createDuration (input, key) {
3014        var duration = input,
3015            // matching against regexp is expensive, do it on demand
3016            match = null,
3017            sign,
3018            ret,
3019            diffRes;
3020
3021        if (isDuration(input)) {
3022            duration = {
3023                ms : input._milliseconds,
3024                d  : input._days,
3025                M  : input._months
3026            };
3027        } else if (isNumber(input)) {
3028            duration = {};
3029            if (key) {
3030                duration[key] = input;
3031            } else {
3032                duration.milliseconds = input;
3033            }
3034        } else if (!!(match = aspNetRegex.exec(input))) {
3035            sign = (match[1] === '-') ? -1 : 1;
3036            duration = {
3037                y  : 0,
3038                d  : toInt(match[DATE])                         * sign,
3039                h  : toInt(match[HOUR])                         * sign,
3040                m  : toInt(match[MINUTE])                       * sign,
3041                s  : toInt(match[SECOND])                       * sign,
3042                ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
3043            };
3044        } else if (!!(match = isoRegex.exec(input))) {
3045            sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
3046            duration = {
3047                y : parseIso(match[2], sign),
3048                M : parseIso(match[3], sign),
3049                w : parseIso(match[4], sign),
3050                d : parseIso(match[5], sign),
3051                h : parseIso(match[6], sign),
3052                m : parseIso(match[7], sign),
3053                s : parseIso(match[8], sign)
3054            };
3055        } else if (duration == null) {// checks for null or undefined
3056            duration = {};
3057        } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
3058            diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
3059
3060            duration = {};
3061            duration.ms = diffRes.milliseconds;
3062            duration.M = diffRes.months;
3063        }
3064
3065        ret = new Duration(duration);
3066
3067        if (isDuration(input) && hasOwnProp(input, '_locale')) {
3068            ret._locale = input._locale;
3069        }
3070
3071        return ret;
3072    }
3073
3074    createDuration.fn = Duration.prototype;
3075    createDuration.invalid = createInvalid$1;
3076
3077    function parseIso (inp, sign) {
3078        // We'd normally use ~~inp for this, but unfortunately it also
3079        // converts floats to ints.
3080        // inp may be undefined, so careful calling replace on it.
3081        var res = inp && parseFloat(inp.replace(',', '.'));
3082        // apply sign while we're at it
3083        return (isNaN(res) ? 0 : res) * sign;
3084    }
3085
3086    function positiveMomentsDifference(base, other) {
3087        var res = {milliseconds: 0, months: 0};
3088
3089        res.months = other.month() - base.month() +
3090            (other.year() - base.year()) * 12;
3091        if (base.clone().add(res.months, 'M').isAfter(other)) {
3092            --res.months;
3093        }
3094
3095        res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
3096
3097        return res;
3098    }
3099
3100    function momentsDifference(base, other) {
3101        var res;
3102        if (!(base.isValid() && other.isValid())) {
3103            return {milliseconds: 0, months: 0};
3104        }
3105
3106        other = cloneWithOffset(other, base);
3107        if (base.isBefore(other)) {
3108            res = positiveMomentsDifference(base, other);
3109        } else {
3110            res = positiveMomentsDifference(other, base);
3111            res.milliseconds = -res.milliseconds;
3112            res.months = -res.months;
3113        }
3114
3115        return res;
3116    }
3117
3118    // TODO: remove 'name' arg after deprecation is removed
3119    function createAdder(direction, name) {
3120        return function (val, period) {
3121            var dur, tmp;
3122            //invert the arguments, but complain about it
3123            if (period !== null && !isNaN(+period)) {
3124                deprecateSimple(name, 'moment().' + name  + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
3125                'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
3126                tmp = val; val = period; period = tmp;
3127            }
3128
3129            val = typeof val === 'string' ? +val : val;
3130            dur = createDuration(val, period);
3131            addSubtract(this, dur, direction);
3132            return this;
3133        };
3134    }
3135
3136    function addSubtract (mom, duration, isAdding, updateOffset) {
3137        var milliseconds = duration._milliseconds,
3138            days = absRound(duration._days),
3139            months = absRound(duration._months);
3140
3141        if (!mom.isValid()) {
3142            // No op
3143            return;
3144        }
3145
3146        updateOffset = updateOffset == null ? true : updateOffset;
3147
3148        if (months) {
3149            setMonth(mom, get(mom, 'Month') + months * isAdding);
3150        }
3151        if (days) {
3152            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
3153        }
3154        if (milliseconds) {
3155            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
3156        }
3157        if (updateOffset) {
3158            hooks.updateOffset(mom, days || months);
3159        }
3160    }
3161
3162    var add      = createAdder(1, 'add');
3163    var subtract = createAdder(-1, 'subtract');
3164
3165    function getCalendarFormat(myMoment, now) {
3166        var diff = myMoment.diff(now, 'days', true);
3167        return diff < -6 ? 'sameElse' :
3168                diff < -1 ? 'lastWeek' :
3169                diff < 0 ? 'lastDay' :
3170                diff < 1 ? 'sameDay' :
3171                diff < 2 ? 'nextDay' :
3172                diff < 7 ? 'nextWeek' : 'sameElse';
3173    }
3174
3175    function calendar$1 (time, formats) {
3176        // We want to compare the start of today, vs this.
3177        // Getting start-of-today depends on whether we're local/utc/offset or not.
3178        var now = time || createLocal(),
3179            sod = cloneWithOffset(now, this).startOf('day'),
3180            format = hooks.calendarFormat(this, sod) || 'sameElse';
3181
3182        var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
3183
3184        return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
3185    }
3186
3187    function clone () {
3188        return new Moment(this);
3189    }
3190
3191    function isAfter (input, units) {
3192        var localInput = isMoment(input) ? input : createLocal(input);
3193        if (!(this.isValid() && localInput.isValid())) {
3194            return false;
3195        }
3196        units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3197        if (units === 'millisecond') {
3198            return this.valueOf() > localInput.valueOf();
3199        } else {
3200            return localInput.valueOf() < this.clone().startOf(units).valueOf();
3201        }
3202    }
3203
3204    function isBefore (input, units) {
3205        var localInput = isMoment(input) ? input : createLocal(input);
3206        if (!(this.isValid() && localInput.isValid())) {
3207            return false;
3208        }
3209        units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3210        if (units === 'millisecond') {
3211            return this.valueOf() < localInput.valueOf();
3212        } else {
3213            return this.clone().endOf(units).valueOf() < localInput.valueOf();
3214        }
3215    }
3216
3217    function isBetween (from, to, units, inclusivity) {
3218        inclusivity = inclusivity || '()';
3219        return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
3220            (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
3221    }
3222
3223    function isSame (input, units) {
3224        var localInput = isMoment(input) ? input : createLocal(input),
3225            inputMs;
3226        if (!(this.isValid() && localInput.isValid())) {
3227            return false;
3228        }
3229        units = normalizeUnits(units || 'millisecond');
3230        if (units === 'millisecond') {
3231            return this.valueOf() === localInput.valueOf();
3232        } else {
3233            inputMs = localInput.valueOf();
3234            return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
3235        }
3236    }
3237
3238    function isSameOrAfter (input, units) {
3239        return this.isSame(input, units) || this.isAfter(input,units);
3240    }
3241
3242    function isSameOrBefore (input, units) {
3243        return this.isSame(input, units) || this.isBefore(input,units);
3244    }
3245
3246    function diff (input, units, asFloat) {
3247        var that,
3248            zoneDelta,
3249            output;
3250
3251        if (!this.isValid()) {
3252            return NaN;
3253        }
3254
3255        that = cloneWithOffset(input, this);
3256
3257        if (!that.isValid()) {
3258            return NaN;
3259        }
3260
3261        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
3262
3263        units = normalizeUnits(units);
3264
3265        switch (units) {
3266            case 'year': output = monthDiff(this, that) / 12; break;
3267            case 'month': output = monthDiff(this, that); break;
3268            case 'quarter': output = monthDiff(this, that) / 3; break;
3269            case 'second': output = (this - that) / 1e3; break; // 1000
3270            case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
3271            case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
3272            case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
3273            case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
3274            default: output = this - that;
3275        }
3276
3277        return asFloat ? output : absFloor(output);
3278    }
3279
3280    function monthDiff (a, b) {
3281        // difference in months
3282        var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
3283            // b is in (anchor - 1 month, anchor + 1 month)
3284            anchor = a.clone().add(wholeMonthDiff, 'months'),
3285            anchor2, adjust;
3286
3287        if (b - anchor < 0) {
3288            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
3289            // linear across the month
3290            adjust = (b - anchor) / (anchor - anchor2);
3291        } else {
3292            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
3293            // linear across the month
3294            adjust = (b - anchor) / (anchor2 - anchor);
3295        }
3296
3297        //check for negative zero, return zero if negative zero
3298        return -(wholeMonthDiff + adjust) || 0;
3299    }
3300
3301    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
3302    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
3303
3304    function toString () {
3305        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
3306    }
3307
3308    function toISOString(keepOffset) {
3309        if (!this.isValid()) {
3310            return null;
3311        }
3312        var utc = keepOffset !== true;
3313        var m = utc ? this.clone().utc() : this;
3314        if (m.year() < 0 || m.year() > 9999) {
3315            return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
3316        }
3317        if (isFunction(Date.prototype.toISOString)) {
3318            // native implementation is ~50x faster, use it when we can
3319            if (utc) {
3320                return this.toDate().toISOString();
3321            } else {
3322                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
3323            }
3324        }
3325        return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
3326    }
3327
3328    /**
3329     * Return a human readable representation of a moment that can
3330     * also be evaluated to get a new moment which is the same
3331     *
3332     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
3333     */
3334    function inspect () {
3335        if (!this.isValid()) {
3336            return 'moment.invalid(/* ' + this._i + ' */)';
3337        }
3338        var func = 'moment';
3339        var zone = '';
3340        if (!this.isLocal()) {
3341            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
3342            zone = 'Z';
3343        }
3344        var prefix = '[' + func + '("]';
3345        var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
3346        var datetime = '-MM-DD[T]HH:mm:ss.SSS';
3347        var suffix = zone + '[")]';
3348
3349        return this.format(prefix + year + datetime + suffix);
3350    }
3351
3352    function format (inputString) {
3353        if (!inputString) {
3354            inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
3355        }
3356        var output = formatMoment(this, inputString);
3357        return this.localeData().postformat(output);
3358    }
3359
3360    function from (time, withoutSuffix) {
3361        if (this.isValid() &&
3362                ((isMoment(time) && time.isValid()) ||
3363                 createLocal(time).isValid())) {
3364            return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
3365        } else {
3366            return this.localeData().invalidDate();
3367        }
3368    }
3369
3370    function fromNow (withoutSuffix) {
3371        return this.from(createLocal(), withoutSuffix);
3372    }
3373
3374    function to (time, withoutSuffix) {
3375        if (this.isValid() &&
3376                ((isMoment(time) && time.isValid()) ||
3377                 createLocal(time).isValid())) {
3378            return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
3379        } else {
3380            return this.localeData().invalidDate();
3381        }
3382    }
3383
3384    function toNow (withoutSuffix) {
3385        return this.to(createLocal(), withoutSuffix);
3386    }
3387
3388    // If passed a locale key, it will set the locale for this
3389    // instance.  Otherwise, it will return the locale configuration
3390    // variables for this instance.
3391    function locale (key) {
3392        var newLocaleData;
3393
3394        if (key === undefined) {
3395            return this._locale._abbr;
3396        } else {
3397            newLocaleData = getLocale(key);
3398            if (newLocaleData != null) {
3399                this._locale = newLocaleData;
3400            }
3401            return this;
3402        }
3403    }
3404
3405    var lang = deprecate(
3406        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
3407        function (key) {
3408            if (key === undefined) {
3409                return this.localeData();
3410            } else {
3411                return this.locale(key);
3412            }
3413        }
3414    );
3415
3416    function localeData () {
3417        return this._locale;
3418    }
3419
3420    function startOf (units) {
3421        units = normalizeUnits(units);
3422        // the following switch intentionally omits break keywords
3423        // to utilize falling through the cases.
3424        switch (units) {
3425            case 'year':
3426                this.month(0);
3427                /* falls through */
3428            case 'quarter':
3429            case 'month':
3430                this.date(1);
3431                /* falls through */
3432            case 'week':
3433            case 'isoWeek':
3434            case 'day':
3435            case 'date':
3436                this.hours(0);
3437                /* falls through */
3438            case 'hour':
3439                this.minutes(0);
3440                /* falls through */
3441            case 'minute':
3442                this.seconds(0);
3443                /* falls through */
3444            case 'second':
3445                this.milliseconds(0);
3446        }
3447
3448        // weeks are a special case
3449        if (units === 'week') {
3450            this.weekday(0);
3451        }
3452        if (units === 'isoWeek') {
3453            this.isoWeekday(1);
3454        }
3455
3456        // quarters are also special
3457        if (units === 'quarter') {
3458            this.month(Math.floor(this.month() / 3) * 3);
3459        }
3460
3461        return this;
3462    }
3463
3464    function endOf (units) {
3465        units = normalizeUnits(units);
3466        if (units === undefined || units === 'millisecond') {
3467            return this;
3468        }
3469
3470        // 'date' is an alias for 'day', so it should be considered as such.
3471        if (units === 'date') {
3472            units = 'day';
3473        }
3474
3475        return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms')
vendor: 20,515 bytes, lines 3475-4181
3475;
3476    }
3477
3478    function valueOf () {
3479        return this._d.valueOf() - ((this._offset || 0) * 60000);
3480    }
3481
3482    function unix () {
3483        return Math.floor(this.valueOf() / 1000);
3484    }
3485
3486    function toDate () {
3487        return new Date(this.valueOf());
3488    }
3489
3490    function toArray () {
3491        var m = this;
3492        return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
3493    }
3494
3495    function toObject () {
3496        var m = this;
3497        return {
3498            years: m.year(),
3499            months: m.month(),
3500            date: m.date(),
3501            hours: m.hours(),
3502            minutes: m.minutes(),
3503            seconds: m.seconds(),
3504            milliseconds: m.milliseconds()
3505        };
3506    }
3507
3508    function toJSON () {
3509        // new Date(NaN).toJSON() === null
3510        return this.isValid() ? this.toISOString() : null;
3511    }
3512
3513    function isValid$2 () {
3514        return isValid(this);
3515    }
3516
3517    function parsingFlags () {
3518        return extend({}, getParsingFlags(this));
3519    }
3520
3521    function invalidAt () {
3522        return getParsingFlags(this).overflow;
3523    }
3524
3525    function creationData() {
3526        return {
3527            input: this._i,
3528            format: this._f,
3529            locale: this._locale,
3530            isUTC: this._isUTC,
3531            strict: this._strict
3532        };
3533    }
3534
3535    // FORMATTING
3536
3537    addFormatToken(0, ['gg', 2], 0, function () {
3538        return this.weekYear() % 100;
3539    });
3540
3541    addFormatToken(0, ['GG', 2], 0, function () {
3542        return this.isoWeekYear() % 100;
3543    });
3544
3545    function addWeekYearFormatToken (token, getter) {
3546        addFormatToken(0, [token, token.length], 0, getter);
3547    }
3548
3549    addWeekYearFormatToken('gggg',     'weekYear');
3550    addWeekYearFormatToken('ggggg',    'weekYear');
3551    addWeekYearFormatToken('GGGG',  'isoWeekYear');
3552    addWeekYearFormatToken('GGGGG', 'isoWeekYear');
3553
3554    // ALIASES
3555
3556    addUnitAlias('weekYear', 'gg');
3557    addUnitAlias('isoWeekYear', 'GG');
3558
3559    // PRIORITY
3560
3561    addUnitPriority('weekYear', 1);
3562    addUnitPriority('isoWeekYear', 1);
3563
3564
3565    // PARSING
3566
3567    addRegexToken('G',      matchSigned);
3568    addRegexToken('g',      matchSigned);
3569    addRegexToken('GG',     match1to2, match2);
3570    addRegexToken('gg',     match1to2, match2);
3571    addRegexToken('GGGG',   match1to4, match4);
3572    addRegexToken('gggg',   match1to4, match4);
3573    addRegexToken('GGGGG',  match1to6, match6);
3574    addRegexToken('ggggg',  match1to6, match6);
3575
3576    addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
3577        week[token.substr(0, 2)] = toInt(input);
3578    });
3579
3580    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
3581        week[token] = hooks.parseTwoDigitYear(input);
3582    });
3583
3584    // MOMENTS
3585
3586    function getSetWeekYear (input) {
3587        return getSetWeekYearHelper.call(this,
3588                input,
3589                this.week(),
3590                this.weekday(),
3591                this.localeData()._week.dow,
3592                this.localeData()._week.doy);
3593    }
3594
3595    function getSetISOWeekYear (input) {
3596        return getSetWeekYearHelper.call(this,
3597                input, this.isoWeek(), this.isoWeekday(), 1, 4);
3598    }
3599
3600    function getISOWeeksInYear () {
3601        return weeksInYear(this.year(), 1, 4);
3602    }
3603
3604    function getWeeksInYear () {
3605        var weekInfo = this.localeData()._week;
3606        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
3607    }
3608
3609    function getSetWeekYearHelper(input, week, weekday, dow, doy) {
3610        var weeksTarget;
3611        if (input == null) {
3612            return weekOfYear(this, dow, doy).year;
3613        } else {
3614            weeksTarget = weeksInYear(input, dow, doy);
3615            if (week > weeksTarget) {
3616                week = weeksTarget;
3617            }
3618            return setWeekAll.call(this, input, week, weekday, dow, doy);
3619        }
3620    }
3621
3622    function setWeekAll(weekYear, week, weekday, dow, doy) {
3623        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
3624            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
3625
3626        this.year(date.getUTCFullYear());
3627        this.month(date.getUTCMonth());
3628        this.date(date.getUTCDate());
3629        return this;
3630    }
3631
3632    // FORMATTING
3633
3634    addFormatToken('Q', 0, 'Qo', 'quarter');
3635
3636    // ALIASES
3637
3638    addUnitAlias('quarter', 'Q');
3639
3640    // PRIORITY
3641
3642    addUnitPriority('quarter', 7);
3643
3644    // PARSING
3645
3646    addRegexToken('Q', match1);
3647    addParseToken('Q', function (input, array) {
3648        array[MONTH] = (toInt(input) - 1) * 3;
3649    });
3650
3651    // MOMENTS
3652
3653    function getSetQuarter (input) {
3654        return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
3655    }
3656
3657    // FORMATTING
3658
3659    addFormatToken('D', ['DD', 2], 'Do', 'date');
3660
3661    // ALIASES
3662
3663    addUnitAlias('date', 'D');
3664
3665    // PRIORITY
3666    addUnitPriority('date', 9);
3667
3668    // PARSING
3669
3670    addRegexToken('D',  match1to2);
3671    addRegexToken('DD', match1to2, match2);
3672    addRegexToken('Do', function (isStrict, locale) {
3673        // TODO: Remove "ordinalParse" fallback in next major release.
3674        return isStrict ?
3675          (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
3676          locale._dayOfMonthOrdinalParseLenient;
3677    });
3678
3679    addParseToken(['D', 'DD'], DATE);
3680    addParseToken('Do', function (input, array) {
3681        array[DATE] = toInt(input.match(match1to2)[0]);
3682    });
3683
3684    // MOMENTS
3685
3686    var getSetDayOfMonth = makeGetSet('Date', true);
3687
3688    // FORMATTING
3689
3690    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
3691
3692    // ALIASES
3693
3694    addUnitAlias('dayOfYear', 'DDD');
3695
3696    // PRIORITY
3697    addUnitPriority('dayOfYear', 4);
3698
3699    // PARSING
3700
3701    addRegexToken('DDD',  match1to3);
3702    addRegexToken('DDDD', match3);
3703    addParseToken(['DDD', 'DDDD'], function (input, array, config) {
3704        config._dayOfYear = toInt(input);
3705    });
3706
3707    // HELPERS
3708
3709    // MOMENTS
3710
3711    function getSetDayOfYear (input) {
3712        var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
3713        return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
3714    }
3715
3716    // FORMATTING
3717
3718    addFormatToken('m', ['mm', 2], 0, 'minute');
3719
3720    // ALIASES
3721
3722    addUnitAlias('minute', 'm');
3723
3724    // PRIORITY
3725
3726    addUnitPriority('minute', 14);
3727
3728    // PARSING
3729
3730    addRegexToken('m',  match1to2);
3731    addRegexToken('mm', match1to2, match2);
3732    addParseToken(['m', 'mm'], MINUTE);
3733
3734    // MOMENTS
3735
3736    var getSetMinute = makeGetSet('Minutes', false);
3737
3738    // FORMATTING
3739
3740    addFormatToken('s', ['ss', 2], 0, 'second');
3741
3742    // ALIASES
3743
3744    addUnitAlias('second', 's');
3745
3746    // PRIORITY
3747
3748    addUnitPriority('second', 15);
3749
3750    // PARSING
3751
3752    addRegexToken('s',  match1to2);
3753    addRegexToken('ss', match1to2, match2);
3754    addParseToken(['s', 'ss'], SECOND);
3755
3756    // MOMENTS
3757
3758    var getSetSecond = makeGetSet('Seconds', false);
3759
3760    // FORMATTING
3761
3762    addFormatToken('S', 0, 0, function () {
3763        return ~~(this.millisecond() / 100);
3764    });
3765
3766    addFormatToken(0, ['SS', 2], 0, function () {
3767        return ~~(this.millisecond() / 10);
3768    });
3769
3770    addFormatToken(0, ['SSS', 3], 0, 'millisecond');
3771    addFormatToken(0, ['SSSS', 4], 0, function () {
3772        return this.millisecond() * 10;
3773    });
3774    addFormatToken(0, ['SSSSS', 5], 0, function () {
3775        return this.millisecond() * 100;
3776    });
3777    addFormatToken(0, ['SSSSSS', 6], 0, function () {
3778        return this.millisecond() * 1000;
3779    });
3780    addFormatToken(0, ['SSSSSSS', 7], 0, function () {
3781        return this.millisecond() * 10000;
3782    });
3783    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
3784        return this.millisecond() * 100000;
3785    });
3786    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
3787        return this.millisecond() * 1000000;
3788    });
3789
3790
3791    // ALIASES
3792
3793    addUnitAlias('millisecond', 'ms');
3794
3795    // PRIORITY
3796
3797    addUnitPriority('millisecond', 16);
3798
3799    // PARSING
3800
3801    addRegexToken('S',    match1to3, match1);
3802    addRegexToken('SS',   match1to3, match2);
3803    addRegexToken('SSS',  match1to3, match3);
3804
3805    var token;
3806    for (token = 'SSSS'; token.length <= 9; token += 'S') {
3807        addRegexToken(token, matchUnsigned);
3808    }
3809
3810    function parseMs(input, array) {
3811        array[MILLISECOND] = toInt(('0.' + input) * 1000);
3812    }
3813
3814    for (token = 'S'; token.length <= 9; token += 'S') {
3815        addParseToken(token, parseMs);
3816    }
3817    // MOMENTS
3818
3819    var getSetMillisecond = makeGetSet('Milliseconds', false);
3820
3821    // FORMATTING
3822
3823    addFormatToken('z',  0, 0, 'zoneAbbr');
3824    addFormatToken('zz', 0, 0, 'zoneName');
3825
3826    // MOMENTS
3827
3828    function getZoneAbbr () {
3829        return this._isUTC ? 'UTC' : '';
3830    }
3831
3832    function getZoneName () {
3833        return this._isUTC ? 'Coordinated Universal Time' : '';
3834    }
3835
3836    var proto = Moment.prototype;
3837
3838    proto.add               = add;
3839    proto.calendar          = calendar$1;
3840    proto.clone             = clone;
3841    proto.diff              = diff;
3842    proto.endOf             = endOf;
3843    proto.format            = format;
3844    proto.from              = from;
3845    proto.fromNow           = fromNow;
3846    proto.to                = to;
3847    proto.toNow             = toNow;
3848    proto.get               = stringGet;
3849    proto.invalidAt         = invalidAt;
3850    proto.isAfter           = isAfter;
3851    proto.isBefore          = isBefore;
3852    proto.isBetween         = isBetween;
3853    proto.isSame            = isSame;
3854    proto.isSameOrAfter     = isSameOrAfter;
3855    proto.isSameOrBefore    = isSameOrBefore;
3856    proto.isValid           = isValid$2;
3857    proto.lang              = lang;
3858    proto.locale            = locale;
3859    proto.localeData        = localeData;
3860    proto.max               = prototypeMax;
3861    proto.min               = prototypeMin;
3862    proto.parsingFlags      = parsingFlags;
3863    proto.set               = stringSet;
3864    proto.startOf           = startOf;
3865    proto.subtract          = subtract;
3866    proto.toArray           = toArray;
3867    proto.toObject          = toObject;
3868    proto.toDate            = toDate;
3869    proto.toISOString       = toISOString;
3870    proto.inspect           = inspect;
3871    proto.toJSON            = toJSON;
3872    proto.toString          = toString;
3873    proto.unix              = unix;
3874    proto.valueOf           = valueOf;
3875    proto.creationData      = creationData;
3876    proto.year       = getSetYear;
3877    proto.isLeapYear = getIsLeapYear;
3878    proto.weekYear    = getSetWeekYear;
3879    proto.isoWeekYear = getSetISOWeekYear;
3880    proto.quarter = proto.quarters = getSetQuarter;
3881    proto.month       = getSetMonth;
3882    proto.daysInMonth = getDaysInMonth;
3883    proto.week           = proto.weeks        = getSetWeek;
3884    proto.isoWeek        = proto.isoWeeks     = getSetISOWeek;
3885    proto.weeksInYear    = getWeeksInYear;
3886    proto.isoWeeksInYear = getISOWeeksInYear;
3887    proto.date       = getSetDayOfMonth;
3888    proto.day        = proto.days             = getSetDayOfWeek;
3889    proto.weekday    = getSetLocaleDayOfWeek;
3890    proto.isoWeekday = getSetISODayOfWeek;
3891    proto.dayOfYear  = getSetDayOfYear;
3892    proto.hour = proto.hours = getSetHour;
3893    proto.minute = proto.minutes = getSetMinute;
3894    proto.second = proto.seconds = getSetSecond;
3895    proto.millisecond = proto.milliseconds = getSetMillisecond;
3896    proto.utcOffset            = getSetOffset;
3897    proto.utc                  = setOffsetToUTC;
3898    proto.local                = setOffsetToLocal;
3899    proto.parseZone            = setOffsetToParsedOffset;
3900    proto.hasAlignedHourOffset = hasAlignedHourOffset;
3901    proto.isDST                = isDaylightSavingTime;
3902    proto.isLocal              = isLocal;
3903    proto.isUtcOffset          = isUtcOffset;
3904    proto.isUtc                = isUtc;
3905    proto.isUTC                = isUtc;
3906    proto.zoneAbbr = getZoneAbbr;
3907    proto.zoneName = getZoneName;
3908    proto.dates  = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
3909    proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
3910    proto.years  = deprecate('years accessor is deprecated. Use year instead', getSetYear);
3911    proto.zone   = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
3912    proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
3913
3914    function createUnix (input) {
3915        return createLocal(input * 1000);
3916    }
3917
3918    function createInZone () {
3919        return createLocal.apply(null, arguments).parseZone();
3920    }
3921
3922    function preParsePostFormat (string) {
3923        return string;
3924    }
3925
3926    var proto$1 = Locale.prototype;
3927
3928    proto$1.calendar        = calendar;
3929    proto$1.longDateFormat  = longDateFormat;
3930    proto$1.invalidDate     = invalidDate;
3931    proto$1.ordinal         = ordinal;
3932    proto$1.preparse        = preParsePostFormat;
3933    proto$1.postformat      = preParsePostFormat;
3934    proto$1.relativeTime    = relativeTime;
3935    proto$1.pastFuture      = pastFuture;
3936    proto$1.set             = set;
3937
3938    proto$1.months            =        localeMonths;
3939    proto$1.monthsShort       =        localeMonthsShort;
3940    proto$1.monthsParse       =        localeMonthsParse;
3941    proto$1.monthsRegex       = monthsRegex;
3942    proto$1.monthsShortRegex  = monthsShortRegex;
3943    proto$1.week = localeWeek;
3944    proto$1.firstDayOfYear = localeFirstDayOfYear;
3945    proto$1.firstDayOfWeek = localeFirstDayOfWeek;
3946
3947    proto$1.weekdays       =        localeWeekdays;
3948    proto$1.weekdaysMin    =        localeWeekdaysMin;
3949    proto$1.weekdaysShort  =        localeWeekdaysShort;
3950    proto$1.weekdaysParse  =        localeWeekdaysParse;
3951
3952    proto$1.weekdaysRegex       =        weekdaysRegex;
3953    proto$1.weekdaysShortRegex  =        weekdaysShortRegex;
3954    proto$1.weekdaysMinRegex    =        weekdaysMinRegex;
3955
3956    proto$1.isPM = localeIsPM;
3957    proto$1.meridiem = localeMeridiem;
3958
3959    function get$1 (format, index, field, setter) {
3960        var locale = getLocale();
3961        var utc = createUTC().set(setter, index);
3962        return locale[field](utc, format);
3963    }
3964
3965    function listMonthsImpl (format, index, field) {
3966        if (isNumber(format)) {
3967            index = format;
3968            format = undefined;
3969        }
3970
3971        format = format || '';
3972
3973        if (index != null) {
3974            return get$1(format, index, field, 'month');
3975        }
3976
3977        var i;
3978        var out = [];
3979        for (i = 0; i < 12; i++) {
3980            out[i] = get$1(format, i, field, 'month');
3981        }
3982        return out;
3983    }
3984
3985    // ()
3986    // (5)
3987    // (fmt, 5)
3988    // (fmt)
3989    // (true)
3990    // (true, 5)
3991    // (true, fmt, 5)
3992    // (true, fmt)
3993    function listWeekdaysImpl (localeSorted, format, index, field) {
3994        if (typeof localeSorted === 'boolean') {
3995            if (isNumber(format)) {
3996                index = format;
3997                format = undefined;
3998            }
3999
4000            format = format || '';
4001        } else {
4002            format = localeSorted;
4003            index = format;
4004            localeSorted = false;
4005
4006            if (isNumber(format)) {
4007                index = format;
4008                format = undefined;
4009            }
4010
4011            format = format || '';
4012        }
4013
4014        var locale = getLocale(),
4015            shift = localeSorted ? locale._week.dow : 0;
4016
4017        if (index != null) {
4018            return get$1(format, (index + shift) % 7, field, 'day');
4019        }
4020
4021        var i;
4022        var out = [];
4023        for (i = 0; i < 7; i++) {
4024            out[i] = get$1(format, (i + shift) % 7, field, 'day');
4025        }
4026        return out;
4027    }
4028
4029    function listMonths (format, index) {
4030        return listMonthsImpl(format, index, 'months');
4031    }
4032
4033    function listMonthsShort (format, index) {
4034        return listMonthsImpl(format, index, 'monthsShort');
4035    }
4036
4037    function listWeekdays (localeSorted, format, index) {
4038        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
4039    }
4040
4041    function listWeekdaysShort (localeSorted, format, index) {
4042        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
4043    }
4044
4045    function listWeekdaysMin (localeSorted, format, index) {
4046        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
4047    }
4048
4049    getSetGlobalLocale('en', {
4050        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
4051        ordinal : function (number) {
4052            var b = number % 10,
4053                output = (toInt(number % 100 / 10) === 1) ? 'th' :
4054                (b === 1) ? 'st' :
4055                (b === 2) ? 'nd' :
4056                (b === 3) ? 'rd' : 'th';
4057            return number + output;
4058        }
4059    });
4060
4061    // Side effect imports
4062
4063    hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
4064    hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
4065
4066    var mathAbs = Math.abs;
4067
4068    function abs () {
4069        var data           = this._data;
4070
4071        this._milliseconds = mathAbs(this._milliseconds);
4072        this._days         = mathAbs(this._days);
4073        this._months       = mathAbs(this._months);
4074
4075        data.milliseconds  = mathAbs(data.milliseconds);
4076        data.seconds       = mathAbs(data.seconds);
4077        data.minutes       = mathAbs(data.minutes);
4078        data.hours         = mathAbs(data.hours);
4079        data.months        = mathAbs(data.months);
4080        data.years         = mathAbs(data.years);
4081
4082        return this;
4083    }
4084
4085    function addSubtract$1 (duration, input, value, direction) {
4086        var other = createDuration(input, value);
4087
4088        duration._milliseconds += direction * other._milliseconds;
4089        duration._days         += direction * other._days;
4090        duration._months       += direction * other._months;
4091
4092        return duration._bubble();
4093    }
4094
4095    // supports only 2.0-style add(1, 's') or add(duration)
4096    function add$1 (input, value) {
4097        return addSubtract$1(this, input, value, 1);
4098    }
4099
4100    // supports only 2.0-style subtract(1, 's') or subtract(duration)
4101    function subtract$1 (input, value) {
4102        return addSubtract$1(this, input, value, -1);
4103    }
4104
4105    function absCeil (number) {
4106        if (number < 0) {
4107            return Math.floor(number);
4108        } else {
4109            return Math.ceil(number);
4110        }
4111    }
4112
4113    function bubble () {
4114        var milliseconds = this._milliseconds;
4115        var days         = this._days;
4116        var months       = this._months;
4117        var data         = this._data;
4118        var seconds, minutes, hours, years, monthsFromDays;
4119
4120        // if we have a mix of positive and negative values, bubble down first
4121        // check: https://github.com/moment/moment/issues/2166
4122        if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
4123                (milliseconds <= 0 && days <= 0 && months <= 0))) {
4124            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
4125            days = 0;
4126            months = 0;
4127        }
4128
4129        // The following code bubbles up values, see the tests for
4130        // examples of what that means.
4131        data.milliseconds = milliseconds % 1000;
4132
4133        seconds           = absFloor(milliseconds / 1000);
4134        data.seconds      = seconds % 60;
4135
4136        minutes           = absFloor(seconds / 60);
4137        data.minutes      = minutes % 60;
4138
4139        hours             = absFloor(minutes / 60);
4140        data.hours        = hours % 24;
4141
4142        days += absFloor(hours / 24);
4143
4144        // convert days to months
4145        monthsFromDays = absFloor(daysToMonths(days));
4146        months += monthsFromDays;
4147        days -= absCeil(monthsToDays(monthsFromDays));
4148
4149        // 12 months -> 1 year
4150        years = absFloor(months / 12);
4151        months %= 12;
4152
4153        data.days   = days;
4154        data.months = months;
4155        data.years  = years;
4156
4157        return this;
4158    }
4159
4160    function daysToMonths (days) {
4161        // 400 years have 146097 days (taking into account leap year rules)
4162        // 400 years have 12 months === 4800
4163        return days * 4800 / 146097;
4164    }
4165
4166    function monthsToDays (months) {
4167        // the reverse of daysToMonths
4168        return months * 146097 / 4800;
4169    }
4170
4171    function as (units) {
4172        if (!this.isValid()) {
4173            return NaN;
4174        }
4175        var days;
4176        var months;
4177        var milliseconds = this._milliseconds;
4178
4179        units = normalizeUnits(units);
4180
4181        if (units === 'month' || units === '
vendor: 1,721 bytes, lines 4181-4226
4181year') {
4182            days   = this._days   + milliseconds / 864e5;
4183            months = this._months + daysToMonths(days);
4184            return units === 'month' ? months : months / 12;
4185        } else {
4186            // handle milliseconds separately because of floating point math errors (issue #1867)
4187            days = this._days + Math.round(monthsToDays(this._months));
4188            switch (units) {
4189                case 'week'   : return days / 7     + milliseconds / 6048e5;
4190                case 'day'    : return days         + milliseconds / 864e5;
4191                case 'hour'   : return days * 24    + milliseconds / 36e5;
4192                case 'minute' : return days * 1440  + milliseconds / 6e4;
4193                case 'second' : return days * 86400 + milliseconds / 1000;
4194                // Math.floor prevents floating point math errors here
4195                case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
4196                default: throw new Error('Unknown unit ' + units);
4197            }
4198        }
4199    }
4200
4201    // TODO: Use this.as('ms')?
4202    function valueOf$1 () {
4203        if (!this.isValid()) {
4204            return NaN;
4205        }
4206        return (
4207            this._milliseconds +
4208            this._days * 864e5 +
4209            (this._months % 12) * 2592e6 +
4210            toInt(this._months / 12) * 31536e6
4211        );
4212    }
4213
4214    function makeAs (alias) {
4215        return function () {
4216            return this.as(alias);
4217        };
4218    }
4219
4220    var asMilliseconds = makeAs('ms');
4221    var asSeconds      = makeAs('s');
4222    var asMinutes      = makeAs('m');
4223    var asHours        = makeAs('h');
4224    var asDays         = makeAs('d');
4225    var asWeeks        = makeAs('w');
4226    var asMonths       = makeAs('M
vendor: 6,605 bytes, lines 4226-4418
4226');
4227    var asYears        = makeAs('y');
4228
4229    function clone$1 () {
4230        return createDuration(this);
4231    }
4232
4233    function get$2 (units) {
4234        units = normalizeUnits(units);
4235        return this.isValid() ? this[units + 's']() : NaN;
4236    }
4237
4238    function makeGetter(name) {
4239        return function () {
4240            return this.isValid() ? this._data[name] : NaN;
4241        };
4242    }
4243
4244    var milliseconds = makeGetter('milliseconds');
4245    var seconds      = makeGetter('seconds');
4246    var minutes      = makeGetter('minutes');
4247    var hours        = makeGetter('hours');
4248    var days         = makeGetter('days');
4249    var months       = makeGetter('months');
4250    var years        = makeGetter('years');
4251
4252    function weeks () {
4253        return absFloor(this.days() / 7);
4254    }
4255
4256    var round = Math.round;
4257    var thresholds = {
4258        ss: 44,         // a few seconds to seconds
4259        s : 45,         // seconds to minute
4260        m : 45,         // minutes to hour
4261        h : 22,         // hours to day
4262        d : 26,         // days to month
4263        M : 11          // months to year
4264    };
4265
4266    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
4267    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
4268        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
4269    }
4270
4271    function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
4272        var duration = createDuration(posNegDuration).abs();
4273        var seconds  = round(duration.as('s'));
4274        var minutes  = round(duration.as('m'));
4275        var hours    = round(duration.as('h'));
4276        var days     = round(duration.as('d'));
4277        var months   = round(duration.as('M'));
4278        var years    = round(duration.as('y'));
4279
4280        var a = seconds <= thresholds.ss && ['s', seconds]  ||
4281                seconds < thresholds.s   && ['ss', seconds] ||
4282                minutes <= 1             && ['m']           ||
4283                minutes < thresholds.m   && ['mm', minutes] ||
4284                hours   <= 1             && ['h']           ||
4285                hours   < thresholds.h   && ['hh', hours]   ||
4286                days    <= 1             && ['d']           ||
4287                days    < thresholds.d   && ['dd', days]    ||
4288                months  <= 1             && ['M']           ||
4289                months  < thresholds.M   && ['MM', months]  ||
4290                years   <= 1             && ['y']           || ['yy', years];
4291
4292        a[2] = withoutSuffix;
4293        a[3] = +posNegDuration > 0;
4294        a[4] = locale;
4295        return substituteTimeAgo.apply(null, a);
4296    }
4297
4298    // This function allows you to set the rounding function for relative time strings
4299    function getSetRelativeTimeRounding (roundingFunction) {
4300        if (roundingFunction === undefined) {
4301            return round;
4302        }
4303        if (typeof(roundingFunction) === 'function') {
4304            round = roundingFunction;
4305            return true;
4306        }
4307        return false;
4308    }
4309
4310    // This function allows you to set a threshold for relative time strings
4311    function getSetRelativeTimeThreshold (threshold, limit) {
4312        if (thresholds[threshold] === undefined) {
4313            return false;
4314        }
4315        if (limit === undefined) {
4316            return thresholds[threshold];
4317        }
4318        thresholds[threshold] = limit;
4319        if (threshold === 's') {
4320            thresholds.ss = limit - 1;
4321        }
4322        return true;
4323    }
4324
4325    function humanize (withSuffix) {
4326        if (!this.isValid()) {
4327            return this.localeData().invalidDate();
4328        }
4329
4330        var locale = this.localeData();
4331        var output = relativeTime$1(this, !withSuffix, locale);
4332
4333        if (withSuffix) {
4334            output = locale.pastFuture(+this, output);
4335        }
4336
4337        return locale.postformat(output);
4338    }
4339
4340    var abs$1 = Math.abs;
4341
4342    function sign(x) {
4343        return ((x > 0) - (x < 0)) || +x;
4344    }
4345
4346    function toISOString$1() {
4347        // for ISO strings we do not use the normal bubbling rules:
4348        //  * milliseconds bubble up until they become hours
4349        //  * days do not bubble at all
4350        //  * months bubble up until they become years
4351        // This is because there is no context-free conversion between hours and days
4352        // (think of clock changes)
4353        // and also not between days and months (28-31 days per month)
4354        if (!this.isValid()) {
4355            return this.localeData().invalidDate();
4356        }
4357
4358        var seconds = abs$1(this._milliseconds) / 1000;
4359        var days         = abs$1(this._days);
4360        var months       = abs$1(this._months);
4361        var minutes, hours, years;
4362
4363        // 3600 seconds -> 60 minutes -> 1 hour
4364        minutes           = absFloor(seconds / 60);
4365        hours             = absFloor(minutes / 60);
4366        seconds %= 60;
4367        minutes %= 60;
4368
4369        // 12 months -> 1 year
4370        years  = absFloor(months / 12);
4371        months %= 12;
4372
4373
4374        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
4375        var Y = years;
4376        var M = months;
4377        var D = days;
4378        var h = hours;
4379        var m = minutes;
4380        var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
4381        var total = this.asSeconds();
4382
4383        if (!total) {
4384            // this is the same as C#'s (Noda) and python (isodate)...
4385            // but not other JS (goog.date)
4386            return 'P0D';
4387        }
4388
4389        var totalSign = total < 0 ? '-' : '';
4390        var ymSign = sign(this._months) !== sign(total) ? '-' : '';
4391        var daysSign = sign(this._days) !== sign(total) ? '-' : '';
4392        var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
4393
4394        return totalSign + 'P' +
4395            (Y ? ymSign + Y + 'Y' : '') +
4396            (M ? ymSign + M + 'M' : '') +
4397            (D ? daysSign + D + 'D' : '') +
4398            ((h || m || s) ? 'T' : '') +
4399            (h ? hmsSign + h + 'H' : '') +
4400            (m ? hmsSign + m + 'M' : '') +
4401            (s ? hmsSign + s + 'S' : '');
4402    }
4403
4404    var proto$2 = Duration.prototype;
4405
4406    proto$2.isValid        = isValid$1;
4407    proto$2.abs            = abs;
4408    proto$2.add            = add$1;
4409    proto$2.subtract       = subtract$1;
4410    proto$2.as             = as;
4411    proto$2.asMilliseconds = asMilliseconds;
4412    proto$2.asSeconds      = asSeconds;
4413    proto$2.asMinutes      = asMinutes;
4414    proto$2.asHours        = asHours;
4415    proto$2.asDays         = asDays;
4416    proto$2.asWeeks        = asWeeks;
4417    proto$2.asMonths       = asMonths;
4418    proto$2.as
4418Years        = asYears;
4419    proto$2.valueOf        = valueOf$1;
4420    proto$2._bubble        = bubble;
4421    proto$2.clone          = clone$1;
4422    proto$2.get            = get$2;
4423    proto$2.milliseconds   = milliseconds;
4424    proto$2.seconds        = seconds;
4425    proto$2.minutes        = minutes;
4426    proto$2.hours          = hours;
4427    proto$2.days           = days;
4428    proto$2.weeks          = weeks;
4429    proto$2.months         = months;
4430    proto$2.years          = years;
4431    proto$2.humanize       = humanize;
4432    proto$2.toISOString    = toISOString$1;
4433    proto$2.toString       = toISOString$1;
4434    proto$2.toJSON         = toISOString$1;
4435    proto$2.locale         = locale;
4436    proto$2.localeData     = localeData;
4437
4438    proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
4439    proto$2.lang = lang;
4440
4441    // Side effect imports
4442
4443    // FORMATTING
4444
4445    addFormatToken('X', 0, 0, 'unix');
4446    addFormatToken('x', 0, 0, 'valueOf');
4447
4448    // PARSING
4449
4450    addRegexToken('x', matchSigned);
4451    addRegexToken('X', matchTimestamp);
4452    addParseToken('X', function (input, array, config) {
4453        config._d = new Date(parseFloat(input, 10) * 1000);
4454    });
4455    addParseToken('x', function (input, array, config) {
4456        config._d = new Date(toInt(input));
4457    });
4458
4459    // Side effect imports
4460
4461
4462    hooks.version = '2.22.2';
4463
4464    setHookCallback(createLocal);
4465
4466    hooks.fn                    = proto;
4467    hooks.min                   = min;
4468    hooks.max                   = max;
4469    hooks.now                   = now;
4470    hooks.utc                   = createUTC;
4471    hooks.unix                  = createUnix;
4472    hooks.months                = listMonths;
4473    hooks.isDate                = isDate;
4474    hooks.locale                = getSetGlobalLocale;
4475    hooks.invalid               = createInvalid;
4476    hooks.duration              = createDuration;
4477    hooks.isMoment              = isMoment;
4478    hooks.weekdays              = listWeekdays;
4479    hooks.parseZone             = createInZone;
4480    hooks.localeData            = getLocale;
4481    hooks.isDuration            = isDuration;
4482    hooks.monthsShort           = listMonthsShort;
4483    hooks.weekdaysMin           = listWeekdaysMin;
4484    hooks.defineLocale          = defineLocale;
4485    hooks.updateLocale          = updateLocale;
4486    hooks.locales               = listLocales;
4487    hooks.weekdaysShort         = listWeekdaysShort;
4488    hooks.normalizeUnits        = normalizeUnits;
4489    hooks.relativeTimeRounding  = getSetRelativeTimeRounding;
4490    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
4491    hooks.calendarFormat        = getCalendarFormat;
4492    hooks.prototype             = proto;
4493
4494    // currently HTML5 input type only supports 24-hour formats
4495    hooks.HTML5_FMT = {
4496        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',             // <input type="datetime-local" />
4497        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',  // <input type="datetime-local" step="1" />
4498        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',   // <input type="datetime-local" step="0.001" />
4499        DATE: 'YYYY-MM-DD',                             // <input type="date" />
4500        TIME: 'HH:mm',                                  // <input type="time" />
4501        TIME_SECONDS: 'HH:mm:ss',                       // <input type="time" step="1" />
4502        TIME_MS: 'HH:mm:ss.SSS',                        // <input type="time" step="0.001" />
4503        WEEK: 'YYYY-[W]WW',                             // <input type="week" />
4504        MONTH: 'YYYY-MM'                                // <input type="month" />
4505    };
4506
4507    return hooks;
4508
4509})));
4510
4511
4512//! moment.js locale configuration
4513
4514;(function (global, factory) {
4515   typeof exports === 'object' && typeof module !== 'undefined'
4516       && typeof require === 'function' ? factory(require('../moment')) :
4517   typeof define === 'function' && define.amd ? define(['../moment'], factory) :
4518   factory(global.moment)
4519}(this, (function (moment) { 'use strict';
4520
4521
4522    var enGb = moment.defineLocale('en-gb', {
4523        months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
4524        monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
4525        weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
4526        weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
4527        weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
4528        longDateFormat : {
4529            LT : 'HH:mm',
4530            LTS : 'HH:mm:ss',
4531            L : 'DD/MM/YYYY',
4532            LL : 'D MMMM YYYY',
4533            LLL : 'D MMMM YYYY HH:mm',
4534            LLLL : 'dddd, D MMMM YYYY HH:mm'
4535        },
4536        calendar : {
4537            sameDay : '[Today at] LT',
4538            nextDay : '[Tomorrow at] LT',
4539            nextWeek : 'dddd [at] LT',
4540            lastDay : '[Yesterday at] LT',
4541            lastWeek : '[Last] dddd [at] LT',
4542            sameElse : 'L'
4543        },
4544        relativeTime : {
4545            future : 'in %s',
4546            past : '%s ago',
4547            s : 'a few seconds',
4548            ss : '%d seconds',
4549            m : 'a minute',
4550            mm : '%d minutes',
4551            h : 'an hour',
4552            hh : '%d hours',
4553            d : 'a day',
4554            dd : '%d days',
4555            M : 'a month',
4556            MM : '%d months',
4557            y : 'a year',
4558            yy : '%d years'
4559        },
4560        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
4561        ordinal : function (number) {
4562            var b = number % 10,
4563                output = (~~(number % 100 / 10) === 1) ? 'th' :
4564                (b === 1) ? 'st' :
4565                (b === 2) ? 'nd' :
4566                (b === 3) ? 'rd' : 'th';
4567            return number + output;
4568        },
4569        week : {
4570            dow : 1, // Monday is the first day of the week.
4571            doy : 4  // The week that contains Jan 4th is the first week of the year.
4572        }
4573    });
4574
4575    return enGb;
vendor: 8,904 bytes, lines 4576-4765
4576
4577})));
4578
4579
4580//! moment.js locale configuration
4581
4582;(function (global, factory) {
4583   typeof exports === 'object' && typeof module !== 'undefined'
4584       && typeof require === 'function' ? factory(require('../moment')) :
4585   typeof define === 'function' && define.amd ? define(['../moment'], factory) :
4586   factory(global.moment)
4587}(this, (function (moment) { 'use strict';
4588
4589
4590    function plural(word, num) {
4591        var forms = word.split('_');
4592        return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
4593    }
4594    function relativeTimeWithPlural(number, withoutSuffix, key) {
4595        var format = {
4596            'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
4597            'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
4598            'hh': 'час_часа_часов',
4599            'dd': 'день_дня_дней',
4600            'MM': 'месяц_месяца_месяцев',
4601            'yy': 'год_года_лет'
4602        };
4603        if (key === 'm') {
4604            return withoutSuffix ? 'минута' : 'минуту';
4605        }
4606        else {
4607            return number + ' ' + plural(format[key], +number);
4608        }
4609    }
4610    var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
4611
4612    // http://new.gramota.ru/spravka/rules/139-prop : § 103
4613    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
4614    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
4615    var ru = moment.defineLocale('ru', {
4616        months : {
4617            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),
4618            standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')
4619        },
4620        monthsShort : {
4621            // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
4622            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),
4623            standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')
4624        },
4625        weekdays : {
4626            standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
4627            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),
4628            isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
4629        },
4630        weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
4631        weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
4632        monthsParse : monthsParse,
4633        longMonthsParse : monthsParse,
4634        shortMonthsParse : monthsParse,
4635
4636        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
4637        monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
4638
4639        // копия предыдущего
4640        monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
4641
4642        // полные названия с падежами
4643        monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
4644
4645        // Выражение, которое соотвествует только сокращённым формам
4646        monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
4647        longDateFormat : {
4648            LT : 'H:mm',
4649            LTS : 'H:mm:ss',
4650            L : 'DD.MM.YYYY',
4651            LL : 'D MMMM YYYY г.',
4652            LLL : 'D MMMM YYYY г., H:mm',
4653            LLLL : 'dddd, D MMMM YYYY г., H:mm'
4654        },
4655        calendar : {
4656            sameDay: '[Сегодня, в] LT',
4657            nextDay: '[Завтра, в] LT',
4658            lastDay: '[Вчера, в] LT',
4659            nextWeek: function (now) {
4660                if (now.week() !== this.week()) {
4661                    switch (this.day()) {
4662                        case 0:
4663                            return '[В следующее] dddd, [в] LT';
4664                        case 1:
4665                        case 2:
4666                        case 4:
4667                            return '[В следующий] dddd, [в] LT';
4668                        case 3:
4669                        case 5:
4670                        case 6:
4671                            return '[В следующую] dddd, [в] LT';
4672                    }
4673                } else {
4674                    if (this.day() === 2) {
4675                        return '[Во] dddd, [в] LT';
4676                    } else {
4677                        return '[В] dddd, [в] LT';
4678                    }
4679                }
4680            },
4681            lastWeek: function (now) {
4682                if (now.week() !== this.week()) {
4683                    switch (this.day()) {
4684                        case 0:
4685                            return '[В прошлое] dddd, [в] LT';
4686                        case 1:
4687                        case 2:
4688                        case 4:
4689                            return '[В прошлый] dddd, [в] LT';
4690                        case 3:
4691                        case 5:
4692                        case 6:
4693                            return '[В прошлую] dddd, [в] LT';
4694                    }
4695                } else {
4696                    if (this.day() === 2) {
4697                        return '[Во] dddd, [в] LT';
4698                    } else {
4699                        return '[В] dddd, [в] LT';
4700                    }
4701                }
4702            },
4703            sameElse: 'L'
4704        },
4705        relativeTime : {
4706            future : 'через %s',
4707            past : '%s назад',
4708            s : 'несколько секунд',
4709            ss : relativeTimeWithPlural,
4710            m : relativeTimeWithPlural,
4711            mm : relativeTimeWithPlural,
4712            h : 'час',
4713            hh : relativeTimeWithPlural,
4714            d : 'день',
4715            dd : relativeTimeWithPlural,
4716            M : 'месяц',
4717            MM : relativeTimeWithPlural,
4718            y : 'год',
4719            yy : relativeTimeWithPlural
4720        },
4721        meridiemParse: /ночи|утра|дня|вечера/i,
4722        isPM : function (input) {
4723            return /^(дня|вечера)$/.test(input);
4724        },
4725        meridiem : function (hour, minute, isLower) {
4726            if (hour < 4) {
4727                return 'ночи';
4728            } else if (hour < 12) {
4729                return 'утра';
4730            } else if (hour < 17) {
4731                return 'дня';
4732            } else {
4733                return 'вечера';
4734            }
4735        },
4736        dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
4737        ordinal: function (number, period) {
4738            switch (period) {
4739                case 'M':
4740                case 'd':
4741                case 'DDD':
4742                    return number + '-й';
4743                case 'D':
4744                    return number + '-го';
4745                case 'w':
4746                case 'W':
4747                    return number + '-я';
4748                default:
4749                    return number;
4750            }
4751        },
4752        week : {
4753            dow : 1, // Monday is the first day of the week.
4754            doy : 4  // The week that contains Jan 4th is the first week of the year.
4755        }
4756    });
4757
4758    return ru;
4759
4760})));
4761
4762
4763!function (a) {
4764    "use strict";
4765    if ("function" == typeof define && define.amd) define(["jquery", "moment"], a);
vendor: 28,852 bytes, lines 4765-5120
4765 else if ("object" == typeof exports) module.exports = a(require("jquery"), require("moment")); else {
4766        if ("undefined" == typeof jQuery) throw"bootstrap-datetimepicker requires jQuery to be loaded first";
4767        if ("undefined" == typeof moment) throw"bootstrap-datetimepicker requires Moment.js to be loaded first";
4768        a(jQuery, moment)
4769    }
4770}(function (a, b) {
4771    "use strict";
4772    if (!b) throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");
4773    var c = function (c, d) {
4774        var e, f, g, h, i, j, k, l = {}, m = !0, n = !1, o = !1, p = 0,
4775            q = [{clsName: "days", navFnc: "M", navStep: 1}, {
4776                clsName: "months",
4777                navFnc: "y",
4778                navStep: 1
4779            }, {clsName: "years", navFnc: "y", navStep: 10}, {clsName: "decades", navFnc: "y", navStep: 100}],
4780            r = ["days", "months", "years", "decades"], s = ["top", "bottom", "auto"], t = ["left", "right", "auto"],
4781            u = ["default", "top", "bottom"], v = {
4782                up: 38,
4783                38: "up",
4784                down: 40,
4785                40: "down",
4786                left: 37,
4787                37: "left",
4788                right: 39,
4789                39: "right",
4790                tab: 9,
4791                9: "tab",
4792                escape: 27,
4793                27: "escape",
4794                enter: 13,
4795                13: "enter",
4796                pageUp: 33,
4797                33: "pageUp",
4798                pageDown: 34,
4799                34: "pageDown",
4800                shift: 16,
4801                16: "shift",
4802                control: 17,
4803                17: "control",
4804                space: 32,
4805                32: "space",
4806                t: 84,
4807                84: "t",
4808                delete: 46,
4809                46: "delete"
4810            }, w = {}, x = function () {
4811                return void 0 !== b.tz && void 0 !== d.timeZone && null !== d.timeZone && "" !== d.timeZone
4812            }, y = function (a) {
4813                var c;
4814                return c = void 0 === a || null === a ? b() : b.isDate(a) || b.isMoment(a) ? b(a) : x() ? b.tz(a, j, d.useStrict, d.timeZone) : b(a, j, d.useStrict), x() && c.tz(d.timeZone), c
4815            }, z = function (a) {
4816                if ("string" != typeof a || a.length > 1) throw new TypeError("isEnabled expects a single character string parameter");
4817                switch (a) {
4818                    case"y":
4819                        return i.indexOf("Y") !== -1;
4820                    case"M":
4821                        return i.indexOf("M") !== -1;
4822                    case"d":
4823                        return i.toLowerCase().indexOf("d") !== -1;
4824                    case"h":
4825                    case"H":
4826                        return i.toLowerCase().indexOf("h") !== -1;
4827                    case"m":
4828                        return i.indexOf("m") !== -1;
4829                    case"s":
4830                        return i.indexOf("s") !== -1;
4831                    default:
4832                        return !1
4833                }
4834            }, A = function () {
4835                return z("h") || z("m") || z("s")
4836            }, B = function () {
4837                return z("y") || z("M") || z("d")
4838            }, C = function () {
4839                var b = a("<thead>").append(a("<tr>").append(a("<th>").addClass("prev").attr("data-action", "previous").append(a("<span>").addClass(d.icons.previous))).append(a("<th>").addClass("picker-switch").attr("data-action", "pickerSwitch").attr("colspan", d.calendarWeeks ? "6" : "5")).append(a("<th>").addClass("next").attr("data-action", "next").append(a("<span>").addClass(d.icons.next)))),
4840                    c = a("<tbody>").append(a("<tr>").append(a("<td>").attr("colspan", d.calendarWeeks ? "8" : "7")));
4841                return [a("<div>").addClass("datepicker-days").append(a("<table>").addClass("table-condensed").append(b).append(a("<tbody>"))), a("<div>").addClass("datepicker-months").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())), a("<div>").addClass("datepicker-years").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())), a("<div>").addClass("datepicker-decades").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone()))]
4842            }, D = function () {
4843                var b = a("<tr>"), c = a("<tr>"), e = a("<tr>");
4844                return z("h") && (b.append(a("<td>").append(a("<a>").attr({
4845                    href: "#",
4846                    tabindex: "-1",
4847                    title: d.tooltips.incrementHour
4848                }).addClass("btn").attr("data-action", "incrementHours").append(a("<span>").addClass(d.icons.up)))), c.append(a("<td>").append(a("<span>").addClass("timepicker-hour").attr({
4849                    "data-time-component": "hours",
4850                    title: d.tooltips.pickHour
4851                }).attr("data-action", "showHours"))), e.append(a("<td>").append(a("<a>").attr({
4852                    href: "#",
4853                    tabindex: "-1",
4854                    title: d.tooltips.decrementHour
4855                }).addClass("btn").attr("data-action", "decrementHours").append(a("<span>").addClass(d.icons.down))))), z("m") && (z("h") && (b.append(a("<td>").addClass("separator")), c.append(a("<td>").addClass("separator").html(":")), e.append(a("<td>").addClass("separator"))), b.append(a("<td>").append(a("<a>").attr({
4856                    href: "#",
4857                    tabindex: "-1",
4858                    title: d.tooltips.incrementMinute
4859                }).addClass("btn").attr("data-action", "incrementMinutes").append(a("<span>").addClass(d.icons.up)))), c.append(a("<td>").append(a("<span>").addClass("timepicker-minute").attr({
4860                    "data-time-component": "minutes",
4861                    title: d.tooltips.pickMinute
4862                }).attr("data-action", "showMinutes"))), e.append(a("<td>").append(a("<a>").attr({
4863                    href: "#",
4864                    tabindex: "-1",
4865                    title: d.tooltips.decrementMinute
4866                }).addClass("btn").attr("data-action", "decrementMinutes").append(a("<span>").addClass(d.icons.down))))), z("s") && (z("m") && (b.append(a("<td>").addClass("separator")), c.append(a("<td>").addClass("separator").html(":")), e.append(a("<td>").addClass("separator"))), b.append(a("<td>").append(a("<a>").attr({
4867                    href: "#",
4868                    tabindex: "-1",
4869                    title: d.tooltips.incrementSecond
4870                }).addClass("btn").attr("data-action", "incrementSeconds").append(a("<span>").addClass(d.icons.up)))), c.append(a("<td>").append(a("<span>").addClass("timepicker-second").attr({
4871                    "data-time-component": "seconds",
4872                    title: d.tooltips.pickSecond
4873                }).attr("data-action", "showSeconds"))), e.append(a("<td>").append(a("<a>").attr({
4874                    href: "#",
4875                    tabindex: "-1",
4876                    title: d.tooltips.decrementSecond
4877                }).addClass("btn").attr("data-action", "decrementSeconds").append(a("<span>").addClass(d.icons.down))))), h || (b.append(a("<td>").addClass("separator")), c.append(a("<td>").append(a("<button>").addClass("btn btn-primary").attr({
4878                    "data-action": "togglePeriod",
4879                    tabindex: "-1",
4880                    title: d.tooltips.togglePeriod
4881                }))), e.append(a("<td>").addClass("separator"))), a("<div>").addClass("timepicker-picker").append(a("<table>").addClass("table-condensed").append([b, c, e]))
4882            }, E = function () {
4883                var b = a("<div>").addClass("timepicker-hours").append(a("<table>").addClass("table-condensed")),
4884                    c = a("<div>").addClass("timepicker-minutes").append(a("<table>").addClass("table-condensed")),
4885                    d = a("<div>").addClass("timepicker-seconds").append(a("<table>").addClass("table-condensed")),
4886                    e = [D()];
4887                return z("h") && e.push(b), z("m") && e.push(c), z("s") && e.push(d), e
4888            }, F = function () {
4889                var b = [];
4890                return d.showTodayButton && b.push(a("<td>").append(a("<a>").attr({
4891                    "data-action": "today",
4892                    title: d.tooltips.today
4893                }).append(a("<span>").addClass(d.icons.today)))), !d.sideBySide && B() && A() && b.push(a("<td>").append(a("<a>").attr({
4894                    "data-action": "togglePicker",
4895                    title: d.tooltips.selectTime
4896                }).append(a("<span>").addClass(d.icons.time)))), d.showClear && b.push(a("<td>").append(a("<a>").attr({
4897                    "data-action": "clear",
4898                    title: d.tooltips.clear
4899                }).append(a("<span>").addClass(d.icons.clear)))), d.showClose && b.push(a("<td>").append(a("<a>").attr({
4900                    "data-action": "close",
4901                    title: d.tooltips.close
4902                }).append(a("<span>").addClass(d.icons.close)))), a("<table>").addClass("table-condensed").append(a("<tbody>").append(a("<tr>").append(b)))
4903            }, G = function () {
4904                var b = a("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"),
4905                    c = a("<div>").addClass("datepicker").append(C()), e = a("<div>").addClass("timepicker").append(E()),
4906                    f = a("<ul>").addClass("list-unstyled"),
4907                    g = a("<li>").addClass("picker-switch" + (d.collapse ? " accordion-toggle" : "")).append(F());
4908                return d.inline && b.removeClass("dropdown-menu"), h && b.addClass("usetwentyfour"), z("s") && !h && b.addClass("wider"), d.sideBySide && B() && A() ? (b.addClass("timepicker-sbs"), "top" === d.toolbarPlacement && b.append(g), b.append(a("<div>").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))), "bottom" === d.toolbarPlacement && b.append(g), b) : ("top" === d.toolbarPlacement && f.append(g), B() && f.append(a("<li>").addClass(d.collapse && A() ? "collapse in" : "").append(c)), "default" === d.toolbarPlacement && f.append(g), A() && f.append(a("<li>").addClass(d.collapse && B() ? "collapse" : "").append(e)), "bottom" === d.toolbarPlacement && f.append(g), b.append(f))
4909            }, H = function () {
4910                var b, e = {};
4911                return b = c.is("input") || d.inline ? c.data() : c.find("input").data(), b.dateOptions && b.dateOptions instanceof Object && (e = a.extend(!0, e, b.dateOptions)), a.each(d, function (a) {
4912                    var c = "date" + a.charAt(0).toUpperCase() + a.slice(1);
4913                    void 0 !== b[c] && (e[a] = b[c])
4914                }), e
4915            }, I = function () {
4916                var b, e = (n || c).position(), f = (n || c).offset(), g = d.widgetPositioning.vertical,
4917                    h = d.widgetPositioning.horizontal;
4918                if (d.widgetParent) b = d.widgetParent.append(o); else if (c.is("input")) b = c.after(o).parent(); else {
4919                    if (d.inline) return void (b = c.append(o));
4920                    b = c, c.children().first().after(o)
4921                }
4922                if ("auto" === g && (g = f.top + 1.5 * o.height() >= a(window).height() + a(window).scrollTop() && o.height() + c.outerHeight() < f.top ? "top" : "bottom"), "auto" === h && (h = b.width() < f.left + o.outerWidth() / 2 && f.left + o.outerWidth() > a(window).width() ? "right" : "left"), "top" === g ? o.addClass("top").removeClass("bottom") : o.addClass("bottom").removeClass("top"), "right" === h ? o.addClass("pull-right") : o.removeClass("pull-right"), "static" === b.css("position") && (b = b.parents().filter(function () {
4923                    return "static" !== a(this).css("position")
4924                }).first()), 0 === b.length) throw new Error("datetimepicker component should be placed within a non-static positioned container");
4925                o.css({
4926                    top: "top" === g ? "auto" : e.top + c.outerHeight(),
4927                    bottom: "top" === g ? b.outerHeight() - (b === c ? 0 : e.top) : "auto",
4928                    left: "left" === h ? b === c ? 0 : e.left : "auto",
4929                    right: "left" === h ? "auto" : b.outerWidth() - c.outerWidth() - (b === c ? 0 : e.left)
4930                })
4931            }, J = function (a) {
4932                "dp.change" === a.type && (a.date && a.date.isSame(a.oldDate) || !a.date && !a.oldDate) || c.trigger(a)
4933            }, K = function (a) {
4934                "y" === a && (a = "YYYY"), J({type: "dp.update", change: a, viewDate: f.clone()})
4935            }, L = function (a) {
4936                o && (a && (k = Math.max(p, Math.min(3, k + a))), o.find(".datepicker > div").hide().filter(".datepicker-" + q[k].clsName).show())
4937            }, M = function () {
4938                var b = a("<tr>"), c = f.clone().startOf("w").startOf("d");
4939                for (d.calendarWeeks === !0 && b.append(a("<th>").addClass("cw").text("#")); c.isBefore(f.clone().endOf("w"));) b.append(a("<th>").addClass("dow").text(c.format("dd"))), c.add(1, "d");
4940                o.find(".datepicker-days thead").append(b)
4941            }, N = function (a) {
4942                return d.disabledDates[a.format("YYYY-MM-DD")] === !0
4943            }, O = function (a) {
4944                return d.enabledDates[a.format("YYYY-MM-DD")] === !0
4945            }, P = function (a) {
4946                return d.disabledHours[a.format("H")] === !0
4947            }, Q = function (a) {
4948                return d.enabledHours[a.format("H")] === !0
4949            }, R = function (b, c) {
4950                if (!b.isValid()) return !1;
4951                if (d.disabledDates && "d" === c && N(b)) return !1;
4952                if (d.enabledDates && "d" === c && !O(b)) return !1;
4953                if (d.minDate && b.isBefore(d.minDate, c)) return !1;
4954                if (d.maxDate && b.isAfter(d.maxDate, c)) return !1;
4955                if (d.daysOfWeekDisabled && "d" === c && d.daysOfWeekDisabled.indexOf(b.day()) !== -1) return !1;
4956                if (d.disabledHours && ("h" === c || "m" === c || "s" === c) && P(b)) return !1;
4957                if (d.enabledHours && ("h" === c || "m" === c || "s" === c) && !Q(b)) return !1;
4958                if (d.disabledTimeIntervals && ("h" === c || "m" === c || "s" === c)) {
4959                    var e = !1;
4960                    if (a.each(d.disabledTimeIntervals, function () {
4961                        if (b.isBetween(this[0], this[1])) return e = !0, !1
4962                    }), e) return !1
4963                }
4964                return !0
4965            }, S = function () {
4966                for (var b = [], c = f.clone().startOf("y").startOf("d"); c.isSame(f, "y");) b.push(a("<span>").attr("data-action", "selectMonth").addClass("month").text(c.format("MMM"))), c.add(1, "M");
4967                o.find(".datepicker-months td").empty().append(b)
4968            }, T = function () {
4969                var b = o.find(".datepicker-months"), c = b.find("th"), g = b.find("tbody").find("span");
4970                c.eq(0).find("span").attr("title", d.tooltips.prevYear), c.eq(1).attr("title", d.tooltips.selectYear), c.eq(2).find("span").attr("title", d.tooltips.nextYear), b.find(".disabled").removeClass("disabled"), R(f.clone().subtract(1, "y"), "y") || c.eq(0).addClass("disabled"), c.eq(1).text(f.year()), R(f.clone().add(1, "y"), "y") || c.eq(2).addClass("disabled"), g.removeClass("active"), e.isSame(f, "y") && !m && g.eq(e.month()).addClass("active"), g.each(function (b) {
4971                    R(f.clone().month(b), "M") || a(this).addClass("disabled")
4972                })
4973            }, U = function () {
4974                var a = o.find(".datepicker-years"), b = a.find("th"), c = f.clone().subtract(5, "y"),
4975                    g = f.clone().add(6, "y"), h = "";
4976                for (b.eq(0).find("span").attr("title", d.tooltips.prevDecade), b.eq(1).attr("title", d.tooltips.selectDecade), b.eq(2).find("span").attr("title", d.tooltips.nextDecade), a.find(".disabled").removeClass("disabled"), d.minDate && d.minDate.isAfter(c, "y") && b.eq(0).addClass("disabled"), b.eq(1).text(c.year() + "-" + g.year()), d.maxDate && d.maxDate.isBefore(g, "y") && b.eq(2).addClass("disabled"); !c.isAfter(g, "y");) h += '<span data-action="selectYear" class="year' + (c.isSame(e, "y") && !m ? " active" : "") + (R(c, "y") ? "" : " disabled") + '">' + c.year() + "</span>", c.add(1, "y");
4977                a.find("td").html(h)
4978            }, V = function () {
4979                var a, c = o.find(".datepicker-decades"), g = c.find("th"), h = b({y: f.year() - f.year() % 100 - 1}),
4980                    i = h.clone().add(100, "y"), j = h.clone(), k = !1, l = !1, m = "";
4981                for (g.eq(0).find("span").attr("title", d.tooltips.prevCentury), g.eq(2).find("span").attr("title", d.tooltips.nextCentury), c.find(".disabled").removeClass("disabled"), (h.isSame(b({y: 1900})) || d.minDate && d.minDate.isAfter(h, "y")) && g.eq(0).addClass("disabled"), g.eq(1).text(h.year() + "-" + i.year()), (h.isSame(b({y: 2e3})) || d.maxDate && d.maxDate.isBefore(i, "y")) && g.eq(2).addClass("disabled"); !h.isAfter(i, "y");) a = h.year() + 12, k = d.minDate && d.minDate.isAfter(h, "y") && d.minDate.year() <= a, l = d.maxDate && d.maxDate.isAfter(h, "y") && d.maxDate.year() <= a, m += '<span data-action="selectDecade" class="decade' + (e.isAfter(h) && e.year() <= a ? " active" : "") + (R(h, "y") || k || l ? "" : " disabled") + '" data-selection="' + (h.year() + 6) + '">' + (h.year() + 1) + " - " + (h.year() + 12) + "</span>", h.add(12, "y");
4982                m += "<span></span><span></span><span></span>", c.find("td").html(m), g.eq(1).text(j.year() + 1 + "-" + h.year())
4983            }, W = function () {
4984                var b, c, g, h = o.find(".datepicker-days"), i = h.find("th"), j = [], k = [];
4985                if (B()) {
4986                    for (i.eq(0).find("span").attr("title", d.tooltips.prevMonth), i.eq(1).attr("title", d.tooltips.selectMonth), i.eq(2).find("span").attr("title", d.tooltips.nextMonth), h.find(".disabled").removeClass("disabled"), i.eq(1).text(f.format(d.dayViewHeaderFormat)), R(f.clone().subtract(1, "M"), "M") || i.eq(0).addClass("disabled"), R(f.clone().add(1, "M"), "M") || i.eq(2).addClass("disabled"), b = f.clone().startOf("M").startOf("w").startOf("d"), g = 0; g < 42; g++) 0 === b.weekday() && (c = a("<tr>"), d.calendarWeeks && c.append('<td class="cw">' + b.week() + "</td>"), j.push(c)), k = ["day"], b.isBefore(f, "M") && k.push("old"), b.isAfter(f, "M") && k.push("new"), b.isSame(e, "d") && !m && k.push("active"), R(b, "d") || k.push("disabled"), b.isSame(y(), "d") && k.push("today"), 0 !== b.day() && 6 !== b.day() || k.push("weekend"), J({
4987                        type: "dp.classify",
4988                        date: b,
4989                        classNames: k
4990                    }), c.append('<td data-action="selectDay" data-day="' + b.format("L") + '" class="' + k.join(" ") + '">' + b.date() + "</td>"), b.add(1, "d");
4991                    h.find("tbody").empty().append(j), T(), U(), V()
4992                }
4993            }, X = function () {
4994                var b = o.find(".timepicker-hours table"), c = f.clone().startOf("d"), d = [], e = a("<tr>");
4995                for (f.hour() > 11 && !h && c.hour(12); c.isSame(f, "d") && (h || f.hour() < 12 && c.hour() < 12 || f.hour() > 11);) c.hour() % 4 === 0 && (e = a("<tr>"), d.push(e)), e.append('<td data-action="selectHour" class="hour' + (R(c, "h") ? "" : " disabled") + '">' + c.format(h ? "HH" : "hh") + "</td>"), c.add(1, "h");
4996                b.empty().append(d)
4997            }, Y = function () {
4998                for (var b = o.find(".timepicker-minutes table"), c = f.clone().startOf("h"), e = [], g = a("<tr>"), h = 1 === d.stepping ? 5 : d.stepping; f.isSame(c, "h");) c.minute() % (4 * h) === 0 && (g = a("<tr>"), e.push(g)), g.append('<td data-action="selectMinute" class="minute' + (R(c, "m") ? "" : " disabled") + '">' + c.format("mm") + "</td>"), c.add(h, "m");
4999                b.empty().append(e)
5000            }, Z = function () {
5001                for (var b = o.find(".timepicker-seconds table"), c = f.clone().startOf("m"), d = [], e = a("<tr>"); f.isSame(c, "m");) c.second() % 20 === 0 && (e = a("<tr>"), d.push(e)), e.append('<td data-action="selectSecond" class="second' + (R(c, "s") ? "" : " disabled") + '">' + c.format("ss") + "</td>"), c.add(5, "s");
5002                b.empty().append(d)
5003            }, $ = function () {
5004                var a, b, c = o.find(".timepicker span[data-time-component]");
5005                h || (a = o.find(".timepicker [data-action=togglePeriod]"), b = e.clone().add(e.hours() >= 12 ? -12 : 12, "h"), a.text(e.format("A")), R(b, "h") ? a.removeClass("disabled") : a.addClass("disabled")), c.filter("[data-time-component=hours]").text(e.format(h ? "HH" : "hh")), c.filter("[data-time-component=minutes]").text(e.format("mm")), c.filter("[data-time-component=seconds]").text(e.format("ss")), X(), Y(), Z()
5006            }, _ = function () {
5007                o && (W(), $())
5008            }, aa = function (a) {
5009                var b = m ? null : e;
5010                if (!a) return m = !0, g.val(""), c.data("date", ""), J({
5011                    type: "dp.change",
5012                    date: !1,
5013                    oldDate: b
5014                }), void _();
5015                if (a = a.clone().locale(d.locale), x() && a.tz(d.timeZone), 1 !== d.stepping) for (a.minutes(Math.round(a.minutes() / d.stepping) * d.stepping).seconds(0); d.minDate && a.isBefore(d.minDate);) a.add(d.stepping, "minutes");
5016                R(a) ? (e = a, f = e.clone(), g.val(e.format(i)), c.data("date", e.format(i)), m = !1, _(), J({
5017                    type: "dp.change",
5018                    date: e.clone(),
5019                    oldDate: b
5020                })) : (d.keepInvalid ? J({
5021                    type: "dp.change",
5022                    date: a,
5023                    oldDate: b
5024                }) : g.val(m ? "" : e.format(i)), J({type: "dp.error", date: a, oldDate: b}))
5025            }, ba = function () {
5026                var b = !1;
5027                return o ? (o.find(".collapse").each(function () {
5028                    var c = a(this).data("collapse");
5029                    return !c || !c.transitioning || (b = !0, !1)
5030                }), b ? l : (n && n.hasClass("btn") && n.toggleClass("active"), o.hide(), a(window).off("resize", I), o.off("click", "[data-action]"), o.off("mousedown", !1), o.remove(), o = !1, J({
5031                    type: "dp.hide",
5032                    date: e.clone()
5033                }), g.blur(), f = e.clone(), l)) : l
5034            }, ca = function () {
5035                aa(null)
5036            }, da = function (a) {
5037                return void 0 === d.parseInputDate ? (!b.isMoment(a) || a instanceof Date) && (a = y(a)) : a = d.parseInputDate(a), a
5038            }, ea = {
5039                next: function () {
5040                    var a = q[k].navFnc;
5041                    f.add(q[k].navStep, a), W(), K(a)
5042                }, previous: function () {
5043                    var a = q[k].navFnc;
5044                    f.subtract(q[k].navStep, a), W(), K(a)
5045                }, pickerSwitch: function () {
5046                    L(1)
5047                }, selectMonth: function (b) {
5048                    var c = a(b.target).closest("tbody").find("span").index(a(b.target));
5049                    f.month(c), k === p ? (aa(e.clone().year(f.year()).month(f.month())), d.inline || ba()) : (L(-1), W()), K("M")
5050                }, selectYear: function (b) {
5051                    var c = parseInt(a(b.target).text(), 10) || 0;
5052                    f.year(c), k === p ? (aa(e.clone().year(f.year())), d.inline || ba()) : (L(-1), W()), K("YYYY")
5053                }, selectDecade: function (b) {
5054                    var c = parseInt(a(b.target).data("selection"), 10) || 0;
5055                    f.year(c), k === p ? (aa(e.clone().year(f.year())), d.inline || ba()) : (L(-1), W()), K("YYYY")
5056                }, selectDay: function (b) {
5057                    var c = f.clone();
5058                    a(b.target).is(".old") && c.subtract(1, "M"), a(b.target).is(".new") && c.add(1, "M"), aa(c.date(parseInt(a(b.target).text(), 10))), A() || d.keepOpen || d.inline || ba()
5059                }, incrementHours: function () {
5060                    var a = e.clone().add(1, "h");
5061                    R(a, "h") && aa(a)
5062                }, incrementMinutes: function () {
5063                    var a = e.clone().add(d.stepping, "m");
5064                    R(a, "m") && aa(a)
5065                }, incrementSeconds: function () {
5066                    var a = e.clone().add(1, "s");
5067                    R(a, "s") && aa(a)
5068                }, decrementHours: function () {
5069                    var a = e.clone().subtract(1, "h");
5070                    R(a, "h") && aa(a)
5071                }, decrementMinutes: function () {
5072                    var a = e.clone().subtract(d.stepping, "m");
5073                    R(a, "m") && aa(a)
5074                }, decrementSeconds: function () {
5075                    var a = e.clone().subtract(1, "s");
5076                    R(a, "s") && aa(a)
5077                }, togglePeriod: function () {
5078                    aa(e.clone().add(e.hours() >= 12 ? -12 : 12, "h"))
5079                }, togglePicker: function (b) {
5080                    var c, e = a(b.target), f = e.closest("ul"), g = f.find(".in"), h = f.find(".collapse:not(.in)");
5081                    if (g && g.length) {
5082                        if (c = g.data("collapse"), c && c.transitioning) return;
5083                        g.collapse ? (g.collapse("hide"), h.collapse("show")) : (g.removeClass("in"), h.addClass("in")), e.is("span") ? e.toggleClass(d.icons.time + " " + d.icons.date) : e.find("span").toggleClass(d.icons.time + " " + d.icons.date)
5084                    }
5085                }, showPicker: function () {
5086                    o.find(".timepicker > div:not(.timepicker-picker)").hide(), o.find(".timepicker .timepicker-picker").show()
5087                }, showHours: function () {
5088                    o.find(".timepicker .timepicker-picker").hide(), o.find(".timepicker .timepicker-hours").show()
5089                }, showMinutes: function () {
5090                    o.find(".timepicker .timepicker-picker").hide(), o.find(".timepicker .timepicker-minutes").show()
5091                }, showSeconds: function () {
5092                    o.find(".timepicker .timepicker-picker").hide(), o.find(".timepicker .timepicker-seconds").show()
5093                }, selectHour: function (b) {
5094                    var c = parseInt(a(b.target).text(), 10);
5095                    h || (e.hours() >= 12 ? 12 !== c && (c += 12) : 12 === c && (c = 0)), aa(e.clone().hours(c)), ea.showPicker.call(l)
5096                }, selectMinute: function (b) {
5097                    aa(e.clone().minutes(parseInt(a(b.target).text(), 10))), ea.showPicker.call(l)
5098                }, selectSecond: function (b) {
5099                    aa(e.clone().seconds(parseInt(a(b.target).text(), 10))), ea.showPicker.call(l)
5100                }, clear: ca, today: function () {
5101                    var a = y();
5102                    R(a, "d") && aa(a)
5103                }, close: ba
5104            }, fa = function (b) {
5105                return !a(b.currentTarget).is(".disabled") && (ea[a(b.currentTarget).data("action")].apply(l, arguments), !1)
5106            }, ga = function () {
5107                var b, c = {
5108                    year: function (a) {
5109                        return a.month(0).date(1).hours(0).seconds(0).minutes(0)
5110                    }, month: function (a) {
5111                        return a.date(1).hours(0).seconds(0).minutes(0)
5112                    }, day: function (a) {
5113                        return a.hours(0).seconds(0).minutes(0)
5114                    }, hour: function (a) {
5115                        return a.seconds(0).minutes(0)
5116                    }, minute: function (a) {
5117                        return a.seconds(0)
5118                    }
5119                };
5120                return g.prop("disabled") || !d.ignoreReadonly && g.prop("readonly") || o ? l : (void 0 !== g.val() && 0 !== g.val().trim().length ? aa(da(g.val().trim())) : m && d.useCurrent && (d.inline || g.is("input") && 0 === g.val().trim().length) && (b = y(), "string" == typeof d.useCurrent && (b = c[d.useCurrent](b)), aa(b)), o = G(), M(), S(), o.find(".timepicker-hours").hide(), o.find(".timepicker-minutes").hide(), o.find(".timepicker-seconds").hide(), _(), L(), a(window).on("resize", I), o.on("click", "[data-action]", fa), o.on("mousedown", !1), n && n.hasClass("btn") && n.toggleClass("active"), I(), o.show(), d.focusOnShow && !g.is(":focus") && g.focu
5120s(), J({type: "dp.show"}), l)
5121            }, ha = function () {
5122                return o ? ba() : ga()
5123            }, ia = function (a) {
5124                var b, c, e, f, g = null, h = [], i = {}, j = a.which, k = "p";
5125                w[j] = k;
5126                for (b in w) w.hasOwnProperty(b) && w[b] === k && (h.push(b), parseInt(b, 10) !== j && (i[b] = !0));
5127                for (b in d.keyBinds) if (d.keyBinds.hasOwnProperty(b) && "function" == typeof d.keyBinds[b] && (e = b.split(" "), e.length === h.length && v[j] === e[e.length - 1])) {
5128                    for (f = !0, c = e.length - 2; c >= 0; c--) if (!(v[e[c]] in i)) {
5129                        f = !1;
5130                        break
5131                    }
5132                    if (f) {
5133                        g = d.keyBinds[b];
5134                        break
5135                    }
5136                }
5137                g && (g.call(l, o), a.stopPropagation(), a.preventDefault())
5138            }, ja = function (a) {
5139                w[a.which] = "r", a.stopPropagation(), a.preventDefault()
5140            }, ka = function (b) {
5141                var c = a(b.target).val().trim(), d = c ? da(c) : null;
5142                return aa(d), b.stopImmediatePropagation(), !1
5143            }, la = function () {
5144                g.on({
5145                    change: ka,
5146                    blur: d.debug ? "" : ba,
5147                    keydown: ia,
5148                    keyup: ja,
5149                    focus: d.allowInputToggle ? ga : ""
5150                }
vendor: 25,084 bytes, lines 5150-5560
5150), c.is("input") ? g.on({focus: ga}) : n && (n.on("click", ha), n.on("mousedown", !1))
5151            }, ma = function () {
5152                g.off({
5153                    change: ka,
5154                    blur: blur,
5155                    keydown: ia,
5156                    keyup: ja,
5157                    focus: d.allowInputToggle ? ba : ""
5158                }), c.is("input") ? g.off({focus: ga}) : n && (n.off("click", ha), n.off("mousedown", !1))
5159            }, na = function (b) {
5160                var c = {};
5161                return a.each(b, function () {
5162                    var a = da(this);
5163                    a.isValid() && (c[a.format("YYYY-MM-DD")] = !0)
5164                }), !!Object.keys(c).length && c
5165            }, oa = function (b) {
5166                var c = {};
5167                return a.each(b, function () {
5168                    c[this] = !0
5169                }), !!Object.keys(c).length && c
5170            }, pa = function () {
5171                var a = d.format || "L LT";
5172                i = a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (a) {
5173                    var b = e.localeData().longDateFormat(a) || a;
5174                    return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (a) {
5175                        return e.localeData().longDateFormat(a) || a
5176                    })
5177                }), j = d.extraFormats ? d.extraFormats.slice() : [], j.indexOf(a) < 0 && j.indexOf(i) < 0 && j.push(i), h = i.toLowerCase().indexOf("a") < 1 && i.replace(/\[.*?\]/g, "").indexOf("h") < 1, z("y") && (p = 2), z("M") && (p = 1), z("d") && (p = 0), k = Math.max(p, k), m || aa(e)
5178            };
5179        if (l.destroy = function () {
5180            ba(), ma(), c.removeData("DateTimePicker"), c.removeData("date")
5181        }, l.toggle = ha, l.show = ga, l.hide = ba, l.disable = function () {
5182            return ba(), n && n.hasClass("btn") && n.addClass("disabled"), g.prop("disabled", !0), l
5183        }, l.enable = function () {
5184            return n && n.hasClass("btn") && n.removeClass("disabled"), g.prop("disabled", !1), l
5185        }, l.ignoreReadonly = function (a) {
5186            if (0 === arguments.length) return d.ignoreReadonly;
5187            if ("boolean" != typeof a) throw new TypeError("ignoreReadonly () expects a boolean parameter");
5188            return d.ignoreReadonly = a, l
5189        }, l.options = function (b) {
5190            if (0 === arguments.length) return a.extend(!0, {}, d);
5191            if (!(b instanceof Object)) throw new TypeError("options() options parameter should be an object");
5192            return a.extend(!0, d, b), a.each(d, function (a, b) {
5193                if (void 0 === l[a]) throw new TypeError("option " + a + " is not recognized!");
5194                l[a](b)
5195            }), l
5196        }, l.date = function (a) {
5197            if (0 === arguments.length) return m ? null : e.clone();
5198            if (!(null === a || "string" == typeof a || b.isMoment(a) || a instanceof Date)) throw new TypeError("date() parameter must be one of [null, string, moment or Date]");
5199            return aa(null === a ? null : da(a)), l
5200        }, l.format = function (a) {
5201            if (0 === arguments.length) return d.format;
5202            if ("string" != typeof a && ("boolean" != typeof a || a !== !1)) throw new TypeError("format() expects a string or boolean:false parameter " + a);
5203            return d.format = a, i && pa(), l
5204        }, l.timeZone = function (a) {
5205            if (0 === arguments.length) return d.timeZone;
5206            if ("string" != typeof a) throw new TypeError("newZone() expects a string parameter");
5207            return d.timeZone = a, l
5208        }, l.dayViewHeaderFormat = function (a) {
5209            if (0 === arguments.length) return d.dayViewHeaderFormat;
5210            if ("string" != typeof a) throw new TypeError("dayViewHeaderFormat() expects a string parameter");
5211            return d.dayViewHeaderFormat = a, l
5212        }, l.extraFormats = function (a) {
5213            if (0 === arguments.length) return d.extraFormats;
5214            if (a !== !1 && !(a instanceof Array)) throw new TypeError("extraFormats() expects an array or false parameter");
5215            return d.extraFormats = a, j && pa(), l
5216        }, l.disabledDates = function (b) {
5217            if (0 === arguments.length) return d.disabledDates ? a.extend({}, d.disabledDates) : d.disabledDates;
5218            if (!b) return d.disabledDates = !1, _(), l;
5219            if (!(b instanceof Array)) throw new TypeError("disabledDates() expects an array parameter");
5220            return d.disabledDates = na(b), d.enabledDates = !1, _(), l
5221        }, l.enabledDates = function (b) {
5222            if (0 === arguments.length) return d.enabledDates ? a.extend({}, d.enabledDates) : d.enabledDates;
5223            if (!b) return d.enabledDates = !1, _(), l;
5224            if (!(b instanceof Array)) throw new TypeError("enabledDates() expects an array parameter");
5225            return d.enabledDates = na(b), d.disabledDates = !1, _(), l
5226        }, l.daysOfWeekDisabled = function (a) {
5227            if (0 === arguments.length) return d.daysOfWeekDisabled.splice(0);
5228            if ("boolean" == typeof a && !a) return d.daysOfWeekDisabled = !1, _(), l;
5229            if (!(a instanceof Array)) throw new TypeError("daysOfWeekDisabled() expects an array parameter");
5230            if (d.daysOfWeekDisabled = a.reduce(function (a, b) {
5231                return b = parseInt(b, 10), b > 6 || b < 0 || isNaN(b) ? a : (a.indexOf(b) === -1 && a.push(b), a)
5232            }, []).sort(), d.useCurrent && !d.keepInvalid) {
5233                for (var b = 0; !R(e, "d");) {
5234                    if (e.add(1, "d"), 31 === b) throw"Tried 31 times to find a valid date";
5235                    b++
5236                }
5237                aa(e)
5238            }
5239            return _(), l
5240        }, l.maxDate = function (a) {
5241            if (0 === arguments.length) return d.maxDate ? d.maxDate.clone() : d.maxDate;
5242            if ("boolean" == typeof a && a === !1) return d.maxDate = !1, _(), l;
5243            "string" == typeof a && ("now" !== a && "moment" !== a || (a = y()));
5244            var b = da(a);
5245            if (!b.isValid()) throw new TypeError("maxDate() Could not parse date parameter: " + a);
5246            if (d.minDate && b.isBefore(d.minDate)) throw new TypeError("maxDate() date parameter is before options.minDate: " + b.format(i));
5247            return d.maxDate = b, d.useCurrent && !d.keepInvalid && e.isAfter(a) && aa(d.maxDate), f.isAfter(b) && (f = b.clone().subtract(d.stepping, "m")), _(), l
5248        }, l.minDate = function (a) {
5249            if (0 === arguments.length) return d.minDate ? d.minDate.clone() : d.minDate;
5250            if ("boolean" == typeof a && a === !1) return d.minDate = !1, _(), l;
5251            "string" == typeof a && ("now" !== a && "moment" !== a || (a = y()));
5252            var b = da(a);
5253            if (!b.isValid()) throw new TypeError("minDate() Could not parse date parameter: " + a);
5254            if (d.maxDate && b.isAfter(d.maxDate)) throw new TypeError("minDate() date parameter is after options.maxDate: " + b.format(i));
5255            return d.minDate = b, d.useCurrent && !d.keepInvalid && e.isBefore(a) && aa(d.minDate), f.isBefore(b) && (f = b.clone().add(d.stepping, "m")), _(), l
5256        }, l.defaultDate = function (a) {
5257            if (0 === arguments.length) return d.defaultDate ? d.defaultDate.clone() : d.defaultDate;
5258            if (!a) return d.defaultDate = !1, l;
5259            "string" == typeof a && (a = "now" === a || "moment" === a ? y() : y(a));
5260            var b = da(a);
5261            if (!b.isValid()) throw new TypeError("defaultDate() Could not parse date parameter: " + a);
5262            if (!R(b)) throw new TypeError("defaultDate() date passed is invalid according to component setup validations");
5263            return d.defaultDate = b, (d.defaultDate && d.inline || "" === g.val().trim()) && aa(d.defaultDate), l
5264        }, l.locale = function (a) {
5265            if (0 === arguments.length) return d.locale;
5266            if (!b.localeData(a)) throw new TypeError("locale() locale " + a + " is not loaded from moment locales!");
5267            return d.locale = a, e.locale(d.locale), f.locale(d.locale), i && pa(), o && (ba(), ga()), l
5268        }, l.stepping = function (a) {
5269            return 0 === arguments.length ? d.stepping : (a = parseInt(a, 10), (isNaN(a) || a < 1) && (a = 1), d.stepping = a, l)
5270        }, l.useCurrent = function (a) {
5271            var b = ["year", "month", "day", "hour", "minute"];
5272            if (0 === arguments.length) return d.useCurrent;
5273            if ("boolean" != typeof a && "string" != typeof a) throw new TypeError("useCurrent() expects a boolean or string parameter");
5274            if ("string" == typeof a && b.indexOf(a.toLowerCase()) === -1) throw new TypeError("useCurrent() expects a string parameter of " + b.join(", "));
5275            return d.useCurrent = a, l
5276        }, l.collapse = function (a) {
5277            if (0 === arguments.length) return d.collapse;
5278            if ("boolean" != typeof a) throw new TypeError("collapse() expects a boolean parameter");
5279            return d.collapse === a ? l : (d.collapse = a, o && (ba(), ga()), l)
5280        }, l.icons = function (b) {
5281            if (0 === arguments.length) return a.extend({}, d.icons);
5282            if (!(b instanceof Object)) throw new TypeError("icons() expects parameter to be an Object");
5283            return a.extend(d.icons, b), o && (ba(), ga()), l
5284        }, l.tooltips = function (b) {
5285            if (0 === arguments.length) return a.extend({}, d.tooltips);
5286            if (!(b instanceof Object)) throw new TypeError("tooltips() expects parameter to be an Object");
5287            return a.extend(d.tooltips, b), o && (ba(), ga()), l
5288        }, l.useStrict = function (a) {
5289            if (0 === arguments.length) return d.useStrict;
5290            if ("boolean" != typeof a) throw new TypeError("useStrict() expects a boolean parameter");
5291            return d.useStrict = a, l
5292        }, l.sideBySide = function (a) {
5293            if (0 === arguments.length) return d.sideBySide;
5294            if ("boolean" != typeof a) throw new TypeError("sideBySide() expects a boolean parameter");
5295            return d.sideBySide = a, o && (ba(), ga()), l
5296        }, l.viewMode = function (a) {
5297            if (0 === arguments.length) return d.viewMode;
5298            if ("string" != typeof a) throw new TypeError("viewMode() expects a string parameter");
5299            if (r.indexOf(a) === -1) throw new TypeError("viewMode() parameter must be one of (" + r.join(", ") + ") value");
5300            return d.viewMode = a, k = Math.max(r.indexOf(a), p), L(), l
5301        }, l.toolbarPlacement = function (a) {
5302            if (0 === arguments.length) return d.toolbarPlacement;
5303            if ("string" != typeof a) throw new TypeError("toolbarPlacement() expects a string parameter");
5304            if (u.indexOf(a) === -1) throw new TypeError("toolbarPlacement() parameter must be one of (" + u.join(", ") + ") value");
5305            return d.toolbarPlacement = a, o && (ba(), ga()), l
5306        }, l.widgetPositioning = function (b) {
5307            if (0 === arguments.length) return a.extend({}, d.widgetPositioning);
5308            if ("[object Object]" !== {}.toString.call(b)) throw new TypeError("widgetPositioning() expects an object variable");
5309            if (b.horizontal) {
5310                if ("string" != typeof b.horizontal) throw new TypeError("widgetPositioning() horizontal variable must be a string");
5311                if (b.horizontal = b.horizontal.toLowerCase(), t.indexOf(b.horizontal) === -1) throw new TypeError("widgetPositioning() expects horizontal parameter to be one of (" + t.join(", ") + ")");
5312                d.widgetPositioning.horizontal = b.horizontal
5313            }
5314            if (b.vertical) {
5315                if ("string" != typeof b.vertical) throw new TypeError("widgetPositioning() vertical variable must be a string");
5316                if (b.vertical = b.vertical.toLowerCase(), s.indexOf(b.vertical) === -1) throw new TypeError("widgetPositioning() expects vertical parameter to be one of (" + s.join(", ") + ")");
5317                d.widgetPositioning.vertical = b.vertical
5318            }
5319            return _(), l
5320        }, l.calendarWeeks = function (a) {
5321            if (0 === arguments.length) return d.calendarWeeks;
5322            if ("boolean" != typeof a) throw new TypeError("calendarWeeks() expects parameter to be a boolean value");
5323            return d.calendarWeeks = a, _(), l
5324        }, l.showTodayButton = function (a) {
5325            if (0 === arguments.length) return d.showTodayButton;
5326            if ("boolean" != typeof a) throw new TypeError("showTodayButton() expects a boolean parameter");
5327            return d.showTodayButton = a, o && (ba(), ga()), l
5328        }, l.showClear = function (a) {
5329            if (0 === arguments.length) return d.showClear;
5330            if ("boolean" != typeof a) throw new TypeError("showClear() expects a boolean parameter");
5331            return d.showClear = a, o && (ba(), ga()), l
5332        }, l.widgetParent = function (b) {
5333            if (0 === arguments.length) return d.widgetParent;
5334            if ("string" == typeof b && (b = a(b)), null !== b && "string" != typeof b && !(b instanceof a)) throw new TypeError("widgetParent() expects a string or a jQuery object parameter");
5335            return d.widgetParent = b, o && (ba(), ga()), l
5336        }, l.keepOpen = function (a) {
5337            if (0 === arguments.length) return d.keepOpen;
5338            if ("boolean" != typeof a) throw new TypeError("keepOpen() expects a boolean parameter");
5339            return d.keepOpen = a, l
5340        }, l.focusOnShow = function (a) {
5341            if (0 === arguments.length) return d.focusOnShow;
5342            if ("boolean" != typeof a) throw new TypeError("focusOnShow() expects a boolean parameter");
5343            return d.focusOnShow = a, l
5344        }, l.inline = function (a) {
5345            if (0 === arguments.length) return d.inline;
5346            if ("boolean" != typeof a) throw new TypeError("inline() expects a boolean parameter");
5347            return d.inline = a, l
5348        }, l.clear = function () {
5349            return ca(), l
5350        }, l.keyBinds = function (a) {
5351            return 0 === arguments.length ? d.keyBinds : (d.keyBinds = a, l)
5352        }, l.getMoment = function (a) {
5353            return y(a)
5354        }, l.debug = function (a) {
5355            if ("boolean" != typeof a) throw new TypeError("debug() expects a boolean parameter");
5356            return d.debug = a, l
5357        }, l.allowInputToggle = function (a) {
5358            if (0 === arguments.length) return d.allowInputToggle;
5359            if ("boolean" != typeof a) throw new TypeError("allowInputToggle() expects a boolean parameter");
5360            return d.allowInputToggle = a, l
5361        }, l.showClose = function (a) {
5362            if (0 === arguments.length) return d.showClose;
5363            if ("boolean" != typeof a) throw new TypeError("showClose() expects a boolean parameter");
5364            return d.showClose = a, l
5365        }, l.keepInvalid = function (a) {
5366            if (0 === arguments.length) return d.keepInvalid;
5367            if ("boolean" != typeof a) throw new TypeError("keepInvalid() expects a boolean parameter");
5368            return d.keepInvalid = a, l
5369        }, l.datepickerInput = function (a) {
5370            if (0 === arguments.length) return d.datepickerInput;
5371            if ("string" != typeof a) throw new TypeError("datepickerInput() expects a string parameter");
5372            return d.datepickerInput = a, l
5373        }, l.parseInputDate = function (a) {
5374            if (0 === arguments.length) return d.parseInputDate;
5375            if ("function" != typeof a) throw new TypeError("parseInputDate() sholud be as function");
5376            return d.parseInputDate = a, l
5377        }, l.disabledTimeIntervals = function (b) {
5378            if (0 === arguments.length) return d.disabledTimeIntervals ? a.extend({}, d.disabledTimeIntervals) : d.disabledTimeIntervals;
5379            if (!b) return d.disabledTimeIntervals = !1, _(), l;
5380            if (!(b instanceof Array)) throw new TypeError("disabledTimeIntervals() expects an array parameter");
5381            return d.disabledTimeIntervals = b, _(), l
5382        }, l.disabledHours = function (b) {
5383            if (0 === arguments.length) return d.disabledHours ? a.extend({}, d.disabledHours) : d.disabledHours;
5384            if (!b) return d.disabledHours = !1, _(), l;
5385            if (!(b instanceof Array)) throw new TypeError("disabledHours() expects an array parameter");
5386            if (d.disabledHours = oa(b), d.enabledHours = !1, d.useCurrent && !d.keepInvalid) {
5387                for (var c = 0; !R(e, "h");) {
5388                    if (e.add(1, "h"), 24 === c) throw"Tried 24 times to find a valid date";
5389                    c++
5390                }
5391                aa(e)
5392            }
5393            return _(), l
5394        }, l.enabledHours = function (b) {
5395            if (0 === arguments.length) return d.enabledHours ? a.extend({}, d.enabledHours) : d.enabledHours;
5396            if (!b) return d.enabledHours = !1, _(), l;
5397            if (!(b instanceof Array)) throw new TypeError("enabledHours() expects an array parameter");
5398            if (d.enabledHours = oa(b), d.disabledHours = !1, d.useCurrent && !d.keepInvalid) {
5399                for (var c = 0; !R(e, "h");) {
5400                    if (e.add(1, "h"), 24 === c) throw"Tried 24 times to find a valid date";
5401                    c++
5402                }
5403                aa(e)
5404            }
5405            return _(), l
5406        }, l.viewDate = function (a) {
5407            if (0 === arguments.length) return f.clone();
5408            if (!a) return f = e.clone(), l;
5409            if (!("string" == typeof a || b.isMoment(a) || a instanceof Date)) throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");
5410            return f = da(a), K(), l
5411        }, c.is("input")) g = c; else if (g = c.find(d.datepickerInput), 0 === g.length) g = c.find("input"); else if (!g.is("input")) throw new Error('CSS class "' + d.datepickerInput + '" cannot be applied to non input element');
5412        if (c.hasClass("input-group") && (n = 0 === c.find(".datepickerbutton").length ? c.find(".input-group-addon") : c.find(".datepickerbutton")), !d.inline && !g.is("input")) throw new Error("Could not initialize DateTimePicker without an input element");
5413        return e = y(), f = e.clone(), a.extend(!0, d, H()), l.options(d), pa(), la(), g.prop("disabled") && l.disable(), g.is("input") && 0 !== g.val().trim().length ? aa(da(g.val().trim())) : d.defaultDate && void 0 === g.attr("placeholder") && aa(d.defaultDate), d.inline && ga(), l
5414    };
5415    return a.fn.datetimepicker = function (b) {
5416        b = b || {};
5417        var d, e = Array.prototype.slice.call(arguments, 1), f = !0, g = ["destroy", "hide", "show", "toggle"];
5418        if ("object" == typeof b) return this.each(function () {
5419            var d, e = a(this);
5420            e.data("DateTimePicker") || (d = a.extend(!0, {}, a.fn.datetimepicker.defaults, b), e.data("DateTimePicker", c(e, d)))
5421        });
5422        if ("string" == typeof b) return this.each(function () {
5423            var c = a(this), g = c.data("DateTimePicker");
5424            if (!g) throw new Error('bootstrap-datetimepicker("' + b + '") method was called on an element that is not using DateTimePicker');
5425            d = g[b].apply(g, e), f = d === g
5426        }), f || a.inArray(b, g) > -1 ? this : d;
5427        throw new TypeError("Invalid arguments for DateTimePicker: " + b)
5428    }, a.fn.datetimepicker.defaults = {
5429        timeZone: "",
5430        format: !1,
5431        dayViewHeaderFormat: "MMMM YYYY",
5432        extraFormats: !1,
5433        stepping: 1,
5434        minDate: !1,
5435        maxDate: !1,
5436        useCurrent: !0,
5437        collapse: !0,
5438        locale: b.locale(),
5439        defaultDate: !1,
5440        disabledDates: !1,
5441        enabledDates: !1,
5442        icons: {
5443            time: "fas fa-clock",
5444            date: "fas fa-calendar-alt",
5445            up: "fas fa-chevron-up",
5446            down: "fas fa-chevron-down",
5447            previous: "fas fa-chevron-left",
5448            next: "fas fa-chevron-right",
5449            today: "fas fa-crosshairs",
5450            clear: "fas fa-trash-alt",
5451            close: "fas fa-times"
5452        },
5453        tooltips: {
5454            today: "Go to today",
5455            clear: "Clear selection",
5456            close: "Close the picker",
5457            selectMonth: "Select Month",
5458            prevMonth: "Previous Month",
5459            nextMonth: "Next Month",
5460            selectYear: "Select Year",
5461            prevYear: "Previous Year",
5462            nextYear: "Next Year",
5463            selectDecade: "Select Decade",
5464            prevDecade: "Previous Decade",
5465            nextDecade: "Next Decade",
5466            prevCentury: "Previous Century",
5467            nextCentury: "Next Century",
5468            pickHour: "Pick Hour",
5469            incrementHour: "Increment Hour",
5470            decrementHour: "Decrement Hour",
5471            pickMinute: "Pick Minute",
5472            incrementMinute: "Increment Minute",
5473            decrementMinute: "Decrement Minute",
5474            pickSecond: "Pick Second",
5475            incrementSecond: "Increment Second",
5476            decrementSecond: "Decrement Second",
5477            togglePeriod: "Toggle Period",
5478            selectTime: "Select Time"
5479        },
5480        useStrict: !1,
5481        sideBySide: !1,
5482        daysOfWeekDisabled: !1,
5483        calendarWeeks: !1,
5484        viewMode: "days",
5485        toolbarPlacement: "default",
5486        showTodayButton: !1,
5487        showClear: !1,
5488        showClose: !1,
5489        widgetPositioning: {horizontal: "auto", vertical: "auto"},
5490        widgetParent: null,
5491        ignoreReadonly: !1,
5492        keepOpen: !1,
5493        focusOnShow: !0,
5494        inline: !1,
5495        keepInvalid: !1,
5496        datepickerInput: ".datepickerinput",
5497        keyBinds: {
5498            up: function (a) {
5499                if (a) {
5500                    var b = this.date() || this.getMoment();
5501                    a.find(".datepicker").is(":visible") ? this.date(b.clone().subtract(7, "d")) : this.date(b.clone().add(this.stepping(), "m"))
5502                }
5503            }, down: function (a) {
5504                if (!a) return void this.show();
5505                var b = this.date() || this.getMoment();
5506                a.find(".datepicker").is(":visible") ? this.date(b.clone().add(7, "d")) : this.date(b.clone().subtract(this.stepping(), "m"))
5507            }, "control up": function (a) {
5508                if (a) {
5509                    var b = this.date() || this.getMoment();
5510                    a.find(".datepicker").is(":visible") ? this.date(b.clone().subtract(1, "y")) : this.date(b.clone().add(1, "h"))
5511                }
5512            }, "control down": function (a) {
5513                if (a) {
5514                    var b = this.date() || this.getMoment();
5515                    a.find(".datepicker").is(":visible") ? this.date(b.clone().add(1, "y")) : this.date(b.clone().subtract(1, "h"))
5516                }
5517            }, left: function (a) {
5518                if (a) {
5519                    var b = this.date() || this.getMoment();
5520                    a.find(".datepicker").is(":visible") && this.date(b.clone().subtract(1, "d"))
5521                }
5522            }, right: function (a) {
5523                if (a) {
5524                    var b = this.date() || this.getMoment();
5525                    a.find(".datepicker").is(":visible") && this.date(b.clone().add(1, "d"))
5526                }
5527            }, pageUp: function (a) {
5528                if (a) {
5529                    var b = this.date() || this.getMoment();
5530                    a.find(".datepicker").is(":visible") && this.date(b.clone().subtract(1, "M"))
5531                }
5532            }, pageDown: function (a) {
5533                if (a) {
5534                    var b = this.date() || this.getMoment();
5535                    a.find(".datepicker").is(":visible") && this.date(b.clone().add(1, "M"))
5536                }
5537            }, enter: function () {
5538                this.hide()
5539            }, escape: function () {
5540                this.hide()
5541            }, "control space": function (a) {
5542                a && a.find(".timepicker").is(":visible") && a.find('.btn[data-action="togglePeriod"]').click()
5543            }, t: function () {
5544                this.date(this.getMoment())
5545            }, delete: function () {
5546                this.clear()
5547            }
5548        },
5549        debug: !1,
5550        allowInputToggle: !1,
5551        disabledTimeIntervals: !1,
5552        disabledHours: !1,
5553        enabledHours: !1,
5554        viewDate: !1
5555    }, a.fn.datetimepicker
5556});
5557
5558/*
5559 Copyright (C) Federico Zivolo 2017
5560 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).�
vendor: 18,861 bytes, lines 5560-5561
5560
5561 */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var f=a.commonAncestorContainer;if(e!==f&&t!==f||i.contains(n))return p(f)?f:r(f);var l=s(e);return l.host?d(l.host,t):d(e,s(t).host)}function a(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',i=e.nodeName;if('BODY'===i||'HTML'===i){var n=window.document.documentElement,r=window.document.scrollingElement||n;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=a(t,'top'),n=a(t,'left'),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function l(e,t){var o='x'===t?'Left':'Top',i='Left'==o?'Right':'Bottom';return+e['border'+o+'Width'].split('px')[0]+ +e['border'+i+'Width'].split('px')[0]}function m(e,t,o,i){return _(t['offset'+e],o['client'+e],o['offset'+e],ie()?o['offset'+e]+i['margin'+('Height'===e?'Top':'Left')]+i['margin'+('Height'===e?'Bottom':'Right')]:0)}function h(){var e=window.document.body,t=window.document.documentElement,o=ie()&&window.getComputedStyle(t);return{height:m('Height',e,t,o),width:m('Width',e,t,o)}}function c(e){return se({},e,{right:e.left+e.width,bottom:e.top+e.height})}function g(e){var o={};if(ie())try{o=e.getBoundingClientRect();var i=a(e,'top'),n=a(e,'left');o.top+=i,o.left+=n,o.bottom+=i,o.right+=n}catch(e){}else o=e.getBoundingClientRect();var r={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},p='HTML'===e.nodeName?h():{},s=p.width||e.clientWidth||r.right-r.left,d=p.height||e.clientHeight||r.bottom-r.top,f=e.offsetWidth-s,m=e.offsetHeight-d;if(f||m){var g=t(e);f-=l(g,'x'),m-=l(g,'y'),r.width-=f,r.height-=m}return c(r)}function u(e,o){var i=ie(),r='HTML'===o.nodeName,p=g(e),s=g(o),d=n(e),a=t(o),l=+a.borderTopWidth.split('px')[0],m=+a.borderLeftWidth.split('px')[0],h=c({top:p.top-s.top-l,left:p.left-s.left-m,width:p.width,height:p.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=+a.marginTop.split('px')[0],b=+a.marginLeft.split('px')[0];h.top-=l-u,h.bottom-=l-u,h.left-=m-b,h.right-=m-b,h.marginTop=u,h.marginLeft=b}return(i?o.contains(d):o===d&&'BODY'!==d.nodeName)&&(h=f(h,o)),h}function b(e){var t=window.document.documentElement,o=u(e,t),i=_(t.clientWidth,window.innerWidth||0),n=_(t.clientHeight,window.innerHeight||0),r=a(t),p=a(t,'left'),s={top:r-o.top+o.marginTop,left:p-o.left+o.marginLeft,width:i,height:n};return c(s)}function y(e){var i=e.nodeName;return'BODY'===i||'HTML'===i?!1:'fixed'===t(e,'position')||y(o(e))}function w(e,t,i,r){var p={top:0,left:0},s=d(e,t);if('viewport'===r)p=b(s);else{var a;'scrollParent'===r?(a=n(o(e)),'BODY'===a.nodeName&&(a=window.document.documentElement)):'window'===r?a=window.document.documentElement:a=r;var f=u(a,s);if('HTML'===a.nodeName&&!y(s)){var l=h(),m=l.height,c=l.width;p.top+=f.top-f.marginTop,p.bottom=m+f.top,p.left+=f.left-f.marginLeft,p.right=c+f.left}else p=f}return p.left+=i,p.top+=i,p.right-=i,p.bottom-=i,p}function v(e){var t=e.width,o=e.height;return t*o}function E(e,t,o,i,n){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=w(o,i,r,n),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return se({key:e},s[e],{area:v(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),f=0<a.length?a[0].key:d[0].key,l=e.split('-')[1];return f+(l?'-'+l:'')}function x(e,t,o){var i=d(t,o);return u(o,i)}function O(e){var t=window.getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight),n={width:e.offsetWidth+i,height:e.offsetHeight+o};return n}function L(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function S(e,t,o){o=o.split('-')[0];var i=O(e),n={width:i.width,height:i.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return n[p]=t[p]+t[d]/2-i[d]/2,n[s]=o===s?t[s]-i[a]:t[L(s)],n}function T(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function C(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=T(e,function(e){return e[t]===o});return e.indexOf(i)}function N(t,o,i){var n=void 0===i?t:t.slice(0,C(t,'name',i));return n.forEach(function(t){t.function&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var i=t.function||t.fn;t.enabled&&e(i)&&(o.offsets.popper=c(o.offsets.popper),o.offsets.reference=c(o.offsets.reference),o=i(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=x(this.state,this.popper,this.reference),e.placement=E(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.offsets.popper=S(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position='absolute',e=N(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,i=e.enabled;return i&&o===t})}function B(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length-1;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof window.document.body.style[r])return r}return null}function D(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.left='',this.popper.style.position='',this.popper.style.top='',this.popper.style[B('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function H(e,t,o,i){var r='BODY'===e.nodeName,p=r?window:e;p.addEventListener(t,o,{passive:!0}),r||H(n(p.parentNode),t,o,i),i.push(p)}function P(e,t,o,i){o.updateBound=i,window.addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return H(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function A(){this.state.eventsEnabled||(this.state=P(this.reference,this.options,this.state,this.scheduleUpdate))}function M(e,t){return window.removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function I(){this.state.eventsEnabled&&(window.cancelAnimationFrame(this.scheduleUpdate),this.state=M(this.reference,this.state))}function R(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function U(e,t){Object.keys(t).forEach(function(o){var i='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&R(t[o])&&(i='px'),e.style[o]=t[o]+i})}function Y(e,t){Object.keys(t).forEach(function(o){var i=t[o];!1===i?e.removeAttribute(o):e.setAttribute(o,t[o])})}function F(e,t,o){var i=T(e,function(e){var o=e.name;return o===t}),n=!!i&&e.some(function(e){return e.name===o&&e.enabled&&e.order<i.order});if(!n){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return n}function j(e){return'end'===e?'start':'start'===e?'end':e}function K(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=ae.indexOf(e),i=ae.slice(o+1).concat(ae.slice(0,o));return t?i.reverse():i}function q(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],p=n[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=i;}var d=c(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?_(document.documentElement.clientHeight,window.innerHeight||0):_(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function G(e,t,o,i){var n=[0,0],r=-1!==['right','left'].indexOf(i),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(T(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,i){var n=(1===i?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return q(e,n,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,i){R(o)&&(n[t]+=o*('-'===e[i-1]?-1:1))})}),n}for(var z=Math.min,V=Math.floor,_=Math.max,X=['native code','[object MutationObserverConstructor]'],Q=function(e){return X.some(function(t){return-1<(e||'').toString().indexOf(t)})},J='undefined'!=typeof window,Z=['Edge','Trident','Firefox'],$=0,ee=0;ee<Z.length;ee+=1)if(J&&0<=navigator.userAgent.indexOf(Z[ee])){$=1;break}var i,te=J&&Q(window.MutationObserver),oe=te?function(e){var t=!1,o=0,i=document.createElement('span'),n=new MutationObserver(function(){e(),t=!1});return n.observe(i,{attributes:!0}),function(){t||(t=!0,i.setAttribute('x-index',o),++o)}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},$))}},ie=function(){return void 0==i&&(i=-1!==navigator.appVersion.indexOf('MSIE 10')),i},ne=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},re=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,i){return o&&e(t.prototype,o),i&&e(t,i),t}}(),pe=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},se=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var i in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},de=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],ae=de.slice(3),fe={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},le=function(){function t(o,i){var n=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};ne(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=oe(this.update.bind(this)),this.options=se({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o.jquery?o[0]:o,this.popper=i.jquery?i[0]:i,this.options.modifiers={},Object.keys(se({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){n.options.modifiers[e]=se({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return se({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return re(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return D.call(this)}},{key:'enableEventListeners',value:function(){return A.call(this)}},{key:'disableEventListeners',value:function(){return I.call(this)}}]),t}();return le.Utils=('undefined'==typeof window?global:window).PopperUtils,le.placements=de,le.Defaults={placement:'bottom',eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],i=t.split('-')[1];if(i){var n=e.offsets,r=n.reference,p=n.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',f={start:pe({},d,r[d]),end:pe({},d,r[d]+r[a]-p[a])};e.offsets.popper=se({},p,f[i])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=n.split('-')[0];return o=R(+i)?[+i,0]:G(i,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||r(e.instance.popper);e.instance.reference===o&&(o=r(o));var i=w(e.instance.popper,e.instance.reference,t.padding,o);t.boundaries=i;var n=t.priority,p=e.offsets.popper,s={primary:function(e){var o=p[e];return p[e]<i[e]&&!t.escapeWithReference&&(o=_(p[e],i[e])),pe({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=p[o];return p[e]>i[e]&&!t.escapeWithReference&&(n=z(p[o],i[e]-('right'===e?p.width:p.height))),pe({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=se({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=V,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(i[d])&&(e.offsets.popper[d]=r(i[d])-o[a]),o[d]>r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var o=t.element;if('string'==typeof o){if(o=e.instance.popper.querySelector(o),!o)return e;}else if(!e.instance.popper.contains(o))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var i=e.placement.split('-')[0],n=e.offsets,r=n.popper,p=n.reference,s=-1!==['left','right'].indexOf(i),d=s?'height':'width',a=s?'top':'left',f=s?'left':'top',l=s?'bottom':'right',m=O(o)[d];p[l]-m<r[a]&&(e.offsets.popper[a]-=r[a]-(p[l]-m)),p[a]+m>r[l]&&(e.offsets.popper[a]+=p[a]+m-r[l]);var h=p[a]+p[d]/2-m/2,g=h-c(e.offsets.popper)[a];return g=_(z(r[d]-m,g),0),e.arrowElement=o,e.offsets.arrow={},e.offsets.arrow[a]=Math.round(g),e.offsets.arrow[f]='',e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=w(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=L(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[i,n];break;case fe.CLOCKWISE:p=K(i);break;case fe.COUNTERCLOCKWISE:p=K(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=L(i);var a=e.offsets.popper,f=e.offsets.reference,l=V,m='left'===i&&l(a.right)>l(f.left)||'right'===i&&l(a.left)<l(f.right)||'top'===i&&l(a.bottom)>l(f.top)||'bottom'===i&&l(a.top)<l(f.bottom),h=l(a.left)<l(o.left),c=l(a.right)>l(o.right),g=l(a.top)<l(o.top),u=l(a.bottom)>l(o.bottom),b='left'===i&&h||'right'===i&&c||'top'===i&&g||'bottom'===i&&u,y=-1!==['top','bottom'].indexOf(i),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),w&&(r=j(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=se({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[t]-(s?n[p?'width':'height']:0),e.placement=L(t),e.offsets.popper=c(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,i=t.y,n=e.offsets.popper,p=T(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==p&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===p?t.gpuAcceleration:p,f=r(e.instance.popper),l=g(f),m={position:n.position},h={left:V(n.left),top:V(n.top),bottom:V(n.bottom),right:V(n.right)},c='bottom'===o?'top':'bottom',u='right'===i?'left':'right',b=B('transform');if(d='bottom'==c?-l.height+h.bottom:h.top,s='right'==u?-l.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[u]=0,m.willChange='transform';else{var y='bottom'==c?-1:1,w='right'==u?-1:1;m[c]=d*y,m[u]=s*w,m.willChange=c+', '+u}var v={"x-placement":e.placement};return e.attributes=se({},v,e.attributes),e.styles=se({},m,e.styles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return U(e.instance.popper,e.styles),Y(e.instance.popper,e.attributes),e.offsets.arrow&&U(e.arrowElement,e.offsets.arrow),e},onLoad:function(e,t,o,i,n){var r=x(n,t,e),p=E(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),U(t,{position:'absolute'}),o},gpuAcceleration:void 0}}},le});
vendor: 6,232 bytes, lines 5561-5569
5561
5562
5563
5564/*!
5565  * Bootstrap v4.6.2 (https://getbootstrap.com/)
5566  * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
5567  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5568  */
5569!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var o=i(e),a=i(n);function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function l(t,e,n){return e&&s(t.prototype,e),n&&s(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function r(){return r=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r.apply(this,arguments)}function u(t,e){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},u(t,e)}var f="transitionend";var d={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=o.default(t).css("transition-duration"),n=o.default(t).css("transition-delay"),i=parseFloat(e),a=parseFloat(n);return i||a?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){o.default(t).trigger(f)},supportsTransitionEnd:function(){return Boolean(f)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],a=e[i],s=a&&d.isElement(a)?"element":null===(l=a)||"undefined"==typeof l?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var l},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?d.findShadowRoot(t.parentNode):null},jQueryDetection:function(){if("undefined"==typeof o.default)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=o.default.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};d.jQueryDetection(),o.default.fn.emulateTransitionEnd=function(t){var e=this,n=!1;return o.default(this).one(d.TRANSITION_END,(function(){n=!0})),setTimeout((function(){n||d.triggerTransitionEnd(e)}),t),this},o.default.event.special[d.TRANSITION_END]={bindType:f,delegateType:f,handle:function(t){if(o.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var c="bs.alert",h=o.default.fn.alert,g=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.default.removeData(this._element,c),this._element=null},e._getRootElement=function(t){var e=d.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=o.default(t).closest(".alert")[0]),n},e._triggerCloseEvent=function(t){var e=o.default.Event("close.bs.alert");return o.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(o.default(t).removeClass("show"),o.default(t).hasClass("fade")){var n=d.getTransitionDurationFromElement(t);o.default(t).one(d.TRANSITION_END,(function(n){return e._destroyElement(t,n)})).emulateTransitionEnd(n)}else this._destroyElement(t)},e._destroyElement=function(t){o.default(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(c);i||(i=new t(this),n.data(c,i)),"close"===e&&i[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}}]),t}();o.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',g._handleDismiss(new g)),o.default.fn.alert=g._jQueryInterface,o.default.fn.alert.Constructor=g,o.default.fn.alert.noConflict=function(){return o.default.fn.alert=h,g._jQueryInterface};var m="bs.button",p=o.default.fn.button,_="active",v='[data-toggle^="button"]',y='input:not([type="hidden"])',b=".btn",E=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=o.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var i=this._element.querySelector(y);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(_))t=!1;else{var a=n.querySelector(".active");a&&o.default(a).removeClass(_)}t&&("checkbox"!==i.type&&"radio"!==i.type||(i.checked=!this._element.classList.contains(_)),this.shouldAvoidTriggerChange||o.default(i).trigger("change")),i.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(_)),t&&o.default(this._element).toggleClass(_))},e.dispose=function(){o.default.removeData(this._element,m),this._element=null},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this),a=i.data(m);a||(a=new t(this),i.data(m,a)),a.shouldAvoidTriggerChange=n,"toggle"===e&&a[e]()}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2
vendor: 7,796 bytes, line 5569
5569"}}]),t}();o.default(document).on("click.bs.button.data-api",v,(function(t){var e=t.target,n=e;if(o.default(e).hasClass("btn")||(e=o.default(e).closest(b)[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var i=e.querySelector(y);if(i&&(i.hasAttribute("disabled")||i.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||E._jQueryInterface.call(o.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",v,(function(t){var e=o.default(t.target).closest(b)[0];o.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),o.default(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e<n;e++){var i=t[e],o=i.querySelector(y);o.checked||o.hasAttribute("checked")?i.classList.add(_):i.classList.remove(_)}for(var a=0,s=(t=[].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length;a<s;a++){var l=t[a];"true"===l.getAttribute("aria-pressed")?l.classList.add(_):l.classList.remove(_)}})),o.default.fn.button=E._jQueryInterface,o.default.fn.button.Constructor=E,o.default.fn.button.noConflict=function(){return o.default.fn.button=p,E._jQueryInterface};var T="carousel",w="bs.carousel",C=o.default.fn[T],S="active",N="next",D="prev",A="slid.bs.carousel",I=".active.carousel-item",k={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},O={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},j={TOUCH:"touch",PEN:"pen"},P=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(N)},e.nextWhenVisible=function(){var t=o.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(D)},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(d.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(I);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)o.default(this._element).one(A,(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?N:D;this._slide(i,this._items[t])}},e.dispose=function(){o.default(this._element).off(".bs.carousel"),o.default.removeData(this._element,w),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=r({},k,t),d.typeCheckConfig(T,t,O),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&o.default(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&o.default(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},n=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};o.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(o.default(this._element).on("pointerdown.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(o.default(this._element).on("touchstart.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("touchmove.bs.carousel",(function(e){return function(e){t.touchDeltaX=e.originalEvent.touches&&e.originalEvent.touches.length>1?0:e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),o.default(this._element).on("touchend.bs.carousel",(function(t){return n(t)})))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===N,i=t===D,o=this._getItemIndex(e),a=this._items.length-1;if((i&&0===o||n&&o===a)&&!this._config.wrap)return e;var s=(o+(t===D?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(I)),a=o.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n});return o.default(this._element).trigger(a),a},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));o.default(e).removeClass(S);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&o.default(n).addClass(S)}},e._updateInterval=function(){var t=this._activeElement||this._element.querySelector(I);if(t){var e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},e._slide=function(t,e){var n,i,a,s=this,l=this._element.querySelector(I),r=this._getItemIndex(l),u=e||l&&this._getItemByDirection(t,l),f=this._getItemIndex(u),c=Boolean(this._interval);if(t===N?(n="carousel-item-left",i="carousel-item-next",a="left"):(n="carousel-item-right",i="carousel-item-prev",a="right"),u&&o.default(u).hasClass(S))this._isSliding=!1;else if(!this._triggerSlideEvent(u,a).isDefaultPrevented()&&l&&u){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(u),this._activeElement=u;var h=o.default.Event(A,{relatedTarget:u,direction:a,from:r,to:f});if(o.default(this._element).hasClass("slide")){o.default(u).addClass(i),d.reflow(u),o.default(l).addClass(n),o.default(u).addClass(n);var g=d.getTransitionDurationFromElement(l);o.default(l).one(d.TRANSITION_END,(function(){o.default(u).removeClass(n+" "+i).addClass(S),o.default(l).removeClass("active "+i+" "+n),s._isSli
vendor: 15,888 bytes, line 5569
5569ding=!1,setTimeout((function(){return o.default(s._element).trigger(h)}),0)})).emulateTransitionEnd(g)}else o.default(l).removeClass(S),o.default(u).addClass(S),this._isSliding=!1,o.default(this._element).trigger(h);c&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(w),i=r({},k,o.default(this).data());"object"==typeof e&&(i=r({},i,e));var a="string"==typeof e?e:i.slide;if(n||(n=new t(this,i),o.default(this).data(w,n)),"number"==typeof e)n.to(e);else if("string"==typeof a){if("undefined"==typeof n[a])throw new TypeError('No method named "'+a+'"');n[a]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}))},t._dataApiClickHandler=function(e){var n=d.getSelectorFromElement(this);if(n){var i=o.default(n)[0];if(i&&o.default(i).hasClass("carousel")){var a=r({},o.default(i).data(),o.default(this).data()),s=this.getAttribute("data-slide-to");s&&(a.interval=!1),t._jQueryInterface.call(o.default(i),a),s&&o.default(i).data(w).to(s),e.preventDefault()}}},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return k}}]),t}();o.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",P._dataApiClickHandler),o.default(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,n=t.length;e<n;e++){var i=o.default(t[e]);P._jQueryInterface.call(i,i.data())}})),o.default.fn[T]=P._jQueryInterface,o.default.fn[T].Constructor=P,o.default.fn[T].noConflict=function(){return o.default.fn[T]=C,P._jQueryInterface};var L="collapse",R="bs.collapse",x=o.default.fn[L],q="show",F="collapse",Q="collapsing",B="collapsed",H="width",U='[data-toggle="collapse"]',M={toggle:!0,parent:""},W={toggle:"boolean",parent:"(string|element)"},V=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(U)),i=0,o=n.length;i<o;i++){var a=n[i],s=d.getSelectorFromElement(a),l=[].slice.call(document.querySelectorAll(s)).filter((function(e){return e===t}));null!==s&&l.length>0&&(this._selector=s,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){o.default(this._element).hasClass(q)?this.hide():this.show()},e.show=function(){var e,n,i=this;if(!(this._isTransitioning||o.default(this._element).hasClass(q)||(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof i._config.parent?t.getAttribute("data-parent")===i._config.parent:t.classList.contains(F)}))).length&&(e=null),e&&(n=o.default(e).not(this._selector).data(R))&&n._isTransitioning))){var a=o.default.Event("show.bs.collapse");if(o.default(this._element).trigger(a),!a.isDefaultPrevented()){e&&(t._jQueryInterface.call(o.default(e).not(this._selector),"hide"),n||o.default(e).data(R,null));var s=this._getDimension();o.default(this._element).removeClass(F).addClass(Q),this._element.style[s]=0,this._triggerArray.length&&o.default(this._triggerArray).removeClass(B).attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){o.default(i._element).removeClass(Q).addClass("collapse show"),i._element.style[s]="",i.setTransitioning(!1),o.default(i._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(r),this._element.style[s]=this._element[l]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&o.default(this._element).hasClass(q)){var e=o.default.Event("hide.bs.collapse");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",d.reflow(this._element),o.default(this._element).addClass(Q).removeClass("collapse show");var i=this._triggerArray.length;if(i>0)for(var a=0;a<i;a++){var s=this._triggerArray[a],l=d.getSelectorFromElement(s);null!==l&&(o.default([].slice.call(document.querySelectorAll(l))).hasClass(q)||o.default(s).addClass(B).attr("aria-expanded",!1))}this.setTransitioning(!0),this._element.style[n]="";var r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){t.setTransitioning(!1),o.default(t._element).removeClass(Q).addClass(F).trigger("hidden.bs.collapse")})).emulateTransitionEnd(r)}}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){o.default.removeData(this._element,R),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=r({},M,t)).toggle=Boolean(t.toggle),d.typeCheckConfig(L,t,W),t},e._getDimension=function(){return o.default(this._element).hasClass(H)?H:"height"},e._getParent=function(){var e,n=this;d.isElement(this._config.parent)?(e=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(e=this._config.parent[0])):e=document.querySelector(this._config.parent);var i='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',a=[].slice.call(e.querySelectorAll(i));return o.default(a).each((function(e,i){n._addAriaAndCollapsedClass(t._getTargetFromElement(i),[i])})),e},e._addAriaAndCollapsedClass=function(t,e){var n=o.default(t).hasClass(q);e.length&&o.default(e).toggleClass(B,!n).attr("aria-expanded",n)},t._getTargetFromElement=function(t){var e=d.getSelectorFromElement(t);return e?document.querySelector(e):null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(R),a=r({},M,n.data(),"object"==typeof e&&e?e:{});if(!i&&a.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(a.toggle=!1),i||(i=new t(this,a),n.data(R,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return M}}]),t}();o.default(document).on("click.bs.collapse.data-api",U,(function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var e=o.default(this),n=d.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(n));o.default(i).each((function(){var t=o.default(this),n=t.data(R)?"toggle":e.data();V._jQueryInterface.call(t,n)}))})),o.default.fn[L]=V._jQueryInterface,o.default.fn[L].Constructor=V,o.default.fn[L].noConflict=function(){return o.default.fn[L]=x,V._jQueryInterface};var z="dropdown",K="bs.dropdown",X=o.default.fn[z],Y=new RegExp("38|40|27"),$="disabled",J="show",G="dropdown-menu-right",Z="hide.bs.dropdown",tt="hidden.bs.dropdown",et="click.bs.dropdown.data-api",nt="keydown.bs.dropdown.data-api",it='[data-toggle="dropdown"]',ot=".dropdown-menu",at={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},st={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},lt=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var e=t.prototype;return e.toggle=function(){if(!this._element.disabled&&!o.default(this._element).hasClass($)){var e=o.default(this._menu).hasClass(J);t._clearMenus(),e||this.show(!0)}},e.show=function(e){if(void 0===e&&(e=!1),!(this._element.disabled||o.default(this._element).hasClass($)||o.default(this._menu).hasClass(J))){var n={relatedTarget:this._element},i=o.default.Event("show.bs.dropdown",n),s=t._getParentFromElement(this._element);if(o.default(s).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar&&e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var l=this._element;"parent"===this._config.reference?l=s:d.isElement(this._config.reference)&&(l=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(l=this._config.reference[0])),"scrollParent"!==this._config.boundary&&o.default(s).addClass("position-static"),this._popper=new a.default(l,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===o.default(s).closest(".navbar-nav").length&&o.default(document.body).children().on("mouseover",null,o.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),o.default(this._menu).toggleClass(J),o.default(s).toggleClass(J).trigger(o.default.Event("shown.bs.dropdown",n))}}},e.hide=function(){if(!this._element.disabled&&!o.default(this._element).hasClass($)&&o.default(this._menu).hasClass(J)){var e={relatedTarget:this._element},n=o.default.Event(Z,e),i=t._getParentFromElement(this._element);o.default(i).trigger(n),n.isDefaultPrevented()||(this._popper&&this._popper.destroy(),o.default(this._menu).toggleClass(J),o.default(i).toggleClass(J).trigger(o.default.Event(tt,e)))}},e.dispose=function(){o.default.removeData(this._element,K),o.default(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;o.default(this._element).on("click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},e._getConfig=function(t){return t=r({},this.constructor.Default,o.default(this._element).data(),t),d.typeCheckConfig(z,t,this.constructor.DefaultType),t},e._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=e.querySelector(ot))}return this._menu},e._getPlacement=function(){var t=o.default(this._element.parentNode),e="bottom-start";return t.hasClass("dropup")?e=o.default(this._menu).hasClass(G)?"top-end":"top-start":t.hasClass("dropright")?e="right-start":t.hasClass("dropleft")?e="left-start":o.default(this._menu).hasClass(G)&&(e="bottom-end"),e},e._detectNavbar=function(){return o.default(this._element).closest(".navbar").length>0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets,t._element)),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),r({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(K);if(n||(n=new t(this,"object"==typeof e?e:null),o.default(this).data(K,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=[].slice.call(document.querySelectorAll(it)),i=0,a=n.length;i<a;i++){var s=t._getParentFromElement(n[i]),l=o.default(n[i]).data(K),r={relatedTarget:n[i]};if(e&&"click"===e.type&&(r.clickEvent=e),l){var u=l._menu;if(o.default(s).hasClass(J)&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&o.default.contains(s,e.target))){var f=o.default.Event(Z,r);o.default(s).trigger(f),f.isDefaultPrevented()||("ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),n[i].setAttribute("aria-expanded","false"),l._popper&&l._popper.destroy(),o.default(u).removeClass(J),o.default(s).removeClass(J).trigger(o.default.Event(tt,r)))}}}},t._getParentFromElement=function(t){var e,n=d.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if(!(/input|textarea/i.test(e.target.tagName)?32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||o.default(e.target).closest(ot).length):!Y.test(e.which))&&!this.disabled&&!o.default(this).hasClass($)){var n=t._getParentFromElement(this),i=o.default(n).hasClass(J);if(i||27!==e.which){if(e.preventDefault(),e.stopPropagation(),!i||27===e.which||32===e.which)return 27===e.which&&o.default(n.querySelector(it)).trigger("focus"),void o.default(this).trigger("click");var a=[].slice.call(n.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter((function(t){return o.default(t).is(":visible")}));if(0!==a.length){var s=a.indexOf(e.target);38===e.which&&s>0&&s--,40===e.which&&s<a.length-1&&s++,s<0&&(s=0),a[s].focus()}}}},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return at}},{key:"DefaultType",get:function(){return st}}]),t}();o.default(document).on(nt,it,lt._dataApiKeydownHandler).on(nt,ot,lt._dataApiKeydownHandler).on(et+" keyup.bs.dropdown.data-api",lt._clearMenus).on(et,it,(function(t){t.preventDefault(),t.stopPropagation(),lt._jQueryInterface.call(o.default(this),"toggle")})).on(et,".dropdown form",(function(t){t.stopPropagation()})),o.default.fn[z]=lt._jQueryInterface,o.default.fn[z].Constructor=lt,o.default.fn[z].noConflict=function(){return o.default.fn[z]=X,lt._jQueryInterface};var rt="bs.modal",ut=o.default.fn.modal,ft="modal-open",dt="fade",ct="show",ht="modal-static",gt="hidden.bs.modal",mt="show.bs.modal",pt="focusin.bs.modal",_t="resize.bs.modal",vt="click.dismiss.bs.modal",yt="keydown.dismiss.bs.modal",bt="mousedown.dismiss.bs.modal",Et=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Tt={backdrop:!0,keyboard:!0,focus:!0,show:!0},wt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Ct=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){var n=o.default.Event(mt,{relatedTarget:t});o.default(this._element).trigger(n),n.isDefaultPrevented()||(this._isShown=!0,o.default(this._element).hasClass(dt)&&(this._isTransitioning=!0),this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),o.default(this._element).on(vt,'[data-dismiss="modal"]',(function(t){return e.hide(t)})),o.default(this._dialog).on(bt,(function(){o.default(e._element).one("mouseup.dismiss.bs.modal",(function(t){o.default(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return e._showElement(t)})))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=o.default.Event("hide.bs.modal");if(o.default(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=o.default(this._element).hasClass(dt);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),o.default(document).off(pt),o.default(this._element).removeClass(ct),o.default(this._element).off(vt),o.default(this._dialog).off(bt),i){var a=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(t){return e._hideModal(t)})).emulateTransitionEnd(a)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return o.default(t).off(".b
vendor: 6,658 bytes, line 5569
5569s.modal")})),o.default(document).off(pt),o.default.removeData(this._element,rt),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=r({},Tt,t),d.typeCheckConfig("modal",t,wt),t},e._triggerBackdropTransition=function(){var t=this,e=o.default.Event("hidePrevented.bs.modal");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._element.scrollHeight>document.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add(ht);var i=d.getTransitionDurationFromElement(this._dialog);o.default(this._element).off(d.TRANSITION_END),o.default(this._element).one(d.TRANSITION_END,(function(){t._element.classList.remove(ht),n||o.default(t._element).one(d.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,i)})).emulateTransitionEnd(i),this._element.focus()}},e._showElement=function(t){var e=this,n=o.default(this._element).hasClass(dt),i=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),o.default(this._dialog).hasClass("modal-dialog-scrollable")&&i?i.scrollTop=0:this._element.scrollTop=0,n&&d.reflow(this._element),o.default(this._element).addClass(ct),this._config.focus&&this._enforceFocus();var a=o.default.Event("shown.bs.modal",{relatedTarget:t}),s=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,o.default(e._element).trigger(a)};if(n){var l=d.getTransitionDurationFromElement(this._dialog);o.default(this._dialog).one(d.TRANSITION_END,s).emulateTransitionEnd(l)}else s()},e._enforceFocus=function(){var t=this;o.default(document).off(pt).on(pt,(function(e){document!==e.target&&t._element!==e.target&&0===o.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?o.default(this._element).on(yt,(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||o.default(this._element).off(yt)},e._setResizeEvent=function(){var t=this;this._isShown?o.default(window).on(_t,(function(e){return t.handleUpdate(e)})):o.default(window).off(_t)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){o.default(document.body).removeClass(ft),t._resetAdjustments(),t._resetScrollbar(),o.default(t._element).trigger(gt)}))},e._removeBackdrop=function(){this._backdrop&&(o.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=o.default(this._element).hasClass(dt)?dt:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),o.default(this._backdrop).appendTo(document.body),o.default(this._element).on(vt,(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),n&&d.reflow(this._backdrop),o.default(this._backdrop).addClass(ct),!t)return;if(!n)return void t();var i=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){o.default(this._backdrop).removeClass(ct);var a=function(){e._removeBackdrop(),t&&t()};if(o.default(this._element).hasClass(dt)){var s=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){var e=[].slice.call(document.querySelectorAll(Et)),n=[].slice.call(document.querySelectorAll(".sticky-top"));o.default(e).each((function(e,n){var i=n.style.paddingRight,a=o.default(n).css("padding-right");o.default(n).data("padding-right",i).css("padding-right",parseFloat(a)+t._scrollbarWidth+"px")})),o.default(n).each((function(e,n){var i=n.style.marginRight,a=o.default(n).css("margin-right");o.default(n).data("margin-right",i).css("margin-right",parseFloat(a)-t._scrollbarWidth+"px")}));var i=document.body.style.paddingRight,a=o.default(document.body).css("padding-right");o.default(document.body).data("padding-right",i).css("padding-right",parseFloat(a)+this._scrollbarWidth+"px")}o.default(document.body).addClass(ft)},e._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(Et));o.default(t).each((function(t,e){var n=o.default(e).data("padding-right");o.default(e).removeData("padding-right"),e.style.paddingRight=n||""}));var e=[].slice.call(document.querySelectorAll(".sticky-top"));o.default(e).each((function(t,e){var n=o.default(e).data("margin-right");"undefined"!=typeof n&&o.default(e).css("margin-right",n).removeData("margin-right")}));var n=o.default(document.body).data("padding-right");o.default(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this).data(rt),a=r({},Tt,o.default(this).data(),"object"==typeof e&&e?e:{});if(i||(i=new t(this,a),o.default(this).data(rt,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method n
vendor: 7,038 bytes, line 5569
5569amed "'+e+'"');i[e](n)}else a.show&&i.show(n)}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return Tt}}]),t}();o.default(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e,n=this,i=d.getSelectorFromElement(this);i&&(e=document.querySelector(i));var a=o.default(e).data(rt)?"toggle":r({},o.default(e).data(),o.default(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var s=o.default(e).one(mt,(function(t){t.isDefaultPrevented()||s.one(gt,(function(){o.default(n).is(":visible")&&n.focus()}))}));Ct._jQueryInterface.call(o.default(e),a,this)})),o.default.fn.modal=Ct._jQueryInterface,o.default.fn.modal.Constructor=Ct,o.default.fn.modal.noConflict=function(){return o.default.fn.modal=ut,Ct._jQueryInterface};var St=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Nt=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Dt=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;function At(t,e,n){if(0===t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),a=[].slice.call(i.body.querySelectorAll("*")),s=function(t,n){var i=a[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(i.nodeName.toLowerCase()))return i.parentNode.removeChild(i),"continue";var l=[].slice.call(i.attributes),r=[].concat(e["*"]||[],e[s]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===St.indexOf(n)||Boolean(Nt.test(t.nodeValue)||Dt.test(t.nodeValue));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,a=i.length;o<a;o++)if(i[o].test(n))return!0;return!1})(t,r)||i.removeAttribute(t.nodeName)}))},l=0,r=a.length;l<r;l++)s(l);return i.body.innerHTML}var It="tooltip",kt="bs.tooltip",Ot=o.default.fn.tooltip,jt=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Pt=["sanitize","whiteList","sanitizeFn"],Lt="fade",Rt="show",xt="show",qt="out",Ft="hover",Qt="focus",Bt={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Ht={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ut={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Mt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Wt=function(){function t(t,e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=o.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(o.default(this.getTipElement()).hasClass(Rt))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),o.default.removeData(this.element,this.constructor.DATA_KEY),o.default(this.element).off(this.constructor.EVENT_KEY),o.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&o.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===o.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=o.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){o.default(this.element).trigger(e);var n=d.findShadowRoot(this.element),i=o.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!i)return;var s=this.getTipElement(),l=d.getUID(this.constructor.NAME);s.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&o.default(s).addClass(Lt);var r="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,u=this._getAttachment(r);this.addAttachmentClass(u);var f=this._getContainer();o.default(s).data(this.constructor.DATA_KEY,this),o.default.contains(this.element.ownerDocument.documentElement,this.tip)||o.default(s).appendTo(f),o.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new a.default(this.element,s,this._getPopperConfig(u)),o.default(s).addClass(Rt),o.default(s).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&o.default(document.body).children().on("mouseover",null,o.default.noop);var c=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,o.default(t.element).trigger(t.constructor.Event.SHOWN),e===qt&&t._leave(null,t)};if(o.default(this.tip).hasClass(Lt)){var h=d.getTransitionDurationFromElement(this.tip);o.default(this.tip).one(d.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},e.hide=function(t){var e=this,n=this.getTipElement(),i=o.default.Event(this.constructor.Event.HIDE),a=function(){e._hoverState!==xt&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),o.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(o.default(this.element).trigger(i),!i.isDefaultPrevented()){if
vendor: 5,783 bytes, line 5569
5569(o.default(n).removeClass(Rt),"ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,o.default(this.tip).hasClass(Lt)){var s=d.getTransitionDurationFromElement(n);o.default(n).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-tooltip-"+t)},e.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(o.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),o.default(t).removeClass("fade show")},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=At(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?o.default(e).parent().is(t)||t.empty().append(e):t.text(o.default(e).text())},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return r({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t.config.offset(e.offsets,t.element)),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:d.isElement(this.config.container)?o.default(this.config.container):o.default(document).find(this.config.container)},e._getAttachment=function(t){return Bt[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)o.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n=e===Ft?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===Ft?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;o.default(t.element).on(n,t.config.selector,(function(e){return t._enter(e)})).on(i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},o.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Qt:Ft]=!0),o.default(e.getTipElement()).hasClass(Rt)||e._hoverState===xt?e._hoverState=xt:(clearTimeout(e._timeout),e._hoverState=xt,e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){e._hoverState===xt&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Qt:Ft]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=qt,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){e._hoverState===qt&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=o.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==Pt.indexOf(t)&&delete e[t]})),"number"==typeof(t=r({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),d.typeCheckConfig(It,t,this.constructor.DefaultType),t.sanitize&&(t.template=At(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(jt);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(o.default(t).removeClass(Lt),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(kt),a="object"==typeof e&&e;if((i||!/dispose|hide/.test(e))&&(i||(i=new t(this,a),n.data(kt,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method n
vendor: 13,172 bytes, lines 5569-5570
5569amed "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return Ht}},{key:"NAME",get:function(){return It}},{key:"DATA_KEY",get:function(){return kt}},{key:"Event",get:function(){return Mt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ut}}]),t}();o.default.fn.tooltip=Wt._jQueryInterface,o.default.fn.tooltip.Constructor=Wt,o.default.fn.tooltip.noConflict=function(){return o.default.fn.tooltip=Ot,Wt._jQueryInterface};var Vt="bs.popover",zt=o.default.fn.popover,Kt=new RegExp("(^|\\s)bs-popover\\S+","g"),Xt=r({},Wt.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Yt=r({},Wt.DefaultType,{content:"(string|element|function)"}),$t={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Jt=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,u(e,n);var a=i.prototype;return a.isWithContent=function(){return this.getTitle()||this._getContent()},a.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-popover-"+t)},a.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},a.setContent=function(){var t=o.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},a._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},a._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(Kt);null!==e&&e.length>0&&t.removeClass(e.join(""))},i._jQueryInterface=function(t){return this.each((function(){var e=o.default(this).data(Vt),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n),o.default(this).data(Vt,e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},l(i,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return Xt}},{key:"NAME",get:function(){return"popover"}},{key:"DATA_KEY",get:function(){return Vt}},{key:"Event",get:function(){return $t}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Yt}}]),i}(Wt);o.default.fn.popover=Jt._jQueryInterface,o.default.fn.popover.Constructor=Jt,o.default.fn.popover.noConflict=function(){return o.default.fn.popover=zt,Jt._jQueryInterface};var Gt="scrollspy",Zt="bs.scrollspy",te=o.default.fn[Gt],ee="active",ne="position",ie=".nav, .list-group",oe={offset:10,method:"auto",target:""},ae={offset:"number",method:"string",target:"(string|element)"},se=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,o.default(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":ne,n="auto"===this._config.method?e:this._config.method,i=n===ne?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,a=d.getSelectorFromElement(t);if(a&&(e=document.querySelector(a)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[o.default(e)[n]().top+i,a]}return null})).filter(Boolean).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){o.default.removeData(this._element,Zt),o.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=r({},oe,"object"==typeof t&&t?t:{})).target&&d.isElement(t.target)){var e=o.default(t.target).attr("id");e||(e=d.getUID(Gt),o.default(t.target).attr("id",e)),t.target="#"+e}return d.typeCheckConfig(Gt,t,ae),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map((function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'})),n=o.default([].slice.call(document.querySelectorAll(e.join(","))));n.hasClass("dropdown-item")?(n.closest(".dropdown").find(".dropdown-toggle").addClass(ee),n.addClass(ee)):(n.addClass(ee),n.parents(ie).prev(".nav-link, .list-group-item").addClass(ee),n.parents(ie).prev(".nav-item").children(".nav-link").addClass(ee)),o.default(this._scrollElement).trigger("activate.bs.scrollspy",{relatedTarget:t})},e._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter((function(t){return t.classList.contains(ee)})).forEach((function(t){return t.classList.remove(ee)}))},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(Zt);if(n||(n=new t(this,"object"==typeof e&&e),o.default(this).data(Zt,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return oe}}]),t}();o.default(window).on("load.bs.scrollspy.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]')),e=t.length;e--;){var n=o.default(t[e]);se._jQueryInterface.call(n,n.data())}})),o.default.fn[Gt]=se._jQueryInterface,o.default.fn[Gt].Constructor=se,o.default.fn[Gt].noConflict=function(){return o.default.fn[Gt]=te,se._jQueryInterface};var le="bs.tab",re=o.default.fn.tab,ue="active",fe="fade",de="show",ce=".active",he="> li > .active",ge=function(){function t(t){this._element=t}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&o.default(this._element).hasClass(ue)||o.default(this._element).hasClass("disabled")||this._element.hasAttribute("disabled"))){var e,n,i=o.default(this._element).closest(".nav, .list-group")[0],a=d.getSelectorFromElement(this._element);if(i){var s="UL"===i.nodeName||"OL"===i.nodeName?he:ce;n=(n=o.default.makeArray(o.default(i).find(s)))[n.length-1]}var l=o.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=o.default.Event("show.bs.tab",{relatedTarget:n});if(n&&o.default(n).trigger(l),o.default(this._element).trigger(r),!r.isDefaultPrevented()&&!l.isDefaultPrevented()){a&&(e=document.querySelector(a)),this._activate(this._element,i);var u=function(){var e=o.default.Event("hidden.bs.tab",{relatedTarget:t._element}),i=o.default.Event("shown.bs.tab",{relatedTarget:n});o.default(n).trigger(e),o.default(t._element).trigger(i)};e?this._activate(e,e.parentNode,u):u()}}},e.dispose=function(){o.default.removeData(this._element,le),this._element=null},e._activate=function(t,e,n){var i=this,a=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?o.default(e).children(ce):o.default(e).find(he))[0],s=n&&a&&o.default(a).hasClass(fe),l=function(){return i._transitionComplete(t,a,n)};if(a&&s){var r=d.getTransitionDurationFromElement(a);o.default(a).removeClass(de).one(d.TRANSITION_END,l).emulateTransitionEnd(r)}else l()},e._transitionComplete=function(t,e,n){if(e){o.default(e).removeClass(ue);var i=o.default(e.parentNode).find("> .dropdown-menu .active")[0];i&&o.default(i).removeClass(ue),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}o.default(t).addClass(ue),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),d.reflow(t),t.classList.contains(fe)&&t.classList.add(de);var a=t.parentNode;if(a&&"LI"===a.nodeName&&(a=a.parentNode),a&&o.default(a).hasClass("dropdown-menu")){var s=o.default(t).closest(".dropdown")[0];if(s){var l=[].slice.call(s.querySelectorAll(".dropdown-toggle"));o.default(l).addClass(ue)}t.setAttribute("aria-expanded",!0)}n&&n()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(le);if(i||(i=new t(this),n.data(le,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}}]),t}();o.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),ge._jQueryInterface.call(o.default(this),"show")})),o.default.fn.tab=ge._jQueryInterface,o.default.fn.tab.Constructor=ge,o.default.fn.tab.noConflict=function(){return o.default.fn.tab=re,ge._jQueryInterface};var me="bs.toast",pe=o.default.fn.toast,_e="hide",ve="show",ye="showing",be="click.dismiss.bs.toast",Ee={animation:!0,autohide:!0,delay:500},Te={animation:"boolean",autohide:"boolean",delay:"number"},we=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this,e=o.default.Event("show.bs.toast");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){t._element.classList.remove(ye),t._element.classList.add(ve),o.default(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove(_e),d.reflow(this._element),this._element.classList.add(ye),this._config.animation){var i=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},e.hide=function(){if(this._element.classList.contains(ve)){var t=o.default.Event("hide.bs.toast");o.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains(ve)&&this._element.classList.remove(ve),o.default(this._element).off(be),o.default.removeData(this._element,me),this._element=null,this._config=null},e._getConfig=function(t){return t=r({},Ee,o.default(this._element).data(),"object"==typeof t&&t?t:{}),d.typeCheckConfig("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;o.default(this._element).on(be,'[data-dismiss="toast"]',(function(){return t.hide()}))},e._close=function(){var t=this,e=function(){t._element.classList.add(_e),o.default(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove(ve),this._config.animation){var n=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(me);if(i||(i=new t(this,"object"==typeof e&&e),n.data(me,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](this)}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"DefaultType",get:function(){return Te}},{key:"Default",get:function(){return Ee}}]),t}();o.default.fn.toast=we._jQueryInterface,o.default.fn.toast.Constructor=we,o.default.fn.toast.noConflict=function(){return o.default.fn.toast=pe,we._jQueryInterface},t.Alert=g,t.Button=E,t.Carousel=P,t.Collapse=V,t.Dropdown=lt,t.Modal=Ct,t.Popover=Jt,t.Scrollspy=se,t.Tab=ge,t.Toast=we,t.Tooltip=Wt,t.Util=d,Object.defineProperty(t,"__esModule",{value:!0})}));
5570//# sourceMappingURL=bootstrap.min.js.map
vendor: 11,442 bytes, lines 5570-5588
5570
5571
5572/*
5573     _ _      _       _
5574 ___| (_) ___| | __  (_)___
5575/ __| | |/ __| |/ /  | / __|
5576\__ \ | | (__|   < _ | \__ \
5577|___/_|_|\___|_|\_(_)/ |___/
5578                   |__/
5579
5580 Version: 1.6.0
5581  Author: Ken Wheeler
5582 Website: http://kenwheeler.github.io
5583    Docs: http://kenwheeler.github.io/slick
5584    Repo: http://github.com/kenwheeler/slick
5585  Issues: http://github.com/kenwheeler/slick/issues
5586
5587 */
5588!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a('<button type="button" data-role="none" role="button" tabindex="0" />').text(c+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.focussed=!1,e.interrupted=!1,e.hidden="hidden",e.paused=!0,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange="visibilitychange",e.windowWidth=0,e.windowTimer=null,f=a(c).data("slick")||{},e.options=a.extend({},e.defaults,d,f),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,"undefined"!=typeof document.mozHidden?(e.hidden="mozHidden",e.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(e.hidden="webkitHidden",e.visibilityChange="webkitvisibilitychange"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.registerBreakpoints(),e.init(!0)}var b=0;return c}(),b.prototype.activateADA=function(){var a=this;a.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("data-slick-index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]="translate("+a+"px, 0px)",e.$slideTrack.css(d)):(d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),e.options.vertical===!1?d[e.animType]="translate3d("+b+"px, 0px, 0px)":d[e.animType]="translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.getNavTarget=function(){var b=this,c=b.options.asNavFor;return c&&null!==c&&(c=a(c).not(b.$slider)),c},b.prototype.asNavFor=function(b){var c=this,d=c.getNavTarget();null!==d&&"object"==typeof d&&d.each(function(){var c=a(this).slick("getSlick");c.unslicked||c.slideHandler(b,!0)})},b.prototype.applyTransition=function(a){var b=this,c={};b.options.fade===!1?c[b.transitionType]=b.transformType+" "+b.options.speed+"ms "+b.options.cssEase:c[b.transitionType]="opacity "+b.options.speed+"ms "+b.options.cssEase,b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.autoPlay=function(){var a=this;a.autoPlayClear(),a.slideCount>a.options.slidesToShow&&(a.autoPlayTimer=setInterval(a.autoPlayIterator,a.options.autoplaySpeed))},b.prototype.autoPlayClear=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer)},b.prototype.autoPlayIterator=function(){var a=this,b=a.currentSlide+a.options.slidesToScroll;a.paused||a.interrupted||a.focussed||(a.options.infinite===!1&&(1===a.direction&&a.currentSlide+1===a.slideCount-1?a.direction=0:0===a.direction&&(b=a.currentSlide-a.options.slidesToScroll,a.currentSlide-1===0&&(a.direction=1))),a.slideHandler(b))},b.prototype.buildArrows=function(){var b=this;b.options.arrows===!0&&(b.$prevArrow=a(b.options.prevArrow).addClass("slick-arrow"),b.$nextArrow=a(b.options.nextArrow).addClass("slick-arrow"),b.slideCount>b.options.slidesToShow?(b.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.prependTo(b.options.appendArrows),b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.appendTo(b.options.appendArrows),b.options.infinite!==!0&&b.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):b.$prevArrow.add(b.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},b.prototype.buildDots=function(){var c,d,b=this;if(b.options.dots===!0&&b.slideCount>b.options.slidesToShow){for(b.$slider.addClass("slick-dotted"),d=a("<ul />").addClass(b.options.dotsClass),c=0;c<=b.getDotCount();c+=1)d.append(a("<li />").append(b.options.customPaging.call(this,b,c)));b.$dots=d.appendTo(b.options.appendDots),b.$dots.find("li").first().addClass("slick-active").attr("aria-hidden","false")}},b.prototype.buildOut=function(){var b=this;b.$slides=b.$slider.children(b.options.slide+":not(.slick-cloned)").addClass("slick-slide"),b.slideCount=b.$slides.length,b.$slides.each(function(b,c){a(c).attr("data-slick-index",b).data("originalStyling",a(c).attr("style")||"")}),b.$slider.addClass("slick-slider"),b.$slideTrack=0===b.slideCount?a('<div class="slick-track"/>').appendTo(b.$slider):b.$slides.wrapAll('<div class="slick-track"/>').parent(),b.$list=b.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(),b.$slideTrack.css("opacity",0),(b.options.centerMode===!0||b.options.swipeToSlide===!0)&&(b.options.slidesToScroll=1),a("img[data-lazy]",b.$slider).not("[src]").addClass("slick-loading"),b.setupInfinite(),b.buildArrows(),b.buildDots(),b.updateDots(),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.options.draggable===!0&&b.$list.addClass("draggable")},b.prototype.buildRows=function(){var b,c,d,e,f,g,h,a=this;if(e=document.createDocumentFragment(),g=a.$slider.children(),a.options.rows>1){for(h=a.options.slidesPerRow*a.options.rows,f=Math.ceil(g.length/h),b=0;f>b;b++){var i=document.createElement("div");for(c=0;c<a.options.rows;c++){var j=document.createElement("div");for(d=0;d<a.options.slidesPerRow;d++){var k=b*h+(c*a.options.slidesPerRow+d);g.get(k)&&j.appendChild(g.get(k))}i.appendChild(j)}e.appendChild(i)}a.$slider.empty().append(e),a.$slider.children().children().children().css({width:100/a.options.slidesPerRow+"%",display:"inline-block"})}},b.prototype.checkResponsive=function(b,c){var e,f,g,d=this,h=!1,i=d.$slider.width(),j=window.innerWidth||a(window).width();if("window"===d.respondTo?g=j:"slider"===d.respondTo?g=i:"min"===d.respondTo&&(g=Math.min(j,i)),d.options.responsive&&d.options.responsive.length&&null!==d.options.responsive){f=null;for(e in d.breakpoints)d.breakpoints.hasOwnProperty(e)&&(d.originalSettings.mobileFirst===!1?g<d.breakpoints[e]&&(f=d.breakpoints[e]):g>d.breakpoints[e]&&(f=d.breakpoints[e]));null!==f?null!==d.activeBreakpoint?(f!==d.activeBreakpoint||c)&&(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):null!==d.activeBreakpoint&&(d.activeBreakpoint=null,d.options=d.originalSettings,b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b),h=f),b||h===!1||d.$slider.trigger("breakpoint",[d,h])}},b.prototype.changeSlide=function(b,c){var f,g,h,d=this,e=a(b.currentTarget);switch(e.is("a")&&b.preventDefault(),e.is("li")||(e=e.closest("li")),h=d.slideCount%d.options.slidesToScroll!==0,f=h?0:(d.slideCount-d.currentSlide)%d.options.slidesToScroll,b.data.message){case"previous":g=0===f?d.options.slidesToScroll:d.options.slidesToShow-f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide-g,!1,c);break;case"next":g=0===f?d.options.slidesToScroll:f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide+g,!1,c);break;case"index":var i=0===b.data.index?0:b.data.index||e.index()*d.options.slidesToScroll;d.slideHandler(d.checkNavigable(i),!1,c),e.children().trigger("focus");break;default:return}},b.prototype.checkNavigable=function(a){var c,d,b=this;if(c=b.getNavigableIndexes(),d=0,a>c[c.length-1])a=c[c.length-1];else for(var e in c){if(a<c[e]){a=d;break}d=c[e]}return a},b.prototype.cleanUpEvents=function(){var b=this;b.options.dots&&null!==b.$dots&&a("li",b.$dots).off("click.slick",b.changeSlide).off("mouseenter.slick",a.proxy(b.interrupt,b,!0)).off("mouseleave.
5588slick",a.proxy(b.interrupt,b,!1)),b.$slider.off("focus.slick blur.slick"),b.options.arrows===!0&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow&&b.$prevArrow.off("click.slick",b.changeSlide),b.$nextArrow&&b.$nextArrow.off("click.slick",b.changeSlide)),b.$list.off("touchstart.slick mousedown.slick",b.swipeHandler),b.$list.off("touchmove.slick mousemove.slick",b.swipeHandler),b.$list.off("touchend.slick mouseup.slick",b.swipeHandler),b.$list.off("touchcancel.slick mouseleave.slick",b.swipeHandler),b.$list.off("click.slick",b.clickHandler),a(document).off(b.visibilityChange,b.visibility),b.cleanUpSlideEvents(),b.options.accessibility===!0&&b.$list.off("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().off("click.slick",b.selectHandler),a(window).off("orientationchange.slick.slick-"+b.instanceUid,b.orientationChange),a(window).off("resize.slick.slick-"+b.instanceUid,b.resize),a("[draggable!=true]",b.$slideTrack).off("dragstart",b.preventDefault),a(window).off("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).off("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.cleanUpSlideEvents=function(){var b=this;b.$list.off("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.off("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.cleanUpRows=function(){var b,a=this;a.options.rows>1&&(b=a.$slides.children().children(),b.removeAttr("style"),a.$slider.empty().append(b))},b.prototype.clickHandler=function(a){var b=this;b.shouldClick===!1&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())},b.prototype.destroy=function(b){var c=this;c.autoPlayClear(),c.touchObject={},c.cleanUpEvents(),a(".slick-cloned",c.$slider).detach(),c.$dots&&c.$dots.remove(),c.$prevArrow&&c.$prevArrow.length&&(c.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.prevArrow)&&c.$prevArrow.remove()),c.$nextArrow&&c.$nextArrow.length&&(c.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.nextArrow)&&c.$nextArrow.remove()),c.$slides&&(c.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){a(this).attr("style",a(this).data("originalStyling"))}),c.$slideTrack.children(this.options.slide).detach(),c.$slideTrack.detach(),c.$list.detach(),c.$slider.append(c.$slides)),c.cleanUpRows(),c.$slider.removeClass("slick-slider"),c.$slider.removeClass("slick-initialized"),c.$slider.removeClass("slick-dotted"),c.unslicked=!0,b||c.$slider.trigger("destroy",[c])},b.prototype.disableTransition=function(a){var b=this,c={};c[b.transitionType]="",b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.fadeSlide=function(a,b){var c=this;c.cssTransitions===!1?(c.$slides.eq(a).css({zIndex:c.options.zIndex}),c.$slides.eq(a).animate({opacity:1},c.options.speed,c.options.easing,b)):(c.applyTransition(a),c.$slides.eq(a).css({opacity:1,zIndex:c.options.zIndex}),b&&setTimeout(function(){c.disableTransition(a),b.call()},c.options.speed))},b.prototype.fadeSlideOut=function(a){var b=this;b.cssTransitions===!1?b.$slides.eq(a).animate({opacity:0,zIndex:b.options.zIndex-2},b.options.speed,b.options.easing):(b.applyTransition(a),b.$slides.eq(a).css({opacity:0,zIndex:b.options.zIndex-2}))},b.prototype.filterSlides=b.prototype.slickFilter=function(a){var b=this;null!==a&&(b.$slidesCache=b.$slides,b.unload(),b.$slideTrack.children(this.options.slide).detach(),b.$slidesCache.filter(a).appendTo(b.$slideTrack),b.reinit())},b.prototype.focusHandler=function(){var b=this;b.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*:not(.slick-arrow)",function(c){c.stopImmediatePropagation();var d=a(this);setTimeout(function(){b.options.pauseOnFocus&&(b.focussed=d.is(":focus"),b.autoPlay())},0)})},b.prototype.getCurrent=b.prototype.slickCurrentSlide=function(){var a=this;return a.currentSlide},b.prototype.getDotCount=function(){var a=this,b=0,c=0,d=0;if(a.options.infinite===!0)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else if(a.options.centerMode===!0)d=a.slideCount;else if(a.options.asNavFor)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else d=1+Math.ceil((a.slideCount-a.options.slidesToShow)/a.options.slidesToScroll);return d-1},b.prototype.getLeft=function(a){var c,d,f,b=this,e=0;return b.slideOffset=0,d=b.$slides.first().outerHeight(!0),b.options.infinite===!0?(b.slideCount>b.options.slidesToShow&&(b.slideOffset=b.slideWidth*b.options.slidesToShow*-1,e=d*b.options.slidesToShow*-1),b.slideCount%b.options.slidesToScroll!==0&&a+b.options.slidesToScroll>b.slideCount&&b.slideCount>b.options.slidesToShow&&(a>b.slideCount?(b.slideOffset=(b.options.slidesToShow-(a-b.slideCount))*b.slideWidth*-1,e=(b.options.slidesToShow-(a-b.slideCount))*d*-1):(b.slideOffset=b.slideCount%b.options.slidesToScroll*b.slideWidth*-1,e=b.slideCount%b.options.slidesToScroll*d*-1))):a+b.o
vendor: 4,100 bytes, line 5588
5588ptions.slidesToShow>b.slideCount&&(b.slideOffset=(a+b.options.slidesToShow-b.slideCount)*b.slideWidth,e=(a+b.options.slidesToShow-b.slideCount)*d),b.slideCount<=b.options.slidesToShow&&(b.slideOffset=0,e=0),b.options.centerMode===!0&&b.options.infinite===!0?b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)-b.slideWidth:b.options.centerMode===!0&&(b.slideOffset=0,b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)),c=b.options.vertical===!1?a*b.slideWidth*-1+b.slideOffset:a*d*-1+e,b.options.variableWidth===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,b.options.centerMode===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow+1),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,c+=(b.$list.width()-f.outerWidth())/2)),c},b.prototype.getOption=b.prototype.slickGetOption=function(a){var b=this;return b.options[a]},b.prototype.getNavigableIndexes=function(){var e,a=this,b=0,c=0,d=[];for(a.options.infinite===!1?e=a.slideCount:(b=-1*a.options.slidesToScroll,c=-1*a.options.slidesToScroll,e=2*a.slideCount);e>b;)d.push(b),b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d},b.prototype.getSlick=function(){return this},b.prototype.getSlideCount=function(){var c,d,e,b=this;return e=b.options.centerMode===!0?b.slideWidth*Math.floor(b.options.slidesToShow/2):0,b.options.swipeToSlide===!0?(b.$slideTrack.find(".slick-slide").each(function(c,f){return f.offsetLeft-e+a(f).outerWidth()/2>-1*b.swipeLeft?(d=f,!1):void 0}),c=Math.abs(a(d).attr("data-slick-index")-b.currentSlide)||1):b.options.slidesToScroll},b.prototype.goTo=b.prototype.slickGoTo=function(a,b){var c=this;c.changeSlide({data:{message:"index",index:parseInt(a)}},b)},b.prototype.init=function(b){var c=this;a(c.$slider).hasClass("slick-initialized")||(a(c.$slider).addClass("slick-initialized"),c.buildRows(),c.buildOut(),c.setProps(),c.startLoad(),c.loadSlider(),c.initializeEvents(),c.updateArrows(),c.updateDots(),c.checkResponsive(!0),c.focusHandler()),b&&c.$slider.trigger("init",[c]),c.options.accessibility===!0&&c.initADA(),c.options.autoplay&&(c.paused=!1,c.autoPlay())},b.prototype.initADA=function(){var b=this;b.$slides.add(b.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),b.$slideTrack.attr("role","listbox"),b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function(c){a(this).attr({role:"option","aria-describedby":"slick-slide"+b.instanceUid+c})}),null!==b.$dots&&b.$dots.attr("role","tablist").find("li").each(function(c){a(this).attr({role:"presentation","aria-selected":"false","aria-controls":"navigation"+b.instanceUid+c,id:"slick-slide"+b.instanceUid+c})}).first().attr("aria-selected","true").end().find("button").attr("role","button").end().closest("div").attr("role","toolbar"),b.activateADA()},b.prototype.initArrowEvents=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},a.changeSlide),a.$nextArrow.off("click.slick").on("click.slick",{message:"next"},a.changeSlide))},b.prototype.initDotEvents=function(){var b=this;b.options.dots===!0&&b.slideCount>b.options.slidesToShow&&a("li",b.$dots).on("click.slick",{message:"index"},b.changeSlide),b.options.dots===!0&&b.options.pauseOnDotsHover===!0&&a("li",b.$dots).on("mouseenter.slick",a.proxy(b.interrupt,b,!0)).on("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.initSlideEvents=function(){var b=this;b.options.pauseOnHover&&(b.$list.on("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.on("mouseleave.
5588slick",a.proxy(b.interrupt,b,!1)))},b.prototype.initializeEvents=function(){var b=this;b.initArrowEvents(),b.initDotEvents(),b.initSlideEvents(),b.$list.on("touchstart.slick mousedown.slick",{action:"start"},b.swipeHandler),b.$list.on("touchmove.slick mousemove.slick",{action:"move"},b.swipeHandler),b.$list.on("touchend.slick mouseup.slick",{action:"end"},b.swipeHandler),b.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},b.swipeHandler),b.$list.on("click.slick",b.clickHandler),a(document).on(b.visibilityChange,a.proxy(b.visibility,b)),b.options.accessibility===!0&&b.$list.on("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),a(window).on("orientationchange.slick.slick-"+b.instanceUid,a.proxy(b.orientationChange,b)),a(window).on("resize.slick.slick-"+b.instanceUid,a.proxy(b.resize,b)),a("[draggable!=true]",b.$slideTrack).on("dragstart",b.preventDefault),a(window).on("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).on("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.initUI=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.show(),a.$nextArrow.show()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.show()},b.prototype.keyHandler=function(a){var b=this;a.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===a.keyCode&&b.options.accessibility===!0?b.changeSlide({data:{message:b.options.rtl===!0?"next":"previous"}}):39===a.keyCode&&b.options.accessibility===!0&&b.changeSlide({data:{message:b.options.rtl===!0?"previous":"next"}}))},b.prototype.lazyLoad=function(){function g(c){a("img[data-lazy]",c).each(function(){var c=a(this),d=a(this).attr("data-lazy"),e=document.createElement("img");e.onload=function(){c.animate({opacity:0}
vendor: 4,284 bytes, line 5588
5588,100,function(){c.attr("src",d).animate({opacity:1},200,function(){c.removeAttr("data-lazy").removeClass("slick-loading")}),b.$slider.trigger("lazyLoaded",[b,c,d])})},e.onerror=function(){c.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),b.$slider.trigger("lazyLoadError",[b,c,d])},e.src=d})}var c,d,e,f,b=this;b.options.centerMode===!0?b.options.infinite===!0?(e=b.currentSlide+(b.options.slidesToShow/2+1),f=e+b.options.slidesToShow+2):(e=Math.max(0,b.currentSlide-(b.options.slidesToShow/2+1)),f=2+(b.options.slidesToShow/2+1)+b.currentSlide):(e=b.options.infinite?b.options.slidesToShow+b.currentSlide:b.currentSlide,f=Math.ceil(e+b.options.slidesToShow),b.options.fade===!0&&(e>0&&e--,f<=b.slideCount&&f++)),c=b.$slider.find(".slick-slide").slice(e,f),g(c),b.slideCount<=b.options.slidesToShow?(d=b.$slider.find(".slick-slide"),g(d)):b.currentSlide>=b.slideCount-b.options.slidesToShow?(d=b.$slider.find(".slick-cloned").slice(0,b.options.slidesToShow),g(d)):0===b.currentSlide&&(d=b.$slider.find(".slick-cloned").slice(-1*b.options.slidesToShow),g(d))},b.prototype.loadSlider=function(){var a=this;a.setPosition(),a.$slideTrack.css({opacity:1}),a.$slider.removeClass("slick-loading"),a.initUI(),"progressive"===a.options.lazyLoad&&a.progressiveLazyLoad()},b.prototype.next=b.prototype.slickNext=function(){var a=this;a.changeSlide({data:{message:"next"}})},b.prototype.orientationChange=function(){var a=this;a.checkResponsive(),a.setPosition()},b.prototype.pause=b.prototype.slickPause=function(){var a=this;a.autoPlayClear(),a.paused=!0},b.prototype.play=b.prototype.slickPlay=function(){var a=this;a.autoPlay(),a.options.autoplay=!0,a.paused=!1,a.focussed=!1,a.interrupted=!1},b.prototype.postSlide=function(a){var b=this;b.unslicked||(b.$slider.trigger("afterChange",[b,a]),b.animating=!1,b.setPosition(),b.swipeLeft=null,b.options.autoplay&&b.autoPlay(),b.options.accessibility===!0&&b.initADA())},b.prototype.prev=b.prototype.slickPrev=function(){var a=this;a.changeSlide({data:{message:"previous"}})},b.prototype.preventDefault=function(a){a.preventDefault()},b.prototype.progressiveLazyLoad=function(b){b=b||1;var e,f,g,c=this,d=a("img[data-lazy]",c.$slider);d.length?(e=d.first(),f=e.attr("data-lazy"),g=document.createElement("img"),g.onload=function(){e.attr("src",f).removeAttr("data-lazy").removeClass("slick-loading"),c.options.adaptiveHeight===!0&&c.setPosition(),c.$slider.trigger("lazyLoaded",[c,e,f]),c.progressiveLazyLoad()},g.onerror=function(){3>b?setTimeout(function(){c.progressiveLazyLoad(b+1)},500):(e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),c.$slider.trigger("lazyLoadError",[c,e,f]),c.progressiveLazyLoad())},g.src=f):c.$slider.trigger("allImagesLoaded",[c])},b.prototype.refresh=function(b){var d,e,c=this;e=c.slideCount-c.options.slidesToShow,!c.options.infinite&&c.currentSlide>e&&(c.currentSlide=e),c.slideCount<=c.options.slidesToShow&&(c.currentSlide=0),d=c.currentSlide,c.destroy(!0),a.extend(c,c.initials,{currentSlide:d}),c.init(),b||c.changeSlide({data:{message:"index",index:d}},!1)},b.prototype.registerBreakpoints=function(){var c,d,e,b=this,f=b.options.responsive||null;if("array"===a.type(f)&&f.length){b.respondTo=b.options.respondTo||"window";for(c in f)if(e=b.breakpoints.length-1,d=f[c].breakpoint,f.hasOwnProperty(c)){for(;e>=0;)b.breakpoints[e]&&b.breakpoints[e]===d&&b.breakpoints.splice(e,1),e--;b.breakpoints.push(d),b.breakpointSettings[d]=f[c].settings}b.breakpoints.sort(function(a,c){return b.options.mobileFirst?a-c:c-a})}},b.prototype.reinit=function(){var b=this;b.$slides=b.$slideTrack.children(b.options.slide).addClass("slick-slide"),b.slideCount=b.$slides.length,b.currentSlide>=b.slideCount&&0!==b.currentSlide&&(b.currentSlide=b.currentSlide-b.options.slidesToScroll),b.slideCount<=b.options.slidesToShow&&(b.currentSlide=0),b.registerBreakpoints(),b.setProps(),b.setupInfinite(),b.buildArrows(),b.updateArrows(),b.initArrowEvents(),b.buildDots(),b.updateDots(),b.initDotEvents(),b.cleanUpSlideEvents(),b.initSlideEvents(),b.checkResponsive(!1,!0),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.setPosition(),b.focu
vendor: 2,346 bytes, line 5588
5588sHandler(),b.paused=!b.options.autoplay,b.autoPlay(),b.$slider.trigger("reInit",[b])},b.prototype.resize=function(){var b=this;a(window).width()!==b.windowWidth&&(clearTimeout(b.windowDelay),b.windowDelay=window.setTimeout(function(){b.windowWidth=a(window).width(),b.checkResponsive(),b.unslicked||b.setPosition()},50))},b.prototype.removeSlide=b.prototype.slickRemove=function(a,b,c){var d=this;return"boolean"==typeof a?(b=a,a=b===!0?0:d.slideCount-1):a=b===!0?--a:a,d.slideCount<1||0>a||a>d.slideCount-1?!1:(d.unload(),c===!0?d.$slideTrack.children().remove():d.$slideTrack.children(this.options.slide).eq(a).remove(),d.$slides=d.$slideTrack.children(this.options.slide),d.$slideTrack.children(this.options.slide).detach(),d.$slideTrack.append(d.$slides),d.$slidesCache=d.$slides,void d.reinit())},b.prototype.setCSS=function(a){var d,e,b=this,c={};b.options.rtl===!0&&(a=-a),d="left"==b.positionProp?Math.ceil(a)+"px":"0px",e="top"==b.positionProp?Math.ceil(a)+"px":"0px",c[b.positionProp]=a,b.transformsEnabled===!1?b.$slideTrack.css(c):(c={},b.cssTransitions===!1?(c[b.animType]="translate("+d+", "+e+")",b.$slideTrack.css(c)):(c[b.animType]="translate3d("+d+", "+e+", 0px)",b.$slideTrack.css(c)))},b.prototype.setDimensions=function(){var a=this;a.options.vertical===!1?a.options.centerMode===!0&&a.$list.css({padding:"0px "+a.options.centerPadding}):(a.$list.height(a.$slides.first().outerHeight(!0)*a.options.slidesToShow),a.options.centerMode===!0&&a.$list.css({padding:a.options.centerPadding+" 0px"})),a.listWidth=a.$list.width(),a.listHeight=a.$list.height(),a.options.vertical===!1&&a.options.variableWidth===!1?(a.slideWidth=Math.ceil(a.listWidth/a.options.slidesToShow),a.$slideTrack.width(Math.ceil(a.slideWidth*a.$slideTrack.children(".slick-slide").length))):a.options.variableWidth===!0?a.$slideTrack.width(5e3*a.slideCount):(a.slideWidth=Math.ceil(a.listWidth),a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0)*a.$slideTrack.children(".slick-slide").length)));var b=a.$slides.first().outerWidth(!0)-a.$slides.first().width();a.options.variableWidth===!1&&a.$slideTrack.children(".slick-slide").width(a.slideWidth-b)},b.prototype.setFade=function(){var c,b=this;b.$slides.each(function(d,e){c=b.slideWidth*d*-1,b.options.rtl===!0?a(e).css({position:"relative",right:c,top:0,zIndex:b.options.zIndex-2,opacity:0}
vendor: 3,178 bytes, line 5588
5588):a(e).css({position:"relative",left:c,top:0,zIndex:b.options.zIndex-2,opacity:0})}),b.$slides.eq(b.currentSlide).css({zIndex:b.options.zIndex-1,opacity:1})},b.prototype.setHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.css("height",b)}},b.prototype.setOption=b.prototype.slickSetOption=function(){var c,d,e,f,h,b=this,g=!1;if("object"===a.type(arguments[0])?(e=arguments[0],g=arguments[1],h="multiple"):"string"===a.type(arguments[0])&&(e=arguments[0],f=arguments[1],g=arguments[2],"responsive"===arguments[0]&&"array"===a.type(arguments[1])?h="responsive":"undefined"!=typeof arguments[1]&&(h="single")),"single"===h)b.options[e]=f;else if("multiple"===h)a.each(e,function(a,c){b.options[a]=c});else if("responsive"===h)for(d in f)if("array"!==a.type(b.options.responsive))b.options.responsive=[f[d]];else{for(c=b.options.responsive.length-1;c>=0;)b.options.responsive[c].breakpoint===f[d].breakpoint&&b.options.responsive.splice(c,1),c--;b.options.responsive.push(f[d])}g&&(b.unload(),b.reinit())},b.prototype.setPosition=function(){var a=this;a.setDimensions(),a.setHeight(),a.options.fade===!1?a.setCSS(a.getLeft(a.currentSlide)):a.setFade(),a.$slider.trigger("setPosition",[a])},b.prototype.setProps=function(){var a=this,b=document.body.style;a.positionProp=a.options.vertical===!0?"top":"left","top"===a.positionProp?a.$slider.addClass("slick-vertical"):a.$slider.removeClass("slick-vertical"),(void 0!==b.WebkitTransition||void 0!==b.MozTransition||void 0!==b.msTransition)&&a.options.useCSS===!0&&(a.cssTransitions=!0),a.options.fade&&("number"==typeof a.options.zIndex?a.options.zIndex<3&&(a.options.zIndex=3):a.options.zIndex=a.defaults.zIndex),void 0!==b.OTransform&&(a.animType="OTransform",a.transformType="-o-transform",a.transitionType="OTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.MozTransform&&(a.animType="MozTransform",a.transformType="-moz-transform",a.transitionType="MozTransition",void 0===b.perspectiveProperty&&void 0===b.MozPerspective&&(a.animType=!1)),void 0!==b.webkitTransform&&(a.animType="webkitTransform",a.transformType="-webkit-transform",a.transitionType="webkitTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.msTransform&&(a.animType="msTransform",a.transformType="-ms-transform",a.transitionType="msTransition",void 0===b.msTransform&&(a.animType=!1)),void 0!==b.transform&&a.animType!==!1&&(a.animType="transform",a.transformType="transform",a.transitionType="transition"),a.transformsEnabled=a.options.useTransform&&null!==a.animType&&a.animType!==!1},b.prototype.setSlideClasses=function(a){var c,d,e,f,b=this;d=b.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),b.$slides.eq(a).addClass("slick-current"),b.options.centerMode===!0?(c=Math.floor(b.options.slidesToShow/2),b.options.infinite===!0&&(a>=c&&a<=b.slideCount-1-c?b.$slides.slice(a-c,a+c+1).addClass("slick-active").attr("aria-hidden","false"):(e=b.options.slidesToShow+a,
vendor: 1,607 bytes, line 5589
5589d.slice(e-c+1,e+c+2).addClass("slick-active").attr("aria-hidden","false")),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass("slick-center"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass("slick-center")),b.$slides.eq(a).addClass("slick-center")):a>=0&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):d.length<=b.options.slidesToShow?d.addClass("slick-active").attr("aria-hidden","false"):(f=b.slideCount%b.options.slidesToShow,e=b.options.infinite===!0?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-f),e+f).addClass("slick-active").attr("aria-hidden","false"):d.slice(e,e+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")),"ondemand"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(b.options.fade===!0&&(b.options.centerMode=!1),b.options.infinite===!0&&b.options.fade===!1&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d-b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d+b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");b.$slideTrack.find(".slick-cloned").find("[id]").each(function(){a(this).attr("id","")})}},b.prototype.
vendor: 4,540 bytes, line 5589
5589interrupt=function(a){var b=this;a||b.autoPlay(),b.interrupted=a},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(".slick-slide")?a(b.target):a(b.target).parents(".slick-slide"),e=parseInt(d.attr("data-slick-index"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.setSlideClasses(e),void c.asNavFor(e)):void c.slideHandler(e)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,j,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):(i.options.autoplay&&clearInterval(i.autoPlayTimer),e=0>d?i.slideCount%i.options.slidesToScroll!==0?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?i.slideCount%i.options.slidesToScroll!==0?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger("beforeChange",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.options.asNavFor&&(j=i.getNavTarget(),j=j.slick("getSlick"),j.slideCount<=j.options.slidesToShow&&j.setSlideClasses(i.currentSlide)),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?(i.fadeSlideOut(f),i.fadeSlide(e,function(){i.postSlide(e)})):i.postSlide(e),void i.animateHeight()):void(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e))))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass("slick-loading")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?"left":"right":360>=d&&d>=315?e.options.rtl===!1?"left":"right":d>=135&&225>=d?e.options.rtl===!1?"right":"left":e.options.verticalSwiping===!0?d>=35&&135>=d?"down":"up":"vertical"},b.prototype.swipeEnd=function(a){var c,d,b=this;if(b.dragging=!1,b.interrupted=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger("edge",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe){switch(d=b.swipeDirection()){case"left":case"down":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.currentDirection=0;break;case"right":case"up":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.currentDirection=1}"vertical"!=d&&(b.slideHandler(c),b.touchObject={},b.$slider.trigger("swipe",[b,d]))}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.swipeHandler=function(a){var b=this;if(!(b.options.swipe===!1||"ontouchend"in document&&b.options.swipe===!1||b.options.draggable===!1&&-1!==a.type.indexOf("mouse")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,b.options.verticalSwiping===!0&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case"start":b.swipeStart(a);break;case"move":b.swipeMove(a);break;case"end":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,e,f,g,h,b=this;return h=void 0!==a.originalEvent?a.originalEvent.touches:null,!b.dragging||h&&1!==h.length?!1:(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),b.options.verticalSwiping===!0&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),e=b.swipeDirection(),"vertical"!==e?(void 0!==a.originalEvent&&b.touchObject.swipeLength>
55894&&a.preventDefault(),g=(b.options.rtl===!1?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),b.options.verticalSwiping===!0&&(g=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,b.touchObject.edgeHit=!1,b.options.infinite===!1&&(0===b.currentSlide&&"right"===e||b.currentSlide>=b.getDotCount()&&"left"===e)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),b.options.vertical===!1?b.swipeLeft=d+f*g:b.swipeLeft=d+f*(b.$list.height()/b.listWidth)*g,b.options.verticalSwiping===!0&&(b.swipeLeft=d+f*g),b.options.fade===!0||b.options.touchMove===!1?!1:b.animating===!0?(b.swipeLeft=null,!1):void b.setCSS(b.swipeLeft)):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return b.interrupted=!0,1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?(b.touchObject={},!1):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,void(b.dragging=!0))},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(".slick-cloned",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.remove(),b.$nextArrow&&b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.remove(),b.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},b.prototype.unslick=function(a){var b=this;b.$slider.trigger("unslick",[b,a]),b.destroy()},b.prototype.updateArrows=function(){var b,a=this;b=Math.floor(a.options.slidesToShow/2),a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&!a.options.infinite&&(a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===a.currentSlide?(a.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-a.options.slidesToShow&&a.options.centerMode===!1?(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-1&&a.options.centerMode===!0&&(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find("li").removeClass("slick-active").attr("aria-hidden","true"),a.$dots.find("li").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden","false"))},b.prototype.visibility=function(){var a=this;a.options.autoplay&&(document[a.hidden]?a.interrupted=!0:a.interrupted=!1)},a.fn.slick=function(){var f,g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length;for(f=0;e>f;f++)if("object"==typeof c||"undefined"==typeof c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),"undefined"!=typeof g)return g;return a}});
5590
5591 $(document).ready(function() {
5592 if ($('[data-background]').length > 0) {
5593      $('[data-background]').each(function() {
5594        var $background, $backgroundmobile, $this;
5595        $this = $(this);
5596        $background = $(this).attr('data-background');
5597        $backgroundmobile = $(this).attr('data-background-mobile');
5598        if ($this.attr('data-background').substr(0, 1) === '#') {
5599          return $this.css('background-color', $background);
5600        } else if ($this.attr('data-background-mobile') && device.mobile()) {
5601          return $this.css('background-image', 'url(' + $backgroundmobile + ')');
5602        } else {
5603          return $this.css('background-image', 'url(' + $background + ')');
5604        }
5605      });
5606    }
5607  });
5608
5609/*
5610 * Smoothproducts version 2.0.2
5611 * http://kthornbloom.com/smoothproducts.php
5612 *
5613 * Copyright 2013, Kevin Thornbloom
5614 * Free to use and abuse under the MIT license.
5615 * http://www.opensource.org/licenses/mit-license.php
5616 */
5617
5618(function($) {
5619	$.fn.extend({
5620		deleteSmoothProducts: function () {
5621			$(document.body).off('click', '.sp-lightbox');
5622			$(document.body).off('click', '#sp-prev');
5623			$(document.body).off('click', '#sp-next');
5624			$(document.body).off('click', '.sp-large a');
5625			$(document.body).off('click', '.sp-noff-touch .sp-zoom');
5626			$(document.body).off('click', '.sp-tb-active a');
5627			$(document.body).off('click', '.sp-thumbs');
5628		},
5629		smoothproducts: function() {
5630
5631			// Add some markup & set some CSS
5632
5633			$('.sp-loading').hide();
5634			$('.sp-wrap').each(function() {
5635				$(this).addClass('sp-touch');
5636				var thumbQty = $('a', this).length;
5637
5638				// If more than one image
5639				if (thumbQty > 1) {
5640					var firstLarge,firstThumb,
5641						defaultImage = $('a.sp-default', this)[0]?true:false;
5642					$(this).append('<div class="sp-large"></div><div class="sp-thumbs sp-tb-active"></div>');
5643					$('a', this).each(function(index) {
5644						var thumb = $('img', this).attr('src'),
5645							large = $(this).attr('href'),
5646							classes = '';
5647						//set default image
5648						if((index === 0 && !defaultImage) || $(this).hasClass('sp-default')){
5649							classes = ' class="sp-current"';
5650							firstLarge = large;
5651							firstThumb = $('img', this)[0].src;
5652						}
5653						$(this).parents('.sp-wrap').find('.sp-thumbs').append('<a href="' + large + '" style="background-image:url(' + thumb + ')"'+classes+'></a>');
5654						$(this).remove();
5655					});
5656					$('.sp-large', this).append('<a href="' + firstLarge + '" class="sp-current-big"><img src="' + firstThumb + '" alt="" /></a>');
5657					$('.sp-wrap').css('display', 'inline-block');
5658				// If only one image
5659				} else {
5660					$(this).append('<div class="sp-large"></div>');
5661					$('a', this).appendTo($('.sp-large', this)).addClass('.sp-current-big');
5662					$('.sp-wrap').css('display', 'inline-block');
5663				}
5664			});
5665
5666
5667			// Prevent clicking while things are happening
5668			$(document.body).on('click', '.sp-thumbs', function(event) {
5669				event.preventDefault();
5670			});
5671
5672
5673			// Is this a touch screen or not?
5674			$(document.body).on('mouseover', function(event) {
5675				$('.sp-wrap').removeClass('sp-touch').addClass('sp-non-touch');
5676				event.preventDefault();
5677			});
5678
5679			$(document.body).on('touchstart', function() {
5680				$('.sp-wrap').removeClass('sp-non-touch').addClass('sp-touch');
5681			});
5682
5683			// Clicking a thumbnail
5684			$(document.body).on('click', '.sp-tb-active a', function(event) {
5685
5686				event.preventDefault();
5687				$(this).parent().find('.sp-current').removeClass();
5688				$(this).addClass('sp-current');
5689				$(this).parents('.sp-wrap').find('.sp-thumbs').removeClass('sp-tb-active');
5690				$(this).parents('.sp-wrap').find('.sp-zoom').remove();
5691
5692				var currentHeight = $(this).parents('.sp-wrap').find('.sp-large').height(),
5693					currentWidth = $(this).parents('.sp-wrap').find('.sp-large').width();
5694				$(this).parents('.sp-wrap').find('.sp-large').css({
5695					overflow: 'hidden',
5696					height: currentHeight + 'px',
5697					width: currentWidth + 'px'
5698				});
5699
5700				$(this).addClass('sp-current').parents('.sp-wrap').find('.sp-large a').remove();
5701
5702				var nextLarge = $(this).parent().find('.sp-current').attr('href'),
5703					nextThumb = get_url_from_background($(this).parent().find('.sp-current').css('backgroundImage'));
5704
5705				$(this).parents('.sp-wrap').find('.sp-large').html('<a href="' + nextLarge + '" class="sp-current-big"><img src="' + nextThumb + '"/></a>');
5706				$(this).parents('.sp-wrap').find('.sp-large').hide().fadeIn(250, function() {
5707
5708					var autoHeight = $(this).parents('.sp-wrap').find('.sp-large img').height();
5709
5710					$(this).parents('.sp-wrap').find('.sp-large').animate({
5711						height: autoHeight
5712					}, 'fast', function() {
5713						$('.sp-large').css({
5714							height: 'auto',
5715							width: 'auto'
5716						});
5717					});
5718
5719					$(this).parents('.sp-wrap').find('.sp-thumbs').addClass('sp-tb-active');
5720				});
5721			});
5722
5723			// Zoom In non-touch
5724			$(document.body).on('mouseenter', '.sp-non-touch .sp-large', function(event) {
5725				var largeUrl = $('a', this).attr('href');
5726				$(this).append('<div class="sp-zoom"><img src="' + largeUrl + '"/></div>');
5727				$(this).find('.sp-zoom').fadeIn(250);
5728				event.preventDefault();
5729			});
5730
5731			// Zoom Out non-touch
5732			$(document.body).on('mouseleave', '.sp-non-touch .sp-large', function(event) {
5733				$(this).find('.sp-zoom').fadeOut(250, function() {
5734					$(this).remove();
5735				});
5736				event.preventDefault();
5737			});
5738
5739			// Open in Lightbox non-touch
5740			$(document.body).on('click', '.sp-non-touch .sp-zoom', function(event) {
5741				var currentImg = $(this).html(),
5742					thumbAmt = $(this).parents('.sp-wrap').find('.sp-thumbs a').length,
5743					currentThumb = ($(this).parents('.sp-wrap').find('.sp-thumbs .sp-current').index())+1;
5744				$(this).parents('.sp-wrap').addClass('sp-selected');
5745				$('body').append("<div class='sp-lightbox' data-currenteq='"+currentThumb+"'>" + currentImg + "</div>");
5746
5747				if(thumbAmt > 1){
5748					$('.sp-lightbox').append("<a href='#' id='sp-prev'></a><a href='#' id='sp-next'></a>");
5749					if(currentThumb == 1) {
5750						$('#sp-prev').css('opacity','.1');
5751					} else if (currentThumb == thumbAmt){
5752						$('#sp-next').css('opacity','.1');
5753					}
5754				}
5755				$('.sp-lightbox').fadeIn();
5756				event.preventDefault();
5757			});
5758
5759			// Open in Lightbox touch
5760			$(document.body).on('click', '.sp-large a', function(event) {
5761				var currentImg = $(this).attr('href'),
5762					thumbAmt = $(this).parents('.sp-wrap').find('.sp-thumbs a').length,
5763					currentThumb = ($(this).parents('.sp-wrap').find('.sp-thumbs .sp-current').index())+1;
5764
5765				$(this).parents('.sp-wrap').addClass('sp-selected');
5766				$('body').append('<div class="sp-lightbox" data-currenteq="'+currentThumb+'"><img src="' + currentImg + '"/></div>');
5767
5768				if(thumbAmt > 1){
5769					$('.sp-lightbox').append("<a href='#' id='sp-prev'></a><a href='#' id='sp-next'></a>");
5770					if(currentThumb == 1) {
5771						$('#sp-prev').css('opacity','.1');
5772					} else if (currentThumb == thumbAmt){
5773						$('#sp-next').css('opacity','.1');
5774					}
5775				}
5776				$('.sp-lightbox').fadeIn();
5777				event.preventDefault();
5778			});
5779
5780			// Pagination Forward
5781			$(document.body).on('click', '#sp-next', function(event) {
5782				event.stopPropagation();
5783				var currentEq = $('.sp-lightbox').data('currenteq'),
5784					totalItems = $('.sp-selected .sp-thumbs a').length;
5785
5786					if(currentEq >= totalItems) {
5787					} else {
5788						var nextEq = currentEq + 1,
5789						newImg = $('.sp-selected .sp-thumbs').find('a:eq('+currentEq+')').attr('href'),
5790						newThumb = get_url_from_background($('.sp-selected .sp-thumbs').find('a:eq('+currentEq+')').css('backgroundImage'));
5791						if (currentEq == (totalItems - 1)) {
5792							$('#sp-next').css('opacity','.1');
5793						}
5794						$('#sp-prev').css('opacity','1');
5795						$('.sp-selected .sp-current').removeClass();
5796						$('.sp-selected .sp-thumbs a:eq('+currentEq+')').addClass('sp-current');
5797						$('.sp-selected .sp-large').empty().append('<a href='+newImg+'><img src="'+newThumb+'"/></a>');
5798						$('.sp-lightbox img').fadeOut(250, function() {
5799							$(this).remove();
5800							$('.sp-lightbox').data('currenteq',nextEq).append('<img src="'+newImg+'"/>');
5801							$('.sp-lightbox img').hide().fadeIn(250);
5802						});
5803					}
5804
5805				event.preventDefault();
5806			});
5807
5808		// Pagination Backward
5809			$(document.body).on('click', '#sp-prev', function(event) {
5810
5811				event.stopPropagation();
5812				var currentEq = $('.sp-lightbox').data('currenteq'),
5813					currentEq = currentEq - 1;
5814					if(currentEq <= 0) {
5815					} else {
5816						if (currentEq == 1) {
5817							$('#sp-prev').css('opacity','.1');
5818						}
5819						var nextEq = currentEq - 1,
5820						newImg = $('.sp-selected .sp-thumbs').find('a:eq('+nextEq+')').attr('href'),
5821						newThumb = get_url_from_background($('.sp-selected .sp-thumbs').find('a:eq('+nextEq+')').css('backgroundImage'));
5822						$('#sp-next').css('opacity','1');
5823						$('.sp-selected .sp-current').removeClass();
5824						$('.sp-selected .sp-thumbs a:eq('+nextEq+')').addClass('sp-current');
5825						$('.sp-selected .sp-large').empty().append('<a href='+newImg+'><img src="'+newThumb+'"/></a>');
5826						$('.sp-lightbox img').fadeOut(250, function() {
5827							$(this).remove();
5828							$('.sp-lightbox').data('currenteq',currentEq).append('<img src="'+newImg+'"/>');
5829							$('.sp-lightbox img').hide().fadeIn(250);
5830						});
5831					}
5832				event.preventDefault();
5833			});
5834
5835
5836			// Close Lightbox
5837			$(document.body).on('click', '.sp-lightbox', function() {
5838				closeModal();
5839			});
5840
5841			// Close on Esc
5842			$(document).keydown(function(e) {
5843				if (e.keyCode == 27) {
5844					closeModal();
5845					return false;
5846				}
5847			});
5848
5849			function closeModal (){
5850				$('.sp-selected').removeClass('sp-selected');
5851				$('.sp-lightbox').fadeOut(function() {
5852						$(this).remove();
5853				});
5854			}
5855
5856
5857			// Panning zoomed image (non-touch)
5858
5859			$('.sp-large').mousemove(function(e) {
5860				var viewWidth = $(this).width(),
5861					viewHeight = $(this).height(),
5862					viewOffset = $(this).offset(),
5863					largeWidth = $(this).find('.sp-zoom').width(),
5864					largeHeight = $(this).find('.sp-zoom').height(),
5865					relativeXPosition = (e.pageX - viewOffset.left),
5866					relativeYPosition = (e.pageY - viewOffset.top),
5867					moveX = Math.floor((relativeXPosition * (viewWidth - largeWidth) / viewWidth)),
5868					moveY = Math.floor((relativeYPosition * (viewHeight - largeHeight) / viewHeight));
5869
5870				$(this).find('.sp-zoom').css({
5871					left: moveX,
5872					top: moveY
5873				});
5874
5875			});
5876
5877			function get_url_from_background(bg){
5878				return bg.match(/url\([\"\']{0,1}(.+)[\"\']{0,1}\)+/i)[1];
5879			}
5880		}
5881	});
5882})(jQuery);
5883
5884
5885/*!
5886 * Snackbar v0.1.14
5887 * http://polonel.com/Snackbar
5888 *
5889 * Copyright 2018 Chris Brame and other contributors
5890 * Released under the MIT license
5891 * https://github.com/polonel/Snackbar/blob/master/LICENSE
5892 */
5893!function(a,b){"use strict";"function"==typeof define&&define.amd?define([],function(){return a.Snackbar=b()}):"object"==typeof module&&module.exports?module.exports=a.Snackbar=b():a.Snackbar=b()}(this,function(){var a={};a.current=null;var b={text:"Default Text",textColor:"#FFFFFF",width:"auto",showAction:!0,actionText:"Dismiss",actionTextAria:"Dismiss, Description for Screen Readers",alertScreenReader:!1,actionTextColor:"#4CAF50",showSecondButton:!1,secondButtonText:"",secondButtonAria:"Description for Screen Readers",secondButtonTextColor:"#4CAF50",backgroundColor:"#323232",pos:"bottom-left",duration:5e3,customClass:"",onActionClick:function(a){a.style.opacity=0},onSecondButtonClick:function(a){},onClose:function(a){}};a.show=function(d){var e=c(!0,b,d);a.current&&(a.current.style.opacity=0,setTimeout(function(){var a=this.parentElement;a&&
5894// possible null if too many/fast Snackbars
5895a.removeChild(this)}.bind(a.current),500)),a.snackbar=document.createElement("div"),a.snackbar.className="snackbar-container "+e.customClass,a.snackbar.style.width=e.width;var f=document.createElement("p");if(f.style.margin=0,f.style.padding=0,f.style.color=e.textColor,f.style.fontSize="14px",f.style.fontWeight=300,f.style.lineHeight="1em",f.innerHTML=e.text,a.snackbar.appendChild(f),a.snackbar.style.background=e.backgroundColor,e.showSecondButton){var g=document.createElement("button");g.className="action",g.innerHTML=e.secondButtonText,g.setAttribute("aria-label",e.secondButtonAria),g.style.color=e.secondButtonTextColor,g.addEventListener("click",function(){e.onSecondButtonClick(a.snackbar)}),a.snackbar.appendChild(g)}if(e.showAction){var h=document.createElement("button");h.className="action",h.innerHTML=e.actionText,h.setAttribute("aria-label",e.actionTextAria),h.style.color=e.actionTextColor,h.addEventListener("click",function(){e.onActionClick(a.snackbar)}),a.snackbar.appendChild(h)}e.duration&&setTimeout(function(){a.current===this&&(a.current.style.opacity=0,
5896// When natural remove event occurs let's move the snackbar to its origins
5897a.current.style.top="-100px",a.current.style.bottom="-100px")}.bind(a.snackbar),e.duration),e.alertScreenReader&&a.snackbar.setAttribute("role","alert"),a.snackbar.addEventListener("transitionend",function(b,c){"opacity"===b.propertyName&&"0"===this.style.opacity&&("function"==typeof e.onClose&&e.onClose(this),this.parentElement.removeChild(this),a.current===this&&(a.current=null))}.bind(a.snackbar)),a.current=a.snackbar,document.body.appendChild(a.snackbar);getComputedStyle(a.snackbar).bottom,getComputedStyle(a.snackbar).top;a.snackbar.style.opacity=1,a.snackbar.className="snackbar-container "+e.customClass+" snackbar-pos "+e.pos},a.close=function(){a.current&&(a.current.style.opacity=0)};
5898// Pure JS Extend
5899// http://gomakethings.com/vanilla-javascript-version-of-jquery-extend/
5900var c=function(){var a={},b=!1,d=0,e=arguments.length;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(b=arguments[0],d++);for(var f=function(d){for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b&&"[object Object]"===Object.prototype.toString.call(d[e])?a[e]=c(!0,a[e],d[e]):a[e]=d[e])};d<e;d++){var g=arguments[d];f(g)}return a};return a});
5901
5902/**
5903@author Cameron Manavian
5904jQuery Style Switcher
5905
5906The MIT License (MIT)
5907
5908Copyright (c) 2014 Cameron Manavian
5909
5910Permission is hereby granted, free of charge, to any person obtaining a copy
5911of this software and associated documentation files (the "Software"), to deal
5912in the Software without restriction, including without limitation the rights
5913to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
5914copies of the Software, and to permit persons to whom the Software is
5915furnished to do so, subject to the following conditions:
5916
5917The above copyright notice and this permission notice shall be included in all
5918copies or substantial portions of the Software.
5919
5920THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
5921IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5922FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
5923AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5924LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
5925OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
5926SOFTWARE.
5927**/
5928
5929(function ($) {
5930	var jStyleSwitcher,
5931		_defaultOptions = {
5932			hasPreview: true,
5933			defaultThemeId: 'jssDefault',
5934			fullPath: 'assets/dist/css/',
5935			cookie: {
5936				expires: 30,
5937				isManagingLoad: true
5938			}
5939		},
5940		// private
5941		_cookieKey = 'jss_selected',
5942		_docCookies = {};
5943
5944	/*\
5945	|*|
5946	|*|  :: cookies.js ::
5947	|*|
5948	|*|  A complete cookies reader/writer framework with full unicode support.
5949	|*|
5950	|*|  revision #1
5951	|*|
5952	|*|  https://developer.mozilla.org/en-US/docs/Web/API/document.cookie
5953	|*|
5954	|*|  This framework is released under the GNU Public License, version 3 or later.
5955	|*|  http://www.gnu.org/licenses/gpl-3.0-standalone.html
5956	|*|
5957	|*|  Syntaxes:
5958	|*|
5959	|*|  * docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])
5960	|*|  * docCookies.getItem(name)
5961	|*|  * docCookies.removeItem(name[, path[, domain]])
5962	|*|  * docCookies.hasItem(name)
5963	|*|  * docCookies.keys()
5964	|*|
5965	\*/
5966	_docCookies = {
5967		getItem: function (sKey) {
5968			if (!sKey) {
5969				return null;
5970			}
5971			return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
5972		},
5973		setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {
5974			if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) {
5975				return false;
5976			}
5977			var sExpires = "";
5978			if (vEnd) {
5979				switch (vEnd.constructor) {
5980					case Number:
5981						sExpires = vEnd === Infinity ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + vEnd;
5982						break;
5983					case String:
5984						sExpires = "; expires=" + vEnd;
5985						break;
5986					case Date:
5987						sExpires = "; expires=" + vEnd.toUTCString();
5988						break;
5989				}
5990			}
5991			document.cookie = encodeURIComponent(sKey) + "=" + encodeURIComponent(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");
5992			return true;
5993		},
5994		removeItem: function (sKey, sPath, sDomain) {
5995			if (!this.hasItem(sKey)) {
5996				return false;
5997			}
5998			document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "");
5999			return true;
6000		},
6001		hasItem: function (sKey) {
6002			if (!sKey) {
6003				return false;
6004			}
6005			return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
6006		},
6007		keys: function () {
6008			var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
6009			for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) {
6010				aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);
6011			}
6012			return aKeys;
6013		}
6014	};
6015
6016	jStyleSwitcher = function ($root, config) {
6017		return this.init($root, config);
6018	};
6019
6020	jStyleSwitcher.prototype = {
6021
6022		/**
6023		 * {Object} DOM reference to style option list
6024		 */
6025		$root: null,
6026
6027		/**
6028		 * {Object} configs for the style switcher
6029		 */
6030		config: {},
6031
6032		/**
6033		 * {Object} jQuery reference to <link> tag for swapping CSS
6034		 */
6035		$themeCss: null,
6036		
6037		/**
6038		 * {String} default theme page was loaded with
6039		 */
6040		defaultTheme: null,
6041
6042		init: function ($root, config) {
6043			this.$root = $root;
6044			this.config = config ? config : {};
6045			this.setDefaultTheme();
6046			if(this.defaultTheme) {
6047				// try cookies
6048				if (this.config.cookie) {
6049					this.checkCookie();
6050				}
6051				// try hover
6052				if (this.config.hasPreview) {
6053					this.addHoverEvents();
6054				}
6055				// finally, add click events
6056				this.addClickEvents();
6057			} else {
6058				this.$root.addClass('jssError error level0');
6059			}
6060		},
6061
6062		setDefaultTheme: function () {
6063			this.$themeCss = $('link[id=' + this.config.defaultThemeId + ']');
6064			if(this.$themeCss.length) {
6065				this.defaultTheme = this.$themeCss.attr('href');
6066			}
6067		},
6068		
6069		resetStyle: function() {
6070			this.updateStyle(this.defaultTheme);
6071		},
6072		
6073		updateStyle: function(newStyle) {
6074			this.$themeCss.attr('href', newStyle);
6075		},
6076		
6077		getFullAssetPath: function(asset) {
6078			return this.config.fullPath + asset + '.css';
6079		},
6080
6081		checkCookie: function () {
6082			var styleCookie;
6083			// if using cookies and using JavaScript to load css
6084			if (this.config.cookie && this.config.cookie.isManagingLoad) {
6085				// check if css is set in cookie
6086				styleCookie = _docCookies.getItem(_cookieKey);
6087				if (styleCookie) {
6088					newStyle = this.getFullAssetPath(styleCookie);
6089					// update link tag
6090					this.updateStyle(newStyle);
6091					// update default ref
6092					this.defaultTheme = newStyle;
6093				}
6094			}
6095		},
6096
6097		addHoverEvents: function () {
6098			var self = this;
6099			this.$root.find('a').hover(
6100				function () {
6101					var asset = $(this).data('theme'),
6102						newStyle = self.getFullAssetPath(asset);
6103					// update link tag
6104					self.updateStyle(newStyle);
6105				},
6106				function () {
6107					// reset link tag
6108					self.resetStyle();
6109				}
6110			);
6111		},
6112
6113		addClickEvents: function () {
6114			var self = this;
6115			this.$root.find('a').click(
6116				function () {
6117					var asset = $(this).data('theme'),
6118						newStyle = self.getFullAssetPath(asset);
6119					// update link tag
6120					self.updateStyle(newStyle);
6121					// update default ref
6122					self.defaultTheme = newStyle;
6123					// try to store cookie
6124					if (self.config.cookie) {
6125						_docCookies.setItem(_cookieKey, asset, self.config.cookie.expires, '/');
6126					}
6127				}
6128			);
6129		}
6130	};
6131
6132	$.fn.styleSwitcher = function (options) {
6133		return new jStyleSwitcher(this, $.extend(true, _defaultOptions, options));
6134	};
6135})(jQuery);
6136
6137$(function() {
6138    "use strict";
6139
6140	//Loader	
6141	$(function preloaderLoad() {
6142        if($('.preloader').length){
6143            $('.preloader').delay(200).fadeOut(300);
6144        }
6145        $(".preloader_disabler").on('click', function() {
6146            $("#preloader").hide();
6147        });
6148    });
6149	
6150	// Dashbaord Nav Scrolling
6151	$(window).on('load resize', function() {
6152		var wrapperHeight = window.innerHeight;
6153		var headerHeight = $(".header-light").height();
6154		var winWidth = $(window).width();
6155
6156		if(winWidth>992) {
6157			$(".dashboard-inner").css('max-height', wrapperHeight-headerHeight);
6158		} else {
6159			$(".dashboard-inner").css('max-height', '');
6160		}
6161	});
6162	
6163	// Script Navigation
6164	! function(n, e, i, a) {
6165		n.navigation = function(t, s) {
6166			var o = {
6167					responsive: !0,
6168					mobileBreakpoint:992,
6169					showDuration: 300,
6170					hideDuration: 300,
6171					showDelayDuration: 0,
6172					hideDelayDuration: 0,
6173					submenuTrigger: "hover",
6174					effect: "fade",
6175					submenuIndicator: !0,
6176					hideSubWhenGoOut: !0,
6177					visibleSubmenusOnMobile: !1,
6178					fixed: !1,
6179					overlay: !0,
6180					overlayColor: "rgba(0, 0, 0, 0.5)",
6181					hidden: !1,
6182					offCanvasSide: "left",
6183					onInit: function() {},
6184					onShowOffCanvas: function() {},
6185					onHideOffCanvas: function() {}
6186				},
6187				u = this,
6188				r = Number.MAX_VALUE,
6189				d = 1,
6190				f = "click.nav touchstart.nav",
6191				l = "mouseenter.nav",
6192				c = "mouseleave.nav";
6193			u.settings = {};
6194			var t = (n(t), t);
6195			n(t).find(".nav-menus-wrapper").prepend("<span class='nav-menus-wrapper-close-button'>✕</span>"), n(t).find(".nav-search").length > 0 && n(t).find(".nav-search").find("form").prepend("<span class='nav-search-close-button'>✕</span>"), u.init = function() {
6196				u.settings = n.extend({}, o, s), "right" == u.settings.offCanvasSide && n(t).find(".nav-menus-wrapper").addClass("nav-menus-wrapper-right"), u.settings.hidden && (n(t).addClass("navigation-hidden"), u.settings.mobileBreakpoint = 99999), v(), u.settings.fixed && n(t).addClass("navigation-fixed"), n(t).find(".nav-toggle").on("click touchstart", function(n) {
6197					n.stopPropagation(), n.preventDefault(), u.showOffcanvas(), s !== a && u.callback("onShowOffCanvas")
6198				}), n(t).find(".nav-menus-wrapper-close-button").on("click touchstart", function() {
6199					u.hideOffcanvas(), s !== a && u.callback("onHideOffCanvas")
6200				}), n(t).find(".nav-search-button").on("click touchstart", function(n) {
6201					n.stopPropagation(), n.preventDefault(), u.toggleSearch()
6202				}), n(t).find(".nav-search-close-button").on("click touchstart", function() {
6203					u.toggleSearch()
6204				}), n(t).find(".megamenu-tabs").length > 0 && y(), n(e).resize(function() {
6205					m(), C()
6206				}), m(), s !== a && u.callback("onInit")
6207			};
6208			var v = function() {
6209				n(t).find("li").each(function() {
6210					n(this).children(".nav-dropdown,.megamenu-panel").length > 0 && (n(this).children(".nav-dropdown,.megamenu-panel").addClass("nav-submenu"), u.settings.submenuIndicator && n(this).children("a").append("<span class='submenu-indicator'><span class='submenu-indicator-chevron'></span></span>"))
6211				})
6212			};
6213			u.showSubmenu = function(e, i) {
6214				g() > u.settings.mobileBreakpoint && n(t).find(".nav-search").find("form").slideUp(), "fade" == i ? n(e).children(".nav-submenu").stop(!0, !0).delay(u.settings.showDelayDuration).fadeIn(u.settings.showDuration) : n(e).children(".nav-submenu").stop(!0, !0).delay(u.settings.showDelayDuration).slideDown(u.settings.showDuration), n(e).addClass("nav-submenu-open")
6215			}, u.hideSubmenu = function(e, i) {
6216				"fade" == i ? n(e).find(".nav-submenu").stop(!0, !0).delay(u.settings.hideDelayDuration).fadeOut(u.settings.hideDuration) : n(e).find(".nav-submenu").stop(!0, !0).delay(u.settings.hideDelayDuration).slideUp(u.settings.hideDuration), n(e).removeClass("nav-submenu-open").find(".nav-submenu-open").removeClass("nav-submenu-open")
6217			};
6218			var h = function() {
6219					n("body").addClass("no-scroll"), u.settings.overlay && (n(t).append("<div class='nav-overlay-panel'></div>"), n(t).find(".nav-overlay-panel").css("background-color", u.settings.overlayColor).fadeIn(300).on("click touchstart", function(n) {
6220						u.hideOffcanvas()
6221					}))
6222				},
6223				p = function() {
6224					n("body").removeClass("no-scroll"), u.settings.overlay && n(t).find(".nav-overlay-panel").fadeOut(400, function() {
6225						n(this).remove()
6226					})
6227				};
6228			u.showOffcanvas = function() {
6229				h(), "left" == u.settings.offCanvasSide ? n(t).find(".nav-menus-wrapper").css("transition-property", "left").addClass("nav-menus-wrapper-open") : n(t).find(".nav-menus-wrapper").css("transition-property", "right").addClass("nav-menus-wrapper-open")
6230			}, u.hideOffcanvas = function() {
6231				n(t).find(".nav-menus-wrapper").removeClass("nav-menus-wrapper-open").on("webkitTransitionEnd moztransitionend transitionend oTransitionEnd", function() {
6232					n(t).find(".nav-menus-wrapper").css("transition-property", "none").off()
6233				}), p()
6234			}, u.toggleOffcanvas = function() {
6235				g() <= u.settings.mobileBreakpoint && (n(t).find(".nav-menus-wrapper").hasClass("nav-menus-wrapper-open") ? (u.hideOffcanvas(), s !== a && u.callback("onHideOffCanvas")) : (u.showOffcanvas(), s !== a && u.callback("onShowOffCanvas")))
6236			}, u.toggleSearch = function() {
6237				"none" == n(t).find(".nav-search").find("form").css("display") ? (n(t).find(".nav-search").find("form").slideDown(), n(t).find(".nav-submenu").fadeOut(200)) : n(t).find(".nav-search").find("form").slideUp()
6238			};
6239			var m = function() {
6240					u.settings.responsive ? (g() <= u.settings.mobileBreakpoint && r > u.settings.mobileBreakpoint && (n(t).addClass("navigation-portrait").removeClass("navigation-landscape"), D()), g() > u.settings.mobileBreakpoint && d <= u.settings.mobileBreakpoint && (n(t).addClass("navigation-landscape").removeClass("navigation-portrait"), k(), p(), u.hideOffcanvas()), r = g(), d = g()) : k()
6241				},
6242				b = function() {
6243					n("body").on("click.body touchstart.body", function(e) {
6244						0 === n(e.target).closest(".navigation").length && (n(t).find(".nav-submenu").fadeOut(), n(t).find(".nav-submenu-open").removeClass("nav-submenu-open"), n(t).find(".nav-search").find("form").slideUp())
6245					})
6246				},
6247				g = function() {
6248					return e.innerWidth || i.documentElement.clientWidth || i.body.clientWidth
6249				},
6250				w = function() {
6251					n(t).find(".nav-menu").find("li, a").off(f).off(l).off(c)
6252				},
6253				C = function() {
6254					if (g() > u.settings.mobileBreakpoint) {
6255						var e = n(t).outerWidth(!0);
6256						n(t).find(".nav-menu").children("li").children(".nav-submenu").each(function() {
6257							n(this).parent().position().left + n(this).outerWidth() > e ? n(this).css("right", 0) : n(this).css("right", "auto")
6258						})
6259					}
6260				},
6261				y = function() {
6262					function e(e) {
6263						var i = n(e).children(".megamenu-tabs-nav").children("li"),
6264							a = n(e).children(".megamenu-tabs-pane");
6265						n(i).on("click.tabs touchstart.tabs", function(e) {
6266							e.stopPropagation(), e.preventDefault(), n(i).removeClass("active"), n(this).addClass("active"), n(a).hide(0).removeClass("active"), n(a[n(this).index()]).show(0).addClass("active")
6267						})
6268					}
6269					if (n(t).find(".megamenu-tabs").length > 0)
6270						for (var i = n(t).find(".megamenu-tabs"), a = 0; a < i.length; a++) e(i[a])
6271				},
6272				k = function() {
6273					w(), n(t).find(".nav-submenu").hide(0), navigator.userAgent.match(/Mobi/i) || navigator.maxTouchPoints > 0 || "click" == u.settings.submenuTrigger ? n(t).find(".nav-menu, .nav-dropdown").children("li").children("a").on(f, function(i) {
6274						if (u.hideSubmenu(n(this).parent("li").siblings("li"), u.settings.effect), n(this).closest(".nav-menu").siblings(".nav-menu").find(".nav-submenu").fadeOut(u.settings.hideDuration), n(this).siblings(".nav-submenu").length > 0) {
6275							if (i.stopPropagation(), i.preventDefault(), "none" == n(this).siblings(".nav-submenu").css("display")) return u.showSubmenu(n(this).parent("li"), u.settings.effect), C(), !1;
6276							if (u.hideSubmenu(n(this).parent("li"), u.settings.effect), "_blank" == n(this).attr("target") || "blank" == n(this).attr("target")) e.open(n(this).attr("href"));
6277							else {
6278								if ("#" == n(this).attr("href") || "" == n(this).attr("href")) return !1;
6279								e.location.href = n(this).attr("href")
6280							}
6281						}
6282					}) : n(t).find(".nav-menu").find("li").on(l, function() {
6283						u.showSubmenu(this, u.settings.effect), C()
6284					}).on(c, function() {
6285						u.hideSubmenu(this, u.settings.effect)
6286					}), u.settings.hideSubWhenGoOut && b()
6287				},
6288				D = function() {
6289					w(), n(t).find(".nav-submenu").hide(0), u.settings.visibleSubmenusOnMobile ? n(t).find(".nav-submenu").show(0) : (n(t).find(".nav-submenu").hide(0), n(t).find(".submenu-indicator").removeClass("submenu-indicator-up"), u.settings.submenuIndicator ? n(t).find(".submenu-indicator").on(f, function(e) {
6290						return e.stopPropagation(), e.preventDefault(), u.hideSubmenu(n(this).parent("a").parent("li").siblings("li"), "slide"), u.hideSubmenu(n(this).closest(".nav-menu").siblings(".nav-menu").children("li"), "slide"), "none" == n(this).parent("a").siblings(".nav-submenu").css("display") ? (n(this).addClass("submenu-indicator-up"), n(this).parent("a").parent("li").siblings("li").find(".submenu-indicator").removeClass("submenu-indicator-up"), n(this).closest(".nav-menu").siblings(".nav-menu").find(".submenu-indicator").removeClass("submenu-indicator-up"), u.showSubmenu(n(this).parent("a").parent("li"), "slide"), !1) : (n(this).parent("a").parent("li").find(".submenu-indicator").removeClass("submenu-indicator-up"), void u.hideSubmenu(n(this).parent("a").parent("li"), "slide"))
6291					}) : k())
6292				};
6293			u.callback = function(n) {
6294				s[n] !== a && s[n].call(t)
6295			}, u.init()
6296		}, n.fn.navigation = function(e) {
6297			return this.each(function() {
6298				if (a === n(this).data("navigation")) {
6299					var i = new n.navigation(this, e);
6300					n(this).data("navigation", i)
6301				}
6302			})
6303		}
6304	}
6305	(jQuery, window, document), $(document).ready(function() {
6306		$("#navigation").navigation()
6307	});
6308	
6309	// Product Preview
6310	$('.sp-wrap').smoothproducts();
6311	
6312	// Tooltip
6313	$('[data-toggle="tooltip"]').tooltip(); 
6314	
6315	// Snackbar for wishlist Product
6316	$('.snackbar-wishlist').click(function() { 
6317		Snackbar.show({
6318			text: 'Your Job was added to wishlist successfully!',
6319			pos: 'top-right',
6320			showAction: false,
6321			actionText: "Dismiss",
6322			duration: 3000,
6323			textColor: '#fff',
6324			backgroundColor: '#151515'
6325		}); 
6326	});
6327	
6328	// Bottom To Top Scroll Script
6329	$(window).on('scroll', function() {
6330		var height = $(window).scrollTop();
6331		if (height > 100) {
6332			$('#back2Top').fadeIn();
6333		} else {
6334			$('#back2Top').fadeOut();
6335		}
6336	});
6337	
6338	
6339	// Script For Fix Header on Scroll
6340	$(window).on('scroll', function() {    
6341		var scroll = $(window).scrollTop();
6342
6343		if (scroll >= 50) {
6344			$(".header").addClass("header-fixed");
6345		} else {
6346			$(".header").removeClass("header-fixed");
6347		}
6348	});
6349
6350	// reviews-slide
6351	$('.reviews-slide').slick({
6352	  slidesToShow:1,
6353	  arrows: true,
6354	  dots: false,
6355	  infinite: true,
6356	  autoplaySpeed: 2000,
6357	  autoplay:true,
6358	  responsive: [
6359		{
6360		  breakpoint: 1024,
6361		  settings: {
6362			arrows: true,
6363			dots: false,
6364			slidesToShow:1
6365		  }
6366		},
6367		{
6368		  breakpoint: 600,
6369		  settings: {
6370			arrows: true,
6371			dots: false,
6372			slidesToShow:1
6373		  }
6374		}
6375	  ]
6376	});
6377	
6378	// item Slide
6379	$('.review-slide').slick({
6380	  slidesToShow:3,
6381	  arrows: true,
6382	  dots: false,
6383	  infinite: true,
6384	  speed: 500,
6385	  cssEase: 'linear',
6386	  autoplaySpeed: 2000,
6387	  autoplay:true,
6388	  responsive: [
6389		{
6390		  breakpoint: 1024,
6391		  settings: {
6392			arrows: true,
6393			dots: false,
6394			slidesToShow:3
6395		  }
6396		},
6397		{
6398		  breakpoint: 600,
6399		  settings: {
6400			arrows: true,
6401			dots: false,
6402			slidesToShow:1
6403		  }
6404		}
6405	  ]
6406	});
6407	
6408	// Home Slider
6409	$('.imployer-explore').slick({
6410	  centerMode:false,
6411	  slidesToShow:6,
6412	  speed: 500,
6413	  infinite: true,
6414	  cssEase: 'linear',
6415	  autoplaySpeed: 2000,
6416	  autoplay:true,
6417	  arrows: false,
6418	  dots: false,
6419	  responsive: [
6420		{
6421		  breakpoint: 768,
6422		  settings: {
6423			arrows:false,
6424			slidesToShow:4
6425		  }
6426		},
6427		{
6428		  breakpoint: 480,
6429		  settings: {
6430			arrows: false,
6431			slidesToShow:3
6432		  }
6433		}
6434	  ]
6435	});
6436	
6437	// item Slide
6438	$('.slide_items').slick({
6439	  slidesToShow:4,
6440	  arrows: true,
6441	  dots: false,
6442	  infinite: true,
6443	  speed: 500,
6444	  cssEase: 'linear',
6445	  autoplaySpeed: 2000,
6446	  autoplay:true,
6447	  responsive: [
6448		{
6449		  breakpoint: 1024,
6450		  settings: {
6451			arrows: true,
6452			dots: false,
6453			slidesToShow:3
6454		  }
6455		},
6456		{
6457		  breakpoint: 600,
6458		  settings: {
6459			arrows: true,
6460			dots: false,
6461			slidesToShow:1
6462		  }
6463		}
6464	  ]
6465	});
6466
6467
6468	
6469});
6470

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