PageSourceSearch

https://www.drb-bw.de/typo3temp/assets/compressed/merged-874213b17…fca304b8daf84f7fa5c8977840b19.js?1783588365

js drb-bw.de collected 2026-10-08 19:31:20 UTC 325,235 bytes, 4,891 lines download raw bytes

vendor: 2,731 bytes, lines 1-3
1
2/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
3!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v
vendor: 19,680 bytes, line 3
3)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>
vendor: 64,249 bytes, lines 3-5
32&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
4a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={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,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.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,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(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
5null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.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(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,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":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
vendor: 1,249 bytes, lines 6-48
6
7//! moment.js
8//! version : 2.19.3
9//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
10//! license : MIT
11//! momentjs.com
12
13;(function (global, factory) {
14    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
15    typeof define === 'function' && define.amd ? define(factory) :
16    global.moment = factory()
17}(this, (function () { 'use strict';
18
19var hookCallback;
20
21function hooks () {
22    return hookCallback.apply(null, arguments);
23}
24
25// This is done to register the method called with moment()
26// without creating circular dependencies.
27function setHookCallback (callback) {
28    hookCallback = callback;
29}
30
31function isArray(input) {
32    return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
33}
34
35function isObject(input) {
36    // IE8 will treat undefined and null as object if it wasn't for
37    // input != null
38    return input != null && Object.prototype.toString.call(input) === '[object Object]';
39}
40
41function isObjectEmpty(obj) {
42    if (Object.getOwnPropertyNames) {
43        return (Object.getOwnPropertyNames(obj).length === 0);
44    } else {
45        var k;
46        for (k in obj) {
47            if (obj.hasOwnProperty(k)) {
48                return false;
vendor: 22,938 bytes, lines 49-926
49            }
50        }
51        return true;
52    }
53}
54
55function isUndefined(input) {
56    return input === void 0;
57}
58
59function isNumber(input) {
60    return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
61}
62
63function isDate(input) {
64    return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
65}
66
67function map(arr, fn) {
68    var res = [], i;
69    for (i = 0; i < arr.length; ++i) {
70        res.push(fn(arr[i], i));
71    }
72    return res;
73}
74
75function hasOwnProp(a, b) {
76    return Object.prototype.hasOwnProperty.call(a, b);
77}
78
79function extend(a, b) {
80    for (var i in b) {
81        if (hasOwnProp(b, i)) {
82            a[i] = b[i];
83        }
84    }
85
86    if (hasOwnProp(b, 'toString')) {
87        a.toString = b.toString;
88    }
89
90    if (hasOwnProp(b, 'valueOf')) {
91        a.valueOf = b.valueOf;
92    }
93
94    return a;
95}
96
97function createUTC (input, format, locale, strict) {
98    return createLocalOrUTC(input, format, locale, strict, true).utc();
99}
100
101function defaultParsingFlags() {
102    // We need to deep clone this object.
103    return {
104        empty           : false,
105        unusedTokens    : [],
106        unusedInput     : [],
107        overflow        : -2,
108        charsLeftOver   : 0,
109        nullInput       : false,
110        invalidMonth    : null,
111        invalidFormat   : false,
112        userInvalidated : false,
113        iso             : false,
114        parsedDateParts : [],
115        meridiem        : null,
116        rfc2822         : false,
117        weekdayMismatch : false
118    };
119}
120
121function getParsingFlags(m) {
122    if (m._pf == null) {
123        m._pf = defaultParsingFlags();
124    }
125    return m._pf;
126}
127
128var some;
129if (Array.prototype.some) {
130    some = Array.prototype.some;
131} else {
132    some = function (fun) {
133        var t = Object(this);
134        var len = t.length >>> 0;
135
136        for (var i = 0; i < len; i++) {
137            if (i in t && fun.call(this, t[i], i, t)) {
138                return true;
139            }
140        }
141
142        return false;
143    };
144}
145
146function isValid(m) {
147    if (m._isValid == null) {
148        var flags = getParsingFlags(m);
149        var parsedParts = some.call(flags.parsedDateParts, function (i) {
150            return i != null;
151        });
152        var isNowValid = !isNaN(m._d.getTime()) &&
153            flags.overflow < 0 &&
154            !flags.empty &&
155            !flags.invalidMonth &&
156            !flags.invalidWeekday &&
157            !flags.weekdayMismatch &&
158            !flags.nullInput &&
159            !flags.invalidFormat &&
160            !flags.userInvalidated &&
161            (!flags.meridiem || (flags.meridiem && parsedParts));
162
163        if (m._strict) {
164            isNowValid = isNowValid &&
165                flags.charsLeftOver === 0 &&
166                flags.unusedTokens.length === 0 &&
167                flags.bigHour === undefined;
168        }
169
170        if (Object.isFrozen == null || !Object.isFrozen(m)) {
171            m._isValid = isNowValid;
172        }
173        else {
174            return isNowValid;
175        }
176    }
177    return m._isValid;
178}
179
180function createInvalid (flags) {
181    var m = createUTC(NaN);
182    if (flags != null) {
183        extend(getParsingFlags(m), flags);
184    }
185    else {
186        getParsingFlags(m).userInvalidated = true;
187    }
188
189    return m;
190}
191
192// Plugins that add properties should also add the key here (null value),
193// so we can properly clone ourselves.
194var momentProperties = hooks.momentProperties = [];
195
196function copyConfig(to, from) {
197    var i, prop, val;
198
199    if (!isUndefined(from._isAMomentObject)) {
200        to._isAMomentObject = from._isAMomentObject;
201    }
202    if (!isUndefined(from._i)) {
203        to._i = from._i;
204    }
205    if (!isUndefined(from._f)) {
206        to._f = from._f;
207    }
208    if (!isUndefined(from._l)) {
209        to._l = from._l;
210    }
211    if (!isUndefined(from._strict)) {
212        to._strict = from._strict;
213    }
214    if (!isUndefined(from._tzm)) {
215        to._tzm = from._tzm;
216    }
217    if (!isUndefined(from._isUTC)) {
218        to._isUTC = from._isUTC;
219    }
220    if (!isUndefined(from._offset)) {
221        to._offset = from._offset;
222    }
223    if (!isUndefined(from._pf)) {
224        to._pf = getParsingFlags(from);
225    }
226    if (!isUndefined(from._locale)) {
227        to._locale = from._locale;
228    }
229
230    if (momentProperties.length > 0) {
231        for (i = 0; i < momentProperties.length; i++) {
232            prop = momentProperties[i];
233            val = from[prop];
234            if (!isUndefined(val)) {
235                to[prop] = val;
236            }
237        }
238    }
239
240    return to;
241}
242
243var updateInProgress = false;
244
245// Moment prototype object
246function Moment(config) {
247    copyConfig(this, config);
248    this._d = new Date(config._d != null ? config._d.getTime() : NaN);
249    if (!this.isValid()) {
250        this._d = new Date(NaN);
251    }
252    // Prevent infinite loop in case updateOffset creates new moment
253    // objects.
254    if (updateInProgress === false) {
255        updateInProgress = true;
256        hooks.updateOffset(this);
257        updateInProgress = false;
258    }
259}
260
261function isMoment (obj) {
262    return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
263}
264
265function absFloor (number) {
266    if (number < 0) {
267        // -0 -> 0
268        return Math.ceil(number) || 0;
269    } else {
270        return Math.floor(number);
271    }
272}
273
274function toInt(argumentForCoercion) {
275    var coercedNumber = +argumentForCoercion,
276        value = 0;
277
278    if (coercedNumber !== 0 && isFinite(coercedNumber)) {
279        value = absFloor(coercedNumber);
280    }
281
282    return value;
283}
284
285// compare two arrays, return the number of differences
286function compareArrays(array1, array2, dontConvert) {
287    var len = Math.min(array1.length, array2.length),
288        lengthDiff = Math.abs(array1.length - array2.length),
289        diffs = 0,
290        i;
291    for (i = 0; i < len; i++) {
292        if ((dontConvert && array1[i] !== array2[i]) ||
293            (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
294            diffs++;
295        }
296    }
297    return diffs + lengthDiff;
298}
299
300function warn(msg) {
301    if (hooks.suppressDeprecationWarnings === false &&
302            (typeof console !==  'undefined') && console.warn) {
303        console.warn('Deprecation warning: ' + msg);
304    }
305}
306
307function deprecate(msg, fn) {
308    var firstTime = true;
309
310    return extend(function () {
311        if (hooks.deprecationHandler != null) {
312            hooks.deprecationHandler(null, msg);
313        }
314        if (firstTime) {
315            var args = [];
316            var arg;
317            for (var i = 0; i < arguments.length; i++) {
318                arg = '';
319                if (typeof arguments[i] === 'object') {
320                    arg += '\n[' + i + '] ';
321                    for (var key in arguments[0]) {
322                        arg += key + ': ' + arguments[0][key] + ', ';
323                    }
324                    arg = arg.slice(0, -2); // Remove trailing comma and space
325                } else {
326                    arg = arguments[i];
327                }
328                args.push(arg);
329            }
330            warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
331            firstTime = false;
332        }
333        return fn.apply(this, arguments);
334    }, fn);
335}
336
337var deprecations = {};
338
339function deprecateSimple(name, msg) {
340    if (hooks.deprecationHandler != null) {
341        hooks.deprecationHandler(name, msg);
342    }
343    if (!deprecations[name]) {
344        warn(msg);
345        deprecations[name] = true;
346    }
347}
348
349hooks.suppressDeprecationWarnings = false;
350hooks.deprecationHandler = null;
351
352function isFunction(input) {
353    return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
354}
355
356function set (config) {
357    var prop, i;
358    for (i in config) {
359        prop = config[i];
360        if (isFunction(prop)) {
361            this[i] = prop;
362        } else {
363            this['_' + i] = prop;
364        }
365    }
366    this._config = config;
367    // Lenient ordinal parsing accepts just a number in addition to
368    // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
369    // TODO: Remove "ordinalParse" fallback in next major release.
370    this._dayOfMonthOrdinalParseLenient = new RegExp(
371        (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
372            '|' + (/\d{1,2}/).source);
373}
374
375function mergeConfigs(parentConfig, childConfig) {
376    var res = extend({}, parentConfig), prop;
377    for (prop in childConfig) {
378        if (hasOwnProp(childConfig, prop)) {
379            if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
380                res[prop] = {};
381                extend(res[prop], parentConfig[prop]);
382                extend(res[prop], childConfig[prop]);
383            } else if (childConfig[prop] != null) {
384                res[prop] = childConfig[prop];
385            } else {
386                delete res[prop];
387            }
388        }
389    }
390    for (prop in parentConfig) {
391        if (hasOwnProp(parentConfig, prop) &&
392                !hasOwnProp(childConfig, prop) &&
393                isObject(parentConfig[prop])) {
394            // make sure changes to properties don't modify parent config
395            res[prop] = extend({}, res[prop]);
396        }
397    }
398    return res;
399}
400
401function Locale(config) {
402    if (config != null) {
403        this.set(config);
404    }
405}
406
407var keys;
408
409if (Object.keys) {
410    keys = Object.keys;
411} else {
412    keys = function (obj) {
413        var i, res = [];
414        for (i in obj) {
415            if (hasOwnProp(obj, i)) {
416                res.push(i);
417            }
418        }
419        return res;
420    };
421}
422
423var defaultCalendar = {
424    sameDay : '[Today at] LT',
425    nextDay : '[Tomorrow at] LT',
426    nextWeek : 'dddd [at] LT',
427    lastDay : '[Yesterday at] LT',
428    lastWeek : '[Last] dddd [at] LT',
429    sameElse : 'L'
430};
431
432function calendar (key, mom, now) {
433    var output = this._calendar[key] || this._calendar['sameElse'];
434    return isFunction(output) ? output.call(mom, now) : output;
435}
436
437var defaultLongDateFormat = {
438    LTS  : 'h:mm:ss A',
439    LT   : 'h:mm A',
440    L    : 'MM/DD/YYYY',
441    LL   : 'MMMM D, YYYY',
442    LLL  : 'MMMM D, YYYY h:mm A',
443    LLLL : 'dddd, MMMM D, YYYY h:mm A'
444};
445
446function longDateFormat (key) {
447    var format = this._longDateFormat[key],
448        formatUpper = this._longDateFormat[key.toUpperCase()];
449
450    if (format || !formatUpper) {
451        return format;
452    }
453
454    this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
455        return val.slice(1);
456    });
457
458    return this._longDateFormat[key];
459}
460
461var defaultInvalidDate = 'Invalid date';
462
463function invalidDate () {
464    return this._invalidDate;
465}
466
467var defaultOrdinal = '%d';
468var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
469
470function ordinal (number) {
471    return this._ordinal.replace('%d', number);
472}
473
474var defaultRelativeTime = {
475    future : 'in %s',
476    past   : '%s ago',
477    s  : 'a few seconds',
478    ss : '%d seconds',
479    m  : 'a minute',
480    mm : '%d minutes',
481    h  : 'an hour',
482    hh : '%d hours',
483    d  : 'a day',
484    dd : '%d days',
485    M  : 'a month',
486    MM : '%d months',
487    y  : 'a year',
488    yy : '%d years'
489};
490
491function relativeTime (number, withoutSuffix, string, isFuture) {
492    var output = this._relativeTime[string];
493    return (isFunction(output)) ?
494        output(number, withoutSuffix, string, isFuture) :
495        output.replace(/%d/i, number);
496}
497
498function pastFuture (diff, output) {
499    var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
500    return isFunction(format) ? format(output) : format.replace(/%s/i, output);
501}
502
503var aliases = {};
504
505function addUnitAlias (unit, shorthand) {
506    var lowerCase = unit.toLowerCase();
507    aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
508}
509
510function normalizeUnits(units) {
511    return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
512}
513
514function normalizeObjectUnits(inputObject) {
515    var normalizedInput = {},
516        normalizedProp,
517        prop;
518
519    for (prop in inputObject) {
520        if (hasOwnProp(inputObject, prop)) {
521            normalizedProp = normalizeUnits(prop);
522            if (normalizedProp) {
523                normalizedInput[normalizedProp] = inputObject[prop];
524            }
525        }
526    }
527
528    return normalizedInput;
529}
530
531var priorities = {};
532
533function addUnitPriority(unit, priority) {
534    priorities[unit] = priority;
535}
536
537function getPrioritizedUnits(unitsObj) {
538    var units = [];
539    for (var u in unitsObj) {
540        units.push({unit: u, priority: priorities[u]});
541    }
542    units.sort(function (a, b) {
543        return a.priority - b.priority;
544    });
545    return units;
546}
547
548function zeroFill(number, targetLength, forceSign) {
549    var absNumber = '' + Math.abs(number),
550        zerosToFill = targetLength - absNumber.length,
551        sign = number >= 0;
552    return (sign ? (forceSign ? '+' : '') : '-') +
553        Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
554}
555
556var 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;
557
558var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
559
560var formatFunctions = {};
561
562var formatTokenFunctions = {};
563
564// token:    'M'
565// padded:   ['MM', 2]
566// ordinal:  'Mo'
567// callback: function () { this.month() + 1 }
568function addFormatToken (token, padded, ordinal, callback) {
569    var func = callback;
570    if (typeof callback === 'string') {
571        func = function () {
572            return this[callback]();
573        };
574    }
575    if (token) {
576        formatTokenFunctions[token] = func;
577    }
578    if (padded) {
579        formatTokenFunctions[padded[0]] = function () {
580            return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
581        };
582    }
583    if (ordinal) {
584        formatTokenFunctions[ordinal] = function () {
585            return this.localeData().ordinal(func.apply(this, arguments), token);
586        };
587    }
588}
589
590function removeFormattingTokens(input) {
591    if (input.match(/\[[\s\S]/)) {
592        return input.replace(/^\[|\]$/g, '');
593    }
594    return input.replace(/\\/g, '');
595}
596
597function makeFormatFunction(format) {
598    var array = format.match(formattingTokens), i, length;
599
600    for (i = 0, length = array.length; i < length; i++) {
601        if (formatTokenFunctions[array[i]]) {
602            array[i] = formatTokenFunctions[array[i]];
603        } else {
604            array[i] = removeFormattingTokens(array[i]);
605        }
606    }
607
608    return function (mom) {
609        var output = '', i;
610        for (i = 0; i < length; i++) {
611            output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
612        }
613        return output;
614    };
615}
616
617// format date using native date object
618function formatMoment(m, format) {
619    if (!m.isValid()) {
620        return m.localeData().invalidDate();
621    }
622
623    format = expandFormat(format, m.localeData());
624    formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
625
626    return formatFunctions[format](m);
627}
628
629function expandFormat(format, locale) {
630    var i = 5;
631
632    function replaceLongDateFormatTokens(input) {
633        return locale.longDateFormat(input) || input;
634    }
635
636    localFormattingTokens.lastIndex = 0;
637    while (i >= 0 && localFormattingTokens.test(format)) {
638        format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
639        localFormattingTokens.lastIndex = 0;
640        i -= 1;
641    }
642
643    return format;
644}
645
646var match1         = /\d/;            //       0 - 9
647var match2         = /\d\d/;          //      00 - 99
648var match3         = /\d{3}/;         //     000 - 999
649var match4         = /\d{4}/;         //    0000 - 9999
650var match6         = /[+-]?\d{6}/;    // -999999 - 999999
651var match1to2      = /\d\d?/;         //       0 - 99
652var match3to4      = /\d\d\d\d?/;     //     999 - 9999
653var match5to6      = /\d\d\d\d\d\d?/; //   99999 - 999999
654var match1to3      = /\d{1,3}/;       //       0 - 999
655var match1to4      = /\d{1,4}/;       //       0 - 9999
656var match1to6      = /[+-]?\d{1,6}/;  // -999999 - 999999
657
658var matchUnsigned  = /\d+/;           //       0 - inf
659var matchSigned    = /[+-]?\d+/;      //    -inf - inf
660
661var matchOffset    = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
662var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
663
664var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
665
666// any word (or two) characters or numbers including two/three word month in arabic.
667// includes scottish gaelic two word and hyphenated months
668var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
669
670
671var regexes = {};
672
673function addRegexToken (token, regex, strictRegex) {
674    regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
675        return (isStrict && strictRegex) ? strictRegex : regex;
676    };
677}
678
679function getParseRegexForToken (token, config) {
680    if (!hasOwnProp(regexes, token)) {
681        return new RegExp(unescapeFormat(token));
682    }
683
684    return regexes[token](config._strict, config._locale);
685}
686
687// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
688function unescapeFormat(s) {
689    return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
690        return p1 || p2 || p3 || p4;
691    }));
692}
693
694function regexEscape(s) {
695    return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
696}
697
698var tokens = {};
699
700function addParseToken (token, callback) {
701    var i, func = callback;
702    if (typeof token === 'string') {
703        token = [token];
704    }
705    if (isNumber(callback)) {
706        func = function (input, array) {
707            array[callback] = toInt(input);
708        };
709    }
710    for (i = 0; i < token.length; i++) {
711        tokens[token[i]] = func;
712    }
713}
714
715function addWeekParseToken (token, callback) {
716    addParseToken(token, function (input, array, config, token) {
717        config._w = config._w || {};
718        callback(input, config._w, config, token);
719    });
720}
721
722function addTimeToArrayFromToken(token, input, config) {
723    if (input != null && hasOwnProp(tokens, token)) {
724        tokens[token](input, config._a, config, token);
725    }
726}
727
728var YEAR = 0;
729var MONTH = 1;
730var DATE = 2;
731var HOUR = 3;
732var MINUTE = 4;
733var SECOND = 5;
734var MILLISECOND = 6;
735var WEEK = 7;
736var WEEKDAY = 8;
737
738// FORMATTING
739
740addFormatToken('Y', 0, 0, function () {
741    var y = this.year();
742    return y <= 9999 ? '' + y : '+' + y;
743});
744
745addFormatToken(0, ['YY', 2], 0, function () {
746    return this.year() % 100;
747});
748
749addFormatToken(0, ['YYYY',   4],       0, 'year');
750addFormatToken(0, ['YYYYY',  5],       0, 'year');
751addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
752
753// ALIASES
754
755addUnitAlias('year', 'y');
756
757// PRIORITIES
758
759addUnitPriority('year', 1);
760
761// PARSING
762
763addRegexToken('Y',      matchSigned);
764addRegexToken('YY',     match1to2, match2);
765addRegexToken('YYYY',   match1to4, match4);
766addRegexToken('YYYYY',  match1to6, match6);
767addRegexToken('YYYYYY', match1to6, match6);
768
769addParseToken(['YYYYY', 'YYYYYY'], YEAR);
770addParseToken('YYYY', function (input, array) {
771    array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
772});
773addParseToken('YY', function (input, array) {
774    array[YEAR] = hooks.parseTwoDigitYear(input);
775});
776addParseToken('Y', function (input, array) {
777    array[YEAR] = parseInt(input, 10);
778});
779
780// HELPERS
781
782function daysInYear(year) {
783    return isLeapYear(year) ? 366 : 365;
784}
785
786function isLeapYear(year) {
787    return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
788}
789
790// HOOKS
791
792hooks.parseTwoDigitYear = function (input) {
793    return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
794};
795
796// MOMENTS
797
798var getSetYear = makeGetSet('FullYear', true);
799
800function getIsLeapYear () {
801    return isLeapYear(this.year());
802}
803
804function makeGetSet (unit, keepTime) {
805    return function (value) {
806        if (value != null) {
807            set$1(this, unit, value);
808            hooks.updateOffset(this, keepTime);
809            return this;
810        } else {
811            return get(this, unit);
812        }
813    };
814}
815
816function get (mom, unit) {
817    return mom.isValid() ?
818        mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
819}
820
821function set$1 (mom, unit, value) {
822    if (mom.isValid() && !isNaN(value)) {
823        if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
824            mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
825        }
826        else {
827            mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
828        }
829    }
830}
831
832// MOMENTS
833
834function stringGet (units) {
835    units = normalizeUnits(units);
836    if (isFunction(this[units])) {
837        return this[units]();
838    }
839    return this;
840}
841
842
843function stringSet (units, value) {
844    if (typeof units === 'object') {
845        units = normalizeObjectUnits(units);
846        var prioritized = getPrioritizedUnits(units);
847        for (var i = 0; i < prioritized.length; i++) {
848            this[prioritized[i].unit](units[prioritized[i].unit]);
849        }
850    } else {
851        units = normalizeUnits(units);
852        if (isFunction(this[units])) {
853            return this[units](value);
854        }
855    }
856    return this;
857}
858
859function mod(n, x) {
860    return ((n % x) + x) % x;
861}
862
863var indexOf;
864
865if (Array.prototype.indexOf) {
866    indexOf = Array.prototype.indexOf;
867} else {
868    indexOf = function (o) {
869        // I know
870        var i;
871        for (i = 0; i < this.length; ++i) {
872            if (this[i] === o) {
873                return i;
874            }
875        }
876        return -1;
877    };
878}
879
880function daysInMonth(year, month) {
881    if (isNaN(year) || isNaN(month)) {
882        return NaN;
883    }
884    var modMonth = mod(month, 12);
885    year += (month - modMonth) / 12;
886    return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
887}
888
889// FORMATTING
890
891addFormatToken('M', ['MM', 2], 'Mo', function () {
892    return this.month() + 1;
893});
894
895addFormatToken('MMM', 0, 0, function (format) {
896    return this.localeData().monthsShort(this, format);
897});
898
899addFormatToken('MMMM', 0, 0, function (format) {
900    return this.localeData().months(this, format);
901});
902
903// ALIASES
904
905addUnitAlias('month', 'M');
906
907// PRIORITY
908
909addUnitPriority('month', 8);
910
911// PARSING
912
913addRegexToken('M',    match1to2);
914addRegexToken('MM',   match1to2, match2);
915addRegexToken('MMM',  function (isStrict, locale) {
916    return locale.monthsShortRegex(isStrict);
917});
918addRegexToken('MMMM', function (isStrict, locale) {
919    return locale.monthsRegex(isStrict);
920});
921
922addParseToken(['M', 'MM'], function (input, array) {
923    array[MONTH] = toInt(input) - 1;
924});
925
926addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
vendor: 24,090 bytes, lines 927-1711
927    var month = config._locale.monthsParse(input, token, config._strict);
928    // if we didn't find a month name, mark the date as invalid.
929    if (month != null) {
930        array[MONTH] = month;
931    } else {
932        getParsingFlags(config).invalidMonth = input;
933    }
934});
935
936// LOCALES
937
938var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
939var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
940function localeMonths (m, format) {
941    if (!m) {
942        return isArray(this._months) ? this._months :
943            this._months['standalone'];
944    }
945    return isArray(this._months) ? this._months[m.month()] :
946        this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
947}
948
949var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
950function localeMonthsShort (m, format) {
951    if (!m) {
952        return isArray(this._monthsShort) ? this._monthsShort :
953            this._monthsShort['standalone'];
954    }
955    return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
956        this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
957}
958
959function handleStrictParse(monthName, format, strict) {
960    var i, ii, mom, llc = monthName.toLocaleLowerCase();
961    if (!this._monthsParse) {
962        // this is not used
963        this._monthsParse = [];
964        this._longMonthsParse = [];
965        this._shortMonthsParse = [];
966        for (i = 0; i < 12; ++i) {
967            mom = createUTC([2000, i]);
968            this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
969            this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
970        }
971    }
972
973    if (strict) {
974        if (format === 'MMM') {
975            ii = indexOf.call(this._shortMonthsParse, llc);
976            return ii !== -1 ? ii : null;
977        } else {
978            ii = indexOf.call(this._longMonthsParse, llc);
979            return ii !== -1 ? ii : null;
980        }
981    } else {
982        if (format === 'MMM') {
983            ii = indexOf.call(this._shortMonthsParse, llc);
984            if (ii !== -1) {
985                return ii;
986            }
987            ii = indexOf.call(this._longMonthsParse, llc);
988            return ii !== -1 ? ii : null;
989        } else {
990            ii = indexOf.call(this._longMonthsParse, llc);
991            if (ii !== -1) {
992                return ii;
993            }
994            ii = indexOf.call(this._shortMonthsParse, llc);
995            return ii !== -1 ? ii : null;
996        }
997    }
998}
999
1000function localeMonthsParse (monthName, format, strict) {
1001    var i, mom, regex;
1002
1003    if (this._monthsParseExact) {
1004        return handleStrictParse.call(this, monthName, format, strict);
1005    }
1006
1007    if (!this._monthsParse) {
1008        this._monthsParse = [];
1009        this._longMonthsParse = [];
1010        this._shortMonthsParse = [];
1011    }
1012
1013    // TODO: add sorting
1014    // Sorting makes sure if one month (or abbr) is a prefix of another
1015    // see sorting in computeMonthsParse
1016    for (i = 0; i < 12; i++) {
1017        // make the regex if we don't have it already
1018        mom = createUTC([2000, i]);
1019        if (strict && !this._longMonthsParse[i]) {
1020            this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
1021            this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
1022        }
1023        if (!strict && !this._monthsParse[i]) {
1024            regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
1025            this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
1026        }
1027        // test the regex
1028        if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
1029            return i;
1030        } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
1031            return i;
1032        } else if (!strict && this._monthsParse[i].test(monthName)) {
1033            return i;
1034        }
1035    }
1036}
1037
1038// MOMENTS
1039
1040function setMonth (mom, value) {
1041    var dayOfMonth;
1042
1043    if (!mom.isValid()) {
1044        // No op
1045        return mom;
1046    }
1047
1048    if (typeof value === 'string') {
1049        if (/^\d+$/.test(value)) {
1050            value = toInt(value);
1051        } else {
1052            value = mom.localeData().monthsParse(value);
1053            // TODO: Another silent failure?
1054            if (!isNumber(value)) {
1055                return mom;
1056            }
1057        }
1058    }
1059
1060    dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
1061    mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
1062    return mom;
1063}
1064
1065function getSetMonth (value) {
1066    if (value != null) {
1067        setMonth(this, value);
1068        hooks.updateOffset(this, true);
1069        return this;
1070    } else {
1071        return get(this, 'Month');
1072    }
1073}
1074
1075function getDaysInMonth () {
1076    return daysInMonth(this.year(), this.month());
1077}
1078
1079var defaultMonthsShortRegex = matchWord;
1080function monthsShortRegex (isStrict) {
1081    if (this._monthsParseExact) {
1082        if (!hasOwnProp(this, '_monthsRegex')) {
1083            computeMonthsParse.call(this);
1084        }
1085        if (isStrict) {
1086            return this._monthsShortStrictRegex;
1087        } else {
1088            return this._monthsShortRegex;
1089        }
1090    } else {
1091        if (!hasOwnProp(this, '_monthsShortRegex')) {
1092            this._monthsShortRegex = defaultMonthsShortRegex;
1093        }
1094        return this._monthsShortStrictRegex && isStrict ?
1095            this._monthsShortStrictRegex : this._monthsShortRegex;
1096    }
1097}
1098
1099var defaultMonthsRegex = matchWord;
1100function monthsRegex (isStrict) {
1101    if (this._monthsParseExact) {
1102        if (!hasOwnProp(this, '_monthsRegex')) {
1103            computeMonthsParse.call(this);
1104        }
1105        if (isStrict) {
1106            return this._monthsStrictRegex;
1107        } else {
1108            return this._monthsRegex;
1109        }
1110    } else {
1111        if (!hasOwnProp(this, '_monthsRegex')) {
1112            this._monthsRegex = defaultMonthsRegex;
1113        }
1114        return this._monthsStrictRegex && isStrict ?
1115            this._monthsStrictRegex : this._monthsRegex;
1116    }
1117}
1118
1119function computeMonthsParse () {
1120    function cmpLenRev(a, b) {
1121        return b.length - a.length;
1122    }
1123
1124    var shortPieces = [], longPieces = [], mixedPieces = [],
1125        i, mom;
1126    for (i = 0; i < 12; i++) {
1127        // make the regex if we don't have it already
1128        mom = createUTC([2000, i]);
1129        shortPieces.push(this.monthsShort(mom, ''));
1130        longPieces.push(this.months(mom, ''));
1131        mixedPieces.push(this.months(mom, ''));
1132        mixedPieces.push(this.monthsShort(mom, ''));
1133    }
1134    // Sorting makes sure if one month (or abbr) is a prefix of another it
1135    // will match the longer piece.
1136    shortPieces.sort(cmpLenRev);
1137    longPieces.sort(cmpLenRev);
1138    mixedPieces.sort(cmpLenRev);
1139    for (i = 0; i < 12; i++) {
1140        shortPieces[i] = regexEscape(shortPieces[i]);
1141        longPieces[i] = regexEscape(longPieces[i]);
1142    }
1143    for (i = 0; i < 24; i++) {
1144        mixedPieces[i] = regexEscape(mixedPieces[i]);
1145    }
1146
1147    this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1148    this._monthsShortRegex = this._monthsRegex;
1149    this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1150    this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1151}
1152
1153function createDate (y, m, d, h, M, s, ms) {
1154    // can't just apply() to create a date:
1155    // http://stackoverflow.com/q/181348
1156    var date = new Date(y, m, d, h, M, s, ms);
1157
1158    // the date constructor remaps years 0-99 to 1900-1999
1159    if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
1160        date.setFullYear(y);
1161    }
1162    return date;
1163}
1164
1165function createUTCDate (y) {
1166    var date = new Date(Date.UTC.apply(null, arguments));
1167
1168    // the Date.UTC function remaps years 0-99 to 1900-1999
1169    if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
1170        date.setUTCFullYear(y);
1171    }
1172    return date;
1173}
1174
1175// start-of-first-week - start-of-year
1176function firstWeekOffset(year, dow, doy) {
1177    var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1178        fwd = 7 + dow - doy,
1179        // first-week day local weekday -- which local weekday is fwd
1180        fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1181
1182    return -fwdlw + fwd - 1;
1183}
1184
1185// http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1186function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1187    var localWeekday = (7 + weekday - dow) % 7,
1188        weekOffset = firstWeekOffset(year, dow, doy),
1189        dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1190        resYear, resDayOfYear;
1191
1192    if (dayOfYear <= 0) {
1193        resYear = year - 1;
1194        resDayOfYear = daysInYear(resYear) + dayOfYear;
1195    } else if (dayOfYear > daysInYear(year)) {
1196        resYear = year + 1;
1197        resDayOfYear = dayOfYear - daysInYear(year);
1198    } else {
1199        resYear = year;
1200        resDayOfYear = dayOfYear;
1201    }
1202
1203    return {
1204        year: resYear,
1205        dayOfYear: resDayOfYear
1206    };
1207}
1208
1209function weekOfYear(mom, dow, doy) {
1210    var weekOffset = firstWeekOffset(mom.year(), dow, doy),
1211        week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
1212        resWeek, resYear;
1213
1214    if (week < 1) {
1215        resYear = mom.year() - 1;
1216        resWeek = week + weeksInYear(resYear, dow, doy);
1217    } else if (week > weeksInYear(mom.year(), dow, doy)) {
1218        resWeek = week - weeksInYear(mom.year(), dow, doy);
1219        resYear = mom.year() + 1;
1220    } else {
1221        resYear = mom.year();
1222        resWeek = week;
1223    }
1224
1225    return {
1226        week: resWeek,
1227        year: resYear
1228    };
1229}
1230
1231function weeksInYear(year, dow, doy) {
1232    var weekOffset = firstWeekOffset(year, dow, doy),
1233        weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
1234    return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
1235}
1236
1237// FORMATTING
1238
1239addFormatToken('w', ['ww', 2], 'wo', 'week');
1240addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1241
1242// ALIASES
1243
1244addUnitAlias('week', 'w');
1245addUnitAlias('isoWeek', 'W');
1246
1247// PRIORITIES
1248
1249addUnitPriority('week', 5);
1250addUnitPriority('isoWeek', 5);
1251
1252// PARSING
1253
1254addRegexToken('w',  match1to2);
1255addRegexToken('ww', match1to2, match2);
1256addRegexToken('W',  match1to2);
1257addRegexToken('WW', match1to2, match2);
1258
1259addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
1260    week[token.substr(0, 1)] = toInt(input);
1261});
1262
1263// HELPERS
1264
1265// LOCALES
1266
1267function localeWeek (mom) {
1268    return weekOfYear(mom, this._week.dow, this._week.doy).week;
1269}
1270
1271var defaultLocaleWeek = {
1272    dow : 0, // Sunday is the first day of the week.
1273    doy : 6  // The week that contains Jan 1st is the first week of the year.
1274};
1275
1276function localeFirstDayOfWeek () {
1277    return this._week.dow;
1278}
1279
1280function localeFirstDayOfYear () {
1281    return this._week.doy;
1282}
1283
1284// MOMENTS
1285
1286function getSetWeek (input) {
1287    var week = this.localeData().week(this);
1288    return input == null ? week : this.add((input - week) * 7, 'd');
1289}
1290
1291function getSetISOWeek (input) {
1292    var week = weekOfYear(this, 1, 4).week;
1293    return input == null ? week : this.add((input - week) * 7, 'd');
1294}
1295
1296// FORMATTING
1297
1298addFormatToken('d', 0, 'do', 'day');
1299
1300addFormatToken('dd', 0, 0, function (format) {
1301    return this.localeData().weekdaysMin(this, format);
1302});
1303
1304addFormatToken('ddd', 0, 0, function (format) {
1305    return this.localeData().weekdaysShort(this, format);
1306});
1307
1308addFormatToken('dddd', 0, 0, function (format) {
1309    return this.localeData().weekdays(this, format);
1310});
1311
1312addFormatToken('e', 0, 0, 'weekday');
1313addFormatToken('E', 0, 0, 'isoWeekday');
1314
1315// ALIASES
1316
1317addUnitAlias('day', 'd');
1318addUnitAlias('weekday', 'e');
1319addUnitAlias('isoWeekday', 'E');
1320
1321// PRIORITY
1322addUnitPriority('day', 11);
1323addUnitPriority('weekday', 11);
1324addUnitPriority('isoWeekday', 11);
1325
1326// PARSING
1327
1328addRegexToken('d',    match1to2);
1329addRegexToken('e',    match1to2);
1330addRegexToken('E',    match1to2);
1331addRegexToken('dd',   function (isStrict, locale) {
1332    return locale.weekdaysMinRegex(isStrict);
1333});
1334addRegexToken('ddd',   function (isStrict, locale) {
1335    return locale.weekdaysShortRegex(isStrict);
1336});
1337addRegexToken('dddd',   function (isStrict, locale) {
1338    return locale.weekdaysRegex(isStrict);
1339});
1340
1341addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
1342    var weekday = config._locale.weekdaysParse(input, token, config._strict);
1343    // if we didn't get a weekday name, mark the date as invalid
1344    if (weekday != null) {
1345        week.d = weekday;
1346    } else {
1347        getParsingFlags(config).invalidWeekday = input;
1348    }
1349});
1350
1351addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
1352    week[token] = toInt(input);
1353});
1354
1355// HELPERS
1356
1357function parseWeekday(input, locale) {
1358    if (typeof input !== 'string') {
1359        return input;
1360    }
1361
1362    if (!isNaN(input)) {
1363        return parseInt(input, 10);
1364    }
1365
1366    input = locale.weekdaysParse(input);
1367    if (typeof input === 'number') {
1368        return input;
1369    }
1370
1371    return null;
1372}
1373
1374function parseIsoWeekday(input, locale) {
1375    if (typeof input === 'string') {
1376        return locale.weekdaysParse(input) % 7 || 7;
1377    }
1378    return isNaN(input) ? null : input;
1379}
1380
1381// LOCALES
1382
1383var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
1384function localeWeekdays (m, format) {
1385    if (!m) {
1386        return isArray(this._weekdays) ? this._weekdays :
1387            this._weekdays['standalone'];
1388    }
1389    return isArray(this._weekdays) ? this._weekdays[m.day()] :
1390        this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
1391}
1392
1393var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
1394function localeWeekdaysShort (m) {
1395    return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
1396}
1397
1398var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
1399function localeWeekdaysMin (m) {
1400    return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
1401}
1402
1403function handleStrictParse$1(weekdayName, format, strict) {
1404    var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
1405    if (!this._weekdaysParse) {
1406        this._weekdaysParse = [];
1407        this._shortWeekdaysParse = [];
1408        this._minWeekdaysParse = [];
1409
1410        for (i = 0; i < 7; ++i) {
1411            mom = createUTC([2000, 1]).day(i);
1412            this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
1413            this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
1414            this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
1415        }
1416    }
1417
1418    if (strict) {
1419        if (format === 'dddd') {
1420            ii = indexOf.call(this._weekdaysParse, llc);
1421            return ii !== -1 ? ii : null;
1422        } else if (format === 'ddd') {
1423            ii = indexOf.call(this._shortWeekdaysParse, llc);
1424            return ii !== -1 ? ii : null;
1425        } else {
1426            ii = indexOf.call(this._minWeekdaysParse, llc);
1427            return ii !== -1 ? ii : null;
1428        }
1429    } else {
1430        if (format === 'dddd') {
1431            ii = indexOf.call(this._weekdaysParse, llc);
1432            if (ii !== -1) {
1433                return ii;
1434            }
1435            ii = indexOf.call(this._shortWeekdaysParse, llc);
1436            if (ii !== -1) {
1437                return ii;
1438            }
1439            ii = indexOf.call(this._minWeekdaysParse, llc);
1440            return ii !== -1 ? ii : null;
1441        } else if (format === 'ddd') {
1442            ii = indexOf.call(this._shortWeekdaysParse, llc);
1443            if (ii !== -1) {
1444                return ii;
1445            }
1446            ii = indexOf.call(this._weekdaysParse, llc);
1447            if (ii !== -1) {
1448                return ii;
1449            }
1450            ii = indexOf.call(this._minWeekdaysParse, llc);
1451            return ii !== -1 ? ii : null;
1452        } else {
1453            ii = indexOf.call(this._minWeekdaysParse, llc);
1454            if (ii !== -1) {
1455                return ii;
1456            }
1457            ii = indexOf.call(this._weekdaysParse, llc);
1458            if (ii !== -1) {
1459                return ii;
1460            }
1461            ii = indexOf.call(this._shortWeekdaysParse, llc);
1462            return ii !== -1 ? ii : null;
1463        }
1464    }
1465}
1466
1467function localeWeekdaysParse (weekdayName, format, strict) {
1468    var i, mom, regex;
1469
1470    if (this._weekdaysParseExact) {
1471        return handleStrictParse$1.call(this, weekdayName, format, strict);
1472    }
1473
1474    if (!this._weekdaysParse) {
1475        this._weekdaysParse = [];
1476        this._minWeekdaysParse = [];
1477        this._shortWeekdaysParse = [];
1478        this._fullWeekdaysParse = [];
1479    }
1480
1481    for (i = 0; i < 7; i++) {
1482        // make the regex if we don't have it already
1483
1484        mom = createUTC([2000, 1]).day(i);
1485        if (strict && !this._fullWeekdaysParse[i]) {
1486            this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i');
1487            this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i');
1488            this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i');
1489        }
1490        if (!this._weekdaysParse[i]) {
1491            regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
1492            this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
1493        }
1494        // test the regex
1495        if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
1496            return i;
1497        } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
1498            return i;
1499        } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
1500            return i;
1501        } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
1502            return i;
1503        }
1504    }
1505}
1506
1507// MOMENTS
1508
1509function getSetDayOfWeek (input) {
1510    if (!this.isValid()) {
1511        return input != null ? this : NaN;
1512    }
1513    var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
1514    if (input != null) {
1515        input = parseWeekday(input, this.localeData());
1516        return this.add(input - day, 'd');
1517    } else {
1518        return day;
1519    }
1520}
1521
1522function getSetLocaleDayOfWeek (input) {
1523    if (!this.isValid()) {
1524        return input != null ? this : NaN;
1525    }
1526    var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1527    return input == null ? weekday : this.add(input - weekday, 'd');
1528}
1529
1530function getSetISODayOfWeek (input) {
1531    if (!this.isValid()) {
1532        return input != null ? this : NaN;
1533    }
1534
1535    // behaves the same as moment#day except
1536    // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1537    // as a setter, sunday should belong to the previous week.
1538
1539    if (input != null) {
1540        var weekday = parseIsoWeekday(input, this.localeData());
1541        return this.day(this.day() % 7 ? weekday : weekday - 7);
1542    } else {
1543        return this.day() || 7;
1544    }
1545}
1546
1547var defaultWeekdaysRegex = matchWord;
1548function weekdaysRegex (isStrict) {
1549    if (this._weekdaysParseExact) {
1550        if (!hasOwnProp(this, '_weekdaysRegex')) {
1551            computeWeekdaysParse.call(this);
1552        }
1553        if (isStrict) {
1554            return this._weekdaysStrictRegex;
1555        } else {
1556            return this._weekdaysRegex;
1557        }
1558    } else {
1559        if (!hasOwnProp(this, '_weekdaysRegex')) {
1560            this._weekdaysRegex = defaultWeekdaysRegex;
1561        }
1562        return this._weekdaysStrictRegex && isStrict ?
1563            this._weekdaysStrictRegex : this._weekdaysRegex;
1564    }
1565}
1566
1567var defaultWeekdaysShortRegex = matchWord;
1568function weekdaysShortRegex (isStrict) {
1569    if (this._weekdaysParseExact) {
1570        if (!hasOwnProp(this, '_weekdaysRegex')) {
1571            computeWeekdaysParse.call(this);
1572        }
1573        if (isStrict) {
1574            return this._weekdaysShortStrictRegex;
1575        } else {
1576            return this._weekdaysShortRegex;
1577        }
1578    } else {
1579        if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1580            this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1581        }
1582        return this._weekdaysShortStrictRegex && isStrict ?
1583            this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
1584    }
1585}
1586
1587var defaultWeekdaysMinRegex = matchWord;
1588function weekdaysMinRegex (isStrict) {
1589    if (this._weekdaysParseExact) {
1590        if (!hasOwnProp(this, '_weekdaysRegex')) {
1591            computeWeekdaysParse.call(this);
1592        }
1593        if (isStrict) {
1594            return this._weekdaysMinStrictRegex;
1595        } else {
1596            return this._weekdaysMinRegex;
1597        }
1598    } else {
1599        if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1600            this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1601        }
1602        return this._weekdaysMinStrictRegex && isStrict ?
1603            this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
1604    }
1605}
1606
1607
1608function computeWeekdaysParse () {
1609    function cmpLenRev(a, b) {
1610        return b.length - a.length;
1611    }
1612
1613    var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
1614        i, mom, minp, shortp, longp;
1615    for (i = 0; i < 7; i++) {
1616        // make the regex if we don't have it already
1617        mom = createUTC([2000, 1]).day(i);
1618        minp = this.weekdaysMin(mom, '');
1619        shortp = this.weekdaysShort(mom, '');
1620        longp = this.weekdays(mom, '');
1621        minPieces.push(minp);
1622        shortPieces.push(shortp);
1623        longPieces.push(longp);
1624        mixedPieces.push(minp);
1625        mixedPieces.push(shortp);
1626        mixedPieces.push(longp);
1627    }
1628    // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1629    // will match the longer piece.
1630    minPieces.sort(cmpLenRev);
1631    shortPieces.sort(cmpLenRev);
1632    longPieces.sort(cmpLenRev);
1633    mixedPieces.sort(cmpLenRev);
1634    for (i = 0; i < 7; i++) {
1635        shortPieces[i] = regexEscape(shortPieces[i]);
1636        longPieces[i] = regexEscape(longPieces[i]);
1637        mixedPieces[i] = regexEscape(mixedPieces[i]);
1638    }
1639
1640    this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1641    this._weekdaysShortRegex = this._weekdaysRegex;
1642    this._weekdaysMinRegex = this._weekdaysRegex;
1643
1644    this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1645    this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1646    this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
1647}
1648
1649// FORMATTING
1650
1651function hFormat() {
1652    return this.hours() % 12 || 12;
1653}
1654
1655function kFormat() {
1656    return this.hours() || 24;
1657}
1658
1659addFormatToken('H', ['HH', 2], 0, 'hour');
1660addFormatToken('h', ['hh', 2], 0, hFormat);
1661addFormatToken('k', ['kk', 2], 0, kFormat);
1662
1663addFormatToken('hmm', 0, 0, function () {
1664    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
1665});
1666
1667addFormatToken('hmmss', 0, 0, function () {
1668    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
1669        zeroFill(this.seconds(), 2);
1670});
1671
1672addFormatToken('Hmm', 0, 0, function () {
1673    return '' + this.hours() + zeroFill(this.minutes(), 2);
1674});
1675
1676addFormatToken('Hmmss', 0, 0, function () {
1677    return '' + this.hours() + zeroFill(this.minutes(), 2) +
1678        zeroFill(this.seconds(), 2);
1679});
1680
1681function meridiem (token, lowercase) {
1682    addFormatToken(token, 0, 0, function () {
1683        return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
1684    });
1685}
1686
1687meridiem('a', true);
1688meridiem('A', false);
1689
1690// ALIASES
1691
1692addUnitAlias('hour', 'h');
1693
1694// PRIORITY
1695addUnitPriority('hour', 13);
1696
1697// PARSING
1698
1699function matchMeridiem (isStrict, locale) {
1700    return locale._meridiemParse;
1701}
1702
1703addRegexToken('a',  matchMeridiem);
1704addRegexToken('A',  matchMeridiem);
1705addRegexToken('H',  match1to2);
1706addRegexToken('h',  match1to2);
1707addRegexToken('k',  match1to2);
1708addRegexToken('HH', match1to2, match2);
1709addRegexToken('hh', match1to2, match2);
1710addRegexToken('kk', match1to2, match2);
1711
vendor: 18,300 bytes, lines 1712-2282
1712addRegexToken('hmm', match3to4);
1713addRegexToken('hmmss', match5to6);
1714addRegexToken('Hmm', match3to4);
1715addRegexToken('Hmmss', match5to6);
1716
1717addParseToken(['H', 'HH'], HOUR);
1718addParseToken(['k', 'kk'], function (input, array, config) {
1719    var kInput = toInt(input);
1720    array[HOUR] = kInput === 24 ? 0 : kInput;
1721});
1722addParseToken(['a', 'A'], function (input, array, config) {
1723    config._isPm = config._locale.isPM(input);
1724    config._meridiem = input;
1725});
1726addParseToken(['h', 'hh'], function (input, array, config) {
1727    array[HOUR] = toInt(input);
1728    getParsingFlags(config).bigHour = true;
1729});
1730addParseToken('hmm', function (input, array, config) {
1731    var pos = input.length - 2;
1732    array[HOUR] = toInt(input.substr(0, pos));
1733    array[MINUTE] = toInt(input.substr(pos));
1734    getParsingFlags(config).bigHour = true;
1735});
1736addParseToken('hmmss', function (input, array, config) {
1737    var pos1 = input.length - 4;
1738    var pos2 = input.length - 2;
1739    array[HOUR] = toInt(input.substr(0, pos1));
1740    array[MINUTE] = toInt(input.substr(pos1, 2));
1741    array[SECOND] = toInt(input.substr(pos2));
1742    getParsingFlags(config).bigHour = true;
1743});
1744addParseToken('Hmm', function (input, array, config) {
1745    var pos = input.length - 2;
1746    array[HOUR] = toInt(input.substr(0, pos));
1747    array[MINUTE] = toInt(input.substr(pos));
1748});
1749addParseToken('Hmmss', function (input, array, config) {
1750    var pos1 = input.length - 4;
1751    var pos2 = input.length - 2;
1752    array[HOUR] = toInt(input.substr(0, pos1));
1753    array[MINUTE] = toInt(input.substr(pos1, 2));
1754    array[SECOND] = toInt(input.substr(pos2));
1755});
1756
1757// LOCALES
1758
1759function localeIsPM (input) {
1760    // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
1761    // Using charAt should be more compatible.
1762    return ((input + '').toLowerCase().charAt(0) === 'p');
1763}
1764
1765var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
1766function localeMeridiem (hours, minutes, isLower) {
1767    if (hours > 11) {
1768        return isLower ? 'pm' : 'PM';
1769    } else {
1770        return isLower ? 'am' : 'AM';
1771    }
1772}
1773
1774
1775// MOMENTS
1776
1777// Setting the hour should keep the time, because the user explicitly
1778// specified which hour he wants. So trying to maintain the same hour (in
1779// a new timezone) makes sense. Adding/subtracting hours does not follow
1780// this rule.
1781var getSetHour = makeGetSet('Hours', true);
1782
1783// months
1784// week
1785// weekdays
1786// meridiem
1787var baseConfig = {
1788    calendar: defaultCalendar,
1789    longDateFormat: defaultLongDateFormat,
1790    invalidDate: defaultInvalidDate,
1791    ordinal: defaultOrdinal,
1792    dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
1793    relativeTime: defaultRelativeTime,
1794
1795    months: defaultLocaleMonths,
1796    monthsShort: defaultLocaleMonthsShort,
1797
1798    week: defaultLocaleWeek,
1799
1800    weekdays: defaultLocaleWeekdays,
1801    weekdaysMin: defaultLocaleWeekdaysMin,
1802    weekdaysShort: defaultLocaleWeekdaysShort,
1803
1804    meridiemParse: defaultLocaleMeridiemParse
1805};
1806
1807// internal storage for locale config files
1808var locales = {};
1809var localeFamilies = {};
1810var globalLocale;
1811
1812function normalizeLocale(key) {
1813    return key ? key.toLowerCase().replace('_', '-') : key;
1814}
1815
1816// pick the locale from the array
1817// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
1818// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
1819function chooseLocale(names) {
1820    var i = 0, j, next, locale, split;
1821
1822    while (i < names.length) {
1823        split = normalizeLocale(names[i]).split('-');
1824        j = split.length;
1825        next = normalizeLocale(names[i + 1]);
1826        next = next ? next.split('-') : null;
1827        while (j > 0) {
1828            locale = loadLocale(split.slice(0, j).join('-'));
1829            if (locale) {
1830                return locale;
1831            }
1832            if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
1833                //the next array item is better than a shallower substring of this one
1834                break;
1835            }
1836            j--;
1837        }
1838        i++;
1839    }
1840    return null;
1841}
1842
1843function loadLocale(name) {
1844    var oldLocale = null;
1845    // TODO: Find a better way to register and load all the locales in Node
1846    if (!locales[name] && (typeof module !== 'undefined') &&
1847            module && module.exports) {
1848        try {
1849            oldLocale = globalLocale._abbr;
1850            var aliasedRequire = require;
1851            aliasedRequire('./locale/' + name);
1852            getSetGlobalLocale(oldLocale);
1853        } catch (e) {}
1854    }
1855    return locales[name];
1856}
1857
1858// This function will load locale and then set the global locale.  If
1859// no arguments are passed in, it will simply return the current global
1860// locale key.
1861function getSetGlobalLocale (key, values) {
1862    var data;
1863    if (key) {
1864        if (isUndefined(values)) {
1865            data = getLocale(key);
1866        }
1867        else {
1868            data = defineLocale(key, values);
1869        }
1870
1871        if (data) {
1872            // moment.duration._locale = moment._locale = data;
1873            globalLocale = data;
1874        }
1875    }
1876
1877    return globalLocale._abbr;
1878}
1879
1880function defineLocale (name, config) {
1881    if (config !== null) {
1882        var parentConfig = baseConfig;
1883        config.abbr = name;
1884        if (locales[name] != null) {
1885            deprecateSimple('defineLocaleOverride',
1886                    'use moment.updateLocale(localeName, config) to change ' +
1887                    'an existing locale. moment.defineLocale(localeName, ' +
1888                    'config) should only be used for creating a new locale ' +
1889                    'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
1890            parentConfig = locales[name]._config;
1891        } else if (config.parentLocale != null) {
1892            if (locales[config.parentLocale] != null) {
1893                parentConfig = locales[config.parentLocale]._config;
1894            } else {
1895                if (!localeFamilies[config.parentLocale]) {
1896                    localeFamilies[config.parentLocale] = [];
1897                }
1898                localeFamilies[config.parentLocale].push({
1899                    name: name,
1900                    config: config
1901                });
1902                return null;
1903            }
1904        }
1905        locales[name] = new Locale(mergeConfigs(parentConfig, config));
1906
1907        if (localeFamilies[name]) {
1908            localeFamilies[name].forEach(function (x) {
1909                defineLocale(x.name, x.config);
1910            });
1911        }
1912
1913        // backwards compat for now: also set the locale
1914        // make sure we set the locale AFTER all child locales have been
1915        // created, so we won't end up with the child locale set.
1916        getSetGlobalLocale(name);
1917
1918
1919        return locales[name];
1920    } else {
1921        // useful for testing
1922        delete locales[name];
1923        return null;
1924    }
1925}
1926
1927function updateLocale(name, config) {
1928    if (config != null) {
1929        var locale, tmpLocale, parentConfig = baseConfig;
1930        // MERGE
1931        tmpLocale = loadLocale(name);
1932        if (tmpLocale != null) {
1933            parentConfig = tmpLocale._config;
1934        }
1935        config = mergeConfigs(parentConfig, config);
1936        locale = new Locale(config);
1937        locale.parentLocale = locales[name];
1938        locales[name] = locale;
1939
1940        // backwards compat for now: also set the locale
1941        getSetGlobalLocale(name);
1942    } else {
1943        // pass null for config to unupdate, useful for tests
1944        if (locales[name] != null) {
1945            if (locales[name].parentLocale != null) {
1946                locales[name] = locales[name].parentLocale;
1947            } else if (locales[name] != null) {
1948                delete locales[name];
1949            }
1950        }
1951    }
1952    return locales[name];
1953}
1954
1955// returns locale data
1956function getLocale (key) {
1957    var locale;
1958
1959    if (key && key._locale && key._locale._abbr) {
1960        key = key._locale._abbr;
1961    }
1962
1963    if (!key) {
1964        return globalLocale;
1965    }
1966
1967    if (!isArray(key)) {
1968        //short-circuit everything else
1969        locale = loadLocale(key);
1970        if (locale) {
1971            return locale;
1972        }
1973        key = [key];
1974    }
1975
1976    return chooseLocale(key);
1977}
1978
1979function listLocales() {
1980    return keys(locales);
1981}
1982
1983function checkOverflow (m) {
1984    var overflow;
1985    var a = m._a;
1986
1987    if (a && getParsingFlags(m).overflow === -2) {
1988        overflow =
1989            a[MONTH]       < 0 || a[MONTH]       > 11  ? MONTH :
1990            a[DATE]        < 1 || a[DATE]        > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
1991            a[HOUR]        < 0 || a[HOUR]        > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
1992            a[MINUTE]      < 0 || a[MINUTE]      > 59  ? MINUTE :
1993            a[SECOND]      < 0 || a[SECOND]      > 59  ? SECOND :
1994            a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
1995            -1;
1996
1997        if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
1998            overflow = DATE;
1999        }
2000        if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
2001            overflow = WEEK;
2002        }
2003        if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
2004            overflow = WEEKDAY;
2005        }
2006
2007        getParsingFlags(m).overflow = overflow;
2008    }
2009
2010    return m;
2011}
2012
2013// Pick the first defined of two or three arguments.
2014function defaults(a, b, c) {
2015    if (a != null) {
2016        return a;
2017    }
2018    if (b != null) {
2019        return b;
2020    }
2021    return c;
2022}
2023
2024function currentDateArray(config) {
2025    // hooks is actually the exported moment object
2026    var nowValue = new Date(hooks.now());
2027    if (config._useUTC) {
2028        return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
2029    }
2030    return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
2031}
2032
2033// convert an array to a date.
2034// the array should mirror the parameters below
2035// note: all values past the year are optional and will default to the lowest possible value.
2036// [year, month, day , hour, minute, second, millisecond]
2037function configFromArray (config) {
2038    var i, date, input = [], currentDate, yearToUse;
2039
2040    if (config._d) {
2041        return;
2042    }
2043
2044    currentDate = currentDateArray(config);
2045
2046    //compute day of the year from weeks and weekdays
2047    if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
2048        dayOfYearFromWeekInfo(config);
2049    }
2050
2051    //if the day of the year is set, figure out what it is
2052    if (config._dayOfYear != null) {
2053        yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
2054
2055        if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
2056            getParsingFlags(config)._overflowDayOfYear = true;
2057        }
2058
2059        date = createUTCDate(yearToUse, 0, config._dayOfYear);
2060        config._a[MONTH] = date.getUTCMonth();
2061        config._a[DATE] = date.getUTCDate();
2062    }
2063
2064    // Default to current date.
2065    // * if no year, month, day of month are given, default to today
2066    // * if day of month is given, default month and year
2067    // * if month is given, default only year
2068    // * if year is given, don't default anything
2069    for (i = 0; i < 3 && config._a[i] == null; ++i) {
2070        config._a[i] = input[i] = currentDate[i];
2071    }
2072
2073    // Zero out whatever was not defaulted, including time
2074    for (; i < 7; i++) {
2075        config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
2076    }
2077
2078    // Check for 24:00:00.000
2079    if (config._a[HOUR] === 24 &&
2080            config._a[MINUTE] === 0 &&
2081            config._a[SECOND] === 0 &&
2082            config._a[MILLISECOND] === 0) {
2083        config._nextDay = true;
2084        config._a[HOUR] = 0;
2085    }
2086
2087    config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
2088    // Apply timezone offset from input. The actual utcOffset can be changed
2089    // with parseZone.
2090    if (config._tzm != null) {
2091        config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2092    }
2093
2094    if (config._nextDay) {
2095        config._a[HOUR] = 24;
2096    }
2097
2098    // check for mismatching day of week
2099    if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== config._d.getDay()) {
2100        getParsingFlags(config).weekdayMismatch = true;
2101    }
2102}
2103
2104function dayOfYearFromWeekInfo(config) {
2105    var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
2106
2107    w = config._w;
2108    if (w.GG != null || w.W != null || w.E != null) {
2109        dow = 1;
2110        doy = 4;
2111
2112        // TODO: We need to take the current isoWeekYear, but that depends on
2113        // how we interpret now (local, utc, fixed offset). So create
2114        // a now version of current config (take local/utc/offset flags, and
2115        // create now).
2116        weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
2117        week = defaults(w.W, 1);
2118        weekday = defaults(w.E, 1);
2119        if (weekday < 1 || weekday > 7) {
2120            weekdayOverflow = true;
2121        }
2122    } else {
2123        dow = config._locale._week.dow;
2124        doy = config._locale._week.doy;
2125
2126        var curWeek = weekOfYear(createLocal(), dow, doy);
2127
2128        weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
2129
2130        // Default to current week.
2131        week = defaults(w.w, curWeek.week);
2132
2133        if (w.d != null) {
2134            // weekday -- low day numbers are considered next week
2135            weekday = w.d;
2136            if (weekday < 0 || weekday > 6) {
2137                weekdayOverflow = true;
2138            }
2139        } else if (w.e != null) {
2140            // local weekday -- counting starts from begining of week
2141            weekday = w.e + dow;
2142            if (w.e < 0 || w.e > 6) {
2143                weekdayOverflow = true;
2144            }
2145        } else {
2146            // default to begining of week
2147            weekday = dow;
2148        }
2149    }
2150    if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
2151        getParsingFlags(config)._overflowWeeks = true;
2152    } else if (weekdayOverflow != null) {
2153        getParsingFlags(config)._overflowWeekday = true;
2154    } else {
2155        temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
2156        config._a[YEAR] = temp.year;
2157        config._dayOfYear = temp.dayOfYear;
2158    }
2159}
2160
2161// iso 8601 regex
2162// 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)
2163var 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)?)?$/;
2164var 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)?)?$/;
2165
2166var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
2167
2168var isoDates = [
2169    ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
2170    ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
2171    ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
2172    ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
2173    ['YYYY-DDD', /\d{4}-\d{3}/],
2174    ['YYYY-MM', /\d{4}-\d\d/, false],
2175    ['YYYYYYMMDD', /[+-]\d{10}/],
2176    ['YYYYMMDD', /\d{8}/],
2177    // YYYYMM is NOT allowed by the standard
2178    ['GGGG[W]WWE', /\d{4}W\d{3}/],
2179    ['GGGG[W]WW', /\d{4}W\d{2}/, false],
2180    ['YYYYDDD', /\d{7}/]
2181];
2182
2183// iso time formats and regexes
2184var isoTimes = [
2185    ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
2186    ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
2187    ['HH:mm:ss', /\d\d:\d\d:\d\d/],
2188    ['HH:mm', /\d\d:\d\d/],
2189    ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
2190    ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
2191    ['HHmmss', /\d\d\d\d\d\d/],
2192    ['HHmm', /\d\d\d\d/],
2193    ['HH', /\d\d/]
2194];
2195
2196var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
2197
2198// date from iso format
2199function configFromISO(config) {
2200    var i, l,
2201        string = config._i,
2202        match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
2203        allowTime, dateFormat, timeFormat, tzFormat;
2204
2205    if (match) {
2206        getParsingFlags(config).iso = true;
2207
2208        for (i = 0, l = isoDates.length; i < l; i++) {
2209            if (isoDates[i][1].exec(match[1])) {
2210                dateFormat = isoDates[i][0];
2211                allowTime = isoDates[i][2] !== false;
2212                break;
2213            }
2214        }
2215        if (dateFormat == null) {
2216            config._isValid = false;
2217            return;
2218        }
2219        if (match[3]) {
2220            for (i = 0, l = isoTimes.length; i < l; i++) {
2221                if (isoTimes[i][1].exec(match[3])) {
2222                    // match[2] should be 'T' or space
2223                    timeFormat = (match[2] || ' ') + isoTimes[i][0];
2224                    break;
2225                }
2226            }
2227            if (timeFormat == null) {
2228                config._isValid = false;
2229                return;
2230            }
2231        }
2232        if (!allowTime && timeFormat != null) {
2233            config._isValid = false;
2234            return;
2235        }
2236        if (match[4]) {
2237            if (tzRegex.exec(match[4])) {
2238                tzFormat = 'Z';
2239            } else {
2240                config._isValid = false;
2241                return;
2242            }
2243        }
2244        config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
2245        configFromStringAndFormat(config);
2246    } else {
2247        config._isValid = false;
2248    }
2249}
2250
2251// RFC 2822 regex: For details see http://tools.ietf.org/html/rfc2822#section-3.3
2252var 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}))$/;
2253
2254function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
2255    var result = [
2256        untruncateYear(yearStr),
2257        defaultLocaleMonthsShort.indexOf(monthStr),
2258        parseInt(dayStr, 10),
2259        parseInt(hourStr, 10),
2260        parseInt(minuteStr, 10)
2261    ];
2262
2263    if (secondStr) {
2264        result.push(parseInt(secondStr, 10));
2265    }
2266
2267    return result;
2268}
2269
2270function untruncateYear(yearStr) {
2271    var year = parseInt(yearStr, 10);
2272    if (year <= 49) {
2273        return 2000 + year;
2274    } else if (year <= 999) {
2275        return 1900 + year;
2276    }
2277    return year;
2278}
2279
2280function preprocessRFC2822(s) {
2281    // Remove comments and folding whitespace and replace multiple-spaces with a single space
2282    return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').trim(
vendor: 6,917 bytes, lines 2282-2511
2282);
2283}
2284
2285function checkWeekday(weekdayStr, parsedInput, config) {
2286    if (weekdayStr) {
2287        // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
2288        var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
2289            weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
2290        if (weekdayProvided !== weekdayActual) {
2291            getParsingFlags(config).weekdayMismatch = true;
2292            config._isValid = false;
2293            return false;
2294        }
2295    }
2296    return true;
2297}
2298
2299var obsOffsets = {
2300    UT: 0,
2301    GMT: 0,
2302    EDT: -4 * 60,
2303    EST: -5 * 60,
2304    CDT: -5 * 60,
2305    CST: -6 * 60,
2306    MDT: -6 * 60,
2307    MST: -7 * 60,
2308    PDT: -7 * 60,
2309    PST: -8 * 60
2310};
2311
2312function calculateOffset(obsOffset, militaryOffset, numOffset) {
2313    if (obsOffset) {
2314        return obsOffsets[obsOffset];
2315    } else if (militaryOffset) {
2316        // the only allowed military tz is Z
2317        return 0;
2318    } else {
2319        var hm = parseInt(numOffset, 10);
2320        var m = hm % 100, h = (hm - m) / 100;
2321        return h * 60 + m;
2322    }
2323}
2324
2325// date and time from ref 2822 format
2326function configFromRFC2822(config) {
2327    var match = rfc2822.exec(preprocessRFC2822(config._i));
2328    if (match) {
2329        var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
2330        if (!checkWeekday(match[1], parsedArray, config)) {
2331            return;
2332        }
2333
2334        config._a = parsedArray;
2335        config._tzm = calculateOffset(match[8], match[9], match[10]);
2336
2337        config._d = createUTCDate.apply(null, config._a);
2338        config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2339
2340        getParsingFlags(config).rfc2822 = true;
2341    } else {
2342        config._isValid = false;
2343    }
2344}
2345
2346// date from iso format or fallback
2347function configFromString(config) {
2348    var matched = aspNetJsonRegex.exec(config._i);
2349
2350    if (matched !== null) {
2351        config._d = new Date(+matched[1]);
2352        return;
2353    }
2354
2355    configFromISO(config);
2356    if (config._isValid === false) {
2357        delete config._isValid;
2358    } else {
2359        return;
2360    }
2361
2362    configFromRFC2822(config);
2363    if (config._isValid === false) {
2364        delete config._isValid;
2365    } else {
2366        return;
2367    }
2368
2369    // Final attempt, use Input Fallback
2370    hooks.createFromInputFallback(config);
2371}
2372
2373hooks.createFromInputFallback = deprecate(
2374    'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
2375    'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
2376    'discouraged and will be removed in an upcoming major release. Please refer to ' +
2377    'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
2378    function (config) {
2379        config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
2380    }
2381);
2382
2383// constant that refers to the ISO standard
2384hooks.ISO_8601 = function () {};
2385
2386// constant that refers to the RFC 2822 form
2387hooks.RFC_2822 = function () {};
2388
2389// date from string and format string
2390function configFromStringAndFormat(config) {
2391    // TODO: Move this to another part of the creation flow to prevent circular deps
2392    if (config._f === hooks.ISO_8601) {
2393        configFromISO(config);
2394        return;
2395    }
2396    if (config._f === hooks.RFC_2822) {
2397        configFromRFC2822(config);
2398        return;
2399    }
2400    config._a = [];
2401    getParsingFlags(config).empty = true;
2402
2403    // This array is used to make a Date, either with `new Date` or `Date.UTC`
2404    var string = '' + config._i,
2405        i, parsedInput, tokens, token, skipped,
2406        stringLength = string.length,
2407        totalParsedInputLength = 0;
2408
2409    tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
2410
2411    for (i = 0; i < tokens.length; i++) {
2412        token = tokens[i];
2413        parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
2414        // console.log('token', token, 'parsedInput', parsedInput,
2415        //         'regex', getParseRegexForToken(token, config));
2416        if (parsedInput) {
2417            skipped = string.substr(0, string.indexOf(parsedInput));
2418            if (skipped.length > 0) {
2419                getParsingFlags(config).unusedInput.push(skipped);
2420            }
2421            string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
2422            totalParsedInputLength += parsedInput.length;
2423        }
2424        // don't parse if it's not a known token
2425        if (formatTokenFunctions[token]) {
2426            if (parsedInput) {
2427                getParsingFlags(config).empty = false;
2428            }
2429            else {
2430                getParsingFlags(config).unusedTokens.push(token);
2431            }
2432            addTimeToArrayFromToken(token, parsedInput, config);
2433        }
2434        else if (config._strict && !parsedInput) {
2435            getParsingFlags(config).unusedTokens.push(token);
2436        }
2437    }
2438
2439    // add remaining unparsed input length to the string
2440    getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
2441    if (string.length > 0) {
2442        getParsingFlags(config).unusedInput.push(string);
2443    }
2444
2445    // clear _12h flag if hour is <= 12
2446    if (config._a[HOUR] <= 12 &&
2447        getParsingFlags(config).bigHour === true &&
2448        config._a[HOUR] > 0) {
2449        getParsingFlags(config).bigHour = undefined;
2450    }
2451
2452    getParsingFlags(config).parsedDateParts = config._a.slice(0);
2453    getParsingFlags(config).meridiem = config._meridiem;
2454    // handle meridiem
2455    config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
2456
2457    configFromArray(config);
2458    checkOverflow(config);
2459}
2460
2461
2462function meridiemFixWrap (locale, hour, meridiem) {
2463    var isPm;
2464
2465    if (meridiem == null) {
2466        // nothing to do
2467        return hour;
2468    }
2469    if (locale.meridiemHour != null) {
2470        return locale.meridiemHour(hour, meridiem);
2471    } else if (locale.isPM != null) {
2472        // Fallback
2473        isPm = locale.isPM(meridiem);
2474        if (isPm && hour < 12) {
2475            hour += 12;
2476        }
2477        if (!isPm && hour === 12) {
2478            hour = 0;
2479        }
2480        return hour;
2481    } else {
2482        // this is not supposed to happen
2483        return hour;
2484    }
2485}
2486
2487// date from string and array of format strings
2488function configFromStringAndArray(config) {
2489    var tempConfig,
2490        bestMoment,
2491
2492        scoreToBeat,
2493        i,
2494        currentScore;
2495
2496    if (config._f.length === 0) {
2497        getParsingFlags(config).invalidFormat = true;
2498        config._d = new Date(NaN);
2499        return;
2500    }
2501
2502    for (i = 0; i < config._f.length; i++) {
2503        currentScore = 0;
2504        tempConfig = copyConfig({}, config);
2505        if (config._useUTC != null) {
2506            tempConfig._useUTC = config._useUTC;
2507        }
2508        tempConfig._f = config._f[i];
2509        configFromStringAndFormat(tempConfig);
2510
2511        if (!isValid
vendor: 9,911 bytes, lines 2511-2867
2511(tempConfig)) {
2512            continue;
2513        }
2514
2515        // if there is any input that was not parsed add a penalty for that format
2516        currentScore += getParsingFlags(tempConfig).charsLeftOver;
2517
2518        //or tokens
2519        currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
2520
2521        getParsingFlags(tempConfig).score = currentScore;
2522
2523        if (scoreToBeat == null || currentScore < scoreToBeat) {
2524            scoreToBeat = currentScore;
2525            bestMoment = tempConfig;
2526        }
2527    }
2528
2529    extend(config, bestMoment || tempConfig);
2530}
2531
2532function configFromObject(config) {
2533    if (config._d) {
2534        return;
2535    }
2536
2537    var i = normalizeObjectUnits(config._i);
2538    config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
2539        return obj && parseInt(obj, 10);
2540    });
2541
2542    configFromArray(config);
2543}
2544
2545function createFromConfig (config) {
2546    var res = new Moment(checkOverflow(prepareConfig(config)));
2547    if (res._nextDay) {
2548        // Adding is smart enough around DST
2549        res.add(1, 'd');
2550        res._nextDay = undefined;
2551    }
2552
2553    return res;
2554}
2555
2556function prepareConfig (config) {
2557    var input = config._i,
2558        format = config._f;
2559
2560    config._locale = config._locale || getLocale(config._l);
2561
2562    if (input === null || (format === undefined && input === '')) {
2563        return createInvalid({nullInput: true});
2564    }
2565
2566    if (typeof input === 'string') {
2567        config._i = input = config._locale.preparse(input);
2568    }
2569
2570    if (isMoment(input)) {
2571        return new Moment(checkOverflow(input));
2572    } else if (isDate(input)) {
2573        config._d = input;
2574    } else if (isArray(format)) {
2575        configFromStringAndArray(config);
2576    } else if (format) {
2577        configFromStringAndFormat(config);
2578    }  else {
2579        configFromInput(config);
2580    }
2581
2582    if (!isValid(config)) {
2583        config._d = null;
2584    }
2585
2586    return config;
2587}
2588
2589function configFromInput(config) {
2590    var input = config._i;
2591    if (isUndefined(input)) {
2592        config._d = new Date(hooks.now());
2593    } else if (isDate(input)) {
2594        config._d = new Date(input.valueOf());
2595    } else if (typeof input === 'string') {
2596        configFromString(config);
2597    } else if (isArray(input)) {
2598        config._a = map(input.slice(0), function (obj) {
2599            return parseInt(obj, 10);
2600        });
2601        configFromArray(config);
2602    } else if (isObject(input)) {
2603        configFromObject(config);
2604    } else if (isNumber(input)) {
2605        // from milliseconds
2606        config._d = new Date(input);
2607    } else {
2608        hooks.createFromInputFallback(config);
2609    }
2610}
2611
2612function createLocalOrUTC (input, format, locale, strict, isUTC) {
2613    var c = {};
2614
2615    if (locale === true || locale === false) {
2616        strict = locale;
2617        locale = undefined;
2618    }
2619
2620    if ((isObject(input) && isObjectEmpty(input)) ||
2621            (isArray(input) && input.length === 0)) {
2622        input = undefined;
2623    }
2624    // object construction must be done this way.
2625    // http://github.com/moment/moment/issues/1423
2626    c._isAMomentObject = true;
2627    c._useUTC = c._isUTC = isUTC;
2628    c._l = locale;
2629    c._i = input;
2630    c._f = format;
2631    c._strict = strict;
2632
2633    return createFromConfig(c);
2634}
2635
2636function createLocal (input, format, locale, strict) {
2637    return createLocalOrUTC(input, format, locale, strict, false);
2638}
2639
2640var prototypeMin = deprecate(
2641    'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
2642    function () {
2643        var other = createLocal.apply(null, arguments);
2644        if (this.isValid() && other.isValid()) {
2645            return other < this ? this : other;
2646        } else {
2647            return createInvalid();
2648        }
2649    }
2650);
2651
2652var prototypeMax = deprecate(
2653    'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
2654    function () {
2655        var other = createLocal.apply(null, arguments);
2656        if (this.isValid() && other.isValid()) {
2657            return other > this ? this : other;
2658        } else {
2659            return createInvalid();
2660        }
2661    }
2662);
2663
2664// Pick a moment m from moments so that m[fn](other) is true for all
2665// other. This relies on the function fn to be transitive.
2666//
2667// moments should either be an array of moment objects or an array, whose
2668// first element is an array of moment objects.
2669function pickBy(fn, moments) {
2670    var res, i;
2671    if (moments.length === 1 && isArray(moments[0])) {
2672        moments = moments[0];
2673    }
2674    if (!moments.length) {
2675        return createLocal();
2676    }
2677    res = moments[0];
2678    for (i = 1; i < moments.length; ++i) {
2679        if (!moments[i].isValid() || moments[i][fn](res)) {
2680            res = moments[i];
2681        }
2682    }
2683    return res;
2684}
2685
2686// TODO: Use [].sort instead?
2687function min () {
2688    var args = [].slice.call(arguments, 0);
2689
2690    return pickBy('isBefore', args);
2691}
2692
2693function max () {
2694    var args = [].slice.call(arguments, 0);
2695
2696    return pickBy('isAfter', args);
2697}
2698
2699var now = function () {
2700    return Date.now ? Date.now() : +(new Date());
2701};
2702
2703var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
2704
2705function isDurationValid(m) {
2706    for (var key in m) {
2707        if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
2708            return false;
2709        }
2710    }
2711
2712    var unitHasDecimal = false;
2713    for (var i = 0; i < ordering.length; ++i) {
2714        if (m[ordering[i]]) {
2715            if (unitHasDecimal) {
2716                return false; // only allow non-integers for smallest unit
2717            }
2718            if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
2719                unitHasDecimal = true;
2720            }
2721        }
2722    }
2723
2724    return true;
2725}
2726
2727function isValid$1() {
2728    return this._isValid;
2729}
2730
2731function createInvalid$1() {
2732    return createDuration(NaN);
2733}
2734
2735function Duration (duration) {
2736    var normalizedInput = normalizeObjectUnits(duration),
2737        years = normalizedInput.year || 0,
2738        quarters = normalizedInput.quarter || 0,
2739        months = normalizedInput.month || 0,
2740        weeks = normalizedInput.week || 0,
2741        days = normalizedInput.day || 0,
2742        hours = normalizedInput.hour || 0,
2743        minutes = normalizedInput.minute || 0,
2744        seconds = normalizedInput.second || 0,
2745        milliseconds = normalizedInput.millisecond || 0;
2746
2747    this._isValid = isDurationValid(normalizedInput);
2748
2749    // representation for dateAddRemove
2750    this._milliseconds = +milliseconds +
2751        seconds * 1e3 + // 1000
2752        minutes * 6e4 + // 1000 * 60
2753        hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors http://github.com/moment/moment/issues/2978
2754    // Because of dateAddRemove treats 24 hours as different from a
2755    // day when working around DST, we need to store them separately
2756    this._days = +days +
2757        weeks * 7;
2758    // It is impossible to translate months into days without knowing
2759    // which months you are are talking about, so we have to store
2760    // it separately.
2761    this._months = +months +
2762        quarters * 3 +
2763        years * 12;
2764
2765    this._data = {};
2766
2767    this._locale = getLocale();
2768
2769    this._bubble();
2770}
2771
2772function isDuration (obj) {
2773    return obj instanceof Duration;
2774}
2775
2776function absRound (number) {
2777    if (number < 0) {
2778        return Math.round(-1 * number) * -1;
2779    } else {
2780        return Math.round(number);
2781    }
2782}
2783
2784// FORMATTING
2785
2786function offset (token, separator) {
2787    addFormatToken(token, 0, 0, function () {
2788        var offset = this.utcOffset();
2789        var sign = '+';
2790        if (offset < 0) {
2791            offset = -offset;
2792            sign = '-';
2793        }
2794        return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
2795    });
2796}
2797
2798offset('Z', ':');
2799offset('ZZ', '');
2800
2801// PARSING
2802
2803addRegexToken('Z',  matchShortOffset);
2804addRegexToken('ZZ', matchShortOffset);
2805addParseToken(['Z', 'ZZ'], function (input, array, config) {
2806    config._useUTC = true;
2807    config._tzm = offsetFromString(matchShortOffset, input);
2808});
2809
2810// HELPERS
2811
2812// timezone chunker
2813// '+10:00' > ['10',  '00']
2814// '-1530'  > ['-15', '30']
2815var chunkOffset = /([\+\-]|\d\d)/gi;
2816
2817function offsetFromString(matcher, string) {
2818    var matches = (string || '').match(matcher);
2819
2820    if (matches === null) {
2821        return null;
2822    }
2823
2824    var chunk   = matches[matches.length - 1] || [];
2825    var parts   = (chunk + '').match(chunkOffset) || ['-', 0, 0];
2826    var minutes = +(parts[1] * 60) + toInt(parts[2]);
2827
2828    return minutes === 0 ?
2829      0 :
2830      parts[0] === '+' ? minutes : -minutes;
2831}
2832
2833// Return a moment from input, that is local/utc/zone equivalent to model.
2834function cloneWithOffset(input, model) {
2835    var res, diff;
2836    if (model._isUTC) {
2837        res = model.clone();
2838        diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
2839        // Use low-level api, because this fn is low-level api.
2840        res._d.setTime(res._d.valueOf() + diff);
2841        hooks.updateOffset(res, false);
2842        return res;
2843    } else {
2844        return createLocal(input).local();
2845    }
2846}
2847
2848function getDateOffset (m) {
2849    // On Firefox.24 Date#getTimezoneOffset returns a floating point.
2850    // http://github.com/moment/moment/pull/1871
2851    return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
2852}
2853
2854// HOOKS
2855
2856// This function will be called whenever a moment is mutated.
2857// It is intended to keep the offset in sync with the timezone.
2858hooks.updateOffset = function () {};
2859
2860// MOMENTS
2861
2862// keepLocalTime = true means only change the timezone, without
2863// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
2864// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
2865// +0200, so we adjust the time as needed, to be valid.
2866//
2867// Keeping the time actually adds/subtracts (one hour)
vendor: 19,215 bytes, lines 2868-3514
2868// from the actual represented time. That is why we call updateOffset
2869// a second time. In case it wants us to change the offset again
2870// _changeInProgress == true case, then we have to adjust, because
2871// there is no such time in the given timezone.
2872function getSetOffset (input, keepLocalTime, keepMinutes) {
2873    var offset = this._offset || 0,
2874        localAdjust;
2875    if (!this.isValid()) {
2876        return input != null ? this : NaN;
2877    }
2878    if (input != null) {
2879        if (typeof input === 'string') {
2880            input = offsetFromString(matchShortOffset, input);
2881            if (input === null) {
2882                return this;
2883            }
2884        } else if (Math.abs(input) < 16 && !keepMinutes) {
2885            input = input * 60;
2886        }
2887        if (!this._isUTC && keepLocalTime) {
2888            localAdjust = getDateOffset(this);
2889        }
2890        this._offset = input;
2891        this._isUTC = true;
2892        if (localAdjust != null) {
2893            this.add(localAdjust, 'm');
2894        }
2895        if (offset !== input) {
2896            if (!keepLocalTime || this._changeInProgress) {
2897                addSubtract(this, createDuration(input - offset, 'm'), 1, false);
2898            } else if (!this._changeInProgress) {
2899                this._changeInProgress = true;
2900                hooks.updateOffset(this, true);
2901                this._changeInProgress = null;
2902            }
2903        }
2904        return this;
2905    } else {
2906        return this._isUTC ? offset : getDateOffset(this);
2907    }
2908}
2909
2910function getSetZone (input, keepLocalTime) {
2911    if (input != null) {
2912        if (typeof input !== 'string') {
2913            input = -input;
2914        }
2915
2916        this.utcOffset(input, keepLocalTime);
2917
2918        return this;
2919    } else {
2920        return -this.utcOffset();
2921    }
2922}
2923
2924function setOffsetToUTC (keepLocalTime) {
2925    return this.utcOffset(0, keepLocalTime);
2926}
2927
2928function setOffsetToLocal (keepLocalTime) {
2929    if (this._isUTC) {
2930        this.utcOffset(0, keepLocalTime);
2931        this._isUTC = false;
2932
2933        if (keepLocalTime) {
2934            this.subtract(getDateOffset(this), 'm');
2935        }
2936    }
2937    return this;
2938}
2939
2940function setOffsetToParsedOffset () {
2941    if (this._tzm != null) {
2942        this.utcOffset(this._tzm, false, true);
2943    } else if (typeof this._i === 'string') {
2944        var tZone = offsetFromString(matchOffset, this._i);
2945        if (tZone != null) {
2946            this.utcOffset(tZone);
2947        }
2948        else {
2949            this.utcOffset(0, true);
2950        }
2951    }
2952    return this;
2953}
2954
2955function hasAlignedHourOffset (input) {
2956    if (!this.isValid()) {
2957        return false;
2958    }
2959    input = input ? createLocal(input).utcOffset() : 0;
2960
2961    return (this.utcOffset() - input) % 60 === 0;
2962}
2963
2964function isDaylightSavingTime () {
2965    return (
2966        this.utcOffset() > this.clone().month(0).utcOffset() ||
2967        this.utcOffset() > this.clone().month(5).utcOffset()
2968    );
2969}
2970
2971function isDaylightSavingTimeShifted () {
2972    if (!isUndefined(this._isDSTShifted)) {
2973        return this._isDSTShifted;
2974    }
2975
2976    var c = {};
2977
2978    copyConfig(c, this);
2979    c = prepareConfig(c);
2980
2981    if (c._a) {
2982        var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
2983        this._isDSTShifted = this.isValid() &&
2984            compareArrays(c._a, other.toArray()) > 0;
2985    } else {
2986        this._isDSTShifted = false;
2987    }
2988
2989    return this._isDSTShifted;
2990}
2991
2992function isLocal () {
2993    return this.isValid() ? !this._isUTC : false;
2994}
2995
2996function isUtcOffset () {
2997    return this.isValid() ? this._isUTC : false;
2998}
2999
3000function isUtc () {
3001    return this.isValid() ? this._isUTC && this._offset === 0 : false;
3002}
3003
3004// ASP.NET json date format regex
3005var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
3006
3007// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
3008// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
3009// and further modified to allow for strings containing both week and day
3010var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
3011
3012function createDuration (input, key) {
3013    var duration = input,
3014        // matching against regexp is expensive, do it on demand
3015        match = null,
3016        sign,
3017        ret,
3018        diffRes;
3019
3020    if (isDuration(input)) {
3021        duration = {
3022            ms : input._milliseconds,
3023            d  : input._days,
3024            M  : input._months
3025        };
3026    } else if (isNumber(input)) {
3027        duration = {};
3028        if (key) {
3029            duration[key] = input;
3030        } else {
3031            duration.milliseconds = input;
3032        }
3033    } else if (!!(match = aspNetRegex.exec(input))) {
3034        sign = (match[1] === '-') ? -1 : 1;
3035        duration = {
3036            y  : 0,
3037            d  : toInt(match[DATE])                         * sign,
3038            h  : toInt(match[HOUR])                         * sign,
3039            m  : toInt(match[MINUTE])                       * sign,
3040            s  : toInt(match[SECOND])                       * sign,
3041            ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
3042        };
3043    } else if (!!(match = isoRegex.exec(input))) {
3044        sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
3045        duration = {
3046            y : parseIso(match[2], sign),
3047            M : parseIso(match[3], sign),
3048            w : parseIso(match[4], sign),
3049            d : parseIso(match[5], sign),
3050            h : parseIso(match[6], sign),
3051            m : parseIso(match[7], sign),
3052            s : parseIso(match[8], sign)
3053        };
3054    } else if (duration == null) {// checks for null or undefined
3055        duration = {};
3056    } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
3057        diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
3058
3059        duration = {};
3060        duration.ms = diffRes.milliseconds;
3061        duration.M = diffRes.months;
3062    }
3063
3064    ret = new Duration(duration);
3065
3066    if (isDuration(input) && hasOwnProp(input, '_locale')) {
3067        ret._locale = input._locale;
3068    }
3069
3070    return ret;
3071}
3072
3073createDuration.fn = Duration.prototype;
3074createDuration.invalid = createInvalid$1;
3075
3076function parseIso (inp, sign) {
3077    // We'd normally use ~~inp for this, but unfortunately it also
3078    // converts floats to ints.
3079    // inp may be undefined, so careful calling replace on it.
3080    var res = inp && parseFloat(inp.replace(',', '.'));
3081    // apply sign while we're at it
3082    return (isNaN(res) ? 0 : res) * sign;
3083}
3084
3085function positiveMomentsDifference(base, other) {
3086    var res = {milliseconds: 0, months: 0};
3087
3088    res.months = other.month() - base.month() +
3089        (other.year() - base.year()) * 12;
3090    if (base.clone().add(res.months, 'M').isAfter(other)) {
3091        --res.months;
3092    }
3093
3094    res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
3095
3096    return res;
3097}
3098
3099function momentsDifference(base, other) {
3100    var res;
3101    if (!(base.isValid() && other.isValid())) {
3102        return {milliseconds: 0, months: 0};
3103    }
3104
3105    other = cloneWithOffset(other, base);
3106    if (base.isBefore(other)) {
3107        res = positiveMomentsDifference(base, other);
3108    } else {
3109        res = positiveMomentsDifference(other, base);
3110        res.milliseconds = -res.milliseconds;
3111        res.months = -res.months;
3112    }
3113
3114    return res;
3115}
3116
3117// TODO: remove 'name' arg after deprecation is removed
3118function createAdder(direction, name) {
3119    return function (val, period) {
3120        var dur, tmp;
3121        //invert the arguments, but complain about it
3122        if (period !== null && !isNaN(+period)) {
3123            deprecateSimple(name, 'moment().' + name  + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
3124            'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
3125            tmp = val; val = period; period = tmp;
3126        }
3127
3128        val = typeof val === 'string' ? +val : val;
3129        dur = createDuration(val, period);
3130        addSubtract(this, dur, direction);
3131        return this;
3132    };
3133}
3134
3135function addSubtract (mom, duration, isAdding, updateOffset) {
3136    var milliseconds = duration._milliseconds,
3137        days = absRound(duration._days),
3138        months = absRound(duration._months);
3139
3140    if (!mom.isValid()) {
3141        // No op
3142        return;
3143    }
3144
3145    updateOffset = updateOffset == null ? true : updateOffset;
3146
3147    if (months) {
3148        setMonth(mom, get(mom, 'Month') + months * isAdding);
3149    }
3150    if (days) {
3151        set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
3152    }
3153    if (milliseconds) {
3154        mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
3155    }
3156    if (updateOffset) {
3157        hooks.updateOffset(mom, days || months);
3158    }
3159}
3160
3161var add      = createAdder(1, 'add');
3162var subtract = createAdder(-1, 'subtract');
3163
3164function getCalendarFormat(myMoment, now) {
3165    var diff = myMoment.diff(now, 'days', true);
3166    return diff < -6 ? 'sameElse' :
3167            diff < -1 ? 'lastWeek' :
3168            diff < 0 ? 'lastDay' :
3169            diff < 1 ? 'sameDay' :
3170            diff < 2 ? 'nextDay' :
3171            diff < 7 ? 'nextWeek' : 'sameElse';
3172}
3173
3174function calendar$1 (time, formats) {
3175    // We want to compare the start of today, vs this.
3176    // Getting start-of-today depends on whether we're local/utc/offset or not.
3177    var now = time || createLocal(),
3178        sod = cloneWithOffset(now, this).startOf('day'),
3179        format = hooks.calendarFormat(this, sod) || 'sameElse';
3180
3181    var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
3182
3183    return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
3184}
3185
3186function clone () {
3187    return new Moment(this);
3188}
3189
3190function isAfter (input, units) {
3191    var localInput = isMoment(input) ? input : createLocal(input);
3192    if (!(this.isValid() && localInput.isValid())) {
3193        return false;
3194    }
3195    units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3196    if (units === 'millisecond') {
3197        return this.valueOf() > localInput.valueOf();
3198    } else {
3199        return localInput.valueOf() < this.clone().startOf(units).valueOf();
3200    }
3201}
3202
3203function isBefore (input, units) {
3204    var localInput = isMoment(input) ? input : createLocal(input);
3205    if (!(this.isValid() && localInput.isValid())) {
3206        return false;
3207    }
3208    units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3209    if (units === 'millisecond') {
3210        return this.valueOf() < localInput.valueOf();
3211    } else {
3212        return this.clone().endOf(units).valueOf() < localInput.valueOf();
3213    }
3214}
3215
3216function isBetween (from, to, units, inclusivity) {
3217    inclusivity = inclusivity || '()';
3218    return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
3219        (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
3220}
3221
3222function isSame (input, units) {
3223    var localInput = isMoment(input) ? input : createLocal(input),
3224        inputMs;
3225    if (!(this.isValid() && localInput.isValid())) {
3226        return false;
3227    }
3228    units = normalizeUnits(units || 'millisecond');
3229    if (units === 'millisecond') {
3230        return this.valueOf() === localInput.valueOf();
3231    } else {
3232        inputMs = localInput.valueOf();
3233        return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
3234    }
3235}
3236
3237function isSameOrAfter (input, units) {
3238    return this.isSame(input, units) || this.isAfter(input,units);
3239}
3240
3241function isSameOrBefore (input, units) {
3242    return this.isSame(input, units) || this.isBefore(input,units);
3243}
3244
3245function diff (input, units, asFloat) {
3246    var that,
3247        zoneDelta,
3248        delta, output;
3249
3250    if (!this.isValid()) {
3251        return NaN;
3252    }
3253
3254    that = cloneWithOffset(input, this);
3255
3256    if (!that.isValid()) {
3257        return NaN;
3258    }
3259
3260    zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
3261
3262    units = normalizeUnits(units);
3263
3264    switch (units) {
3265        case 'year': output = monthDiff(this, that) / 12; break;
3266        case 'month': output = monthDiff(this, that); break;
3267        case 'quarter': output = monthDiff(this, that) / 3; break;
3268        case 'second': output = (this - that) / 1e3; break; // 1000
3269        case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
3270        case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
3271        case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
3272        case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
3273        default: output = this - that;
3274    }
3275
3276    return asFloat ? output : absFloor(output);
3277}
3278
3279function monthDiff (a, b) {
3280    // difference in months
3281    var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
3282        // b is in (anchor - 1 month, anchor + 1 month)
3283        anchor = a.clone().add(wholeMonthDiff, 'months'),
3284        anchor2, adjust;
3285
3286    if (b - anchor < 0) {
3287        anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
3288        // linear across the month
3289        adjust = (b - anchor) / (anchor - anchor2);
3290    } else {
3291        anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
3292        // linear across the month
3293        adjust = (b - anchor) / (anchor2 - anchor);
3294    }
3295
3296    //check for negative zero, return zero if negative zero
3297    return -(wholeMonthDiff + adjust) || 0;
3298}
3299
3300hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
3301hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
3302
3303function toString () {
3304    return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
3305}
3306
3307function toISOString() {
3308    if (!this.isValid()) {
3309        return null;
3310    }
3311    var m = this.clone().utc();
3312    if (m.year() < 0 || m.year() > 9999) {
3313        return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
3314    }
3315    if (isFunction(Date.prototype.toISOString)) {
3316        // native implementation is ~50x faster, use it when we can
3317        return this.toDate().toISOString();
3318    }
3319    return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
3320}
3321
3322/**
3323 * Return a human readable representation of a moment that can
3324 * also be evaluated to get a new moment which is the same
3325 *
3326 * @link http://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
3327 */
3328function inspect () {
3329    if (!this.isValid()) {
3330        return 'moment.invalid(/* ' + this._i + ' */)';
3331    }
3332    var func = 'moment';
3333    var zone = '';
3334    if (!this.isLocal()) {
3335        func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
3336        zone = 'Z';
3337    }
3338    var prefix = '[' + func + '("]';
3339    var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
3340    var datetime = '-MM-DD[T]HH:mm:ss.SSS';
3341    var suffix = zone + '[")]';
3342
3343    return this.format(prefix + year + datetime + suffix);
3344}
3345
3346function format (inputString) {
3347    if (!inputString) {
3348        inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
3349    }
3350    var output = formatMoment(this, inputString);
3351    return this.localeData().postformat(output);
3352}
3353
3354function from (time, withoutSuffix) {
3355    if (this.isValid() &&
3356            ((isMoment(time) && time.isValid()) ||
3357             createLocal(time).isValid())) {
3358        return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
3359    } else {
3360        return this.localeData().invalidDate();
3361    }
3362}
3363
3364function fromNow (withoutSuffix) {
3365    return this.from(createLocal(), withoutSuffix);
3366}
3367
3368function to (time, withoutSuffix) {
3369    if (this.isValid() &&
3370            ((isMoment(time) && time.isValid()) ||
3371             createLocal(time).isValid())) {
3372        return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
3373    } else {
3374        return this.localeData().invalidDate();
3375    }
3376}
3377
3378function toNow (withoutSuffix) {
3379    return this.to(createLocal(), withoutSuffix);
3380}
3381
3382// If passed a locale key, it will set the locale for this
3383// instance.  Otherwise, it will return the locale configuration
3384// variables for this instance.
3385function locale (key) {
3386    var newLocaleData;
3387
3388    if (key === undefined) {
3389        return this._locale._abbr;
3390    } else {
3391        newLocaleData = getLocale(key);
3392        if (newLocaleData != null) {
3393            this._locale = newLocaleData;
3394        }
3395        return this;
3396    }
3397}
3398
3399var lang = deprecate(
3400    'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
3401    function (key) {
3402        if (key === undefined) {
3403            return this.localeData();
3404        } else {
3405            return this.locale(key);
3406        }
3407    }
3408);
3409
3410function localeData () {
3411    return this._locale;
3412}
3413
3414function startOf (units) {
3415    units = normalizeUnits(units);
3416    // the following switch intentionally omits break keywords
3417    // to utilize falling through the cases.
3418    switch (units) {
3419        case 'year':
3420            this.month(0);
3421            /* falls through */
3422        case 'quarter':
3423        case 'month':
3424            this.date(1);
3425            /* falls through */
3426        case 'week':
3427        case 'isoWeek':
3428        case 'day':
3429        case 'date':
3430            this.hours(0);
3431            /* falls through */
3432        case 'hour':
3433            this.minutes(0);
3434            /* falls through */
3435        case 'minute':
3436            this.seconds(0);
3437            /* falls through */
3438        case 'second':
3439            this.milliseconds(0);
3440    }
3441
3442    // weeks are a special case
3443    if (units === 'week') {
3444        this.weekday(0);
3445    }
3446    if (units === 'isoWeek') {
3447        this.isoWeekday(1);
3448    }
3449
3450    // quarters are also special
3451    if (units === 'quarter') {
3452        this.month(Math.floor(this.month() / 3) * 3);
3453    }
3454
3455    return this;
3456}
3457
3458function endOf (units) {
3459    units = normalizeUnits(units);
3460    if (units === undefined || units === 'millisecond') {
3461        return this;
3462    }
3463
3464    // 'date' is an alias for 'day', so it should be considered as such.
3465    if (units === 'date') {
3466        units = 'day';
3467    }
3468
3469    return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
3470}
3471
3472function valueOf () {
3473    return this._d.valueOf() - ((this._offset || 0) * 60000);
3474}
3475
3476function unix () {
3477    return Math.floor(this.valueOf() / 1000);
3478}
3479
3480function toDate () {
3481    return new Date(this.valueOf());
3482}
3483
3484function toArray () {
3485    var m = this;
3486    return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
3487}
3488
3489function toObject () {
3490    var m = this;
3491    return {
3492        years: m.year(),
3493        months: m.month(),
3494        date: m.date(),
3495        hours: m.hours(),
3496        minutes: m.minutes(),
3497        seconds: m.seconds(),
3498        milliseconds: m.milliseconds()
3499    };
3500}
3501
3502function toJSON () {
3503    // new Date(NaN).toJSON() === null
3504    return this.isValid() ? this.toISOString() : null;
3505}
3506
3507function isValid$2 () {
3508    return isValid(this);
3509}
3510
3511function parsingFlags () {
3512    return extend({}, getParsingFlags(this));
3513}
3514
vendor: 11,965 bytes, lines 3515-3986
3515function invalidAt () {
3516    return getParsingFlags(this).overflow;
3517}
3518
3519function creationData() {
3520    return {
3521        input: this._i,
3522        format: this._f,
3523        locale: this._locale,
3524        isUTC: this._isUTC,
3525        strict: this._strict
3526    };
3527}
3528
3529// FORMATTING
3530
3531addFormatToken(0, ['gg', 2], 0, function () {
3532    return this.weekYear() % 100;
3533});
3534
3535addFormatToken(0, ['GG', 2], 0, function () {
3536    return this.isoWeekYear() % 100;
3537});
3538
3539function addWeekYearFormatToken (token, getter) {
3540    addFormatToken(0, [token, token.length], 0, getter);
3541}
3542
3543addWeekYearFormatToken('gggg',     'weekYear');
3544addWeekYearFormatToken('ggggg',    'weekYear');
3545addWeekYearFormatToken('GGGG',  'isoWeekYear');
3546addWeekYearFormatToken('GGGGG', 'isoWeekYear');
3547
3548// ALIASES
3549
3550addUnitAlias('weekYear', 'gg');
3551addUnitAlias('isoWeekYear', 'GG');
3552
3553// PRIORITY
3554
3555addUnitPriority('weekYear', 1);
3556addUnitPriority('isoWeekYear', 1);
3557
3558
3559// PARSING
3560
3561addRegexToken('G',      matchSigned);
3562addRegexToken('g',      matchSigned);
3563addRegexToken('GG',     match1to2, match2);
3564addRegexToken('gg',     match1to2, match2);
3565addRegexToken('GGGG',   match1to4, match4);
3566addRegexToken('gggg',   match1to4, match4);
3567addRegexToken('GGGGG',  match1to6, match6);
3568addRegexToken('ggggg',  match1to6, match6);
3569
3570addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
3571    week[token.substr(0, 2)] = toInt(input);
3572});
3573
3574addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
3575    week[token] = hooks.parseTwoDigitYear(input);
3576});
3577
3578// MOMENTS
3579
3580function getSetWeekYear (input) {
3581    return getSetWeekYearHelper.call(this,
3582            input,
3583            this.week(),
3584            this.weekday(),
3585            this.localeData()._week.dow,
3586            this.localeData()._week.doy);
3587}
3588
3589function getSetISOWeekYear (input) {
3590    return getSetWeekYearHelper.call(this,
3591            input, this.isoWeek(), this.isoWeekday(), 1, 4);
3592}
3593
3594function getISOWeeksInYear () {
3595    return weeksInYear(this.year(), 1, 4);
3596}
3597
3598function getWeeksInYear () {
3599    var weekInfo = this.localeData()._week;
3600    return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
3601}
3602
3603function getSetWeekYearHelper(input, week, weekday, dow, doy) {
3604    var weeksTarget;
3605    if (input == null) {
3606        return weekOfYear(this, dow, doy).year;
3607    } else {
3608        weeksTarget = weeksInYear(input, dow, doy);
3609        if (week > weeksTarget) {
3610            week = weeksTarget;
3611        }
3612        return setWeekAll.call(this, input, week, weekday, dow, doy);
3613    }
3614}
3615
3616function setWeekAll(weekYear, week, weekday, dow, doy) {
3617    var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
3618        date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
3619
3620    this.year(date.getUTCFullYear());
3621    this.month(date.getUTCMonth());
3622    this.date(date.getUTCDate());
3623    return this;
3624}
3625
3626// FORMATTING
3627
3628addFormatToken('Q', 0, 'Qo', 'quarter');
3629
3630// ALIASES
3631
3632addUnitAlias('quarter', 'Q');
3633
3634// PRIORITY
3635
3636addUnitPriority('quarter', 7);
3637
3638// PARSING
3639
3640addRegexToken('Q', match1);
3641addParseToken('Q', function (input, array) {
3642    array[MONTH] = (toInt(input) - 1) * 3;
3643});
3644
3645// MOMENTS
3646
3647function getSetQuarter (input) {
3648    return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
3649}
3650
3651// FORMATTING
3652
3653addFormatToken('D', ['DD', 2], 'Do', 'date');
3654
3655// ALIASES
3656
3657addUnitAlias('date', 'D');
3658
3659// PRIOROITY
3660addUnitPriority('date', 9);
3661
3662// PARSING
3663
3664addRegexToken('D',  match1to2);
3665addRegexToken('DD', match1to2, match2);
3666addRegexToken('Do', function (isStrict, locale) {
3667    // TODO: Remove "ordinalParse" fallback in next major release.
3668    return isStrict ?
3669      (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
3670      locale._dayOfMonthOrdinalParseLenient;
3671});
3672
3673addParseToken(['D', 'DD'], DATE);
3674addParseToken('Do', function (input, array) {
3675    array[DATE] = toInt(input.match(match1to2)[0], 10);
3676});
3677
3678// MOMENTS
3679
3680var getSetDayOfMonth = makeGetSet('Date', true);
3681
3682// FORMATTING
3683
3684addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
3685
3686// ALIASES
3687
3688addUnitAlias('dayOfYear', 'DDD');
3689
3690// PRIORITY
3691addUnitPriority('dayOfYear', 4);
3692
3693// PARSING
3694
3695addRegexToken('DDD',  match1to3);
3696addRegexToken('DDDD', match3);
3697addParseToken(['DDD', 'DDDD'], function (input, array, config) {
3698    config._dayOfYear = toInt(input);
3699});
3700
3701// HELPERS
3702
3703// MOMENTS
3704
3705function getSetDayOfYear (input) {
3706    var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
3707    return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
3708}
3709
3710// FORMATTING
3711
3712addFormatToken('m', ['mm', 2], 0, 'minute');
3713
3714// ALIASES
3715
3716addUnitAlias('minute', 'm');
3717
3718// PRIORITY
3719
3720addUnitPriority('minute', 14);
3721
3722// PARSING
3723
3724addRegexToken('m',  match1to2);
3725addRegexToken('mm', match1to2, match2);
3726addParseToken(['m', 'mm'], MINUTE);
3727
3728// MOMENTS
3729
3730var getSetMinute = makeGetSet('Minutes', false);
3731
3732// FORMATTING
3733
3734addFormatToken('s', ['ss', 2], 0, 'second');
3735
3736// ALIASES
3737
3738addUnitAlias('second', 's');
3739
3740// PRIORITY
3741
3742addUnitPriority('second', 15);
3743
3744// PARSING
3745
3746addRegexToken('s',  match1to2);
3747addRegexToken('ss', match1to2, match2);
3748addParseToken(['s', 'ss'], SECOND);
3749
3750// MOMENTS
3751
3752var getSetSecond = makeGetSet('Seconds', false);
3753
3754// FORMATTING
3755
3756addFormatToken('S', 0, 0, function () {
3757    return ~~(this.millisecond() / 100);
3758});
3759
3760addFormatToken(0, ['SS', 2], 0, function () {
3761    return ~~(this.millisecond() / 10);
3762});
3763
3764addFormatToken(0, ['SSS', 3], 0, 'millisecond');
3765addFormatToken(0, ['SSSS', 4], 0, function () {
3766    return this.millisecond() * 10;
3767});
3768addFormatToken(0, ['SSSSS', 5], 0, function () {
3769    return this.millisecond() * 100;
3770});
3771addFormatToken(0, ['SSSSSS', 6], 0, function () {
3772    return this.millisecond() * 1000;
3773});
3774addFormatToken(0, ['SSSSSSS', 7], 0, function () {
3775    return this.millisecond() * 10000;
3776});
3777addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
3778    return this.millisecond() * 100000;
3779});
3780addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
3781    return this.millisecond() * 1000000;
3782});
3783
3784
3785// ALIASES
3786
3787addUnitAlias('millisecond', 'ms');
3788
3789// PRIORITY
3790
3791addUnitPriority('millisecond', 16);
3792
3793// PARSING
3794
3795addRegexToken('S',    match1to3, match1);
3796addRegexToken('SS',   match1to3, match2);
3797addRegexToken('SSS',  match1to3, match3);
3798
3799var token;
3800for (token = 'SSSS'; token.length <= 9; token += 'S') {
3801    addRegexToken(token, matchUnsigned);
3802}
3803
3804function parseMs(input, array) {
3805    array[MILLISECOND] = toInt(('0.' + input) * 1000);
3806}
3807
3808for (token = 'S'; token.length <= 9; token += 'S') {
3809    addParseToken(token, parseMs);
3810}
3811// MOMENTS
3812
3813var getSetMillisecond = makeGetSet('Milliseconds', false);
3814
3815// FORMATTING
3816
3817addFormatToken('z',  0, 0, 'zoneAbbr');
3818addFormatToken('zz', 0, 0, 'zoneName');
3819
3820// MOMENTS
3821
3822function getZoneAbbr () {
3823    return this._isUTC ? 'UTC' : '';
3824}
3825
3826function getZoneName () {
3827    return this._isUTC ? 'Coordinated Universal Time' : '';
3828}
3829
3830var proto = Moment.prototype;
3831
3832proto.add               = add;
3833proto.calendar          = calendar$1;
3834proto.clone             = clone;
3835proto.diff              = diff;
3836proto.endOf             = endOf;
3837proto.format            = format;
3838proto.from              = from;
3839proto.fromNow           = fromNow;
3840proto.to                = to;
3841proto.toNow             = toNow;
3842proto.get               = stringGet;
3843proto.invalidAt         = invalidAt;
3844proto.isAfter           = isAfter;
3845proto.isBefore          = isBefore;
3846proto.isBetween         = isBetween;
3847proto.isSame            = isSame;
3848proto.isSameOrAfter     = isSameOrAfter;
3849proto.isSameOrBefore    = isSameOrBefore;
3850proto.isValid           = isValid$2;
3851proto.lang              = lang;
3852proto.locale            = locale;
3853proto.localeData        = localeData;
3854proto.max               = prototypeMax;
3855proto.min               = prototypeMin;
3856proto.parsingFlags      = parsingFlags;
3857proto.set               = stringSet;
3858proto.startOf           = startOf;
3859proto.subtract          = subtract;
3860proto.toArray           = toArray;
3861proto.toObject          = toObject;
3862proto.toDate            = toDate;
3863proto.toISOString       = toISOString;
3864proto.inspect           = inspect;
3865proto.toJSON            = toJSON;
3866proto.toString          = toString;
3867proto.unix              = unix;
3868proto.valueOf           = valueOf;
3869proto.creationData      = creationData;
3870
3871// Year
3872proto.year       = getSetYear;
3873proto.isLeapYear = getIsLeapYear;
3874
3875// Week Year
3876proto.weekYear    = getSetWeekYear;
3877proto.isoWeekYear = getSetISOWeekYear;
3878
3879// Quarter
3880proto.quarter = proto.quarters = getSetQuarter;
3881
3882// Month
3883proto.month       = getSetMonth;
3884proto.daysInMonth = getDaysInMonth;
3885
3886// Week
3887proto.week           = proto.weeks        = getSetWeek;
3888proto.isoWeek        = proto.isoWeeks     = getSetISOWeek;
3889proto.weeksInYear    = getWeeksInYear;
3890proto.isoWeeksInYear = getISOWeeksInYear;
3891
3892// Day
3893proto.date       = getSetDayOfMonth;
3894proto.day        = proto.days             = getSetDayOfWeek;
3895proto.weekday    = getSetLocaleDayOfWeek;
3896proto.isoWeekday = getSetISODayOfWeek;
3897proto.dayOfYear  = getSetDayOfYear;
3898
3899// Hour
3900proto.hour = proto.hours = getSetHour;
3901
3902// Minute
3903proto.minute = proto.minutes = getSetMinute;
3904
3905// Second
3906proto.second = proto.seconds = getSetSecond;
3907
3908// Millisecond
3909proto.millisecond = proto.milliseconds = getSetMillisecond;
3910
3911// Offset
3912proto.utcOffset            = getSetOffset;
3913proto.utc                  = setOffsetToUTC;
3914proto.local                = setOffsetToLocal;
3915proto.parseZone            = setOffsetToParsedOffset;
3916proto.hasAlignedHourOffset = hasAlignedHourOffset;
3917proto.isDST                = isDaylightSavingTime;
3918proto.isLocal              = isLocal;
3919proto.isUtcOffset          = isUtcOffset;
3920proto.isUtc                = isUtc;
3921proto.isUTC                = isUtc;
3922
3923// Timezone
3924proto.zoneAbbr = getZoneAbbr;
3925proto.zoneName = getZoneName;
3926
3927// Deprecations
3928proto.dates  = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
3929proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
3930proto.years  = deprecate('years accessor is deprecated. Use year instead', getSetYear);
3931proto.zone   = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
3932proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
3933
3934function createUnix (input) {
3935    return createLocal(input * 1000);
3936}
3937
3938function createInZone () {
3939    return createLocal.apply(null, arguments).parseZone();
3940}
3941
3942function preParsePostFormat (string) {
3943    return string;
3944}
3945
3946var proto$1 = Locale.prototype;
3947
3948proto$1.calendar        = calendar;
3949proto$1.longDateFormat  = longDateFormat;
3950proto$1.invalidDate     = invalidDate;
3951proto$1.ordinal         = ordinal;
3952proto$1.preparse        = preParsePostFormat;
3953proto$1.postformat      = preParsePostFormat;
3954proto$1.relativeTime    = relativeTime;
3955proto$1.pastFuture      = pastFuture;
3956proto$1.set             = set;
3957
3958// Month
3959proto$1.months            =        localeMonths;
3960proto$1.monthsShort       =        localeMonthsShort;
3961proto$1.monthsParse       =        localeMonthsParse;
3962proto$1.monthsRegex       = monthsRegex;
3963proto$1.monthsShortRegex  = monthsShortRegex;
3964
3965// Week
3966proto$1.week = localeWeek;
3967proto$1.firstDayOfYear = localeFirstDayOfYear;
3968proto$1.firstDayOfWeek = localeFirstDayOfWeek;
3969
3970// Day of Week
3971proto$1.weekdays       =        localeWeekdays;
3972proto$1.weekdaysMin    =        localeWeekdaysMin;
3973proto$1.weekdaysShort  =        localeWeekdaysShort;
3974proto$1.weekdaysParse  =        localeWeekdaysParse;
3975
3976proto$1.weekdaysRegex       =        weekdaysRegex;
3977proto$1.weekdaysShortRegex  =        weekdaysShortRegex;
3978proto$1.weekdaysMinRegex    =        weekdaysMinRegex;
3979
3980// Hours
3981proto$1.isPM = localeIsPM;
3982proto$1.meridiem = localeMeridiem;
3983
3984function get$1 (format, index, field, setter) {
3985    var locale = getLocale();
3986    var utc = createUTC().set(setter, index);
vendor: 7,930 bytes, lines 3987-4279
3987    return locale[field](utc, format);
3988}
3989
3990function listMonthsImpl (format, index, field) {
3991    if (isNumber(format)) {
3992        index = format;
3993        format = undefined;
3994    }
3995
3996    format = format || '';
3997
3998    if (index != null) {
3999        return get$1(format, index, field, 'month');
4000    }
4001
4002    var i;
4003    var out = [];
4004    for (i = 0; i < 12; i++) {
4005        out[i] = get$1(format, i, field, 'month');
4006    }
4007    return out;
4008}
4009
4010// ()
4011// (5)
4012// (fmt, 5)
4013// (fmt)
4014// (true)
4015// (true, 5)
4016// (true, fmt, 5)
4017// (true, fmt)
4018function listWeekdaysImpl (localeSorted, format, index, field) {
4019    if (typeof localeSorted === 'boolean') {
4020        if (isNumber(format)) {
4021            index = format;
4022            format = undefined;
4023        }
4024
4025        format = format || '';
4026    } else {
4027        format = localeSorted;
4028        index = format;
4029        localeSorted = false;
4030
4031        if (isNumber(format)) {
4032            index = format;
4033            format = undefined;
4034        }
4035
4036        format = format || '';
4037    }
4038
4039    var locale = getLocale(),
4040        shift = localeSorted ? locale._week.dow : 0;
4041
4042    if (index != null) {
4043        return get$1(format, (index + shift) % 7, field, 'day');
4044    }
4045
4046    var i;
4047    var out = [];
4048    for (i = 0; i < 7; i++) {
4049        out[i] = get$1(format, (i + shift) % 7, field, 'day');
4050    }
4051    return out;
4052}
4053
4054function listMonths (format, index) {
4055    return listMonthsImpl(format, index, 'months');
4056}
4057
4058function listMonthsShort (format, index) {
4059    return listMonthsImpl(format, index, 'monthsShort');
4060}
4061
4062function listWeekdays (localeSorted, format, index) {
4063    return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
4064}
4065
4066function listWeekdaysShort (localeSorted, format, index) {
4067    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
4068}
4069
4070function listWeekdaysMin (localeSorted, format, index) {
4071    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
4072}
4073
4074getSetGlobalLocale('en', {
4075    dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
4076    ordinal : function (number) {
4077        var b = number % 10,
4078            output = (toInt(number % 100 / 10) === 1) ? 'th' :
4079            (b === 1) ? 'st' :
4080            (b === 2) ? 'nd' :
4081            (b === 3) ? 'rd' : 'th';
4082        return number + output;
4083    }
4084});
4085
4086// Side effect imports
4087hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
4088hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
4089
4090var mathAbs = Math.abs;
4091
4092function abs () {
4093    var data           = this._data;
4094
4095    this._milliseconds = mathAbs(this._milliseconds);
4096    this._days         = mathAbs(this._days);
4097    this._months       = mathAbs(this._months);
4098
4099    data.milliseconds  = mathAbs(data.milliseconds);
4100    data.seconds       = mathAbs(data.seconds);
4101    data.minutes       = mathAbs(data.minutes);
4102    data.hours         = mathAbs(data.hours);
4103    data.months        = mathAbs(data.months);
4104    data.years         = mathAbs(data.years);
4105
4106    return this;
4107}
4108
4109function addSubtract$1 (duration, input, value, direction) {
4110    var other = createDuration(input, value);
4111
4112    duration._milliseconds += direction * other._milliseconds;
4113    duration._days         += direction * other._days;
4114    duration._months       += direction * other._months;
4115
4116    return duration._bubble();
4117}
4118
4119// supports only 2.0-style add(1, 's') or add(duration)
4120function add$1 (input, value) {
4121    return addSubtract$1(this, input, value, 1);
4122}
4123
4124// supports only 2.0-style subtract(1, 's') or subtract(duration)
4125function subtract$1 (input, value) {
4126    return addSubtract$1(this, input, value, -1);
4127}
4128
4129function absCeil (number) {
4130    if (number < 0) {
4131        return Math.floor(number);
4132    } else {
4133        return Math.ceil(number);
4134    }
4135}
4136
4137function bubble () {
4138    var milliseconds = this._milliseconds;
4139    var days         = this._days;
4140    var months       = this._months;
4141    var data         = this._data;
4142    var seconds, minutes, hours, years, monthsFromDays;
4143
4144    // if we have a mix of positive and negative values, bubble down first
4145    // check: http://github.com/moment/moment/issues/2166
4146    if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
4147            (milliseconds <= 0 && days <= 0 && months <= 0))) {
4148        milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
4149        days = 0;
4150        months = 0;
4151    }
4152
4153    // The following code bubbles up values, see the tests for
4154    // examples of what that means.
4155    data.milliseconds = milliseconds % 1000;
4156
4157    seconds           = absFloor(milliseconds / 1000);
4158    data.seconds      = seconds % 60;
4159
4160    minutes           = absFloor(seconds / 60);
4161    data.minutes      = minutes % 60;
4162
4163    hours             = absFloor(minutes / 60);
4164    data.hours        = hours % 24;
4165
4166    days += absFloor(hours / 24);
4167
4168    // convert days to months
4169    monthsFromDays = absFloor(daysToMonths(days));
4170    months += monthsFromDays;
4171    days -= absCeil(monthsToDays(monthsFromDays));
4172
4173    // 12 months -> 1 year
4174    years = absFloor(months / 12);
4175    months %= 12;
4176
4177    data.days   = days;
4178    data.months = months;
4179    data.years  = years;
4180
4181    return this;
4182}
4183
4184function daysToMonths (days) {
4185    // 400 years have 146097 days (taking into account leap year rules)
4186    // 400 years have 12 months === 4800
4187    return days * 4800 / 146097;
4188}
4189
4190function monthsToDays (months) {
4191    // the reverse of daysToMonths
4192    return months * 146097 / 4800;
4193}
4194
4195function as (units) {
4196    if (!this.isValid()) {
4197        return NaN;
4198    }
4199    var days;
4200    var months;
4201    var milliseconds = this._milliseconds;
4202
4203    units = normalizeUnits(units);
4204
4205    if (units === 'month' || units === 'year') {
4206        days   = this._days   + milliseconds / 864e5;
4207        months = this._months + daysToMonths(days);
4208        return units === 'month' ? months : months / 12;
4209    } else {
4210        // handle milliseconds separately because of floating point math errors (issue #1867)
4211        days = this._days + Math.round(monthsToDays(this._months));
4212        switch (units) {
4213            case 'week'   : return days / 7     + milliseconds / 6048e5;
4214            case 'day'    : return days         + milliseconds / 864e5;
4215            case 'hour'   : return days * 24    + milliseconds / 36e5;
4216            case 'minute' : return days * 1440  + milliseconds / 6e4;
4217            case 'second' : return days * 86400 + milliseconds / 1000;
4218            // Math.floor prevents floating point math errors here
4219            case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
4220            default: throw new Error('Unknown unit ' + units);
4221        }
4222    }
4223}
4224
4225// TODO: Use this.as('ms')?
4226function valueOf$1 () {
4227    if (!this.isValid()) {
4228        return NaN;
4229    }
4230    return (
4231        this._milliseconds +
4232        this._days * 864e5 +
4233        (this._months % 12) * 2592e6 +
4234        toInt(this._months / 12) * 31536e6
4235    );
4236}
4237
4238function makeAs (alias) {
4239    return function () {
4240        return this.as(alias);
4241    };
4242}
4243
4244var asMilliseconds = makeAs('ms');
4245var asSeconds      = makeAs('s');
4246var asMinutes      = makeAs('m');
4247var asHours        = makeAs('h');
4248var asDays         = makeAs('d');
4249var asWeeks        = makeAs('w');
4250var asMonths       = makeAs('M');
4251var asYears        = makeAs('y');
4252
4253function clone$1 () {
4254    return createDuration(this);
4255}
4256
4257function get$2 (units) {
4258    units = normalizeUnits(units);
4259    return this.isValid() ? this[units + 's']() : NaN;
4260}
4261
4262function makeGetter(name) {
4263    return function () {
4264        return this.isValid() ? this._data[name] : NaN;
4265    };
4266}
4267
4268var milliseconds = makeGetter('milliseconds');
4269var seconds      = makeGetter('seconds');
4270var minutes      = makeGetter('minutes');
4271var hours        = makeGetter('hours');
4272var days         = makeGetter('days');
4273var months       = makeGetter('months');
4274var years        = makeGetter('years');
4275
4276function weeks () {
4277    return absFloor(this.days() / 7);
4278}
4279
vendor: 6,284 bytes, lines 4280-4476
4280var round = Math.round;
4281var thresholds = {
4282    ss: 44,         // a few seconds to seconds
4283    s : 45,         // seconds to minute
4284    m : 45,         // minutes to hour
4285    h : 22,         // hours to day
4286    d : 26,         // days to month
4287    M : 11          // months to year
4288};
4289
4290// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
4291function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
4292    return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
4293}
4294
4295function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
4296    var duration = createDuration(posNegDuration).abs();
4297    var seconds  = round(duration.as('s'));
4298    var minutes  = round(duration.as('m'));
4299    var hours    = round(duration.as('h'));
4300    var days     = round(duration.as('d'));
4301    var months   = round(duration.as('M'));
4302    var years    = round(duration.as('y'));
4303
4304    var a = seconds <= thresholds.ss && ['s', seconds]  ||
4305            seconds < thresholds.s   && ['ss', seconds] ||
4306            minutes <= 1             && ['m']           ||
4307            minutes < thresholds.m   && ['mm', minutes] ||
4308            hours   <= 1             && ['h']           ||
4309            hours   < thresholds.h   && ['hh', hours]   ||
4310            days    <= 1             && ['d']           ||
4311            days    < thresholds.d   && ['dd', days]    ||
4312            months  <= 1             && ['M']           ||
4313            months  < thresholds.M   && ['MM', months]  ||
4314            years   <= 1             && ['y']           || ['yy', years];
4315
4316    a[2] = withoutSuffix;
4317    a[3] = +posNegDuration > 0;
4318    a[4] = locale;
4319    return substituteTimeAgo.apply(null, a);
4320}
4321
4322// This function allows you to set the rounding function for relative time strings
4323function getSetRelativeTimeRounding (roundingFunction) {
4324    if (roundingFunction === undefined) {
4325        return round;
4326    }
4327    if (typeof(roundingFunction) === 'function') {
4328        round = roundingFunction;
4329        return true;
4330    }
4331    return false;
4332}
4333
4334// This function allows you to set a threshold for relative time strings
4335function getSetRelativeTimeThreshold (threshold, limit) {
4336    if (thresholds[threshold] === undefined) {
4337        return false;
4338    }
4339    if (limit === undefined) {
4340        return thresholds[threshold];
4341    }
4342    thresholds[threshold] = limit;
4343    if (threshold === 's') {
4344        thresholds.ss = limit - 1;
4345    }
4346    return true;
4347}
4348
4349function humanize (withSuffix) {
4350    if (!this.isValid()) {
4351        return this.localeData().invalidDate();
4352    }
4353
4354    var locale = this.localeData();
4355    var output = relativeTime$1(this, !withSuffix, locale);
4356
4357    if (withSuffix) {
4358        output = locale.pastFuture(+this, output);
4359    }
4360
4361    return locale.postformat(output);
4362}
4363
4364var abs$1 = Math.abs;
4365
4366function sign(x) {
4367    return ((x > 0) - (x < 0)) || +x;
4368}
4369
4370function toISOString$1() {
4371    // for ISO strings we do not use the normal bubbling rules:
4372    //  * milliseconds bubble up until they become hours
4373    //  * days do not bubble at all
4374    //  * months bubble up until they become years
4375    // This is because there is no context-free conversion between hours and days
4376    // (think of clock changes)
4377    // and also not between days and months (28-31 days per month)
4378    if (!this.isValid()) {
4379        return this.localeData().invalidDate();
4380    }
4381
4382    var seconds = abs$1(this._milliseconds) / 1000;
4383    var days         = abs$1(this._days);
4384    var months       = abs$1(this._months);
4385    var minutes, hours, years;
4386
4387    // 3600 seconds -> 60 minutes -> 1 hour
4388    minutes           = absFloor(seconds / 60);
4389    hours             = absFloor(minutes / 60);
4390    seconds %= 60;
4391    minutes %= 60;
4392
4393    // 12 months -> 1 year
4394    years  = absFloor(months / 12);
4395    months %= 12;
4396
4397
4398    // inspired by http://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
4399    var Y = years;
4400    var M = months;
4401    var D = days;
4402    var h = hours;
4403    var m = minutes;
4404    var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
4405    var total = this.asSeconds();
4406
4407    if (!total) {
4408        // this is the same as C#'s (Noda) and python (isodate)...
4409        // but not other JS (goog.date)
4410        return 'P0D';
4411    }
4412
4413    var totalSign = total < 0 ? '-' : '';
4414    var ymSign = sign(this._months) !== sign(total) ? '-' : '';
4415    var daysSign = sign(this._days) !== sign(total) ? '-' : '';
4416    var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
4417
4418    return totalSign + 'P' +
4419        (Y ? ymSign + Y + 'Y' : '') +
4420        (M ? ymSign + M + 'M' : '') +
4421        (D ? daysSign + D + 'D' : '') +
4422        ((h || m || s) ? 'T' : '') +
4423        (h ? hmsSign + h + 'H' : '') +
4424        (m ? hmsSign + m + 'M' : '') +
4425        (s ? hmsSign + s + 'S' : '');
4426}
4427
4428var proto$2 = Duration.prototype;
4429
4430proto$2.isValid        = isValid$1;
4431proto$2.abs            = abs;
4432proto$2.add            = add$1;
4433proto$2.subtract       = subtract$1;
4434proto$2.as             = as;
4435proto$2.asMilliseconds = asMilliseconds;
4436proto$2.asSeconds      = asSeconds;
4437proto$2.asMinutes      = asMinutes;
4438proto$2.asHours        = asHours;
4439proto$2.asDays         = asDays;
4440proto$2.asWeeks        = asWeeks;
4441proto$2.asMonths       = asMonths;
4442proto$2.asYears        = asYears;
4443proto$2.valueOf        = valueOf$1;
4444proto$2._bubble        = bubble;
4445proto$2.clone          = clone$1;
4446proto$2.get            = get$2;
4447proto$2.milliseconds   = milliseconds;
4448proto$2.seconds        = seconds;
4449proto$2.minutes        = minutes;
4450proto$2.hours          = hours;
4451proto$2.days           = days;
4452proto$2.weeks          = weeks;
4453proto$2.months         = months;
4454proto$2.years          = years;
4455proto$2.humanize       = humanize;
4456proto$2.toISOString    = toISOString$1;
4457proto$2.toString       = toISOString$1;
4458proto$2.toJSON         = toISOString$1;
4459proto$2.locale         = locale;
4460proto$2.localeData     = localeData;
4461
4462// Deprecations
4463proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
4464proto$2.lang = lang;
4465
4466// Side effect imports
4467
4468// FORMATTING
4469
4470addFormatToken('X', 0, 0, 'unix');
4471addFormatToken('x', 0, 0, 'valueOf');
4472
4473// PARSING
4474
4475addRegexToken('x', matchSigned);
4476addRegexToken('X', matchTimestamp);
4477addParseToken('X', function (input, array, config) {
4478    config._d = new Date(parseFloat(input, 10) * 1000);
4479});
4480addParseToken('x', function (input, array, config) {
4481    config._d = new Date(toInt(input));
4482});
4483
4484// Side effect imports
4485
4486
4487hooks.version = '2.19.3';
4488
4489setHookCallback(createLocal);
4490
4491hooks.fn                    = proto;
4492hooks.min                   = min;
4493hooks.max                   = max;
4494hooks.now                   = now;
4495hooks.utc                   = createUTC;
4496hooks.unix                  = createUnix;
4497hooks.months                = listMonths;
4498hooks.isDate                = isDate;
4499hooks.locale                = getSetGlobalLocale;
4500hooks.invalid               = createInvalid;
4501hooks.duration              = createDuration;
4502hooks.isMoment              = isMoment;
4503hooks.weekdays              = listWeekdays;
4504hooks.parseZone             = createInZone;
4505hooks.localeData            = getLocale;
4506hooks.isDuration            = isDuration;
4507hooks.monthsShort           = listMonthsShort;
4508hooks.weekdaysMin           = listWeekdaysMin;
4509hooks.defineLocale          = defineLocale;
4510hooks.updateLocale          = updateLocale;
4511hooks.locales               = listLocales;
4512hooks.weekdaysShort         = listWeekdaysShort;
4513hooks.normalizeUnits        = normalizeUnits;
4514hooks.relativeTimeRounding  = getSetRelativeTimeRounding;
4515hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
4516hooks.calendarFormat        = getCalendarFormat;
4517hooks.prototype             = proto;
4518
4519return hooks;
4520
4521})));
4522
vendor: 37,045 bytes, lines 4523-4529
4523/*!
4524 * Bootstrap v3.3.7 (http://getbootstrap.com)
4525 * Copyright 2011-2016 Twitter, Inc.
4526 * Licensed under the MIT license
4527 */
4528if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){
4529this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
vendor: 15,518 bytes, lines 4529-4539
4529
4530/*!
4531 * Datepicker v0.6.4
4532 * http://github.com/fengyuanchen/datepicker
4533 *
4534 * Copyright (c) 2014-2017 Chen Fengyuan
4535 * Released under the MIT license
4536 *
4537 * Date: 2017-11-24T14:38:23.820Z
4538 */
4539!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(e.jQuery)}(this,function(e){"use strict";function t(e){return"string"==typeof e}function i(e){return"number"==typeof e&&!v(e)}function a(e){return void 0===e}function s(e){return"date"===function(e){return y.call(e).slice(8,-1).toLowerCase()}(e)}function n(e,t){for(var i=arguments.length,a=Array(i>2?i-2:0),s=2;s<i;s++)a[s-2]=arguments[s];return function(){for(var i=arguments.length,s=Array(i),n=0;n<i;n++)s[n]=arguments[n];return e.apply(t,a.concat(s))}}function r(e){return'[data-view="'+e+'"]'}function h(e,t){return[31,function(e){return e%4==0&&e%100!=0||e%400==0}(e)?29:28,31,30,31,30,31,31,30,31,30,31][t]}function o(e,t,i){return Math.min(i,h(e,t))}e=e&&e.hasOwnProperty("default")?e.default:e;var l={autoShow:!1,autoHide:!1,autoPick:!1,inline:!1,container:null,trigger:null,language:"",format:"mm/dd/yyyy",date:null,startDate:null,endDate:null,startView:0,weekStart:0,yearFirst:!1,yearSuffix:"",days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],itemTag:"li",mutedClass:"muted",pickedClass:"picked",disabledClass:"disabled",highlightedClass:"highlighted",template:'<div class="datepicker-container"><div class="datepicker-panel" data-view="years picker"><ul><li data-view="years prev">&lsaquo;</li><li data-view="years current"></li><li data-view="years next">&rsaquo;</li></ul><ul data-view="years"></ul></div><div class="datepicker-panel" data-view="months picker"><ul><li data-view="year prev">&lsaquo;</li><li data-view="year current"></li><li data-view="year next">&rsaquo;</li></ul><ul data-view="months"></ul></div><div class="datepicker-panel" data-view="days picker"><ul><li data-view="month prev">&lsaquo;</li><li data-view="month current"></li><li data-view="month next">&rsaquo;</li></ul><ul data-view="week"></ul><ul data-view="days"></ul></div></div>',offset:10,zIndex:1e3,filter:null,show:null,hide:null,pick:null},d="undefined"!=typeof window?window:{},u="datepicker",c="click.datepicker",p="datepicker-hide",f={},g={DAYS:0,MONTHS:1,YEARS:2},y=Object.prototype.toString,v=Number.isNaN||d.isNaN,m=/(y|m|d)+/g,w=/\d+/g,k={show:function(){this.built||this.build(),this.shown||this.trigger("show.datepicker").isDefaultPrevented()||(this.shown=!0,this.$picker.removeClass(p).on(c,e.proxy(this.click,this)),this.showView(this.options.startView),this.inline||(e(window).on("resize.datepicker",this.onResize=n(this.place,this)),e(document).on(c,this.onGlobalClick=n(this.globalClick,this)),e(document).on("keyup.datepicker",this.onGlobalKeyup=n(this.globalKeyup,this)),this.place()))},hide:function(){this.shown&&(this.trigger("hide.datepicker").isDefaultPrevented()||(this.shown=!1,this.$picker.addClass(p).off(c,this.click),this.inline||(e(window).off("resize.datepicker",this.onResize),e(document).off(c,this.onGlobalClick),e(document).off("keyup.datepicker",this.onGlobalKeyup))))},toggle:function(){this.shown?this.hide():this.show()},update:function(){var e=this.getValue();e!==this.oldValue&&(this.setDate(e,!0),this.oldValue=e)},pick:function(e){var t=this.$element,i=this.date;this.trigger("pick.datepicker",{view:e||"",date:i}).isDefaultPrevented()||(i=this.formatDate(this.date),this.setValue(i),this.isInput&&(t.trigger("input"),t.trigger("change")))},reset:function(){this.setDate(this.initialDate,!0),this.setValue(this.initialValue),this.shown&&this.showView(this.options.startView)},getMonthName:function(t,s){var n=this.options,r=n.monthsShort,h=n.months;return e.isNumeric(t)?t=Number(t):a(s)&&(s=t),!0===s&&(h=r),h[i(t)?t:this.date.getMonth()]},getDayName:function(t,s,n){var r=this.options,h=r.days;return e.isNumeric(t)?t=Number(t):(a(n)&&(n=s),a(s)&&(s=t)),n?h=r.daysMin:s&&(h=r.daysShort),h[i(t)?t:this.date.getDay()]},getDate:function(e){var t=this.date;return e?this.formatDate(t):new Date(t)},setDate:function(i,a){var n=this.options.filter;if(s(i)||t(i)){if(i=this.parseDate(i),e.isFunction(n)&&!1===n.call(this.$element,i))return;this.date=i,this.viewDate=new Date(i),a||this.pick(),this.built&&this.render()}},setStartDate:function(e){(s(e)||t(e))&&(this.startDate=this.parseDate(e),this.built&&this.render())},setEndDate:function(e){(s(e)||t(e))&&(this.endDate=this.parseDate(e),this.built&&this.render())},parseDate:function(i){var a=this.format,n=[];if(s(i))return new Date(i.getFullYear(),i.getMonth(),i.getDate());t(i)&&(n=i.match(w)||[]),i=new Date;var r=a.parts.length,h=i.getFullYear(),o=i.getDate(),l=i.getMonth();return n.length===r&&e.each(n,function(e,t){var i=parseInt(t,10)||1;switch(a.parts[e]){case"dd":case"d":o=i;break;case"mm":case"m":l=i-1;break;case"yy":h=2e3+i;break;case"yyyy":h=i}}),new Date(h,l,o)},formatDate:function(t){var i=this.format,a="";if(s(t)){var n=t.getFullYear(),r={d:t.getDate(),m:t.getMonth()+1,yy:n.toString().substring(2),yyyy:n};r.dd=(r.d<10?"0":"")+r.d,r.mm=(r.m<10?"0":"")+r.m,a=i.source,e.each(i.parts,function(e,t){a=a.replace(t,r[t])})}return a},destroy:function(){this.unbind(),this.unbuild(),this.$element.removeData(u)}},D={click:function(t){var i=e(t.target),a=this.options,s=this.viewDate,n=this.format;if(t.stopPropagation(),t.preventDefault(),!i.hasClass("disabled")){var r=i.data("view"),h=s.getFullYear(),l=s.getMonth(),d=s.getDate();switch(r){case"years prev":case"years next":h="years prev"===r?h-10:h+10,this.viewDate=new Date(h,l,o(h,l,d)),this.renderYears();break;case"year prev":case"year next":h="year prev"===r?h-1:h+1,this.viewDate=new Date(h,l,o(h,l,d)),this.renderMonths();break;case"year current":n.hasYear&&this.showView(g.YEARS);break;case"year picked":n.hasMonth?this.showView(g.MONTHS):(i.addClass(a.pickedClass).siblings().removeClass(a.pickedClass),this.hideView()),this.pick("year");break;case"year":h=parseInt(i.text(),10),this.date=new Date(h,l,o(h,l,d)),n.hasMonth?(this.viewDate=new Date(this.date),this.showView(g.MONTHS)):(i.addClass(a.pickedClass).siblings().removeClass(a.pickedClass),this.hideView()),this.pick("year");break;case"month prev":case"month next":(l="month prev"===r?l-1:l+1)<0?(h-=1,l+=12):l>11&&(h+=1,l-=12),this.viewDate=new Date(h,l,o(h,l,d)),this.renderDays();break;case"month current":n.hasMonth&&this.showView(g.MONTHS);break;case"month picked":n.hasDay?this.showView(g.DAYS):(i.addClass(a.pickedClass).siblings().removeClass(a.pickedClass),this.hideView()),this.pick("month");break;case"month":l=e.inArray(i.text(),a.monthsShort),this.date=new Date(h,l,o(h,l,d)),n.hasDay?(this.viewDate=new Date(h,l,o(h,l,d)),this.showView(g.DAYS)):(i.addClass(a.pickedClass).siblings().removeClass(a.pickedClass),this.hideView()),this.pick("month");break;case"day prev":case"day next":case"day":"day prev"===r?l-=1:"day next"===r&&(l+=1),d=parseInt(i.text(),10),this.date=new Date(h,l,d),this.viewDate=new Date(h,l,d),this.renderDays(),"day"===r&&this.hideView(),this.pick("day");break;case"day picked":this.hideView(),this.pick("day")}}},globalClick:function(e){for(var t=e.target,i=this.element,a=this.$trigger[0],s=!0;t!==document;){if(t===a||t===i){s=!1;break}t=t.parentNode}s&&this.hide()},keyup:function(){this.update()},globalKeyup:function(e){var t=e.target,i=e.key,a=e.keyCode;this.isInput&&t!==this.element&&this.shown&&("Tab"===i||9===a)&&this.hide()}},b={render:function(){this.renderYears(),this.renderMonths(),this.renderDays()},renderWeek:function(){var t=this,i=[],a=this.options,s=a.weekStart,n=a.daysMin;s=parseInt(s,10)%7,n=n.slice(s).concat(n.slice(0,s)),e.each(n,function(e,a){i.push(t.createItem({text:a}))}),this.$week.html(i.join(""))},renderYears:function(){var e=this.options,t=this.startDate,i=this.endDate,a=e.disabledClass,s=e.filter,n=e.yearSuffix,r=this.viewDate.getFullYear(),h=(new Date).getFullYear(),o=this.date.getFullYear(),l=[],d=!1,u=!1,c=void 0;for(c=-5;c<=6;c+=1){var p=new Date(r+c,1,1),f=!1;t&&(f=p.getFullYear()<t.getFullYear(),-5===c&&(d=f)),!f&&i&&(f=p.getFullYear()>i.getFullYear(),6===c&&(u=f)),!f&&s&&(f=!1===s.call(this.$element,p));var g=r+c===o,y=g?"year picked":"year";l.push(this.createItem({picked:g,disabled:f,muted:-5===c||6===c,text:r+c,view:f?"year disabled":y,highlighted:p.getFullYear()===h}))}this.$yearsPrev.toggleClass(a,d),this.$yearsNext.toggleClass(a,u),this.$yearsCurrent.toggleClass(a,!0).html(r+-5+n+" - "+(r+6)+n),this.$years.html(l.join(""))},renderMonths:function(){var t=this.options,i=this.startDate,a=this.endDate,s=this.viewDate,n=t.disabledClass||"",r=t.monthsShort,h=e.isFunction(t.filter)&&t.filter,o=s.getFullYear(),l=new Date,d=l.getFullYear(),u=l.getMonth(),c=this.date.getFullYear(),p=this.date.getMonth(),f=[],g=!1,y=!1,v=void 0;for(v=0;v<=11;v+=1){var m=new Date(o,v,1),w=!1;i&&(w=(g=m.getFullYear()===i.getFullYear())&&m.getMonth()<i.getMonth()),!w&&a&&(w=(y=m.getFullYear()===a.getFullYear())&&m.getMonth()>a.getMonth()),!w&&h&&(w=!1===h.call(this.$element,m));var k=o===c&&v===p,D=k?"month picked":"month";f.push(this.createItem({disabled:w,picked:k,highlighted:o===d&&m.getMonth()===u,index:v,text:r[v],view:w?"month disabled":D}))}this.$yearPrev.toggleClass(n,g),this.$yearNext.toggleClass(n,y),this.$yearCurrent.toggleClass(n,g&&y).html(o+t.yearSuffix||""),this.$months.html(f.join(""))},renderDays:function(){var e=this.$element,t=this.options,i=this.startDate,a=this.endDate,s=this.viewDate,n=this.date,r=t.disabledClass,o=t.filter,l=t.monthsShort,d=t.weekStart,u=t.yearSuffix,c=s.getFullYear(),p=s.getMonth(),f=new Date,g=f.getFullYear(),y=f.getMonth(),v=f.getDate(),m=n.getFullYear(),w=n.getMonth(),k=n.getDate(),D=void 0,b=void 0,C=void 0,$=[],x=c,M=p,S=!1;0===p?(x-=1,M=11):M-=1,D=h(x,M);var F=new Date(c,p,1);for((C=F.getDay()-parseInt(d,10)%7)<=0&&(C+=7),i&&(S=F.getTime()<=i.getTime()),b=D-(C-1);b<=D;b+=1){var Y=new Date(x,M,b),T=!1;i&&(T=Y.getTime()<i.getTime()),!T&&o&&(T=!1===o.call(e,Y)),$.push(this.createItem({disabled:T,highlighted:x===g&&M===y&&Y.getDate()===v,muted:!0,picked:x===m&&M===w&&b===k,text:b,view:"day prev"}))}var V=[],I=c,N=p,P=!1;11===p?(I+=1,N=0):N+=1,D=h(c,p),C=42-($.length+D);var A=new Date(c,p,D);for(a&&(P=A.getTime()>=a.getTime()),b=1;b<=C;b+=1){var j=new Date(I,N,b),O=I===m&&N===w&&b===k,H=!1;a&&(H=j.getTime()>a.getTime()),!H&&o&&(H=!1===o.call(e,j)),V.push(this.createItem({disabled:H,picked:O,highlighted:I===g&&N===y&&j.getDate()===v,muted:!0,text:b,view:"day next"}))}var q=[];for(b=1;b<=D;b+=1){var E=new Date(c,p,b),z=!1;i&&(z=E.getTime()<i.getTime()),!z&&a&&(z=E.getTime()>a.getTime()),!z&&o&&(z=!1===o.call(e,E));var W=c===m&&p===w&&b===k,J=W?"day picked":"day";q.push(this.createItem({disabled:z,picked:W,highlighted:c===g&&p===y&&E.getDate()===v,text:b,view:z?"day disabled":J}))}this.$monthPrev.toggleClass(r,S),this.$monthNext.toggleClass(r,P),this.$monthCurrent.toggleClass(r,S&&P).html(t.yearFirst?c+u+" "+l[p]:l[p]+" "+c+u),this.$days.html($.join("")+q.join("")+V.join(""))}},C=function(){function e(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,i,a){return i&&e(t.prototype,i),a&&e(t,a),t}}(),$="datepicker-top-left",x="datepicker-bottom-left",M=[$,"datepicker-top-right",x,"datepicker-bottom-right"].join(" "),S=function(){function t(i){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.$element=e(i),this.element=i,this.options=e.extend({},l,f[a.language],a),this.built=!1,this.shown=!1,this.isInput=!1,this.inline=!1,this.initialValue="",this.initialDate=null,this.startDate=null,this.endDate=null,this.init()}return C(t,[{key:"init",value:function(){var t=this.$element,i=this.options,a=i.startDate,s=i.endDate,n=i.date;this.$trigger=e(i.trigger),this.isInput=t.is("input")||t.is("textarea"),this.inline=i.inline&&(i.container||!this.isInput),this.format=function(t){var i=String(t).toLowerCase(),a=i.match(m);if(!a||0===a.length)throw new Error("Invalid date format.");return t={source:i,parts:a},e.each(a,function(e,i){switch(i){case"dd":case"d":t.hasDay=!0;break;case"mm":case"m":t.hasMonth=!0;break;case"yyyy":case"yy":t.hasYear=!0}}),t}(i.format);var r=this.getValue();this.initialValue=r,this.oldValue=r,n=this.parseDate(n||r),a&&(a=this.parseDate(a),n.getTime()<a.getTime()&&(n=new Date(a)),this.startDate=a),s&&(s=this.parseDate(s),a&&s.getTime()<a.getTime()&&(s=new Date(a)),n.getTime()>s.getTime()&&(n=new Date(s)),this.endDate=s),this.date=n,this.viewDate=new Date(n),this.initialDate=new Date(this.date),this.bind(),(i.autoShow||this.inline)&&this.show(),i.autoPick&&this.pick()}},{key:"build",value:function(){if(!this.built){this.built=!0;var t=this.$element,i=this.options,a=e(i.template);this.$picker=a,this.$week=a.find(r("week")),this.$yearsPicker=a.find(r("years picker")),this.$yearsPrev=a.find(r("years prev")),this.$yearsNext=a.find(r("years next")),this.$yearsCurrent=a.find(r("years current")),this.$years=a.find(r("years")),this.$monthsPicker=a.find(r("months picker")),this.$yearPrev=a.find(r("year prev")),this.$yearNext=a.find(r("year next")),this.$yearCurrent=a.find(r("year current")),this.$months=a.find(r("months")),this.$daysPicker=a.find(r("days picker")),this.$monthPrev=a.find(r("month prev")),this.$monthNext=a.find(r("month next")),this.$monthCurrent=a.find(r("month current")),this.$days=a.find(r("days")),this.inline?e(i.container||t).append(a.addClass("datepicker-inline")):(e(document.body).append(a.addClass("datepicker-dropdown")),a.addClass(p)),this.renderWeek()}}},{key:"unbuild",value:function(){this.built&&(this.built=!1,this.$picker.remove())}},{key:"bind",value:function(){var t=this.options,i=this.$element;e.isFunction(t.show)&&i.on("show.datepicker",t.show),e.isFunction(t.hide)&&i.on("hide.datepicker",t.hide),e.isFunction(t.pick)&&i.on("pick.datepicker",t.pick),this.isInput&&i.on("keyup.datepicker",e.proxy(this.keyup,this)),this.inline||(t.trigger?this.$trigger.on(c,e.proxy(this.toggle,this)):this.isInput?i.on("focus.datepicker",e.proxy(this.show,this)):i.on(c,e.proxy(this.show,this)))}},{key:"unbind",value:function(){var t=this.$element,i=this.options;e.isFunction(i.show)&&t.off("show.datepicker",i.show),e.isFunction(i.hide)&&t.off("hide.datepicker",i.hide),e.isFunction(i.pick)&&t.off("pick.datepicker",i.pick),this.isInput&&t.off("keyup.datepicker",this.keyup),this.inline||(i.trigger?this.$trigger.off(c,this.toggle):this.isInput?t.off("focus.datepicker",this.show):t.off(c,this.show))}},{key:"showView",value:function(e){var t=this.$yearsPicker,i=this.$monthsPicker,a=this.$daysPicker,s=this.format;if(s.hasYear||s.hasMonth||s.hasDay)switch(Number(e)){case g.YEARS:i.addClass(p),a.addClass(p),s.hasYear?(this.renderYears(),t.removeClass(p),this.place()):this.showView(g.DAYS);break;case g.MONTHS:t.addClass(p),a.addClass(p),s.hasMonth?(this.renderMonths(),i.removeClass(p),this.place()):this.showView(g.YEARS);break;default:t.addClass(p),i.addClass(p),s.hasDay?(this.renderDays(),a.removeClass(p),this.place()):this.showView(g.MONTHS)}}}
4539,{key:"hideView",value:function(){!this.inline&&this.options.autoHide&&this.hide()}},{key:"place",value:function(){if(!this.inline){var t=this.$element,i=this.options,a=this.$picker,s=e(document).outerWidth(),n=e(document).outerHeight(),r=t.outerWidth(),h=t.outerHeight(),o=a.width(),l=a.height(),d=t.offset(),u=d.left,c=d.top,p=parseFloat(i.offset),f=$;v(p)&&(p=10),c>l&&c+h+l>n?(c-=l+p,f=x):c+=h+p,u+o>s&&(u+=r-o,f=f.replace("left","right")),a.removeClass(M).addClass(f).css({top:c,left:u,zIndex:parseInt(i.zIndex,10)})}}},{key:"trigger",value:function(t,i){var a=e.Event(t,i);return this.$element.trigger(a),a}},{key:"createItem",value:function(t){var i=this.options,a=i.itemTag,s={text:"",view:"",muted:!1,picked:!1,disabled:!1,highlighted:!1},n=[];return e.extend(s,t),s.muted&&n.push(i.mutedClass),s.highlighted&&n.push(i.highlightedClass),s.picked&&n.push(i.pickedClass),s.disabled&&n.push(i.disabledClass),"<"+a+' class="'+n.join(" ")+'" data-view="'+s.view+'">'+s.text+"</"+a+">"}},{key:"getValue",value:function(){var e=this.$element;return this.isInput?e.val():e.text()}},{key:"setValue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.$element;this.isInput?t.val(e):t.text(e)}}],[{key:"setDefaults",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.extend(l,f[t.language],t)}}]),t}();if(e.extend&&e.extend(S.prototype,b,D,k),e.fn){var F=e.fn.datepicker;e.fn.datepicker=function(i){for(var s=arguments.length,n=Array(s>1?s-1:0),r=1;r<s;r++)n[r-1]=arguments[r];var h=void 0;return this.each(function(a,s){var r=e(s),o=r.data(u);if(!o){if(/destroy/.test(i))return;var l=e.extend({},r.data(),e.isPlainObject(i)&&i);o=new S(s,l),r.data(u,o)}if(t(i)){var d=o[i];e.isFunction(d)&&(h=d.apply(o,n))}}),a(h)?this:h},e.fn.datepicker.Constructor=S,e.fn.datepicker.languages=f,e.fn.datepicker.setDefaults=S.setDefaults,e.fn.datepicker.noConflict=function(){return e.fn.datepicker=F,this}}});
4540/*!
4541 * Isotope PACKAGED v3.0.4
4542 *
4543 * Licensed GPLv3 for open source use
4544 * or Isotope Commercial License for commercial use
4545 *
4546 * http://isotope.metafizzy.co
4547 * Copyright 2017 Metafizzy
4548 */
4549
4550!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=0,n=i[o];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];n;){var r=s&&s[n];r&&(this.off(t,n),delete s[n]),n.apply(this,e),o+=r?0:1,n=i[o]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function n(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);s.isBoxSizeOuter=r=200==t(n.width),i.removeChild(e)}}function s(e){if(n(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=o(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,I=a.borderTopWidth+a.borderBottomWidth,z=d&&r,x=t(s.width);x!==!1&&(a.width=x+(z?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(z?0:y+I)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+I),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i],n=o+"MatchesSelector";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["de
4550sandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e},i.makeArray=function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"object"==typeof t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){var o=t.prototype[e],n=e+"Timeout";t.prototype[e]=function(){var t=this[n];t&&clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i||100)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var s=i.toDashed(n),r="data-"+s,a=document.querySelectorAll("["+r+"]"),u=document.querySelectorAll(".js-"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+"-options",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(o&&o.error("Error parsing "+r+" on "+t.className+": "+a))}var u=new e(t,i);l&&l.data(t,n,u)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",u={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],h={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=this.layout.size,r=o.indexOf("%")!=-1?parseFloat(o)/100*s.width:parseInt(o,10),a=n.indexOf("%")!=-1?parseFloat(n)/100*s.height:parseInt(n,10);r=isNaN(r)?0:r,a=isNaN(a)?0:a,r-=e?s.paddingLeft:s.paddingRight,a-=i?s.paddingTop:s.paddingBottom,this.position.x=r,this.position.y=a},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",d=o?"bottom":"top",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=parseInt(t,10),s=parseInt(e,10),r=n===this.position.x&&s===this.position.y;if(this.setPosition(t,e),r&&!this.isTransitioning)return void this.layoutPosition();var a=t-i,u=e-o,h={};
4550h.transform=this.getTranslate(a,u),this.transition({to:h,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop");return t=i?t:-t,e=o?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10
vendor: 11,351 bytes, line 4550
4550)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var c={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},o}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,o,n,s){return e(t,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){"use strict";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace="outlayer",s.Item=n,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?("string"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+"Complete",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,"onresize",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){"function"==typeof define&&define.amd?define("isotope
4550/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){"use strict";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];
vendor: 12,466 bytes, lines 4550-4551
4550return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize("column","Width")},o.getRowHeight=function(){this.getSegmentSize("row","Height")},o.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){"function"==typeof define&&define.amd?define("masonry/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?"round":"ceil",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption("originLeft"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope/js/item"),require("isotope/js/layout-mode"),require("isotope/js/layout-modes/masonry"),require("isotope/js/layout-modes/fit-rows"),require("isotope/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t)}:"function"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){
4551var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;
4551var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d});
4552$(document).ready(function () {
4553
4554    var windowHeight = $(window).height(),
4555        navWindow = $(".navbar-collapse"),
4556        searchSubmitBtn = $('.stellungnahmen .search-submit'),
4557        carouselPause = $(".carousel.carouselPause"),
4558        carouselNoLoop = $(".carousel.carouselNoLoop"),
4559        navBlock = $(".nav_block"),
4560        searchResultLink = $(".search_result_block a"),
4561        openLink = "<base target=\"_parent\">";
4562    $(carouselNoLoop).carousel({
4563        wrap: false
4564    });
4565    if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
4566        $(".search-field").css("padding", "15px 0 13px 20px");
4567    }
4568
4569// Carousel disable arrows on first and last items
4570    detectIE();
4571    carouselPause.carousel().on('slid.bs.carousel', function () {
4572        disableArrows(carouselPause.attr('id'));
4573        if(carouselNoLoop.hasClass("mobile")){
4574            carouselNoLoop = $(".mobile.carousel.carouselPause");
4575            disableArrows(carouselNoLoop.attr('id'));
4576        }
4577    });
4578    if($(".slider.download")){
4579        $('.carousel-inner').each(function() {
4580            if ($(this).children('div').length === 1) $(this).siblings('.carousel-control, .carousel-indicators').addClass('disabled');
4581        });
4582    }
4583    $(window).scroll(function () {
4584        var nav = $('.navbar');
4585        var top = 10;
4586        if ($(window).scrollTop() >= top) {
4587            nav.addClass('sticky');
4588        } else {
4589            nav.removeClass('sticky');
4590        }
4591    });
4592
4593// Navigation Menu Open
4594    $("a.collapsed.x").on("click", function (e) {
4595        // Firefox menu not appearing fix
4596        let navstuff = $('nav.navbar-transition');
4597        navstuff.removeClass('navbar-transition');
4598        navstuff.removeClass('sticky');
4599
4600        $("body").toggleClass("modal-open");
4601        $("#carousel-example-generic").carousel('pause');
4602
4603        if (window.innerWidth >= 768) {
4604            $(navWindow).css("max-height", windowHeight - 30);
4605        }
4606        if (window.innerWidth <= 768) {
4607            $(navWindow).css("min-height", windowHeight);
4608        }
4609        e.preventDefault();
4610        return true;
4611    });
4612    $(".navbar-toggle.close").click(function () {
4613        $("#carousel-example-generic").carousel('cycle');
4614    });
4615
4616// Search
4617    $(".search-btn").click(function () {
4618        $(".search_block").addClass("open");
4619        $(".search-field").focus();
4620        $("body").addClass("modal-open");
4621        $(".navbar-toggle").hide();
4622        $("#carousel-example-generic").carousel('pause');
4623    });
4624    $(".form_close").click(function () {
4625        searchClose();
4626    });
4627
4628    $('.search-field').keyup(function() {
4629        if ($(this).val().length != 0) {
4630            $(searchSubmitBtn).removeClass('disabled');
4631        }else{
4632            $(searchSubmitBtn).addClass('disabled');
4633        }
4634    });
4635
4636    $('#searchModal').on('show.bs.modal', function () {
4637        if (window.innerWidth <= 768) {
4638            $('#searchModal iframe').css("height", windowHeight - 50);
4639        }else{
4640            $('#searchModal iframe').css("height", windowHeight - 265);
4641        }
4642    });
4643
4644    if($("#p938")){
4645        searchResultLink.click(function () {
4646            $('head', window.frames['p938']).append(openLink);
4647            searchClose();
4648        });
4649    }
4650
4651    if($("#p970")){
4652        searchResultLink.click(function () {
4653            $('head', window.frames['p970']).append(openLink);
4654            searchClose();
4655        });
4656    }
4657
4658// Calender
4659    $('[data-toggle="datepicker"]').datepicker({
4660        language: 'de-DE',
4661        format: 'dd-mm-yyyy',
4662        weekStart: '1'
4663    });
4664    $('.calendar_von').on('pick.datepicker', function (e) {
4665        $('.calendar_von').datepicker('hide');
4666        $('.calendar_bis').datepicker('show');
4667    });
4668    $('.calendar_bis').on('pick.datepicker', function (e) {
4669        $('.calendar_bis').datepicker('hide');
4670        $('.search-field').focus();
4671    });
4672
4673// Stellungnahmen search results (bubbles)
4674    $('.grid').isotope({
4675        itemSelector: '.grid-item',
4676        percentPosition: true,
4677        masonry: {
4678            gutter: 20,
4679            columnWidth: '.grid-sizer',
4680            horizontalOrder: true
4681        }
4682    });
4683    window.dispatchEvent(new Event('resize'));
4684
4685
4686// Scroll to top
4687    if (window.innerWidth <= 768) {
4688        $(window).scroll(function () {
4689            var scrollToTopBtn = $('.scrollToTop'),
4690                bodyHeight = $("body").height(),
4691                footerHeight = $("footer").height(),
4692                scrollingHeight = bodyHeight - footerHeight - windowHeight + 20;
4693            if ($(this).scrollTop() > 100) {
4694                scrollToTopBtn.fadeIn();
4695            }
4696            if ($(this).scrollTop() < 100) {
4697                scrollToTopBtn.fadeOut();
4698            }
4699            if ($(this).scrollTop() > scrollingHeight) {
4700                scrollToTopBtn.css({
4701                    "position": "absolute",
4702                    "bottom": footerHeight
4703                });
4704            }
4705            if ($(this).scrollTop() < scrollingHeight) {
4706                scrollToTopBtn.css({
4707                    "position": "fixed",
4708                    "bottom": "20px"
4709                });
4710            }
4711        });
4712
4713//Click event scroll to top
4714        $('.scrollToTop').click(function () {
4715            $('html, body').animate({scrollTop: 0}, 500);
4716            return false;
4717        });
4718
4719// Table responsive
4720        $(".contenttable").parents(".frame-inner").css("overflow-y", "scroll");
4721
4722    }
4723
4724// More/Less Documents function
4725    var documentItem = $(".documente li"),
4726        linkItem = $(".links li"),
4727        hiddenDocumentsItems = documentItem.length - 4,
4728        hiddenLinkItems = linkItem.length - 4,
4729        showMoreBtn,
4730        showMoreLinksBtn,
4731        showMoreText,
4732        showLessText = "weniger Dokumente",
4733        showMoreLinksText,
4734        showLessLinksText = "weniger Links";
4735    if (hiddenDocumentsItems === 1) {
4736        showMoreText = "Ein weiteres Dokument";
4737    } else {
4738        showMoreText = hiddenDocumentsItems + " weitere Dokumente anzeigen";
4739    }
4740    if (hiddenLinkItems === 1) {
4741        showMoreLinksText = "Ein weiterer Link";
4742    } else {
4743        showMoreLinksText = hiddenLinkItems + " weitere Links anzeigen";
4744    }
4745    if (documentItem.length > 4) {
4746        var additionalDocuments = $(".documente li:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4))").hide();
4747        $(".documente").append('<div class="show_all_documents"><a role="button">' + showMoreText + '</a></div>');
4748        showMoreBtn = $(".show_all_documents a");
4749        $(showMoreBtn).click(function () {
4750            additionalDocuments.slideToggle(200);
4751            if (showMoreBtn.html() === showLessText) {
4752                $(showMoreBtn).html(showMoreText);
4753            } else {
4754                $(showMoreBtn).html(showLessText);
4755            }
4756        });
4757    }
4758    if (linkItem.length > 4) {
4759        var additionaLinks = $(".links li:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4))").hide();
4760        $(".links").append('<div class="show_all_links"><a role="button">' + showMoreLinksText + '</a></div>');
4761        showMoreLinksBtn = $(".show_all_links a");
4762        $(showMoreLinksBtn).click(function () {
4763            additionaLinks.slideToggle(200);
4764            if (showMoreLinksBtn.html() === showLessLinksText) {
4765                $(showMoreLinksBtn).html(showMoreLinksText);
4766            } else {
4767                $(showMoreLinksBtn).html(showLessLinksText);
4768            }
4769        });
4770    }
4771    $("#carousel-example-generic").carousel({
4772        interval: 7000
4773    });
4774
4775// Hide empty nav_block
4776    if(navBlock.is(':empty')){
4777        $("section.nav_block2").hide();
4778    }
4779
4780// Parallax fix IE
4781    $('.parallax-window').parallax({
4782        overScrollFix: true
4783    });
4784
4785});
4786
4787function searchClose() {
4788    $(".search_block").removeClass("open");
4789    $("body").removeClass("modal-open");
4790    $(".navbar-toggle").show();
4791    $("#carousel-example-generic").carousel('cycle');
4792}
4793
4794function disableArrows(name) {
4795    var slides = $("#" + name + " .item");
4796    var slidesArray = Array.from(slides);
4797    var slidesArrayLength = slidesArray.length;
4798    slidesArray.forEach(function (item, index) {
4799        if ($(item).hasClass("active") && index !== 0) {
4800            $(".left[href='#" + name + "']").removeClass("disabled");
4801        } else if ($(item).hasClass("active") && index === 0) {
4802            $(".left[href='#" + name + "']").addClass("disabled");
4803        }
4804
4805        if ($(item).hasClass("active") && index === slidesArrayLength - 1) {
4806            $(".right[href='#" + name + "']").addClass("disabled");
4807        } else {
4808            $(".right[href='#" + name + "']").removeClass("disabled");
4809        }
4810    });
4811}
4812
4813function Print() {
4814    if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
4815
4816
4817        var printHtml = document.querySelector(".page .row").innerHTML;
4818        var openWindow = window.open("", "title", "attributes");
4819
4820        var elem = document.createElement('div');
4821        elem.innerHTML += '<img src="http://www.drb.de/fileadmin/images/logo/logo_print.jpeg"/>';
4822
4823        openWindow.document.write('<html><head><style>img{width: 250px; height: auto;} .print{display: none;}</style></head><body>');
4824        openWindow.document.write(printHtml);
4825        openWindow.document.body.prepend(elem);
4826        openWindow.document.write('</body></html>');
4827        openWindow.print();
4828        openWindow.close();
4829
4830    }else{
4831        window.print();
4832    }
4833    if (window.innerWidth <= 768) {
4834        window.print();
4835    }
4836}
4837
4838window.addEventListener("load", function (ev) {
4839    var printB = document.querySelector(".shariff-button.print");
4840    if (printB) {
4841        printB.querySelector("a").setAttribute("href", "");
4842        printB.addEventListener("click", function (e) {
4843            e.stopImmediatePropagation();
4844            e.stopPropagation();
4845            console.log("printing");
4846            Print();
4847        }, true)
4848    }
4849});
4850
4851/**
4852 * detect IE
4853 * returns version of IE or false, if browser is not Internet Explorer
4854 */
4855function detectIE() {
4856    var ua = window.navigator.userAgent,
4857    msie = ua.indexOf('MSIE '),
4858    imageSrc = $(".verband_ubersicht.parallax-window").attr("data-image-src");
4859    if (msie > 0) {
4860        // IE 10 or older
4861        $(".carousel-control .arrow").css("color", "#004aff");
4862        $(".verband_ubersicht.parallax-window").removeClass("parallax-window").attr("data-parallax", "none");
4863        $(".verband_ubersicht").css({'background-image': 'url(' + imageSrc + ')', 'background-size': 'cover'});
4864    }
4865    var trident = ua.indexOf('Trident/');
4866    if (trident > 0) {
4867        // IE 11
4868        $(".carousel-control .arrow").css("color", "#004aff");
4869        $(".verband_ubersicht.parallax-window").removeClass("parallax-window").attr("data-parallax", "none");
4870        $(".verband_ubersicht").css({'background-image': 'url(' + imageSrc + ')', 'background-size': 'cover'});
4871    }
4872    if (document.documentMode || /Edge/.test(navigator.userAgent)) {
4873        // Edge
4874        $(".verband_ubersicht.parallax-window").removeClass("parallax-window").attr("data-parallax", "none");
4875        $(".verband_ubersicht").css({'background-image': 'url(' + imageSrc + ')', 'background-size': 'cover'});
4876    }
4877}
4878
4879// GET search result
4880function getSearch(e) {
4881    e.preventDefault();
4882    var url = "/suche/ergebnisse/?tx_indexedsearch_pi2%5Baction%5D=search&tx_indexedsearch_pi2%5Bcontroller%5D=Search&tx_indexedsearch_pi2[search][sword]=";
4883    var search = $("#tx-indexedsearch-searchbox-sword").val();
4884    top.window.location.href=url + search;
4885}
4886/*!
4887 * parallax.js v1.5.0 (http://pixelcog.github.io/parallax.js/)
4888 * @copyright 2016 PixelCog, Inc.
4889 * @license MIT (https://github.com/pixelcog/parallax.js/blob/master/LICENSE)
4890 */
4891!function(t,i,e,s){function o(i,e){var h=this;"object"==typeof e&&(delete e.refresh,delete e.render,t.extend(this,e)),this.$element=t(i),!this.imageSrc&&this.$element.is("img")&&(this.imageSrc=this.$element.attr("src"));var r=(this.position+"").toLowerCase().match(/\S+/g)||[];if(r.length<1&&r.push("center"),1==r.length&&r.push(r[0]),"top"!=r[0]&&"bottom"!=r[0]&&"left"!=r[1]&&"right"!=r[1]||(r=[r[1],r[0]]),this.positionX!==s&&(r[0]=this.positionX.toLowerCase()),this.positionY!==s&&(r[1]=this.positionY.toLowerCase()),h.positionX=r[0],h.positionY=r[1],"left"!=this.positionX&&"right"!=this.positionX&&(isNaN(parseInt(this.positionX))?this.positionX="center":this.positionX=parseInt(this.positionX)),"top"!=this.positionY&&"bottom"!=this.positionY&&(isNaN(parseInt(this.positionY))?this.positionY="center"
vendor: 552 bytes, line 4891
4891:this.positionY=parseInt(this.positionY)),this.position=this.positionX+(isNaN(this.positionX)?"":"px")+" "+this.positionY+(isNaN(this.positionY)?"":"px"),navigator.userAgent.match(/(iPod|iPhone|iPad)/))return this.imageSrc&&this.iosFix&&!this.$element.is("img")&&this.$element.css({backgroundImage:"url("+this.imageSrc+")",backgroundSize:"cover",backgroundPosition:this.position}),this;if(navigator.userAgent.match(/(Android)/))return this.imageSrc&&this.androidFix&&!this.$element.is("img")&&this.$element.css({backgroundImage:"url("+this.imageSrc+")"
vendor: 5,322 bytes, line 4891
4891,backgroundSize:"cover",backgroundPosition:this.position}),this;this.$mirror=t("<div />").prependTo(this.mirrorContainer);var a=this.$element.find(">.parallax-slider"),n=!1;0==a.length?this.$slider=t("<img />").prependTo(this.$mirror):(this.$slider=a.prependTo(this.$mirror),n=!0),this.$mirror.addClass("parallax-mirror").css({visibility:"hidden",zIndex:this.zIndex,position:"fixed",top:0,left:0,overflow:"hidden"}),this.$slider.addClass("parallax-slider").one("load",function(){h.naturalHeight&&h.naturalWidth||(h.naturalHeight=this.naturalHeight||this.height||1,h.naturalWidth=this.naturalWidth||this.width||1),h.aspectRatio=h.naturalWidth/h.naturalHeight,o.isSetup||o.setup(),o.sliders.push(h),o.isFresh=!1,o.requestRender()}),n||(this.$slider[0].src=this.imageSrc),(this.naturalHeight&&this.naturalWidth||this.$slider[0].complete||a.length>0)&&this.$slider.trigger("load")}!function(){for(var t=0,e=["ms","moz","webkit","o"],s=0;s<e.length&&!i.requestAnimationFrame;++s)i.requestAnimationFrame=i[e[s]+"RequestAnimationFrame"],i.cancelAnimationFrame=i[e[s]+"CancelAnimationFrame"]||i[e[s]+"CancelRequestAnimationFrame"];i.requestAnimationFrame||(i.requestAnimationFrame=function(e){var s=(new Date).getTime(),o=Math.max(0,16-(s-t)),h=i.setTimeout(function(){e(s+o)},o);return t=s+o,h}),i.cancelAnimationFrame||(i.cancelAnimationFrame=function(t){clearTimeout(t)})}(),t.extend(o.prototype,{speed:.2,bleed:0,zIndex:-100,iosFix:!0,androidFix:!0,position:"center",overScrollFix:!1,mirrorContainer:"body",refresh:function(){this.boxWidth=this.$element.outerWidth(),this.boxHeight=this.$element.outerHeight()+2*this.bleed,this.boxOffsetTop=this.$element.offset().top-this.bleed,this.boxOffsetLeft=this.$element.offset().left,this.boxOffsetBottom=this.boxOffsetTop+this.boxHeight;var t,i=o.winHeight,e=o.docHeight,s=Math.min(this.boxOffsetTop,e-i),h=Math.max(this.boxOffsetTop+this.boxHeight-i,0),r=this.boxHeight+(s-h)*(1-this.speed)|0,a=(this.boxOffsetTop-s)*(1-this.speed)|0;r*this.aspectRatio>=this.boxWidth?(this.imageWidth=r*this.aspectRatio|0,this.imageHeight=r,this.offsetBaseTop=a,t=this.imageWidth-this.boxWidth,"left"==this.positionX?this.offsetLeft=0:"right"==this.positionX?this.offsetLeft=-t:isNaN(this.positionX)?this.offsetLeft=-t/2|0:this.offsetLeft=Math.max(this.positionX,-t)):(this.imageWidth=this.boxWidth,this.imageHeight=this.boxWidth/this.aspectRatio|0,this.offsetLeft=0,t=this.imageHeight-r,"top"==this.positionY?this.offsetBaseTop=a:"bottom"==this.positionY?this.offsetBaseTop=a-t:isNaN(this.positionY)?this.offsetBaseTop=a-t/2|0:this.offsetBaseTop=a+Math.max(this.positionY,-t))},render:function(){var t=o.scrollTop,i=o.scrollLeft,e=this.overScrollFix?o.overScroll:0,s=t+o.winHeight;this.boxOffsetBottom>t&&this.boxOffsetTop<=s?(this.visibility="visible",this.mirrorTop=this.boxOffsetTop-t,this.mirrorLeft=this.boxOffsetLeft-i,this.offsetTop=this.offsetBaseTop-this.mirrorTop*(1-this.speed)):this.visibility="hidden",this.$mirror.css({transform:"translate3d("+this.mirrorLeft+"px, "+(this.mirrorTop-e)+"px, 0px)",visibility:this.visibility,height:this.boxHeight,width:this.boxWidth}),this.$slider.css({transform:"translate3d("+this.offsetLeft+"px, "+this.offsetTop+"px, 0px)",position:"absolute",height:this.imageHeight,width:this.imageWidth,maxWidth:"none"})}}),t.extend(o,{scrollTop:0,scrollLeft:0,winHeight:0,winWidth:0,docHeight:1<<30,docWidth:1<<30,sliders:[],isReady:!1,isFresh:!1,isBusy:!1,setup:function(){function s(){if(p==i.pageYOffset)return i.requestAnimationFrame(s),!1;p=i.pageYOffset,h.render(),i.requestAnimationFrame(s)}if(!this.isReady){var h=this,r=t(e),a=t(i),n=function(){o.winHeight=a.height(),o.winWidth=a.width(),o.docHeight=r.height(),o.docWidth=r.width()},l=function(){var t=a.scrollTop(),i=o.docHeight-o.winHeight,e=o.docWidth-o.winWidth;o.scrollTop=Math.max(0,Math.min(i,t)),o.scrollLeft=Math.max(0,Math.min(e,a.scrollLeft())),o.overScroll=Math.max(t-i,Math.min(t,0))};a.on("resize.px.parallax load.px.parallax",function(){n(),h.refresh(),o.isFresh=!1,o.requestRender()}).on("scroll.px.parallax load.px.parallax",function(){l(),o.requestRender()}),n(),l(),this.isReady=!0;var p=-1;s()}},configure:function(i){"object"==typeof i&&(delete i.refresh,delete i.render,t.extend(this.prototype,i))},refresh:function(){t.each(this.sliders,function(){this.refresh()}),this.isFresh=!0},render:function(){this.isFresh||this.refresh(),t.each(this.sliders,function(){this.render()})},requestRender:function(){var t=this;t.render(),t.isBusy=!1},destroy:function(e){var s,h=t(e).data("px.parallax");for(h.$mirror.remove(),s=0;s<this.sliders.length;s+=1)this.sliders[s]==h&&this.sliders.splice(s,1);t(e).data("px.parallax",!1),0===this.sliders.length&&(t(i).off("scroll.px.parallax resize.px.parallax load.px.parallax"),this.isReady=!1,o.isSetup=!1)}});var h=t.fn.parallax;t.fn.parallax=function(s){return this.each(function(){var h=t(this),r="object"==typeof s&&s;this==i||this==e||h.is("body")?o.configure(r):h.data("px.parallax")?"object"==typeof s&&t.extend(h.data("px.parallax"),r):(r=t.extend({},h.data(),r),h.data("px.parallax",new o(this,r))),"string"==typeof s&&("destroy"==s?o.destroy(this):o[s]())})},t.fn.parallax.Constructor=o,t.fn.parallax.noConflict=function(){return t.fn.parallax=h,this},t(function(){t('[data-parallax="scroll"]').parallax()})}(jQuery,window,document);

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.